Home | History | Annotate | Download | only in ARM
      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