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 
    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