* Refactor of bflt to guess arch & fix m68k code * Fix endianness issues * Always cleanup at the end on travis ci
1497 lines
16 KiB
Text
1497 lines
16 KiB
Text
NAME=add zero, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx 20000200
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=add a1, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx 20280200
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000005
|
|
EOF
|
|
RUN
|
|
|
|
NAME=add a1, 0xFFFFFFFF, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xFFFFFFFF
|
|
ar v1=0x5
|
|
wx 20284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addi zero, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 05000020
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addi a1, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx 05000520
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000005
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addi a1, zero, -5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx fbff0520
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xfffffffb
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addi a1, 6, -5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=6
|
|
wx fbff4520
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addu zero, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx 21000200
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addu a1, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx 21280200
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000005
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addu a1, 0xFFFFFFFF, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xFFFFFFFF
|
|
ar v1=0x5
|
|
wx 21284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addiu zero, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 05000024
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addiu a1, zero, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx 05000524
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000005
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addiu a1, zero, -5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
wx fbff0524
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xfffffffb
|
|
EOF
|
|
RUN
|
|
|
|
NAME=addiu a1, 6, -5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=6
|
|
wx fbff4524
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sub zero, 5, 1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=5
|
|
ar v1=1
|
|
wx 22004300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sub a1, 1, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=1
|
|
ar v1=5
|
|
wx 22284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xfffffffc
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sub a1, 0xFFFFFFFF, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xFFFFFFFF
|
|
ar v1=0x5
|
|
wx 22284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xfffffffa
|
|
EOF
|
|
RUN
|
|
|
|
NAME=subu a1, 1, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=1
|
|
ar v1=5
|
|
wx 23284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xfffffffc
|
|
EOF
|
|
RUN
|
|
|
|
NAME=subu a1, 0xFFFFFFFF, 5
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xFFFFFFFF
|
|
ar v1=0x5
|
|
wx 23284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xfffffffa
|
|
EOF
|
|
RUN
|
|
|
|
NAME=and a1, 0xFFFFFFFF, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffffffff
|
|
ar v1=0x10101010
|
|
wx 24284300
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x10101010
|
|
EOF
|
|
RUN
|
|
|
|
NAME=andi a1, 0xFFFFFFFF, 0xFFFF
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffffffff
|
|
wx ffff4530
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x0000ffff
|
|
EOF
|
|
RUN
|
|
|
|
NAME=andi a1, 0xFFFFFFFF, 1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffffffff
|
|
wx 01004530
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=or zero, zero, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
wx 25000200
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=or a1, zero, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
wx 25280200
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x10101010
|
|
EOF
|
|
RUN
|
|
|
|
NAME=or a1, 0x01010111, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v1=0x01010111
|
|
ar v0=0x10101010
|
|
wx 25284300
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x11111111
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ori zero, zero, 0xFFFF
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx ffff0034
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ori a1, zero, 0xFFFF
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx ffff0534
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x0000ffff
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ori a1, 0xFFFF0000, 1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffff0000
|
|
wx 01004534
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xffff0001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xor zero, zero, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
wx 26000200
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xor a1, zero, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
wx 26280200
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x10101010
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xor a1, 0x01010111, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x01010111
|
|
ar v1=0x10101010
|
|
wx 26284300
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x11111101
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xori zero, zero, 0xFFFF
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx ffff0038
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xori a1, zero, 0xFFFF
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx ffff0538
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x0000ffff
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xori a1, 0xFFFF0000, 1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffff0000
|
|
wx 01004538
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xffff0001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=xori a1, 0xFFFF00FF, 0xF1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffff00ff
|
|
wx f1004538
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xffff000e
|
|
EOF
|
|
RUN
|
|
|
|
NAME=nor zero, zero, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
wx 27000200
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=nor a1, zero, 0x10101010
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
wx 27280200
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0xefefefef
|
|
EOF
|
|
RUN
|
|
|
|
NAME=nor a1, 0x10101010, 0xFFFF0000
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x10101010
|
|
ar v1=0xffff0000
|
|
wx 27284300
|
|
aes
|
|
ar a1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
a1 = 0x0000efef
|
|
EOF
|
|
RUN
|
|
|
|
NAME=lh v1, (v0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000004
|
|
s 4
|
|
wx aabbccdd00004384
|
|
s 8
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar v1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v1 = 0x0000bbaa
|
|
EOF
|
|
RUN
|
|
|
|
NAME=lh v1, -2(v0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000006
|
|
s 4
|
|
wx aabbccddfeff4384
|
|
s 8
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar v1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v1 = 0x0000bbaa
|
|
EOF
|
|
RUN
|
|
|
|
NAME=lh v1, 2(v0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000000
|
|
wx aabbccdd02004384
|
|
s 4
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar v1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v1 = 0x0000ddcc
|
|
EOF
|
|
RUN
|
|
|
|
NAME=lw v1, (v0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000004
|
|
s 4
|
|
wx aabbccdd112233440000438c
|
|
sd +8
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar v1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v1 = 0xddccbbaa
|
|
EOF
|
|
RUN
|
|
|
|
NAME=lw v1, -4(v0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000008
|
|
s 0x4
|
|
wx aabbccdd11223344fcff438c
|
|
sd +8
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar v1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v1 = 0xddccbbaa
|
|
EOF
|
|
RUN
|
|
|
|
NAME=lw v1, 4(v0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000000
|
|
wx aabbccdd112233440400438c
|
|
s 8
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
ar v1
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v1 = 0x44332211
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sw v0, 0(v1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x11aa22bb
|
|
ar v1=0x10
|
|
s 4
|
|
wx 000062ac
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
p8 4 @ 0x10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
bb22aa11
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sw v0, -4(v1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x11aa22bb
|
|
ar v1=0x14
|
|
s 4
|
|
wx fcff62ac
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
p8 4 @ 0x10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
bb22aa11
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sh v0, 0(v1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x11aa22bb
|
|
ar v1=0x10
|
|
wx 00000000000062a4
|
|
s 4
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
p8 4 @ 0x10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
bb220000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sh v0, 2(v1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x11aa22bb
|
|
ar v1=0x10
|
|
wx 00000000020062a4
|
|
s 4
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
p8 4 @ 0x12
|
|
EOF
|
|
EXPECT=<<EOF
|
|
bb220000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sb v0, 0(v1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x11aa22bb
|
|
ar v1=0x10
|
|
wx 00000000000062a0
|
|
s 4
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
p8 4 @ 0x10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
bb000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sb v0, 3(v1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x11aa22bb
|
|
ar v1=0
|
|
wx 00000000030062a0
|
|
s 4
|
|
aei
|
|
aeim
|
|
aeip
|
|
aes
|
|
p8 5 @ 0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
000000bb03
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sll v0, v0, 16
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x0001ffff
|
|
wx 00140200
|
|
aes
|
|
ar v0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v0 = 0xffff0000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sllv v0, v0, v1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x0001ffff
|
|
ar v1=16
|
|
wx 04106200
|
|
aes
|
|
ar v0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v0 = 0xffff0000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mult v0, v1
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar v1=0x44556677
|
|
wx 18004300
|
|
aes
|
|
ar hi
|
|
ar lo
|
|
EOF
|
|
EXPECT=<<EOF
|
|
hi = 0x000492cc
|
|
lo = 0xc28637b5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mult v1, v0
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar v1=0x44556677
|
|
wx 18004300
|
|
aes
|
|
ar hi
|
|
ar lo
|
|
EOF
|
|
EXPECT=<<EOF
|
|
hi = 0x000492cc
|
|
lo = 0xc28637b5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mul s0, a0, v0
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e asm.cpu=mips32r5
|
|
e cfg.bigendian=false
|
|
wx 02808270
|
|
ar a0=21
|
|
ar v0=12
|
|
aes
|
|
ar s0
|
|
ar a0=0x44556677
|
|
ar v0=0x00112233
|
|
aeip
|
|
aes
|
|
ar s0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
s0 = 0x000000fc
|
|
s0 = 0xc28637b5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mflo v0
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar lo=0xffffffff12345678
|
|
wx 12100000
|
|
aes
|
|
ar v0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v0 = 0x12345678
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mfhi v0
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar hi=0xffffffff12345678
|
|
wx 10100000
|
|
aes
|
|
ar v0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
v0 = 0x12345678
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mflo zero
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar lo=0xffffffff12345678
|
|
wx 12100000
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mfhi zero
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar hi=0xffffffff12345678
|
|
wx 10100000
|
|
aes
|
|
ar zero
|
|
EOF
|
|
EXPECT=<<EOF
|
|
zero = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mtlo v0
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar lo=0xffffffff12345678
|
|
wx 13004000
|
|
aes
|
|
ar lo
|
|
EOF
|
|
EXPECT=<<EOF
|
|
lo = 0x00112233
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mthi v0
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar hi=0xffffffff12345678
|
|
wx 11004000
|
|
aes
|
|
ar hi
|
|
EOF
|
|
EXPECT=<<EOF
|
|
hi = 0x00112233
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mthi v0 (negative)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffffffff
|
|
ar hi=0xffffffff12345678
|
|
wx 11004000
|
|
aes
|
|
ar hi
|
|
EOF
|
|
EXPECT=<<EOF
|
|
hi = 0xffffffff
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bne v0, v1, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar v1=0x00112233
|
|
wx 0e004314
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bne v0, v1, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00222233
|
|
ar v1=0x00112233
|
|
wx 0e004314
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=beq v0, v1, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00222233
|
|
ar v1=0x00112233
|
|
wx 0e004310
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=beq v0, v1, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00112233
|
|
ar v1=0x00112233
|
|
wx 0e004310
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bnez s4, 0xc (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar s4=0x00000000
|
|
wx 02008016
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=blez zero, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 0e000018
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bgez v0, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000001
|
|
wx 0e004104
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bgez v0, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xfffffffc
|
|
wx 0e004104
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bgez zero, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 0e000104
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bltz v0, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000001
|
|
wx 0e004004
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bltz v0, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xfffffffc
|
|
wx 0e004004
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bltz zero, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 0e000004
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bgtz v0, 0x3c (taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0x00000001
|
|
wx 0e00401c
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000003c
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bgtz v0, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xfffffffc
|
|
wx 0e00401c
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=bgtz zero, 0x3c (not taken)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 0e00001c
|
|
aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000004
|
|
EOF
|
|
RUN
|
|
|
|
NAME=jal 16
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 0400000c
|
|
aes
|
|
ar pc
|
|
ar ra
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x00000010
|
|
ra = 0x00000008
|
|
EOF
|
|
RUN
|
|
|
|
NAME=slt s0, v0, v1 (2<1=0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=2
|
|
ar v1=1
|
|
wx 2a804300
|
|
aes
|
|
ar s0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
s0 = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=slt s0, v0, v1 (-1<1=1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=-1
|
|
ar v1=1
|
|
wx 2a804300
|
|
aes
|
|
ar s0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
s0 = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sltu s0, v0, v1 (0xffffffff<1=0)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0xffffffff
|
|
ar v1=1
|
|
wx 2b804300
|
|
aes
|
|
ar s0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
s0 = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=sltu s0, v0, v1 (0<0xffffffff=1)
|
|
FILE=malloc://0x200
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
ar v0=0
|
|
ar v1=0xffffffff
|
|
wx 2b804300
|
|
aes
|
|
ar s0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
s0 = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=asm.emu with meta
|
|
FILE=bins/elf/analysis/crackmips
|
|
CMDS=<<EOF
|
|
s 0x00400820
|
|
af
|
|
e asm.emu=true
|
|
e asm.bytes=true
|
|
e emu.write=true
|
|
e analysis.gpfixed=false
|
|
e asm.lines.bb=false
|
|
e asm.lines.fcn=false
|
|
e asm.imm.str=false
|
|
aei
|
|
aeim
|
|
pdf~0x00400828[7]
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x415424
|
|
EOF
|
|
RUN
|
|
|
|
NAME=mips linux syscall
|
|
FILE=bins/elf/syscall_mips
|
|
CMDS=<<EOF
|
|
s entry0
|
|
aei
|
|
aeip
|
|
6aes
|
|
as
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0xfa4 = write (1, "Hello, world!.", 15)
|
|
EOF
|
|
RUN
|