1 @ RUN
: llvm-mc
-mcpu
=cortex-a8
-triple thumb-unknown-unknown
-show-encoding
< %s | FileCheck
%s
5 @ CHECK
: adc
r1, r1, #171 @ encoding: [0xab,0x01,0x41,0xf1]
7 @ CHECK
: adc
r1, r1, #1179666 @ encoding: [0x12,0x11,0x41,0xf1]
9 @ CHECK
: adc
r1, r1, #872428544 @ encoding: [0x34,0x21,0x41,0xf1]
10 adc
r1, r1, #872428544
11 @ CHECK
: adc
r1, r1, #1448498774 @ encoding: [0x56,0x31,0x41,0xf1]
12 adc
r1, r1, #1448498774
13 @ CHECK
: adc
r1, r1, #66846720 @ encoding: [0x7f,0x71,0x41,0xf1]
16 @ CHECK
: mvn
r0, #187 @ encoding: [0xbb,0x00,0x6f,0xf0]
18 @ CHECK
: mvn
r0, #11141290 @ encoding: [0xaa,0x10,0x6f,0xf0]
20 @ CHECK
: mvn
r0, #-872363008 @ encoding: [0xcc,0x20,0x6f,0xf0]
22 @ CHECK
: mvn
r0, #1114112 @ encoding: [0x88,0x10,0x6f,0xf4]
25 @ CHECK
: cmp.w
r0, #11141290 @ encoding: [0xaa,0x1f,0xb0,0xf1]
27 @ CHECK
: cmp.w
r0, #-872363008 @ encoding: [0xcc,0x2f,0xb0,0xf1]
29 @ CHECK
: cmp.w
r0, #-572662307 @ encoding: [0xdd,0x3f,0xb0,0xf1]
31 @ CHECK
: cmp.w
r0, #1114112 @ encoding: [0x88,0x1f,0xb0,0xf5]
33 @ CHECK
: cmp.w
r0, r1, lsl
#5 @ encoding: [0x41,0x1f,0xb0,0xeb]
36 @ CHECK
: sxtab
r0, r1, r0 @ encoding
: [0x80,0xf0,0x41,0xfa]
37 sxtab
r0, r1, r0 @ encoding
: [0x80,0xf0,0x41,0xfa]
39 @ CHECK
: movw
r0, #65535 @ encoding: [0xff,0x70,0x4f,0xf6]
41 @ CHECK
: movw
r1, #43777 @ encoding: [0x01,0x31,0x4a,0xf6]
43 @ CHECK
: movt
r1, #427 @ encoding: [0xab,0x11,0xc0,0xf2]
45 @ CHECK
: movw
r1, #43792 @ encoding: [0x10,0x31,0x4a,0xf6]
47 @ CHECK
: movt
r1, #4267 @ encoding: [0xab,0x01,0xc0,0xf2]
49 @ CHECK
: mov.w
r0, #66846720 @ encoding: [0x7f,0x70,0x4f,0xf0]
52 @ Aliases w
/ the vanilla
'mov' mnemonic
, and explicit alternative selection.
59 @ CHECK
: mov.w
r2, #3204448256 @ encoding: [0x4f,0xf0,0x3f,0x42]
60 @ CHECK
: mov.w
r1, #256 @ encoding: [0x4f,0xf4,0x80,0x71]
61 @ CHECK
: mov
r3, #32 @ encoding: [0x20,0x23]
62 @ CHECK
: mov.w
r3, #32 @ encoding: [0x4f,0xf0,0x20,0x03]
63 @ CHECK
: movw
r3, #32 @ encoding: [0x40,0xf2,0x20,0x03]
68 @ CHECK
: rrx
r0, r0 @ encoding
: [0x30,0x00,0x4f,0xea]
71 @ CHECK
: bfc
r0, #4, #20 @ encoding: [0x17,0x10,0x6f,0xf3]
73 @ CHECK
: bfc
r0, #0, #23 @ encoding: [0x16,0x00,0x6f,0xf3]
75 @ CHECK
: bfc
r0, #12, #20 @ encoding: [0x1f,0x30,0x6f,0xf3]
78 @ CHECK
: sbfx
r0, r0, #7, #11 @ encoding: [0xca,0x10,0x40,0xf3]
80 @ CHECK
: ubfx
r0, r0, #7, #11 @ encoding: [0xca,0x10,0xc0,0xf3]
83 @ CHECK
: mla
r0, r0, r1, r2 @ encoding
: [0x01,0x20,0x00,0xfb]
85 @ CHECK
: mls
r0, r0, r1, r2 @ encoding
: [0x11,0x20,0x00,0xfb]
88 @ CHECK
: smlabt
r0, r1, r2, r0 @ encoding
: [0x12,0x00,0x11,0xfb]
91 @ CHECK
: clz
r0, r0 @ encoding
: [0x80,0xf0,0xb0,0xfa]
94 @ CHECK
: pkhbt
r0, r0, r1, lsl
#16 @ encoding: [0x01,0x40,0xc0,0xea]
95 pkhbt
r0, r0, r1, lsl
#16
96 @ CHECK
: pkhbt
r0, r0, r1, lsl
#12 @ encoding: [0x01,0x30,0xc0,0xea]
97 pkhbt
r0, r0, r1, lsl
#16
98 @ CHECK
: pkhbt
r0, r0, r1, lsl
#18 @ encoding: [0x81,0x40,0xc0,0xea]
99 pkhbt
r0, r0, r1, lsl
#18
100 @ CHECK
: pkhbt
r0, r0, r1 @ encoding
: [0x01,0x00,0xc0,0xea]
102 @ CHECK
: pkhtb
r0, r0, r1, asr
#16 @ encoding: [0x21,0x40,0xc0,0xea]
103 pkhtb
r0, r0, r1, asr
#16
104 @ CHECK
: pkhtb
r0, r0, r1, asr
#12 @ encoding: [0x21,0x30,0xc0,0xea]
105 pkhtb
r0, r0, r1, asr
#12
106 @ CHECK
: pkhtb
r0, r0, r1, asr
#18 @ encoding: [0xa1,0x40,0xc0,0xea]
107 pkhtb
r0, r0, r1, asr
#18
108 @ CHECK
: pkhtb
r0, r0, r1, asr
#22 @ encoding: [0xa1,0x50,0xc0,0xea]
109 pkhtb
r0, r0, r1, asr
#22
111 @ CHECK
: str.w
r0, [r1, #4092] @ encoding: [0xfc,0x0f,0xc1,0xf8]
112 str.w
r0, [r1, #4092]
113 @ CHECK
: str
r0, [r1, #-128] @ encoding: [0x80,0x0c,0x41,0xf8]
115 @ CHECK
: str.w
r0, [r1, r2, lsl
#2] @ encoding: [0x22,0x00,0x41,0xf8
116 str.w
r0, [r1, r2, lsl
#2]
118 @ CHECK
: ldr.w
r0, [r0, #4092] @ encoding: [0xfc,0x0f,0xd0,0xf8]
119 ldr.w
r0, [r0, #4092]
120 @ CHECK
: ldr
r0, [r0, #-128] @ encoding: [0x80,0x0c,0x50,0xf8]
122 @ CHECK
: ldr.w
r0, [r0, r1, lsl
#2] @ encoding: [0x21,0x00,0x50,0xf8]
123 ldr.w
r0, [r0, r1, lsl
#2]
125 @ CHECK
: str
r1, [r0, #16]! @ encoding: [0x10,0x1f,0x40,0xf8]
127 @ CHECK
: strh
r1, [r0, #8]! @ encoding: [0x08,0x1f,0x20,0xf8]
129 @ CHECK
: strh
r2, [r0], #-4 @ encoding: [0x04,0x29,0x20,0xf8]
131 @ CHECK
: str
r2, [r0], #-4 @ encoding: [0x04,0x29,0x40,0xf8]
134 @ CHECK
: ldr
r2, [r0, #16]! @ encoding: [0x10,0x2f,0x50,0xf8]
136 @ CHECK
: ldr
r2, [r0, #-64]! @ encoding: [0x40,0x2d,0x50,0xf8]
138 @ CHECK
: ldrsb
r2, [r0, #4]! @ encoding: [0x04,0x2f,0x10,0xf9]
141 @ CHECK
: strb.w
r0, [r1, #4092] @ encoding: [0xfc,0x0f,0x81,0xf8]
142 strb.w
r0, [r1, #4092]
143 @ CHECK
: strb
r0, [r1, #-128] @ encoding: [0x80,0x0c,0x01,0xf8]
145 @ CHECK
: strb.w
r0, [r1, r2, lsl
#2] @ encoding: [0x22,0x00,0x01,0xf8]
146 strb.w
r0, [r1, r2, lsl
#2]
147 @ CHECK
: strh.w
r0, [r1, #4092] @ encoding: [0xfc,0x0f,0xa1,0xf8]
148 strh.w
r0, [r1, #4092]
149 @ CHECK
: strh
r0, [r1, #-128] @ encoding: [0x80,0x0c,0x21,0xf8]
151 @ CHECK
: strh
r0, [r1, #-128] @ encoding: [0x80,0x0c,0x21,0xf8]
153 @ CHECK
: strh.w
r0, [r1, r2, lsl
#2] @ encoding: [0x22,0x00,0x21,0xf8]
154 strh.w
r0, [r1, r2, lsl
#2]
156 @ CHECK
: ldrb
r0, [r0, #-1] @ encoding: [0x01,0x0c,0x10,0xf8]
158 @ CHECK
: ldrb
r0, [r0, #-128] @ encoding: [0x80,0x0c,0x10,0xf8]
160 @ CHECK
: ldrb.w
r0, [r0, r1, lsl
#2] @ encoding: [0x21,0x00,0x10,0xf8]
161 ldrb.w
r0, [r0, r1, lsl
#2]
162 @ CHECK
: ldrh.w
r0, [r0, #2046] @ encoding: [0xfe,0x07,0xb0,0xf8]
163 ldrh.w
r0, [r0, #2046]
164 @ CHECK
: ldrh
r0, [r0, #-128] @ encoding: [0x80,0x0c,0x30,0xf8]
166 @ CHECK
: ldrh.w
r0, [r0, r1, lsl
#2] @ encoding: [0x21,0x00,0x30,0xf8]
167 ldrh.w
r0, [r0, r1, lsl
#2]
168 @ CHECK
: ldrsb.w
r0, [r0] @ encoding
: [0x00,0x00,0x90,0xf9]
170 @ CHECK
: ldrsh.w
r0, [r0] @ encoding
: [0x00,0x00,0xb0,0xf9]
172 @ CHECK
: bfi
r0, r0, #5, #7 @ encoding: [0x60,0xf3,0x4b,0x10]
174 @ CHECK
: isb @ encoding
: [0xbf,0xf3,0x6f,0x8f]
176 @ CHECK
: mrs
r0, cpsr @ encoding
: [0xef,0xf3,0x00,0x80]
178 @ CHECK
: vmrs
r0, fpscr @ encoding
: [0xf1,0xee,0x10,0x0a]
180 @ CHECK
: vmrs
r0, fpexc @ encoding
: [0xf8,0xee,0x10,0x0a]
182 @ CHECK
: vmrs
r0, fpsid @ encoding
: [0xf0,0xee,0x10,0x0a]
185 @ CHECK
: vmsr
fpscr, r0 @ encoding
: [0xe1,0xee,0x10,0x0a]
187 @ CHECK
: vmsr fpexc
, r0 @ encoding
: [0xe8,0xee,0x10,0x0a]
189 @ CHECK
: vmsr fpsid
, r0 @ encoding
: [0xe0,0xee,0x10,0x0a]
192 @ CHECK
: mcr2 p7
, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]
193 mcr2 p7
, #1, r5, c1, c1, #4
195 @ CHECK
: mrc2 p14
, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]
196 mrc2 p14
, #0, r1, c1, c2, #4
198 @ CHECK
: mcrr2 p7
, #1, r5, r4, c1 @ encoding: [0x44,0xfc,0x11,0x57]
199 mcrr2 p7
, #1, r5, r4, c1
201 @ CHECK
: mrrc2 p7
, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]
202 mrrc2 p7
, #1, r5, r4, c1
204 @ CHECK
: cdp2 p7
, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
205 cdp2 p7
, #1, c1, c1, c1, #4
207 @ CHECK
: clrex @ encoding
: [0xbf,0xf3,0x2f,0x8f]
210 @ CHECK
: clz
r9, r0 @ encoding
: [0xb0,0xfa,0x80,0xf9]
213 @ CHECK
: qadd
r1, r2, r3 @ encoding
: [0x83,0xfa,0x82,0xf1]
216 @ CHECK
: qsub
r1, r2, r3 @ encoding
: [0x83,0xfa,0xa2,0xf1]
219 @ CHECK
: qdadd
r1, r2, r3 @ encoding
: [0x83,0xfa,0x92,0xf1]
222 @ CHECK
: qdsub
r1, r2, r3 @ encoding
: [0x83,0xfa,0xb2,0xf1]
225 @ CHECK
: nop.w @ encoding
: [0xaf,0xf3,0x00,0x80]
228 @ CHECK
: yield.w @ encoding
: [0xaf,0xf3,0x01,0x80]
231 @ CHECK
: wfe.w @ encoding
: [0xaf,0xf3,0x02,0x80]
234 @ CHECK
: wfi.w @ encoding
: [0xaf,0xf3,0x03,0x80]
237 @ CHECK
: dmb sy @ encoding
: [0xbf,0xf3,0x5f,0x8f]
239 @ CHECK
: dmb
st @ encoding
: [0xbf,0xf3,0x5e,0x8f]
241 @ CHECK
: dmb ish @ encoding
: [0xbf,0xf3,0x5b,0x8f]
243 @ CHECK
: dmb ishst @ encoding
: [0xbf,0xf3,0x5a,0x8f]
245 @ CHECK
: dmb nsh @ encoding
: [0xbf,0xf3,0x57,0x8f]
247 @ CHECK
: dmb nshst @ encoding
: [0xbf,0xf3,0x56,0x8f]
249 @ CHECK
: dmb osh @ encoding
: [0xbf,0xf3,0x53,0x8f]
251 @ CHECK
: dmb oshst @ encoding
: [0xbf,0xf3,0x52,0x8f]
254 @ CHECK
: dsb sy @ encoding
: [0xbf,0xf3,0x4f,0x8f]
256 @ CHECK
: dsb
st @ encoding
: [0xbf,0xf3,0x4e,0x8f]
258 @ CHECK
: dsb ish @ encoding
: [0xbf,0xf3,0x4b,0x8f]
260 @ CHECK
: dsb ishst @ encoding
: [0xbf,0xf3,0x4a,0x8f]
262 @ CHECK
: dsb nsh @ encoding
: [0xbf,0xf3,0x47,0x8f]
264 @ CHECK
: dsb nshst @ encoding
: [0xbf,0xf3,0x46,0x8f]
266 @ CHECK
: dsb osh @ encoding
: [0xbf,0xf3,0x43,0x8f]
268 @ CHECK
: dsb oshst @ encoding
: [0xbf,0xf3,0x42,0x8f]
271 @ CHECK
: cpsie.w aif @ encoding
: [0xaf,0xf3,0xe0,0x84]
273 @ CHECK
: cps
#15 @ encoding: [0xaf,0xf3,0x0f,0x81]
275 @ CHECK
: cpsie.w if
, #10 @ encoding: [0xaf,0xf3,0x6a,0x85]
278 @ CHECK
: msr cpsr_fc
, r0 @ encoding
: [0x80,0xf3,0x00,0x89]
280 @ CHECK
: msr cpsr_s
, r0 @ encoding
: [0x80,0xf3,0x00,0x84]
282 @ CHECK
: msr cpsr_f
, r0 @ encoding
: [0x80,0xf3,0x00,0x88]
284 @ CHECK
: msr cpsr_fs
, r0 @ encoding
: [0x80,0xf3,0x00,0x8c]
286 @ CHECK
: msr cpsr_fc
, r0 @ encoding
: [0x80,0xf3,0x00,0x89]
288 @ CHECK
: msr cpsr_c
, r0 @ encoding
: [0x80,0xf3,0x00,0x81]
290 @ CHECK
: msr cpsr_x
, r0 @ encoding
: [0x80,0xf3,0x00,0x82]
292 @ CHECK
: msr cpsr_fc
, r0 @ encoding
: [0x80,0xf3,0x00,0x89]
294 @ CHECK
: msr cpsr_fsx
, r0 @ encoding
: [0x80,0xf3,0x00,0x8e]
296 @ CHECK
: msr spsr_fc
, r0 @ encoding
: [0x90,0xf3,0x00,0x89]
298 @ CHECK
: msr spsr_fsxc
, r0 @ encoding
: [0x90,0xf3,0x00,0x8f]
300 @ CHECK
: msr cpsr_fsxc
, r0 @ encoding
: [0x80,0xf3,0x00,0x8f]
303 @ CHECK
: strexb
r0, r1, [r2] @ encoding
: [0xc2,0xe8,0x40,0x1f]
305 @ CHECK
: strexh
r0, r1, [r2] @ encoding
: [0xc2,0xe8,0x50,0x1f]
307 @ CHECK
: strex
r0, r1, [r2] @ encoding
: [0x42,0xe8,0x00,0x10]
309 @ CHECK
: strexd
r0, r2, r3, [r1] @ encoding
: [0xc1,0xe8,0x70,0x23]
310 strexd
r0, r2, r3, [r1]
311 @ CHECK
: ldrexb
r0, [r0] @ encoding
: [0xd0,0xe8,0x4f,0x0f]
313 @ CHECK
: ldrexh
r0, [r0] @ encoding
: [0xd0,0xe8,0x5f,0x0f]
315 @ CHECK
: ldrex
r0, [r0] @ encoding
: [0x50,0xe8,0x00,0x0f]
317 @ CHECK
: ldrexd
r0, r1, [r0] @ encoding
: [0xd0,0xe8,0x7f,0x01]
319 @ CHECK
: ssat16
r0, #7, r0 @ encoding: [0x20,0xf3,0x06,0x00]
331 @ CHECK
: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
332 @ CHECK
: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
333 @ CHECK
: orr
r1, r1, #256 @ encoding: [0x41,0xf4,0x80,0x71]
334 @ CHECK
: orr
r1, r1, #256 @ encoding: [0x41,0xf4,0x80,0x71]
335 @ CHECK
: eor
r1, r1, #256 @ encoding: [0x81,0xf4,0x80,0x71]
336 @ CHECK
: eor
r1, r1, #256 @ encoding: [0x81,0xf4,0x80,0x71]
337 @ CHECK
: bic
r1, r1, #256 @ encoding: [0x21,0xf4,0x80,0x71]
338 @ CHECK
: bic
r1, r1, #256 @ encoding: [0x21,0xf4,0x80,0x71]