1 # RUN: llvm-mc -triple=thumbv6-apple-darwin -disassemble -show-encoding < %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 #------------------------------------------------------------------------------
60 #------------------------------------------------------------------------------
62 #------------------------------------------------------------------------------
63 # CHECK: asrs r2, r3, #32
64 # CHECK: asrs r2, r3, #5
65 # CHECK: asrs r2, r3, #1
71 #------------------------------------------------------------------------------
73 #------------------------------------------------------------------------------
78 #------------------------------------------------------------------------------
80 #------------------------------------------------------------------------------
85 #------------------------------------------------------------------------------
87 #------------------------------------------------------------------------------
88 # CHECK: bls #128 @ encoding: [0x40,0xd9]
89 # CHECK: beq #-256 @ encoding: [0x80,0xd0]
94 #------------------------------------------------------------------------------
96 #------------------------------------------------------------------------------
103 #------------------------------------------------------------------------------
105 #------------------------------------------------------------------------------
110 #------------------------------------------------------------------------------
112 #------------------------------------------------------------------------------
117 #------------------------------------------------------------------------------
119 #------------------------------------------------------------------------------
124 #------------------------------------------------------------------------------
126 #------------------------------------------------------------------------------
135 #------------------------------------------------------------------------------
137 #------------------------------------------------------------------------------
142 #------------------------------------------------------------------------------
144 #------------------------------------------------------------------------------
145 # CHECK: ldm r3, {r0, r1, r2, r3, r4, r5, r6, r7}
146 # CHECK: ldm r2!, {r1, r3, r4, r5, r7}
147 # CHECK: ldm r1, {r1}
154 #------------------------------------------------------------------------------
156 #------------------------------------------------------------------------------
157 # CHECK: ldr r1, [r5]
158 # CHECK: ldr r2, [r6, #32]
159 # CHECK: ldr r3, [r7, #124]
160 # CHECK: ldr r1, [sp]
161 # CHECK: ldr r2, [sp, #24]
162 # CHECK: ldr r3, [sp, #1020]
163 # CHECK: ldr r1, [pc, #12]
174 #------------------------------------------------------------------------------
176 #------------------------------------------------------------------------------
177 # CHECK: ldr r1, [r2, r3]
182 #------------------------------------------------------------------------------
184 #------------------------------------------------------------------------------
185 # CHECK: ldrb r4, [r3]
186 # CHECK: ldrb r5, [r6]
187 # CHECK: ldrb r6, [r7, #31]
194 #------------------------------------------------------------------------------
196 #------------------------------------------------------------------------------
197 # CHECK: ldrb r6, [r4, r5]
202 #------------------------------------------------------------------------------
204 #------------------------------------------------------------------------------
205 # CHECK: ldrh r3, [r3]
206 # CHECK: ldrh r4, [r6, #2]
207 # CHECK: ldrh r5, [r7, #62]
213 #------------------------------------------------------------------------------
215 #------------------------------------------------------------------------------
216 # CHECK: ldrh r6, [r2, r6]
221 #------------------------------------------------------------------------------
223 #------------------------------------------------------------------------------
224 # CHECK: ldrsb r6, [r2, r6]
225 # CHECK: ldrsh r3, [r7, r1]
230 #------------------------------------------------------------------------------
232 #------------------------------------------------------------------------------
234 # CHECK: lsls r4, r5, #4
240 #------------------------------------------------------------------------------
242 #------------------------------------------------------------------------------
248 #------------------------------------------------------------------------------
250 #------------------------------------------------------------------------------
251 # CHECK: lsrs r1, r3, #1
252 # CHECK: lsrs r1, r3, #32
258 #------------------------------------------------------------------------------
260 #------------------------------------------------------------------------------
265 #------------------------------------------------------------------------------
267 #------------------------------------------------------------------------------
269 # CHECK: movs r2, #255
270 # CHECK: movs r2, #23
277 #------------------------------------------------------------------------------
279 #------------------------------------------------------------------------------
287 #------------------------------------------------------------------------------
289 #------------------------------------------------------------------------------
290 # CHECK: muls r1, r2, r1
297 #------------------------------------------------------------------------------
299 #------------------------------------------------------------------------------
304 #------------------------------------------------------------------------------
306 #------------------------------------------------------------------------------
307 # CHECK: rsbs r3, r4, #0
312 #------------------------------------------------------------------------------
314 #------------------------------------------------------------------------------
320 #------------------------------------------------------------------------------
322 #------------------------------------------------------------------------------
327 #------------------------------------------------------------------------------
329 #------------------------------------------------------------------------------
330 # CHECK: pop {r2, r3, r6}
335 #------------------------------------------------------------------------------
337 #------------------------------------------------------------------------------
338 # CHECK: push {r1, r2, r7}
343 #------------------------------------------------------------------------------
345 #------------------------------------------------------------------------------
347 # CHECK: rev16 r7, r2
348 # CHECK: revsh r5, r1
355 #------------------------------------------------------------------------------
357 #------------------------------------------------------------------------------
362 #------------------------------------------------------------------------------
364 #------------------------------------------------------------------------------
365 # CHECK: rsbs r1, r3, #0
370 #------------------------------------------------------------------------------
372 #------------------------------------------------------------------------------
378 #------------------------------------------------------------------------------
380 #------------------------------------------------------------------------------
387 #------------------------------------------------------------------------------
389 #------------------------------------------------------------------------------
390 # CHECK: stm r1!, {r2, r6}
391 # CHECK: stm r1!, {r1, r2, r3, r7}
397 #------------------------------------------------------------------------------
399 #------------------------------------------------------------------------------
400 # CHECK: str r2, [r7]
401 # CHECK: str r2, [r7]
402 # CHECK: str r5, [r1, #4]
403 # CHECK: str r3, [r7, #124]
404 # CHECK: str r2, [sp]
405 # CHECK: str r3, [sp]
406 # CHECK: str r4, [sp, #20]
407 # CHECK: str r5, [sp, #1020]
419 #------------------------------------------------------------------------------
421 #------------------------------------------------------------------------------
422 # CHECK: str r2, [r7, r3]
427 #------------------------------------------------------------------------------
429 #------------------------------------------------------------------------------
430 # CHECK: strb r4, [r3]
431 # CHECK: strb r5, [r6]
432 # CHECK: strb r6, [r7, #31]
439 #------------------------------------------------------------------------------
441 #------------------------------------------------------------------------------
442 # CHECK: strb r6, [r4, r5]
447 #------------------------------------------------------------------------------
449 #------------------------------------------------------------------------------
450 # CHECK: strh r3, [r3]
451 # CHECK: strh r4, [r6, #2]
452 # CHECK: strh r5, [r7, #62]
459 #------------------------------------------------------------------------------
461 #------------------------------------------------------------------------------
462 # CHECK: strh r6, [r2, r6]
467 #------------------------------------------------------------------------------
469 #------------------------------------------------------------------------------
470 # CHECK: subs r1, r2, #3
478 #------------------------------------------------------------------------------
480 #------------------------------------------------------------------------------
481 # CHECK: subs r1, r2, r3
485 #------------------------------------------------------------------------------
486 # SUB (SP minus immediate)
487 #------------------------------------------------------------------------------
489 # CHECK: sub sp, #508
494 #------------------------------------------------------------------------------
496 #------------------------------------------------------------------------------
504 #------------------------------------------------------------------------------
506 #------------------------------------------------------------------------------
514 #------------------------------------------------------------------------------
516 #------------------------------------------------------------------------------
522 #------------------------------------------------------------------------------
524 #------------------------------------------------------------------------------