blob: 008088d923b6bb29bce440f04c6720735fabedd5 [file] [log] [blame]
@ We do not bother testing simple cases, e.g. immediates where
@ registers belong, trailing junk at end of line.
.text
x:
@ pc not allowed
bfc pc,#0,#1
bfi pc,r0,#0,#1
movw pc,#0
movt pc,#0
@ bitfield range limits
bfc r0,#0,#0
bfc r0,#32,#0
bfc r0,#0,#33
bfc r0,#33,#1
bfc r0,#32,#1
bfc r0,#28,#10
bfi r0,r1,#0,#0
bfi r0,r1,#32,#0
bfi r0,r1,#0,#33
bfi r0,r1,#33,#1
bfi r0,r1,#32,#1
bfi r0,r1,#28,#10
sbfx r0,r1,#0,#0
sbfx r0,r1,#32,#0
sbfx r0,r1,#0,#33
sbfx r0,r1,#33,#1
sbfx r0,r1,#32,#1
sbfx r0,r1,#28,#10
ubfx r0,r1,#0,#0
ubfx r0,r1,#32,#0
ubfx r0,r1,#0,#33
ubfx r0,r1,#33,#1
ubfx r0,r1,#32,#1
ubfx r0,r1,#28,#10
@ bfi accepts only #0 in Rm position
bfi r0,#1,#2,#3
@ mov16 range limits
movt r0,#65537
movw r0,#65537
movt r0,#-1
movw r0,#-1
@ ldsttv4 Rd == Rn (warning)
ldrht r0,[r0]
ldrsbt r0,[r0]
ldrsht r0,[r0]
strht r0,[r0]
@ Bug reported by user. GAS used to issue an error message
@ "r15 not allowed here" for these two instructions because
@ it thought that the "r2" operand was a PC-relative branch
@ to a label called "r2".
ldrex r0, r2
strex r1, r0, r2
@ movs shouldn't be extened to accept UINT16 can't fit into ARM modified
@ immediate format.
movs r0, #0x0999