basic-thumb2-instructions.s revision 11f23c1a7260a1cb4b4eee20aea09676e15d55c0
1@ RUN: llvm-mc -triple=thumbv7-apple-darwin -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 52@ CHECK: adc.w r4, r5, r6 @ encoding: [0x45,0xeb,0x06,0x04] 53@ CHECK: adcs.w r4, r5, r6 @ encoding: [0x55,0xeb,0x06,0x04] 54@ CHECK: adc.w r9, r1, r3 @ encoding: [0x41,0xeb,0x03,0x09] 55@ CHECK: adcs.w r9, r1, r3 @ encoding: [0x51,0xeb,0x03,0x09] 56@ CHECK: adc.w r0, r1, r3, ror #4 @ encoding: [0x41,0xeb,0x33,0x10] 57@ CHECK: adcs.w r0, r1, r3, lsl #7 @ encoding: [0x51,0xeb,0xc3,0x10] 58@ CHECK: adc.w r0, r1, r3, lsr #31 @ encoding: [0x41,0xeb,0xd3,0x70] 59@ CHECK: adcs.w r0, r1, r3, asr #32 @ encoding: [0x51,0xeb,0x23,0x00] 60 61 62@------------------------------------------------------------------------------ 63@ ADD (immediate) 64@------------------------------------------------------------------------------ 65 itet eq 66 addeq r1, r2, #4 67 addwne r5, r3, #1023 68 addeq r4, r5, #293 69 add r2, sp, #1024 70 add r2, r8, #0xff00 71 add r2, r3, #257 72 addw r2, r3, #257 73 add r12, r6, #0x100 74 addw r12, r6, #0x100 75 adds r1, r2, #0x1f0 76 77@ CHECK: itet eq @ encoding: [0x0a,0xbf] 78@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 79@ CHECK: addwne r5, r3, #1023 @ encoding: [0x03,0xf2,0xff,0x35] 80@ CHECK: addweq r4, r5, #293 @ encoding: [0x05,0xf2,0x25,0x14] 81@ CHECK: add.w r2, sp, #1024 @ encoding: [0x0d,0xf5,0x80,0x62] 82@ CHECK: add.w r2, r8, #65280 @ encoding: [0x08,0xf5,0x7f,0x42] 83@ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12] 84@ CHECK: addw r2, r3, #257 @ encoding: [0x03,0xf2,0x01,0x12] 85@ CHECK: add.w r12, r6, #256 @ encoding: [0x06,0xf5,0x80,0x7c] 86@ CHECK: addw r12, r6, #256 @ encoding: [0x06,0xf2,0x00,0x1c] 87@ CHECK: adds.w r1, r2, #496 @ encoding: [0x12,0xf5,0xf8,0x71] 88 89 90@------------------------------------------------------------------------------ 91@ ADD (register) 92@------------------------------------------------------------------------------ 93 add r1, r2, r8 94 add r5, r9, r2, asr #32 95 adds r7, r3, r1, lsl #31 96 adds.w r0, r3, r6, lsr #25 97 add.w r4, r8, r1, ror #12 98 99@ CHECK: add.w r1, r2, r8 @ encoding: [0x02,0xeb,0x08,0x01] 100@ CHECK: add.w r5, r9, r2, asr #32 @ encoding: [0x09,0xeb,0x22,0x05] 101@ CHECK: adds.w r7, r3, r1, lsl #31 @ encoding: [0x13,0xeb,0xc1,0x77] 102@ CHECK: adds.w r0, r3, r6, lsr #25 @ encoding: [0x13,0xeb,0x56,0x60] 103@ CHECK: add.w r4, r8, r1, ror #12 @ encoding: [0x08,0xeb,0x31,0x34] 104 105 106@------------------------------------------------------------------------------ 107@ FIXME: ADR 108@------------------------------------------------------------------------------ 109 110 subw r11, pc, #3270 111 adr.w r11, #-826 112 113@ CHECK: subw r11, pc, #3270 @ encoding: [0xaf,0xf6,0xc6,0x4b] 114@ CHECK: adr.w r11, #-826 @ encoding: [0xaf,0xf2,0x3a,0x3b] 115 116@------------------------------------------------------------------------------ 117@ AND (immediate) 118@------------------------------------------------------------------------------ 119 and r2, r5, #0xff000 120 ands r3, r12, #0xf 121 and r1, #0xff 122 and r1, r1, #0xff 123 124@ CHECK: and r2, r5, #1044480 @ encoding: [0x05,0xf4,0x7f,0x22] 125@ CHECK: ands r3, r12, #15 @ encoding: [0x1c,0xf0,0x0f,0x03] 126@ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01] 127@ CHECK: and r1, r1, #255 @ encoding: [0x01,0xf0,0xff,0x01] 128 129 130@------------------------------------------------------------------------------ 131@ AND (register) 132@------------------------------------------------------------------------------ 133 and r4, r9, r8 134 and r1, r4, r8, asr #3 135 ands r2, r1, r7, lsl #1 136 ands.w r4, r5, r2, lsr #20 137 and.w r9, r12, r1, ror #17 138 139@ CHECK: and.w r4, r9, r8 @ encoding: [0x09,0xea,0x08,0x04] 140@ CHECK: and.w r1, r4, r8, asr #3 @ encoding: [0x04,0xea,0xe8,0x01] 141@ CHECK: ands.w r2, r1, r7, lsl #1 @ encoding: [0x11,0xea,0x47,0x02] 142@ CHECK: ands.w r4, r5, r2, lsr #20 @ encoding: [0x15,0xea,0x12,0x54] 143@ CHECK: and.w r9, r12, r1, ror #17 @ encoding: [0x0c,0xea,0x71,0x49] 144 145@------------------------------------------------------------------------------ 146@ ASR (immediate) 147@------------------------------------------------------------------------------ 148 asr r2, r3, #12 149 asrs r8, r3, #32 150 asrs.w r2, r3, #1 151 asr r2, r3, #4 152 asrs r2, r12, #15 153 154 asr r3, #19 155 asrs r8, #2 156 asrs.w r7, #5 157 asr.w r12, #21 158 159@ CHECK: asr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x23,0x32] 160@ CHECK: asrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x23,0x08] 161@ CHECK: asrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x63,0x02] 162@ CHECK: asr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x23,0x12] 163@ CHECK: asrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xec,0x32] 164 165@ CHECK: asr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xe3,0x43] 166@ CHECK: asrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0xa8,0x08] 167@ CHECK: asrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x67,0x17] 168@ CHECK: asr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x6c,0x5c] 169 170 171@------------------------------------------------------------------------------ 172@ ASR (register) 173@------------------------------------------------------------------------------ 174 asr r3, r4, r2 175 asr.w r1, r2 176 asrs r3, r4, r8 177 178@ CHECK: asr.w r3, r4, r2 @ encoding: [0x44,0xfa,0x02,0xf3] 179@ CHECK: asr.w r1, r1, r2 @ encoding: [0x41,0xfa,0x02,0xf1] 180@ CHECK: asrs.w r3, r4, r8 @ encoding: [0x54,0xfa,0x08,0xf3] 181 182 183@------------------------------------------------------------------------------ 184@ B 185@------------------------------------------------------------------------------ 186 b.w _bar 187 beq.w _bar 188 it eq 189 beq.w _bar 190 bmi.w #-183396 191 192@ CHECK: b.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 193 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 194@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x80'A'] 195 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch 196@ CHECK: it eq @ encoding: [0x08,0xbf] 197@ CHECK: beq.w _bar @ encoding: [A,0xf0'A',A,0x90'A'] 198 @ fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch 199@ CHECK: bmi.w #-183396 @ encoding: [0x13,0xf5,0xce,0xa9] 200 201 202@------------------------------------------------------------------------------ 203@ BFC 204@------------------------------------------------------------------------------ 205 bfc r5, #3, #17 206 it lo 207 bfccc r5, #3, #17 208 209@ CHECK: bfc r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05] 210@ CHECK: it lo @ encoding: [0x38,0xbf] 211@ CHECK: bfclo r5, #3, #17 @ encoding: [0x6f,0xf3,0xd3,0x05] 212 213 214@------------------------------------------------------------------------------ 215@ BFI 216@------------------------------------------------------------------------------ 217 bfi r5, r2, #3, #17 218 it ne 219 bfine r5, r2, #3, #17 220 221@ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05] 222@ CHECK: it ne @ encoding: [0x18,0xbf] 223@ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x62,0xf3,0xd3,0x05] 224 225 226@------------------------------------------------------------------------------ 227@ BIC 228@------------------------------------------------------------------------------ 229 bic r10, r1, #0xf 230 bic r12, r3, r6 231 bic r11, r2, r6, lsl #12 232 bic r8, r4, r1, lsr #11 233 bic r7, r5, r7, lsr #15 234 bic r6, r7, r9, asr #32 235 bic r5, r6, r8, ror #1 236 237 @ destination register is optional 238 bic r1, #0xf 239 bic r1, r1 240 bic r4, r2, lsl #31 241 bic r6, r3, lsr #12 242 bic r7, r4, lsr #7 243 bic r8, r5, asr #15 244 bic r12, r6, ror #29 245 246@ CHECK: bic r10, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x0a] 247@ CHECK: bic.w r12, r3, r6 @ encoding: [0x23,0xea,0x06,0x0c] 248@ CHECK: bic.w r11, r2, r6, lsl #12 @ encoding: [0x22,0xea,0x06,0x3b] 249@ CHECK: bic.w r8, r4, r1, lsr #11 @ encoding: [0x24,0xea,0xd1,0x28] 250@ CHECK: bic.w r7, r5, r7, lsr #15 @ encoding: [0x25,0xea,0xd7,0x37] 251@ CHECK: bic.w r6, r7, r9, asr #32 @ encoding: [0x27,0xea,0x29,0x06] 252@ CHECK: bic.w r5, r6, r8, ror #1 @ encoding: [0x26,0xea,0x78,0x05] 253 254@ CHECK: bic r1, r1, #15 @ encoding: [0x21,0xf0,0x0f,0x01] 255@ CHECK: bic.w r1, r1, r1 @ encoding: [0x21,0xea,0x01,0x01] 256@ CHECK: bic.w r4, r4, r2, lsl #31 @ encoding: [0x24,0xea,0xc2,0x74] 257@ CHECK: bic.w r6, r6, r3, lsr #12 @ encoding: [0x26,0xea,0x13,0x36] 258@ CHECK: bic.w r7, r7, r4, lsr #7 @ encoding: [0x27,0xea,0xd4,0x17] 259@ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38] 260@ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c] 261 262@------------------------------------------------------------------------------ 263@ BKPT 264@------------------------------------------------------------------------------ 265 it pl 266 bkpt #234 267 268@ CHECK: it pl @ encoding: [0x58,0xbf] 269@ CHECK: bkpt #234 @ encoding: [0xea,0xbe] 270 271@------------------------------------------------------------------------------ 272@ BXJ 273@------------------------------------------------------------------------------ 274 bxj r5 275 it ne 276 bxjne r7 277 278@ CHECK: bxj r5 @ encoding: [0xc5,0xf3,0x00,0x8f] 279@ CHECK: it ne @ encoding: [0x18,0xbf] 280@ CHECK: bxjne r7 @ encoding: [0xc7,0xf3,0x00,0x8f] 281 282 283@------------------------------------------------------------------------------ 284@ CBZ/CBNZ 285@------------------------------------------------------------------------------ 286 cbnz r7, #6 287 cbnz r7, #12 288 cbz r6, _bar 289 cbnz r6, _bar 290 291@ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9] 292@ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9] 293@ CHECK: cbz r6, _bar @ encoding: [0x06'A',0xb1'A'] 294 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 295@ CHECK: cbnz r6, _bar @ encoding: [0x06'A',0xb9'A'] 296 @ fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb 297 298 299@------------------------------------------------------------------------------ 300@ CDP/CDP2 301@------------------------------------------------------------------------------ 302 cdp p7, #1, c1, c1, c1, #4 303 cdp2 p7, #1, c1, c1, c1, #4 304 305@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17] 306@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17] 307 308 309@------------------------------------------------------------------------------ 310@ CLREX 311@------------------------------------------------------------------------------ 312 clrex 313 it ne 314 clrexne 315 316@ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f] 317@ CHECK: it ne @ encoding: [0x18,0xbf] 318@ CHECK: clrexne @ encoding: [0xbf,0xf3,0x2f,0x8f] 319 320 321@------------------------------------------------------------------------------ 322@ CLZ 323@------------------------------------------------------------------------------ 324 clz r1, r2 325 it eq 326 clzeq r1, r2 327 328@ CHECK: clz r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1] 329@ CHECK: it eq @ encoding: [0x08,0xbf] 330@ CHECK: clzeq r1, r2 @ encoding: [0xb2,0xfa,0x82,0xf1] 331 332 333@------------------------------------------------------------------------------ 334@ CMN 335@------------------------------------------------------------------------------ 336 cmn r1, #0xf 337 cmn r8, r6 338 cmn r1, r6, lsl #10 339 cmn r1, r6, lsr #10 340 cmn sp, r6, lsr #10 341 cmn r1, r6, asr #10 342 cmn r1, r6, ror #10 343 344@ CHECK: cmn.w r1, #15 @ encoding: [0x11,0xf1,0x0f,0x0f] 345@ CHECK: cmn.w r8, r6 @ encoding: [0x18,0xeb,0x06,0x0f] 346@ CHECK: cmn.w r1, r6, lsl #10 @ encoding: [0x11,0xeb,0x86,0x2f] 347@ CHECK: cmn.w r1, r6, lsr #10 @ encoding: [0x11,0xeb,0x96,0x2f] 348@ CHECK: cmn.w sp, r6, lsr #10 @ encoding: [0x1d,0xeb,0x96,0x2f] 349@ CHECK: cmn.w r1, r6, asr #10 @ encoding: [0x11,0xeb,0xa6,0x2f] 350@ CHECK: cmn.w r1, r6, ror #10 @ encoding: [0x11,0xeb,0xb6,0x2f] 351 352 353@------------------------------------------------------------------------------ 354@ CMP 355@------------------------------------------------------------------------------ 356 cmp r5, #0xff00 357 cmp.w r4, r12 358 cmp r9, r6, lsl #12 359 cmp r3, r7, lsr #31 360 cmp sp, r6, lsr #1 361 cmp r2, r5, asr #24 362 cmp r1, r4, ror #15 363 364@ CHECK: cmp.w r5, #65280 @ encoding: [0xb5,0xf5,0x7f,0x4f] 365@ CHECK: cmp.w r4, r12 @ encoding: [0xb4,0xeb,0x0c,0x0f] 366@ CHECK: cmp.w r9, r6, lsl #12 @ encoding: [0xb9,0xeb,0x06,0x3f] 367@ CHECK: cmp.w r3, r7, lsr #31 @ encoding: [0xb3,0xeb,0xd7,0x7f] 368@ CHECK: cmp.w sp, r6, lsr #1 @ encoding: [0xbd,0xeb,0x56,0x0f] 369@ CHECK: cmp.w r2, r5, asr #24 @ encoding: [0xb2,0xeb,0x25,0x6f] 370@ CHECK: cmp.w r1, r4, ror #15 @ encoding: [0xb1,0xeb,0xf4,0x3f] 371 372 373@------------------------------------------------------------------------------ 374@ DBG 375@------------------------------------------------------------------------------ 376 dbg #5 377 dbg #0 378 dbg #15 379 380@ CHECK: dbg #5 @ encoding: [0xaf,0xf3,0xf5,0x80] 381@ CHECK: dbg #0 @ encoding: [0xaf,0xf3,0xf0,0x80] 382@ CHECK: dbg #15 @ encoding: [0xaf,0xf3,0xff,0x80] 383 384 385@------------------------------------------------------------------------------ 386@ DMB 387@------------------------------------------------------------------------------ 388 dmb sy 389 dmb st 390 dmb sh 391 dmb ish 392 dmb shst 393 dmb ishst 394 dmb un 395 dmb nsh 396 dmb unst 397 dmb nshst 398 dmb osh 399 dmb oshst 400 dmb 401 402@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 403@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f] 404@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 405@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f] 406@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 407@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f] 408@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 409@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f] 410@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 411@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f] 412@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f] 413@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f] 414@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f] 415 416 417@------------------------------------------------------------------------------ 418@ DSB 419@------------------------------------------------------------------------------ 420 dsb sy 421 dsb st 422 dsb sh 423 dsb ish 424 dsb shst 425 dsb ishst 426 dsb un 427 dsb nsh 428 dsb unst 429 dsb nshst 430 dsb osh 431 dsb oshst 432 dsb 433 434@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 435@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f] 436@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 437@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f] 438@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 439@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f] 440@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 441@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f] 442@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 443@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f] 444@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f] 445@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f] 446@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f] 447 448 449@------------------------------------------------------------------------------ 450@ EOR 451@------------------------------------------------------------------------------ 452 eor r4, r5, #0xf000 453 eor r4, r5, r6 454 eor r4, r5, r6, lsl #5 455 eor r4, r5, r6, lsr #5 456 eor r4, r5, r6, lsr #5 457 eor r4, r5, r6, asr #5 458 eor r4, r5, r6, ror #5 459 460@ CHECK: eor r4, r5, #61440 @ encoding: [0x85,0xf4,0x70,0x44] 461@ CHECK: eor.w r4, r5, r6 @ encoding: [0x85,0xea,0x06,0x04] 462@ CHECK: eor.w r4, r5, r6, lsl #5 @ encoding: [0x85,0xea,0x46,0x14] 463@ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14] 464@ CHECK: eor.w r4, r5, r6, lsr #5 @ encoding: [0x85,0xea,0x56,0x14] 465@ CHECK: eor.w r4, r5, r6, asr #5 @ encoding: [0x85,0xea,0x66,0x14] 466@ CHECK: eor.w r4, r5, r6, ror #5 @ encoding: [0x85,0xea,0x76,0x14] 467 468 469@------------------------------------------------------------------------------ 470@ ISB 471@------------------------------------------------------------------------------ 472 isb sy 473 isb 474 475@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] 476@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] 477 478 479@------------------------------------------------------------------------------ 480@ IT 481@------------------------------------------------------------------------------ 482@ Test encodings of a few full IT blocks, not just the IT instruction 483 484 iteet eq 485 addeq r0, r1, r2 486 nopne 487 subne r5, r6, r7 488 addeq r1, r2, #4 489 490@ CHECK: iteet eq @ encoding: [0x0d,0xbf] 491@ CHECK: addeq r0, r1, r2 @ encoding: [0x88,0x18] 492@ CHECK: nopne @ encoding: [0x00,0xbf] 493@ CHECK: subne r5, r6, r7 @ encoding: [0xf5,0x1b] 494@ CHECK: addeq r1, r2, #4 @ encoding: [0x11,0x1d] 495 496 497@------------------------------------------------------------------------------ 498@ LDMIA 499@------------------------------------------------------------------------------ 500 ldmia.w r4, {r4, r5, r8, r9} 501 ldmia.w r4, {r5, r6} 502 ldmia.w r5!, {r3, r8} 503 ldm.w r4, {r4, r5, r8, r9} 504 ldm.w r4, {r5, r6} 505 ldm.w r5!, {r3, r8} 506 ldm.w r5!, {r1, r2} 507 ldm.w r2, {r1, r2} 508 509 ldmia r4, {r4, r5, r8, r9} 510 ldmia r4, {r5, r6} 511 ldmia r5!, {r3, r8} 512 ldm r4, {r4, r5, r8, r9} 513 ldm r4, {r5, r6} 514 ldm r5!, {r3, r8} 515 ldmfd r5!, {r3, r8} 516 517@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 518@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 519@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 520@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 521@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 522@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 523@ CHECK: ldm.w r5!, {r1, r2} @ encoding: [0xb5,0xe8,0x06,0x00] 524@ CHECK: ldm.w r2, {r1, r2} @ encoding: [0x92,0xe8,0x06,0x00] 525 526@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 527@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 528@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 529@ CHECK: ldm.w r4, {r4, r5, r8, r9} @ encoding: [0x94,0xe8,0x30,0x03] 530@ CHECK: ldm.w r4, {r5, r6} @ encoding: [0x94,0xe8,0x60,0x00] 531@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 532@ CHECK: ldm.w r5!, {r3, r8} @ encoding: [0xb5,0xe8,0x08,0x01] 533 534 535@------------------------------------------------------------------------------ 536@ LDMDB 537@------------------------------------------------------------------------------ 538 ldmdb r4, {r4, r5, r8, r9} 539 ldmdb r4, {r5, r6} 540 ldmdb r5!, {r3, r8} 541 ldmea r5!, {r3, r8} 542 543@ CHECK: ldmdb r4, {r4, r5, r8, r9} @ encoding: [0x14,0xe9,0x30,0x03] 544@ CHECK: ldmdb r4, {r5, r6} @ encoding: [0x14,0xe9,0x60,0x00] 545@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 546@ CHECK: ldmdb r5!, {r3, r8} @ encoding: [0x35,0xe9,0x08,0x01] 547 548 549@------------------------------------------------------------------------------ 550@ LDR(immediate) 551@------------------------------------------------------------------------------ 552 ldr r5, [r5, #-4] 553 ldr r5, [r6, #32] 554 ldr r5, [r6, #33] 555 ldr r5, [r6, #257] 556 ldr.w pc, [r7, #257] 557 ldr r2, [r4, #255]! 558 ldr r8, [sp, #4]! 559 ldr lr, [sp, #-4]! 560 ldr r2, [r4], #255 561 ldr r8, [sp], #4 562 ldr lr, [sp], #-4 563 564@ CHECK: ldr r5, [r5, #-4] @ encoding: [0x55,0xf8,0x04,0x5c] 565@ CHECK: ldr r5, [r6, #32] @ encoding: [0x35,0x6a] 566@ CHECK: ldr.w r5, [r6, #33] @ encoding: [0xd6,0xf8,0x21,0x50] 567@ CHECK: ldr.w r5, [r6, #257] @ encoding: [0xd6,0xf8,0x01,0x51] 568@ CHECK: ldr.w pc, [r7, #257] @ encoding: [0xd7,0xf8,0x01,0xf1] 569@ CHECK: ldr r2, [r4, #255]! @ encoding: [0x54,0xf8,0xff,0x2f] 570@ CHECK: ldr r8, [sp, #4]! @ encoding: [0x5d,0xf8,0x04,0x8f] 571@ CHECK: ldr lr, [sp, #-4]! @ encoding: [0x5d,0xf8,0x04,0xed] 572@ CHECK: ldr r2, [r4], #255 @ encoding: [0x54,0xf8,0xff,0x2b] 573@ CHECK: ldr r8, [sp], #4 @ encoding: [0x5d,0xf8,0x04,0x8b] 574@ CHECK: ldr lr, [sp], #-4 @ encoding: [0x5d,0xf8,0x04,0xe9] 575 576 577@------------------------------------------------------------------------------ 578@ LDR(literal) 579@------------------------------------------------------------------------------ 580 ldr.w r5, _foo 581 582@ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A'] 583 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 584 585 586@------------------------------------------------------------------------------ 587@ LDR(register) 588@------------------------------------------------------------------------------ 589 ldr r1, [r8, r1] 590 ldr.w r4, [r5, r2] 591 ldr r6, [r0, r2, lsl #3] 592 ldr r8, [r8, r2, lsl #2] 593 ldr r7, [sp, r2, lsl #1] 594 ldr r7, [sp, r2, lsl #0] 595 596@ CHECK: ldr.w r1, [r8, r1] @ encoding: [0x58,0xf8,0x01,0x10] 597@ CHECK: ldr.w r4, [r5, r2] @ encoding: [0x55,0xf8,0x02,0x40] 598@ CHECK: ldr.w r6, [r0, r2, lsl #3] @ encoding: [0x50,0xf8,0x32,0x60] 599@ CHECK: ldr.w r8, [r8, r2, lsl #2] @ encoding: [0x58,0xf8,0x22,0x80] 600@ CHECK: ldr.w r7, [sp, r2, lsl #1] @ encoding: [0x5d,0xf8,0x12,0x70] 601@ CHECK: ldr.w r7, [sp, r2] @ encoding: [0x5d,0xf8,0x02,0x70] 602 603 604@------------------------------------------------------------------------------ 605@ LDRB(immediate) 606@------------------------------------------------------------------------------ 607 ldrb r5, [r5, #-4] 608 ldrb r5, [r6, #32] 609 ldrb r5, [r6, #33] 610 ldrb r5, [r6, #257] 611 ldrb.w lr, [r7, #257] 612 ldrb r5, [r8, #255]! 613 ldrb r2, [r5, #4]! 614 ldrb r1, [r4, #-4]! 615 ldrb lr, [r3], #255 616 ldrb r9, [r2], #4 617 ldrb r3, [sp], #-4 618 619@ CHECK: ldrb r5, [r5, #-4] @ encoding: [0x15,0xf8,0x04,0x5c] 620@ CHECK: ldrb.w r5, [r6, #32] @ encoding: [0x96,0xf8,0x20,0x50] 621@ CHECK: ldrb.w r5, [r6, #33] @ encoding: [0x96,0xf8,0x21,0x50] 622@ CHECK: ldrb.w r5, [r6, #257] @ encoding: [0x96,0xf8,0x01,0x51] 623@ CHECK: ldrb.w lr, [r7, #257] @ encoding: [0x97,0xf8,0x01,0xe1] 624@ CHECK: ldrb r5, [r8, #255]! @ encoding: [0x18,0xf8,0xff,0x5f] 625@ CHECK: ldrb r2, [r5, #4]! @ encoding: [0x15,0xf8,0x04,0x2f] 626@ CHECK: ldrb r1, [r4, #-4]! @ encoding: [0x14,0xf8,0x04,0x1d] 627@ CHECK: ldrb lr, [r3], #255 @ encoding: [0x13,0xf8,0xff,0xeb] 628@ CHECK: ldrb r9, [r2], #4 @ encoding: [0x12,0xf8,0x04,0x9b] 629@ CHECK: ldrb r3, [sp], #-4 @ encoding: [0x1d,0xf8,0x04,0x39] 630 631 632@------------------------------------------------------------------------------ 633@ LDRB(register) 634@------------------------------------------------------------------------------ 635 ldrb r1, [r8, r1] 636 ldrb.w r4, [r5, r2] 637 ldrb r6, [r0, r2, lsl #3] 638 ldrb r8, [r8, r2, lsl #2] 639 ldrb r7, [sp, r2, lsl #1] 640 ldrb r7, [sp, r2, lsl #0] 641 642@ CHECK: ldrb.w r1, [r8, r1] @ encoding: [0x18,0xf8,0x01,0x10] 643@ CHECK: ldrb.w r4, [r5, r2] @ encoding: [0x15,0xf8,0x02,0x40] 644@ CHECK: ldrb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0x60] 645@ CHECK: ldrb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0x80] 646@ CHECK: ldrb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0x70] 647@ CHECK: ldrb.w r7, [sp, r2] @ encoding: [0x1d,0xf8,0x02,0x70] 648 649 650@------------------------------------------------------------------------------ 651@ LDRBT 652@------------------------------------------------------------------------------ 653 ldrbt r1, [r2] 654 ldrbt r1, [r8, #0] 655 ldrbt r1, [r8, #3] 656 ldrbt r1, [r8, #255] 657 658@ CHECK: ldrbt r1, [r2] @ encoding: [0x12,0xf8,0x00,0x1e] 659@ CHECK: ldrbt r1, [r8] @ encoding: [0x18,0xf8,0x00,0x1e] 660@ CHECK: ldrbt r1, [r8, #3] @ encoding: [0x18,0xf8,0x03,0x1e] 661@ CHECK: ldrbt r1, [r8, #255] @ encoding: [0x18,0xf8,0xff,0x1e] 662 663 664@------------------------------------------------------------------------------ 665@ LDRD 666@------------------------------------------------------------------------------ 667 ldrd r3, r5, [r6, #24] 668 ldrd r3, r5, [r6, #24]! 669 ldrd r3, r5, [r6], #4 670 ldrd r3, r5, [r6], #-8 671 ldrd r3, r5, [r6] 672 ldrd r8, r1, [r3, #0] 673 674@ CHECK: ldrd r3, r5, [r6, #24] @ encoding: [0xd6,0xe9,0x06,0x35] 675@ CHECK: ldrd r3, r5, [r6, #24]! @ encoding: [0xf6,0xe9,0x06,0x35] 676@ CHECK: ldrd r3, r5, [r6], #4 @ encoding: [0xf6,0xe8,0x01,0x35] 677@ CHECK: ldrd r3, r5, [r6], #-8 @ encoding: [0x76,0xe8,0x02,0x35] 678@ CHECK: ldrd r3, r5, [r6] @ encoding: [0xd6,0xe9,0x00,0x35] 679@ CHECK: ldrd r8, r1, [r3] @ encoding: [0xd3,0xe9,0x00,0x81] 680 681 682@------------------------------------------------------------------------------ 683@ FIXME: LDRD(literal) 684@------------------------------------------------------------------------------ 685 686 687@------------------------------------------------------------------------------ 688@ LDREX/LDREXB/LDREXH/LDREXD 689@------------------------------------------------------------------------------ 690 ldrex r1, [r4] 691 ldrex r8, [r4, #0] 692 ldrex r2, [sp, #128] 693 ldrexb r5, [r7] 694 ldrexh r9, [r12] 695 ldrexd r9, r3, [r4] 696 697@ CHECK: ldrex r1, [r4] @ encoding: [0x54,0xe8,0x00,0x1f] 698@ CHECK: ldrex r8, [r4] @ encoding: [0x54,0xe8,0x00,0x8f] 699@ CHECK: ldrex r2, [sp, #128] @ encoding: [0x5d,0xe8,0x20,0x2f] 700@ CHECK: ldrexb r5, [r7] @ encoding: [0xd7,0xe8,0x4f,0x5f] 701@ CHECK: ldrexh r9, [r12] @ encoding: [0xdc,0xe8,0x5f,0x9f] 702@ CHECK: ldrexd r9, r3, [r4] @ encoding: [0xd4,0xe8,0x7f,0x93] 703 704 705@------------------------------------------------------------------------------ 706@ LDRH(immediate) 707@------------------------------------------------------------------------------ 708 ldrh r5, [r5, #-4] 709 ldrh r5, [r6, #32] 710 ldrh r5, [r6, #33] 711 ldrh r5, [r6, #257] 712 ldrh.w lr, [r7, #257] 713 ldrh r5, [r8, #255]! 714 ldrh r2, [r5, #4]! 715 ldrh r1, [r4, #-4]! 716 ldrh lr, [r3], #255 717 ldrh r9, [r2], #4 718 ldrh r3, [sp], #-4 719 720@ CHECK: ldrh r5, [r5, #-4] @ encoding: [0x35,0xf8,0x04,0x5c] 721@ CHECK: ldrh r5, [r6, #32] @ encoding: [0x35,0x8c] 722@ CHECK: ldrh.w r5, [r6, #33] @ encoding: [0xb6,0xf8,0x21,0x50] 723@ CHECK: ldrh.w r5, [r6, #257] @ encoding: [0xb6,0xf8,0x01,0x51] 724@ CHECK: ldrh.w lr, [r7, #257] @ encoding: [0xb7,0xf8,0x01,0xe1] 725@ CHECK: ldrh r5, [r8, #255]! @ encoding: [0x38,0xf8,0xff,0x5f] 726@ CHECK: ldrh r2, [r5, #4]! @ encoding: [0x35,0xf8,0x04,0x2f] 727@ CHECK: ldrh r1, [r4, #-4]! @ encoding: [0x34,0xf8,0x04,0x1d] 728@ CHECK: ldrh lr, [r3], #255 @ encoding: [0x33,0xf8,0xff,0xeb] 729@ CHECK: ldrh r9, [r2], #4 @ encoding: [0x32,0xf8,0x04,0x9b] 730@ CHECK: ldrh r3, [sp], #-4 @ encoding: [0x3d,0xf8,0x04,0x39] 731 732 733@------------------------------------------------------------------------------ 734@ LDRH(register) 735@------------------------------------------------------------------------------ 736 ldrh r1, [r8, r1] 737 ldrh.w r4, [r5, r2] 738 ldrh r6, [r0, r2, lsl #3] 739 ldrh r8, [r8, r2, lsl #2] 740 ldrh r7, [sp, r2, lsl #1] 741 ldrh r7, [sp, r2, lsl #0] 742 743@ CHECK: ldrh.w r1, [r8, r1] @ encoding: [0x38,0xf8,0x01,0x10] 744@ CHECK: ldrh.w r4, [r5, r2] @ encoding: [0x35,0xf8,0x02,0x40] 745@ CHECK: ldrh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf8,0x32,0x60] 746@ CHECK: ldrh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf8,0x22,0x80] 747@ CHECK: ldrh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf8,0x12,0x70] 748@ CHECK: ldrh.w r7, [sp, r2] @ encoding: [0x3d,0xf8,0x02,0x70] 749 750 751@------------------------------------------------------------------------------ 752@ LDRH(literal) 753@------------------------------------------------------------------------------ 754 ldrh r5, _bar 755 756@ CHECK: ldrh.w r5, _bar @ encoding: [0xbf'A',0xf8'A',A,0x50'A'] 757@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 758 759 760@------------------------------------------------------------------------------ 761@ LDRHT 762@------------------------------------------------------------------------------ 763 ldrht r1, [r2] 764 ldrht r1, [r8, #0] 765 ldrht r1, [r8, #3] 766 ldrht r1, [r8, #255] 767 768@ CHECK: ldrht r1, [r2] @ encoding: [0x32,0xf8,0x00,0x1e] 769@ CHECK: ldrht r1, [r8] @ encoding: [0x38,0xf8,0x00,0x1e] 770@ CHECK: ldrht r1, [r8, #3] @ encoding: [0x38,0xf8,0x03,0x1e] 771@ CHECK: ldrht r1, [r8, #255] @ encoding: [0x38,0xf8,0xff,0x1e] 772 773 774@------------------------------------------------------------------------------ 775@ LDRSB(immediate) 776@------------------------------------------------------------------------------ 777 ldrsb r5, [r5, #-4] 778 ldrsb r5, [r6, #32] 779 ldrsb r5, [r6, #33] 780 ldrsb r5, [r6, #257] 781 ldrsb.w lr, [r7, #257] 782 783@ CHECK: ldrsb r5, [r5, #-4] @ encoding: [0x15,0xf9,0x04,0x5c] 784@ CHECK: ldrsb.w r5, [r6, #32] @ encoding: [0x96,0xf9,0x20,0x50] 785@ CHECK: ldrsb.w r5, [r6, #33] @ encoding: [0x96,0xf9,0x21,0x50] 786@ CHECK: ldrsb.w r5, [r6, #257] @ encoding: [0x96,0xf9,0x01,0x51] 787@ CHECK: ldrsb.w lr, [r7, #257] @ encoding: [0x97,0xf9,0x01,0xe1] 788 789 790@------------------------------------------------------------------------------ 791@ LDRSB(register) 792@------------------------------------------------------------------------------ 793 ldrsb r1, [r8, r1] 794 ldrsb.w r4, [r5, r2] 795 ldrsb r6, [r0, r2, lsl #3] 796 ldrsb r8, [r8, r2, lsl #2] 797 ldrsb r7, [sp, r2, lsl #1] 798 ldrsb r7, [sp, r2, lsl #0] 799 ldrsb r5, [r8, #255]! 800 ldrsb r2, [r5, #4]! 801 ldrsb r1, [r4, #-4]! 802 ldrsb lr, [r3], #255 803 ldrsb r9, [r2], #4 804 ldrsb r3, [sp], #-4 805 806@ CHECK: ldrsb.w r1, [r8, r1] @ encoding: [0x18,0xf9,0x01,0x10] 807@ CHECK: ldrsb.w r4, [r5, r2] @ encoding: [0x15,0xf9,0x02,0x40] 808@ CHECK: ldrsb.w r6, [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0x60] 809@ CHECK: ldrsb.w r8, [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0x80] 810@ CHECK: ldrsb.w r7, [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0x70] 811@ CHECK: ldrsb.w r7, [sp, r2] @ encoding: [0x1d,0xf9,0x02,0x70] 812@ CHECK: ldrsb r5, [r8, #255]! @ encoding: [0x18,0xf9,0xff,0x5f] 813@ CHECK: ldrsb r2, [r5, #4]! @ encoding: [0x15,0xf9,0x04,0x2f] 814@ CHECK: ldrsb r1, [r4, #-4]! @ encoding: [0x14,0xf9,0x04,0x1d] 815@ CHECK: ldrsb lr, [r3], #255 @ encoding: [0x13,0xf9,0xff,0xeb] 816@ CHECK: ldrsb r9, [r2], #4 @ encoding: [0x12,0xf9,0x04,0x9b] 817@ CHECK: ldrsb r3, [sp], #-4 @ encoding: [0x1d,0xf9,0x04,0x39] 818 819 820@------------------------------------------------------------------------------ 821@ LDRSB(literal) 822@------------------------------------------------------------------------------ 823 ldrsb r5, _bar 824 825@ CHECK: ldrsb.w r5, _bar @ encoding: [0x9f'A',0xf9'A',A,0x50'A'] 826@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 827 828 829@------------------------------------------------------------------------------ 830@ LDRSBT 831@------------------------------------------------------------------------------ 832 ldrsbt r1, [r2] 833 ldrsbt r1, [r8, #0] 834 ldrsbt r1, [r8, #3] 835 ldrsbt r1, [r8, #255] 836 837@ CHECK: ldrsbt r1, [r2] @ encoding: [0x12,0xf9,0x00,0x1e] 838@ CHECK: ldrsbt r1, [r8] @ encoding: [0x18,0xf9,0x00,0x1e] 839@ CHECK: ldrsbt r1, [r8, #3] @ encoding: [0x18,0xf9,0x03,0x1e] 840@ CHECK: ldrsbt r1, [r8, #255] @ encoding: [0x18,0xf9,0xff,0x1e] 841 842 843@------------------------------------------------------------------------------ 844@ LDRSH(immediate) 845@------------------------------------------------------------------------------ 846 ldrsh r5, [r5, #-4] 847 ldrsh r5, [r6, #32] 848 ldrsh r5, [r6, #33] 849 ldrsh r5, [r6, #257] 850 ldrsh.w lr, [r7, #257] 851 852@ CHECK: ldrsh r5, [r5, #-4] @ encoding: [0x35,0xf9,0x04,0x5c] 853@ CHECK: ldrsh.w r5, [r6, #32] @ encoding: [0xb6,0xf9,0x20,0x50] 854@ CHECK: ldrsh.w r5, [r6, #33] @ encoding: [0xb6,0xf9,0x21,0x50] 855@ CHECK: ldrsh.w r5, [r6, #257] @ encoding: [0xb6,0xf9,0x01,0x51] 856@ CHECK: ldrsh.w lr, [r7, #257] @ encoding: [0xb7,0xf9,0x01,0xe1] 857 858 859@------------------------------------------------------------------------------ 860@ LDRSH(register) 861@------------------------------------------------------------------------------ 862 ldrsh r1, [r8, r1] 863 ldrsh.w r4, [r5, r2] 864 ldrsh r6, [r0, r2, lsl #3] 865 ldrsh r8, [r8, r2, lsl #2] 866 ldrsh r7, [sp, r2, lsl #1] 867 ldrsh r7, [sp, r2, lsl #0] 868 ldrsh r5, [r8, #255]! 869 ldrsh r2, [r5, #4]! 870 ldrsh r1, [r4, #-4]! 871 ldrsh lr, [r3], #255 872 ldrsh r9, [r2], #4 873 ldrsh r3, [sp], #-4 874 875@ CHECK: ldrsh.w r1, [r8, r1] @ encoding: [0x38,0xf9,0x01,0x10] 876@ CHECK: ldrsh.w r4, [r5, r2] @ encoding: [0x35,0xf9,0x02,0x40] 877@ CHECK: ldrsh.w r6, [r0, r2, lsl #3] @ encoding: [0x30,0xf9,0x32,0x60] 878@ CHECK: ldrsh.w r8, [r8, r2, lsl #2] @ encoding: [0x38,0xf9,0x22,0x80] 879@ CHECK: ldrsh.w r7, [sp, r2, lsl #1] @ encoding: [0x3d,0xf9,0x12,0x70] 880@ CHECK: ldrsh.w r7, [sp, r2] @ encoding: [0x3d,0xf9,0x02,0x70] 881@ CHECK: ldrsh r5, [r8, #255]! @ encoding: [0x38,0xf9,0xff,0x5f] 882@ CHECK: ldrsh r2, [r5, #4]! @ encoding: [0x35,0xf9,0x04,0x2f] 883@ CHECK: ldrsh r1, [r4, #-4]! @ encoding: [0x34,0xf9,0x04,0x1d] 884@ CHECK: ldrsh lr, [r3], #255 @ encoding: [0x33,0xf9,0xff,0xeb] 885@ CHECK: ldrsh r9, [r2], #4 @ encoding: [0x32,0xf9,0x04,0x9b] 886@ CHECK: ldrsh r3, [sp], #-4 @ encoding: [0x3d,0xf9,0x04,0x39] 887 888 889@------------------------------------------------------------------------------ 890@ LDRSH(literal) 891@------------------------------------------------------------------------------ 892 ldrsh r5, _bar 893 ldrsh.w r4, #1435 894 895@ CHECK: ldrsh.w r5, _bar @ encoding: [0xbf'A',0xf9'A',A,0x50'A'] 896@ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12 897@ CHECK: ldrsh.w r4, #1435 @ encoding: [0x3f,0xf9,0x9b,0x45] 898 899@------------------------------------------------------------------------------ 900@ LDRSHT 901@------------------------------------------------------------------------------ 902 ldrsht r1, [r2] 903 ldrsht r1, [r8, #0] 904 ldrsht r1, [r8, #3] 905 ldrsht r1, [r8, #255] 906 907@ CHECK: ldrsht r1, [r2] @ encoding: [0x32,0xf9,0x00,0x1e] 908@ CHECK: ldrsht r1, [r8] @ encoding: [0x38,0xf9,0x00,0x1e] 909@ CHECK: ldrsht r1, [r8, #3] @ encoding: [0x38,0xf9,0x03,0x1e] 910@ CHECK: ldrsht r1, [r8, #255] @ encoding: [0x38,0xf9,0xff,0x1e] 911 912 913@------------------------------------------------------------------------------ 914@ LDRT 915@------------------------------------------------------------------------------ 916 ldrt r1, [r2] 917 ldrt r2, [r6, #0] 918 ldrt r3, [r7, #3] 919 ldrt r4, [r9, #255] 920 921@ CHECK: ldrt r1, [r2] @ encoding: [0x52,0xf8,0x00,0x1e] 922@ CHECK: ldrt r2, [r6] @ encoding: [0x56,0xf8,0x00,0x2e] 923@ CHECK: ldrt r3, [r7, #3] @ encoding: [0x57,0xf8,0x03,0x3e] 924@ CHECK: ldrt r4, [r9, #255] @ encoding: [0x59,0xf8,0xff,0x4e] 925 926 927@------------------------------------------------------------------------------ 928@ LSL (immediate) 929@------------------------------------------------------------------------------ 930 lsl r2, r3, #12 931 lsls r8, r3, #31 932 lsls.w r2, r3, #1 933 lsl r2, r3, #4 934 lsls r2, r12, #15 935 936 lsl r3, #19 937 lsls r8, #2 938 lsls.w r7, #5 939 lsl.w r12, #21 940 941@ CHECK: lsl.w r2, r3, #12 @ encoding: [0x4f,0xea,0x03,0x32] 942@ CHECK: lsls.w r8, r3, #31 @ encoding: [0x5f,0xea,0xc3,0x78] 943@ CHECK: lsls.w r2, r3, #1 @ encoding: [0x5f,0xea,0x43,0x02] 944@ CHECK: lsl.w r2, r3, #4 @ encoding: [0x4f,0xea,0x03,0x12] 945@ CHECK: lsls.w r2, r12, #15 @ encoding: [0x5f,0xea,0xcc,0x32] 946 947@ CHECK: lsl.w r3, r3, #19 @ encoding: [0x4f,0xea,0xc3,0x43] 948@ CHECK: lsls.w r8, r8, #2 @ encoding: [0x5f,0xea,0x88,0x08] 949@ CHECK: lsls.w r7, r7, #5 @ encoding: [0x5f,0xea,0x47,0x17] 950@ CHECK: lsl.w r12, r12, #21 @ encoding: [0x4f,0xea,0x4c,0x5c] 951 952 953@------------------------------------------------------------------------------ 954@ LSL (register) 955@------------------------------------------------------------------------------ 956 lsl r3, r4, r2 957 lsl.w r1, r2 958 lsls r3, r4, r8 959 960@ CHECK: lsl.w r3, r4, r2 @ encoding: [0x04,0xfa,0x02,0xf3] 961@ CHECK: lsl.w r1, r1, r2 @ encoding: [0x01,0xfa,0x02,0xf1] 962@ CHECK: lsls.w r3, r4, r8 @ encoding: [0x14,0xfa,0x08,0xf3] 963 964 965@------------------------------------------------------------------------------ 966@ LSR (immediate) 967@------------------------------------------------------------------------------ 968 lsr r2, r3, #12 969 lsrs r8, r3, #32 970 lsrs.w r2, r3, #1 971 lsr r2, r3, #4 972 lsrs r2, r12, #15 973 974 lsr r3, #19 975 lsrs r8, #2 976 lsrs.w r7, #5 977 lsr.w r12, #21 978 979@ CHECK: lsr.w r2, r3, #12 @ encoding: [0x4f,0xea,0x13,0x32] 980@ CHECK: lsrs.w r8, r3, #32 @ encoding: [0x5f,0xea,0x13,0x08] 981@ CHECK: lsrs.w r2, r3, #1 @ encoding: [0x5f,0xea,0x53,0x02] 982@ CHECK: lsr.w r2, r3, #4 @ encoding: [0x4f,0xea,0x13,0x12] 983@ CHECK: lsrs.w r2, r12, #15 @ encoding: [0x5f,0xea,0xdc,0x32] 984 985@ CHECK: lsr.w r3, r3, #19 @ encoding: [0x4f,0xea,0xd3,0x43] 986@ CHECK: lsrs.w r8, r8, #2 @ encoding: [0x5f,0xea,0x98,0x08] 987@ CHECK: lsrs.w r7, r7, #5 @ encoding: [0x5f,0xea,0x57,0x17] 988@ CHECK: lsr.w r12, r12, #21 @ encoding: [0x4f,0xea,0x5c,0x5c] 989 990 991@------------------------------------------------------------------------------ 992@ LSR (register) 993@------------------------------------------------------------------------------ 994 lsr r3, r4, r2 995 lsr.w r1, r2 996 lsrs r3, r4, r8 997 998@ CHECK: lsr.w r3, r4, r2 @ encoding: [0x24,0xfa,0x02,0xf3] 999@ CHECK: lsr.w r1, r1, r2 @ encoding: [0x21,0xfa,0x02,0xf1] 1000@ CHECK: lsrs.w r3, r4, r8 @ encoding: [0x34,0xfa,0x08,0xf3] 1001 1002@------------------------------------------------------------------------------ 1003@ MCR/MCR2 1004@------------------------------------------------------------------------------ 1005 mcr p7, #1, r5, c1, c1, #4 1006 mcr2 p7, #1, r5, c1, c1, #4 1007 1008@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57] 1009@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57] 1010 1011 1012@------------------------------------------------------------------------------ 1013@ MCRR/MCRR2 1014@------------------------------------------------------------------------------ 1015 mcrr p7, #15, r5, r4, c1 1016 mcrr2 p7, #15, r5, r4, c1 1017 1018@ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0x44,0xec,0xf1,0x57] 1019@ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0x44,0xfc,0xf1,0x57] 1020 1021 1022@------------------------------------------------------------------------------ 1023@ MLA/MLS 1024@------------------------------------------------------------------------------ 1025 mla r1,r2,r3,r4 1026 mls r1,r2,r3,r4 1027 1028@ CHECK: mla r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x03,0x41] 1029@ CHECK: mls r1, r2, r3, r4 @ encoding: [0x02,0xfb,0x13,0x41] 1030 1031 1032@------------------------------------------------------------------------------ 1033@ MOV(immediate) 1034@------------------------------------------------------------------------------ 1035 movs r1, #21 1036 movs.w r1, #21 1037 movs r8, #21 1038 movw r0, #65535 1039 movw r1, #43777 1040 movw r1, #43792 1041 mov.w r0, #0x3fc0000 1042 mov r0, #0x3fc0000 1043 movs.w r0, #0x3fc0000 1044 itte eq 1045 movseq r1, #12 1046 moveq r1, #12 1047 movne.w r1, #12 1048 mov.w r6, #450 1049 1050@ CHECK: movs r1, #21 @ encoding: [0x15,0x21] 1051@ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01] 1052@ CHECK: movs.w r8, #21 @ encoding: [0x5f,0xf0,0x15,0x08] 1053@ CHECK: movw r0, #65535 @ encoding: [0x4f,0xf6,0xff,0x70] 1054@ CHECK: movw r1, #43777 @ encoding: [0x4a,0xf6,0x01,0x31] 1055@ CHECK: movw r1, #43792 @ encoding: [0x4a,0xf6,0x10,0x31] 1056@ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70] 1057@ CHECK: mov.w r0, #66846720 @ encoding: [0x4f,0xf0,0x7f,0x70] 1058@ CHECK: movs.w r0, #66846720 @ encoding: [0x5f,0xf0,0x7f,0x70] 1059@ CHECK: itte eq @ encoding: [0x06,0xbf] 1060@ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01] 1061@ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21] 1062@ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01] 1063@ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76] 1064 1065 1066@------------------------------------------------------------------------------ 1067@ MOVT 1068@------------------------------------------------------------------------------ 1069 movt r3, #7 1070 movt r6, #0xffff 1071 it eq 1072 movteq r4, #0xff0 1073 1074@ CHECK: movt r3, #7 @ encoding: [0xc0,0xf2,0x07,0x03] 1075@ CHECK: movt r6, #65535 @ encoding: [0xcf,0xf6,0xff,0x76] 1076@ CHECK: it eq @ encoding: [0x08,0xbf] 1077@ CHECK: movteq r4, #4080 @ encoding: [0xc0,0xf6,0xf0,0x74] 1078 1079@------------------------------------------------------------------------------ 1080@ MRC/MRC2 1081@------------------------------------------------------------------------------ 1082 mrc p14, #0, r1, c1, c2, #4 1083 mrc2 p14, #0, r1, c1, c2, #4 1084 1085@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e] 1086@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e] 1087 1088 1089@------------------------------------------------------------------------------ 1090@ MRRC/MRRC2 1091@------------------------------------------------------------------------------ 1092 mrrc p7, #1, r5, r4, c1 1093 mrrc2 p7, #1, r5, r4, c1 1094 1095@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57] 1096@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57] 1097 1098 1099@------------------------------------------------------------------------------ 1100@ MRS 1101@------------------------------------------------------------------------------ 1102 mrs r8, apsr 1103 mrs r8, cpsr 1104 mrs r8, spsr 1105 1106@ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88] 1107@ CHECK: mrs r8, apsr @ encoding: [0xef,0xf3,0x00,0x88] 1108@ CHECK: mrs r8, spsr @ encoding: [0xff,0xf3,0x00,0x88] 1109 1110 1111@------------------------------------------------------------------------------ 1112@ MSR 1113@------------------------------------------------------------------------------ 1114 msr apsr, r1 1115 msr apsr_g, r2 1116 msr apsr_nzcvq, r3 1117 msr APSR_nzcvq, r4 1118 msr apsr_nzcvqg, r5 1119 msr cpsr_fc, r6 1120 msr cpsr_c, r7 1121 msr cpsr_x, r8 1122 msr cpsr_fc, r9 1123 msr cpsr_all, r11 1124 msr cpsr_fsx, r12 1125 msr spsr_fc, r0 1126 msr SPSR_fsxc, r5 1127 msr cpsr_fsxc, r8 1128 1129@ CHECK: msr APSR_nzcvq, r1 @ encoding: [0x81,0xf3,0x00,0x88] 1130@ CHECK: msr APSR_g, r2 @ encoding: [0x82,0xf3,0x00,0x84] 1131@ CHECK: msr APSR_nzcvq, r3 @ encoding: [0x83,0xf3,0x00,0x88] 1132@ CHECK: msr APSR_nzcvq, r4 @ encoding: [0x84,0xf3,0x00,0x88] 1133@ CHECK: msr APSR_nzcvqg, r5 @ encoding: [0x85,0xf3,0x00,0x8c] 1134@ CHECK: msr CPSR_fc, r6 @ encoding: [0x86,0xf3,0x00,0x89] 1135@ CHECK: msr CPSR_c, r7 @ encoding: [0x87,0xf3,0x00,0x81] 1136@ CHECK: msr CPSR_x, r8 @ encoding: [0x88,0xf3,0x00,0x82] 1137@ CHECK: msr CPSR_fc, r9 @ encoding: [0x89,0xf3,0x00,0x89] 1138@ CHECK: msr CPSR_fc, r11 @ encoding: [0x8b,0xf3,0x00,0x89] 1139@ CHECK: msr CPSR_fsx, r12 @ encoding: [0x8c,0xf3,0x00,0x8e] 1140@ CHECK: msr SPSR_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89] 1141@ CHECK: msr SPSR_fsxc, r5 @ encoding: [0x95,0xf3,0x00,0x8f] 1142@ CHECK: msr CPSR_fsxc, r8 @ encoding: [0x88,0xf3,0x00,0x8f] 1143 1144 1145@------------------------------------------------------------------------------ 1146@ MUL 1147@------------------------------------------------------------------------------ 1148 muls r3, r4, r3 1149 mul r3, r4, r3 1150 mul r3, r4, r6 1151 it eq 1152 muleq r3, r4, r5 1153 1154@ CHECK: muls r3, r4, r3 @ encoding: [0x63,0x43] 1155@ CHECK: mul r3, r4, r3 @ encoding: [0x04,0xfb,0x03,0xf3] 1156@ CHECK: mul r3, r4, r6 @ encoding: [0x04,0xfb,0x06,0xf3] 1157@ CHECK: it eq @ encoding: [0x08,0xbf] 1158@ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3] 1159 1160 1161@------------------------------------------------------------------------------ 1162@ MVN(immediate) 1163@------------------------------------------------------------------------------ 1164 mvns r8, #21 1165 mvn r0, #0x3fc0000 1166 mvns r0, #0x3fc0000 1167 itte eq 1168 mvnseq r1, #12 1169 mvneq r1, #12 1170 mvnne r1, #12 1171 1172@ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08] 1173@ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70] 1174@ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70] 1175@ CHECK: itte eq @ encoding: [0x06,0xbf] 1176@ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01] 1177@ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01] 1178@ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01] 1179 1180 1181@------------------------------------------------------------------------------ 1182@ MVN(register) 1183@------------------------------------------------------------------------------ 1184 mvn r2, r3 1185 mvns r2, r3 1186 mvn r5, r6, lsl #19 1187 mvn r5, r6, lsr #9 1188 mvn r5, r6, asr #4 1189 mvn r5, r6, ror #6 1190 mvn r5, r6, rrx 1191 it eq 1192 mvneq r2, r3 1193 1194@ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02] 1195@ CHECK: mvns r2, r3 @ encoding: [0xda,0x43] 1196@ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45] 1197@ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25] 1198@ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15] 1199@ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15] 1200@ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05] 1201@ CHECK: it eq @ encoding: [0x08,0xbf] 1202@ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43] 1203 1204@------------------------------------------------------------------------------ 1205@ NOP 1206@------------------------------------------------------------------------------ 1207 nop.w 1208 1209@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80] 1210 1211 1212@------------------------------------------------------------------------------ 1213@ ORN 1214@------------------------------------------------------------------------------ 1215 orn r4, r5, #0xf000 1216 orn r4, r5, r6 1217 orns r4, r5, r6 1218 orn r4, r5, r6, lsl #5 1219 orns r4, r5, r6, lsr #5 1220 orn r4, r5, r6, lsr #5 1221 orns r4, r5, r6, asr #5 1222 orn r4, r5, r6, ror #5 1223 1224@ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44] 1225@ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04] 1226@ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04] 1227@ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14] 1228@ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14] 1229@ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14] 1230@ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14] 1231@ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14] 1232 1233 1234@------------------------------------------------------------------------------ 1235@ ORR 1236@------------------------------------------------------------------------------ 1237 orr r4, r5, #0xf000 1238 orr r4, r5, r6 1239 orr r4, r5, r6, lsl #5 1240 orrs r4, r5, r6, lsr #5 1241 orr r4, r5, r6, lsr #5 1242 orrs r4, r5, r6, asr #5 1243 orr r4, r5, r6, ror #5 1244 1245@ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44] 1246@ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04] 1247@ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14] 1248@ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14] 1249@ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14] 1250@ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14] 1251@ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14] 1252 1253 1254@------------------------------------------------------------------------------ 1255@ PKH 1256@------------------------------------------------------------------------------ 1257 pkhbt r2, r2, r3 1258 pkhbt r2, r2, r3, lsl #31 1259 pkhbt r2, r2, r3, lsl #0 1260 pkhbt r2, r2, r3, lsl #15 1261 1262 pkhtb r2, r2, r3 1263 pkhtb r2, r2, r3, asr #31 1264 pkhtb r2, r2, r3, asr #15 1265 1266@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1267@ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72] 1268@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1269@ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32] 1270 1271@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02] 1272@ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72] 1273@ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32] 1274 1275 1276@------------------------------------------------------------------------------ 1277@ PLD(immediate) 1278@------------------------------------------------------------------------------ 1279 pld [r5, #-4] 1280 pld [r6, #32] 1281 pld [r6, #33] 1282 pld [r6, #257] 1283 pld [r7, #257] 1284 1285@ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc] 1286@ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0] 1287@ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0] 1288@ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1] 1289@ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1] 1290 1291 1292@------------------------------------------------------------------------------ 1293@ PLD(literal) 1294@------------------------------------------------------------------------------ 1295 pld _foo 1296 1297@ CHECK: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A'] 1298 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 1299 1300 1301@------------------------------------------------------------------------------ 1302@ PLD(register) 1303@------------------------------------------------------------------------------ 1304 pld [r8, r1] 1305 pld [r5, r2] 1306 pld [r0, r2, lsl #3] 1307 pld [r8, r2, lsl #2] 1308 pld [sp, r2, lsl #1] 1309 pld [sp, r2, lsl #0] 1310 1311@ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0] 1312@ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0] 1313@ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0] 1314@ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0] 1315@ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0] 1316@ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0] 1317 1318@------------------------------------------------------------------------------ 1319@ PLI(immediate) 1320@------------------------------------------------------------------------------ 1321 pli [r5, #-4] 1322 pli [r6, #32] 1323 pli [r6, #33] 1324 pli [r6, #257] 1325 pli [r7, #257] 1326 1327@ CHECK: pli [r5, #-4] @ encoding: [0x15,0xf9,0x04,0xfc] 1328@ CHECK: pli [r6, #32] @ encoding: [0x96,0xf9,0x20,0xf0] 1329@ CHECK: pli [r6, #33] @ encoding: [0x96,0xf9,0x21,0xf0] 1330@ CHECK: pli [r6, #257] @ encoding: [0x96,0xf9,0x01,0xf1] 1331@ CHECK: pli [r7, #257] @ encoding: [0x97,0xf9,0x01,0xf1] 1332 1333 1334@------------------------------------------------------------------------------ 1335@ PLI(literal) 1336@------------------------------------------------------------------------------ 1337 pli _foo 1338 1339 1340@ CHECK: pli _foo @ encoding: [0x9f'A',0xf9'A',A,0xf0'A'] 1341 @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12 1342 1343 1344@------------------------------------------------------------------------------ 1345@ PLI(register) 1346@------------------------------------------------------------------------------ 1347 pli [r8, r1] 1348 pli [r5, r2] 1349 pli [r0, r2, lsl #3] 1350 pli [r8, r2, lsl #2] 1351 pli [sp, r2, lsl #1] 1352 pli [sp, r2, lsl #0] 1353 1354@ CHECK: pli [r8, r1] @ encoding: [0x18,0xf9,0x01,0xf0] 1355@ CHECK: pli [r5, r2] @ encoding: [0x15,0xf9,0x02,0xf0] 1356@ CHECK: pli [r0, r2, lsl #3] @ encoding: [0x10,0xf9,0x32,0xf0] 1357@ CHECK: pli [r8, r2, lsl #2] @ encoding: [0x18,0xf9,0x22,0xf0] 1358@ CHECK: pli [sp, r2, lsl #1] @ encoding: [0x1d,0xf9,0x12,0xf0] 1359@ CHECK: pli [sp, r2] @ encoding: [0x1d,0xf9,0x02,0xf0] 1360 1361 1362@------------------------------------------------------------------------------ 1363@ QADD/QADD16/QADD8 1364@------------------------------------------------------------------------------ 1365 qadd r1, r2, r3 1366 qadd16 r1, r2, r3 1367 qadd8 r1, r2, r3 1368 itte gt 1369 qaddgt r1, r2, r3 1370 qadd16gt r1, r2, r3 1371 qadd8le r1, r2, r3 1372 1373@ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1] 1374@ CHECK: qadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1] 1375@ CHECK: qadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1] 1376@ CHECK: itte gt @ encoding: [0xc6,0xbf] 1377@ CHECK: qaddgt r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1] 1378@ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x13,0xf1] 1379@ CHECK: qadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x13,0xf1] 1380 1381 1382@------------------------------------------------------------------------------ 1383@ QDADD/QDSUB 1384@------------------------------------------------------------------------------ 1385 qdadd r6, r7, r8 1386 qdsub r6, r7, r8 1387 itt hi 1388 qdaddhi r6, r7, r8 1389 qdsubhi r6, r7, r8 1390 1391@ CHECK: qdadd r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6] 1392@ CHECK: qdsub r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6] 1393@ CHECK: itt hi @ encoding: [0x84,0xbf] 1394@ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x88,0xfa,0x97,0xf6] 1395@ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x88,0xfa,0xb7,0xf6] 1396 1397 1398@------------------------------------------------------------------------------ 1399@ QSAX 1400@------------------------------------------------------------------------------ 1401 qsax r9, r12, r0 1402 it eq 1403 qsaxeq r9, r12, r0 1404 1405@ CHECK: qsax r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9] 1406@ CHECK: it eq @ encoding: [0x08,0xbf] 1407@ CHECK: qsaxeq r9, r12, r0 @ encoding: [0xec,0xfa,0x10,0xf9] 1408 1409 1410@------------------------------------------------------------------------------ 1411@ QSUB/QSUB16/QSUB8 1412@------------------------------------------------------------------------------ 1413 qsub r1, r2, r3 1414 qsub16 r1, r2, r3 1415 qsub8 r1, r2, r3 1416 itet le 1417 qsuble r1, r2, r3 1418 qsub16gt r1, r2, r3 1419 qsub8le r1, r2, r3 1420 1421@ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1] 1422@ CHECK: qsub16 r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1] 1423@ CHECK: qsub8 r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1] 1424@ CHECK: itet le @ encoding: [0xd6,0xbf] 1425@ CHECK: qsuble r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1] 1426@ CHECK: qsub16gt r1, r2, r3 @ encoding: [0xd2,0xfa,0x13,0xf1] 1427@ CHECK: qsub8le r1, r2, r3 @ encoding: [0xc2,0xfa,0x13,0xf1] 1428 1429 1430@------------------------------------------------------------------------------ 1431@ RBIT 1432@------------------------------------------------------------------------------ 1433 rbit r1, r2 1434 it ne 1435 rbitne r1, r2 1436 1437@ CHECK: rbit r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1] 1438@ CHECK: it ne @ encoding: [0x18,0xbf] 1439@ CHECK: rbitne r1, r2 @ encoding: [0x92,0xfa,0xa2,0xf1] 1440 1441 1442@------------------------------------------------------------------------------ 1443@ REV 1444@------------------------------------------------------------------------------ 1445 rev.w r1, r2 1446 rev r2, r8 1447 itt ne 1448 revne r1, r2 1449 revne r1, r8 1450 1451@ CHECK: rev.w r1, r2 @ encoding: [0x92,0xfa,0x82,0xf1] 1452@ CHECK: rev.w r2, r8 @ encoding: [0x98,0xfa,0x88,0xf2] 1453@ CHECK: itt ne @ encoding: [0x1c,0xbf] 1454@ CHECK: revne r1, r2 @ encoding: [0x11,0xba] 1455@ CHECK: revne.w r1, r8 @ encoding: [0x98,0xfa,0x88,0xf1] 1456 1457 1458@------------------------------------------------------------------------------ 1459@ REV16 1460@------------------------------------------------------------------------------ 1461 rev16.w r1, r2 1462 rev16 r2, r8 1463 itt ne 1464 rev16ne r1, r2 1465 rev16ne r1, r8 1466 1467@ CHECK: rev16.w r1, r2 @ encoding: [0x92,0xfa,0x92,0xf1] 1468@ CHECK: rev16.w r2, r8 @ encoding: [0x98,0xfa,0x98,0xf2] 1469@ CHECK: itt ne @ encoding: [0x1c,0xbf] 1470@ CHECK: rev16ne r1, r2 @ encoding: [0x51,0xba] 1471@ CHECK: rev16ne.w r1, r8 @ encoding: [0x98,0xfa,0x98,0xf1] 1472 1473 1474@------------------------------------------------------------------------------ 1475@ REVSH 1476@------------------------------------------------------------------------------ 1477 revsh.w r1, r2 1478 revsh r2, r8 1479 itt ne 1480 revshne r1, r2 1481 revshne r1, r8 1482 1483@ CHECK: revsh.w r1, r2 @ encoding: [0x92,0xfa,0xb2,0xf1] 1484@ CHECK: revsh.w r2, r8 @ encoding: [0x98,0xfa,0xb8,0xf2] 1485@ CHECK: itt ne @ encoding: [0x1c,0xbf] 1486@ CHECK: revshne r1, r2 @ encoding: [0xd1,0xba] 1487@ CHECK: revshne.w r1, r8 @ encoding: [0x98,0xfa,0xb8,0xf1] 1488 1489 1490@------------------------------------------------------------------------------ 1491@ ROR (immediate) 1492@------------------------------------------------------------------------------ 1493 ror r2, r3, #12 1494 rors r8, r3, #31 1495 rors.w r2, r3, #1 1496 ror r2, r3, #4 1497 rors r2, r12, #15 1498 1499 ror r3, #19 1500 rors r8, #2 1501 rors.w r7, #5 1502 ror.w r12, #21 1503 1504@ CHECK: ror.w r2, r3, #12 @ encoding: [0x4f,0xea,0x33,0x32] 1505@ CHECK: rors.w r8, r3, #31 @ encoding: [0x5f,0xea,0xf3,0x78] 1506@ CHECK: rors.w r2, r3, #1 @ encoding: [0x5f,0xea,0x73,0x02] 1507@ CHECK: ror.w r2, r3, #4 @ encoding: [0x4f,0xea,0x33,0x12] 1508@ CHECK: rors.w r2, r12, #15 @ encoding: [0x5f,0xea,0xfc,0x32] 1509 1510@ CHECK: ror.w r3, r3, #19 @ encoding: [0x4f,0xea,0xf3,0x43] 1511@ CHECK: rors.w r8, r8, #2 @ encoding: [0x5f,0xea,0xb8,0x08] 1512@ CHECK: rors.w r7, r7, #5 @ encoding: [0x5f,0xea,0x77,0x17] 1513@ CHECK: ror.w r12, r12, #21 @ encoding: [0x4f,0xea,0x7c,0x5c] 1514 1515 1516@------------------------------------------------------------------------------ 1517@ ROR (register) 1518@------------------------------------------------------------------------------ 1519 ror r3, r4, r2 1520 ror.w r1, r2 1521 rors r3, r4, r8 1522 1523@ CHECK: ror.w r3, r4, r2 @ encoding: [0x64,0xfa,0x02,0xf3] 1524@ CHECK: ror.w r1, r1, r2 @ encoding: [0x61,0xfa,0x02,0xf1] 1525@ CHECK: rors.w r3, r4, r8 @ encoding: [0x74,0xfa,0x08,0xf3] 1526 1527 1528@------------------------------------------------------------------------------ 1529@ RRX 1530@------------------------------------------------------------------------------ 1531 rrx r1, r2 1532 rrxs r1, r2 1533 ite lt 1534 rrxlt r9, r12 1535 rrxsge r8, r3 1536 1537@ CHECK: rrx r1, r2 @ encoding: [0x4f,0xea,0x32,0x01] 1538@ CHECK: rrxs r1, r2 @ encoding: [0x5f,0xea,0x32,0x01] 1539@ CHECK: ite lt @ encoding: [0xb4,0xbf] 1540@ CHECK: rrxlt r9, r12 @ encoding: [0x4f,0xea,0x3c,0x09] 1541@ CHECK: rrxsge r8, r3 @ encoding: [0x5f,0xea,0x33,0x08] 1542 1543@------------------------------------------------------------------------------ 1544@ RSB (immediate) 1545@------------------------------------------------------------------------------ 1546 rsb r2, r5, #0xff000 1547 rsbs r3, r12, #0xf 1548 rsb r1, #0xff 1549 rsb r1, r1, #0xff 1550 1551@ CHECK: rsb.w r2, r5, #1044480 @ encoding: [0xc5,0xf5,0x7f,0x22] 1552@ CHECK: rsbs.w r3, r12, #15 @ encoding: [0xdc,0xf1,0x0f,0x03] 1553@ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01] 1554@ CHECK: rsb.w r1, r1, #255 @ encoding: [0xc1,0xf1,0xff,0x01] 1555 1556 1557@------------------------------------------------------------------------------ 1558@ RSB (register) 1559@------------------------------------------------------------------------------ 1560 rsb r4, r8 1561 rsb r4, r9, r8 1562 rsb r1, r4, r8, asr #3 1563 rsbs r2, r1, r7, lsl #1 1564 1565@ CHECK: rsb r4, r4, r8 @ encoding: [0xc4,0xeb,0x08,0x04] 1566@ CHECK: rsb r4, r9, r8 @ encoding: [0xc9,0xeb,0x08,0x04] 1567@ CHECK: rsb r1, r4, r8, asr #3 @ encoding: [0xc4,0xeb,0xe8,0x01] 1568@ CHECK: rsbs r2, r1, r7, lsl #1 @ encoding: [0xd1,0xeb,0x47,0x02] 1569 1570 1571@------------------------------------------------------------------------------ 1572@ SADD16 1573@------------------------------------------------------------------------------ 1574 sadd16 r3, r4, r8 1575 it ne 1576 sadd16ne r3, r4, r8 1577 1578@ CHECK: sadd16 r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3] 1579@ CHECK: it ne @ encoding: [0x18,0xbf] 1580@ CHECK: sadd16ne r3, r4, r8 @ encoding: [0x94,0xfa,0x08,0xf3] 1581 1582 1583@------------------------------------------------------------------------------ 1584@ SADD8 1585@------------------------------------------------------------------------------ 1586 sadd8 r3, r4, r8 1587 it ne 1588 sadd8ne r3, r4, r8 1589 1590@ CHECK: sadd8 r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3] 1591@ CHECK: it ne @ encoding: [0x18,0xbf] 1592@ CHECK: sadd8ne r3, r4, r8 @ encoding: [0x84,0xfa,0x08,0xf3] 1593 1594 1595@------------------------------------------------------------------------------ 1596@ SASX 1597@------------------------------------------------------------------------------ 1598 saddsubx r9, r2, r7 1599 it ne 1600 saddsubxne r2, r5, r6 1601 sasx r9, r2, r7 1602 it ne 1603 sasxne r2, r5, r6 1604 1605@ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9] 1606@ CHECK: it ne @ encoding: [0x18,0xbf] 1607@ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2] 1608@ CHECK: sasx r9, r2, r7 @ encoding: [0xa2,0xfa,0x07,0xf9] 1609@ CHECK: it ne @ encoding: [0x18,0xbf] 1610@ CHECK: sasxne r2, r5, r6 @ encoding: [0xa5,0xfa,0x06,0xf2] 1611 1612 1613@------------------------------------------------------------------------------ 1614@ SBC (immediate) 1615@------------------------------------------------------------------------------ 1616 sbc r0, r1, #4 1617 sbcs r0, r1, #0 1618 sbc r1, r2, #255 1619 sbc r3, r7, #0x00550055 1620 sbc r8, r12, #0xaa00aa00 1621 sbc r9, r7, #0xa5a5a5a5 1622 sbc r5, r3, #0x87000000 1623 sbc r4, r2, #0x7f800000 1624 sbc r4, r2, #0x00000680 1625 1626@ CHECK: sbc r0, r1, #4 @ encoding: [0x61,0xf1,0x04,0x00] 1627@ CHECK: sbcs r0, r1, #0 @ encoding: [0x71,0xf1,0x00,0x00] 1628@ CHECK: sbc r1, r2, #255 @ encoding: [0x62,0xf1,0xff,0x01] 1629@ CHECK: sbc r3, r7, #5570645 @ encoding: [0x67,0xf1,0x55,0x13] 1630@ CHECK: sbc r8, r12, #2852170240 @ encoding: [0x6c,0xf1,0xaa,0x28] 1631@ CHECK: sbc r9, r7, #2779096485 @ encoding: [0x67,0xf1,0xa5,0x39] 1632@ CHECK: sbc r5, r3, #2264924160 @ encoding: [0x63,0xf1,0x07,0x45] 1633@ CHECK: sbc r4, r2, #2139095040 @ encoding: [0x62,0xf1,0xff,0x44] 1634@ CHECK: sbc r4, r2, #1664 @ encoding: [0x62,0xf5,0xd0,0x64] 1635 1636 1637@------------------------------------------------------------------------------ 1638@ SBC (register) 1639@------------------------------------------------------------------------------ 1640 sbc r4, r5, r6 1641 sbcs r4, r5, r6 1642 sbc.w r9, r1, r3 1643 sbcs.w r9, r1, r3 1644 sbc r0, r1, r3, ror #4 1645 sbcs r0, r1, r3, lsl #7 1646 sbc.w r0, r1, r3, lsr #31 1647 sbcs.w r0, r1, r3, asr #32 1648 1649@ CHECK: sbc.w r4, r5, r6 @ encoding: [0x65,0xeb,0x06,0x04] 1650@ CHECK: sbcs.w r4, r5, r6 @ encoding: [0x75,0xeb,0x06,0x04] 1651@ CHECK: sbc.w r9, r1, r3 @ encoding: [0x61,0xeb,0x03,0x09] 1652@ CHECK: sbcs.w r9, r1, r3 @ encoding: [0x71,0xeb,0x03,0x09] 1653@ CHECK: sbc.w r0, r1, r3, ror #4 @ encoding: [0x61,0xeb,0x33,0x10] 1654@ CHECK: sbcs.w r0, r1, r3, lsl #7 @ encoding: [0x71,0xeb,0xc3,0x10] 1655@ CHECK: sbc.w r0, r1, r3, lsr #31 @ encoding: [0x61,0xeb,0xd3,0x70] 1656@ CHECK: sbcs.w r0, r1, r3, asr #32 @ encoding: [0x71,0xeb,0x23,0x00] 1657 1658 1659@------------------------------------------------------------------------------ 1660@ SBFX 1661@------------------------------------------------------------------------------ 1662 sbfx r4, r5, #16, #1 1663 it gt 1664 sbfxgt r4, r5, #16, #16 1665 1666@ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x45,0xf3,0x00,0x44] 1667@ CHECK: it gt @ encoding: [0xc8,0xbf] 1668@ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x45,0xf3,0x0f,0x44] 1669 1670 1671@------------------------------------------------------------------------------ 1672@ SEL 1673@------------------------------------------------------------------------------ 1674 sel r5, r9, r2 1675 it le 1676 selle r5, r9, r2 1677 1678@ CHECK: sel r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5] 1679@ CHECK: it le @ encoding: [0xd8,0xbf] 1680@ CHECK: selle r5, r9, r2 @ encoding: [0xa9,0xfa,0x82,0xf5] 1681 1682 1683@------------------------------------------------------------------------------ 1684@ SEV 1685@------------------------------------------------------------------------------ 1686 sev.w 1687 it eq 1688 seveq.w 1689 1690@ CHECK: sev.w @ encoding: [0xaf,0xf3,0x04,0x80] 1691@ CHECK: it eq @ encoding: [0x08,0xbf] 1692@ CHECK: seveq.w @ encoding: [0xaf,0xf3,0x04,0x80] 1693 1694 1695@------------------------------------------------------------------------------ 1696@ SADD16/SADD8 1697@------------------------------------------------------------------------------ 1698 sadd16 r1, r2, r3 1699 sadd8 r1, r2, r3 1700 ite gt 1701 sadd16gt r1, r2, r3 1702 sadd8le r1, r2, r3 1703 1704@ CHECK: sadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1] 1705@ CHECK: sadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1] 1706@ CHECK: ite gt @ encoding: [0xcc,0xbf] 1707@ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x03,0xf1] 1708@ CHECK: sadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x03,0xf1] 1709 1710 1711@------------------------------------------------------------------------------ 1712@ SHASX 1713@------------------------------------------------------------------------------ 1714 shasx r4, r8, r2 1715 it gt 1716 shasxgt r4, r8, r2 1717 shaddsubx r4, r8, r2 1718 it gt 1719 shaddsubxgt r4, r8, r2 1720 1721@ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1722@ CHECK: it gt @ encoding: [0xc8,0xbf] 1723@ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1724@ CHECK: shasx r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1725@ CHECK: it gt @ encoding: [0xc8,0xbf] 1726@ CHECK: shasxgt r4, r8, r2 @ encoding: [0xa8,0xfa,0x22,0xf4] 1727 1728 1729@------------------------------------------------------------------------------ 1730@ SHASX 1731@------------------------------------------------------------------------------ 1732 shsax r4, r8, r2 1733 it gt 1734 shsaxgt r4, r8, r2 1735 shsubaddx r4, r8, r2 1736 it gt 1737 shsubaddxgt r4, r8, r2 1738 1739@ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1740@ CHECK: it gt @ encoding: [0xc8,0xbf] 1741@ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1742@ CHECK: shsax r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1743@ CHECK: it gt @ encoding: [0xc8,0xbf] 1744@ CHECK: shsaxgt r4, r8, r2 @ encoding: [0xe8,0xfa,0x22,0xf4] 1745 1746 1747@------------------------------------------------------------------------------ 1748@ SHSUB16/SHSUB8 1749@------------------------------------------------------------------------------ 1750 shsub16 r4, r8, r2 1751 shsub8 r4, r8, r2 1752 itt gt 1753 shsub16gt r4, r8, r2 1754 shsub8gt r4, r8, r2 1755 1756@ CHECK: shsub16 r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4] 1757@ CHECK: shsub8 r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4] 1758@ CHECK: itt gt @ encoding: [0xc4,0xbf] 1759@ CHECK: shsub16gt r4, r8, r2 @ encoding: [0xd8,0xfa,0x22,0xf4] 1760@ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xc8,0xfa,0x22,0xf4] 1761 1762 1763@------------------------------------------------------------------------------ 1764@ SMLABB/SMLABT/SMLATB/SMLATT 1765@------------------------------------------------------------------------------ 1766 smlabb r3, r1, r9, r0 1767 smlabt r5, r6, r4, r1 1768 smlatb r4, r2, r3, r2 1769 smlatt r8, r3, r8, r4 1770 itete gt 1771 smlabbgt r3, r1, r9, r0 1772 smlabtle r5, r6, r4, r1 1773 smlatbgt r4, r2, r3, r2 1774 smlattle r8, r3, r8, r4 1775 1776@ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03] 1777@ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15] 1778@ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24] 1779@ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48] 1780@ CHECK: itete gt @ encoding: [0xcb,0xbf] 1781@ CHECK: smlabbgt r3, r1, r9, r0 @ encoding: [0x11,0xfb,0x09,0x03] 1782@ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0x16,0xfb,0x14,0x15] 1783@ CHECK: smlatbgt r4, r2, r3, r2 @ encoding: [0x12,0xfb,0x23,0x24] 1784@ CHECK: smlattle r8, r3, r8, r4 @ encoding: [0x13,0xfb,0x38,0x48] 1785 1786 1787@------------------------------------------------------------------------------ 1788@ SMLAD/SMLADX 1789@------------------------------------------------------------------------------ 1790 smlad r2, r3, r5, r8 1791 smladx r2, r3, r5, r8 1792 itt hi 1793 smladhi r2, r3, r5, r8 1794 smladxhi r2, r3, r5, r8 1795 1796@ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82] 1797@ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82] 1798@ CHECK: itt hi @ encoding: [0x84,0xbf] 1799@ CHECK: smladhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x05,0x82] 1800@ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x23,0xfb,0x15,0x82] 1801 1802 1803@------------------------------------------------------------------------------ 1804@ SMLAL 1805@------------------------------------------------------------------------------ 1806 smlal r2, r3, r5, r8 1807 it eq 1808 smlaleq r2, r3, r5, r8 1809 1810@ CHECK: smlal r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23] 1811@ CHECK: it eq @ encoding: [0x08,0xbf] 1812@ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0x08,0x23] 1813 1814 1815@------------------------------------------------------------------------------ 1816@ SMLALBB/SMLALBT/SMLALTB/SMLALTT 1817@------------------------------------------------------------------------------ 1818 smlalbb r3, r1, r9, r0 1819 smlalbt r5, r6, r4, r1 1820 smlaltb r4, r2, r3, r2 1821 smlaltt r8, r3, r8, r4 1822 iteet ge 1823 smlalbbge r3, r1, r9, r0 1824 smlalbtlt r5, r6, r4, r1 1825 smlaltblt r4, r2, r3, r2 1826 smlalttge r8, r3, r8, r4 1827 1828@ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31] 1829@ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56] 1830@ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42] 1831@ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83] 1832@ CHECK: iteet ge @ encoding: [0xad,0xbf] 1833@ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0xc9,0xfb,0x80,0x31] 1834@ CHECK: smlalbtlt r5, r6, r4, r1 @ encoding: [0xc4,0xfb,0x91,0x56] 1835@ CHECK: smlaltblt r4, r2, r3, r2 @ encoding: [0xc3,0xfb,0xa2,0x42] 1836@ CHECK: smlalttge r8, r3, r8, r4 @ encoding: [0xc8,0xfb,0xb4,0x83] 1837 1838 1839@------------------------------------------------------------------------------ 1840@ SMLALD/SMLALDX 1841@------------------------------------------------------------------------------ 1842 smlald r2, r3, r5, r8 1843 smlaldx r2, r3, r5, r8 1844 ite eq 1845 smlaldeq r2, r3, r5, r8 1846 smlaldxne r2, r3, r5, r8 1847 1848@ CHECK: smlald r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23] 1849@ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23] 1850@ CHECK: ite eq @ encoding: [0x0c,0xbf] 1851@ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xc8,0x23] 1852@ CHECK: smlaldxne r2, r3, r5, r8 @ encoding: [0xc5,0xfb,0xd8,0x23] 1853 1854 1855@------------------------------------------------------------------------------ 1856@ SMLAWB/SMLAWT 1857@------------------------------------------------------------------------------ 1858 smlawb r2, r3, r10, r8 1859 smlawt r8, r3, r5, r9 1860 ite eq 1861 smlawbeq r2, r7, r5, r8 1862 smlawtne r1, r3, r0, r8 1863 1864@ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x33,0xfb,0x0a,0x82] 1865@ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0x33,0xfb,0x15,0x98] 1866@ CHECK: ite eq @ encoding: [0x0c,0xbf] 1867@ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x37,0xfb,0x05,0x82] 1868@ CHECK: smlawtne r1, r3, r0, r8 @ encoding: [0x33,0xfb,0x10,0x81] 1869 1870 1871@------------------------------------------------------------------------------ 1872@ SMLSD/SMLSDX 1873@------------------------------------------------------------------------------ 1874 smlsd r2, r3, r5, r8 1875 smlsdx r2, r3, r5, r8 1876 ite le 1877 smlsdle r2, r3, r5, r8 1878 smlsdxgt r2, r3, r5, r8 1879 1880@ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82] 1881@ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82] 1882@ CHECK: ite le @ encoding: [0xd4,0xbf] 1883@ CHECK: smlsdle r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x05,0x82] 1884@ CHECK: smlsdxgt r2, r3, r5, r8 @ encoding: [0x43,0xfb,0x15,0x82] 1885 1886 1887@------------------------------------------------------------------------------ 1888@ SMLSLD/SMLSLDX 1889@------------------------------------------------------------------------------ 1890 smlsld r2, r9, r5, r1 1891 smlsldx r4, r11, r2, r8 1892 ite ge 1893 smlsldge r8, r2, r5, r6 1894 smlsldxlt r1, r0, r3, r8 1895 1896@ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0xd5,0xfb,0xc1,0x29] 1897@ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b] 1898@ CHECK: ite ge @ encoding: [0xac,0xbf] 1899@ CHECK: smlsldge r8, r2, r5, r6 @ encoding: [0xd5,0xfb,0xc6,0x82] 1900@ CHECK: smlsldxlt r1, r0, r3, r8 @ encoding: [0xd3,0xfb,0xd8,0x10] 1901 1902 1903@------------------------------------------------------------------------------ 1904@ SMMLA/SMMLAR 1905@------------------------------------------------------------------------------ 1906 smmla r1, r2, r3, r4 1907 smmlar r4, r3, r2, r1 1908 ite lo 1909 smmlalo r1, r2, r3, r4 1910 smmlarcs r4, r3, r2, r1 1911 1912@ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41] 1913@ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14] 1914@ CHECK: ite lo @ encoding: [0x34,0xbf] 1915@ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x52,0xfb,0x03,0x41] 1916@ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x53,0xfb,0x12,0x14] 1917 1918 1919@------------------------------------------------------------------------------ 1920@ SMMLS/SMMLSR 1921@------------------------------------------------------------------------------ 1922 smmls r1, r2, r3, r4 1923 smmlsr r4, r3, r2, r1 1924 ite lo 1925 smmlslo r1, r2, r3, r4 1926 smmlsrcs r4, r3, r2, r1 1927 1928@ CHECK: smmls r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41] 1929@ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14] 1930@ CHECK: ite lo @ encoding: [0x34,0xbf] 1931@ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0x62,0xfb,0x03,0x41] 1932@ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0x63,0xfb,0x12,0x14] 1933 1934 1935@------------------------------------------------------------------------------ 1936@ SMMUL/SMMULR 1937@------------------------------------------------------------------------------ 1938 smmul r2, r3, r4 1939 smmulr r3, r2, r1 1940 ite cc 1941 smmulcc r2, r3, r4 1942 smmulrhs r3, r2, r1 1943 1944@ CHECK: smmul r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2] 1945@ CHECK: smmulr r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3] 1946@ CHECK: ite lo @ encoding: [0x34,0xbf] 1947@ CHECK: smmullo r2, r3, r4 @ encoding: [0x53,0xfb,0x04,0xf2] 1948@ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x52,0xfb,0x11,0xf3] 1949 1950 1951@------------------------------------------------------------------------------ 1952@ SMUAD/SMUADX 1953@------------------------------------------------------------------------------ 1954 smuad r2, r3, r4 1955 smuadx r3, r2, r1 1956 ite lt 1957 smuadlt r2, r3, r4 1958 smuadxge r3, r2, r1 1959 1960@ CHECK: smuad r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2] 1961@ CHECK: smuadx r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3] 1962@ CHECK: ite lt @ encoding: [0xb4,0xbf] 1963@ CHECK: smuadlt r2, r3, r4 @ encoding: [0x23,0xfb,0x04,0xf2] 1964@ CHECK: smuadxge r3, r2, r1 @ encoding: [0x22,0xfb,0x11,0xf3] 1965 1966 1967@------------------------------------------------------------------------------ 1968@ SMULBB/SMULBT/SMULTB/SMULTT 1969@------------------------------------------------------------------------------ 1970 smulbb r3, r9, r0 1971 smulbt r5, r4, r1 1972 smultb r4, r2, r2 1973 smultt r8, r3, r4 1974 itete ge 1975 smulbbge r1, r9, r0 1976 smulbtlt r5, r6, r4 1977 smultbge r2, r3, r2 1978 smulttlt r8, r3, r4 1979 1980@ CHECK: smulbb r3, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf3] 1981@ CHECK: smulbt r5, r4, r1 @ encoding: [0x14,0xfb,0x11,0xf5] 1982@ CHECK: smultb r4, r2, r2 @ encoding: [0x12,0xfb,0x22,0xf4] 1983@ CHECK: smultt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8] 1984@ CHECK: itete ge @ encoding: [0xab,0xbf] 1985@ CHECK: smulbbge r1, r9, r0 @ encoding: [0x19,0xfb,0x00,0xf1] 1986@ CHECK: smulbtlt r5, r6, r4 @ encoding: [0x16,0xfb,0x14,0xf5] 1987@ CHECK: smultbge r2, r3, r2 @ encoding: [0x13,0xfb,0x22,0xf2] 1988@ CHECK: smulttlt r8, r3, r4 @ encoding: [0x13,0xfb,0x34,0xf8] 1989 1990 1991@------------------------------------------------------------------------------ 1992@ SMULL 1993@------------------------------------------------------------------------------ 1994 smull r3, r9, r0, r1 1995 it eq 1996 smulleq r8, r3, r4, r5 1997 1998@ CHECK: smull r3, r9, r0, r1 @ encoding: [0x80,0xfb,0x01,0x39] 1999@ CHECK: it eq @ encoding: [0x08,0xbf] 2000@ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x84,0xfb,0x05,0x83] 2001 2002 2003@------------------------------------------------------------------------------ 2004@ SMULWB/SMULWT 2005@------------------------------------------------------------------------------ 2006 smulwb r3, r9, r0 2007 smulwt r3, r9, r2 2008 ite gt 2009 smulwbgt r3, r9, r0 2010 smulwtle r3, r9, r2 2011 2012@ CHECK: smulwb r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3] 2013@ CHECK: smulwt r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3] 2014@ CHECK: ite gt @ encoding: [0xcc,0xbf] 2015@ CHECK: smulwbgt r3, r9, r0 @ encoding: [0x39,0xfb,0x00,0xf3] 2016@ CHECK: smulwtle r3, r9, r2 @ encoding: [0x39,0xfb,0x12,0xf3] 2017 2018 2019@------------------------------------------------------------------------------ 2020@ SMUSD/SMUSDX 2021@------------------------------------------------------------------------------ 2022 smusd r3, r0, r1 2023 smusdx r3, r9, r2 2024 ite eq 2025 smusdeq r8, r3, r2 2026 smusdxne r7, r4, r3 2027 2028@ CHECK: smusd r3, r0, r1 @ encoding: [0x40,0xfb,0x01,0xf3] 2029@ CHECK: smusdx r3, r9, r2 @ encoding: [0x49,0xfb,0x12,0xf3] 2030@ CHECK: ite eq @ encoding: [0x0c,0xbf] 2031@ CHECK: smusdeq r8, r3, r2 @ encoding: [0x43,0xfb,0x02,0xf8] 2032@ CHECK: smusdxne r7, r4, r3 @ encoding: [0x44,0xfb,0x13,0xf7] 2033 2034 2035@------------------------------------------------------------------------------ 2036@ SRS 2037@------------------------------------------------------------------------------ 2038 srsdb sp, #1 2039 srsia sp, #0 2040 2041 srsdb sp!, #19 2042 srsia sp!, #2 2043 2044 srsea sp, #10 2045 srsfd sp, #9 2046 2047 srsea sp!, #5 2048 srsfd sp!, #5 2049 2050 srs sp, #5 2051 srs sp!, #5 2052 2053@ CHECK: srsdb sp, #1 @ encoding: [0x0d,0xe8,0x01,0xc0] 2054@ CHECK: srsia sp, #0 @ encoding: [0x8d,0xe9,0x00,0xc0] 2055@ CHECK: srsdb sp!, #19 @ encoding: [0x2d,0xe8,0x13,0xc0] 2056@ CHECK: srsia sp!, #2 @ encoding: [0xad,0xe9,0x02,0xc0] 2057@ CHECK: srsdb sp, #10 @ encoding: [0x0d,0xe8,0x0a,0xc0] 2058@ CHECK: srsia sp, #9 @ encoding: [0x8d,0xe9,0x09,0xc0] 2059@ CHECK: srsdb sp!, #5 @ encoding: [0x2d,0xe8,0x05,0xc0] 2060@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0] 2061@ CHECK: srsia sp, #5 @ encoding: [0x8d,0xe9,0x05,0xc0] 2062@ CHECK: srsia sp!, #5 @ encoding: [0xad,0xe9,0x05,0xc0] 2063 2064 2065@------------------------------------------------------------------------------ 2066@ SSAT 2067@------------------------------------------------------------------------------ 2068 ssat r8, #1, r10 2069 ssat r8, #1, r10, lsl #0 2070 ssat r8, #1, r10, lsl #31 2071 ssat r8, #1, r10, asr #32 2072 ssat r8, #1, r10, asr #1 2073 2074@ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08] 2075@ CHECK: ssat r8, #1, r10 @ encoding: [0x0a,0xf3,0x00,0x08] 2076@ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x0a,0xf3,0xc0,0x78] 2077@ CHECK: ssat r8, #1, r10, asr #32 @ encoding: [0x2a,0xf3,0x00,0x08] 2078@ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0x2a,0xf3,0x40,0x08] 2079 2080 2081@------------------------------------------------------------------------------ 2082@ SSAT16 2083@------------------------------------------------------------------------------ 2084 ssat16 r2, #1, r7 2085 ssat16 r3, #16, r5 2086 2087@ CHECK: ssat16 r2, #1, r7 @ encoding: [0x27,0xf3,0x00,0x02] 2088@ CHECK: ssat16 r3, #16, r5 @ encoding: [0x25,0xf3,0x0f,0x03] 2089 2090 2091@------------------------------------------------------------------------------ 2092@ SSAX 2093@------------------------------------------------------------------------------ 2094 ssubaddx r2, r3, r4 2095 it lt 2096 ssubaddxlt r2, r3, r4 2097 ssax r2, r3, r4 2098 it lt 2099 ssaxlt r2, r3, r4 2100 2101@ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2102@ CHECK: it lt @ encoding: [0xb8,0xbf] 2103@ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2104@ CHECK: ssax r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2105@ CHECK: it lt @ encoding: [0xb8,0xbf] 2106@ CHECK: ssaxlt r2, r3, r4 @ encoding: [0xe3,0xfa,0x04,0xf2] 2107 2108 2109@------------------------------------------------------------------------------ 2110@ SSUB16/SSUB8 2111@------------------------------------------------------------------------------ 2112 ssub16 r1, r0, r6 2113 ssub8 r9, r2, r4 2114 ite ne 2115 ssub16ne r5, r3, r2 2116 ssub8eq r5, r1, r2 2117 2118@ CHECK: ssub16 r1, r0, r6 @ encoding: [0xd0,0xfa,0x06,0xf1] 2119@ CHECK: ssub8 r9, r2, r4 @ encoding: [0xc2,0xfa,0x04,0xf9] 2120@ CHECK: ite ne @ encoding: [0x14,0xbf] 2121@ CHECK: ssub16ne r5, r3, r2 @ encoding: [0xd3,0xfa,0x02,0xf5] 2122@ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xc1,0xfa,0x02,0xf5] 2123 2124 2125@------------------------------------------------------------------------------ 2126@ STMIA 2127@------------------------------------------------------------------------------ 2128 stmia.w r4, {r4, r5, r8, r9} 2129 stmia.w r4, {r5, r6} 2130 stmia.w r5!, {r3, r8} 2131 stm.w r4, {r4, r5, r8, r9} 2132 stm.w r4, {r5, r6} 2133 stm.w r5!, {r3, r8} 2134 stm.w r5!, {r1, r2} 2135 stm.w r2, {r1, r2} 2136 2137 stmia r4, {r4, r5, r8, r9} 2138 stmia r4, {r5, r6} 2139 stmia r5!, {r3, r8} 2140 stm r4, {r4, r5, r8, r9} 2141 stm r4, {r5, r6} 2142 stm r5!, {r3, r8} 2143 stmea r5!, {r3, r8} 2144 2145@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2146@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2147@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2148@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2149@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2150@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2151@ CHECK: stm.w r5!, {r1, r2} @ encoding: [0xa5,0xe8,0x06,0x00] 2152@ CHECK: stm.w r2, {r1, r2} @ encoding: [0x82,0xe8,0x06,0x00] 2153 2154@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2155@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2156@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2157@ CHECK: stm.w r4, {r4, r5, r8, r9} @ encoding: [0x84,0xe8,0x30,0x03] 2158@ CHECK: stm.w r4, {r5, r6} @ encoding: [0x84,0xe8,0x60,0x00] 2159@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2160@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2161 2162 2163@------------------------------------------------------------------------------ 2164@ STMDB 2165@------------------------------------------------------------------------------ 2166 stmdb r4, {r4, r5, r8, r9} 2167 stmdb r4, {r5, r6} 2168 stmdb r5!, {r3, r8} 2169 stmea r5!, {r3, r8} 2170 2171@ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03] 2172@ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00] 2173@ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01] 2174@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01] 2175 2176 2177@------------------------------------------------------------------------------ 2178@ STR(immediate) 2179@------------------------------------------------------------------------------ 2180 str r5, [r5, #-4] 2181 str r5, [r6, #32] 2182 str r5, [r6, #33] 2183 str r5, [r6, #257] 2184 str.w pc, [r7, #257] 2185 str r2, [r4, #255]! 2186 str r8, [sp, #4]! 2187 str lr, [sp, #-4]! 2188 str r2, [r4], #255 2189 str r8, [sp], #4 2190 str lr, [sp], #-4 2191 2192@ CHECK: str r5, [r5, #-4] @ encoding: [0x45,0xf8,0x04,0x5c] 2193@ CHECK: str r5, [r6, #32] @ encoding: [0x35,0x62] 2194@ CHECK: str.w r5, [r6, #33] @ encoding: [0xc6,0xf8,0x21,0x50] 2195@ CHECK: str.w r5, [r6, #257] @ encoding: [0xc6,0xf8,0x01,0x51] 2196@ CHECK: str.w pc, [r7, #257] @ encoding: [0xc7,0xf8,0x01,0xf1] 2197@ CHECK: str r2, [r4, #255]! @ encoding: [0x44,0xf8,0xff,0x2f] 2198@ CHECK: str r8, [sp, #4]! @ encoding: [0x4d,0xf8,0x04,0x8f] 2199@ CHECK: str lr, [sp, #-4]! @ encoding: [0x4d,0xf8,0x04,0xed] 2200@ CHECK: str r2, [r4], #255 @ encoding: [0x44,0xf8,0xff,0x2b] 2201@ CHECK: str r8, [sp], #4 @ encoding: [0x4d,0xf8,0x04,0x8b] 2202@ CHECK: str lr, [sp], #-4 @ encoding: [0x4d,0xf8,0x04,0xe9] 2203 2204 2205@------------------------------------------------------------------------------ 2206@ STR(register) 2207@------------------------------------------------------------------------------ 2208 str r1, [r8, r1] 2209 str.w r4, [r5, r2] 2210 str r6, [r0, r2, lsl #3] 2211 str r8, [r8, r2, lsl #2] 2212 str r7, [sp, r2, lsl #1] 2213 str r7, [sp, r2, lsl #0] 2214 2215@ CHECK: str.w r1, [r8, r1] @ encoding: [0x48,0xf8,0x01,0x10] 2216@ CHECK: str.w r4, [r5, r2] @ encoding: [0x45,0xf8,0x02,0x40] 2217@ CHECK: str.w r6, [r0, r2, lsl #3] @ encoding: [0x40,0xf8,0x32,0x60] 2218@ CHECK: str.w r8, [r8, r2, lsl #2] @ encoding: [0x48,0xf8,0x22,0x80] 2219@ CHECK: str.w r7, [sp, r2, lsl #1] @ encoding: [0x4d,0xf8,0x12,0x70] 2220@ CHECK: str.w r7, [sp, r2] @ encoding: [0x4d,0xf8,0x02,0x70] 2221 2222 2223@------------------------------------------------------------------------------ 2224@ STRB(immediate) 2225@------------------------------------------------------------------------------ 2226 strb r5, [r5, #-4] 2227 strb r5, [r6, #32] 2228 strb r5, [r6, #33] 2229 strb r5, [r6, #257] 2230 strb.w lr, [r7, #257] 2231 strb r5, [r8, #255]! 2232 strb r2, [r5, #4]! 2233 strb r1, [r4, #-4]! 2234 strb lr, [r3], #255 2235 strb r9, [r2], #4 2236 strb r3, [sp], #-4 2237 2238@ CHECK: strb r5, [r5, #-4] @ encoding: [0x05,0xf8,0x04,0x5c] 2239@ CHECK: strb.w r5, [r6, #32] @ encoding: [0x86,0xf8,0x20,0x50] 2240@ CHECK: strb.w r5, [r6, #33] @ encoding: [0x86,0xf8,0x21,0x50] 2241@ CHECK: strb.w r5, [r6, #257] @ encoding: [0x86,0xf8,0x01,0x51] 2242@ CHECK: strb.w lr, [r7, #257] @ encoding: [0x87,0xf8,0x01,0xe1] 2243@ CHECK: strb r5, [r8, #255]! @ encoding: [0x08,0xf8,0xff,0x5f] 2244@ CHECK: strb r2, [r5, #4]! @ encoding: [0x05,0xf8,0x04,0x2f] 2245@ CHECK: strb r1, [r4, #-4]! @ encoding: [0x04,0xf8,0x04,0x1d] 2246@ CHECK: strb lr, [r3], #255 @ encoding: [0x03,0xf8,0xff,0xeb] 2247@ CHECK: strb r9, [r2], #4 @ encoding: [0x02,0xf8,0x04,0x9b] 2248@ CHECK: strb r3, [sp], #-4 @ encoding: [0x0d,0xf8,0x04,0x39] 2249 2250 2251@------------------------------------------------------------------------------ 2252@ STRB(register) 2253@------------------------------------------------------------------------------ 2254 strb r1, [r8, r1] 2255 strb.w r4, [r5, r2] 2256 strb r6, [r0, r2, lsl #3] 2257 strb r8, [r8, r2, lsl #2] 2258 strb r7, [sp, r2, lsl #1] 2259 strb r7, [sp, r2, lsl #0] 2260 2261@ CHECK: strb.w r1, [r8, r1] @ encoding: [0x08,0xf8,0x01,0x10] 2262@ CHECK: strb.w r4, [r5, r2] @ encoding: [0x05,0xf8,0x02,0x40] 2263@ CHECK: strb.w r6, [r0, r2, lsl #3] @ encoding: [0x00,0xf8,0x32,0x60] 2264@ CHECK: strb.w r8, [r8, r2, lsl #2] @ encoding: [0x08,0xf8,0x22,0x80] 2265@ CHECK: strb.w r7, [sp, r2, lsl #1] @ encoding: [0x0d,0xf8,0x12,0x70] 2266@ CHECK: strb.w r7, [sp, r2] @ encoding: [0x0d,0xf8,0x02,0x70] 2267 2268 2269@------------------------------------------------------------------------------ 2270@ STRBT 2271@------------------------------------------------------------------------------ 2272 strbt r1, [r2] 2273 strbt r1, [r8, #0] 2274 strbt r1, [r8, #3] 2275 strbt r1, [r8, #255] 2276 2277@ CHECK: strbt r1, [r2] @ encoding: [0x02,0xf8,0x00,0x1e] 2278@ CHECK: strbt r1, [r8] @ encoding: [0x08,0xf8,0x00,0x1e] 2279@ CHECK: strbt r1, [r8, #3] @ encoding: [0x08,0xf8,0x03,0x1e] 2280@ CHECK: strbt r1, [r8, #255] @ encoding: [0x08,0xf8,0xff,0x1e] 2281 2282 2283@------------------------------------------------------------------------------ 2284@ STRD 2285@------------------------------------------------------------------------------ 2286 strd r3, r5, [r6, #24] 2287 strd r3, r5, [r6, #24]! 2288 strd r3, r5, [r6], #4 2289 strd r3, r5, [r6], #-8 2290 strd r3, r5, [r6] 2291 strd r8, r1, [r3, #0] 2292 2293@ CHECK: strd r3, r5, [r6, #24] @ encoding: [0xc6,0xe9,0x06,0x35] 2294@ CHECK: strd r3, r5, [r6, #24]! @ encoding: [0xe6,0xe9,0x06,0x35] 2295@ CHECK: strd r3, r5, [r6], #4 @ encoding: [0xe6,0xe8,0x01,0x35] 2296@ CHECK: strd r3, r5, [r6], #-8 @ encoding: [0x66,0xe8,0x02,0x35] 2297@ CHECK: strd r3, r5, [r6] @ encoding: [0xc6,0xe9,0x00,0x35] 2298@ CHECK: strd r8, r1, [r3] @ encoding: [0xc3,0xe9,0x00,0x81] 2299 2300 2301@------------------------------------------------------------------------------ 2302@ STREX/STREXB/STREXH/STREXD 2303@------------------------------------------------------------------------------ 2304 strex r1, r8, [r4] 2305 strex r8, r2, [r4, #0] 2306 strex r2, r12, [sp, #128] 2307 strexb r5, r1, [r7] 2308 strexh r9, r7, [r12] 2309 strexd r9, r3, r6, [r4] 2310 2311@ CHECK: strex r1, r8, [r4] @ encoding: [0x44,0xe8,0x00,0x81] 2312@ CHECK: strex r8, r2, [r4] @ encoding: [0x44,0xe8,0x00,0x28] 2313@ CHECK: strex r2, r12, [sp, #128] @ encoding: [0x4d,0xe8,0x20,0xc2] 2314@ CHECK: strexb r5, r1, [r7] @ encoding: [0xc7,0xe8,0x45,0x1f] 2315@ CHECK: strexh r9, r7, [r12] @ encoding: [0xcc,0xe8,0x59,0x7f] 2316@ CHECK: strexd r9, r3, r6, [r4] @ encoding: [0xc4,0xe8,0x79,0x36] 2317 2318 2319@------------------------------------------------------------------------------ 2320@ STRH(immediate) 2321@------------------------------------------------------------------------------ 2322 strh r5, [r5, #-4] 2323 strh r5, [r6, #32] 2324 strh r5, [r6, #33] 2325 strh r5, [r6, #257] 2326 strh.w lr, [r7, #257] 2327 strh r5, [r8, #255]! 2328 strh r2, [r5, #4]! 2329 strh r1, [r4, #-4]! 2330 strh lr, [r3], #255 2331 strh r9, [r2], #4 2332 strh r3, [sp], #-4 2333 2334@ CHECK: strh r5, [r5, #-4] @ encoding: [0x25,0xf8,0x04,0x5c] 2335@ CHECK: strh r5, [r6, #32] @ encoding: [0x35,0x84] 2336@ CHECK: strh.w r5, [r6, #33] @ encoding: [0xa6,0xf8,0x21,0x50] 2337@ CHECK: strh.w r5, [r6, #257] @ encoding: [0xa6,0xf8,0x01,0x51] 2338@ CHECK: strh.w lr, [r7, #257] @ encoding: [0xa7,0xf8,0x01,0xe1] 2339@ CHECK: strh r5, [r8, #255]! @ encoding: [0x28,0xf8,0xff,0x5f] 2340@ CHECK: strh r2, [r5, #4]! @ encoding: [0x25,0xf8,0x04,0x2f] 2341@ CHECK: strh r1, [r4, #-4]! @ encoding: [0x24,0xf8,0x04,0x1d] 2342@ CHECK: strh lr, [r3], #255 @ encoding: [0x23,0xf8,0xff,0xeb] 2343@ CHECK: strh r9, [r2], #4 @ encoding: [0x22,0xf8,0x04,0x9b] 2344@ CHECK: strh r3, [sp], #-4 @ encoding: [0x2d,0xf8,0x04,0x39] 2345 2346 2347@------------------------------------------------------------------------------ 2348@ STRH(register) 2349@------------------------------------------------------------------------------ 2350 strh r1, [r8, r1] 2351 strh.w r4, [r5, r2] 2352 strh r6, [r0, r2, lsl #3] 2353 strh r8, [r8, r2, lsl #2] 2354 strh r7, [sp, r2, lsl #1] 2355 strh r7, [sp, r2, lsl #0] 2356 2357@ CHECK: strh.w r1, [r8, r1] @ encoding: [0x28,0xf8,0x01,0x10] 2358@ CHECK: strh.w r4, [r5, r2] @ encoding: [0x25,0xf8,0x02,0x40] 2359@ CHECK: strh.w r6, [r0, r2, lsl #3] @ encoding: [0x20,0xf8,0x32,0x60] 2360@ CHECK: strh.w r8, [r8, r2, lsl #2] @ encoding: [0x28,0xf8,0x22,0x80] 2361@ CHECK: strh.w r7, [sp, r2, lsl #1] @ encoding: [0x2d,0xf8,0x12,0x70] 2362@ CHECK: strh.w r7, [sp, r2] @ encoding: [0x2d,0xf8,0x02,0x70] 2363 2364 2365@------------------------------------------------------------------------------ 2366@ STRHT 2367@------------------------------------------------------------------------------ 2368 strht r1, [r2] 2369 strht r1, [r8, #0] 2370 strht r1, [r8, #3] 2371 strht r1, [r8, #255] 2372 2373@ CHECK: strht r1, [r2] @ encoding: [0x22,0xf8,0x00,0x1e] 2374@ CHECK: strht r1, [r8] @ encoding: [0x28,0xf8,0x00,0x1e] 2375@ CHECK: strht r1, [r8, #3] @ encoding: [0x28,0xf8,0x03,0x1e] 2376@ CHECK: strht r1, [r8, #255] @ encoding: [0x28,0xf8,0xff,0x1e] 2377 2378 2379@------------------------------------------------------------------------------ 2380@ STRT 2381@------------------------------------------------------------------------------ 2382 strt r1, [r2] 2383 strt r1, [r8, #0] 2384 strt r1, [r8, #3] 2385 strt r1, [r8, #255] 2386 2387@ CHECK: strt r1, [r2] @ encoding: [0x42,0xf8,0x00,0x1e] 2388@ CHECK: strt r1, [r8] @ encoding: [0x48,0xf8,0x00,0x1e] 2389@ CHECK: strt r1, [r8, #3] @ encoding: [0x48,0xf8,0x03,0x1e] 2390@ CHECK: strt r1, [r8, #255] @ encoding: [0x48,0xf8,0xff,0x1e] 2391 2392 2393@------------------------------------------------------------------------------ 2394@ SUB (immediate) 2395@------------------------------------------------------------------------------ 2396 itet eq 2397 subeq r1, r2, #4 2398 subwne r5, r3, #1023 2399 subeq r4, r5, #293 2400 sub r2, sp, #1024 2401 sub r2, r8, #0xff00 2402 sub r2, r3, #257 2403 subw r2, r3, #257 2404 sub r12, r6, #0x100 2405 subw r12, r6, #0x100 2406 subs r1, r2, #0x1f0 2407 2408@ CHECK: itet eq @ encoding: [0x0a,0xbf] 2409@ CHECK: subeq r1, r2, #4 @ encoding: [0x11,0x1f] 2410@ CHECK: subwne r5, r3, #1023 @ encoding: [0xa3,0xf2,0xff,0x35] 2411@ CHECK: subweq r4, r5, #293 @ encoding: [0xa5,0xf2,0x25,0x14] 2412@ CHECK: sub.w r2, sp, #1024 @ encoding: [0xad,0xf5,0x80,0x62] 2413@ CHECK: sub.w r2, r8, #65280 @ encoding: [0xa8,0xf5,0x7f,0x42] 2414@ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12] 2415@ CHECK: subw r2, r3, #257 @ encoding: [0xa3,0xf2,0x01,0x12] 2416@ CHECK: sub.w r12, r6, #256 @ encoding: [0xa6,0xf5,0x80,0x7c] 2417@ CHECK: subw r12, r6, #256 @ encoding: [0xa6,0xf2,0x00,0x1c] 2418@ CHECK: subs.w r1, r2, #496 @ encoding: [0xb2,0xf5,0xf8,0x71] 2419 2420 2421@------------------------------------------------------------------------------ 2422@ SUB (register) 2423@------------------------------------------------------------------------------ 2424 sub r4, r5, r6 2425 sub r4, r5, r6, lsl #5 2426 sub r4, r5, r6, lsr #5 2427 sub.w r4, r5, r6, lsr #5 2428 sub r4, r5, r6, asr #5 2429 sub r4, r5, r6, ror #5 2430 sub.w r5, r2, r12, rrx 2431 2432@ CHECK: sub.w r4, r5, r6 @ encoding: [0xa5,0xeb,0x06,0x04] 2433@ CHECK: sub.w r4, r5, r6, lsl #5 @ encoding: [0xa5,0xeb,0x46,0x14] 2434@ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14] 2435@ CHECK: sub.w r4, r5, r6, lsr #5 @ encoding: [0xa5,0xeb,0x56,0x14] 2436@ CHECK: sub.w r4, r5, r6, asr #5 @ encoding: [0xa5,0xeb,0x66,0x14] 2437@ CHECK: sub.w r4, r5, r6, ror #5 @ encoding: [0xa5,0xeb,0x76,0x14] 2438@ CHECK: sub.w r5, r2, r12, rrx @ encoding: [0xa2,0xeb,0x3c,0x05] 2439 2440 2441@------------------------------------------------------------------------------ 2442@ SVC 2443@------------------------------------------------------------------------------ 2444 svc #0 2445 ite eq 2446 svceq #255 2447 swine #33 2448 2449@ CHECK: svc #0 @ encoding: [0x00,0xdf] 2450@ CHECK: ite eq @ encoding: [0x0c,0xbf] 2451@ CHECK: svceq #255 @ encoding: [0xff,0xdf] 2452@ CHECK: svcne #33 @ encoding: [0x21,0xdf] 2453 2454 2455@------------------------------------------------------------------------------ 2456@ SXTAB 2457@------------------------------------------------------------------------------ 2458 sxtab r2, r3, r4 2459 sxtab r4, r5, r6, ror #0 2460 it lt 2461 sxtablt r6, r2, r9, ror #8 2462 sxtab r5, r1, r4, ror #16 2463 sxtab r7, r8, r3, ror #24 2464 2465@ CHECK: sxtab r2, r3, r4 @ encoding: [0x43,0xfa,0x84,0xf2] 2466@ CHECK: sxtab r4, r5, r6 @ encoding: [0x45,0xfa,0x86,0xf4] 2467@ CHECK: it lt @ encoding: [0xb8,0xbf] 2468@ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x42,0xfa,0x99,0xf6] 2469@ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x41,0xfa,0xa4,0xf5] 2470@ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x48,0xfa,0xb3,0xf7] 2471 2472 2473@------------------------------------------------------------------------------ 2474@ SXTAB16 2475@------------------------------------------------------------------------------ 2476 sxtab16 r6, r2, r7, ror #0 2477 sxtab16 r3, r5, r8, ror #8 2478 sxtab16 r3, r2, r1, ror #16 2479 ite ne 2480 sxtab16ne r0, r1, r4 2481 sxtab16eq r1, r2, r3, ror #24 2482 2483@ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x22,0xfa,0x87,0xf6] 2484@ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x25,0xfa,0x98,0xf3] 2485@ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x22,0xfa,0xa1,0xf3] 2486@ CHECK: ite ne @ encoding: [0x14,0xbf] 2487@ CHECK: sxtab16ne r0, r1, r4 @ encoding: [0x21,0xfa,0x84,0xf0] 2488@ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x22,0xfa,0xb3,0xf1] 2489 2490 2491@------------------------------------------------------------------------------ 2492@ SXTAH 2493@------------------------------------------------------------------------------ 2494 sxtah r1, r3, r9 2495 sxtah r3, r8, r3, ror #8 2496 sxtah r9, r3, r3, ror #24 2497 ite hi 2498 sxtahhi r6, r1, r6, ror #0 2499 sxtahls r2, r2, r4, ror #16 2500 2501@ CHECK: sxtah r1, r3, r9 @ encoding: [0x03,0xfa,0x89,0xf1] 2502@ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x08,0xfa,0x93,0xf3] 2503@ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x03,0xfa,0xb3,0xf9] 2504@ CHECK: ite hi @ encoding: [0x8c,0xbf] 2505@ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x01,0xfa,0x86,0xf6] 2506@ CHECK: sxtahls r2, r2, r4, ror #16 @ encoding: [0x02,0xfa,0xa4,0xf2] 2507 2508 2509@------------------------------------------------------------------------------ 2510@ SXTB 2511@------------------------------------------------------------------------------ 2512 sxtb r5, r6, ror #0 2513 sxtb r6, r9, ror #8 2514 sxtb r8, r3, ror #24 2515 ite ge 2516 sxtbge r2, r4 2517 sxtblt r5, r1, ror #16 2518 2519@ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2] 2520@ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6] 2521@ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8] 2522@ CHECK: ite ge @ encoding: [0xac,0xbf] 2523@ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2] 2524@ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5] 2525 2526 2527@------------------------------------------------------------------------------ 2528@ SXTB16 2529@------------------------------------------------------------------------------ 2530 sxtb16 r1, r4 2531 sxtb16 r6, r7, ror #0 2532 sxtb16 r3, r1, ror #16 2533 ite cs 2534 sxtb16cs r3, r5, ror #8 2535 sxtb16lo r2, r3, ror #24 2536 2537@ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1] 2538@ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6] 2539@ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3] 2540@ CHECK: ite hs @ encoding: [0x2c,0xbf] 2541@ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3] 2542@ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2] 2543 2544 2545@------------------------------------------------------------------------------ 2546@ SXTH 2547@------------------------------------------------------------------------------ 2548 sxth r1, r6, ror #0 2549 sxth r3, r8, ror #8 2550 sxth r9, r3, ror #24 2551 itt ne 2552 sxthne r3, r9 2553 sxthne r2, r2, ror #16 2554 2555@ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2] 2556@ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3] 2557@ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9] 2558@ CHECK: itt ne @ encoding: [0x1c,0xbf] 2559@ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3] 2560@ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2] 2561 2562 2563@------------------------------------------------------------------------------ 2564@ SXTB 2565@------------------------------------------------------------------------------ 2566 sxtb r5, r6, ror #0 2567 sxtb.w r6, r9, ror #8 2568 sxtb r8, r3, ror #24 2569 ite ge 2570 sxtbge r2, r4 2571 sxtblt r5, r1, ror #16 2572 2573@ CHECK: sxtb r5, r6 @ encoding: [0x75,0xb2] 2574@ CHECK: sxtb.w r6, r9, ror #8 @ encoding: [0x4f,0xfa,0x99,0xf6] 2575@ CHECK: sxtb.w r8, r3, ror #24 @ encoding: [0x4f,0xfa,0xb3,0xf8] 2576@ CHECK: ite ge @ encoding: [0xac,0xbf] 2577@ CHECK: sxtbge r2, r4 @ encoding: [0x62,0xb2] 2578@ CHECK: sxtblt.w r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5] 2579 2580 2581@------------------------------------------------------------------------------ 2582@ SXTB16 2583@------------------------------------------------------------------------------ 2584 sxtb16 r1, r4 2585 sxtb16 r6, r7, ror #0 2586 sxtb16 r3, r1, ror #16 2587 ite cs 2588 sxtb16cs r3, r5, ror #8 2589 sxtb16lo r2, r3, ror #24 2590 2591@ CHECK: sxtb16 r1, r4 @ encoding: [0x2f,0xfa,0x84,0xf1] 2592@ CHECK: sxtb16 r6, r7 @ encoding: [0x2f,0xfa,0x87,0xf6] 2593@ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x2f,0xfa,0xa1,0xf3] 2594@ CHECK: ite hs @ encoding: [0x2c,0xbf] 2595@ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x2f,0xfa,0x95,0xf3] 2596@ CHECK: sxtb16lo r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2] 2597 2598 2599@------------------------------------------------------------------------------ 2600@ SXTH 2601@------------------------------------------------------------------------------ 2602 sxth r1, r6, ror #0 2603 sxth.w r3, r8, ror #8 2604 sxth r9, r3, ror #24 2605 itt ne 2606 sxthne r3, r9 2607 sxthne r2, r2, ror #16 2608 2609@ CHECK: sxth r1, r6 @ encoding: [0x31,0xb2] 2610@ CHECK: sxth.w r3, r8, ror #8 @ encoding: [0x0f,0xfa,0x98,0xf3] 2611@ CHECK: sxth.w r9, r3, ror #24 @ encoding: [0x0f,0xfa,0xb3,0xf9] 2612@ CHECK: itt ne @ encoding: [0x1c,0xbf] 2613@ CHECK: sxthne.w r3, r9 @ encoding: [0x0f,0xfa,0x89,0xf3] 2614@ CHECK: sxthne.w r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2] 2615 2616 2617@------------------------------------------------------------------------------ 2618@ TBB/TBH 2619@------------------------------------------------------------------------------ 2620 tbb [r3, r8] 2621 tbh [r3, r8, lsl #1] 2622 it eq 2623 tbbeq [r3, r8] 2624 it cs 2625 tbhcs [r3, r8, lsl #1] 2626 2627@ CHECK: tbb [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0] 2628@ CHECK: tbh [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0] 2629@ CHECK: it eq @ encoding: [0x08,0xbf] 2630@ CHECK: tbbeq [r3, r8] @ encoding: [0xd3,0xe8,0x08,0xf0] 2631@ CHECK: it hs @ encoding: [0x28,0xbf] 2632@ CHECK: tbhhs [r3, r8, lsl #1] @ encoding: [0xd3,0xe8,0x18,0xf0] 2633 2634 2635@------------------------------------------------------------------------------ 2636@ TEQ 2637@------------------------------------------------------------------------------ 2638 teq r5, #0xf000 2639 teq r4, r5 2640 teq r4, r5, lsl #5 2641 teq r4, r5, lsr #5 2642 teq r4, r5, lsr #5 2643 teq r4, r5, asr #5 2644 teq r4, r5, ror #5 2645 2646@ CHECK: teq.w r5, #61440 @ encoding: [0x95,0xf4,0x70,0x4f] 2647@ CHECK: teq.w r4, r5 @ encoding: [0x94,0xea,0x05,0x0f] 2648@ CHECK: teq.w r4, r5, lsl #5 @ encoding: [0x94,0xea,0x45,0x1f] 2649@ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f] 2650@ CHECK: teq.w r4, r5, lsr #5 @ encoding: [0x94,0xea,0x55,0x1f] 2651@ CHECK: teq.w r4, r5, asr #5 @ encoding: [0x94,0xea,0x65,0x1f] 2652@ CHECK: teq.w r4, r5, ror #5 @ encoding: [0x94,0xea,0x75,0x1f] 2653 2654 2655@------------------------------------------------------------------------------ 2656@ TST 2657@------------------------------------------------------------------------------ 2658 tst r5, #0xf000 2659 tst r2, r5 2660 tst r3, r12, lsl #5 2661 tst r4, r11, lsr #4 2662 tst r5, r10, lsr #12 2663 tst r6, r9, asr #30 2664 tst r7, r8, ror #2 2665 2666@ CHECK: tst.w r5, #61440 @ encoding: [0x15,0xf4,0x70,0x4f] 2667@ CHECK: tst r2, r5 @ encoding: [0x2a,0x42] 2668@ CHECK: tst.w r3, r12, lsl #5 @ encoding: [0x13,0xea,0x4c,0x1f] 2669@ CHECK: tst.w r4, r11, lsr #4 @ encoding: [0x14,0xea,0x1b,0x1f] 2670@ CHECK: tst.w r5, r10, lsr #12 @ encoding: [0x15,0xea,0x1a,0x3f] 2671@ CHECK: tst.w r6, r9, asr #30 @ encoding: [0x16,0xea,0xa9,0x7f] 2672@ CHECK: tst.w r7, r8, ror #2 @ encoding: [0x17,0xea,0xb8,0x0f] 2673 2674 2675@------------------------------------------------------------------------------ 2676@ UADD16/UADD8 2677@------------------------------------------------------------------------------ 2678 uadd16 r1, r2, r3 2679 uadd8 r1, r2, r3 2680 ite gt 2681 uadd16gt r1, r2, r3 2682 uadd8le r1, r2, r3 2683 2684@ CHECK: uadd16 r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1] 2685@ CHECK: uadd8 r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1] 2686@ CHECK: ite gt @ encoding: [0xcc,0xbf] 2687@ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x92,0xfa,0x43,0xf1] 2688@ CHECK: uadd8le r1, r2, r3 @ encoding: [0x82,0xfa,0x43,0xf1] 2689