1 # RUN: llvm-mc -triple=thumbv6-apple-darwin -disassemble < %s | FileCheck %s
3 #------------------------------------------------------------------------------
5 #------------------------------------------------------------------------------
11 #------------------------------------------------------------------------------
13 #------------------------------------------------------------------------------
14 # CHECK: adds r1, r2, #3
15 # CHECK: adds r2, r2, #3
22 #------------------------------------------------------------------------------
24 #------------------------------------------------------------------------------
25 # CHECK: adds r1, r2, r3
31 #------------------------------------------------------------------------------
32 # ADD (SP plus immediate)
33 #------------------------------------------------------------------------------
36 # CHECK: add r2, sp, #8
37 # CHECK: add r2, sp, #1020
45 #------------------------------------------------------------------------------
46 # ADD (SP plus register)
47 #------------------------------------------------------------------------------
49 # CHECK: add r2, sp, r2
54 #------------------------------------------------------------------------------
56 #------------------------------------------------------------------------------
57 # CHECK: asrs r2, r3, #32
58 # CHECK: asrs r2, r3, #5
59 # CHECK: asrs r2, r3, #1
65 #------------------------------------------------------------------------------
67 #------------------------------------------------------------------------------
72 #------------------------------------------------------------------------------
74 #------------------------------------------------------------------------------
79 #------------------------------------------------------------------------------
81 #------------------------------------------------------------------------------
88 #------------------------------------------------------------------------------
90 #------------------------------------------------------------------------------
95 #------------------------------------------------------------------------------
97 #------------------------------------------------------------------------------
102 #------------------------------------------------------------------------------
104 #------------------------------------------------------------------------------
109 #------------------------------------------------------------------------------
111 #------------------------------------------------------------------------------
120 #------------------------------------------------------------------------------
122 #------------------------------------------------------------------------------
127 #------------------------------------------------------------------------------
129 #------------------------------------------------------------------------------
130 # CHECK: ldm r3, {r0, r1, r2, r3, r4, r5, r6, r7}
131 # CHECK: ldm r2!, {r1, r3, r4, r5, r7}
132 # CHECK: ldm r1, {r1}
139 #------------------------------------------------------------------------------
141 #------------------------------------------------------------------------------
142 # CHECK: ldr r1, [r5]
143 # CHECK: ldr r2, [r6, #32]
144 # CHECK: ldr r3, [r7, #124]
145 # CHECK: ldr r1, [sp]
146 # CHECK: ldr r2, [sp, #24]
147 # CHECK: ldr r3, [sp, #1020]
157 #------------------------------------------------------------------------------
159 #------------------------------------------------------------------------------
160 # CHECK: ldr r1, [r2, r3]
165 #------------------------------------------------------------------------------
167 #------------------------------------------------------------------------------
168 # CHECK: ldrb r4, [r3]
169 # CHECK: ldrb r5, [r6]
170 # CHECK: ldrb r6, [r7, #31]
177 #------------------------------------------------------------------------------
179 #------------------------------------------------------------------------------
180 # CHECK: ldrb r6, [r4, r5]
185 #------------------------------------------------------------------------------
187 #------------------------------------------------------------------------------
188 # CHECK: ldrh r3, [r3]
189 # CHECK: ldrh r4, [r6, #2]
190 # CHECK: ldrh r5, [r7, #62]
196 #------------------------------------------------------------------------------
198 #------------------------------------------------------------------------------
199 # CHECK: ldrh r6, [r2, r6]
204 #------------------------------------------------------------------------------
206 #------------------------------------------------------------------------------
207 # CHECK: ldrsb r6, [r2, r6]
208 # CHECK: ldrsh r3, [r7, r1]
213 #------------------------------------------------------------------------------
215 #------------------------------------------------------------------------------
217 # CHECK: lsls r4, r5, #4
223 #------------------------------------------------------------------------------
225 #------------------------------------------------------------------------------
231 #------------------------------------------------------------------------------
233 #------------------------------------------------------------------------------
234 # CHECK: lsrs r1, r3, #1
235 # CHECK: lsrs r1, r3, #32
241 #------------------------------------------------------------------------------
243 #------------------------------------------------------------------------------
248 #------------------------------------------------------------------------------
250 #------------------------------------------------------------------------------
252 # CHECK: movs r2, #255
253 # CHECK: movs r2, #23
260 #------------------------------------------------------------------------------
262 #------------------------------------------------------------------------------
270 #------------------------------------------------------------------------------
272 #------------------------------------------------------------------------------
273 # CHECK: muls r1, r2, r1
280 #------------------------------------------------------------------------------
282 #------------------------------------------------------------------------------
287 #------------------------------------------------------------------------------
289 #------------------------------------------------------------------------------
290 # CHECK: rsbs r3, r4, #0
295 #------------------------------------------------------------------------------
297 #------------------------------------------------------------------------------
303 #------------------------------------------------------------------------------
305 #------------------------------------------------------------------------------
310 #------------------------------------------------------------------------------
312 #------------------------------------------------------------------------------
313 # CHECK: pop {r2, r3, r6}
318 #------------------------------------------------------------------------------
320 #------------------------------------------------------------------------------
321 # CHECK: push {r1, r2, r7}
326 #------------------------------------------------------------------------------
328 #------------------------------------------------------------------------------
330 # CHECK: rev16 r7, r2
331 # CHECK: revsh r5, r1
338 #------------------------------------------------------------------------------
340 #------------------------------------------------------------------------------
345 #------------------------------------------------------------------------------
347 #------------------------------------------------------------------------------
348 # CHECK: rsbs r1, r3, #0
353 #------------------------------------------------------------------------------
355 #------------------------------------------------------------------------------
361 #------------------------------------------------------------------------------
363 #------------------------------------------------------------------------------
370 #------------------------------------------------------------------------------
372 #------------------------------------------------------------------------------
373 # CHECK: stm r1!, {r2, r6}
374 # CHECK: stm r1!, {r1, r2, r3, r7}
380 #------------------------------------------------------------------------------
382 #------------------------------------------------------------------------------
383 # CHECK: str r2, [r7]
384 # CHECK: str r2, [r7]
385 # CHECK: str r5, [r1, #4]
386 # CHECK: str r3, [r7, #124]
387 # CHECK: str r2, [sp]
388 # CHECK: str r3, [sp]
389 # CHECK: str r4, [sp, #20]
390 # CHECK: str r5, [sp, #1020]
402 #------------------------------------------------------------------------------
404 #------------------------------------------------------------------------------
405 # CHECK: str r2, [r7, r3]
410 #------------------------------------------------------------------------------
412 #------------------------------------------------------------------------------
413 # CHECK: strb r4, [r3]
414 # CHECK: strb r5, [r6]
415 # CHECK: strb r6, [r7, #31]
422 #------------------------------------------------------------------------------
424 #------------------------------------------------------------------------------
425 # CHECK: strb r6, [r4, r5]
430 #------------------------------------------------------------------------------
432 #------------------------------------------------------------------------------
433 # CHECK: strh r3, [r3]
434 # CHECK: strh r4, [r6, #2]
435 # CHECK: strh r5, [r7, #62]
442 #------------------------------------------------------------------------------
444 #------------------------------------------------------------------------------
445 # CHECK: strh r6, [r2, r6]
450 #------------------------------------------------------------------------------
452 #------------------------------------------------------------------------------
453 # CHECK: subs r1, r2, #3
461 #------------------------------------------------------------------------------
463 #------------------------------------------------------------------------------
464 # CHECK: subs r1, r2, r3
468 #------------------------------------------------------------------------------
469 # SUB (SP minus immediate)
470 #------------------------------------------------------------------------------
472 # CHECK: sub sp, #508
477 #------------------------------------------------------------------------------
479 #------------------------------------------------------------------------------
487 #------------------------------------------------------------------------------
489 #------------------------------------------------------------------------------
497 #------------------------------------------------------------------------------
499 #------------------------------------------------------------------------------
505 #------------------------------------------------------------------------------
507 #------------------------------------------------------------------------------
515 #------------------------------------------------------------------------------
517 #------------------------------------------------------------------------------