1@ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s 2 .syntax unified 3 .globl _func 4 5@ Check that the assembler can handle the documented syntax from the ARM ARM. 6@ For complex constructs like shifter operands, check more thoroughly for them 7@ once then spot check that following instructions accept the form generally. 8@ This gives us good coverage while keeping the overall size of the test 9@ more reasonable. 10 11 12@ FIXME: Some 3-operand instructions have a 2-operand assembly syntax. 13 14_func: 15@ CHECK: _func 16 17@------------------------------------------------------------------------------ 18@ ADC (immediate) 19@------------------------------------------------------------------------------ 20 adc r0, r1, #4 21 adcs r0, r1, #0 22 adc r1, r2, #255 23 adc r3, r7, #0x00550055 24 adc r8, r12, #0xaa00aa00 25 adc r9, r7, #0xa5a5a5a5 26 adc r5, r3, #0x87000000 27 adc r4, r2, #0x7f800000 28 adc r4, r2, #0x00000680 29 30@ CHECK: adc r0, r1, #4 @ encoding: [0x41,0xf1,0x04,0x00] 31@ CHECK: adcs r0, r1, #0 @ encoding: [0x51,0xf1,0x00,0x00] 32@ CHECK: adc r1, r2, #255 @ encoding: [0x42,0xf1,0xff,0x01] 33@ CHECK: adc r3, r7, #5570645 @ encoding: [0x47,0xf1,0x55,0x13] 34@ CHECK: adc r8, r12, #2852170240 @ encoding: [0x4c,0xf1,0xaa,0x28] 35@ CHECK: adc r9, r7, #2779096485 @ encoding: [0x47,0xf1,0xa5,0x39] 36@ CHECK: adc r5, r3, #2264924160 @ encoding: [0x43,0xf1,0x07,0x45] 37@ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44] 38@ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64] 39 40@------------------------------------------------------------------------------ 41@ ADC (register) 42@------------------------------------------------------------------------------ 43 adc r4, r5, r6 44 adcs r4, r5, r6 45 adc.w r9, r1, r3 46 adcs.w r9, r1, r3 47 adc r0, r1, r3, ror #4 48 adcs r0, r1, r3, lsl #7 49 adc.w r0, r1, r3, lsr #31 50 adcs.w r0, r1, r3, asr #32 51 add r2, sp, ip 52 53@ CHECK: adc.w r4, r5, r6 @ encoding: [0x45,0xeb,0x06,0x04] 54@ CHECK: adcs.w r4, r5, r6 @ encoding: [0x55,0xeb,0x06,0x04] 55@ CHECK: adc.w r9, r1, r3 @ encoding: [0x41,0xeb,0x03,0x09] 56@ CHECK: adcs.w r9, r1, r3 @ encoding: [0x51,0xeb,0x03,0x09] 57@ CHECK: adc.w r0, r1, r3, ror #4 @ encoding: [0x41,0xeb,0x33,0x10] 58@ CHECK: adcs.w r0, r1, r3, lsl #7 @ encoding: [0x51,0xeb,0xc3,0x10] 59@ CHECK: adc.w r0, r1, r3, lsr #31 @ encoding: [0x41,0xeb,0xd3,0x70] 60@ CHECK: adcs.w r0, r1, r3, asr #32 @ encoding: [0x51,0xeb,0x23,0x00] 61@ CHECK: add.w r2, sp, r12 @ encoding: [0x0d,0xeb,0x0c,0x02] 62 63 64@------------------------------------------------------------------------------ 65@ ADD (immediate) 66@------------------------------------------------------------------------------ 67 itet eq 68 addeq r1, r2, #4 69 addwne r5, r3, #1023 70 addeq r4, r5, #293 71 add r2, sp, #1024 72 add r2, r8, #0xff00 73 add r2, r3, #257 74 addw r2, r3, #257 75 add r12, r6, #0x100 76 addw r12, r6, #0x100 77 adds r1, r2, #0x1f0 78 add r2, #1 79 add r0, r0, #32 80 adds r2, r2, #56 81 adds r2, #56 82 83 adds.w r2, #-16 84 adds.w r2, r2, #-16 85 addw r2, #-16 86 addw r2, #-16 87 addw r2, r2, #-16 88 89@ CHECK: itet eq @ encoding: [0x0a,0xbf] 90@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 91@ CHECK: addwne r5, r3, #1023 @ encoding: [0x03,0xf2,0xff,0x35] 92@ CHECK: addweq r4, r5, #293 @ encoding: [0x05,0xf2,0x25,0x14] 93@ CHECK: add.w r2, sp, #1024 @ encoding: [0x0d,0xf5,0x80,0x62] 94@ CHECK: add.w r2, r8, #65280 @ encoding: [0x08,0xf5,0x7f,0x42] 95@ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12] 96@ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12] 97@ CHECK: add.w r12, r6, #256 @ encoding: [0x06,0xf5,0x80,0x7c] 98@ CHECK: addw r12, r6, #256 @ encoding: [0x06,0xf2,0x00,0x1c] 99@ CHECK: adds.w r1, r2, #496 @ encoding: [0x12,0xf5,0xf8,0x71] 100@ CHECK: add.w r2, r2, #1 @ encoding: [0x02,0xf1,0x01,0x02] 101@ CHECK: add.w r0, r0, #32 @ encoding: [0x00,0xf1,0x20,0x00] 102@ CHECK: adds r2, #56 @ encoding: [0x38,0x32] 103@ CHECK: adds r2, #56 @ encoding: [0x38,0x32] 104 105@ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02] 106@ CHECK: subs.w r2, r2, #16 @ encoding: [0xb2,0xf1,0x10,0x02] 107@ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02] 108@ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02] 109@ CHECK: subw r2, r2, #16 @ encoding: [0xa2,0xf2,0x10,0x02] 110 111 112@------------------------------------------------------------------------------ 113@ ADD (register) 114@------------------------------------------------------------------------------ 115 add r1, r2, r8 116 add r5, r9, r2, asr #32 117 adds r7, r3, r1, lsl #31 118 adds.w r0, r3, r6, lsr #25 119 add.w r4, r8, r1, ror #12 120 add r10, r8 121 add r10, r10, r8 122 123@ CHECK: add.w r1, r2, r8 @ encoding: [0x02,0xeb,0x08,0x01] 124@ CHECK: add.w r5, r9, r2, asr #32 @ encoding: [0x09,0xeb,0x22,0x05] 125@ CHECK: adds.w r7, r3, r1, lsl #31 @ encoding: [0x13,0xeb,0xc1,0x77] 126@ CHECK: adds.w r0, r3, r6, lsr #25 @ encoding: [0x13,0xeb,0x56,0x60] 127@ CHECK: add.w r4, r8, r1, ror #12 @ encoding: [0x08,0xeb,0x31,0x34] 128@ CHECK: add r10, r8 @ encoding: [0xc2,0x44] 129@ CHECK: add r10, r8 @ encoding: [0xc2,0x44] 130 131 132@------------------------------------------------------------------------------ 133@ FIXME: ADR 134@------------------------------------------------------------------------------ 135 136 subw r11, pc, #3270 137 adr.w r11, #-826 138 adr.w r1, #-0x0 139 140@ CHECK: subw r11, pc, #3270 @ encoding: [0xaf,0xf6,0xc6,0x4b] 141@ CHECK: adr.w r11, #-826 @ encoding: [0xaf,0xf2,0x3a,0x3b] 142@ CHECK: adr.w r1, #-0 @ encoding: [0xaf,0xf2,0x00,0x01] 143 144@------------------------------------------------------------------------------ 145@ AND (immediate) 146@------------------------------------------------------------------------------ 147 and r2, r5, #0xff000 148 ands r3, r12, #0xf 149 and r1, #0xff 150 and r1, r1, #0xff 151 152@ CHECK: and r2, r5, #1044480 @ encoding: [0x05,0xf4,0x7f,0x22] 153@ CHECK: ands r3, r12, #15 @ encoding: [0x1c,0xf0,0x0f,0x03] 154@ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01] 155@ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01] 156 157 158@------------------------------------------------------------------------------ 159@ AND (register) 160@------------------------------------------------------------------------------ 161 and r4, r9, r8 162 and r1, r4, r8, asr #3 163 ands r2, r1, r7, lsl #1 164 ands.w r4, r5, r2, lsr #20 165 and.w r9, r12, r1, ror #17 166 167@ CHECK: and.w r4, r9, r8 @ encoding: [0x09,0xea,0x08,0x04] 168@ CHECK: and.w r1, r4, r8, asr #3 @ encoding: [0x04,0xea,0xe8,0x01] 169@ CHECK: ands.w r2, r1, r7, lsl #1 @ encoding: [0x11,0xea,0x47,0x02] 170@ CHECK: ands.w r4, r5, r2, lsr #20 @ encoding: [0x15,0xea,0x12,0x54] 171@ CHECK: and.w r9, r12, r1, ror #17 @ encoding: [0x0c,0xea,0x71,0x49] 172 173@------------------------------------------------------------------------------ 174@ ASR (immediate) 175@------------------------------------------------------------------------------ 176 asr r2, r3, #12 177 asrs r8, r3, #32 178 asrs.w r2, r3, #1 179 asr r2, r3, #4 180 asrs r2, r12, #15 181 182 asr r3, #19 183 asrs r8, #2 184 asrs.w r7, #5 185 asr.w r12, #21 186 187@ CHECK: asr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x23,0x32] 188@ CHECK: asrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x23,0x08] 189@ CHECK: asrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x63,0x02] 190@ CHECK: asr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x23,0x12] 191@ CHECK: asrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xec,0x32] 192 193@ CHECK: asr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xe3,0x43] 194@ CHECK: asrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0xa8,0x08] 195@ CHECK: asrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x67,0x17] 196@ CHECK: asr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x6c,0x5c] 197 198 199@------------------------------------------------------------------------------ 200@ ASR (register) 201@------------------------------------------------------------------------------ 202 asr r3, r4, r2 203 asr.w r1, r2 204 asrs r3, r4, r8 205 206@ CHECK: asr.w r3, r4, r2 @ encoding: [0x44,0xfa,0x02,0xf3] 207@ CHECK: asr.w r1, r1, r2 @ encoding: [0x41,0xfa,0x02,0xf1] 208@ CHECK: asrs.w r3, r4, r8 @ encoding: [0x54,0xfa,0x08,0xf3] 209 210 211@------------------------------------------------------------------------------ 212@ B 213@------------------------------------------------------------------------------ 214 b.w _bar 215 beq.w _bar 216 it eq 217 beq.w _bar 218 bmi.w #-183396 219 220@ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 221 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 222@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A'] 223 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch 224@ CHECK: it eq @ encoding: [0x08,0xbf] 225@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 226 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 227@ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9] 228 229 230@------------------------------------------------------------------------------ 231@ BFC 232@------------------------------------------------------------------------------ 233 bfc r5, #3, #17 234 it lo 235 bfccc r5, #3, #17 236 237@ CHECK: bfc r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05] 238@ CHECK: it lo @ encoding: [0x38,0xbf] 239@ CHECK: bfclo r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05] 240 241 242@------------------------------------------------------------------------------ 243@ BFI 244@------------------------------------------------------------------------------ 245 bfi r5, r2, #3, #17 246 it ne 247 bfine r5, r2, #3, #17 248 249@ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05] 250@ CHECK: it ne @ encoding: [0x18,0xbf] 251@ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05] 252 253 254@------------------------------------------------------------------------------ 255@ BIC 256@------------------------------------------------------------------------------ 257 bic r10, r1, #0xf 258 bic r12, r3, r6 259 bic r11, r2, r6, lsl #12 260 bic r8, r4, r1, lsr #11 261 bic r7, r5, r7, lsr #15 262 bic r6, r7, r9, asr #32 263 bic r5, r6, r8, ror #1 264 265 @ destination register is optional 266 bic r1, #0xf 267 bic r1, r1 268 bic r4, r2, lsl #31 269 bic r6, r3, lsr #12 270 bic r7, r4, lsr #7 271 bic r8, r5, asr #15 272 bic r12, r6, ror #29 273 274@ CHECK: bic r10, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x0a] 275@ CHECK: bic.w r12, r3, r6 @ encoding: [0x23,0xea,0x06,0x0c] 276@ CHECK: bic.w r11, r2, r6, lsl #12 @ encoding: [0x22,0xea,0x06,0x3b] 277@ CHECK: bic.w r8, r4, r1, lsr #11 @ encoding: [0x24,0xea,0xd1,0x28] 278@ CHECK: bic.w r7, r5, r7, lsr #15 @ encoding: [0x25,0xea,0xd7,0x37] 279@ CHECK: bic.w r6, r7, r9, asr #32 @ encoding: [0x27,0xea,0x29,0x06] 280@ CHECK: bic.w r5, r6, r8, ror #1 @ encoding: [0x26,0xea,0x78,0x05] 281 282@ CHECK: bic r1, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x01] 283@ CHECK: bic.w r1, r1, r1 @ encoding: [0x21,0xea,0x01,0x01] 284@ CHECK: bic.w r4, r4, r2, lsl #31 @ encoding: [0x24,0xea,0xc2,0x74] 285@ CHECK: bic.w r6, r6, r3, lsr #12 @ encoding: [0x26,0xea,0x13,0x36] 286@ CHECK: bic.w r7, r7, r4, lsr #7 @ encoding: [0x27,0xea,0xd4,0x17] 287@ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38] 288@ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c] 289 290@------------------------------------------------------------------------------ 291@ BKPT 292@------------------------------------------------------------------------------ 293 it pl 294 bkpt #234 295 296@ CHECK: it pl @ encoding: [0x58,0xbf] 297@ CHECK: bkpt #234 @ encoding: [0xea,0xbe] 298 299@------------------------------------------------------------------------------ 300@ BXJ 301@------------------------------------------------------------------------------ 302 bxj r5 303 it ne 304 bxjne r7 305 306@ CHECK: bxj r5 @ encoding: [0xc5,0xf3,0x00,0x8f] 307@ CHECK: it ne @ encoding: [0x18,0xbf] 308@ CHECK: bxjne r7 @ encoding: [0xc7,0xf3,0x00,0x8f] 309 310 311@------------------------------------------------------------------------------ 312@ CBZ/CBNZ 313@------------------------------------------------------------------------------ 314 cbnz r7, #6 315 cbnz r7, #12 316 cbz r6, _bar 317 cbnz r6, _bar 318 319@ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9] 320@ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9] 321@ CHECK: cbz r6, _bar @ encoding: [0x06'A',0xb1'A'] 322 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 323@ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A'] 324 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 325 326 327@------------------------------------------------------------------------------ 328@ CDP/CDP2 329@------------------------------------------------------------------------------ 330 cdp p7, #1, c1, c1, c1, #4 331 cdp2 p7, #1, c1, c1, c1, #4 332 333@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17] 334@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17] 335 336 337@------------------------------------------------------------------------------ 338@ CLREX 339@------------------------------------------------------------------------------ 340 clrex 341 it ne 342 clrexne 343 344@ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f] 345@ CHECK: it ne @ encoding: [0x18,0xbf] 346@ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f] 347 348 349@------------------------------------------------------------------------------ 350@ CLZ 351@------------------------------------------------------------------------------ 352 clz r1, r2 353 it eq 354 clzeq r1, r2 355 356@ CHECK: clz r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1] 357@ CHECK: it eq @ encoding: [0x08,0xbf] 358@ CHECK: clzeq r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1] 359 360 361@------------------------------------------------------------------------------ 362@ CMN 363@------------------------------------------------------------------------------ 364 cmn r1, #0xf 365 cmn r8, r6 366 cmn r1, r6, lsl #10 367 cmn r1, r6, lsr #10 368 cmn sp, r6, lsr #10 369 cmn r1, r6, asr #10 370 cmn r1, r6, ror #10 371 372@ CHECK: cmn.w r1, #15 @ encoding: [0x11,0xf1,0x0f,0x0f] 373@ CHECK: cmn.w r8, r6 @ encoding: [0x18,0xeb,0x06,0x0f] 374@ CHECK: cmn.w r1, r6, lsl #10 @ encoding: [0x11,0xeb,0x86,0x2f] 375@ CHECK: cmn.w r1, r6, lsr #10 @ encoding: [0x11,0xeb,0x96,0x2f] 376@ CHECK: cmn.w sp, r6, lsr #10 @ encoding: [0x1d,0xeb,0x96,0x2f] 377@ CHECK: cmn.w r1, r6, asr #10 @ encoding: [0x11,0xeb,0xa6,0x2f] 378@ CHECK: cmn.w r1, r6, ror #10 @ encoding: [0x11,0xeb,0xb6,0x2f] 379 380 381@------------------------------------------------------------------------------ 382@ CMP 383@------------------------------------------------------------------------------ 384 cmp r5, #0xff00 385 cmp.w r4, r12 386 cmp r9, r6, lsl #12 387 cmp r3, r7, lsr #31 388 cmp sp, r6, lsr #1 389 cmp r2, r5, asr #24 390 cmp r1, r4, ror #15 391 cmp r2, #-2 392 cmp r9, #1 393 394@ CHECK: cmp.w r5, #65280 @ encoding: [0xb5,0xf5,0x7f,0x4f] 395@ CHECK: cmp.w r4, r12 @ encoding: [0xb4,0xeb,0x0c,0x0f] 396@ CHECK: cmp.w r9, r6, lsl #12 @ encoding: [0xb9,0xeb,0x06,0x3f] 397@ CHECK: cmp.w r3, r7, lsr #31 @ encoding: [0xb3,0xeb,0xd7,0x7f] 398@ CHECK: cmp.w sp, r6, lsr #1 @ encoding: [0xbd,0xeb,0x56,0x0f] 399@ CHECK: cmp.w r2, r5, asr #24 @ encoding: [0xb2,0xeb,0x25,0x6f] 400@ CHECK: cmp.w r1, r4, ror #15 @ encoding: [0xb1,0xeb,0xf4,0x3f] 401@ CHECK: cmn.w r2, #2 @ encoding: [0x12,0xf1,0x02,0x0f] 402@ CHECK: cmp.w r9, #1 @ encoding: [0xb9,0xf1,0x01,0x0f] 403 404 405@------------------------------------------------------------------------------ 406@ DBG 407@------------------------------------------------------------------------------ 408 dbg #5 409 dbg #0 410 dbg #15 411 412@ CHECK: dbg #5 @ encoding: [0xaf,0xf3,0xf5,0x80] 413@ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80] 414@ CHECK: dbg #15 @ encoding: [0xaf,0xf3,0xff,0x80] 415 416 417@------------------------------------------------------------------------------ 418@ DMB 419@------------------------------------------------------------------------------ 420 dmb #0xf 421 dmb #0xe 422 dmb #0xd 423 dmb #0xc 424 dmb #0xb 425 dmb #0xa 426 dmb #0x9 427 dmb #0x8 428 dmb #0x7 429 dmb #0x6 430 dmb #0x5 431 dmb #0x4 432 dmb #0x3 433 dmb #0x2 434 dmb #0x1 435 dmb #0x0 436 437 dmb sy 438 dmb st 439 dmb sh 440 dmb ish 441 dmb shst 442 dmb ishst 443 dmb un 444 dmb nsh 445 dmb unst 446 dmb nshst 447 dmb osh 448 dmb oshst 449 dmb 450 451@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 452@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f] 453@ CHECK: dmb #0xd @ encoding: [0xbf,0xf3,0x5d,0x8f] 454@ CHECK: dmb #0xc @ encoding: [0xbf,0xf3,0x5c,0x8f] 455@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 456@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 457@ CHECK: dmb #0x9 @ encoding: [0xbf,0xf3,0x59,0x8f] 458@ CHECK: dmb #0x8 @ encoding: [0xbf,0xf3,0x58,0x8f] 459@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 460@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 461@ CHECK: dmb #0x5 @ encoding: [0xbf,0xf3,0x55,0x8f] 462@ CHECK: dmb #0x4 @ encoding: [0xbf,0xf3,0x54,0x8f] 463@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f] 464@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f] 465@ CHECK: dmb #0x1 @ encoding: [0xbf,0xf3,0x51,0x8f] 466@ CHECK: dmb #0x0 @ encoding: [0xbf,0xf3,0x50,0x8f] 467 468@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 469@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f] 470@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 471@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 472@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 473@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 474@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 475@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 476@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 477@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 478@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f] 479@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f] 480@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 481 482 483@------------------------------------------------------------------------------ 484@ DSB 485@------------------------------------------------------------------------------ 486 dsb #0xf 487 dsb #0xe 488 dsb #0xd 489 dsb #0xc 490 dsb #0xb 491 dsb #0xa 492 dsb #0x9 493 dsb #0x8 494 dsb #0x7 495 dsb #0x6 496 dsb #0x5 497 dsb #0x4 498 dsb #0x3 499 dsb #0x2 500 dsb #0x1 501 dsb #0x0 502 503 dsb sy 504 dsb st 505 dsb sh 506 dsb ish 507 dsb shst 508 dsb ishst 509 dsb un 510 dsb nsh 511 dsb unst 512 dsb nshst 513 dsb osh 514 dsb oshst 515 dsb 516 517@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 518@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f] 519@ CHECK: dsb #0xd @ encoding: [0xbf,0xf3,0x4d,0x8f] 520@ CHECK: dsb #0xc @ encoding: [0xbf,0xf3,0x4c,0x8f] 521@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 522@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 523@ CHECK: dsb #0x9 @ encoding: [0xbf,0xf3,0x49,0x8f] 524@ CHECK: dsb #0x8 @ encoding: [0xbf,0xf3,0x48,0x8f] 525@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 526@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 527@ CHECK: dsb #0x5 @ encoding: [0xbf,0xf3,0x45,0x8f] 528@ CHECK: dsb #0x4 @ encoding: [0xbf,0xf3,0x44,0x8f] 529@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f] 530@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f] 531@ CHECK: dsb #0x1 @ encoding: [0xbf,0xf3,0x41,0x8f] 532@ CHECK: dsb #0x0 @ encoding: [0xbf,0xf3,0x40,0x8f] 533 534@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 535@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f] 536@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 537@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 538@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 539@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 540@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 541@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 542@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 543@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 544@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f] 545@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f] 546@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 547 548 549@------------------------------------------------------------------------------ 550@ EOR 551@------------------------------------------------------------------------------ 552 eor r4, r5, #0xf000 553 eor r4, r5, r6 554 eor r4, r5, r6, lsl #5 555 eor r4, r5, r6, lsr #5 556 eor r4, r5, r6, lsr #5 557 eor r4, r5, r6, asr #5 558 eor r4, r5, r6, ror #5 559 560@ CHECK: eor r4, r5, #61440 @ encoding: [0x85,0xf4,0x70,0x44] 561@ CHECK: eor.w r4, r5, r6 @ encoding: [0x85,0xea,0x06,0x04] 562@ CHECK: eor.w r4, r5, r6, lsl #5 @ encoding: [0x85,0xea,0x46,0x14] 563@ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14] 564@ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14] 565@ CHECK: eor.w r4, r5, r6, asr #5 @ encoding: [0x85,0xea,0x66,0x14] 566@ CHECK: eor.w r4, r5, r6, ror #5 @ encoding: [0x85,0xea,0x76,0x14] 567 568 569@------------------------------------------------------------------------------ 570@ ISB 571@------------------------------------------------------------------------------ 572 isb sy 573 isb 574 575@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] 576@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] 577 578 579@------------------------------------------------------------------------------ 580@ IT 581@------------------------------------------------------------------------------ 582@ Test encodings of a few full IT blocks, not just the IT instruction 583 584 iteet eq 585 addeq r0, r1, r2 586 nopne 587 subne r5, r6, r7 588 addeq r1, r2, #4 589 590@ CHECK: iteet eq @ encoding: [0x0d,0xbf] 591@ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18] 592@ CHECK: nopne @ encoding: [0x00,0xbf] 593@ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b] 594@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 595 596@ Should also work for UPPER CASE condition codes. 597 598 ITEET EQ 599 ADDEQ R0, R1, R2 600 NOPNE 601 SUBNE R5, R6, R7 602 ADDEQ R1, R2, #4 603 604@ CHECK: iteet eq @ encoding: [0x0d,0xbf] 605@ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18] 606@ CHECK: nopne @ encoding: [0x00,0xbf] 607@ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b] 608@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 609 610@------------------------------------------------------------------------------ 611@ LDC{L}/LDC2{L} 612@------------------------------------------------------------------------------ 613 ldc2 p0, c8, [r1, #4] 614 ldc2 p1, c7, [r2] 615 ldc2 p2, c6, [r3, #-224] 616 ldc2 p3, c5, [r4, #-120]! 617 ldc2 p4, c4, [r5], #16 618 ldc2 p5, c3, [r6], #-72 619 ldc2l p6, c2, [r7, #4] 620 ldc2l p7, c1, [r8] 621 ldc2l p8, c0, [r9, #-224] 622 ldc2l p9, c1, [r10, #-120]! 623 ldc2l p10, c2, [r11], #16 624 ldc2l p11, c3, [r12], #-72 625 626 ldc p12, c4, [r0, #4] 627 ldc p13, c5, [r1] 628 ldc p14, c6, [r2, #-224] 629 ldc p15, c7, [r3, #-120]! 630 ldc p5, c8, [r4], #16 631 ldc p4, c9, [r5], #-72 632 ldcl p3, c10, [r6, #4] 633 ldcl p2, c11, [r7] 634 ldcl p1, c12, [r8, #-224] 635 ldcl p0, c13, [r9, #-120]! 636 ldcl p6, c14, [r10], #16 637 ldcl p7, c15, [r11], #-72 638 639 ldc2 p2, c8, [r1], { 25 } 640 641@ CHECK: ldc2 p0, c8, [r1, #4] @ encoding: [0x91,0xfd,0x01,0x80] 642@ CHECK: ldc2 p1, c7, [r2] @ encoding: [0x92,0xfd,0x00,0x71] 643@ CHECK: ldc2 p2, c6, [r3, #-224] @ encoding: [0x13,0xfd,0x38,0x62] 644@ CHECK: ldc2 p3, c5, [r4, #-120]! @ encoding: [0x34,0xfd,0x1e,0x53] 645@ CHECK: ldc2 p4, c4, [r5], #16 @ encoding: [0xb5,0xfc,0x04,0x44] 646@ CHECK: ldc2 p5, c3, [r6], #-72 @ encoding: [0x36,0xfc,0x12,0x35] 647@ CHECK: ldc2l p6, c2, [r7, #4] @ encoding: [0xd7,0xfd,0x01,0x26] 648@ CHECK: ldc2l p7, c1, [r8] @ encoding: [0xd8,0xfd,0x00,0x17] 649@ CHECK: ldc2l p8, c0, [r9, #-224] @ encoding: [0x59,0xfd,0x38,0x08] 650@ CHECK: ldc2l p9, c1, [r10, #-120]! @ encoding: [0x7a,0xfd,0x1e,0x19] 651@ CHECK: ldc2l p10, c2, [r11], #16 @ encoding: [0xfb,0xfc,0x04,0x2a] 652@ CHECK: ldc2l p11, c3, [r12], #-72 @ encoding: [0x7c,0xfc,0x12,0x3b] 653 654@ CHECK: ldc p12, c4, [r0, #4] @ encoding: [0x90,0xed,0x01,0x4c] 655@ CHECK: ldc p13, c5, [r1] @ encoding: [0x91,0xed,0x00,0x5d] 656@ CHECK: ldc p14, c6, [r2, #-224] @ encoding: [0x12,0xed,0x38,0x6e] 657@ CHECK: ldc p15, c7, [r3, #-120]! @ encoding: [0x33,0xed,0x1e,0x7f] 658@ CHECK: ldc p5, c8, [r4], #16 @ encoding: [0xb4,0xec,0x04,0x85] 659@ CHECK: ldc p4, c9, [r5], #-72 @ encoding: [0x35,0xec,0x12,0x94] 660@ CHECK: ldcl p3, c10, [r6, #4] @ encoding: [0xd6,0xed,0x01,0xa3] 661@ CHECK: ldcl p2, c11, [r7] @ encoding: [0xd7,0xed,0x00,0xb2] 662@ CHECK: ldcl p1, c12, [r8, #-224] @ encoding: [0x58,0xed,0x38,0xc1] 663@ CHECK: ldcl p0, c13, [r9, #-120]! @ encoding: [0x79,0xed,0x1e,0xd0] 664@ CHECK: ldcl p6, c14, [r10], #16 @ encoding: [0xfa,0xec,0x04,0xe6] 665@ CHECK: ldcl p7, c15, [r11], #-72 @ encoding: [0x7b,0xec,0x12,0xf7] 666 667@ CHECK: ldc2 p2, c8, [r1], {25} @ encoding: [0x91,0xfc,0x19,0x82] 668 669 670@------------------------------------------------------------------------------ 671@ LDMIA 672@------------------------------------------------------------------------------ 673 ldmia.w r4, {r4, r5, r8, r9} 674 ldmia.w r4, {r5, r6} 675 ldmia.w r5!, {r3, r8} 676 ldm.w r4, {r4, r5, r8, r9} 677 ldm.w r4, {r5, r6} 678 ldm.w r5!, {r3, r8} 679 ldm.w r5!, {r1, r2} 680 ldm.w r2, {r1, r2} 681 682 ldmia r4, {r4, r5, r8, r9} 683 ldmia r4, {r5, r6} 684 ldmia r5!, {r3, r8} 685 ldm r4, {r4, r5, r8, r9} 686 ldm r4, {r5, r6} 687 ldm r5!, {r3, r8} 688 ldmfd r5!, {r3, r8} 689 ldmia sp!, {r4-r11, pc} 690 691@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 692@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 693@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 694@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 695@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 696@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 697@ CHECK: ldm.w r5!, {r1, r2} @ encoding: [0xb5,0xe8,0x06,0x00] 698@ CHECK: ldm.w r2, {r1, r2} @ encoding: [0x92,0xe8,0x06,0x00] 699 700@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 701@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 702@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 703@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 704@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 705@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 706@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 707@ CHECK: pop.w {pc, r4, r5, r6, r7, r8, r9, r10, r11} @ encoding: [0xbd,0xe8,0xf0,0x8f] 708 709 710@------------------------------------------------------------------------------ 711@ LDMDB 712@------------------------------------------------------------------------------ 713 ldmdb r4, {r4, r5, r8, r9} 714 ldmdb r4, {r5, r6} 715 ldmdb r5!, {r3, r8} 716 ldmea r5!, {r3, r8} 717 ldmdb.w r4, {r5, r6} 718 ldmdb.w r5!, {r3, r8} 719 720@ CHECK: ldmdb r4, {r4, r5, r8, r9} @ encoding: [0x14,0xe9,0x30,0x03] 721@ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00] 722@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 723@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 724@ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00] 725@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 726 727 728@------------------------------------------------------------------------------ 729@ LDR(immediate) 730@------------------------------------------------------------------------------ 731 ldr r5, [r5, #-4] 732 ldr r5, [r6, #32] 733 ldr r5, [r6, #33] 734 ldr r5, [r6, #257] 735 ldr.w pc, [r7, #257] 736 ldr r2, [r4, #255]! 737 ldr r8, [sp, #4]! 738 ldr lr, [sp, #-4]! 739 ldr r2, [r4], #255 740 ldr r8, [sp], #4 741 ldr lr, [sp], #-4 742 743@ CHECK: ldr r5, [r5, #-4] @ encoding: [0x55,0xf8,0x04,0x5c] 744@ CHECK: ldr r5, [r6, #32] @ encoding: [0x35,0x6a] 745@ CHECK: ldr.w r5, [r6, #33] @ encoding: [0xd6,0xf8,0x21,0x50] 746@ CHECK: ldr.w r5, [r6, #257] @ encoding: [0xd6,0xf8,0x01,0x51] 747@ CHECK: ldr.w pc, [r7, #257] @ encoding: [0xd7,0xf8,0x01,0xf1] 748@ CHECK: ldr r2, [r4, #255]! @ encoding: [0x54,0xf8,0xff,0x2f] 749@ CHECK: ldr r8, [sp, #4]! @ encoding: [0x5d,0xf8,0x04,0x8f] 750@ CHECK: ldr lr, [sp, #-4]! @ encoding: [0x5d,0xf8,0x04,0xed] 751@ CHECK: ldr r2, [r4], #255 @ encoding: [0x54,0xf8,0xff,0x2b] 752@ CHECK: ldr r8, [sp], #4 @ encoding: [0x5d,0xf8,0x04,0x8b] 753@ CHECK: ldr lr, [sp], #-4 @ encoding: [0x5d,0xf8,0x04,0xe9] 754 755 756@------------------------------------------------------------------------------ 757@ LDR(literal) 758@------------------------------------------------------------------------------ 759 ldr.w r5, _foo 760 ldr lr, (_strcmp-4) 761 762@ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A'] 763@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 764@ CHECK: ldr.w lr, _strcmp-4 @ encoding: [0x5f'A',0xf8'A',A,0xe0'A'] 765@ CHECK: @ fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12 766 767 768@------------------------------------------------------------------------------ 769@ LDR(register) 770@------------------------------------------------------------------------------ 771 ldr r1, [r8, r1] 772 ldr.w r4, [r5, r2] 773 ldr r6, [r0, r2, lsl #3] 774 ldr r8, [r8, r2, lsl #2] 775 ldr r7, [sp, r2, lsl #1] 776 ldr r7, [sp, r2, lsl #0] 777 778@ CHECK: ldr.w r1, [r8, r1] @ encoding: [0x58,0xf8,0x01,0x10] 779@ CHECK: ldr.w r4, [r5, r2] @ encoding: [0x55,0xf8,0x02,0x40] 780@ CHECK: ldr.w r6, [r0, r2, lsl #3] @ encoding: [0x50,0xf8,0x32,0x60] 781@ CHECK: ldr.w r8, [r8, r2, lsl #2] @ encoding: [0x58,0xf8,0x22,0x80] 782@ CHECK: ldr.w r7, [sp, r2, lsl #1] @ encoding: [0x5d,0xf8,0x12,0x70] 783@ CHECK: ldr.w r7, [sp, r2] @ encoding: [0x5d,0xf8,0x02,0x70] 784 785 786@------------------------------------------------------------------------------ 787@ LDRB(immediate) 788@------------------------------------------------------------------------------ 789 ldrb r5, [r5, #-4] 790 ldrb r5, [r6, #32] 791 ldrb r5, [r6, #33] 792 ldrb r5, [r6, #257] 793 ldrb.w lr, [r7, #257] 794 ldrb r5, [r8, #255]! 795 ldrb r2, [r5, #4]! 796 ldrb r1, [r4, #-4]! 797 ldrb lr, [r3], #255 798 ldrb r9, [r2], #4 799 ldrb r3, [sp], #-4 800 801@ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c] 802@ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50] 803@ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50] 804@ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51] 805@ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1] 806@ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f] 807@ CHECK: ldrb r2, [r5, #4]! @ encoding: [0x15,0xf8,0x04,0x2f] 808@ CHECK: ldrb r1, [r4, #-4]! @ encoding: [0x14,0xf8,0x04,0x1d] 809@ CHECK: ldrb lr, [r3], #255 @ encoding: [0x13,0xf8,0xff,0xeb] 810@ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b] 811@ CHECK: ldrb r3, [sp], #-4 @ encoding: [0x1d,0xf8,0x04,0x39] 812 813 814@------------------------------------------------------------------------------ 815@ LDRB(register) 816@------------------------------------------------------------------------------ 817 ldrb r1, [r8, r1] 818 ldrb.w r4, [r5, r2] 819 ldrb r6, [r0, r2, lsl #3] 820 ldrb r8, [r8, r2, lsl #2] 821 ldrb r7, [sp, r2, lsl #1] 822 ldrb r7, [sp, r2, lsl #0] 823 824@ CHECK: ldrb.w r1, [r8, r1] @ encoding: [0x18,0xf8,0x01,0x10] 825@ CHECK: ldrb.w r4, [r5, r2] @ encoding: [0x15,0xf8,0x02,0x40] 826@ CHECK: ldrb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0x60] 827@ CHECK: ldrb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0x80] 828@ CHECK: ldrb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0x70] 829@ CHECK: ldrb.w r7, [sp, r2] @ encoding: [0x1d,0xf8,0x02,0x70] 830 831 832@------------------------------------------------------------------------------ 833@ LDRBT 834@------------------------------------------------------------------------------ 835 ldrbt r1, [r2] 836 ldrbt r1, [r8, #0] 837 ldrbt r1, [r8, #3] 838 ldrbt r1, [r8, #255] 839 840@ CHECK: ldrbt r1, [r2] @ encoding: [0x12,0xf8,0x00,0x1e] 841@ CHECK: ldrbt r1, [r8] @ encoding: [0x18,0xf8,0x00,0x1e] 842@ CHECK: ldrbt r1, [r8, #3] @ encoding: [0x18,0xf8,0x03,0x1e] 843@ CHECK: ldrbt r1, [r8, #255] @ encoding: [0x18,0xf8,0xff,0x1e] 844 845 846@------------------------------------------------------------------------------ 847@ LDRD 848@------------------------------------------------------------------------------ 849 ldrd r3, r5, [r6, #24] 850 ldrd r3, r5, [r6, #24]! 851 ldrd r3, r5, [r6], #4 852 ldrd r3, r5, [r6], #-8 853 ldrd r3, r5, [r6] 854 ldrd r8, r1, [r3, #0] 855 ldrd r0, r1, [r2, #-0] 856 ldrd r0, r1, [r2, #-0]! 857 ldrd r0, r1, [r2], #-0 858 859@ CHECK: ldrd r3, r5, [r6, #24] @ encoding: [0xd6,0xe9,0x06,0x35] 860@ CHECK: ldrd r3, r5, [r6, #24]! @ encoding: [0xf6,0xe9,0x06,0x35] 861@ CHECK: ldrd r3, r5, [r6], #4 @ encoding: [0xf6,0xe8,0x01,0x35] 862@ CHECK: ldrd r3, r5, [r6], #-8 @ encoding: [0x76,0xe8,0x02,0x35] 863@ CHECK: ldrd r3, r5, [r6] @ encoding: [0xd6,0xe9,0x00,0x35] 864@ CHECK: ldrd r8, r1, [r3] @ encoding: [0xd3,0xe9,0x00,0x81] 865@ CHECK: ldrd r0, r1, [r2, #-0] @ encoding: [0x52,0xe9,0x00,0x01] 866@ CHECK: ldrd r0, r1, [r2, #-0]! @ encoding: [0x72,0xe9,0x00,0x01] 867@ CHECK: ldrd r0, r1, [r2], #-0 @ encoding: [0x72,0xe8,0x00,0x01] 868 869 870@------------------------------------------------------------------------------ 871@ FIXME: LDRD(literal) 872@------------------------------------------------------------------------------ 873 874 875@------------------------------------------------------------------------------ 876@ LDREX/LDREXB/LDREXH/LDREXD 877@------------------------------------------------------------------------------ 878 ldrex r1, [r4] 879 ldrex r8, [r4, #0] 880 ldrex r2, [sp, #128] 881 ldrexb r5, [r7] 882 ldrexh r9, [r12] 883 ldrexd r9, r3, [r4] 884 885@ CHECK: ldrex r1, [r4] @ encoding: [0x54,0xe8,0x00,0x1f] 886@ CHECK: ldrex r8, [r4] @ encoding: [0x54,0xe8,0x00,0x8f] 887@ CHECK: ldrex r2, [sp, #128] @ encoding: [0x5d,0xe8,0x20,0x2f] 888@ CHECK: ldrexb r5, [r7] @ encoding: [0xd7,0xe8,0x4f,0x5f] 889@ CHECK: ldrexh r9, [r12] @ encoding: [0xdc,0xe8,0x5f,0x9f] 890@ CHECK: ldrexd r9, r3, [r4] @ encoding: [0xd4,0xe8,0x7f,0x93] 891 892 893@------------------------------------------------------------------------------ 894@ LDRH(immediate) 895@------------------------------------------------------------------------------ 896 ldrh r5, [r5, #-4] 897 ldrh r5, [r6, #32] 898 ldrh r5, [r6, #33] 899 ldrh r5, [r6, #257] 900 ldrh.w lr, [r7, #257] 901 ldrh r5, [r8, #255]! 902 ldrh r2, [r5, #4]! 903 ldrh r1, [r4, #-4]! 904 ldrh lr, [r3], #255 905 ldrh r9, [r2], #4 906 ldrh r3, [sp], #-4 907 908@ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c] 909@ CHECK: ldrh r5, [r6, #32] @ encoding: [0x35,0x8c] 910@ CHECK: ldrh.w r5, [r6, #33] @ encoding: [0xb6,0xf8,0x21,0x50] 911@ CHECK: ldrh.w r5, [r6, #257] @ encoding: [0xb6,0xf8,0x01,0x51] 912@ CHECK: ldrh.w lr, [r7, #257] @ encoding: [0xb7,0xf8,0x01,0xe1] 913@ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f] 914@ CHECK: ldrh r2, [r5, #4]! @ encoding: [0x35,0xf8,0x04,0x2f] 915@ CHECK: ldrh r1, [r4, #-4]! @ encoding: [0x34,0xf8,0x04,0x1d] 916@ CHECK: ldrh lr, [r3], #255 @ encoding: [0x33,0xf8,0xff,0xeb] 917@ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b] 918@ CHECK: ldrh r3, [sp], #-4 @ encoding: [0x3d,0xf8,0x04,0x39] 919 920 921@------------------------------------------------------------------------------ 922@ LDRH(register) 923@------------------------------------------------------------------------------ 924 ldrh r1, [r8, r1] 925 ldrh.w r4, [r5, r2] 926 ldrh r6, [r0, r2, lsl #3] 927 ldrh r8, [r8, r2, lsl #2] 928 ldrh r7, [sp, r2, lsl #1] 929 ldrh r7, [sp, r2, lsl #0] 930 931@ CHECK: ldrh.w r1, [r8, r1] @ encoding: [0x38,0xf8,0x01,0x10] 932@ CHECK: ldrh.w r4, [r5, r2] @ encoding: [0x35,0xf8,0x02,0x40] 933@ CHECK: ldrh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf8,0x32,0x60] 934@ CHECK: ldrh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf8,0x22,0x80] 935@ CHECK: ldrh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf8,0x12,0x70] 936@ CHECK: ldrh.w r7, [sp, r2] @ encoding: [0x3d,0xf8,0x02,0x70] 937 938 939@------------------------------------------------------------------------------ 940@ LDRH(literal) 941@------------------------------------------------------------------------------ 942 ldrh r5, _bar 943 944@ CHECK: ldrh.w r5, _bar @ encoding: [0x3f'A',0xf8'A',A,0x50'A'] 945@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 946 947 948@------------------------------------------------------------------------------ 949@ LDRHT 950@------------------------------------------------------------------------------ 951 ldrht r1, [r2] 952 ldrht r1, [r8, #0] 953 ldrht r1, [r8, #3] 954 ldrht r1, [r8, #255] 955 956@ CHECK: ldrht r1, [r2] @ encoding: [0x32,0xf8,0x00,0x1e] 957@ CHECK: ldrht r1, [r8] @ encoding: [0x38,0xf8,0x00,0x1e] 958@ CHECK: ldrht r1, [r8, #3] @ encoding: [0x38,0xf8,0x03,0x1e] 959@ CHECK: ldrht r1, [r8, #255] @ encoding: [0x38,0xf8,0xff,0x1e] 960 961 962@------------------------------------------------------------------------------ 963@ LDRSB(immediate) 964@------------------------------------------------------------------------------ 965 ldrsb r5, [r5, #-4] 966 ldrsb r5, [r6, #32] 967 ldrsb r5, [r6, #33] 968 ldrsb r5, [r6, #257] 969 ldrsb.w lr, [r7, #257] 970 971@ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c] 972@ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50] 973@ CHECK: ldrsb.w r5, [r6, #33] @ encoding: [0x96,0xf9,0x21,0x50] 974@ CHECK: ldrsb.w r5, [r6, #257] @ encoding: [0x96,0xf9,0x01,0x51] 975@ CHECK: ldrsb.w lr, [r7, #257] @ encoding: [0x97,0xf9,0x01,0xe1] 976 977 978@------------------------------------------------------------------------------ 979@ LDRSB(register) 980@------------------------------------------------------------------------------ 981 ldrsb r1, [r8, r1] 982 ldrsb.w r4, [r5, r2] 983 ldrsb r6, [r0, r2, lsl #3] 984 ldrsb r8, [r8, r2, lsl #2] 985 ldrsb r7, [sp, r2, lsl #1] 986 ldrsb r7, [sp, r2, lsl #0] 987 ldrsb r5, [r8, #255]! 988 ldrsb r2, [r5, #4]! 989 ldrsb r1, [r4, #-4]! 990 ldrsb lr, [r3], #255 991 ldrsb r9, [r2], #4 992 ldrsb r3, [sp], #-4 993 994@ CHECK: ldrsb.w r1, [r8, r1] @ encoding: [0x18,0xf9,0x01,0x10] 995@ CHECK: ldrsb.w r4, [r5, r2] @ encoding: [0x15,0xf9,0x02,0x40] 996@ CHECK: ldrsb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0x60] 997@ CHECK: ldrsb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0x80] 998@ CHECK: ldrsb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0x70] 999@ CHECK: ldrsb.w r7, [sp, r2] @ encoding: [0x1d,0xf9,0x02,0x70] 1000@ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f] 1001@ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f] 1002@ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d] 1003@ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb] 1004@ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b] 1005@ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39] 1006 1007 1008@------------------------------------------------------------------------------ 1009@ LDRSB(literal) 1010@------------------------------------------------------------------------------ 1011 ldrsb r5, _bar 1012 1013@ CHECK: ldrsb.w r5, _bar @ encoding: [0x1f'A',0xf9'A',A,0x50'A'] 1014@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 1015 1016 1017@------------------------------------------------------------------------------ 1018@ LDRSBT 1019@------------------------------------------------------------------------------ 1020 ldrsbt r1, [r2] 1021 ldrsbt r1, [r8, #0] 1022 ldrsbt r1, [r8, #3] 1023 ldrsbt r1, [r8, #255] 1024 1025@ CHECK: ldrsbt r1, [r2] @ encoding: [0x12,0xf9,0x00,0x1e] 1026@ CHECK: ldrsbt r1, [r8] @ encoding: [0x18,0xf9,0x00,0x1e] 1027@ CHECK: ldrsbt r1, [r8, #3] @ encoding: [0x18,0xf9,0x03,0x1e] 1028@ CHECK: ldrsbt r1, [r8, #255] @ encoding: [0x18,0xf9,0xff,0x1e] 1029 1030 1031@------------------------------------------------------------------------------ 1032@ LDRSH(immediate) 1033@------------------------------------------------------------------------------ 1034 ldrsh r5, [r5, #-4] 1035 ldrsh r5, [r6, #32] 1036 ldrsh r5, [r6, #33] 1037 ldrsh r5, [r6, #257] 1038 ldrsh.w lr, [r7, #257] 1039 1040@ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c] 1041@ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50] 1042@ CHECK: ldrsh.w r5, [r6, #33] @ encoding: [0xb6,0xf9,0x21,0x50] 1043@ CHECK: ldrsh.w r5, [r6, #257] @ encoding: [0xb6,0xf9,0x01,0x51] 1044@ CHECK: ldrsh.w lr, [r7, #257] @ encoding: [0xb7,0xf9,0x01,0xe1] 1045 1046 1047@------------------------------------------------------------------------------ 1048@ LDRSH(register) 1049@------------------------------------------------------------------------------ 1050 ldrsh r1, [r8, r1] 1051 ldrsh.w r4, [r5, r2] 1052 ldrsh r6, [r0, r2, lsl #3] 1053 ldrsh r8, [r8, r2, lsl #2] 1054 ldrsh r7, [sp, r2, lsl #1] 1055 ldrsh r7, [sp, r2, lsl #0] 1056 ldrsh r5, [r8, #255]! 1057 ldrsh r2, [r5, #4]! 1058 ldrsh r1, [r4, #-4]! 1059 ldrsh lr, [r3], #255 1060 ldrsh r9, [r2], #4 1061 ldrsh r3, [sp], #-4 1062 1063@ CHECK: ldrsh.w r1, [r8, r1] @ encoding: [0x38,0xf9,0x01,0x10] 1064@ CHECK: ldrsh.w r4, [r5, r2] @ encoding: [0x35,0xf9,0x02,0x40] 1065@ CHECK: ldrsh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf9,0x32,0x60] 1066@ CHECK: ldrsh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf9,0x22,0x80] 1067@ CHECK: ldrsh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf9,0x12,0x70] 1068@ CHECK: ldrsh.w r7, [sp, r2] @ encoding: [0x3d,0xf9,0x02,0x70] 1069@ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f] 1070@ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f] 1071@ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d] 1072@ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb] 1073@ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b] 1074@ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39] 1075 1076 1077@------------------------------------------------------------------------------ 1078@ LDRSH(literal) 1079@------------------------------------------------------------------------------ 1080 ldrsh r5, _bar 1081 1082@ CHECK: ldrsh.w r5, _bar @ encoding: [0x3f'A',0xf9'A',A,0x50'A'] 1083@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 1084 1085@ TEMPORARILY DISABLED: 1086@ ldrsh.w r4, [pc, #1435] 1087@ : ldrsh.w r4, [pc, #1435] @ encoding: [0x3f,0xf9,0x9b,0x45] 1088 1089@------------------------------------------------------------------------------ 1090@ LDRSHT 1091@------------------------------------------------------------------------------ 1092 ldrsht r1, [r2] 1093 ldrsht r1, [r8, #0] 1094 ldrsht r1, [r8, #3] 1095 ldrsht r1, [r8, #255] 1096 1097@ CHECK: ldrsht r1, [r2] @ encoding: [0x32,0xf9,0x00,0x1e] 1098@ CHECK: ldrsht r1, [r8] @ encoding: [0x38,0xf9,0x00,0x1e] 1099@ CHECK: ldrsht r1, [r8, #3] @ encoding: [0x38,0xf9,0x03,0x1e] 1100@ CHECK: ldrsht r1, [r8, #255] @ encoding: [0x38,0xf9,0xff,0x1e] 1101 1102 1103@------------------------------------------------------------------------------ 1104@ LDRT 1105@------------------------------------------------------------------------------ 1106 ldrt r1, [r2] 1107 ldrt r2, [r6, #0] 1108 ldrt r3, [r7, #3] 1109 ldrt r4, [r9, #255] 1110 1111@ CHECK: ldrt r1, [r2] @ encoding: [0x52,0xf8,0x00,0x1e] 1112@ CHECK: ldrt r2, [r6] @ encoding: [0x56,0xf8,0x00,0x2e] 1113@ CHECK: ldrt r3, [r7, #3] @ encoding: [0x57,0xf8,0x03,0x3e] 1114@ CHECK: ldrt r4, [r9, #255] @ encoding: [0x59,0xf8,0xff,0x4e] 1115 1116 1117@------------------------------------------------------------------------------ 1118@ LSL (immediate) 1119@------------------------------------------------------------------------------ 1120 lsl r2, r3, #12 1121 lsls r8, r3, #31 1122 lsls.w r2, r3, #1 1123 lsl r2, r3, #4 1124 lsls r2, r12, #15 1125 1126 lsl r3, #19 1127 lsls r8, #2 1128 lsls.w r7, #5 1129 lsl.w r12, #21 1130 1131@ CHECK: lsl.w r2, r3, #12 @ encoding: [0x4f,0xea,0x03,0x32] 1132@ CHECK: lsls.w r8, r3, #31 @ encoding: [0x5f,0xea,0xc3,0x78] 1133@ CHECK: lsls.w r2, r3, #1 @ encoding: [0x5f,0xea,0x43,0x02] 1134@ CHECK: lsl.w r2, r3, #4 @ encoding: [0x4f,0xea,0x03,0x12] 1135@ CHECK: lsls.w r2, r12, #15 @ encoding: [0x5f,0xea,0xcc,0x32] 1136 1137@ CHECK: lsl.w r3, r3, #19 @ encoding: [0x4f,0xea,0xc3,0x43] 1138@ CHECK: lsls.w r8, r8, #2 @ encoding: [0x5f,0xea,0x88,0x08] 1139@ CHECK: lsls.w r7, r7, #5 @ encoding: [0x5f,0xea,0x47,0x17] 1140@ CHECK: lsl.w r12, r12, #21 @ encoding: [0x4f,0xea,0x4c,0x5c] 1141 1142 1143@------------------------------------------------------------------------------ 1144@ LSL (register) 1145@------------------------------------------------------------------------------ 1146 lsl r3, r4, r2 1147 lsl.w r1, r2 1148 lsls r3, r4, r8 1149 1150@ CHECK: lsl.w r3, r4, r2 @ encoding: [0x04,0xfa,0x02,0xf3] 1151@ CHECK: lsl.w r1, r1, r2 @ encoding: [0x01,0xfa,0x02,0xf1] 1152@ CHECK: lsls.w r3, r4, r8 @ encoding: [0x14,0xfa,0x08,0xf3] 1153 1154 1155@------------------------------------------------------------------------------ 1156@ LSR (immediate) 1157@------------------------------------------------------------------------------ 1158 lsr r2, r3, #12 1159 lsrs r8, r3, #32 1160 lsrs.w r2, r3, #1 1161 lsr r2, r3, #4 1162 lsrs r2, r12, #15 1163 1164 lsr r3, #19 1165 lsrs r8, #2 1166 lsrs.w r7, #5 1167 lsr.w r12, #21 1168 1169@ CHECK: lsr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x13,0x32] 1170@ CHECK: lsrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x13,0x08] 1171@ CHECK: lsrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x53,0x02] 1172@ CHECK: lsr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x13,0x12] 1173@ CHECK: lsrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xdc,0x32] 1174 1175@ CHECK: lsr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xd3,0x43] 1176@ CHECK: lsrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0x98,0x08] 1177@ CHECK: lsrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x57,0x17] 1178@ CHECK: lsr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x5c,0x5c] 1179 1180 1181@------------------------------------------------------------------------------ 1182@ LSR (register) 1183@------------------------------------------------------------------------------ 1184 lsr r3, r4, r2 1185 lsr.w r1, r2 1186 lsrs r3, r4, r8 1187 1188@ CHECK: lsr.w r3, r4, r2 @ encoding: [0x24,0xfa,0x02,0xf3] 1189@ CHECK: lsr.w r1, r1, r2 @ encoding: [0x21,0xfa,0x02,0xf1] 1190@ CHECK: lsrs.w r3, r4, r8 @ encoding: [0x34,0xfa,0x08,0xf3] 1191 1192@------------------------------------------------------------------------------ 1193@ MCR/MCR2 1194@------------------------------------------------------------------------------ 1195 mcr p7, #1, r5, c1, c1, #4 1196 mcr2 p7, #1, r5, c1, c1, #4 1197 mcr p14, #0, r4, c0, c5 1198 mcr2 p4, #2, r2, c1, c3 1199 1200@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57] 1201@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57] 1202@ CHECK: mcr p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e] 1203@ CHECK: mcr2 p4, #2, r2, c1, c3, #0 @ encoding: [0x41,0xfe,0x13,0x24] 1204 1205 1206@------------------------------------------------------------------------------ 1207@ MCRR/MCRR2 1208@------------------------------------------------------------------------------ 1209 mcrr p7, #15, r5, r4, c1 1210 mcrr2 p7, #15, r5, r4, c1 1211 1212@ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57] 1213@ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57] 1214 1215 1216@------------------------------------------------------------------------------ 1217@ MLA/MLS 1218@------------------------------------------------------------------------------ 1219 mla r1,r2,r3,r4 1220 mls r1,r2,r3,r4 1221 1222@ CHECK: mla r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x03,0x41] 1223@ CHECK: mls r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x13,0x41] 1224 1225 1226@------------------------------------------------------------------------------ 1227@ MOV(immediate) 1228@------------------------------------------------------------------------------ 1229 movs r1, #21 1230 movs.w r1, #21 1231 movs r8, #21 1232 movw r0, #65535 1233 movw r1, #43777 1234 movw r1, #43792 1235 mov.w r0, #0x3fc0000 1236 mov r0, #0x3fc0000 1237 movs.w r0, #0x3fc0000 1238 itte eq 1239 movseq r1, #12 1240 moveq r1, #12 1241 movne.w r1, #12 1242 mov.w r6, #450 1243 it lo 1244 movlo r1, #-1 1245 1246 @ alias for mvn 1247 mov r3, #-3 1248 1249 1250@ CHECK: movs r1, #21 @ encoding: [0x15,0x21] 1251@ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01] 1252@ CHECK: movs.w r8, #21 @ encoding: [0x5f,0xf0,0x15,0x08] 1253@ CHECK: movw r0, #65535 @ encoding: [0x4f,0xf6,0xff,0x70] 1254@ CHECK: movw r1, #43777 @ encoding: [0x4a,0xf6,0x01,0x31] 1255@ CHECK: movw r1, #43792 @ encoding: [0x4a,0xf6,0x10,0x31] 1256@ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70] 1257@ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70] 1258@ CHECK: movs.w r0, #66846720 @ encoding: [0x5f,0xf0,0x7f,0x70] 1259@ CHECK: itte eq @ encoding: [0x06,0xbf] 1260@ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01] 1261@ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21] 1262@ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01] 1263@ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76] 1264@ CHECK: it lo @ encoding: [0x38,0xbf] 1265@ CHECK: movlo.w r1, #-1 @ encoding: [0x4f,0xf0,0xff,0x31] 1266@ CHECK: mvn r3, #2 @ encoding: [0x6f,0xf0,0x02,0x03] 1267 1268@------------------------------------------------------------------------------ 1269@ MOV(shifted register) 1270@------------------------------------------------------------------------------ 1271 mov r6, r2, lsl #16 1272 mov r6, r2, lsr #16 1273 movs r6, r2, asr #32 1274 movs r6, r2, ror #5 1275 movs r4, r4, lsl r5 1276 movs r4, r4, lsr r5 1277 movs r4, r4, asr r5 1278 movs r4, r4, ror r5 1279 mov r4, r4, lsl r5 1280 movs r4, r4, ror r8 1281 movs r4, r5, lsr r6 1282 itttt eq 1283 moveq r4, r4, lsl r5 1284 moveq r4, r4, lsr r5 1285 moveq r4, r4, asr r5 1286 moveq r4, r4, ror r5 1287 mov r4, r4, rrx 1288 1289@ CHECK: lsl.w r6, r2, #16 @ encoding: [0x4f,0xea,0x02,0x46] 1290@ CHECK: lsr.w r6, r2, #16 @ encoding: [0x4f,0xea,0x12,0x46] 1291@ CHECK: asrs r6, r2, #32 @ encoding: [0x16,0x10] 1292@ CHECK: rors.w r6, r2, #5 @ encoding: [0x5f,0xea,0x72,0x16] 1293@ CHECK: lsls r4, r5 @ encoding: [0xac,0x40] 1294@ CHECK: lsrs r4, r5 @ encoding: [0xec,0x40] 1295@ CHECK: asrs r4, r5 @ encoding: [0x2c,0x41] 1296@ CHECK: rors r4, r5 @ encoding: [0xec,0x41] 1297@ CHECK: lsl.w r4, r4, r5 @ encoding: [0x04,0xfa,0x05,0xf4] 1298@ CHECK: rors.w r4, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf4] 1299@ CHECK: lsrs.w r4, r5, r6 @ encoding: [0x35,0xfa,0x06,0xf4] 1300@ CHECK: itttt eq @ encoding: [0x01,0xbf] 1301@ CHECK: lsleq r4, r5 @ encoding: [0xac,0x40] 1302@ CHECK: lsreq r4, r5 @ encoding: [0xec,0x40] 1303@ CHECK: asreq r4, r5 @ encoding: [0x2c,0x41] 1304@ CHECK: roreq r4, r5 @ encoding: [0xec,0x41] 1305@ CHECK: rrx r4, r4 @ encoding: [0x4f,0xea,0x34,0x04] 1306 1307 1308@------------------------------------------------------------------------------ 1309@ MOVT 1310@------------------------------------------------------------------------------ 1311 movt r3, #7 1312 movt r6, #0xffff 1313 it eq 1314 movteq r4, #0xff0 1315 1316@ CHECK: movt r3, #7 @ encoding: [0xc0,0xf2,0x07,0x03] 1317@ CHECK: movt r6, #65535 @ encoding: [0xcf,0xf6,0xff,0x76] 1318@ CHECK: it eq @ encoding: [0x08,0xbf] 1319@ CHECK: movteq r4, #4080 @ encoding: [0xc0,0xf6,0xf0,0x74] 1320 1321@------------------------------------------------------------------------------ 1322@ MRC/MRC2 1323@------------------------------------------------------------------------------ 1324 mrc p14, #0, r1, c1, c2, #4 1325 mrc2 p14, #0, r1, c1, c2, #4 1326 mrc p11, #1, r1, c2, c2 1327 mrc2 p12, #3, r3, c3, c4 1328 1329@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e] 1330@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e] 1331@ CHECK: mrc p11, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x1b] 1332@ CHECK: mrc2 p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c] 1333 1334 1335@------------------------------------------------------------------------------ 1336@ MRRC/MRRC2 1337@------------------------------------------------------------------------------ 1338 mrrc p7, #1, r5, r4, c1 1339 mrrc2 p7, #1, r5, r4, c1 1340 1341@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57] 1342@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57] 1343 1344 1345@------------------------------------------------------------------------------ 1346@ MRS 1347@------------------------------------------------------------------------------ 1348 mrs r8, apsr 1349 mrs r8, cpsr 1350 mrs r8, spsr 1351 1352@ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88] 1353@ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88] 1354@ CHECK: mrs r8, spsr @ encoding: [0xff,0xf3,0x00,0x88] 1355 1356 1357@------------------------------------------------------------------------------ 1358@ MSR 1359@------------------------------------------------------------------------------ 1360 msr apsr, r1 1361 msr apsr_g, r2 1362 msr apsr_nzcvq, r3 1363 msr APSR_nzcvq, r4 1364 msr apsr_nzcvqg, r5 1365 msr cpsr_fc, r6 1366 msr cpsr_c, r7 1367 msr cpsr_x, r8 1368 msr cpsr_fc, r9 1369 msr cpsr_all, r11 1370 msr cpsr_fsx, r12 1371 msr spsr_fc, r0 1372 msr SPSR_fsxc, r5 1373 msr cpsr_fsxc, r8 1374 msr cpsr, r3 1375 1376@ CHECK: msr APSR_nzcvq, r1 @ encoding: [0x81,0xf3,0x00,0x88] 1377@ CHECK: msr APSR_g, r2 @ encoding: [0x82,0xf3,0x00,0x84] 1378@ CHECK: msr APSR_nzcvq, r3 @ encoding: [0x83,0xf3,0x00,0x88] 1379@ CHECK: msr APSR_nzcvq, r4 @ encoding: [0x84,0xf3,0x00,0x88] 1380@ CHECK: msr APSR_nzcvqg, r5 @ encoding: [0x85,0xf3,0x00,0x8c] 1381@ CHECK: msr CPSR_fc, r6 @ encoding: [0x86,0xf3,0x00,0x89] 1382@ CHECK: msr CPSR_c, r7 @ encoding: [0x87,0xf3,0x00,0x81] 1383@ CHECK: msr CPSR_x, r8 @ encoding: [0x88,0xf3,0x00,0x82] 1384@ CHECK: msr CPSR_fc, r9 @ encoding: [0x89,0xf3,0x00,0x89] 1385@ CHECK: msr CPSR_fc, r11 @ encoding: [0x8b,0xf3,0x00,0x89] 1386@ CHECK: msr CPSR_fsx, r12 @ encoding: [0x8c,0xf3,0x00,0x8e] 1387@ CHECK: msr SPSR_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89] 1388@ CHECK: msr SPSR_fsxc, r5 @ encoding: [0x95,0xf3,0x00,0x8f] 1389@ CHECK: msr CPSR_fsxc, r8 @ encoding: [0x88,0xf3,0x00,0x8f] 1390@ CHECK: msr CPSR_fc, r3 @ encoding: [0x83,0xf3,0x00,0x89] 1391 1392 1393@------------------------------------------------------------------------------ 1394@ MUL 1395@------------------------------------------------------------------------------ 1396 muls r3, r4, r3 1397 mul r3, r4, r3 1398 mul r3, r4, r6 1399 it eq 1400 muleq r3, r4, r5 1401 it le 1402 mulle r4, r4, r8 1403 mul r5, r6 1404 1405@ CHECK: muls r3, r4, r3 @ encoding: [0x63,0x43] 1406@ CHECK: mul r3, r4, r3 @ encoding: [0x04,0xfb,0x03,0xf3] 1407@ CHECK: mul r3, r4, r6 @ encoding: [0x04,0xfb,0x06,0xf3] 1408@ CHECK: it eq @ encoding: [0x08,0xbf] 1409@ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3] 1410@ CHECK: it le @ encoding: [0xd8,0xbf] 1411@ CHECK: mulle r4, r4, r8 @ encoding: [0x04,0xfb,0x08,0xf4] 1412@ CHECK: mul r5, r6, r5 @ encoding: [0x06,0xfb,0x05,0xf5] 1413 1414 1415@------------------------------------------------------------------------------ 1416@ MVN(immediate) 1417@------------------------------------------------------------------------------ 1418 mvns r8, #21 1419 mvn r0, #0x3fc0000 1420 mvns r0, #0x3fc0000 1421 itte eq 1422 mvnseq r1, #12 1423 mvneq.w r1, #12 1424 mvnne r1, #12 1425 1426@ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08] 1427@ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70] 1428@ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70] 1429@ CHECK: itte eq @ encoding: [0x06,0xbf] 1430@ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01] 1431@ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01] 1432@ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01] 1433 1434 1435@------------------------------------------------------------------------------ 1436@ MVN(register) 1437@------------------------------------------------------------------------------ 1438 mvn r2, r3 1439 mvns r2, r3 1440 mvn r5, r6, lsl #19 1441 mvn r5, r6, lsr #9 1442 mvn.w r5, r6, asr #4 1443 mvn r5, r6, ror #6 1444 mvn r5, r6, rrx 1445 it eq 1446 mvneq r2, r3 1447 1448@ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02] 1449@ CHECK: mvns r2, r3 @ encoding: [0xda,0x43] 1450@ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45] 1451@ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25] 1452@ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15] 1453@ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15] 1454@ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05] 1455@ CHECK: it eq @ encoding: [0x08,0xbf] 1456@ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43] 1457 1458@------------------------------------------------------------------------------ 1459@ NEG 1460@------------------------------------------------------------------------------ 1461 neg r5, r2 1462 neg r5, r8 1463 1464@ CHECK: rsb.w r5, r2, #0 @ encoding: [0xc2,0xf1,0x00,0x05] 1465@ CHECK: rsb.w r5, r8, #0 @ encoding: [0xc8,0xf1,0x00,0x05] 1466 1467 1468@------------------------------------------------------------------------------ 1469@ NOP 1470@------------------------------------------------------------------------------ 1471 nop.w 1472 1473@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80] 1474 1475 1476@------------------------------------------------------------------------------ 1477@ ORN 1478@------------------------------------------------------------------------------ 1479 orn r4, r5, #0xf000 1480 orn r4, r5, r6 1481 orns r4, r5, r6 1482 orn r4, r5, r6, lsl #5 1483 orns r4, r5, r6, lsr #5 1484 orn r4, r5, r6, lsr #5 1485 orns r4, r5, r6, asr #5 1486 orn r4, r5, r6, ror #5 1487 1488@ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44] 1489@ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04] 1490@ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04] 1491@ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14] 1492@ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14] 1493@ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14] 1494@ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14] 1495@ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14] 1496 1497 1498@------------------------------------------------------------------------------ 1499@ ORR 1500@------------------------------------------------------------------------------ 1501 orr r4, r5, #0xf000 1502 orr r4, r5, r6 1503 orr r4, r5, r6, lsl #5 1504 orrs r4, r5, r6, lsr #5 1505 orr r4, r5, r6, lsr #5 1506 orrs r4, r5, r6, asr #5 1507 orr r4, r5, r6, ror #5 1508 1509@ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44] 1510@ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04] 1511@ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14] 1512@ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14] 1513@ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14] 1514@ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14] 1515@ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14] 1516 1517 1518@------------------------------------------------------------------------------ 1519@ PKH 1520@------------------------------------------------------------------------------ 1521 pkhbt r2, r2, r3 1522 pkhbt r2, r2, r3, lsl #31 1523 pkhbt r2, r2, r3, lsl #0 1524 pkhbt r2, r2, r3, lsl #15 1525 1526 pkhtb r2, r2, r3 1527 pkhtb r2, r2, r3, asr #31 1528 pkhtb r2, r2, r3, asr #15 1529 1530@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1531@ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72] 1532@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1533@ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32] 1534 1535@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1536@ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72] 1537@ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32] 1538 1539 1540@------------------------------------------------------------------------------ 1541@ PLD(immediate) 1542@------------------------------------------------------------------------------ 1543 pld [r5, #-4] 1544 pld [r6, #32] 1545 pld [r6, #33] 1546 pld [r6, #257] 1547 pld [r7, #257] 1548 pld [r1, #0] 1549 pld [r1, #-0] 1550 1551@ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc] 1552@ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0] 1553@ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0] 1554@ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1] 1555@ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1] 1556@ CHECK: pld [r1] @ encoding: [0x91,0xf8,0x00,0xf0] 1557@ CHECK: pld [r1, #-0] @ encoding: [0x11,0xf8,0x00,0xfc] 1558 1559 1560@------------------------------------------------------------------------------ 1561@ PLD(literal) 1562@------------------------------------------------------------------------------ 1563@ pld _foo 1564 1565@ FIXME: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A'] 1566 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 1567 1568 1569@------------------------------------------------------------------------------ 1570@ PLD(register) 1571@------------------------------------------------------------------------------ 1572 pld [r8, r1] 1573 pld [r5, r2] 1574 pld [r0, r2, lsl #3] 1575 pld [r8, r2, lsl #2] 1576 pld [sp, r2, lsl #1] 1577 pld [sp, r2, lsl #0] 1578 1579@ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0] 1580@ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0] 1581@ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0] 1582@ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0] 1583@ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0] 1584@ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0] 1585 1586@------------------------------------------------------------------------------ 1587@ PLI(immediate) 1588@------------------------------------------------------------------------------ 1589 pli [r5, #-4] 1590 pli [r6, #32] 1591 pli [r6, #33] 1592 pli [r6, #257] 1593 pli [r7, #257] 1594 1595@ CHECK: pli [r5, #-4] @ encoding: [0x15,0xf9,0x04,0xfc] 1596@ CHECK: pli [r6, #32] @ encoding: [0x96,0xf9,0x20,0xf0] 1597@ CHECK: pli [r6, #33] @ encoding: [0x96,0xf9,0x21,0xf0] 1598@ CHECK: pli [r6, #257] @ encoding: [0x96,0xf9,0x01,0xf1] 1599@ CHECK: pli [r7, #257] @ encoding: [0x97,0xf9,0x01,0xf1] 1600 1601 1602@------------------------------------------------------------------------------ 1603@ PLI(literal) 1604@------------------------------------------------------------------------------ 1605@ pli _foo 1606 1607 1608@ FIXME: pli _foo @ encoding: [0x9f'A',0xf9'A',A,0xf0'A'] 1609 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 1610 1611 1612@------------------------------------------------------------------------------ 1613@ PLI(register) 1614@------------------------------------------------------------------------------ 1615 pli [r8, r1] 1616 pli [r5, r2] 1617 pli [r0, r2, lsl #3] 1618 pli [r8, r2, lsl #2] 1619 pli [sp, r2, lsl #1] 1620 pli [sp, r2, lsl #0] 1621 1622@ CHECK: pli [r8, r1] @ encoding: [0x18,0xf9,0x01,0xf0] 1623@ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0] 1624@ CHECK: pli [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0xf0] 1625@ CHECK: pli [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0xf0] 1626@ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0] 1627@ CHECK: pli [sp, r2] @ encoding: [0x1d,0xf9,0x02,0xf0] 1628 1629@------------------------------------------------------------------------------ 1630@ POP (alias) 1631@------------------------------------------------------------------------------ 1632 pop {r2, r9} 1633 1634@ CHECK: pop.w {r2, r9} @ encoding: [0xbd,0xe8,0x04,0x02] 1635 1636 1637@------------------------------------------------------------------------------ 1638@ PUSH (alias) 1639@------------------------------------------------------------------------------ 1640 push {r2, r9} 1641 1642@ CHECK: push.w {r2, r9} @ encoding: [0x2d,0xe9,0x04,0x02] 1643 1644 1645@------------------------------------------------------------------------------ 1646@ QADD/QADD16/QADD8 1647@------------------------------------------------------------------------------ 1648 qadd r1, r2, r3 1649 qadd16 r1, r2, r3 1650 qadd8 r1, r2, r3 1651 itte gt 1652 qaddgt r1, r2, r3 1653 qadd16gt r1, r2, r3 1654 qadd8le r1, r2, r3 1655 1656@ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1] 1657@ CHECK: qadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1] 1658@ CHECK: qadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1] 1659@ CHECK: itte gt @ encoding: [0xc6,0xbf] 1660@ CHECK: qaddgt r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1] 1661@ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1] 1662@ CHECK: qadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1] 1663 1664 1665@------------------------------------------------------------------------------ 1666@ QDADD/QDSUB 1667@------------------------------------------------------------------------------ 1668 qdadd r6, r7, r8 1669 qdsub r6, r7, r8 1670 itt hi 1671 qdaddhi r6, r7, r8 1672 qdsubhi r6, r7, r8 1673 1674@ CHECK: qdadd r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6] 1675@ CHECK: qdsub r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6] 1676@ CHECK: itt hi @ encoding: [0x84,0xbf] 1677@ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6] 1678@ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6] 1679 1680 1681@------------------------------------------------------------------------------ 1682@ QSAX 1683@------------------------------------------------------------------------------ 1684 qsax r9, r12, r0 1685 it eq 1686 qsaxeq r9, r12, r0 1687 1688@ CHECK: qsax r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9] 1689@ CHECK: it eq @ encoding: [0x08,0xbf] 1690@ CHECK: qsaxeq r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9] 1691 1692 1693@------------------------------------------------------------------------------ 1694@ QSUB/QSUB16/QSUB8 1695@------------------------------------------------------------------------------ 1696 qsub r1, r2, r3 1697 qsub16 r1, r2, r3 1698 qsub8 r1, r2, r3 1699 itet le 1700 qsuble r1, r2, r3 1701 qsub16gt r1, r2, r3 1702 qsub8le r1, r2, r3 1703 1704@ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1] 1705@ CHECK: qsub16 r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1] 1706@ CHECK: qsub8 r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1] 1707@ CHECK: itet le @ encoding: [0xd6,0xbf] 1708@ CHECK: qsuble r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1] 1709@ CHECK: qsub16gt r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1] 1710@ CHECK: qsub8le r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1] 1711 1712 1713@------------------------------------------------------------------------------ 1714@ RBIT 1715@------------------------------------------------------------------------------ 1716 rbit r1, r2 1717 it ne 1718 rbitne r1, r2 1719 1720@ CHECK: rbit r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1] 1721@ CHECK: it ne @ encoding: [0x18,0xbf] 1722@ CHECK: rbitne r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1] 1723 1724 1725@------------------------------------------------------------------------------ 1726@ REV 1727@------------------------------------------------------------------------------ 1728 rev.w r1, r2 1729 rev r2, r8 1730 itt ne 1731 revne r1, r2 1732 revne r1, r8 1733 1734@ CHECK: rev.w r1, r2 @ encoding: [0x92,0xfa,0x82,0xf1] 1735@ CHECK: rev.w r2, r8 @ encoding: [0x98,0xfa,0x88,0xf2] 1736@ CHECK: itt ne @ encoding: [0x1c,0xbf] 1737@ CHECK: revne r1, r2 @ encoding: [0x11,0xba] 1738@ CHECK: revne.w r1, r8 @ encoding: [0x98,0xfa,0x88,0xf1] 1739 1740 1741@------------------------------------------------------------------------------ 1742@ REV16 1743@------------------------------------------------------------------------------ 1744 rev16.w r1, r2 1745 rev16 r2, r8 1746 itt ne 1747 rev16ne r1, r2 1748 rev16ne r1, r8 1749 1750@ CHECK: rev16.w r1, r2 @ encoding: [0x92,0xfa,0x92,0xf1] 1751@ CHECK: rev16.w r2, r8 @ encoding: [0x98,0xfa,0x98,0xf2] 1752@ CHECK: itt ne @ encoding: [0x1c,0xbf] 1753@ CHECK: rev16ne r1, r2 @ encoding: [0x51,0xba] 1754@ CHECK: rev16ne.w r1, r8 @ encoding: [0x98,0xfa,0x98,0xf1] 1755 1756 1757@------------------------------------------------------------------------------ 1758@ REVSH 1759@------------------------------------------------------------------------------ 1760 revsh.w r1, r2 1761 revsh r2, r8 1762 itt ne 1763 revshne r1, r2 1764 revshne r1, r8 1765 1766@ CHECK: revsh.w r1, r2 @ encoding: [0x92,0xfa,0xb2,0xf1] 1767@ CHECK: revsh.w r2, r8 @ encoding: [0x98,0xfa,0xb8,0xf2] 1768@ CHECK: itt ne @ encoding: [0x1c,0xbf] 1769@ CHECK: revshne r1, r2 @ encoding: [0xd1,0xba] 1770@ CHECK: revshne.w r1, r8 @ encoding: [0x98,0xfa,0xb8,0xf1] 1771 1772 1773@------------------------------------------------------------------------------ 1774@ ROR (immediate) 1775@------------------------------------------------------------------------------ 1776 ror r2, r3, #12 1777 rors r8, r3, #31 1778 rors.w r2, r3, #1 1779 ror r2, r3, #4 1780 rors r2, r12, #15 1781 1782 ror r3, #19 1783 rors r8, #2 1784 rors.w r7, #5 1785 ror.w r12, #21 1786 1787@ CHECK: ror.w r2, r3, #12 @ encoding: [0x4f,0xea,0x33,0x32] 1788@ CHECK: rors.w r8, r3, #31 @ encoding: [0x5f,0xea,0xf3,0x78] 1789@ CHECK: rors.w r2, r3, #1 @ encoding: [0x5f,0xea,0x73,0x02] 1790@ CHECK: ror.w r2, r3, #4 @ encoding: [0x4f,0xea,0x33,0x12] 1791@ CHECK: rors.w r2, r12, #15 @ encoding: [0x5f,0xea,0xfc,0x32] 1792 1793@ CHECK: ror.w r3, r3, #19 @ encoding: [0x4f,0xea,0xf3,0x43] 1794@ CHECK: rors.w r8, r8, #2 @ encoding: [0x5f,0xea,0xb8,0x08] 1795@ CHECK: rors.w r7, r7, #5 @ encoding: [0x5f,0xea,0x77,0x17] 1796@ CHECK: ror.w r12, r12, #21 @ encoding: [0x4f,0xea,0x7c,0x5c] 1797 1798 1799@------------------------------------------------------------------------------ 1800@ ROR (register) 1801@------------------------------------------------------------------------------ 1802 ror r3, r4, r2 1803 ror.w r1, r2 1804 rors r3, r4, r8 1805 1806@ CHECK: ror.w r3, r4, r2 @ encoding: [0x64,0xfa,0x02,0xf3] 1807@ CHECK: ror.w r1, r1, r2 @ encoding: [0x61,0xfa,0x02,0xf1] 1808@ CHECK: rors.w r3, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf3] 1809 1810 1811@------------------------------------------------------------------------------ 1812@ RRX 1813@------------------------------------------------------------------------------ 1814 rrx r1, r2 1815 rrxs r1, r2 1816 ite lt 1817 rrxlt r9, r12 1818 rrxsge r8, r3 1819 1820@ CHECK: rrx r1, r2 @ encoding: [0x4f,0xea,0x32,0x01] 1821@ CHECK: rrxs r1, r2 @ encoding: [0x5f,0xea,0x32,0x01] 1822@ CHECK: ite lt @ encoding: [0xb4,0xbf] 1823@ CHECK: rrxlt r9, r12 @ encoding: [0x4f,0xea,0x3c,0x09] 1824@ CHECK: rrxsge r8, r3 @ encoding: [0x5f,0xea,0x33,0x08] 1825 1826@------------------------------------------------------------------------------ 1827@ RSB (immediate) 1828@------------------------------------------------------------------------------ 1829 rsb r2, r5, #0xff000 1830 rsbs r3, r12, #0xf 1831 rsb r1, #0xff 1832 rsb r1, r1, #0xff 1833 rsb r11, r11, #0 1834 rsb r9, #0 1835 rsbs r3, r1, #0 1836 rsb r3, r1, #0 1837 1838@ CHECK: rsb.w r2, r5, #1044480 @ encoding: [0xc5,0xf5,0x7f,0x22] 1839@ CHECK: rsbs.w r3, r12, #15 @ encoding: [0xdc,0xf1,0x0f,0x03] 1840@ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01] 1841@ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01] 1842@ CHECK: rsb.w r11, r11, #0 @ encoding: [0xcb,0xf1,0x00,0x0b] 1843@ CHECK: rsb.w r9, r9, #0 @ encoding: [0xc9,0xf1,0x00,0x09] 1844@ CHECK: rsbs r3, r1, #0 @ encoding: [0x4b,0x42] 1845@ CHECK: rsb.w r3, r1, #0 @ encoding: [0xc1,0xf1,0x00,0x03] 1846 1847 1848@------------------------------------------------------------------------------ 1849@ RSB (register) 1850@------------------------------------------------------------------------------ 1851 rsb r4, r8 1852 rsb r4, r9, r8 1853 rsb r1, r4, r8, asr #3 1854 rsbs r2, r1, r7, lsl #1 1855 1856@ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04] 1857@ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04] 1858@ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01] 1859@ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02] 1860 1861 1862@------------------------------------------------------------------------------ 1863@ SADD16 1864@------------------------------------------------------------------------------ 1865 sadd16 r3, r4, r8 1866 it ne 1867 sadd16ne r3, r4, r8 1868 1869@ CHECK: sadd16 r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3] 1870@ CHECK: it ne @ encoding: [0x18,0xbf] 1871@ CHECK: sadd16ne r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3] 1872 1873 1874@------------------------------------------------------------------------------ 1875@ SADD8 1876@------------------------------------------------------------------------------ 1877 sadd8 r3, r4, r8 1878 it ne 1879 sadd8ne r3, r4, r8 1880 1881@ CHECK: sadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3] 1882@ CHECK: it ne @ encoding: [0x18,0xbf] 1883@ CHECK: sadd8ne r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3] 1884 1885 1886@------------------------------------------------------------------------------ 1887@ SASX 1888@------------------------------------------------------------------------------ 1889 saddsubx r9, r2, r7 1890 it ne 1891 saddsubxne r2, r5, r6 1892 sasx r9, r2, r7 1893 it ne 1894 sasxne r2, r5, r6 1895 1896@ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9] 1897@ CHECK: it ne @ encoding: [0x18,0xbf] 1898@ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2] 1899@ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9] 1900@ CHECK: it ne @ encoding: [0x18,0xbf] 1901@ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2] 1902 1903 1904@------------------------------------------------------------------------------ 1905@ SBC (immediate) 1906@------------------------------------------------------------------------------ 1907 sbc r0, r1, #4 1908 sbcs r0, r1, #0 1909 sbc r1, r2, #255 1910 sbc r3, r7, #0x00550055 1911 sbc r8, r12, #0xaa00aa00 1912 sbc r9, r7, #0xa5a5a5a5 1913 sbc r5, r3, #0x87000000 1914 sbc r4, r2, #0x7f800000 1915 sbc r4, r2, #0x00000680 1916 1917@ CHECK: sbc r0, r1, #4 @ encoding: [0x61,0xf1,0x04,0x00] 1918@ CHECK: sbcs r0, r1, #0 @ encoding: [0x71,0xf1,0x00,0x00] 1919@ CHECK: sbc r1, r2, #255 @ encoding: [0x62,0xf1,0xff,0x01] 1920@ CHECK: sbc r3, r7, #5570645 @ encoding: [0x67,0xf1,0x55,0x13] 1921@ CHECK: sbc r8, r12, #2852170240 @ encoding: [0x6c,0xf1,0xaa,0x28] 1922@ CHECK: sbc r9, r7, #2779096485 @ encoding: [0x67,0xf1,0xa5,0x39] 1923@ CHECK: sbc r5, r3, #2264924160 @ encoding: [0x63,0xf1,0x07,0x45] 1924@ CHECK: sbc r4, r2, #2139095040 @ encoding: [0x62,0xf1,0xff,0x44] 1925@ CHECK: sbc r4, r2, #1664 @ encoding: [0x62,0xf5,0xd0,0x64] 1926 1927 1928@------------------------------------------------------------------------------ 1929@ SBC (register) 1930@------------------------------------------------------------------------------ 1931 sbc r4, r5, r6 1932 sbcs r4, r5, r6 1933 sbc.w r9, r1, r3 1934 sbcs.w r9, r1, r3 1935 sbc r0, r1, r3, ror #4 1936 sbcs r0, r1, r3, lsl #7 1937 sbc.w r0, r1, r3, lsr #31 1938 sbcs.w r0, r1, r3, asr #32 1939 1940@ CHECK: sbc.w r4, r5, r6 @ encoding: [0x65,0xeb,0x06,0x04] 1941@ CHECK: sbcs.w r4, r5, r6 @ encoding: [0x75,0xeb,0x06,0x04] 1942@ CHECK: sbc.w r9, r1, r3 @ encoding: [0x61,0xeb,0x03,0x09] 1943@ CHECK: sbcs.w r9, r1, r3 @ encoding: [0x71,0xeb,0x03,0x09] 1944@ CHECK: sbc.w r0, r1, r3, ror #4 @ encoding: [0x61,0xeb,0x33,0x10] 1945@ CHECK: sbcs.w r0, r1, r3, lsl #7 @ encoding: [0x71,0xeb,0xc3,0x10] 1946@ CHECK: sbc.w r0, r1, r3, lsr #31 @ encoding: [0x61,0xeb,0xd3,0x70] 1947@ CHECK: sbcs.w r0, r1, r3, asr #32 @ encoding: [0x71,0xeb,0x23,0x00] 1948 1949 1950@------------------------------------------------------------------------------ 1951@ SBFX 1952@------------------------------------------------------------------------------ 1953 sbfx r4, r5, #16, #1 1954 it gt 1955 sbfxgt r4, r5, #16, #16 1956 1957@ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x45,0xf3,0x00,0x44] 1958@ CHECK: it gt @ encoding: [0xc8,0xbf] 1959@ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x45,0xf3,0x0f,0x44] 1960 1961 1962@------------------------------------------------------------------------------ 1963@ SEL 1964@------------------------------------------------------------------------------ 1965 sel r5, r9, r2 1966 it le 1967 selle r5, r9, r2 1968 1969@ CHECK: sel r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5] 1970@ CHECK: it le @ encoding: [0xd8,0xbf] 1971@ CHECK: selle r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5] 1972 1973 1974@------------------------------------------------------------------------------ 1975@ SEV 1976@------------------------------------------------------------------------------ 1977 sev.w 1978 it eq 1979 seveq.w 1980 1981@ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80] 1982@ CHECK: it eq @ encoding: [0x08,0xbf] 1983@ CHECK: seveq.w @ encoding: [0xaf,0xf3,0x04,0x80] 1984 1985 1986@------------------------------------------------------------------------------ 1987@ SADD16/SADD8 1988@------------------------------------------------------------------------------ 1989 sadd16 r1, r2, r3 1990 sadd8 r1, r2, r3 1991 ite gt 1992 sadd16gt r1, r2, r3 1993 sadd8le r1, r2, r3 1994 1995@ CHECK: sadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1] 1996@ CHECK: sadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1] 1997@ CHECK: ite gt @ encoding: [0xcc,0xbf] 1998@ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1] 1999@ CHECK: sadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1] 2000 2001 2002@------------------------------------------------------------------------------ 2003@ SHASX 2004@------------------------------------------------------------------------------ 2005 shasx r4, r8, r2 2006 it gt 2007 shasxgt r4, r8, r2 2008 shaddsubx r4, r8, r2 2009 it gt 2010 shaddsubxgt r4, r8, r2 2011 2012@ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 2013@ CHECK: it gt @ encoding: [0xc8,0xbf] 2014@ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 2015@ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 2016@ CHECK: it gt @ encoding: [0xc8,0xbf] 2017@ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 2018 2019 2020@------------------------------------------------------------------------------ 2021@ SHASX 2022@------------------------------------------------------------------------------ 2023 shsax r4, r8, r2 2024 it gt 2025 shsaxgt r4, r8, r2 2026 shsubaddx r4, r8, r2 2027 it gt 2028 shsubaddxgt r4, r8, r2 2029 2030@ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 2031@ CHECK: it gt @ encoding: [0xc8,0xbf] 2032@ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 2033@ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 2034@ CHECK: it gt @ encoding: [0xc8,0xbf] 2035@ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 2036 2037 2038@------------------------------------------------------------------------------ 2039@ SHSUB16/SHSUB8 2040@------------------------------------------------------------------------------ 2041 shsub16 r4, r8, r2 2042 shsub8 r4, r8, r2 2043 itt gt 2044 shsub16gt r4, r8, r2 2045 shsub8gt r4, r8, r2 2046 2047@ CHECK: shsub16 r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4] 2048@ CHECK: shsub8 r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4] 2049@ CHECK: itt gt @ encoding: [0xc4,0xbf] 2050@ CHECK: shsub16gt r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4] 2051@ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4] 2052 2053 2054@------------------------------------------------------------------------------ 2055@ SMLABB/SMLABT/SMLATB/SMLATT 2056@------------------------------------------------------------------------------ 2057 smlabb r3, r1, r9, r0 2058 smlabt r5, r6, r4, r1 2059 smlatb r4, r2, r3, r2 2060 smlatt r8, r3, r8, r4 2061 itete gt 2062 smlabbgt r3, r1, r9, r0 2063 smlabtle r5, r6, r4, r1 2064 smlatbgt r4, r2, r3, r2 2065 smlattle r8, r3, r8, r4 2066 2067@ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03] 2068@ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15] 2069@ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24] 2070@ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48] 2071@ CHECK: itete gt @ encoding: [0xcb,0xbf] 2072@ CHECK: smlabbgt r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03] 2073@ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15] 2074@ CHECK: smlatbgt r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24] 2075@ CHECK: smlattle r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48] 2076 2077 2078@------------------------------------------------------------------------------ 2079@ SMLAD/SMLADX 2080@------------------------------------------------------------------------------ 2081 smlad r2, r3, r5, r8 2082 smladx r2, r3, r5, r8 2083 itt hi 2084 smladhi r2, r3, r5, r8 2085 smladxhi r2, r3, r5, r8 2086 2087@ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82] 2088@ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82] 2089@ CHECK: itt hi @ encoding: [0x84,0xbf] 2090@ CHECK: smladhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82] 2091@ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82] 2092 2093 2094@------------------------------------------------------------------------------ 2095@ SMLAL 2096@------------------------------------------------------------------------------ 2097 smlal r2, r3, r5, r8 2098 it eq 2099 smlaleq r2, r3, r5, r8 2100 2101@ CHECK: smlal r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23] 2102@ CHECK: it eq @ encoding: [0x08,0xbf] 2103@ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23] 2104 2105 2106@------------------------------------------------------------------------------ 2107@ SMLALBB/SMLALBT/SMLALTB/SMLALTT 2108@------------------------------------------------------------------------------ 2109 smlalbb r3, r1, r9, r0 2110 smlalbt r5, r6, r4, r1 2111 smlaltb r4, r2, r3, r2 2112 smlaltt r8, r3, r8, r4 2113 iteet ge 2114 smlalbbge r3, r1, r9, r0 2115 smlalbtlt r5, r6, r4, r1 2116 smlaltblt r4, r2, r3, r2 2117 smlalttge r8, r3, r8, r4 2118 2119@ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31] 2120@ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56] 2121@ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42] 2122@ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83] 2123@ CHECK: iteet ge @ encoding: [0xad,0xbf] 2124@ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31] 2125@ CHECK: smlalbtlt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56] 2126@ CHECK: smlaltblt r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42] 2127@ CHECK: smlalttge r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83] 2128 2129 2130@------------------------------------------------------------------------------ 2131@ SMLALD/SMLALDX 2132@------------------------------------------------------------------------------ 2133 smlald r2, r3, r5, r8 2134 smlaldx r2, r3, r5, r8 2135 ite eq 2136 smlaldeq r2, r3, r5, r8 2137 smlaldxne r2, r3, r5, r8 2138 2139@ CHECK: smlald r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23] 2140@ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23] 2141@ CHECK: ite eq @ encoding: [0x0c,0xbf] 2142@ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23] 2143@ CHECK: smlaldxne r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23] 2144 2145 2146@------------------------------------------------------------------------------ 2147@ SMLAWB/SMLAWT 2148@------------------------------------------------------------------------------ 2149 smlawb r2, r3, r10, r8 2150 smlawt r8, r3, r5, r9 2151 ite eq 2152 smlawbeq r2, r7, r5, r8 2153 smlawtne r1, r3, r0, r8 2154 2155@ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x33,0xfb,0x0a,0x82] 2156@ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0x33,0xfb,0x15,0x98] 2157@ CHECK: ite eq @ encoding: [0x0c,0xbf] 2158@ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x37,0xfb,0x05,0x82] 2159@ CHECK: smlawtne r1, r3, r0, r8 @ encoding: [0x33,0xfb,0x10,0x81] 2160 2161 2162@------------------------------------------------------------------------------ 2163@ SMLSD/SMLSDX 2164@------------------------------------------------------------------------------ 2165 smlsd r2, r3, r5, r8 2166 smlsdx r2, r3, r5, r8 2167 ite le 2168 smlsdle r2, r3, r5, r8 2169 smlsdxgt r2, r3, r5, r8 2170 2171@ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82] 2172@ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82] 2173@ CHECK: ite le @ encoding: [0xd4,0xbf] 2174@ CHECK: smlsdle r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82] 2175@ CHECK: smlsdxgt r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82] 2176 2177 2178@------------------------------------------------------------------------------ 2179@ SMLSLD/SMLSLDX 2180@------------------------------------------------------------------------------ 2181 smlsld r2, r9, r5, r1 2182 smlsldx r4, r11, r2, r8 2183 ite ge 2184 smlsldge r8, r2, r5, r6 2185 smlsldxlt r1, r0, r3, r8 2186 2187@ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0xd5,0xfb,0xc1,0x29] 2188@ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b] 2189@ CHECK: ite ge @ encoding: [0xac,0xbf] 2190@ CHECK: smlsldge r8, r2, r5, r6 @ encoding: [0xd5,0xfb,0xc6,0x82] 2191@ CHECK: smlsldxlt r1, r0, r3, r8 @ encoding: [0xd3,0xfb,0xd8,0x10] 2192 2193 2194@------------------------------------------------------------------------------ 2195@ SMMLA/SMMLAR 2196@------------------------------------------------------------------------------ 2197 smmla r1, r2, r3, r4 2198 smmlar r4, r3, r2, r1 2199 ite lo 2200 smmlalo r1, r2, r3, r4 2201 smmlarcs r4, r3, r2, r1 2202 2203@ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41] 2204@ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14] 2205@ CHECK: ite lo @ encoding: [0x34,0xbf] 2206@ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41] 2207@ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14] 2208 2209 2210@------------------------------------------------------------------------------ 2211@ SMMLS/SMMLSR 2212@------------------------------------------------------------------------------ 2213 smmls r1, r2, r3, r4 2214 smmlsr r4, r3, r2, r1 2215 ite lo 2216 smmlslo r1, r2, r3, r4 2217 smmlsrcs r4, r3, r2, r1 2218 2219@ CHECK: smmls r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41] 2220@ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14] 2221@ CHECK: ite lo @ encoding: [0x34,0xbf] 2222@ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41] 2223@ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14] 2224 2225 2226@------------------------------------------------------------------------------ 2227@ SMMUL/SMMULR 2228@------------------------------------------------------------------------------ 2229 smmul r2, r3, r4 2230 smmulr r3, r2, r1 2231 ite cc 2232 smmulcc r2, r3, r4 2233 smmulrhs r3, r2, r1 2234 2235@ CHECK: smmul r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2] 2236@ CHECK: smmulr r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3] 2237@ CHECK: ite lo @ encoding: [0x34,0xbf] 2238@ CHECK: smmullo r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2] 2239@ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3] 2240 2241 2242@------------------------------------------------------------------------------ 2243@ SMUAD/SMUADX 2244@------------------------------------------------------------------------------ 2245 smuad r2, r3, r4 2246 smuadx r3, r2, r1 2247 ite lt 2248 smuadlt r2, r3, r4 2249 smuadxge r3, r2, r1 2250 2251@ CHECK: smuad r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2] 2252@ CHECK: smuadx r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3] 2253@ CHECK: ite lt @ encoding: [0xb4,0xbf] 2254@ CHECK: smuadlt r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2] 2255@ CHECK: smuadxge r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3] 2256 2257 2258@------------------------------------------------------------------------------ 2259@ SMULBB/SMULBT/SMULTB/SMULTT 2260@------------------------------------------------------------------------------ 2261 smulbb r3, r9, r0 2262 smulbt r5, r4, r1 2263 smultb r4, r2, r2 2264 smultt r8, r3, r4 2265 itete ge 2266 smulbbge r1, r9, r0 2267 smulbtlt r5, r6, r4 2268 smultbge r2, r3, r2 2269 smulttlt r8, r3, r4 2270 2271@ CHECK: smulbb r3, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf3] 2272@ CHECK: smulbt r5, r4, r1 @ encoding: [0x14,0xfb,0x11,0xf5] 2273@ CHECK: smultb r4, r2, r2 @ encoding: [0x12,0xfb,0x22,0xf4] 2274@ CHECK: smultt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8] 2275@ CHECK: itete ge @ encoding: [0xab,0xbf] 2276@ CHECK: smulbbge r1, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf1] 2277@ CHECK: smulbtlt r5, r6, r4 @ encoding: [0x16,0xfb,0x14,0xf5] 2278@ CHECK: smultbge r2, r3, r2 @ encoding: [0x13,0xfb,0x22,0xf2] 2279@ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8] 2280 2281 2282@------------------------------------------------------------------------------ 2283@ SMULL 2284@------------------------------------------------------------------------------ 2285 smull r3, r9, r0, r1 2286 it eq 2287 smulleq r8, r3, r4, r5 2288 2289@ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39] 2290@ CHECK: it eq @ encoding: [0x08,0xbf] 2291@ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83] 2292 2293 2294@------------------------------------------------------------------------------ 2295@ SMULWB/SMULWT 2296@------------------------------------------------------------------------------ 2297 smulwb r3, r9, r0 2298 smulwt r3, r9, r2 2299 ite gt 2300 smulwbgt r3, r9, r0 2301 smulwtle r3, r9, r2 2302 2303@ CHECK: smulwb r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3] 2304@ CHECK: smulwt r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3] 2305@ CHECK: ite gt @ encoding: [0xcc,0xbf] 2306@ CHECK: smulwbgt r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3] 2307@ CHECK: smulwtle r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3] 2308 2309 2310@------------------------------------------------------------------------------ 2311@ SMUSD/SMUSDX 2312@------------------------------------------------------------------------------ 2313 smusd r3, r0, r1 2314 smusdx r3, r9, r2 2315 ite eq 2316 smusdeq r8, r3, r2 2317 smusdxne r7, r4, r3 2318 2319@ CHECK: smusd r3, r0, r1 @ encoding: [0x40,0xfb,0x01,0xf3] 2320@ CHECK: smusdx r3, r9, r2 @ encoding: [0x49,0xfb,0x12,0xf3] 2321@ CHECK: ite eq @ encoding: [0x0c,0xbf] 2322@ CHECK: smusdeq r8, r3, r2 @ encoding: [0x43,0xfb,0x02,0xf8] 2323@ CHECK: smusdxne r7, r4, r3 @ encoding: [0x44,0xfb,0x13,0xf7] 2324 2325 2326@------------------------------------------------------------------------------ 2327@ SRS 2328@------------------------------------------------------------------------------ 2329 srsdb sp, #1 2330 srsia sp, #0 2331 2332 srsdb sp!, #19 2333 srsia sp!, #2 2334 2335 srsea sp, #10 2336 srsfd sp, #9 2337 2338 srsea sp!, #5 2339 srsfd sp!, #5 2340 2341 srs sp, #5 2342 srs sp!, #5 2343 2344@ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0] 2345@ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0] 2346@ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0] 2347@ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0] 2348@ CHECK: srsdb sp, #10 @ encoding: [0x0d,0xe8,0x0a,0xc0] 2349@ CHECK: srsia sp, #9 @ encoding: [0x8d,0xe9,0x09,0xc0] 2350@ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0] 2351@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0] 2352@ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0] 2353@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0] 2354 2355 2356@------------------------------------------------------------------------------ 2357@ SSAT 2358@------------------------------------------------------------------------------ 2359 ssat r8, #1, r10 2360 ssat r8, #1, r10, lsl #0 2361 ssat r8, #1, r10, lsl #31 2362 ssat r8, #1, r10, asr #1 2363 2364@ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08] 2365@ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08] 2366@ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x0a,0xf3,0xc0,0x78] 2367@ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0x2a,0xf3,0x40,0x08] 2368 2369 2370@------------------------------------------------------------------------------ 2371@ SSAT16 2372@------------------------------------------------------------------------------ 2373 ssat16 r2, #1, r7 2374 ssat16 r3, #16, r5 2375 2376@ CHECK: ssat16 r2, #1, r7 @ encoding: [0x27,0xf3,0x00,0x02] 2377@ CHECK: ssat16 r3, #16, r5 @ encoding: [0x25,0xf3,0x0f,0x03] 2378 2379 2380@------------------------------------------------------------------------------ 2381@ SSAX 2382@------------------------------------------------------------------------------ 2383 ssubaddx r2, r3, r4 2384 it lt 2385 ssubaddxlt r2, r3, r4 2386 ssax r2, r3, r4 2387 it lt 2388 ssaxlt r2, r3, r4 2389 2390@ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2391@ CHECK: it lt @ encoding: [0xb8,0xbf] 2392@ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2393@ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2394@ CHECK: it lt @ encoding: [0xb8,0xbf] 2395@ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2396 2397 2398@------------------------------------------------------------------------------ 2399@ SSUB16/SSUB8 2400@------------------------------------------------------------------------------ 2401 ssub16 r1, r0, r6 2402 ssub8 r9, r2, r4 2403 ite ne 2404 ssub16ne r5, r3, r2 2405 ssub8eq r5, r1, r2 2406 2407@ CHECK: ssub16 r1, r0, r6 @ encoding: [0xd0,0xfa,0x06,0xf1] 2408@ CHECK: ssub8 r9, r2, r4 @ encoding: [0xc2,0xfa,0x04,0xf9] 2409@ CHECK: ite ne @ encoding: [0x14,0xbf] 2410@ CHECK: ssub16ne r5, r3, r2 @ encoding: [0xd3,0xfa,0x02,0xf5] 2411@ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xc1,0xfa,0x02,0xf5] 2412 2413 2414@------------------------------------------------------------------------------ 2415@ STC{L}/STC2{L} 2416@------------------------------------------------------------------------------ 2417 stc2 p0, c8, [r1, #4] 2418 stc2 p1, c7, [r2] 2419 stc2 p2, c6, [r3, #-224] 2420 stc2 p3, c5, [r4, #-120]! 2421 stc2 p4, c4, [r5], #16 2422 stc2 p5, c3, [r6], #-72 2423 stc2l p6, c2, [r7, #4] 2424 stc2l p7, c1, [r8] 2425 stc2l p8, c0, [r9, #-224] 2426 stc2l p9, c1, [r10, #-120]! 2427 stc2l p10, c2, [r11], #16 2428 stc2l p11, c3, [r12], #-72 2429 2430 stc p12, c4, [r0, #4] 2431 stc p13, c5, [r1] 2432 stc p14, c6, [r2, #-224] 2433 stc p15, c7, [r3, #-120]! 2434 stc p5, c8, [r4], #16 2435 stc p4, c9, [r5], #-72 2436 stcl p3, c10, [r6, #4] 2437 stcl p2, c11, [r7] 2438 stcl p1, c12, [r8, #-224] 2439 stcl p0, c13, [r9, #-120]! 2440 stcl p6, c14, [r10], #16 2441 stcl p7, c15, [r11], #-72 2442 2443 stc2 p2, c8, [r1], { 25 } 2444 2445@ CHECK: stc2 p0, c8, [r1, #4] @ encoding: [0x81,0xfd,0x01,0x80] 2446@ CHECK: stc2 p1, c7, [r2] @ encoding: [0x82,0xfd,0x00,0x71] 2447@ CHECK: stc2 p2, c6, [r3, #-224] @ encoding: [0x03,0xfd,0x38,0x62] 2448@ CHECK: stc2 p3, c5, [r4, #-120]! @ encoding: [0x24,0xfd,0x1e,0x53] 2449@ CHECK: stc2 p4, c4, [r5], #16 @ encoding: [0xa5,0xfc,0x04,0x44] 2450@ CHECK: stc2 p5, c3, [r6], #-72 @ encoding: [0x26,0xfc,0x12,0x35] 2451@ CHECK: stc2l p6, c2, [r7, #4] @ encoding: [0xc7,0xfd,0x01,0x26] 2452@ CHECK: stc2l p7, c1, [r8] @ encoding: [0xc8,0xfd,0x00,0x17] 2453@ CHECK: stc2l p8, c0, [r9, #-224] @ encoding: [0x49,0xfd,0x38,0x08] 2454@ CHECK: stc2l p9, c1, [r10, #-120]! @ encoding: [0x6a,0xfd,0x1e,0x19] 2455@ CHECK: stc2l p10, c2, [r11], #16 @ encoding: [0xeb,0xfc,0x04,0x2a] 2456@ CHECK: stc2l p11, c3, [r12], #-72 @ encoding: [0x6c,0xfc,0x12,0x3b] 2457 2458@ CHECK: stc p12, c4, [r0, #4] @ encoding: [0x80,0xed,0x01,0x4c] 2459@ CHECK: stc p13, c5, [r1] @ encoding: [0x81,0xed,0x00,0x5d] 2460@ CHECK: stc p14, c6, [r2, #-224] @ encoding: [0x02,0xed,0x38,0x6e] 2461@ CHECK: stc p15, c7, [r3, #-120]! @ encoding: [0x23,0xed,0x1e,0x7f] 2462@ CHECK: stc p5, c8, [r4], #16 @ encoding: [0xa4,0xec,0x04,0x85] 2463@ CHECK: stc p4, c9, [r5], #-72 @ encoding: [0x25,0xec,0x12,0x94] 2464@ CHECK: stcl p3, c10, [r6, #4] @ encoding: [0xc6,0xed,0x01,0xa3] 2465@ CHECK: stcl p2, c11, [r7] @ encoding: [0xc7,0xed,0x00,0xb2] 2466@ CHECK: stcl p1, c12, [r8, #-224] @ encoding: [0x48,0xed,0x38,0xc1] 2467@ CHECK: stcl p0, c13, [r9, #-120]! @ encoding: [0x69,0xed,0x1e,0xd0] 2468@ CHECK: stcl p6, c14, [r10], #16 @ encoding: [0xea,0xec,0x04,0xe6] 2469@ CHECK: stcl p7, c15, [r11], #-72 @ encoding: [0x6b,0xec,0x12,0xf7] 2470 2471@ CHECK: stc2 p2, c8, [r1], {25} @ encoding: [0x81,0xfc,0x19,0x82] 2472 2473 2474@------------------------------------------------------------------------------ 2475@ STMIA 2476@------------------------------------------------------------------------------ 2477 stmia.w r4, {r4, r5, r8, r9} 2478 stmia.w r4, {r5, r6} 2479 stmia.w r5!, {r3, r8} 2480 stm.w r4, {r4, r5, r8, r9} 2481 stm.w r4, {r5, r6} 2482 stm.w r5!, {r3, r8} 2483 stm.w r5!, {r1, r2} 2484 stm.w r2, {r1, r2} 2485 2486 stmia r4, {r4, r5, r8, r9} 2487 stmia r4, {r5, r6} 2488 stmia r5!, {r3, r8} 2489 stm r4, {r4, r5, r8, r9} 2490 stm r4, {r5, r6} 2491 stm r5!, {r3, r8} 2492 stmea r5!, {r3, r8} 2493 2494@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2495@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2496@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2497@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2498@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2499@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2500@ CHECK: stm.w r5!, {r1, r2} @ encoding: [0xa5,0xe8,0x06,0x00] 2501@ CHECK: stm.w r2, {r1, r2} @ encoding: [0x82,0xe8,0x06,0x00] 2502 2503@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2504@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2505@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2506@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2507@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2508@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2509@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2510 2511 2512@------------------------------------------------------------------------------ 2513@ STMDB 2514@------------------------------------------------------------------------------ 2515 stmdb r4, {r4, r5, r8, r9} 2516 stmdb r4, {r5, r6} 2517 stmdb r5!, {r3, r8} 2518 stmea r5!, {r3, r8} 2519 stmdb.w r5, {r0, r1} 2520 2521@ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03] 2522@ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00] 2523@ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01] 2524@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2525@ CHECK: stmdb r5, {r0, r1} @ encoding: [0x05,0xe9,0x03,0x00] 2526 2527 2528@------------------------------------------------------------------------------ 2529@ STR(immediate) 2530@------------------------------------------------------------------------------ 2531 str r5, [r5, #-4] 2532 str r5, [r6, #32] 2533 str r5, [r6, #33] 2534 str r5, [r6, #257] 2535 str.w pc, [r7, #257] 2536 str r2, [r4, #255]! 2537 str r8, [sp, #4]! 2538 str lr, [sp, #-4]! 2539 str r2, [r4], #255 2540 str r8, [sp], #4 2541 str lr, [sp], #-4 2542 2543@ CHECK: str r5, [r5, #-4] @ encoding: [0x45,0xf8,0x04,0x5c] 2544@ CHECK: str r5, [r6, #32] @ encoding: [0x35,0x62] 2545@ CHECK: str.w r5, [r6, #33] @ encoding: [0xc6,0xf8,0x21,0x50] 2546@ CHECK: str.w r5, [r6, #257] @ encoding: [0xc6,0xf8,0x01,0x51] 2547@ CHECK: str.w pc, [r7, #257] @ encoding: [0xc7,0xf8,0x01,0xf1] 2548@ CHECK: str r2, [r4, #255]! @ encoding: [0x44,0xf8,0xff,0x2f] 2549@ CHECK: str r8, [sp, #4]! @ encoding: [0x4d,0xf8,0x04,0x8f] 2550@ CHECK: str lr, [sp, #-4]! @ encoding: [0x4d,0xf8,0x04,0xed] 2551@ CHECK: str r2, [r4], #255 @ encoding: [0x44,0xf8,0xff,0x2b] 2552@ CHECK: str r8, [sp], #4 @ encoding: [0x4d,0xf8,0x04,0x8b] 2553@ CHECK: str lr, [sp], #-4 @ encoding: [0x4d,0xf8,0x04,0xe9] 2554 2555 2556@------------------------------------------------------------------------------ 2557@ STR(register) 2558@------------------------------------------------------------------------------ 2559 str r1, [r8, r1] 2560 str.w r4, [r5, r2] 2561 str r6, [r0, r2, lsl #3] 2562 str r8, [r8, r2, lsl #2] 2563 str r7, [sp, r2, lsl #1] 2564 str r7, [sp, r2, lsl #0] 2565 2566@ CHECK: str.w r1, [r8, r1] @ encoding: [0x48,0xf8,0x01,0x10] 2567@ CHECK: str.w r4, [r5, r2] @ encoding: [0x45,0xf8,0x02,0x40] 2568@ CHECK: str.w r6, [r0, r2, lsl #3] @ encoding: [0x40,0xf8,0x32,0x60] 2569@ CHECK: str.w r8, [r8, r2, lsl #2] @ encoding: [0x48,0xf8,0x22,0x80] 2570@ CHECK: str.w r7, [sp, r2, lsl #1] @ encoding: [0x4d,0xf8,0x12,0x70] 2571@ CHECK: str.w r7, [sp, r2] @ encoding: [0x4d,0xf8,0x02,0x70] 2572 2573 2574@------------------------------------------------------------------------------ 2575@ STRB(immediate) 2576@------------------------------------------------------------------------------ 2577 strb r5, [r5, #-4] 2578 strb r5, [r6, #32] 2579 strb r5, [r6, #33] 2580 strb r5, [r6, #257] 2581 strb.w lr, [r7, #257] 2582 strb r5, [r8, #255]! 2583 strb r2, [r5, #4]! 2584 strb r1, [r4, #-4]! 2585 strb lr, [r3], #255 2586 strb r9, [r2], #4 2587 strb r3, [sp], #-4 2588 strb r4, [r8, #-0]! 2589 2590@ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c] 2591@ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50] 2592@ CHECK: strb.w r5, [r6, #33] @ encoding: [0x86,0xf8,0x21,0x50] 2593@ CHECK: strb.w r5, [r6, #257] @ encoding: [0x86,0xf8,0x01,0x51] 2594@ CHECK: strb.w lr, [r7, #257] @ encoding: [0x87,0xf8,0x01,0xe1] 2595@ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f] 2596@ CHECK: strb r2, [r5, #4]! @ encoding: [0x05,0xf8,0x04,0x2f] 2597@ CHECK: strb r1, [r4, #-4]! @ encoding: [0x04,0xf8,0x04,0x1d] 2598@ CHECK: strb lr, [r3], #255 @ encoding: [0x03,0xf8,0xff,0xeb] 2599@ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b] 2600@ CHECK: strb r3, [sp], #-4 @ encoding: [0x0d,0xf8,0x04,0x39] 2601@ CHECK: strb r4, [r8, #-0]! @ encoding: [0x08,0xf8,0x00,0x4d] 2602 2603 2604@------------------------------------------------------------------------------ 2605@ STRB(register) 2606@------------------------------------------------------------------------------ 2607 strb r1, [r8, r1] 2608 strb.w r4, [r5, r2] 2609 strb r6, [r0, r2, lsl #3] 2610 strb r8, [r8, r2, lsl #2] 2611 strb r7, [sp, r2, lsl #1] 2612 strb r7, [sp, r2, lsl #0] 2613 2614@ CHECK: strb.w r1, [r8, r1] @ encoding: [0x08,0xf8,0x01,0x10] 2615@ CHECK: strb.w r4, [r5, r2] @ encoding: [0x05,0xf8,0x02,0x40] 2616@ CHECK: strb.w r6, [r0, r2, lsl #3] @ encoding: [0x00,0xf8,0x32,0x60] 2617@ CHECK: strb.w r8, [r8, r2, lsl #2] @ encoding: [0x08,0xf8,0x22,0x80] 2618@ CHECK: strb.w r7, [sp, r2, lsl #1] @ encoding: [0x0d,0xf8,0x12,0x70] 2619@ CHECK: strb.w r7, [sp, r2] @ encoding: [0x0d,0xf8,0x02,0x70] 2620 2621 2622@------------------------------------------------------------------------------ 2623@ STRBT 2624@------------------------------------------------------------------------------ 2625 strbt r1, [r2] 2626 strbt r1, [r8, #0] 2627 strbt r1, [r8, #3] 2628 strbt r1, [r8, #255] 2629 2630@ CHECK: strbt r1, [r2] @ encoding: [0x02,0xf8,0x00,0x1e] 2631@ CHECK: strbt r1, [r8] @ encoding: [0x08,0xf8,0x00,0x1e] 2632@ CHECK: strbt r1, [r8, #3] @ encoding: [0x08,0xf8,0x03,0x1e] 2633@ CHECK: strbt r1, [r8, #255] @ encoding: [0x08,0xf8,0xff,0x1e] 2634 2635 2636@------------------------------------------------------------------------------ 2637@ STRD 2638@------------------------------------------------------------------------------ 2639 strd r3, r5, [r6, #24] 2640 strd r3, r5, [r6, #24]! 2641 strd r3, r5, [r6], #4 2642 strd r3, r5, [r6], #-8 2643 strd r3, r5, [r6] 2644 strd r8, r1, [r3, #0] 2645 strd r0, r1, [r2, #-0] 2646 strd r0, r1, [r2, #-0]! 2647 strd r0, r1, [r2], #-0 2648 2649@ CHECK: strd r3, r5, [r6, #24] @ encoding: [0xc6,0xe9,0x06,0x35] 2650@ CHECK: strd r3, r5, [r6, #24]! @ encoding: [0xe6,0xe9,0x06,0x35] 2651@ CHECK: strd r3, r5, [r6], #4 @ encoding: [0xe6,0xe8,0x01,0x35] 2652@ CHECK: strd r3, r5, [r6], #-8 @ encoding: [0x66,0xe8,0x02,0x35] 2653@ CHECK: strd r3, r5, [r6] @ encoding: [0xc6,0xe9,0x00,0x35] 2654@ CHECK: strd r8, r1, [r3] @ encoding: [0xc3,0xe9,0x00,0x81] 2655@ CHECK: strd r0, r1, [r2, #-0] @ encoding: [0x42,0xe9,0x00,0x01] 2656@ CHECK: strd r0, r1, [r2, #-0]! @ encoding: [0x62,0xe9,0x00,0x01] 2657@ CHECK: strd r0, r1, [r2], #-0 @ encoding: [0x62,0xe8,0x00,0x01] 2658 2659 2660@------------------------------------------------------------------------------ 2661@ STREX/STREXB/STREXH/STREXD 2662@------------------------------------------------------------------------------ 2663 strex r1, r8, [r4] 2664 strex r8, r2, [r4, #0] 2665 strex r2, r12, [sp, #128] 2666 strexb r5, r1, [r7] 2667 strexh r9, r7, [r12] 2668 strexd r9, r3, r6, [r4] 2669 2670@ CHECK: strex r1, r8, [r4] @ encoding: [0x44,0xe8,0x00,0x81] 2671@ CHECK: strex r8, r2, [r4] @ encoding: [0x44,0xe8,0x00,0x28] 2672@ CHECK: strex r2, r12, [sp, #128] @ encoding: [0x4d,0xe8,0x20,0xc2] 2673@ CHECK: strexb r5, r1, [r7] @ encoding: [0xc7,0xe8,0x45,0x1f] 2674@ CHECK: strexh r9, r7, [r12] @ encoding: [0xcc,0xe8,0x59,0x7f] 2675@ CHECK: strexd r9, r3, r6, [r4] @ encoding: [0xc4,0xe8,0x79,0x36] 2676 2677 2678@------------------------------------------------------------------------------ 2679@ STRH(immediate) 2680@------------------------------------------------------------------------------ 2681 strh r5, [r5, #-4] 2682 strh r5, [r6, #32] 2683 strh r5, [r6, #33] 2684 strh r5, [r6, #257] 2685 strh.w lr, [r7, #257] 2686 strh r5, [r8, #255]! 2687 strh r2, [r5, #4]! 2688 strh r1, [r4, #-4]! 2689 strh lr, [r3], #255 2690 strh r9, [r2], #4 2691 strh r3, [sp], #-4 2692 2693@ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c] 2694@ CHECK: strh r5, [r6, #32] @ encoding: [0x35,0x84] 2695@ CHECK: strh.w r5, [r6, #33] @ encoding: [0xa6,0xf8,0x21,0x50] 2696@ CHECK: strh.w r5, [r6, #257] @ encoding: [0xa6,0xf8,0x01,0x51] 2697@ CHECK: strh.w lr, [r7, #257] @ encoding: [0xa7,0xf8,0x01,0xe1] 2698@ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f] 2699@ CHECK: strh r2, [r5, #4]! @ encoding: [0x25,0xf8,0x04,0x2f] 2700@ CHECK: strh r1, [r4, #-4]! @ encoding: [0x24,0xf8,0x04,0x1d] 2701@ CHECK: strh lr, [r3], #255 @ encoding: [0x23,0xf8,0xff,0xeb] 2702@ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b] 2703@ CHECK: strh r3, [sp], #-4 @ encoding: [0x2d,0xf8,0x04,0x39] 2704 2705 2706@------------------------------------------------------------------------------ 2707@ STRH(register) 2708@------------------------------------------------------------------------------ 2709 strh r1, [r8, r1] 2710 strh.w r4, [r5, r2] 2711 strh r6, [r0, r2, lsl #3] 2712 strh r8, [r8, r2, lsl #2] 2713 strh r7, [sp, r2, lsl #1] 2714 strh r7, [sp, r2, lsl #0] 2715 2716@ CHECK: strh.w r1, [r8, r1] @ encoding: [0x28,0xf8,0x01,0x10] 2717@ CHECK: strh.w r4, [r5, r2] @ encoding: [0x25,0xf8,0x02,0x40] 2718@ CHECK: strh.w r6, [r0, r2, lsl #3] @ encoding: [0x20,0xf8,0x32,0x60] 2719@ CHECK: strh.w r8, [r8, r2, lsl #2] @ encoding: [0x28,0xf8,0x22,0x80] 2720@ CHECK: strh.w r7, [sp, r2, lsl #1] @ encoding: [0x2d,0xf8,0x12,0x70] 2721@ CHECK: strh.w r7, [sp, r2] @ encoding: [0x2d,0xf8,0x02,0x70] 2722 2723 2724@------------------------------------------------------------------------------ 2725@ STRHT 2726@------------------------------------------------------------------------------ 2727 strht r1, [r2] 2728 strht r1, [r8, #0] 2729 strht r1, [r8, #3] 2730 strht r1, [r8, #255] 2731 2732@ CHECK: strht r1, [r2] @ encoding: [0x22,0xf8,0x00,0x1e] 2733@ CHECK: strht r1, [r8] @ encoding: [0x28,0xf8,0x00,0x1e] 2734@ CHECK: strht r1, [r8, #3] @ encoding: [0x28,0xf8,0x03,0x1e] 2735@ CHECK: strht r1, [r8, #255] @ encoding: [0x28,0xf8,0xff,0x1e] 2736 2737 2738@------------------------------------------------------------------------------ 2739@ STRT 2740@------------------------------------------------------------------------------ 2741 strt r1, [r2] 2742 strt r1, [r8, #0] 2743 strt r1, [r8, #3] 2744 strt r1, [r8, #255] 2745 2746@ CHECK: strt r1, [r2] @ encoding: [0x42,0xf8,0x00,0x1e] 2747@ CHECK: strt r1, [r8] @ encoding: [0x48,0xf8,0x00,0x1e] 2748@ CHECK: strt r1, [r8, #3] @ encoding: [0x48,0xf8,0x03,0x1e] 2749@ CHECK: strt r1, [r8, #255] @ encoding: [0x48,0xf8,0xff,0x1e] 2750 2751 2752@------------------------------------------------------------------------------ 2753@ SUB (immediate) 2754@------------------------------------------------------------------------------ 2755 itet eq 2756 subeq r1, r2, #4 2757 subwne r5, r3, #1023 2758 subeq r4, r5, #293 2759 sub r2, sp, #1024 2760 sub r2, r8, #0xff00 2761 sub r2, r3, #257 2762 subw r2, r3, #257 2763 sub r12, r6, #0x100 2764 subw r12, r6, #0x100 2765 subs r1, r2, #0x1f0 2766 sub r2, #1 2767 sub r0, r0, #32 2768 subs r2, r2, #56 2769 subs r2, #56 2770 2771@ CHECK: itet eq @ encoding: [0x0a,0xbf] 2772@ CHECK: subeq r1, r2, #4 @ encoding: [0x11,0x1f] 2773@ CHECK: subwne r5, r3, #1023 @ encoding: [0xa3,0xf2,0xff,0x35] 2774@ CHECK: subweq r4, r5, #293 @ encoding: [0xa5,0xf2,0x25,0x14] 2775@ CHECK: sub.w r2, sp, #1024 @ encoding: [0xad,0xf5,0x80,0x62] 2776@ CHECK: sub.w r2, r8, #65280 @ encoding: [0xa8,0xf5,0x7f,0x42] 2777@ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12] 2778@ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12] 2779@ CHECK: sub.w r12, r6, #256 @ encoding: [0xa6,0xf5,0x80,0x7c] 2780@ CHECK: subw r12, r6, #256 @ encoding: [0xa6,0xf2,0x00,0x1c] 2781@ CHECK: subs.w r1, r2, #496 @ encoding: [0xb2,0xf5,0xf8,0x71] 2782@ CHECK: sub.w r2, r2, #1 @ encoding: [0xa2,0xf1,0x01,0x02] 2783@ CHECK: sub.w r0, r0, #32 @ encoding: [0xa0,0xf1,0x20,0x00] 2784@ CHECK: subs r2, #56 @ encoding: [0x38,0x3a] 2785@ CHECK: subs r2, #56 @ encoding: [0x38,0x3a] 2786 2787 2788@------------------------------------------------------------------------------ 2789@ SUB (register) 2790@------------------------------------------------------------------------------ 2791 sub r4, r5, r6 2792 sub r4, r5, r6, lsl #5 2793 sub r4, r5, r6, lsr #5 2794 sub.w r4, r5, r6, lsr #5 2795 sub r4, r5, r6, asr #5 2796 sub r4, r5, r6, ror #5 2797 sub.w r5, r2, r12, rrx 2798 sub r2, sp, ip 2799 sub sp, sp, ip 2800 sub sp, ip 2801 sub.w r2, sp, ip 2802 sub.w sp, sp, ip 2803 sub.w sp, ip 2804 2805@ CHECK: sub.w r4, r5, r6 @ encoding: [0xa5,0xeb,0x06,0x04] 2806@ CHECK: sub.w r4, r5, r6, lsl #5 @ encoding: [0xa5,0xeb,0x46,0x14] 2807@ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14] 2808@ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14] 2809@ CHECK: sub.w r4, r5, r6, asr #5 @ encoding: [0xa5,0xeb,0x66,0x14] 2810@ CHECK: sub.w r4, r5, r6, ror #5 @ encoding: [0xa5,0xeb,0x76,0x14] 2811@ CHECK: sub.w r5, r2, r12, rrx @ encoding: [0xa2,0xeb,0x3c,0x05] 2812@ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02] 2813@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2814@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2815@ CHECK: sub.w r2, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x02] 2816@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2817@ CHECK: sub.w sp, sp, r12 @ encoding: [0xad,0xeb,0x0c,0x0d] 2818 2819 2820@------------------------------------------------------------------------------ 2821@ SVC 2822@------------------------------------------------------------------------------ 2823 svc #0 2824 ite eq 2825 svceq #255 2826 swine #33 2827 2828@ CHECK: svc #0 @ encoding: [0x00,0xdf] 2829@ CHECK: ite eq @ encoding: [0x0c,0xbf] 2830@ CHECK: svceq #255 @ encoding: [0xff,0xdf] 2831@ CHECK: svcne #33 @ encoding: [0x21,0xdf] 2832 2833 2834@------------------------------------------------------------------------------ 2835@ SXTAB 2836@------------------------------------------------------------------------------ 2837 sxtab r2, r3, r4 2838 sxtab r4, r5, r6, ror #0 2839 it lt 2840 sxtablt r6, r2, r9, ror #8 2841 sxtab r5, r1, r4, ror #16 2842 sxtab r7, r8, r3, ror #24 2843 2844@ CHECK: sxtab r2, r3, r4 @ encoding: [0x43,0xfa,0x84,0xf2] 2845@ CHECK: sxtab r4, r5, r6 @ encoding: [0x45,0xfa,0x86,0xf4] 2846@ CHECK: it lt @ encoding: [0xb8,0xbf] 2847@ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x42,0xfa,0x99,0xf6] 2848@ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x41,0xfa,0xa4,0xf5] 2849@ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x48,0xfa,0xb3,0xf7] 2850 2851 2852@------------------------------------------------------------------------------ 2853@ SXTAB16 2854@------------------------------------------------------------------------------ 2855 sxtab16 r6, r2, r7, ror #0 2856 sxtab16 r3, r5, r8, ror #8 2857 sxtab16 r3, r2, r1, ror #16 2858 ite ne 2859 sxtab16ne r0, r1, r4 2860 sxtab16eq r1, r2, r3, ror #24 2861 2862@ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x22,0xfa,0x87,0xf6] 2863@ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x25,0xfa,0x98,0xf3] 2864@ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x22,0xfa,0xa1,0xf3] 2865@ CHECK: ite ne @ encoding: [0x14,0xbf] 2866@ CHECK: sxtab16ne r0, r1, r4 @ encoding: [0x21,0xfa,0x84,0xf0] 2867@ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x22,0xfa,0xb3,0xf1] 2868 2869 2870@------------------------------------------------------------------------------ 2871@ SXTAH 2872@------------------------------------------------------------------------------ 2873 sxtah r1, r3, r9 2874 sxtah r3, r8, r3, ror #8 2875 sxtah r9, r3, r3, ror #24 2876 ite hi 2877 sxtahhi r6, r1, r6, ror #0 2878 sxtahls r2, r2, r4, ror #16 2879 2880@ CHECK: sxtah r1, r3, r9 @ encoding: [0x03,0xfa,0x89,0xf1] 2881@ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x08,0xfa,0x93,0xf3] 2882@ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x03,0xfa,0xb3,0xf9] 2883@ CHECK: ite hi @ encoding: [0x8c,0xbf] 2884@ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x01,0xfa,0x86,0xf6] 2885@ CHECK: sxtahls r2, r2, r4, ror #16 @ encoding: [0x02,0xfa,0xa4,0xf2] 2886 2887 2888@------------------------------------------------------------------------------ 2889@ SXTB 2890@------------------------------------------------------------------------------ 2891 sxtb r5, r6, ror #0 2892 sxtb r6, r9, ror #8 2893 sxtb r8, r3, ror #24 2894 ite ge 2895 sxtbge r2, r4 2896 sxtblt r5, r1, ror #16 2897 sxtb.w r7, r8 2898 2899@ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2] 2900@ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6] 2901@ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8] 2902@ CHECK: ite ge @ encoding: [0xac,0xbf] 2903@ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2] 2904@ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5] 2905@ CHECK: sxtb.w r7, r8 @ encoding: [0x4f,0xfa,0x88,0xf7] 2906 2907 2908@------------------------------------------------------------------------------ 2909@ SXTB16 2910@------------------------------------------------------------------------------ 2911 sxtb16 r1, r4 2912 sxtb16 r6, r7, ror #0 2913 sxtb16 r3, r1, ror #16 2914 ite cs 2915 sxtb16cs r3, r5, ror #8 2916 sxtb16lo r2, r3, ror #24 2917 2918@ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1] 2919@ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6] 2920@ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3] 2921@ CHECK: ite hs @ encoding: [0x2c,0xbf] 2922@ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3] 2923@ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2] 2924 2925 2926@------------------------------------------------------------------------------ 2927@ SXTH 2928@------------------------------------------------------------------------------ 2929 sxth r1, r6, ror #0 2930 sxth r3, r8, ror #8 2931 sxth r9, r3, ror #24 2932 itt ne 2933 sxthne r3, r9 2934 sxthne r2, r2, ror #16 2935 sxth.w r7, r8 2936 2937@ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2] 2938@ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3] 2939@ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9] 2940@ CHECK: itt ne @ encoding: [0x1c,0xbf] 2941@ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3] 2942@ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2] 2943@ CHECK: sxth.w r7, r8 @ encoding: [0x0f,0xfa,0x88,0xf7] 2944 2945 2946@------------------------------------------------------------------------------ 2947@ SXTB 2948@------------------------------------------------------------------------------ 2949 sxtb r5, r6, ror #0 2950 sxtb.w r6, r9, ror #8 2951 sxtb r8, r3, ror #24 2952 ite ge 2953 sxtbge r2, r4 2954 sxtblt r5, r1, ror #16 2955 2956@ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2] 2957@ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6] 2958@ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8] 2959@ CHECK: ite ge @ encoding: [0xac,0xbf] 2960@ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2] 2961@ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5] 2962 2963 2964@------------------------------------------------------------------------------ 2965@ SXTB16 2966@------------------------------------------------------------------------------ 2967 sxtb16 r1, r4 2968 sxtb16 r6, r7, ror #0 2969 sxtb16 r3, r1, ror #16 2970 ite cs 2971 sxtb16cs r3, r5, ror #8 2972 sxtb16lo r2, r3, ror #24 2973 2974@ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1] 2975@ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6] 2976@ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3] 2977@ CHECK: ite hs @ encoding: [0x2c,0xbf] 2978@ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3] 2979@ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2] 2980 2981 2982@------------------------------------------------------------------------------ 2983@ SXTH 2984@------------------------------------------------------------------------------ 2985 sxth r1, r6, ror #0 2986 sxth.w r3, r8, ror #8 2987 sxth r9, r3, ror #24 2988 itt ne 2989 sxthne r3, r9 2990 sxthne r2, r2, ror #16 2991 2992@ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2] 2993@ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3] 2994@ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9] 2995@ CHECK: itt ne @ encoding: [0x1c,0xbf] 2996@ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3] 2997@ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2] 2998 2999 3000@------------------------------------------------------------------------------ 3001@ TBB/TBH 3002@------------------------------------------------------------------------------ 3003 tbb [r3, r8] 3004 tbh [r3, r8, lsl #1] 3005 it eq 3006 tbbeq [r3, r8] 3007 it cs 3008 tbhcs [r3, r8, lsl #1] 3009 3010@ CHECK: tbb [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0] 3011@ CHECK: tbh [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0] 3012@ CHECK: it eq @ encoding: [0x08,0xbf] 3013@ CHECK: tbbeq [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0] 3014@ CHECK: it hs @ encoding: [0x28,0xbf] 3015@ CHECK: tbhhs [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0] 3016 3017 3018@------------------------------------------------------------------------------ 3019@ TEQ 3020@------------------------------------------------------------------------------ 3021 teq r5, #0xf000 3022 teq r4, r5 3023 teq r4, r5, lsl #5 3024 teq r4, r5, lsr #5 3025 teq r4, r5, lsr #5 3026 teq r4, r5, asr #5 3027 teq r4, r5, ror #5 3028 3029@ CHECK: teq.w r5, #61440 @ encoding: [0x95,0xf4,0x70,0x4f] 3030@ CHECK: teq.w r4, r5 @ encoding: [0x94,0xea,0x05,0x0f] 3031@ CHECK: teq.w r4, r5, lsl #5 @ encoding: [0x94,0xea,0x45,0x1f] 3032@ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f] 3033@ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f] 3034@ CHECK: teq.w r4, r5, asr #5 @ encoding: [0x94,0xea,0x65,0x1f] 3035@ CHECK: teq.w r4, r5, ror #5 @ encoding: [0x94,0xea,0x75,0x1f] 3036 3037 3038@------------------------------------------------------------------------------ 3039@ TST 3040@------------------------------------------------------------------------------ 3041 tst r5, #0xf000 3042 tst r2, r5 3043 tst r3, r12, lsl #5 3044 tst r4, r11, lsr #4 3045 tst r5, r10, lsr #12 3046 tst r6, r9, asr #30 3047 tst r7, r8, ror #2 3048 3049@ CHECK: tst.w r5, #61440 @ encoding: [0x15,0xf4,0x70,0x4f] 3050@ CHECK: tst r2, r5 @ encoding: [0x2a,0x42] 3051@ CHECK: tst.w r3, r12, lsl #5 @ encoding: [0x13,0xea,0x4c,0x1f] 3052@ CHECK: tst.w r4, r11, lsr #4 @ encoding: [0x14,0xea,0x1b,0x1f] 3053@ CHECK: tst.w r5, r10, lsr #12 @ encoding: [0x15,0xea,0x1a,0x3f] 3054@ CHECK: tst.w r6, r9, asr #30 @ encoding: [0x16,0xea,0xa9,0x7f] 3055@ CHECK: tst.w r7, r8, ror #2 @ encoding: [0x17,0xea,0xb8,0x0f] 3056 3057 3058@------------------------------------------------------------------------------ 3059@ UADD16/UADD8 3060@------------------------------------------------------------------------------ 3061 uadd16 r1, r2, r3 3062 uadd8 r1, r2, r3 3063 ite gt 3064 uadd16gt r1, r2, r3 3065 uadd8le r1, r2, r3 3066 3067@ CHECK: uadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1] 3068@ CHECK: uadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1] 3069@ CHECK: ite gt @ encoding: [0xcc,0xbf] 3070@ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1] 3071@ CHECK: uadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1] 3072 3073 3074@------------------------------------------------------------------------------ 3075@ UASX 3076@------------------------------------------------------------------------------ 3077 uasx r9, r12, r0 3078 it eq 3079 uasxeq r9, r12, r0 3080 uaddsubx r9, r12, r0 3081 it eq 3082 uaddsubxeq r9, r12, r0 3083 3084@ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 3085@ CHECK: it eq @ encoding: [0x08,0xbf] 3086@ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 3087@ CHECK: uasx r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 3088@ CHECK: it eq @ encoding: [0x08,0xbf] 3089@ CHECK: uasxeq r9, r12, r0 @ encoding: [0xac,0xfa,0x40,0xf9] 3090 3091 3092@------------------------------------------------------------------------------ 3093@ UBFX 3094@------------------------------------------------------------------------------ 3095 ubfx r4, r5, #16, #1 3096 it gt 3097 ubfxgt r4, r5, #16, #16 3098 3099@ CHECK: ubfx r4, r5, #16, #1 @ encoding: [0xc5,0xf3,0x00,0x44] 3100@ CHECK: it gt @ encoding: [0xc8,0xbf] 3101@ CHECK: ubfxgt r4, r5, #16, #16 @ encoding: [0xc5,0xf3,0x0f,0x44] 3102 3103 3104@------------------------------------------------------------------------------ 3105@ UHADD16/UHADD8 3106@------------------------------------------------------------------------------ 3107 uhadd16 r4, r8, r2 3108 uhadd8 r4, r8, r2 3109 itt gt 3110 uhadd16gt r4, r8, r2 3111 uhadd8gt r4, r8, r2 3112 3113@ CHECK: uhadd16 r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4] 3114@ CHECK: uhadd8 r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4] 3115@ CHECK: itt gt @ encoding: [0xc4,0xbf] 3116@ CHECK: uhadd16gt r4, r8, r2 @ encoding: [0x98,0xfa,0x62,0xf4] 3117@ CHECK: uhadd8gt r4, r8, r2 @ encoding: [0x88,0xfa,0x62,0xf4] 3118 3119 3120@------------------------------------------------------------------------------ 3121@ UHASX/UHSAX 3122@------------------------------------------------------------------------------ 3123 uhasx r4, r1, r5 3124 uhsax r5, r6, r6 3125 itt gt 3126 uhasxgt r6, r9, r8 3127 uhsaxgt r7, r8, r12 3128 uhaddsubx r4, r1, r5 3129 uhsubaddx r5, r6, r6 3130 itt gt 3131 uhaddsubxgt r6, r9, r8 3132 uhsubaddxgt r7, r8, r12 3133 3134@ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4] 3135@ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5] 3136@ CHECK: itt gt @ encoding: [0xc4,0xbf] 3137@ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6] 3138@ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7] 3139@ CHECK: uhasx r4, r1, r5 @ encoding: [0xa1,0xfa,0x65,0xf4] 3140@ CHECK: uhsax r5, r6, r6 @ encoding: [0xe6,0xfa,0x66,0xf5] 3141@ CHECK: itt gt @ encoding: [0xc4,0xbf] 3142@ CHECK: uhasxgt r6, r9, r8 @ encoding: [0xa9,0xfa,0x68,0xf6] 3143@ CHECK: uhsaxgt r7, r8, r12 @ encoding: [0xe8,0xfa,0x6c,0xf7] 3144 3145 3146@------------------------------------------------------------------------------ 3147@ UHSUB16/UHSUB8 3148@------------------------------------------------------------------------------ 3149 uhsub16 r5, r8, r3 3150 uhsub8 r1, r7, r6 3151 itt lt 3152 uhsub16lt r4, r9, r12 3153 uhsub8lt r3, r1, r5 3154 3155@ CHECK: uhsub16 r5, r8, r3 @ encoding: [0xd8,0xfa,0x63,0xf5] 3156@ CHECK: uhsub8 r1, r7, r6 @ encoding: [0xc7,0xfa,0x66,0xf1] 3157@ CHECK: itt lt @ encoding: [0xbc,0xbf] 3158@ CHECK: uhsub16lt r4, r9, r12 @ encoding: [0xd9,0xfa,0x6c,0xf4] 3159@ CHECK: uhsub8lt r3, r1, r5 @ encoding: [0xc1,0xfa,0x65,0xf3] 3160 3161 3162@------------------------------------------------------------------------------ 3163@ UMAAL 3164@------------------------------------------------------------------------------ 3165 umaal r3, r4, r5, r6 3166 it lt 3167 umaallt r3, r4, r5, r6 3168 3169@ CHECK: umaal r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34] 3170@ CHECK: it lt @ encoding: [0xb8,0xbf] 3171@ CHECK: umaallt r3, r4, r5, r6 @ encoding: [0xe5,0xfb,0x66,0x34] 3172 3173 3174@------------------------------------------------------------------------------ 3175@ UMLAL 3176@------------------------------------------------------------------------------ 3177 umlal r2, r4, r6, r8 3178 it gt 3179 umlalgt r6, r1, r2, r6 3180 3181@ CHECK: umlal r2, r4, r6, r8 @ encoding: [0xe6,0xfb,0x08,0x24] 3182@ CHECK: it gt @ encoding: [0xc8,0xbf] 3183@ CHECK: umlalgt r6, r1, r2, r6 @ encoding: [0xe2,0xfb,0x06,0x61] 3184 3185 3186@------------------------------------------------------------------------------ 3187@ UMULL 3188@------------------------------------------------------------------------------ 3189 umull r2, r4, r6, r8 3190 it gt 3191 umullgt r6, r1, r2, r6 3192 3193@ CHECK: umull r2, r4, r6, r8 @ encoding: [0xa6,0xfb,0x08,0x24] 3194@ CHECK: it gt @ encoding: [0xc8,0xbf] 3195@ CHECK: umullgt r6, r1, r2, r6 @ encoding: [0xa2,0xfb,0x06,0x61] 3196 3197 3198@------------------------------------------------------------------------------ 3199@ UQADD16/UQADD8 3200@------------------------------------------------------------------------------ 3201 uqadd16 r1, r2, r3 3202 uqadd8 r3, r4, r8 3203 ite gt 3204 uqadd16gt r4, r7, r9 3205 uqadd8le r8, r1, r2 3206 3207@ CHECK: uqadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x53,0xf1] 3208@ CHECK: uqadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x58,0xf3] 3209@ CHECK: ite gt @ encoding: [0xcc,0xbf] 3210@ CHECK: uqadd16gt r4, r7, r9 @ encoding: [0x97,0xfa,0x59,0xf4] 3211@ CHECK: uqadd8le r8, r1, r2 @ encoding: [0x81,0xfa,0x52,0xf8] 3212 3213 3214@------------------------------------------------------------------------------ 3215@ UQASX/UQSAX 3216@------------------------------------------------------------------------------ 3217 uqasx r1, r2, r3 3218 uqsax r3, r4, r8 3219 ite gt 3220 uqasxgt r4, r7, r9 3221 uqsaxle r8, r1, r2 3222 3223 uqaddsubx r1, r2, r3 3224 uqsubaddx r3, r4, r8 3225 ite gt 3226 uqaddsubxgt r4, r7, r9 3227 uqsubaddxle r8, r1, r2 3228 3229@ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1] 3230@ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3] 3231@ CHECK: ite gt @ encoding: [0xcc,0xbf] 3232@ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4] 3233@ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8] 3234 3235@ CHECK: uqasx r1, r2, r3 @ encoding: [0xa2,0xfa,0x53,0xf1] 3236@ CHECK: uqsax r3, r4, r8 @ encoding: [0xe4,0xfa,0x58,0xf3] 3237@ CHECK: ite gt @ encoding: [0xcc,0xbf] 3238@ CHECK: uqasxgt r4, r7, r9 @ encoding: [0xa7,0xfa,0x59,0xf4] 3239@ CHECK: uqsaxle r8, r1, r2 @ encoding: [0xe1,0xfa,0x52,0xf8] 3240 3241 3242@------------------------------------------------------------------------------ 3243@ UQSUB16/UQSUB8 3244@------------------------------------------------------------------------------ 3245 uqsub8 r8, r2, r9 3246 uqsub16 r1, r9, r7 3247 ite gt 3248 uqsub8gt r3, r1, r6 3249 uqsub16le r4, r6, r4 3250 3251@ CHECK: uqsub8 r8, r2, r9 @ encoding: [0xc2,0xfa,0x59,0xf8] 3252@ CHECK: uqsub16 r1, r9, r7 @ encoding: [0xd9,0xfa,0x57,0xf1] 3253@ CHECK: ite gt @ encoding: [0xcc,0xbf] 3254@ CHECK: uqsub8gt r3, r1, r6 @ encoding: [0xc1,0xfa,0x56,0xf3] 3255@ CHECK: uqsub16le r4, r6, r4 @ encoding: [0xd6,0xfa,0x54,0xf4] 3256 3257 3258@------------------------------------------------------------------------------ 3259@ UQSUB16/UQSUB8 3260@------------------------------------------------------------------------------ 3261 usad8 r1, r9, r7 3262 usada8 r8, r2, r9, r12 3263 ite gt 3264 usada8gt r3, r1, r6, r9 3265 usad8le r4, r6, r4 3266 3267@ CHECK: usad8 r1, r9, r7 @ encoding: [0x79,0xfb,0x07,0xf1] 3268@ CHECK: usada8 r8, r2, r9, r12 @ encoding: [0x72,0xfb,0x09,0xc8] 3269@ CHECK: ite gt @ encoding: [0xcc,0xbf] 3270@ CHECK: usada8gt r3, r1, r6, r9 @ encoding: [0x71,0xfb,0x06,0x93] 3271@ CHECK: usad8le r4, r6, r4 @ encoding: [0x76,0xfb,0x04,0xf4] 3272 3273 3274@------------------------------------------------------------------------------ 3275@ USAT 3276@------------------------------------------------------------------------------ 3277 usat r8, #1, r10 3278 usat r8, #4, r10, lsl #0 3279 usat r8, #5, r10, lsl #31 3280 usat r8, #16, r10, asr #1 3281 3282@ CHECK: usat r8, #1, r10 @ encoding: [0x8a,0xf3,0x01,0x08] 3283@ CHECK: usat r8, #4, r10 @ encoding: [0x8a,0xf3,0x04,0x08] 3284@ CHECK: usat r8, #5, r10, lsl #31 @ encoding: [0x8a,0xf3,0xc5,0x78] 3285@ CHECK: usat r8, #16, r10, asr #1 @ encoding: [0xaa,0xf3,0x50,0x08] 3286 3287 3288@------------------------------------------------------------------------------ 3289@ USAT16 3290@------------------------------------------------------------------------------ 3291 usat16 r2, #2, r7 3292 usat16 r3, #15, r5 3293 3294@ CHECK: usat16 r2, #2, r7 @ encoding: [0xa7,0xf3,0x02,0x02] 3295@ CHECK: usat16 r3, #15, r5 @ encoding: [0xa5,0xf3,0x0f,0x03] 3296 3297 3298@------------------------------------------------------------------------------ 3299@ USAX 3300@------------------------------------------------------------------------------ 3301 usax r2, r3, r4 3302 it ne 3303 usaxne r6, r1, r9 3304 usubaddx r2, r3, r4 3305 it ne 3306 usubaddxne r6, r1, r9 3307 3308@ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2] 3309@ CHECK: it ne @ encoding: [0x18,0xbf] 3310@ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6] 3311@ CHECK: usax r2, r3, r4 @ encoding: [0xe3,0xfa,0x44,0xf2] 3312@ CHECK: it ne @ encoding: [0x18,0xbf] 3313@ CHECK: usaxne r6, r1, r9 @ encoding: [0xe1,0xfa,0x49,0xf6] 3314 3315 3316@------------------------------------------------------------------------------ 3317@ USUB16/USUB8 3318@------------------------------------------------------------------------------ 3319 usub16 r4, r2, r7 3320 usub8 r1, r8, r5 3321 ite hi 3322 usub16hi r1, r1, r3 3323 usub8ls r9, r2, r3 3324 3325@ CHECK: usub16 r4, r2, r7 @ encoding: [0xd2,0xfa,0x47,0xf4] 3326@ CHECK: usub8 r1, r8, r5 @ encoding: [0xc8,0xfa,0x45,0xf1] 3327@ CHECK: ite hi @ encoding: [0x8c,0xbf] 3328@ CHECK: usub16hi r1, r1, r3 @ encoding: [0xd1,0xfa,0x43,0xf1] 3329@ CHECK: usub8ls r9, r2, r3 @ encoding: [0xc2,0xfa,0x43,0xf9] 3330 3331 3332@------------------------------------------------------------------------------ 3333@ UXTAB 3334@------------------------------------------------------------------------------ 3335 uxtab r2, r3, r4 3336 uxtab r4, r5, r6, ror #0 3337 it lt 3338 uxtablt r6, r2, r9, ror #8 3339 uxtab r5, r1, r4, ror #16 3340 uxtab r7, r8, r3, ror #24 3341 3342@ CHECK: uxtab r2, r3, r4 @ encoding: [0x53,0xfa,0x84,0xf2] 3343@ CHECK: uxtab r4, r5, r6 @ encoding: [0x55,0xfa,0x86,0xf4] 3344@ CHECK: it lt @ encoding: [0xb8,0xbf] 3345@ CHECK: uxtablt r6, r2, r9, ror #8 @ encoding: [0x52,0xfa,0x99,0xf6] 3346@ CHECK: uxtab r5, r1, r4, ror #16 @ encoding: [0x51,0xfa,0xa4,0xf5] 3347@ CHECK: uxtab r7, r8, r3, ror #24 @ encoding: [0x58,0xfa,0xb3,0xf7] 3348 3349 3350@------------------------------------------------------------------------------ 3351@ UXTAB16 3352@------------------------------------------------------------------------------ 3353 it ge 3354 uxtab16ge r0, r1, r4 3355 uxtab16 r6, r2, r7, ror #0 3356 uxtab16 r3, r5, r8, ror #8 3357 uxtab16 r3, r2, r1, ror #16 3358 it eq 3359 uxtab16eq r1, r2, r3, ror #24 3360 3361@ CHECK: it ge @ encoding: [0xa8,0xbf] 3362@ CHECK: uxtab16ge r0, r1, r4 @ encoding: [0x31,0xfa,0x84,0xf0] 3363@ CHECK: uxtab16 r6, r2, r7 @ encoding: [0x32,0xfa,0x87,0xf6] 3364@ CHECK: uxtab16 r3, r5, r8, ror #8 @ encoding: [0x35,0xfa,0x98,0xf3] 3365@ CHECK: uxtab16 r3, r2, r1, ror #16 @ encoding: [0x32,0xfa,0xa1,0xf3] 3366@ CHECK: it eq @ encoding: [0x08,0xbf] 3367@ CHECK: uxtab16eq r1, r2, r3, ror #24 @ encoding: [0x32,0xfa,0xb3,0xf1] 3368 3369 3370@------------------------------------------------------------------------------ 3371@ UXTAH 3372@------------------------------------------------------------------------------ 3373 uxtah r1, r3, r9 3374 it hi 3375 uxtahhi r6, r1, r6, ror #0 3376 uxtah r3, r8, r3, ror #8 3377 it lo 3378 uxtahlo r2, r2, r4, ror #16 3379 uxtah r9, r3, r3, ror #24 3380 3381@ CHECK: uxtah r1, r3, r9 @ encoding: [0x13,0xfa,0x89,0xf1] 3382@ CHECK: it hi @ encoding: [0x88,0xbf] 3383@ CHECK: uxtahhi r6, r1, r6 @ encoding: [0x11,0xfa,0x86,0xf6] 3384@ CHECK: uxtah r3, r8, r3, ror #8 @ encoding: [0x18,0xfa,0x93,0xf3] 3385@ CHECK: it lo @ encoding: [0x38,0xbf] 3386@ CHECK: uxtahlo r2, r2, r4, ror #16 @ encoding: [0x12,0xfa,0xa4,0xf2] 3387@ CHECK: uxtah r9, r3, r3, ror #24 @ encoding: [0x13,0xfa,0xb3,0xf9] 3388 3389 3390@------------------------------------------------------------------------------ 3391@ UXTB 3392@------------------------------------------------------------------------------ 3393 it ge 3394 uxtbge r2, r4 3395 uxtb r5, r6, ror #0 3396 uxtb r6, r9, ror #8 3397 it cc 3398 uxtbcc r5, r1, ror #16 3399 uxtb r8, r3, ror #24 3400 uxtb.w r7, r8 3401 3402@ CHECK: it ge @ encoding: [0xa8,0xbf] 3403@ CHECK: uxtbge r2, r4 @ encoding: [0xe2,0xb2] 3404@ CHECK: uxtb r5, r6 @ encoding: [0xf5,0xb2] 3405@ CHECK: uxtb.w r6, r9, ror #8 @ encoding: [0x5f,0xfa,0x99,0xf6] 3406@ CHECK: it lo @ encoding: [0x38,0xbf] 3407@ CHECK: uxtblo.w r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5] 3408@ CHECK: uxtb.w r8, r3, ror #24 @ encoding: [0x5f,0xfa,0xb3,0xf8] 3409@ CHECK: uxtb.w r7, r8 @ encoding: [0x5f,0xfa,0x88,0xf7] 3410 3411 3412@------------------------------------------------------------------------------ 3413@ UXTB16 3414@------------------------------------------------------------------------------ 3415 uxtb16 r1, r4 3416 uxtb16 r6, r7, ror #0 3417 it cs 3418 uxtb16cs r3, r5, ror #8 3419 uxtb16 r3, r1, ror #16 3420 it ge 3421 uxtb16ge r2, r3, ror #24 3422 3423@ CHECK: uxtb16 r1, r4 @ encoding: [0x3f,0xfa,0x84,0xf1] 3424@ CHECK: uxtb16 r6, r7 @ encoding: [0x3f,0xfa,0x87,0xf6] 3425@ CHECK: it hs @ encoding: [0x28,0xbf] 3426@ CHECK: uxtb16hs r3, r5, ror #8 @ encoding: [0x3f,0xfa,0x95,0xf3] 3427@ CHECK: uxtb16 r3, r1, ror #16 @ encoding: [0x3f,0xfa,0xa1,0xf3] 3428@ CHECK: it ge @ encoding: [0xa8,0xbf] 3429@ CHECK: uxtb16ge r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2] 3430 3431 3432@------------------------------------------------------------------------------ 3433@ UXTH 3434@------------------------------------------------------------------------------ 3435 it ne 3436 uxthne r3, r9 3437 uxth r1, r6, ror #0 3438 uxth r3, r8, ror #8 3439 it le 3440 uxthle r2, r2, ror #16 3441 uxth r9, r3, ror #24 3442 uxth.w r7, r8 3443 3444@ CHECK: it ne @ encoding: [0x18,0xbf] 3445@ CHECK: uxthne.w r3, r9 @ encoding: [0x1f,0xfa,0x89,0xf3] 3446@ CHECK: uxth r1, r6 @ encoding: [0xb1,0xb2] 3447@ CHECK: uxth.w r3, r8, ror #8 @ encoding: [0x1f,0xfa,0x98,0xf3] 3448@ CHECK: it le @ encoding: [0xd8,0xbf] 3449@ CHECK: uxthle.w r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2] 3450@ CHECK: uxth.w r9, r3, ror #24 @ encoding: [0x1f,0xfa,0xb3,0xf9] 3451@ CHECK: uxth.w r7, r8 @ encoding: [0x1f,0xfa,0x88,0xf7] 3452 3453@------------------------------------------------------------------------------ 3454@ WFE/WFI/YIELD/HINT 3455@------------------------------------------------------------------------------ 3456 wfe 3457 wfi 3458 yield 3459 itet lt 3460 wfelt 3461 wfige 3462 yieldlt 3463 hint #5 3464 hint.w #5 3465 hint.w #4 3466 hint #3 3467 hint #2 3468 hint #1 3469 hint #0 3470 3471@ CHECK: wfe @ encoding: [0x20,0xbf] 3472@ CHECK: wfi @ encoding: [0x30,0xbf] 3473@ CHECK: yield @ encoding: [0x10,0xbf] 3474@ CHECK: itet lt @ encoding: [0xb6,0xbf] 3475@ CHECK: wfelt @ encoding: [0x20,0xbf] 3476@ CHECK: wfige @ encoding: [0x30,0xbf] 3477@ CHECK: yieldlt @ encoding: [0x10,0xbf] 3478@ CHECK: hint #5 @ encoding: [0xaf,0xf3,0x05,0x80] 3479@ CHECK: hint #5 @ encoding: [0xaf,0xf3,0x05,0x80] 3480@ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80] 3481@ CHECK: wfi.w @ encoding: [0xaf,0xf3,0x03,0x80] 3482@ CHECK: wfe.w @ encoding: [0xaf,0xf3,0x02,0x80] 3483@ CHECK: yield.w @ encoding: [0xaf,0xf3,0x01,0x80] 3484@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80] 3485 3486 3487@------------------------------------------------------------------------------ 3488@ Alternate syntax for LDR*(literal) encodings 3489@------------------------------------------------------------------------------ 3490 ldr r11, [pc, #-22] 3491 ldrb r11, [pc, #-22] 3492 ldrh r11, [pc, #-22] 3493 ldrsb r11, [pc, #-22] 3494 ldrsh r11, [pc, #-22] 3495 3496 ldr.w r11, [pc, #-22] 3497 ldrb.w r11, [pc, #-22] 3498 ldrh.w r11, [pc, #-22] 3499 ldrsb.w r11, [pc, #-22] 3500 ldrsh.w r11, [pc, #-22] 3501 3502@ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0] 3503@ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0] 3504@ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0] 3505@ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0] 3506@ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0] 3507@ CHECK: ldr.w r11, [pc, #-22] @ encoding: [0x5f,0xf8,0x16,0xb0] 3508@ CHECK: ldrb.w r11, [pc, #-22] @ encoding: [0x1f,0xf8,0x16,0xb0] 3509@ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0] 3510@ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0] 3511@ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0] 3512