d07cd84abcefaf15e831c1b0695ff66196a8f32c
[oota-llvm.git] / test / MC / Disassembler / ARM / thumb1.txt
1 # RUN: llvm-mc -triple=thumbv6-apple-darwin -disassemble < %s | FileCheck %s
2
3 #------------------------------------------------------------------------------
4 # ADC (register)
5 #------------------------------------------------------------------------------
6 # CHECK: adcs r4, r6
7
8 0x74 0x41
9
10
11 #------------------------------------------------------------------------------
12 # ADD (immediate)
13 #------------------------------------------------------------------------------
14 # CHECK: adds r1, r2, #3
15 # CHECK: adds r2, r2, #3
16 # CHECK: adds r2, #8
17
18 0xd1 0x1c
19 0xd2 0x1c
20 0x08 0x32
21
22 #------------------------------------------------------------------------------
23 # ADD (register)
24 #------------------------------------------------------------------------------
25 # CHECK: adds r1, r2, r3
26 # CHECK: add r2, r8
27
28 0xd1 0x18
29 0x42 0x44
30
31 #------------------------------------------------------------------------------
32 # ASR (immediate)
33 #------------------------------------------------------------------------------
34 # CHECK: asrs r2, r3, #32
35 # CHECK: asrs r2, r3, #5
36 # CHECK: asrs r2, r3, #1
37
38 0x1a 0x10
39 0x5a 0x11
40 0x5a 0x10
41
42 #------------------------------------------------------------------------------
43 # ASR (register)
44 #------------------------------------------------------------------------------
45 # CHECK: asrs r5, r2
46
47 0x15 0x41
48
49 #------------------------------------------------------------------------------
50 # BICS
51 #------------------------------------------------------------------------------
52 # CHECK: bics r1, r6
53
54 0xb1 0x43
55
56 #------------------------------------------------------------------------------
57 # BKPT
58 #------------------------------------------------------------------------------
59 # CHECK: bkpt #0
60 # CHECK: bkpt #255
61
62 0x00 0xbe
63 0xff 0xbe
64
65 #------------------------------------------------------------------------------
66 # BLX (register)
67 #------------------------------------------------------------------------------
68 # CHECK: blx r4
69
70 0xa0 0x47
71
72 #------------------------------------------------------------------------------
73 # BX
74 #------------------------------------------------------------------------------
75 # CHECK: bx r2
76
77 0x10 0x47
78
79 #------------------------------------------------------------------------------
80 # CMN
81 #------------------------------------------------------------------------------
82 # CHECK: cmn r5, r1
83
84 0xcd 0x42
85
86 #------------------------------------------------------------------------------
87 # CMP
88 #------------------------------------------------------------------------------
89 # CHECK: cmp r6, #32
90 # CHECK: cmp r3, r4
91 # CHECK: cmp r8, r1
92
93 0x20 0x2e
94 0xa3 0x42
95 0x88 0x45
96
97 #------------------------------------------------------------------------------
98 # EOR
99 #------------------------------------------------------------------------------
100 # CHECK: eors r4, r5
101
102 0x6c 0x40
103
104 #------------------------------------------------------------------------------
105 # LDM
106 #------------------------------------------------------------------------------
107 # CHECK: ldm r3, {r0, r1, r2, r3, r4, r5, r6, r7}
108 # CHECK: ldm r2!, {r1, r3, r4, r5, r7}
109 # CHECK: ldm r1, {r1}
110
111 0xff 0xcb
112 0xba 0xca
113 0x02 0xc9
114
115
116 #------------------------------------------------------------------------------
117 # LDR (immediate)
118 #------------------------------------------------------------------------------
119 # CHECK: ldr r1, [r5]
120 # CHECK: ldr r2, [r6, #32]
121 # CHECK: ldr r3, [r7, #124]
122 # CHECK: ldr r1, [sp]
123 # CHECK: ldr r2, [sp, #24]
124 # CHECK: ldr r3, [sp, #1020]
125
126
127 0x29 0x68
128 0x32 0x6a
129 0xfb 0x6f
130 0x00 0x99
131 0x06 0x9a
132 0xff 0x9b
133
134 #------------------------------------------------------------------------------
135 # LDR (register)
136 #------------------------------------------------------------------------------
137 # CHECK: ldr r1, [r2, r3]
138
139 0xd1 0x58
140
141
142 #------------------------------------------------------------------------------
143 # LDRB (immediate)
144 #------------------------------------------------------------------------------
145 # CHECK: ldrb r4, [r3]
146 # CHECK: ldrb r5, [r6]
147 # CHECK: ldrb r6, [r7, #31]
148
149 0x1c 0x78
150 0x35 0x78
151 0xfe 0x7f
152
153
154 #------------------------------------------------------------------------------
155 # LDRB (register)
156 #------------------------------------------------------------------------------
157 # CHECK: ldrb r6, [r4, r5]
158
159 0x66 0x5d
160
161
162 #------------------------------------------------------------------------------
163 # LDRH (immediate)
164 #------------------------------------------------------------------------------
165 # CHECK: ldrh r3, [r3]
166 # CHECK: ldrh r4, [r6, #2]
167 # CHECK: ldrh r5, [r7, #62]
168
169 0x1b 0x88
170 0x74 0x88
171 0xfd 0x8f
172
173 #------------------------------------------------------------------------------
174 # LDRH (register)
175 #------------------------------------------------------------------------------
176 # CHECK: ldrh r6, [r2, r6]
177
178 0x96 0x5b
179
180
181 #------------------------------------------------------------------------------
182 # LDRSB/LDRSH
183 #------------------------------------------------------------------------------
184 # CHECK: ldrsb r6, [r2, r6]
185 # CHECK: ldrsh r3, [r7, r1]
186
187 0x96 0x57
188 0x7b 0x5e
189
190 #------------------------------------------------------------------------------
191 # LSL (immediate)
192 #------------------------------------------------------------------------------
193 # CHECK: movs r4, r5
194 # CHECK: lsls r4, r5, #4
195
196 0x2c 0x00
197 0x2c 0x01
198
199
200 #------------------------------------------------------------------------------
201 # LSL (register)
202 #------------------------------------------------------------------------------
203 # CHECK: lsls r2, r6
204
205 0xb2 0x40
206
207
208 #------------------------------------------------------------------------------
209 # LSR (immediate)
210 #------------------------------------------------------------------------------
211 # CHECK: lsrs r1, r3, #1
212 # CHECK: lsrs r1, r3, #32
213
214 0x59 0x08
215 0x19 0x08
216
217
218 #------------------------------------------------------------------------------
219 # LSR (register)
220 #------------------------------------------------------------------------------
221 # CHECK: lsrs r2, r6
222
223 0xf2 0x40
224
225 #------------------------------------------------------------------------------
226 # MOV (immediate)
227 #------------------------------------------------------------------------------
228 # CHECK: movs r2, #0
229 # CHECK: movs r2, #255
230 # CHECK: movs r2, #23
231
232 0x00 0x22
233 0xff 0x22
234 0x17 0x22
235
236
237 #------------------------------------------------------------------------------
238 # MOV (register)
239 #------------------------------------------------------------------------------
240 # CHECK: mov r3, r4
241 # CHECK: movs r1, r3
242
243 0x23 0x46
244 0x19 0x00
245
246
247 #------------------------------------------------------------------------------
248 # MUL
249 #------------------------------------------------------------------------------
250 # CHECK: muls r1, r2, r1
251 # CHECK: muls r3, r4
252
253 0x51 0x43
254 0x63 0x43
255
256
257 #------------------------------------------------------------------------------
258 # MVN
259 #------------------------------------------------------------------------------
260 # CHECK: mvns r6, r3
261
262 0xde 0x43
263
264 #------------------------------------------------------------------------------
265 # NEG
266 #------------------------------------------------------------------------------
267 # CHECK: rsbs r3, r4, #0
268
269 0x63 0x42
270
271
272 #------------------------------------------------------------------------------
273 # NOP
274 #------------------------------------------------------------------------------
275 # CHECK: nop
276
277 0xc0 0x46
278
279
280 #------------------------------------------------------------------------------
281 # ORR
282 #------------------------------------------------------------------------------
283 # CHECK: orrs  r3, r4
284
285 0x23 0x43
286
287 #------------------------------------------------------------------------------
288 # POP
289 #------------------------------------------------------------------------------
290 # CHECK: pop {r2, r3, r6}
291
292 0x4c 0xbc
293
294
295 #------------------------------------------------------------------------------
296 # PUSH
297 #------------------------------------------------------------------------------
298 # CHECK: push {r1, r2, r7}
299
300 0x86 0xb4
301
302
303 #------------------------------------------------------------------------------
304 # REV/REV16/REVSH
305 #------------------------------------------------------------------------------
306 # CHECK: rev r6, r3
307 # CHECK: rev16 r7, r2
308 # CHECK: revsh r5, r1
309
310 0x1e 0xba
311 0x57 0xba
312 0xcd 0xba
313
314
315 #------------------------------------------------------------------------------
316 # ROR
317 #------------------------------------------------------------------------------
318 # CHECK: rors r2, r7
319
320 0xfa 0x41
321
322 #------------------------------------------------------------------------------
323 # RSB
324 #------------------------------------------------------------------------------
325 # CHECK: rsbs r1, r3, #0
326
327 0x59 0x42
328
329
330 #------------------------------------------------------------------------------
331 # SBC
332 #------------------------------------------------------------------------------
333 # CHECK: sbcs r4, r3
334
335 0x9c 0x41
336
337
338 #------------------------------------------------------------------------------
339 # SETEND
340 #------------------------------------------------------------------------------
341 # CHECK: setend be
342 # CHECK: setend le
343
344 0x58 0xb6
345 0x50 0xb6
346
347 #------------------------------------------------------------------------------
348 # STM
349 #------------------------------------------------------------------------------
350 # CHECK: stm r1!, {r2, r6}
351 # CHECK: stm r1!, {r1, r2, r3, r7}
352
353 0x44 0xc1
354 0x8e 0xc1
355
356
357 #------------------------------------------------------------------------------
358 # STR (immediate)
359 #------------------------------------------------------------------------------
360 # CHECK: str r2, [r7]
361 # CHECK: str r2, [r7]
362 # CHECK: str r5, [r1, #4]
363 # CHECK: str r3, [r7, #124]
364 # CHECK: str r2, [sp]
365 # CHECK: str r3, [sp]
366 # CHECK: str r4, [sp, #20]
367 # CHECK: str r5, [sp, #1020]
368
369 0x3a 0x60
370 0x3a 0x60
371 0x4d 0x60
372 0xfb 0x67
373 0x00 0x92
374 0x00 0x93
375 0x05 0x94
376 0xff 0x95
377
378
379 #------------------------------------------------------------------------------
380 # STR (register)
381 #------------------------------------------------------------------------------
382 # CHECK: str r2, [r7, r3]
383
384 0xfa 0x50
385
386
387 #------------------------------------------------------------------------------
388 # STRB (immediate)
389 #------------------------------------------------------------------------------
390 # CHECK: strb r4, [r3]
391 # CHECK: strb r5, [r6]
392 # CHECK: strb r6, [r7, #31]
393
394 0x1c 0x70
395 0x35 0x70
396 0xfe 0x77
397
398
399 #------------------------------------------------------------------------------
400 # STRB (register)
401 #------------------------------------------------------------------------------
402 # CHECK: strb r6, [r4, r5]
403
404 0x66 0x55
405
406
407 #------------------------------------------------------------------------------
408 # STRH (immediate)
409 #------------------------------------------------------------------------------
410 # CHECK: strh r3, [r3]
411 # CHECK: strh r4, [r6, #2]
412 # CHECK: strh r5, [r7, #62]
413
414 0x1b 0x80
415 0x74 0x80
416 0xfd 0x87
417
418
419 #------------------------------------------------------------------------------
420 # STRH (register)
421 #------------------------------------------------------------------------------
422 # CHECK: strh r6, [r2, r6]
423
424 0x96 0x53
425
426
427 #------------------------------------------------------------------------------
428 # SUB (immediate)
429 #------------------------------------------------------------------------------
430 # CHECK: subs r1, r2, #3
431 # CHECK: subs r2, #3
432 # CHECK: subs r2, #8
433
434 0xd1 0x1e
435 0x03 0x3a
436 0x08 0x3a
437
438 #------------------------------------------------------------------------------
439 # SUB (register)
440 #------------------------------------------------------------------------------
441 # CHECK: subs r1, r2, r3
442
443 0xd1 0x1a
444
445
446 #------------------------------------------------------------------------------
447 # SVC
448 #------------------------------------------------------------------------------
449 # CHECK: svc #0
450 # CHECK: svc #255
451
452 0x00 0xdf
453 0xff 0xdf
454
455
456 #------------------------------------------------------------------------------
457 # SXTB/SXTH
458 #------------------------------------------------------------------------------
459 # CHECK: sxtb r3, r5
460 # CHECK: sxth r3, r5
461
462 0x6b 0xb2
463 0x2b 0xb2
464
465
466 #------------------------------------------------------------------------------
467 # TST
468 #------------------------------------------------------------------------------
469 # CHECK: tst r6, r1
470
471 0x0e 0x42
472
473
474 #------------------------------------------------------------------------------
475 # UXTB/UXTH
476 #------------------------------------------------------------------------------
477 # CHECK: uxtb  r7, r2
478 # CHECK: uxth  r1, r4
479
480 0xd7 0xb2
481 0xa1 0xb2
482
483
484 #------------------------------------------------------------------------------
485 # WFE/WFI/YIELD
486 #------------------------------------------------------------------------------
487 # CHECK: wfe
488 # CHECK: wfi
489 # CHECK: yield
490
491 0x20 0xbf
492 0x30 0xbf
493 0x10 0xbf