1 @ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s
2 @ RUN: llvm-mc -triple=thumbebv7-unknown-unknown -mcpu=cortex-a8 -show-encoding < %s | FileCheck --check-prefix=CHECK-BE %s
6 @ Check that the assembler can handle the documented syntax from the ARM ARM.
7 @ For complex constructs like shifter operands, check more thoroughly for them
8 @ once then spot check that following instructions accept the form generally.
9 @ This gives us good coverage while keeping the overall size of the test
13 @ FIXME: Some 3-operand instructions have a 2-operand assembly syntax.
18 @------------------------------------------------------------------------------
20 @------------------------------------------------------------------------------
24 adc r3, r7, #0x00550055
25 adc r8, r12, #0xaa00aa00
26 adc r9, r7, #0xa5a5a5a5
27 adc r5, r3, #0x87000000
28 adc r4, r2, #0x7f800000
29 adc r4, r2, #0x00000680
31 @ CHECK: adc r0, r1, #4 @ encoding: [0x41,0xf1,0x04,0x00]
32 @ CHECK: adcs r0, r1, #0 @ encoding: [0x51,0xf1,0x00,0x00]
33 @ CHECK: adc r1, r2, #255 @ encoding: [0x42,0xf1,0xff,0x01]
34 @ CHECK: adc r3, r7, #5570645 @ encoding: [0x47,0xf1,0x55,0x13]
35 @ CHECK: adc r8, r12, #2852170240 @ encoding: [0x4c,0xf1,0xaa,0x28]
36 @ CHECK: adc r9, r7, #2779096485 @ encoding: [0x47,0xf1,0xa5,0x39]
37 @ CHECK: adc r5, r3, #2264924160 @ encoding: [0x43,0xf1,0x07,0x45]
38 @ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44]
39 @ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64]
41 @------------------------------------------------------------------------------
43 @------------------------------------------------------------------------------
48 adc r0, r1, r3, ror #4
49 adcs r0, r1, r3, lsl #7
50 adc.w r0, r1, r3, lsr #31
51 adcs.w r0, r1, r3, asr #32
54 @ CHECK: adc.w r4, r5, r6 @ encoding: [0x45,0xeb,0x06,0x04]
55 @ CHECK: adcs.w r4, r5, r6 @ encoding: [0x55,0xeb,0x06,0x04]
56 @ CHECK: adc.w r9, r1, r3 @ encoding: [0x41,0xeb,0x03,0x09]
57 @ CHECK: adcs.w r9, r1, r3 @ encoding: [0x51,0xeb,0x03,0x09]
58 @ CHECK: adc.w r0, r1, r3, ror #4 @ encoding: [0x41,0xeb,0x33,0x10]
59 @ CHECK: adcs.w r0, r1, r3, lsl #7 @ encoding: [0x51,0xeb,0xc3,0x10]
60 @ CHECK: adc.w r0, r1, r3, lsr #31 @ encoding: [0x41,0xeb,0xd3,0x70]
61 @ CHECK: adcs.w r0, r1, r3, asr #32 @ encoding: [0x51,0xeb,0x23,0x00]
62 @ CHECK: add.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02]
65 @------------------------------------------------------------------------------
67 @------------------------------------------------------------------------------
83 add r1, r7, #0xcbcbcbcb
84 add sp, sp, #0x1fe0000
92 @ CHECK: itet eq @ encoding: [0x0a,0xbf]
93 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]
94 @ CHECK: addwne r5, r3, #1023 @ encoding: [0x03,0xf2,0xff,0x35]
95 @ CHECK: addweq r4, r5, #293 @ encoding: [0x05,0xf2,0x25,0x14]
96 @ CHECK: add.w r2, sp, #1024 @ encoding: [0x0d,0xf5,0x80,0x62]
97 @ CHECK: add.w r2, r8, #65280 @ encoding: [0x08,0xf5,0x7f,0x42]
98 @ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12]
99 @ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12]
100 @ CHECK: add.w r12, r6, #256 @ encoding: [0x06,0xf5,0x80,0x7c]
101 @ CHECK: addw r12, r6, #256 @ encoding: [0x06,0xf2,0x00,0x1c]
102 @ CHECK: adds.w r1, r2, #496 @ encoding: [0x12,0xf5,0xf8,0x71]
103 @ CHECK: add.w r2, r2, #1 @ encoding: [0x02,0xf1,0x01,0x02]
104 @ CHECK: add.w r0, r0, #32 @ encoding: [0x00,0xf1,0x20,0x00]
105 @ CHECK: adds r2, #56 @ encoding: [0x38,0x32]
106 @ CHECK: adds r2, #56 @ encoding: [0x38,0x32]
107 @ CHECK: add.w r1, r7, #3419130827 @ encoding: [0x07,0xf1,0xcb,0x31]
108 @ CHECK: add.w sp, sp, #33423360 @ encoding: [0x0d,0xf1,0xff,0x7d]
110 @ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02]
111 @ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02]
112 @ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]
113 @ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]
114 @ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]
117 @------------------------------------------------------------------------------
119 @------------------------------------------------------------------------------
121 add r5, r9, r2, asr #32
122 adds r7, r3, r1, lsl #31
123 adds.w r0, r3, r6, lsr #25
124 add.w r4, r8, r1, ror #12
128 @ CHECK: add.w r1, r2, r8 @ encoding: [0x02,0xeb,0x08,0x01]
129 @ CHECK: add.w r5, r9, r2, asr #32 @ encoding: [0x09,0xeb,0x22,0x05]
130 @ CHECK: adds.w r7, r3, r1, lsl #31 @ encoding: [0x13,0xeb,0xc1,0x77]
131 @ CHECK: adds.w r0, r3, r6, lsr #25 @ encoding: [0x13,0xeb,0x56,0x60]
132 @ CHECK: add.w r4, r8, r1, ror #12 @ encoding: [0x08,0xeb,0x31,0x34]
133 @ CHECK: add r10, r8 @ encoding: [0xc2,0x44]
134 @ CHECK: add r10, r8 @ encoding: [0xc2,0x44]
137 @------------------------------------------------------------------------------
139 @------------------------------------------------------------------------------
146 @ CHECK: subw r11, pc, #3270 @ encoding: [0xaf,0xf6,0xc6,0x4b]
147 @ CHECK: adr.w r2, #3 @ encoding: [0x0f,0xf2,0x03,0x02]
148 @ CHECK: adr.w r11, #-826 @ encoding: [0xaf,0xf2,0x3a,0x3b]
149 @ CHECK: adr.w r1, #-0 @ encoding: [0xaf,0xf2,0x00,0x01]
151 @------------------------------------------------------------------------------
153 @------------------------------------------------------------------------------
158 and r5, r4, #0xffffffff
159 ands r1, r9, #0xffffffff
161 @ CHECK: and r2, r5, #1044480 @ encoding: [0x05,0xf4,0x7f,0x22]
162 @ CHECK: ands r3, r12, #15 @ encoding: [0x1c,0xf0,0x0f,0x03]
163 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
164 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
165 @ CHECK: and r5, r4, #4294967295 @ encoding: [0x04,0xf0,0xff,0x35]
166 @ CHECK: ands r1, r9, #4294967295 @ encoding: [0x19,0xf0,0xff,0x31]
168 @------------------------------------------------------------------------------
170 @------------------------------------------------------------------------------
172 and r1, r4, r8, asr #3
173 ands r2, r1, r7, lsl #1
174 ands.w r4, r5, r2, lsr #20
175 and.w r9, r12, r1, ror #17
177 @ CHECK: and.w r4, r9, r8 @ encoding: [0x09,0xea,0x08,0x04]
178 @ CHECK: and.w r1, r4, r8, asr #3 @ encoding: [0x04,0xea,0xe8,0x01]
179 @ CHECK: ands.w r2, r1, r7, lsl #1 @ encoding: [0x11,0xea,0x47,0x02]
180 @ CHECK: ands.w r4, r5, r2, lsr #20 @ encoding: [0x15,0xea,0x12,0x54]
181 @ CHECK: and.w r9, r12, r1, ror #17 @ encoding: [0x0c,0xea,0x71,0x49]
183 @------------------------------------------------------------------------------
185 @------------------------------------------------------------------------------
197 @ CHECK: asr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x23,0x32]
198 @ CHECK: asrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x23,0x08]
199 @ CHECK: asrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x63,0x02]
200 @ CHECK: asr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x23,0x12]
201 @ CHECK: asrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xec,0x32]
203 @ CHECK: asr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xe3,0x43]
204 @ CHECK: asrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0xa8,0x08]
205 @ CHECK: asrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x67,0x17]
206 @ CHECK: asr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x6c,0x5c]
209 @------------------------------------------------------------------------------
211 @------------------------------------------------------------------------------
216 @ CHECK: asr.w r3, r4, r2 @ encoding: [0x44,0xfa,0x02,0xf3]
217 @ CHECK: asr.w r1, r1, r2 @ encoding: [0x41,0xfa,0x02,0xf1]
218 @ CHECK: asrs.w r3, r4, r8 @ encoding: [0x54,0xfa,0x08,0xf3]
221 @------------------------------------------------------------------------------
223 @------------------------------------------------------------------------------
230 @ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0x90'A']
231 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
232 @ CHECK-BE: b.w _bar @ encoding: [0xf0'A',A,0x90'A',A]
233 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
234 @ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A']
235 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch
236 @ CHECK-BE: beq.w _bar @ encoding: [0xf0'A',A,0x80'A',A]
237 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch
238 @ CHECK: it eq @ encoding: [0x08,0xbf]
239 @ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x90'A']
240 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
241 @ CHECK-BE: beq.w _bar @ encoding: [0xf0'A',A,0x90'A',A]
242 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
243 @ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9]
246 @------------------------------------------------------------------------------
248 @------------------------------------------------------------------------------
253 @ CHECK: bfc r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05]
254 @ CHECK: it lo @ encoding: [0x38,0xbf]
255 @ CHECK: bfclo r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05]
258 @------------------------------------------------------------------------------
260 @------------------------------------------------------------------------------
263 bfine r5, r2, #3, #17
265 @ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05]
266 @ CHECK: it ne @ encoding: [0x18,0xbf]
267 @ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05]
270 @------------------------------------------------------------------------------
272 @------------------------------------------------------------------------------
274 bic r5, r2, #0xffffffff
275 bics r11, r10, #0xffffffff
277 bic r11, r2, r6, lsl #12
278 bic r8, r4, r1, lsr #11
279 bic r7, r5, r7, lsr #15
280 bic r6, r7, r9, asr #32
281 bic r5, r6, r8, ror #1
283 @ destination register is optional
292 @ CHECK: bic r10, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x0a]
293 @ CHECK: bic r5, r2, #4294967295 @ encoding: [0x22,0xf0,0xff,0x35]
294 @ CHECK: bics r11, r10, #4294967295 @ encoding: [0x3a,0xf0,0xff,0x3b]
295 @ CHECK: bic.w r12, r3, r6 @ encoding: [0x23,0xea,0x06,0x0c]
296 @ CHECK: bic.w r11, r2, r6, lsl #12 @ encoding: [0x22,0xea,0x06,0x3b]
297 @ CHECK: bic.w r8, r4, r1, lsr #11 @ encoding: [0x24,0xea,0xd1,0x28]
298 @ CHECK: bic.w r7, r5, r7, lsr #15 @ encoding: [0x25,0xea,0xd7,0x37]
299 @ CHECK: bic.w r6, r7, r9, asr #32 @ encoding: [0x27,0xea,0x29,0x06]
300 @ CHECK: bic.w r5, r6, r8, ror #1 @ encoding: [0x26,0xea,0x78,0x05]
302 @ CHECK: bic r1, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x01]
303 @ CHECK: bic.w r1, r1, r1 @ encoding: [0x21,0xea,0x01,0x01]
304 @ CHECK: bic.w r4, r4, r2, lsl #31 @ encoding: [0x24,0xea,0xc2,0x74]
305 @ CHECK: bic.w r6, r6, r3, lsr #12 @ encoding: [0x26,0xea,0x13,0x36]
306 @ CHECK: bic.w r7, r7, r4, lsr #7 @ encoding: [0x27,0xea,0xd4,0x17]
307 @ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38]
308 @ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c]
310 @------------------------------------------------------------------------------
312 @------------------------------------------------------------------------------
316 @ CHECK: it pl @ encoding: [0x58,0xbf]
317 @ CHECK: bkpt #234 @ encoding: [0xea,0xbe]
319 @------------------------------------------------------------------------------
321 @------------------------------------------------------------------------------
326 @ CHECK: bxj r5 @ encoding: [0xc5,0xf3,0x00,0x8f]
327 @ CHECK: it ne @ encoding: [0x18,0xbf]
328 @ CHECK: bxjne r7 @ encoding: [0xc7,0xf3,0x00,0x8f]
331 @------------------------------------------------------------------------------
333 @------------------------------------------------------------------------------
339 @ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9]
340 @ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9]
341 @ CHECK: cbz r6, _bar @ encoding: [0x06'A',0xb1'A']
342 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
343 @ CHECK-BE: cbz r6, _bar @ encoding: [0xb1'A',0x06'A']
344 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
345 @ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A']
346 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
347 @ CHECK-BE: cbnz r6, _bar @ encoding: [0xb9'A',0x06'A']
348 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
351 @------------------------------------------------------------------------------
353 @------------------------------------------------------------------------------
354 cdp p7, #1, c1, c1, c1, #4
355 cdp2 p7, #1, c1, c1, c1, #4
357 @ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17]
358 @ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
361 @------------------------------------------------------------------------------
363 @------------------------------------------------------------------------------
368 @ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
369 @ CHECK: it ne @ encoding: [0x18,0xbf]
370 @ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f]
373 @------------------------------------------------------------------------------
375 @------------------------------------------------------------------------------
380 @ CHECK: clz r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1]
381 @ CHECK: it eq @ encoding: [0x08,0xbf]
382 @ CHECK: clzeq r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1]
385 @------------------------------------------------------------------------------
387 @------------------------------------------------------------------------------
396 @ CHECK: cmn.w r1, #15 @ encoding: [0x11,0xf1,0x0f,0x0f]
397 @ CHECK: cmn.w r8, r6 @ encoding: [0x18,0xeb,0x06,0x0f]
398 @ CHECK: cmn.w r1, r6, lsl #10 @ encoding: [0x11,0xeb,0x86,0x2f]
399 @ CHECK: cmn.w r1, r6, lsr #10 @ encoding: [0x11,0xeb,0x96,0x2f]
400 @ CHECK: cmn.w sp, r6, lsr #10 @ encoding: [0x1d,0xeb,0x96,0x2f]
401 @ CHECK: cmn.w r1, r6, asr #10 @ encoding: [0x11,0xeb,0xa6,0x2f]
402 @ CHECK: cmn.w r1, r6, ror #10 @ encoding: [0x11,0xeb,0xb6,0x2f]
405 @------------------------------------------------------------------------------
407 @------------------------------------------------------------------------------
418 @ CHECK: cmp.w r5, #65280 @ encoding: [0xb5,0xf5,0x7f,0x4f]
419 @ CHECK: cmp.w r4, r12 @ encoding: [0xb4,0xeb,0x0c,0x0f]
420 @ CHECK: cmp.w r9, r6, lsl #12 @ encoding: [0xb9,0xeb,0x06,0x3f]
421 @ CHECK: cmp.w r3, r7, lsr #31 @ encoding: [0xb3,0xeb,0xd7,0x7f]
422 @ CHECK: cmp.w sp, r6, lsr #1 @ encoding: [0xbd,0xeb,0x56,0x0f]
423 @ CHECK: cmp.w r2, r5, asr #24 @ encoding: [0xb2,0xeb,0x25,0x6f]
424 @ CHECK: cmp.w r1, r4, ror #15 @ encoding: [0xb1,0xeb,0xf4,0x3f]
425 @ CHECK: cmn.w r2, #2 @ encoding: [0x12,0xf1,0x02,0x0f]
426 @ CHECK: cmp.w r9, #1 @ encoding: [0xb9,0xf1,0x01,0x0f]
428 @------------------------------------------------------------------------------
430 @------------------------------------------------------------------------------
443 @ CHECK: cpsie f @ encoding: [0x61,0xb6]
444 @ CHECK: cpsid a @ encoding: [0x74,0xb6]
445 @ CHECK: cpsie.w f @ encoding: [0xaf,0xf3,0x20,0x84]
446 @ CHECK: cpsid.w a @ encoding: [0xaf,0xf3,0x80,0x86]
447 @ CHECK: cpsie i, #3 @ encoding: [0xaf,0xf3,0x43,0x85]
448 @ CHECK: cpsie i, #3 @ encoding: [0xaf,0xf3,0x43,0x85]
449 @ CHECK: cpsid f, #9 @ encoding: [0xaf,0xf3,0x29,0x87]
450 @ CHECK: cpsid f, #9 @ encoding: [0xaf,0xf3,0x29,0x87]
451 @ CHECK: cps #0 @ encoding: [0xaf,0xf3,0x00,0x81]
452 @ CHECK: cps #0 @ encoding: [0xaf,0xf3,0x00,0x81]
454 @------------------------------------------------------------------------------
456 @------------------------------------------------------------------------------
461 @ CHECK: dbg #5 @ encoding: [0xaf,0xf3,0xf5,0x80]
462 @ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80]
463 @ CHECK: dbg #15 @ encoding: [0xaf,0xf3,0xff,0x80]
466 @------------------------------------------------------------------------------
468 @------------------------------------------------------------------------------
500 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
501 @ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
502 @ CHECK: dmb #0xd @ encoding: [0xbf,0xf3,0x5d,0x8f]
503 @ CHECK: dmb #0xc @ encoding: [0xbf,0xf3,0x5c,0x8f]
504 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
505 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
506 @ CHECK: dmb #0x9 @ encoding: [0xbf,0xf3,0x59,0x8f]
507 @ CHECK: dmb #0x8 @ encoding: [0xbf,0xf3,0x58,0x8f]
508 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
509 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
510 @ CHECK: dmb #0x5 @ encoding: [0xbf,0xf3,0x55,0x8f]
511 @ CHECK: dmb #0x4 @ encoding: [0xbf,0xf3,0x54,0x8f]
512 @ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
513 @ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
514 @ CHECK: dmb #0x1 @ encoding: [0xbf,0xf3,0x51,0x8f]
515 @ CHECK: dmb #0x0 @ encoding: [0xbf,0xf3,0x50,0x8f]
517 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
518 @ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
519 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
520 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
521 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
522 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
523 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
524 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
525 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
526 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
527 @ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
528 @ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
529 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
532 @------------------------------------------------------------------------------
534 @------------------------------------------------------------------------------
566 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
567 @ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
568 @ CHECK: dsb #0xd @ encoding: [0xbf,0xf3,0x4d,0x8f]
569 @ CHECK: dsb #0xc @ encoding: [0xbf,0xf3,0x4c,0x8f]
570 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
571 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
572 @ CHECK: dsb #0x9 @ encoding: [0xbf,0xf3,0x49,0x8f]
573 @ CHECK: dsb #0x8 @ encoding: [0xbf,0xf3,0x48,0x8f]
574 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
575 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
576 @ CHECK: dsb #0x5 @ encoding: [0xbf,0xf3,0x45,0x8f]
577 @ CHECK: dsb #0x4 @ encoding: [0xbf,0xf3,0x44,0x8f]
578 @ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
579 @ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
580 @ CHECK: dsb #0x1 @ encoding: [0xbf,0xf3,0x41,0x8f]
581 @ CHECK: dsb #0x0 @ encoding: [0xbf,0xf3,0x40,0x8f]
583 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
584 @ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
585 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
586 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
587 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
588 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
589 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
590 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
591 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
592 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
593 @ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
594 @ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
595 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
598 @------------------------------------------------------------------------------
600 @------------------------------------------------------------------------------
603 eor r4, r5, r6, lsl #5
604 eor r4, r5, r6, lsr #5
605 eor r4, r5, r6, lsr #5
606 eor r4, r5, r6, asr #5
607 eor r4, r5, r6, ror #5
609 @ CHECK: eor r4, r5, #61440 @ encoding: [0x85,0xf4,0x70,0x44]
610 @ CHECK: eor.w r4, r5, r6 @ encoding: [0x85,0xea,0x06,0x04]
611 @ CHECK: eor.w r4, r5, r6, lsl #5 @ encoding: [0x85,0xea,0x46,0x14]
612 @ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14]
613 @ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14]
614 @ CHECK: eor.w r4, r5, r6, asr #5 @ encoding: [0x85,0xea,0x66,0x14]
615 @ CHECK: eor.w r4, r5, r6, ror #5 @ encoding: [0x85,0xea,0x76,0x14]
618 @------------------------------------------------------------------------------
620 @------------------------------------------------------------------------------
626 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
627 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
628 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
629 @ CHECK: isb #0x1 @ encoding: [0xbf,0xf3,0x61,0x8f]
632 @------------------------------------------------------------------------------
634 @------------------------------------------------------------------------------
635 @ Test encodings of a few full IT blocks, not just the IT instruction
643 @ CHECK: iteet eq @ encoding: [0x0d,0xbf]
644 @ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18]
645 @ CHECK: nopne @ encoding: [0x00,0xbf]
646 @ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b]
647 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]
649 @ Should also work for UPPER CASE condition codes.
657 @ CHECK: iteet eq @ encoding: [0x0d,0xbf]
658 @ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18]
659 @ CHECK: nopne @ encoding: [0x00,0xbf]
660 @ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b]
661 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]
663 @------------------------------------------------------------------------------
665 @------------------------------------------------------------------------------
666 ldc2 p0, c8, [r1, #4]
668 ldc2 p2, c6, [r3, #-224]
669 ldc2 p3, c5, [r4, #-120]!
670 ldc2 p4, c4, [r5], #16
671 ldc2 p5, c3, [r6], #-72
672 ldc2l p6, c2, [r7, #4]
674 ldc2l p8, c0, [r9, #-224]
675 ldc2l p9, c1, [r10, #-120]!
676 ldc2l p0, c2, [r11], #16
677 ldc2l p1, c3, [r12], #-72
679 ldc p12, c4, [r0, #4]
681 ldc p14, c6, [r2, #-224]
682 ldc p15, c7, [r3, #-120]!
683 ldc p5, c8, [r4], #16
684 ldc p4, c9, [r5], #-72
685 ldcl p3, c10, [r6, #4]
687 ldcl p1, c12, [r8, #-224]
688 ldcl p0, c13, [r9, #-120]!
689 ldcl p6, c14, [r10], #16
690 ldcl p7, c15, [r11], #-72
692 ldc2 p2, c8, [r1], { 25 }
694 @ CHECK: ldc2 p0, c8, [r1, #4] @ encoding: [0x91,0xfd,0x01,0x80]
695 @ CHECK: ldc2 p1, c7, [r2] @ encoding: [0x92,0xfd,0x00,0x71]
696 @ CHECK: ldc2 p2, c6, [r3, #-224] @ encoding: [0x13,0xfd,0x38,0x62]
697 @ CHECK: ldc2 p3, c5, [r4, #-120]! @ encoding: [0x34,0xfd,0x1e,0x53]
698 @ CHECK: ldc2 p4, c4, [r5], #16 @ encoding: [0xb5,0xfc,0x04,0x44]
699 @ CHECK: ldc2 p5, c3, [r6], #-72 @ encoding: [0x36,0xfc,0x12,0x35]
700 @ CHECK: ldc2l p6, c2, [r7, #4] @ encoding: [0xd7,0xfd,0x01,0x26]
701 @ CHECK: ldc2l p7, c1, [r8] @ encoding: [0xd8,0xfd,0x00,0x17]
702 @ CHECK: ldc2l p8, c0, [r9, #-224] @ encoding: [0x59,0xfd,0x38,0x08]
703 @ CHECK: ldc2l p9, c1, [r10, #-120]! @ encoding: [0x7a,0xfd,0x1e,0x19]
704 @ CHECK: ldc2l p0, c2, [r11], #16 @ encoding: [0xfb,0xfc,0x04,0x20]
705 @ CHECK: ldc2l p1, c3, [r12], #-72 @ encoding: [0x7c,0xfc,0x12,0x31]
707 @ CHECK: ldc p12, c4, [r0, #4] @ encoding: [0x90,0xed,0x01,0x4c]
708 @ CHECK: ldc p13, c5, [r1] @ encoding: [0x91,0xed,0x00,0x5d]
709 @ CHECK: ldc p14, c6, [r2, #-224] @ encoding: [0x12,0xed,0x38,0x6e]
710 @ CHECK: ldc p15, c7, [r3, #-120]! @ encoding: [0x33,0xed,0x1e,0x7f]
711 @ CHECK: ldc p5, c8, [r4], #16 @ encoding: [0xb4,0xec,0x04,0x85]
712 @ CHECK: ldc p4, c9, [r5], #-72 @ encoding: [0x35,0xec,0x12,0x94]
713 @ CHECK: ldcl p3, c10, [r6, #4] @ encoding: [0xd6,0xed,0x01,0xa3]
714 @ CHECK: ldcl p2, c11, [r7] @ encoding: [0xd7,0xed,0x00,0xb2]
715 @ CHECK: ldcl p1, c12, [r8, #-224] @ encoding: [0x58,0xed,0x38,0xc1]
716 @ CHECK: ldcl p0, c13, [r9, #-120]! @ encoding: [0x79,0xed,0x1e,0xd0]
717 @ CHECK: ldcl p6, c14, [r10], #16 @ encoding: [0xfa,0xec,0x04,0xe6]
718 @ CHECK: ldcl p7, c15, [r11], #-72 @ encoding: [0x7b,0xec,0x12,0xf7]
720 @ CHECK: ldc2 p2, c8, [r1], {25} @ encoding: [0x91,0xfc,0x19,0x82]
723 @------------------------------------------------------------------------------
725 @------------------------------------------------------------------------------
726 ldmia.w r4, {r4, r5, r8, r9}
728 ldmia.w r5!, {r3, r8}
729 ldm.w r4, {r4, r5, r8, r9}
735 ldmia r4, {r4, r5, r8, r9}
738 ldm r4, {r4, r5, r8, r9}
742 ldmia sp!, {r4-r11, pc}
744 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
745 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
746 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
747 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
748 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
749 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
750 @ CHECK: ldm.w r5!, {r1, r2} @ encoding: [0xb5,0xe8,0x06,0x00]
751 @ CHECK: ldm.w r2, {r1, r2} @ encoding: [0x92,0xe8,0x06,0x00]
753 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
754 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
755 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
756 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
757 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
758 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
759 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
760 @ CHECK: pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc} @ encoding: [0xbd,0xe8,0xf0,0x8f]
763 @------------------------------------------------------------------------------
765 @------------------------------------------------------------------------------
766 ldmdb r4, {r4, r5, r8, r9}
771 ldmdb.w r5!, {r3, r8}
773 @ CHECK: ldmdb r4, {r4, r5, r8, r9} @ encoding: [0x14,0xe9,0x30,0x03]
774 @ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00]
775 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]
776 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]
777 @ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00]
778 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]
781 @------------------------------------------------------------------------------
783 @------------------------------------------------------------------------------
796 @ CHECK: ldr r5, [r5, #-4] @ encoding: [0x55,0xf8,0x04,0x5c]
797 @ CHECK: ldr r5, [r6, #32] @ encoding: [0x35,0x6a]
798 @ CHECK: ldr.w r5, [r6, #33] @ encoding: [0xd6,0xf8,0x21,0x50]
799 @ CHECK: ldr.w r5, [r6, #257] @ encoding: [0xd6,0xf8,0x01,0x51]
800 @ CHECK: ldr.w pc, [r7, #257] @ encoding: [0xd7,0xf8,0x01,0xf1]
801 @ CHECK: ldr r2, [r4, #255]! @ encoding: [0x54,0xf8,0xff,0x2f]
802 @ CHECK: ldr r8, [sp, #4]! @ encoding: [0x5d,0xf8,0x04,0x8f]
803 @ CHECK: ldr lr, [sp, #-4]! @ encoding: [0x5d,0xf8,0x04,0xed]
804 @ CHECK: ldr r2, [r4], #255 @ encoding: [0x54,0xf8,0xff,0x2b]
805 @ CHECK: ldr r8, [sp], #4 @ encoding: [0x5d,0xf8,0x04,0x8b]
806 @ CHECK: ldr lr, [sp], #-4 @ encoding: [0x5d,0xf8,0x04,0xe9]
809 @------------------------------------------------------------------------------
811 @------------------------------------------------------------------------------
816 @ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A']
817 @ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
818 @ CHECK-BE: ldr.w r5, _foo @ encoding: [0xf8'A',0x5f'A',0x50'A',A]
819 @ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
820 @ CHECK: ldr.w lr, _strcmp-4 @ encoding: [0x5f'A',0xf8'A',A,0xe0'A']
821 @ CHECK: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12
822 @ CHECK-BE: ldr.w lr, _strcmp-4 @ encoding: [0xf8'A',0x5f'A',0xe0'A',A]
823 @ CHECK-BE: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12
824 @ CHECK: ldr.w sp, _foo @ encoding: [0x5f'A',0xf8'A',A,0xd0'A']
825 @ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
826 @ CHECK-BE: ldr.w sp, _foo @ encoding: [0xf8'A',0x5f'A',0xd0'A',A]
827 @ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
843 @ CHECK: ldr r7, [pc, #8] @ encoding: [0x02,0x4f]
844 @ CHECK: ldr r7, [pc, #8] @ encoding: [0x02,0x4f]
845 @ CHECK: ldr.w r7, [pc, #8] @ encoding: [0xdf,0xf8,0x08,0x70]
846 @ CHECK: ldr r4, [pc, #1020] @ encoding: [0xff,0x4c]
847 @ CHECK: ldr.w r3, [pc, #-1020] @ encoding: [0x5f,0xf8,0xfc,0x33]
848 @ CHECK: ldr.w r6, [pc, #1024] @ encoding: [0xdf,0xf8,0x00,0x64]
849 @ CHECK: ldr.w r0, [pc, #-1024] @ encoding: [0x5f,0xf8,0x00,0x04]
850 @ CHECK: ldr.w r2, [pc, #4095] @ encoding: [0xdf,0xf8,0xff,0x2f]
851 @ CHECK: ldr.w r1, [pc, #-4095] @ encoding: [0x5f,0xf8,0xff,0x1f]
852 @ CHECK: ldr.w r8, [pc, #132] @ encoding: [0xdf,0xf8,0x84,0x80]
853 @ CHECK: ldr.w pc, [pc, #256] @ encoding: [0xdf,0xf8,0x00,0xf1]
854 @ CHECK: ldr.w pc, [pc, #-400] @ encoding: [0x5f,0xf8,0x90,0xf1]
855 @ CHECK: ldr.w sp, [pc, #4] @ encoding: [0xdf,0xf8,0x04,0xd0]
863 @ CHECK: ldrb.w r9, [pc, #-0] @ encoding: [0x1f,0xf8,0x00,0x90]
864 @ CHECK: ldrsb.w r11, [pc, #-0] @ encoding: [0x1f,0xf9,0x00,0xb0]
865 @ CHECK: ldrh.w r10, [pc, #-0] @ encoding: [0x3f,0xf8,0x00,0xa0]
866 @ CHECK: ldrsh.w r1, [pc, #-0] @ encoding: [0x3f,0xf9,0x00,0x10]
867 @ CHECK: ldr.w r5, [pc, #-0] @ encoding: [0x5f,0xf8,0x00,0x50]
869 @------------------------------------------------------------------------------
871 @------------------------------------------------------------------------------
874 ldr r6, [r0, r2, lsl #3]
875 ldr r8, [r8, r2, lsl #2]
876 ldr r7, [sp, r2, lsl #1]
877 ldr r7, [sp, r2, lsl #0]
879 @ CHECK: ldr.w r1, [r8, r1] @ encoding: [0x58,0xf8,0x01,0x10]
880 @ CHECK: ldr.w r4, [r5, r2] @ encoding: [0x55,0xf8,0x02,0x40]
881 @ CHECK: ldr.w r6, [r0, r2, lsl #3] @ encoding: [0x50,0xf8,0x32,0x60]
882 @ CHECK: ldr.w r8, [r8, r2, lsl #2] @ encoding: [0x58,0xf8,0x22,0x80]
883 @ CHECK: ldr.w r7, [sp, r2, lsl #1] @ encoding: [0x5d,0xf8,0x12,0x70]
884 @ CHECK: ldr.w r7, [sp, r2] @ encoding: [0x5d,0xf8,0x02,0x70]
887 @------------------------------------------------------------------------------
889 @------------------------------------------------------------------------------
894 ldrb.w lr, [r7, #257]
902 @ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c]
903 @ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50]
904 @ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50]
905 @ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51]
906 @ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1]
907 @ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f]
908 @ CHECK: ldrb r2, [r5, #4]! @ encoding: [0x15,0xf8,0x04,0x2f]
909 @ CHECK: ldrb r1, [r4, #-4]! @ encoding: [0x14,0xf8,0x04,0x1d]
910 @ CHECK: ldrb lr, [r3], #255 @ encoding: [0x13,0xf8,0xff,0xeb]
911 @ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b]
912 @ CHECK: ldrb r3, [sp], #-4 @ encoding: [0x1d,0xf8,0x04,0x39]
915 @------------------------------------------------------------------------------
917 @------------------------------------------------------------------------------
920 ldrb r6, [r0, r2, lsl #3]
921 ldrb r8, [r8, r2, lsl #2]
922 ldrb r7, [sp, r2, lsl #1]
923 ldrb r7, [sp, r2, lsl #0]
925 @ CHECK: ldrb.w r1, [r8, r1] @ encoding: [0x18,0xf8,0x01,0x10]
926 @ CHECK: ldrb.w r4, [r5, r2] @ encoding: [0x15,0xf8,0x02,0x40]
927 @ CHECK: ldrb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0x60]
928 @ CHECK: ldrb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0x80]
929 @ CHECK: ldrb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0x70]
930 @ CHECK: ldrb.w r7, [sp, r2] @ encoding: [0x1d,0xf8,0x02,0x70]
933 @------------------------------------------------------------------------------
935 @------------------------------------------------------------------------------
941 @ CHECK: ldrbt r1, [r2] @ encoding: [0x12,0xf8,0x00,0x1e]
942 @ CHECK: ldrbt r1, [r8] @ encoding: [0x18,0xf8,0x00,0x1e]
943 @ CHECK: ldrbt r1, [r8, #3] @ encoding: [0x18,0xf8,0x03,0x1e]
944 @ CHECK: ldrbt r1, [r8, #255] @ encoding: [0x18,0xf8,0xff,0x1e]
947 @------------------------------------------------------------------------------
949 @------------------------------------------------------------------------------
950 ldrd r3, r5, [r6, #24]
951 ldrd r3, r5, [r6, #24]!
952 ldrd r3, r5, [r6], #4
953 ldrd r3, r5, [r6], #-8
955 ldrd r8, r1, [r3, #0]
956 ldrd r0, r1, [r2, #-0]
957 ldrd r0, r1, [r2, #-0]!
958 ldrd r0, r1, [r2], #-0
960 @ CHECK: ldrd r3, r5, [r6, #24] @ encoding: [0xd6,0xe9,0x06,0x35]
961 @ CHECK: ldrd r3, r5, [r6, #24]! @ encoding: [0xf6,0xe9,0x06,0x35]
962 @ CHECK: ldrd r3, r5, [r6], #4 @ encoding: [0xf6,0xe8,0x01,0x35]
963 @ CHECK: ldrd r3, r5, [r6], #-8 @ encoding: [0x76,0xe8,0x02,0x35]
964 @ CHECK: ldrd r3, r5, [r6] @ encoding: [0xd6,0xe9,0x00,0x35]
965 @ CHECK: ldrd r8, r1, [r3] @ encoding: [0xd3,0xe9,0x00,0x81]
966 @ CHECK: ldrd r0, r1, [r2, #-0] @ encoding: [0x52,0xe9,0x00,0x01]
967 @ CHECK: ldrd r0, r1, [r2, #-0]! @ encoding: [0x72,0xe9,0x00,0x01]
968 @ CHECK: ldrd r0, r1, [r2], #-0 @ encoding: [0x72,0xe8,0x00,0x01]
971 @------------------------------------------------------------------------------
972 @ FIXME: LDRD(literal)
973 @------------------------------------------------------------------------------
976 @------------------------------------------------------------------------------
977 @ LDREX/LDREXB/LDREXH/LDREXD
978 @------------------------------------------------------------------------------
986 @ CHECK: ldrex r1, [r4] @ encoding: [0x54,0xe8,0x00,0x1f]
987 @ CHECK: ldrex r8, [r4] @ encoding: [0x54,0xe8,0x00,0x8f]
988 @ CHECK: ldrex r2, [sp, #128] @ encoding: [0x5d,0xe8,0x20,0x2f]
989 @ CHECK: ldrexb r5, [r7] @ encoding: [0xd7,0xe8,0x4f,0x5f]
990 @ CHECK: ldrexh r9, [r12] @ encoding: [0xdc,0xe8,0x5f,0x9f]
991 @ CHECK: ldrexd r9, r3, [r4] @ encoding: [0xd4,0xe8,0x7f,0x93]
994 @------------------------------------------------------------------------------
996 @------------------------------------------------------------------------------
1001 ldrh.w lr, [r7, #257]
1002 ldrh r5, [r8, #255]!
1009 @ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c]
1010 @ CHECK: ldrh r5, [r6, #32] @ encoding: [0x35,0x8c]
1011 @ CHECK: ldrh.w r5, [r6, #33] @ encoding: [0xb6,0xf8,0x21,0x50]
1012 @ CHECK: ldrh.w r5, [r6, #257] @ encoding: [0xb6,0xf8,0x01,0x51]
1013 @ CHECK: ldrh.w lr, [r7, #257] @ encoding: [0xb7,0xf8,0x01,0xe1]
1014 @ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f]
1015 @ CHECK: ldrh r2, [r5, #4]! @ encoding: [0x35,0xf8,0x04,0x2f]
1016 @ CHECK: ldrh r1, [r4, #-4]! @ encoding: [0x34,0xf8,0x04,0x1d]
1017 @ CHECK: ldrh lr, [r3], #255 @ encoding: [0x33,0xf8,0xff,0xeb]
1018 @ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b]
1019 @ CHECK: ldrh r3, [sp], #-4 @ encoding: [0x3d,0xf8,0x04,0x39]
1022 @------------------------------------------------------------------------------
1024 @------------------------------------------------------------------------------
1027 ldrh r6, [r0, r2, lsl #3]
1028 ldrh r8, [r8, r2, lsl #2]
1029 ldrh r7, [sp, r2, lsl #1]
1030 ldrh r7, [sp, r2, lsl #0]
1032 @ CHECK: ldrh.w r1, [r8, r1] @ encoding: [0x38,0xf8,0x01,0x10]
1033 @ CHECK: ldrh.w r4, [r5, r2] @ encoding: [0x35,0xf8,0x02,0x40]
1034 @ CHECK: ldrh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf8,0x32,0x60]
1035 @ CHECK: ldrh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf8,0x22,0x80]
1036 @ CHECK: ldrh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf8,0x12,0x70]
1037 @ CHECK: ldrh.w r7, [sp, r2] @ encoding: [0x3d,0xf8,0x02,0x70]
1040 @------------------------------------------------------------------------------
1042 @------------------------------------------------------------------------------
1045 @ CHECK: ldrh.w r5, _bar @ encoding: [0x3f'A',0xf8'A',A,0x50'A']
1046 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1047 @ CHECK-BE: ldrh.w r5, _bar @ encoding: [0xf8'A',0x3f'A',0x50'A',A]
1048 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1051 @------------------------------------------------------------------------------
1053 @------------------------------------------------------------------------------
1057 ldrht r1, [r8, #255]
1059 @ CHECK: ldrht r1, [r2] @ encoding: [0x32,0xf8,0x00,0x1e]
1060 @ CHECK: ldrht r1, [r8] @ encoding: [0x38,0xf8,0x00,0x1e]
1061 @ CHECK: ldrht r1, [r8, #3] @ encoding: [0x38,0xf8,0x03,0x1e]
1062 @ CHECK: ldrht r1, [r8, #255] @ encoding: [0x38,0xf8,0xff,0x1e]
1065 @------------------------------------------------------------------------------
1067 @------------------------------------------------------------------------------
1071 ldrsb r5, [r6, #257]
1072 ldrsb.w lr, [r7, #257]
1074 @ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c]
1075 @ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50]
1076 @ CHECK: ldrsb.w r5, [r6, #33] @ encoding: [0x96,0xf9,0x21,0x50]
1077 @ CHECK: ldrsb.w r5, [r6, #257] @ encoding: [0x96,0xf9,0x01,0x51]
1078 @ CHECK: ldrsb.w lr, [r7, #257] @ encoding: [0x97,0xf9,0x01,0xe1]
1081 @------------------------------------------------------------------------------
1083 @------------------------------------------------------------------------------
1085 ldrsb.w r4, [r5, r2]
1086 ldrsb r6, [r0, r2, lsl #3]
1087 ldrsb r8, [r8, r2, lsl #2]
1088 ldrsb r7, [sp, r2, lsl #1]
1089 ldrsb r7, [sp, r2, lsl #0]
1090 ldrsb r5, [r8, #255]!
1092 ldrsb r1, [r4, #-4]!
1093 ldrsb lr, [r3], #255
1097 @ CHECK: ldrsb.w r1, [r8, r1] @ encoding: [0x18,0xf9,0x01,0x10]
1098 @ CHECK: ldrsb.w r4, [r5, r2] @ encoding: [0x15,0xf9,0x02,0x40]
1099 @ CHECK: ldrsb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0x60]
1100 @ CHECK: ldrsb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0x80]
1101 @ CHECK: ldrsb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0x70]
1102 @ CHECK: ldrsb.w r7, [sp, r2] @ encoding: [0x1d,0xf9,0x02,0x70]
1103 @ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f]
1104 @ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f]
1105 @ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d]
1106 @ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb]
1107 @ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b]
1108 @ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39]
1111 @------------------------------------------------------------------------------
1113 @------------------------------------------------------------------------------
1116 @ CHECK: ldrsb.w r5, _bar @ encoding: [0x1f'A',0xf9'A',A,0x50'A']
1117 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1118 @ CHECK-BE: ldrsb.w r5, _bar @ encoding: [0xf9'A',0x1f'A',0x50'A',A]
1119 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1122 @------------------------------------------------------------------------------
1124 @------------------------------------------------------------------------------
1128 ldrsbt r1, [r8, #255]
1130 @ CHECK: ldrsbt r1, [r2] @ encoding: [0x12,0xf9,0x00,0x1e]
1131 @ CHECK: ldrsbt r1, [r8] @ encoding: [0x18,0xf9,0x00,0x1e]
1132 @ CHECK: ldrsbt r1, [r8, #3] @ encoding: [0x18,0xf9,0x03,0x1e]
1133 @ CHECK: ldrsbt r1, [r8, #255] @ encoding: [0x18,0xf9,0xff,0x1e]
1136 @------------------------------------------------------------------------------
1138 @------------------------------------------------------------------------------
1142 ldrsh r5, [r6, #257]
1143 ldrsh.w lr, [r7, #257]
1145 @ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c]
1146 @ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50]
1147 @ CHECK: ldrsh.w r5, [r6, #33] @ encoding: [0xb6,0xf9,0x21,0x50]
1148 @ CHECK: ldrsh.w r5, [r6, #257] @ encoding: [0xb6,0xf9,0x01,0x51]
1149 @ CHECK: ldrsh.w lr, [r7, #257] @ encoding: [0xb7,0xf9,0x01,0xe1]
1152 @------------------------------------------------------------------------------
1154 @------------------------------------------------------------------------------
1156 ldrsh.w r4, [r5, r2]
1157 ldrsh r6, [r0, r2, lsl #3]
1158 ldrsh r8, [r8, r2, lsl #2]
1159 ldrsh r7, [sp, r2, lsl #1]
1160 ldrsh r7, [sp, r2, lsl #0]
1161 ldrsh r5, [r8, #255]!
1163 ldrsh r1, [r4, #-4]!
1164 ldrsh lr, [r3], #255
1168 @ CHECK: ldrsh.w r1, [r8, r1] @ encoding: [0x38,0xf9,0x01,0x10]
1169 @ CHECK: ldrsh.w r4, [r5, r2] @ encoding: [0x35,0xf9,0x02,0x40]
1170 @ CHECK: ldrsh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf9,0x32,0x60]
1171 @ CHECK: ldrsh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf9,0x22,0x80]
1172 @ CHECK: ldrsh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf9,0x12,0x70]
1173 @ CHECK: ldrsh.w r7, [sp, r2] @ encoding: [0x3d,0xf9,0x02,0x70]
1174 @ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f]
1175 @ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f]
1176 @ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d]
1177 @ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb]
1178 @ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b]
1179 @ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39]
1182 @------------------------------------------------------------------------------
1184 @------------------------------------------------------------------------------
1187 @ CHECK: ldrsh.w r5, _bar @ encoding: [0x3f'A',0xf9'A',A,0x50'A']
1188 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1189 @ CHECK-BE: ldrsh.w r5, _bar @ encoding: [0xf9'A',0x3f'A',0x50'A',A]
1190 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1192 @ TEMPORARILY DISABLED:
1193 @ ldrsh.w r4, [pc, #1435]
1194 @ : ldrsh.w r4, [pc, #1435] @ encoding: [0x3f,0xf9,0x9b,0x45]
1196 @------------------------------------------------------------------------------
1198 @------------------------------------------------------------------------------
1202 ldrsht r1, [r8, #255]
1204 @ CHECK: ldrsht r1, [r2] @ encoding: [0x32,0xf9,0x00,0x1e]
1205 @ CHECK: ldrsht r1, [r8] @ encoding: [0x38,0xf9,0x00,0x1e]
1206 @ CHECK: ldrsht r1, [r8, #3] @ encoding: [0x38,0xf9,0x03,0x1e]
1207 @ CHECK: ldrsht r1, [r8, #255] @ encoding: [0x38,0xf9,0xff,0x1e]
1210 @------------------------------------------------------------------------------
1212 @------------------------------------------------------------------------------
1218 @ CHECK: ldrt r1, [r2] @ encoding: [0x52,0xf8,0x00,0x1e]
1219 @ CHECK: ldrt r2, [r6] @ encoding: [0x56,0xf8,0x00,0x2e]
1220 @ CHECK: ldrt r3, [r7, #3] @ encoding: [0x57,0xf8,0x03,0x3e]
1221 @ CHECK: ldrt r4, [r9, #255] @ encoding: [0x59,0xf8,0xff,0x4e]
1224 @------------------------------------------------------------------------------
1226 @------------------------------------------------------------------------------
1238 @ CHECK: lsl.w r2, r3, #12 @ encoding: [0x4f,0xea,0x03,0x32]
1239 @ CHECK: lsls.w r8, r3, #31 @ encoding: [0x5f,0xea,0xc3,0x78]
1240 @ CHECK: lsls.w r2, r3, #1 @ encoding: [0x5f,0xea,0x43,0x02]
1241 @ CHECK: lsl.w r2, r3, #4 @ encoding: [0x4f,0xea,0x03,0x12]
1242 @ CHECK: lsls.w r2, r12, #15 @ encoding: [0x5f,0xea,0xcc,0x32]
1244 @ CHECK: lsl.w r3, r3, #19 @ encoding: [0x4f,0xea,0xc3,0x43]
1245 @ CHECK: lsls.w r8, r8, #2 @ encoding: [0x5f,0xea,0x88,0x08]
1246 @ CHECK: lsls.w r7, r7, #5 @ encoding: [0x5f,0xea,0x47,0x17]
1247 @ CHECK: lsl.w r12, r12, #21 @ encoding: [0x4f,0xea,0x4c,0x5c]
1250 @------------------------------------------------------------------------------
1252 @------------------------------------------------------------------------------
1257 @ CHECK: lsl.w r3, r4, r2 @ encoding: [0x04,0xfa,0x02,0xf3]
1258 @ CHECK: lsl.w r1, r1, r2 @ encoding: [0x01,0xfa,0x02,0xf1]
1259 @ CHECK: lsls.w r3, r4, r8 @ encoding: [0x14,0xfa,0x08,0xf3]
1262 @------------------------------------------------------------------------------
1264 @------------------------------------------------------------------------------
1276 @ CHECK: lsr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x13,0x32]
1277 @ CHECK: lsrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x13,0x08]
1278 @ CHECK: lsrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x53,0x02]
1279 @ CHECK: lsr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x13,0x12]
1280 @ CHECK: lsrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xdc,0x32]
1282 @ CHECK: lsr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xd3,0x43]
1283 @ CHECK: lsrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0x98,0x08]
1284 @ CHECK: lsrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x57,0x17]
1285 @ CHECK: lsr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x5c,0x5c]
1288 @------------------------------------------------------------------------------
1290 @------------------------------------------------------------------------------
1295 @ CHECK: lsr.w r3, r4, r2 @ encoding: [0x24,0xfa,0x02,0xf3]
1296 @ CHECK: lsr.w r1, r1, r2 @ encoding: [0x21,0xfa,0x02,0xf1]
1297 @ CHECK: lsrs.w r3, r4, r8 @ encoding: [0x34,0xfa,0x08,0xf3]
1299 @------------------------------------------------------------------------------
1301 @------------------------------------------------------------------------------
1302 mcr p7, #1, r5, c1, c1, #4
1303 mcr2 p7, #1, r5, c1, c1, #4
1304 mcr p14, #0, r4, c0, c5
1305 mcr2 p4, #2, r2, c1, c3
1307 @ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57]
1308 @ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]
1309 @ CHECK: mcr p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e]
1310 @ CHECK: mcr2 p4, #2, r2, c1, c3, #0 @ encoding: [0x41,0xfe,0x13,0x24]
1313 @------------------------------------------------------------------------------
1315 @------------------------------------------------------------------------------
1316 mcrr p7, #15, r5, r4, c1
1317 mcrr2 p7, #15, r5, r4, c1
1319 @ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57]
1320 @ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57]
1323 @------------------------------------------------------------------------------
1325 @------------------------------------------------------------------------------
1329 @ CHECK: mla r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x03,0x41]
1330 @ CHECK: mls r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x13,0x41]
1333 @------------------------------------------------------------------------------
1335 @------------------------------------------------------------------------------
1342 mov.w r0, #0x3fc0000
1344 movs.w r0, #0x3fc0000
1364 @ CHECK: movs r1, #21 @ encoding: [0x15,0x21]
1365 @ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01]
1366 @ CHECK: movs.w r8, #21 @ encoding: [0x5f,0xf0,0x15,0x08]
1367 @ CHECK: movw r0, #65535 @ encoding: [0x4f,0xf6,0xff,0x70]
1368 @ CHECK: movw r1, #43777 @ encoding: [0x4a,0xf6,0x01,0x31]
1369 @ CHECK: movw r1, #43792 @ encoding: [0x4a,0xf6,0x10,0x31]
1370 @ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70]
1371 @ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70]
1372 @ CHECK: movs.w r0, #66846720 @ encoding: [0x5f,0xf0,0x7f,0x70]
1373 @ CHECK: itte eq @ encoding: [0x06,0xbf]
1374 @ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01]
1375 @ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21]
1376 @ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01]
1377 @ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76]
1378 @ CHECK: it lo @ encoding: [0x38,0xbf]
1379 @ CHECK: movlo.w r1, #-1 @ encoding: [0x4f,0xf0,0xff,0x31]
1380 @ CHECK: mvn r3, #2 @ encoding: [0x6f,0xf0,0x02,0x03]
1381 @ CHECK: movw r11, #43981 @ encoding: [0x4a,0xf6,0xcd,0x3b]
1382 @ CHECK: movs r0, #1 @ encoding: [0x01,0x20]
1383 @ CHECK: it ne @ encoding: [0x18,0xbf]
1384 @ CHECK: movne r3, #15 @ encoding: [0x0f,0x23]
1386 @ CHECK: itt eq @ encoding: [0x04,0xbf]
1387 @ CHECK: moveq r0, #255 @ encoding: [0xff,0x20]
1388 @ CHECK: movweq r1, #256 @ encoding: [0x40,0xf2,0x00,0x11]
1390 @------------------------------------------------------------------------------
1391 @ MOV(shifted register)
1392 @------------------------------------------------------------------------------
1395 movs r6, r2, asr #32
1405 moveq r4, r4, lsl r5
1406 moveq r4, r4, lsr r5
1407 moveq r4, r4, asr r5
1408 moveq r4, r4, ror r5
1411 @ CHECK: lsl.w r6, r2, #16 @ encoding: [0x4f,0xea,0x02,0x46]
1412 @ CHECK: lsr.w r6, r2, #16 @ encoding: [0x4f,0xea,0x12,0x46]
1413 @ CHECK: asrs r6, r2, #32 @ encoding: [0x16,0x10]
1414 @ CHECK: rors.w r6, r2, #5 @ encoding: [0x5f,0xea,0x72,0x16]
1415 @ CHECK: lsls r4, r5 @ encoding: [0xac,0x40]
1416 @ CHECK: lsrs r4, r5 @ encoding: [0xec,0x40]
1417 @ CHECK: asrs r4, r5 @ encoding: [0x2c,0x41]
1418 @ CHECK: rors r4, r5 @ encoding: [0xec,0x41]
1419 @ CHECK: lsl.w r4, r4, r5 @ encoding: [0x04,0xfa,0x05,0xf4]
1420 @ CHECK: rors.w r4, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf4]
1421 @ CHECK: lsrs.w r4, r5, r6 @ encoding: [0x35,0xfa,0x06,0xf4]
1422 @ CHECK: itttt eq @ encoding: [0x01,0xbf]
1423 @ CHECK: lsleq r4, r5 @ encoding: [0xac,0x40]
1424 @ CHECK: lsreq r4, r5 @ encoding: [0xec,0x40]
1425 @ CHECK: asreq r4, r5 @ encoding: [0x2c,0x41]
1426 @ CHECK: roreq r4, r5 @ encoding: [0xec,0x41]
1427 @ CHECK: rrx r4, r4 @ encoding: [0x4f,0xea,0x34,0x04]
1430 @------------------------------------------------------------------------------
1432 @------------------------------------------------------------------------------
1438 @ CHECK: movt r3, #7 @ encoding: [0xc0,0xf2,0x07,0x03]
1439 @ CHECK: movt r6, #65535 @ encoding: [0xcf,0xf6,0xff,0x76]
1440 @ CHECK: it eq @ encoding: [0x08,0xbf]
1441 @ CHECK: movteq r4, #4080 @ encoding: [0xc0,0xf6,0xf0,0x74]
1443 @------------------------------------------------------------------------------
1445 @------------------------------------------------------------------------------
1446 mrc p14, #0, r1, c1, c2, #4
1447 mrc p15, #7, apsr_nzcv, c15, c6, #6
1448 mrc p9, #1, r1, c2, c2
1449 mrc2 p12, #3, r3, c3, c4
1450 mrc2 p14, #0, r1, c1, c2, #4
1451 mrc2 p8, #7, apsr_nzcv, c15, c0, #1
1453 @ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e]
1454 @ CHECK: mrc p15, #7, apsr_nzcv, c15, c6, #6 @ encoding: [0xff,0xee,0xd6,0xff]
1455 @ CHECK: mrc p9, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x19]
1456 @ CHECK: mrc2 p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c]
1457 @ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]
1458 @ CHECK: mrc2 p8, #7, apsr_nzcv, c15, c0, #1 @ encoding: [0xff,0xfe,0x30,0xf8]
1460 @------------------------------------------------------------------------------
1462 @------------------------------------------------------------------------------
1463 mrrc p7, #1, r5, r4, c1
1464 mrrc2 p7, #1, r5, r4, c1
1466 @ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57]
1467 @ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]
1470 @------------------------------------------------------------------------------
1472 @------------------------------------------------------------------------------
1477 @ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88]
1478 @ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88]
1479 @ CHECK: mrs r8, spsr @ encoding: [0xff,0xf3,0x00,0x88]
1482 @------------------------------------------------------------------------------
1484 @------------------------------------------------------------------------------
1501 @ CHECK: msr APSR_nzcvq, r1 @ encoding: [0x81,0xf3,0x00,0x88]
1502 @ CHECK: msr APSR_g, r2 @ encoding: [0x82,0xf3,0x00,0x84]
1503 @ CHECK: msr APSR_nzcvq, r3 @ encoding: [0x83,0xf3,0x00,0x88]
1504 @ CHECK: msr APSR_nzcvq, r4 @ encoding: [0x84,0xf3,0x00,0x88]
1505 @ CHECK: msr APSR_nzcvqg, r5 @ encoding: [0x85,0xf3,0x00,0x8c]
1506 @ CHECK: msr CPSR_fc, r6 @ encoding: [0x86,0xf3,0x00,0x89]
1507 @ CHECK: msr CPSR_c, r7 @ encoding: [0x87,0xf3,0x00,0x81]
1508 @ CHECK: msr CPSR_x, r8 @ encoding: [0x88,0xf3,0x00,0x82]
1509 @ CHECK: msr CPSR_fc, r9 @ encoding: [0x89,0xf3,0x00,0x89]
1510 @ CHECK: msr CPSR_fc, r11 @ encoding: [0x8b,0xf3,0x00,0x89]
1511 @ CHECK: msr CPSR_fsx, r12 @ encoding: [0x8c,0xf3,0x00,0x8e]
1512 @ CHECK: msr SPSR_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89]
1513 @ CHECK: msr SPSR_fsxc, r5 @ encoding: [0x95,0xf3,0x00,0x8f]
1514 @ CHECK: msr CPSR_fsxc, r8 @ encoding: [0x88,0xf3,0x00,0x8f]
1515 @ CHECK: msr CPSR_fc, r3 @ encoding: [0x83,0xf3,0x00,0x89]
1518 @------------------------------------------------------------------------------
1520 @------------------------------------------------------------------------------
1530 @ CHECK: muls r3, r4, r3 @ encoding: [0x63,0x43]
1531 @ CHECK: mul r3, r4, r3 @ encoding: [0x04,0xfb,0x03,0xf3]
1532 @ CHECK: mul r3, r4, r6 @ encoding: [0x04,0xfb,0x06,0xf3]
1533 @ CHECK: it eq @ encoding: [0x08,0xbf]
1534 @ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3]
1535 @ CHECK: it le @ encoding: [0xd8,0xbf]
1536 @ CHECK: mulle r4, r4, r8 @ encoding: [0x04,0xfb,0x08,0xf4]
1537 @ CHECK: mul r5, r6, r5 @ encoding: [0x06,0xfb,0x05,0xf5]
1540 @------------------------------------------------------------------------------
1542 @------------------------------------------------------------------------------
1551 @ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08]
1552 @ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70]
1553 @ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70]
1554 @ CHECK: itte eq @ encoding: [0x06,0xbf]
1555 @ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01]
1556 @ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]
1557 @ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]
1560 @------------------------------------------------------------------------------
1562 @------------------------------------------------------------------------------
1567 mvn.w r5, r6, asr #4
1573 @ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02]
1574 @ CHECK: mvns r2, r3 @ encoding: [0xda,0x43]
1575 @ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45]
1576 @ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25]
1577 @ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15]
1578 @ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15]
1579 @ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05]
1580 @ CHECK: it eq @ encoding: [0x08,0xbf]
1581 @ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43]
1583 @------------------------------------------------------------------------------
1585 @------------------------------------------------------------------------------
1589 @ CHECK: rsb.w r5, r2, #0 @ encoding: [0xc2,0xf1,0x00,0x05]
1590 @ CHECK: rsb.w r5, r8, #0 @ encoding: [0xc8,0xf1,0x00,0x05]
1593 @------------------------------------------------------------------------------
1595 @------------------------------------------------------------------------------
1598 @ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
1601 @------------------------------------------------------------------------------
1603 @------------------------------------------------------------------------------
1607 orn r4, r5, r6, lsl #5
1608 orns r4, r5, r6, lsr #5
1609 orn r4, r5, r6, lsr #5
1610 orns r4, r5, r6, asr #5
1611 orn r4, r5, r6, ror #5
1613 @ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44]
1614 @ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04]
1615 @ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04]
1616 @ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14]
1617 @ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14]
1618 @ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14]
1619 @ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14]
1620 @ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14]
1623 @------------------------------------------------------------------------------
1625 @------------------------------------------------------------------------------
1628 orr r4, r5, r6, lsl #5
1629 orrs r4, r5, r6, lsr #5
1630 orr r4, r5, r6, lsr #5
1631 orrs r4, r5, r6, asr #5
1632 orr r4, r5, r6, ror #5
1634 @ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44]
1635 @ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04]
1636 @ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14]
1637 @ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14]
1638 @ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14]
1639 @ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14]
1640 @ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14]
1643 @------------------------------------------------------------------------------
1645 @------------------------------------------------------------------------------
1647 pkhbt r2, r2, r3, lsl #31
1648 pkhbt r2, r2, r3, lsl #0
1649 pkhbt r2, r2, r3, lsl #15
1652 pkhtb r2, r2, r3, asr #31
1653 pkhtb r2, r2, r3, asr #15
1655 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
1656 @ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72]
1657 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
1658 @ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32]
1660 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
1661 @ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72]
1662 @ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32]
1665 @------------------------------------------------------------------------------
1667 @------------------------------------------------------------------------------
1676 @ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc]
1677 @ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0]
1678 @ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0]
1679 @ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1]
1680 @ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1]
1681 @ CHECK: pld [r1] @ encoding: [0x91,0xf8,0x00,0xf0]
1682 @ CHECK: pld [r1, #-0] @ encoding: [0x11,0xf8,0x00,0xfc]
1685 @------------------------------------------------------------------------------
1687 @------------------------------------------------------------------------------
1690 @ FIXME: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A']
1691 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
1694 @ CHECK: pld [pc, #-4095] @ encoding: [0x1f,0xf8,0xff,0xff]
1697 @------------------------------------------------------------------------------
1699 @------------------------------------------------------------------------------
1702 pld [r0, r2, lsl #3]
1703 pld [r8, r2, lsl #2]
1704 pld [sp, r2, lsl #1]
1705 pld [sp, r2, lsl #0]
1707 @ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0]
1708 @ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0]
1709 @ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0]
1710 @ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0]
1711 @ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0]
1712 @ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0]
1714 @------------------------------------------------------------------------------
1716 @------------------------------------------------------------------------------
1725 @ CHECK: pli [r5, #-4] @ encoding: [0x15,0xf9,0x04,0xfc]
1726 @ CHECK: pli [r6, #32] @ encoding: [0x96,0xf9,0x20,0xf0]
1727 @ CHECK: pli [r6, #33] @ encoding: [0x96,0xf9,0x21,0xf0]
1728 @ CHECK: pli [r6, #257] @ encoding: [0x96,0xf9,0x01,0xf1]
1729 @ CHECK: pli [r7, #257] @ encoding: [0x97,0xf9,0x01,0xf1]
1730 @ CHECK: pli [pc, #4095] @ encoding: [0x9f,0xf9,0xff,0xff]
1731 @ CHECK: pli [pc, #-4095] @ encoding: [0x1f,0xf9,0xff,0xff]
1734 @------------------------------------------------------------------------------
1736 @------------------------------------------------------------------------------
1740 @ FIXME: pli _foo @ encoding: [0x9f'A',0xf9'A',A,0xf0'A']
1741 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
1744 @------------------------------------------------------------------------------
1746 @------------------------------------------------------------------------------
1749 pli [r0, r2, lsl #3]
1750 pli [r8, r2, lsl #2]
1751 pli [sp, r2, lsl #1]
1752 pli [sp, r2, lsl #0]
1754 @ CHECK: pli [r8, r1] @ encoding: [0x18,0xf9,0x01,0xf0]
1755 @ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0]
1756 @ CHECK: pli [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0xf0]
1757 @ CHECK: pli [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0xf0]
1758 @ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0]
1759 @ CHECK: pli [sp, r2] @ encoding: [0x1d,0xf9,0x02,0xf0]
1761 @------------------------------------------------------------------------------
1763 @------------------------------------------------------------------------------
1766 @ CHECK: pop.w {r2, r9} @ encoding: [0xbd,0xe8,0x04,0x02]
1769 @------------------------------------------------------------------------------
1771 @------------------------------------------------------------------------------
1774 @ CHECK: push.w {r2, r9} @ encoding: [0x2d,0xe9,0x04,0x02]
1777 @------------------------------------------------------------------------------
1779 @------------------------------------------------------------------------------
1788 @ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]
1789 @ CHECK: qadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1]
1790 @ CHECK: qadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1]
1791 @ CHECK: itte gt @ encoding: [0xc6,0xbf]
1792 @ CHECK: qaddgt r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]
1793 @ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1]
1794 @ CHECK: qadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1]
1797 @------------------------------------------------------------------------------
1799 @------------------------------------------------------------------------------
1806 @ CHECK: qdadd r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6]
1807 @ CHECK: qdsub r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6]
1808 @ CHECK: itt hi @ encoding: [0x84,0xbf]
1809 @ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6]
1810 @ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6]
1813 @------------------------------------------------------------------------------
1815 @------------------------------------------------------------------------------
1820 @ CHECK: qsax r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9]
1821 @ CHECK: it eq @ encoding: [0x08,0xbf]
1822 @ CHECK: qsaxeq r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9]
1825 @------------------------------------------------------------------------------
1827 @------------------------------------------------------------------------------
1836 @ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]
1837 @ CHECK: qsub16 r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1]
1838 @ CHECK: qsub8 r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1]
1839 @ CHECK: itet le @ encoding: [0xd6,0xbf]
1840 @ CHECK: qsuble r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]
1841 @ CHECK: qsub16gt r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1]
1842 @ CHECK: qsub8le r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1]
1845 @------------------------------------------------------------------------------
1847 @------------------------------------------------------------------------------
1852 @ CHECK: rbit r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1]
1853 @ CHECK: it ne @ encoding: [0x18,0xbf]
1854 @ CHECK: rbitne r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1]
1857 @------------------------------------------------------------------------------
1859 @------------------------------------------------------------------------------
1866 @ CHECK: rev.w r1, r2 @ encoding: [0x92,0xfa,0x82,0xf1]
1867 @ CHECK: rev.w r2, r8 @ encoding: [0x98,0xfa,0x88,0xf2]
1868 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
1869 @ CHECK: revne r1, r2 @ encoding: [0x11,0xba]
1870 @ CHECK: revne.w r1, r8 @ encoding: [0x98,0xfa,0x88,0xf1]
1873 @------------------------------------------------------------------------------
1875 @------------------------------------------------------------------------------
1882 @ CHECK: rev16.w r1, r2 @ encoding: [0x92,0xfa,0x92,0xf1]
1883 @ CHECK: rev16.w r2, r8 @ encoding: [0x98,0xfa,0x98,0xf2]
1884 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
1885 @ CHECK: rev16ne r1, r2 @ encoding: [0x51,0xba]
1886 @ CHECK: rev16ne.w r1, r8 @ encoding: [0x98,0xfa,0x98,0xf1]
1889 @------------------------------------------------------------------------------
1891 @------------------------------------------------------------------------------
1898 @ CHECK: revsh.w r1, r2 @ encoding: [0x92,0xfa,0xb2,0xf1]
1899 @ CHECK: revsh.w r2, r8 @ encoding: [0x98,0xfa,0xb8,0xf2]
1900 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
1901 @ CHECK: revshne r1, r2 @ encoding: [0xd1,0xba]
1902 @ CHECK: revshne.w r1, r8 @ encoding: [0x98,0xfa,0xb8,0xf1]
1905 @------------------------------------------------------------------------------
1907 @------------------------------------------------------------------------------
1919 @ CHECK: ror.w r2, r3, #12 @ encoding: [0x4f,0xea,0x33,0x32]
1920 @ CHECK: rors.w r8, r3, #31 @ encoding: [0x5f,0xea,0xf3,0x78]
1921 @ CHECK: rors.w r2, r3, #1 @ encoding: [0x5f,0xea,0x73,0x02]
1922 @ CHECK: ror.w r2, r3, #4 @ encoding: [0x4f,0xea,0x33,0x12]
1923 @ CHECK: rors.w r2, r12, #15 @ encoding: [0x5f,0xea,0xfc,0x32]
1925 @ CHECK: ror.w r3, r3, #19 @ encoding: [0x4f,0xea,0xf3,0x43]
1926 @ CHECK: rors.w r8, r8, #2 @ encoding: [0x5f,0xea,0xb8,0x08]
1927 @ CHECK: rors.w r7, r7, #5 @ encoding: [0x5f,0xea,0x77,0x17]
1928 @ CHECK: ror.w r12, r12, #21 @ encoding: [0x4f,0xea,0x7c,0x5c]
1931 @------------------------------------------------------------------------------
1933 @------------------------------------------------------------------------------
1938 @ CHECK: ror.w r3, r4, r2 @ encoding: [0x64,0xfa,0x02,0xf3]
1939 @ CHECK: ror.w r1, r1, r2 @ encoding: [0x61,0xfa,0x02,0xf1]
1940 @ CHECK: rors.w r3, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf3]
1943 @------------------------------------------------------------------------------
1945 @------------------------------------------------------------------------------
1952 @ CHECK: rrx r1, r2 @ encoding: [0x4f,0xea,0x32,0x01]
1953 @ CHECK: rrxs r1, r2 @ encoding: [0x5f,0xea,0x32,0x01]
1954 @ CHECK: ite lt @ encoding: [0xb4,0xbf]
1955 @ CHECK: rrxlt r9, r12 @ encoding: [0x4f,0xea,0x3c,0x09]
1956 @ CHECK: rrxsge r8, r3 @ encoding: [0x5f,0xea,0x33,0x08]
1958 @------------------------------------------------------------------------------
1960 @------------------------------------------------------------------------------
1961 rsb r2, r5, #0xff000
1970 @ CHECK: rsb.w r2, r5, #1044480 @ encoding: [0xc5,0xf5,0x7f,0x22]
1971 @ CHECK: rsbs.w r3, r12, #15 @ encoding: [0xdc,0xf1,0x0f,0x03]
1972 @ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01]
1973 @ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01]
1974 @ CHECK: rsb.w r11, r11, #0 @ encoding: [0xcb,0xf1,0x00,0x0b]
1975 @ CHECK: rsb.w r9, r9, #0 @ encoding: [0xc9,0xf1,0x00,0x09]
1976 @ CHECK: rsbs r3, r1, #0 @ encoding: [0x4b,0x42]
1977 @ CHECK: rsb.w r3, r1, #0 @ encoding: [0xc1,0xf1,0x00,0x03]
1980 @------------------------------------------------------------------------------
1982 @------------------------------------------------------------------------------
1985 rsb r1, r4, r8, asr #3
1986 rsbs r2, r1, r7, lsl #1
1988 @ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04]
1989 @ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04]
1990 @ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01]
1991 @ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02]
1994 @------------------------------------------------------------------------------
1996 @------------------------------------------------------------------------------
2001 @ CHECK: sadd16 r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3]
2002 @ CHECK: it ne @ encoding: [0x18,0xbf]
2003 @ CHECK: sadd16ne r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3]
2006 @------------------------------------------------------------------------------
2008 @------------------------------------------------------------------------------
2013 @ CHECK: sadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3]
2014 @ CHECK: it ne @ encoding: [0x18,0xbf]
2015 @ CHECK: sadd8ne r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3]
2018 @------------------------------------------------------------------------------
2020 @------------------------------------------------------------------------------
2023 saddsubxne r2, r5, r6
2028 @ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9]
2029 @ CHECK: it ne @ encoding: [0x18,0xbf]
2030 @ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2]
2031 @ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9]
2032 @ CHECK: it ne @ encoding: [0x18,0xbf]
2033 @ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2]
2036 @------------------------------------------------------------------------------
2038 @------------------------------------------------------------------------------
2042 sbc r3, r7, #0x00550055
2043 sbc r8, r12, #0xaa00aa00
2044 sbc r9, r7, #0xa5a5a5a5
2045 sbc r5, r3, #0x87000000
2046 sbc r4, r2, #0x7f800000
2047 sbc r4, r2, #0x00000680
2049 @ CHECK: sbc r0, r1, #4 @ encoding: [0x61,0xf1,0x04,0x00]
2050 @ CHECK: sbcs r0, r1, #0 @ encoding: [0x71,0xf1,0x00,0x00]
2051 @ CHECK: sbc r1, r2, #255 @ encoding: [0x62,0xf1,0xff,0x01]
2052 @ CHECK: sbc r3, r7, #5570645 @ encoding: [0x67,0xf1,0x55,0x13]
2053 @ CHECK: sbc r8, r12, #2852170240 @ encoding: [0x6c,0xf1,0xaa,0x28]
2054 @ CHECK: sbc r9, r7, #2779096485 @ encoding: [0x67,0xf1,0xa5,0x39]
2055 @ CHECK: sbc r5, r3, #2264924160 @ encoding: [0x63,0xf1,0x07,0x45]
2056 @ CHECK: sbc r4, r2, #2139095040 @ encoding: [0x62,0xf1,0xff,0x44]
2057 @ CHECK: sbc r4, r2, #1664 @ encoding: [0x62,0xf5,0xd0,0x64]
2060 @------------------------------------------------------------------------------
2062 @------------------------------------------------------------------------------
2067 sbc r0, r1, r3, ror #4
2068 sbcs r0, r1, r3, lsl #7
2069 sbc.w r0, r1, r3, lsr #31
2070 sbcs.w r0, r1, r3, asr #32
2072 @ CHECK: sbc.w r4, r5, r6 @ encoding: [0x65,0xeb,0x06,0x04]
2073 @ CHECK: sbcs.w r4, r5, r6 @ encoding: [0x75,0xeb,0x06,0x04]
2074 @ CHECK: sbc.w r9, r1, r3 @ encoding: [0x61,0xeb,0x03,0x09]
2075 @ CHECK: sbcs.w r9, r1, r3 @ encoding: [0x71,0xeb,0x03,0x09]
2076 @ CHECK: sbc.w r0, r1, r3, ror #4 @ encoding: [0x61,0xeb,0x33,0x10]
2077 @ CHECK: sbcs.w r0, r1, r3, lsl #7 @ encoding: [0x71,0xeb,0xc3,0x10]
2078 @ CHECK: sbc.w r0, r1, r3, lsr #31 @ encoding: [0x61,0xeb,0xd3,0x70]
2079 @ CHECK: sbcs.w r0, r1, r3, asr #32 @ encoding: [0x71,0xeb,0x23,0x00]
2082 @------------------------------------------------------------------------------
2084 @------------------------------------------------------------------------------
2085 sbfx r4, r5, #16, #1
2087 sbfxgt r4, r5, #16, #16
2089 @ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x45,0xf3,0x00,0x44]
2090 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2091 @ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x45,0xf3,0x0f,0x44]
2094 @------------------------------------------------------------------------------
2096 @------------------------------------------------------------------------------
2101 @ CHECK: sel r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5]
2102 @ CHECK: it le @ encoding: [0xd8,0xbf]
2103 @ CHECK: selle r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5]
2106 @------------------------------------------------------------------------------
2108 @------------------------------------------------------------------------------
2113 @ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80]
2114 @ CHECK: it eq @ encoding: [0x08,0xbf]
2115 @ CHECK: seveq.w @ encoding: [0xaf,0xf3,0x04,0x80]
2118 @------------------------------------------------------------------------------
2120 @------------------------------------------------------------------------------
2127 @ CHECK: sadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1]
2128 @ CHECK: sadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1]
2129 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
2130 @ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1]
2131 @ CHECK: sadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1]
2134 @------------------------------------------------------------------------------
2136 @------------------------------------------------------------------------------
2140 shaddsubx r4, r8, r2
2142 shaddsubxgt r4, r8, r2
2144 @ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2145 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2146 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2147 @ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2148 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2149 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2152 @------------------------------------------------------------------------------
2154 @------------------------------------------------------------------------------
2158 shsubaddx r4, r8, r2
2160 shsubaddxgt r4, r8, r2
2162 @ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2163 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2164 @ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2165 @ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2166 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2167 @ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2170 @------------------------------------------------------------------------------
2172 @------------------------------------------------------------------------------
2176 shsub16gt r4, r8, r2
2179 @ CHECK: shsub16 r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4]
2180 @ CHECK: shsub8 r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4]
2181 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
2182 @ CHECK: shsub16gt r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4]
2183 @ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4]
2186 @------------------------------------------------------------------------------
2187 @ SMLABB/SMLABT/SMLATB/SMLATT
2188 @------------------------------------------------------------------------------
2189 smlabb r3, r1, r9, r0
2190 smlabt r5, r6, r4, r1
2191 smlatb r4, r2, r3, r2
2192 smlatt r8, r3, r8, r4
2194 smlabbgt r3, r1, r9, r0
2195 smlabtle r5, r6, r4, r1
2196 smlatbgt r4, r2, r3, r2
2197 smlattle r8, r3, r8, r4
2199 @ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03]
2200 @ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15]
2201 @ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24]
2202 @ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48]
2203 @ CHECK: itete gt @ encoding: [0xcb,0xbf]
2204 @ CHECK: smlabbgt r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03]
2205 @ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15]
2206 @ CHECK: smlatbgt r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24]
2207 @ CHECK: smlattle r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48]
2210 @------------------------------------------------------------------------------
2212 @------------------------------------------------------------------------------
2213 smlad r2, r3, r5, r8
2214 smladx r2, r3, r5, r8
2216 smladhi r2, r3, r5, r8
2217 smladxhi r2, r3, r5, r8
2219 @ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82]
2220 @ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82]
2221 @ CHECK: itt hi @ encoding: [0x84,0xbf]
2222 @ CHECK: smladhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82]
2223 @ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82]
2226 @------------------------------------------------------------------------------
2228 @------------------------------------------------------------------------------
2229 smlal r2, r3, r5, r8
2231 smlaleq r2, r3, r5, r8
2233 @ CHECK: smlal r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23]
2234 @ CHECK: it eq @ encoding: [0x08,0xbf]
2235 @ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23]
2238 @------------------------------------------------------------------------------
2239 @ SMLALBB/SMLALBT/SMLALTB/SMLALTT
2240 @------------------------------------------------------------------------------
2241 smlalbb r3, r1, r9, r0
2242 smlalbt r5, r6, r4, r1
2243 smlaltb r4, r2, r3, r2
2244 smlaltt r8, r3, r8, r4
2246 smlalbbge r3, r1, r9, r0
2247 smlalbtlt r5, r6, r4, r1
2248 smlaltblt r4, r2, r3, r2
2249 smlalttge r8, r3, r8, r4
2251 @ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31]
2252 @ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56]
2253 @ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42]
2254 @ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83]
2255 @ CHECK: iteet ge @ encoding: [0xad,0xbf]
2256 @ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31]
2257 @ CHECK: smlalbtlt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56]
2258 @ CHECK: smlaltblt r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42]
2259 @ CHECK: smlalttge r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83]
2262 @------------------------------------------------------------------------------
2264 @------------------------------------------------------------------------------
2265 smlald r2, r3, r5, r8
2266 smlaldx r2, r3, r5, r8
2268 smlaldeq r2, r3, r5, r8
2269 smlaldxne r2, r3, r5, r8
2271 @ CHECK: smlald r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23]
2272 @ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23]
2273 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2274 @ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23]
2275 @ CHECK: smlaldxne r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23]
2278 @------------------------------------------------------------------------------
2280 @------------------------------------------------------------------------------
2281 smlawb r2, r3, r10, r8
2282 smlawt r8, r3, r5, r9
2284 smlawbeq r2, r7, r5, r8
2285 smlawtne r1, r3, r0, r8
2287 @ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x33,0xfb,0x0a,0x82]
2288 @ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0x33,0xfb,0x15,0x98]
2289 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2290 @ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x37,0xfb,0x05,0x82]
2291 @ CHECK: smlawtne r1, r3, r0, r8 @ encoding: [0x33,0xfb,0x10,0x81]
2294 @------------------------------------------------------------------------------
2296 @------------------------------------------------------------------------------
2297 smlsd r2, r3, r5, r8
2298 smlsdx r2, r3, r5, r8
2300 smlsdle r2, r3, r5, r8
2301 smlsdxgt r2, r3, r5, r8
2303 @ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82]
2304 @ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82]
2305 @ CHECK: ite le @ encoding: [0xd4,0xbf]
2306 @ CHECK: smlsdle r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82]
2307 @ CHECK: smlsdxgt r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82]
2310 @------------------------------------------------------------------------------
2312 @------------------------------------------------------------------------------
2313 smlsld r2, r9, r5, r1
2314 smlsldx r4, r11, r2, r8
2316 smlsldge r8, r2, r5, r6
2317 smlsldxlt r1, r0, r3, r8
2319 @ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0xd5,0xfb,0xc1,0x29]
2320 @ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b]
2321 @ CHECK: ite ge @ encoding: [0xac,0xbf]
2322 @ CHECK: smlsldge r8, r2, r5, r6 @ encoding: [0xd5,0xfb,0xc6,0x82]
2323 @ CHECK: smlsldxlt r1, r0, r3, r8 @ encoding: [0xd3,0xfb,0xd8,0x10]
2326 @------------------------------------------------------------------------------
2328 @------------------------------------------------------------------------------
2329 smmla r1, r2, r3, r4
2330 smmlar r4, r3, r2, r1
2332 smmlalo r1, r2, r3, r4
2333 smmlarcs r4, r3, r2, r1
2335 @ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41]
2336 @ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14]
2337 @ CHECK: ite lo @ encoding: [0x34,0xbf]
2338 @ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41]
2339 @ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14]
2342 @------------------------------------------------------------------------------
2344 @------------------------------------------------------------------------------
2345 smmls r1, r2, r3, r4
2346 smmlsr r4, r3, r2, r1
2348 smmlslo r1, r2, r3, r4
2349 smmlsrcs r4, r3, r2, r1
2351 @ CHECK: smmls r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41]
2352 @ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14]
2353 @ CHECK: ite lo @ encoding: [0x34,0xbf]
2354 @ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41]
2355 @ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14]
2358 @------------------------------------------------------------------------------
2360 @------------------------------------------------------------------------------
2367 @ CHECK: smmul r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2]
2368 @ CHECK: smmulr r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3]
2369 @ CHECK: ite lo @ encoding: [0x34,0xbf]
2370 @ CHECK: smmullo r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2]
2371 @ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3]
2374 @------------------------------------------------------------------------------
2376 @------------------------------------------------------------------------------
2383 @ CHECK: smuad r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2]
2384 @ CHECK: smuadx r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3]
2385 @ CHECK: ite lt @ encoding: [0xb4,0xbf]
2386 @ CHECK: smuadlt r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2]
2387 @ CHECK: smuadxge r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3]
2390 @------------------------------------------------------------------------------
2391 @ SMULBB/SMULBT/SMULTB/SMULTT
2392 @------------------------------------------------------------------------------
2403 @ CHECK: smulbb r3, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf3]
2404 @ CHECK: smulbt r5, r4, r1 @ encoding: [0x14,0xfb,0x11,0xf5]
2405 @ CHECK: smultb r4, r2, r2 @ encoding: [0x12,0xfb,0x22,0xf4]
2406 @ CHECK: smultt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]
2407 @ CHECK: itete ge @ encoding: [0xab,0xbf]
2408 @ CHECK: smulbbge r1, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf1]
2409 @ CHECK: smulbtlt r5, r6, r4 @ encoding: [0x16,0xfb,0x14,0xf5]
2410 @ CHECK: smultbge r2, r3, r2 @ encoding: [0x13,0xfb,0x22,0xf2]
2411 @ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]
2414 @------------------------------------------------------------------------------
2416 @------------------------------------------------------------------------------
2417 smull r3, r9, r0, r1
2419 smulleq r8, r3, r4, r5
2421 @ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39]
2422 @ CHECK: it eq @ encoding: [0x08,0xbf]
2423 @ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83]
2426 @------------------------------------------------------------------------------
2428 @------------------------------------------------------------------------------
2435 @ CHECK: smulwb r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3]
2436 @ CHECK: smulwt r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3]
2437 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
2438 @ CHECK: smulwbgt r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3]
2439 @ CHECK: smulwtle r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3]
2442 @------------------------------------------------------------------------------
2444 @------------------------------------------------------------------------------
2451 @ CHECK: smusd r3, r0, r1 @ encoding: [0x40,0xfb,0x01,0xf3]
2452 @ CHECK: smusdx r3, r9, r2 @ encoding: [0x49,0xfb,0x12,0xf3]
2453 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2454 @ CHECK: smusdeq r8, r3, r2 @ encoding: [0x43,0xfb,0x02,0xf8]
2455 @ CHECK: smusdxne r7, r4, r3 @ encoding: [0x44,0xfb,0x13,0xf7]
2458 @------------------------------------------------------------------------------
2460 @------------------------------------------------------------------------------
2476 @ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0]
2477 @ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0]
2478 @ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0]
2479 @ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0]
2480 @ CHECK: srsia sp, #10 @ encoding: [0x8d,0xe9,0x0a,0xc0]
2481 @ CHECK: srsdb sp, #9 @ encoding: [0x0d,0xe8,0x09,0xc0]
2482 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2483 @ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0]
2484 @ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0]
2485 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2502 @ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0]
2503 @ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0]
2504 @ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0]
2505 @ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0]
2506 @ CHECK: srsia sp, #10 @ encoding: [0x8d,0xe9,0x0a,0xc0]
2507 @ CHECK: srsdb sp, #9 @ encoding: [0x0d,0xe8,0x09,0xc0]
2508 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2509 @ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0]
2510 @ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0]
2511 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2514 @------------------------------------------------------------------------------
2516 @------------------------------------------------------------------------------
2518 ssat r8, #1, r10, lsl #0
2519 ssat r8, #1, r10, lsl #31
2520 ssat r8, #1, r10, asr #1
2522 @ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08]
2523 @ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08]
2524 @ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x0a,0xf3,0xc0,0x78]
2525 @ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0x2a,0xf3,0x40,0x08]
2528 @------------------------------------------------------------------------------
2530 @------------------------------------------------------------------------------
2534 @ CHECK: ssat16 r2, #1, r7 @ encoding: [0x27,0xf3,0x00,0x02]
2535 @ CHECK: ssat16 r3, #16, r5 @ encoding: [0x25,0xf3,0x0f,0x03]
2538 @------------------------------------------------------------------------------
2540 @------------------------------------------------------------------------------
2543 ssubaddxlt r2, r3, r4
2548 @ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2549 @ CHECK: it lt @ encoding: [0xb8,0xbf]
2550 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2551 @ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2552 @ CHECK: it lt @ encoding: [0xb8,0xbf]
2553 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2556 @------------------------------------------------------------------------------
2558 @------------------------------------------------------------------------------
2565 @ CHECK: ssub16 r1, r0, r6 @ encoding: [0xd0,0xfa,0x06,0xf1]
2566 @ CHECK: ssub8 r9, r2, r4 @ encoding: [0xc2,0xfa,0x04,0xf9]
2567 @ CHECK: ite ne @ encoding: [0x14,0xbf]
2568 @ CHECK: ssub16ne r5, r3, r2 @ encoding: [0xd3,0xfa,0x02,0xf5]
2569 @ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xc1,0xfa,0x02,0xf5]
2572 @------------------------------------------------------------------------------
2574 @------------------------------------------------------------------------------
2575 stc2 p0, c8, [r1, #4]
2577 stc2 p2, c6, [r3, #-224]
2578 stc2 p3, c5, [r4, #-120]!
2579 stc2 p4, c4, [r5], #16
2580 stc2 p5, c3, [r6], #-72
2581 stc2l p6, c2, [r7, #4]
2583 stc2l p8, c0, [r9, #-224]
2584 stc2l p9, c1, [r10, #-120]!
2585 stc2l p0, c2, [r11], #16
2586 stc2l p1, c3, [r12], #-72
2588 stc p12, c4, [r0, #4]
2590 stc p14, c6, [r2, #-224]
2591 stc p15, c7, [r3, #-120]!
2592 stc p5, c8, [r4], #16
2593 stc p4, c9, [r5], #-72
2594 stcl p3, c10, [r6, #4]
2596 stcl p1, c12, [r8, #-224]
2597 stcl p0, c13, [r9, #-120]!
2598 stcl p6, c14, [r10], #16
2599 stcl p7, c15, [r11], #-72
2601 stc2 p2, c8, [r1], { 25 }
2603 @ CHECK: stc2 p0, c8, [r1, #4] @ encoding: [0x81,0xfd,0x01,0x80]
2604 @ CHECK: stc2 p1, c7, [r2] @ encoding: [0x82,0xfd,0x00,0x71]
2605 @ CHECK: stc2 p2, c6, [r3, #-224] @ encoding: [0x03,0xfd,0x38,0x62]
2606 @ CHECK: stc2 p3, c5, [r4, #-120]! @ encoding: [0x24,0xfd,0x1e,0x53]
2607 @ CHECK: stc2 p4, c4, [r5], #16 @ encoding: [0xa5,0xfc,0x04,0x44]
2608 @ CHECK: stc2 p5, c3, [r6], #-72 @ encoding: [0x26,0xfc,0x12,0x35]
2609 @ CHECK: stc2l p6, c2, [r7, #4] @ encoding: [0xc7,0xfd,0x01,0x26]
2610 @ CHECK: stc2l p7, c1, [r8] @ encoding: [0xc8,0xfd,0x00,0x17]
2611 @ CHECK: stc2l p8, c0, [r9, #-224] @ encoding: [0x49,0xfd,0x38,0x08]
2612 @ CHECK: stc2l p9, c1, [r10, #-120]! @ encoding: [0x6a,0xfd,0x1e,0x19]
2613 @ CHECK: stc2l p0, c2, [r11], #16 @ encoding: [0xeb,0xfc,0x04,0x20]
2614 @ CHECK: stc2l p1, c3, [r12], #-72 @ encoding: [0x6c,0xfc,0x12,0x31]
2616 @ CHECK: stc p12, c4, [r0, #4] @ encoding: [0x80,0xed,0x01,0x4c]
2617 @ CHECK: stc p13, c5, [r1] @ encoding: [0x81,0xed,0x00,0x5d]
2618 @ CHECK: stc p14, c6, [r2, #-224] @ encoding: [0x02,0xed,0x38,0x6e]
2619 @ CHECK: stc p15, c7, [r3, #-120]! @ encoding: [0x23,0xed,0x1e,0x7f]
2620 @ CHECK: stc p5, c8, [r4], #16 @ encoding: [0xa4,0xec,0x04,0x85]
2621 @ CHECK: stc p4, c9, [r5], #-72 @ encoding: [0x25,0xec,0x12,0x94]
2622 @ CHECK: stcl p3, c10, [r6, #4] @ encoding: [0xc6,0xed,0x01,0xa3]
2623 @ CHECK: stcl p2, c11, [r7] @ encoding: [0xc7,0xed,0x00,0xb2]
2624 @ CHECK: stcl p1, c12, [r8, #-224] @ encoding: [0x48,0xed,0x38,0xc1]
2625 @ CHECK: stcl p0, c13, [r9, #-120]! @ encoding: [0x69,0xed,0x1e,0xd0]
2626 @ CHECK: stcl p6, c14, [r10], #16 @ encoding: [0xea,0xec,0x04,0xe6]
2627 @ CHECK: stcl p7, c15, [r11], #-72 @ encoding: [0x6b,0xec,0x12,0xf7]
2629 @ CHECK: stc2 p2, c8, [r1], {25} @ encoding: [0x81,0xfc,0x19,0x82]
2632 @------------------------------------------------------------------------------
2634 @------------------------------------------------------------------------------
2635 stmia.w r4, {r4, r5, r8, r9}
2636 stmia.w r4, {r5, r6}
2637 stmia.w r5!, {r3, r8}
2638 stm.w r4, {r4, r5, r8, r9}
2644 stmia r4, {r4, r5, r8, r9}
2647 stm r4, {r4, r5, r8, r9}
2652 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2653 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2654 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2655 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2656 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2657 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2658 @ CHECK: stm.w r5!, {r1, r2} @ encoding: [0xa5,0xe8,0x06,0x00]
2659 @ CHECK: stm.w r2, {r1, r2} @ encoding: [0x82,0xe8,0x06,0x00]
2661 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2662 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2663 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2664 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2665 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2666 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2667 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2670 @------------------------------------------------------------------------------
2672 @------------------------------------------------------------------------------
2673 stmdb r4, {r4, r5, r8, r9}
2677 stmdb.w r5, {r0, r1}
2679 @ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03]
2680 @ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00]
2681 @ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01]
2682 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2683 @ CHECK: stmdb r5, {r0, r1} @ encoding: [0x05,0xe9,0x03,0x00]
2686 @------------------------------------------------------------------------------
2688 @------------------------------------------------------------------------------
2693 str.w pc, [r7, #257]
2701 @ CHECK: str r5, [r5, #-4] @ encoding: [0x45,0xf8,0x04,0x5c]
2702 @ CHECK: str r5, [r6, #32] @ encoding: [0x35,0x62]
2703 @ CHECK: str.w r5, [r6, #33] @ encoding: [0xc6,0xf8,0x21,0x50]
2704 @ CHECK: str.w r5, [r6, #257] @ encoding: [0xc6,0xf8,0x01,0x51]
2705 @ CHECK: str.w pc, [r7, #257] @ encoding: [0xc7,0xf8,0x01,0xf1]
2706 @ CHECK: str r2, [r4, #255]! @ encoding: [0x44,0xf8,0xff,0x2f]
2707 @ CHECK: str r8, [sp, #4]! @ encoding: [0x4d,0xf8,0x04,0x8f]
2708 @ CHECK: str lr, [sp, #-4]! @ encoding: [0x4d,0xf8,0x04,0xed]
2709 @ CHECK: str r2, [r4], #255 @ encoding: [0x44,0xf8,0xff,0x2b]
2710 @ CHECK: str r8, [sp], #4 @ encoding: [0x4d,0xf8,0x04,0x8b]
2711 @ CHECK: str lr, [sp], #-4 @ encoding: [0x4d,0xf8,0x04,0xe9]
2714 @------------------------------------------------------------------------------
2716 @------------------------------------------------------------------------------
2719 str r6, [r0, r2, lsl #3]
2720 str r8, [r8, r2, lsl #2]
2721 str r7, [sp, r2, lsl #1]
2722 str r7, [sp, r2, lsl #0]
2724 @ CHECK: str.w r1, [r8, r1] @ encoding: [0x48,0xf8,0x01,0x10]
2725 @ CHECK: str.w r4, [r5, r2] @ encoding: [0x45,0xf8,0x02,0x40]
2726 @ CHECK: str.w r6, [r0, r2, lsl #3] @ encoding: [0x40,0xf8,0x32,0x60]
2727 @ CHECK: str.w r8, [r8, r2, lsl #2] @ encoding: [0x48,0xf8,0x22,0x80]
2728 @ CHECK: str.w r7, [sp, r2, lsl #1] @ encoding: [0x4d,0xf8,0x12,0x70]
2729 @ CHECK: str.w r7, [sp, r2] @ encoding: [0x4d,0xf8,0x02,0x70]
2732 @------------------------------------------------------------------------------
2734 @------------------------------------------------------------------------------
2739 strb.w lr, [r7, #257]
2740 strb r5, [r8, #255]!
2749 @ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c]
2750 @ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50]
2751 @ CHECK: strb.w r5, [r6, #33] @ encoding: [0x86,0xf8,0x21,0x50]
2752 @ CHECK: strb.w r5, [r6, #257] @ encoding: [0x86,0xf8,0x01,0x51]
2753 @ CHECK: strb.w lr, [r7, #257] @ encoding: [0x87,0xf8,0x01,0xe1]
2754 @ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f]
2755 @ CHECK: strb r2, [r5, #4]! @ encoding: [0x05,0xf8,0x04,0x2f]
2756 @ CHECK: strb r1, [r4, #-4]! @ encoding: [0x04,0xf8,0x04,0x1d]
2757 @ CHECK: strb lr, [r3], #255 @ encoding: [0x03,0xf8,0xff,0xeb]
2758 @ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b]
2759 @ CHECK: strb r3, [sp], #-4 @ encoding: [0x0d,0xf8,0x04,0x39]
2760 @ CHECK: strb r4, [r8, #-0]! @ encoding: [0x08,0xf8,0x00,0x4d]
2761 @ CHECK: strb r1, [r0], #-0 @ encoding: [0x00,0xf8,0x00,0x19]
2764 @------------------------------------------------------------------------------
2766 @------------------------------------------------------------------------------
2769 strb r6, [r0, r2, lsl #3]
2770 strb r8, [r8, r2, lsl #2]
2771 strb r7, [sp, r2, lsl #1]
2772 strb r7, [sp, r2, lsl #0]
2774 @ CHECK: strb.w r1, [r8, r1] @ encoding: [0x08,0xf8,0x01,0x10]
2775 @ CHECK: strb.w r4, [r5, r2] @ encoding: [0x05,0xf8,0x02,0x40]
2776 @ CHECK: strb.w r6, [r0, r2, lsl #3] @ encoding: [0x00,0xf8,0x32,0x60]
2777 @ CHECK: strb.w r8, [r8, r2, lsl #2] @ encoding: [0x08,0xf8,0x22,0x80]
2778 @ CHECK: strb.w r7, [sp, r2, lsl #1] @ encoding: [0x0d,0xf8,0x12,0x70]
2779 @ CHECK: strb.w r7, [sp, r2] @ encoding: [0x0d,0xf8,0x02,0x70]
2782 @------------------------------------------------------------------------------
2784 @------------------------------------------------------------------------------
2788 strbt r1, [r8, #255]
2790 @ CHECK: strbt r1, [r2] @ encoding: [0x02,0xf8,0x00,0x1e]
2791 @ CHECK: strbt r1, [r8] @ encoding: [0x08,0xf8,0x00,0x1e]
2792 @ CHECK: strbt r1, [r8, #3] @ encoding: [0x08,0xf8,0x03,0x1e]
2793 @ CHECK: strbt r1, [r8, #255] @ encoding: [0x08,0xf8,0xff,0x1e]
2796 @------------------------------------------------------------------------------
2798 @------------------------------------------------------------------------------
2799 strd r3, r5, [r6, #24]
2800 strd r3, r5, [r6, #24]!
2801 strd r3, r5, [r6], #4
2802 strd r3, r5, [r6], #-8
2804 strd r8, r1, [r3, #0]
2805 strd r0, r1, [r2, #-0]
2806 strd r0, r1, [r2, #-0]!
2807 strd r0, r1, [r2], #-0
2808 strd r0, r1, [r2, #256]
2809 strd r0, r1, [r2, #256]!
2810 strd r0, r1, [r2], #256
2812 @ CHECK: strd r3, r5, [r6, #24] @ encoding: [0xc6,0xe9,0x06,0x35]
2813 @ CHECK: strd r3, r5, [r6, #24]! @ encoding: [0xe6,0xe9,0x06,0x35]
2814 @ CHECK: strd r3, r5, [r6], #4 @ encoding: [0xe6,0xe8,0x01,0x35]
2815 @ CHECK: strd r3, r5, [r6], #-8 @ encoding: [0x66,0xe8,0x02,0x35]
2816 @ CHECK: strd r3, r5, [r6] @ encoding: [0xc6,0xe9,0x00,0x35]
2817 @ CHECK: strd r8, r1, [r3] @ encoding: [0xc3,0xe9,0x00,0x81]
2818 @ CHECK: strd r0, r1, [r2, #-0] @ encoding: [0x42,0xe9,0x00,0x01]
2819 @ CHECK: strd r0, r1, [r2, #-0]! @ encoding: [0x62,0xe9,0x00,0x01]
2820 @ CHECK: strd r0, r1, [r2], #-0 @ encoding: [0x62,0xe8,0x00,0x01]
2821 @ CHECK: strd r0, r1, [r2, #256] @ encoding: [0xc2,0xe9,0x40,0x01]
2822 @ CHECK: strd r0, r1, [r2, #256]! @ encoding: [0xe2,0xe9,0x40,0x01]
2823 @ CHECK: strd r0, r1, [r2], #256 @ encoding: [0xe2,0xe8,0x40,0x01]
2826 @------------------------------------------------------------------------------
2827 @ STREX/STREXB/STREXH/STREXD
2828 @------------------------------------------------------------------------------
2830 strex r8, r2, [r4, #0]
2831 strex r2, r12, [sp, #128]
2833 strexh r9, r7, [r12]
2834 strexd r9, r3, r6, [r4]
2836 @ CHECK: strex r1, r8, [r4] @ encoding: [0x44,0xe8,0x00,0x81]
2837 @ CHECK: strex r8, r2, [r4] @ encoding: [0x44,0xe8,0x00,0x28]
2838 @ CHECK: strex r2, r12, [sp, #128] @ encoding: [0x4d,0xe8,0x20,0xc2]
2839 @ CHECK: strexb r5, r1, [r7] @ encoding: [0xc7,0xe8,0x45,0x1f]
2840 @ CHECK: strexh r9, r7, [r12] @ encoding: [0xcc,0xe8,0x59,0x7f]
2841 @ CHECK: strexd r9, r3, r6, [r4] @ encoding: [0xc4,0xe8,0x79,0x36]
2844 @------------------------------------------------------------------------------
2846 @------------------------------------------------------------------------------
2851 strh.w lr, [r7, #257]
2852 strh r5, [r8, #255]!
2859 @ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c]
2860 @ CHECK: strh r5, [r6, #32] @ encoding: [0x35,0x84]
2861 @ CHECK: strh.w r5, [r6, #33] @ encoding: [0xa6,0xf8,0x21,0x50]
2862 @ CHECK: strh.w r5, [r6, #257] @ encoding: [0xa6,0xf8,0x01,0x51]
2863 @ CHECK: strh.w lr, [r7, #257] @ encoding: [0xa7,0xf8,0x01,0xe1]
2864 @ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f]
2865 @ CHECK: strh r2, [r5, #4]! @ encoding: [0x25,0xf8,0x04,0x2f]
2866 @ CHECK: strh r1, [r4, #-4]! @ encoding: [0x24,0xf8,0x04,0x1d]
2867 @ CHECK: strh lr, [r3], #255 @ encoding: [0x23,0xf8,0xff,0xeb]
2868 @ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b]
2869 @ CHECK: strh r3, [sp], #-4 @ encoding: [0x2d,0xf8,0x04,0x39]
2872 @------------------------------------------------------------------------------
2874 @------------------------------------------------------------------------------
2877 strh r6, [r0, r2, lsl #3]
2878 strh r8, [r8, r2, lsl #2]
2879 strh r7, [sp, r2, lsl #1]
2880 strh r7, [sp, r2, lsl #0]
2882 @ CHECK: strh.w r1, [r8, r1] @ encoding: [0x28,0xf8,0x01,0x10]
2883 @ CHECK: strh.w r4, [r5, r2] @ encoding: [0x25,0xf8,0x02,0x40]
2884 @ CHECK: strh.w r6, [r0, r2, lsl #3] @ encoding: [0x20,0xf8,0x32,0x60]
2885 @ CHECK: strh.w r8, [r8, r2, lsl #2] @ encoding: [0x28,0xf8,0x22,0x80]
2886 @ CHECK: strh.w r7, [sp, r2, lsl #1] @ encoding: [0x2d,0xf8,0x12,0x70]
2887 @ CHECK: strh.w r7, [sp, r2] @ encoding: [0x2d,0xf8,0x02,0x70]
2890 @------------------------------------------------------------------------------
2892 @------------------------------------------------------------------------------
2896 strht r1, [r8, #255]
2898 @ CHECK: strht r1, [r2] @ encoding: [0x22,0xf8,0x00,0x1e]
2899 @ CHECK: strht r1, [r8] @ encoding: [0x28,0xf8,0x00,0x1e]
2900 @ CHECK: strht r1, [r8, #3] @ encoding: [0x28,0xf8,0x03,0x1e]
2901 @ CHECK: strht r1, [r8, #255] @ encoding: [0x28,0xf8,0xff,0x1e]
2904 @------------------------------------------------------------------------------
2906 @------------------------------------------------------------------------------
2912 @ CHECK: strt r1, [r2] @ encoding: [0x42,0xf8,0x00,0x1e]
2913 @ CHECK: strt r1, [r8] @ encoding: [0x48,0xf8,0x00,0x1e]
2914 @ CHECK: strt r1, [r8, #3] @ encoding: [0x48,0xf8,0x03,0x1e]
2915 @ CHECK: strt r1, [r8, #255] @ encoding: [0x48,0xf8,0xff,0x1e]
2918 @------------------------------------------------------------------------------
2920 @------------------------------------------------------------------------------
2923 subwne r5, r3, #1023
2930 subw r12, r6, #0x100
2937 @ CHECK: itet eq @ encoding: [0x0a,0xbf]
2938 @ CHECK: subeq r1, r2, #4 @ encoding: [0x11,0x1f]
2939 @ CHECK: subwne r5, r3, #1023 @ encoding: [0xa3,0xf2,0xff,0x35]
2940 @ CHECK: subweq r4, r5, #293 @ encoding: [0xa5,0xf2,0x25,0x14]
2941 @ CHECK: sub.w r2, sp, #1024 @ encoding: [0xad,0xf5,0x80,0x62]
2942 @ CHECK: sub.w r2, r8, #65280 @ encoding: [0xa8,0xf5,0x7f,0x42]
2943 @ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12]
2944 @ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12]
2945 @ CHECK: sub.w r12, r6, #256 @ encoding: [0xa6,0xf5,0x80,0x7c]
2946 @ CHECK: subw r12, r6, #256 @ encoding: [0xa6,0xf2,0x00,0x1c]
2947 @ CHECK: subs.w r1, r2, #496 @ encoding: [0xb2,0xf5,0xf8,0x71]
2948 @ CHECK: sub.w r2, r2, #1 @ encoding: [0xa2,0xf1,0x01,0x02]
2949 @ CHECK: sub.w r0, r0, #32 @ encoding: [0xa0,0xf1,0x20,0x00]
2950 @ CHECK: subs r2, #56 @ encoding: [0x38,0x3a]
2951 @ CHECK: subs r2, #56 @ encoding: [0x38,0x3a]
2954 @------------------------------------------------------------------------------
2956 @------------------------------------------------------------------------------
2958 sub r4, r5, r6, lsl #5
2959 sub r4, r5, r6, lsr #5
2960 sub.w r4, r5, r6, lsr #5
2961 sub r4, r5, r6, asr #5
2962 sub r4, r5, r6, ror #5
2963 sub.w r5, r2, r12, rrx
2971 @ CHECK: sub.w r4, r5, r6 @ encoding: [0xa5,0xeb,0x06,0x04]
2972 @ CHECK: sub.w r4, r5, r6, lsl #5 @ encoding: [0xa5,0xeb,0x46,0x14]
2973 @ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14]
2974 @ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14]
2975 @ CHECK: sub.w r4, r5, r6, asr #5 @ encoding: [0xa5,0xeb,0x66,0x14]
2976 @ CHECK: sub.w r4, r5, r6, ror #5 @ encoding: [0xa5,0xeb,0x76,0x14]
2977 @ CHECK: sub.w r5, r2, r12, rrx @ encoding: [0xa2,0xeb,0x3c,0x05]
2978 @ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02]
2979 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2980 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2981 @ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02]
2982 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2983 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2986 @------------------------------------------------------------------------------
2988 @------------------------------------------------------------------------------
2994 @ CHECK: svc #0 @ encoding: [0x00,0xdf]
2995 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2996 @ CHECK: svceq #255 @ encoding: [0xff,0xdf]
2997 @ CHECK: svcne #33 @ encoding: [0x21,0xdf]
3000 @------------------------------------------------------------------------------
3002 @------------------------------------------------------------------------------
3004 sxtab r4, r5, r6, ror #0
3006 sxtablt r6, r2, r9, ror #8
3007 sxtab r5, r1, r4, ror #16
3008 sxtab r7, r8, r3, ror #24
3010 @ CHECK: sxtab r2, r3, r4 @ encoding: [0x43,0xfa,0x84,0xf2]
3011 @ CHECK: sxtab r4, r5, r6 @ encoding: [0x45,0xfa,0x86,0xf4]
3012 @ CHECK: it lt @ encoding: [0xb8,0xbf]
3013 @ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x42,0xfa,0x99,0xf6]
3014 @ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x41,0xfa,0xa4,0xf5]
3015 @ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x48,0xfa,0xb3,0xf7]
3018 @------------------------------------------------------------------------------
3020 @------------------------------------------------------------------------------
3021 sxtab16 r6, r2, r7, ror #0
3022 sxtab16 r3, r5, r8, ror #8
3023 sxtab16 r3, r2, r1, ror #16
3025 sxtab16ne r0, r1, r4
3026 sxtab16eq r1, r2, r3, ror #24
3028 @ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x22,0xfa,0x87,0xf6]
3029 @ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x25,0xfa,0x98,0xf3]
3030 @ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x22,0xfa,0xa1,0xf3]
3031 @ CHECK: ite ne @ encoding: [0x14,0xbf]
3032 @ CHECK: sxtab16ne r0, r1, r4 @ encoding: [0x21,0xfa,0x84,0xf0]
3033 @ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x22,0xfa,0xb3,0xf1]
3036 @------------------------------------------------------------------------------
3038 @------------------------------------------------------------------------------
3040 sxtah r3, r8, r3, ror #8
3041 sxtah r9, r3, r3, ror #24
3043 sxtahhi r6, r1, r6, ror #0
3044 sxtahls r2, r2, r4, ror #16
3046 @ CHECK: sxtah r1, r3, r9 @ encoding: [0x03,0xfa,0x89,0xf1]
3047 @ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x08,0xfa,0x93,0xf3]
3048 @ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x03,0xfa,0xb3,0xf9]
3049 @ CHECK: ite hi @ encoding: [0x8c,0xbf]
3050 @ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x01,0xfa,0x86,0xf6]
3051 @ CHECK: sxtahls r2, r2, r4, ror #16 @ encoding: [0x02,0xfa,0xa4,0xf2]
3054 @------------------------------------------------------------------------------
3056 @------------------------------------------------------------------------------
3059 sxtb r8, r3, ror #24
3062 sxtblt r5, r1, ror #16
3065 @ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2]
3066 @ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6]
3067 @ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8]
3068 @ CHECK: ite ge @ encoding: [0xac,0xbf]
3069 @ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2]
3070 @ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
3071 @ CHECK: sxtb.w r7, r8 @ encoding: [0x4f,0xfa,0x88,0xf7]
3074 @------------------------------------------------------------------------------
3076 @------------------------------------------------------------------------------
3078 sxtb16 r6, r7, ror #0
3079 sxtb16 r3, r1, ror #16
3081 sxtb16cs r3, r5, ror #8
3082 sxtb16lo r2, r3, ror #24
3084 @ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1]
3085 @ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6]
3086 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3]
3087 @ CHECK: ite hs @ encoding: [0x2c,0xbf]
3088 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3]
3089 @ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
3092 @------------------------------------------------------------------------------
3094 @------------------------------------------------------------------------------
3097 sxth r9, r3, ror #24
3100 sxthne r2, r2, ror #16
3103 @ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2]
3104 @ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3]
3105 @ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9]
3106 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
3107 @ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3]
3108 @ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
3109 @ CHECK: sxth.w r7, r8 @ encoding: [0x0f,0xfa,0x88,0xf7]
3112 @------------------------------------------------------------------------------
3114 @------------------------------------------------------------------------------
3116 sxtb.w r6, r9, ror #8
3117 sxtb r8, r3, ror #24
3120 sxtblt r5, r1, ror #16
3122 @ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2]
3123 @ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6]
3124 @ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8]
3125 @ CHECK: ite ge @ encoding: [0xac,0xbf]
3126 @ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2]
3127 @ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
3130 @------------------------------------------------------------------------------
3132 @------------------------------------------------------------------------------
3134 sxtb16 r6, r7, ror #0
3135 sxtb16 r3, r1, ror #16
3137 sxtb16cs r3, r5, ror #8
3138 sxtb16lo r2, r3, ror #24
3140 @ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1]
3141 @ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6]
3142 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3]
3143 @ CHECK: ite hs @ encoding: [0x2c,0xbf]
3144 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3]
3145 @ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
3148 @------------------------------------------------------------------------------
3150 @------------------------------------------------------------------------------
3152 sxth.w r3, r8, ror #8
3153 sxth r9, r3, ror #24
3156 sxthne r2, r2, ror #16
3158 @ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2]
3159 @ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3]
3160 @ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9]
3161 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
3162 @ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3]
3163 @ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
3166 @------------------------------------------------------------------------------
3168 @------------------------------------------------------------------------------
3170 tbh [r3, r8, lsl #1]
3174 tbhcs [r3, r8, lsl #1]
3176 @ CHECK: tbb [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0]
3177 @ CHECK: tbh [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0]
3178 @ CHECK: it eq @ encoding: [0x08,0xbf]
3179 @ CHECK: tbbeq [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0]
3180 @ CHECK: it hs @ encoding: [0x28,0xbf]
3181 @ CHECK: tbhhs [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0]
3184 @------------------------------------------------------------------------------
3186 @------------------------------------------------------------------------------
3195 @ CHECK: teq.w r5, #61440 @ encoding: [0x95,0xf4,0x70,0x4f]
3196 @ CHECK: teq.w r4, r5 @ encoding: [0x94,0xea,0x05,0x0f]
3197 @ CHECK: teq.w r4, r5, lsl #5 @ encoding: [0x94,0xea,0x45,0x1f]
3198 @ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f]
3199 @ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f]
3200 @ CHECK: teq.w r4, r5, asr #5 @ encoding: [0x94,0xea,0x65,0x1f]
3201 @ CHECK: teq.w r4, r5, ror #5 @ encoding: [0x94,0xea,0x75,0x1f]
3204 @------------------------------------------------------------------------------
3206 @------------------------------------------------------------------------------
3211 tst r5, r10, lsr #12
3215 @ CHECK: tst.w r5, #61440 @ encoding: [0x15,0xf4,0x70,0x4f]
3216 @ CHECK: tst r2, r5 @ encoding: [0x2a,0x42]
3217 @ CHECK: tst.w r3, r12, lsl #5 @ encoding: [0x13,0xea,0x4c,0x1f]
3218 @ CHECK: tst.w r4, r11, lsr #4 @ encoding: [0x14,0xea,0x1b,0x1f]
3219 @ CHECK: tst.w r5, r10, lsr #12 @ encoding: [0x15,0xea,0x1a,0x3f]
3220 @ CHECK: tst.w r6, r9, asr #30 @ encoding: [0x16,0xea,0xa9,0x7f]
3221 @ CHECK: tst.w r7, r8, ror #2 @ encoding: [0x17,0xea,0xb8,0x0f]
3224 @------------------------------------------------------------------------------
3226 @------------------------------------------------------------------------------
3233 @ CHECK: uadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1]
3234 @ CHECK: uadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1]
3235 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3236 @ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1]
3237 @ CHECK: uadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1]
3240 @------------------------------------------------------------------------------
3242 @------------------------------------------------------------------------------
3246 uaddsubx r9, r12, r0
3248 uaddsubxeq r9, r12, r0
3250 @ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3251 @ CHECK: it eq @ encoding: [0x08,0xbf]
3252 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3253 @ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3254 @ CHECK: it eq @ encoding: [0x08,0xbf]
3255 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3258 @------------------------------------------------------------------------------
3260 @------------------------------------------------------------------------------
3261 ubfx r4, r5, #16, #1
3263 ubfxgt r4, r5, #16, #16
3265 @ CHECK: ubfx r4, r5, #16, #1 @ encoding: [0xc5,0xf3,0x00,0x44]
3266 @ CHECK: it gt @ encoding: [0xc8,0xbf]
3267 @ CHECK: ubfxgt r4, r5, #16, #16 @ encoding: [0xc5,0xf3,0x0f,0x44]
3270 @------------------------------------------------------------------------------
3272 @------------------------------------------------------------------------------
3276 uhadd16gt r4, r8, r2
3279 @ CHECK: uhadd16 r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4]
3280 @ CHECK: uhadd8 r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4]
3281 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
3282 @ CHECK: uhadd16gt r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4]
3283 @ CHECK: uhadd8gt r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4]
3286 @------------------------------------------------------------------------------
3288 @------------------------------------------------------------------------------
3294 uhaddsubx r4, r1, r5
3295 uhsubaddx r5, r6, r6
3297 uhaddsubxgt r6, r9, r8
3298 uhsubaddxgt r7, r8, r12
3300 @ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4]
3301 @ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5]
3302 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
3303 @ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6]
3304 @ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7]
3305 @ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4]
3306 @ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5]
3307 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
3308 @ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6]
3309 @ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7]
3312 @------------------------------------------------------------------------------
3314 @------------------------------------------------------------------------------
3318 uhsub16lt r4, r9, r12
3321 @ CHECK: uhsub16 r5, r8, r3 @ encoding: [0xd8,0xfa,0x63,0xf5]
3322 @ CHECK: uhsub8 r1, r7, r6 @ encoding: [0xc7,0xfa,0x66,0xf1]
3323 @ CHECK: itt lt @ encoding: [0xbc,0xbf]
3324 @ CHECK: uhsub16lt r4, r9, r12 @ encoding: [0xd9,0xfa,0x6c,0xf4]
3325 @ CHECK: uhsub8lt r3, r1, r5 @ encoding: [0xc1,0xfa,0x65,0xf3]
3328 @------------------------------------------------------------------------------
3330 @------------------------------------------------------------------------------
3331 umaal r3, r4, r5, r6
3333 umaallt r3, r4, r5, r6
3335 @ CHECK: umaal r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34]
3336 @ CHECK: it lt @ encoding: [0xb8,0xbf]
3337 @ CHECK: umaallt r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34]
3340 @------------------------------------------------------------------------------
3342 @------------------------------------------------------------------------------
3343 umlal r2, r4, r6, r8
3345 umlalgt r6, r1, r2, r6
3347 @ CHECK: umlal r2, r4, r6, r8 @ encoding: [0xe6,0xfb,0x08,0x24]
3348 @ CHECK: it gt @ encoding: [0xc8,0xbf]
3349 @ CHECK: umlalgt r6, r1, r2, r6 @ encoding: [0xe2,0xfb,0x06,0x61]
3352 @------------------------------------------------------------------------------
3354 @------------------------------------------------------------------------------
3355 umull r2, r4, r6, r8
3357 umullgt r6, r1, r2, r6
3359 @ CHECK: umull r2, r4, r6, r8 @ encoding: [0xa6,0xfb,0x08,0x24]
3360 @ CHECK: it gt @ encoding: [0xc8,0xbf]
3361 @ CHECK: umullgt r6, r1, r2, r6 @ encoding: [0xa2,0xfb,0x06,0x61]
3364 @------------------------------------------------------------------------------
3366 @------------------------------------------------------------------------------
3370 uqadd16gt r4, r7, r9
3373 @ CHECK: uqadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x53,0xf1]
3374 @ CHECK: uqadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x58,0xf3]
3375 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3376 @ CHECK: uqadd16gt r4, r7, r9 @ encoding: [0x97,0xfa,0x59,0xf4]
3377 @ CHECK: uqadd8le r8, r1, r2 @ encoding: [0x81,0xfa,0x52,0xf8]
3380 @------------------------------------------------------------------------------
3382 @------------------------------------------------------------------------------
3389 uqaddsubx r1, r2, r3
3390 uqsubaddx r3, r4, r8
3392 uqaddsubxgt r4, r7, r9
3393 uqsubaddxle r8, r1, r2
3395 @ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1]
3396 @ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3]
3397 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3398 @ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4]
3399 @ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8]
3401 @ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1]
3402 @ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3]
3403 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3404 @ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4]
3405 @ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8]
3408 @------------------------------------------------------------------------------
3410 @------------------------------------------------------------------------------
3415 uqsub16le r4, r6, r4
3417 @ CHECK: uqsub8 r8, r2, r9 @ encoding: [0xc2,0xfa,0x59,0xf8]
3418 @ CHECK: uqsub16 r1, r9, r7 @ encoding: [0xd9,0xfa,0x57,0xf1]
3419 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3420 @ CHECK: uqsub8gt r3, r1, r6 @ encoding: [0xc1,0xfa,0x56,0xf3]
3421 @ CHECK: uqsub16le r4, r6, r4 @ encoding: [0xd6,0xfa,0x54,0xf4]
3424 @------------------------------------------------------------------------------
3426 @------------------------------------------------------------------------------
3428 usada8 r8, r2, r9, r12
3430 usada8gt r3, r1, r6, r9
3433 @ CHECK: usad8 r1, r9, r7 @ encoding: [0x79,0xfb,0x07,0xf1]
3434 @ CHECK: usada8 r8, r2, r9, r12 @ encoding: [0x72,0xfb,0x09,0xc8]
3435 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3436 @ CHECK: usada8gt r3, r1, r6, r9 @ encoding: [0x71,0xfb,0x06,0x93]
3437 @ CHECK: usad8le r4, r6, r4 @ encoding: [0x76,0xfb,0x04,0xf4]
3440 @------------------------------------------------------------------------------
3442 @------------------------------------------------------------------------------
3444 usat r8, #4, r10, lsl #0
3445 usat r8, #5, r10, lsl #31
3446 usat r8, #16, r10, asr #1
3448 @ CHECK: usat r8, #1, r10 @ encoding: [0x8a,0xf3,0x01,0x08]
3449 @ CHECK: usat r8, #4, r10 @ encoding: [0x8a,0xf3,0x04,0x08]
3450 @ CHECK: usat r8, #5, r10, lsl #31 @ encoding: [0x8a,0xf3,0xc5,0x78]
3451 @ CHECK: usat r8, #16, r10, asr #1 @ encoding: [0xaa,0xf3,0x50,0x08]
3454 @------------------------------------------------------------------------------
3456 @------------------------------------------------------------------------------
3460 @ CHECK: usat16 r2, #2, r7 @ encoding: [0xa7,0xf3,0x02,0x02]
3461 @ CHECK: usat16 r3, #15, r5 @ encoding: [0xa5,0xf3,0x0f,0x03]
3464 @------------------------------------------------------------------------------
3466 @------------------------------------------------------------------------------
3472 usubaddxne r6, r1, r9
3474 @ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2]
3475 @ CHECK: it ne @ encoding: [0x18,0xbf]
3476 @ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6]
3477 @ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2]
3478 @ CHECK: it ne @ encoding: [0x18,0xbf]
3479 @ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6]
3482 @------------------------------------------------------------------------------
3484 @------------------------------------------------------------------------------
3491 @ CHECK: usub16 r4, r2, r7 @ encoding: [0xd2,0xfa,0x47,0xf4]
3492 @ CHECK: usub8 r1, r8, r5 @ encoding: [0xc8,0xfa,0x45,0xf1]
3493 @ CHECK: ite hi @ encoding: [0x8c,0xbf]
3494 @ CHECK: usub16hi r1, r1, r3 @ encoding: [0xd1,0xfa,0x43,0xf1]
3495 @ CHECK: usub8ls r9, r2, r3 @ encoding: [0xc2,0xfa,0x43,0xf9]
3498 @------------------------------------------------------------------------------
3500 @------------------------------------------------------------------------------
3502 uxtab r4, r5, r6, ror #0
3504 uxtablt r6, r2, r9, ror #8
3505 uxtab r5, r1, r4, ror #16
3506 uxtab r7, r8, r3, ror #24
3508 @ CHECK: uxtab r2, r3, r4 @ encoding: [0x53,0xfa,0x84,0xf2]
3509 @ CHECK: uxtab r4, r5, r6 @ encoding: [0x55,0xfa,0x86,0xf4]
3510 @ CHECK: it lt @ encoding: [0xb8,0xbf]
3511 @ CHECK: uxtablt r6, r2, r9, ror #8 @ encoding: [0x52,0xfa,0x99,0xf6]
3512 @ CHECK: uxtab r5, r1, r4, ror #16 @ encoding: [0x51,0xfa,0xa4,0xf5]
3513 @ CHECK: uxtab r7, r8, r3, ror #24 @ encoding: [0x58,0xfa,0xb3,0xf7]
3516 @------------------------------------------------------------------------------
3518 @------------------------------------------------------------------------------
3520 uxtab16ge r0, r1, r4
3521 uxtab16 r6, r2, r7, ror #0
3522 uxtab16 r3, r5, r8, ror #8
3523 uxtab16 r3, r2, r1, ror #16
3525 uxtab16eq r1, r2, r3, ror #24
3527 @ CHECK: it ge @ encoding: [0xa8,0xbf]
3528 @ CHECK: uxtab16ge r0, r1, r4 @ encoding: [0x31,0xfa,0x84,0xf0]
3529 @ CHECK: uxtab16 r6, r2, r7 @ encoding: [0x32,0xfa,0x87,0xf6]
3530 @ CHECK: uxtab16 r3, r5, r8, ror #8 @ encoding: [0x35,0xfa,0x98,0xf3]
3531 @ CHECK: uxtab16 r3, r2, r1, ror #16 @ encoding: [0x32,0xfa,0xa1,0xf3]
3532 @ CHECK: it eq @ encoding: [0x08,0xbf]
3533 @ CHECK: uxtab16eq r1, r2, r3, ror #24 @ encoding: [0x32,0xfa,0xb3,0xf1]
3536 @------------------------------------------------------------------------------
3538 @------------------------------------------------------------------------------
3541 uxtahhi r6, r1, r6, ror #0
3542 uxtah r3, r8, r3, ror #8
3544 uxtahlo r2, r2, r4, ror #16
3545 uxtah r9, r3, r3, ror #24
3547 @ CHECK: uxtah r1, r3, r9 @ encoding: [0x13,0xfa,0x89,0xf1]
3548 @ CHECK: it hi @ encoding: [0x88,0xbf]
3549 @ CHECK: uxtahhi r6, r1, r6 @ encoding: [0x11,0xfa,0x86,0xf6]
3550 @ CHECK: uxtah r3, r8, r3, ror #8 @ encoding: [0x18,0xfa,0x93,0xf3]
3551 @ CHECK: it lo @ encoding: [0x38,0xbf]
3552 @ CHECK: uxtahlo r2, r2, r4, ror #16 @ encoding: [0x12,0xfa,0xa4,0xf2]
3553 @ CHECK: uxtah r9, r3, r3, ror #24 @ encoding: [0x13,0xfa,0xb3,0xf9]
3556 @------------------------------------------------------------------------------
3558 @------------------------------------------------------------------------------
3564 uxtbcc r5, r1, ror #16
3565 uxtb r8, r3, ror #24
3568 @ CHECK: it ge @ encoding: [0xa8,0xbf]
3569 @ CHECK: uxtbge r2, r4 @ encoding: [0xe2,0xb2]
3570 @ CHECK: uxtb r5, r6 @ encoding: [0xf5,0xb2]
3571 @ CHECK: uxtb.w r6, r9, ror #8 @ encoding: [0x5f,0xfa,0x99,0xf6]
3572 @ CHECK: it lo @ encoding: [0x38,0xbf]
3573 @ CHECK: uxtblo.w r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5]
3574 @ CHECK: uxtb.w r8, r3, ror #24 @ encoding: [0x5f,0xfa,0xb3,0xf8]
3575 @ CHECK: uxtb.w r7, r8 @ encoding: [0x5f,0xfa,0x88,0xf7]
3578 @------------------------------------------------------------------------------
3580 @------------------------------------------------------------------------------
3582 uxtb16 r6, r7, ror #0
3584 uxtb16cs r3, r5, ror #8
3585 uxtb16 r3, r1, ror #16
3587 uxtb16ge r2, r3, ror #24
3589 @ CHECK: uxtb16 r1, r4 @ encoding: [0x3f,0xfa,0x84,0xf1]
3590 @ CHECK: uxtb16 r6, r7 @ encoding: [0x3f,0xfa,0x87,0xf6]
3591 @ CHECK: it hs @ encoding: [0x28,0xbf]
3592 @ CHECK: uxtb16hs r3, r5, ror #8 @ encoding: [0x3f,0xfa,0x95,0xf3]
3593 @ CHECK: uxtb16 r3, r1, ror #16 @ encoding: [0x3f,0xfa,0xa1,0xf3]
3594 @ CHECK: it ge @ encoding: [0xa8,0xbf]
3595 @ CHECK: uxtb16ge r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2]
3598 @------------------------------------------------------------------------------
3600 @------------------------------------------------------------------------------
3606 uxthle r2, r2, ror #16
3607 uxth r9, r3, ror #24
3610 @ CHECK: it ne @ encoding: [0x18,0xbf]
3611 @ CHECK: uxthne.w r3, r9 @ encoding: [0x1f,0xfa,0x89,0xf3]
3612 @ CHECK: uxth r1, r6 @ encoding: [0xb1,0xb2]
3613 @ CHECK: uxth.w r3, r8, ror #8 @ encoding: [0x1f,0xfa,0x98,0xf3]
3614 @ CHECK: it le @ encoding: [0xd8,0xbf]
3615 @ CHECK: uxthle.w r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2]
3616 @ CHECK: uxth.w r9, r3, ror #24 @ encoding: [0x1f,0xfa,0xb3,0xf9]
3617 @ CHECK: uxth.w r7, r8 @ encoding: [0x1f,0xfa,0x88,0xf7]
3619 @------------------------------------------------------------------------------
3620 @ WFE/WFI/YIELD/HINT
3621 @------------------------------------------------------------------------------
3645 @ CHECK: wfe @ encoding: [0x20,0xbf]
3646 @ CHECK: wfi @ encoding: [0x30,0xbf]
3647 @ CHECK: yield @ encoding: [0x10,0xbf]
3648 @ CHECK: itet lt @ encoding: [0xb6,0xbf]
3649 @ CHECK: wfelt @ encoding: [0x20,0xbf]
3650 @ CHECK: wfige @ encoding: [0x30,0xbf]
3651 @ CHECK: yieldlt @ encoding: [0x10,0xbf]
3652 @ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80]
3653 @ CHECK: wfi.w @ encoding: [0xaf,0xf3,0x03,0x80]
3654 @ CHECK: wfe.w @ encoding: [0xaf,0xf3,0x02,0x80]
3655 @ CHECK: yield.w @ encoding: [0xaf,0xf3,0x01,0x80]
3656 @ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
3657 @ CHECK: sev @ encoding: [0x40,0xbf]
3658 @ CHECK: wfi @ encoding: [0x30,0xbf]
3659 @ CHECK: wfe @ encoding: [0x20,0xbf]
3660 @ CHECK: yield @ encoding: [0x10,0xbf]
3661 @ CHECK: nop @ encoding: [0x00,0xbf]
3663 @ CHECK: itet lt @ encoding: [0xb6,0xbf]
3664 @ CHECK: hintlt #15 @ encoding: [0xf0,0xbf]
3665 @ CHECK: hintge.w #16 @ encoding: [0xaf,0xf3,0x10,0x80]
3666 @ CHECK: hintlt.w #239 @ encoding: [0xaf,0xf3,0xef,0x80]
3668 @------------------------------------------------------------------------------
3669 @ Unallocated wide/narrow hints
3670 @------------------------------------------------------------------------------
3673 @ CHECK: hint #7 @ encoding: [0x70,0xbf]
3674 @ CHECK: hint.w #7 @ encoding: [0xaf,0xf3,0x07,0x80]
3676 @------------------------------------------------------------------------------
3677 @ Alternate syntax for LDR*(literal) encodings
3678 @------------------------------------------------------------------------------
3681 ldrsb r11, [pc, #22]
3682 ldrsh r11, [pc, #22]
3683 ldr.w r11, [pc, #22]
3684 ldrb.w r11, [pc, #22]
3685 ldrh.w r11, [pc, #22]
3686 ldrsb.w r11, [pc, #22]
3687 ldrsh.w r11, [pc, #22]
3689 @ CHECK: ldrb.w r11, [pc, #22] @ encoding: [0x9f,0xf8,0x16,0xb0]
3690 @ CHECK: ldrh.w r11, [pc, #22] @ encoding: [0xbf,0xf8,0x16,0xb0]
3691 @ CHECK: ldrsb.w r11, [pc, #22] @ encoding: [0x9f,0xf9,0x16,0xb0]
3692 @ CHECK: ldrsh.w r11, [pc, #22] @ encoding: [0xbf,0xf9,0x16,0xb0]
3693 @ CHECK: ldr.w r11, [pc, #22] @ encoding: [0xdf,0xf8,0x16,0xb0]
3694 @ CHECK: ldrb.w r11, [pc, #22] @ encoding: [0x9f,0xf8,0x16,0xb0]
3695 @ CHECK: ldrh.w r11, [pc, #22] @ encoding: [0xbf,0xf8,0x16,0xb0]
3696 @ CHECK: ldrsb.w r11, [pc, #22] @ encoding: [0x9f,0xf9,0x16,0xb0]
3697 @ CHECK: ldrsh.w r11, [pc, #22] @ encoding: [0xbf,0xf9,0x16,0xb0]
3700 ldrb r11, [pc, #-22]
3701 ldrh r11, [pc, #-22]
3702 ldrsb r11, [pc, #-22]
3703 ldrsh r11, [pc, #-22]
3704 ldr.w r11, [pc, #-22]
3705 ldrb.w r11, [pc, #-22]
3706 ldrh.w r11, [pc, #-22]
3707 ldrsb.w r11, [pc, #-22]
3708 ldrsh.w r11, [pc, #-22]
3710 @ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0]
3711 @ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0]
3712 @ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]
3713 @ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]
3714 @ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]
3715 @ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0]
3716 @ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0]
3717 @ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]
3718 @ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]
3719 @ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]
3723 @ CHECK: ldr r1, [pc, #12] @ encoding: [0x03,0x49]
3727 @ CHECK: subs pc, lr, #4 @ encoding: [0xde,0xf3,0x04,0x8f]