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 #------------------------------------------------------------------------------
59 # CHECK: adr r3, #1020
64 #------------------------------------------------------------------------------
66 #------------------------------------------------------------------------------
67 # CHECK: asrs r2, r3, #32
68 # CHECK: asrs r2, r3, #5
69 # CHECK: asrs r2, r3, #1
75 #------------------------------------------------------------------------------
77 #------------------------------------------------------------------------------
82 #------------------------------------------------------------------------------
84 #------------------------------------------------------------------------------
89 #------------------------------------------------------------------------------
91 #------------------------------------------------------------------------------
92 # CHECK: bls #128 @ encoding: [0x40,0xd9]
93 # CHECK: beq #-256 @ encoding: [0x80,0xd0]
98 #------------------------------------------------------------------------------
100 #------------------------------------------------------------------------------
107 #------------------------------------------------------------------------------
109 #------------------------------------------------------------------------------
114 #------------------------------------------------------------------------------
116 #------------------------------------------------------------------------------
121 #------------------------------------------------------------------------------
123 #------------------------------------------------------------------------------
128 #------------------------------------------------------------------------------
130 #------------------------------------------------------------------------------
139 #------------------------------------------------------------------------------
141 #------------------------------------------------------------------------------
146 #------------------------------------------------------------------------------
148 #------------------------------------------------------------------------------
149 # CHECK: ldm r3, {r0, r1, r2, r3, r4, r5, r6, r7}
150 # CHECK: ldm r2!, {r1, r3, r4, r5, r7}
151 # CHECK: ldm r1, {r1}
158 #------------------------------------------------------------------------------
160 #------------------------------------------------------------------------------
161 # CHECK: ldr r1, [r5]
162 # CHECK: ldr r2, [r6, #32]
163 # CHECK: ldr r3, [r7, #124]
164 # CHECK: ldr r1, [sp]
165 # CHECK: ldr r2, [sp, #24]
166 # CHECK: ldr r3, [sp, #1020]
167 # CHECK: ldr r1, [pc, #12]
178 #------------------------------------------------------------------------------
180 #------------------------------------------------------------------------------
181 # CHECK: ldr r1, [r2, r3]
186 #------------------------------------------------------------------------------
188 #------------------------------------------------------------------------------
189 # CHECK: ldrb r4, [r3]
190 # CHECK: ldrb r5, [r6]
191 # CHECK: ldrb r6, [r7, #31]
198 #------------------------------------------------------------------------------
200 #------------------------------------------------------------------------------
201 # CHECK: ldrb r6, [r4, r5]
206 #------------------------------------------------------------------------------
208 #------------------------------------------------------------------------------
209 # CHECK: ldrh r3, [r3]
210 # CHECK: ldrh r4, [r6, #2]
211 # CHECK: ldrh r5, [r7, #62]
217 #------------------------------------------------------------------------------
219 #------------------------------------------------------------------------------
220 # CHECK: ldrh r6, [r2, r6]
225 #------------------------------------------------------------------------------
227 #------------------------------------------------------------------------------
228 # CHECK: ldrsb r6, [r2, r6]
229 # CHECK: ldrsh r3, [r7, r1]
234 #------------------------------------------------------------------------------
236 #------------------------------------------------------------------------------
238 # CHECK: lsls r4, r5, #4
244 #------------------------------------------------------------------------------
246 #------------------------------------------------------------------------------
252 #------------------------------------------------------------------------------
254 #------------------------------------------------------------------------------
255 # CHECK: lsrs r1, r3, #1
256 # CHECK: lsrs r1, r3, #32
262 #------------------------------------------------------------------------------
264 #------------------------------------------------------------------------------
269 #------------------------------------------------------------------------------
271 #------------------------------------------------------------------------------
273 # CHECK: movs r2, #255
274 # CHECK: movs r2, #23
281 #------------------------------------------------------------------------------
283 #------------------------------------------------------------------------------
293 #------------------------------------------------------------------------------
295 #------------------------------------------------------------------------------
296 # CHECK: muls r1, r2, r1
303 #------------------------------------------------------------------------------
305 #------------------------------------------------------------------------------
310 #------------------------------------------------------------------------------
312 #------------------------------------------------------------------------------
313 # CHECK: rsbs r3, r4, #0
318 #------------------------------------------------------------------------------
320 #------------------------------------------------------------------------------
325 #------------------------------------------------------------------------------
327 #------------------------------------------------------------------------------
328 # CHECK: pop {r2, r3, r6}
333 #------------------------------------------------------------------------------
335 #------------------------------------------------------------------------------
336 # CHECK: push {r1, r2, r7}
341 #------------------------------------------------------------------------------
343 #------------------------------------------------------------------------------
345 # CHECK: rev16 r7, r2
346 # CHECK: revsh r5, r1
353 #------------------------------------------------------------------------------
355 #------------------------------------------------------------------------------
360 #------------------------------------------------------------------------------
362 #------------------------------------------------------------------------------
363 # CHECK: rsbs r1, r3, #0
368 #------------------------------------------------------------------------------
370 #------------------------------------------------------------------------------
376 #------------------------------------------------------------------------------
378 #------------------------------------------------------------------------------
385 #------------------------------------------------------------------------------
387 #------------------------------------------------------------------------------
388 # CHECK: stm r1!, {r2, r6}
389 # CHECK: stm r1!, {r1, r2, r3, r7}
395 #------------------------------------------------------------------------------
397 #------------------------------------------------------------------------------
398 # CHECK: str r2, [r7]
399 # CHECK: str r2, [r7]
400 # CHECK: str r5, [r1, #4]
401 # CHECK: str r3, [r7, #124]
402 # CHECK: str r2, [sp]
403 # CHECK: str r3, [sp]
404 # CHECK: str r4, [sp, #20]
405 # CHECK: str r5, [sp, #1020]
417 #------------------------------------------------------------------------------
419 #------------------------------------------------------------------------------
420 # CHECK: str r2, [r7, r3]
425 #------------------------------------------------------------------------------
427 #------------------------------------------------------------------------------
428 # CHECK: strb r4, [r3]
429 # CHECK: strb r5, [r6]
430 # CHECK: strb r6, [r7, #31]
437 #------------------------------------------------------------------------------
439 #------------------------------------------------------------------------------
440 # CHECK: strb r6, [r4, r5]
445 #------------------------------------------------------------------------------
447 #------------------------------------------------------------------------------
448 # CHECK: strh r3, [r3]
449 # CHECK: strh r4, [r6, #2]
450 # CHECK: strh r5, [r7, #62]
457 #------------------------------------------------------------------------------
459 #------------------------------------------------------------------------------
460 # CHECK: strh r6, [r2, r6]
465 #------------------------------------------------------------------------------
467 #------------------------------------------------------------------------------
468 # CHECK: subs r1, r2, #3
476 #------------------------------------------------------------------------------
478 #------------------------------------------------------------------------------
479 # CHECK: subs r1, r2, r3
483 #------------------------------------------------------------------------------
484 # SUB (SP minus immediate)
485 #------------------------------------------------------------------------------
487 # CHECK: sub sp, #508
492 #------------------------------------------------------------------------------
494 #------------------------------------------------------------------------------
502 #------------------------------------------------------------------------------
504 #------------------------------------------------------------------------------
512 #------------------------------------------------------------------------------
514 #------------------------------------------------------------------------------
520 #------------------------------------------------------------------------------
522 #------------------------------------------------------------------------------