| Index: tests_lit/assembler/arm32/mov-const.ll
|
| diff --git a/tests_lit/assembler/arm32/mov-const.ll b/tests_lit/assembler/arm32/mov-const.ll
|
| index a306bff8f6587a99c637055d0c9e22224cbeefef..c5ccbdcd7ee3d825e401ed963d113f3e825fba41 100644
|
| --- a/tests_lit/assembler/arm32/mov-const.ll
|
| +++ b/tests_lit/assembler/arm32/mov-const.ll
|
| @@ -24,96 +24,92 @@ define internal i32 @foo(i32 %x) {
|
| entry:
|
|
|
| ; ASM-LABEL: foo:
|
| -; ASM-NEXT: .Lfoo$entry:
|
| -; ******* Movw case to check *******
|
| -; ASM-NEXT: movw ip, #4092
|
| -; ASM-NEXT: sub sp, sp, ip
|
| -; ASM-NEXT: str r0, [sp, #4088]
|
| -; ASM-NEXT: # [sp, #4088] = def.pseudo
|
| ; DIS-LABEL: 00000000 <foo>:
|
| -; DIS-NEXT: 0: e300cffc
|
| -; DIS-NEXT: 4: e04dd00c
|
| -; DIS-NEXT: 8: e58d0ff8
|
| -
|
| ; IASM-LABEL: foo:
|
| +
|
| +; ASM-NEXT: .Lfoo$entry:
|
| ; IASM-NEXT: .Lfoo$entry:
|
|
|
| +; ASM-NEXT: movw ip, #4092
|
| +; DIS-NEXT: 0: e300cffc
|
| ; IASM-NEXT: .byte 0xfc
|
| ; IASM-NEXT: .byte 0xcf
|
| ; IASM-NEXT: .byte 0x0
|
| ; IASM-NEXT: .byte 0xe3
|
|
|
| +; ASM-NEXT: sub sp, sp, ip
|
| +; DIS-NEXT: 4: e04dd00c
|
| ; IASM-NEXT: .byte 0xc
|
| ; IASM-NEXT: .byte 0xd0
|
| ; IASM-NEXT: .byte 0x4d
|
| ; IASM-NEXT: .byte 0xe0
|
|
|
| +; ASM-NEXT: str r0, [sp, #4088]
|
| +; DIS-NEXT: 8: e58d0ff8
|
| ; IASM-NEXT: .byte 0xf8
|
| ; IASM-NEXT: .byte 0xf
|
| ; IASM-NEXT: .byte 0x8d
|
| ; IASM-NEXT: .byte 0xe5
|
|
|
| +; ASM-NEXT: # [sp, #4088] = def.pseudo
|
| +
|
| %mul = mul i32 %x, %x
|
|
|
| ; ASM-NEXT: ldr r0, [sp, #4088]
|
| -; ASM-NEXT: ldr r1, [sp, #4088]
|
| -; ASM-NEXT: mul r0, r0, r1
|
| -; ASM-NEXT: str r0, [sp, #4084]
|
| -; ASM-NEXT: # [sp, #4084] = def.pseudo
|
| -
|
| ; DIS-NEXT: c: e59d0ff8
|
| -; DIS-NEXT: 10: e59d1ff8
|
| -; DIS-NEXT: 14: e0000190
|
| -; DIS-NEXT: 18: e58d0ff4
|
| -
|
| ; IASM-NEXT: .byte 0xf8
|
| ; IASM-NEXT: .byte 0xf
|
| ; IASM-NEXT: .byte 0x9d
|
| ; IASM-NEXT: .byte 0xe5
|
|
|
| +; ASM-NEXT: ldr r1, [sp, #4088]
|
| +; DIS-NEXT: 10: e59d1ff8
|
| ; IASM-NEXT: .byte 0xf8
|
| ; IASM-NEXT: .byte 0x1f
|
| ; IASM-NEXT: .byte 0x9d
|
| ; IASM-NEXT: .byte 0xe5
|
|
|
| +; ASM-NEXT: mul r0, r0, r1
|
| +; DIS-NEXT: 14: e0000190
|
| ; IASM-NEXT: .byte 0x90
|
| ; IASM-NEXT: .byte 0x1
|
| ; IASM-NEXT: .byte 0x0
|
| ; IASM-NEXT: .byte 0xe0
|
|
|
| +; ASM-NEXT: str r0, [sp, #4084]
|
| +; DIS-NEXT: 18: e58d0ff4
|
| ; IASM-NEXT: .byte 0xf4
|
| ; IASM-NEXT: .byte 0xf
|
| ; IASM-NEXT: .byte 0x8d
|
| ; IASM-NEXT: .byte 0xe5
|
|
|
| +; ASM-NEXT: # [sp, #4084] = def.pseudo
|
| +
|
| ret i32 %mul
|
|
|
| ; ASM-NEXT: ldr r0, [sp, #4084]
|
| -; ******* Movw case to check *******
|
| -; ASM-NEXT: movw ip, #4092
|
| -; ASM-NEXT: add sp, sp, ip
|
| -; ASM-NEXT: bx lr
|
| -
|
| ; DIS-NEXT: 1c: e59d0ff4
|
| -; DIS-NEXT: 20: e300cffc
|
| -; DIS-NEXT: 24: e08dd00c
|
| -; DIS-NEXT: 28: e12fff1e
|
| -
|
| ; IASM-NEXT: .byte 0xf4
|
| ; IASM-NEXT: .byte 0xf
|
| ; IASM-NEXT: .byte 0x9d
|
| ; IASM-NEXT: .byte 0xe5
|
|
|
| +; ASM-NEXT: movw ip, #4092
|
| +; DIS-NEXT: 20: e300cffc
|
| ; IASM-NEXT: .byte 0xfc
|
| ; IASM-NEXT: .byte 0xcf
|
| ; IASM-NEXT: .byte 0x0
|
| ; IASM-NEXT: .byte 0xe3
|
|
|
| +; ASM-NEXT: add sp, sp, ip
|
| +; DIS-NEXT: 24: e08dd00c
|
| ; IASM-NEXT: .byte 0xc
|
| ; IASM-NEXT: .byte 0xd0
|
| ; IASM-NEXT: .byte 0x8d
|
| ; IASM-NEXT: .byte 0xe0
|
|
|
| +; ASM-NEXT: bx lr
|
| +; DIS-NEXT: 28: e12fff1e
|
| ; IASM-NEXT: .byte 0x1e
|
| ; IASM-NEXT: .byte 0xff
|
| ; IASM-NEXT: .byte 0x2f
|
| @@ -121,84 +117,88 @@ entry:
|
|
|
| }
|
|
|
| -define internal void @saveMinus1(i32 %loc) {
|
| -; ASM-LABEL:saveMinus1:
|
| -; DIS-LABEL:00000030 <saveMinus1>:
|
| -; IASM-LABEL:saveMinus1:
|
| +define internal void @saveConstI32(i32 %loc) {
|
| +; ASM-LABEL:saveConstI32:
|
| +; DIS-LABEL:00000030 <saveConstI32>:
|
| +; IASM-LABEL:saveConstI32:
|
|
|
| entry:
|
| -; ASM-NEXT:.LsaveMinus1$entry:
|
| +; ASM-NEXT:.LsaveConstI32$entry:
|
| +; IASM-NEXT:.LsaveConstI32$entry:
|
| +
|
| ; ASM-NEXT: movw ip, #4088
|
| ; DIS-NEXT: 30: e300cff8
|
| -; IASM-NEXT:.LsaveMinus1$entry:
|
| +; IASM-NEXT: .byte 0xf8
|
| +; IASM-NEXT: .byte 0xcf
|
| +; IASM-NEXT: .byte 0x0
|
| +; IASM-NEXT: .byte 0xe3
|
|
|
| ; ASM-NEXT: sub sp, sp, ip
|
| ; DIS-NEXT: 34: e04dd00c
|
| -; IASM-NEXT: .byte 0xf8
|
| -; IASM-NEXT: .byte 0xcf
|
| -; IASM-NEXT: .byte 0x0
|
| -; IASM-NEXT: .byte 0xe3
|
| +; IASM-NEXT: .byte 0xc
|
| +; IASM-NEXT: .byte 0xd0
|
| +; IASM-NEXT: .byte 0x4d
|
| +; IASM-NEXT: .byte 0xe0
|
|
|
| ; ASM-NEXT: str r0, [sp, #4084]
|
| -; ASM-NEXT: # [sp, #4084] = def.pseudo
|
| +; ASM-NEXT: # [sp, #4084] = def.pseudo
|
| ; DIS-NEXT: 38: e58d0ff4
|
| -; IASM-NEXT: .byte 0xc
|
| -; IASM-NEXT: .byte 0xd0
|
| -; IASM-NEXT: .byte 0x4d
|
| -; IASM-NEXT: .byte 0xe0
|
| +; IASM-NEXT: .byte 0xf4
|
| +; IASM-NEXT: .byte 0xf
|
| +; IASM-NEXT: .byte 0x8d
|
| +; IASM-NEXT: .byte 0xe5
|
|
|
| %loc.asptr = inttoptr i32 %loc to i32*
|
| - store i32 -1, i32* %loc.asptr, align 1
|
| + store i32 524289, i32* %loc.asptr, align 1
|
|
|
| ; ASM-NEXT: ldr r0, [sp, #4084]
|
| ; DIS-NEXT: 3c: e59d0ff4
|
| -; IASM-NEXT: .byte 0xf4
|
| -; IASM-NEXT: .byte 0xf
|
| -; IASM-NEXT: .byte 0x8d
|
| -; IASM-NEXT: .byte 0xe5
|
| -
|
| -; ASM-NEXT: movw r1, #65535
|
| -; DIS-NEXT: 40: e30f1fff
|
| -; IASM-NEXT: .byte 0xf4
|
| -; IASM-NEXT: .byte 0xf
|
| -; IASM-NEXT: .byte 0x9d
|
| -; IASM-NEXT: .byte 0xe5
|
| -
|
| -; ASM-NEXT: movt r1, #65535
|
| -; DIS-NEXT: 44: e34f1fff
|
| -; IASM-NEXT: .byte 0xff
|
| -; IASM-NEXT: .byte 0x1f
|
| -; IASM-NEXT: .byte 0xf
|
| -; IASM-NEXT: .byte 0xe3
|
| +; IASM-NEXT: .byte 0xf4
|
| +; IASM-NEXT: .byte 0xf
|
| +; IASM-NEXT: .byte 0x9d
|
| +; IASM-NEXT: .byte 0xe5
|
| +
|
| +; ASM-NEXT: movw r1, #1
|
| +; DIS-NEXT: 40: e3001001
|
| +; IASM-NEXT: .byte 0x1
|
| +; IASM-NEXT: .byte 0x10
|
| +; IASM-NEXT: .byte 0x0
|
| +; IASM-NEXT: .byte 0xe3
|
| +
|
| +; ASM-NEXT: movt r1, #8
|
| +; DIS-NEXT: 44: e3401008
|
| +; IASM-NEXT: .byte 0x8
|
| +; IASM-NEXT: .byte 0x10
|
| +; IASM-NEXT: .byte 0x40
|
| +; IASM-NEXT: .byte 0xe3
|
|
|
| ; ASM-NEXT: str r1, [r0]
|
| ; DIS-NEXT: 48: e5801000
|
| -; IASM-NEXT: .byte 0xff
|
| -; IASM-NEXT: .byte 0x1f
|
| -; IASM-NEXT: .byte 0x4f
|
| -; IASM-NEXT: .byte 0xe3
|
| +; IASM-NEXT: .byte 0x0
|
| +; IASM-NEXT: .byte 0x10
|
| +; IASM-NEXT: .byte 0x80
|
| +; IASM-NEXT: .byte 0xe5
|
|
|
| ret void
|
|
|
| ; ASM-NEXT: movw ip, #4088
|
| ; DIS-NEXT: 4c: e300cff8
|
| -; IASM-NEXT: .byte 0x0
|
| -; IASM-NEXT: .byte 0x10
|
| -; IASM-NEXT: .byte 0x80
|
| -; IASM-NEXT: .byte 0xe5
|
| +; IASM-NEXT: .byte 0xf8
|
| +; IASM-NEXT: .byte 0xcf
|
| +; IASM-NEXT: .byte 0x0
|
| +; IASM-NEXT: .byte 0xe3
|
|
|
| ; ASM-NEXT: add sp, sp, ip
|
| ; DIS-NEXT: 50: e08dd00c
|
| -; IASM-NEXT: .byte 0xf8
|
| -; IASM-NEXT: .byte 0xcf
|
| -; IASM-NEXT: .byte 0x0
|
| -; IASM-NEXT: .byte 0xe3
|
| +; IASM-NEXT: .byte 0xc
|
| +; IASM-NEXT: .byte 0xd0
|
| +; IASM-NEXT: .byte 0x8d
|
| +; IASM-NEXT: .byte 0xe0
|
|
|
| ; ASM-NEXT: bx lr
|
| ; DIS-NEXT: 54: e12fff1e
|
| -; IASM-NEXT: .byte 0xc
|
| -; IASM-NEXT: .byte 0xd0
|
| -; IASM-NEXT: .byte 0x8d
|
| -; IASM-NEXT: .byte 0xe0
|
| -
|
| +; IASM-NEXT: .byte 0x1e
|
| +; IASM-NEXT: .byte 0xff
|
| +; IASM-NEXT: .byte 0x2f
|
| +; IASM-NEXT: .byte 0xe1
|
| }
|
|
|