mirror of
https://github.com/radareorg/radare2.git
synced 2025-03-04 12:27:40 +00:00
265 lines
9.6 KiB
Plaintext
265 lines
9.6 KiB
Plaintext
NAME=micromips on gnu
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
rasm2 -a mips.gnu -b32 -d 22fdd018
|
|
rasm2 -a mips.gnu -b32 -c micro -d 22fdd018
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x18d0fd22
|
|
lw t1, 6352(v0)
|
|
EOF
|
|
RUN
|
|
|
|
NAME=micromips on cs
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
rasm2 -a mips -b32 -d 22fdd018
|
|
?e --
|
|
rasm2 -a mips -b32 -c micro -d 22fdd018
|
|
?e --
|
|
rasm2 -a mips.gnu -b32 -d 22fdd018
|
|
?e --
|
|
rasm2 -a mips.gnu -b32 -c micro -d 22fdd018
|
|
EOF
|
|
EXPECT=<<EOF
|
|
invalid
|
|
--
|
|
lw t1, 0x18d0(v0)
|
|
--
|
|
0x18d0fd22
|
|
--
|
|
lw t1, 6352(v0)
|
|
EOF
|
|
RUN
|
|
|
|
NAME=micromips code block and endian test CAPSTONE
|
|
BROKEN=1
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
rasm2 -a mips -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e --
|
|
# THIS LINE SEGFAULTS ONLY IN THE CI
|
|
# rasm2 -e -a mips -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 4 4fe522fd invalid
|
|
0x00000004 4 d01840e4 sb a2, -0x1bc0(s0)
|
|
0x00000008 2 0007 addu16 a2, s0, s0
|
|
0x0000000a 4 ae920e25 slti s5, t6, 0x250e
|
|
0x0000000e 4 41a49860 invalid
|
|
0x00000012 2 cc06 addu16 a1, a2, a0
|
|
0x00000014 2 3084 movep a1, a2, zero, v1
|
|
0x00000016 2 7090 unaligned
|
|
--
|
|
0x00000000 2 4fe5 addiusp -0x38
|
|
0x00000002 4 22fdd018 swm32 s0, s1, s2, s3, s4, s5, s6, ra, 0x18(sp)
|
|
0x00000006 4 40e40007 beqzc a0, 0xe
|
|
0x0000000a 2 ae92 bnez16 a1, 0x24
|
|
0x0000000c 2 0e25 move s1, a1
|
|
0x0000000e 4 41a49860 lui a0, 0x9860
|
|
0x00000012 2 cc06 b16 0xc
|
|
0x00000014 4 30847090 addiu a0, a0, 0x7090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=micromips code block and endian test GNU
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
rasm2 -a mips.gnu -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e --
|
|
rasm2 -e -a mips.gnu -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 2 4fe5 0xe54f
|
|
0x00000002 4 22fdd018 lw t1, 6352(v0)
|
|
0x00000006 2 40e4 0xe440
|
|
0x00000008 2 0007 addu a2, s0, s0
|
|
0x0000000a 4 ae920e25 slti s5, t6, 9486
|
|
0x0000000e 2 41a4 0xa441
|
|
0x00000010 4 9860cc06 lwl a0, 1740(t8)
|
|
0x00000014 2 3084 movep a1,a2, zero, v1
|
|
0x00000016 2 7090 slti v1, s0, 0
|
|
--
|
|
0x00000000 2 4fe5 addiu sp, sp, -56
|
|
0x00000002 4 22fdd018 swm s0-s6,ra, 24(sp)
|
|
0x00000006 4 40e40007 beqzc a0, 0x00000019
|
|
0x0000000a 2 ae92 bnez a1, 0x00000031
|
|
0x0000000c 2 0e25 move s1, a1
|
|
0x0000000e 4 41a49860 lui a0, 0x9860
|
|
0x00000012 2 cc06 b 0x00000021
|
|
0x00000014 4 30847090 addiu a0, a0, 28816
|
|
EOF
|
|
RUN
|
|
|
|
NAME=both
|
|
BROKEN=1
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
rasm2 -a mips -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e gnu
|
|
rasm2 -a mips.gnu -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e cs
|
|
rasm2 -e -a mips -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e gnu
|
|
rasm2 -e -a mips.gnu -b16 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e cs 32bit
|
|
rasm2 -e -a mips -b32 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
?e gnu 32bit
|
|
rasm2 -e -a mips.gnu -b32 -c micro -D 4fe522fdd01840e40007ae920e2541a49860cc0630847090
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 4 4fe522fd invalid
|
|
0x00000004 4 d01840e4 sb a2, -0x1bc0(s0)
|
|
0x00000008 2 0007 addu16 a2, s0, s0
|
|
0x0000000a 4 ae920e25 slti s5, t6, 0x250e
|
|
0x0000000e 4 41a49860 invalid
|
|
0x00000012 2 cc06 addu16 a1, a2, a0
|
|
0x00000014 2 3084 movep a1, a2, zero, v1
|
|
0x00000016 2 7090 unaligned
|
|
gnu
|
|
0x00000000 2 4fe5 0xe54f
|
|
0x00000002 4 22fdd018 lw t1, 6352(v0)
|
|
0x00000006 2 40e4 0xe440
|
|
0x00000008 2 0007 addu a2, s0, s0
|
|
0x0000000a 4 ae920e25 slti s5, t6, 9486
|
|
0x0000000e 2 41a4 0xa441
|
|
0x00000010 4 9860cc06 lwl a0, 1740(t8)
|
|
0x00000014 2 3084 movep a1,a2, zero, v1
|
|
0x00000016 2 7090 unaligned
|
|
cs
|
|
0x00000000 2 4fe5 addiusp -0x38
|
|
0x00000002 4 22fdd018 swm32 s0, s1, s2, s3, s4, s5, s6, ra, 0x18(sp)
|
|
0x00000006 4 40e40007 beqzc a0, 0xe
|
|
0x0000000a 2 ae92 bnez16 a1, 0x24
|
|
0x0000000c 2 0e25 move s1, a1
|
|
0x0000000e 4 41a49860 lui a0, 0x9860
|
|
0x00000012 2 cc06 b16 0xc
|
|
0x00000014 4 30847090 addiu a0, a0, 0x7090
|
|
gnu
|
|
0x00000000 2 4fe5 addiu sp, sp, -56
|
|
0x00000002 4 22fdd018 swm s0-s6,ra, 24(sp)
|
|
0x00000006 4 40e40007 beqzc a0, 0x00000019
|
|
0x0000000a 2 ae92 bnez a1, 0x00000031
|
|
0x0000000c 2 0e25 move s1, a1
|
|
0x0000000e 4 41a49860 lui a0, 0x9860
|
|
0x00000012 2 cc06 b 0x00000021
|
|
0x00000014 4 30847090 addiu a0, a0, 28816
|
|
cs 32bit
|
|
0x00000000 2 4fe5 addiusp -0x38
|
|
0x00000002 4 22fdd018 swm32 s0, s1, s2, s3, s4, s5, s6, ra, 0x18(sp)
|
|
0x00000006 4 40e40007 beqzc a0, 0xe
|
|
0x0000000a 2 ae92 bnez16 a1, 0x24
|
|
0x0000000c 2 0e25 move s1, a1
|
|
0x0000000e 4 41a49860 lui a0, 0x9860
|
|
0x00000012 2 cc06 b16 0xc
|
|
0x00000014 4 30847090 addiu a0, a0, 0x7090
|
|
gnu 32bit
|
|
0x00000000 2 4fe5 addiu sp, sp, -56
|
|
0x00000002 4 22fdd018 swm s0-s6,ra, 24(sp)
|
|
0x00000006 4 40e40007 beqzc a0, 0x00000019
|
|
0x0000000a 2 ae92 bnez a1, 0x00000031
|
|
0x0000000c 2 0e25 move s1, a1
|
|
0x0000000e 4 41a49860 lui a0, 0x9860
|
|
0x00000012 2 cc06 b 0x00000021
|
|
0x00000014 4 30847090 addiu a0, a0, 28816
|
|
EOF
|
|
RUN
|
|
|
|
NAME=micromips align
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
-a mips
|
|
-e asm.cpu=micro
|
|
-e cfg.bigendian=true
|
|
-b 16
|
|
wx 41bc0002339c821f033ce1504fedff3c801cfb9d0010cbe96e8d45d9308000054be9470a
|
|
pd 10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 41bc0002 lui gp, 2
|
|
0x00000004 339c821f addiu gp, gp, -0x7de1
|
|
0x00000008 033ce150 addu gp, gp, t9
|
|
0x0000000c 4fed addiusp -0x28
|
|
0x0000000e ff3c801c lw t9, -0x7fe4(gp)
|
|
0x00000012 fb9d0010 sw gp, 0x10(sp)
|
|
0x00000016 cbe9 sw ra, 0x24(sp)
|
|
0x00000018 6e8d addiur1sp a1, 0x18
|
|
0x0000001a 45d9 jalr t9
|
|
0x0000001c 30800005 addiu a0, zero, 5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=micromips align
|
|
FILE=-
|
|
CMDS=<<EOF
|
|
-a mips.gnu
|
|
-e asm.cpu=micro
|
|
-e cfg.bigendian=true
|
|
-b 16
|
|
wx 41bc0002339c821f033ce1504fedff3c801cfb9d0010cbe96e8d45d9308000054be9470a
|
|
pd 10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 41bc0002 lui gp, 0x2
|
|
0x00000004 339c821f addiu gp, gp, -32225
|
|
0x00000008 033ce150 addu gp, gp, t9
|
|
0x0000000c 4fed addiu sp, sp, -40
|
|
0x0000000e ff3c801c lw t9, -32740(gp)
|
|
0x00000012 fb9d0010 sw gp, 16(sp)
|
|
0x00000016 cbe9 sw ra, 36(sp)
|
|
0x00000018 6e8d addiu a1, sp, 24
|
|
0x0000001a 45d9 jalr t9
|
|
0x0000001c 30800005 li a0, 5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=micromips align
|
|
FILE=bins/elf/micromips.elf
|
|
CMDS=<<EOF
|
|
pd 10
|
|
pd 10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
;-- section..text:
|
|
;-- main:
|
|
;-- entry0:
|
|
;-- _ftext:
|
|
0x004000d0 41bc0002 lui gp, 2 ; [04] -r-x section size 512 named .text
|
|
0x004000d4 339c821f addiu gp, gp, -0x7de1
|
|
0x004000d8 033ce150 addu gp, gp, t9
|
|
0x004000dc 4fed addiusp -0x28
|
|
0x004000de ff3c801c lw t9, -0x7fe4(gp) ; [0x41030c:4]=0x400221
|
|
0x004000e2 fb9d0010 sw gp, 0x10(sp)
|
|
0x004000e6 cbe9 sw ra, 0x24(sp)
|
|
0x004000e8 6e8d addiur1sp a1, 0x18
|
|
0x004000ea 45d9 jalr t9
|
|
0x004000ec 30800005 addiu a0, zero, 5
|
|
;-- section..text:
|
|
;-- main:
|
|
;-- entry0:
|
|
;-- _ftext:
|
|
0x004000d0 41bc0002 lui gp, 2 ; [04] -r-x section size 512 named .text
|
|
0x004000d4 339c821f addiu gp, gp, -0x7de1
|
|
0x004000d8 033ce150 addu gp, gp, t9
|
|
0x004000dc 4fed addiusp -0x28
|
|
0x004000de ff3c801c lw t9, -0x7fe4(gp) ; [0x41030c:4]=0x400221
|
|
0x004000e2 fb9d0010 sw gp, 0x10(sp)
|
|
0x004000e6 cbe9 sw ra, 0x24(sp)
|
|
0x004000e8 6e8d addiur1sp a1, 0x18
|
|
0x004000ea 45d9 jalr t9
|
|
0x004000ec 30800005 addiu a0, zero, 5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=twobytes
|
|
FILE=--
|
|
CMDS=<<EOF
|
|
!!rasm2 -a mips -b16 -e -c micro -d '4fe5'
|
|
!!rasm2 -a mips.gnu -b16 -e -c micro -d '4fe5'
|
|
EOF
|
|
EXPECT=<<EOF
|
|
addiusp -0x38
|
|
addiu sp, sp, -56
|
|
EOF
|
|
RUN
|