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