4171 lines · plain
1@ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s2@ RUN: llvm-mc -triple=thumbebv7-unknown-unknown -mcpu=cortex-a8 -show-encoding < %s | FileCheck --check-prefix=CHECK-BE %s3 .syntax unified4 .globl _func5 6@ Check that the assembler can handle the documented syntax from the ARM ARM.7@ For complex constructs like shifter operands, check more thoroughly for them8@ once then spot check that following instructions accept the form generally.9@ This gives us good coverage while keeping the overall size of the test10@ more reasonable.11 12 13@ FIXME: Some 3-operand instructions have a 2-operand assembly syntax.14 15_func:16@ CHECK: _func17 18@------------------------------------------------------------------------------19@ ADC (immediate)20@------------------------------------------------------------------------------21 adc r0, r1, #422 adcs r0, r1, #023 adc r1, r2, #25524 adc r3, r7, #0x0055005525 adc r8, r12, #0xaa00aa0026 adc r9, r7, #0xa5a5a5a527 adc r5, r3, #0x8700000028 adc r4, r2, #0x7f80000029 adc r4, r2, #0x0000068030 adc r0, #131 adc r1, #0x7f80000032 33@ CHECK: adc r0, r1, #4 @ encoding: [0x41,0xf1,0x04,0x00]34@ CHECK: adcs r0, r1, #0 @ encoding: [0x51,0xf1,0x00,0x00]35@ CHECK: adc r1, r2, #255 @ encoding: [0x42,0xf1,0xff,0x01]36@ CHECK: adc r3, r7, #5570645 @ encoding: [0x47,0xf1,0x55,0x13]37@ CHECK: adc r8, r12, #2852170240 @ encoding: [0x4c,0xf1,0xaa,0x28]38@ CHECK: adc r9, r7, #2779096485 @ encoding: [0x47,0xf1,0xa5,0x39]39@ CHECK: adc r5, r3, #2264924160 @ encoding: [0x43,0xf1,0x07,0x45]40@ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44]41@ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64]42@ CHECK: adc r0, r0, #1 @ encoding: [0x40,0xf1,0x01,0x00]43@ CHECK: adc r1, r1, #2139095040 @ encoding: [0x41,0xf1,0xff,0x41]44 45@------------------------------------------------------------------------------46@ ADC (register)47@------------------------------------------------------------------------------48 adc r4, r5, r649 adcs r4, r5, r650 adc.w r9, r1, r351 adcs.w r9, r1, r352 adc r0, r1, r3, ror #453 adcs r0, r1, r3, lsl #754 adc.w r0, r1, r3, lsr #3155 adcs.w r0, r1, r3, asr #3256 adc r4, r557 adc.w r9, r158 adc r0, r1, ror #459 adc.w r0, r1, lsr #3160 61@ CHECK: adc.w r4, r5, r6 @ encoding: [0x45,0xeb,0x06,0x04]62@ CHECK: adcs.w r4, r5, r6 @ encoding: [0x55,0xeb,0x06,0x04]63@ CHECK: adc.w r9, r1, r3 @ encoding: [0x41,0xeb,0x03,0x09]64@ CHECK: adcs.w r9, r1, r3 @ encoding: [0x51,0xeb,0x03,0x09]65@ CHECK: adc.w r0, r1, r3, ror #4 @ encoding: [0x41,0xeb,0x33,0x10]66@ CHECK: adcs.w r0, r1, r3, lsl #7 @ encoding: [0x51,0xeb,0xc3,0x10]67@ CHECK: adc.w r0, r1, r3, lsr #31 @ encoding: [0x41,0xeb,0xd3,0x70]68@ CHECK: adcs.w r0, r1, r3, asr #32 @ encoding: [0x51,0xeb,0x23,0x00]69@ CHECK: adc.w r4, r4, r5 @ encoding: [0x44,0xeb,0x05,0x04]70@ CHECK: adc.w r9, r9, r1 @ encoding: [0x49,0xeb,0x01,0x09]71@ CHECK: adc.w r0, r0, r1, ror #4 @ encoding: [0x40,0xeb,0x31,0x10]72@ CHECK: adc.w r0, r0, r1, lsr #31 @ encoding: [0x40,0xeb,0xd1,0x70]73 74 75@------------------------------------------------------------------------------76@ ADD (immediate)77@------------------------------------------------------------------------------78 itet eq79 addeq r1, r2, #480 addwne r5, r3, #102381 addeq r4, r5, #29382 add r2, sp, #102483 add r2, r8, #0xff0084 add r2, r3, #25785 addw r2, r3, #25786 add r12, r6, #0x10087 addw r12, r6, #0x10088 adds r1, r2, #0x1f089 add r2, #190 add r0, r0, #3291 adds r2, r2, #5692 adds r2, #5693 add r1, r7, #0xcbcbcbcb94 95 adds.w r2, #-1696 adds.w r2, r2, #-1697 addw r2, #-1698 addw r2, #-1699 addw r2, r2, #-16100 101@ CHECK: itet eq @ encoding: [0x0a,0xbf]102@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]103@ CHECK: addwne r5, r3, #1023 @ encoding: [0x03,0xf2,0xff,0x35]104@ CHECK: addweq r4, r5, #293 @ encoding: [0x05,0xf2,0x25,0x14]105@ CHECK: add.w r2, sp, #1024 @ encoding: [0x0d,0xf5,0x80,0x62]106@ CHECK: add.w r2, r8, #65280 @ encoding: [0x08,0xf5,0x7f,0x42]107@ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12]108@ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12]109@ CHECK: add.w r12, r6, #256 @ encoding: [0x06,0xf5,0x80,0x7c]110@ CHECK: addw r12, r6, #256 @ encoding: [0x06,0xf2,0x00,0x1c]111@ CHECK: adds.w r1, r2, #496 @ encoding: [0x12,0xf5,0xf8,0x71]112@ CHECK: add.w r2, r2, #1 @ encoding: [0x02,0xf1,0x01,0x02]113@ CHECK: add.w r0, r0, #32 @ encoding: [0x00,0xf1,0x20,0x00]114@ CHECK: adds r2, #56 @ encoding: [0x38,0x32]115@ CHECK: adds r2, #56 @ encoding: [0x38,0x32]116@ CHECK: add.w r1, r7, #3419130827 @ encoding: [0x07,0xf1,0xcb,0x31]117 118@ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02]119@ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02]120@ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]121@ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]122@ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02]123 124 125@------------------------------------------------------------------------------126@ ADD (register, not SP) A8.8.6127@------------------------------------------------------------------------------128 add r1, r2, r8129 add r5, r9, r2, asr #32130 adds r7, r3, r1, lsl #31131 adds.w r0, r3, r6, lsr #25132 add.w r4, r8, r1, ror #12133 adds r1, r1, r7 // T1134 it eq135 addeq r1, r3, r5 // T1136 it eq137 addeq r1, r1, r5 // T1138 it eq139 addseq r1, r3, r5 // T3140 it eq141 addseq r1, r1, r5 // T3142 add r10, r8143 add r10, r10, r8144 it eq145 addeq r1, r10 // T2146 it eq147 addseq r1, r10 // T3148 149@ CHECK: add.w r1, r2, r8 @ encoding: [0x02,0xeb,0x08,0x01]150@ CHECK: add.w r5, r9, r2, asr #32 @ encoding: [0x09,0xeb,0x22,0x05]151@ CHECK: adds.w r7, r3, r1, lsl #31 @ encoding: [0x13,0xeb,0xc1,0x77]152@ CHECK: adds.w r0, r3, r6, lsr #25 @ encoding: [0x13,0xeb,0x56,0x60]153@ CHECK: add.w r4, r8, r1, ror #12 @ encoding: [0x08,0xeb,0x31,0x34]154@ CHECK: adds r1, r1, r7 @ encoding: [0xc9,0x19]155@ CHECK: it eq @ encoding: [0x08,0xbf]156@ CHECK: addeq r1, r3, r5 @ encoding: [0x59,0x19]157@ CHECK: it eq @ encoding: [0x08,0xbf]158@ CHECK: addeq r1, r1, r5 @ encoding: [0x49,0x19]159@ CHECK: it eq @ encoding: [0x08,0xbf]160@ CHECK: addseq.w r1, r3, r5 @ encoding: [0x13,0xeb,0x05,0x01]161@ CHECK: it eq @ encoding: [0x08,0xbf]162@ CHECK: addseq.w r1, r1, r5 @ encoding: [0x11,0xeb,0x05,0x01]163@ CHECK: add r10, r8 @ encoding: [0xc2,0x44]164@ CHECK: add r10, r8 @ encoding: [0xc2,0x44]165@ CHECK: it eq @ encoding: [0x08,0xbf]166@ CHECK: addeq r1, r10 @ encoding: [0x51,0x44]167@ CHECK: it eq @ encoding: [0x08,0xbf]168@ CHECK: addseq.w r1, r1, r10 @ encoding: [0x11,0xeb,0x0a,0x01]169 170@------------------------------------------------------------------------------171@ ADD (SP plus immediate) A8.8.9172@------------------------------------------------------------------------------173 it eq174@ CHECK: it eq @ encoding: [0x08,0xbf]175 addeq r7, sp, #1020 // T1176@ CHECK: addeq r7, sp, #1020 @ encoding: [0xff,0xaf]177 178 it eq179@ CHECK: it eq @ encoding: [0x08,0xbf]180 addeq sp, sp, #508 // T2181@ FIXME: ARMARM says 'addeq sp, sp, #508'182@ CHECK: addeq sp, #508 @ encoding: [0x7f,0xb0]183 184 add r7, sp, #15 // T3185@ CHECK: add.w r7, sp, #15 @ encoding: [0x0d,0xf1,0x0f,0x07]186 adds r7, sp, #16 // T3187@ CHECK: adds.w r7, sp, #16 @ encoding: [0x1d,0xf1,0x10,0x07]188 add r8, sp, #16 // T3189@ CHECK: add.w r8, sp, #16 @ encoding: [0x0d,0xf1,0x10,0x08]190 191 addw r6, sp, #1020 // T4192@ CHECK: addw r6, sp, #1020 @ encoding: [0x0d,0xf2,0xfc,0x36]193 add r6, sp, #1019 // T4194@ CHECK: addw r6, sp, #1019 @ encoding: [0x0d,0xf2,0xfb,0x36]195 addw r0, r0, #4095196 addw r0, #4095197 add r0, r0, #4095198 add r0, #4095199@ CHECK-NEXT: addw r0, r0, #4095 @ encoding: [0x00,0xf6,0xff,0x70]200@ CHECK-NEXT: addw r0, r0, #4095 @ encoding: [0x00,0xf6,0xff,0x70]201@ CHECK-NEXT: addw r0, r0, #4095 @ encoding: [0x00,0xf6,0xff,0x70]202@ CHECK-NEXT: addw r0, r0, #4095 @ encoding: [0x00,0xf6,0xff,0x70]203add.w r0, r0, #-4096204add r0, r0, #-4096205add.w r0, #-4096206add r0, #-4096207@ CHECK-NEXT: sub.w r0, r0, #4096 @ encoding: [0xa0,0xf5,0x80,0x50]208@ CHECK-NEXT: sub.w r0, r0, #4096 @ encoding: [0xa0,0xf5,0x80,0x50]209@ CHECK-NEXT: sub.w r0, r0, #4096 @ encoding: [0xa0,0xf5,0x80,0x50]210@ CHECK-NEXT: sub.w r0, r0, #4096 @ encoding: [0xa0,0xf5,0x80,0x50]211adds.w r0, r0, #-4096212adds r0, r0, #-4096213adds.w r0, #-4096214adds r0, #-4096215@ CHECK-NEXT: subs.w r0, r0, #4096 @ encoding: [0xb0,0xf5,0x80,0x50]216@ CHECK-NEXT: subs.w r0, r0, #4096 @ encoding: [0xb0,0xf5,0x80,0x50]217@ CHECK-NEXT: subs.w r0, r0, #4096 @ encoding: [0xb0,0xf5,0x80,0x50]218@ CHECK-NEXT: subs.w r0, r0, #4096 @ encoding: [0xb0,0xf5,0x80,0x50]219@------------------------------------------------------------------------------220@ ADD (SP plus immediate, writing to SP)221@------------------------------------------------------------------------------222 add.w sp, sp, #0x1fe0000 //T3223 add.w sp, #0x1fe0000224 add sp, sp, #0x1fe0000225 add sp, #0x1fe0000226@ CHECK-NEXT: add.w sp, sp, #33423360 @ encoding: [0x0d,0xf1,0xff,0x7d]227@ CHECK-NEXT: add.w sp, sp, #33423360 @ encoding: [0x0d,0xf1,0xff,0x7d]228@ CHECK-NEXT: add.w sp, sp, #33423360 @ encoding: [0x0d,0xf1,0xff,0x7d]229@ CHECK-NEXT: add.w sp, sp, #33423360 @ encoding: [0x0d,0xf1,0xff,0x7d]230 adds.w sp, sp, #0x1fe0000 //T3231 adds.w sp, #0x1fe0000232 adds sp, sp, #0x1fe0000233 adds sp, #0x1fe0000234@ CHECK-NEXT: adds.w sp, sp, #33423360 @ encoding: [0x1d,0xf1,0xff,0x7d]235@ CHECK-NEXT: adds.w sp, sp, #33423360 @ encoding: [0x1d,0xf1,0xff,0x7d]236@ CHECK-NEXT: adds.w sp, sp, #33423360 @ encoding: [0x1d,0xf1,0xff,0x7d]237@ CHECK-NEXT: adds.w sp, sp, #33423360 @ encoding: [0x1d,0xf1,0xff,0x7d]238 addw sp, sp, #4095 //T4239 add sp, sp, #4095240 addw sp, #4095241 add sp, #4095242@ CHECK-NEXT: addw sp, sp, #4095 @ encoding: [0x0d,0xf6,0xff,0x7d]243@ CHECK-NEXT: addw sp, sp, #4095 @ encoding: [0x0d,0xf6,0xff,0x7d]244@ CHECK-NEXT: addw sp, sp, #4095 @ encoding: [0x0d,0xf6,0xff,0x7d]245@ CHECK-NEXT: addw sp, sp, #4095 @ encoding: [0x0d,0xf6,0xff,0x7d]246 add sp, sp, #128 //T2247 add sp, #128248@ CHECK-NEXT: add sp, #128 @ encoding: [0x20,0xb0]249@ CHECK-NEXT: add sp, #128 @ encoding: [0x20,0xb0]250 adds sp, sp, #128 //T3251 adds sp, #128252@ CHECK-NEXT: adds.w sp, sp, #128 @ encoding: [0x1d,0xf1,0x80,0x0d]253@ CHECK-NEXT: adds.w sp, sp, #128 @ encoding: [0x1d,0xf1,0x80,0x0d]254 add r0, sp, #128 //T1255@ CHECK-NEXT: add r0, sp, #128 @ encoding: [0x20,0xa8]256 adds r0, sp, #128 //T3257@ CHECK-NEXT: adds.w r0, sp, #128 @ encoding: [0x1d,0xf1,0x80,0x00]258 addw r0, sp, #128259@ CHECK-NEXT: addw r0, sp, #128 @ encoding: [0x0d,0xf2,0x80,0x00]260@------------------------------------------------------------------------------261@ ADD (SP plus negative immediate, writing to SP)262@------------------------------------------------------------------------------263add sp, sp, #-508264add sp, #-508265@ CHECK-NEXT: sub sp, #508 @ encoding: [0xff,0xb0]266@ CHECK-NEXT: sub sp, #508 @ encoding: [0xff,0xb0]267addw sp, sp, #-4095268add sp, sp, #-4095269addw sp, #-4095270add sp, #-4095271@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]272@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]273@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]274@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]275add.w sp, sp, #-4096276add sp, sp, #-4096277add.w sp, #-4096278add sp, #-4096279@ CHECK-NEXT: sub.w sp, sp, #4096 @ encoding: [0xad,0xf5,0x80,0x5d]280@ CHECK-NEXT: sub.w sp, sp, #4096 @ encoding: [0xad,0xf5,0x80,0x5d]281@ CHECK-NEXT: sub.w sp, sp, #4096 @ encoding: [0xad,0xf5,0x80,0x5d]282@ CHECK-NEXT: sub.w sp, sp, #4096 @ encoding: [0xad,0xf5,0x80,0x5d]283adds.w sp, sp, #-4096284adds sp, sp, #-4096285adds.w sp, #-4096286adds sp, #-4096287@ CHECK-NEXT: subs.w sp, sp, #4096 @ encoding: [0xbd,0xf5,0x80,0x5d]288@ CHECK-NEXT: subs.w sp, sp, #4096 @ encoding: [0xbd,0xf5,0x80,0x5d]289@ CHECK-NEXT: subs.w sp, sp, #4096 @ encoding: [0xbd,0xf5,0x80,0x5d]290@ CHECK-NEXT: subs.w sp, sp, #4096 @ encoding: [0xbd,0xf5,0x80,0x5d]291@------------------------------------------------------------------------------292@ ADD (SP plus register) A8.8.10293@------------------------------------------------------------------------------294 it eq295@ CHECK: it eq @ encoding: [0x08,0xbf]296 addeq r8, sp, r8 // T1297@ CHECK: addeq r8, sp, r8 @ encoding: [0xe8,0x44]298 it eq299@ CHECK: it eq @ encoding: [0x08,0xbf]300 addeq r8, sp // T1301@ CHECK: addeq r8, sp @ encoding: [0xe8,0x44]302 303 it eq304@ CHECK: it eq @ encoding: [0x08,0xbf]305 addeq sp, r9 // T2306@ CHECK: addeq sp, r9 @ encoding: [0xcd,0x44]307 308 add r2, sp, ip // T3309@ CHECK: add.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02]310 it eq311@ CHECK: it eq @ encoding: [0x08,0xbf]312 addeq r2, sp, ip // T3313@ CHECK: addeq.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02]314 add.w r0, sp, r0, ror #2315 add r0, sp, r0, ror #2316 add sp, r1, lsl #15317 adds.w r0, sp, r0, ror #2318 adds r0, sp, r0, ror #2319 adds.w sp, sp, r0, ror #31320 adds sp, sp, r0, ror #31321 adds sp, r0, ror #31322@ CHECK-NEXT: add.w r0, sp, r0, ror #2 @ encoding: [0x0d,0xeb,0xb0,0x00]323@ CHECK-NEXT: add.w r0, sp, r0, ror #2 @ encoding: [0x0d,0xeb,0xb0,0x00]324@ CHECK-NEXT: add.w sp, sp, r1, lsl #15 @ encoding: [0x0d,0xeb,0xc1,0x3d]325@ CHECK-NEXT: adds.w r0, sp, r0, ror #2 @ encoding: [0x1d,0xeb,0xb0,0x00]326@ CHECK-NEXT: adds.w r0, sp, r0, ror #2 @ encoding: [0x1d,0xeb,0xb0,0x00]327@ CHECK-NEXT: adds.w sp, sp, r0, ror #31 @ encoding: [0x1d,0xeb,0xf0,0x7d]328@ CHECK-NEXT: adds.w sp, sp, r0, ror #31 @ encoding: [0x1d,0xeb,0xf0,0x7d]329@ CHECK-NEXT: adds.w sp, sp, r0, ror #31 @ encoding: [0x1d,0xeb,0xf0,0x7d]330@------------------------------------------------------------------------------331@ FIXME: ADR332@------------------------------------------------------------------------------333 334 subw r11, pc, #3270335 adr.w r2, #3336 adr.w r11, #-826337 adr.w r1, #-0x0338 339@ CHECK: subw r11, pc, #3270 @ encoding: [0xaf,0xf6,0xc6,0x4b]340@ CHECK: adr.w r2, #3 @ encoding: [0x0f,0xf2,0x03,0x02]341@ CHECK: adr.w r11, #-826 @ encoding: [0xaf,0xf2,0x3a,0x3b]342@ CHECK: adr.w r1, #-0 @ encoding: [0xaf,0xf2,0x00,0x01]343 344@------------------------------------------------------------------------------345@ AND (immediate)346@------------------------------------------------------------------------------347 and r2, r5, #0xff000348 ands r3, r12, #0xf349 and r1, #0xff350 and r1, r1, #0xff351 and r5, r4, #0xffffffff352 ands r1, r9, #0xffffffff353 354@ CHECK: and r2, r5, #1044480 @ encoding: [0x05,0xf4,0x7f,0x22]355@ CHECK: ands r3, r12, #15 @ encoding: [0x1c,0xf0,0x0f,0x03]356@ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]357@ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01]358@ CHECK: and r5, r4, #4294967295 @ encoding: [0x04,0xf0,0xff,0x35]359@ CHECK: ands r1, r9, #4294967295 @ encoding: [0x19,0xf0,0xff,0x31]360 361@------------------------------------------------------------------------------362@ AND (register)363@------------------------------------------------------------------------------364 and r4, r9, r8365 and r1, r4, r8, asr #3366 ands r2, r1, r7, lsl #1367 ands.w r4, r5, r2, lsr #20368 and.w r9, r12, r1, ror #17369 370@ CHECK: and.w r4, r9, r8 @ encoding: [0x09,0xea,0x08,0x04]371@ CHECK: and.w r1, r4, r8, asr #3 @ encoding: [0x04,0xea,0xe8,0x01]372@ CHECK: ands.w r2, r1, r7, lsl #1 @ encoding: [0x11,0xea,0x47,0x02]373@ CHECK: ands.w r4, r5, r2, lsr #20 @ encoding: [0x15,0xea,0x12,0x54]374@ CHECK: and.w r9, r12, r1, ror #17 @ encoding: [0x0c,0xea,0x71,0x49]375 376@------------------------------------------------------------------------------377@ ASR (immediate)378@------------------------------------------------------------------------------379 asr r2, r3, #12380 asrs r8, r3, #32381 asrs.w r2, r3, #1382 asr r2, r3, #4383 asrs r2, r12, #15384 385 asr r3, #19386 asrs r8, #2387 asrs.w r7, #5388 asr.w r12, #21389 390 asrs r1, r2, #1391 itt eq392 asrseq r1, r2, #1393 asreq r1, r2, #1394 395@ CHECK: asr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x23,0x32]396@ CHECK: asrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x23,0x08]397@ CHECK: asrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x63,0x02]398@ CHECK: asr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x23,0x12]399@ CHECK: asrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xec,0x32]400 401@ CHECK: asr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xe3,0x43]402@ CHECK: asrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0xa8,0x08]403@ CHECK: asrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x67,0x17]404@ CHECK: asr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x6c,0x5c]405 406@ CHECK: asrs r1, r2, #1 @ encoding: [0x51,0x10]407@ CHECK: itt eq @ encoding: [0x04,0xbf]408@ CHECK: asrseq.w r1, r2, #1 @ encoding: [0x5f,0xea,0x62,0x01]409@ CHECK: asreq r1, r2, #1 @ encoding: [0x51,0x10]410 411@------------------------------------------------------------------------------412@ ASR (register)413@------------------------------------------------------------------------------414 asr r3, r4, r2415 asr.w r1, r2416 asrs r3, r4, r8417 418@ CHECK: asr.w r3, r4, r2 @ encoding: [0x44,0xfa,0x02,0xf3]419@ CHECK: asr.w r1, r1, r2 @ encoding: [0x41,0xfa,0x02,0xf1]420@ CHECK: asrs.w r3, r4, r8 @ encoding: [0x54,0xfa,0x08,0xf3]421 422 423@------------------------------------------------------------------------------424@ B425@------------------------------------------------------------------------------426 b.w _bar427 beq.w _bar428 it eq429 beq.w _bar430 bmi.w #-183396431 432@ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0x90'A']433@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch434@ CHECK-BE: b.w _bar @ encoding: [0xf0'A',A,0x90'A',A]435@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch436@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A']437@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch438@ CHECK-BE: beq.w _bar @ encoding: [0xf0'A',A,0x80'A',A]439@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch440@ CHECK: it eq @ encoding: [0x08,0xbf]441@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x90'A']442@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch443@ CHECK-BE: beq.w _bar @ encoding: [0xf0'A',A,0x90'A',A]444@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch445@ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9]446 447 448@------------------------------------------------------------------------------449@ BFC450@------------------------------------------------------------------------------451 bfc r5, #3, #17452 it lo453 bfccc r5, #3, #17454 455@ CHECK: bfc r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05]456@ CHECK: it lo @ encoding: [0x38,0xbf]457@ CHECK: bfclo r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05]458 459 460@------------------------------------------------------------------------------461@ BFI462@------------------------------------------------------------------------------463 bfi r5, r2, #3, #17464 it ne465 bfine r5, r2, #3, #17466 467@ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05]468@ CHECK: it ne @ encoding: [0x18,0xbf]469@ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05]470 471 472@------------------------------------------------------------------------------473@ BIC474@------------------------------------------------------------------------------475 bic r10, r1, #0xf476 bic r5, r2, #0xffffffff477 bics r11, r10, #0xffffffff478 bic r12, r3, r6479 bic r11, r2, r6, lsl #12480 bic r8, r4, r1, lsr #11481 bic r7, r5, r7, lsr #15482 bic r6, r7, r9, asr #32483 bic r5, r6, r8, ror #1484 485 @ destination register is optional486 bic r1, #0xf487 bic r1, r1488 bic r4, r2, lsl #31489 bic r6, r3, lsr #12490 bic r7, r4, lsr #7491 bic r8, r5, asr #15492 bic r12, r6, ror #29493 494@ CHECK: bic r10, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x0a]495@ CHECK: bic r5, r2, #4294967295 @ encoding: [0x22,0xf0,0xff,0x35]496@ CHECK: bics r11, r10, #4294967295 @ encoding: [0x3a,0xf0,0xff,0x3b]497@ CHECK: bic.w r12, r3, r6 @ encoding: [0x23,0xea,0x06,0x0c]498@ CHECK: bic.w r11, r2, r6, lsl #12 @ encoding: [0x22,0xea,0x06,0x3b]499@ CHECK: bic.w r8, r4, r1, lsr #11 @ encoding: [0x24,0xea,0xd1,0x28]500@ CHECK: bic.w r7, r5, r7, lsr #15 @ encoding: [0x25,0xea,0xd7,0x37]501@ CHECK: bic.w r6, r7, r9, asr #32 @ encoding: [0x27,0xea,0x29,0x06]502@ CHECK: bic.w r5, r6, r8, ror #1 @ encoding: [0x26,0xea,0x78,0x05]503 504@ CHECK: bic r1, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x01]505@ CHECK: bic.w r1, r1, r1 @ encoding: [0x21,0xea,0x01,0x01]506@ CHECK: bic.w r4, r4, r2, lsl #31 @ encoding: [0x24,0xea,0xc2,0x74]507@ CHECK: bic.w r6, r6, r3, lsr #12 @ encoding: [0x26,0xea,0x13,0x36]508@ CHECK: bic.w r7, r7, r4, lsr #7 @ encoding: [0x27,0xea,0xd4,0x17]509@ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38]510@ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c]511 512@------------------------------------------------------------------------------513@ BKPT514@------------------------------------------------------------------------------515 it pl516 bkpt #234517 518@ CHECK: it pl @ encoding: [0x58,0xbf]519@ CHECK: bkpt #234 @ encoding: [0xea,0xbe]520 521@------------------------------------------------------------------------------522@ BXJ523@------------------------------------------------------------------------------524 bxj r5525 it ne526 bxjne r7527 528@ CHECK: bxj r5 @ encoding: [0xc5,0xf3,0x00,0x8f]529@ CHECK: it ne @ encoding: [0x18,0xbf]530@ CHECK: bxjne r7 @ encoding: [0xc7,0xf3,0x00,0x8f]531 532 533@------------------------------------------------------------------------------534@ CBZ/CBNZ535@------------------------------------------------------------------------------536 cbnz r7, #6537 cbnz r7, #12538 cbz r6, _bar539 cbnz r6, _bar540 541@ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9]542@ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9]543@ CHECK: cbz r6, _bar @ encoding: [0x06'A',0xb1'A']544@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb545@ CHECK-BE: cbz r6, _bar @ encoding: [0xb1'A',0x06'A']546@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb547@ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A']548@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb549@ CHECK-BE: cbnz r6, _bar @ encoding: [0xb9'A',0x06'A']550@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb551 552 553@------------------------------------------------------------------------------554@ CDP/CDP2555@------------------------------------------------------------------------------556 cdp p7, #1, c1, c1, c1, #4557 cdp2 p7, #1, c1, c1, c1, #4558 559@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17]560@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]561 562 563@------------------------------------------------------------------------------564@ CLREX565@------------------------------------------------------------------------------566 clrex567 it ne568 clrexne569 570@ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]571@ CHECK: it ne @ encoding: [0x18,0xbf]572@ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f]573 574 575@------------------------------------------------------------------------------576@ CLZ577@------------------------------------------------------------------------------578 clz r1, r2579 it eq580 clzeq r1, r2581 582@ CHECK: clz r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1]583@ CHECK: it eq @ encoding: [0x08,0xbf]584@ CHECK: clzeq r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1]585 586 587@------------------------------------------------------------------------------588@ CMN589@------------------------------------------------------------------------------590 cmn r1, #0xf591 cmn r8, r6592 cmn r1, r6, lsl #10593 cmn r1, r6, lsr #10594 cmn sp, r6, lsr #10595 cmn r1, r6, asr #10596 cmn r1, r6, ror #10597 598@ CHECK: cmn.w r1, #15 @ encoding: [0x11,0xf1,0x0f,0x0f]599@ CHECK: cmn.w r8, r6 @ encoding: [0x18,0xeb,0x06,0x0f]600@ CHECK: cmn.w r1, r6, lsl #10 @ encoding: [0x11,0xeb,0x86,0x2f]601@ CHECK: cmn.w r1, r6, lsr #10 @ encoding: [0x11,0xeb,0x96,0x2f]602@ CHECK: cmn.w sp, r6, lsr #10 @ encoding: [0x1d,0xeb,0x96,0x2f]603@ CHECK: cmn.w r1, r6, asr #10 @ encoding: [0x11,0xeb,0xa6,0x2f]604@ CHECK: cmn.w r1, r6, ror #10 @ encoding: [0x11,0xeb,0xb6,0x2f]605 606 607@------------------------------------------------------------------------------608@ CMP609@------------------------------------------------------------------------------610 cmp r5, #0xff00611 cmp.w r4, r12612 cmp r9, r6, lsl #12613 cmp r3, r7, lsr #31614 cmp sp, r6, lsr #1615 cmp r2, r5, asr #24616 cmp r1, r4, ror #15617 cmp r2, #-2618 cmp r9, #1619 620@ CHECK: cmp.w r5, #65280 @ encoding: [0xb5,0xf5,0x7f,0x4f]621@ CHECK: cmp.w r4, r12 @ encoding: [0xb4,0xeb,0x0c,0x0f]622@ CHECK: cmp.w r9, r6, lsl #12 @ encoding: [0xb9,0xeb,0x06,0x3f]623@ CHECK: cmp.w r3, r7, lsr #31 @ encoding: [0xb3,0xeb,0xd7,0x7f]624@ CHECK: cmp.w sp, r6, lsr #1 @ encoding: [0xbd,0xeb,0x56,0x0f]625@ CHECK: cmp.w r2, r5, asr #24 @ encoding: [0xb2,0xeb,0x25,0x6f]626@ CHECK: cmp.w r1, r4, ror #15 @ encoding: [0xb1,0xeb,0xf4,0x3f]627@ CHECK: cmn.w r2, #2 @ encoding: [0x12,0xf1,0x02,0x0f]628@ CHECK: cmp.w r9, #1 @ encoding: [0xb9,0xf1,0x01,0x0f]629 630@------------------------------------------------------------------------------631@ CPS632@------------------------------------------------------------------------------633 634 cpsie f635 cpsid a636 cpsie.w f637 cpsid.w a638 cpsie i, #3639 cpsie.w i, #3640 cpsid f, #9641 cpsid.w f, #9642 cps #0643 cps.w #0644 645@ CHECK: cpsie f @ encoding: [0x61,0xb6]646@ CHECK: cpsid a @ encoding: [0x74,0xb6]647@ CHECK: cpsie.w f @ encoding: [0xaf,0xf3,0x20,0x84]648@ CHECK: cpsid.w a @ encoding: [0xaf,0xf3,0x80,0x86]649@ CHECK: cpsie i, #3 @ encoding: [0xaf,0xf3,0x43,0x85]650@ CHECK: cpsie i, #3 @ encoding: [0xaf,0xf3,0x43,0x85]651@ CHECK: cpsid f, #9 @ encoding: [0xaf,0xf3,0x29,0x87]652@ CHECK: cpsid f, #9 @ encoding: [0xaf,0xf3,0x29,0x87]653@ CHECK: cps #0 @ encoding: [0xaf,0xf3,0x00,0x81]654@ CHECK: cps #0 @ encoding: [0xaf,0xf3,0x00,0x81]655 656@------------------------------------------------------------------------------657@ DBG658@------------------------------------------------------------------------------659 dbg #5660 dbg #0661 dbg #15662 dbg.w #0663 it ne664 dbgne.w #0665 666@ CHECK: dbg #5 @ encoding: [0xaf,0xf3,0xf5,0x80]667@ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80]668@ CHECK: dbg #15 @ encoding: [0xaf,0xf3,0xff,0x80]669@ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80]670@ CHECK: it ne @ encoding: [0x18,0xbf]671@ CHECK: dbgne #0 @ encoding: [0xaf,0xf3,0xf0,0x80]672 673 674@------------------------------------------------------------------------------675@ DMB676@------------------------------------------------------------------------------677 dmb #0xf678 dmb #0xe679 dmb #0xd680 dmb #0xc681 dmb #0xb682 dmb #0xa683 dmb #0x9684 dmb #0x8685 dmb #0x7686 dmb #0x6687 dmb #0x5688 dmb #0x4689 dmb #0x3690 dmb #0x2691 dmb #0x1692 dmb #0x0693 694 dmb sy695 dmb.w sy696 dmb st697 dmb sh698 dmb ish699 dmb shst700 dmb ishst701 dmb un702 dmb nsh703 dmb unst704 dmb nshst705 dmb osh706 dmb oshst707 dmb708 dmb.w709 710@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]711@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]712@ CHECK: dmb #0xd @ encoding: [0xbf,0xf3,0x5d,0x8f]713@ CHECK: dmb #0xc @ encoding: [0xbf,0xf3,0x5c,0x8f]714@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]715@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]716@ CHECK: dmb #0x9 @ encoding: [0xbf,0xf3,0x59,0x8f]717@ CHECK: dmb #0x8 @ encoding: [0xbf,0xf3,0x58,0x8f]718@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]719@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]720@ CHECK: dmb #0x5 @ encoding: [0xbf,0xf3,0x55,0x8f]721@ CHECK: dmb #0x4 @ encoding: [0xbf,0xf3,0x54,0x8f]722@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]723@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]724@ CHECK: dmb #0x1 @ encoding: [0xbf,0xf3,0x51,0x8f]725@ CHECK: dmb #0x0 @ encoding: [0xbf,0xf3,0x50,0x8f]726 727@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]728@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]729@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]730@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]731@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]732@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]733@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]734@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]735@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]736@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]737@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]738@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]739@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]740@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]741@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]742 743 744@------------------------------------------------------------------------------745@ DSB746@------------------------------------------------------------------------------747 dsb #0xf748 dsb #0xe749 dsb #0xd750 dsb #0xc751 dsb #0xb752 dsb #0xa753 dsb #0x9754 dsb #0x8755 dsb #0x7756 dsb #0x6757 dsb #0x5758 dsb #0x4759 dsb #0x3760 dsb #0x2761 dsb #0x1762 dsb #0x0763 764 dsb sy765 dsb.w sy766 dsb st767 dsb sh768 dsb ish769 dsb shst770 dsb ishst771 dsb un772 dsb nsh773 dsb unst774 dsb nshst775 dsb osh776 dsb oshst777 dsb778 dsb.w779 780@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]781@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]782@ CHECK: dsb #0xd @ encoding: [0xbf,0xf3,0x4d,0x8f]783@ CHECK: dsb #0xc @ encoding: [0xbf,0xf3,0x4c,0x8f]784@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]785@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]786@ CHECK: dsb #0x9 @ encoding: [0xbf,0xf3,0x49,0x8f]787@ CHECK: dsb #0x8 @ encoding: [0xbf,0xf3,0x48,0x8f]788@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]789@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]790@ CHECK: dsb #0x5 @ encoding: [0xbf,0xf3,0x45,0x8f]791@ CHECK: pssbb @ encoding: [0xbf,0xf3,0x44,0x8f]792@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]793@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]794@ CHECK: dsb #0x1 @ encoding: [0xbf,0xf3,0x41,0x8f]795@ CHECK: ssbb @ encoding: [0xbf,0xf3,0x40,0x8f]796 797@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]798@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]799@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]800@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]801@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]802@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]803@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]804@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]805@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]806@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]807@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]808@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]809@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]810@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]811@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]812 813 814@------------------------------------------------------------------------------815@ EOR816@------------------------------------------------------------------------------817 eor r4, r5, #0xf000818 eor r4, r5, r6819 eor r4, r5, r6, lsl #5820 eor r4, r5, r6, lsr #5821 eor r4, r5, r6, lsr #5822 eor r4, r5, r6, asr #5823 eor r4, r5, r6, ror #5824 825@ CHECK: eor r4, r5, #61440 @ encoding: [0x85,0xf4,0x70,0x44]826@ CHECK: eor.w r4, r5, r6 @ encoding: [0x85,0xea,0x06,0x04]827@ CHECK: eor.w r4, r5, r6, lsl #5 @ encoding: [0x85,0xea,0x46,0x14]828@ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14]829@ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14]830@ CHECK: eor.w r4, r5, r6, asr #5 @ encoding: [0x85,0xea,0x66,0x14]831@ CHECK: eor.w r4, r5, r6, ror #5 @ encoding: [0x85,0xea,0x76,0x14]832 833 834@------------------------------------------------------------------------------835@ ISB836@------------------------------------------------------------------------------837 isb sy838 isb.w sy839 isb840 isb.w841 isb #15842 isb #1843 844@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]845@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]846@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]847@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]848@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]849@ CHECK: isb #0x1 @ encoding: [0xbf,0xf3,0x61,0x8f]850 851 852@------------------------------------------------------------------------------853@ IT854@------------------------------------------------------------------------------855@ Test encodings of a few full IT blocks, not just the IT instruction856 857 iteet eq858 addeq r0, r1, r2859 nopne860 subne r5, r6, r7861 addeq r1, r2, #4862 863@ CHECK: iteet eq @ encoding: [0x0d,0xbf]864@ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18]865@ CHECK: nopne @ encoding: [0x00,0xbf]866@ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b]867@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]868 869@ Should also work for UPPER CASE condition codes.870 871 ITEET EQ872 ADDEQ R0, R1, R2873 NOPNE874 SUBNE R5, R6, R7875 ADDEQ R1, R2, #4876 877@ CHECK: iteet eq @ encoding: [0x0d,0xbf]878@ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18]879@ CHECK: nopne @ encoding: [0x00,0xbf]880@ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b]881@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d]882 883@------------------------------------------------------------------------------884@ LDC{L}/LDC2{L}885@------------------------------------------------------------------------------886 ldc2 p0, c8, [r1, #4]887 ldc2 p1, c7, [r2]888 ldc2 p2, c6, [r3, #-224]889 ldc2 p3, c5, [r4, #-120]!890 ldc2 p4, c4, [r5], #16891 ldc2 p5, c3, [r6], #-72892 ldc2l p6, c2, [r7, #4]893 ldc2l p7, c1, [r8]894 ldc2l p8, c0, [r9, #-224]895 ldc2l p9, c1, [r10, #-120]!896 ldc2l p0, c2, [r11], #16897 ldc2l p1, c3, [r12], #-72898 899 ldc p12, c4, [r0, #4]900 ldc p13, c5, [r1]901 ldc p14, c6, [r2, #-224]902 ldc p15, c7, [r3, #-120]!903 ldc p5, c8, [r4], #16904 ldc p4, c9, [r5], #-72905 ldcl p3, c10, [r6, #4]906 ldcl p2, c11, [r7]907 ldcl p1, c12, [r8, #-224]908 ldcl p0, c13, [r9, #-120]!909 ldcl p6, c14, [r10], #16910 ldcl p7, c15, [r11], #-72911 912 ldc2 p2, c8, [r1], { 25 }913 914@ CHECK: ldc2 p0, c8, [r1, #4] @ encoding: [0x91,0xfd,0x01,0x80]915@ CHECK: ldc2 p1, c7, [r2] @ encoding: [0x92,0xfd,0x00,0x71]916@ CHECK: ldc2 p2, c6, [r3, #-224] @ encoding: [0x13,0xfd,0x38,0x62]917@ CHECK: ldc2 p3, c5, [r4, #-120]! @ encoding: [0x34,0xfd,0x1e,0x53]918@ CHECK: ldc2 p4, c4, [r5], #16 @ encoding: [0xb5,0xfc,0x04,0x44]919@ CHECK: ldc2 p5, c3, [r6], #-72 @ encoding: [0x36,0xfc,0x12,0x35]920@ CHECK: ldc2l p6, c2, [r7, #4] @ encoding: [0xd7,0xfd,0x01,0x26]921@ CHECK: ldc2l p7, c1, [r8] @ encoding: [0xd8,0xfd,0x00,0x17]922@ CHECK: ldc2l p8, c0, [r9, #-224] @ encoding: [0x59,0xfd,0x38,0x08]923@ CHECK: ldc2l p9, c1, [r10, #-120]! @ encoding: [0x7a,0xfd,0x1e,0x19]924@ CHECK: ldc2l p0, c2, [r11], #16 @ encoding: [0xfb,0xfc,0x04,0x20]925@ CHECK: ldc2l p1, c3, [r12], #-72 @ encoding: [0x7c,0xfc,0x12,0x31]926 927@ CHECK: ldc p12, c4, [r0, #4] @ encoding: [0x90,0xed,0x01,0x4c]928@ CHECK: ldc p13, c5, [r1] @ encoding: [0x91,0xed,0x00,0x5d]929@ CHECK: ldc p14, c6, [r2, #-224] @ encoding: [0x12,0xed,0x38,0x6e]930@ CHECK: ldc p15, c7, [r3, #-120]! @ encoding: [0x33,0xed,0x1e,0x7f]931@ CHECK: ldc p5, c8, [r4], #16 @ encoding: [0xb4,0xec,0x04,0x85]932@ CHECK: ldc p4, c9, [r5], #-72 @ encoding: [0x35,0xec,0x12,0x94]933@ CHECK: ldcl p3, c10, [r6, #4] @ encoding: [0xd6,0xed,0x01,0xa3]934@ CHECK: ldcl p2, c11, [r7] @ encoding: [0xd7,0xed,0x00,0xb2]935@ CHECK: ldcl p1, c12, [r8, #-224] @ encoding: [0x58,0xed,0x38,0xc1]936@ CHECK: ldcl p0, c13, [r9, #-120]! @ encoding: [0x79,0xed,0x1e,0xd0]937@ CHECK: ldcl p6, c14, [r10], #16 @ encoding: [0xfa,0xec,0x04,0xe6]938@ CHECK: ldcl p7, c15, [r11], #-72 @ encoding: [0x7b,0xec,0x12,0xf7]939 940@ CHECK: ldc2 p2, c8, [r1], {25} @ encoding: [0x91,0xfc,0x19,0x82]941 942 943@------------------------------------------------------------------------------944@ LDMIA945@------------------------------------------------------------------------------946 ldmia.w r4, {r4, r5, r8, r9}947 ldmia.w r4, {r5, r6}948 ldmia.w r5!, {r3, r8}949 ldm.w r4, {r4, r5, r8, r9}950 ldm.w r4, {r5, r6}951 ldm.w r5!, {r3, r8}952 ldm.w r5!, {r1, r2}953 ldm.w r2, {r1, r2}954 955 ldmia r4, {r4, r5, r8, r9}956 ldmia r4, {r5, r6}957 ldmia r5!, {r3, r8}958 ldm r4, {r4, r5, r8, r9}959 ldm r4, {r5, r6}960 ldm r5!, {r3, r8}961 ldmfd r5!, {r3, r8}962 ldmia sp!, {r4-r11, pc}963 964@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]965@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]966@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]967@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]968@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]969@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]970@ CHECK: ldm.w r5!, {r1, r2} @ encoding: [0xb5,0xe8,0x06,0x00]971@ CHECK: ldm.w r2, {r1, r2} @ encoding: [0x92,0xe8,0x06,0x00]972 973@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]974@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]975@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]976@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03]977@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00]978@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]979@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01]980@ CHECK: pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc} @ encoding: [0xbd,0xe8,0xf0,0x8f]981 982 983@------------------------------------------------------------------------------984@ LDMDB985@------------------------------------------------------------------------------986 ldmdb r4, {r4, r5, r8, r9}987 ldmdb r4, {r5, r6}988 ldmdb r5!, {r3, r8}989 ldmea r5!, {r3, r8}990 ldmdb.w r4, {r5, r6}991 ldmdb.w r5!, {r3, r8}992 993@ CHECK: ldmdb r4, {r4, r5, r8, r9} @ encoding: [0x14,0xe9,0x30,0x03]994@ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00]995@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]996@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]997@ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00]998@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01]999 1000 1001@------------------------------------------------------------------------------1002@ LDR(immediate)1003@------------------------------------------------------------------------------1004 ldr r5, [r5, #-4]1005 ldr r5, [r6, #32]1006 ldr r5, [r6, #33]1007 ldr r5, [r6, #257]1008 ldr.w pc, [r7, #257]1009 ldr r2, [r4, #255]!1010 ldr r8, [sp, #4]!1011 ldr lr, [sp, #-4]!1012 ldr r2, [r4], #2551013 ldr r8, [sp], #41014 ldr lr, [sp], #-41015 1016@ CHECK: ldr r5, [r5, #-4] @ encoding: [0x55,0xf8,0x04,0x5c]1017@ CHECK: ldr r5, [r6, #32] @ encoding: [0x35,0x6a]1018@ CHECK: ldr.w r5, [r6, #33] @ encoding: [0xd6,0xf8,0x21,0x50]1019@ CHECK: ldr.w r5, [r6, #257] @ encoding: [0xd6,0xf8,0x01,0x51]1020@ CHECK: ldr.w pc, [r7, #257] @ encoding: [0xd7,0xf8,0x01,0xf1]1021@ CHECK: ldr r2, [r4, #255]! @ encoding: [0x54,0xf8,0xff,0x2f]1022@ CHECK: ldr r8, [sp, #4]! @ encoding: [0x5d,0xf8,0x04,0x8f]1023@ CHECK: ldr lr, [sp, #-4]! @ encoding: [0x5d,0xf8,0x04,0xed]1024@ CHECK: ldr r2, [r4], #255 @ encoding: [0x54,0xf8,0xff,0x2b]1025@ CHECK: ldr r8, [sp], #4 @ encoding: [0x5d,0xf8,0x04,0x8b]1026@ CHECK: ldr lr, [sp], #-4 @ encoding: [0x5d,0xf8,0x04,0xe9]1027 1028 1029@------------------------------------------------------------------------------1030@ LDR(literal)1031@------------------------------------------------------------------------------1032 ldr.w r5, _foo1033 ldr lr, (_strcmp-4)1034 ldr sp, _foo1035 ldr pc, _foo1036 1037@ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A']1038@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_121039@ CHECK-BE: ldr.w r5, _foo @ encoding: [0xf8'A',0x5f'A',0x50'A',A]1040@ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_121041@ CHECK: ldr.w lr, _strcmp-4 @ encoding: [0x5f'A',0xf8'A',A,0xe0'A']1042@ CHECK: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_121043@ CHECK-BE: ldr.w lr, _strcmp-4 @ encoding: [0xf8'A',0x5f'A',0xe0'A',A]1044@ CHECK-BE: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_121045@ CHECK: ldr.w sp, _foo @ encoding: [0x5f'A',0xf8'A',A,0xd0'A']1046@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_121047@ CHECK-BE: ldr.w sp, _foo @ encoding: [0xf8'A',0x5f'A',0xd0'A',A]1048@ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_121049@ CHECK: ldr.w pc, _foo @ encoding: [0x5f'A',0xf8'A',A,0xf0'A']1050@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_121051@ CHECK-BE: ldr.w pc, _foo @ encoding: [0xf8'A',0x5f'A',0xf0'A',A]1052@ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_121053 1054 ldr r7, [pc, #8]1055 ldr.n r7, [pc, #8]1056 ldr.w r7, [pc, #8]1057 ldr r4, [pc, #1020]1058 ldr r3, [pc, #-1020]1059 ldr r6, [pc, #1024]1060 ldr r0, [pc, #-1024]1061 ldr r2, [pc, #4095]1062 ldr r1, [pc, #-4095]1063 ldr r8, [pc, #132]1064 ldr pc, [pc, #256]1065 ldr pc, [pc, #-400]1066 ldr sp, [pc, #4]1067 1068@ CHECK: ldr r7, [pc, #8] @ encoding: [0x02,0x4f]1069@ CHECK: ldr r7, [pc, #8] @ encoding: [0x02,0x4f]1070@ CHECK: ldr.w r7, [pc, #8] @ encoding: [0xdf,0xf8,0x08,0x70]1071@ CHECK: ldr r4, [pc, #1020] @ encoding: [0xff,0x4c]1072@ CHECK: ldr.w r3, [pc, #-1020] @ encoding: [0x5f,0xf8,0xfc,0x33]1073@ CHECK: ldr.w r6, [pc, #1024] @ encoding: [0xdf,0xf8,0x00,0x64]1074@ CHECK: ldr.w r0, [pc, #-1024] @ encoding: [0x5f,0xf8,0x00,0x04]1075@ CHECK: ldr.w r2, [pc, #4095] @ encoding: [0xdf,0xf8,0xff,0x2f]1076@ CHECK: ldr.w r1, [pc, #-4095] @ encoding: [0x5f,0xf8,0xff,0x1f]1077@ CHECK: ldr.w r8, [pc, #132] @ encoding: [0xdf,0xf8,0x84,0x80]1078@ CHECK: ldr.w pc, [pc, #256] @ encoding: [0xdf,0xf8,0x00,0xf1]1079@ CHECK: ldr.w pc, [pc, #-400] @ encoding: [0x5f,0xf8,0x90,0xf1]1080@ CHECK: ldr.w sp, [pc, #4] @ encoding: [0xdf,0xf8,0x04,0xd0]1081 1082 ldrb r9, [pc, #-0]1083 ldrsb r11, [pc, #-0]1084 ldrh r10, [pc, #-0]1085 ldrsh r1, [pc, #-0]1086 ldr r5, [pc, #-0]1087 1088@ CHECK: ldrb.w r9, [pc, #-0] @ encoding: [0x1f,0xf8,0x00,0x90]1089@ CHECK: ldrsb.w r11, [pc, #-0] @ encoding: [0x1f,0xf9,0x00,0xb0]1090@ CHECK: ldrh.w r10, [pc, #-0] @ encoding: [0x3f,0xf8,0x00,0xa0]1091@ CHECK: ldrsh.w r1, [pc, #-0] @ encoding: [0x3f,0xf9,0x00,0x10]1092@ CHECK: ldr.w r5, [pc, #-0] @ encoding: [0x5f,0xf8,0x00,0x50]1093 1094@------------------------------------------------------------------------------1095@ LDR(register)1096@------------------------------------------------------------------------------1097 ldr r1, [r8, r1]1098 ldr.w r4, [r5, r2]1099 ldr r6, [r0, r2, lsl #3]1100 ldr r8, [r8, r2, lsl #2]1101 ldr r7, [sp, r2, lsl #1]1102 ldr r7, [sp, r2, lsl #0]1103 1104@ CHECK: ldr.w r1, [r8, r1] @ encoding: [0x58,0xf8,0x01,0x10]1105@ CHECK: ldr.w r4, [r5, r2] @ encoding: [0x55,0xf8,0x02,0x40]1106@ CHECK: ldr.w r6, [r0, r2, lsl #3] @ encoding: [0x50,0xf8,0x32,0x60]1107@ CHECK: ldr.w r8, [r8, r2, lsl #2] @ encoding: [0x58,0xf8,0x22,0x80]1108@ CHECK: ldr.w r7, [sp, r2, lsl #1] @ encoding: [0x5d,0xf8,0x12,0x70]1109@ CHECK: ldr.w r7, [sp, r2] @ encoding: [0x5d,0xf8,0x02,0x70]1110 1111 1112@------------------------------------------------------------------------------1113@ LDRB(immediate)1114@------------------------------------------------------------------------------1115 ldrb r5, [r5, #-4]1116 ldrb r5, [r6, #32]1117 ldrb r5, [r6, #33]1118 ldrb r5, [r6, #257]1119 ldrb.w lr, [r7, #257]1120 ldrb r5, [r8, #255]!1121 ldrb r2, [r5, #4]!1122 ldrb r1, [r4, #-4]!1123 ldrb lr, [r3], #2551124 ldrb r9, [r2], #41125 ldrb r3, [sp], #-41126 ldrb.w r5, [r5, #-4]1127 ldrb.w r5, [r6, #32]1128 ldrb.w r5, [r8, #255]!1129 ldrb.w r9, [r2], #41130 1131@ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c]1132@ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50]1133@ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50]1134@ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51]1135@ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1]1136@ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f]1137@ CHECK: ldrb r2, [r5, #4]! @ encoding: [0x15,0xf8,0x04,0x2f]1138@ CHECK: ldrb r1, [r4, #-4]! @ encoding: [0x14,0xf8,0x04,0x1d]1139@ CHECK: ldrb lr, [r3], #255 @ encoding: [0x13,0xf8,0xff,0xeb]1140@ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b]1141@ CHECK: ldrb r3, [sp], #-4 @ encoding: [0x1d,0xf8,0x04,0x39]1142@ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c]1143@ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50]1144@ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f]1145@ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b]1146 1147 1148@------------------------------------------------------------------------------1149@ LDRB(register)1150@------------------------------------------------------------------------------1151 ldrb r1, [r8, r1]1152 ldrb.w r4, [r5, r2]1153 ldrb r6, [r0, r2, lsl #3]1154 ldrb r8, [r8, r2, lsl #2]1155 ldrb r7, [sp, r2, lsl #1]1156 ldrb r7, [sp, r2, lsl #0]1157 1158@ CHECK: ldrb.w r1, [r8, r1] @ encoding: [0x18,0xf8,0x01,0x10]1159@ CHECK: ldrb.w r4, [r5, r2] @ encoding: [0x15,0xf8,0x02,0x40]1160@ CHECK: ldrb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0x60]1161@ CHECK: ldrb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0x80]1162@ CHECK: ldrb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0x70]1163@ CHECK: ldrb.w r7, [sp, r2] @ encoding: [0x1d,0xf8,0x02,0x70]1164 1165 1166@------------------------------------------------------------------------------1167@ LDRBT1168@------------------------------------------------------------------------------1169 ldrbt r1, [r2]1170 ldrbt r1, [r8, #0]1171 ldrbt r1, [r8, #3]1172 ldrbt r1, [r8, #255]1173 1174@ CHECK: ldrbt r1, [r2] @ encoding: [0x12,0xf8,0x00,0x1e]1175@ CHECK: ldrbt r1, [r8] @ encoding: [0x18,0xf8,0x00,0x1e]1176@ CHECK: ldrbt r1, [r8, #3] @ encoding: [0x18,0xf8,0x03,0x1e]1177@ CHECK: ldrbt r1, [r8, #255] @ encoding: [0x18,0xf8,0xff,0x1e]1178 1179 1180@------------------------------------------------------------------------------1181@ LDRD1182@------------------------------------------------------------------------------1183 ldrd r3, r5, [r6, #24]1184 ldrd r3, r5, [r6, #24]!1185 ldrd r3, r5, [r6], #41186 ldrd r3, r5, [r6], #-81187 ldrd r3, r5, [r6]1188 ldrd r8, r1, [r3, #0]1189 ldrd r0, r1, [r2, #-0]1190 ldrd r0, r1, [r2, #-0]!1191 ldrd r0, r1, [r2], #-01192 1193@ CHECK: ldrd r3, r5, [r6, #24] @ encoding: [0xd6,0xe9,0x06,0x35]1194@ CHECK: ldrd r3, r5, [r6, #24]! @ encoding: [0xf6,0xe9,0x06,0x35]1195@ CHECK: ldrd r3, r5, [r6], #4 @ encoding: [0xf6,0xe8,0x01,0x35]1196@ CHECK: ldrd r3, r5, [r6], #-8 @ encoding: [0x76,0xe8,0x02,0x35]1197@ CHECK: ldrd r3, r5, [r6] @ encoding: [0xd6,0xe9,0x00,0x35]1198@ CHECK: ldrd r8, r1, [r3] @ encoding: [0xd3,0xe9,0x00,0x81]1199@ CHECK: ldrd r0, r1, [r2, #-0] @ encoding: [0x52,0xe9,0x00,0x01]1200@ CHECK: ldrd r0, r1, [r2, #-0]! @ encoding: [0x72,0xe9,0x00,0x01]1201@ CHECK: ldrd r0, r1, [r2], #-0 @ encoding: [0x72,0xe8,0x00,0x01]1202 1203 1204@------------------------------------------------------------------------------1205@ FIXME: LDRD(literal)1206@------------------------------------------------------------------------------1207 1208 1209@------------------------------------------------------------------------------1210@ LDREX/LDREXB/LDREXH/LDREXD1211@------------------------------------------------------------------------------1212 ldrex r1, [r4]1213 ldrex r8, [r4, #0]1214 ldrex r2, [sp, #128]1215 ldrexb r5, [r7]1216 ldrexh r9, [r12]1217 ldrexd r9, r3, [r4]1218 1219@ CHECK: ldrex r1, [r4] @ encoding: [0x54,0xe8,0x00,0x1f]1220@ CHECK: ldrex r8, [r4] @ encoding: [0x54,0xe8,0x00,0x8f]1221@ CHECK: ldrex r2, [sp, #128] @ encoding: [0x5d,0xe8,0x20,0x2f]1222@ CHECK: ldrexb r5, [r7] @ encoding: [0xd7,0xe8,0x4f,0x5f]1223@ CHECK: ldrexh r9, [r12] @ encoding: [0xdc,0xe8,0x5f,0x9f]1224@ CHECK: ldrexd r9, r3, [r4] @ encoding: [0xd4,0xe8,0x7f,0x93]1225 1226 1227@------------------------------------------------------------------------------1228@ LDRH(immediate)1229@------------------------------------------------------------------------------1230 ldrh r5, [r5, #-4]1231 ldrh r5, [r6, #32]1232 ldrh r5, [r6, #33]1233 ldrh r5, [r6, #257]1234 ldrh.w lr, [r7, #257]1235 ldrh r5, [r8, #255]!1236 ldrh r2, [r5, #4]!1237 ldrh r1, [r4, #-4]!1238 ldrh lr, [r3], #2551239 ldrh r9, [r2], #41240 ldrh r3, [sp], #-41241 ldrh.w r5, [r5, #-4]1242 ldrh.w r5, [r6, #32]1243 ldrh.w r5, [r8, #255]!1244 ldrh.w r9, [r2], #41245 1246@ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c]1247@ CHECK: ldrh r5, [r6, #32] @ encoding: [0x35,0x8c]1248@ CHECK: ldrh.w r5, [r6, #33] @ encoding: [0xb6,0xf8,0x21,0x50]1249@ CHECK: ldrh.w r5, [r6, #257] @ encoding: [0xb6,0xf8,0x01,0x51]1250@ CHECK: ldrh.w lr, [r7, #257] @ encoding: [0xb7,0xf8,0x01,0xe1]1251@ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f]1252@ CHECK: ldrh r2, [r5, #4]! @ encoding: [0x35,0xf8,0x04,0x2f]1253@ CHECK: ldrh r1, [r4, #-4]! @ encoding: [0x34,0xf8,0x04,0x1d]1254@ CHECK: ldrh lr, [r3], #255 @ encoding: [0x33,0xf8,0xff,0xeb]1255@ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b]1256@ CHECK: ldrh r3, [sp], #-4 @ encoding: [0x3d,0xf8,0x04,0x39]1257@ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c]1258@ CHECK: ldrh.w r5, [r6, #32] @ encoding: [0xb6,0xf8,0x20,0x50]1259@ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f]1260@ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b]1261 1262 1263@------------------------------------------------------------------------------1264@ LDRH(register)1265@------------------------------------------------------------------------------1266 ldrh r1, [r8, r1]1267 ldrh.w r4, [r5, r2]1268 ldrh r6, [r0, r2, lsl #3]1269 ldrh r8, [r8, r2, lsl #2]1270 ldrh r7, [sp, r2, lsl #1]1271 ldrh r7, [sp, r2, lsl #0]1272 1273@ CHECK: ldrh.w r1, [r8, r1] @ encoding: [0x38,0xf8,0x01,0x10]1274@ CHECK: ldrh.w r4, [r5, r2] @ encoding: [0x35,0xf8,0x02,0x40]1275@ CHECK: ldrh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf8,0x32,0x60]1276@ CHECK: ldrh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf8,0x22,0x80]1277@ CHECK: ldrh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf8,0x12,0x70]1278@ CHECK: ldrh.w r7, [sp, r2] @ encoding: [0x3d,0xf8,0x02,0x70]1279 1280 1281@------------------------------------------------------------------------------1282@ LDRH(literal)1283@------------------------------------------------------------------------------1284 ldrh r5, _bar1285 1286@ CHECK: ldrh.w r5, _bar @ encoding: [0x3f'A',0xf8'A',A,0x50'A']1287@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_121288@ CHECK-BE: ldrh.w r5, _bar @ encoding: [0xf8'A',0x3f'A',0x50'A',A]1289@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_121290 1291 1292@------------------------------------------------------------------------------1293@ LDRHT1294@------------------------------------------------------------------------------1295 ldrht r1, [r2]1296 ldrht r1, [r8, #0]1297 ldrht r1, [r8, #3]1298 ldrht r1, [r8, #255]1299 1300@ CHECK: ldrht r1, [r2] @ encoding: [0x32,0xf8,0x00,0x1e]1301@ CHECK: ldrht r1, [r8] @ encoding: [0x38,0xf8,0x00,0x1e]1302@ CHECK: ldrht r1, [r8, #3] @ encoding: [0x38,0xf8,0x03,0x1e]1303@ CHECK: ldrht r1, [r8, #255] @ encoding: [0x38,0xf8,0xff,0x1e]1304 1305 1306@------------------------------------------------------------------------------1307@ LDRSB(immediate)1308@------------------------------------------------------------------------------1309 ldrsb r5, [r5, #-4]1310 ldrsb r5, [r6, #32]1311 ldrsb r5, [r6, #33]1312 ldrsb r5, [r6, #257]1313 ldrsb.w lr, [r7, #257]1314 ldrsb r5, [r8, #255]!1315 ldrsb r2, [r5, #4]!1316 ldrsb r1, [r4, #-4]!1317 ldrsb lr, [r3], #2551318 ldrsb r9, [r2], #41319 ldrsb r3, [sp], #-41320 ldrsb.w r5, [r5, #-4]1321 ldrsb.w r5, [r6, #32]1322 ldrsb.w r5, [r8, #255]!1323 ldrsb.w r9, [r2], #41324 1325@ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c]1326@ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50]1327@ CHECK: ldrsb.w r5, [r6, #33] @ encoding: [0x96,0xf9,0x21,0x50]1328@ CHECK: ldrsb.w r5, [r6, #257] @ encoding: [0x96,0xf9,0x01,0x51]1329@ CHECK: ldrsb.w lr, [r7, #257] @ encoding: [0x97,0xf9,0x01,0xe1]1330@ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f]1331@ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f]1332@ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d]1333@ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb]1334@ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b]1335@ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39]1336@ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c]1337@ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50]1338@ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f]1339@ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b]1340 1341 1342@------------------------------------------------------------------------------1343@ LDRSB(register)1344@------------------------------------------------------------------------------1345 ldrsb r1, [r8, r1]1346 ldrsb.w r4, [r5, r2]1347 ldrsb r6, [r0, r2, lsl #3]1348 ldrsb r8, [r8, r2, lsl #2]1349 ldrsb r7, [sp, r2, lsl #1]1350 ldrsb r7, [sp, r2, lsl #0]1351 ldrsb r5, [r8, #255]!1352 ldrsb r2, [r5, #4]!1353 ldrsb r1, [r4, #-4]!1354 ldrsb lr, [r3], #2551355 ldrsb r9, [r2], #41356 ldrsb r3, [sp], #-41357 1358@ CHECK: ldrsb.w r1, [r8, r1] @ encoding: [0x18,0xf9,0x01,0x10]1359@ CHECK: ldrsb.w r4, [r5, r2] @ encoding: [0x15,0xf9,0x02,0x40]1360@ CHECK: ldrsb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0x60]1361@ CHECK: ldrsb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0x80]1362@ CHECK: ldrsb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0x70]1363@ CHECK: ldrsb.w r7, [sp, r2] @ encoding: [0x1d,0xf9,0x02,0x70]1364@ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f]1365@ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f]1366@ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d]1367@ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb]1368@ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b]1369@ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39]1370 1371 1372@------------------------------------------------------------------------------1373@ LDRSB(literal)1374@------------------------------------------------------------------------------1375 ldrsb r5, _bar1376 1377@ CHECK: ldrsb.w r5, _bar @ encoding: [0x1f'A',0xf9'A',A,0x50'A']1378@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_121379@ CHECK-BE: ldrsb.w r5, _bar @ encoding: [0xf9'A',0x1f'A',0x50'A',A]1380@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_121381 1382 1383@------------------------------------------------------------------------------1384@ LDRSBT1385@------------------------------------------------------------------------------1386 ldrsbt r1, [r2]1387 ldrsbt r1, [r8, #0]1388 ldrsbt r1, [r8, #3]1389 ldrsbt r1, [r8, #255]1390 1391@ CHECK: ldrsbt r1, [r2] @ encoding: [0x12,0xf9,0x00,0x1e]1392@ CHECK: ldrsbt r1, [r8] @ encoding: [0x18,0xf9,0x00,0x1e]1393@ CHECK: ldrsbt r1, [r8, #3] @ encoding: [0x18,0xf9,0x03,0x1e]1394@ CHECK: ldrsbt r1, [r8, #255] @ encoding: [0x18,0xf9,0xff,0x1e]1395 1396 1397@------------------------------------------------------------------------------1398@ LDRSH(immediate)1399@------------------------------------------------------------------------------1400 ldrsh r5, [r5, #-4]1401 ldrsh r5, [r6, #32]1402 ldrsh r5, [r6, #33]1403 ldrsh r5, [r6, #257]1404 ldrsh.w lr, [r7, #257]1405 ldrsh r5, [r8, #255]!1406 ldrsh r2, [r5, #4]!1407 ldrsh r1, [r4, #-4]!1408 ldrsh lr, [r3], #2551409 ldrsh r9, [r2], #41410 ldrsh r3, [sp], #-41411 ldrsh.w r5, [r5, #-4]1412 ldrsh.w r5, [r6, #32]1413 ldrsh.w r5, [r8, #255]!1414 ldrsh.w r9, [r2], #41415 1416@ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c]1417@ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50]1418@ CHECK: ldrsh.w r5, [r6, #33] @ encoding: [0xb6,0xf9,0x21,0x50]1419@ CHECK: ldrsh.w r5, [r6, #257] @ encoding: [0xb6,0xf9,0x01,0x51]1420@ CHECK: ldrsh.w lr, [r7, #257] @ encoding: [0xb7,0xf9,0x01,0xe1]1421@ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f]1422@ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f]1423@ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d]1424@ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb]1425@ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b]1426@ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39]1427@ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c]1428@ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50]1429@ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f]1430@ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b]1431 1432 1433@------------------------------------------------------------------------------1434@ LDRSH(register)1435@------------------------------------------------------------------------------1436 ldrsh r1, [r8, r1]1437 ldrsh.w r4, [r5, r2]1438 ldrsh r6, [r0, r2, lsl #3]1439 ldrsh r8, [r8, r2, lsl #2]1440 ldrsh r7, [sp, r2, lsl #1]1441 ldrsh r7, [sp, r2, lsl #0]1442 ldrsh r5, [r8, #255]!1443 ldrsh r2, [r5, #4]!1444 ldrsh r1, [r4, #-4]!1445 ldrsh lr, [r3], #2551446 ldrsh r9, [r2], #41447 ldrsh r3, [sp], #-41448 1449@ CHECK: ldrsh.w r1, [r8, r1] @ encoding: [0x38,0xf9,0x01,0x10]1450@ CHECK: ldrsh.w r4, [r5, r2] @ encoding: [0x35,0xf9,0x02,0x40]1451@ CHECK: ldrsh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf9,0x32,0x60]1452@ CHECK: ldrsh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf9,0x22,0x80]1453@ CHECK: ldrsh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf9,0x12,0x70]1454@ CHECK: ldrsh.w r7, [sp, r2] @ encoding: [0x3d,0xf9,0x02,0x70]1455@ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f]1456@ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f]1457@ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d]1458@ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb]1459@ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b]1460@ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39]1461 1462 1463@------------------------------------------------------------------------------1464@ LDRSH(literal)1465@------------------------------------------------------------------------------1466 ldrsh r5, _bar1467 1468@ CHECK: ldrsh.w r5, _bar @ encoding: [0x3f'A',0xf9'A',A,0x50'A']1469@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_121470@ CHECK-BE: ldrsh.w r5, _bar @ encoding: [0xf9'A',0x3f'A',0x50'A',A]1471@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_121472 1473@ TEMPORARILY DISABLED:1474@ ldrsh.w r4, [pc, #1435]1475@ : ldrsh.w r4, [pc, #1435] @ encoding: [0x3f,0xf9,0x9b,0x45]1476 1477@------------------------------------------------------------------------------1478@ LDRSHT1479@------------------------------------------------------------------------------1480 ldrsht r1, [r2]1481 ldrsht r1, [r8, #0]1482 ldrsht r1, [r8, #3]1483 ldrsht r1, [r8, #255]1484 1485@ CHECK: ldrsht r1, [r2] @ encoding: [0x32,0xf9,0x00,0x1e]1486@ CHECK: ldrsht r1, [r8] @ encoding: [0x38,0xf9,0x00,0x1e]1487@ CHECK: ldrsht r1, [r8, #3] @ encoding: [0x38,0xf9,0x03,0x1e]1488@ CHECK: ldrsht r1, [r8, #255] @ encoding: [0x38,0xf9,0xff,0x1e]1489 1490 1491@------------------------------------------------------------------------------1492@ LDRT1493@------------------------------------------------------------------------------1494 ldrt r1, [r2]1495 ldrt r2, [r6, #0]1496 ldrt r3, [r7, #3]1497 ldrt r4, [r9, #255]1498 1499@ CHECK: ldrt r1, [r2] @ encoding: [0x52,0xf8,0x00,0x1e]1500@ CHECK: ldrt r2, [r6] @ encoding: [0x56,0xf8,0x00,0x2e]1501@ CHECK: ldrt r3, [r7, #3] @ encoding: [0x57,0xf8,0x03,0x3e]1502@ CHECK: ldrt r4, [r9, #255] @ encoding: [0x59,0xf8,0xff,0x4e]1503 1504 1505@------------------------------------------------------------------------------1506@ LSL (immediate)1507@------------------------------------------------------------------------------1508 lsl r2, r3, #121509 lsls r8, r3, #311510 lsls.w r2, r3, #11511 lsl r2, r3, #41512 lsls r2, r12, #151513 1514 lsl r3, #191515 lsls r8, #21516 lsls.w r7, #51517 lsl.w r12, #211518 1519 lsls r1, r2, #11520 itt eq1521 lslseq r1, r2, #11522 lsleq r1, r2, #11523 1524@ CHECK: lsl.w r2, r3, #12 @ encoding: [0x4f,0xea,0x03,0x32]1525@ CHECK: lsls.w r8, r3, #31 @ encoding: [0x5f,0xea,0xc3,0x78]1526@ CHECK: lsls.w r2, r3, #1 @ encoding: [0x5f,0xea,0x43,0x02]1527@ CHECK: lsl.w r2, r3, #4 @ encoding: [0x4f,0xea,0x03,0x12]1528@ CHECK: lsls.w r2, r12, #15 @ encoding: [0x5f,0xea,0xcc,0x32]1529 1530@ CHECK: lsl.w r3, r3, #19 @ encoding: [0x4f,0xea,0xc3,0x43]1531@ CHECK: lsls.w r8, r8, #2 @ encoding: [0x5f,0xea,0x88,0x08]1532@ CHECK: lsls.w r7, r7, #5 @ encoding: [0x5f,0xea,0x47,0x17]1533@ CHECK: lsl.w r12, r12, #21 @ encoding: [0x4f,0xea,0x4c,0x5c]1534 1535@ CHECK: lsls r1, r2, #1 @ encoding: [0x51,0x00]1536@ CHECK: itt eq @ encoding: [0x04,0xbf]1537@ CHECK: lslseq.w r1, r2, #1 @ encoding: [0x5f,0xea,0x42,0x01]1538@ CHECK: lsleq r1, r2, #1 @ encoding: [0x51,0x00]1539 1540@------------------------------------------------------------------------------1541@ LSL (register)1542@------------------------------------------------------------------------------1543 lsl r3, r4, r21544 lsl.w r1, r21545 lsls r3, r4, r81546 1547@ CHECK: lsl.w r3, r4, r2 @ encoding: [0x04,0xfa,0x02,0xf3]1548@ CHECK: lsl.w r1, r1, r2 @ encoding: [0x01,0xfa,0x02,0xf1]1549@ CHECK: lsls.w r3, r4, r8 @ encoding: [0x14,0xfa,0x08,0xf3]1550 1551 1552@------------------------------------------------------------------------------1553@ LSR (immediate)1554@------------------------------------------------------------------------------1555 lsr r2, r3, #121556 lsrs r8, r3, #321557 lsrs.w r2, r3, #11558 lsr r2, r3, #41559 lsrs r2, r12, #151560 1561 lsr r3, #191562 lsrs r8, #21563 lsrs.w r7, #51564 lsr.w r12, #211565 1566 lsrs r1, r2, #11567 itt eq1568 lsrseq r1, r2, #11569 lsreq r1, r2, #11570 1571@ CHECK: lsr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x13,0x32]1572@ CHECK: lsrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x13,0x08]1573@ CHECK: lsrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x53,0x02]1574@ CHECK: lsr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x13,0x12]1575@ CHECK: lsrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xdc,0x32]1576 1577@ CHECK: lsr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xd3,0x43]1578@ CHECK: lsrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0x98,0x08]1579@ CHECK: lsrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x57,0x17]1580@ CHECK: lsr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x5c,0x5c]1581 1582@ CHECK: lsrs r1, r2, #1 @ encoding: [0x51,0x08]1583@ CHECK: itt eq @ encoding: [0x04,0xbf]1584@ CHECK: lsrseq.w r1, r2, #1 @ encoding: [0x5f,0xea,0x52,0x01]1585@ CHECK: lsreq r1, r2, #1 @ encoding: [0x51,0x08]1586 1587@------------------------------------------------------------------------------1588@ LSR (register)1589@------------------------------------------------------------------------------1590 lsr r3, r4, r21591 lsr.w r1, r21592 lsrs r3, r4, r81593 1594@ CHECK: lsr.w r3, r4, r2 @ encoding: [0x24,0xfa,0x02,0xf3]1595@ CHECK: lsr.w r1, r1, r2 @ encoding: [0x21,0xfa,0x02,0xf1]1596@ CHECK: lsrs.w r3, r4, r8 @ encoding: [0x34,0xfa,0x08,0xf3]1597 1598@------------------------------------------------------------------------------1599@ MCR/MCR21600@------------------------------------------------------------------------------1601 mcr p7, #1, r5, c1, c1, #41602 mcr2 p7, #1, r5, c1, c1, #41603 mcr p14, #0, r4, c0, c51604 mcr2 p4, #2, r2, c1, c31605 MCR P7, #1, R5, C1, C1, #41606 MCR2 P7, #1, R5, C1, C1, #41607 MCR P14, #0, R4, C0, C51608 MCR2 P4, #2, R2, C1, C31609 1610@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57]1611@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]1612@ CHECK: mcr p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e]1613@ CHECK: mcr2 p4, #2, r2, c1, c3, #0 @ encoding: [0x41,0xfe,0x13,0x24]1614@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57]1615@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]1616@ CHECK: mcr p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e]1617@ CHECK: mcr2 p4, #2, r2, c1, c3, #0 @ encoding: [0x41,0xfe,0x13,0x24]1618 1619 1620@------------------------------------------------------------------------------1621@ MCRR/MCRR21622@------------------------------------------------------------------------------1623 mcrr p7, #15, r5, r4, c11624 mcrr2 p7, #15, r5, r4, c11625 MCRR P7, #15, R5, R4, C11626 MCRR2 P7, #15, R5, R4, C11627 1628@ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57]1629@ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57]1630@ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57]1631@ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57]1632 1633 1634@------------------------------------------------------------------------------1635@ MLA/MLS1636@------------------------------------------------------------------------------1637 mla r1,r2,r3,r41638 mls r1,r2,r3,r41639 1640@ CHECK: mla r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x03,0x41]1641@ CHECK: mls r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x13,0x41]1642 1643 1644@------------------------------------------------------------------------------1645@ MOV(immediate)1646@------------------------------------------------------------------------------1647 movs r1, #211648 movs.w r1, #211649 movs r8, #211650 movw r0, #655351651 movw r1, #437771652 movw r1, #437921653 mov.w r0, #0x3fc00001654 mov r0, #0x3fc00001655 movs.w r0, #0x3fc00001656 itte eq1657 movseq r1, #121658 moveq r1, #121659 movne.w r1, #121660 mov.w r6, #4501661 it lo1662 movlo r1, #-11663 1664 @ alias for mvn1665 mov r3, #-31666 mov r11, #0xabcd1667 movs r0, #11668 it ne1669 movne r3, #151670 1671 itt eq1672 moveq r0, #2551673 moveq r1, #2561674 1675@ CHECK: movs r1, #21 @ encoding: [0x15,0x21]1676@ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01]1677@ CHECK: movs.w r8, #21 @ encoding: [0x5f,0xf0,0x15,0x08]1678@ CHECK: movw r0, #65535 @ encoding: [0x4f,0xf6,0xff,0x70]1679@ CHECK: movw r1, #43777 @ encoding: [0x4a,0xf6,0x01,0x31]1680@ CHECK: movw r1, #43792 @ encoding: [0x4a,0xf6,0x10,0x31]1681@ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70]1682@ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70]1683@ CHECK: movs.w r0, #66846720 @ encoding: [0x5f,0xf0,0x7f,0x70]1684@ CHECK: itte eq @ encoding: [0x06,0xbf]1685@ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01]1686@ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21]1687@ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01]1688@ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76]1689@ CHECK: it lo @ encoding: [0x38,0xbf]1690@ CHECK: movlo.w r1, #-1 @ encoding: [0x4f,0xf0,0xff,0x31]1691@ CHECK: mvn r3, #2 @ encoding: [0x6f,0xf0,0x02,0x03]1692@ CHECK: movw r11, #43981 @ encoding: [0x4a,0xf6,0xcd,0x3b]1693@ CHECK: movs r0, #1 @ encoding: [0x01,0x20]1694@ CHECK: it ne @ encoding: [0x18,0xbf]1695@ CHECK: movne r3, #15 @ encoding: [0x0f,0x23]1696 1697@ CHECK: itt eq @ encoding: [0x04,0xbf]1698@ CHECK: moveq r0, #255 @ encoding: [0xff,0x20]1699@ CHECK: movweq r1, #256 @ encoding: [0x40,0xf2,0x00,0x11]1700 1701@------------------------------------------------------------------------------1702@ MOV(shifted register)1703@------------------------------------------------------------------------------1704 mov r6, r2, lsl #161705 mov.w r6, r2, lsl #161706 mov r6, r2, lsr #161707 mov.w r6, r2, lsr #161708 movs r6, r2, asr #321709 movs.w r6, r2, asr #321710 movs r6, r2, ror #51711 movs.w r6, r2, ror #51712 movs r4, r4, lsl r51713 movs.w r4, r4, lsl r51714 movs r4, r4, lsr r51715 movs.w r4, r4, lsr r51716 movs r4, r4, asr r51717 movs.w r4, r4, asr r51718 movs r4, r4, ror r51719 movs.w r4, r4, ror r51720 mov r4, r4, lsl r51721 movs r4, r4, ror r81722 movs r4, r5, lsr r61723 itttt eq1724 moveq r4, r4, lsl r51725 moveq r4, r4, lsr r51726 moveq r4, r4, asr r51727 moveq r4, r4, ror r51728 mov r4, r4, rrx1729 1730@ CHECK: lsl.w r6, r2, #16 @ encoding: [0x4f,0xea,0x02,0x46]1731@ CHECK: lsl.w r6, r2, #16 @ encoding: [0x4f,0xea,0x02,0x46]1732@ CHECK: lsr.w r6, r2, #16 @ encoding: [0x4f,0xea,0x12,0x46]1733@ CHECK: lsr.w r6, r2, #16 @ encoding: [0x4f,0xea,0x12,0x46]1734@ CHECK: asrs r6, r2, #32 @ encoding: [0x16,0x10]1735@ CHECK: asrs.w r6, r2, #32 @ encoding: [0x5f,0xea,0x22,0x06]1736@ CHECK: rors.w r6, r2, #5 @ encoding: [0x5f,0xea,0x72,0x16]1737@ CHECK: rors.w r6, r2, #5 @ encoding: [0x5f,0xea,0x72,0x16]1738@ CHECK: lsls r4, r5 @ encoding: [0xac,0x40]1739@ CHECK: lsls.w r4, r4, r5 @ encoding: [0x14,0xfa,0x05,0xf4]1740@ CHECK: lsrs r4, r5 @ encoding: [0xec,0x40]1741@ CHECK: lsrs.w r4, r4, r5 @ encoding: [0x34,0xfa,0x05,0xf4]1742@ CHECK: asrs r4, r5 @ encoding: [0x2c,0x41]1743@ CHECK: asrs.w r4, r4, r5 @ encoding: [0x54,0xfa,0x05,0xf4]1744@ CHECK: rors r4, r5 @ encoding: [0xec,0x41]1745@ CHECK: rors.w r4, r4, r5 @ encoding: [0x74,0xfa,0x05,0xf4]1746@ CHECK: lsl.w r4, r4, r5 @ encoding: [0x04,0xfa,0x05,0xf4]1747@ CHECK: rors.w r4, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf4]1748@ CHECK: lsrs.w r4, r5, r6 @ encoding: [0x35,0xfa,0x06,0xf4]1749@ CHECK: itttt eq @ encoding: [0x01,0xbf]1750@ CHECK: lsleq r4, r5 @ encoding: [0xac,0x40]1751@ CHECK: lsreq r4, r5 @ encoding: [0xec,0x40]1752@ CHECK: asreq r4, r5 @ encoding: [0x2c,0x41]1753@ CHECK: roreq r4, r5 @ encoding: [0xec,0x41]1754@ CHECK: rrx r4, r4 @ encoding: [0x4f,0xea,0x34,0x04]1755 1756 1757@------------------------------------------------------------------------------1758@ MOVT1759@------------------------------------------------------------------------------1760 movt r3, #71761 movt r6, #0xffff1762 it eq1763 movteq r4, #0xff01764 1765@ CHECK: movt r3, #7 @ encoding: [0xc0,0xf2,0x07,0x03]1766@ CHECK: movt r6, #65535 @ encoding: [0xcf,0xf6,0xff,0x76]1767@ CHECK: it eq @ encoding: [0x08,0xbf]1768@ CHECK: movteq r4, #4080 @ encoding: [0xc0,0xf6,0xf0,0x74]1769 1770@------------------------------------------------------------------------------1771@ MRC/MRC21772@------------------------------------------------------------------------------1773 mrc p14, #0, r1, c1, c2, #41774 mrc p15, #7, apsr_nzcv, c15, c6, #61775 mrc p9, #1, r1, c2, c21776 mrc2 p12, #3, r3, c3, c41777 mrc2 p14, #0, r1, c1, c2, #41778 mrc2 p8, #7, apsr_nzcv, c15, c0, #11779 MRC P14, #0, R1, C1, C2, #41780 MRC P15, #7, APSR_NZCV, C15, C6, #61781 MRC P9, #1, R1, C2, C21782 MRC2 P12, #3, R3, C3, C41783 MRC2 P14, #0, R1, C1, C2, #41784 MRC2 P8, #7, APSR_NZCV, C15, C0, #11785 1786@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e]1787@ CHECK: mrc p15, #7, apsr_nzcv, c15, c6, #6 @ encoding: [0xff,0xee,0xd6,0xff]1788@ CHECK: mrc p9, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x19]1789@ CHECK: mrc2 p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c]1790@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]1791@ CHECK: mrc2 p8, #7, apsr_nzcv, c15, c0, #1 @ encoding: [0xff,0xfe,0x30,0xf8]1792@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e]1793@ CHECK: mrc p15, #7, apsr_nzcv, c15, c6, #6 @ encoding: [0xff,0xee,0xd6,0xff]1794@ CHECK: mrc p9, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x19]1795@ CHECK: mrc2 p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c]1796@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]1797@ CHECK: mrc2 p8, #7, apsr_nzcv, c15, c0, #1 @ encoding: [0xff,0xfe,0x30,0xf8]1798 1799@------------------------------------------------------------------------------1800@ MRRC/MRRC21801@------------------------------------------------------------------------------1802 mrrc p7, #1, r5, r4, c11803 mrrc2 p7, #1, r5, r4, c11804 MRRC P7, #1, R5, R4, C11805 MRRC2 P7, #1, R5, R4, C11806 1807@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57]1808@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]1809@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57]1810@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]1811 1812 1813@------------------------------------------------------------------------------1814@ MRS1815@------------------------------------------------------------------------------1816 mrs r8, apsr1817 mrs r8, cpsr1818 mrs r8, spsr1819 1820@ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88]1821@ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88]1822@ CHECK: mrs r8, spsr @ encoding: [0xff,0xf3,0x00,0x88]1823 1824 1825@------------------------------------------------------------------------------1826@ MSR1827@------------------------------------------------------------------------------1828 msr apsr, r11829 msr apsr_g, r21830 msr apsr_nzcvq, r31831 msr APSR_nzcvq, r41832 msr apsr_nzcvqg, r51833 msr cpsr_fc, r61834 msr cpsr_c, r71835 msr cpsr_x, r81836 msr cpsr_fc, r91837 msr cpsr_all, r111838 msr cpsr_fsx, r121839 msr spsr_fc, r01840 msr SPSR_fsxc, r51841 msr cpsr_fsxc, r81842 msr cpsr, r31843 1844@ CHECK: msr APSR_nzcvq, r1 @ encoding: [0x81,0xf3,0x00,0x88]1845@ CHECK: msr APSR_g, r2 @ encoding: [0x82,0xf3,0x00,0x84]1846@ CHECK: msr APSR_nzcvq, r3 @ encoding: [0x83,0xf3,0x00,0x88]1847@ CHECK: msr APSR_nzcvq, r4 @ encoding: [0x84,0xf3,0x00,0x88]1848@ CHECK: msr APSR_nzcvqg, r5 @ encoding: [0x85,0xf3,0x00,0x8c]1849@ CHECK: msr CPSR_fc, r6 @ encoding: [0x86,0xf3,0x00,0x89]1850@ CHECK: msr CPSR_c, r7 @ encoding: [0x87,0xf3,0x00,0x81]1851@ CHECK: msr CPSR_x, r8 @ encoding: [0x88,0xf3,0x00,0x82]1852@ CHECK: msr CPSR_fc, r9 @ encoding: [0x89,0xf3,0x00,0x89]1853@ CHECK: msr CPSR_fc, r11 @ encoding: [0x8b,0xf3,0x00,0x89]1854@ CHECK: msr CPSR_fsx, r12 @ encoding: [0x8c,0xf3,0x00,0x8e]1855@ CHECK: msr SPSR_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89]1856@ CHECK: msr SPSR_fsxc, r5 @ encoding: [0x95,0xf3,0x00,0x8f]1857@ CHECK: msr CPSR_fsxc, r8 @ encoding: [0x88,0xf3,0x00,0x8f]1858@ CHECK: msr CPSR_fc, r3 @ encoding: [0x83,0xf3,0x00,0x89]1859 1860 1861@------------------------------------------------------------------------------1862@ MUL1863@------------------------------------------------------------------------------1864 muls r3, r4, r31865 mul r3, r4, r31866 mul r3, r4, r61867 it eq1868 muleq r3, r4, r51869 it le1870 mulle r4, r4, r81871 mul r5, r61872 1873@ CHECK: muls r3, r4, r3 @ encoding: [0x63,0x43]1874@ CHECK: mul r3, r4, r3 @ encoding: [0x04,0xfb,0x03,0xf3]1875@ CHECK: mul r3, r4, r6 @ encoding: [0x04,0xfb,0x06,0xf3]1876@ CHECK: it eq @ encoding: [0x08,0xbf]1877@ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3]1878@ CHECK: it le @ encoding: [0xd8,0xbf]1879@ CHECK: mulle r4, r4, r8 @ encoding: [0x04,0xfb,0x08,0xf4]1880@ CHECK: mul r5, r6, r5 @ encoding: [0x06,0xfb,0x05,0xf5]1881 1882 1883@------------------------------------------------------------------------------1884@ MVN(immediate)1885@------------------------------------------------------------------------------1886 mvns r8, #211887 mvn r0, #0x3fc00001888 mvns r0, #0x3fc00001889 itte eq1890 mvnseq r1, #121891 mvneq.w r1, #121892 mvnne r1, #121893 1894@ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08]1895@ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70]1896@ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70]1897@ CHECK: itte eq @ encoding: [0x06,0xbf]1898@ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01]1899@ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]1900@ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]1901 1902 1903@------------------------------------------------------------------------------1904@ MVN(register)1905@------------------------------------------------------------------------------1906 mvn r2, r31907 mvns r2, r31908 mvn r5, r6, lsl #191909 mvn r5, r6, lsr #91910 mvn.w r5, r6, asr #41911 mvn r5, r6, ror #61912 mvn r5, r6, rrx1913 it eq1914 mvneq r2, r31915 1916@ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02]1917@ CHECK: mvns r2, r3 @ encoding: [0xda,0x43]1918@ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45]1919@ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25]1920@ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15]1921@ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15]1922@ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05]1923@ CHECK: it eq @ encoding: [0x08,0xbf]1924@ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43]1925 1926@------------------------------------------------------------------------------1927@ NEG1928@------------------------------------------------------------------------------1929 neg r5, r21930 neg r5, r81931 1932@ CHECK: rsb.w r5, r2, #0 @ encoding: [0xc2,0xf1,0x00,0x05]1933@ CHECK: rsb.w r5, r8, #0 @ encoding: [0xc8,0xf1,0x00,0x05]1934 1935 1936@------------------------------------------------------------------------------1937@ NOP1938@------------------------------------------------------------------------------1939 nop.w1940 1941@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]1942 1943 1944@------------------------------------------------------------------------------1945@ ORN1946@------------------------------------------------------------------------------1947 orn r4, r5, #0xf0001948 orn.w r4, r5, #0xf0001949 orn r4, r5, r61950 orn.w r4, r5, r61951 orns r4, r5, r61952 orns.w r4, r5, r61953 orn r4, r5, r6, lsl #51954 orn.w r4, r5, r6, lsl #51955 orns r4, r5, r6, lsr #51956 orn r4, r5, r6, lsr #51957 orns r4, r5, r6, asr #51958 orn r4, r5, r6, ror #51959 1960@ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44]1961@ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44]1962@ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04]1963@ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04]1964@ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04]1965@ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04]1966@ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14]1967@ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14]1968@ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14]1969@ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14]1970@ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14]1971@ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14]1972 1973 1974@------------------------------------------------------------------------------1975@ ORR1976@------------------------------------------------------------------------------1977 orr r4, r5, #0xf0001978 orr r4, r5, r61979 orr r4, r5, r6, lsl #51980 orrs r4, r5, r6, lsr #51981 orr r4, r5, r6, lsr #51982 orrs r4, r5, r6, asr #51983 orr r4, r5, r6, ror #51984 1985@ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44]1986@ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04]1987@ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14]1988@ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14]1989@ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14]1990@ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14]1991@ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14]1992 1993 1994@------------------------------------------------------------------------------1995@ PKH1996@------------------------------------------------------------------------------1997 pkhbt r2, r2, r31998 pkhbt r2, r2, r3, lsl #311999 pkhbt r2, r2, r3, lsl #02000 pkhbt r2, r2, r3, lsl #152001 2002 pkhtb r2, r2, r32003 pkhtb r2, r2, r3, asr #312004 pkhtb r2, r2, r3, asr #152005 2006@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]2007@ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72]2008@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]2009@ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32]2010 2011@ CHECK: pkhbt r2, r3, r2 @ encoding: [0xc3,0xea,0x02,0x02]2012@ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72]2013@ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32]2014 2015 2016@------------------------------------------------------------------------------2017@ PLD(immediate)2018@------------------------------------------------------------------------------2019 pld [r5, #-4]2020 pld [r6, #32]2021 pld [r6, #33]2022 pld [r6, #257]2023 pld [r7, #257]2024 pld [r1, #0]2025 pld [r1, #-0]2026 pld.w [r1, #-0]2027 2028@ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc]2029@ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0]2030@ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0]2031@ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1]2032@ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1]2033@ CHECK: pld [r1] @ encoding: [0x91,0xf8,0x00,0xf0]2034@ CHECK: pld [r1, #-0] @ encoding: [0x11,0xf8,0x00,0xfc]2035@ CHECK: pld [r1, #-0] @ encoding: [0x11,0xf8,0x00,0xfc]2036 2037 2038@------------------------------------------------------------------------------2039@ PLD(literal)2040@------------------------------------------------------------------------------2041@ pld _foo2042 2043@ FIXME: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A']2044 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_122045 2046 pld [pc,#-4095]2047 pld.w [pc,#-4095]2048@ CHECK: pld [pc, #-4095] @ encoding: [0x1f,0xf8,0xff,0xff]2049@ CHECK: pld [pc, #-4095] @ encoding: [0x1f,0xf8,0xff,0xff]2050 2051 2052@------------------------------------------------------------------------------2053@ PLD(register)2054@------------------------------------------------------------------------------2055 pld [r8, r1]2056 pld [r5, r2]2057 pld.w [r5, r2]2058 pld [r0, r2, lsl #3]2059 pld [r8, r2, lsl #2]2060 pld [sp, r2, lsl #1]2061 pld [sp, r2, lsl #0]2062 pld.w [sp, r2, lsl #1]2063 2064@ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0]2065@ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0]2066@ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0]2067@ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0]2068@ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0]2069@ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0]2070@ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0]2071@ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0]2072 2073@------------------------------------------------------------------------------2074@ PLI(immediate)2075@------------------------------------------------------------------------------2076 pli [r5, #-4]2077 pli [r6, #32]2078 pli [r6, #33]2079 pli [r6, #257]2080 pli [r7, #257]2081 pli [pc, #+4095]2082 pli [pc, #-4095]2083 pli.w [pc, #-4095]2084 2085@ CHECK: pli [r5, #-4] @ encoding: [0x15,0xf9,0x04,0xfc]2086@ CHECK: pli [r6, #32] @ encoding: [0x96,0xf9,0x20,0xf0]2087@ CHECK: pli [r6, #33] @ encoding: [0x96,0xf9,0x21,0xf0]2088@ CHECK: pli [r6, #257] @ encoding: [0x96,0xf9,0x01,0xf1]2089@ CHECK: pli [r7, #257] @ encoding: [0x97,0xf9,0x01,0xf1]2090@ CHECK: pli [pc, #4095] @ encoding: [0x9f,0xf9,0xff,0xff]2091@ CHECK: pli [pc, #-4095] @ encoding: [0x1f,0xf9,0xff,0xff]2092@ CHECK: pli [pc, #-4095] @ encoding: [0x1f,0xf9,0xff,0xff]2093 2094 2095@------------------------------------------------------------------------------2096@ PLI(literal)2097@------------------------------------------------------------------------------2098@ pli _foo2099 2100 2101@ FIXME: pli _foo @ encoding: [0x9f'A',0xf9'A',A,0xf0'A']2102 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_122103 2104 2105@------------------------------------------------------------------------------2106@ PLI(register)2107@------------------------------------------------------------------------------2108 pli [r8, r1]2109 pli [r5, r2]2110 pli.w [r5, r2]2111 pli [r0, r2, lsl #3]2112 pli [r8, r2, lsl #2]2113 pli [sp, r2, lsl #1]2114 pli [sp, r2, lsl #0]2115 pli.w [sp, r2, lsl #1]2116 2117@ CHECK: pli [r8, r1] @ encoding: [0x18,0xf9,0x01,0xf0]2118@ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0]2119@ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0]2120@ CHECK: pli [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0xf0]2121@ CHECK: pli [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0xf0]2122@ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0]2123@ CHECK: pli [sp, r2] @ encoding: [0x1d,0xf9,0x02,0xf0]2124@ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0]2125 2126@------------------------------------------------------------------------------2127@ POP (alias)2128@------------------------------------------------------------------------------2129 pop {r2, r9}2130 2131@ CHECK: pop.w {r2, r9} @ encoding: [0xbd,0xe8,0x04,0x02]2132 2133 2134@------------------------------------------------------------------------------2135@ PUSH (alias)2136@------------------------------------------------------------------------------2137 push {r2, r9}2138 2139@ CHECK: push.w {r2, r9} @ encoding: [0x2d,0xe9,0x04,0x02]2140 2141 2142@------------------------------------------------------------------------------2143@ QADD/QADD16/QADD82144@------------------------------------------------------------------------------2145 qadd r1, r2, r32146 qadd16 r1, r2, r32147 qadd8 r1, r2, r32148 itte gt2149 qaddgt r1, r2, r32150 qadd16gt r1, r2, r32151 qadd8le r1, r2, r32152 2153@ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]2154@ CHECK: qadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1]2155@ CHECK: qadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1]2156@ CHECK: itte gt @ encoding: [0xc6,0xbf]2157@ CHECK: qaddgt r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]2158@ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1]2159@ CHECK: qadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1]2160 2161 2162@------------------------------------------------------------------------------2163@ QDADD/QDSUB2164@------------------------------------------------------------------------------2165 qdadd r6, r7, r82166 qdsub r6, r7, r82167 itt hi2168 qdaddhi r6, r7, r82169 qdsubhi r6, r7, r82170 2171@ CHECK: qdadd r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6]2172@ CHECK: qdsub r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6]2173@ CHECK: itt hi @ encoding: [0x84,0xbf]2174@ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6]2175@ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6]2176 2177 2178@------------------------------------------------------------------------------2179@ QSAX2180@------------------------------------------------------------------------------2181 qsax r9, r12, r02182 it eq2183 qsaxeq r9, r12, r02184 2185@ CHECK: qsax r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9]2186@ CHECK: it eq @ encoding: [0x08,0xbf]2187@ CHECK: qsaxeq r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9]2188 2189 2190@------------------------------------------------------------------------------2191@ QSUB/QSUB16/QSUB82192@------------------------------------------------------------------------------2193 qsub r1, r2, r32194 qsub16 r1, r2, r32195 qsub8 r1, r2, r32196 itet le2197 qsuble r1, r2, r32198 qsub16gt r1, r2, r32199 qsub8le r1, r2, r32200 2201@ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]2202@ CHECK: qsub16 r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1]2203@ CHECK: qsub8 r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1]2204@ CHECK: itet le @ encoding: [0xd6,0xbf]2205@ CHECK: qsuble r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]2206@ CHECK: qsub16gt r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1]2207@ CHECK: qsub8le r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1]2208 2209 2210@------------------------------------------------------------------------------2211@ RBIT2212@------------------------------------------------------------------------------2213 rbit r1, r22214 it ne2215 rbitne r1, r22216 2217@ CHECK: rbit r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1]2218@ CHECK: it ne @ encoding: [0x18,0xbf]2219@ CHECK: rbitne r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1]2220 2221 2222@------------------------------------------------------------------------------2223@ REV2224@------------------------------------------------------------------------------2225 rev.w r1, r22226 rev r2, r82227 itt ne2228 revne r1, r22229 revne r1, r82230 2231@ CHECK: rev.w r1, r2 @ encoding: [0x92,0xfa,0x82,0xf1]2232@ CHECK: rev.w r2, r8 @ encoding: [0x98,0xfa,0x88,0xf2]2233@ CHECK: itt ne @ encoding: [0x1c,0xbf]2234@ CHECK: revne r1, r2 @ encoding: [0x11,0xba]2235@ CHECK: revne.w r1, r8 @ encoding: [0x98,0xfa,0x88,0xf1]2236 2237 2238@------------------------------------------------------------------------------2239@ REV162240@------------------------------------------------------------------------------2241 rev16.w r1, r22242 rev16 r2, r82243 itt ne2244 rev16ne r1, r22245 rev16ne r1, r82246 2247@ CHECK: rev16.w r1, r2 @ encoding: [0x92,0xfa,0x92,0xf1]2248@ CHECK: rev16.w r2, r8 @ encoding: [0x98,0xfa,0x98,0xf2]2249@ CHECK: itt ne @ encoding: [0x1c,0xbf]2250@ CHECK: rev16ne r1, r2 @ encoding: [0x51,0xba]2251@ CHECK: rev16ne.w r1, r8 @ encoding: [0x98,0xfa,0x98,0xf1]2252 2253 2254@------------------------------------------------------------------------------2255@ REVSH2256@------------------------------------------------------------------------------2257 revsh.w r1, r22258 revsh r2, r82259 itt ne2260 revshne r1, r22261 revshne r1, r82262 2263@ CHECK: revsh.w r1, r2 @ encoding: [0x92,0xfa,0xb2,0xf1]2264@ CHECK: revsh.w r2, r8 @ encoding: [0x98,0xfa,0xb8,0xf2]2265@ CHECK: itt ne @ encoding: [0x1c,0xbf]2266@ CHECK: revshne r1, r2 @ encoding: [0xd1,0xba]2267@ CHECK: revshne.w r1, r8 @ encoding: [0x98,0xfa,0xb8,0xf1]2268 2269 2270@------------------------------------------------------------------------------2271@ ROR (immediate)2272@------------------------------------------------------------------------------2273 ror r2, r3, #122274 rors r8, r3, #312275 rors.w r2, r3, #12276 ror r2, r3, #42277 rors r2, r12, #152278 2279 ror r3, #192280 rors r8, #22281 rors.w r7, #52282 ror.w r12, #212283 2284@ CHECK: ror.w r2, r3, #12 @ encoding: [0x4f,0xea,0x33,0x32]2285@ CHECK: rors.w r8, r3, #31 @ encoding: [0x5f,0xea,0xf3,0x78]2286@ CHECK: rors.w r2, r3, #1 @ encoding: [0x5f,0xea,0x73,0x02]2287@ CHECK: ror.w r2, r3, #4 @ encoding: [0x4f,0xea,0x33,0x12]2288@ CHECK: rors.w r2, r12, #15 @ encoding: [0x5f,0xea,0xfc,0x32]2289 2290@ CHECK: ror.w r3, r3, #19 @ encoding: [0x4f,0xea,0xf3,0x43]2291@ CHECK: rors.w r8, r8, #2 @ encoding: [0x5f,0xea,0xb8,0x08]2292@ CHECK: rors.w r7, r7, #5 @ encoding: [0x5f,0xea,0x77,0x17]2293@ CHECK: ror.w r12, r12, #21 @ encoding: [0x4f,0xea,0x7c,0x5c]2294 2295 2296@------------------------------------------------------------------------------2297@ ROR (register)2298@------------------------------------------------------------------------------2299 ror r3, r4, r22300 ror.w r1, r22301 rors r3, r4, r82302 2303@ CHECK: ror.w r3, r4, r2 @ encoding: [0x64,0xfa,0x02,0xf3]2304@ CHECK: ror.w r1, r1, r2 @ encoding: [0x61,0xfa,0x02,0xf1]2305@ CHECK: rors.w r3, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf3]2306 2307 2308@------------------------------------------------------------------------------2309@ RRX2310@------------------------------------------------------------------------------2311 rrx r1, r22312 rrxs r1, r22313 ite lt2314 rrxlt r9, r122315 rrxsge r8, r32316 2317@ CHECK: rrx r1, r2 @ encoding: [0x4f,0xea,0x32,0x01]2318@ CHECK: rrxs r1, r2 @ encoding: [0x5f,0xea,0x32,0x01]2319@ CHECK: ite lt @ encoding: [0xb4,0xbf]2320@ CHECK: rrxlt r9, r12 @ encoding: [0x4f,0xea,0x3c,0x09]2321@ CHECK: rrxsge r8, r3 @ encoding: [0x5f,0xea,0x33,0x08]2322 2323@------------------------------------------------------------------------------2324@ RSB (immediate)2325@------------------------------------------------------------------------------2326 rsb r2, r5, #0xff0002327 rsbs r3, r12, #0xf2328 rsb r1, #0xff2329 rsb r1, r1, #0xff2330 rsb r11, r11, #02331 rsb r9, #02332 rsbs r3, r1, #02333 rsb r3, r1, #02334 2335@ CHECK: rsb.w r2, r5, #1044480 @ encoding: [0xc5,0xf5,0x7f,0x22]2336@ CHECK: rsbs.w r3, r12, #15 @ encoding: [0xdc,0xf1,0x0f,0x03]2337@ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01]2338@ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01]2339@ CHECK: rsb.w r11, r11, #0 @ encoding: [0xcb,0xf1,0x00,0x0b]2340@ CHECK: rsb.w r9, r9, #0 @ encoding: [0xc9,0xf1,0x00,0x09]2341@ CHECK: rsbs r3, r1, #0 @ encoding: [0x4b,0x42]2342@ CHECK: rsb.w r3, r1, #0 @ encoding: [0xc1,0xf1,0x00,0x03]2343 2344 2345@------------------------------------------------------------------------------2346@ RSB (register)2347@------------------------------------------------------------------------------2348 rsb r4, r82349 rsb.w r4, r82350 rsb r4, r9, r82351 rsb.w r4, r9, r82352 rsb r1, r4, r8, asr #32353 rsb.w r1, r4, r8, asr #32354 rsbs r2, r1, r7, lsl #12355 rsbs.w r2, r1, r7, lsl #12356 rsbs r0, r1, r22357 rsbs.w r0, r1, r22358 2359@ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04]2360@ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04]2361@ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04]2362@ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04]2363@ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01]2364@ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01]2365@ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02]2366@ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02]2367@ CHECK: rsbs r0, r1, r2 @ encoding: [0xd1,0xeb,0x02,0x00]2368@ CHECK: rsbs r0, r1, r2 @ encoding: [0xd1,0xeb,0x02,0x00]2369 2370 2371@------------------------------------------------------------------------------2372@ SADD162373@------------------------------------------------------------------------------2374 sadd16 r3, r4, r82375 it ne2376 sadd16ne r3, r4, r82377 2378@ CHECK: sadd16 r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3]2379@ CHECK: it ne @ encoding: [0x18,0xbf]2380@ CHECK: sadd16ne r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3]2381 2382 2383@------------------------------------------------------------------------------2384@ SADD82385@------------------------------------------------------------------------------2386 sadd8 r3, r4, r82387 it ne2388 sadd8ne r3, r4, r82389 2390@ CHECK: sadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3]2391@ CHECK: it ne @ encoding: [0x18,0xbf]2392@ CHECK: sadd8ne r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3]2393 2394 2395@------------------------------------------------------------------------------2396@ SASX2397@------------------------------------------------------------------------------2398 saddsubx r9, r2, r72399 it ne2400 saddsubxne r2, r5, r62401 sasx r9, r2, r72402 it ne2403 sasxne r2, r5, r62404 2405@ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9]2406@ CHECK: it ne @ encoding: [0x18,0xbf]2407@ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2]2408@ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9]2409@ CHECK: it ne @ encoding: [0x18,0xbf]2410@ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2]2411 2412 2413@------------------------------------------------------------------------------2414@ SBC (immediate)2415@------------------------------------------------------------------------------2416 sbc r0, r1, #42417 sbcs r0, r1, #02418 sbc r1, r2, #2552419 sbc r3, r7, #0x005500552420 sbc r8, r12, #0xaa00aa002421 sbc r9, r7, #0xa5a5a5a52422 sbc r5, r3, #0x870000002423 sbc r4, r2, #0x7f8000002424 sbc r4, r2, #0x000006802425 2426@ CHECK: sbc r0, r1, #4 @ encoding: [0x61,0xf1,0x04,0x00]2427@ CHECK: sbcs r0, r1, #0 @ encoding: [0x71,0xf1,0x00,0x00]2428@ CHECK: sbc r1, r2, #255 @ encoding: [0x62,0xf1,0xff,0x01]2429@ CHECK: sbc r3, r7, #5570645 @ encoding: [0x67,0xf1,0x55,0x13]2430@ CHECK: sbc r8, r12, #2852170240 @ encoding: [0x6c,0xf1,0xaa,0x28]2431@ CHECK: sbc r9, r7, #2779096485 @ encoding: [0x67,0xf1,0xa5,0x39]2432@ CHECK: sbc r5, r3, #2264924160 @ encoding: [0x63,0xf1,0x07,0x45]2433@ CHECK: sbc r4, r2, #2139095040 @ encoding: [0x62,0xf1,0xff,0x44]2434@ CHECK: sbc r4, r2, #1664 @ encoding: [0x62,0xf5,0xd0,0x64]2435 2436 2437@------------------------------------------------------------------------------2438@ SBC (register)2439@------------------------------------------------------------------------------2440 sbc r4, r5, r62441 sbcs r4, r5, r62442 sbc.w r9, r1, r32443 sbcs.w r9, r1, r32444 sbc r0, r1, r3, ror #42445 sbcs r0, r1, r3, lsl #72446 sbc.w r0, r1, r3, lsr #312447 sbcs.w r0, r1, r3, asr #322448 2449@ CHECK: sbc.w r4, r5, r6 @ encoding: [0x65,0xeb,0x06,0x04]2450@ CHECK: sbcs.w r4, r5, r6 @ encoding: [0x75,0xeb,0x06,0x04]2451@ CHECK: sbc.w r9, r1, r3 @ encoding: [0x61,0xeb,0x03,0x09]2452@ CHECK: sbcs.w r9, r1, r3 @ encoding: [0x71,0xeb,0x03,0x09]2453@ CHECK: sbc.w r0, r1, r3, ror #4 @ encoding: [0x61,0xeb,0x33,0x10]2454@ CHECK: sbcs.w r0, r1, r3, lsl #7 @ encoding: [0x71,0xeb,0xc3,0x10]2455@ CHECK: sbc.w r0, r1, r3, lsr #31 @ encoding: [0x61,0xeb,0xd3,0x70]2456@ CHECK: sbcs.w r0, r1, r3, asr #32 @ encoding: [0x71,0xeb,0x23,0x00]2457 2458 2459@------------------------------------------------------------------------------2460@ SBFX2461@------------------------------------------------------------------------------2462 sbfx r4, r5, #16, #12463 it gt2464 sbfxgt r4, r5, #16, #162465 2466@ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x45,0xf3,0x00,0x44]2467@ CHECK: it gt @ encoding: [0xc8,0xbf]2468@ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x45,0xf3,0x0f,0x44]2469 2470 2471@------------------------------------------------------------------------------2472@ SEL2473@------------------------------------------------------------------------------2474 sel r5, r9, r22475 it le2476 selle r5, r9, r22477 2478@ CHECK: sel r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5]2479@ CHECK: it le @ encoding: [0xd8,0xbf]2480@ CHECK: selle r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5]2481 2482 2483@------------------------------------------------------------------------------2484@ SEV2485@------------------------------------------------------------------------------2486 sev.w2487 it eq2488 seveq.w2489 2490@ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80]2491@ CHECK: it eq @ encoding: [0x08,0xbf]2492@ CHECK: seveq.w @ encoding: [0xaf,0xf3,0x04,0x80]2493 2494 2495@------------------------------------------------------------------------------2496@ SADD16/SADD82497@------------------------------------------------------------------------------2498 sadd16 r1, r2, r32499 sadd8 r1, r2, r32500 ite gt2501 sadd16gt r1, r2, r32502 sadd8le r1, r2, r32503 2504@ CHECK: sadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1]2505@ CHECK: sadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1]2506@ CHECK: ite gt @ encoding: [0xcc,0xbf]2507@ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1]2508@ CHECK: sadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1]2509 2510 2511@------------------------------------------------------------------------------2512@ SHASX2513@------------------------------------------------------------------------------2514 shasx r4, r8, r22515 it gt2516 shasxgt r4, r8, r22517 shaddsubx r4, r8, r22518 it gt2519 shaddsubxgt r4, r8, r22520 2521@ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]2522@ CHECK: it gt @ encoding: [0xc8,0xbf]2523@ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]2524@ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]2525@ CHECK: it gt @ encoding: [0xc8,0xbf]2526@ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4]2527 2528 2529@------------------------------------------------------------------------------2530@ SHASX2531@------------------------------------------------------------------------------2532 shsax r4, r8, r22533 it gt2534 shsaxgt r4, r8, r22535 shsubaddx r4, r8, r22536 it gt2537 shsubaddxgt r4, r8, r22538 2539@ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]2540@ CHECK: it gt @ encoding: [0xc8,0xbf]2541@ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]2542@ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]2543@ CHECK: it gt @ encoding: [0xc8,0xbf]2544@ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4]2545 2546 2547@------------------------------------------------------------------------------2548@ SHSUB16/SHSUB82549@------------------------------------------------------------------------------2550 shsub16 r4, r8, r22551 shsub8 r4, r8, r22552 itt gt2553 shsub16gt r4, r8, r22554 shsub8gt r4, r8, r22555 2556@ CHECK: shsub16 r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4]2557@ CHECK: shsub8 r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4]2558@ CHECK: itt gt @ encoding: [0xc4,0xbf]2559@ CHECK: shsub16gt r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4]2560@ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4]2561 2562 2563@------------------------------------------------------------------------------2564@ SMLABB/SMLABT/SMLATB/SMLATT2565@------------------------------------------------------------------------------2566 smlabb r3, r1, r9, r02567 smlabt r5, r6, r4, r12568 smlatb r4, r2, r3, r22569 smlatt r8, r3, r8, r42570 itete gt2571 smlabbgt r3, r1, r9, r02572 smlabtle r5, r6, r4, r12573 smlatbgt r4, r2, r3, r22574 smlattle r8, r3, r8, r42575 2576@ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03]2577@ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15]2578@ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24]2579@ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48]2580@ CHECK: itete gt @ encoding: [0xcb,0xbf]2581@ CHECK: smlabbgt r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03]2582@ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15]2583@ CHECK: smlatbgt r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24]2584@ CHECK: smlattle r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48]2585 2586 2587@------------------------------------------------------------------------------2588@ SMLAD/SMLADX2589@------------------------------------------------------------------------------2590 smlad r2, r3, r5, r82591 smladx r2, r3, r5, r82592 itt hi2593 smladhi r2, r3, r5, r82594 smladxhi r2, r3, r5, r82595 2596@ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82]2597@ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82]2598@ CHECK: itt hi @ encoding: [0x84,0xbf]2599@ CHECK: smladhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82]2600@ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82]2601 2602 2603@------------------------------------------------------------------------------2604@ SMLAL2605@------------------------------------------------------------------------------2606 smlal r2, r3, r5, r82607 it eq2608 smlaleq r2, r3, r5, r82609 2610@ CHECK: smlal r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23]2611@ CHECK: it eq @ encoding: [0x08,0xbf]2612@ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23]2613 2614 2615@------------------------------------------------------------------------------2616@ SMLALBB/SMLALBT/SMLALTB/SMLALTT2617@------------------------------------------------------------------------------2618 smlalbb r3, r1, r9, r02619 smlalbt r5, r6, r4, r12620 smlaltb r4, r2, r3, r22621 smlaltt r8, r3, r8, r42622 iteet ge2623 smlalbbge r3, r1, r9, r02624 smlalbtlt r5, r6, r4, r12625 smlaltblt r4, r2, r3, r22626 smlalttge r8, r3, r8, r42627 2628@ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31]2629@ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56]2630@ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42]2631@ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83]2632@ CHECK: iteet ge @ encoding: [0xad,0xbf]2633@ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31]2634@ CHECK: smlalbtlt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56]2635@ CHECK: smlaltblt r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42]2636@ CHECK: smlalttge r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83]2637 2638 2639@------------------------------------------------------------------------------2640@ SMLALD/SMLALDX2641@------------------------------------------------------------------------------2642 smlald r2, r3, r5, r82643 smlaldx r2, r3, r5, r82644 ite eq2645 smlaldeq r2, r3, r5, r82646 smlaldxne r2, r3, r5, r82647 2648@ CHECK: smlald r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23]2649@ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23]2650@ CHECK: ite eq @ encoding: [0x0c,0xbf]2651@ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23]2652@ CHECK: smlaldxne r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23]2653 2654 2655@------------------------------------------------------------------------------2656@ SMLAWB/SMLAWT2657@------------------------------------------------------------------------------2658 smlawb r2, r3, r10, r82659 smlawt r8, r3, r5, r92660 ite eq2661 smlawbeq r2, r7, r5, r82662 smlawtne r1, r3, r0, r82663 2664@ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x33,0xfb,0x0a,0x82]2665@ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0x33,0xfb,0x15,0x98]2666@ CHECK: ite eq @ encoding: [0x0c,0xbf]2667@ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x37,0xfb,0x05,0x82]2668@ CHECK: smlawtne r1, r3, r0, r8 @ encoding: [0x33,0xfb,0x10,0x81]2669 2670 2671@------------------------------------------------------------------------------2672@ SMLSD/SMLSDX2673@------------------------------------------------------------------------------2674 smlsd r2, r3, r5, r82675 smlsdx r2, r3, r5, r82676 ite le2677 smlsdle r2, r3, r5, r82678 smlsdxgt r2, r3, r5, r82679 2680@ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82]2681@ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82]2682@ CHECK: ite le @ encoding: [0xd4,0xbf]2683@ CHECK: smlsdle r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82]2684@ CHECK: smlsdxgt r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82]2685 2686 2687@------------------------------------------------------------------------------2688@ SMLSLD/SMLSLDX2689@------------------------------------------------------------------------------2690 smlsld r2, r9, r5, r12691 smlsldx r4, r11, r2, r82692 ite ge2693 smlsldge r8, r2, r5, r62694 smlsldxlt r1, r0, r3, r82695 2696@ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0xd5,0xfb,0xc1,0x29]2697@ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b]2698@ CHECK: ite ge @ encoding: [0xac,0xbf]2699@ CHECK: smlsldge r8, r2, r5, r6 @ encoding: [0xd5,0xfb,0xc6,0x82]2700@ CHECK: smlsldxlt r1, r0, r3, r8 @ encoding: [0xd3,0xfb,0xd8,0x10]2701 2702 2703@------------------------------------------------------------------------------2704@ SMMLA/SMMLAR2705@------------------------------------------------------------------------------2706 smmla r1, r2, r3, r42707 smmlar r4, r3, r2, r12708 ite lo2709 smmlalo r1, r2, r3, r42710 smmlarcs r4, r3, r2, r12711 2712@ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41]2713@ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14]2714@ CHECK: ite lo @ encoding: [0x34,0xbf]2715@ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41]2716@ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14]2717 2718 2719@------------------------------------------------------------------------------2720@ SMMLS/SMMLSR2721@------------------------------------------------------------------------------2722 smmls r1, r2, r3, r42723 smmlsr r4, r3, r2, r12724 ite lo2725 smmlslo r1, r2, r3, r42726 smmlsrcs r4, r3, r2, r12727 2728@ CHECK: smmls r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41]2729@ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14]2730@ CHECK: ite lo @ encoding: [0x34,0xbf]2731@ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41]2732@ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14]2733 2734 2735@------------------------------------------------------------------------------2736@ SMMUL/SMMULR2737@------------------------------------------------------------------------------2738 smmul r2, r3, r42739 smmulr r3, r2, r12740 ite cc2741 smmulcc r2, r3, r42742 smmulrhs r3, r2, r12743 2744@ CHECK: smmul r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2]2745@ CHECK: smmulr r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3]2746@ CHECK: ite lo @ encoding: [0x34,0xbf]2747@ CHECK: smmullo r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2]2748@ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3]2749 2750 2751@------------------------------------------------------------------------------2752@ SMUAD/SMUADX2753@------------------------------------------------------------------------------2754 smuad r2, r3, r42755 smuadx r3, r2, r12756 ite lt2757 smuadlt r2, r3, r42758 smuadxge r3, r2, r12759 2760@ CHECK: smuad r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2]2761@ CHECK: smuadx r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3]2762@ CHECK: ite lt @ encoding: [0xb4,0xbf]2763@ CHECK: smuadlt r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2]2764@ CHECK: smuadxge r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3]2765 2766 2767@------------------------------------------------------------------------------2768@ SMULBB/SMULBT/SMULTB/SMULTT2769@------------------------------------------------------------------------------2770 smulbb r3, r9, r02771 smulbt r5, r4, r12772 smultb r4, r2, r22773 smultt r8, r3, r42774 itete ge2775 smulbbge r1, r9, r02776 smulbtlt r5, r6, r42777 smultbge r2, r3, r22778 smulttlt r8, r3, r42779 2780@ CHECK: smulbb r3, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf3]2781@ CHECK: smulbt r5, r4, r1 @ encoding: [0x14,0xfb,0x11,0xf5]2782@ CHECK: smultb r4, r2, r2 @ encoding: [0x12,0xfb,0x22,0xf4]2783@ CHECK: smultt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]2784@ CHECK: itete ge @ encoding: [0xab,0xbf]2785@ CHECK: smulbbge r1, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf1]2786@ CHECK: smulbtlt r5, r6, r4 @ encoding: [0x16,0xfb,0x14,0xf5]2787@ CHECK: smultbge r2, r3, r2 @ encoding: [0x13,0xfb,0x22,0xf2]2788@ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8]2789 2790 2791@------------------------------------------------------------------------------2792@ SMULL2793@------------------------------------------------------------------------------2794 smull r3, r9, r0, r12795 it eq2796 smulleq r8, r3, r4, r52797 2798@ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39]2799@ CHECK: it eq @ encoding: [0x08,0xbf]2800@ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83]2801 2802 2803@------------------------------------------------------------------------------2804@ SMULWB/SMULWT2805@------------------------------------------------------------------------------2806 smulwb r3, r9, r02807 smulwt r3, r9, r22808 ite gt2809 smulwbgt r3, r9, r02810 smulwtle r3, r9, r22811 2812@ CHECK: smulwb r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3]2813@ CHECK: smulwt r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3]2814@ CHECK: ite gt @ encoding: [0xcc,0xbf]2815@ CHECK: smulwbgt r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3]2816@ CHECK: smulwtle r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3]2817 2818 2819@------------------------------------------------------------------------------2820@ SMUSD/SMUSDX2821@------------------------------------------------------------------------------2822 smusd r3, r0, r12823 smusdx r3, r9, r22824 ite eq2825 smusdeq r8, r3, r22826 smusdxne r7, r4, r32827 2828@ CHECK: smusd r3, r0, r1 @ encoding: [0x40,0xfb,0x01,0xf3]2829@ CHECK: smusdx r3, r9, r2 @ encoding: [0x49,0xfb,0x12,0xf3]2830@ CHECK: ite eq @ encoding: [0x0c,0xbf]2831@ CHECK: smusdeq r8, r3, r2 @ encoding: [0x43,0xfb,0x02,0xf8]2832@ CHECK: smusdxne r7, r4, r3 @ encoding: [0x44,0xfb,0x13,0xf7]2833 2834 2835@------------------------------------------------------------------------------2836@ SRS2837@------------------------------------------------------------------------------2838 srsdb sp, #12839 srsia sp, #02840 2841 srsdb sp!, #192842 srsia sp!, #22843 2844 srsea sp, #102845 srsfd sp, #92846 2847 srsea sp!, #52848 srsfd sp!, #52849 2850 srs sp, #52851 srs sp!, #52852 2853@ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0]2854@ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0]2855@ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0]2856@ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0]2857@ CHECK: srsia sp, #10 @ encoding: [0x8d,0xe9,0x0a,0xc0]2858@ CHECK: srsdb sp, #9 @ encoding: [0x0d,0xe8,0x09,0xc0]2859@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]2860@ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0]2861@ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0]2862@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]2863 2864 srsdb #12865 srsia #02866 2867 srsdb #19!2868 srsia #2!2869 2870 srsea #102871 srsfd #92872 2873 srsea #5!2874 srsfd #5!2875 2876 srs #52877 srs #5!2878 2879@ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0]2880@ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0]2881@ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0]2882@ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0]2883@ CHECK: srsia sp, #10 @ encoding: [0x8d,0xe9,0x0a,0xc0]2884@ CHECK: srsdb sp, #9 @ encoding: [0x0d,0xe8,0x09,0xc0]2885@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]2886@ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0]2887@ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0]2888@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0]2889 2890 2891@------------------------------------------------------------------------------2892@ SSAT2893@------------------------------------------------------------------------------2894 ssat r8, #1, r102895 ssat r8, #1, r10, lsl #02896 ssat r8, #1, r10, lsl #312897 ssat r8, #1, r10, asr #12898 2899@ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08]2900@ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08]2901@ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x0a,0xf3,0xc0,0x78]2902@ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0x2a,0xf3,0x40,0x08]2903 2904 2905@------------------------------------------------------------------------------2906@ SSAT162907@------------------------------------------------------------------------------2908 ssat16 r2, #1, r72909 ssat16 r3, #16, r52910 2911@ CHECK: ssat16 r2, #1, r7 @ encoding: [0x27,0xf3,0x00,0x02]2912@ CHECK: ssat16 r3, #16, r5 @ encoding: [0x25,0xf3,0x0f,0x03]2913 2914 2915@------------------------------------------------------------------------------2916@ SSAX2917@------------------------------------------------------------------------------2918 ssubaddx r2, r3, r42919 it lt2920 ssubaddxlt r2, r3, r42921 ssax r2, r3, r42922 it lt2923 ssaxlt r2, r3, r42924 2925@ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]2926@ CHECK: it lt @ encoding: [0xb8,0xbf]2927@ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]2928@ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]2929@ CHECK: it lt @ encoding: [0xb8,0xbf]2930@ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2]2931 2932 2933@------------------------------------------------------------------------------2934@ SSUB16/SSUB82935@------------------------------------------------------------------------------2936 ssub16 r1, r0, r62937 ssub8 r9, r2, r42938 ite ne2939 ssub16ne r5, r3, r22940 ssub8eq r5, r1, r22941 2942@ CHECK: ssub16 r1, r0, r6 @ encoding: [0xd0,0xfa,0x06,0xf1]2943@ CHECK: ssub8 r9, r2, r4 @ encoding: [0xc2,0xfa,0x04,0xf9]2944@ CHECK: ite ne @ encoding: [0x14,0xbf]2945@ CHECK: ssub16ne r5, r3, r2 @ encoding: [0xd3,0xfa,0x02,0xf5]2946@ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xc1,0xfa,0x02,0xf5]2947 2948 2949@------------------------------------------------------------------------------2950@ STC{L}/STC2{L}2951@------------------------------------------------------------------------------2952 stc2 p0, c8, [r1, #4]2953 stc2 p1, c7, [r2]2954 stc2 p2, c6, [r3, #-224]2955 stc2 p3, c5, [r4, #-120]!2956 stc2 p4, c4, [r5], #162957 stc2 p5, c3, [r6], #-722958 stc2l p6, c2, [r7, #4]2959 stc2l p7, c1, [r8]2960 stc2l p8, c0, [r9, #-224]2961 stc2l p9, c1, [r10, #-120]!2962 stc2l p0, c2, [r11], #162963 stc2l p1, c3, [r12], #-722964 2965 stc p12, c4, [r0, #4]2966 stc p13, c5, [r1]2967 stc p14, c6, [r2, #-224]2968 stc p15, c7, [r3, #-120]!2969 stc p5, c8, [r4], #162970 stc p4, c9, [r5], #-722971 stcl p3, c10, [r6, #4]2972 stcl p2, c11, [r7]2973 stcl p1, c12, [r8, #-224]2974 stcl p0, c13, [r9, #-120]!2975 stcl p6, c14, [r10], #162976 stcl p7, c15, [r11], #-722977 2978 stc2 p2, c8, [r1], { 25 }2979 2980@ CHECK: stc2 p0, c8, [r1, #4] @ encoding: [0x81,0xfd,0x01,0x80]2981@ CHECK: stc2 p1, c7, [r2] @ encoding: [0x82,0xfd,0x00,0x71]2982@ CHECK: stc2 p2, c6, [r3, #-224] @ encoding: [0x03,0xfd,0x38,0x62]2983@ CHECK: stc2 p3, c5, [r4, #-120]! @ encoding: [0x24,0xfd,0x1e,0x53]2984@ CHECK: stc2 p4, c4, [r5], #16 @ encoding: [0xa5,0xfc,0x04,0x44]2985@ CHECK: stc2 p5, c3, [r6], #-72 @ encoding: [0x26,0xfc,0x12,0x35]2986@ CHECK: stc2l p6, c2, [r7, #4] @ encoding: [0xc7,0xfd,0x01,0x26]2987@ CHECK: stc2l p7, c1, [r8] @ encoding: [0xc8,0xfd,0x00,0x17]2988@ CHECK: stc2l p8, c0, [r9, #-224] @ encoding: [0x49,0xfd,0x38,0x08]2989@ CHECK: stc2l p9, c1, [r10, #-120]! @ encoding: [0x6a,0xfd,0x1e,0x19]2990@ CHECK: stc2l p0, c2, [r11], #16 @ encoding: [0xeb,0xfc,0x04,0x20]2991@ CHECK: stc2l p1, c3, [r12], #-72 @ encoding: [0x6c,0xfc,0x12,0x31]2992 2993@ CHECK: stc p12, c4, [r0, #4] @ encoding: [0x80,0xed,0x01,0x4c]2994@ CHECK: stc p13, c5, [r1] @ encoding: [0x81,0xed,0x00,0x5d]2995@ CHECK: stc p14, c6, [r2, #-224] @ encoding: [0x02,0xed,0x38,0x6e]2996@ CHECK: stc p15, c7, [r3, #-120]! @ encoding: [0x23,0xed,0x1e,0x7f]2997@ CHECK: stc p5, c8, [r4], #16 @ encoding: [0xa4,0xec,0x04,0x85]2998@ CHECK: stc p4, c9, [r5], #-72 @ encoding: [0x25,0xec,0x12,0x94]2999@ CHECK: stcl p3, c10, [r6, #4] @ encoding: [0xc6,0xed,0x01,0xa3]3000@ CHECK: stcl p2, c11, [r7] @ encoding: [0xc7,0xed,0x00,0xb2]3001@ CHECK: stcl p1, c12, [r8, #-224] @ encoding: [0x48,0xed,0x38,0xc1]3002@ CHECK: stcl p0, c13, [r9, #-120]! @ encoding: [0x69,0xed,0x1e,0xd0]3003@ CHECK: stcl p6, c14, [r10], #16 @ encoding: [0xea,0xec,0x04,0xe6]3004@ CHECK: stcl p7, c15, [r11], #-72 @ encoding: [0x6b,0xec,0x12,0xf7]3005 3006@ CHECK: stc2 p2, c8, [r1], {25} @ encoding: [0x81,0xfc,0x19,0x82]3007 3008 3009@------------------------------------------------------------------------------3010@ STMIA3011@------------------------------------------------------------------------------3012 stmia.w r4, {r4, r5, r8, r9}3013 stmia.w r4, {r5, r6}3014 stmia.w r5!, {r3, r8}3015 stm.w r4, {r4, r5, r8, r9}3016 stm.w r4, {r5, r6}3017 stm.w r5!, {r3, r8}3018 stm.w r5!, {r1, r2}3019 stm.w r2, {r1, r2}3020 3021 stmia r4, {r4, r5, r8, r9}3022 stmia r4, {r5, r6}3023 stmia r5!, {r3, r8}3024 stm r4, {r4, r5, r8, r9}3025 stm r4, {r5, r6}3026 stm r5!, {r3, r8}3027 stmea r5!, {r3, r8}3028 3029@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]3030@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]3031@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]3032@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]3033@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]3034@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]3035@ CHECK: stm.w r5!, {r1, r2} @ encoding: [0xa5,0xe8,0x06,0x00]3036@ CHECK: stm.w r2, {r1, r2} @ encoding: [0x82,0xe8,0x06,0x00]3037 3038@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]3039@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]3040@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]3041@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03]3042@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00]3043@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]3044@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]3045 3046 3047@------------------------------------------------------------------------------3048@ STMDB3049@------------------------------------------------------------------------------3050 stmdb r4, {r4, r5, r8, r9}3051 stmdb r4, {r5, r6}3052 stmdb r5!, {r3, r8}3053 stmea r5!, {r3, r8}3054 stmdb.w r5, {r0, r1}3055 3056@ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03]3057@ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00]3058@ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01]3059@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]3060@ CHECK: stmdb r5, {r0, r1} @ encoding: [0x05,0xe9,0x03,0x00]3061 3062 3063@------------------------------------------------------------------------------3064@ STR(immediate)3065@------------------------------------------------------------------------------3066 str r5, [r5, #-4]3067 str r5, [r6, #32]3068 str r5, [r6, #33]3069 str r5, [r6, #257]3070 str.w pc, [r7, #257]3071 str r2, [r4, #255]!3072 str r8, [sp, #4]!3073 str lr, [sp, #-4]!3074 str r2, [r4], #2553075 str r8, [sp], #43076 str lr, [sp], #-43077 3078@ CHECK: str r5, [r5, #-4] @ encoding: [0x45,0xf8,0x04,0x5c]3079@ CHECK: str r5, [r6, #32] @ encoding: [0x35,0x62]3080@ CHECK: str.w r5, [r6, #33] @ encoding: [0xc6,0xf8,0x21,0x50]3081@ CHECK: str.w r5, [r6, #257] @ encoding: [0xc6,0xf8,0x01,0x51]3082@ CHECK: str.w pc, [r7, #257] @ encoding: [0xc7,0xf8,0x01,0xf1]3083@ CHECK: str r2, [r4, #255]! @ encoding: [0x44,0xf8,0xff,0x2f]3084@ CHECK: str r8, [sp, #4]! @ encoding: [0x4d,0xf8,0x04,0x8f]3085@ CHECK: str lr, [sp, #-4]! @ encoding: [0x4d,0xf8,0x04,0xed]3086@ CHECK: str r2, [r4], #255 @ encoding: [0x44,0xf8,0xff,0x2b]3087@ CHECK: str r8, [sp], #4 @ encoding: [0x4d,0xf8,0x04,0x8b]3088@ CHECK: str lr, [sp], #-4 @ encoding: [0x4d,0xf8,0x04,0xe9]3089 3090 3091@------------------------------------------------------------------------------3092@ STR(register)3093@------------------------------------------------------------------------------3094 str r1, [r8, r1]3095 str.w r4, [r5, r2]3096 str r6, [r0, r2, lsl #3]3097 str r8, [r8, r2, lsl #2]3098 str r7, [sp, r2, lsl #1]3099 str r7, [sp, r2, lsl #0]3100 3101@ CHECK: str.w r1, [r8, r1] @ encoding: [0x48,0xf8,0x01,0x10]3102@ CHECK: str.w r4, [r5, r2] @ encoding: [0x45,0xf8,0x02,0x40]3103@ CHECK: str.w r6, [r0, r2, lsl #3] @ encoding: [0x40,0xf8,0x32,0x60]3104@ CHECK: str.w r8, [r8, r2, lsl #2] @ encoding: [0x48,0xf8,0x22,0x80]3105@ CHECK: str.w r7, [sp, r2, lsl #1] @ encoding: [0x4d,0xf8,0x12,0x70]3106@ CHECK: str.w r7, [sp, r2] @ encoding: [0x4d,0xf8,0x02,0x70]3107 3108 3109@------------------------------------------------------------------------------3110@ STRB(immediate)3111@------------------------------------------------------------------------------3112 strb r5, [r5, #-4]3113 strb r5, [r6, #32]3114 strb r5, [r6, #33]3115 strb r5, [r6, #257]3116 strb.w lr, [r7, #257]3117 strb r5, [r8, #255]!3118 strb r2, [r5, #4]!3119 strb r1, [r4, #-4]!3120 strb lr, [r3], #2553121 strb r9, [r2], #43122 strb r3, [sp], #-43123 strb r4, [r8, #-0]!3124 strb r1, [r0], #-03125 strb.w r5, [r5, #-4]3126 strb.w r5, [r6, #32]3127 strb.w r5, [r8, #255]!3128 strb.w r9, [r2], #43129 3130@ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c]3131@ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50]3132@ CHECK: strb.w r5, [r6, #33] @ encoding: [0x86,0xf8,0x21,0x50]3133@ CHECK: strb.w r5, [r6, #257] @ encoding: [0x86,0xf8,0x01,0x51]3134@ CHECK: strb.w lr, [r7, #257] @ encoding: [0x87,0xf8,0x01,0xe1]3135@ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f]3136@ CHECK: strb r2, [r5, #4]! @ encoding: [0x05,0xf8,0x04,0x2f]3137@ CHECK: strb r1, [r4, #-4]! @ encoding: [0x04,0xf8,0x04,0x1d]3138@ CHECK: strb lr, [r3], #255 @ encoding: [0x03,0xf8,0xff,0xeb]3139@ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b]3140@ CHECK: strb r3, [sp], #-4 @ encoding: [0x0d,0xf8,0x04,0x39]3141@ CHECK: strb r4, [r8, #-0]! @ encoding: [0x08,0xf8,0x00,0x4d]3142@ CHECK: strb r1, [r0], #-0 @ encoding: [0x00,0xf8,0x00,0x19]3143@ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c]3144@ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50]3145@ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f]3146@ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b]3147 3148 3149@------------------------------------------------------------------------------3150@ STRB(register)3151@------------------------------------------------------------------------------3152 strb r1, [r8, r1]3153 strb.w r4, [r5, r2]3154 strb r6, [r0, r2, lsl #3]3155 strb r8, [r8, r2, lsl #2]3156 strb r7, [sp, r2, lsl #1]3157 strb r7, [sp, r2, lsl #0]3158 3159@ CHECK: strb.w r1, [r8, r1] @ encoding: [0x08,0xf8,0x01,0x10]3160@ CHECK: strb.w r4, [r5, r2] @ encoding: [0x05,0xf8,0x02,0x40]3161@ CHECK: strb.w r6, [r0, r2, lsl #3] @ encoding: [0x00,0xf8,0x32,0x60]3162@ CHECK: strb.w r8, [r8, r2, lsl #2] @ encoding: [0x08,0xf8,0x22,0x80]3163@ CHECK: strb.w r7, [sp, r2, lsl #1] @ encoding: [0x0d,0xf8,0x12,0x70]3164@ CHECK: strb.w r7, [sp, r2] @ encoding: [0x0d,0xf8,0x02,0x70]3165 3166 3167@------------------------------------------------------------------------------3168@ STRBT3169@------------------------------------------------------------------------------3170 strbt r1, [r2]3171 strbt r1, [r8, #0]3172 strbt r1, [r8, #3]3173 strbt r1, [r8, #255]3174 3175@ CHECK: strbt r1, [r2] @ encoding: [0x02,0xf8,0x00,0x1e]3176@ CHECK: strbt r1, [r8] @ encoding: [0x08,0xf8,0x00,0x1e]3177@ CHECK: strbt r1, [r8, #3] @ encoding: [0x08,0xf8,0x03,0x1e]3178@ CHECK: strbt r1, [r8, #255] @ encoding: [0x08,0xf8,0xff,0x1e]3179 3180 3181@------------------------------------------------------------------------------3182@ STRD3183@------------------------------------------------------------------------------3184 strd r3, r5, [r6, #24]3185 strd r3, r5, [r6, #24]!3186 strd r3, r5, [r6], #43187 strd r3, r5, [r6], #-83188 strd r3, r5, [r6]3189 strd r8, r1, [r3, #0]3190 strd r0, r1, [r2, #-0]3191 strd r0, r1, [r2, #-0]!3192 strd r0, r1, [r2], #-03193 strd r0, r1, [r2, #256]3194 strd r0, r1, [r2, #256]!3195 strd r0, r1, [r2], #2563196 3197@ CHECK: strd r3, r5, [r6, #24] @ encoding: [0xc6,0xe9,0x06,0x35]3198@ CHECK: strd r3, r5, [r6, #24]! @ encoding: [0xe6,0xe9,0x06,0x35]3199@ CHECK: strd r3, r5, [r6], #4 @ encoding: [0xe6,0xe8,0x01,0x35]3200@ CHECK: strd r3, r5, [r6], #-8 @ encoding: [0x66,0xe8,0x02,0x35]3201@ CHECK: strd r3, r5, [r6] @ encoding: [0xc6,0xe9,0x00,0x35]3202@ CHECK: strd r8, r1, [r3] @ encoding: [0xc3,0xe9,0x00,0x81]3203@ CHECK: strd r0, r1, [r2, #-0] @ encoding: [0x42,0xe9,0x00,0x01]3204@ CHECK: strd r0, r1, [r2, #-0]! @ encoding: [0x62,0xe9,0x00,0x01]3205@ CHECK: strd r0, r1, [r2], #-0 @ encoding: [0x62,0xe8,0x00,0x01]3206@ CHECK: strd r0, r1, [r2, #256] @ encoding: [0xc2,0xe9,0x40,0x01]3207@ CHECK: strd r0, r1, [r2, #256]! @ encoding: [0xe2,0xe9,0x40,0x01]3208@ CHECK: strd r0, r1, [r2], #256 @ encoding: [0xe2,0xe8,0x40,0x01]3209 3210 3211@------------------------------------------------------------------------------3212@ STREX/STREXB/STREXH/STREXD3213@------------------------------------------------------------------------------3214 strex r1, r8, [r4]3215 strex r8, r2, [r4, #0]3216 strex r2, r12, [sp, #128]3217 strexb r5, r1, [r7]3218 strexh r9, r7, [r12]3219 strexd r9, r3, r6, [r4]3220 3221@ CHECK: strex r1, r8, [r4] @ encoding: [0x44,0xe8,0x00,0x81]3222@ CHECK: strex r8, r2, [r4] @ encoding: [0x44,0xe8,0x00,0x28]3223@ CHECK: strex r2, r12, [sp, #128] @ encoding: [0x4d,0xe8,0x20,0xc2]3224@ CHECK: strexb r5, r1, [r7] @ encoding: [0xc7,0xe8,0x45,0x1f]3225@ CHECK: strexh r9, r7, [r12] @ encoding: [0xcc,0xe8,0x59,0x7f]3226@ CHECK: strexd r9, r3, r6, [r4] @ encoding: [0xc4,0xe8,0x79,0x36]3227 3228 3229@------------------------------------------------------------------------------3230@ STRH(immediate)3231@------------------------------------------------------------------------------3232 strh r5, [r5, #-4]3233 strh r5, [r6, #32]3234 strh r5, [r6, #33]3235 strh r5, [r6, #257]3236 strh.w lr, [r7, #257]3237 strh r5, [r8, #255]!3238 strh r2, [r5, #4]!3239 strh r1, [r4, #-4]!3240 strh lr, [r3], #2553241 strh r9, [r2], #43242 strh r3, [sp], #-43243 strh.w r5, [r5, #-4]3244 strh.w r5, [r6, #32]3245 strh.w r5, [r8, #255]!3246 strh.w r9, [r2], #43247 3248@ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c]3249@ CHECK: strh r5, [r6, #32] @ encoding: [0x35,0x84]3250@ CHECK: strh.w r5, [r6, #33] @ encoding: [0xa6,0xf8,0x21,0x50]3251@ CHECK: strh.w r5, [r6, #257] @ encoding: [0xa6,0xf8,0x01,0x51]3252@ CHECK: strh.w lr, [r7, #257] @ encoding: [0xa7,0xf8,0x01,0xe1]3253@ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f]3254@ CHECK: strh r2, [r5, #4]! @ encoding: [0x25,0xf8,0x04,0x2f]3255@ CHECK: strh r1, [r4, #-4]! @ encoding: [0x24,0xf8,0x04,0x1d]3256@ CHECK: strh lr, [r3], #255 @ encoding: [0x23,0xf8,0xff,0xeb]3257@ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b]3258@ CHECK: strh r3, [sp], #-4 @ encoding: [0x2d,0xf8,0x04,0x39]3259@ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c]3260@ CHECK: strh.w r5, [r6, #32] @ encoding: [0xa6,0xf8,0x20,0x50]3261@ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f]3262@ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b]3263 3264 3265@------------------------------------------------------------------------------3266@ STRH(register)3267@------------------------------------------------------------------------------3268 strh r1, [r8, r1]3269 strh.w r4, [r5, r2]3270 strh r6, [r0, r2, lsl #3]3271 strh r8, [r8, r2, lsl #2]3272 strh r7, [sp, r2, lsl #1]3273 strh r7, [sp, r2, lsl #0]3274 3275@ CHECK: strh.w r1, [r8, r1] @ encoding: [0x28,0xf8,0x01,0x10]3276@ CHECK: strh.w r4, [r5, r2] @ encoding: [0x25,0xf8,0x02,0x40]3277@ CHECK: strh.w r6, [r0, r2, lsl #3] @ encoding: [0x20,0xf8,0x32,0x60]3278@ CHECK: strh.w r8, [r8, r2, lsl #2] @ encoding: [0x28,0xf8,0x22,0x80]3279@ CHECK: strh.w r7, [sp, r2, lsl #1] @ encoding: [0x2d,0xf8,0x12,0x70]3280@ CHECK: strh.w r7, [sp, r2] @ encoding: [0x2d,0xf8,0x02,0x70]3281 3282 3283@------------------------------------------------------------------------------3284@ STRHT3285@------------------------------------------------------------------------------3286 strht r1, [r2]3287 strht r1, [r8, #0]3288 strht r1, [r8, #3]3289 strht r1, [r8, #255]3290 3291@ CHECK: strht r1, [r2] @ encoding: [0x22,0xf8,0x00,0x1e]3292@ CHECK: strht r1, [r8] @ encoding: [0x28,0xf8,0x00,0x1e]3293@ CHECK: strht r1, [r8, #3] @ encoding: [0x28,0xf8,0x03,0x1e]3294@ CHECK: strht r1, [r8, #255] @ encoding: [0x28,0xf8,0xff,0x1e]3295 3296 3297@------------------------------------------------------------------------------3298@ STRT3299@------------------------------------------------------------------------------3300 strt r1, [r2]3301 strt r1, [r8, #0]3302 strt r1, [r8, #3]3303 strt r1, [r8, #255]3304 3305@ CHECK: strt r1, [r2] @ encoding: [0x42,0xf8,0x00,0x1e]3306@ CHECK: strt r1, [r8] @ encoding: [0x48,0xf8,0x00,0x1e]3307@ CHECK: strt r1, [r8, #3] @ encoding: [0x48,0xf8,0x03,0x1e]3308@ CHECK: strt r1, [r8, #255] @ encoding: [0x48,0xf8,0xff,0x1e]3309 3310 3311@------------------------------------------------------------------------------3312@ SUB (immediate)3313@------------------------------------------------------------------------------3314 itet eq3315 subeq r1, r2, #43316 subwne r5, r3, #10233317 subeq r4, r5, #2933318 sub r2, sp, #10243319 sub r2, r8, #0xff003320 sub r2, r3, #2573321 subw r2, r3, #2573322 sub r12, r6, #0x1003323 subw r12, r6, #0x1003324 subs r1, r2, #0x1f03325 sub r2, #13326 sub r0, r0, #323327 subs r2, r2, #563328 subs r2, #563329 subw r0, r0, #40953330 subw r0, #40953331 sub r0, r0, #40953332 sub r0, #40953333@ CHECK: itet eq @ encoding: [0x0a,0xbf]3334@ CHECK: subeq r1, r2, #4 @ encoding: [0x11,0x1f]3335@ CHECK: subwne r5, r3, #1023 @ encoding: [0xa3,0xf2,0xff,0x35]3336@ CHECK: subweq r4, r5, #293 @ encoding: [0xa5,0xf2,0x25,0x14]3337@ CHECK: sub.w r2, sp, #1024 @ encoding: [0xad,0xf5,0x80,0x62]3338@ CHECK: sub.w r2, r8, #65280 @ encoding: [0xa8,0xf5,0x7f,0x42]3339@ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12]3340@ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12]3341@ CHECK: sub.w r12, r6, #256 @ encoding: [0xa6,0xf5,0x80,0x7c]3342@ CHECK: subw r12, r6, #256 @ encoding: [0xa6,0xf2,0x00,0x1c]3343@ CHECK: subs.w r1, r2, #496 @ encoding: [0xb2,0xf5,0xf8,0x71]3344@ CHECK: sub.w r2, r2, #1 @ encoding: [0xa2,0xf1,0x01,0x02]3345@ CHECK: sub.w r0, r0, #32 @ encoding: [0xa0,0xf1,0x20,0x00]3346@ CHECK: subs r2, #56 @ encoding: [0x38,0x3a]3347@ CHECK: subs r2, #56 @ encoding: [0x38,0x3a]3348@ CHECK-NEXT: subw r0, r0, #4095 @ encoding: [0xa0,0xf6,0xff,0x70]3349@ CHECK-NEXT: subw r0, r0, #4095 @ encoding: [0xa0,0xf6,0xff,0x70]3350@ CHECK-NEXT: subw r0, r0, #4095 @ encoding: [0xa0,0xf6,0xff,0x70]3351@ CHECK-NEXT: subw r0, r0, #4095 @ encoding: [0xa0,0xf6,0xff,0x70]3352@------------------------------------------------------------------------------3353@ SUB (immediate, writting to SP)3354@------------------------------------------------------------------------------3355 sub.w sp, sp, #0x1fe0000 //T23356 sub sp, sp, #0x1fe00003357 sub.w sp, #0x1fe00003358 sub sp, #0x1fe00003359@ CHECK-NEXT: sub.w sp, sp, #33423360 @ encoding: [0xad,0xf1,0xff,0x7d]3360@ CHECK-NEXT: sub.w sp, sp, #33423360 @ encoding: [0xad,0xf1,0xff,0x7d]3361@ CHECK-NEXT: sub.w sp, sp, #33423360 @ encoding: [0xad,0xf1,0xff,0x7d]3362@ CHECK-NEXT: sub.w sp, sp, #33423360 @ encoding: [0xad,0xf1,0xff,0x7d]3363 subs.w sp, sp, #0x1fe0000 //T23364 subs sp, sp, #0x1fe00003365 subs.w sp, #0x1fe00003366 subs sp, #0x1fe00003367@ CHECK-NEXT: subs.w sp, sp, #33423360 @ encoding: [0xbd,0xf1,0xff,0x7d]3368@ CHECK-NEXT: subs.w sp, sp, #33423360 @ encoding: [0xbd,0xf1,0xff,0x7d]3369@ CHECK-NEXT: subs.w sp, sp, #33423360 @ encoding: [0xbd,0xf1,0xff,0x7d]3370@ CHECK-NEXT: subs.w sp, sp, #33423360 @ encoding: [0xbd,0xf1,0xff,0x7d]3371 subw sp, sp, #4095 //T33372 sub sp, sp, #40953373 subw sp, #40953374 sub sp, #40953375@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]3376@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]3377@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]3378@ CHECK-NEXT: subw sp, sp, #4095 @ encoding: [0xad,0xf6,0xff,0x7d]3379 sub sp, #128 //T13380@ CHECK-NEXT: sub sp, #128 @ encoding: [0xa0,0xb0]3381 subs.w sp, #128 //T23382 subs sp, #128 //T23383@ CHECK-NEXT: subs.w sp, sp, #128 @ encoding: [0xbd,0xf1,0x80,0x0d]3384@ CHECK-NEXT: subs.w sp, sp, #128 @ encoding: [0xbd,0xf1,0x80,0x0d]3385 sub.w sp, #128 //T23386@ CHECK-NEXT: sub.w sp, sp, #128 @ encoding: [0xad,0xf1,0x80,0x0d]3387 subw sp, #128 //T43388@ CHECK-NEXT: subw sp, sp, #128 @ encoding: [0xad,0xf2,0x80,0x0d]3389@------------------------------------------------------------------------------3390@ SUB (register)3391@------------------------------------------------------------------------------3392 sub r4, r5, r63393 sub r4, r5, r6, lsl #53394 sub r4, r5, r6, lsr #53395 sub.w r4, r5, r6, lsr #53396 sub r4, r5, r6, asr #53397 sub r4, r5, r6, ror #53398 sub.w r5, r2, r12, rrx3399 sub r2, sp, ip3400 sub sp, sp, ip3401 sub sp, ip3402 sub.w r2, sp, ip3403 sub.w sp, sp, ip3404 sub.w sp, ip3405 3406@ CHECK: sub.w r4, r5, r6 @ encoding: [0xa5,0xeb,0x06,0x04]3407@ CHECK: sub.w r4, r5, r6, lsl #5 @ encoding: [0xa5,0xeb,0x46,0x14]3408@ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14]3409@ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14]3410@ CHECK: sub.w r4, r5, r6, asr #5 @ encoding: [0xa5,0xeb,0x66,0x14]3411@ CHECK: sub.w r4, r5, r6, ror #5 @ encoding: [0xa5,0xeb,0x76,0x14]3412@ CHECK: sub.w r5, r2, r12, rrx @ encoding: [0xa2,0xeb,0x3c,0x05]3413@ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02]3414@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]3415@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]3416@ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02]3417@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]3418@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d]3419 3420 3421@------------------------------------------------------------------------------3422@ SVC3423@------------------------------------------------------------------------------3424 svc #03425 it eq3426 svceq #2553427 it ne3428 swine #333429 itt eq3430 svceq #03431 svceq #13432 3433@ CHECK: svc #0 @ encoding: [0x00,0xdf]3434@ CHECK: it eq @ encoding: [0x08,0xbf]3435@ CHECK: svceq #255 @ encoding: [0xff,0xdf]3436@ CHECK: it ne @ encoding: [0x18,0xbf]3437@ CHECK: svcne #33 @ encoding: [0x21,0xdf]3438@ CHECK: itt eq @ encoding: [0x04,0xbf]3439@ CHECK: svceq #0 @ encoding: [0x00,0xdf]3440@ CHECK: svceq #1 @ encoding: [0x01,0xdf]3441 3442 3443@------------------------------------------------------------------------------3444@ SXTAB3445@------------------------------------------------------------------------------3446 sxtab r2, r3, r43447 sxtab r4, r5, r6, ror #03448 it lt3449 sxtablt r6, r2, r9, ror #83450 sxtab r5, r1, r4, ror #163451 sxtab r7, r8, r3, ror #243452 3453@ CHECK: sxtab r2, r3, r4 @ encoding: [0x43,0xfa,0x84,0xf2]3454@ CHECK: sxtab r4, r5, r6 @ encoding: [0x45,0xfa,0x86,0xf4]3455@ CHECK: it lt @ encoding: [0xb8,0xbf]3456@ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x42,0xfa,0x99,0xf6]3457@ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x41,0xfa,0xa4,0xf5]3458@ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x48,0xfa,0xb3,0xf7]3459 3460 3461@------------------------------------------------------------------------------3462@ SXTAB163463@------------------------------------------------------------------------------3464 sxtab16 r6, r2, r7, ror #03465 sxtab16 r3, r5, r8, ror #83466 sxtab16 r3, r2, r1, ror #163467 ite ne3468 sxtab16ne r0, r1, r43469 sxtab16eq r1, r2, r3, ror #243470 3471@ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x22,0xfa,0x87,0xf6]3472@ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x25,0xfa,0x98,0xf3]3473@ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x22,0xfa,0xa1,0xf3]3474@ CHECK: ite ne @ encoding: [0x14,0xbf]3475@ CHECK: sxtab16ne r0, r1, r4 @ encoding: [0x21,0xfa,0x84,0xf0]3476@ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x22,0xfa,0xb3,0xf1]3477 3478 3479@------------------------------------------------------------------------------3480@ SXTAH3481@------------------------------------------------------------------------------3482 sxtah r1, r3, r93483 sxtah r3, r8, r3, ror #83484 sxtah r9, r3, r3, ror #243485 ite hi3486 sxtahhi r6, r1, r6, ror #03487 sxtahls r2, r2, r4, ror #163488 3489@ CHECK: sxtah r1, r3, r9 @ encoding: [0x03,0xfa,0x89,0xf1]3490@ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x08,0xfa,0x93,0xf3]3491@ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x03,0xfa,0xb3,0xf9]3492@ CHECK: ite hi @ encoding: [0x8c,0xbf]3493@ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x01,0xfa,0x86,0xf6]3494@ CHECK: sxtahls r2, r2, r4, ror #16 @ encoding: [0x02,0xfa,0xa4,0xf2]3495 3496 3497@------------------------------------------------------------------------------3498@ SXTB3499@------------------------------------------------------------------------------3500 sxtb r5, r6, ror #03501 sxtb r6, r9, ror #83502 sxtb r8, r3, ror #243503 ite ge3504 sxtbge r2, r43505 sxtblt r5, r1, ror #163506 sxtb.w r7, r83507 3508@ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2]3509@ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6]3510@ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8]3511@ CHECK: ite ge @ encoding: [0xac,0xbf]3512@ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2]3513@ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]3514@ CHECK: sxtb.w r7, r8 @ encoding: [0x4f,0xfa,0x88,0xf7]3515 3516 3517@------------------------------------------------------------------------------3518@ SXTB163519@------------------------------------------------------------------------------3520 sxtb16 r1, r43521 sxtb16 r6, r7, ror #03522 sxtb16 r3, r1, ror #163523 ite cs3524 sxtb16cs r3, r5, ror #83525 sxtb16lo r2, r3, ror #243526 3527@ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1]3528@ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6]3529@ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3]3530@ CHECK: ite hs @ encoding: [0x2c,0xbf]3531@ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3]3532@ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]3533 3534 3535@------------------------------------------------------------------------------3536@ SXTH3537@------------------------------------------------------------------------------3538 sxth r1, r6, ror #03539 sxth r3, r8, ror #83540 sxth r9, r3, ror #243541 itt ne3542 sxthne r3, r93543 sxthne r2, r2, ror #163544 sxth.w r7, r83545 3546@ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2]3547@ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3]3548@ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9]3549@ CHECK: itt ne @ encoding: [0x1c,0xbf]3550@ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3]3551@ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]3552@ CHECK: sxth.w r7, r8 @ encoding: [0x0f,0xfa,0x88,0xf7]3553 3554 3555@------------------------------------------------------------------------------3556@ SXTB3557@------------------------------------------------------------------------------3558 sxtb r5, r6, ror #03559 sxtb.w r6, r9, ror #83560 sxtb r8, r3, ror #243561 ite ge3562 sxtbge r2, r43563 sxtblt r5, r1, ror #163564 3565@ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2]3566@ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6]3567@ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8]3568@ CHECK: ite ge @ encoding: [0xac,0xbf]3569@ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2]3570@ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]3571 3572 3573@------------------------------------------------------------------------------3574@ SXTB163575@------------------------------------------------------------------------------3576 sxtb16 r1, r43577 sxtb16 r6, r7, ror #03578 sxtb16 r3, r1, ror #163579 ite cs3580 sxtb16cs r3, r5, ror #83581 sxtb16lo r2, r3, ror #243582 3583@ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1]3584@ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6]3585@ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3]3586@ CHECK: ite hs @ encoding: [0x2c,0xbf]3587@ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3]3588@ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]3589 3590 3591@------------------------------------------------------------------------------3592@ SXTH3593@------------------------------------------------------------------------------3594 sxth r1, r6, ror #03595 sxth.w r3, r8, ror #83596 sxth r9, r3, ror #243597 itt ne3598 sxthne r3, r93599 sxthne r2, r2, ror #163600 3601@ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2]3602@ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3]3603@ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9]3604@ CHECK: itt ne @ encoding: [0x1c,0xbf]3605@ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3]3606@ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]3607 3608 3609@------------------------------------------------------------------------------3610@ TBB/TBH3611@------------------------------------------------------------------------------3612 tbb [r3, r8]3613 tbh [r3, r8, lsl #1]3614 it eq3615 tbbeq [r3, r8]3616 it cs3617 tbhcs [r3, r8, lsl #1]3618 3619@ CHECK: tbb [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0]3620@ CHECK: tbh [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0]3621@ CHECK: it eq @ encoding: [0x08,0xbf]3622@ CHECK: tbbeq [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0]3623@ CHECK: it hs @ encoding: [0x28,0xbf]3624@ CHECK: tbhhs [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0]3625 3626 3627@------------------------------------------------------------------------------3628@ TEQ3629@------------------------------------------------------------------------------3630 teq r5, #0xf0003631 teq r4, r53632 teq r4, r5, lsl #53633 teq r4, r5, lsr #53634 teq r4, r5, lsr #53635 teq r4, r5, asr #53636 teq r4, r5, ror #53637 3638@ CHECK: teq.w r5, #61440 @ encoding: [0x95,0xf4,0x70,0x4f]3639@ CHECK: teq.w r4, r5 @ encoding: [0x94,0xea,0x05,0x0f]3640@ CHECK: teq.w r4, r5, lsl #5 @ encoding: [0x94,0xea,0x45,0x1f]3641@ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f]3642@ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f]3643@ CHECK: teq.w r4, r5, asr #5 @ encoding: [0x94,0xea,0x65,0x1f]3644@ CHECK: teq.w r4, r5, ror #5 @ encoding: [0x94,0xea,0x75,0x1f]3645 3646 3647@------------------------------------------------------------------------------3648@ TST3649@------------------------------------------------------------------------------3650 tst r5, #0xf0003651 tst r2, r53652 tst r3, r12, lsl #53653 tst r4, r11, lsr #43654 tst r5, r10, lsr #123655 tst r6, r9, asr #303656 tst r7, r8, ror #23657 3658@ CHECK: tst.w r5, #61440 @ encoding: [0x15,0xf4,0x70,0x4f]3659@ CHECK: tst r2, r5 @ encoding: [0x2a,0x42]3660@ CHECK: tst.w r3, r12, lsl #5 @ encoding: [0x13,0xea,0x4c,0x1f]3661@ CHECK: tst.w r4, r11, lsr #4 @ encoding: [0x14,0xea,0x1b,0x1f]3662@ CHECK: tst.w r5, r10, lsr #12 @ encoding: [0x15,0xea,0x1a,0x3f]3663@ CHECK: tst.w r6, r9, asr #30 @ encoding: [0x16,0xea,0xa9,0x7f]3664@ CHECK: tst.w r7, r8, ror #2 @ encoding: [0x17,0xea,0xb8,0x0f]3665 3666 3667@------------------------------------------------------------------------------3668@ UADD16/UADD83669@------------------------------------------------------------------------------3670 uadd16 r1, r2, r33671 uadd8 r1, r2, r33672 ite gt3673 uadd16gt r1, r2, r33674 uadd8le r1, r2, r33675 3676@ CHECK: uadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1]3677@ CHECK: uadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1]3678@ CHECK: ite gt @ encoding: [0xcc,0xbf]3679@ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1]3680@ CHECK: uadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1]3681 3682 3683@------------------------------------------------------------------------------3684@ UASX3685@------------------------------------------------------------------------------3686 uasx r9, r12, r03687 it eq3688 uasxeq r9, r12, r03689 uaddsubx r9, r12, r03690 it eq3691 uaddsubxeq r9, r12, r03692 3693@ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]3694@ CHECK: it eq @ encoding: [0x08,0xbf]3695@ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]3696@ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]3697@ CHECK: it eq @ encoding: [0x08,0xbf]3698@ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9]3699 3700 3701@------------------------------------------------------------------------------3702@ UBFX3703@------------------------------------------------------------------------------3704 ubfx r4, r5, #16, #13705 it gt3706 ubfxgt r4, r5, #16, #163707 3708@ CHECK: ubfx r4, r5, #16, #1 @ encoding: [0xc5,0xf3,0x00,0x44]3709@ CHECK: it gt @ encoding: [0xc8,0xbf]3710@ CHECK: ubfxgt r4, r5, #16, #16 @ encoding: [0xc5,0xf3,0x0f,0x44]3711 3712 3713@------------------------------------------------------------------------------3714@ UHADD16/UHADD83715@------------------------------------------------------------------------------3716 uhadd16 r4, r8, r23717 uhadd8 r4, r8, r23718 itt gt3719 uhadd16gt r4, r8, r23720 uhadd8gt r4, r8, r23721 3722@ CHECK: uhadd16 r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4]3723@ CHECK: uhadd8 r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4]3724@ CHECK: itt gt @ encoding: [0xc4,0xbf]3725@ CHECK: uhadd16gt r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4]3726@ CHECK: uhadd8gt r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4]3727 3728 3729@------------------------------------------------------------------------------3730@ UHASX/UHSAX3731@------------------------------------------------------------------------------3732 uhasx r4, r1, r53733 uhsax r5, r6, r63734 itt gt3735 uhasxgt r6, r9, r83736 uhsaxgt r7, r8, r123737 uhaddsubx r4, r1, r53738 uhsubaddx r5, r6, r63739 itt gt3740 uhaddsubxgt r6, r9, r83741 uhsubaddxgt r7, r8, r123742 3743@ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4]3744@ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5]3745@ CHECK: itt gt @ encoding: [0xc4,0xbf]3746@ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6]3747@ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7]3748@ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4]3749@ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5]3750@ CHECK: itt gt @ encoding: [0xc4,0xbf]3751@ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6]3752@ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7]3753 3754 3755@------------------------------------------------------------------------------3756@ UHSUB16/UHSUB83757@------------------------------------------------------------------------------3758 uhsub16 r5, r8, r33759 uhsub8 r1, r7, r63760 itt lt3761 uhsub16lt r4, r9, r123762 uhsub8lt r3, r1, r53763 3764@ CHECK: uhsub16 r5, r8, r3 @ encoding: [0xd8,0xfa,0x63,0xf5]3765@ CHECK: uhsub8 r1, r7, r6 @ encoding: [0xc7,0xfa,0x66,0xf1]3766@ CHECK: itt lt @ encoding: [0xbc,0xbf]3767@ CHECK: uhsub16lt r4, r9, r12 @ encoding: [0xd9,0xfa,0x6c,0xf4]3768@ CHECK: uhsub8lt r3, r1, r5 @ encoding: [0xc1,0xfa,0x65,0xf3]3769 3770 3771@------------------------------------------------------------------------------3772@ UMAAL3773@------------------------------------------------------------------------------3774 umaal r3, r4, r5, r63775 it lt3776 umaallt r3, r4, r5, r63777 3778@ CHECK: umaal r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34]3779@ CHECK: it lt @ encoding: [0xb8,0xbf]3780@ CHECK: umaallt r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34]3781 3782 3783@------------------------------------------------------------------------------3784@ UMLAL3785@------------------------------------------------------------------------------3786 umlal r2, r4, r6, r83787 it gt3788 umlalgt r6, r1, r2, r63789 3790@ CHECK: umlal r2, r4, r6, r8 @ encoding: [0xe6,0xfb,0x08,0x24]3791@ CHECK: it gt @ encoding: [0xc8,0xbf]3792@ CHECK: umlalgt r6, r1, r2, r6 @ encoding: [0xe2,0xfb,0x06,0x61]3793 3794 3795@------------------------------------------------------------------------------3796@ UMULL3797@------------------------------------------------------------------------------3798 umull r2, r4, r6, r83799 it gt3800 umullgt r6, r1, r2, r63801 3802@ CHECK: umull r2, r4, r6, r8 @ encoding: [0xa6,0xfb,0x08,0x24]3803@ CHECK: it gt @ encoding: [0xc8,0xbf]3804@ CHECK: umullgt r6, r1, r2, r6 @ encoding: [0xa2,0xfb,0x06,0x61]3805 3806 3807@------------------------------------------------------------------------------3808@ UQADD16/UQADD83809@------------------------------------------------------------------------------3810 uqadd16 r1, r2, r33811 uqadd8 r3, r4, r83812 ite gt3813 uqadd16gt r4, r7, r93814 uqadd8le r8, r1, r23815 3816@ CHECK: uqadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x53,0xf1]3817@ CHECK: uqadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x58,0xf3]3818@ CHECK: ite gt @ encoding: [0xcc,0xbf]3819@ CHECK: uqadd16gt r4, r7, r9 @ encoding: [0x97,0xfa,0x59,0xf4]3820@ CHECK: uqadd8le r8, r1, r2 @ encoding: [0x81,0xfa,0x52,0xf8]3821 3822 3823@------------------------------------------------------------------------------3824@ UQASX/UQSAX3825@------------------------------------------------------------------------------3826 uqasx r1, r2, r33827 uqsax r3, r4, r83828 ite gt3829 uqasxgt r4, r7, r93830 uqsaxle r8, r1, r23831 3832 uqaddsubx r1, r2, r33833 uqsubaddx r3, r4, r83834 ite gt3835 uqaddsubxgt r4, r7, r93836 uqsubaddxle r8, r1, r23837 3838@ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1]3839@ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3]3840@ CHECK: ite gt @ encoding: [0xcc,0xbf]3841@ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4]3842@ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8]3843 3844@ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1]3845@ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3]3846@ CHECK: ite gt @ encoding: [0xcc,0xbf]3847@ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4]3848@ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8]3849 3850 3851@------------------------------------------------------------------------------3852@ UQSUB16/UQSUB83853@------------------------------------------------------------------------------3854 uqsub8 r8, r2, r93855 uqsub16 r1, r9, r73856 ite gt3857 uqsub8gt r3, r1, r63858 uqsub16le r4, r6, r43859 3860@ CHECK: uqsub8 r8, r2, r9 @ encoding: [0xc2,0xfa,0x59,0xf8]3861@ CHECK: uqsub16 r1, r9, r7 @ encoding: [0xd9,0xfa,0x57,0xf1]3862@ CHECK: ite gt @ encoding: [0xcc,0xbf]3863@ CHECK: uqsub8gt r3, r1, r6 @ encoding: [0xc1,0xfa,0x56,0xf3]3864@ CHECK: uqsub16le r4, r6, r4 @ encoding: [0xd6,0xfa,0x54,0xf4]3865 3866 3867@------------------------------------------------------------------------------3868@ UQSUB16/UQSUB83869@------------------------------------------------------------------------------3870 usad8 r1, r9, r73871 usada8 r8, r2, r9, r123872 ite gt3873 usada8gt r3, r1, r6, r93874 usad8le r4, r6, r43875 3876@ CHECK: usad8 r1, r9, r7 @ encoding: [0x79,0xfb,0x07,0xf1]3877@ CHECK: usada8 r8, r2, r9, r12 @ encoding: [0x72,0xfb,0x09,0xc8]3878@ CHECK: ite gt @ encoding: [0xcc,0xbf]3879@ CHECK: usada8gt r3, r1, r6, r9 @ encoding: [0x71,0xfb,0x06,0x93]3880@ CHECK: usad8le r4, r6, r4 @ encoding: [0x76,0xfb,0x04,0xf4]3881 3882 3883@------------------------------------------------------------------------------3884@ USAT3885@------------------------------------------------------------------------------3886 usat r8, #1, r103887 usat r8, #4, r10, lsl #03888 usat r8, #5, r10, lsl #313889 usat r8, #16, r10, asr #13890 3891@ CHECK: usat r8, #1, r10 @ encoding: [0x8a,0xf3,0x01,0x08]3892@ CHECK: usat r8, #4, r10 @ encoding: [0x8a,0xf3,0x04,0x08]3893@ CHECK: usat r8, #5, r10, lsl #31 @ encoding: [0x8a,0xf3,0xc5,0x78]3894@ CHECK: usat r8, #16, r10, asr #1 @ encoding: [0xaa,0xf3,0x50,0x08]3895 3896 3897@------------------------------------------------------------------------------3898@ USAT163899@------------------------------------------------------------------------------3900 usat16 r2, #2, r73901 usat16 r3, #15, r53902 3903@ CHECK: usat16 r2, #2, r7 @ encoding: [0xa7,0xf3,0x02,0x02]3904@ CHECK: usat16 r3, #15, r5 @ encoding: [0xa5,0xf3,0x0f,0x03]3905 3906 3907@------------------------------------------------------------------------------3908@ USAX3909@------------------------------------------------------------------------------3910 usax r2, r3, r43911 it ne3912 usaxne r6, r1, r93913 usubaddx r2, r3, r43914 it ne3915 usubaddxne r6, r1, r93916 3917@ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2]3918@ CHECK: it ne @ encoding: [0x18,0xbf]3919@ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6]3920@ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2]3921@ CHECK: it ne @ encoding: [0x18,0xbf]3922@ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6]3923 3924 3925@------------------------------------------------------------------------------3926@ USUB16/USUB83927@------------------------------------------------------------------------------3928 usub16 r4, r2, r73929 usub8 r1, r8, r53930 ite hi3931 usub16hi r1, r1, r33932 usub8ls r9, r2, r33933 3934@ CHECK: usub16 r4, r2, r7 @ encoding: [0xd2,0xfa,0x47,0xf4]3935@ CHECK: usub8 r1, r8, r5 @ encoding: [0xc8,0xfa,0x45,0xf1]3936@ CHECK: ite hi @ encoding: [0x8c,0xbf]3937@ CHECK: usub16hi r1, r1, r3 @ encoding: [0xd1,0xfa,0x43,0xf1]3938@ CHECK: usub8ls r9, r2, r3 @ encoding: [0xc2,0xfa,0x43,0xf9]3939 3940 3941@------------------------------------------------------------------------------3942@ UXTAB3943@------------------------------------------------------------------------------3944 uxtab r2, r3, r43945 uxtab r4, r5, r6, ror #03946 it lt3947 uxtablt r6, r2, r9, ror #83948 uxtab r5, r1, r4, ror #163949 uxtab r7, r8, r3, ror #243950 3951@ CHECK: uxtab r2, r3, r4 @ encoding: [0x53,0xfa,0x84,0xf2]3952@ CHECK: uxtab r4, r5, r6 @ encoding: [0x55,0xfa,0x86,0xf4]3953@ CHECK: it lt @ encoding: [0xb8,0xbf]3954@ CHECK: uxtablt r6, r2, r9, ror #8 @ encoding: [0x52,0xfa,0x99,0xf6]3955@ CHECK: uxtab r5, r1, r4, ror #16 @ encoding: [0x51,0xfa,0xa4,0xf5]3956@ CHECK: uxtab r7, r8, r3, ror #24 @ encoding: [0x58,0xfa,0xb3,0xf7]3957 3958 3959@------------------------------------------------------------------------------3960@ UXTAB163961@------------------------------------------------------------------------------3962 it ge3963 uxtab16ge r0, r1, r43964 uxtab16 r6, r2, r7, ror #03965 uxtab16 r3, r5, r8, ror #83966 uxtab16 r3, r2, r1, ror #163967 it eq3968 uxtab16eq r1, r2, r3, ror #243969 3970@ CHECK: it ge @ encoding: [0xa8,0xbf]3971@ CHECK: uxtab16ge r0, r1, r4 @ encoding: [0x31,0xfa,0x84,0xf0]3972@ CHECK: uxtab16 r6, r2, r7 @ encoding: [0x32,0xfa,0x87,0xf6]3973@ CHECK: uxtab16 r3, r5, r8, ror #8 @ encoding: [0x35,0xfa,0x98,0xf3]3974@ CHECK: uxtab16 r3, r2, r1, ror #16 @ encoding: [0x32,0xfa,0xa1,0xf3]3975@ CHECK: it eq @ encoding: [0x08,0xbf]3976@ CHECK: uxtab16eq r1, r2, r3, ror #24 @ encoding: [0x32,0xfa,0xb3,0xf1]3977 3978 3979@------------------------------------------------------------------------------3980@ UXTAH3981@------------------------------------------------------------------------------3982 uxtah r1, r3, r93983 it hi3984 uxtahhi r6, r1, r6, ror #03985 uxtah r3, r8, r3, ror #83986 it lo3987 uxtahlo r2, r2, r4, ror #163988 uxtah r9, r3, r3, ror #243989 3990@ CHECK: uxtah r1, r3, r9 @ encoding: [0x13,0xfa,0x89,0xf1]3991@ CHECK: it hi @ encoding: [0x88,0xbf]3992@ CHECK: uxtahhi r6, r1, r6 @ encoding: [0x11,0xfa,0x86,0xf6]3993@ CHECK: uxtah r3, r8, r3, ror #8 @ encoding: [0x18,0xfa,0x93,0xf3]3994@ CHECK: it lo @ encoding: [0x38,0xbf]3995@ CHECK: uxtahlo r2, r2, r4, ror #16 @ encoding: [0x12,0xfa,0xa4,0xf2]3996@ CHECK: uxtah r9, r3, r3, ror #24 @ encoding: [0x13,0xfa,0xb3,0xf9]3997 3998 3999@------------------------------------------------------------------------------4000@ UXTB4001@------------------------------------------------------------------------------4002 it ge4003 uxtbge r2, r44004 uxtb r5, r6, ror #04005 uxtb r6, r9, ror #84006 it cc4007 uxtbcc r5, r1, ror #164008 uxtb r8, r3, ror #244009 uxtb.w r7, r84010 4011@ CHECK: it ge @ encoding: [0xa8,0xbf]4012@ CHECK: uxtbge r2, r4 @ encoding: [0xe2,0xb2]4013@ CHECK: uxtb r5, r6 @ encoding: [0xf5,0xb2]4014@ CHECK: uxtb.w r6, r9, ror #8 @ encoding: [0x5f,0xfa,0x99,0xf6]4015@ CHECK: it lo @ encoding: [0x38,0xbf]4016@ CHECK: uxtblo.w r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5]4017@ CHECK: uxtb.w r8, r3, ror #24 @ encoding: [0x5f,0xfa,0xb3,0xf8]4018@ CHECK: uxtb.w r7, r8 @ encoding: [0x5f,0xfa,0x88,0xf7]4019 4020 4021@------------------------------------------------------------------------------4022@ UXTB164023@------------------------------------------------------------------------------4024 uxtb16 r1, r44025 uxtb16 r6, r7, ror #04026 it cs4027 uxtb16cs r3, r5, ror #84028 uxtb16 r3, r1, ror #164029 it ge4030 uxtb16ge r2, r3, ror #244031 4032@ CHECK: uxtb16 r1, r4 @ encoding: [0x3f,0xfa,0x84,0xf1]4033@ CHECK: uxtb16 r6, r7 @ encoding: [0x3f,0xfa,0x87,0xf6]4034@ CHECK: it hs @ encoding: [0x28,0xbf]4035@ CHECK: uxtb16hs r3, r5, ror #8 @ encoding: [0x3f,0xfa,0x95,0xf3]4036@ CHECK: uxtb16 r3, r1, ror #16 @ encoding: [0x3f,0xfa,0xa1,0xf3]4037@ CHECK: it ge @ encoding: [0xa8,0xbf]4038@ CHECK: uxtb16ge r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2]4039 4040 4041@------------------------------------------------------------------------------4042@ UXTH4043@------------------------------------------------------------------------------4044 it ne4045 uxthne r3, r94046 uxth r1, r6, ror #04047 uxth r3, r8, ror #84048 it le4049 uxthle r2, r2, ror #164050 uxth r9, r3, ror #244051 uxth.w r7, r84052 4053@ CHECK: it ne @ encoding: [0x18,0xbf]4054@ CHECK: uxthne.w r3, r9 @ encoding: [0x1f,0xfa,0x89,0xf3]4055@ CHECK: uxth r1, r6 @ encoding: [0xb1,0xb2]4056@ CHECK: uxth.w r3, r8, ror #8 @ encoding: [0x1f,0xfa,0x98,0xf3]4057@ CHECK: it le @ encoding: [0xd8,0xbf]4058@ CHECK: uxthle.w r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2]4059@ CHECK: uxth.w r9, r3, ror #24 @ encoding: [0x1f,0xfa,0xb3,0xf9]4060@ CHECK: uxth.w r7, r8 @ encoding: [0x1f,0xfa,0x88,0xf7]4061 4062@------------------------------------------------------------------------------4063@ WFE/WFI/YIELD/HINT4064@------------------------------------------------------------------------------4065 wfe4066 wfi4067 yield4068 itet lt4069 wfelt4070 wfige4071 yieldlt4072 hint.w #44073 hint.w #34074 hint.w #24075 hint.w #14076 hint.w #04077 hint #44078 hint #34079 hint #24080 hint #14081 hint #04082 4083 itet lt4084 hintlt #154085 hintge #164086 hintlt #2394087 4088@ CHECK: wfe @ encoding: [0x20,0xbf]4089@ CHECK: wfi @ encoding: [0x30,0xbf]4090@ CHECK: yield @ encoding: [0x10,0xbf]4091@ CHECK: itet lt @ encoding: [0xb6,0xbf]4092@ CHECK: wfelt @ encoding: [0x20,0xbf]4093@ CHECK: wfige @ encoding: [0x30,0xbf]4094@ CHECK: yieldlt @ encoding: [0x10,0xbf]4095@ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80]4096@ CHECK: wfi.w @ encoding: [0xaf,0xf3,0x03,0x80]4097@ CHECK: wfe.w @ encoding: [0xaf,0xf3,0x02,0x80]4098@ CHECK: yield.w @ encoding: [0xaf,0xf3,0x01,0x80]4099@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]4100@ CHECK: sev @ encoding: [0x40,0xbf]4101@ CHECK: wfi @ encoding: [0x30,0xbf]4102@ CHECK: wfe @ encoding: [0x20,0xbf]4103@ CHECK: yield @ encoding: [0x10,0xbf]4104@ CHECK: nop @ encoding: [0x00,0xbf]4105 4106@ CHECK: itet lt @ encoding: [0xb6,0xbf]4107@ CHECK: hintlt #15 @ encoding: [0xf0,0xbf]4108@ CHECK: hintge.w #16 @ encoding: [0xaf,0xf3,0x10,0x80]4109@ CHECK: hintlt.w #239 @ encoding: [0xaf,0xf3,0xef,0x80]4110 4111@------------------------------------------------------------------------------4112@ Unallocated wide/narrow hints4113@------------------------------------------------------------------------------4114 hint #74115 hint.w #74116@ CHECK: hint #7 @ encoding: [0x70,0xbf]4117@ CHECK: hint.w #7 @ encoding: [0xaf,0xf3,0x07,0x80]4118 4119@------------------------------------------------------------------------------4120@ Alternate syntax for LDR*(literal) encodings4121@------------------------------------------------------------------------------4122 ldrb r11, [pc, #22]4123 ldrh r11, [pc, #22]4124 ldrsb r11, [pc, #22]4125 ldrsh r11, [pc, #22]4126 ldr.w r11, [pc, #22]4127 ldrb.w r11, [pc, #22]4128 ldrh.w r11, [pc, #22]4129 ldrsb.w r11, [pc, #22]4130 ldrsh.w r11, [pc, #22]4131 4132@ CHECK: ldrb.w r11, [pc, #22] @ encoding: [0x9f,0xf8,0x16,0xb0]4133@ CHECK: ldrh.w r11, [pc, #22] @ encoding: [0xbf,0xf8,0x16,0xb0]4134@ CHECK: ldrsb.w r11, [pc, #22] @ encoding: [0x9f,0xf9,0x16,0xb0]4135@ CHECK: ldrsh.w r11, [pc, #22] @ encoding: [0xbf,0xf9,0x16,0xb0]4136@ CHECK: ldr.w r11, [pc, #22] @ encoding: [0xdf,0xf8,0x16,0xb0]4137@ CHECK: ldrb.w r11, [pc, #22] @ encoding: [0x9f,0xf8,0x16,0xb0]4138@ CHECK: ldrh.w r11, [pc, #22] @ encoding: [0xbf,0xf8,0x16,0xb0]4139@ CHECK: ldrsb.w r11, [pc, #22] @ encoding: [0x9f,0xf9,0x16,0xb0]4140@ CHECK: ldrsh.w r11, [pc, #22] @ encoding: [0xbf,0xf9,0x16,0xb0]4141 4142 ldr r11, [pc, #-22]4143 ldrb r11, [pc, #-22]4144 ldrh r11, [pc, #-22]4145 ldrsb r11, [pc, #-22]4146 ldrsh r11, [pc, #-22]4147 ldr.w r11, [pc, #-22]4148 ldrb.w r11, [pc, #-22]4149 ldrh.w r11, [pc, #-22]4150 ldrsb.w r11, [pc, #-22]4151 ldrsh.w r11, [pc, #-22]4152 4153@ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0]4154@ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0]4155@ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]4156@ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]4157@ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]4158@ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0]4159@ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0]4160@ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]4161@ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]4162@ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]4163 4164@ rdar://125963614165 ldr r1, [pc, #12]4166@ CHECK: ldr r1, [pc, #12] @ encoding: [0x03,0x49]4167 4168@ rdar://142140634169 subs pc, lr, #44170@ CHECK: subs pc, lr, #4 @ encoding: [0xde,0xf3,0x04,0x8f]4171