58 lines
2.9 KiB
ArmAsm
58 lines
2.9 KiB
ArmAsm
@ RUN: not llvm-mc -triple=thumbv7m--none-eabi < %s 2>&1 | FileCheck %s
|
|
|
|
@ These instructions all write to the PC, so are UNPREDICTABLE if they are in
|
|
@ an IT block, but not the last instruction in the block.
|
|
|
|
itttt eq
|
|
addeq pc, r0
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
addeq pc, sp, pc
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
beq.n #.+0x20
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|
|
itttt eq
|
|
beq.w #.+0x20
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
bleq sym
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
blxeq r0
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|
|
itttt eq
|
|
bxeq r0
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
ldmeq r0, {r8, pc}
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
ldmdbeq r0, {r8, pc}
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|
|
itttt eq
|
|
ldreq pc, [r0, #4]
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
ldreq pc, [r0, #-4]
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
ldreq pc, [pc, #4]
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|
|
itttt eq
|
|
ldreq pc, [r0, r1, LSL #1]
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
moveq pc, r0
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
popeq {r0, pc}
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|
|
itttt eq
|
|
popeq {r8, pc}
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
popeq {pc}
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
tbbeq [r0, r1]
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|
|
itt eq
|
|
tbheq [r0, r1, LSL #1]
|
|
@ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
|
|
nopeq
|