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
#------------------------------------------------------------------------------
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
#------------------------------------------------------------------------------
94
#------------------------------------------------------------------------------
96
#------------------------------------------------------------------------------
101
#------------------------------------------------------------------------------
103
#------------------------------------------------------------------------------
108
#------------------------------------------------------------------------------
110
#------------------------------------------------------------------------------
115
#------------------------------------------------------------------------------
117
#------------------------------------------------------------------------------
126
#------------------------------------------------------------------------------
128
#------------------------------------------------------------------------------
133
#------------------------------------------------------------------------------
135
#------------------------------------------------------------------------------
136
# CHECK: ldm r3, {r0, r1, r2, r3, r4, r5, r6, r7}
137
# CHECK: ldm r2!, {r1, r3, r4, r5, r7}
138
# CHECK: ldm r1, {r1}
145
#------------------------------------------------------------------------------
147
#------------------------------------------------------------------------------
148
# CHECK: ldr r1, [r5]
149
# CHECK: ldr r2, [r6, #32]
150
# CHECK: ldr r3, [r7, #124]
151
# CHECK: ldr r1, [sp]
152
# CHECK: ldr r2, [sp, #24]
153
# CHECK: ldr r3, [sp, #1020]
163
#------------------------------------------------------------------------------
165
#------------------------------------------------------------------------------
166
# CHECK: ldr r1, [r2, r3]
171
#------------------------------------------------------------------------------
173
#------------------------------------------------------------------------------
174
# CHECK: ldrb r4, [r3]
175
# CHECK: ldrb r5, [r6]
176
# CHECK: ldrb r6, [r7, #31]
183
#------------------------------------------------------------------------------
185
#------------------------------------------------------------------------------
186
# CHECK: ldrb r6, [r4, r5]
191
#------------------------------------------------------------------------------
193
#------------------------------------------------------------------------------
194
# CHECK: ldrh r3, [r3]
195
# CHECK: ldrh r4, [r6, #2]
196
# CHECK: ldrh r5, [r7, #62]
202
#------------------------------------------------------------------------------
204
#------------------------------------------------------------------------------
205
# CHECK: ldrh r6, [r2, r6]
210
#------------------------------------------------------------------------------
212
#------------------------------------------------------------------------------
213
# CHECK: ldrsb r6, [r2, r6]
214
# CHECK: ldrsh r3, [r7, r1]
219
#------------------------------------------------------------------------------
221
#------------------------------------------------------------------------------
223
# CHECK: lsls r4, r5, #4
229
#------------------------------------------------------------------------------
231
#------------------------------------------------------------------------------
237
#------------------------------------------------------------------------------
239
#------------------------------------------------------------------------------
240
# CHECK: lsrs r1, r3, #1
241
# CHECK: lsrs r1, r3, #32
247
#------------------------------------------------------------------------------
249
#------------------------------------------------------------------------------
254
#------------------------------------------------------------------------------
256
#------------------------------------------------------------------------------
258
# CHECK: movs r2, #255
259
# CHECK: movs r2, #23
266
#------------------------------------------------------------------------------
268
#------------------------------------------------------------------------------
276
#------------------------------------------------------------------------------
278
#------------------------------------------------------------------------------
279
# CHECK: muls r1, r2, r1
286
#------------------------------------------------------------------------------
288
#------------------------------------------------------------------------------
293
#------------------------------------------------------------------------------
295
#------------------------------------------------------------------------------
296
# CHECK: rsbs r3, r4, #0
301
#------------------------------------------------------------------------------
303
#------------------------------------------------------------------------------
309
#------------------------------------------------------------------------------
311
#------------------------------------------------------------------------------
316
#------------------------------------------------------------------------------
318
#------------------------------------------------------------------------------
319
# CHECK: pop {r2, r3, r6}
324
#------------------------------------------------------------------------------
326
#------------------------------------------------------------------------------
327
# CHECK: push {r1, r2, r7}
332
#------------------------------------------------------------------------------
334
#------------------------------------------------------------------------------
336
# CHECK: rev16 r7, r2
337
# CHECK: revsh r5, r1
344
#------------------------------------------------------------------------------
346
#------------------------------------------------------------------------------
351
#------------------------------------------------------------------------------
353
#------------------------------------------------------------------------------
354
# CHECK: rsbs r1, r3, #0
359
#------------------------------------------------------------------------------
361
#------------------------------------------------------------------------------
367
#------------------------------------------------------------------------------
369
#------------------------------------------------------------------------------
376
#------------------------------------------------------------------------------
378
#------------------------------------------------------------------------------
379
# CHECK: stm r1!, {r2, r6}
380
# CHECK: stm r1!, {r1, r2, r3, r7}
386
#------------------------------------------------------------------------------
388
#------------------------------------------------------------------------------
389
# CHECK: str r2, [r7]
390
# CHECK: str r2, [r7]
391
# CHECK: str r5, [r1, #4]
392
# CHECK: str r3, [r7, #124]
393
# CHECK: str r2, [sp]
394
# CHECK: str r3, [sp]
395
# CHECK: str r4, [sp, #20]
396
# CHECK: str r5, [sp, #1020]
408
#------------------------------------------------------------------------------
410
#------------------------------------------------------------------------------
411
# CHECK: str r2, [r7, r3]
416
#------------------------------------------------------------------------------
418
#------------------------------------------------------------------------------
419
# CHECK: strb r4, [r3]
420
# CHECK: strb r5, [r6]
421
# CHECK: strb r6, [r7, #31]
428
#------------------------------------------------------------------------------
430
#------------------------------------------------------------------------------
431
# CHECK: strb r6, [r4, r5]
436
#------------------------------------------------------------------------------
438
#------------------------------------------------------------------------------
439
# CHECK: strh r3, [r3]
440
# CHECK: strh r4, [r6, #2]
441
# CHECK: strh r5, [r7, #62]
448
#------------------------------------------------------------------------------
450
#------------------------------------------------------------------------------
451
# CHECK: strh r6, [r2, r6]
456
#------------------------------------------------------------------------------
458
#------------------------------------------------------------------------------
459
# CHECK: subs r1, r2, #3
467
#------------------------------------------------------------------------------
469
#------------------------------------------------------------------------------
470
# CHECK: subs r1, r2, r3
474
#------------------------------------------------------------------------------
475
# SUB (SP minus immediate)
476
#------------------------------------------------------------------------------
478
# CHECK: sub sp, #508
483
#------------------------------------------------------------------------------
485
#------------------------------------------------------------------------------
493
#------------------------------------------------------------------------------
495
#------------------------------------------------------------------------------
503
#------------------------------------------------------------------------------
505
#------------------------------------------------------------------------------
511
#------------------------------------------------------------------------------
513
#------------------------------------------------------------------------------
521
#------------------------------------------------------------------------------
523
#------------------------------------------------------------------------------