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