Improvements to ARM assembler tests

No functional changes. Got myself bitten in r223113 when adding support for
modified immediate syntax (regressions reported by joerg@britannica.bec.de,
fixes in r223366 and r223381). Our assembler tests did not cover serveral
different syntax variants. This patch expands the test coverage to check for
the following cases:

1. Modified immediate operands may be expressed with expressions, as in #(4 * 2)
instead of #8.

2. Modified immediate operands may be _optionally_ prefixed by a '#' symbol or a
'$' symbol.

3. Certain instructions (e.g. ADD) support single input register variants;
[ADD r0, #mod_imm] is same as [ADD r0, r0, #mod_imm].

4. Certain instructions have aliases which convert plain immediates to modified
immediates. For an example, [ADD r0, -10] is not valid because -10 (in two's
complement) cannot be encoded as a modified immediate, but ARMInstrInfo.td
defines an alias which can transform this into a [SUB r0, 10].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223475 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Asiri Rathnayake 2014-12-05 16:33:56 +00:00
parent dd6794f01d
commit 3ad762170b

View File

@ -18,11 +18,13 @@ _func:
adc r1, r2, #0xf
adc r1, r2, $0xf
adc r1, r2, 0xf
adc r1, r2, 15
adc r7, r8, #42, #2
adc r7, r8, #(0xff << 16)
adc r7, r8, #-2147483638
adc r7, r8, #42, #2
adc r7, r8, #40, #2
adc r7, r8, #(0xff << 16)
adc r7, r8, $40, $2
adc r7, r8, 40, 2
adc r7, r8, (2 * 20), (1 << 1)
adc r1, r2, #0xf0
adc r1, r2, #0xf00
adc r1, r2, #0xf000
@ -39,11 +41,13 @@ _func:
@ CHECK: adc r1, r2, #15 @ encoding: [0x0f,0x10,0xa2,0xe2]
@ CHECK: adc r1, r2, #15 @ encoding: [0x0f,0x10,0xa2,0xe2]
@ CHECK: adc r1, r2, #15 @ encoding: [0x0f,0x10,0xa2,0xe2]
@ CHECK: adc r1, r2, #15 @ encoding: [0x0f,0x10,0xa2,0xe2]
@ CHECK: adc r7, r8, #16711680 @ encoding: [0xff,0x78,0xa8,0xe2]
@ CHECK: adc r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xa8,0xe2]
@ CHECK: adc r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xa8,0xe2]
@ CHECK: adc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xa8,0xe2]
@ CHECK: adc r7, r8, #16711680 @ encoding: [0xff,0x78,0xa8,0xe2]
@ CHECK: adc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xa8,0xe2]
@ CHECK: adc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xa8,0xe2]
@ CHECK: adc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xa8,0xe2]
@ CHECK: adc r1, r2, #240 @ encoding: [0xf0,0x10,0xa2,0xe2]
@ CHECK: adc r1, r2, #3840 @ encoding: [0x0f,0x1c,0xa2,0xe2]
@ CHECK: adc r1, r2, #61440 @ encoding: [0x0f,0x1a,0xa2,0xe2]
@ -177,10 +181,16 @@ Lforward:
@ ADD
@------------------------------------------------------------------------------
add r4, r5, #0xf000
add r7, r8, #42, #2
add r7, r8, #-2147483638
add r7, r8, #40, #2
add r4, r5, $0xf000
add r4, r5, 0xf000
add r4, r5, -0xf000
add r7, r8, #(0xff << 16)
add r7, r8, #-2147483638
add r7, r8, #42, #2
add r7, r8, #40, #2
add r7, r8, $40, $2
add r7, r8, 40, 2
add r7, r8, (2 * 20), (1 << 1)
add r4, r5, r6
add r4, r5, r6, lsl #5
add r4, r5, r6, lsr #5
@ -196,6 +206,16 @@ Lforward:
@ destination register is optional
add r5, #0xf000
add r5, $0xf000
add r5, 0xf000
add r5, -0xf000
add r7, #(0xff << 16)
add r7, #-2147483638
add r7, #42, #2
add r7, #40, #2
add r7, $40, $2
add r7, 40, 2
add r7, (2 * 20), (1 << 1)
add r4, r5
add r4, r5, lsl #5
add r4, r5, lsr #5
@ -215,10 +235,16 @@ Lforward:
add r0, pc, #(Lback - .)
@ CHECK: add r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe2]
@ CHECK: add r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe2]
@ CHECK: add r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe2]
@ CHECK: sub r4, r5, #61440 @ encoding: [0x0f,0x4a,0x45,0xe2]
@ CHECK: add r7, r8, #16711680 @ encoding: [0xff,0x78,0x88,0xe2]
@ CHECK: add r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x88,0xe2]
@ CHECK: add r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x88,0xe2]
@ CHECK: add r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe2]
@ CHECK: add r7, r8, #16711680 @ encoding: [0xff,0x78,0x88,0xe2]
@ CHECK: add r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe2]
@ CHECK: add r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe2]
@ CHECK: add r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe2]
@ CHECK: add r4, r5, r6 @ encoding: [0x06,0x40,0x85,0xe0]
@ CHECK: add r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x85,0xe0]
@ CHECK: add r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe0]
@ -233,6 +259,16 @@ Lforward:
@ CHECK: add r4, r5, r6, rrx @ encoding: [0x66,0x40,0x85,0xe0]
@ CHECK: add r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe2]
@ CHECK: add r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe2]
@ CHECK: add r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe2]
@ CHECK: sub r5, r5, #61440 @ encoding: [0x0f,0x5a,0x45,0xe2]
@ CHECK: add r7, r7, #16711680 @ encoding: [0xff,0x78,0x87,0xe2]
@ CHECK: add r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x87,0xe2]
@ CHECK: add r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x87,0xe2]
@ CHECK: add r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe2]
@ CHECK: add r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe2]
@ CHECK: add r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe2]
@ CHECK: add r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe2]
@ CHECK: add r4, r4, r5 @ encoding: [0x05,0x40,0x84,0xe0]
@ CHECK: add r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x84,0xe0]
@ CHECK: add r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe0]
@ -262,24 +298,42 @@ Lforward:
@------------------------------------------------------------------------------
@ ADDS
@------------------------------------------------------------------------------
adds r7, r8, #42, #2
adds r7, r8, #-2147483638
adds r7, r8, #40, #2
adds r7, r8, #16711680
adds r7, r8, $16711680
adds r7, r8, 16711680
adds r7, r8, #(0xff << 16)
adds r7, r8, #-2147483638
adds r7, r8, #42, #2
adds r7, r8, #40, #2
adds r7, r8, $40, $2
adds r7, r8, 40, 2
adds r7, r8, (2 * 20), (1 << 1)
@ CHECK: adds r7, r8, #16711680 @ encoding: [0xff,0x78,0x98,0xe2]
@ CHECK: adds r7, r8, #16711680 @ encoding: [0xff,0x78,0x98,0xe2]
@ CHECK: adds r7, r8, #16711680 @ encoding: [0xff,0x78,0x98,0xe2]
@ CHECK: adds r7, r8, #16711680 @ encoding: [0xff,0x78,0x98,0xe2]
@ CHECK: adds r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x98,0xe2]
@ CHECK: adds r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x98,0xe2]
@ CHECK: adds r7, r8, #40, #2 @ encoding: [0x28,0x71,0x98,0xe2]
@ CHECK: adds r7, r8, #16711680 @ encoding: [0xff,0x78,0x98,0xe2]
@ CHECK: adds r7, r8, #40, #2 @ encoding: [0x28,0x71,0x98,0xe2]
@ CHECK: adds r7, r8, #40, #2 @ encoding: [0x28,0x71,0x98,0xe2]
@ CHECK: adds r7, r8, #40, #2 @ encoding: [0x28,0x71,0x98,0xe2]
@------------------------------------------------------------------------------
@ AND
@------------------------------------------------------------------------------
and r10, r1, #0xf
and r7, r8, #42, #2
and r7, r8, #-2147483638
and r7, r8, #40, #2
and r10, r1, $0xf
and r10, r1, 0xf
and r10, r1, -0xf
and r7, r8, #(0xff << 16)
and r7, r8, #-2147483638
and r7, r8, #42, #2
and r7, r8, #40, #2
and r7, r8, $40, $2
and r7, r8, 40, 2
and r7, r8, (2 * 20), (1 << 1)
and r10, r1, r6
and r10, r1, r6, lsl #10
and r10, r1, r6, lsr #10
@ -295,6 +349,16 @@ Lforward:
@ destination register is optional
and r1, #0xf
and r1, $0xf
and r1, 0xf
and r1, -0xf
and r7, #(0xff << 16)
and r7, #-2147483638
and r7, #42, #2
and r7, #40, #2
and r7, $40, $2
and r7, 40, 2
and r7, (2 * 20), (1 << 1)
and r10, r1
and r10, r1, lsl #10
and r10, r1, lsr #10
@ -308,10 +372,16 @@ Lforward:
and r10, r1, rrx
@ CHECK: and r10, r1, #15 @ encoding: [0x0f,0xa0,0x01,0xe2]
@ CHECK: and r10, r1, #15 @ encoding: [0x0f,0xa0,0x01,0xe2]
@ CHECK: and r10, r1, #15 @ encoding: [0x0f,0xa0,0x01,0xe2]
@ CHECK: bic r10, r1, #14 @ encoding: [0x0e,0xa0,0xc1,0xe3]
@ CHECK: and r7, r8, #16711680 @ encoding: [0xff,0x78,0x08,0xe2]
@ CHECK: and r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x08,0xe2]
@ CHECK: and r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x08,0xe2]
@ CHECK: and r7, r8, #40, #2 @ encoding: [0x28,0x71,0x08,0xe2]
@ CHECK: and r7, r8, #16711680 @ encoding: [0xff,0x78,0x08,0xe2]
@ CHECK: and r7, r8, #40, #2 @ encoding: [0x28,0x71,0x08,0xe2]
@ CHECK: and r7, r8, #40, #2 @ encoding: [0x28,0x71,0x08,0xe2]
@ CHECK: and r7, r8, #40, #2 @ encoding: [0x28,0x71,0x08,0xe2]
@ CHECK: and r10, r1, r6 @ encoding: [0x06,0xa0,0x01,0xe0]
@ CHECK: and r10, r1, r6, lsl #10 @ encoding: [0x06,0xa5,0x01,0xe0]
@ CHECK: and r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0x01,0xe0]
@ -326,6 +396,16 @@ Lforward:
@ CHECK: bic r2, r3, #-2147483648 @ encoding: [0x02,0x21,0xc3,0xe3]
@ CHECK: and r1, r1, #15 @ encoding: [0x0f,0x10,0x01,0xe2]
@ CHECK: and r1, r1, #15 @ encoding: [0x0f,0x10,0x01,0xe2]
@ CHECK: and r1, r1, #15 @ encoding: [0x0f,0x10,0x01,0xe2]
@ CHECK: bic r1, r1, #14 @ encoding: [0x0e,0x10,0xc1,0xe3]
@ CHECK: and r7, r7, #16711680 @ encoding: [0xff,0x78,0x07,0xe2]
@ CHECK: and r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x07,0xe2]
@ CHECK: and r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x07,0xe2]
@ CHECK: and r7, r7, #40, #2 @ encoding: [0x28,0x71,0x07,0xe2]
@ CHECK: and r7, r7, #40, #2 @ encoding: [0x28,0x71,0x07,0xe2]
@ CHECK: and r7, r7, #40, #2 @ encoding: [0x28,0x71,0x07,0xe2]
@ CHECK: and r7, r7, #40, #2 @ encoding: [0x28,0x71,0x07,0xe2]
@ CHECK: and r10, r10, r1 @ encoding: [0x01,0xa0,0x0a,0xe0]
@ CHECK: and r10, r10, r1, lsl #10 @ encoding: [0x01,0xa5,0x0a,0xe0]
@ CHECK: and r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0x0a,0xe0]
@ -398,10 +478,16 @@ Lforward:
@ BIC
@------------------------------------------------------------------------------
bic r10, r1, #0xf
bic r7, r8, #42, #2
bic r7, r8, #-2147483638
bic r7, r8, #40, #2
bic r10, r1, $0xf
bic r10, r1, 0xf
bic r10, r1, -0xf
bic r7, r8, #(0xff << 16)
bic r7, r8, #-2147483638
bic r7, r8, #42, #2
bic r7, r8, #40, #2
bic r7, r8, $40, $2
bic r7, r8, 40, 2
bic r7, r8, (2 * 20), (1 << 1)
bic r10, r1, r6
bic r10, r1, r6, lsl #10
bic r10, r1, r6, lsr #10
@ -416,10 +502,16 @@ Lforward:
@ destination register is optional
bic r1, #0xf
bic r7, #42, #2
bic r7, #-2147483638
bic r7, #40, #2
bic r1, $0xf
bic r1, 0xf
bic r1, -0xf
bic r7, #(0xff << 16)
bic r7, #-2147483638
bic r7, #42, #2
bic r7, #40, #2
bic r7, $40, $2
bic r7, 40, 2
bic r7, (2 * 20), (1 << 1)
bic r10, r1
bic r10, r1, lsl #10
bic r10, r1, lsr #10
@ -433,10 +525,15 @@ Lforward:
bic r10, r1, rrx
@ CHECK: bic r10, r1, #15 @ encoding: [0x0f,0xa0,0xc1,0xe3]
@ CHECK: bic r10, r1, #15 @ encoding: [0x0f,0xa0,0xc1,0xe3]
@ CHECK: bic r10, r1, #15 @ encoding: [0x0f,0xa0,0xc1,0xe3]
@ CHECK: and r10, r1, #14 @ encoding: [0x0e,0xa0,0x01,0xe2]
@ CHECK: bic r7, r8, #16711680 @ encoding: [0xff,0x78,0xc8,0xe3]
@ CHECK: bic r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xc8,0xe3]
@ CHECK: bic r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xc8,0xe3]
@ CHECK: bic r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe3]
@ CHECK: bic r7, r8, #16711680 @ encoding: [0xff,0x78,0xc8,0xe3]
@ CHECK: bic r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe3]
@ CHECK: bic r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe3]
@ CHECK: bic r10, r1, r6 @ encoding: [0x06,0xa0,0xc1,0xe1]
@ CHECK: bic r10, r1, r6, lsl #10 @ encoding: [0x06,0xa5,0xc1,0xe1]
@ CHECK: bic r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0xc1,0xe1]
@ -451,10 +548,16 @@ Lforward:
@ CHECK: bic r1, r1, #15 @ encoding: [0x0f,0x10,0xc1,0xe3]
@ CHECK: bic r1, r1, #15 @ encoding: [0x0f,0x10,0xc1,0xe3]
@ CHECK: bic r1, r1, #15 @ encoding: [0x0f,0x10,0xc1,0xe3]
@ CHECK: and r1, r1, #14 @ encoding: [0x0e,0x10,0x01,0xe2]
@ CHECK: bic r7, r7, #16711680 @ encoding: [0xff,0x78,0xc7,0xe3]
@ CHECK: bic r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0xc7,0xe3]
@ CHECK: bic r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0xc7,0xe3]
@ CHECK: bic r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe3]
@ CHECK: bic r7, r7, #16711680 @ encoding: [0xff,0x78,0xc7,0xe3]
@ CHECK: bic r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe3]
@ CHECK: bic r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe3]
@ CHECK: bic r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe3]
@ CHECK: bic r10, r10, r1 @ encoding: [0x01,0xa0,0xca,0xe1]
@ CHECK: bic r10, r10, r1, lsl #10 @ encoding: [0x01,0xa5,0xca,0xe1]
@ CHECK: bic r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0xca,0xe1]
@ -571,10 +674,16 @@ Lforward:
@ CMN
@------------------------------------------------------------------------------
cmn r1, #0xf
cmn r7, #42, #2
cmn r7, #-2147483638
cmn r7, #40, #2
cmn r1, $0xf
cmn r1, 0xf
cmn r1, -0xf
cmn r7, #(0xff << 16)
cmn r7, #-2147483638
cmn r7, #42, #2
cmn r7, #40, #2
cmn r7, $40, $2
cmn r7, 40, 2
cmn r7, (20 * 2), (1 << 1)
cmn r1, r6
cmn r1, r6, lsl #10
cmn r1, r6, lsr #10
@ -588,10 +697,16 @@ Lforward:
cmn r1, r6, rrx
@ CHECK: cmn r1, #15 @ encoding: [0x0f,0x00,0x71,0xe3]
@ CHECK: cmn r1, #15 @ encoding: [0x0f,0x00,0x71,0xe3]
@ CHECK: cmn r1, #15 @ encoding: [0x0f,0x00,0x71,0xe3]
@ CHECK: cmp r1, #15 @ encoding: [0x0f,0x00,0x51,0xe3]
@ CHECK: cmn r7, #16711680 @ encoding: [0xff,0x08,0x77,0xe3]
@ CHECK: cmn r7, #-2147483638 @ encoding: [0x2a,0x01,0x77,0xe3]
@ CHECK: cmn r7, #-2147483638 @ encoding: [0x2a,0x01,0x77,0xe3]
@ CHECK: cmn r7, #40, #2 @ encoding: [0x28,0x01,0x77,0xe3]
@ CHECK: cmn r7, #16711680 @ encoding: [0xff,0x08,0x77,0xe3]
@ CHECK: cmn r7, #40, #2 @ encoding: [0x28,0x01,0x77,0xe3]
@ CHECK: cmn r7, #40, #2 @ encoding: [0x28,0x01,0x77,0xe3]
@ CHECK: cmn r7, #40, #2 @ encoding: [0x28,0x01,0x77,0xe3]
@ CHECK: cmn r1, r6 @ encoding: [0x06,0x00,0x71,0xe1]
@ CHECK: cmn r1, r6, lsl #10 @ encoding: [0x06,0x05,0x71,0xe1]
@ CHECK: cmn r1, r6, lsr #10 @ encoding: [0x26,0x05,0x71,0xe1]
@ -608,10 +723,16 @@ Lforward:
@ CMP
@------------------------------------------------------------------------------
cmp r1, #0xf
cmp r7, #42, #2
cmp r7, #-2147483638
cmp r7, #40, #2
cmp r1, $0xf
cmp r1, 0xf
cmp r1, -0xf
cmp r7, #(0xff << 16)
cmp r7, #-2147483638
cmp r7, #42, #2
cmp r7, #40, #2
cmp r7, $40, $2
cmp r7, 40, 2
cmp r7, (2 * 20), (1 << 1)
cmp r1, r6
cmp r1, r6, lsl #10
cmp r1, r6, lsr #10
@ -627,10 +748,16 @@ Lforward:
cmp lr, #0
@ CHECK: cmp r1, #15 @ encoding: [0x0f,0x00,0x51,0xe3]
@ CHECK: cmp r1, #15 @ encoding: [0x0f,0x00,0x51,0xe3]
@ CHECK: cmp r1, #15 @ encoding: [0x0f,0x00,0x51,0xe3]
@ CHECK: cmn r1, #15 @ encoding: [0x0f,0x00,0x71,0xe3]
@ CHECK: cmp r7, #16711680 @ encoding: [0xff,0x08,0x57,0xe3]
@ CHECK: cmp r7, #-2147483638 @ encoding: [0x2a,0x01,0x57,0xe3]
@ CHECK: cmp r7, #-2147483638 @ encoding: [0x2a,0x01,0x57,0xe3]
@ CHECK: cmp r7, #40, #2 @ encoding: [0x28,0x01,0x57,0xe3]
@ CHECK: cmp r7, #16711680 @ encoding: [0xff,0x08,0x57,0xe3]
@ CHECK: cmp r7, #40, #2 @ encoding: [0x28,0x01,0x57,0xe3]
@ CHECK: cmp r7, #40, #2 @ encoding: [0x28,0x01,0x57,0xe3]
@ CHECK: cmp r7, #40, #2 @ encoding: [0x28,0x01,0x57,0xe3]
@ CHECK: cmp r1, r6 @ encoding: [0x06,0x00,0x51,0xe1]
@ CHECK: cmp r1, r6, lsl #10 @ encoding: [0x06,0x05,0x51,0xe1]
@ CHECK: cmp r1, r6, lsr #10 @ encoding: [0x26,0x05,0x51,0xe1]
@ -816,10 +943,15 @@ Lforward:
@ EOR
@------------------------------------------------------------------------------
eor r4, r5, #0xf000
eor r7, r8, #42, #2
eor r7, r8, #-2147483638
eor r7, r8, #40, #2
eor r4, r5, $0xf000
eor r4, r5, 0xf000
eor r7, r8, #(0xff << 16)
eor r7, r8, #-2147483638
eor r7, r8, #42, #2
eor r7, r8, #40, #2
eor r7, r8, $40, $2
eor r7, r8, 40, 2
eor r7, r8, (20 * 2), (1 << 1)
eor r4, r5, r6
eor r4, r5, r6, lsl #5
eor r4, r5, r6, lsr #5
@ -834,6 +966,15 @@ Lforward:
@ destination register is optional
eor r5, #0xf000
eor r5, $0xf000
eor r5, 0xf000
eor r7, #(0xff << 16)
eor r7, #-2147483638
eor r7, #42, #2
eor r7, #40, #2
eor r7, $40, $2
eor r7, 40, 2
eor r7, (20 * 2), (1 << 1)
eor r4, r5
eor r4, r5, lsl #5
eor r4, r5, lsr #5
@ -847,10 +988,15 @@ Lforward:
eor r4, r5, rrx
@ CHECK: eor r4, r5, #61440 @ encoding: [0x0f,0x4a,0x25,0xe2]
@ CHECK: eor r4, r5, #61440 @ encoding: [0x0f,0x4a,0x25,0xe2]
@ CHECK: eor r4, r5, #61440 @ encoding: [0x0f,0x4a,0x25,0xe2]
@ CHECK: eor r7, r8, #16711680 @ encoding: [0xff,0x78,0x28,0xe2]
@ CHECK: eor r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x28,0xe2]
@ CHECK: eor r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x28,0xe2]
@ CHECK: eor r7, r8, #40, #2 @ encoding: [0x28,0x71,0x28,0xe2]
@ CHECK: eor r7, r8, #16711680 @ encoding: [0xff,0x78,0x28,0xe2]
@ CHECK: eor r7, r8, #40, #2 @ encoding: [0x28,0x71,0x28,0xe2]
@ CHECK: eor r7, r8, #40, #2 @ encoding: [0x28,0x71,0x28,0xe2]
@ CHECK: eor r7, r8, #40, #2 @ encoding: [0x28,0x71,0x28,0xe2]
@ CHECK: eor r4, r5, r6 @ encoding: [0x06,0x40,0x25,0xe0]
@ CHECK: eor r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x25,0xe0]
@ CHECK: eor r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x25,0xe0]
@ -865,6 +1011,15 @@ Lforward:
@ CHECK: eor r5, r5, #61440 @ encoding: [0x0f,0x5a,0x25,0xe2]
@ CHECK: eor r5, r5, #61440 @ encoding: [0x0f,0x5a,0x25,0xe2]
@ CHECK: eor r5, r5, #61440 @ encoding: [0x0f,0x5a,0x25,0xe2]
@ CHECK: eor r7, r7, #16711680 @ encoding: [0xff,0x78,0x27,0xe2]
@ CHECK: eor r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x27,0xe2]
@ CHECK: eor r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x27,0xe2]
@ CHECK: eor r7, r7, #40, #2 @ encoding: [0x28,0x71,0x27,0xe2]
@ CHECK: eor r7, r7, #40, #2 @ encoding: [0x28,0x71,0x27,0xe2]
@ CHECK: eor r7, r7, #40, #2 @ encoding: [0x28,0x71,0x27,0xe2]
@ CHECK: eor r7, r7, #40, #2 @ encoding: [0x28,0x71,0x27,0xe2]
@ CHECK: eor r4, r4, r5 @ encoding: [0x05,0x40,0x24,0xe0]
@ CHECK: eor r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x24,0xe0]
@ CHECK: eor r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x24,0xe0]
@ -1118,17 +1273,23 @@ Lforward:
@ MOV (immediate)
@------------------------------------------------------------------------------
mov r3, #7
mov r3, $7
mov r3, 7
mov r3, -7
mov r4, #0xff0
mov r5, #0xff0000
mov r7, #0, #2
mov r7, #42, #0
mov r7, #40, #2
mov r7, #42, #10
mov r7, #42, #30
mov r7, #42, #2
mov r7, #-2147483638
mov pc, #42, #2
mov r7, #(0xff << 16)
mov r7, #-2147483638
mov r7, #42, #2
mov pc, #42, #2
mov r7, #0, #2
mov r7, #40, #2
mov r7, $40, $2
mov r7, 40, 2
mov r7, (2 * 20), (1 << 1)
mov r7, #42, #30
mov r6, #0xffff
movw r9, #0xffff
movs r3, #7
@ -1136,17 +1297,23 @@ Lforward:
movseq r5, #0xff0000
@ CHECK: mov r3, #7 @ encoding: [0x07,0x30,0xa0,0xe3]
@ CHECK: mov r3, #7 @ encoding: [0x07,0x30,0xa0,0xe3]
@ CHECK: mov r3, #7 @ encoding: [0x07,0x30,0xa0,0xe3]
@ CHECK: mvn r3, #6 @ encoding: [0x06,0x30,0xe0,0xe3]
@ CHECK: mov r4, #4080 @ encoding: [0xff,0x4e,0xa0,0xe3]
@ CHECK: mov r5, #16711680 @ encoding: [0xff,0x58,0xa0,0xe3]
@ CHECK: mov r7, #0, #2 @ encoding: [0x00,0x71,0xa0,0xe3]
@ CHECK: mov r7, #42 @ encoding: [0x2a,0x70,0xa0,0xe3]
@ CHECK: mov r7, #40, #2 @ encoding: [0x28,0x71,0xa0,0xe3]
@ CHECK: mov r7, #176160768 @ encoding: [0x2a,0x75,0xa0,0xe3]
@ CHECK: mov r7, #42, #30 @ encoding: [0x2a,0x7f,0xa0,0xe3]
@ CHECK: mov r7, #16711680 @ encoding: [0xff,0x78,0xa0,0xe3]
@ CHECK: mov r7, #-2147483638 @ encoding: [0x2a,0x71,0xa0,0xe3]
@ CHECK: mov r7, #-2147483638 @ encoding: [0x2a,0x71,0xa0,0xe3]
@ CHECK: mov pc, #2147483658 @ encoding: [0x2a,0xf1,0xa0,0xe3]
@ CHECK: mov r7, #16711680 @ encoding: [0xff,0x78,0xa0,0xe3]
@ CHECK: mov r7, #0, #2 @ encoding: [0x00,0x71,0xa0,0xe3]
@ CHECK: mov r7, #40, #2 @ encoding: [0x28,0x71,0xa0,0xe3]
@ CHECK: mov r7, #40, #2 @ encoding: [0x28,0x71,0xa0,0xe3]
@ CHECK: mov r7, #40, #2 @ encoding: [0x28,0x71,0xa0,0xe3]
@ CHECK: mov r7, #40, #2 @ encoding: [0x28,0x71,0xa0,0xe3]
@ CHECK: mov r7, #42, #30 @ encoding: [0x2a,0x7f,0xa0,0xe3]
@ CHECK: movw r6, #65535 @ encoding: [0xff,0x6f,0x0f,0xe3]
@ CHECK: movw r9, #65535 @ encoding: [0xff,0x9f,0x0f,0xe3]
@ CHECK: movs r3, #7 @ encoding: [0x07,0x30,0xb0,0xe3]
@ -1240,6 +1407,8 @@ Lforward:
@------------------------------------------------------------------------------
msr apsr, #5
msr apsr, $5
msr apsr, 5
msr apsr_g, #5
msr apsr_nzcvq, #5
msr APSR_nzcvq, #5
@ -1253,11 +1422,16 @@ Lforward:
msr spsr_fc, #5
msr SPSR_fsxc, #5
msr cpsr_fsxc, #5
msr APSR_nzcvq, #42, #2
msr apsr_nzcvqg, #(0xff << 16)
msr APSR_nzcvq, #42, #2
msr apsr_nzcvqg, #2147483658
msr SPSR_fsxc, #40, #2
msr SPSR_fsxc, $40, $2
msr SPSR_fsxc, 40, 2
msr SPSR_fsxc, (2 * 20), (1 << 1)
@ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3]
@ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3]
@ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3]
@ CHECK: msr APSR_g, #5 @ encoding: [0x05,0xf0,0x24,0xe3]
@ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3]
@ -1272,9 +1446,12 @@ Lforward:
@ CHECK: msr SPSR_fc, #5 @ encoding: [0x05,0xf0,0x69,0xe3]
@ CHECK: msr SPSR_fsxc, #5 @ encoding: [0x05,0xf0,0x6f,0xe3]
@ CHECK: msr CPSR_fsxc, #5 @ encoding: [0x05,0xf0,0x2f,0xe3]
@ CHECK: msr APSR_nzcvq, #2147483658 @ encoding: [0x2a,0xf1,0x28,0xe3]
@ CHECK: msr APSR_nzcvqg, #16711680 @ encoding: [0xff,0xf8,0x2c,0xe3]
@ CHECK: msr APSR_nzcvq, #2147483658 @ encoding: [0x2a,0xf1,0x28,0xe3]
@ CHECK: msr APSR_nzcvqg, #2147483658 @ encoding: [0x2a,0xf1,0x2c,0xe3]
@ CHECK: msr SPSR_fsxc, #40, #2 @ encoding: [0x28,0xf1,0x6f,0xe3]
@ CHECK: msr SPSR_fsxc, #40, #2 @ encoding: [0x28,0xf1,0x6f,0xe3]
@ CHECK: msr SPSR_fsxc, #40, #2 @ encoding: [0x28,0xf1,0x6f,0xe3]
@ CHECK: msr SPSR_fsxc, #40, #2 @ encoding: [0x28,0xf1,0x6f,0xe3]
msr apsr, r0
@ -1326,23 +1503,35 @@ Lforward:
@ MVN (immediate)
@------------------------------------------------------------------------------
mvn r3, #7
mvn r3, $7
mvn r3, 7
mvn r3, -7
mvn r4, #0xff0
mvn r5, #0xff0000
mvn r7, #42, #2
mvn r7, #-2147483638
mvn r7, #40, #2
mvn r7, #(0xff << 16)
mvn r7, #-2147483638
mvn r7, #42, #2
mvn r7, #40, #2
mvn r7, $40, $2
mvn r7, 40, 2
mvn r7, (2 * 20), (1 << 1)
mvns r3, #7
mvneq r4, #0xff0
mvnseq r5, #0xff0000
@ CHECK: mvn r3, #7 @ encoding: [0x07,0x30,0xe0,0xe3]
@ CHECK: mvn r3, #7 @ encoding: [0x07,0x30,0xe0,0xe3]
@ CHECK: mvn r3, #7 @ encoding: [0x07,0x30,0xe0,0xe3]
@ CHECK: mov r3, #6 @ encoding: [0x06,0x30,0xa0,0xe3]
@ CHECK: mvn r4, #4080 @ encoding: [0xff,0x4e,0xe0,0xe3]
@ CHECK: mvn r5, #16711680 @ encoding: [0xff,0x58,0xe0,0xe3]
@ CHECK: mvn r7, #16711680 @ encoding: [0xff,0x78,0xe0,0xe3]
@ CHECK: mvn r7, #-2147483638 @ encoding: [0x2a,0x71,0xe0,0xe3]
@ CHECK: mvn r7, #-2147483638 @ encoding: [0x2a,0x71,0xe0,0xe3]
@ CHECK: mvn r7, #40, #2 @ encoding: [0x28,0x71,0xe0,0xe3]
@ CHECK: mvn r7, #16711680 @ encoding: [0xff,0x78,0xe0,0xe3]
@ CHECK: mvn r7, #40, #2 @ encoding: [0x28,0x71,0xe0,0xe3]
@ CHECK: mvn r7, #40, #2 @ encoding: [0x28,0x71,0xe0,0xe3]
@ CHECK: mvn r7, #40, #2 @ encoding: [0x28,0x71,0xe0,0xe3]
@ CHECK: mvns r3, #7 @ encoding: [0x07,0x30,0xf0,0xe3]
@ CHECK: mvneq r4, #4080 @ encoding: [0xff,0x4e,0xe0,0x03]
@ CHECK: mvnseq r5, #16711680 @ encoding: [0xff,0x58,0xf0,0x03]
@ -1409,10 +1598,15 @@ Lforward:
@ ORR
@------------------------------------------------------------------------------
orr r4, r5, #0xf000
orr r7, r8, #42, #2
orr r7, r8, #-2147483638
orr r7, r8, #40, #2
orr r4, r5, $0xf000
orr r4, r5, 0xf000
orr r7, r8, #(0xff << 16)
orr r7, r8, #-2147483638
orr r7, r8, #42, #2
orr r7, r8, #40, #2
orr r7, r8, $40, $2
orr r7, r8, 40, 2
orr r7, r8, (2 * 20), (1 << 1)
orr r4, r5, r6
orr r4, r5, r6, lsl #5
orr r4, r5, r6, lsr #5
@ -1427,6 +1621,17 @@ Lforward:
@ destination register is optional
orr r5, #0xf000
orr r5, $0xf000
orr r5, 0xf000
orr r7, #(0xff << 16)
orr r7, #-2147483638
orr r7, #42, #2
orr r7, #40, #2
orr r7, $40, $2
orr r7, 40, 2
orr r7, (2 * 20), (1 << 1)
orr r4, r5
orr r4, r5, lsl #5
orr r4, r5, lsr #5
@ -1440,10 +1645,15 @@ Lforward:
orr r4, r5, rrx
@ CHECK: orr r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe3]
@ CHECK: orr r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe3]
@ CHECK: orr r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe3]
@ CHECK: orr r7, r8, #16711680 @ encoding: [0xff,0x78,0x88,0xe3]
@ CHECK: orr r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x88,0xe3]
@ CHECK: orr r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x88,0xe3]
@ CHECK: orr r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe3]
@ CHECK: orr r7, r8, #16711680 @ encoding: [0xff,0x78,0x88,0xe3]
@ CHECK: orr r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe3]
@ CHECK: orr r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe3]
@ CHECK: orr r7, r8, #40, #2 @ encoding: [0x28,0x71,0x88,0xe3]
@ CHECK: orr r4, r5, r6 @ encoding: [0x06,0x40,0x85,0xe1]
@ CHECK: orr r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x85,0xe1]
@ CHECK: orr r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe1]
@ -1457,6 +1667,15 @@ Lforward:
@ CHECK: orr r4, r5, r6, rrx @ encoding: [0x66,0x40,0x85,0xe1]
@ CHECK: orr r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe3]
@ CHECK: orr r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe3]
@ CHECK: orr r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe3]
@ CHECK: orr r7, r7, #16711680 @ encoding: [0xff,0x78,0x87,0xe3]
@ CHECK: orr r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x87,0xe3]
@ CHECK: orr r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x87,0xe3]
@ CHECK: orr r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe3]
@ CHECK: orr r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe3]
@ CHECK: orr r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe3]
@ CHECK: orr r7, r7, #40, #2 @ encoding: [0x28,0x71,0x87,0xe3]
@ CHECK: orr r4, r4, r5 @ encoding: [0x05,0x40,0x84,0xe1]
@ CHECK: orr r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x84,0xe1]
@ CHECK: orr r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe1]
@ -1702,10 +1921,15 @@ Lforward:
@ RSB
@------------------------------------------------------------------------------
rsb r4, r5, #0xf000
rsb r7, r8, #42, #2
rsb r7, r8, #-2147483638
rsb r7, r8, #40, #2
rsb r4, r5, $0xf000
rsb r4, r5, 0xf000
rsb r7, r8, #(0xff << 16)
rsb r7, r8, #-2147483638
rsb r7, r8, #42, #2
rsb r7, r8, #40, #2
rsb r7, r8, $40, $2
rsb r7, r8, 40, 2
rsb r7, r8, (2 * 20), (1 << 1)
rsb r4, r5, r6
rsb r4, r5, r6, lsl #5
rsblo r4, r5, r6, lsr #5
@ -1720,6 +1944,15 @@ Lforward:
@ destination register is optional
rsb r5, #0xf000
rsb r5, $0xf000
rsb r5, 0xf000
rsb r7, #(0xff << 16)
rsb r7, #-2147483638
rsb r7, #42, #2
rsb r7, #40, #2
rsb r7, $40, $2
rsb r7, 40, 2
rsb r7, (2 * 20), (1 << 1)
rsb r4, r5
rsb r4, r5, lsl #5
rsb r4, r5, lsr #5
@ -1733,10 +1966,15 @@ Lforward:
rsb r4, r5, rrx
@ CHECK: rsb r4, r5, #61440 @ encoding: [0x0f,0x4a,0x65,0xe2]
@ CHECK: rsb r4, r5, #61440 @ encoding: [0x0f,0x4a,0x65,0xe2]
@ CHECK: rsb r4, r5, #61440 @ encoding: [0x0f,0x4a,0x65,0xe2]
@ CHECK: rsb r7, r8, #16711680 @ encoding: [0xff,0x78,0x68,0xe2]
@ CHECK: rsb r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x68,0xe2]
@ CHECK: rsb r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x68,0xe2]
@ CHECK: rsb r7, r8, #40, #2 @ encoding: [0x28,0x71,0x68,0xe2]
@ CHECK: rsb r7, r8, #16711680 @ encoding: [0xff,0x78,0x68,0xe2]
@ CHECK: rsb r7, r8, #40, #2 @ encoding: [0x28,0x71,0x68,0xe2]
@ CHECK: rsb r7, r8, #40, #2 @ encoding: [0x28,0x71,0x68,0xe2]
@ CHECK: rsb r7, r8, #40, #2 @ encoding: [0x28,0x71,0x68,0xe2]
@ CHECK: rsb r4, r5, r6 @ encoding: [0x06,0x40,0x65,0xe0]
@ CHECK: rsb r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x65,0xe0]
@ CHECK: rsblo r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x65,0x30]
@ -1750,6 +1988,15 @@ Lforward:
@ CHECK: rsb r4, r5, r6, rrx @ encoding: [0x66,0x40,0x65,0xe0]
@ CHECK: rsb r5, r5, #61440 @ encoding: [0x0f,0x5a,0x65,0xe2]
@ CHECK: rsb r5, r5, #61440 @ encoding: [0x0f,0x5a,0x65,0xe2]
@ CHECK: rsb r5, r5, #61440 @ encoding: [0x0f,0x5a,0x65,0xe2]
@ CHECK: rsb r7, r7, #16711680 @ encoding: [0xff,0x78,0x67,0xe2]
@ CHECK: rsb r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x67,0xe2]
@ CHECK: rsb r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x67,0xe2]
@ CHECK: rsb r7, r7, #40, #2 @ encoding: [0x28,0x71,0x67,0xe2]
@ CHECK: rsb r7, r7, #40, #2 @ encoding: [0x28,0x71,0x67,0xe2]
@ CHECK: rsb r7, r7, #40, #2 @ encoding: [0x28,0x71,0x67,0xe2]
@ CHECK: rsb r7, r7, #40, #2 @ encoding: [0x28,0x71,0x67,0xe2]
@ CHECK: rsb r4, r4, r5 @ encoding: [0x05,0x40,0x64,0xe0]
@ CHECK: rsb r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x64,0xe0]
@ CHECK: rsb r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x64,0xe0]
@ -1765,24 +2012,41 @@ Lforward:
@------------------------------------------------------------------------------
@ RSBS
@------------------------------------------------------------------------------
rsbs r7, r8, #42, #2
rsbs r7, r8, #-2147483638
rsbs r7, r8, #40, #2
rsbs r7, #16711680
rsbs r7, $16711680
rsbs r7, 16711680
rsbs r7, #(0xff << 16)
rsbs r7, r8, #-2147483638
rsbs r7, r8, #42, #2
rsbs r7, r8, #40, #2
rsbs r7, r8, $40, $2
rsbs r7, r8, 40, 2
rsbs r7, r8, (2 * 20), (1 << 1)
@ CHECK: rsbs r7, r7, #16711680 @ encoding: [0xff,0x78,0x77,0xe2]
@ CHECK: rsbs r7, r7, #16711680 @ encoding: [0xff,0x78,0x77,0xe2]
@ CHECK: rsbs r7, r7, #16711680 @ encoding: [0xff,0x78,0x77,0xe2]
@ CHECK: rsbs r7, r7, #16711680 @ encoding: [0xff,0x78,0x77,0xe2]
@ CHECK: rsbs r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x78,0xe2]
@ CHECK: rsbs r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x78,0xe2]
@ CHECK: rsbs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x78,0xe2]
@ CHECK: rsbs r7, r7, #16711680 @ encoding: [0xff,0x78,0x77,0xe2]
@ CHECK: rsbs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x78,0xe2]
@ CHECK: rsbs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x78,0xe2]
@ CHECK: rsbs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x78,0xe2]
@------------------------------------------------------------------------------
@ RSC
@------------------------------------------------------------------------------
rsc r4, r5, #0xf000
rsc r7, r8, #42, #2
rsc r7, r8, #-2147483638
rsc r7, r8, #40, #2
rsc r4, r5, $0xf000
rsc r4, r5, 0xf000
rsc r7, r8, #(0xff << 16)
rsc r7, r8, #-2147483638
rsc r7, r8, #42, #2
rsc r7, r8, #40, #2
rsc r7, r8, $40, $2
rsc r7, r8, 40, 2
rsc r7, r8, (2 * 20), (1 << 1)
rsc r4, r5, r6
rsc r4, r5, r6, lsl #5
rsclo r4, r5, r6, lsr #5
@ -1797,6 +2061,15 @@ Lforward:
@ destination register is optional
rsc r5, #0xf000
rsc r5, $0xf000
rsc r5, 0xf000
rsc r7, #(0xff << 16)
rsc r7, #-2147483638
rsc r7, #42, #2
rsc r7, #40, #2
rsc r7, $40, $2
rsc r7, 40, 2
rsc r7, (2 * 20), (1 << 1)
rsc r4, r5
rsc r4, r5, lsl #5
rsc r4, r5, lsr #5
@ -1809,10 +2082,15 @@ Lforward:
rsc r6, r7, ror r9
@ CHECK: rsc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xe5,0xe2]
@ CHECK: rsc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xe5,0xe2]
@ CHECK: rsc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xe5,0xe2]
@ CHECK: rsc r7, r8, #16711680 @ encoding: [0xff,0x78,0xe8,0xe2]
@ CHECK: rsc r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xe8,0xe2]
@ CHECK: rsc r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xe8,0xe2]
@ CHECK: rsc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xe8,0xe2]
@ CHECK: rsc r7, r8, #16711680 @ encoding: [0xff,0x78,0xe8,0xe2]
@ CHECK: rsc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xe8,0xe2]
@ CHECK: rsc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xe8,0xe2]
@ CHECK: rsc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xe8,0xe2]
@ CHECK: rsc r4, r5, r6 @ encoding: [0x06,0x40,0xe5,0xe0]
@ CHECK: rsc r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0xe5,0xe0]
@ CHECK: rsclo r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0xe5,0x30]
@ -1826,6 +2104,15 @@ Lforward:
@ CHECK: rscs r1, r8, #4064 @ encoding: [0xfe,0x1e,0xf8,0xe2]
@ CHECK: rsc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xe5,0xe2]
@ CHECK: rsc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xe5,0xe2]
@ CHECK: rsc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xe5,0xe2]
@ CHECK: rsc r7, r7, #16711680 @ encoding: [0xff,0x78,0xe7,0xe2]
@ CHECK: rsc r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0xe7,0xe2]
@ CHECK: rsc r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0xe7,0xe2]
@ CHECK: rsc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xe7,0xe2]
@ CHECK: rsc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xe7,0xe2]
@ CHECK: rsc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xe7,0xe2]
@ CHECK: rsc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xe7,0xe2]
@ CHECK: rsc r4, r4, r5 @ encoding: [0x05,0x40,0xe4,0xe0]
@ CHECK: rsc r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0xe4,0xe0]
@ CHECK: rsc r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0xe4,0xe0]
@ -1889,10 +2176,15 @@ Lforward:
@ SBC
@------------------------------------------------------------------------------
sbc r4, r5, #0xf000
sbc r7, r8, #42, #2
sbc r7, r8, #-2147483638
sbc r7, r8, #40, #2
sbc r4, r5, $0xf000
sbc r4, r5, 0xf000
sbc r7, r8, #(0xff << 16)
sbc r7, r8, #-2147483638
sbc r7, r8, #42, #2
sbc r7, r8, #40, #2
sbc r7, r8, $40, $2
sbc r7, r8, 40, 2
sbc r7, r8, (20 * 2), (1 << 1)
sbc r4, r5, r6
sbc r4, r5, r6, lsl #5
sbc r4, r5, r6, lsr #5
@ -1906,6 +2198,15 @@ Lforward:
@ destination register is optional
sbc r5, #0xf000
sbc r5, $0xf000
sbc r5, 0xf000
sbc r7, #(0xff << 16)
sbc r7, #-2147483638
sbc r7, #42, #2
sbc r7, #40, #2
sbc r7, $40, $2
sbc r7, 40, 2
sbc r7, (20 * 2), (1 << 1)
sbc r4, r5
sbc r4, r5, lsl #5
sbc r4, r5, lsr #5
@ -1918,10 +2219,15 @@ Lforward:
sbc r6, r7, ror r9
@ CHECK: sbc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xc5,0xe2]
@ CHECK: sbc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xc5,0xe2]
@ CHECK: sbc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xc5,0xe2]
@ CHECK: sbc r7, r8, #16711680 @ encoding: [0xff,0x78,0xc8,0xe2]
@ CHECK: sbc r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xc8,0xe2]
@ CHECK: sbc r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0xc8,0xe2]
@ CHECK: sbc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe2]
@ CHECK: sbc r7, r8, #16711680 @ encoding: [0xff,0x78,0xc8,0xe2]
@ CHECK: sbc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe2]
@ CHECK: sbc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe2]
@ CHECK: sbc r7, r8, #40, #2 @ encoding: [0x28,0x71,0xc8,0xe2]
@ CHECK: sbc r4, r5, r6 @ encoding: [0x06,0x40,0xc5,0xe0]
@ CHECK: sbc r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0xc5,0xe0]
@ CHECK: sbc r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0xc5,0xe0]
@ -1934,6 +2240,15 @@ Lforward:
@ CHECK: sbc r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0xc7,0xe0]
@ CHECK: sbc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xc5,0xe2]
@ CHECK: sbc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xc5,0xe2]
@ CHECK: sbc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xc5,0xe2]
@ CHECK: sbc r7, r7, #16711680 @ encoding: [0xff,0x78,0xc7,0xe2]
@ CHECK: sbc r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0xc7,0xe2]
@ CHECK: sbc r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0xc7,0xe2]
@ CHECK: sbc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe2]
@ CHECK: sbc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe2]
@ CHECK: sbc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe2]
@ CHECK: sbc r7, r7, #40, #2 @ encoding: [0x28,0x71,0xc7,0xe2]
@ CHECK: sbc r4, r4, r5 @ encoding: [0x05,0x40,0xc4,0xe0]
@ CHECK: sbc r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0xc4,0xe0]
@ CHECK: sbc r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0xc4,0xe0]
@ -2552,10 +2867,15 @@ Lforward:
@ SUB
@------------------------------------------------------------------------------
sub r4, r5, #0xf000
sub r7, r8, #42, #2
sub r7, r8, #-2147483638
sub r7, r8, #40, #2
sub r4, r5, $0xf000
sub r4, r5, 0xf000
sub r7, r8, #(0xff << 16)
sub r7, r8, #-2147483638
sub r7, r8, #42, #2
sub r7, r8, #40, #2
sub r7, r8, $40, $2
sub r7, r8, 40, 2
sub r7, r8, (20 * 2), (1 << 1)
sub r4, r5, r6
sub r4, r5, r6, lsl #5
sub r4, r5, r6, lsr #5
@ -2569,6 +2889,15 @@ Lforward:
@ destination register is optional
sub r5, #0xf000
sub r5, $0xf000
sub r5, 0xf000
sub r7, #(0xff << 16)
sub r7, #-2147483638
sub r7, #42, #2
sub r7, #40, #2
sub r7, $40, $2
sub r7, 40, 2
sub r7, (20 * 2), (1 << 1)
sub r4, r5
sub r4, r5, lsl #5
sub r4, r5, lsr #5
@ -2581,10 +2910,15 @@ Lforward:
sub r6, r7, ror r9
@ CHECK: sub r4, r5, #61440 @ encoding: [0x0f,0x4a,0x45,0xe2]
@ CHECK: sub r4, r5, #61440 @ encoding: [0x0f,0x4a,0x45,0xe2]
@ CHECK: sub r4, r5, #61440 @ encoding: [0x0f,0x4a,0x45,0xe2]
@ CHECK: sub r7, r8, #16711680 @ encoding: [0xff,0x78,0x48,0xe2]
@ CHECK: sub r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x48,0xe2]
@ CHECK: sub r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x48,0xe2]
@ CHECK: sub r7, r8, #40, #2 @ encoding: [0x28,0x71,0x48,0xe2]
@ CHECK: sub r7, r8, #16711680 @ encoding: [0xff,0x78,0x48,0xe2]
@ CHECK: sub r7, r8, #40, #2 @ encoding: [0x28,0x71,0x48,0xe2]
@ CHECK: sub r7, r8, #40, #2 @ encoding: [0x28,0x71,0x48,0xe2]
@ CHECK: sub r7, r8, #40, #2 @ encoding: [0x28,0x71,0x48,0xe2]
@ CHECK: sub r4, r5, r6 @ encoding: [0x06,0x40,0x45,0xe0]
@ CHECK: sub r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x45,0xe0]
@ CHECK: sub r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x45,0xe0]
@ -2598,6 +2932,15 @@ Lforward:
@ CHECK: sub r5, r5, #61440 @ encoding: [0x0f,0x5a,0x45,0xe2]
@ CHECK: sub r5, r5, #61440 @ encoding: [0x0f,0x5a,0x45,0xe2]
@ CHECK: sub r5, r5, #61440 @ encoding: [0x0f,0x5a,0x45,0xe2]
@ CHECK: sub r7, r7, #16711680 @ encoding: [0xff,0x78,0x47,0xe2]
@ CHECK: sub r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x47,0xe2]
@ CHECK: sub r7, r7, #-2147483638 @ encoding: [0x2a,0x71,0x47,0xe2]
@ CHECK: sub r7, r7, #40, #2 @ encoding: [0x28,0x71,0x47,0xe2]
@ CHECK: sub r7, r7, #40, #2 @ encoding: [0x28,0x71,0x47,0xe2
@ CHECK: sub r7, r7, #40, #2 @ encoding: [0x28,0x71,0x47,0xe2]
@ CHECK: sub r7, r7, #40, #2 @ encoding: [0x28,0x71,0x47,0xe2]
@ CHECK: sub r4, r4, r5 @ encoding: [0x05,0x40,0x44,0xe0]
@ CHECK: sub r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x44,0xe0]
@ CHECK: sub r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x44,0xe0]
@ -2618,15 +2961,27 @@ Lforward:
@------------------------------------------------------------------------------
@ SUBS
@------------------------------------------------------------------------------
subs r7, r8, #42, #2
subs r7, r8, #-2147483638
subs r7, r8, #40, #2
subs r7, r8, #16711680
subs r7, r8, $16711680
subs r7, r8, 16711680
subs r7, r8, #(0xff << 16)
subs r7, r8, #-2147483638
subs r7, r8, #42, #2
subs r7, r8, #40, #2
subs r7, r8, $40, $2
subs r7, r8, 40, 2
subs r7, r8, (20 * 2), (1 << 1)
@ CHECK: subs r7, r8, #16711680 @ encoding: [0xff,0x78,0x58,0xe2]
@ CHECK: subs r7, r8, #16711680 @ encoding: [0xff,0x78,0x58,0xe2]
@ CHECK: subs r7, r8, #16711680 @ encoding: [0xff,0x78,0x58,0xe2]
@ CHECK: subs r7, r8, #16711680 @ encoding: [0xff,0x78,0x58,0xe2]
@ CHECK: subs r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x58,0xe2]
@ CHECK: subs r7, r8, #-2147483638 @ encoding: [0x2a,0x71,0x58,0xe2]
@ CHECK: subs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x58,0xe2]
@ CHECK: subs r7, r8, #16711680 @ encoding: [0xff,0x78,0x58,0xe2]
@ CHECK: subs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x58,0xe2]
@ CHECK: subs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x58,0xe2]
@ CHECK: subs r7, r8, #40, #2 @ encoding: [0x28,0x71,0x58,0xe2]
@------------------------------------------------------------------------------
@ SVC
@ -2750,10 +3105,15 @@ Lforward:
@ TEQ
@------------------------------------------------------------------------------
teq r5, #0xf000
teq r7, #42, #2
teq r7, #-2147483638
teq r7, #40, #2
teq r5, $0xf000
teq r5, 0xf000
teq r7, #(0xff << 16)
teq r7, #-2147483638
teq r7, #42, #2
teq r7, #40, #2
teq r7, $40, $2
teq r7, 40, 2
teq r7, (20 * 2), (1 << 1)
teq r4, r5
teq r4, r5, lsl #5
teq r4, r5, lsr #5
@ -2766,10 +3126,15 @@ Lforward:
teq r6, r7, ror r9
@ CHECK: teq r5, #61440 @ encoding: [0x0f,0x0a,0x35,0xe3]
@ CHECK: teq r5, #61440 @ encoding: [0x0f,0x0a,0x35,0xe3]
@ CHECK: teq r5, #61440 @ encoding: [0x0f,0x0a,0x35,0xe3]
@ CHECK: teq r7, #16711680 @ encoding: [0xff,0x08,0x37,0xe3]
@ CHECK: teq r7, #-2147483638 @ encoding: [0x2a,0x01,0x37,0xe3]
@ CHECK: teq r7, #-2147483638 @ encoding: [0x2a,0x01,0x37,0xe3]
@ CHECK: teq r7, #40, #2 @ encoding: [0x28,0x01,0x37,0xe3]
@ CHECK: teq r7, #16711680 @ encoding: [0xff,0x08,0x37,0xe3]
@ CHECK: teq r7, #40, #2 @ encoding: [0x28,0x01,0x37,0xe3]
@ CHECK: teq r7, #40, #2 @ encoding: [0x28,0x01,0x37,0xe3]
@ CHECK: teq r7, #40, #2 @ encoding: [0x28,0x01,0x37,0xe3]
@ CHECK: teq r4, r5 @ encoding: [0x05,0x00,0x34,0xe1]
@ CHECK: teq r4, r5, lsl #5 @ encoding: [0x85,0x02,0x34,0xe1]
@ CHECK: teq r4, r5, lsr #5 @ encoding: [0xa5,0x02,0x34,0xe1]
@ -2786,10 +3151,15 @@ Lforward:
@ TST
@------------------------------------------------------------------------------
tst r5, #0xf000
tst r7, #42, #2
tst r7, #-2147483638
tst r7, #40, #2
tst r5, $0xf000
tst r5, 0xf000
tst r7, #(0xff << 16)
tst r7, #-2147483638
tst r7, #42, #2
tst r7, #40, #2
tst r7, $40, $2
tst r7, 40, 2
tst r7, (20 * 2), (1 << 1)
tst r4, r5
tst r4, r5, lsl #5
tst r4, r5, lsr #5
@ -2802,10 +3172,15 @@ Lforward:
tst r6, r7, ror r9
@ CHECK: tst r5, #61440 @ encoding: [0x0f,0x0a,0x15,0xe3]
@ CHECK: tst r5, #61440 @ encoding: [0x0f,0x0a,0x15,0xe3]
@ CHECK: tst r5, #61440 @ encoding: [0x0f,0x0a,0x15,0xe3]
@ CHECK: tst r7, #16711680 @ encoding: [0xff,0x08,0x17,0xe3]
@ CHECK: tst r7, #-2147483638 @ encoding: [0x2a,0x01,0x17,0xe3]
@ CHECK: tst r7, #-2147483638 @ encoding: [0x2a,0x01,0x17,0xe3]
@ CHECK: tst r7, #40, #2 @ encoding: [0x28,0x01,0x17,0xe3]
@ CHECK: tst r7, #16711680 @ encoding: [0xff,0x08,0x17,0xe3]
@ CHECK: tst r7, #40, #2 @ encoding: [0x28,0x01,0x17,0xe3]
@ CHECK: tst r7, #40, #2 @ encoding: [0x28,0x01,0x17,0xe3]
@ CHECK: tst r7, #40, #2 @ encoding: [0x28,0x01,0x17,0xe3]
@ CHECK: tst r4, r5 @ encoding: [0x05,0x00,0x14,0xe1]
@ CHECK: tst r4, r5, lsl #5 @ encoding: [0x85,0x02,0x14,0xe1]
@ CHECK: tst r4, r5, lsr #5 @ encoding: [0xa5,0x02,0x14,0xe1]