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