arm_instructions.s revision 1b10d5be40313b4e246e85cf375dfa3452ab306b
1@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding %s | FileCheck %s
2
3@ CHECK: nop
4@ CHECK: encoding: [0x00,0xf0,0x20,0xe3]
5        nop
6
7@ CHECK: nopeq
8@ CHECK: encoding: [0x00,0xf0,0x20,0x03]
9        nopeq
10
11@ CHECK: trap
12@ CHECK: encoding: [0xfe,0xde,0xff,0xe7]
13        trap
14
15@ CHECK: bx	lr
16@ CHECK: encoding: [0x1e,0xff,0x2f,0xe1]
17        bx lr
18
19@ CHECK: vqdmull.s32	q8, d17, d16
20@ CHECK: encoding: [0xa0,0x0d,0xe1,0xf2]
21        vqdmull.s32     q8, d17, d16
22
23@ CHECK: ldmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
24@ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9]
25@ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8]
26@ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9]
27        ldmia     r2, {r1,r3-r6,sp}
28        ldmib     r2, {r1,r3-r6,sp}
29        ldmda     r2, {r1,r3-r6,sp}
30        ldmdb     r2, {r1,r3-r6,sp}
31
32@ CHECK: stmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
33@ CHECK: stmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe9]
34@ CHECK: stmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe8]
35@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
36        stmia     r2, {r1,r3-r6,sp}
37        stmib     r2, {r1,r3-r6,sp}
38        stmda     r2, {r1,r3-r6,sp}
39        stmdb     r2, {r1,r3-r6,sp}
40
41@ CHECK: ldmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8]
42@ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9]
43@ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8]
44@ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9]
45        ldmia     r2!, {r1,r3-r6,sp}
46        ldmib     r2!, {r1,r3-r6,sp}
47        ldmda     r2!, {r1,r3-r6,sp}
48        ldmdb     r2!, {r1,r3-r6,sp}
49
50@ CHECK: stmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe8]
51@ CHECK: stmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe9]
52@ CHECK: stmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe8]
53@ CHECK: stmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe9]
54        stmia     r2!, {r1,r3-r6,sp}
55        stmib     r2!, {r1,r3-r6,sp}
56        stmda     r2!, {r1,r3-r6,sp}
57        stmdb     r2!, {r1,r3-r6,sp}
58
59@ CHECK: and	r1, r2, r3 @ encoding: [0x03,0x10,0x02,0xe0]
60        and r1,r2,r3
61
62@ FIXME: This is wrong, we are dropping the 's' for now.
63@ CHECK-FIXME: ands	r1, r2, r3 @ encoding: [0x03,0x10,0x12,0xe0]
64        ands r1,r2,r3
65
66@ CHECK: eor	r1, r2, r3 @ encoding: [0x03,0x10,0x22,0xe0]
67        eor r1,r2,r3
68
69@ FIXME: This is wrong, we are dropping the 's' for now.
70@ CHECK-FIXME: eors	r1, r2, r3 @ encoding: [0x03,0x10,0x32,0xe0]
71        eors r1,r2,r3
72
73@ CHECK: sub	r1, r2, r3 @ encoding: [0x03,0x10,0x42,0xe0]
74        sub r1,r2,r3
75
76@ FIXME: This is wrong, we are dropping the 's' for now.
77@ CHECK-FIXME: subs	r1, r2, r3 @ encoding: [0x03,0x10,0x52,0xe0]
78        subs r1,r2,r3
79
80@ CHECK: add	r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe0]
81        add r1,r2,r3
82
83@ FIXME: This is wrong, we are dropping the 's' for now.
84@ CHECK-FIXME: adds	r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe0]
85        adds r1,r2,r3
86
87@ CHECK: adc	r1, r2, r3 @ encoding: [0x03,0x10,0xa2,0xe0]
88        adc r1,r2,r3
89
90@ CHECK: sbc	r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe0]
91        sbc r1,r2,r3
92
93@ CHECK: orr	r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe1]
94        orr r1,r2,r3
95
96@ FIXME: This is wrong, we are dropping the 's' for now.
97@ CHECK-FIXME: orrs	r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe1]
98        orrs r1,r2,r3
99
100@ CHECK: bic	r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe1]
101        bic r1,r2,r3
102
103@ FIXME: This is wrong, we are dropping the 's' for now.
104@ CHECK-FIXME: bics	r1, r2, r3 @ encoding: [0x03,0x10,0xd2,0xe1]
105        bics r1,r2,r3
106
107@ CHECK: mov	r1, r2 @ encoding: [0x02,0x10,0xa0,0xe1]
108        mov r1,r2
109
110@ CHECK: mvn	r1, r2 @ encoding: [0x02,0x10,0xe0,0xe1]
111        mvn r1,r2
112
113@ FIXME: This is wrong, we are dropping the 's' for now.
114@ CHECK-FIXME: mvns	r1, r2 @ encoding: [0x02,0x10,0xf0,0xe1]
115        mvns r1,r2
116
117@ CHECK: rsb	r1, r2, r3 @ encoding: [0x03,0x10,0x62,0xe0]
118        rsb r1,r2,r3
119
120@ CHECK: rsc	r1, r2, r3 @ encoding: [0x03,0x10,0xe2,0xe0]
121        rsc r1,r2,r3
122
123@ FIXME: This is broken, CCOut operands don't work correctly when their presence
124@ may depend on flags.
125@ CHECK-FIXME:: mlas	r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0xe0]
126@        mlas r1,r2,r3,r4
127
128@ CHECK: bfi  r0, r0, #5, #7 @ encoding: [0x90,0x02,0xcb,0xe7]
129        bfi  r0, r0, #5, #7
130
131@ CHECK: bkpt  #10 @ encoding: [0x7a,0x00,0x20,0xe1]
132        bkpt  #10
133
134@ CHECK: isb @ encoding: [0x6f,0xf0,0x7f,0xf5]
135        isb
136@ CHECK: mrs  r8, cpsr @ encoding: [0x00,0x80,0x0f,0xe1]
137        mrs  r8, cpsr
138
139@ CHECK: mcr  p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xee]
140        mcr  p7, #1, r5, c1, c1, #4
141@ CHECK: mrc  p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xee]
142        mrc  p14, #0, r1, c1, c2, #4
143@ CHECK: mcrr  p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xec]
144        mcrr  p7, #1, r5, r4, c1
145@ CHECK: mrrc  p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xec]
146        mrrc  p7, #1, r5, r4, c1
147
148@ CHECK: mcr2  p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xfe]
149        mcr2  p7, #1, r5, c1, c1, #4
150@ CHECK: mrc2  p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xfe]
151        mrc2  p14, #0, r1, c1, c2, #4
152@ CHECK: mcrr2  p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xfc]
153        mcrr2  p7, #1, r5, r4, c1
154@ CHECK: mrrc2  p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xfc]
155        mrrc2  p7, #1, r5, r4, c1
156
157@ CHECK: cdp  p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee]
158        cdp  p7, #1, c1, c1, c1, #4
159@ CHECK: cdp2  p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
160        cdp2  p7, #1, c1, c1, c1, #4
161
162@ CHECK: clrex @ encoding: [0x1f,0xf0,0x7f,0xf5]
163        clrex
164
165@ CHECK: clz  r9, r0 @ encoding: [0x10,0x9f,0x6f,0xe1]
166        clz  r9, r0
167
168@ CHECK: qadd  r1, r2, r3 @ encoding: [0x52,0x10,0x03,0xe1]
169        qadd  r1, r2, r3
170
171@ CHECK: qsub  r1, r2, r3 @ encoding: [0x52,0x10,0x23,0xe1]
172        qsub  r1, r2, r3
173
174@ CHECK: qdadd  r1, r2, r3 @ encoding: [0x52,0x10,0x43,0xe1]
175        qdadd  r1, r2, r3
176
177@ CHECK: qdsub  r1, r2, r3 @ encoding: [0x52,0x10,0x63,0xe1]
178        qdsub  r1, r2, r3
179
180@ CHECK: wfe @ encoding: [0x02,0xf0,0x20,0xe3]
181        wfe
182
183@ CHECK: wfi @ encoding: [0x03,0xf0,0x20,0xe3]
184        wfi
185
186@ CHECK: yield @ encoding: [0x01,0xf0,0x20,0xe3]
187        yield
188
189@ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3]
190        nop
191