1 @ We do not bother testing simple cases, e.g. immediates where 2 @ registers belong, trailing junk at end of line. 3 .text 4x: 5 @ pc not allowed 6 bfc pc,#0,#1 7 bfi pc,r0,#0,#1 8 movw pc,#0 9 movt pc,#0 10 11 @ bitfield range limits 12 bfc r0,#0,#0 13 bfc r0,#32,#0 14 bfc r0,#0,#33 15 bfc r0,#33,#1 16 bfc r0,#32,#1 17 bfc r0,#28,#10 18 19 bfi r0,r1,#0,#0 20 bfi r0,r1,#32,#0 21 bfi r0,r1,#0,#33 22 bfi r0,r1,#33,#1 23 bfi r0,r1,#32,#1 24 bfi r0,r1,#28,#10 25 26 sbfx r0,r1,#0,#0 27 sbfx r0,r1,#32,#0 28 sbfx r0,r1,#0,#33 29 sbfx r0,r1,#33,#1 30 sbfx r0,r1,#32,#1 31 sbfx r0,r1,#28,#10 32 33 ubfx r0,r1,#0,#0 34 ubfx r0,r1,#32,#0 35 ubfx r0,r1,#0,#33 36 ubfx r0,r1,#33,#1 37 ubfx r0,r1,#32,#1 38 ubfx r0,r1,#28,#10 39 40 @ bfi accepts only #0 in Rm position 41 bfi r0,#1,#2,#3 42 43 @ mov16 range limits 44 movt r0,#65537 45 movw r0,#65537 46 movt r0,#-1 47 movw r0,#-1 48 49 @ ldsttv4 Rd == Rn (warning) 50 ldrht r0,[r0] 51 ldrsbt r0,[r0] 52 ldrsht r0,[r0] 53 strht r0,[r0] 54 55 @ Bug reported by user. GAS used to issue an error message 56 @ "r15 not allowed here" for these two instructions because 57 @ it thought that the "r2" operand was a PC-relative branch 58 @ to a label called "r2". 59 ldrex r0, r2 60 strex r1, r0, r2 61