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