1@ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s 2@ RUN: llvm-mc -triple=thumbebv7-unknown-unknown -mcpu=cortex-a8 -show-encoding < %s | FileCheck --check-prefix=CHECK-BE %s 3 .syntax unified 4 .globl _func 5 6@ Check that the assembler can handle the documented syntax from the ARM ARM. 7@ For complex constructs like shifter operands, check more thoroughly for them 8@ once then spot check that following instructions accept the form generally. 9@ This gives us good coverage while keeping the overall size of the test 10@ more reasonable. 11 12 13@ FIXME: Some 3-operand instructions have a 2-operand assembly syntax. 14 15_func: 16@ CHECK: _func 17 18@------------------------------------------------------------------------------ 19@ ADC (immediate) 20@------------------------------------------------------------------------------ 21 adc r0, r1, #4 22 adcs r0, r1, #0 23 adc r1, r2, #255 24 adc r3, r7, #0x00550055 25 adc r8, r12, #0xaa00aa00 26 adc r9, r7, #0xa5a5a5a5 27 adc r5, r3, #0x87000000 28 adc r4, r2, #0x7f800000 29 adc r4, r2, #0x00000680 30 adc r0, #1 31 adc r1, #0x7f800000 32 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, r6 49 adcs r4, r5, r6 50 adc.w r9, r1, r3 51 adcs.w r9, r1, r3 52 adc r0, r1, r3, ror #4 53 adcs r0, r1, r3, lsl #7 54 adc.w r0, r1, r3, lsr #31 55 adcs.w r0, r1, r3, asr #32 56 adc r4, r5 57 adc.w r9, r1 58 adc r0, r1, ror #4 59 adc.w r0, r1, lsr #31 60 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 eq 79 addeq r1, r2, #4 80 addwne r5, r3, #1023 81 addeq r4, r5, #293 82 add r2, sp, #1024 83 add r2, r8, #0xff00 84 add r2, r3, #257 85 addw r2, r3, #257 86 add r12, r6, #0x100 87 addw r12, r6, #0x100 88 adds r1, r2, #0x1f0 89 add r2, #1 90 add r0, r0, #32 91 adds r2, r2, #56 92 adds r2, #56 93 add r1, r7, #0xcbcbcbcb 94 95 adds.w r2, #-16 96 adds.w r2, r2, #-16 97 addw r2, #-16 98 addw r2, #-16 99 addw r2, r2, #-16 100 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.6 127@------------------------------------------------------------------------------ 128 add r1, r2, r8 129 add r5, r9, r2, asr #32 130 adds r7, r3, r1, lsl #31 131 adds.w r0, r3, r6, lsr #25 132 add.w r4, r8, r1, ror #12 133 adds r1, r1, r7 // T1 134 it eq 135 addeq r1, r3, r5 // T1 136 it eq 137 addeq r1, r1, r5 // T1 138 it eq 139 addseq r1, r3, r5 // T3 140 it eq 141 addseq r1, r1, r5 // T3 142 add r10, r8 143 add r10, r10, r8 144 it eq 145 addeq r1, r10 // T2 146 it eq 147 addseq r1, r10 // T3 148 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.9 172@------------------------------------------------------------------------------ 173 it eq 174@ CHECK: it eq @ encoding: [0x08,0xbf] 175 addeq r7, sp, #1020 // T1 176@ CHECK: addeq r7, sp, #1020 @ encoding: [0xff,0xaf] 177 178 it eq 179@ CHECK: it eq @ encoding: [0x08,0xbf] 180 addeq sp, sp, #508 // T2 181@ FIXME: ARMARM says 'addeq sp, sp, #508' 182@ CHECK: addeq sp, #508 @ encoding: [0x7f,0xb0] 183 184 add r7, sp, #15 // T3 185@ CHECK: add.w r7, sp, #15 @ encoding: [0x0d,0xf1,0x0f,0x07] 186 adds r7, sp, #16 // T3 187@ CHECK: adds.w r7, sp, #16 @ encoding: [0x1d,0xf1,0x10,0x07] 188 add r8, sp, #16 // T3 189@ CHECK: add.w r8, sp, #16 @ encoding: [0x0d,0xf1,0x10,0x08] 190 191 addw r6, sp, #1020 // T4 192@ CHECK: addw r6, sp, #1020 @ encoding: [0x0d,0xf2,0xfc,0x36] 193 add r6, sp, #1019 // T4 194@ CHECK: addw r6, sp, #1019 @ encoding: [0x0d,0xf2,0xfb,0x36] 195 addw r0, r0, #4095 196 addw r0, #4095 197 add r0, r0, #4095 198 add r0, #4095 199@ 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, #-4096 204add r0, r0, #-4096 205add.w r0, #-4096 206add r0, #-4096 207@ 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, #-4096 212adds r0, r0, #-4096 213adds.w r0, #-4096 214adds r0, #-4096 215@ 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 //T3 223 add.w sp, #0x1fe0000 224 add sp, sp, #0x1fe0000 225 add sp, #0x1fe0000 226@ 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 //T3 231 adds.w sp, #0x1fe0000 232 adds sp, sp, #0x1fe0000 233 adds sp, #0x1fe0000 234@ 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 //T4 239 add sp, sp, #4095 240 addw sp, #4095 241 add sp, #4095 242@ 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 //T2 247 add sp, #128 248@ CHECK-NEXT: add sp, #128 @ encoding: [0x20,0xb0] 249@ CHECK-NEXT: add sp, #128 @ encoding: [0x20,0xb0] 250 adds sp, sp, #128 //T3 251 adds sp, #128 252@ 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 //T1 255@ CHECK-NEXT: add r0, sp, #128 @ encoding: [0x20,0xa8] 256 adds r0, sp, #128 //T3 257@ CHECK-NEXT: adds.w r0, sp, #128 @ encoding: [0x1d,0xf1,0x80,0x00] 258 addw r0, sp, #128 259@ 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, #-508 264add sp, #-508 265@ CHECK-NEXT: sub sp, #508 @ encoding: [0xff,0xb0] 266@ CHECK-NEXT: sub sp, #508 @ encoding: [0xff,0xb0] 267addw sp, sp, #-4095 268add sp, sp, #-4095 269addw sp, #-4095 270add sp, #-4095 271@ 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, #-4096 276add sp, sp, #-4096 277add.w sp, #-4096 278add sp, #-4096 279@ 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, #-4096 284adds sp, sp, #-4096 285adds.w sp, #-4096 286adds sp, #-4096 287@ 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.10 293@------------------------------------------------------------------------------ 294 it eq 295@ CHECK: it eq @ encoding: [0x08,0xbf] 296 addeq r8, sp, r8 // T1 297@ CHECK: addeq r8, sp, r8 @ encoding: [0xe8,0x44] 298 it eq 299@ CHECK: it eq @ encoding: [0x08,0xbf] 300 addeq r8, sp // T1 301@ CHECK: addeq r8, sp @ encoding: [0xe8,0x44] 302 303 it eq 304@ CHECK: it eq @ encoding: [0x08,0xbf] 305 addeq sp, r9 // T2 306@ CHECK: addeq sp, r9 @ encoding: [0xcd,0x44] 307 308 add r2, sp, ip // T3 309@ CHECK: add.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02] 310 it eq 311@ CHECK: it eq @ encoding: [0x08,0xbf] 312 addeq r2, sp, ip // T3 313@ CHECK: addeq.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02] 314 add.w r0, sp, r0, ror #2 315 add r0, sp, r0, ror #2 316 add sp, r1, lsl #15 317 adds.w r0, sp, r0, ror #2 318 adds r0, sp, r0, ror #2 319 adds.w sp, sp, r0, ror #31 320 adds sp, sp, r0, ror #31 321 adds sp, r0, ror #31 322@ 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: ADR 332@------------------------------------------------------------------------------ 333 334 subw r11, pc, #3270 335 adr.w r2, #3 336 adr.w r11, #-826 337 adr.w r1, #-0x0 338 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, #0xff000 348 ands r3, r12, #0xf 349 and r1, #0xff 350 and r1, r1, #0xff 351 and r5, r4, #0xffffffff 352 ands r1, r9, #0xffffffff 353 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, r8 365 and r1, r4, r8, asr #3 366 ands r2, r1, r7, lsl #1 367 ands.w r4, r5, r2, lsr #20 368 and.w r9, r12, r1, ror #17 369 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, #12 380 asrs r8, r3, #32 381 asrs.w r2, r3, #1 382 asr r2, r3, #4 383 asrs r2, r12, #15 384 385 asr r3, #19 386 asrs r8, #2 387 asrs.w r7, #5 388 asr.w r12, #21 389 390 asrs r1, r2, #1 391 itt eq 392 asrseq r1, r2, #1 393 asreq r1, r2, #1 394 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, r2 415 asr.w r1, r2 416 asrs r3, r4, r8 417 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@ B 425@------------------------------------------------------------------------------ 426 b.w _bar 427 beq.w _bar 428 it eq 429 beq.w _bar 430 bmi.w #-183396 431 432@ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 433@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 434@ CHECK-BE: b.w _bar @ encoding: [0xf0'A',A,0x90'A',A] 435@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 436@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A'] 437@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch 438@ CHECK-BE: beq.w _bar @ encoding: [0xf0'A',A,0x80'A',A] 439@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch 440@ 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_uncondbranch 443@ CHECK-BE: beq.w _bar @ encoding: [0xf0'A',A,0x90'A',A] 444@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 445@ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9] 446 447 448@------------------------------------------------------------------------------ 449@ BFC 450@------------------------------------------------------------------------------ 451 bfc r5, #3, #17 452 it lo 453 bfccc r5, #3, #17 454 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@ BFI 462@------------------------------------------------------------------------------ 463 bfi r5, r2, #3, #17 464 it ne 465 bfine r5, r2, #3, #17 466 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@ BIC 474@------------------------------------------------------------------------------ 475 bic r10, r1, #0xf 476 bic r5, r2, #0xffffffff 477 bics r11, r10, #0xffffffff 478 bic r12, r3, r6 479 bic r11, r2, r6, lsl #12 480 bic r8, r4, r1, lsr #11 481 bic r7, r5, r7, lsr #15 482 bic r6, r7, r9, asr #32 483 bic r5, r6, r8, ror #1 484 485 @ destination register is optional 486 bic r1, #0xf 487 bic r1, r1 488 bic r4, r2, lsl #31 489 bic r6, r3, lsr #12 490 bic r7, r4, lsr #7 491 bic r8, r5, asr #15 492 bic r12, r6, ror #29 493 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@ BKPT 514@------------------------------------------------------------------------------ 515 it pl 516 bkpt #234 517 518@ CHECK: it pl @ encoding: [0x58,0xbf] 519@ CHECK: bkpt #234 @ encoding: [0xea,0xbe] 520 521@------------------------------------------------------------------------------ 522@ BXJ 523@------------------------------------------------------------------------------ 524 bxj r5 525 it ne 526 bxjne r7 527 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/CBNZ 535@------------------------------------------------------------------------------ 536 cbnz r7, #6 537 cbnz r7, #12 538 cbz r6, _bar 539 cbnz r6, _bar 540 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_cb 545@ CHECK-BE: cbz r6, _bar @ encoding: [0xb1'A',0x06'A'] 546@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 547@ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A'] 548@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 549@ CHECK-BE: cbnz r6, _bar @ encoding: [0xb9'A',0x06'A'] 550@ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 551 552 553@------------------------------------------------------------------------------ 554@ CDP/CDP2 555@------------------------------------------------------------------------------ 556 cdp p7, #1, c1, c1, c1, #4 557 cdp2 p7, #1, c1, c1, c1, #4 558 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@ CLREX 565@------------------------------------------------------------------------------ 566 clrex 567 it ne 568 clrexne 569 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@ CLZ 577@------------------------------------------------------------------------------ 578 clz r1, r2 579 it eq 580 clzeq r1, r2 581 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@ CMN 589@------------------------------------------------------------------------------ 590 cmn r1, #0xf 591 cmn r8, r6 592 cmn r1, r6, lsl #10 593 cmn r1, r6, lsr #10 594 cmn sp, r6, lsr #10 595 cmn r1, r6, asr #10 596 cmn r1, r6, ror #10 597 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@ CMP 609@------------------------------------------------------------------------------ 610 cmp r5, #0xff00 611 cmp.w r4, r12 612 cmp r9, r6, lsl #12 613 cmp r3, r7, lsr #31 614 cmp sp, r6, lsr #1 615 cmp r2, r5, asr #24 616 cmp r1, r4, ror #15 617 cmp r2, #-2 618 cmp r9, #1 619 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@ CPS 632@------------------------------------------------------------------------------ 633 634 cpsie f 635 cpsid a 636 cpsie.w f 637 cpsid.w a 638 cpsie i, #3 639 cpsie.w i, #3 640 cpsid f, #9 641 cpsid.w f, #9 642 cps #0 643 cps.w #0 644 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@ DBG 658@------------------------------------------------------------------------------ 659 dbg #5 660 dbg #0 661 dbg #15 662 dbg.w #0 663 it ne 664 dbgne.w #0 665 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@ DMB 676@------------------------------------------------------------------------------ 677 dmb #0xf 678 dmb #0xe 679 dmb #0xd 680 dmb #0xc 681 dmb #0xb 682 dmb #0xa 683 dmb #0x9 684 dmb #0x8 685 dmb #0x7 686 dmb #0x6 687 dmb #0x5 688 dmb #0x4 689 dmb #0x3 690 dmb #0x2 691 dmb #0x1 692 dmb #0x0 693 694 dmb sy 695 dmb.w sy 696 dmb st 697 dmb sh 698 dmb ish 699 dmb shst 700 dmb ishst 701 dmb un 702 dmb nsh 703 dmb unst 704 dmb nshst 705 dmb osh 706 dmb oshst 707 dmb 708 dmb.w 709 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@ DSB 746@------------------------------------------------------------------------------ 747 dsb #0xf 748 dsb #0xe 749 dsb #0xd 750 dsb #0xc 751 dsb #0xb 752 dsb #0xa 753 dsb #0x9 754 dsb #0x8 755 dsb #0x7 756 dsb #0x6 757 dsb #0x5 758 dsb #0x4 759 dsb #0x3 760 dsb #0x2 761 dsb #0x1 762 dsb #0x0 763 764 dsb sy 765 dsb.w sy 766 dsb st 767 dsb sh 768 dsb ish 769 dsb shst 770 dsb ishst 771 dsb un 772 dsb nsh 773 dsb unst 774 dsb nshst 775 dsb osh 776 dsb oshst 777 dsb 778 dsb.w 779 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@ EOR 816@------------------------------------------------------------------------------ 817 eor r4, r5, #0xf000 818 eor r4, r5, r6 819 eor r4, r5, r6, lsl #5 820 eor r4, r5, r6, lsr #5 821 eor r4, r5, r6, lsr #5 822 eor r4, r5, r6, asr #5 823 eor r4, r5, r6, ror #5 824 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@ ISB 836@------------------------------------------------------------------------------ 837 isb sy 838 isb.w sy 839 isb 840 isb.w 841 isb #15 842 isb #1 843 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@ IT 854@------------------------------------------------------------------------------ 855@ Test encodings of a few full IT blocks, not just the IT instruction 856 857 iteet eq 858 addeq r0, r1, r2 859 nopne 860 subne r5, r6, r7 861 addeq r1, r2, #4 862 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 EQ 872 ADDEQ R0, R1, R2 873 NOPNE 874 SUBNE R5, R6, R7 875 ADDEQ R1, R2, #4 876 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], #16 891 ldc2 p5, c3, [r6], #-72 892 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], #16 897 ldc2l p1, c3, [r12], #-72 898 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], #16 904 ldc p4, c9, [r5], #-72 905 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], #16 910 ldcl p7, c15, [r11], #-72 911 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@ LDMIA 945@------------------------------------------------------------------------------ 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@ LDMDB 985@------------------------------------------------------------------------------ 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], #255 1013 ldr r8, [sp], #4 1014 ldr lr, [sp], #-4 1015 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, _foo 1033 ldr lr, (_strcmp-4) 1034 ldr sp, _foo 1035 ldr pc, _foo 1036 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_12 1039@ 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_12 1041@ 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_12 1043@ 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_12 1045@ 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_12 1047@ 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_12 1049@ 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_12 1051@ 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_12 1053 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], #255 1124 ldrb r9, [r2], #4 1125 ldrb r3, [sp], #-4 1126 ldrb.w r5, [r5, #-4] 1127 ldrb.w r5, [r6, #32] 1128 ldrb.w r5, [r8, #255]! 1129 ldrb.w r9, [r2], #4 1130 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@ LDRBT 1168@------------------------------------------------------------------------------ 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@ LDRD 1182@------------------------------------------------------------------------------ 1183 ldrd r3, r5, [r6, #24] 1184 ldrd r3, r5, [r6, #24]! 1185 ldrd r3, r5, [r6], #4 1186 ldrd r3, r5, [r6], #-8 1187 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], #-0 1192 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/LDREXD 1211@------------------------------------------------------------------------------ 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], #255 1239 ldrh r9, [r2], #4 1240 ldrh r3, [sp], #-4 1241 ldrh.w r5, [r5, #-4] 1242 ldrh.w r5, [r6, #32] 1243 ldrh.w r5, [r8, #255]! 1244 ldrh.w r9, [r2], #4 1245 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, _bar 1285 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_12 1288@ 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_12 1290 1291 1292@------------------------------------------------------------------------------ 1293@ LDRHT 1294@------------------------------------------------------------------------------ 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], #255 1318 ldrsb r9, [r2], #4 1319 ldrsb r3, [sp], #-4 1320 ldrsb.w r5, [r5, #-4] 1321 ldrsb.w r5, [r6, #32] 1322 ldrsb.w r5, [r8, #255]! 1323 ldrsb.w r9, [r2], #4 1324 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], #255 1355 ldrsb r9, [r2], #4 1356 ldrsb r3, [sp], #-4 1357 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, _bar 1376 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_12 1379@ 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_12 1381 1382 1383@------------------------------------------------------------------------------ 1384@ LDRSBT 1385@------------------------------------------------------------------------------ 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], #255 1409 ldrsh r9, [r2], #4 1410 ldrsh r3, [sp], #-4 1411 ldrsh.w r5, [r5, #-4] 1412 ldrsh.w r5, [r6, #32] 1413 ldrsh.w r5, [r8, #255]! 1414 ldrsh.w r9, [r2], #4 1415 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], #255 1446 ldrsh r9, [r2], #4 1447 ldrsh r3, [sp], #-4 1448 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, _bar 1467 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_12 1470@ 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_12 1472 1473@ TEMPORARILY DISABLED: 1474@ ldrsh.w r4, [pc, #1435] 1475@ : ldrsh.w r4, [pc, #1435] @ encoding: [0x3f,0xf9,0x9b,0x45] 1476 1477@------------------------------------------------------------------------------ 1478@ LDRSHT 1479@------------------------------------------------------------------------------ 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@ LDRT 1493@------------------------------------------------------------------------------ 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, #12 1509 lsls r8, r3, #31 1510 lsls.w r2, r3, #1 1511 lsl r2, r3, #4 1512 lsls r2, r12, #15 1513 1514 lsl r3, #19 1515 lsls r8, #2 1516 lsls.w r7, #5 1517 lsl.w r12, #21 1518 1519 lsls r1, r2, #1 1520 itt eq 1521 lslseq r1, r2, #1 1522 lsleq r1, r2, #1 1523 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, r2 1544 lsl.w r1, r2 1545 lsls r3, r4, r8 1546 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, #12 1556 lsrs r8, r3, #32 1557 lsrs.w r2, r3, #1 1558 lsr r2, r3, #4 1559 lsrs r2, r12, #15 1560 1561 lsr r3, #19 1562 lsrs r8, #2 1563 lsrs.w r7, #5 1564 lsr.w r12, #21 1565 1566 lsrs r1, r2, #1 1567 itt eq 1568 lsrseq r1, r2, #1 1569 lsreq r1, r2, #1 1570 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, r2 1591 lsr.w r1, r2 1592 lsrs r3, r4, r8 1593 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/MCR2 1600@------------------------------------------------------------------------------ 1601 mcr p7, #1, r5, c1, c1, #4 1602 mcr2 p7, #1, r5, c1, c1, #4 1603 mcr p14, #0, r4, c0, c5 1604 mcr2 p4, #2, r2, c1, c3 1605 MCR P7, #1, R5, C1, C1, #4 1606 MCR2 P7, #1, R5, C1, C1, #4 1607 MCR P14, #0, R4, C0, C5 1608 MCR2 P4, #2, R2, C1, C3 1609 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/MCRR2 1622@------------------------------------------------------------------------------ 1623 mcrr p7, #15, r5, r4, c1 1624 mcrr2 p7, #15, r5, r4, c1 1625 MCRR P7, #15, R5, R4, C1 1626 MCRR2 P7, #15, R5, R4, C1 1627 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/MLS 1636@------------------------------------------------------------------------------ 1637 mla r1,r2,r3,r4 1638 mls r1,r2,r3,r4 1639 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, #21 1648 movs.w r1, #21 1649 movs r8, #21 1650 movw r0, #65535 1651 movw r1, #43777 1652 movw r1, #43792 1653 mov.w r0, #0x3fc0000 1654 mov r0, #0x3fc0000 1655 movs.w r0, #0x3fc0000 1656 itte eq 1657 movseq r1, #12 1658 moveq r1, #12 1659 movne.w r1, #12 1660 mov.w r6, #450 1661 it lo 1662 movlo r1, #-1 1663 1664 @ alias for mvn 1665 mov r3, #-3 1666 mov r11, #0xabcd 1667 movs r0, #1 1668 it ne 1669 movne r3, #15 1670 1671 itt eq 1672 moveq r0, #255 1673 moveq r1, #256 1674 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 #16 1705 mov.w r6, r2, lsl #16 1706 mov r6, r2, lsr #16 1707 mov.w r6, r2, lsr #16 1708 movs r6, r2, asr #32 1709 movs.w r6, r2, asr #32 1710 movs r6, r2, ror #5 1711 movs.w r6, r2, ror #5 1712 movs r4, r4, lsl r5 1713 movs.w r4, r4, lsl r5 1714 movs r4, r4, lsr r5 1715 movs.w r4, r4, lsr r5 1716 movs r4, r4, asr r5 1717 movs.w r4, r4, asr r5 1718 movs r4, r4, ror r5 1719 movs.w r4, r4, ror r5 1720 mov r4, r4, lsl r5 1721 movs r4, r4, ror r8 1722 movs r4, r5, lsr r6 1723 itttt eq 1724 moveq r4, r4, lsl r5 1725 moveq r4, r4, lsr r5 1726 moveq r4, r4, asr r5 1727 moveq r4, r4, ror r5 1728 mov r4, r4, rrx 1729 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@ MOVT 1759@------------------------------------------------------------------------------ 1760 movt r3, #7 1761 movt r6, #0xffff 1762 it eq 1763 movteq r4, #0xff0 1764 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/MRC2 1772@------------------------------------------------------------------------------ 1773 mrc p14, #0, r1, c1, c2, #4 1774 mrc p15, #7, apsr_nzcv, c15, c6, #6 1775 mrc p9, #1, r1, c2, c2 1776 mrc2 p12, #3, r3, c3, c4 1777 mrc2 p14, #0, r1, c1, c2, #4 1778 mrc2 p8, #7, apsr_nzcv, c15, c0, #1 1779 MRC P14, #0, R1, C1, C2, #4 1780 MRC P15, #7, APSR_NZCV, C15, C6, #6 1781 MRC P9, #1, R1, C2, C2 1782 MRC2 P12, #3, R3, C3, C4 1783 MRC2 P14, #0, R1, C1, C2, #4 1784 MRC2 P8, #7, APSR_NZCV, C15, C0, #1 1785 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/MRRC2 1801@------------------------------------------------------------------------------ 1802 mrrc p7, #1, r5, r4, c1 1803 mrrc2 p7, #1, r5, r4, c1 1804 MRRC P7, #1, R5, R4, C1 1805 MRRC2 P7, #1, R5, R4, C1 1806 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@ MRS 1815@------------------------------------------------------------------------------ 1816 mrs r8, apsr 1817 mrs r8, cpsr 1818 mrs r8, spsr 1819 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@ MSR 1827@------------------------------------------------------------------------------ 1828 msr apsr, r1 1829 msr apsr_g, r2 1830 msr apsr_nzcvq, r3 1831 msr APSR_nzcvq, r4 1832 msr apsr_nzcvqg, r5 1833 msr cpsr_fc, r6 1834 msr cpsr_c, r7 1835 msr cpsr_x, r8 1836 msr cpsr_fc, r9 1837 msr cpsr_all, r11 1838 msr cpsr_fsx, r12 1839 msr spsr_fc, r0 1840 msr SPSR_fsxc, r5 1841 msr cpsr_fsxc, r8 1842 msr cpsr, r3 1843 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@ MUL 1863@------------------------------------------------------------------------------ 1864 muls r3, r4, r3 1865 mul r3, r4, r3 1866 mul r3, r4, r6 1867 it eq 1868 muleq r3, r4, r5 1869 it le 1870 mulle r4, r4, r8 1871 mul r5, r6 1872 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, #21 1887 mvn r0, #0x3fc0000 1888 mvns r0, #0x3fc0000 1889 itte eq 1890 mvnseq r1, #12 1891 mvneq.w r1, #12 1892 mvnne r1, #12 1893 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, r3 1907 mvns r2, r3 1908 mvn r5, r6, lsl #19 1909 mvn r5, r6, lsr #9 1910 mvn.w r5, r6, asr #4 1911 mvn r5, r6, ror #6 1912 mvn r5, r6, rrx 1913 it eq 1914 mvneq r2, r3 1915 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@ NEG 1928@------------------------------------------------------------------------------ 1929 neg r5, r2 1930 neg r5, r8 1931 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@ NOP 1938@------------------------------------------------------------------------------ 1939 nop.w 1940 1941@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80] 1942 1943 1944@------------------------------------------------------------------------------ 1945@ ORN 1946@------------------------------------------------------------------------------ 1947 orn r4, r5, #0xf000 1948 orn.w r4, r5, #0xf000 1949 orn r4, r5, r6 1950 orn.w r4, r5, r6 1951 orns r4, r5, r6 1952 orns.w r4, r5, r6 1953 orn r4, r5, r6, lsl #5 1954 orn.w r4, r5, r6, lsl #5 1955 orns r4, r5, r6, lsr #5 1956 orn r4, r5, r6, lsr #5 1957 orns r4, r5, r6, asr #5 1958 orn r4, r5, r6, ror #5 1959 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@ ORR 1976@------------------------------------------------------------------------------ 1977 orr r4, r5, #0xf000 1978 orr r4, r5, r6 1979 orr r4, r5, r6, lsl #5 1980 orrs r4, r5, r6, lsr #5 1981 orr r4, r5, r6, lsr #5 1982 orrs r4, r5, r6, asr #5 1983 orr r4, r5, r6, ror #5 1984 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@ PKH 1996@------------------------------------------------------------------------------ 1997 pkhbt r2, r2, r3 1998 pkhbt r2, r2, r3, lsl #31 1999 pkhbt r2, r2, r3, lsl #0 2000 pkhbt r2, r2, r3, lsl #15 2001 2002 pkhtb r2, r2, r3 2003 pkhtb r2, r2, r3, asr #31 2004 pkhtb r2, r2, r3, asr #15 2005 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 _foo 2042 2043@ FIXME: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A'] 2044 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 2045 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 _foo 2099 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_12 2103 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/QADD8 2144@------------------------------------------------------------------------------ 2145 qadd r1, r2, r3 2146 qadd16 r1, r2, r3 2147 qadd8 r1, r2, r3 2148 itte gt 2149 qaddgt r1, r2, r3 2150 qadd16gt r1, r2, r3 2151 qadd8le r1, r2, r3 2152 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/QDSUB 2164@------------------------------------------------------------------------------ 2165 qdadd r6, r7, r8 2166 qdsub r6, r7, r8 2167 itt hi 2168 qdaddhi r6, r7, r8 2169 qdsubhi r6, r7, r8 2170 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@ QSAX 2180@------------------------------------------------------------------------------ 2181 qsax r9, r12, r0 2182 it eq 2183 qsaxeq r9, r12, r0 2184 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/QSUB8 2192@------------------------------------------------------------------------------ 2193 qsub r1, r2, r3 2194 qsub16 r1, r2, r3 2195 qsub8 r1, r2, r3 2196 itet le 2197 qsuble r1, r2, r3 2198 qsub16gt r1, r2, r3 2199 qsub8le r1, r2, r3 2200 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@ RBIT 2212@------------------------------------------------------------------------------ 2213 rbit r1, r2 2214 it ne 2215 rbitne r1, r2 2216 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@ REV 2224@------------------------------------------------------------------------------ 2225 rev.w r1, r2 2226 rev r2, r8 2227 itt ne 2228 revne r1, r2 2229 revne r1, r8 2230 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@ REV16 2240@------------------------------------------------------------------------------ 2241 rev16.w r1, r2 2242 rev16 r2, r8 2243 itt ne 2244 rev16ne r1, r2 2245 rev16ne r1, r8 2246 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@ REVSH 2256@------------------------------------------------------------------------------ 2257 revsh.w r1, r2 2258 revsh r2, r8 2259 itt ne 2260 revshne r1, r2 2261 revshne r1, r8 2262 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, #12 2274 rors r8, r3, #31 2275 rors.w r2, r3, #1 2276 ror r2, r3, #4 2277 rors r2, r12, #15 2278 2279 ror r3, #19 2280 rors r8, #2 2281 rors.w r7, #5 2282 ror.w r12, #21 2283 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, r2 2300 ror.w r1, r2 2301 rors r3, r4, r8 2302 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@ RRX 2310@------------------------------------------------------------------------------ 2311 rrx r1, r2 2312 rrxs r1, r2 2313 ite lt 2314 rrxlt r9, r12 2315 rrxsge r8, r3 2316 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, #0xff000 2327 rsbs r3, r12, #0xf 2328 rsb r1, #0xff 2329 rsb r1, r1, #0xff 2330 rsb r11, r11, #0 2331 rsb r9, #0 2332 rsbs r3, r1, #0 2333 rsb r3, r1, #0 2334 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, r8 2349 rsb.w r4, r8 2350 rsb r4, r9, r8 2351 rsb.w r4, r9, r8 2352 rsb r1, r4, r8, asr #3 2353 rsb.w r1, r4, r8, asr #3 2354 rsbs r2, r1, r7, lsl #1 2355 rsbs.w r2, r1, r7, lsl #1 2356 rsbs r0, r1, r2 2357 rsbs.w r0, r1, r2 2358 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@ SADD16 2373@------------------------------------------------------------------------------ 2374 sadd16 r3, r4, r8 2375 it ne 2376 sadd16ne r3, r4, r8 2377 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@ SADD8 2385@------------------------------------------------------------------------------ 2386 sadd8 r3, r4, r8 2387 it ne 2388 sadd8ne r3, r4, r8 2389 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@ SASX 2397@------------------------------------------------------------------------------ 2398 saddsubx r9, r2, r7 2399 it ne 2400 saddsubxne r2, r5, r6 2401 sasx r9, r2, r7 2402 it ne 2403 sasxne r2, r5, r6 2404 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, #4 2417 sbcs r0, r1, #0 2418 sbc r1, r2, #255 2419 sbc r3, r7, #0x00550055 2420 sbc r8, r12, #0xaa00aa00 2421 sbc r9, r7, #0xa5a5a5a5 2422 sbc r5, r3, #0x87000000 2423 sbc r4, r2, #0x7f800000 2424 sbc r4, r2, #0x00000680 2425 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, r6 2441 sbcs r4, r5, r6 2442 sbc.w r9, r1, r3 2443 sbcs.w r9, r1, r3 2444 sbc r0, r1, r3, ror #4 2445 sbcs r0, r1, r3, lsl #7 2446 sbc.w r0, r1, r3, lsr #31 2447 sbcs.w r0, r1, r3, asr #32 2448 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@ SBFX 2461@------------------------------------------------------------------------------ 2462 sbfx r4, r5, #16, #1 2463 it gt 2464 sbfxgt r4, r5, #16, #16 2465 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@ SEL 2473@------------------------------------------------------------------------------ 2474 sel r5, r9, r2 2475 it le 2476 selle r5, r9, r2 2477 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@ SEV 2485@------------------------------------------------------------------------------ 2486 sev.w 2487 it eq 2488 seveq.w 2489 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/SADD8 2497@------------------------------------------------------------------------------ 2498 sadd16 r1, r2, r3 2499 sadd8 r1, r2, r3 2500 ite gt 2501 sadd16gt r1, r2, r3 2502 sadd8le r1, r2, r3 2503 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@ SHASX 2513@------------------------------------------------------------------------------ 2514 shasx r4, r8, r2 2515 it gt 2516 shasxgt r4, r8, r2 2517 shaddsubx r4, r8, r2 2518 it gt 2519 shaddsubxgt r4, r8, r2 2520 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@ SHASX 2531@------------------------------------------------------------------------------ 2532 shsax r4, r8, r2 2533 it gt 2534 shsaxgt r4, r8, r2 2535 shsubaddx r4, r8, r2 2536 it gt 2537 shsubaddxgt r4, r8, r2 2538 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/SHSUB8 2549@------------------------------------------------------------------------------ 2550 shsub16 r4, r8, r2 2551 shsub8 r4, r8, r2 2552 itt gt 2553 shsub16gt r4, r8, r2 2554 shsub8gt r4, r8, r2 2555 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/SMLATT 2565@------------------------------------------------------------------------------ 2566 smlabb r3, r1, r9, r0 2567 smlabt r5, r6, r4, r1 2568 smlatb r4, r2, r3, r2 2569 smlatt r8, r3, r8, r4 2570 itete gt 2571 smlabbgt r3, r1, r9, r0 2572 smlabtle r5, r6, r4, r1 2573 smlatbgt r4, r2, r3, r2 2574 smlattle r8, r3, r8, r4 2575 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/SMLADX 2589@------------------------------------------------------------------------------ 2590 smlad r2, r3, r5, r8 2591 smladx r2, r3, r5, r8 2592 itt hi 2593 smladhi r2, r3, r5, r8 2594 smladxhi r2, r3, r5, r8 2595 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@ SMLAL 2605@------------------------------------------------------------------------------ 2606 smlal r2, r3, r5, r8 2607 it eq 2608 smlaleq r2, r3, r5, r8 2609 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/SMLALTT 2617@------------------------------------------------------------------------------ 2618 smlalbb r3, r1, r9, r0 2619 smlalbt r5, r6, r4, r1 2620 smlaltb r4, r2, r3, r2 2621 smlaltt r8, r3, r8, r4 2622 iteet ge 2623 smlalbbge r3, r1, r9, r0 2624 smlalbtlt r5, r6, r4, r1 2625 smlaltblt r4, r2, r3, r2 2626 smlalttge r8, r3, r8, r4 2627 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/SMLALDX 2641@------------------------------------------------------------------------------ 2642 smlald r2, r3, r5, r8 2643 smlaldx r2, r3, r5, r8 2644 ite eq 2645 smlaldeq r2, r3, r5, r8 2646 smlaldxne r2, r3, r5, r8 2647 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/SMLAWT 2657@------------------------------------------------------------------------------ 2658 smlawb r2, r3, r10, r8 2659 smlawt r8, r3, r5, r9 2660 ite eq 2661 smlawbeq r2, r7, r5, r8 2662 smlawtne r1, r3, r0, r8 2663 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/SMLSDX 2673@------------------------------------------------------------------------------ 2674 smlsd r2, r3, r5, r8 2675 smlsdx r2, r3, r5, r8 2676 ite le 2677 smlsdle r2, r3, r5, r8 2678 smlsdxgt r2, r3, r5, r8 2679 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/SMLSLDX 2689@------------------------------------------------------------------------------ 2690 smlsld r2, r9, r5, r1 2691 smlsldx r4, r11, r2, r8 2692 ite ge 2693 smlsldge r8, r2, r5, r6 2694 smlsldxlt r1, r0, r3, r8 2695 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/SMMLAR 2705@------------------------------------------------------------------------------ 2706 smmla r1, r2, r3, r4 2707 smmlar r4, r3, r2, r1 2708 ite lo 2709 smmlalo r1, r2, r3, r4 2710 smmlarcs r4, r3, r2, r1 2711 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/SMMLSR 2721@------------------------------------------------------------------------------ 2722 smmls r1, r2, r3, r4 2723 smmlsr r4, r3, r2, r1 2724 ite lo 2725 smmlslo r1, r2, r3, r4 2726 smmlsrcs r4, r3, r2, r1 2727 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/SMMULR 2737@------------------------------------------------------------------------------ 2738 smmul r2, r3, r4 2739 smmulr r3, r2, r1 2740 ite cc 2741 smmulcc r2, r3, r4 2742 smmulrhs r3, r2, r1 2743 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/SMUADX 2753@------------------------------------------------------------------------------ 2754 smuad r2, r3, r4 2755 smuadx r3, r2, r1 2756 ite lt 2757 smuadlt r2, r3, r4 2758 smuadxge r3, r2, r1 2759 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/SMULTT 2769@------------------------------------------------------------------------------ 2770 smulbb r3, r9, r0 2771 smulbt r5, r4, r1 2772 smultb r4, r2, r2 2773 smultt r8, r3, r4 2774 itete ge 2775 smulbbge r1, r9, r0 2776 smulbtlt r5, r6, r4 2777 smultbge r2, r3, r2 2778 smulttlt r8, r3, r4 2779 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@ SMULL 2793@------------------------------------------------------------------------------ 2794 smull r3, r9, r0, r1 2795 it eq 2796 smulleq r8, r3, r4, r5 2797 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/SMULWT 2805@------------------------------------------------------------------------------ 2806 smulwb r3, r9, r0 2807 smulwt r3, r9, r2 2808 ite gt 2809 smulwbgt r3, r9, r0 2810 smulwtle r3, r9, r2 2811 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/SMUSDX 2821@------------------------------------------------------------------------------ 2822 smusd r3, r0, r1 2823 smusdx r3, r9, r2 2824 ite eq 2825 smusdeq r8, r3, r2 2826 smusdxne r7, r4, r3 2827 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@ SRS 2837@------------------------------------------------------------------------------ 2838 srsdb sp, #1 2839 srsia sp, #0 2840 2841 srsdb sp!, #19 2842 srsia sp!, #2 2843 2844 srsea sp, #10 2845 srsfd sp, #9 2846 2847 srsea sp!, #5 2848 srsfd sp!, #5 2849 2850 srs sp, #5 2851 srs sp!, #5 2852 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 #1 2865 srsia #0 2866 2867 srsdb #19! 2868 srsia #2! 2869 2870 srsea #10 2871 srsfd #9 2872 2873 srsea #5! 2874 srsfd #5! 2875 2876 srs #5 2877 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@ SSAT 2893@------------------------------------------------------------------------------ 2894 ssat r8, #1, r10 2895 ssat r8, #1, r10, lsl #0 2896 ssat r8, #1, r10, lsl #31 2897 ssat r8, #1, r10, asr #1 2898 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@ SSAT16 2907@------------------------------------------------------------------------------ 2908 ssat16 r2, #1, r7 2909 ssat16 r3, #16, r5 2910 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@ SSAX 2917@------------------------------------------------------------------------------ 2918 ssubaddx r2, r3, r4 2919 it lt 2920 ssubaddxlt r2, r3, r4 2921 ssax r2, r3, r4 2922 it lt 2923 ssaxlt r2, r3, r4 2924 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/SSUB8 2935@------------------------------------------------------------------------------ 2936 ssub16 r1, r0, r6 2937 ssub8 r9, r2, r4 2938 ite ne 2939 ssub16ne r5, r3, r2 2940 ssub8eq r5, r1, r2 2941 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], #16 2957 stc2 p5, c3, [r6], #-72 2958 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], #16 2963 stc2l p1, c3, [r12], #-72 2964 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], #16 2970 stc p4, c9, [r5], #-72 2971 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], #16 2976 stcl p7, c15, [r11], #-72 2977 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@ STMIA 3011@------------------------------------------------------------------------------ 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@ STMDB 3049@------------------------------------------------------------------------------ 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], #255 3075 str r8, [sp], #4 3076 str lr, [sp], #-4 3077 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], #255 3121 strb r9, [r2], #4 3122 strb r3, [sp], #-4 3123 strb r4, [r8, #-0]! 3124 strb r1, [r0], #-0 3125 strb.w r5, [r5, #-4] 3126 strb.w r5, [r6, #32] 3127 strb.w r5, [r8, #255]! 3128 strb.w r9, [r2], #4 3129 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@ STRBT 3169@------------------------------------------------------------------------------ 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@ STRD 3183@------------------------------------------------------------------------------ 3184 strd r3, r5, [r6, #24] 3185 strd r3, r5, [r6, #24]! 3186 strd r3, r5, [r6], #4 3187 strd r3, r5, [r6], #-8 3188 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], #-0 3193 strd r0, r1, [r2, #256] 3194 strd r0, r1, [r2, #256]! 3195 strd r0, r1, [r2], #256 3196 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/STREXD 3213@------------------------------------------------------------------------------ 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], #255 3241 strh r9, [r2], #4 3242 strh r3, [sp], #-4 3243 strh.w r5, [r5, #-4] 3244 strh.w r5, [r6, #32] 3245 strh.w r5, [r8, #255]! 3246 strh.w r9, [r2], #4 3247 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@ STRHT 3285@------------------------------------------------------------------------------ 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@ STRT 3299@------------------------------------------------------------------------------ 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 eq 3315 subeq r1, r2, #4 3316 subwne r5, r3, #1023 3317 subeq r4, r5, #293 3318 sub r2, sp, #1024 3319 sub r2, r8, #0xff00 3320 sub r2, r3, #257 3321 subw r2, r3, #257 3322 sub r12, r6, #0x100 3323 subw r12, r6, #0x100 3324 subs r1, r2, #0x1f0 3325 sub r2, #1 3326 sub r0, r0, #32 3327 subs r2, r2, #56 3328 subs r2, #56 3329 subw r0, r0, #4095 3330 subw r0, #4095 3331 sub r0, r0, #4095 3332 sub r0, #4095 3333@ 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 //T2 3356 sub sp, sp, #0x1fe0000 3357 sub.w sp, #0x1fe0000 3358 sub sp, #0x1fe0000 3359@ 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 //T2 3364 subs sp, sp, #0x1fe0000 3365 subs.w sp, #0x1fe0000 3366 subs sp, #0x1fe0000 3367@ 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 //T3 3372 sub sp, sp, #4095 3373 subw sp, #4095 3374 sub sp, #4095 3375@ 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 //T1 3380@ CHECK-NEXT: sub sp, #128 @ encoding: [0xa0,0xb0] 3381 subs.w sp, #128 //T2 3382 subs sp, #128 //T2 3383@ 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 //T2 3386@ CHECK-NEXT: sub.w sp, sp, #128 @ encoding: [0xad,0xf1,0x80,0x0d] 3387 subw sp, #128 //T4 3388@ CHECK-NEXT: subw sp, sp, #128 @ encoding: [0xad,0xf2,0x80,0x0d] 3389@------------------------------------------------------------------------------ 3390@ SUB (register) 3391@------------------------------------------------------------------------------ 3392 sub r4, r5, r6 3393 sub r4, r5, r6, lsl #5 3394 sub r4, r5, r6, lsr #5 3395 sub.w r4, r5, r6, lsr #5 3396 sub r4, r5, r6, asr #5 3397 sub r4, r5, r6, ror #5 3398 sub.w r5, r2, r12, rrx 3399 sub r2, sp, ip 3400 sub sp, sp, ip 3401 sub sp, ip 3402 sub.w r2, sp, ip 3403 sub.w sp, sp, ip 3404 sub.w sp, ip 3405 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@ SVC 3423@------------------------------------------------------------------------------ 3424 svc #0 3425 it eq 3426 svceq #255 3427 it ne 3428 swine #33 3429 itt eq 3430 svceq #0 3431 svceq #1 3432 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@ SXTAB 3445@------------------------------------------------------------------------------ 3446 sxtab r2, r3, r4 3447 sxtab r4, r5, r6, ror #0 3448 it lt 3449 sxtablt r6, r2, r9, ror #8 3450 sxtab r5, r1, r4, ror #16 3451 sxtab r7, r8, r3, ror #24 3452 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@ SXTAB16 3463@------------------------------------------------------------------------------ 3464 sxtab16 r6, r2, r7, ror #0 3465 sxtab16 r3, r5, r8, ror #8 3466 sxtab16 r3, r2, r1, ror #16 3467 ite ne 3468 sxtab16ne r0, r1, r4 3469 sxtab16eq r1, r2, r3, ror #24 3470 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@ SXTAH 3481@------------------------------------------------------------------------------ 3482 sxtah r1, r3, r9 3483 sxtah r3, r8, r3, ror #8 3484 sxtah r9, r3, r3, ror #24 3485 ite hi 3486 sxtahhi r6, r1, r6, ror #0 3487 sxtahls r2, r2, r4, ror #16 3488 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@ SXTB 3499@------------------------------------------------------------------------------ 3500 sxtb r5, r6, ror #0 3501 sxtb r6, r9, ror #8 3502 sxtb r8, r3, ror #24 3503 ite ge 3504 sxtbge r2, r4 3505 sxtblt r5, r1, ror #16 3506 sxtb.w r7, r8 3507 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@ SXTB16 3519@------------------------------------------------------------------------------ 3520 sxtb16 r1, r4 3521 sxtb16 r6, r7, ror #0 3522 sxtb16 r3, r1, ror #16 3523 ite cs 3524 sxtb16cs r3, r5, ror #8 3525 sxtb16lo r2, r3, ror #24 3526 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@ SXTH 3537@------------------------------------------------------------------------------ 3538 sxth r1, r6, ror #0 3539 sxth r3, r8, ror #8 3540 sxth r9, r3, ror #24 3541 itt ne 3542 sxthne r3, r9 3543 sxthne r2, r2, ror #16 3544 sxth.w r7, r8 3545 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@ SXTB 3557@------------------------------------------------------------------------------ 3558 sxtb r5, r6, ror #0 3559 sxtb.w r6, r9, ror #8 3560 sxtb r8, r3, ror #24 3561 ite ge 3562 sxtbge r2, r4 3563 sxtblt r5, r1, ror #16 3564 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@ SXTB16 3575@------------------------------------------------------------------------------ 3576 sxtb16 r1, r4 3577 sxtb16 r6, r7, ror #0 3578 sxtb16 r3, r1, ror #16 3579 ite cs 3580 sxtb16cs r3, r5, ror #8 3581 sxtb16lo r2, r3, ror #24 3582 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@ SXTH 3593@------------------------------------------------------------------------------ 3594 sxth r1, r6, ror #0 3595 sxth.w r3, r8, ror #8 3596 sxth r9, r3, ror #24 3597 itt ne 3598 sxthne r3, r9 3599 sxthne r2, r2, ror #16 3600 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/TBH 3611@------------------------------------------------------------------------------ 3612 tbb [r3, r8] 3613 tbh [r3, r8, lsl #1] 3614 it eq 3615 tbbeq [r3, r8] 3616 it cs 3617 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@ TEQ 3629@------------------------------------------------------------------------------ 3630 teq r5, #0xf000 3631 teq r4, r5 3632 teq r4, r5, lsl #5 3633 teq r4, r5, lsr #5 3634 teq r4, r5, lsr #5 3635 teq r4, r5, asr #5 3636 teq r4, r5, ror #5 3637 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@ TST 3649@------------------------------------------------------------------------------ 3650 tst r5, #0xf000 3651 tst r2, r5 3652 tst r3, r12, lsl #5 3653 tst r4, r11, lsr #4 3654 tst r5, r10, lsr #12 3655 tst r6, r9, asr #30 3656 tst r7, r8, ror #2 3657 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/UADD8 3669@------------------------------------------------------------------------------ 3670 uadd16 r1, r2, r3 3671 uadd8 r1, r2, r3 3672 ite gt 3673 uadd16gt r1, r2, r3 3674 uadd8le r1, r2, r3 3675 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@ UASX 3685@------------------------------------------------------------------------------ 3686 uasx r9, r12, r0 3687 it eq 3688 uasxeq r9, r12, r0 3689 uaddsubx r9, r12, r0 3690 it eq 3691 uaddsubxeq r9, r12, r0 3692 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@ UBFX 3703@------------------------------------------------------------------------------ 3704 ubfx r4, r5, #16, #1 3705 it gt 3706 ubfxgt r4, r5, #16, #16 3707 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/UHADD8 3715@------------------------------------------------------------------------------ 3716 uhadd16 r4, r8, r2 3717 uhadd8 r4, r8, r2 3718 itt gt 3719 uhadd16gt r4, r8, r2 3720 uhadd8gt r4, r8, r2 3721 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/UHSAX 3731@------------------------------------------------------------------------------ 3732 uhasx r4, r1, r5 3733 uhsax r5, r6, r6 3734 itt gt 3735 uhasxgt r6, r9, r8 3736 uhsaxgt r7, r8, r12 3737 uhaddsubx r4, r1, r5 3738 uhsubaddx r5, r6, r6 3739 itt gt 3740 uhaddsubxgt r6, r9, r8 3741 uhsubaddxgt r7, r8, r12 3742 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/UHSUB8 3757@------------------------------------------------------------------------------ 3758 uhsub16 r5, r8, r3 3759 uhsub8 r1, r7, r6 3760 itt lt 3761 uhsub16lt r4, r9, r12 3762 uhsub8lt r3, r1, r5 3763 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@ UMAAL 3773@------------------------------------------------------------------------------ 3774 umaal r3, r4, r5, r6 3775 it lt 3776 umaallt r3, r4, r5, r6 3777 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@ UMLAL 3785@------------------------------------------------------------------------------ 3786 umlal r2, r4, r6, r8 3787 it gt 3788 umlalgt r6, r1, r2, r6 3789 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@ UMULL 3797@------------------------------------------------------------------------------ 3798 umull r2, r4, r6, r8 3799 it gt 3800 umullgt r6, r1, r2, r6 3801 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/UQADD8 3809@------------------------------------------------------------------------------ 3810 uqadd16 r1, r2, r3 3811 uqadd8 r3, r4, r8 3812 ite gt 3813 uqadd16gt r4, r7, r9 3814 uqadd8le r8, r1, r2 3815 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/UQSAX 3825@------------------------------------------------------------------------------ 3826 uqasx r1, r2, r3 3827 uqsax r3, r4, r8 3828 ite gt 3829 uqasxgt r4, r7, r9 3830 uqsaxle r8, r1, r2 3831 3832 uqaddsubx r1, r2, r3 3833 uqsubaddx r3, r4, r8 3834 ite gt 3835 uqaddsubxgt r4, r7, r9 3836 uqsubaddxle r8, r1, r2 3837 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/UQSUB8 3853@------------------------------------------------------------------------------ 3854 uqsub8 r8, r2, r9 3855 uqsub16 r1, r9, r7 3856 ite gt 3857 uqsub8gt r3, r1, r6 3858 uqsub16le r4, r6, r4 3859 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/UQSUB8 3869@------------------------------------------------------------------------------ 3870 usad8 r1, r9, r7 3871 usada8 r8, r2, r9, r12 3872 ite gt 3873 usada8gt r3, r1, r6, r9 3874 usad8le r4, r6, r4 3875 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@ USAT 3885@------------------------------------------------------------------------------ 3886 usat r8, #1, r10 3887 usat r8, #4, r10, lsl #0 3888 usat r8, #5, r10, lsl #31 3889 usat r8, #16, r10, asr #1 3890 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@ USAT16 3899@------------------------------------------------------------------------------ 3900 usat16 r2, #2, r7 3901 usat16 r3, #15, r5 3902 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@ USAX 3909@------------------------------------------------------------------------------ 3910 usax r2, r3, r4 3911 it ne 3912 usaxne r6, r1, r9 3913 usubaddx r2, r3, r4 3914 it ne 3915 usubaddxne r6, r1, r9 3916 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/USUB8 3927@------------------------------------------------------------------------------ 3928 usub16 r4, r2, r7 3929 usub8 r1, r8, r5 3930 ite hi 3931 usub16hi r1, r1, r3 3932 usub8ls r9, r2, r3 3933 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@ UXTAB 3943@------------------------------------------------------------------------------ 3944 uxtab r2, r3, r4 3945 uxtab r4, r5, r6, ror #0 3946 it lt 3947 uxtablt r6, r2, r9, ror #8 3948 uxtab r5, r1, r4, ror #16 3949 uxtab r7, r8, r3, ror #24 3950 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@ UXTAB16 3961@------------------------------------------------------------------------------ 3962 it ge 3963 uxtab16ge r0, r1, r4 3964 uxtab16 r6, r2, r7, ror #0 3965 uxtab16 r3, r5, r8, ror #8 3966 uxtab16 r3, r2, r1, ror #16 3967 it eq 3968 uxtab16eq r1, r2, r3, ror #24 3969 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@ UXTAH 3981@------------------------------------------------------------------------------ 3982 uxtah r1, r3, r9 3983 it hi 3984 uxtahhi r6, r1, r6, ror #0 3985 uxtah r3, r8, r3, ror #8 3986 it lo 3987 uxtahlo r2, r2, r4, ror #16 3988 uxtah r9, r3, r3, ror #24 3989 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@ UXTB 4001@------------------------------------------------------------------------------ 4002 it ge 4003 uxtbge r2, r4 4004 uxtb r5, r6, ror #0 4005 uxtb r6, r9, ror #8 4006 it cc 4007 uxtbcc r5, r1, ror #16 4008 uxtb r8, r3, ror #24 4009 uxtb.w r7, r8 4010 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@ UXTB16 4023@------------------------------------------------------------------------------ 4024 uxtb16 r1, r4 4025 uxtb16 r6, r7, ror #0 4026 it cs 4027 uxtb16cs r3, r5, ror #8 4028 uxtb16 r3, r1, ror #16 4029 it ge 4030 uxtb16ge r2, r3, ror #24 4031 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@ UXTH 4043@------------------------------------------------------------------------------ 4044 it ne 4045 uxthne r3, r9 4046 uxth r1, r6, ror #0 4047 uxth r3, r8, ror #8 4048 it le 4049 uxthle r2, r2, ror #16 4050 uxth r9, r3, ror #24 4051 uxth.w r7, r8 4052 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/HINT 4064@------------------------------------------------------------------------------ 4065 wfe 4066 wfi 4067 yield 4068 itet lt 4069 wfelt 4070 wfige 4071 yieldlt 4072 hint.w #4 4073 hint.w #3 4074 hint.w #2 4075 hint.w #1 4076 hint.w #0 4077 hint #4 4078 hint #3 4079 hint #2 4080 hint #1 4081 hint #0 4082 4083 itet lt 4084 hintlt #15 4085 hintge #16 4086 hintlt #239 4087 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 hints 4113@------------------------------------------------------------------------------ 4114 hint #7 4115 hint.w #7 4116@ CHECK: hint #7 @ encoding: [0x70,0xbf] 4117@ CHECK: hint.w #7 @ encoding: [0xaf,0xf3,0x07,0x80] 4118 4119@------------------------------------------------------------------------------ 4120@ Alternate syntax for LDR*(literal) encodings 4121@------------------------------------------------------------------------------ 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://12596361 4165 ldr r1, [pc, #12] 4166@ CHECK: ldr r1, [pc, #12] @ encoding: [0x03,0x49] 4167 4168@ rdar://14214063 4169 subs pc, lr, #4 4170@ CHECK: subs pc, lr, #4 @ encoding: [0xde,0xf3,0x04,0x8f] 4171