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