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