1 @ RUN: llvm-mc -triple armv6t2-linux-eabi -filetype asm -o - %s 2>&1 \
4 @ RUN: not llvm-mc -triple armv7-linux-eabi -filetype asm -o - %s 2>&1 \
5 @ RUN: | FileCheck %s -check-prefix CHECK -check-prefix CHECK-V7
14 @ CHECK: warning: use of SP or PC in the list is deprecated
15 @ CHECK: stm sp!, {r0, pc}
18 @ CHECK: warning: use of SP or PC in the list is deprecated
19 @ CHECK: stm r0!, {r0, sp}
22 @ CHECK: warning: use of SP or PC in the list is deprecated
23 @ CHECK: stm r1!, {r0, sp, pc}
26 @ CHECK: warning: use of SP or PC in the list is deprecated
27 @ CHECK: stm r2!, {sp, pc}
30 @ CHECK: warning: use of SP or PC in the list is deprecated
31 @ CHECK: stm sp!, {pc}
34 @ CHECK: warning: use of SP or PC in the list is deprecated
35 @ CHECK: stm r0!, {sp}
42 @ CHECK: warning: use of SP or PC in the list is deprecated
43 @ CHECK: stmda sp!, {r0, pc}
46 @ CHECK: warning: use of SP or PC in the list is deprecated
47 @ CHECK: stmda r0!, {r0, sp}
49 stmda r1!, {r0, sp, pc}
50 @ CHECK: warning: use of SP or PC in the list is deprecated
51 @ CHECK: stmda r1!, {r0, sp, pc}
54 @ CHECK: warning: use of SP or PC in the list is deprecated
55 @ CHECK: stmda r2!, {sp, pc}
58 @ CHECK: warning: use of SP or PC in the list is deprecated
59 @ CHECK: stmda sp!, {pc}
62 @ CHECK: warning: use of SP or PC in the list is deprecated
63 @ CHECK: stmda r0!, {sp}
70 @ CHECK: warning: use of SP or PC in the list is deprecated
71 @ CHECK: stmdb sp!, {r0, pc}
74 @ CHECK: warning: use of SP or PC in the list is deprecated
75 @ CHECK: stmdb r0!, {r0, sp}
77 stmdb r1!, {r0, sp, pc}
78 @ CHECK: warning: use of SP or PC in the list is deprecated
79 @ CHECK: stmdb r1!, {r0, sp, pc}
82 @ CHECK: warning: use of SP or PC in the list is deprecated
83 @ CHECK: stmdb r2!, {sp, pc}
86 @ CHECK: warning: use of SP or PC in the list is deprecated
87 @ CHECK: stmdb sp!, {pc}
90 @ CHECK: warning: use of SP or PC in the list is deprecated
91 @ CHECK: stmdb r0!, {sp}
98 @ CHECK: warning: use of SP or PC in the list is deprecated
99 @ CHECK: stmib sp!, {r0, pc}
102 @ CHECK: warning: use of SP or PC in the list is deprecated
103 @ CHECK: stmib r0!, {r0, sp}
105 stmib r1!, {r0, sp, pc}
106 @ CHECK: warning: use of SP or PC in the list is deprecated
107 @ CHECK: stmib r1!, {r0, sp, pc}
110 @ CHECK: warning: use of SP or PC in the list is deprecated
111 @ CHECK: stmib r2!, {sp, pc}
114 @ CHECK: warning: use of SP or PC in the list is deprecated
115 @ CHECK: stmib sp!, {pc}
118 @ CHECK: warning: use of SP or PC in the list is deprecated
119 @ CHECK: stmib r0!, {sp}
127 @ CHECK: warning: use of SP or PC in the list is deprecated
128 @ CHECK: push {r0, pc}
131 @ CHECK: warning: use of SP or PC in the list is deprecated
132 @ CHECK: push {r0, sp}
135 @ CHECK: warning: use of SP or PC in the list is deprecated
136 @ CHECK: push {r0, sp, pc}
139 @ CHECK: warning: use of SP or PC in the list is deprecated
140 @ CHECK: push {sp, pc}
143 @ CHECK: warning: use of SP or PC in the list is deprecated
147 @ CHECK: warning: use of SP or PC in the list is deprecated
155 @ CHECK: warning: use of SP in the list is deprecated
157 @ CHECK: warning: use of SP in the list is deprecated
158 ldm r0!, {r1, lr, pc}
159 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
161 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
164 .type ldmda,%function
167 @ CHECK: warning: use of SP in the list is deprecated
169 @ CHECK: warning: use of SP in the list is deprecated
170 ldmda r0!, {r1, lr, pc}
171 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
173 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
176 .type ldmdb,%function
179 @ CHECK: warning: use of SP in the list is deprecated
181 @ CHECK: warning: use of SP in the list is deprecated
182 ldmdb r0!, {r1, lr, pc}
183 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
185 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
188 .type ldmib,%function
191 @ CHECK: warning: use of SP in the list is deprecated
193 @ CHECK: warning: use of SP in the list is deprecated
194 ldmib r0!, {r1, lr, pc}
195 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
197 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
203 @ CHECK: warning: use of SP in the list is deprecated
204 @ CHECK-V7: error: writeback register not allowed in register list
206 @ CHECK: warning: use of SP in the list is deprecated
207 @ CHECK-V7: error: writeback register not allowed in register list
209 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
211 @ CHECK: warning: use of LR and PC simultaneously in the list is deprecated
214 .type valid,%function
217 @ CHECK: stmdaeq r0, {r0}
219 @ CHECK: ldmdaeq r0, {r0}
221 @ CHECK: pop {r0, pc}