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