[llvm-commits] [llvm] r137495 - /llvm/trunk/test/MC/Disassembler/ARM/basic-arm-instructions.txt

Jim Grosbach grosbach at apple.com
Fri Aug 12 14:40:31 PDT 2011


Yay! If we can assemble it, we can disassemble it. Coolness.

On a stylistic note, I personally really prefer to have the CHECK lines come after the input lines for assembly tests. Not something I'll fight strongly about, but FWIW.

-Jim

On Aug 12, 2011, at 12:42 PM, Owen Anderson wrote:

> Author: resistor
> Date: Fri Aug 12 14:42:45 2011
> New Revision: 137495
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=137495&view=rev
> Log:
> Port over the basic ARM encodings test file to a decoding test file.  Greatly increases our test coverage of basic ARM-mode instructions.
> 
> Added:
>    llvm/trunk/test/MC/Disassembler/ARM/basic-arm-instructions.txt
> 
> Added: llvm/trunk/test/MC/Disassembler/ARM/basic-arm-instructions.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/ARM/basic-arm-instructions.txt?rev=137495&view=auto
> ==============================================================================
> --- llvm/trunk/test/MC/Disassembler/ARM/basic-arm-instructions.txt (added)
> +++ llvm/trunk/test/MC/Disassembler/ARM/basic-arm-instructions.txt Fri Aug 12 14:42:45 2011
> @@ -0,0 +1,2345 @@
> +# RUN: llvm-mc -triple=armv7-apple-darwin -disassemble < %s | FileCheck %s
> +
> +#------------------------------------------------------------------------------
> +# ADC (immediate)
> +#------------------------------------------------------------------------------
> +# CHECK: adc r1, r2, #15
> +# CHECK: adc r1, r2, #240
> +# CHECK: adc r1, r2, #3840
> +# CHECK: adc r1, r2, #61440
> +# CHECK: adc r1, r2, #983040
> +# CHECK: adc r1, r2, #15728640
> +# CHECK: adc r1, r2, #251658240
> +# CHECK: adc r1, r2, #4026531840
> +# CHECK: adc r1, r2, #4026531855
> +# CHECK: adcs r1, r2, #3840
> +# CHECK: adcseq r1, r2, #3840
> +# CHECK: adceq r1, r2, #3840
> +
> +0x0f 0x10 0xa2 0xe2
> +0xf0 0x10 0xa2 0xe2
> +0x0f 0x1c 0xa2 0xe2
> +0x0f 0x1a 0xa2 0xe2
> +0x0f 0x18 0xa2 0xe2
> +0x0f 0x16 0xa2 0xe2
> +0x0f 0x14 0xa2 0xe2
> +0x0f 0x12 0xa2 0xe2
> +0xff 0x12 0xa2 0xe2
> +
> +0x0f 0x1c 0xb2 0xe2
> +0x0f 0x1c 0xb2 0x02
> +0x0f 0x1c 0xa2 0x02
> +
> +#------------------------------------------------------------------------------
> +# ADC (register)
> +# ADC (shifted register)
> +#------------------------------------------------------------------------------
> +# CHECK: adc r4, r5, r6
> +
> +# CHECK: adc r4, r5, r6, lsl #1
> +# CHECK: adc r4, r5, r6, lsl #31
> +# CHECK: adc r4, r5, r6, lsr #1
> +# CHECK: adc r4, r5, r6, lsr #31
> +# CHECK: adc r4, r5, r6, lsr #32
> +# CHECK: adc r4, r5, r6, asr #1
> +# CHECK: adc r4, r5, r6, asr #31
> +# CHECK: adc r4, r5, r6, asr #32
> +# CHECK: adc r4, r5, r6, ror #1
> +# CHECK: adc r4, r5, r6, ror #31
> +
> +# CHECK: adc r6, r7, r8, lsl r9
> +# CHECK: adc r6, r7, r8, lsr r9
> +# CHECK: adc r6, r7, r8, asr r9
> +# CHECK: adc r6, r7, r8, ror r9
> +# CHECK: adc r4, r5, r6, rrx
> +
> +# CHECK: adc r5, r5, r6
> +# CHECK: adc r4, r4, r5, lsl #1
> +# CHECK: adc r4, r4, r5, lsl #31
> +# CHECK: adc r4, r4, r5, lsr #1
> +# CHECK: adc r4, r4, r5, lsr #31
> +# CHECK: adc r4, r4, r5, lsr #32
> +# CHECK: adc r4, r4, r5, asr #1
> +# CHECK: adc r4, r4, r5, asr #31
> +# CHECK: adc r4, r4, r5, asr #32
> +# CHECK: adc r4, r4, r5, ror #1
> +# CHECK: adc r4, r4, r5, ror #31
> +# CHECK: adc r4, r4, r5, rrx
> +# CHECK: adc r6, r6, r7, lsl r9
> +# CHECK: adc r6, r6, r7, lsr r9
> +# CHECK: adc r6, r6, r7, asr r9
> +# CHECK: adc r6, r6, r7, ror r9
> +# CHECK: adc r4, r4, r5, rrx
> +
> +0x06 0x40 0xa5 0xe0
> +
> +0x86 0x40 0xa5 0xe0
> +0x86 0x4f 0xa5 0xe0
> +0xa6 0x40 0xa5 0xe0
> +0xa6 0x4f 0xa5 0xe0
> +0x26 0x40 0xa5 0xe0
> +0xc6 0x40 0xa5 0xe0
> +0xc6 0x4f 0xa5 0xe0
> +0x46 0x40 0xa5 0xe0
> +0xe6 0x40 0xa5 0xe0
> +0xe6 0x4f 0xa5 0xe0
> +
> +0x18 0x69 0xa7 0xe0
> +0x38 0x69 0xa7 0xe0
> +0x58 0x69 0xa7 0xe0
> +0x78 0x69 0xa7 0xe0
> +0x66 0x40 0xa5 0xe0
> +
> +0x06 0x50 0xa5 0xe0
> +0x85 0x40 0xa4 0xe0
> +0x85 0x4f 0xa4 0xe0
> +0xa5 0x40 0xa4 0xe0
> +0xa5 0x4f 0xa4 0xe0
> +0x25 0x40 0xa4 0xe0
> +0xc5 0x40 0xa4 0xe0
> +0xc5 0x4f 0xa4 0xe0
> +0x45 0x40 0xa4 0xe0
> +0xe5 0x40 0xa4 0xe0
> +0xe5 0x4f 0xa4 0xe0
> +0x65 0x40 0xa4 0xe0
> +0x17 0x69 0xa6 0xe0
> +0x37 0x69 0xa6 0xe0
> +0x57 0x69 0xa6 0xe0
> +0x77 0x69 0xa6 0xe0
> +0x65 0x40 0xa4 0xe0
> +
> +#------------------------------------------------------------------------------
> +# ADD
> +#------------------------------------------------------------------------------
> +# CHECK: add r4, r5, #61440
> +# CHECK: add r4, r5, r6
> +# CHECK: add r4, r5, r6, lsl #5
> +# CHECK: add r4, r5, r6, lsr #5
> +# CHECK: add r4, r5, r6, lsr #5
> +# CHECK: add r4, r5, r6, asr #5
> +# CHECK: add r4, r5, r6, ror #5
> +# CHECK: add r6, r7, r8, lsl r9
> +# CHECK: add r6, r7, r8, lsr r9
> +# CHECK: add r6, r7, r8, asr r9
> +# CHECK: add r6, r7, r8, ror r9
> +# CHECK: add r4, r5, r6, rrx
> +
> +# CHECK: add r5, r5, #61440
> +# CHECK: add r4, r4, r5
> +# CHECK: add r4, r4, r5, lsl #5
> +# CHECK: add r4, r4, r5, lsr #5
> +# CHECK: add r4, r4, r5, lsr #5
> +# CHECK: add r4, r4, r5, asr #5
> +# CHECK: add r4, r4, r5, ror #5
> +# CHECK: add r6, r6, r7, lsl r9
> +# CHECK: add r6, r6, r7, lsr r9
> +# CHECK: add r6, r6, r7, asr r9
> +# CHECK: add r6, r6, r7, ror r9
> +# CHECK: add r4, r4, r5, rrx
> +
> +0x0f 0x4a 0x85 0xe2
> +0x06 0x40 0x85 0xe0
> +0x86 0x42 0x85 0xe0
> +0xa6 0x42 0x85 0xe0
> +0xa6 0x42 0x85 0xe0
> +0xc6 0x42 0x85 0xe0
> +0xe6 0x42 0x85 0xe0
> +0x18 0x69 0x87 0xe0
> +0x38 0x69 0x87 0xe0
> +0x58 0x69 0x87 0xe0
> +0x78 0x69 0x87 0xe0
> +0x66 0x40 0x85 0xe0
> +
> +
> +0x0f 0x5a 0x85 0xe2
> +0x05 0x40 0x84 0xe0
> +0x85 0x42 0x84 0xe0
> +0xa5 0x42 0x84 0xe0
> +0xa5 0x42 0x84 0xe0
> +0xc5 0x42 0x84 0xe0
> +0xe5 0x42 0x84 0xe0
> +0x17 0x69 0x86 0xe0
> +0x37 0x69 0x86 0xe0
> +0x57 0x69 0x86 0xe0
> +0x77 0x69 0x86 0xe0
> +0x65 0x40 0x84 0xe0
> +
> +
> +#------------------------------------------------------------------------------
> +# AND
> +#------------------------------------------------------------------------------
> +# CHECK: and r10, r1, #15
> +# CHECK: and r10, r1, r6
> +# CHECK: and r10, r1, r6, lsl #10
> +# CHECK: and r10, r1, r6, lsr #10
> +# CHECK: and r10, r1, r6, lsr #10
> +# CHECK: and r10, r1, r6, asr #10
> +# CHECK: and r10, r1, r6, ror #10
> +# CHECK: and r6, r7, r8, lsl r2
> +# CHECK: and r6, r7, r8, lsr r2
> +# CHECK: and r6, r7, r8, asr r2
> +# CHECK: and r6, r7, r8, ror r2
> +# CHECK: and r10, r1, r6, rrx
> +
> +# CHECK: and r1, r1, #15
> +# CHECK: and r10, r10, r1
> +# CHECK: and r10, r10, r1, lsl #10
> +# CHECK: and r10, r10, r1, lsr #10
> +# CHECK: and r10, r10, r1, lsr #10
> +# CHECK: and r10, r10, r1, asr #10
> +# CHECK: and r10, r10, r1, ror #10
> +# CHECK: and r6, r6, r7, lsl r2
> +# CHECK: and r6, r6, r7, lsr r2
> +# CHECK: and r6, r6, r7, asr r2
> +# CHECK: and r6, r6, r7, ror r2
> +# CHECK: and r10, r10, r1, rrx
> +
> +0x0f 0xa0 0x01 0xe2
> +0x06 0xa0 0x01 0xe0
> +0x06 0xa5 0x01 0xe0
> +0x26 0xa5 0x01 0xe0
> +0x26 0xa5 0x01 0xe0
> +0x46 0xa5 0x01 0xe0
> +0x66 0xa5 0x01 0xe0
> +0x18 0x62 0x07 0xe0
> +0x38 0x62 0x07 0xe0
> +0x58 0x62 0x07 0xe0
> +0x78 0x62 0x07 0xe0
> +0x66 0xa0 0x01 0xe0
> +
> +0x0f 0x10 0x01 0xe2
> +0x01 0xa0 0x0a 0xe0
> +0x01 0xa5 0x0a 0xe0
> +0x21 0xa5 0x0a 0xe0
> +0x21 0xa5 0x0a 0xe0
> +0x41 0xa5 0x0a 0xe0
> +0x61 0xa5 0x0a 0xe0
> +0x17 0x62 0x06 0xe0
> +0x37 0x62 0x06 0xe0
> +0x57 0x62 0x06 0xe0
> +0x77 0x62 0x06 0xe0
> +0x61 0xa0 0x0a 0xe0
> +
> +#------------------------------------------------------------------------------
> +# FIXME: ASR
> +#------------------------------------------------------------------------------
> +
> +#------------------------------------------------------------------------------
> +# BFC
> +#------------------------------------------------------------------------------
> +# CHECK: bfc r5, #3, #17
> +# CHECK: bfclo r5, #3, #17
> +
> +0x9f 0x51 0xd3 0xe7
> +0x9f 0x51 0xd3 0x37
> +
> +
> +#------------------------------------------------------------------------------
> +# BFI
> +#------------------------------------------------------------------------------
> +# CHECK: bfi r5, r2, #3, #17
> +# CHECK: bfine r5, r2, #3, #17
> +
> +0x92 0x51 0xd3 0xe7
> +0x92 0x51 0xd3 0x17
> +
> +
> +#------------------------------------------------------------------------------
> +# BIC
> +#------------------------------------------------------------------------------
> +# CHECK: bic r10, r1, #15
> +# CHECK: bic r10, r1, r6
> +# CHECK: bic r10, r1, r6, lsl #10
> +# CHECK: bic r10, r1, r6, lsr #10
> +# CHECK: bic r10, r1, r6, lsr #10
> +# CHECK: bic r10, r1, r6, asr #10
> +# CHECK: bic r10, r1, r6, ror #10
> +# CHECK: bic r6, r7, r8, lsl r2
> +# CHECK: bic r6, r7, r8, lsr r2
> +# CHECK: bic r6, r7, r8, asr r2
> +# CHECK: bic r6, r7, r8, ror r2
> +# CHECK: bic r10, r1, r6, rrx
> +
> +# CHECK: bic r1, r1, #15
> +# CHECK: bic r10, r10, r1
> +# CHECK: bic r10, r10, r1, lsl #10
> +# CHECK: bic r10, r10, r1, lsr #10
> +# CHECK: bic r10, r10, r1, lsr #10
> +# CHECK: bic r10, r10, r1, asr #10
> +# CHECK: bic r10, r10, r1, ror #10
> +# CHECK: bic r6, r6, r7, lsl r2
> +# CHECK: bic r6, r6, r7, lsr r2
> +# CHECK: bic r6, r6, r7, asr r2
> +# CHECK: bic r6, r6, r7, ror r2
> +# CHECK: bic r10, r10, r1, rrx
> +
> +0x0f 0xa0 0xc1 0xe3
> +0x06 0xa0 0xc1 0xe1
> +0x06 0xa5 0xc1 0xe1
> +0x26 0xa5 0xc1 0xe1
> +0x26 0xa5 0xc1 0xe1
> +0x46 0xa5 0xc1 0xe1
> +0x66 0xa5 0xc1 0xe1
> +0x18 0x62 0xc7 0xe1
> +0x38 0x62 0xc7 0xe1
> +0x58 0x62 0xc7 0xe1
> +0x78 0x62 0xc7 0xe1
> +0x66 0xa0 0xc1 0xe1
> +
> +
> +0x0f 0x10 0xc1 0xe3
> +0x01 0xa0 0xca 0xe1
> +0x01 0xa5 0xca 0xe1
> +0x21 0xa5 0xca 0xe1
> +0x21 0xa5 0xca 0xe1
> +0x41 0xa5 0xca 0xe1
> +0x61 0xa5 0xca 0xe1
> +0x17 0x62 0xc6 0xe1
> +0x37 0x62 0xc6 0xe1
> +0x57 0x62 0xc6 0xe1
> +0x77 0x62 0xc6 0xe1
> +0x61 0xa0 0xca 0xe1
> +
> +#------------------------------------------------------------------------------
> +# BKPT
> +#------------------------------------------------------------------------------
> +# CHECK: bkpt #10
> +# CHECK: bkpt #65535
> +
> +0x7a 0x00 0x20 0xe1
> +0x7f 0xff 0x2f 0xe1
> +
> +#------------------------------------------------------------------------------
> +# BLX (register)
> +#------------------------------------------------------------------------------
> +# CHECK: blx r2
> +# CHECK: blxne r2
> +
> +0x32 0xff 0x2f 0xe1
> +0x32 0xff 0x2f 0x11
> +
> +#------------------------------------------------------------------------------
> +# BX
> +#------------------------------------------------------------------------------
> +
> +# CHECK: bx r2
> +# CHECK: bxne r2
> +
> +0x12 0xff 0x2f 0xe1
> +0x12 0xff 0x2f 0x11
> +
> +#------------------------------------------------------------------------------
> +# BXJ
> +#------------------------------------------------------------------------------
> +
> +# CHECK: bxj r2
> +# CHECK: bxjne r2
> +
> +0x22 0xff 0x2f 0xe1
> +0x22 0xff 0x2f 0x11
> +
> +
> +#------------------------------------------------------------------------------
> +# CDP/CDP2
> +#------------------------------------------------------------------------------
> +# CHECK: cdp  p7, #1, c1, c1, c1, #4
> +# CHECK: cdp2  p7, #1, c1, c1, c1, #4
> +
> +0x81 0x17 0x11 0xee
> +0x81 0x17 0x11 0xfe
> +
> +
> +#------------------------------------------------------------------------------
> +# CLREX
> +#------------------------------------------------------------------------------
> +# CHECK: clrex
> +
> +0x1f 0xf0 0x7f 0xf5
> +
> +
> +#------------------------------------------------------------------------------
> +# CLZ
> +#------------------------------------------------------------------------------
> +# CHECK: clz r1, r2
> +# CHECK: clzeq r1, r2
> +
> +0x12 0x1f 0x6f 0xe1
> +0x12 0x1f 0x6f 0x01
> +
> +#------------------------------------------------------------------------------
> +# CMN
> +#------------------------------------------------------------------------------
> +# CHECK: cmn r1, #15
> +# CHECK: cmn r1, r6
> +# CHECK: cmn r1, r6, lsl #10
> +# CHECK: cmn r1, r6, lsr #10
> +# CHECK: cmn sp, r6, lsr #10
> +# CHECK: cmn r1, r6, asr #10
> +# CHECK: cmn r1, r6, ror #10
> +# CHECK: cmn r7, r8, lsl r2
> +# CHECK: cmn sp, r8, lsr r2
> +# CHECK: cmn r7, r8, asr r2
> +# CHECK: cmn r7, r8, ror r2
> +# CHECK: cmn r1, r6, rrx
> +
> +0x0f 0x00 0x71 0xe3
> +0x06 0x00 0x71 0xe1
> +0x06 0x05 0x71 0xe1
> +0x26 0x05 0x71 0xe1
> +0x26 0x05 0x7d 0xe1
> +0x46 0x05 0x71 0xe1
> +0x66 0x05 0x71 0xe1
> +0x18 0x02 0x77 0xe1
> +0x38 0x02 0x7d 0xe1
> +0x58 0x02 0x77 0xe1
> +0x78 0x02 0x77 0xe1
> +0x66 0x00 0x71 0xe1
> +
> +#------------------------------------------------------------------------------
> +# CMP
> +#------------------------------------------------------------------------------
> +# CHECK: cmp r1, #15
> +# CHECK: cmp r1, r6
> +# CHECK: cmp r1, r6, lsl #10
> +# CHECK: cmp r1, r6, lsr #10
> +# CHECK: cmp sp, r6, lsr #10
> +# CHECK: cmp r1, r6, asr #10
> +# CHECK: cmp r1, r6, ror #10
> +# CHECK: cmp r7, r8, lsl r2
> +# CHECK: cmp sp, r8, lsr r2
> +# CHECK: cmp r7, r8, asr r2
> +# CHECK: cmp r7, r8, ror r2
> +# CHECK: cmp r1, r6, rrx
> +
> +0x0f 0x00 0x51 0xe3
> +0x06 0x00 0x51 0xe1
> +0x06 0x05 0x51 0xe1
> +0x26 0x05 0x51 0xe1
> +0x26 0x05 0x5d 0xe1
> +0x46 0x05 0x51 0xe1
> +0x66 0x05 0x51 0xe1
> +0x18 0x02 0x57 0xe1
> +0x38 0x02 0x5d 0xe1
> +0x58 0x02 0x57 0xe1
> +0x78 0x02 0x57 0xe1
> +0x66 0x00 0x51 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# CPS
> +#------------------------------------------------------------------------------
> +# CHECK: cpsie  aif
> +# CHECK: cps  #15
> +# CHECK: cpsid  if, #10
> +
> +0xc0 0x01 0x08 0xf1
> +0x0f 0x00 0x02 0xf1
> +0xca 0x00 0x0e 0xf1
> +
> +
> +#------------------------------------------------------------------------------
> +# DBG
> +#------------------------------------------------------------------------------
> +# CHECK: dbg #0
> +# CHECK: dbg #5
> +# CHECK: dbg #15
> +
> +0xf0 0xf0 0x20 0xe3
> +0xf5 0xf0 0x20 0xe3
> +0xff 0xf0 0x20 0xe3
> +
> +
> +#------------------------------------------------------------------------------
> +# DMB
> +#------------------------------------------------------------------------------
> +# CHECK: dmb sy
> +# CHECK: dmb st
> +# CHECK: dmb ish
> +# CHECK: dmb ishst
> +# CHECK: dmb nsh
> +# CHECK: dmb nshst
> +# CHECK: dmb osh
> +# CHECK: dmb oshst
> +# CHECK: dmb
> +
> +0x5f 0xf0 0x7f 0xf5
> +0x5e 0xf0 0x7f 0xf5
> +0x5b 0xf0 0x7f 0xf5
> +0x5a 0xf0 0x7f 0xf5
> +0x57 0xf0 0x7f 0xf5
> +0x56 0xf0 0x7f 0xf5
> +0x53 0xf0 0x7f 0xf5
> +0x52 0xf0 0x7f 0xf5
> +0x5f 0xf0 0x7f 0xf5
> +
> +#------------------------------------------------------------------------------
> +# DSB
> +#------------------------------------------------------------------------------
> +# CHECK: dsb sy
> +# CHECK: dsb st
> +# CHECK: dsb ish
> +# CHECK: dsb ishst
> +# CHECK: dsb nsh
> +# CHECK: dsb nshst
> +# CHECK: dsb osh
> +# CHECK: dsb oshst
> +# CHECK: dsb
> +
> +0x4f 0xf0 0x7f 0xf5
> +0x4e 0xf0 0x7f 0xf5
> +0x4b 0xf0 0x7f 0xf5
> +0x4a 0xf0 0x7f 0xf5
> +0x47 0xf0 0x7f 0xf5
> +0x46 0xf0 0x7f 0xf5
> +0x43 0xf0 0x7f 0xf5
> +0x42 0xf0 0x7f 0xf5
> +0x4f 0xf0 0x7f 0xf5
> +
> +#------------------------------------------------------------------------------
> +# EOR
> +#------------------------------------------------------------------------------
> +# CHECK: eor r4, r5, #61440
> +# CHECK: eor r4, r5, r6
> +# CHECK: eor r4, r5, r6, lsl #5
> +# CHECK: eor r4, r5, r6, lsr #5
> +# CHECK: eor r4, r5, r6, lsr #5
> +# CHECK: eor r4, r5, r6, asr #5
> +# CHECK: eor r4, r5, r6, ror #5
> +# CHECK: eor r6, r7, r8, lsl r9
> +# CHECK: eor r6, r7, r8, lsr r9
> +# CHECK: eor r6, r7, r8, asr r9
> +# CHECK: eor r6, r7, r8, ror r9
> +# CHECK: eor r4, r5, r6, rrx
> +
> +# CHECK: eor r5, r5, #61440
> +# CHECK: eor r4, r4, r5
> +# CHECK: eor r4, r4, r5, lsl #5
> +# CHECK: eor r4, r4, r5, lsr #5
> +# CHECK: eor r4, r4, r5, lsr #5
> +# CHECK: eor r4, r4, r5, asr #5
> +# CHECK: eor r4, r4, r5, ror #5
> +# CHECK: eor r6, r6, r7, lsl r9
> +# CHECK: eor r6, r6, r7, lsr r9
> +# CHECK: eor r6, r6, r7, asr r9
> +# CHECK: eor r6, r6, r7, ror r9
> +# CHECK: eor r4, r4, r5, rrx
> +
> +0x0f 0x4a 0x25 0xe2
> +0x06 0x40 0x25 0xe0
> +0x86 0x42 0x25 0xe0
> +0xa6 0x42 0x25 0xe0
> +0xa6 0x42 0x25 0xe0
> +0xc6 0x42 0x25 0xe0
> +0xe6 0x42 0x25 0xe0
> +0x18 0x69 0x27 0xe0
> +0x38 0x69 0x27 0xe0
> +0x58 0x69 0x27 0xe0
> +0x78 0x69 0x27 0xe0
> +0x66 0x40 0x25 0xe0
> +
> +
> +0x0f 0x5a 0x25 0xe2
> +0x05 0x40 0x24 0xe0
> +0x85 0x42 0x24 0xe0
> +0xa5 0x42 0x24 0xe0
> +0xa5 0x42 0x24 0xe0
> +0xc5 0x42 0x24 0xe0
> +0xe5 0x42 0x24 0xe0
> +0x17 0x69 0x26 0xe0
> +0x37 0x69 0x26 0xe0
> +0x57 0x69 0x26 0xe0
> +0x77 0x69 0x26 0xe0
> +0x65 0x40 0x24 0xe0
> +
> +
> +#------------------------------------------------------------------------------
> +# ISB
> +#------------------------------------------------------------------------------
> +# CHECK: isb sy
> +
> +0x6f 0xf0 0x7f 0xf5
> +
> +
> +
> +#------------------------------------------------------------------------------
> +# LDM*
> +#------------------------------------------------------------------------------
> +# CHECK: ldm       r2, {r1, r3, r4, r5, r6, sp}
> +# CHECK: ldmib     r2, {r1, r3, r4, r5, r6, sp}
> +# CHECK: ldmda     r2, {r1, r3, r4, r5, r6, sp}
> +# CHECK: ldmdb     r2, {r1, r3, r4, r5, r6, sp}
> +
> +
> +# CHECK: ldm       r2!, {r1, r3, r4, r5, r6, sp}
> +# CHECK: ldmib     r2!, {r1, r3, r4, r5, r6, sp}
> +# CHECK: ldmda     r2!, {r1, r3, r4, r5, r6, sp}
> +# CHECK: ldmdb     r2!, {r1, r3, r4, r5, r6, sp}
> +
> +0x7a 0x20 0x92 0xe8
> +0x7a 0x20 0x92 0xe9
> +0x7a 0x20 0x12 0xe8
> +0x7a 0x20 0x12 0xe9
> +
> +0x7a 0x20 0xb2 0xe8
> +0x7a 0x20 0xb2 0xe9
> +0x7a 0x20 0x32 0xe8
> +0x7a 0x20 0x32 0xe9
> +
> +
> +#------------------------------------------------------------------------------
> +# LDREX/LDREXB/LDREXH/LDREXD
> +#------------------------------------------------------------------------------
> +# CHECK: ldrexb  r3, [r4]
> +# CHECK: ldrexh  r2, [r5]
> +# CHECK: ldrex  r1, [r7]
> +# CHECK: ldrexd  r6, r7, [r8]
> +
> +0x9f 0x3f 0xd4 0xe1
> +0x9f 0x2f 0xf5 0xe1
> +0x9f 0x1f 0x97 0xe1
> +0x9f 0x6f 0xb8 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# FIXME: LSL
> +#------------------------------------------------------------------------------
> +#------------------------------------------------------------------------------
> +# FIXME: LSR
> +#------------------------------------------------------------------------------
> +
> +#------------------------------------------------------------------------------
> +# MCR/MCR2
> +#------------------------------------------------------------------------------
> +# CHECK: mcr  p7, #1, r5, c1, c1, #4
> +# CHECK: mcr2  p7, #1, r5, c1, c1, #4
> +
> +0x91 0x57 0x21 0xee
> +0x91 0x57 0x21 0xfe
> +
> +#------------------------------------------------------------------------------
> +# MCRR/MCRR2
> +#------------------------------------------------------------------------------
> +# CHECK: mcrr  p7, #15, r5, r4, c1
> +# CHECK: mcrr2  p7, #15, r5, r4, c1
> +
> +0xf1 0x57 0x44 0xec
> +0xf1 0x57 0x44 0xfc
> +
> +
> +#------------------------------------------------------------------------------
> +# MLA
> +#------------------------------------------------------------------------------
> +# CHECK: mla  r1, r2, r3, r4
> +# CHECK: mlas r1, r2, r3, r4
> +# CHECK: mlane  r1, r2, r3, r4
> +# CHECK: mlasne r1, r2, r3, r4
> +
> +0x92 0x43 0x21 0xe0
> +0x92 0x43 0x31 0xe0
> +0x92 0x43 0x21 0x10
> +0x92 0x43 0x31 0x10
> +
> +#------------------------------------------------------------------------------
> +# MLS
> +#------------------------------------------------------------------------------
> +# CHECK: mls  r2, r5, r6, r3
> +# CHECK: mlsne  r2, r5, r6, r3
> +
> +0x95 0x36 0x62 0xe0
> +0x95 0x36 0x62 0x10
> +
> +#------------------------------------------------------------------------------
> +# MOV (immediate)
> +#------------------------------------------------------------------------------
> +# CHECK: mov r3, #7
> +# CHECK: mov r4, #4080
> +# CHECK: mov r5, #16711680
> +# CHECK: movw r6, #65535
> +# CHECK: movw r9, #65535
> +# CHECK: movs r3, #7
> +# CHECK: moveq r4, #4080
> +# CHECK: movseq r5, #16711680
> +
> +0x07 0x30 0xa0 0xe3
> +0xff 0x4e 0xa0 0xe3
> +0xff 0x58 0xa0 0xe3
> +0xff 0x6f 0x0f 0xe3
> +0xff 0x9f 0x0f 0xe3
> +0x07 0x30 0xb0 0xe3
> +0xff 0x4e 0xa0 0x03
> +0xff 0x58 0xb0 0x03
> +
> +#------------------------------------------------------------------------------
> +# MOV (register)
> +#------------------------------------------------------------------------------
> +# CHECK: mov r2, r3
> +# CHECK: movs r2, r3
> +# CHECK: moveq r2, r3
> +# CHECK: movseq r2, r3
> +
> +0x03 0x20 0xa0 0xe1
> +0x03 0x20 0xb0 0xe1
> +0x03 0x20 0xa0 0x01
> +0x03 0x20 0xb0 0x01
> +
> +#------------------------------------------------------------------------------
> +# MOVT
> +#------------------------------------------------------------------------------
> +# CHECK: movt r3, #7
> +# CHECK: movt r6, #65535
> +# CHECK: movteq r4, #4080
> +
> +0x07 0x30 0x40 0xe3
> +0xff 0x6f 0x4f 0xe3
> +0xf0 0x4f 0x40 0x03
> +
> +
> +#------------------------------------------------------------------------------
> +# MRC/MRC2
> +#------------------------------------------------------------------------------
> +# CHECK: mrc  p14, #0, r1, c1, c2, #4
> +# CHECK: mrc2  p14, #0, r1, c1, c2, #4
> +
> +0x92 0x1e 0x11 0xee
> +0x92 0x1e 0x11 0xfe
> +
> +#------------------------------------------------------------------------------
> +# MRRC/MRRC2
> +#------------------------------------------------------------------------------
> +# CHECK: mrrc  p7, #1, r5, r4, c1
> +# CHECK: mrrc2  p7, #1, r5, r4, c1
> +
> +0x11 0x57 0x54 0xec
> +0x11 0x57 0x54 0xfc
> +
> +
> +#------------------------------------------------------------------------------
> +# MRS
> +#------------------------------------------------------------------------------
> +# CHECK: mrs  r8, apsr
> +# CHECK: mrs  r8, spsr
> +0x00 0x80 0x0f 0xe1
> +0x00 0x80 0x4f 0xe1
> +
> +
> +
> +#------------------------------------------------------------------------------
> +# MSR
> +#------------------------------------------------------------------------------
> +
> +# CHECK: msr  CPSR_fc, #5
> +# CHECK: msr  APSR_g, #5
> +# CHECK: msr  APSR_nzcvq, #5
> +# CHECK: msr  APSR_nzcvq, #5
> +# CHECK: msr  APSR_nzcvqg, #5
> +# CHECK: msr  CPSR_fc, #5
> +# CHECK: msr  CPSR_c, #5
> +# CHECK: msr  CPSR_x, #5
> +# CHECK: msr  CPSR_fc, #5
> +# CHECK: msr  CPSR_fc, #5
> +# CHECK: msr  CPSR_fsx, #5
> +# CHECK: msr  SPSR_fc, #5
> +# CHECK: msr  SPSR_fsxc, #5
> +# CHECK: msr  CPSR_fsxc, #5
> +
> +0x05 0xf0 0x29 0xe3
> +0x05 0xf0 0x24 0xe3
> +0x05 0xf0 0x28 0xe3
> +0x05 0xf0 0x28 0xe3
> +0x05 0xf0 0x2c 0xe3
> +0x05 0xf0 0x29 0xe3
> +0x05 0xf0 0x21 0xe3
> +0x05 0xf0 0x22 0xe3
> +0x05 0xf0 0x29 0xe3
> +0x05 0xf0 0x29 0xe3
> +0x05 0xf0 0x2e 0xe3
> +0x05 0xf0 0x69 0xe3
> +0x05 0xf0 0x6f 0xe3
> +0x05 0xf0 0x2f 0xe3
> +
> +# CHECK: msr  CPSR_fc, r0
> +# CHECK: msr  APSR_g, r0
> +# CHECK: msr  APSR_nzcvq, r0
> +# CHECK: msr  APSR_nzcvq, r0
> +# CHECK: msr  APSR_nzcvqg, r0
> +# CHECK: msr  CPSR_fc, r0
> +# CHECK: msr  CPSR_c, r0
> +# CHECK: msr  CPSR_x, r0
> +# CHECK: msr  CPSR_fc, r0
> +# CHECK: msr  CPSR_fc, r0
> +# CHECK: msr  CPSR_fsx, r0
> +# CHECK: msr  SPSR_fc, r0
> +# CHECK: msr  SPSR_fsxc, r0
> +# CHECK: msr  CPSR_fsxc, r0
> +
> +0x00 0xf0 0x29 0xe1
> +0x00 0xf0 0x24 0xe1
> +0x00 0xf0 0x28 0xe1
> +0x00 0xf0 0x28 0xe1
> +0x00 0xf0 0x2c 0xe1
> +0x00 0xf0 0x29 0xe1
> +0x00 0xf0 0x21 0xe1
> +0x00 0xf0 0x22 0xe1
> +0x00 0xf0 0x29 0xe1
> +0x00 0xf0 0x29 0xe1
> +0x00 0xf0 0x2e 0xe1
> +0x00 0xf0 0x69 0xe1
> +0x00 0xf0 0x6f 0xe1
> +0x00 0xf0 0x2f 0xe1
> +
> +#------------------------------------------------------------------------------
> +# MUL
> +#------------------------------------------------------------------------------
> +
> +# CHECK: mul r5, r6, r7
> +# CHECK: muls r5, r6, r7
> +# CHECK: mulgt r5, r6, r7
> +# CHECK: mulsle r5, r6, r7
> +
> +0x96 0x07 0x05 0xe0
> +0x96 0x07 0x15 0xe0
> +0x96 0x07 0x05 0xc0
> +0x96 0x07 0x15 0xd0
> +
> +
> +#------------------------------------------------------------------------------
> +# MVN (immediate)
> +#------------------------------------------------------------------------------
> +# CHECK: mvn r3, #7
> +# CHECK: mvn r4, #4080
> +# CHECK: mvn r5, #16711680
> +# CHECK: mvns r3, #7
> +# CHECK: mvneq r4, #4080
> +# CHECK: mvnseq r5, #16711680
> +
> +0x07 0x30 0xe0 0xe3
> +0xff 0x4e 0xe0 0xe3
> +0xff 0x58 0xe0 0xe3
> +0x07 0x30 0xf0 0xe3
> +0xff 0x4e 0xe0 0x03
> +0xff 0x58 0xf0 0x03
> +
> +
> +#------------------------------------------------------------------------------
> +# MVN (register)
> +#------------------------------------------------------------------------------
> +# CHECK: mvn r2, r3
> +# CHECK: mvns r2, r3
> +# CHECK: mvn r5, r6, lsl #19
> +# CHECK: mvn r5, r6, lsr #9
> +# CHECK: mvn r5, r6, asr #4
> +# CHECK: mvn r5, r6, ror #6
> +# CHECK: mvn r5, r6, rrx
> +# CHECK: mvneq r2, r3
> +# CHECK: mvnseq r2, r3, lsl #10
> +
> +0x03 0x20 0xe0 0xe1
> +0x03 0x20 0xf0 0xe1
> +0x86 0x59 0xe0 0xe1
> +0xa6 0x54 0xe0 0xe1
> +0x46 0x52 0xe0 0xe1
> +0x66 0x53 0xe0 0xe1
> +0x66 0x50 0xe0 0xe1
> +0x03 0x20 0xe0 0x01
> +0x03 0x25 0xf0 0x01
> +
> +
> +#------------------------------------------------------------------------------
> +# MVN (shifted register)
> +#------------------------------------------------------------------------------
> +# CHECK: mvn r5, r6, lsl r7
> +# CHECK: mvns r5, r6, lsr r7
> +# CHECK: mvngt r5, r6, asr r7
> +# CHECK: mvnslt r5, r6, ror r7
> +
> +0x16 0x57 0xe0 0xe1
> +0x36 0x57 0xf0 0xe1
> +0x56 0x57 0xe0 0xc1
> +0x76 0x57 0xf0 0xb1
> +
> +#------------------------------------------------------------------------------
> +# NOP
> +#------------------------------------------------------------------------------
> +# CHECK: nop
> +# CHECK: nopgt
> +
> +0x00 0xf0 0x20 0xe3
> +0x00 0xf0 0x20 0xc3
> +
> +
> +#------------------------------------------------------------------------------
> +# ORR
> +#------------------------------------------------------------------------------
> +# CHECK: orr r4, r5, #61440
> +# CHECK: orr r4, r5, r6
> +# CHECK: orr r4, r5, r6, lsl #5
> +# CHECK: orr r4, r5, r6, lsr #5
> +# CHECK: orr r4, r5, r6, lsr #5
> +# CHECK: orr r4, r5, r6, asr #5
> +# CHECK: orr r4, r5, r6, ror #5
> +# CHECK: orr r6, r7, r8, lsl r9
> +# CHECK: orr r6, r7, r8, lsr r9
> +# CHECK: orr r6, r7, r8, asr r9
> +# CHECK: orr r6, r7, r8, ror r9
> +# CHECK: orr r4, r5, r6, rrx
> +
> +# CHECK: orr r5, r5, #61440
> +# CHECK: orr r4, r4, r5
> +# CHECK: orr r4, r4, r5, lsl #5
> +# CHECK: orr r4, r4, r5, lsr #5
> +# CHECK: orr r4, r4, r5, lsr #5
> +# CHECK: orr r4, r4, r5, asr #5
> +# CHECK: orr r4, r4, r5, ror #5
> +# CHECK: orr r6, r6, r7, lsl r9
> +# CHECK: orr r6, r6, r7, lsr r9
> +# CHECK: orr r6, r6, r7, asr r9
> +# CHECK: orr r6, r6, r7, ror r9
> +# CHECK: orr r4, r4, r5, rrx
> +
> +0x0f 0x4a 0x85 0xe3
> +0x06 0x40 0x85 0xe1
> +0x86 0x42 0x85 0xe1
> +0xa6 0x42 0x85 0xe1
> +0xa6 0x42 0x85 0xe1
> +0xc6 0x42 0x85 0xe1
> +0xe6 0x42 0x85 0xe1
> +0x18 0x69 0x87 0xe1
> +0x38 0x69 0x87 0xe1
> +0x58 0x69 0x87 0xe1
> +0x78 0x69 0x87 0xe1
> +0x66 0x40 0x85 0xe1
> +
> +0x0f 0x5a 0x85 0xe3
> +0x05 0x40 0x84 0xe1
> +0x85 0x42 0x84 0xe1
> +0xa5 0x42 0x84 0xe1
> +0xa5 0x42 0x84 0xe1
> +0xc5 0x42 0x84 0xe1
> +0xe5 0x42 0x84 0xe1
> +0x17 0x69 0x86 0xe1
> +0x37 0x69 0x86 0xe1
> +0x57 0x69 0x86 0xe1
> +0x77 0x69 0x86 0xe1
> +0x65 0x40 0x84 0xe1
> +
> +# CHECK: orrseq r4, r5, #61440
> +# CHECK: orrne r4, r5, r6
> +# CHECK: orrseq r4, r5, r6, lsl #5
> +# CHECK: orrlo r6, r7, r8, ror r9
> +# CHECK: orrshi r4, r5, r6, rrx
> +# CHECK: orrhs r5, r5, #61440
> +# CHECK: orrseq r4, r4, r5
> +# CHECK: orrne r6, r6, r7, asr r9
> +# CHECK: orrslt r6, r6, r7, ror r9
> +# CHECK: orrsgt r4, r4, r5, rrx
> +
> +0x0f 0x4a 0x95 0x03
> +0x06 0x40 0x85 0x11
> +0x86 0x42 0x95 0x01
> +0x78 0x69 0x87 0x31
> +0x66 0x40 0x95 0x81
> +0x0f 0x5a 0x85 0x23
> +0x05 0x40 0x94 0x01
> +0x57 0x69 0x86 0x11
> +0x77 0x69 0x96 0xb1
> +0x65 0x40 0x94 0xc1
> +
> +#------------------------------------------------------------------------------
> +# PKH
> +#------------------------------------------------------------------------------
> +# CHECK: pkhbt r2, r2, r3
> +# CHECK: pkhbt r2, r2, r3, lsl #31
> +# CHECK: pkhbt r2, r2, r3
> +# CHECK: pkhbt r2, r2, r3, lsl #15
> +
> +# CHECK: pkhbt r2, r2, r3
> +# CHECK: pkhtb r2, r2, r3, asr #31
> +# CHECK: pkhtb r2, r2, r3, asr #15
> +
> +0x13 0x20 0x82 0xe6
> +0x93 0x2f 0x82 0xe6
> +0x13 0x20 0x82 0xe6
> +0x93 0x27 0x82 0xe6
> +
> +0x13 0x20 0x82 0xe6
> +0xd3 0x2f 0x82 0xe6
> +0xd3 0x27 0x82 0xe6
> +
> +#------------------------------------------------------------------------------
> +# FIXME: PLD
> +#------------------------------------------------------------------------------
> +#------------------------------------------------------------------------------
> +# FIXME: PLI
> +#------------------------------------------------------------------------------
> +
> +
> +#------------------------------------------------------------------------------
> +# POP
> +#------------------------------------------------------------------------------
> +# CHECK: ldr r7, [sp], #4
> +# CHECK: pop {r7, r8, r9, r10}
> +
> +0x04 0x70 0x9d 0xe4
> +0x80 0x07 0xbd 0xe8
> +
> +
> +#------------------------------------------------------------------------------
> +# PUSH
> +#------------------------------------------------------------------------------
> +# CHECK: str r7, [sp, #-4]!
> +# CHECK: push {r7, r8, r9, r10}
> +
> +0x04 0x70 0x2d 0xe5
> +0x80 0x07 0x2d 0xe9
> +
> +
> +#------------------------------------------------------------------------------
> +# QADD/QADD16/QADD8
> +#------------------------------------------------------------------------------
> +# CHECK: qadd r1, r2, r3
> +# CHECK: qaddne r1, r2, r3
> +# CHECK: qadd16 r1, r2, r3
> +# CHECK: qadd16gt r1, r2, r3
> +# CHECK: qadd8 r1, r2, r3
> +# CHECK: qadd8le r1, r2, r3
> +
> +0x52 0x10 0x03 0xe1
> +0x52 0x10 0x03 0x11
> +0x13 0x1f 0x22 0xe6
> +0x13 0x1f 0x22 0xc6
> +0x93 0x1f 0x22 0xe6
> +0x93 0x1f 0x22 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# QDADD/QDSUB
> +#------------------------------------------------------------------------------
> +# CHECK: qdadd r6, r7, r8
> +# CHECK: qdaddhi r6, r7, r8
> +# CHECK: qdsub r6, r7, r8
> +# CHECK: qdsubhi r6, r7, r8
> +
> +0x57 0x60 0x48 0xe1
> +0x57 0x60 0x48 0x81
> +0x57 0x60 0x68 0xe1
> +0x57 0x60 0x68 0x81
> +
> +
> +#------------------------------------------------------------------------------
> +# QSAX
> +#------------------------------------------------------------------------------
> +# CHECK: qsax r9, r12, r0
> +# CHECK: qsaxeq r9, r12, r0
> +
> +0x50 0x9f 0x2c 0xe6
> +0x50 0x9f 0x2c 0x06
> +
> +
> +#------------------------------------------------------------------------------
> +# QSUB/QSUB16/QSUB8
> +#------------------------------------------------------------------------------
> +# CHECK: qsub r1, r2, r3
> +# CHECK: qsubne r1, r2, r3
> +# CHECK: qsub16 r1, r2, r3
> +# CHECK: qsub16gt r1, r2, r3
> +# CHECK: qsub8 r1, r2, r3
> +# CHECK: qsub8le r1, r2, r3
> +
> +0x52 0x10 0x23 0xe1
> +0x52 0x10 0x23 0x11
> +0x73 0x1f 0x22 0xe6
> +0x73 0x1f 0x22 0xc6
> +0xf3 0x1f 0x22 0xe6
> +0xf3 0x1f 0x22 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# RBIT
> +#------------------------------------------------------------------------------
> +# CHECK: rbit r1, r2
> +# CHECK: rbitne r1, r2
> +
> +0x32 0x1f 0xff 0xe6
> +0x32 0x1f 0xff 0x16
> +
> +
> +#------------------------------------------------------------------------------
> +# REV/REV16/REVSH
> +#------------------------------------------------------------------------------
> +# CHECK: rev r1, r9
> +# CHECK: revne r1, r5
> +# CHECK: rev16 r8, r3
> +# CHECK: rev16ne r12, r4
> +# CHECK: revsh r4, r9
> +# CHECK: revshne r9, r1
> +
> +0x39 0x1f 0xbf 0xe6
> +0x35 0x1f 0xbf 0x16
> +0xb3 0x8f 0xbf 0xe6
> +0xb4 0xcf 0xbf 0x16
> +0xb9 0x4f 0xff 0xe6
> +0xb1 0x9f 0xff 0x16
> +
> +
> +#------------------------------------------------------------------------------
> +# RFE
> +#------------------------------------------------------------------------------
> +# CHECK: rfeda r2
> +# CHECK: rfedb r3
> +# CHECK: rfeia r5
> +# CHECK: rfeib r6
> +
> +# CHECK: rfeda r4!
> +# CHECK: rfedb r7!
> +# CHECK: rfeia r9!
> +# CHECK: rfeib r8!
> +
> +# CHECK: rfeda r2
> +# CHECK: rfedb r3
> +# CHECK: rfeia r5
> +# CHECK: rfeib r6
> +
> +# CHECK: rfeda r4!
> +# CHECK: rfedb r7!
> +# CHECK: rfeia r9!
> +# CHECK: rfeib r8!
> +
> +# CHECK: rfeia r1
> +# CHECK: rfeia r1!
> +
> +0x00 0x0a 0x12 0xf8
> +0x00 0x0a 0x13 0xf9
> +0x00 0x0a 0x95 0xf8
> +0x00 0x0a 0x96 0xf9
> +
> +0x00 0x0a 0x34 0xf8
> +0x00 0x0a 0x37 0xf9
> +0x00 0x0a 0xb9 0xf8
> +0x00 0x0a 0xb8 0xf9
> +
> +0x00 0x0a 0x12 0xf8
> +0x00 0x0a 0x13 0xf9
> +0x00 0x0a 0x95 0xf8
> +0x00 0x0a 0x96 0xf9
> +
> +0x00 0x0a 0x34 0xf8
> +0x00 0x0a 0x37 0xf9
> +0x00 0x0a 0xb9 0xf8
> +0x00 0x0a 0xb8 0xf9
> +
> +0x00 0x0a 0x91 0xf8
> +0x00 0x0a 0xb1 0xf8
> +
> +
> +#------------------------------------------------------------------------------
> +# RSB
> +#------------------------------------------------------------------------------
> +# CHECK: rsb r4, r5, #61440
> +# CHECK: rsb r4, r5, r6
> +# CHECK: rsb r4, r5, r6, lsl #5
> +# CHECK: rsblo r4, r5, r6, lsr #5
> +# CHECK: rsb r4, r5, r6, lsr #5
> +# CHECK: rsb r4, r5, r6, asr #5
> +# CHECK: rsb r4, r5, r6, ror #5
> +# CHECK: rsb r6, r7, r8, lsl r9
> +# CHECK: rsb r6, r7, r8, lsr r9
> +# CHECK: rsb r6, r7, r8, asr r9
> +# CHECK: rsble r6, r7, r8, ror r9
> +# CHECK: rsb r4, r5, r6, rrx
> +
> +# CHECK: rsb r5, r5, #61440
> +# CHECK: rsb r4, r4, r5
> +# CHECK: rsb r4, r4, r5, lsl #5
> +# CHECK: rsb r4, r4, r5, lsr #5
> +# CHECK: rsbne r4, r4, r5, lsr #5
> +# CHECK: rsb r4, r4, r5, asr #5
> +# CHECK: rsb r4, r4, r5, ror #5
> +# CHECK: rsbgt r6, r6, r7, lsl r9
> +# CHECK: rsb r6, r6, r7, lsr r9
> +# CHECK: rsb r6, r6, r7, asr r9
> +# CHECK: rsb r6, r6, r7, ror r9
> +# CHECK: rsb r4, r4, r5, rrx
> +
> +0x0f 0x4a 0x65 0xe2
> +0x06 0x40 0x65 0xe0
> +0x86 0x42 0x65 0xe0
> +0xa6 0x42 0x65 0x30
> +0xa6 0x42 0x65 0xe0
> +0xc6 0x42 0x65 0xe0
> +0xe6 0x42 0x65 0xe0
> +0x18 0x69 0x67 0xe0
> +0x38 0x69 0x67 0xe0
> +0x58 0x69 0x67 0xe0
> +0x78 0x69 0x67 0xd0
> +0x66 0x40 0x65 0xe0
> +
> +0x0f 0x5a 0x65 0xe2
> +0x05 0x40 0x64 0xe0
> +0x85 0x42 0x64 0xe0
> +0xa5 0x42 0x64 0xe0
> +0xa5 0x42 0x64 0x10
> +0xc5 0x42 0x64 0xe0
> +0xe5 0x42 0x64 0xe0
> +0x17 0x69 0x66 0xc0
> +0x37 0x69 0x66 0xe0
> +0x57 0x69 0x66 0xe0
> +0x77 0x69 0x66 0xe0
> +0x65 0x40 0x64 0xe0
> +
> +#------------------------------------------------------------------------------
> +# RSC
> +#------------------------------------------------------------------------------
> +# CHECK: rsc r4, r5, #61440
> +# CHECK: rsc r4, r5, r6
> +# CHECK: rsc r4, r5, r6, lsl #5
> +# CHECK: rsclo r4, r5, r6, lsr #5
> +# CHECK: rsc r4, r5, r6, lsr #5
> +# CHECK: rsc r4, r5, r6, asr #5
> +# CHECK: rsc r4, r5, r6, ror #5
> +# CHECK: rsc r6, r7, r8, lsl r9
> +# CHECK: rsc r6, r7, r8, lsr r9
> +# CHECK: rsc r6, r7, r8, asr r9
> +# CHECK: rscle r6, r7, r8, ror r9
> +
> +# CHECK: rsc r5, r5, #61440
> +# CHECK: rsc r4, r4, r5
> +# CHECK: rsc r4, r4, r5, lsl #5
> +# CHECK: rsc r4, r4, r5, lsr #5
> +# CHECK: rscne r4, r4, r5, lsr #5
> +# CHECK: rsc r4, r4, r5, asr #5
> +# CHECK: rsc r4, r4, r5, ror #5
> +# CHECK: rscgt r6, r6, r7, lsl r9
> +# CHECK: rsc r6, r6, r7, lsr r9
> +# CHECK: rsc r6, r6, r7, asr r9
> +# CHECK: rsc r6, r6, r7, ror r9
> +
> +0x0f 0x4a 0xe5 0xe2
> +0x06 0x40 0xe5 0xe0
> +0x86 0x42 0xe5 0xe0
> +0xa6 0x42 0xe5 0x30
> +0xa6 0x42 0xe5 0xe0
> +0xc6 0x42 0xe5 0xe0
> +0xe6 0x42 0xe5 0xe0
> +0x18 0x69 0xe7 0xe0
> +0x38 0x69 0xe7 0xe0
> +0x58 0x69 0xe7 0xe0
> +0x78 0x69 0xe7 0xd0
> +
> +0x0f 0x5a 0xe5 0xe2
> +0x05 0x40 0xe4 0xe0
> +0x85 0x42 0xe4 0xe0
> +0xa5 0x42 0xe4 0xe0
> +0xa5 0x42 0xe4 0x10
> +0xc5 0x42 0xe4 0xe0
> +0xe5 0x42 0xe4 0xe0
> +0x17 0x69 0xe6 0xc0
> +0x37 0x69 0xe6 0xe0
> +0x57 0x69 0xe6 0xe0
> +0x77 0x69 0xe6 0xe0
> +
> +#------------------------------------------------------------------------------
> +# SADD16/SADD8
> +#------------------------------------------------------------------------------
> +# CHECK: sadd16 r1, r2, r3
> +# CHECK: sadd16gt r1, r2, r3
> +# CHECK: sadd8 r1, r2, r3
> +# CHECK: sadd8le r1, r2, r3
> +
> +0x13 0x1f 0x12 0xe6
> +0x13 0x1f 0x12 0xc6
> +0x93 0x1f 0x12 0xe6
> +0x93 0x1f 0x12 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# SASX
> +#------------------------------------------------------------------------------
> +# CHECK: sasx r9, r12, r0
> +# CHECK: sasxeq r9, r12, r0
> +
> +0x30 0x9f 0x1c 0xe6
> +0x30 0x9f 0x1c 0x06
> +
> +
> +#------------------------------------------------------------------------------
> +# SBC
> +#------------------------------------------------------------------------------
> +# CHECK: sbc r4, r5, #61440
> +# CHECK: sbc r4, r5, r6
> +# CHECK: sbc r4, r5, r6, lsl #5
> +# CHECK: sbc r4, r5, r6, lsr #5
> +# CHECK: sbc r4, r5, r6, lsr #5
> +# CHECK: sbc r4, r5, r6, asr #5
> +# CHECK: sbc r4, r5, r6, ror #5
> +# CHECK: sbc r6, r7, r8, lsl r9
> +# CHECK: sbc r6, r7, r8, lsr r9
> +# CHECK: sbc r6, r7, r8, asr r9
> +# CHECK: sbc r6, r7, r8, ror r9
> +
> +# CHECK: sbc r5, r5, #61440
> +# CHECK: sbc r4, r4, r5
> +# CHECK: sbc r4, r4, r5, lsl #5
> +# CHECK: sbc r4, r4, r5, lsr #5
> +# CHECK: sbc r4, r4, r5, lsr #5
> +# CHECK: sbc r4, r4, r5, asr #5
> +# CHECK: sbc r4, r4, r5, ror #5
> +# CHECK: sbc r6, r6, r7, lsl r9
> +# CHECK: sbc r6, r6, r7, lsr r9
> +# CHECK: sbc r6, r6, r7, asr r9
> +# CHECK: sbc r6, r6, r7, ror r9
> +
> +0x0f 0x4a 0xc5 0xe2
> +0x06 0x40 0xc5 0xe0
> +0x86 0x42 0xc5 0xe0
> +0xa6 0x42 0xc5 0xe0
> +0xa6 0x42 0xc5 0xe0
> +0xc6 0x42 0xc5 0xe0
> +0xe6 0x42 0xc5 0xe0
> +0x18 0x69 0xc7 0xe0
> +0x38 0x69 0xc7 0xe0
> +0x58 0x69 0xc7 0xe0
> +0x78 0x69 0xc7 0xe0
> +
> +0x0f 0x5a 0xc5 0xe2
> +0x05 0x40 0xc4 0xe0
> +0x85 0x42 0xc4 0xe0
> +0xa5 0x42 0xc4 0xe0
> +0xa5 0x42 0xc4 0xe0
> +0xc5 0x42 0xc4 0xe0
> +0xe5 0x42 0xc4 0xe0
> +0x17 0x69 0xc6 0xe0
> +0x37 0x69 0xc6 0xe0
> +0x57 0x69 0xc6 0xe0
> +0x77 0x69 0xc6 0xe0
> +
> +
> +#------------------------------------------------------------------------------
> +# SBFX
> +#------------------------------------------------------------------------------
> +# CHECK: sbfx r4, r5, #16, #1
> +# CHECK: sbfxgt r4, r5, #16, #16
> +
> +0x55 0x48 0xa0 0xe7
> +0x55 0x48 0xaf 0xc7
> +
> +
> +#------------------------------------------------------------------------------
> +# SEL
> +#------------------------------------------------------------------------------
> +# CHECK: sel r9, r2, r1
> +# CHECK: selne r9, r2, r1
> +
> +0xb1 0x9f 0x82 0xe6
> +0xb1 0x9f 0x82 0x16
> +
> +
> +#------------------------------------------------------------------------------
> +# SETEND
> +#------------------------------------------------------------------------------
> +# CHECK: setend be
> +# CHECK: setend le
> +
> +0x00 0x02 0x01 0xf1
> +0x00 0x00 0x01 0xf1
> +
> +#------------------------------------------------------------------------------
> +# SEV
> +#------------------------------------------------------------------------------
> +# CHECK: sev
> +# CHECK: seveq
> +
> +0x04 0xf0 0x20 0xe3
> +0x04 0xf0 0x20 0x03
> +
> +#------------------------------------------------------------------------------
> +# SHADD16/SHADD8
> +#------------------------------------------------------------------------------
> +# CHECK: shadd16 r4, r8, r2
> +# CHECK: shadd16gt r4, r8, r2
> +# CHECK: shadd8 r4, r8, r2
> +# CHECK: shadd8gt r4, r8, r2
> +
> +0x12 0x4f 0x38 0xe6
> +0x12 0x4f 0x38 0xc6
> +0x92 0x4f 0x38 0xe6
> +0x92 0x4f 0x38 0xc6
> +
> +
> +#------------------------------------------------------------------------------
> +# SHASX
> +#------------------------------------------------------------------------------
> +# CHECK: shasx r4, r8, r2
> +# CHECK: shasxgt r4, r8, r2
> +
> +0x32 0x4f 0x38 0xe6
> +0x32 0x4f 0x38 0xc6
> +
> +
> +#------------------------------------------------------------------------------
> +# SHSUB16/SHSUB8
> +#------------------------------------------------------------------------------
> +# CHECK: shsub16 r4, r8, r2
> +# CHECK: shsub16gt r4, r8, r2
> +# CHECK: shsub8 r4, r8, r2
> +# CHECK: shsub8gt r4, r8, r2
> +
> +0x72 0x4f 0x38 0xe6
> +0x72 0x4f 0x38 0xc6
> +0xf2 0x4f 0x38 0xe6
> +0xf2 0x4f 0x38 0xc6
> +
> +#------------------------------------------------------------------------------
> +# SMC
> +#------------------------------------------------------------------------------
> +# CHECK: smc #15
> +# CHECK: smceq #0
> +
> +0x7f 0x00 0x60 0xe1
> +0x70 0x00 0x60 0x01
> +
> +#------------------------------------------------------------------------------
> +# SMLABB/SMLABT/SMLATB/SMLATT
> +#------------------------------------------------------------------------------
> +# CHECK: smlabb r3, r1, r9, r0
> +# CHECK: smlabt r5, r6, r4, r1
> +# CHECK: smlatb r4, r2, r3, r2
> +# CHECK: smlatt r8, r3, r8, r4
> +# CHECK: smlabbge r3, r1, r9, r0
> +# CHECK: smlabtle r5, r6, r4, r1
> +# CHECK: smlatbne r4, r2, r3, r2
> +# CHECK: smlatteq r8, r3, r8, r4
> +
> +0x81 0x09 0x03 0xe1
> +0xc6 0x14 0x05 0xe1
> +0xa2 0x23 0x04 0xe1
> +0xe3 0x48 0x08 0xe1
> +0x81 0x09 0x03 0xa1
> +0xc6 0x14 0x05 0xd1
> +0xa2 0x23 0x04 0x11
> +0xe3 0x48 0x08 0x01
> +
> +#------------------------------------------------------------------------------
> +# SMLAD/SMLADX
> +#------------------------------------------------------------------------------
> +# CHECK: smlad r2, r3, r5, r8
> +# CHECK: smladx r2, r3, r5, r8
> +# CHECK: smladeq r2, r3, r5, r8
> +# CHECK: smladxhi r2, r3, r5, r8
> +
> +0x13 0x85 0x02 0xe7
> +0x33 0x85 0x02 0xe7
> +0x13 0x85 0x02 0x07
> +0x33 0x85 0x02 0x87
> +
> +
> +#------------------------------------------------------------------------------
> +# SMLAL
> +#------------------------------------------------------------------------------
> +# CHECK: smlal r2, r3, r5, r8
> +# CHECK: smlals r2, r3, r5, r8
> +# CHECK: smlaleq r2, r3, r5, r8
> +# CHECK: smlalshi r2, r3, r5, r8
> +
> +0x95 0x28 0xe3 0xe0
> +0x95 0x28 0xf3 0xe0
> +0x95 0x28 0xe3 0x00
> +0x95 0x28 0xf3 0x80
> +
> +
> +#------------------------------------------------------------------------------
> +# SMLALBB/SMLALBT/SMLALTB/SMLALTT
> +#------------------------------------------------------------------------------
> +# CHECK: smlalbb r3, r1, r9, r0
> +# CHECK: smlalbt r5, r6, r4, r1
> +# CHECK: smlaltb r4, r2, r3, r2
> +# CHECK: smlaltt r8, r3, r8, r4
> +# CHECK: smlalbbge r3, r1, r9, r0
> +# CHECK: smlalbtle r5, r6, r4, r1
> +# CHECK: smlaltbne r4, r2, r3, r2
> +# CHECK: smlaltteq r8, r3, r8, r4
> +
> +0x89 0x30 0x41 0xe1
> +0xc4 0x51 0x46 0xe1
> +0xa3 0x42 0x42 0xe1
> +0xe8 0x84 0x43 0xe1
> +0x89 0x30 0x41 0xa1
> +0xc4 0x51 0x46 0xd1
> +0xa3 0x42 0x42 0x11
> +0xe8 0x84 0x43 0x01
> +
> +
> +#------------------------------------------------------------------------------
> +# SMLALD/SMLALDX
> +#------------------------------------------------------------------------------
> +# CHECK: smlald r2, r3, r5, r8
> +# CHECK: smlaldx r2, r3, r5, r8
> +# CHECK: smlaldeq r2, r3, r5, r8
> +# CHECK: smlaldxhi r2, r3, r5, r8
> +
> +0x15 0x28 0x43 0xe7
> +0x35 0x28 0x43 0xe7
> +0x15 0x28 0x43 0x07
> +0x35 0x28 0x43 0x87
> +
> +
> +#------------------------------------------------------------------------------
> +# SMLAWB/SMLAWT
> +#------------------------------------------------------------------------------
> +# CHECK: smlawb r2, r3, r10, r8
> +# CHECK: smlawt r8, r3, r5, r9
> +# CHECK: smlawbeq r2, r7, r5, r8
> +# CHECK: smlawthi r1, r3, r0, r8
> +
> +0x83 0x8a 0x22 0xe1
> +0xc3 0x95 0x28 0xe1
> +0x87 0x85 0x22 0x01
> +0xc3 0x80 0x21 0x81
> +
> +
> +#------------------------------------------------------------------------------
> +# SMLSD/SMLSDX
> +#------------------------------------------------------------------------------
> +# CHECK: smlsd r2, r3, r5, r8
> +# CHECK: smlsdx r2, r3, r5, r8
> +# CHECK: smlsdeq r2, r3, r5, r8
> +# CHECK: smlsdxhi r2, r3, r5, r8
> +
> +0x53 0x85 0x02 0xe7
> +0x73 0x85 0x02 0xe7
> +0x53 0x85 0x02 0x07
> +0x73 0x85 0x02 0x87
> +
> +
> +#------------------------------------------------------------------------------
> +# SMLSLD/SMLSLDX
> +#------------------------------------------------------------------------------
> +# CHECK: smlsld r2, r9, r5, r1
> +# CHECK: smlsldx r4, r11, r2, r8
> +# CHECK: smlsldeq r8, r2, r5, r6
> +# CHECK: smlsldxhi r1, r0, r3, r8
> +
> +0x55 0x21 0x49 0xe7
> +0x72 0x48 0x4b 0xe7
> +0x55 0x86 0x42 0x07
> +0x73 0x18 0x40 0x87
> +
> +
> +#------------------------------------------------------------------------------
> +# SMMLA/SMMLAR
> +#------------------------------------------------------------------------------
> +# CHECK: smmla r1, r2, r3, r4
> +# CHECK: smmlar r4, r3, r2, r1
> +# CHECK: smmlalo r1, r2, r3, r4
> +# CHECK: smmlarhs r4, r3, r2, r1
> +
> +0x12 0x43 0x51 0xe7
> +0x33 0x12 0x54 0xe7
> +0x12 0x43 0x51 0x37
> +0x33 0x12 0x54 0x27
> +
> +
> +#------------------------------------------------------------------------------
> +# SMMLS/SMMLSR
> +#------------------------------------------------------------------------------
> +# CHECK: smmls r1, r2, r3, r4
> +# CHECK: smmlsr r4, r3, r2, r1
> +# CHECK: smmlslo r1, r2, r3, r4
> +# CHECK: smmlsrhs r4, r3, r2, r1
> +
> +0xd2 0x43 0x51 0xe7
> +0xf3 0x12 0x54 0xe7
> +0xd2 0x43 0x51 0x37
> +0xf3 0x12 0x54 0x27
> +
> +
> +#------------------------------------------------------------------------------
> +# SMMUL/SMMULR
> +#------------------------------------------------------------------------------
> +# CHECK: smmul r2, r3, r4
> +# CHECK: smmulr r3, r2, r1
> +# CHECK: smmullo r2, r3, r4
> +# CHECK: smmulrhs r3, r2, r1
> +
> +0x13 0xf4 0x52 0xe7
> +0x32 0xf1 0x53 0xe7
> +0x13 0xf4 0x52 0x37
> +0x32 0xf1 0x53 0x27
> +
> +
> +#------------------------------------------------------------------------------
> +# SMUAD/SMUADX
> +#------------------------------------------------------------------------------
> +# CHECK: smuad r2, r3, r4
> +# CHECK: smuadx r3, r2, r1
> +# CHECK: smuadlt r2, r3, r4
> +# CHECK: smuadxge r3, r2, r1
> +
> +0x13 0xf4 0x02 0xe7
> +0x32 0xf1 0x03 0xe7
> +0x13 0xf4 0x02 0xb7
> +0x32 0xf1 0x03 0xa7
> +
> +
> +#------------------------------------------------------------------------------
> +# SMULBB/SMLALBT/SMLALTB/SMLALTT
> +#------------------------------------------------------------------------------
> +# CHECK: smulbb r3, r9, r0
> +# CHECK: smulbt r5, r4, r1
> +# CHECK: smultb r4, r2, r2
> +# CHECK: smultt r8, r3, r4
> +# CHECK: smulbbge r1, r9, r0
> +# CHECK: smulbtle r5, r6, r4
> +# CHECK: smultbne r2, r3, r2
> +# CHECK: smultteq r8, r3, r4
> +
> +0x89 0x00 0x63 0xe1
> +0xc4 0x01 0x65 0xe1
> +0xa2 0x02 0x64 0xe1
> +0xe3 0x04 0x68 0xe1
> +0x89 0x00 0x61 0xa1
> +0xc6 0x04 0x65 0xd1
> +0xa3 0x02 0x62 0x11
> +0xe3 0x04 0x68 0x01
> +
> +
> +#------------------------------------------------------------------------------
> +# SMULL
> +#------------------------------------------------------------------------------
> +# CHECK: smull r3, r9, r0, r1
> +# CHECK: smulls r3, r9, r0, r2
> +# CHECK: smulleq r8, r3, r4, r5
> +# CHECK: smullseq r8, r3, r4, r3
> +
> +0x90 0x31 0xc9 0xe0
> +0x90 0x32 0xd9 0xe0
> +0x94 0x85 0xc3 0x00
> +0x94 0x83 0xd3 0x00
> +
> +
> +#------------------------------------------------------------------------------
> +# SMULWB/SMULWT
> +#------------------------------------------------------------------------------
> +# CHECK: smulwb r3, r9, r0
> +# CHECK: smulwt r3, r9, r2
> +
> +0xa9 0x00 0x23 0xe1
> +0xe9 0x02 0x23 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# SMUSD/SMUSDX
> +#------------------------------------------------------------------------------
> +# CHECK: smusd r3, r0, r1
> +# CHECK: smusdx r3, r9, r2
> +# CHECK: smusdeq r8, r3, r2
> +# CHECK: smusdxne r7, r4, r3
> +
> +0x50 0xf1 0x03 0xe7
> +0x79 0xf2 0x03 0xe7
> +0x53 0xf2 0x08 0x07
> +0x74 0xf3 0x07 0x17
> +
> +
> +#------------------------------------------------------------------------------
> +# SRS
> +#------------------------------------------------------------------------------
> +# CHECK: srsda sp, #5
> +# CHECK: srsdb sp, #1
> +# CHECK: srsia sp, #0
> +# CHECK: srsib sp, #15
> +
> +# CHECK: srsda sp!, #31
> +# CHECK: srsdb sp!, #19
> +# CHECK: srsia sp!, #2
> +# CHECK: srsib sp!, #14
> +
> +# CHECK: srsda sp, #11
> +# CHECK: srsdb sp, #10
> +# CHECK: srsia sp, #9
> +# CHECK: srsib sp, #5
> +
> +# CHECK: srsda sp!, #5
> +# CHECK: srsdb sp!, #5
> +# CHECK: srsia sp!, #5
> +# CHECK: srsib sp!, #5
> +
> +# CHECK: srsia sp, #5
> +# CHECK: srsia sp!, #5
> +
> +0x05 0x05 0x4d 0xf8
> +0x01 0x05 0x4d 0xf9
> +0x00 0x05 0xcd 0xf8
> +0x0f 0x05 0xcd 0xf9
> +
> +0x1f 0x05 0x6d 0xf8
> +0x13 0x05 0x6d 0xf9
> +0x02 0x05 0xed 0xf8
> +0x0e 0x05 0xed 0xf9
> +
> +0x0b 0x05 0x4d 0xf8
> +0x0a 0x05 0x4d 0xf9
> +0x09 0x05 0xcd 0xf8
> +0x05 0x05 0xcd 0xf9
> +
> +0x05 0x05 0x6d 0xf8
> +0x05 0x05 0x6d 0xf9
> +0x05 0x05 0xed 0xf8
> +0x05 0x05 0xed 0xf9
> +
> +0x05 0x05 0xcd 0xf8
> +0x05 0x05 0xed 0xf8
> +
> +
> +#------------------------------------------------------------------------------
> +# SSAT
> +#------------------------------------------------------------------------------
> +# CHECK: ssat	r8, #1, r10
> +# CHECK: ssat	r8, #1, r10, lsl #31
> +# CHECK: ssat	r8, #1, r10, asr #32
> +# CHECK: ssat	r8, #1, r10, asr #1
> +
> +0x1a 0x80 0xa0 0xe6
> +0x9a 0x8f 0xa0 0xe6
> +0x5a 0x80 0xa0 0xe6
> +0xda 0x80 0xa0 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# SSAT16
> +#------------------------------------------------------------------------------
> +# CHECK: ssat16	r2, #1, r7
> +# CHECK: ssat16	r3, #16, r5
> +
> +0x37 0x2f 0xa0 0xe6
> +0x35 0x3f 0xaf 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# SSAX
> +#------------------------------------------------------------------------------
> +# CHECK: ssax r2, r3, r4
> +# CHECK: ssaxlt r2, r3, r4
> +
> +0x54 0x2f 0x13 0xe6
> +0x54 0x2f 0x13 0xb6
> +
> +#------------------------------------------------------------------------------
> +# SSUB16/SSUB8
> +#------------------------------------------------------------------------------
> +# CHECK: ssub16 r1, r0, r6
> +# CHECK: ssub16ne r5, r3, r2
> +# CHECK: ssub8 r9, r2, r4
> +# CHECK: ssub8eq r5, r1, r2
> +
> +0x76 0x1f 0x10 0xe6
> +0x72 0x5f 0x13 0x16
> +0xf4 0x9f 0x12 0xe6
> +0xf2 0x5f 0x11 0x06
> +
> +
> +#------------------------------------------------------------------------------
> +# STM*
> +#------------------------------------------------------------------------------
> +# CHECK: stm r2, {r1, r3, r4, r5, r6, sp}
> +# CHECK: stm r3, {r1, r3, r4, r5, r6, lr}
> +# CHECK: stmib     r4, {r1, r3, r4, r5, r6, sp}
> +# CHECK: stmda     r5, {r1, r3, r4, r5, r6, sp}
> +# CHECK: stmdb     r6, {r1, r3, r4, r5, r6, r8}
> +# CHECK: stmdb     sp, {r1, r3, r4, r5, r6, sp}
> +
> +
> +# CHECK: stm       r8!, {r1, r3, r4, r5, r6, sp}
> +# CHECK: stmib     r9!, {r1, r3, r4, r5, r6, sp}
> +# CHECK: stmda     sp!, {r1, r3, r4, r5, r6}
> +# CHECK: stmdb     r0!, {r1, r5, r7, sp}
> +
> +0x7a 0x20 0x82 0xe8
> +0x7a 0x40 0x83 0xe8
> +0x7a 0x20 0x84 0xe9
> +0x7a 0x20 0x05 0xe8
> +0x7a 0x01 0x06 0xe9
> +0x7a 0x20 0x0d 0xe9
> +
> +0x7a 0x20 0xa8 0xe8
> +0x7a 0x20 0xa9 0xe9
> +0x7a 0x00 0x2d 0xe8
> +0xa2 0x20 0x20 0xe9
> +
> +
> +#------------------------------------------------------------------------------
> +# STREX/STREXB/STREXH/STREXD
> +#------------------------------------------------------------------------------
> +# CHECK: strexb  r1, r3, [r4
> +# CHECK: strexh  r4, r2, [r5
> +# CHECK: strex  r2, r1, [r7
> +# CHECK: strexd  r6, r2, r3, [r8
> +
> +0x93 0x1f 0xc4 0xe1
> +0x92 0x4f 0xe5 0xe1
> +0x91 0x2f 0x87 0xe1
> +0x92 0x6f 0xa8 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# SUB
> +#------------------------------------------------------------------------------
> +# CHECK: sub r4, r5, #61440
> +# CHECK: sub r4, r5, r6
> +# CHECK: sub r4, r5, r6, lsl #5
> +# CHECK: sub r4, r5, r6, lsr #5
> +# CHECK: sub r4, r5, r6, lsr #5
> +# CHECK: sub r4, r5, r6, asr #5
> +# CHECK: sub r4, r5, r6, ror #5
> +# CHECK: sub r6, r7, r8, lsl r9
> +# CHECK: sub r6, r7, r8, lsr r9
> +# CHECK: sub r6, r7, r8, asr r9
> +# CHECK: sub r6, r7, r8, ror r9
> +
> +# CHECK: sub r5, r5, #61440
> +# CHECK: sub r4, r4, r5
> +# CHECK: sub r4, r4, r5, lsl #5
> +# CHECK: sub r4, r4, r5, lsr #5
> +# CHECK: sub r4, r4, r5, lsr #5
> +# CHECK: sub r4, r4, r5, asr #5
> +# CHECK: sub r4, r4, r5, ror #5
> +# CHECK: sub r6, r6, r7, lsl r9
> +# CHECK: sub r6, r6, r7, lsr r9
> +# CHECK: sub r6, r6, r7, asr r9
> +# CHECK: sub r6, r6, r7, ror r9
> +
> +0x0f 0x4a 0x45 0xe2
> +0x06 0x40 0x45 0xe0
> +0x86 0x42 0x45 0xe0
> +0xa6 0x42 0x45 0xe0
> +0xa6 0x42 0x45 0xe0
> +0xc6 0x42 0x45 0xe0
> +0xe6 0x42 0x45 0xe0
> +0x18 0x69 0x47 0xe0
> +0x38 0x69 0x47 0xe0
> +0x58 0x69 0x47 0xe0
> +0x78 0x69 0x47 0xe0
> +
> +
> +0x0f 0x5a 0x45 0xe2
> +0x05 0x40 0x44 0xe0
> +0x85 0x42 0x44 0xe0
> +0xa5 0x42 0x44 0xe0
> +0xa5 0x42 0x44 0xe0
> +0xc5 0x42 0x44 0xe0
> +0xe5 0x42 0x44 0xe0
> +0x17 0x69 0x46 0xe0
> +0x37 0x69 0x46 0xe0
> +0x57 0x69 0x46 0xe0
> +0x77 0x69 0x46 0xe0
> +
> +
> +#------------------------------------------------------------------------------
> +# SVC
> +#------------------------------------------------------------------------------
> +# CHECK: svc #16
> +# CHECK: svc #0
> +# CHECK: svc #16777215
> +
> +0x10 0x00 0x00 0xef
> +0x00 0x00 0x00 0xef
> +0xff 0xff 0xff 0xef
> +
> +
> +#------------------------------------------------------------------------------
> +# SWP/SWPB
> +#------------------------------------------------------------------------------
> +# CHECK: swp r1, r2, [r3
> +# CHECK: swp r4, r4, [r6
> +# CHECK: swpb r5, r1, [r9
> +
> +0x92 0x10 0x03 0xe1
> +0x94 0x40 0x06 0xe1
> +0x91 0x50 0x49 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# SXTAB
> +#------------------------------------------------------------------------------
> +# CHECK: sxtab r2, r3, r4
> +# CHECK: sxtab r4, r5, r6
> +# CHECK: sxtablt r6, r2, r9, ror #8
> +# CHECK: sxtab r5, r1, r4, ror #16
> +# CHECK: sxtab r7, r8, r3, ror #24
> +
> +0x74 0x20 0xa3 0xe6
> +0x76 0x40 0xa5 0xe6
> +0x79 0x64 0xa2 0xb6
> +0x74 0x58 0xa1 0xe6
> +0x73 0x7c 0xa8 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# SXTAB16
> +#------------------------------------------------------------------------------
> +# CHECK: sxtab16ge r0, r1, r4
> +# CHECK: sxtab16 r6, r2, r7
> +# CHECK: sxtab16 r3, r5, r8, ror #8
> +# CHECK: sxtab16 r3, r2, r1, ror #16
> +# CHECK: sxtab16eq r1, r2, r3, ror #24
> +
> +0x74 0x00 0x81 0xa6
> +0x77 0x60 0x82 0xe6
> +0x78 0x34 0x85 0xe6
> +0x71 0x38 0x82 0xe6
> +0x73 0x1c 0x82 0x06
> +
> +#------------------------------------------------------------------------------
> +# SXTAH
> +#------------------------------------------------------------------------------
> +# CHECK: sxtah r1, r3, r9
> +# CHECK: sxtahhi r6, r1, r6
> +# CHECK: sxtah r3, r8, r3, ror #8
> +# CHECK: sxtahlo r2, r2, r4, ror #16
> +# CHECK: sxtah r9, r3, r3, ror #24
> +
> +0x79 0x10 0xb3 0xe6
> +0x76 0x60 0xb1 0x86
> +0x73 0x34 0xb8 0xe6
> +0x74 0x28 0xb2 0x36
> +0x73 0x9c 0xb3 0xe6
> +
> +#------------------------------------------------------------------------------
> +# SXTB
> +#------------------------------------------------------------------------------
> +# CHECK: sxtbge r2, r4
> +# CHECK: sxtb r5, r6
> +# CHECK: sxtb r6, r9, ror #8
> +# CHECK: sxtblo r5, r1, ror #16
> +# CHECK: sxtb r8, r3, ror #24
> +
> +0x74 0x20 0xaf 0xa6
> +0x76 0x50 0xaf 0xe6
> +0x79 0x64 0xaf 0xe6
> +0x71 0x58 0xaf 0x36
> +0x73 0x8c 0xaf 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# SXTB16
> +#------------------------------------------------------------------------------
> +# CHECK: sxtb16 r1, r4
> +# CHECK: sxtb16 r6, r7
> +# CHECK: sxtb16hs r3, r5, ror #8
> +# CHECK: sxtb16 r3, r1, ror #16
> +# CHECK: sxtb16ge r2, r3, ror #24
> +
> +0x74 0x10 0x8f 0xe6
> +0x77 0x60 0x8f 0xe6
> +0x75 0x34 0x8f 0x26
> +0x71 0x38 0x8f 0xe6
> +0x73 0x2c 0x8f 0xa6
> +
> +
> +#------------------------------------------------------------------------------
> +# SXTH
> +#------------------------------------------------------------------------------
> +# CHECK: sxthne r3, r9
> +# CHECK: sxth r1, r6
> +# CHECK: sxth r3, r8, ror #8
> +# CHECK: sxthle r2, r2, ror #16
> +# CHECK: sxth r9, r3, ror #24
> +
> +0x79 0x30 0xbf 0x16
> +0x76 0x10 0xbf 0xe6
> +0x78 0x34 0xbf 0xe6
> +0x72 0x28 0xbf 0xd6
> +0x73 0x9c 0xbf 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# FIXME: TBB/TBH
> +#------------------------------------------------------------------------------
> +
> +
> +#------------------------------------------------------------------------------
> +# TEQ
> +#------------------------------------------------------------------------------
> +# CHECK: teq r5, #61440
> +# CHECK: teq r4, r5
> +# CHECK: teq r4, r5, lsl #5
> +# CHECK: teq r4, r5, lsr #5
> +# CHECK: teq r4, r5, lsr #5
> +# CHECK: teq r4, r5, asr #5
> +# CHECK: teq r4, r5, ror #5
> +# CHECK: teq r6, r7, lsl r9
> +# CHECK: teq r6, r7, lsr r9
> +# CHECK: teq r6, r7, asr r9
> +# CHECK: teq r6, r7, ror r9
> +
> +0x0f 0x0a 0x35 0xe3
> +0x05 0x00 0x34 0xe1
> +0x85 0x02 0x34 0xe1
> +0xa5 0x02 0x34 0xe1
> +0xa5 0x02 0x34 0xe1
> +0xc5 0x02 0x34 0xe1
> +0xe5 0x02 0x34 0xe1
> +0x17 0x09 0x36 0xe1
> +0x37 0x09 0x36 0xe1
> +0x57 0x09 0x36 0xe1
> +0x77 0x09 0x36 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# TST
> +#------------------------------------------------------------------------------
> +# CHECK: tst r5, #61440
> +# CHECK: tst r4, r5
> +# CHECK: tst r4, r5, lsl #5
> +# CHECK: tst r4, r5, lsr #5
> +# CHECK: tst r4, r5, lsr #5
> +# CHECK: tst r4, r5, asr #5
> +# CHECK: tst r4, r5, ror #5
> +# CHECK: tst r6, r7, lsl r9
> +# CHECK: tst r6, r7, lsr r9
> +# CHECK: tst r6, r7, asr r9
> +# CHECK: tst r6, r7, ror r9
> +
> +0x0f 0x0a 0x15 0xe3
> +0x05 0x00 0x14 0xe1
> +0x85 0x02 0x14 0xe1
> +0xa5 0x02 0x14 0xe1
> +0xa5 0x02 0x14 0xe1
> +0xc5 0x02 0x14 0xe1
> +0xe5 0x02 0x14 0xe1
> +0x17 0x09 0x16 0xe1
> +0x37 0x09 0x16 0xe1
> +0x57 0x09 0x16 0xe1
> +0x77 0x09 0x16 0xe1
> +
> +
> +#------------------------------------------------------------------------------
> +# UADD16/UADD8
> +#------------------------------------------------------------------------------
> +# CHECK: uadd16 r1, r2, r3
> +# CHECK: uadd16gt r1, r2, r3
> +# CHECK: uadd8 r1, r2, r3
> +# CHECK: uadd8le r1, r2, r3
> +
> +0x13 0x1f 0x52 0xe6
> +0x13 0x1f 0x52 0xc6
> +0x93 0x1f 0x52 0xe6
> +0x93 0x1f 0x52 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# UASX
> +#------------------------------------------------------------------------------
> +# CHECK: uasx r9, r12, r0
> +# CHECK: uasxeq r9, r12, r0
> +
> +0x30 0x9f 0x5c 0xe6
> +0x30 0x9f 0x5c 0x06
> +
> +
> +#------------------------------------------------------------------------------
> +# UBFX
> +#------------------------------------------------------------------------------
> +# CHECK: ubfx r4, r5, #16, #1
> +# CHECK: ubfxgt r4, r5, #16, #16
> +
> +0x55 0x48 0xe0 0xe7
> +0x55 0x48 0xef 0xc7
> +
> +
> +#------------------------------------------------------------------------------
> +# UHADD16/UHADD8
> +#------------------------------------------------------------------------------
> +# CHECK: uhadd16 r4, r8, r2
> +# CHECK: uhadd16gt r4, r8, r2
> +# CHECK: uhadd8 r4, r8, r2
> +# CHECK: uhadd8gt r4, r8, r2
> +
> +0x12 0x4f 0x78 0xe6
> +0x12 0x4f 0x78 0xc6
> +0x92 0x4f 0x78 0xe6
> +0x92 0x4f 0x78 0xc6
> +
> +
> +#------------------------------------------------------------------------------
> +# UHASX
> +#------------------------------------------------------------------------------
> +# CHECK: uhasx r4, r8, r2
> +# CHECK: uhasxgt r4, r8, r2
> +
> +0x32 0x4f 0x78 0xe6
> +0x32 0x4f 0x78 0xc6
> +
> +
> +#------------------------------------------------------------------------------
> +# UHSUB16/UHSUB8
> +#------------------------------------------------------------------------------
> +# CHECK: uhsub16 r4, r8, r2
> +# CHECK: uhsub16gt r4, r8, r2
> +# CHECK: uhsub8 r4, r8, r2
> +# CHECK: uhsub8gt r4, r8, r2
> +
> +0x72 0x4f 0x78 0xe6
> +0x72 0x4f 0x78 0xc6
> +0xf2 0x4f 0x78 0xe6
> +0xf2 0x4f 0x78 0xc6
> +
> +
> +#------------------------------------------------------------------------------
> +# UMAAL
> +#------------------------------------------------------------------------------
> +# CHECK: umaal r3, r4, r5, r6
> +# CHECK: umaallt r3, r4, r5, r6
> +
> +0x95 0x46 0x43 0xe0
> +0x95 0x46 0x43 0xb0
> +
> +
> +#------------------------------------------------------------------------------
> +# UMLAL
> +#------------------------------------------------------------------------------
> +# CHECK: umlal r2, r4, r6, r8
> +# CHECK: umlalgt r6, r1, r2, r6
> +# CHECK: umlals r2, r9, r2, r3
> +# CHECK: umlalseq r3, r5, r1, r2
> +
> +0x96 0x28 0xa4 0xe0
> +0x92 0x66 0xa1 0xc0
> +0x92 0x23 0xb9 0xe0
> +0x91 0x32 0xb5 0x00
> +
> +
> +#------------------------------------------------------------------------------
> +# UMULL
> +#------------------------------------------------------------------------------
> +# CHECK: umull r2, r4, r6, r8
> +# CHECK: umullgt r6, r1, r2, r6
> +# CHECK: umulls r2, r9, r2, r3
> +# CHECK: umullseq r3, r5, r1, r2
> +
> +0x96 0x28 0x84 0xe0
> +0x92 0x66 0x81 0xc0
> +0x92 0x23 0x99 0xe0
> +0x91 0x32 0x95 0x00
> +
> +
> +#------------------------------------------------------------------------------
> +# UQADD16/UQADD8
> +#------------------------------------------------------------------------------
> +# CHECK: uqadd16 r1, r2, r3
> +# CHECK: uqadd16gt r4, r7, r9
> +# CHECK: uqadd8 r3, r4, r8
> +# CHECK: uqadd8le r8, r1, r2
> +
> +
> +0x13 0x1f 0x62 0xe6
> +0x19 0x4f 0x67 0xc6
> +0x98 0x3f 0x64 0xe6
> +0x92 0x8f 0x61 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# UQASX
> +#------------------------------------------------------------------------------
> +# CHECK: uqasx r2, r4, r1
> +# CHECK: uqasxhi r5, r2, r9
> +
> +0x31 0x2f 0x64 0xe6
> +0x39 0x5f 0x62 0x86
> +
> +
> +#------------------------------------------------------------------------------
> +# UQSAX
> +#------------------------------------------------------------------------------
> +# CHECK: uqsax r1, r3, r7
> +# CHECK: uqsax r3, r6, r2
> +
> +0x57 0x1f 0x63 0xe6
> +0x52 0x3f 0x66 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# UQSUB16/UQSUB8
> +#------------------------------------------------------------------------------
> +# CHECK: uqsub16 r1, r5, r3
> +# CHECK: uqsub16gt r3, r2, r5
> +# CHECK: uqsub8 r2, r1, r4
> +# CHECK: uqsub8le r4, r6, r9
> +
> +0x73 0x1f 0x65 0xe6
> +0x75 0x3f 0x62 0xc6
> +0xf4 0x2f 0x61 0xe6
> +0xf9 0x4f 0x66 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# USADA8/USAD8
> +#------------------------------------------------------------------------------
> +# CHECK: usad8 r2, r1, r4
> +# CHECK: usad8le r4, r6, r9
> +# CHECK: usada8 r1, r5, r3, r7
> +# CHECK: usada8gt r3, r2, r5, r1
> +
> +0x11 0xf4 0x82 0xe7
> +0x16 0xf9 0x84 0xd7
> +0x15 0x73 0x81 0xe7
> +0x12 0x15 0x83 0xc7
> +
> +
> +#------------------------------------------------------------------------------
> +# USAT
> +#------------------------------------------------------------------------------
> +
> +# CHECK: usat	r8, #1, r10
> +# CHECK: usat	r8, #4, r10
> +# CHECK: usat	r8, #5, r10, lsl #31
> +# CHECK: usat	r8, #31, r10, asr #32
> +# CHECK: usat	r8, #16, r10, asr #1
> +
> +0x1a 0x80 0xe1 0xe6
> +0x1a 0x80 0xe4 0xe6
> +0x9a 0x8f 0xe5 0xe6
> +0x5a 0x80 0xff 0xe6
> +0xda 0x80 0xf0 0xe6
> +
> +#------------------------------------------------------------------------------
> +# USAT16
> +#------------------------------------------------------------------------------
> +# CHECK: usat16	r2, #2, r7
> +# CHECK: usat16	r3, #15, r5
> +
> +0x37 0x2f 0xe2 0xe6
> +0x35 0x3f 0xef 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# USAX
> +#------------------------------------------------------------------------------
> +# CHECK: usax r2, r3, r4
> +# CHECK: usaxne r2, r3, r4
> +
> +0x54 0x2f 0x53 0xe6
> +0x54 0x2f 0x53 0x16
> +
> +#------------------------------------------------------------------------------
> +# USUB16/USUB8
> +#------------------------------------------------------------------------------
> +# CHECK: usub16 r4, r2, r7
> +# CHECK: usub16hi r1, r1, r3
> +# CHECK: usub8 r1, r8, r5
> +# CHECK: usub8le r9, r2, r3
> +
> +0x77 0x4f 0x52 0xe6
> +0x73 0x1f 0x51 0x86
> +0xf5 0x1f 0x58 0xe6
> +0xf3 0x9f 0x52 0xd6
> +
> +
> +#------------------------------------------------------------------------------
> +# UXTAB
> +#------------------------------------------------------------------------------
> +# CHECK: uxtab r2, r3, r4
> +# CHECK: uxtab r4, r5, r6
> +# CHECK: uxtablt r6, r2, r9, ror #8
> +# CHECK: uxtab r5, r1, r4, ror #16
> +# CHECK: uxtab r7, r8, r3, ror #24
> +
> +0x74 0x20 0xe3 0xe6
> +0x76 0x40 0xe5 0xe6
> +0x79 0x64 0xe2 0xb6
> +0x74 0x58 0xe1 0xe6
> +0x73 0x7c 0xe8 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# UXTAB16
> +#------------------------------------------------------------------------------
> +# CHECK: uxtab16ge r0, r1, r4
> +# CHECK: uxtab16 r6, r2, r7
> +# CHECK: uxtab16 r3, r5, r8, ror #8
> +# CHECK: uxtab16 r3, r2, r1, ror #16
> +# CHECK: uxtab16eq r1, r2, r3, ror #24
> +
> +0x74 0x00 0xc1 0xa6
> +0x77 0x60 0xc2 0xe6
> +0x78 0x34 0xc5 0xe6
> +0x71 0x38 0xc2 0xe6
> +0x73 0x1c 0xc2 0x06
> +
> +#------------------------------------------------------------------------------
> +# UXTAH
> +#------------------------------------------------------------------------------
> +# CHECK: uxtah r1, r3, r9
> +# CHECK: uxtahhi r6, r1, r6
> +# CHECK: uxtah r3, r8, r3, ror #8
> +# CHECK: uxtahlo r2, r2, r4, ror #16
> +# CHECK: uxtah r9, r3, r3, ror #24
> +
> +0x79 0x10 0xf3 0xe6
> +0x76 0x60 0xf1 0x86
> +0x73 0x34 0xf8 0xe6
> +0x74 0x28 0xf2 0x36
> +0x73 0x9c 0xf3 0xe6
> +
> +#------------------------------------------------------------------------------
> +# UXTB
> +#------------------------------------------------------------------------------
> +# CHECK: uxtbge r2, r4
> +# CHECK: uxtb r5, r6
> +# CHECK: uxtb r6, r9, ror #8
> +# CHECK: uxtblo r5, r1, ror #16
> +# CHECK: uxtb r8, r3, ror #24
> +
> +0x74 0x20 0xef 0xa6
> +0x76 0x50 0xef 0xe6
> +0x79 0x64 0xef 0xe6
> +0x71 0x58 0xef 0x36
> +0x73 0x8c 0xef 0xe6
> +
> +
> +#------------------------------------------------------------------------------
> +# UXTB16
> +#------------------------------------------------------------------------------
> +# CHECK: uxtb16 r1, r4
> +# CHECK: uxtb16 r6, r7
> +# CHECK: uxtb16hs r3, r5, ror #8
> +# CHECK: uxtb16 r3, r1, ror #16
> +# CHECK: uxtb16ge r2, r3, ror #24
> +
> +0x74 0x10 0xcf 0xe6
> +0x77 0x60 0xcf 0xe6
> +0x75 0x34 0xcf 0x26
> +0x71 0x38 0xcf 0xe6
> +0x73 0x2c 0xcf 0xa6
> +
> +
> +#------------------------------------------------------------------------------
> +# UXTH
> +#------------------------------------------------------------------------------
> +# CHECK: uxthne r3, r9
> +# CHECK: uxth r1, r6
> +# CHECK: uxth r3, r8, ror #8
> +# CHECK: uxthle r2, r2, ror #16
> +# CHECK: uxth r9, r3, ror #24
> +
> +0x79 0x30 0xff 0x16
> +0x76 0x10 0xff 0xe6
> +0x78 0x34 0xff 0xe6
> +0x72 0x28 0xff 0xd6
> +0x73 0x9c 0xff 0xe6
> +
> +#------------------------------------------------------------------------------
> +# WFE/WFI/YIELD
> +#------------------------------------------------------------------------------
> +# CHECK: wfe
> +# CHECK: wfehi
> +# CHECK: wfi
> +# CHECK: wfilt
> +# CHECK: yield
> +# CHECK: yieldne
> +
> +0x02 0xf0 0x20 0xe3
> +0x02 0xf0 0x20 0x83
> +0x03 0xf0 0x20 0xe3
> +0x03 0xf0 0x20 0xb3
> +0x01 0xf0 0x20 0xe3
> +0x01 0xf0 0x20 0x13
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list