1 @ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s
5 @ Check that the assembler can handle the documented syntax from the ARM ARM.
6 @ For complex constructs like shifter operands, check more thoroughly for them
7 @ once then spot check that following instructions accept the form generally.
8 @ This gives us good coverage while keeping the overall size of the test
12 @ FIXME: Some 3-operand instructions have a 2-operand assembly syntax.
17 @------------------------------------------------------------------------------
19 @------------------------------------------------------------------------------
23 adc r3, r7, #0x00550055
24 adc r8, r12, #0xaa00aa00
25 adc r9, r7, #0xa5a5a5a5
26 adc r5, r3, #0x87000000
27 adc r4, r2, #0x7f800000
28 adc r4, r2, #0x00000680
30 @ CHECK: adc r0, r1, #4 @ encoding: [0x41,0xf1,0x04,0x00]
31 @ CHECK: adcs r0, r1, #0 @ encoding: [0x51,0xf1,0x00,0x00]
32 @ CHECK: adc r1, r2, #255 @ encoding: [0x42,0xf1,0xff,0x01]
33 @ CHECK: adc r3, r7, #5570645 @ encoding: [0x47,0xf1,0x55,0x13]
34 @ CHECK: adc r8, r12, #2852170240 @ encoding: [0x4c,0xf1,0xaa,0x28]
35 @ CHECK: adc r9, r7, #2779096485 @ encoding: [0x47,0xf1,0xa5,0x39]
36 @ CHECK: adc r5, r3, #2264924160 @ encoding: [0x43,0xf1,0x07,0x45]
37 @ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44]
38 @ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64]
40 @------------------------------------------------------------------------------
42 @------------------------------------------------------------------------------
47 adc r0, r1, r3, ror #4
48 adcs r0, r1, r3, lsl #7
49 adc.w r0, r1, r3, lsr #31
50 adcs.w r0, r1, r3, asr #32
53 @ CHECK: adc.w r4, r5, r6 @ encoding: [0x45,0xeb,0x06,0x04]
54 @ CHECK: adcs.w r4, r5, r6 @ encoding: [0x55,0xeb,0x06,0x04]
55 @ CHECK: adc.w r9, r1, r3 @ encoding: [0x41,0xeb,0x03,0x09]
56 @ CHECK: adcs.w r9, r1, r3 @ encoding: [0x51,0xeb,0x03,0x09]
57 @ CHECK: adc.w r0, r1, r3, ror #4 @ encoding: [0x41,0xeb,0x33,0x10]
58 @ CHECK: adcs.w r0, r1, r3, lsl #7 @ encoding: [0x51,0xeb,0xc3,0x10]
59 @ CHECK: adc.w r0, r1, r3, lsr #31 @ encoding: [0x41,0xeb,0xd3,0x70]
60 @ CHECK: adcs.w r0, r1, r3, asr #32 @ encoding: [0x51,0xeb,0x23,0x00]
61 @ CHECK: add.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02]
64 @------------------------------------------------------------------------------
66 @------------------------------------------------------------------------------
82 add r1, r7, #0xcbcbcbcb
90 @ CHECK: itet eq @ encoding: [0x0a,0xbf]
91 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]
92 @ CHECK: addwne r5, r3, #1023 @ encoding: [0x03,0xf2,0xff,0x35]
93 @ CHECK: addweq r4, r5, #293 @ encoding: [0x05,0xf2,0x25,0x14]
94 @ CHECK: add.w r2, sp, #1024 @ encoding: [0x0d,0xf5,0x80,0x62]
95 @ CHECK: add.w r2, r8, #65280 @ encoding: [0x08,0xf5,0x7f,0x42]
96 @ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12]
97 @ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12]
98 @ CHECK: add.w r12, r6, #256 @ encoding: [0x06,0xf5,0x80,0x7c]
99 @ CHECK: addw r12, r6, #256 @ encoding: [0x06,0xf2,0x00,0x1c]
100 @ CHECK: adds.w r1, r2, #496 @ encoding: [0x12,0xf5,0xf8,0x71]
101 @ CHECK: add.w r2, r2, #1 @ encoding: [0x02,0xf1,0x01,0x02]
102 @ CHECK: add.w r0, r0, #32 @ encoding: [0x00,0xf1,0x20,0x00]
103 @ CHECK: adds r2, #56 @ encoding: [0x38,0x32]
104 @ CHECK: adds r2, #56 @ encoding: [0x38,0x32]
105 @ CHECK: add.w r1, r7, #3419130827 @ encoding: [0x07,0xf1,0xcb,0x31]
107 @ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02]
108 @ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02]
109 @ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]
110 @ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]
111 @ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]
114 @------------------------------------------------------------------------------
116 @------------------------------------------------------------------------------
118 add r5, r9, r2, asr #32
119 adds r7, r3, r1, lsl #31
120 adds.w r0, r3, r6, lsr #25
121 add.w r4, r8, r1, ror #12
125 @ CHECK: add.w r1, r2, r8 @ encoding: [0x02,0xeb,0x08,0x01]
126 @ CHECK: add.w r5, r9, r2, asr #32 @ encoding: [0x09,0xeb,0x22,0x05]
127 @ CHECK: adds.w r7, r3, r1, lsl #31 @ encoding: [0x13,0xeb,0xc1,0x77]
128 @ CHECK: adds.w r0, r3, r6, lsr #25 @ encoding: [0x13,0xeb,0x56,0x60]
129 @ CHECK: add.w r4, r8, r1, ror #12 @ encoding: [0x08,0xeb,0x31,0x34]
130 @ CHECK: add r10, r8 @ encoding: [0xc2,0x44]
131 @ CHECK: add r10, r8 @ encoding: [0xc2,0x44]
134 @------------------------------------------------------------------------------
136 @------------------------------------------------------------------------------
143 @ CHECK: subw r11, pc, #3270 @ encoding: [0xaf,0xf6,0xc6,0x4b]
144 @ CHECK: adr.w r2, #3 @ encoding: [0x0f,0xf2,0x03,0x02]
145 @ CHECK: adr.w r11, #-826 @ encoding: [0xaf,0xf2,0x3a,0x3b]
146 @ CHECK: adr.w r1, #-0 @ encoding: [0xaf,0xf2,0x00,0x01]
148 @------------------------------------------------------------------------------
150 @------------------------------------------------------------------------------
155 and r5, r4, #0xffffffff
156 ands r1, r9, #0xffffffff
158 @ CHECK: and r2, r5, #1044480 @ encoding: [0x05,0xf4,0x7f,0x22]
159 @ CHECK: ands r3, r12, #15 @ encoding: [0x1c,0xf0,0x0f,0x03]
160 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
161 @ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]
162 @ CHECK: and r5, r4, #4294967295 @ encoding: [0x04,0xf0,0xff,0x35]
163 @ CHECK: ands r1, r9, #4294967295 @ encoding: [0x19,0xf0,0xff,0x31]
165 @------------------------------------------------------------------------------
167 @------------------------------------------------------------------------------
169 and r1, r4, r8, asr #3
170 ands r2, r1, r7, lsl #1
171 ands.w r4, r5, r2, lsr #20
172 and.w r9, r12, r1, ror #17
174 @ CHECK: and.w r4, r9, r8 @ encoding: [0x09,0xea,0x08,0x04]
175 @ CHECK: and.w r1, r4, r8, asr #3 @ encoding: [0x04,0xea,0xe8,0x01]
176 @ CHECK: ands.w r2, r1, r7, lsl #1 @ encoding: [0x11,0xea,0x47,0x02]
177 @ CHECK: ands.w r4, r5, r2, lsr #20 @ encoding: [0x15,0xea,0x12,0x54]
178 @ CHECK: and.w r9, r12, r1, ror #17 @ encoding: [0x0c,0xea,0x71,0x49]
180 @------------------------------------------------------------------------------
182 @------------------------------------------------------------------------------
194 @ CHECK: asr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x23,0x32]
195 @ CHECK: asrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x23,0x08]
196 @ CHECK: asrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x63,0x02]
197 @ CHECK: asr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x23,0x12]
198 @ CHECK: asrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xec,0x32]
200 @ CHECK: asr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xe3,0x43]
201 @ CHECK: asrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0xa8,0x08]
202 @ CHECK: asrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x67,0x17]
203 @ CHECK: asr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x6c,0x5c]
206 @------------------------------------------------------------------------------
208 @------------------------------------------------------------------------------
213 @ CHECK: asr.w r3, r4, r2 @ encoding: [0x44,0xfa,0x02,0xf3]
214 @ CHECK: asr.w r1, r1, r2 @ encoding: [0x41,0xfa,0x02,0xf1]
215 @ CHECK: asrs.w r3, r4, r8 @ encoding: [0x54,0xfa,0x08,0xf3]
218 @------------------------------------------------------------------------------
220 @------------------------------------------------------------------------------
227 @ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0xb8'A']
228 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
229 @ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A']
230 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch
231 @ CHECK: it eq @ encoding: [0x08,0xbf]
232 @ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0xb8'A']
233 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
234 @ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9]
237 @------------------------------------------------------------------------------
239 @------------------------------------------------------------------------------
244 @ CHECK: bfc r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05]
245 @ CHECK: it lo @ encoding: [0x38,0xbf]
246 @ CHECK: bfclo r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05]
249 @------------------------------------------------------------------------------
251 @------------------------------------------------------------------------------
254 bfine r5, r2, #3, #17
256 @ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05]
257 @ CHECK: it ne @ encoding: [0x18,0xbf]
258 @ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05]
261 @------------------------------------------------------------------------------
263 @------------------------------------------------------------------------------
265 bic r5, r2, #0xffffffff
266 bics r11, r10, #0xffffffff
268 bic r11, r2, r6, lsl #12
269 bic r8, r4, r1, lsr #11
270 bic r7, r5, r7, lsr #15
271 bic r6, r7, r9, asr #32
272 bic r5, r6, r8, ror #1
274 @ destination register is optional
283 @ CHECK: bic r10, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x0a]
284 @ CHECK: bic r5, r2, #4294967295 @ encoding: [0x22,0xf0,0xff,0x35]
285 @ CHECK: bics r11, r10, #4294967295 @ encoding: [0x3a,0xf0,0xff,0x3b]
286 @ CHECK: bic.w r12, r3, r6 @ encoding: [0x23,0xea,0x06,0x0c]
287 @ CHECK: bic.w r11, r2, r6, lsl #12 @ encoding: [0x22,0xea,0x06,0x3b]
288 @ CHECK: bic.w r8, r4, r1, lsr #11 @ encoding: [0x24,0xea,0xd1,0x28]
289 @ CHECK: bic.w r7, r5, r7, lsr #15 @ encoding: [0x25,0xea,0xd7,0x37]
290 @ CHECK: bic.w r6, r7, r9, asr #32 @ encoding: [0x27,0xea,0x29,0x06]
291 @ CHECK: bic.w r5, r6, r8, ror #1 @ encoding: [0x26,0xea,0x78,0x05]
293 @ CHECK: bic r1, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x01]
294 @ CHECK: bic.w r1, r1, r1 @ encoding: [0x21,0xea,0x01,0x01]
295 @ CHECK: bic.w r4, r4, r2, lsl #31 @ encoding: [0x24,0xea,0xc2,0x74]
296 @ CHECK: bic.w r6, r6, r3, lsr #12 @ encoding: [0x26,0xea,0x13,0x36]
297 @ CHECK: bic.w r7, r7, r4, lsr #7 @ encoding: [0x27,0xea,0xd4,0x17]
298 @ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38]
299 @ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c]
301 @------------------------------------------------------------------------------
303 @------------------------------------------------------------------------------
307 @ CHECK: it pl @ encoding: [0x58,0xbf]
308 @ CHECK: bkpt #234 @ encoding: [0xea,0xbe]
310 @------------------------------------------------------------------------------
312 @------------------------------------------------------------------------------
317 @ CHECK: bxj r5 @ encoding: [0xc5,0xf3,0x00,0x8f]
318 @ CHECK: it ne @ encoding: [0x18,0xbf]
319 @ CHECK: bxjne r7 @ encoding: [0xc7,0xf3,0x00,0x8f]
322 @------------------------------------------------------------------------------
324 @------------------------------------------------------------------------------
330 @ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9]
331 @ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9]
332 @ CHECK: cbz r6, _bar @ encoding: [0x06'A',0xb1'A']
333 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
334 @ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A']
335 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
338 @------------------------------------------------------------------------------
340 @------------------------------------------------------------------------------
341 cdp p7, #1, c1, c1, c1, #4
342 cdp2 p7, #1, c1, c1, c1, #4
344 @ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17]
345 @ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
348 @------------------------------------------------------------------------------
350 @------------------------------------------------------------------------------
355 @ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
356 @ CHECK: it ne @ encoding: [0x18,0xbf]
357 @ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f]
360 @------------------------------------------------------------------------------
362 @------------------------------------------------------------------------------
367 @ CHECK: clz r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1]
368 @ CHECK: it eq @ encoding: [0x08,0xbf]
369 @ CHECK: clzeq r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1]
372 @------------------------------------------------------------------------------
374 @------------------------------------------------------------------------------
383 @ CHECK: cmn.w r1, #15 @ encoding: [0x11,0xf1,0x0f,0x0f]
384 @ CHECK: cmn.w r8, r6 @ encoding: [0x18,0xeb,0x06,0x0f]
385 @ CHECK: cmn.w r1, r6, lsl #10 @ encoding: [0x11,0xeb,0x86,0x2f]
386 @ CHECK: cmn.w r1, r6, lsr #10 @ encoding: [0x11,0xeb,0x96,0x2f]
387 @ CHECK: cmn.w sp, r6, lsr #10 @ encoding: [0x1d,0xeb,0x96,0x2f]
388 @ CHECK: cmn.w r1, r6, asr #10 @ encoding: [0x11,0xeb,0xa6,0x2f]
389 @ CHECK: cmn.w r1, r6, ror #10 @ encoding: [0x11,0xeb,0xb6,0x2f]
392 @------------------------------------------------------------------------------
394 @------------------------------------------------------------------------------
405 @ CHECK: cmp.w r5, #65280 @ encoding: [0xb5,0xf5,0x7f,0x4f]
406 @ CHECK: cmp.w r4, r12 @ encoding: [0xb4,0xeb,0x0c,0x0f]
407 @ CHECK: cmp.w r9, r6, lsl #12 @ encoding: [0xb9,0xeb,0x06,0x3f]
408 @ CHECK: cmp.w r3, r7, lsr #31 @ encoding: [0xb3,0xeb,0xd7,0x7f]
409 @ CHECK: cmp.w sp, r6, lsr #1 @ encoding: [0xbd,0xeb,0x56,0x0f]
410 @ CHECK: cmp.w r2, r5, asr #24 @ encoding: [0xb2,0xeb,0x25,0x6f]
411 @ CHECK: cmp.w r1, r4, ror #15 @ encoding: [0xb1,0xeb,0xf4,0x3f]
412 @ CHECK: cmn.w r2, #2 @ encoding: [0x12,0xf1,0x02,0x0f]
413 @ CHECK: cmp.w r9, #1 @ encoding: [0xb9,0xf1,0x01,0x0f]
415 @------------------------------------------------------------------------------
417 @------------------------------------------------------------------------------
430 @ CHECK: cpsie f @ encoding: [0x61,0xb6]
431 @ CHECK: cpsid a @ encoding: [0x74,0xb6]
432 @ CHECK: cpsie.w f @ encoding: [0xaf,0xf3,0x20,0x84]
433 @ CHECK: cpsid.w a @ encoding: [0xaf,0xf3,0x80,0x86]
434 @ CHECK: cpsie i, #3 @ encoding: [0xaf,0xf3,0x43,0x85]
435 @ CHECK: cpsie i, #3 @ encoding: [0xaf,0xf3,0x43,0x85]
436 @ CHECK: cpsid f, #9 @ encoding: [0xaf,0xf3,0x29,0x87]
437 @ CHECK: cpsid f, #9 @ encoding: [0xaf,0xf3,0x29,0x87]
438 @ CHECK: cps #0 @ encoding: [0xaf,0xf3,0x00,0x81]
439 @ CHECK: cps #0 @ encoding: [0xaf,0xf3,0x00,0x81]
441 @------------------------------------------------------------------------------
443 @------------------------------------------------------------------------------
448 @ CHECK: dbg #5 @ encoding: [0xaf,0xf3,0xf5,0x80]
449 @ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80]
450 @ CHECK: dbg #15 @ encoding: [0xaf,0xf3,0xff,0x80]
453 @------------------------------------------------------------------------------
455 @------------------------------------------------------------------------------
487 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
488 @ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
489 @ CHECK: dmb #0xd @ encoding: [0xbf,0xf3,0x5d,0x8f]
490 @ CHECK: dmb #0xc @ encoding: [0xbf,0xf3,0x5c,0x8f]
491 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
492 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
493 @ CHECK: dmb #0x9 @ encoding: [0xbf,0xf3,0x59,0x8f]
494 @ CHECK: dmb #0x8 @ encoding: [0xbf,0xf3,0x58,0x8f]
495 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
496 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
497 @ CHECK: dmb #0x5 @ encoding: [0xbf,0xf3,0x55,0x8f]
498 @ CHECK: dmb #0x4 @ encoding: [0xbf,0xf3,0x54,0x8f]
499 @ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
500 @ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
501 @ CHECK: dmb #0x1 @ encoding: [0xbf,0xf3,0x51,0x8f]
502 @ CHECK: dmb #0x0 @ encoding: [0xbf,0xf3,0x50,0x8f]
504 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
505 @ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
506 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
507 @ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
508 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
509 @ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
510 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
511 @ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
512 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
513 @ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
514 @ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
515 @ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
516 @ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
519 @------------------------------------------------------------------------------
521 @------------------------------------------------------------------------------
553 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
554 @ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
555 @ CHECK: dsb #0xd @ encoding: [0xbf,0xf3,0x4d,0x8f]
556 @ CHECK: dsb #0xc @ encoding: [0xbf,0xf3,0x4c,0x8f]
557 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
558 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
559 @ CHECK: dsb #0x9 @ encoding: [0xbf,0xf3,0x49,0x8f]
560 @ CHECK: dsb #0x8 @ encoding: [0xbf,0xf3,0x48,0x8f]
561 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
562 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
563 @ CHECK: dsb #0x5 @ encoding: [0xbf,0xf3,0x45,0x8f]
564 @ CHECK: dsb #0x4 @ encoding: [0xbf,0xf3,0x44,0x8f]
565 @ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
566 @ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
567 @ CHECK: dsb #0x1 @ encoding: [0xbf,0xf3,0x41,0x8f]
568 @ CHECK: dsb #0x0 @ encoding: [0xbf,0xf3,0x40,0x8f]
570 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
571 @ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
572 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
573 @ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
574 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
575 @ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
576 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
577 @ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
578 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
579 @ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
580 @ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
581 @ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
582 @ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
585 @------------------------------------------------------------------------------
587 @------------------------------------------------------------------------------
590 eor r4, r5, r6, lsl #5
591 eor r4, r5, r6, lsr #5
592 eor r4, r5, r6, lsr #5
593 eor r4, r5, r6, asr #5
594 eor r4, r5, r6, ror #5
596 @ CHECK: eor r4, r5, #61440 @ encoding: [0x85,0xf4,0x70,0x44]
597 @ CHECK: eor.w r4, r5, r6 @ encoding: [0x85,0xea,0x06,0x04]
598 @ CHECK: eor.w r4, r5, r6, lsl #5 @ encoding: [0x85,0xea,0x46,0x14]
599 @ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14]
600 @ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14]
601 @ CHECK: eor.w r4, r5, r6, asr #5 @ encoding: [0x85,0xea,0x66,0x14]
602 @ CHECK: eor.w r4, r5, r6, ror #5 @ encoding: [0x85,0xea,0x76,0x14]
605 @------------------------------------------------------------------------------
607 @------------------------------------------------------------------------------
613 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
614 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
615 @ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
616 @ CHECK: isb #0x1 @ encoding: [0xbf,0xf3,0x61,0x8f]
619 @------------------------------------------------------------------------------
621 @------------------------------------------------------------------------------
622 @ Test encodings of a few full IT blocks, not just the IT instruction
630 @ CHECK: iteet eq @ encoding: [0x0d,0xbf]
631 @ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18]
632 @ CHECK: nopne @ encoding: [0x00,0xbf]
633 @ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b]
634 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]
636 @ Should also work for UPPER CASE condition codes.
644 @ CHECK: iteet eq @ encoding: [0x0d,0xbf]
645 @ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18]
646 @ CHECK: nopne @ encoding: [0x00,0xbf]
647 @ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b]
648 @ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]
650 @------------------------------------------------------------------------------
652 @------------------------------------------------------------------------------
653 ldc2 p0, c8, [r1, #4]
655 ldc2 p2, c6, [r3, #-224]
656 ldc2 p3, c5, [r4, #-120]!
657 ldc2 p4, c4, [r5], #16
658 ldc2 p5, c3, [r6], #-72
659 ldc2l p6, c2, [r7, #4]
661 ldc2l p8, c0, [r9, #-224]
662 ldc2l p9, c1, [r10, #-120]!
663 ldc2l p10, c2, [r11], #16
664 ldc2l p11, c3, [r12], #-72
666 ldc p12, c4, [r0, #4]
668 ldc p14, c6, [r2, #-224]
669 ldc p15, c7, [r3, #-120]!
670 ldc p5, c8, [r4], #16
671 ldc p4, c9, [r5], #-72
672 ldcl p3, c10, [r6, #4]
674 ldcl p1, c12, [r8, #-224]
675 ldcl p0, c13, [r9, #-120]!
676 ldcl p6, c14, [r10], #16
677 ldcl p7, c15, [r11], #-72
679 ldc2 p2, c8, [r1], { 25 }
681 @ CHECK: ldc2 p0, c8, [r1, #4] @ encoding: [0x91,0xfd,0x01,0x80]
682 @ CHECK: ldc2 p1, c7, [r2] @ encoding: [0x92,0xfd,0x00,0x71]
683 @ CHECK: ldc2 p2, c6, [r3, #-224] @ encoding: [0x13,0xfd,0x38,0x62]
684 @ CHECK: ldc2 p3, c5, [r4, #-120]! @ encoding: [0x34,0xfd,0x1e,0x53]
685 @ CHECK: ldc2 p4, c4, [r5], #16 @ encoding: [0xb5,0xfc,0x04,0x44]
686 @ CHECK: ldc2 p5, c3, [r6], #-72 @ encoding: [0x36,0xfc,0x12,0x35]
687 @ CHECK: ldc2l p6, c2, [r7, #4] @ encoding: [0xd7,0xfd,0x01,0x26]
688 @ CHECK: ldc2l p7, c1, [r8] @ encoding: [0xd8,0xfd,0x00,0x17]
689 @ CHECK: ldc2l p8, c0, [r9, #-224] @ encoding: [0x59,0xfd,0x38,0x08]
690 @ CHECK: ldc2l p9, c1, [r10, #-120]! @ encoding: [0x7a,0xfd,0x1e,0x19]
691 @ CHECK: ldc2l p10, c2, [r11], #16 @ encoding: [0xfb,0xfc,0x04,0x2a]
692 @ CHECK: ldc2l p11, c3, [r12], #-72 @ encoding: [0x7c,0xfc,0x12,0x3b]
694 @ CHECK: ldc p12, c4, [r0, #4] @ encoding: [0x90,0xed,0x01,0x4c]
695 @ CHECK: ldc p13, c5, [r1] @ encoding: [0x91,0xed,0x00,0x5d]
696 @ CHECK: ldc p14, c6, [r2, #-224] @ encoding: [0x12,0xed,0x38,0x6e]
697 @ CHECK: ldc p15, c7, [r3, #-120]! @ encoding: [0x33,0xed,0x1e,0x7f]
698 @ CHECK: ldc p5, c8, [r4], #16 @ encoding: [0xb4,0xec,0x04,0x85]
699 @ CHECK: ldc p4, c9, [r5], #-72 @ encoding: [0x35,0xec,0x12,0x94]
700 @ CHECK: ldcl p3, c10, [r6, #4] @ encoding: [0xd6,0xed,0x01,0xa3]
701 @ CHECK: ldcl p2, c11, [r7] @ encoding: [0xd7,0xed,0x00,0xb2]
702 @ CHECK: ldcl p1, c12, [r8, #-224] @ encoding: [0x58,0xed,0x38,0xc1]
703 @ CHECK: ldcl p0, c13, [r9, #-120]! @ encoding: [0x79,0xed,0x1e,0xd0]
704 @ CHECK: ldcl p6, c14, [r10], #16 @ encoding: [0xfa,0xec,0x04,0xe6]
705 @ CHECK: ldcl p7, c15, [r11], #-72 @ encoding: [0x7b,0xec,0x12,0xf7]
707 @ CHECK: ldc2 p2, c8, [r1], {25} @ encoding: [0x91,0xfc,0x19,0x82]
710 @------------------------------------------------------------------------------
712 @------------------------------------------------------------------------------
713 ldmia.w r4, {r4, r5, r8, r9}
715 ldmia.w r5!, {r3, r8}
716 ldm.w r4, {r4, r5, r8, r9}
722 ldmia r4, {r4, r5, r8, r9}
725 ldm r4, {r4, r5, r8, r9}
729 ldmia sp!, {r4-r11, pc}
731 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
732 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
733 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
734 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
735 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
736 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
737 @ CHECK: ldm.w r5!, {r1, r2} @ encoding: [0xb5,0xe8,0x06,0x00]
738 @ CHECK: ldm.w r2, {r1, r2} @ encoding: [0x92,0xe8,0x06,0x00]
740 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
741 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
742 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
743 @ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]
744 @ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]
745 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
746 @ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]
747 @ CHECK: pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc} @ encoding: [0xbd,0xe8,0xf0,0x8f]
750 @------------------------------------------------------------------------------
752 @------------------------------------------------------------------------------
753 ldmdb r4, {r4, r5, r8, r9}
758 ldmdb.w r5!, {r3, r8}
760 @ CHECK: ldmdb r4, {r4, r5, r8, r9} @ encoding: [0x14,0xe9,0x30,0x03]
761 @ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00]
762 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]
763 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]
764 @ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00]
765 @ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]
768 @------------------------------------------------------------------------------
770 @------------------------------------------------------------------------------
783 @ CHECK: ldr r5, [r5, #-4] @ encoding: [0x55,0xf8,0x04,0x5c]
784 @ CHECK: ldr r5, [r6, #32] @ encoding: [0x35,0x6a]
785 @ CHECK: ldr.w r5, [r6, #33] @ encoding: [0xd6,0xf8,0x21,0x50]
786 @ CHECK: ldr.w r5, [r6, #257] @ encoding: [0xd6,0xf8,0x01,0x51]
787 @ CHECK: ldr.w pc, [r7, #257] @ encoding: [0xd7,0xf8,0x01,0xf1]
788 @ CHECK: ldr r2, [r4, #255]! @ encoding: [0x54,0xf8,0xff,0x2f]
789 @ CHECK: ldr r8, [sp, #4]! @ encoding: [0x5d,0xf8,0x04,0x8f]
790 @ CHECK: ldr lr, [sp, #-4]! @ encoding: [0x5d,0xf8,0x04,0xed]
791 @ CHECK: ldr r2, [r4], #255 @ encoding: [0x54,0xf8,0xff,0x2b]
792 @ CHECK: ldr r8, [sp], #4 @ encoding: [0x5d,0xf8,0x04,0x8b]
793 @ CHECK: ldr lr, [sp], #-4 @ encoding: [0x5d,0xf8,0x04,0xe9]
796 @------------------------------------------------------------------------------
798 @------------------------------------------------------------------------------
802 @ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A']
803 @ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
804 @ CHECK: ldr.w lr, _strcmp-4 @ encoding: [0x5f'A',0xf8'A',A,0xe0'A']
805 @ CHECK: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12
820 @ CHECK: ldr r7, [pc, #8] @ encoding: [0x02,0x4f]
821 @ CHECK: ldr r7, [pc, #8] @ encoding: [0x02,0x4f]
822 @ CHECK: ldr.w r7, [pc, #8] @ encoding: [0xdf,0xf8,0x08,0x70]
823 @ CHECK: ldr r4, [pc, #1020] @ encoding: [0xff,0x4c]
824 @ CHECK: ldr.w r3, [pc, #-1020] @ encoding: [0x5f,0xf8,0xfc,0x33]
825 @ CHECK: ldr.w r6, [pc, #1024] @ encoding: [0xdf,0xf8,0x00,0x64]
826 @ CHECK: ldr.w r0, [pc, #-1024] @ encoding: [0x5f,0xf8,0x00,0x04]
827 @ CHECK: ldr.w r2, [pc, #4095] @ encoding: [0xdf,0xf8,0xff,0x2f]
828 @ CHECK: ldr.w r1, [pc, #-4095] @ encoding: [0x5f,0xf8,0xff,0x1f]
829 @ CHECK: ldr.w r8, [pc, #132] @ encoding: [0xdf,0xf8,0x84,0x80]
830 @ CHECK: ldr.w pc, [pc, #256] @ encoding: [0xdf,0xf8,0x00,0xf1]
831 @ CHECK: ldr.w pc, [pc, #-400] @ encoding: [0x5f,0xf8,0x90,0xf1]
839 @ CHECK: ldrb.w r9, [pc, #-0] @ encoding: [0x1f,0xf8,0x00,0x90]
840 @ CHECK: ldrsb.w r11, [pc, #-0] @ encoding: [0x1f,0xf9,0x00,0xb0]
841 @ CHECK: ldrh.w r10, [pc, #-0] @ encoding: [0x3f,0xf8,0x00,0xa0]
842 @ CHECK: ldrsh.w r1, [pc, #-0] @ encoding: [0x3f,0xf9,0x00,0x10]
843 @ CHECK: ldr.w r5, [pc, #-0] @ encoding: [0x5f,0xf8,0x00,0x50]
845 @------------------------------------------------------------------------------
847 @------------------------------------------------------------------------------
850 ldr r6, [r0, r2, lsl #3]
851 ldr r8, [r8, r2, lsl #2]
852 ldr r7, [sp, r2, lsl #1]
853 ldr r7, [sp, r2, lsl #0]
855 @ CHECK: ldr.w r1, [r8, r1] @ encoding: [0x58,0xf8,0x01,0x10]
856 @ CHECK: ldr.w r4, [r5, r2] @ encoding: [0x55,0xf8,0x02,0x40]
857 @ CHECK: ldr.w r6, [r0, r2, lsl #3] @ encoding: [0x50,0xf8,0x32,0x60]
858 @ CHECK: ldr.w r8, [r8, r2, lsl #2] @ encoding: [0x58,0xf8,0x22,0x80]
859 @ CHECK: ldr.w r7, [sp, r2, lsl #1] @ encoding: [0x5d,0xf8,0x12,0x70]
860 @ CHECK: ldr.w r7, [sp, r2] @ encoding: [0x5d,0xf8,0x02,0x70]
863 @------------------------------------------------------------------------------
865 @------------------------------------------------------------------------------
870 ldrb.w lr, [r7, #257]
878 @ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c]
879 @ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50]
880 @ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50]
881 @ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51]
882 @ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1]
883 @ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f]
884 @ CHECK: ldrb r2, [r5, #4]! @ encoding: [0x15,0xf8,0x04,0x2f]
885 @ CHECK: ldrb r1, [r4, #-4]! @ encoding: [0x14,0xf8,0x04,0x1d]
886 @ CHECK: ldrb lr, [r3], #255 @ encoding: [0x13,0xf8,0xff,0xeb]
887 @ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b]
888 @ CHECK: ldrb r3, [sp], #-4 @ encoding: [0x1d,0xf8,0x04,0x39]
891 @------------------------------------------------------------------------------
893 @------------------------------------------------------------------------------
896 ldrb r6, [r0, r2, lsl #3]
897 ldrb r8, [r8, r2, lsl #2]
898 ldrb r7, [sp, r2, lsl #1]
899 ldrb r7, [sp, r2, lsl #0]
901 @ CHECK: ldrb.w r1, [r8, r1] @ encoding: [0x18,0xf8,0x01,0x10]
902 @ CHECK: ldrb.w r4, [r5, r2] @ encoding: [0x15,0xf8,0x02,0x40]
903 @ CHECK: ldrb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0x60]
904 @ CHECK: ldrb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0x80]
905 @ CHECK: ldrb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0x70]
906 @ CHECK: ldrb.w r7, [sp, r2] @ encoding: [0x1d,0xf8,0x02,0x70]
909 @------------------------------------------------------------------------------
911 @------------------------------------------------------------------------------
917 @ CHECK: ldrbt r1, [r2] @ encoding: [0x12,0xf8,0x00,0x1e]
918 @ CHECK: ldrbt r1, [r8] @ encoding: [0x18,0xf8,0x00,0x1e]
919 @ CHECK: ldrbt r1, [r8, #3] @ encoding: [0x18,0xf8,0x03,0x1e]
920 @ CHECK: ldrbt r1, [r8, #255] @ encoding: [0x18,0xf8,0xff,0x1e]
923 @------------------------------------------------------------------------------
925 @------------------------------------------------------------------------------
926 ldrd r3, r5, [r6, #24]
927 ldrd r3, r5, [r6, #24]!
928 ldrd r3, r5, [r6], #4
929 ldrd r3, r5, [r6], #-8
931 ldrd r8, r1, [r3, #0]
932 ldrd r0, r1, [r2, #-0]
933 ldrd r0, r1, [r2, #-0]!
934 ldrd r0, r1, [r2], #-0
936 @ CHECK: ldrd r3, r5, [r6, #24] @ encoding: [0xd6,0xe9,0x06,0x35]
937 @ CHECK: ldrd r3, r5, [r6, #24]! @ encoding: [0xf6,0xe9,0x06,0x35]
938 @ CHECK: ldrd r3, r5, [r6], #4 @ encoding: [0xf6,0xe8,0x01,0x35]
939 @ CHECK: ldrd r3, r5, [r6], #-8 @ encoding: [0x76,0xe8,0x02,0x35]
940 @ CHECK: ldrd r3, r5, [r6] @ encoding: [0xd6,0xe9,0x00,0x35]
941 @ CHECK: ldrd r8, r1, [r3] @ encoding: [0xd3,0xe9,0x00,0x81]
942 @ CHECK: ldrd r0, r1, [r2, #-0] @ encoding: [0x52,0xe9,0x00,0x01]
943 @ CHECK: ldrd r0, r1, [r2, #-0]! @ encoding: [0x72,0xe9,0x00,0x01]
944 @ CHECK: ldrd r0, r1, [r2], #-0 @ encoding: [0x72,0xe8,0x00,0x01]
947 @------------------------------------------------------------------------------
948 @ FIXME: LDRD(literal)
949 @------------------------------------------------------------------------------
952 @------------------------------------------------------------------------------
953 @ LDREX/LDREXB/LDREXH/LDREXD
954 @------------------------------------------------------------------------------
962 @ CHECK: ldrex r1, [r4] @ encoding: [0x54,0xe8,0x00,0x1f]
963 @ CHECK: ldrex r8, [r4] @ encoding: [0x54,0xe8,0x00,0x8f]
964 @ CHECK: ldrex r2, [sp, #128] @ encoding: [0x5d,0xe8,0x20,0x2f]
965 @ CHECK: ldrexb r5, [r7] @ encoding: [0xd7,0xe8,0x4f,0x5f]
966 @ CHECK: ldrexh r9, [r12] @ encoding: [0xdc,0xe8,0x5f,0x9f]
967 @ CHECK: ldrexd r9, r3, [r4] @ encoding: [0xd4,0xe8,0x7f,0x93]
970 @------------------------------------------------------------------------------
972 @------------------------------------------------------------------------------
977 ldrh.w lr, [r7, #257]
985 @ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c]
986 @ CHECK: ldrh r5, [r6, #32] @ encoding: [0x35,0x8c]
987 @ CHECK: ldrh.w r5, [r6, #33] @ encoding: [0xb6,0xf8,0x21,0x50]
988 @ CHECK: ldrh.w r5, [r6, #257] @ encoding: [0xb6,0xf8,0x01,0x51]
989 @ CHECK: ldrh.w lr, [r7, #257] @ encoding: [0xb7,0xf8,0x01,0xe1]
990 @ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f]
991 @ CHECK: ldrh r2, [r5, #4]! @ encoding: [0x35,0xf8,0x04,0x2f]
992 @ CHECK: ldrh r1, [r4, #-4]! @ encoding: [0x34,0xf8,0x04,0x1d]
993 @ CHECK: ldrh lr, [r3], #255 @ encoding: [0x33,0xf8,0xff,0xeb]
994 @ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b]
995 @ CHECK: ldrh r3, [sp], #-4 @ encoding: [0x3d,0xf8,0x04,0x39]
998 @------------------------------------------------------------------------------
1000 @------------------------------------------------------------------------------
1003 ldrh r6, [r0, r2, lsl #3]
1004 ldrh r8, [r8, r2, lsl #2]
1005 ldrh r7, [sp, r2, lsl #1]
1006 ldrh r7, [sp, r2, lsl #0]
1008 @ CHECK: ldrh.w r1, [r8, r1] @ encoding: [0x38,0xf8,0x01,0x10]
1009 @ CHECK: ldrh.w r4, [r5, r2] @ encoding: [0x35,0xf8,0x02,0x40]
1010 @ CHECK: ldrh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf8,0x32,0x60]
1011 @ CHECK: ldrh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf8,0x22,0x80]
1012 @ CHECK: ldrh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf8,0x12,0x70]
1013 @ CHECK: ldrh.w r7, [sp, r2] @ encoding: [0x3d,0xf8,0x02,0x70]
1016 @------------------------------------------------------------------------------
1018 @------------------------------------------------------------------------------
1021 @ CHECK: ldrh.w r5, _bar @ encoding: [0x3f'A',0xf8'A',A,0x50'A']
1022 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1025 @------------------------------------------------------------------------------
1027 @------------------------------------------------------------------------------
1031 ldrht r1, [r8, #255]
1033 @ CHECK: ldrht r1, [r2] @ encoding: [0x32,0xf8,0x00,0x1e]
1034 @ CHECK: ldrht r1, [r8] @ encoding: [0x38,0xf8,0x00,0x1e]
1035 @ CHECK: ldrht r1, [r8, #3] @ encoding: [0x38,0xf8,0x03,0x1e]
1036 @ CHECK: ldrht r1, [r8, #255] @ encoding: [0x38,0xf8,0xff,0x1e]
1039 @------------------------------------------------------------------------------
1041 @------------------------------------------------------------------------------
1045 ldrsb r5, [r6, #257]
1046 ldrsb.w lr, [r7, #257]
1048 @ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c]
1049 @ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50]
1050 @ CHECK: ldrsb.w r5, [r6, #33] @ encoding: [0x96,0xf9,0x21,0x50]
1051 @ CHECK: ldrsb.w r5, [r6, #257] @ encoding: [0x96,0xf9,0x01,0x51]
1052 @ CHECK: ldrsb.w lr, [r7, #257] @ encoding: [0x97,0xf9,0x01,0xe1]
1055 @------------------------------------------------------------------------------
1057 @------------------------------------------------------------------------------
1059 ldrsb.w r4, [r5, r2]
1060 ldrsb r6, [r0, r2, lsl #3]
1061 ldrsb r8, [r8, r2, lsl #2]
1062 ldrsb r7, [sp, r2, lsl #1]
1063 ldrsb r7, [sp, r2, lsl #0]
1064 ldrsb r5, [r8, #255]!
1066 ldrsb r1, [r4, #-4]!
1067 ldrsb lr, [r3], #255
1071 @ CHECK: ldrsb.w r1, [r8, r1] @ encoding: [0x18,0xf9,0x01,0x10]
1072 @ CHECK: ldrsb.w r4, [r5, r2] @ encoding: [0x15,0xf9,0x02,0x40]
1073 @ CHECK: ldrsb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0x60]
1074 @ CHECK: ldrsb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0x80]
1075 @ CHECK: ldrsb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0x70]
1076 @ CHECK: ldrsb.w r7, [sp, r2] @ encoding: [0x1d,0xf9,0x02,0x70]
1077 @ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f]
1078 @ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f]
1079 @ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d]
1080 @ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb]
1081 @ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b]
1082 @ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39]
1085 @------------------------------------------------------------------------------
1087 @------------------------------------------------------------------------------
1090 @ CHECK: ldrsb.w r5, _bar @ encoding: [0x1f'A',0xf9'A',A,0x50'A']
1091 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1094 @------------------------------------------------------------------------------
1096 @------------------------------------------------------------------------------
1100 ldrsbt r1, [r8, #255]
1102 @ CHECK: ldrsbt r1, [r2] @ encoding: [0x12,0xf9,0x00,0x1e]
1103 @ CHECK: ldrsbt r1, [r8] @ encoding: [0x18,0xf9,0x00,0x1e]
1104 @ CHECK: ldrsbt r1, [r8, #3] @ encoding: [0x18,0xf9,0x03,0x1e]
1105 @ CHECK: ldrsbt r1, [r8, #255] @ encoding: [0x18,0xf9,0xff,0x1e]
1108 @------------------------------------------------------------------------------
1110 @------------------------------------------------------------------------------
1114 ldrsh r5, [r6, #257]
1115 ldrsh.w lr, [r7, #257]
1117 @ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c]
1118 @ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50]
1119 @ CHECK: ldrsh.w r5, [r6, #33] @ encoding: [0xb6,0xf9,0x21,0x50]
1120 @ CHECK: ldrsh.w r5, [r6, #257] @ encoding: [0xb6,0xf9,0x01,0x51]
1121 @ CHECK: ldrsh.w lr, [r7, #257] @ encoding: [0xb7,0xf9,0x01,0xe1]
1124 @------------------------------------------------------------------------------
1126 @------------------------------------------------------------------------------
1128 ldrsh.w r4, [r5, r2]
1129 ldrsh r6, [r0, r2, lsl #3]
1130 ldrsh r8, [r8, r2, lsl #2]
1131 ldrsh r7, [sp, r2, lsl #1]
1132 ldrsh r7, [sp, r2, lsl #0]
1133 ldrsh r5, [r8, #255]!
1135 ldrsh r1, [r4, #-4]!
1136 ldrsh lr, [r3], #255
1140 @ CHECK: ldrsh.w r1, [r8, r1] @ encoding: [0x38,0xf9,0x01,0x10]
1141 @ CHECK: ldrsh.w r4, [r5, r2] @ encoding: [0x35,0xf9,0x02,0x40]
1142 @ CHECK: ldrsh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf9,0x32,0x60]
1143 @ CHECK: ldrsh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf9,0x22,0x80]
1144 @ CHECK: ldrsh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf9,0x12,0x70]
1145 @ CHECK: ldrsh.w r7, [sp, r2] @ encoding: [0x3d,0xf9,0x02,0x70]
1146 @ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f]
1147 @ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f]
1148 @ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d]
1149 @ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb]
1150 @ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b]
1151 @ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39]
1154 @------------------------------------------------------------------------------
1156 @------------------------------------------------------------------------------
1159 @ CHECK: ldrsh.w r5, _bar @ encoding: [0x3f'A',0xf9'A',A,0x50'A']
1160 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1162 @ TEMPORARILY DISABLED:
1163 @ ldrsh.w r4, [pc, #1435]
1164 @ : ldrsh.w r4, [pc, #1435] @ encoding: [0x3f,0xf9,0x9b,0x45]
1166 @------------------------------------------------------------------------------
1168 @------------------------------------------------------------------------------
1172 ldrsht r1, [r8, #255]
1174 @ CHECK: ldrsht r1, [r2] @ encoding: [0x32,0xf9,0x00,0x1e]
1175 @ CHECK: ldrsht r1, [r8] @ encoding: [0x38,0xf9,0x00,0x1e]
1176 @ CHECK: ldrsht r1, [r8, #3] @ encoding: [0x38,0xf9,0x03,0x1e]
1177 @ CHECK: ldrsht r1, [r8, #255] @ encoding: [0x38,0xf9,0xff,0x1e]
1180 @------------------------------------------------------------------------------
1182 @------------------------------------------------------------------------------
1188 @ CHECK: ldrt r1, [r2] @ encoding: [0x52,0xf8,0x00,0x1e]
1189 @ CHECK: ldrt r2, [r6] @ encoding: [0x56,0xf8,0x00,0x2e]
1190 @ CHECK: ldrt r3, [r7, #3] @ encoding: [0x57,0xf8,0x03,0x3e]
1191 @ CHECK: ldrt r4, [r9, #255] @ encoding: [0x59,0xf8,0xff,0x4e]
1194 @------------------------------------------------------------------------------
1196 @------------------------------------------------------------------------------
1208 @ CHECK: lsl.w r2, r3, #12 @ encoding: [0x4f,0xea,0x03,0x32]
1209 @ CHECK: lsls.w r8, r3, #31 @ encoding: [0x5f,0xea,0xc3,0x78]
1210 @ CHECK: lsls.w r2, r3, #1 @ encoding: [0x5f,0xea,0x43,0x02]
1211 @ CHECK: lsl.w r2, r3, #4 @ encoding: [0x4f,0xea,0x03,0x12]
1212 @ CHECK: lsls.w r2, r12, #15 @ encoding: [0x5f,0xea,0xcc,0x32]
1214 @ CHECK: lsl.w r3, r3, #19 @ encoding: [0x4f,0xea,0xc3,0x43]
1215 @ CHECK: lsls.w r8, r8, #2 @ encoding: [0x5f,0xea,0x88,0x08]
1216 @ CHECK: lsls.w r7, r7, #5 @ encoding: [0x5f,0xea,0x47,0x17]
1217 @ CHECK: lsl.w r12, r12, #21 @ encoding: [0x4f,0xea,0x4c,0x5c]
1220 @------------------------------------------------------------------------------
1222 @------------------------------------------------------------------------------
1227 @ CHECK: lsl.w r3, r4, r2 @ encoding: [0x04,0xfa,0x02,0xf3]
1228 @ CHECK: lsl.w r1, r1, r2 @ encoding: [0x01,0xfa,0x02,0xf1]
1229 @ CHECK: lsls.w r3, r4, r8 @ encoding: [0x14,0xfa,0x08,0xf3]
1232 @------------------------------------------------------------------------------
1234 @------------------------------------------------------------------------------
1246 @ CHECK: lsr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x13,0x32]
1247 @ CHECK: lsrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x13,0x08]
1248 @ CHECK: lsrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x53,0x02]
1249 @ CHECK: lsr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x13,0x12]
1250 @ CHECK: lsrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xdc,0x32]
1252 @ CHECK: lsr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xd3,0x43]
1253 @ CHECK: lsrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0x98,0x08]
1254 @ CHECK: lsrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x57,0x17]
1255 @ CHECK: lsr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x5c,0x5c]
1258 @------------------------------------------------------------------------------
1260 @------------------------------------------------------------------------------
1265 @ CHECK: lsr.w r3, r4, r2 @ encoding: [0x24,0xfa,0x02,0xf3]
1266 @ CHECK: lsr.w r1, r1, r2 @ encoding: [0x21,0xfa,0x02,0xf1]
1267 @ CHECK: lsrs.w r3, r4, r8 @ encoding: [0x34,0xfa,0x08,0xf3]
1269 @------------------------------------------------------------------------------
1271 @------------------------------------------------------------------------------
1272 mcr p7, #1, r5, c1, c1, #4
1273 mcr2 p7, #1, r5, c1, c1, #4
1274 mcr p14, #0, r4, c0, c5
1275 mcr2 p4, #2, r2, c1, c3
1277 @ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57]
1278 @ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]
1279 @ CHECK: mcr p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e]
1280 @ CHECK: mcr2 p4, #2, r2, c1, c3, #0 @ encoding: [0x41,0xfe,0x13,0x24]
1283 @------------------------------------------------------------------------------
1285 @------------------------------------------------------------------------------
1286 mcrr p7, #15, r5, r4, c1
1287 mcrr2 p7, #15, r5, r4, c1
1289 @ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57]
1290 @ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57]
1293 @------------------------------------------------------------------------------
1295 @------------------------------------------------------------------------------
1299 @ CHECK: mla r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x03,0x41]
1300 @ CHECK: mls r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x13,0x41]
1303 @------------------------------------------------------------------------------
1305 @------------------------------------------------------------------------------
1312 mov.w r0, #0x3fc0000
1314 movs.w r0, #0x3fc0000
1327 @ CHECK: movs r1, #21 @ encoding: [0x15,0x21]
1328 @ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01]
1329 @ CHECK: movs.w r8, #21 @ encoding: [0x5f,0xf0,0x15,0x08]
1330 @ CHECK: movw r0, #65535 @ encoding: [0x4f,0xf6,0xff,0x70]
1331 @ CHECK: movw r1, #43777 @ encoding: [0x4a,0xf6,0x01,0x31]
1332 @ CHECK: movw r1, #43792 @ encoding: [0x4a,0xf6,0x10,0x31]
1333 @ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70]
1334 @ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70]
1335 @ CHECK: movs.w r0, #66846720 @ encoding: [0x5f,0xf0,0x7f,0x70]
1336 @ CHECK: itte eq @ encoding: [0x06,0xbf]
1337 @ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01]
1338 @ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21]
1339 @ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01]
1340 @ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76]
1341 @ CHECK: it lo @ encoding: [0x38,0xbf]
1342 @ CHECK: movlo.w r1, #-1 @ encoding: [0x4f,0xf0,0xff,0x31]
1343 @ CHECK: mvn r3, #2 @ encoding: [0x6f,0xf0,0x02,0x03]
1345 @------------------------------------------------------------------------------
1346 @ MOV(shifted register)
1347 @------------------------------------------------------------------------------
1350 movs r6, r2, asr #32
1360 moveq r4, r4, lsl r5
1361 moveq r4, r4, lsr r5
1362 moveq r4, r4, asr r5
1363 moveq r4, r4, ror r5
1366 @ CHECK: lsl.w r6, r2, #16 @ encoding: [0x4f,0xea,0x02,0x46]
1367 @ CHECK: lsr.w r6, r2, #16 @ encoding: [0x4f,0xea,0x12,0x46]
1368 @ CHECK: asrs r6, r2, #32 @ encoding: [0x16,0x10]
1369 @ CHECK: rors.w r6, r2, #5 @ encoding: [0x5f,0xea,0x72,0x16]
1370 @ CHECK: lsls r4, r5 @ encoding: [0xac,0x40]
1371 @ CHECK: lsrs r4, r5 @ encoding: [0xec,0x40]
1372 @ CHECK: asrs r4, r5 @ encoding: [0x2c,0x41]
1373 @ CHECK: rors r4, r5 @ encoding: [0xec,0x41]
1374 @ CHECK: lsl.w r4, r4, r5 @ encoding: [0x04,0xfa,0x05,0xf4]
1375 @ CHECK: rors.w r4, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf4]
1376 @ CHECK: lsrs.w r4, r5, r6 @ encoding: [0x35,0xfa,0x06,0xf4]
1377 @ CHECK: itttt eq @ encoding: [0x01,0xbf]
1378 @ CHECK: lsleq r4, r5 @ encoding: [0xac,0x40]
1379 @ CHECK: lsreq r4, r5 @ encoding: [0xec,0x40]
1380 @ CHECK: asreq r4, r5 @ encoding: [0x2c,0x41]
1381 @ CHECK: roreq r4, r5 @ encoding: [0xec,0x41]
1382 @ CHECK: rrx r4, r4 @ encoding: [0x4f,0xea,0x34,0x04]
1385 @------------------------------------------------------------------------------
1387 @------------------------------------------------------------------------------
1393 @ CHECK: movt r3, #7 @ encoding: [0xc0,0xf2,0x07,0x03]
1394 @ CHECK: movt r6, #65535 @ encoding: [0xcf,0xf6,0xff,0x76]
1395 @ CHECK: it eq @ encoding: [0x08,0xbf]
1396 @ CHECK: movteq r4, #4080 @ encoding: [0xc0,0xf6,0xf0,0x74]
1398 @------------------------------------------------------------------------------
1400 @------------------------------------------------------------------------------
1401 mrc p14, #0, r1, c1, c2, #4
1402 mrc p15, #7, apsr_nzcv, c15, c6, #6
1403 mrc p11, #1, r1, c2, c2
1404 mrc2 p12, #3, r3, c3, c4
1405 mrc2 p14, #0, r1, c1, c2, #4
1406 mrc2 p10, #7, apsr_nzcv, c15, c0, #1
1408 @ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e]
1409 @ CHECK: mrc p15, #7, apsr_nzcv, c15, c6, #6 @ encoding: [0xff,0xee,0xd6,0xff]
1410 @ CHECK: mrc p11, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x1b]
1411 @ CHECK: mrc2 p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c]
1412 @ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]
1413 @ CHECK: mrc2 p10, #7, apsr_nzcv, c15, c0, #1 @ encoding: [0xff,0xfe,0x30,0xfa]
1415 @------------------------------------------------------------------------------
1417 @------------------------------------------------------------------------------
1418 mrrc p7, #1, r5, r4, c1
1419 mrrc2 p7, #1, r5, r4, c1
1421 @ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57]
1422 @ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]
1425 @------------------------------------------------------------------------------
1427 @------------------------------------------------------------------------------
1432 @ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88]
1433 @ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88]
1434 @ CHECK: mrs r8, spsr @ encoding: [0xff,0xf3,0x00,0x88]
1437 @------------------------------------------------------------------------------
1439 @------------------------------------------------------------------------------
1456 @ CHECK: msr APSR_nzcvq, r1 @ encoding: [0x81,0xf3,0x00,0x88]
1457 @ CHECK: msr APSR_g, r2 @ encoding: [0x82,0xf3,0x00,0x84]
1458 @ CHECK: msr APSR_nzcvq, r3 @ encoding: [0x83,0xf3,0x00,0x88]
1459 @ CHECK: msr APSR_nzcvq, r4 @ encoding: [0x84,0xf3,0x00,0x88]
1460 @ CHECK: msr APSR_nzcvqg, r5 @ encoding: [0x85,0xf3,0x00,0x8c]
1461 @ CHECK: msr CPSR_fc, r6 @ encoding: [0x86,0xf3,0x00,0x89]
1462 @ CHECK: msr CPSR_c, r7 @ encoding: [0x87,0xf3,0x00,0x81]
1463 @ CHECK: msr CPSR_x, r8 @ encoding: [0x88,0xf3,0x00,0x82]
1464 @ CHECK: msr CPSR_fc, r9 @ encoding: [0x89,0xf3,0x00,0x89]
1465 @ CHECK: msr CPSR_fc, r11 @ encoding: [0x8b,0xf3,0x00,0x89]
1466 @ CHECK: msr CPSR_fsx, r12 @ encoding: [0x8c,0xf3,0x00,0x8e]
1467 @ CHECK: msr SPSR_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89]
1468 @ CHECK: msr SPSR_fsxc, r5 @ encoding: [0x95,0xf3,0x00,0x8f]
1469 @ CHECK: msr CPSR_fsxc, r8 @ encoding: [0x88,0xf3,0x00,0x8f]
1470 @ CHECK: msr CPSR_fc, r3 @ encoding: [0x83,0xf3,0x00,0x89]
1473 @------------------------------------------------------------------------------
1475 @------------------------------------------------------------------------------
1485 @ CHECK: muls r3, r4, r3 @ encoding: [0x63,0x43]
1486 @ CHECK: mul r3, r4, r3 @ encoding: [0x04,0xfb,0x03,0xf3]
1487 @ CHECK: mul r3, r4, r6 @ encoding: [0x04,0xfb,0x06,0xf3]
1488 @ CHECK: it eq @ encoding: [0x08,0xbf]
1489 @ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3]
1490 @ CHECK: it le @ encoding: [0xd8,0xbf]
1491 @ CHECK: mulle r4, r4, r8 @ encoding: [0x04,0xfb,0x08,0xf4]
1492 @ CHECK: mul r5, r6, r5 @ encoding: [0x06,0xfb,0x05,0xf5]
1495 @------------------------------------------------------------------------------
1497 @------------------------------------------------------------------------------
1506 @ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08]
1507 @ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70]
1508 @ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70]
1509 @ CHECK: itte eq @ encoding: [0x06,0xbf]
1510 @ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01]
1511 @ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]
1512 @ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]
1515 @------------------------------------------------------------------------------
1517 @------------------------------------------------------------------------------
1522 mvn.w r5, r6, asr #4
1528 @ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02]
1529 @ CHECK: mvns r2, r3 @ encoding: [0xda,0x43]
1530 @ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45]
1531 @ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25]
1532 @ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15]
1533 @ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15]
1534 @ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05]
1535 @ CHECK: it eq @ encoding: [0x08,0xbf]
1536 @ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43]
1538 @------------------------------------------------------------------------------
1540 @------------------------------------------------------------------------------
1544 @ CHECK: rsb.w r5, r2, #0 @ encoding: [0xc2,0xf1,0x00,0x05]
1545 @ CHECK: rsb.w r5, r8, #0 @ encoding: [0xc8,0xf1,0x00,0x05]
1548 @------------------------------------------------------------------------------
1550 @------------------------------------------------------------------------------
1553 @ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
1556 @------------------------------------------------------------------------------
1558 @------------------------------------------------------------------------------
1562 orn r4, r5, r6, lsl #5
1563 orns r4, r5, r6, lsr #5
1564 orn r4, r5, r6, lsr #5
1565 orns r4, r5, r6, asr #5
1566 orn r4, r5, r6, ror #5
1568 @ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44]
1569 @ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04]
1570 @ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04]
1571 @ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14]
1572 @ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14]
1573 @ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14]
1574 @ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14]
1575 @ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14]
1578 @------------------------------------------------------------------------------
1580 @------------------------------------------------------------------------------
1583 orr r4, r5, r6, lsl #5
1584 orrs r4, r5, r6, lsr #5
1585 orr r4, r5, r6, lsr #5
1586 orrs r4, r5, r6, asr #5
1587 orr r4, r5, r6, ror #5
1589 @ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44]
1590 @ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04]
1591 @ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14]
1592 @ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14]
1593 @ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14]
1594 @ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14]
1595 @ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14]
1598 @------------------------------------------------------------------------------
1600 @------------------------------------------------------------------------------
1602 pkhbt r2, r2, r3, lsl #31
1603 pkhbt r2, r2, r3, lsl #0
1604 pkhbt r2, r2, r3, lsl #15
1607 pkhtb r2, r2, r3, asr #31
1608 pkhtb r2, r2, r3, asr #15
1610 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
1611 @ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72]
1612 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
1613 @ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32]
1615 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
1616 @ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72]
1617 @ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32]
1620 @------------------------------------------------------------------------------
1622 @------------------------------------------------------------------------------
1631 @ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc]
1632 @ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0]
1633 @ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0]
1634 @ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1]
1635 @ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1]
1636 @ CHECK: pld [r1] @ encoding: [0x91,0xf8,0x00,0xf0]
1637 @ CHECK: pld [r1, #-0] @ encoding: [0x11,0xf8,0x00,0xfc]
1640 @------------------------------------------------------------------------------
1642 @------------------------------------------------------------------------------
1645 @ FIXME: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A']
1646 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
1649 @ CHECK: pld [pc, #-4095] @ encoding: [0x1f,0xf8,0xff,0xff]
1652 @------------------------------------------------------------------------------
1654 @------------------------------------------------------------------------------
1657 pld [r0, r2, lsl #3]
1658 pld [r8, r2, lsl #2]
1659 pld [sp, r2, lsl #1]
1660 pld [sp, r2, lsl #0]
1662 @ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0]
1663 @ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0]
1664 @ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0]
1665 @ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0]
1666 @ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0]
1667 @ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0]
1669 @------------------------------------------------------------------------------
1671 @------------------------------------------------------------------------------
1680 @ CHECK: pli [r5, #-4] @ encoding: [0x15,0xf9,0x04,0xfc]
1681 @ CHECK: pli [r6, #32] @ encoding: [0x96,0xf9,0x20,0xf0]
1682 @ CHECK: pli [r6, #33] @ encoding: [0x96,0xf9,0x21,0xf0]
1683 @ CHECK: pli [r6, #257] @ encoding: [0x96,0xf9,0x01,0xf1]
1684 @ CHECK: pli [r7, #257] @ encoding: [0x97,0xf9,0x01,0xf1]
1685 @ CHECK: pli [pc, #4095] @ encoding: [0x9f,0xf9,0xff,0xff]
1686 @ CHECK: pli [pc, #-4095] @ encoding: [0x1f,0xf9,0xff,0xff]
1689 @------------------------------------------------------------------------------
1691 @------------------------------------------------------------------------------
1695 @ FIXME: pli _foo @ encoding: [0x9f'A',0xf9'A',A,0xf0'A']
1696 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
1699 @------------------------------------------------------------------------------
1701 @------------------------------------------------------------------------------
1704 pli [r0, r2, lsl #3]
1705 pli [r8, r2, lsl #2]
1706 pli [sp, r2, lsl #1]
1707 pli [sp, r2, lsl #0]
1709 @ CHECK: pli [r8, r1] @ encoding: [0x18,0xf9,0x01,0xf0]
1710 @ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0]
1711 @ CHECK: pli [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0xf0]
1712 @ CHECK: pli [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0xf0]
1713 @ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0]
1714 @ CHECK: pli [sp, r2] @ encoding: [0x1d,0xf9,0x02,0xf0]
1716 @------------------------------------------------------------------------------
1718 @------------------------------------------------------------------------------
1721 @ CHECK: pop.w {r2, r9} @ encoding: [0xbd,0xe8,0x04,0x02]
1724 @------------------------------------------------------------------------------
1726 @------------------------------------------------------------------------------
1729 @ CHECK: push.w {r2, r9} @ encoding: [0x2d,0xe9,0x04,0x02]
1732 @------------------------------------------------------------------------------
1734 @------------------------------------------------------------------------------
1743 @ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]
1744 @ CHECK: qadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1]
1745 @ CHECK: qadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1]
1746 @ CHECK: itte gt @ encoding: [0xc6,0xbf]
1747 @ CHECK: qaddgt r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]
1748 @ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1]
1749 @ CHECK: qadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1]
1752 @------------------------------------------------------------------------------
1754 @------------------------------------------------------------------------------
1761 @ CHECK: qdadd r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6]
1762 @ CHECK: qdsub r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6]
1763 @ CHECK: itt hi @ encoding: [0x84,0xbf]
1764 @ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6]
1765 @ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6]
1768 @------------------------------------------------------------------------------
1770 @------------------------------------------------------------------------------
1775 @ CHECK: qsax r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9]
1776 @ CHECK: it eq @ encoding: [0x08,0xbf]
1777 @ CHECK: qsaxeq r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9]
1780 @------------------------------------------------------------------------------
1782 @------------------------------------------------------------------------------
1791 @ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]
1792 @ CHECK: qsub16 r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1]
1793 @ CHECK: qsub8 r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1]
1794 @ CHECK: itet le @ encoding: [0xd6,0xbf]
1795 @ CHECK: qsuble r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]
1796 @ CHECK: qsub16gt r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1]
1797 @ CHECK: qsub8le r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1]
1800 @------------------------------------------------------------------------------
1802 @------------------------------------------------------------------------------
1807 @ CHECK: rbit r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1]
1808 @ CHECK: it ne @ encoding: [0x18,0xbf]
1809 @ CHECK: rbitne r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1]
1812 @------------------------------------------------------------------------------
1814 @------------------------------------------------------------------------------
1821 @ CHECK: rev.w r1, r2 @ encoding: [0x92,0xfa,0x82,0xf1]
1822 @ CHECK: rev.w r2, r8 @ encoding: [0x98,0xfa,0x88,0xf2]
1823 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
1824 @ CHECK: revne r1, r2 @ encoding: [0x11,0xba]
1825 @ CHECK: revne.w r1, r8 @ encoding: [0x98,0xfa,0x88,0xf1]
1828 @------------------------------------------------------------------------------
1830 @------------------------------------------------------------------------------
1837 @ CHECK: rev16.w r1, r2 @ encoding: [0x92,0xfa,0x92,0xf1]
1838 @ CHECK: rev16.w r2, r8 @ encoding: [0x98,0xfa,0x98,0xf2]
1839 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
1840 @ CHECK: rev16ne r1, r2 @ encoding: [0x51,0xba]
1841 @ CHECK: rev16ne.w r1, r8 @ encoding: [0x98,0xfa,0x98,0xf1]
1844 @------------------------------------------------------------------------------
1846 @------------------------------------------------------------------------------
1853 @ CHECK: revsh.w r1, r2 @ encoding: [0x92,0xfa,0xb2,0xf1]
1854 @ CHECK: revsh.w r2, r8 @ encoding: [0x98,0xfa,0xb8,0xf2]
1855 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
1856 @ CHECK: revshne r1, r2 @ encoding: [0xd1,0xba]
1857 @ CHECK: revshne.w r1, r8 @ encoding: [0x98,0xfa,0xb8,0xf1]
1860 @------------------------------------------------------------------------------
1862 @------------------------------------------------------------------------------
1874 @ CHECK: ror.w r2, r3, #12 @ encoding: [0x4f,0xea,0x33,0x32]
1875 @ CHECK: rors.w r8, r3, #31 @ encoding: [0x5f,0xea,0xf3,0x78]
1876 @ CHECK: rors.w r2, r3, #1 @ encoding: [0x5f,0xea,0x73,0x02]
1877 @ CHECK: ror.w r2, r3, #4 @ encoding: [0x4f,0xea,0x33,0x12]
1878 @ CHECK: rors.w r2, r12, #15 @ encoding: [0x5f,0xea,0xfc,0x32]
1880 @ CHECK: ror.w r3, r3, #19 @ encoding: [0x4f,0xea,0xf3,0x43]
1881 @ CHECK: rors.w r8, r8, #2 @ encoding: [0x5f,0xea,0xb8,0x08]
1882 @ CHECK: rors.w r7, r7, #5 @ encoding: [0x5f,0xea,0x77,0x17]
1883 @ CHECK: ror.w r12, r12, #21 @ encoding: [0x4f,0xea,0x7c,0x5c]
1886 @------------------------------------------------------------------------------
1888 @------------------------------------------------------------------------------
1893 @ CHECK: ror.w r3, r4, r2 @ encoding: [0x64,0xfa,0x02,0xf3]
1894 @ CHECK: ror.w r1, r1, r2 @ encoding: [0x61,0xfa,0x02,0xf1]
1895 @ CHECK: rors.w r3, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf3]
1898 @------------------------------------------------------------------------------
1900 @------------------------------------------------------------------------------
1907 @ CHECK: rrx r1, r2 @ encoding: [0x4f,0xea,0x32,0x01]
1908 @ CHECK: rrxs r1, r2 @ encoding: [0x5f,0xea,0x32,0x01]
1909 @ CHECK: ite lt @ encoding: [0xb4,0xbf]
1910 @ CHECK: rrxlt r9, r12 @ encoding: [0x4f,0xea,0x3c,0x09]
1911 @ CHECK: rrxsge r8, r3 @ encoding: [0x5f,0xea,0x33,0x08]
1913 @------------------------------------------------------------------------------
1915 @------------------------------------------------------------------------------
1916 rsb r2, r5, #0xff000
1925 @ CHECK: rsb.w r2, r5, #1044480 @ encoding: [0xc5,0xf5,0x7f,0x22]
1926 @ CHECK: rsbs.w r3, r12, #15 @ encoding: [0xdc,0xf1,0x0f,0x03]
1927 @ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01]
1928 @ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01]
1929 @ CHECK: rsb.w r11, r11, #0 @ encoding: [0xcb,0xf1,0x00,0x0b]
1930 @ CHECK: rsb.w r9, r9, #0 @ encoding: [0xc9,0xf1,0x00,0x09]
1931 @ CHECK: rsbs r3, r1, #0 @ encoding: [0x4b,0x42]
1932 @ CHECK: rsb.w r3, r1, #0 @ encoding: [0xc1,0xf1,0x00,0x03]
1935 @------------------------------------------------------------------------------
1937 @------------------------------------------------------------------------------
1940 rsb r1, r4, r8, asr #3
1941 rsbs r2, r1, r7, lsl #1
1943 @ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04]
1944 @ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04]
1945 @ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01]
1946 @ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02]
1949 @------------------------------------------------------------------------------
1951 @------------------------------------------------------------------------------
1956 @ CHECK: sadd16 r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3]
1957 @ CHECK: it ne @ encoding: [0x18,0xbf]
1958 @ CHECK: sadd16ne r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3]
1961 @------------------------------------------------------------------------------
1963 @------------------------------------------------------------------------------
1968 @ CHECK: sadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3]
1969 @ CHECK: it ne @ encoding: [0x18,0xbf]
1970 @ CHECK: sadd8ne r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3]
1973 @------------------------------------------------------------------------------
1975 @------------------------------------------------------------------------------
1978 saddsubxne r2, r5, r6
1983 @ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9]
1984 @ CHECK: it ne @ encoding: [0x18,0xbf]
1985 @ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2]
1986 @ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9]
1987 @ CHECK: it ne @ encoding: [0x18,0xbf]
1988 @ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2]
1991 @------------------------------------------------------------------------------
1993 @------------------------------------------------------------------------------
1997 sbc r3, r7, #0x00550055
1998 sbc r8, r12, #0xaa00aa00
1999 sbc r9, r7, #0xa5a5a5a5
2000 sbc r5, r3, #0x87000000
2001 sbc r4, r2, #0x7f800000
2002 sbc r4, r2, #0x00000680
2004 @ CHECK: sbc r0, r1, #4 @ encoding: [0x61,0xf1,0x04,0x00]
2005 @ CHECK: sbcs r0, r1, #0 @ encoding: [0x71,0xf1,0x00,0x00]
2006 @ CHECK: sbc r1, r2, #255 @ encoding: [0x62,0xf1,0xff,0x01]
2007 @ CHECK: sbc r3, r7, #5570645 @ encoding: [0x67,0xf1,0x55,0x13]
2008 @ CHECK: sbc r8, r12, #2852170240 @ encoding: [0x6c,0xf1,0xaa,0x28]
2009 @ CHECK: sbc r9, r7, #2779096485 @ encoding: [0x67,0xf1,0xa5,0x39]
2010 @ CHECK: sbc r5, r3, #2264924160 @ encoding: [0x63,0xf1,0x07,0x45]
2011 @ CHECK: sbc r4, r2, #2139095040 @ encoding: [0x62,0xf1,0xff,0x44]
2012 @ CHECK: sbc r4, r2, #1664 @ encoding: [0x62,0xf5,0xd0,0x64]
2015 @------------------------------------------------------------------------------
2017 @------------------------------------------------------------------------------
2022 sbc r0, r1, r3, ror #4
2023 sbcs r0, r1, r3, lsl #7
2024 sbc.w r0, r1, r3, lsr #31
2025 sbcs.w r0, r1, r3, asr #32
2027 @ CHECK: sbc.w r4, r5, r6 @ encoding: [0x65,0xeb,0x06,0x04]
2028 @ CHECK: sbcs.w r4, r5, r6 @ encoding: [0x75,0xeb,0x06,0x04]
2029 @ CHECK: sbc.w r9, r1, r3 @ encoding: [0x61,0xeb,0x03,0x09]
2030 @ CHECK: sbcs.w r9, r1, r3 @ encoding: [0x71,0xeb,0x03,0x09]
2031 @ CHECK: sbc.w r0, r1, r3, ror #4 @ encoding: [0x61,0xeb,0x33,0x10]
2032 @ CHECK: sbcs.w r0, r1, r3, lsl #7 @ encoding: [0x71,0xeb,0xc3,0x10]
2033 @ CHECK: sbc.w r0, r1, r3, lsr #31 @ encoding: [0x61,0xeb,0xd3,0x70]
2034 @ CHECK: sbcs.w r0, r1, r3, asr #32 @ encoding: [0x71,0xeb,0x23,0x00]
2037 @------------------------------------------------------------------------------
2039 @------------------------------------------------------------------------------
2040 sbfx r4, r5, #16, #1
2042 sbfxgt r4, r5, #16, #16
2044 @ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x45,0xf3,0x00,0x44]
2045 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2046 @ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x45,0xf3,0x0f,0x44]
2049 @------------------------------------------------------------------------------
2051 @------------------------------------------------------------------------------
2056 @ CHECK: sel r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5]
2057 @ CHECK: it le @ encoding: [0xd8,0xbf]
2058 @ CHECK: selle r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5]
2061 @------------------------------------------------------------------------------
2063 @------------------------------------------------------------------------------
2068 @ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80]
2069 @ CHECK: it eq @ encoding: [0x08,0xbf]
2070 @ CHECK: seveq.w @ encoding: [0xaf,0xf3,0x04,0x80]
2073 @------------------------------------------------------------------------------
2075 @------------------------------------------------------------------------------
2082 @ CHECK: sadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1]
2083 @ CHECK: sadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1]
2084 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
2085 @ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1]
2086 @ CHECK: sadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1]
2089 @------------------------------------------------------------------------------
2091 @------------------------------------------------------------------------------
2095 shaddsubx r4, r8, r2
2097 shaddsubxgt r4, r8, r2
2099 @ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2100 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2101 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2102 @ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2103 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2104 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]
2107 @------------------------------------------------------------------------------
2109 @------------------------------------------------------------------------------
2113 shsubaddx r4, r8, r2
2115 shsubaddxgt r4, r8, r2
2117 @ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2118 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2119 @ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2120 @ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2121 @ CHECK: it gt @ encoding: [0xc8,0xbf]
2122 @ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]
2125 @------------------------------------------------------------------------------
2127 @------------------------------------------------------------------------------
2131 shsub16gt r4, r8, r2
2134 @ CHECK: shsub16 r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4]
2135 @ CHECK: shsub8 r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4]
2136 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
2137 @ CHECK: shsub16gt r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4]
2138 @ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4]
2141 @------------------------------------------------------------------------------
2142 @ SMLABB/SMLABT/SMLATB/SMLATT
2143 @------------------------------------------------------------------------------
2144 smlabb r3, r1, r9, r0
2145 smlabt r5, r6, r4, r1
2146 smlatb r4, r2, r3, r2
2147 smlatt r8, r3, r8, r4
2149 smlabbgt r3, r1, r9, r0
2150 smlabtle r5, r6, r4, r1
2151 smlatbgt r4, r2, r3, r2
2152 smlattle r8, r3, r8, r4
2154 @ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03]
2155 @ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15]
2156 @ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24]
2157 @ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48]
2158 @ CHECK: itete gt @ encoding: [0xcb,0xbf]
2159 @ CHECK: smlabbgt r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03]
2160 @ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15]
2161 @ CHECK: smlatbgt r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24]
2162 @ CHECK: smlattle r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48]
2165 @------------------------------------------------------------------------------
2167 @------------------------------------------------------------------------------
2168 smlad r2, r3, r5, r8
2169 smladx r2, r3, r5, r8
2171 smladhi r2, r3, r5, r8
2172 smladxhi r2, r3, r5, r8
2174 @ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82]
2175 @ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82]
2176 @ CHECK: itt hi @ encoding: [0x84,0xbf]
2177 @ CHECK: smladhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82]
2178 @ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82]
2181 @------------------------------------------------------------------------------
2183 @------------------------------------------------------------------------------
2184 smlal r2, r3, r5, r8
2186 smlaleq r2, r3, r5, r8
2188 @ CHECK: smlal r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23]
2189 @ CHECK: it eq @ encoding: [0x08,0xbf]
2190 @ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23]
2193 @------------------------------------------------------------------------------
2194 @ SMLALBB/SMLALBT/SMLALTB/SMLALTT
2195 @------------------------------------------------------------------------------
2196 smlalbb r3, r1, r9, r0
2197 smlalbt r5, r6, r4, r1
2198 smlaltb r4, r2, r3, r2
2199 smlaltt r8, r3, r8, r4
2201 smlalbbge r3, r1, r9, r0
2202 smlalbtlt r5, r6, r4, r1
2203 smlaltblt r4, r2, r3, r2
2204 smlalttge r8, r3, r8, r4
2206 @ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31]
2207 @ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56]
2208 @ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42]
2209 @ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83]
2210 @ CHECK: iteet ge @ encoding: [0xad,0xbf]
2211 @ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31]
2212 @ CHECK: smlalbtlt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56]
2213 @ CHECK: smlaltblt r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42]
2214 @ CHECK: smlalttge r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83]
2217 @------------------------------------------------------------------------------
2219 @------------------------------------------------------------------------------
2220 smlald r2, r3, r5, r8
2221 smlaldx r2, r3, r5, r8
2223 smlaldeq r2, r3, r5, r8
2224 smlaldxne r2, r3, r5, r8
2226 @ CHECK: smlald r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23]
2227 @ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23]
2228 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2229 @ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23]
2230 @ CHECK: smlaldxne r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23]
2233 @------------------------------------------------------------------------------
2235 @------------------------------------------------------------------------------
2236 smlawb r2, r3, r10, r8
2237 smlawt r8, r3, r5, r9
2239 smlawbeq r2, r7, r5, r8
2240 smlawtne r1, r3, r0, r8
2242 @ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x33,0xfb,0x0a,0x82]
2243 @ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0x33,0xfb,0x15,0x98]
2244 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2245 @ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x37,0xfb,0x05,0x82]
2246 @ CHECK: smlawtne r1, r3, r0, r8 @ encoding: [0x33,0xfb,0x10,0x81]
2249 @------------------------------------------------------------------------------
2251 @------------------------------------------------------------------------------
2252 smlsd r2, r3, r5, r8
2253 smlsdx r2, r3, r5, r8
2255 smlsdle r2, r3, r5, r8
2256 smlsdxgt r2, r3, r5, r8
2258 @ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82]
2259 @ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82]
2260 @ CHECK: ite le @ encoding: [0xd4,0xbf]
2261 @ CHECK: smlsdle r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82]
2262 @ CHECK: smlsdxgt r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82]
2265 @------------------------------------------------------------------------------
2267 @------------------------------------------------------------------------------
2268 smlsld r2, r9, r5, r1
2269 smlsldx r4, r11, r2, r8
2271 smlsldge r8, r2, r5, r6
2272 smlsldxlt r1, r0, r3, r8
2274 @ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0xd5,0xfb,0xc1,0x29]
2275 @ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b]
2276 @ CHECK: ite ge @ encoding: [0xac,0xbf]
2277 @ CHECK: smlsldge r8, r2, r5, r6 @ encoding: [0xd5,0xfb,0xc6,0x82]
2278 @ CHECK: smlsldxlt r1, r0, r3, r8 @ encoding: [0xd3,0xfb,0xd8,0x10]
2281 @------------------------------------------------------------------------------
2283 @------------------------------------------------------------------------------
2284 smmla r1, r2, r3, r4
2285 smmlar r4, r3, r2, r1
2287 smmlalo r1, r2, r3, r4
2288 smmlarcs r4, r3, r2, r1
2290 @ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41]
2291 @ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14]
2292 @ CHECK: ite lo @ encoding: [0x34,0xbf]
2293 @ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41]
2294 @ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14]
2297 @------------------------------------------------------------------------------
2299 @------------------------------------------------------------------------------
2300 smmls r1, r2, r3, r4
2301 smmlsr r4, r3, r2, r1
2303 smmlslo r1, r2, r3, r4
2304 smmlsrcs r4, r3, r2, r1
2306 @ CHECK: smmls r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41]
2307 @ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14]
2308 @ CHECK: ite lo @ encoding: [0x34,0xbf]
2309 @ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41]
2310 @ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14]
2313 @------------------------------------------------------------------------------
2315 @------------------------------------------------------------------------------
2322 @ CHECK: smmul r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2]
2323 @ CHECK: smmulr r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3]
2324 @ CHECK: ite lo @ encoding: [0x34,0xbf]
2325 @ CHECK: smmullo r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2]
2326 @ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3]
2329 @------------------------------------------------------------------------------
2331 @------------------------------------------------------------------------------
2338 @ CHECK: smuad r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2]
2339 @ CHECK: smuadx r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3]
2340 @ CHECK: ite lt @ encoding: [0xb4,0xbf]
2341 @ CHECK: smuadlt r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2]
2342 @ CHECK: smuadxge r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3]
2345 @------------------------------------------------------------------------------
2346 @ SMULBB/SMULBT/SMULTB/SMULTT
2347 @------------------------------------------------------------------------------
2358 @ CHECK: smulbb r3, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf3]
2359 @ CHECK: smulbt r5, r4, r1 @ encoding: [0x14,0xfb,0x11,0xf5]
2360 @ CHECK: smultb r4, r2, r2 @ encoding: [0x12,0xfb,0x22,0xf4]
2361 @ CHECK: smultt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]
2362 @ CHECK: itete ge @ encoding: [0xab,0xbf]
2363 @ CHECK: smulbbge r1, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf1]
2364 @ CHECK: smulbtlt r5, r6, r4 @ encoding: [0x16,0xfb,0x14,0xf5]
2365 @ CHECK: smultbge r2, r3, r2 @ encoding: [0x13,0xfb,0x22,0xf2]
2366 @ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]
2369 @------------------------------------------------------------------------------
2371 @------------------------------------------------------------------------------
2372 smull r3, r9, r0, r1
2374 smulleq r8, r3, r4, r5
2376 @ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39]
2377 @ CHECK: it eq @ encoding: [0x08,0xbf]
2378 @ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83]
2381 @------------------------------------------------------------------------------
2383 @------------------------------------------------------------------------------
2390 @ CHECK: smulwb r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3]
2391 @ CHECK: smulwt r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3]
2392 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
2393 @ CHECK: smulwbgt r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3]
2394 @ CHECK: smulwtle r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3]
2397 @------------------------------------------------------------------------------
2399 @------------------------------------------------------------------------------
2406 @ CHECK: smusd r3, r0, r1 @ encoding: [0x40,0xfb,0x01,0xf3]
2407 @ CHECK: smusdx r3, r9, r2 @ encoding: [0x49,0xfb,0x12,0xf3]
2408 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2409 @ CHECK: smusdeq r8, r3, r2 @ encoding: [0x43,0xfb,0x02,0xf8]
2410 @ CHECK: smusdxne r7, r4, r3 @ encoding: [0x44,0xfb,0x13,0xf7]
2413 @------------------------------------------------------------------------------
2415 @------------------------------------------------------------------------------
2431 @ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0]
2432 @ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0]
2433 @ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0]
2434 @ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0]
2435 @ CHECK: srsia sp, #10 @ encoding: [0x8d,0xe9,0x0a,0xc0]
2436 @ CHECK: srsdb sp, #9 @ encoding: [0x0d,0xe8,0x09,0xc0]
2437 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2438 @ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0]
2439 @ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0]
2440 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2457 @ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0]
2458 @ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0]
2459 @ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0]
2460 @ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0]
2461 @ CHECK: srsia sp, #10 @ encoding: [0x8d,0xe9,0x0a,0xc0]
2462 @ CHECK: srsdb sp, #9 @ encoding: [0x0d,0xe8,0x09,0xc0]
2463 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2464 @ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0]
2465 @ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0]
2466 @ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]
2469 @------------------------------------------------------------------------------
2471 @------------------------------------------------------------------------------
2473 ssat r8, #1, r10, lsl #0
2474 ssat r8, #1, r10, lsl #31
2475 ssat r8, #1, r10, asr #1
2477 @ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08]
2478 @ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08]
2479 @ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x0a,0xf3,0xc0,0x78]
2480 @ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0x2a,0xf3,0x40,0x08]
2483 @------------------------------------------------------------------------------
2485 @------------------------------------------------------------------------------
2489 @ CHECK: ssat16 r2, #1, r7 @ encoding: [0x27,0xf3,0x00,0x02]
2490 @ CHECK: ssat16 r3, #16, r5 @ encoding: [0x25,0xf3,0x0f,0x03]
2493 @------------------------------------------------------------------------------
2495 @------------------------------------------------------------------------------
2498 ssubaddxlt r2, r3, r4
2503 @ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2504 @ CHECK: it lt @ encoding: [0xb8,0xbf]
2505 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2506 @ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2507 @ CHECK: it lt @ encoding: [0xb8,0xbf]
2508 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]
2511 @------------------------------------------------------------------------------
2513 @------------------------------------------------------------------------------
2520 @ CHECK: ssub16 r1, r0, r6 @ encoding: [0xd0,0xfa,0x06,0xf1]
2521 @ CHECK: ssub8 r9, r2, r4 @ encoding: [0xc2,0xfa,0x04,0xf9]
2522 @ CHECK: ite ne @ encoding: [0x14,0xbf]
2523 @ CHECK: ssub16ne r5, r3, r2 @ encoding: [0xd3,0xfa,0x02,0xf5]
2524 @ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xc1,0xfa,0x02,0xf5]
2527 @------------------------------------------------------------------------------
2529 @------------------------------------------------------------------------------
2530 stc2 p0, c8, [r1, #4]
2532 stc2 p2, c6, [r3, #-224]
2533 stc2 p3, c5, [r4, #-120]!
2534 stc2 p4, c4, [r5], #16
2535 stc2 p5, c3, [r6], #-72
2536 stc2l p6, c2, [r7, #4]
2538 stc2l p8, c0, [r9, #-224]
2539 stc2l p9, c1, [r10, #-120]!
2540 stc2l p10, c2, [r11], #16
2541 stc2l p11, c3, [r12], #-72
2543 stc p12, c4, [r0, #4]
2545 stc p14, c6, [r2, #-224]
2546 stc p15, c7, [r3, #-120]!
2547 stc p5, c8, [r4], #16
2548 stc p4, c9, [r5], #-72
2549 stcl p3, c10, [r6, #4]
2551 stcl p1, c12, [r8, #-224]
2552 stcl p0, c13, [r9, #-120]!
2553 stcl p6, c14, [r10], #16
2554 stcl p7, c15, [r11], #-72
2556 stc2 p2, c8, [r1], { 25 }
2558 @ CHECK: stc2 p0, c8, [r1, #4] @ encoding: [0x81,0xfd,0x01,0x80]
2559 @ CHECK: stc2 p1, c7, [r2] @ encoding: [0x82,0xfd,0x00,0x71]
2560 @ CHECK: stc2 p2, c6, [r3, #-224] @ encoding: [0x03,0xfd,0x38,0x62]
2561 @ CHECK: stc2 p3, c5, [r4, #-120]! @ encoding: [0x24,0xfd,0x1e,0x53]
2562 @ CHECK: stc2 p4, c4, [r5], #16 @ encoding: [0xa5,0xfc,0x04,0x44]
2563 @ CHECK: stc2 p5, c3, [r6], #-72 @ encoding: [0x26,0xfc,0x12,0x35]
2564 @ CHECK: stc2l p6, c2, [r7, #4] @ encoding: [0xc7,0xfd,0x01,0x26]
2565 @ CHECK: stc2l p7, c1, [r8] @ encoding: [0xc8,0xfd,0x00,0x17]
2566 @ CHECK: stc2l p8, c0, [r9, #-224] @ encoding: [0x49,0xfd,0x38,0x08]
2567 @ CHECK: stc2l p9, c1, [r10, #-120]! @ encoding: [0x6a,0xfd,0x1e,0x19]
2568 @ CHECK: stc2l p10, c2, [r11], #16 @ encoding: [0xeb,0xfc,0x04,0x2a]
2569 @ CHECK: stc2l p11, c3, [r12], #-72 @ encoding: [0x6c,0xfc,0x12,0x3b]
2571 @ CHECK: stc p12, c4, [r0, #4] @ encoding: [0x80,0xed,0x01,0x4c]
2572 @ CHECK: stc p13, c5, [r1] @ encoding: [0x81,0xed,0x00,0x5d]
2573 @ CHECK: stc p14, c6, [r2, #-224] @ encoding: [0x02,0xed,0x38,0x6e]
2574 @ CHECK: stc p15, c7, [r3, #-120]! @ encoding: [0x23,0xed,0x1e,0x7f]
2575 @ CHECK: stc p5, c8, [r4], #16 @ encoding: [0xa4,0xec,0x04,0x85]
2576 @ CHECK: stc p4, c9, [r5], #-72 @ encoding: [0x25,0xec,0x12,0x94]
2577 @ CHECK: stcl p3, c10, [r6, #4] @ encoding: [0xc6,0xed,0x01,0xa3]
2578 @ CHECK: stcl p2, c11, [r7] @ encoding: [0xc7,0xed,0x00,0xb2]
2579 @ CHECK: stcl p1, c12, [r8, #-224] @ encoding: [0x48,0xed,0x38,0xc1]
2580 @ CHECK: stcl p0, c13, [r9, #-120]! @ encoding: [0x69,0xed,0x1e,0xd0]
2581 @ CHECK: stcl p6, c14, [r10], #16 @ encoding: [0xea,0xec,0x04,0xe6]
2582 @ CHECK: stcl p7, c15, [r11], #-72 @ encoding: [0x6b,0xec,0x12,0xf7]
2584 @ CHECK: stc2 p2, c8, [r1], {25} @ encoding: [0x81,0xfc,0x19,0x82]
2587 @------------------------------------------------------------------------------
2589 @------------------------------------------------------------------------------
2590 stmia.w r4, {r4, r5, r8, r9}
2591 stmia.w r4, {r5, r6}
2592 stmia.w r5!, {r3, r8}
2593 stm.w r4, {r4, r5, r8, r9}
2599 stmia r4, {r4, r5, r8, r9}
2602 stm r4, {r4, r5, r8, r9}
2607 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2608 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2609 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2610 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2611 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2612 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2613 @ CHECK: stm.w r5!, {r1, r2} @ encoding: [0xa5,0xe8,0x06,0x00]
2614 @ CHECK: stm.w r2, {r1, r2} @ encoding: [0x82,0xe8,0x06,0x00]
2616 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2617 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2618 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2619 @ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]
2620 @ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]
2621 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2622 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2625 @------------------------------------------------------------------------------
2627 @------------------------------------------------------------------------------
2628 stmdb r4, {r4, r5, r8, r9}
2632 stmdb.w r5, {r0, r1}
2634 @ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03]
2635 @ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00]
2636 @ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01]
2637 @ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
2638 @ CHECK: stmdb r5, {r0, r1} @ encoding: [0x05,0xe9,0x03,0x00]
2641 @------------------------------------------------------------------------------
2643 @------------------------------------------------------------------------------
2648 str.w pc, [r7, #257]
2656 @ CHECK: str r5, [r5, #-4] @ encoding: [0x45,0xf8,0x04,0x5c]
2657 @ CHECK: str r5, [r6, #32] @ encoding: [0x35,0x62]
2658 @ CHECK: str.w r5, [r6, #33] @ encoding: [0xc6,0xf8,0x21,0x50]
2659 @ CHECK: str.w r5, [r6, #257] @ encoding: [0xc6,0xf8,0x01,0x51]
2660 @ CHECK: str.w pc, [r7, #257] @ encoding: [0xc7,0xf8,0x01,0xf1]
2661 @ CHECK: str r2, [r4, #255]! @ encoding: [0x44,0xf8,0xff,0x2f]
2662 @ CHECK: str r8, [sp, #4]! @ encoding: [0x4d,0xf8,0x04,0x8f]
2663 @ CHECK: str lr, [sp, #-4]! @ encoding: [0x4d,0xf8,0x04,0xed]
2664 @ CHECK: str r2, [r4], #255 @ encoding: [0x44,0xf8,0xff,0x2b]
2665 @ CHECK: str r8, [sp], #4 @ encoding: [0x4d,0xf8,0x04,0x8b]
2666 @ CHECK: str lr, [sp], #-4 @ encoding: [0x4d,0xf8,0x04,0xe9]
2669 @------------------------------------------------------------------------------
2671 @------------------------------------------------------------------------------
2674 str r6, [r0, r2, lsl #3]
2675 str r8, [r8, r2, lsl #2]
2676 str r7, [sp, r2, lsl #1]
2677 str r7, [sp, r2, lsl #0]
2679 @ CHECK: str.w r1, [r8, r1] @ encoding: [0x48,0xf8,0x01,0x10]
2680 @ CHECK: str.w r4, [r5, r2] @ encoding: [0x45,0xf8,0x02,0x40]
2681 @ CHECK: str.w r6, [r0, r2, lsl #3] @ encoding: [0x40,0xf8,0x32,0x60]
2682 @ CHECK: str.w r8, [r8, r2, lsl #2] @ encoding: [0x48,0xf8,0x22,0x80]
2683 @ CHECK: str.w r7, [sp, r2, lsl #1] @ encoding: [0x4d,0xf8,0x12,0x70]
2684 @ CHECK: str.w r7, [sp, r2] @ encoding: [0x4d,0xf8,0x02,0x70]
2687 @------------------------------------------------------------------------------
2689 @------------------------------------------------------------------------------
2694 strb.w lr, [r7, #257]
2695 strb r5, [r8, #255]!
2704 @ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c]
2705 @ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50]
2706 @ CHECK: strb.w r5, [r6, #33] @ encoding: [0x86,0xf8,0x21,0x50]
2707 @ CHECK: strb.w r5, [r6, #257] @ encoding: [0x86,0xf8,0x01,0x51]
2708 @ CHECK: strb.w lr, [r7, #257] @ encoding: [0x87,0xf8,0x01,0xe1]
2709 @ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f]
2710 @ CHECK: strb r2, [r5, #4]! @ encoding: [0x05,0xf8,0x04,0x2f]
2711 @ CHECK: strb r1, [r4, #-4]! @ encoding: [0x04,0xf8,0x04,0x1d]
2712 @ CHECK: strb lr, [r3], #255 @ encoding: [0x03,0xf8,0xff,0xeb]
2713 @ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b]
2714 @ CHECK: strb r3, [sp], #-4 @ encoding: [0x0d,0xf8,0x04,0x39]
2715 @ CHECK: strb r4, [r8, #-0]! @ encoding: [0x08,0xf8,0x00,0x4d]
2716 @ CHECK: strb r1, [r0], #-0 @ encoding: [0x00,0xf8,0x00,0x19]
2719 @------------------------------------------------------------------------------
2721 @------------------------------------------------------------------------------
2724 strb r6, [r0, r2, lsl #3]
2725 strb r8, [r8, r2, lsl #2]
2726 strb r7, [sp, r2, lsl #1]
2727 strb r7, [sp, r2, lsl #0]
2729 @ CHECK: strb.w r1, [r8, r1] @ encoding: [0x08,0xf8,0x01,0x10]
2730 @ CHECK: strb.w r4, [r5, r2] @ encoding: [0x05,0xf8,0x02,0x40]
2731 @ CHECK: strb.w r6, [r0, r2, lsl #3] @ encoding: [0x00,0xf8,0x32,0x60]
2732 @ CHECK: strb.w r8, [r8, r2, lsl #2] @ encoding: [0x08,0xf8,0x22,0x80]
2733 @ CHECK: strb.w r7, [sp, r2, lsl #1] @ encoding: [0x0d,0xf8,0x12,0x70]
2734 @ CHECK: strb.w r7, [sp, r2] @ encoding: [0x0d,0xf8,0x02,0x70]
2737 @------------------------------------------------------------------------------
2739 @------------------------------------------------------------------------------
2743 strbt r1, [r8, #255]
2745 @ CHECK: strbt r1, [r2] @ encoding: [0x02,0xf8,0x00,0x1e]
2746 @ CHECK: strbt r1, [r8] @ encoding: [0x08,0xf8,0x00,0x1e]
2747 @ CHECK: strbt r1, [r8, #3] @ encoding: [0x08,0xf8,0x03,0x1e]
2748 @ CHECK: strbt r1, [r8, #255] @ encoding: [0x08,0xf8,0xff,0x1e]
2751 @------------------------------------------------------------------------------
2753 @------------------------------------------------------------------------------
2754 strd r3, r5, [r6, #24]
2755 strd r3, r5, [r6, #24]!
2756 strd r3, r5, [r6], #4
2757 strd r3, r5, [r6], #-8
2759 strd r8, r1, [r3, #0]
2760 strd r0, r1, [r2, #-0]
2761 strd r0, r1, [r2, #-0]!
2762 strd r0, r1, [r2], #-0
2764 @ CHECK: strd r3, r5, [r6, #24] @ encoding: [0xc6,0xe9,0x06,0x35]
2765 @ CHECK: strd r3, r5, [r6, #24]! @ encoding: [0xe6,0xe9,0x06,0x35]
2766 @ CHECK: strd r3, r5, [r6], #4 @ encoding: [0xe6,0xe8,0x01,0x35]
2767 @ CHECK: strd r3, r5, [r6], #-8 @ encoding: [0x66,0xe8,0x02,0x35]
2768 @ CHECK: strd r3, r5, [r6] @ encoding: [0xc6,0xe9,0x00,0x35]
2769 @ CHECK: strd r8, r1, [r3] @ encoding: [0xc3,0xe9,0x00,0x81]
2770 @ CHECK: strd r0, r1, [r2, #-0] @ encoding: [0x42,0xe9,0x00,0x01]
2771 @ CHECK: strd r0, r1, [r2, #-0]! @ encoding: [0x62,0xe9,0x00,0x01]
2772 @ CHECK: strd r0, r1, [r2], #-0 @ encoding: [0x62,0xe8,0x00,0x01]
2775 @------------------------------------------------------------------------------
2776 @ STREX/STREXB/STREXH/STREXD
2777 @------------------------------------------------------------------------------
2779 strex r8, r2, [r4, #0]
2780 strex r2, r12, [sp, #128]
2782 strexh r9, r7, [r12]
2783 strexd r9, r3, r6, [r4]
2785 @ CHECK: strex r1, r8, [r4] @ encoding: [0x44,0xe8,0x00,0x81]
2786 @ CHECK: strex r8, r2, [r4] @ encoding: [0x44,0xe8,0x00,0x28]
2787 @ CHECK: strex r2, r12, [sp, #128] @ encoding: [0x4d,0xe8,0x20,0xc2]
2788 @ CHECK: strexb r5, r1, [r7] @ encoding: [0xc7,0xe8,0x45,0x1f]
2789 @ CHECK: strexh r9, r7, [r12] @ encoding: [0xcc,0xe8,0x59,0x7f]
2790 @ CHECK: strexd r9, r3, r6, [r4] @ encoding: [0xc4,0xe8,0x79,0x36]
2793 @------------------------------------------------------------------------------
2795 @------------------------------------------------------------------------------
2800 strh.w lr, [r7, #257]
2801 strh r5, [r8, #255]!
2808 @ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c]
2809 @ CHECK: strh r5, [r6, #32] @ encoding: [0x35,0x84]
2810 @ CHECK: strh.w r5, [r6, #33] @ encoding: [0xa6,0xf8,0x21,0x50]
2811 @ CHECK: strh.w r5, [r6, #257] @ encoding: [0xa6,0xf8,0x01,0x51]
2812 @ CHECK: strh.w lr, [r7, #257] @ encoding: [0xa7,0xf8,0x01,0xe1]
2813 @ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f]
2814 @ CHECK: strh r2, [r5, #4]! @ encoding: [0x25,0xf8,0x04,0x2f]
2815 @ CHECK: strh r1, [r4, #-4]! @ encoding: [0x24,0xf8,0x04,0x1d]
2816 @ CHECK: strh lr, [r3], #255 @ encoding: [0x23,0xf8,0xff,0xeb]
2817 @ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b]
2818 @ CHECK: strh r3, [sp], #-4 @ encoding: [0x2d,0xf8,0x04,0x39]
2821 @------------------------------------------------------------------------------
2823 @------------------------------------------------------------------------------
2826 strh r6, [r0, r2, lsl #3]
2827 strh r8, [r8, r2, lsl #2]
2828 strh r7, [sp, r2, lsl #1]
2829 strh r7, [sp, r2, lsl #0]
2831 @ CHECK: strh.w r1, [r8, r1] @ encoding: [0x28,0xf8,0x01,0x10]
2832 @ CHECK: strh.w r4, [r5, r2] @ encoding: [0x25,0xf8,0x02,0x40]
2833 @ CHECK: strh.w r6, [r0, r2, lsl #3] @ encoding: [0x20,0xf8,0x32,0x60]
2834 @ CHECK: strh.w r8, [r8, r2, lsl #2] @ encoding: [0x28,0xf8,0x22,0x80]
2835 @ CHECK: strh.w r7, [sp, r2, lsl #1] @ encoding: [0x2d,0xf8,0x12,0x70]
2836 @ CHECK: strh.w r7, [sp, r2] @ encoding: [0x2d,0xf8,0x02,0x70]
2839 @------------------------------------------------------------------------------
2841 @------------------------------------------------------------------------------
2845 strht r1, [r8, #255]
2847 @ CHECK: strht r1, [r2] @ encoding: [0x22,0xf8,0x00,0x1e]
2848 @ CHECK: strht r1, [r8] @ encoding: [0x28,0xf8,0x00,0x1e]
2849 @ CHECK: strht r1, [r8, #3] @ encoding: [0x28,0xf8,0x03,0x1e]
2850 @ CHECK: strht r1, [r8, #255] @ encoding: [0x28,0xf8,0xff,0x1e]
2853 @------------------------------------------------------------------------------
2855 @------------------------------------------------------------------------------
2861 @ CHECK: strt r1, [r2] @ encoding: [0x42,0xf8,0x00,0x1e]
2862 @ CHECK: strt r1, [r8] @ encoding: [0x48,0xf8,0x00,0x1e]
2863 @ CHECK: strt r1, [r8, #3] @ encoding: [0x48,0xf8,0x03,0x1e]
2864 @ CHECK: strt r1, [r8, #255] @ encoding: [0x48,0xf8,0xff,0x1e]
2867 @------------------------------------------------------------------------------
2869 @------------------------------------------------------------------------------
2872 subwne r5, r3, #1023
2879 subw r12, r6, #0x100
2886 @ CHECK: itet eq @ encoding: [0x0a,0xbf]
2887 @ CHECK: subeq r1, r2, #4 @ encoding: [0x11,0x1f]
2888 @ CHECK: subwne r5, r3, #1023 @ encoding: [0xa3,0xf2,0xff,0x35]
2889 @ CHECK: subweq r4, r5, #293 @ encoding: [0xa5,0xf2,0x25,0x14]
2890 @ CHECK: sub.w r2, sp, #1024 @ encoding: [0xad,0xf5,0x80,0x62]
2891 @ CHECK: sub.w r2, r8, #65280 @ encoding: [0xa8,0xf5,0x7f,0x42]
2892 @ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12]
2893 @ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12]
2894 @ CHECK: sub.w r12, r6, #256 @ encoding: [0xa6,0xf5,0x80,0x7c]
2895 @ CHECK: subw r12, r6, #256 @ encoding: [0xa6,0xf2,0x00,0x1c]
2896 @ CHECK: subs.w r1, r2, #496 @ encoding: [0xb2,0xf5,0xf8,0x71]
2897 @ CHECK: sub.w r2, r2, #1 @ encoding: [0xa2,0xf1,0x01,0x02]
2898 @ CHECK: sub.w r0, r0, #32 @ encoding: [0xa0,0xf1,0x20,0x00]
2899 @ CHECK: subs r2, #56 @ encoding: [0x38,0x3a]
2900 @ CHECK: subs r2, #56 @ encoding: [0x38,0x3a]
2903 @------------------------------------------------------------------------------
2905 @------------------------------------------------------------------------------
2907 sub r4, r5, r6, lsl #5
2908 sub r4, r5, r6, lsr #5
2909 sub.w r4, r5, r6, lsr #5
2910 sub r4, r5, r6, asr #5
2911 sub r4, r5, r6, ror #5
2912 sub.w r5, r2, r12, rrx
2920 @ CHECK: sub.w r4, r5, r6 @ encoding: [0xa5,0xeb,0x06,0x04]
2921 @ CHECK: sub.w r4, r5, r6, lsl #5 @ encoding: [0xa5,0xeb,0x46,0x14]
2922 @ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14]
2923 @ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14]
2924 @ CHECK: sub.w r4, r5, r6, asr #5 @ encoding: [0xa5,0xeb,0x66,0x14]
2925 @ CHECK: sub.w r4, r5, r6, ror #5 @ encoding: [0xa5,0xeb,0x76,0x14]
2926 @ CHECK: sub.w r5, r2, r12, rrx @ encoding: [0xa2,0xeb,0x3c,0x05]
2927 @ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02]
2928 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2929 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2930 @ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02]
2931 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2932 @ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]
2935 @------------------------------------------------------------------------------
2937 @------------------------------------------------------------------------------
2943 @ CHECK: svc #0 @ encoding: [0x00,0xdf]
2944 @ CHECK: ite eq @ encoding: [0x0c,0xbf]
2945 @ CHECK: svceq #255 @ encoding: [0xff,0xdf]
2946 @ CHECK: svcne #33 @ encoding: [0x21,0xdf]
2949 @------------------------------------------------------------------------------
2951 @------------------------------------------------------------------------------
2953 sxtab r4, r5, r6, ror #0
2955 sxtablt r6, r2, r9, ror #8
2956 sxtab r5, r1, r4, ror #16
2957 sxtab r7, r8, r3, ror #24
2959 @ CHECK: sxtab r2, r3, r4 @ encoding: [0x43,0xfa,0x84,0xf2]
2960 @ CHECK: sxtab r4, r5, r6 @ encoding: [0x45,0xfa,0x86,0xf4]
2961 @ CHECK: it lt @ encoding: [0xb8,0xbf]
2962 @ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x42,0xfa,0x99,0xf6]
2963 @ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x41,0xfa,0xa4,0xf5]
2964 @ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x48,0xfa,0xb3,0xf7]
2967 @------------------------------------------------------------------------------
2969 @------------------------------------------------------------------------------
2970 sxtab16 r6, r2, r7, ror #0
2971 sxtab16 r3, r5, r8, ror #8
2972 sxtab16 r3, r2, r1, ror #16
2974 sxtab16ne r0, r1, r4
2975 sxtab16eq r1, r2, r3, ror #24
2977 @ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x22,0xfa,0x87,0xf6]
2978 @ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x25,0xfa,0x98,0xf3]
2979 @ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x22,0xfa,0xa1,0xf3]
2980 @ CHECK: ite ne @ encoding: [0x14,0xbf]
2981 @ CHECK: sxtab16ne r0, r1, r4 @ encoding: [0x21,0xfa,0x84,0xf0]
2982 @ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x22,0xfa,0xb3,0xf1]
2985 @------------------------------------------------------------------------------
2987 @------------------------------------------------------------------------------
2989 sxtah r3, r8, r3, ror #8
2990 sxtah r9, r3, r3, ror #24
2992 sxtahhi r6, r1, r6, ror #0
2993 sxtahls r2, r2, r4, ror #16
2995 @ CHECK: sxtah r1, r3, r9 @ encoding: [0x03,0xfa,0x89,0xf1]
2996 @ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x08,0xfa,0x93,0xf3]
2997 @ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x03,0xfa,0xb3,0xf9]
2998 @ CHECK: ite hi @ encoding: [0x8c,0xbf]
2999 @ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x01,0xfa,0x86,0xf6]
3000 @ CHECK: sxtahls r2, r2, r4, ror #16 @ encoding: [0x02,0xfa,0xa4,0xf2]
3003 @------------------------------------------------------------------------------
3005 @------------------------------------------------------------------------------
3008 sxtb r8, r3, ror #24
3011 sxtblt r5, r1, ror #16
3014 @ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2]
3015 @ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6]
3016 @ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8]
3017 @ CHECK: ite ge @ encoding: [0xac,0xbf]
3018 @ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2]
3019 @ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
3020 @ CHECK: sxtb.w r7, r8 @ encoding: [0x4f,0xfa,0x88,0xf7]
3023 @------------------------------------------------------------------------------
3025 @------------------------------------------------------------------------------
3027 sxtb16 r6, r7, ror #0
3028 sxtb16 r3, r1, ror #16
3030 sxtb16cs r3, r5, ror #8
3031 sxtb16lo r2, r3, ror #24
3033 @ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1]
3034 @ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6]
3035 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3]
3036 @ CHECK: ite hs @ encoding: [0x2c,0xbf]
3037 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3]
3038 @ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
3041 @------------------------------------------------------------------------------
3043 @------------------------------------------------------------------------------
3046 sxth r9, r3, ror #24
3049 sxthne r2, r2, ror #16
3052 @ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2]
3053 @ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3]
3054 @ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9]
3055 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
3056 @ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3]
3057 @ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
3058 @ CHECK: sxth.w r7, r8 @ encoding: [0x0f,0xfa,0x88,0xf7]
3061 @------------------------------------------------------------------------------
3063 @------------------------------------------------------------------------------
3065 sxtb.w r6, r9, ror #8
3066 sxtb r8, r3, ror #24
3069 sxtblt r5, r1, ror #16
3071 @ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2]
3072 @ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6]
3073 @ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8]
3074 @ CHECK: ite ge @ encoding: [0xac,0xbf]
3075 @ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2]
3076 @ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
3079 @------------------------------------------------------------------------------
3081 @------------------------------------------------------------------------------
3083 sxtb16 r6, r7, ror #0
3084 sxtb16 r3, r1, ror #16
3086 sxtb16cs r3, r5, ror #8
3087 sxtb16lo r2, r3, ror #24
3089 @ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1]
3090 @ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6]
3091 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3]
3092 @ CHECK: ite hs @ encoding: [0x2c,0xbf]
3093 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3]
3094 @ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
3097 @------------------------------------------------------------------------------
3099 @------------------------------------------------------------------------------
3101 sxth.w r3, r8, ror #8
3102 sxth r9, r3, ror #24
3105 sxthne r2, r2, ror #16
3107 @ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2]
3108 @ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3]
3109 @ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9]
3110 @ CHECK: itt ne @ encoding: [0x1c,0xbf]
3111 @ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3]
3112 @ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
3115 @------------------------------------------------------------------------------
3117 @------------------------------------------------------------------------------
3119 tbh [r3, r8, lsl #1]
3123 tbhcs [r3, r8, lsl #1]
3125 @ CHECK: tbb [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0]
3126 @ CHECK: tbh [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0]
3127 @ CHECK: it eq @ encoding: [0x08,0xbf]
3128 @ CHECK: tbbeq [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0]
3129 @ CHECK: it hs @ encoding: [0x28,0xbf]
3130 @ CHECK: tbhhs [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0]
3133 @------------------------------------------------------------------------------
3135 @------------------------------------------------------------------------------
3144 @ CHECK: teq.w r5, #61440 @ encoding: [0x95,0xf4,0x70,0x4f]
3145 @ CHECK: teq.w r4, r5 @ encoding: [0x94,0xea,0x05,0x0f]
3146 @ CHECK: teq.w r4, r5, lsl #5 @ encoding: [0x94,0xea,0x45,0x1f]
3147 @ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f]
3148 @ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f]
3149 @ CHECK: teq.w r4, r5, asr #5 @ encoding: [0x94,0xea,0x65,0x1f]
3150 @ CHECK: teq.w r4, r5, ror #5 @ encoding: [0x94,0xea,0x75,0x1f]
3153 @------------------------------------------------------------------------------
3155 @------------------------------------------------------------------------------
3160 tst r5, r10, lsr #12
3164 @ CHECK: tst.w r5, #61440 @ encoding: [0x15,0xf4,0x70,0x4f]
3165 @ CHECK: tst r2, r5 @ encoding: [0x2a,0x42]
3166 @ CHECK: tst.w r3, r12, lsl #5 @ encoding: [0x13,0xea,0x4c,0x1f]
3167 @ CHECK: tst.w r4, r11, lsr #4 @ encoding: [0x14,0xea,0x1b,0x1f]
3168 @ CHECK: tst.w r5, r10, lsr #12 @ encoding: [0x15,0xea,0x1a,0x3f]
3169 @ CHECK: tst.w r6, r9, asr #30 @ encoding: [0x16,0xea,0xa9,0x7f]
3170 @ CHECK: tst.w r7, r8, ror #2 @ encoding: [0x17,0xea,0xb8,0x0f]
3173 @------------------------------------------------------------------------------
3175 @------------------------------------------------------------------------------
3182 @ CHECK: uadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1]
3183 @ CHECK: uadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1]
3184 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3185 @ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1]
3186 @ CHECK: uadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1]
3189 @------------------------------------------------------------------------------
3191 @------------------------------------------------------------------------------
3195 uaddsubx r9, r12, r0
3197 uaddsubxeq r9, r12, r0
3199 @ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3200 @ CHECK: it eq @ encoding: [0x08,0xbf]
3201 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3202 @ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3203 @ CHECK: it eq @ encoding: [0x08,0xbf]
3204 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]
3207 @------------------------------------------------------------------------------
3209 @------------------------------------------------------------------------------
3210 ubfx r4, r5, #16, #1
3212 ubfxgt r4, r5, #16, #16
3214 @ CHECK: ubfx r4, r5, #16, #1 @ encoding: [0xc5,0xf3,0x00,0x44]
3215 @ CHECK: it gt @ encoding: [0xc8,0xbf]
3216 @ CHECK: ubfxgt r4, r5, #16, #16 @ encoding: [0xc5,0xf3,0x0f,0x44]
3219 @------------------------------------------------------------------------------
3221 @------------------------------------------------------------------------------
3225 uhadd16gt r4, r8, r2
3228 @ CHECK: uhadd16 r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4]
3229 @ CHECK: uhadd8 r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4]
3230 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
3231 @ CHECK: uhadd16gt r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4]
3232 @ CHECK: uhadd8gt r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4]
3235 @------------------------------------------------------------------------------
3237 @------------------------------------------------------------------------------
3243 uhaddsubx r4, r1, r5
3244 uhsubaddx r5, r6, r6
3246 uhaddsubxgt r6, r9, r8
3247 uhsubaddxgt r7, r8, r12
3249 @ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4]
3250 @ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5]
3251 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
3252 @ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6]
3253 @ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7]
3254 @ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4]
3255 @ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5]
3256 @ CHECK: itt gt @ encoding: [0xc4,0xbf]
3257 @ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6]
3258 @ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7]
3261 @------------------------------------------------------------------------------
3263 @------------------------------------------------------------------------------
3267 uhsub16lt r4, r9, r12
3270 @ CHECK: uhsub16 r5, r8, r3 @ encoding: [0xd8,0xfa,0x63,0xf5]
3271 @ CHECK: uhsub8 r1, r7, r6 @ encoding: [0xc7,0xfa,0x66,0xf1]
3272 @ CHECK: itt lt @ encoding: [0xbc,0xbf]
3273 @ CHECK: uhsub16lt r4, r9, r12 @ encoding: [0xd9,0xfa,0x6c,0xf4]
3274 @ CHECK: uhsub8lt r3, r1, r5 @ encoding: [0xc1,0xfa,0x65,0xf3]
3277 @------------------------------------------------------------------------------
3279 @------------------------------------------------------------------------------
3280 umaal r3, r4, r5, r6
3282 umaallt r3, r4, r5, r6
3284 @ CHECK: umaal r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34]
3285 @ CHECK: it lt @ encoding: [0xb8,0xbf]
3286 @ CHECK: umaallt r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34]
3289 @------------------------------------------------------------------------------
3291 @------------------------------------------------------------------------------
3292 umlal r2, r4, r6, r8
3294 umlalgt r6, r1, r2, r6
3296 @ CHECK: umlal r2, r4, r6, r8 @ encoding: [0xe6,0xfb,0x08,0x24]
3297 @ CHECK: it gt @ encoding: [0xc8,0xbf]
3298 @ CHECK: umlalgt r6, r1, r2, r6 @ encoding: [0xe2,0xfb,0x06,0x61]
3301 @------------------------------------------------------------------------------
3303 @------------------------------------------------------------------------------
3304 umull r2, r4, r6, r8
3306 umullgt r6, r1, r2, r6
3308 @ CHECK: umull r2, r4, r6, r8 @ encoding: [0xa6,0xfb,0x08,0x24]
3309 @ CHECK: it gt @ encoding: [0xc8,0xbf]
3310 @ CHECK: umullgt r6, r1, r2, r6 @ encoding: [0xa2,0xfb,0x06,0x61]
3313 @------------------------------------------------------------------------------
3315 @------------------------------------------------------------------------------
3319 uqadd16gt r4, r7, r9
3322 @ CHECK: uqadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x53,0xf1]
3323 @ CHECK: uqadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x58,0xf3]
3324 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3325 @ CHECK: uqadd16gt r4, r7, r9 @ encoding: [0x97,0xfa,0x59,0xf4]
3326 @ CHECK: uqadd8le r8, r1, r2 @ encoding: [0x81,0xfa,0x52,0xf8]
3329 @------------------------------------------------------------------------------
3331 @------------------------------------------------------------------------------
3338 uqaddsubx r1, r2, r3
3339 uqsubaddx r3, r4, r8
3341 uqaddsubxgt r4, r7, r9
3342 uqsubaddxle r8, r1, r2
3344 @ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1]
3345 @ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3]
3346 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3347 @ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4]
3348 @ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8]
3350 @ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1]
3351 @ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3]
3352 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3353 @ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4]
3354 @ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8]
3357 @------------------------------------------------------------------------------
3359 @------------------------------------------------------------------------------
3364 uqsub16le r4, r6, r4
3366 @ CHECK: uqsub8 r8, r2, r9 @ encoding: [0xc2,0xfa,0x59,0xf8]
3367 @ CHECK: uqsub16 r1, r9, r7 @ encoding: [0xd9,0xfa,0x57,0xf1]
3368 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3369 @ CHECK: uqsub8gt r3, r1, r6 @ encoding: [0xc1,0xfa,0x56,0xf3]
3370 @ CHECK: uqsub16le r4, r6, r4 @ encoding: [0xd6,0xfa,0x54,0xf4]
3373 @------------------------------------------------------------------------------
3375 @------------------------------------------------------------------------------
3377 usada8 r8, r2, r9, r12
3379 usada8gt r3, r1, r6, r9
3382 @ CHECK: usad8 r1, r9, r7 @ encoding: [0x79,0xfb,0x07,0xf1]
3383 @ CHECK: usada8 r8, r2, r9, r12 @ encoding: [0x72,0xfb,0x09,0xc8]
3384 @ CHECK: ite gt @ encoding: [0xcc,0xbf]
3385 @ CHECK: usada8gt r3, r1, r6, r9 @ encoding: [0x71,0xfb,0x06,0x93]
3386 @ CHECK: usad8le r4, r6, r4 @ encoding: [0x76,0xfb,0x04,0xf4]
3389 @------------------------------------------------------------------------------
3391 @------------------------------------------------------------------------------
3393 usat r8, #4, r10, lsl #0
3394 usat r8, #5, r10, lsl #31
3395 usat r8, #16, r10, asr #1
3397 @ CHECK: usat r8, #1, r10 @ encoding: [0x8a,0xf3,0x01,0x08]
3398 @ CHECK: usat r8, #4, r10 @ encoding: [0x8a,0xf3,0x04,0x08]
3399 @ CHECK: usat r8, #5, r10, lsl #31 @ encoding: [0x8a,0xf3,0xc5,0x78]
3400 @ CHECK: usat r8, #16, r10, asr #1 @ encoding: [0xaa,0xf3,0x50,0x08]
3403 @------------------------------------------------------------------------------
3405 @------------------------------------------------------------------------------
3409 @ CHECK: usat16 r2, #2, r7 @ encoding: [0xa7,0xf3,0x02,0x02]
3410 @ CHECK: usat16 r3, #15, r5 @ encoding: [0xa5,0xf3,0x0f,0x03]
3413 @------------------------------------------------------------------------------
3415 @------------------------------------------------------------------------------
3421 usubaddxne r6, r1, r9
3423 @ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2]
3424 @ CHECK: it ne @ encoding: [0x18,0xbf]
3425 @ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6]
3426 @ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2]
3427 @ CHECK: it ne @ encoding: [0x18,0xbf]
3428 @ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6]
3431 @------------------------------------------------------------------------------
3433 @------------------------------------------------------------------------------
3440 @ CHECK: usub16 r4, r2, r7 @ encoding: [0xd2,0xfa,0x47,0xf4]
3441 @ CHECK: usub8 r1, r8, r5 @ encoding: [0xc8,0xfa,0x45,0xf1]
3442 @ CHECK: ite hi @ encoding: [0x8c,0xbf]
3443 @ CHECK: usub16hi r1, r1, r3 @ encoding: [0xd1,0xfa,0x43,0xf1]
3444 @ CHECK: usub8ls r9, r2, r3 @ encoding: [0xc2,0xfa,0x43,0xf9]
3447 @------------------------------------------------------------------------------
3449 @------------------------------------------------------------------------------
3451 uxtab r4, r5, r6, ror #0
3453 uxtablt r6, r2, r9, ror #8
3454 uxtab r5, r1, r4, ror #16
3455 uxtab r7, r8, r3, ror #24
3457 @ CHECK: uxtab r2, r3, r4 @ encoding: [0x53,0xfa,0x84,0xf2]
3458 @ CHECK: uxtab r4, r5, r6 @ encoding: [0x55,0xfa,0x86,0xf4]
3459 @ CHECK: it lt @ encoding: [0xb8,0xbf]
3460 @ CHECK: uxtablt r6, r2, r9, ror #8 @ encoding: [0x52,0xfa,0x99,0xf6]
3461 @ CHECK: uxtab r5, r1, r4, ror #16 @ encoding: [0x51,0xfa,0xa4,0xf5]
3462 @ CHECK: uxtab r7, r8, r3, ror #24 @ encoding: [0x58,0xfa,0xb3,0xf7]
3465 @------------------------------------------------------------------------------
3467 @------------------------------------------------------------------------------
3469 uxtab16ge r0, r1, r4
3470 uxtab16 r6, r2, r7, ror #0
3471 uxtab16 r3, r5, r8, ror #8
3472 uxtab16 r3, r2, r1, ror #16
3474 uxtab16eq r1, r2, r3, ror #24
3476 @ CHECK: it ge @ encoding: [0xa8,0xbf]
3477 @ CHECK: uxtab16ge r0, r1, r4 @ encoding: [0x31,0xfa,0x84,0xf0]
3478 @ CHECK: uxtab16 r6, r2, r7 @ encoding: [0x32,0xfa,0x87,0xf6]
3479 @ CHECK: uxtab16 r3, r5, r8, ror #8 @ encoding: [0x35,0xfa,0x98,0xf3]
3480 @ CHECK: uxtab16 r3, r2, r1, ror #16 @ encoding: [0x32,0xfa,0xa1,0xf3]
3481 @ CHECK: it eq @ encoding: [0x08,0xbf]
3482 @ CHECK: uxtab16eq r1, r2, r3, ror #24 @ encoding: [0x32,0xfa,0xb3,0xf1]
3485 @------------------------------------------------------------------------------
3487 @------------------------------------------------------------------------------
3490 uxtahhi r6, r1, r6, ror #0
3491 uxtah r3, r8, r3, ror #8
3493 uxtahlo r2, r2, r4, ror #16
3494 uxtah r9, r3, r3, ror #24
3496 @ CHECK: uxtah r1, r3, r9 @ encoding: [0x13,0xfa,0x89,0xf1]
3497 @ CHECK: it hi @ encoding: [0x88,0xbf]
3498 @ CHECK: uxtahhi r6, r1, r6 @ encoding: [0x11,0xfa,0x86,0xf6]
3499 @ CHECK: uxtah r3, r8, r3, ror #8 @ encoding: [0x18,0xfa,0x93,0xf3]
3500 @ CHECK: it lo @ encoding: [0x38,0xbf]
3501 @ CHECK: uxtahlo r2, r2, r4, ror #16 @ encoding: [0x12,0xfa,0xa4,0xf2]
3502 @ CHECK: uxtah r9, r3, r3, ror #24 @ encoding: [0x13,0xfa,0xb3,0xf9]
3505 @------------------------------------------------------------------------------
3507 @------------------------------------------------------------------------------
3513 uxtbcc r5, r1, ror #16
3514 uxtb r8, r3, ror #24
3517 @ CHECK: it ge @ encoding: [0xa8,0xbf]
3518 @ CHECK: uxtbge r2, r4 @ encoding: [0xe2,0xb2]
3519 @ CHECK: uxtb r5, r6 @ encoding: [0xf5,0xb2]
3520 @ CHECK: uxtb.w r6, r9, ror #8 @ encoding: [0x5f,0xfa,0x99,0xf6]
3521 @ CHECK: it lo @ encoding: [0x38,0xbf]
3522 @ CHECK: uxtblo.w r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5]
3523 @ CHECK: uxtb.w r8, r3, ror #24 @ encoding: [0x5f,0xfa,0xb3,0xf8]
3524 @ CHECK: uxtb.w r7, r8 @ encoding: [0x5f,0xfa,0x88,0xf7]
3527 @------------------------------------------------------------------------------
3529 @------------------------------------------------------------------------------
3531 uxtb16 r6, r7, ror #0
3533 uxtb16cs r3, r5, ror #8
3534 uxtb16 r3, r1, ror #16
3536 uxtb16ge r2, r3, ror #24
3538 @ CHECK: uxtb16 r1, r4 @ encoding: [0x3f,0xfa,0x84,0xf1]
3539 @ CHECK: uxtb16 r6, r7 @ encoding: [0x3f,0xfa,0x87,0xf6]
3540 @ CHECK: it hs @ encoding: [0x28,0xbf]
3541 @ CHECK: uxtb16hs r3, r5, ror #8 @ encoding: [0x3f,0xfa,0x95,0xf3]
3542 @ CHECK: uxtb16 r3, r1, ror #16 @ encoding: [0x3f,0xfa,0xa1,0xf3]
3543 @ CHECK: it ge @ encoding: [0xa8,0xbf]
3544 @ CHECK: uxtb16ge r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2]
3547 @------------------------------------------------------------------------------
3549 @------------------------------------------------------------------------------
3555 uxthle r2, r2, ror #16
3556 uxth r9, r3, ror #24
3559 @ CHECK: it ne @ encoding: [0x18,0xbf]
3560 @ CHECK: uxthne.w r3, r9 @ encoding: [0x1f,0xfa,0x89,0xf3]
3561 @ CHECK: uxth r1, r6 @ encoding: [0xb1,0xb2]
3562 @ CHECK: uxth.w r3, r8, ror #8 @ encoding: [0x1f,0xfa,0x98,0xf3]
3563 @ CHECK: it le @ encoding: [0xd8,0xbf]
3564 @ CHECK: uxthle.w r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2]
3565 @ CHECK: uxth.w r9, r3, ror #24 @ encoding: [0x1f,0xfa,0xb3,0xf9]
3566 @ CHECK: uxth.w r7, r8 @ encoding: [0x1f,0xfa,0x88,0xf7]
3568 @------------------------------------------------------------------------------
3569 @ WFE/WFI/YIELD/HINT
3570 @------------------------------------------------------------------------------
3584 @ CHECK: wfe @ encoding: [0x20,0xbf]
3585 @ CHECK: wfi @ encoding: [0x30,0xbf]
3586 @ CHECK: yield @ encoding: [0x10,0xbf]
3587 @ CHECK: itet lt @ encoding: [0xb6,0xbf]
3588 @ CHECK: wfelt @ encoding: [0x20,0xbf]
3589 @ CHECK: wfige @ encoding: [0x30,0xbf]
3590 @ CHECK: yieldlt @ encoding: [0x10,0xbf]
3591 @ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80]
3592 @ CHECK: wfi.w @ encoding: [0xaf,0xf3,0x03,0x80]
3593 @ CHECK: wfe.w @ encoding: [0xaf,0xf3,0x02,0x80]
3594 @ CHECK: yield.w @ encoding: [0xaf,0xf3,0x01,0x80]
3595 @ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
3598 @------------------------------------------------------------------------------
3599 @ Alternate syntax for LDR*(literal) encodings
3600 @------------------------------------------------------------------------------
3603 ldrsb r11, [pc, #22]
3604 ldrsh r11, [pc, #22]
3605 ldr.w r11, [pc, #22]
3606 ldrb.w r11, [pc, #22]
3607 ldrh.w r11, [pc, #22]
3608 ldrsb.w r11, [pc, #22]
3609 ldrsh.w r11, [pc, #22]
3611 @ CHECK: ldrb.w r11, [pc, #22] @ encoding: [0x9f,0xf8,0x16,0xb0]
3612 @ CHECK: ldrh.w r11, [pc, #22] @ encoding: [0xbf,0xf8,0x16,0xb0]
3613 @ CHECK: ldrsb.w r11, [pc, #22] @ encoding: [0x9f,0xf9,0x16,0xb0]
3614 @ CHECK: ldrsh.w r11, [pc, #22] @ encoding: [0xbf,0xf9,0x16,0xb0]
3615 @ CHECK: ldr.w r11, [pc, #22] @ encoding: [0xdf,0xf8,0x16,0xb0]
3616 @ CHECK: ldrb.w r11, [pc, #22] @ encoding: [0x9f,0xf8,0x16,0xb0]
3617 @ CHECK: ldrh.w r11, [pc, #22] @ encoding: [0xbf,0xf8,0x16,0xb0]
3618 @ CHECK: ldrsb.w r11, [pc, #22] @ encoding: [0x9f,0xf9,0x16,0xb0]
3619 @ CHECK: ldrsh.w r11, [pc, #22] @ encoding: [0xbf,0xf9,0x16,0xb0]
3622 ldrb r11, [pc, #-22]
3623 ldrh r11, [pc, #-22]
3624 ldrsb r11, [pc, #-22]
3625 ldrsh r11, [pc, #-22]
3626 ldr.w r11, [pc, #-22]
3627 ldrb.w r11, [pc, #-22]
3628 ldrh.w r11, [pc, #-22]
3629 ldrsb.w r11, [pc, #-22]
3630 ldrsh.w r11, [pc, #-22]
3632 @ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0]
3633 @ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0]
3634 @ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]
3635 @ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]
3636 @ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]
3637 @ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0]
3638 @ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0]
3639 @ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]
3640 @ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]
3641 @ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]
3645 @ CHECK: ldr r1, [pc, #12] @ encoding: [0x03,0x49]
3649 @ CHECK: subs pc, lr, #4 @ encoding: [0xde,0xf3,0x04,0x8f]