blob: 008bb1154e57fb66ca22ecf62884770466cf4806 [file] [log] [blame]
Charlie Turner1d8cc902014-11-03 17:38:00 +00001# RUN: llvm-mc --disassemble %s -triple=armv7-apple-darwin9 -mcpu=cortex-a9 | FileCheck %s
Johnny Chen7b999ea2010-04-02 22:27:38 +00002
Asiri Rathnayakea0199b92014-12-02 10:53:20 +00003# CHECK: addpl r4, pc, #76, #10
Johnny Chen8bbc1282011-03-24 20:42:48 +000040x4c 0x45 0x8f 0x52
5
Johnny Chen7b999ea2010-04-02 22:27:38 +00006# CHECK: b #0
Johnny Chena4c31542011-03-15 22:27:33 +000070x00 0x00 0x00 0xea
8
9# CHECK: bl #7732
100x8d 0x07 0x00 0xeb
11
12# CHECK: bleq #-4
130xff 0xff 0xff 0x0b
Johnny Chen7b999ea2010-04-02 22:27:38 +000014
15# CHECK: bfc r8, #0, #16
160x1f 0x80 0xcf 0xe7
17
18# CHECK: bfi r8, r0, #16, #1
190x10 0x88 0xd0 0xe7
20
Bob Wilson775eec222011-01-28 17:50:30 +000021# CHECK: mov pc, lr
220x0e 0xf0 0xa0 0xe1
23
Jim Grosbach581da642011-07-11 16:48:36 +000024# CHECK: mov pc, #3221225535
Johnny Chen74c74ba2011-04-08 17:29:58 +0000250xff 0xf1 0xa0 0xe3
26
27# CHECK: movw r7, #4096
280x00 0x70 0x01 0xe3
29
Johnny Chen7b999ea2010-04-02 22:27:38 +000030# CHECK: cmn r0, #1
310x01 0x00 0x70 0xe3
32
Johnny Chend59c73f2010-08-11 23:35:12 +000033# CHECK: dmb
340x5f 0xf0 0x7f 0xf5
35
Johnny Chen7b999ea2010-04-02 22:27:38 +000036# CHECK: dmb nshst
370x56 0xf0 0x7f 0xf5
38
Johnny Chend59c73f2010-08-11 23:35:12 +000039# CHECK: dsb
400x4f 0xf0 0x7f 0xf5
41
Johnny Chen8e8f1c12010-08-12 20:46:17 +000042# CHECK: dsb st
430x4e 0xf0 0x7f 0xf5
44
45# CHECK: isb
460x6f 0xf0 0x7f 0xf5
47
Jim Grosbachd3595712011-08-03 23:50:40 +000048# FIXME: LDC encoding information is incorrect. Re-enable this along with more
49# robust testing for other values when we get it fleshed out and working
50# properly.
51# CHECKx: ldclvc p5, cr15, [r8], #-0
52#0x00 0xf5 0x78 0x7c
Johnny Chen807e1742010-04-16 19:33:23 +000053
Quentin Colombetc3132202013-04-12 18:47:25 +000054# CHECK: ldc p13, c9, [r2, #0]!
550x00 0x9d 0xb2 0xed
56
57# CHECK: ldcl p1, c9, [r3, #0]!
580x00 0x91 0xf3 0xed
59
Johnny Chen7b999ea2010-04-02 22:27:38 +000060# CHECK: ldr r0, [r2], #15
610x0f 0x00 0x92 0xe4
62
Johnny Chen3dfb80a2011-04-01 20:21:38 +000063# CHECK: ldr r5, [r7, -r10, lsl #2]
640x0a 0x51 0x17 0xe7
65
Quentin Colombetc3132202013-04-12 18:47:25 +000066# CHECK: ldr r4, [r5, #0]!
670x00 0x40 0xb5 0xe5
68
69# CHECK: ldrb lr, [r10, #0]!
700x00 0xe0 0xfa 0xe5
71
72# CHECK: ldrd r4, r5, [r0, #0]!
730xd0 0x40 0xe0 0xe1
74
Johnny Chen2b7aba12010-04-16 19:57:21 +000075# CHECK: ldrh r0, [r2], #0
760xb0 0x00 0xd2 0xe0
77
Owen Andersone0152a72011-08-09 20:55:18 +000078# CHECK: ldrh r0, [r2]
790xb0 0x00 0xd2 0xe1
80
Quentin Colombetc3132202013-04-12 18:47:25 +000081# CHECK: ldrh lr, [sp, #0]!
820xb0 0xe0 0xfd 0xe1
83
Johnny Chen1d3ee602010-04-15 23:23:40 +000084# CHECK: ldrht r0, [r2], #15
850xbf 0x00 0xf2 0xe0
86
Quentin Colombetc3132202013-04-12 18:47:25 +000087# CHECK: ldrsb r1, [lr, #0]!
880xd0 0x10 0xfe 0xe1
89
Johnny Chenacbc06c2010-04-15 23:12:47 +000090# CHECK: ldrsbtvs lr, [r2], -r9
Owen Andersone0152a72011-08-09 20:55:18 +0000910xd9 0xe0 0x32 0x60
Johnny Chenacbc06c2010-04-15 23:12:47 +000092
Quentin Colombetc3132202013-04-12 18:47:25 +000093# CHECK: ldrsh r9, [r1, #0]
940xf0 0x90 0xf1 0xe1
95
Johnny Chen7b999ea2010-04-02 22:27:38 +000096# CHECK: lsls r0, r2, #31
970x82 0x0f 0xb0 0xe1
98
Owen Andersonec475972011-01-13 22:38:16 +000099# CHECK: mcr2 p0, #0, r2, c1, c0, #7
Johnny Chen7b999ea2010-04-02 22:27:38 +00001000xf0 0x20 0x01 0xfe
101
102# CHECK: movt r8, #65535
1030xff 0x8f 0x4f 0xe3
104
Jim Grosbach581da642011-07-11 16:48:36 +0000105# CHECK: mvnspl r7, #1073741885
Johnny Chenfc935032010-04-12 18:46:53 +00001060xf5 0x71 0xf0 0x53
107
Bob Wilson97886d52010-08-05 00:34:42 +0000108# CHECK-NOT: orr r7, r8, r7, rrx #0
109# CHECK: orr r7, r8, r7, rrx
1100x67 0x70 0x88 0xe1
111
Johnny Chen7b999ea2010-04-02 22:27:38 +0000112# CHECK: pkhbt r8, r9, r10, lsl #4
1130x1a 0x82 0x89 0xe6
114
Johnny Chenf6e327c62011-04-05 23:28:00 +0000115# CHECK-NOT: pkhbtls r10, r11, r11, lsl #0
116# CHECK: pkhbtls r10, r11, r11
1170x1b 0xa0 0x8b 0x96
118
119# CHECK: pkhtbmi lr, r1, r6, asr #21
1200xd6 0xea 0x81 0x46
Bob Wilson942b10f2010-08-17 17:23:19 +0000121
Johnny Chen7b999ea2010-04-02 22:27:38 +0000122# CHECK: pop {r0, r2, r4, r6, r8, r10}
1230x55 0x05 0xbd 0xe8
124
125# CHECK: push {r0, r2, r4, r6, r8, r10}
1260x55 0x05 0x2d 0xe9
127
128# CHECK: qsax r8, r9, r10
1290x5a 0x8f 0x29 0xe6
130
131# CHECK: rfedb r0!
1320x00 0x0a 0x30 0xf9
133
Jim Grosbach51726e22011-07-29 20:26:09 +0000134# CHECK: srsdb sp!, #19
1350x13 0x05 0x6d 0xf9
136
137# CHECK: srsia sp, #9
1380x09 0x05 0xcd 0xf8
139
Bob Wilsonadb93e52010-08-05 18:23:43 +0000140# CHECK-NOT: rsbeq r0, r2, r0, lsl #0
141# CHECK: rsbeq r0, r2, r0
1420x00 0x00 0x62 0x00
143
Bob Wilson59351842010-10-15 03:23:44 +0000144# CHECK-NOT: rscseq r0, r0, r1, lsl #0
145# CHECK: rscseq r0, r0, r1
Bob Wilson72de3072010-08-05 18:59:36 +00001460x01 0x00 0xf0 0x00
147
Johnny Chen7b999ea2010-04-02 22:27:38 +0000148# CHECK: sbcs r0, pc, #1
1490x01 0x00 0xdf 0xe2
150
151# CHECK: sbfx r0, r1, #0, #8
1520x51 0x00 0xa7 0xe7
153
154# CHECK: ssat r8, #1, r10, lsl #8
1550x1a 0x84 0xa0 0xe6
156
Bob Wilsonadd513112010-08-11 23:10:46 +0000157# CHECK-NOT: ssatmi r0, #17, r12, lsl #0
158# CHECK: ssatmi r0, #17, r12
1590x1c 0x00 0xb0 0x46
160
Johnny Chen7b999ea2010-04-02 22:27:38 +0000161# CHECK: stmdb r10!, {r4, r5, r6, r7, lr}
1620xf0 0x40 0x2a 0xe9
163
164# CHECK: teq r0, #31
1650x1f 0x00 0x30 0xe3
166
167# CHECK: ubfx r0, r0, #16, #1
1680x50 0x08 0xe0 0xe7
169
Johnny Chen74491bb2010-08-12 01:40:54 +0000170# CHECK: usat r8, #0, r10, asr #32
1710x5a 0x80 0xe0 0xe6
Jim Grosbach7e72ec62010-10-13 21:00:04 +0000172
173# CHECK: setend be
1740x00 0x02 0x01 0xf1
175
176# CHECK: setend le
1770x00 0x00 0x01 0xf1
Bruno Cardoso Lopes90d1dfe2011-02-14 13:09:44 +0000178
179# CHECK: cpsie aif
1800xc0 0x01 0x08 0xf1
181
182# CHECK: cps #15
1830x0f 0x00 0x02 0xf1
184
185# CHECK: cpsie if, #10
1860xca 0x00 0x0a 0xf1
Bruno Cardoso Lopes9cd43972011-02-18 19:45:59 +0000187
Owen Anderson16c8fc52011-10-20 22:23:58 +0000188# CHECK: msr CPSR_fc, r0
1890x00 0xf0 0x29 0xe1
190
191# CHECK: msrmi CPSR_c, #4043309056
1920xf1 0xf4 0x21 0x43
193
Kevin Enderbyb8b60412011-03-02 23:08:33 +0000194# CHECK: rsbs r6, r7, r8
1950x08 0x60 0x77 0xe0
Bob Wilsonec845682011-03-03 01:41:01 +0000196
197# CHECK: blxeq r5
1980x35 0xff 0x2f 0x01
Bob Wilson6f6d7392011-03-03 07:19:52 +0000199
200# CHECK: bx r12
2010x1c 0xff 0x2f 0xe1
Johnny Chen9363d412011-03-09 20:01:14 +0000202
Johnny Chena0c9c752011-05-22 17:51:04 +0000203# CHECK: bxeq r5
2040x15 0xff 0x2f 0x01
205
Johnny Chen9363d412011-03-09 20:01:14 +0000206# CHECK: uqadd16mi r6, r11, r8
Owen Andersone0152a72011-08-09 20:55:18 +00002070x18 0x6F 0x6b 0x46
Johnny Chen7a2873d2011-03-15 01:13:17 +0000208
209# CHECK: str r0, [sp, #4]
2100x04 0x00 0x8d 0xe5
211
212# CHECK: str r1, [sp]
2130x00 0x10 0x8d 0xe5
214
215# CHECK: ldr r3, [pc, #144]
2160x90 0x30 0x9f 0xe5
217
Johnny Chenfe6fba32011-04-01 18:26:38 +0000218# CHECK: ldr r3, [r0, #-4]
2190x4 0x30 0x10 0xe5
220
221# CHECK: ldr r5, [sp, r0, lsl #1]!
2220x80 0x50 0xbd 0xe7
223
224# CHECK: ldr r5, [r7], -r0, lsr #2
2250x20 0x51 0x17 0xe6
226
Johnny Chen7a2873d2011-03-15 01:13:17 +0000227# CHECK: strdeq r2, r3, [r0], -r8
Silviu Baranga4afd7d22012-03-22 14:14:49 +00002280xf8 0x20 0x00 0x00
Johnny Chen0c5f6702011-03-19 01:16:20 +0000229
Johnny Chen56c15c62011-04-05 18:53:14 +0000230# CHECK: ldrdeq r2, r3, [r0], -r12
Johnny Chen0c5f6702011-03-19 01:16:20 +00002310xdc 0x24 0x00 0x00
Johnny Chen30350cd2011-03-22 22:28:49 +0000232
233# CHECK: ldrbt r3, [r4], -r5, lsl #12
2340x05 0x36 0x74 0xe6
Johnny Chen122a6302011-03-22 23:08:56 +0000235
236# CHECK: vcmpe.f64 d8, #0
2370xc0 0x8b 0xb5 0xee
Johnny Chenf949d8e2011-03-24 00:28:38 +0000238
Johnny Chenec6f76e2011-03-29 19:08:52 +0000239# CHECK: vldmdb r2!, {s7, s8, s9, s10, s11}
2400x05 0x3a 0x72 0xed
241
Jim Grosbach3e2c6f32011-11-14 23:03:21 +0000242# CHECK: vldr s23, [r2, #660]
Johnny Chenec6f76e2011-03-29 19:08:52 +00002430xa5 0xba 0xd2 0xed
244
Johnny Chen1de8cc62011-03-24 01:07:26 +0000245# CHECK: strtvc r5, [r3], r0, lsr #20
Johnny Chen0ec0e982011-04-06 01:18:32 +00002460x20 0x5a 0xa3 0x76
Johnny Chen0f5d52d2011-03-24 01:40:42 +0000247
248# CHECK: stmiblo sp, {r0, r4, r8, r11, r12, pc}
2490x11 0x99 0x8d 0x39
250
251# CHECK: ldmdb sp, {r0, r4, r8, r11, r12, pc}
2520x11 0x99 0x1d 0xe9
Johnny Chenaa84d412011-03-25 17:31:16 +0000253
254# CHECK: swpge r3, r2, [r6]
2550x92 0x30 0x06 0xa1
Johnny Chen1572bf42011-03-25 23:02:58 +0000256
257# CHECK: umull r1, r2, r3, r4
2580x93 0x14 0x82 0xe0
Johnny Chenf9cd1392011-03-28 18:41:58 +0000259
Owen Andersone0152a72011-08-09 20:55:18 +0000260# CHECK: pldw [pc, #-0]
Johnny Chenf9cd1392011-03-28 18:41:58 +00002610x00 0xf0 0x1f 0xf5
262
263# CHECK: pli [pc, #-0]
2640x00 0xf0 0x5f 0xf4
265
266# CHECK: pli [r3, r1, lsl #2]
2670x01 0xf1 0xd3 0xf6
Johnny Chen4bc2bae2011-03-29 19:49:38 +0000268
Jim Grosbach8c799c92011-10-11 20:18:50 +0000269# CHECK: stc p2, c4, [r9], {157}
Johnny Chen4bc2bae2011-03-29 19:49:38 +00002700x9d 0x42 0x89 0xec
271
Quentin Colombetc3132202013-04-12 18:47:25 +0000272# CHECK: stc p15, c0, [r3, #0]!
2730x00 0x0f 0xa3 0xed
274
Jim Grosbach8c799c92011-10-11 20:18:50 +0000275# CHECK: stc2 p2, c4, [r9], {157}
Johnny Chen4bc2bae2011-03-29 19:49:38 +00002760x9d 0x42 0x89 0xfc
Johnny Chen13baa0e2011-03-31 17:53:50 +0000277
Quentin Colombetc3132202013-04-12 18:47:25 +0000278# CHECK: stcl p13, c12, [r9, #0]!
2790x00 0xcd 0xe9 0xed
280
281# CHECK: str pc, [r11, #0]!
2820x00 0xf0 0xab 0xe5
283
284# CHECK: strb r9, [r10, #0]!
2850x00 0x90 0xea 0xe5
286
287# CHECK: strd r12, sp, [r6, #0]!
2880xf0 0xc0 0xe6 0xe1
289
290# CHECK: strh r7, [r9, #0]!
2910xb0 0x70 0xe9 0xe1
292
Benjamin Kramer406dc172011-08-09 22:02:50 +0000293# CHECK: bne #-24
2940xfa 0xff 0xff 0x1a
295
Johnny Chen13baa0e2011-03-31 17:53:50 +0000296# CHECK: blx #60
2970x0f 0x00 0x00 0xfa
Johnny Chen1e1010f2011-04-01 22:32:51 +0000298
299# CHECK-NOT: adcs r10, r8, r0, asr #6
300# CHECK: adcshi r10, r8, r0, asr #6
3010x40 0xa3 0xb8 0x80
302
303# CHECK: adcshi r10, r8, r0, asr r3
3040x50 0xa3 0xb8 0x80
Johnny Chen8904cc42011-04-02 02:24:54 +0000305
306# CHECK: streq r1, [sp], #-1567
3070x1f 0x16 0xd 0x4
Johnny Chene9c644d2011-04-05 20:32:23 +0000308
309# CHECK: mrchs p2, #3, r11, c13, c6, #6
3100xd6 0xb2 0x7d 0x2e
Johnny Chen0ec0e982011-04-06 01:18:32 +0000311
312# CHECK: smlsldx r4, r12, r11, r4
3130x7b 0x44 0x4c 0xe7
Johnny Chen194a2262011-04-07 18:33:19 +0000314
315# CHECK: lsl r3, r2, r1
3160x12 0x31 0xa0 0xe1
Johnny Chen04efb8f2011-04-07 19:28:58 +0000317
318# CHECK: sxtab r9, r8, r5
3190x75 0x90 0xa8 0xe6
320
321# CHECK: sxtb r9, r5, ror #8
3220x75 0x94 0xaf 0xe6
Johnny Chen7e51b462011-04-08 00:29:09 +0000323
324# CHECK: bfc r5, #0, #16
3250x1f 0x50 0xcf 0xe7
326
327# CHECK: bfi r5, r6, #0, #16
3280x16 0x50 0xcf 0xe7
329
330# CHECK: sbfx r5, r6, #8, #8
3310x56 0x54 0xa7 0xe7
332
333# CHECK: rsb pc, r5, r0
3340x00 0xf0 0x65 0xe0
335
336# CHECK: uqadd8 r5, r6, r7
3370x97 0x5f 0x66 0xe6
338
339# CHECK: uqsax r5, r6, r7
3400x57 0x5f 0x66 0xe6
Johnny Chena9570f72011-04-08 19:41:22 +0000341
342# CHECK: smmlareq r0, r0, r0, r0
3430x30 0x00 0x50 0x07
Johnny Chenc3c70012011-04-27 23:29:21 +0000344
345# CHECK: nop
3460x00 0xf0 0x20 0xe3
Owen Andersone33c95d2011-08-11 18:41:59 +0000347
348# CHECK: andeq r0, r0, r0, lsr #32
3490x20 0x00 0x00 0x00
Owen Anderson3a850f22011-08-11 20:47:56 +0000350
351# CHECK: strb r3, [r2], #1
3520x01 0x30 0xc2 0xe4
Owen Andersonf746b0e2011-08-15 20:12:03 +0000353
354# CHECK: strheq r0, [r0, -r0]
3550xb0 0x00 0x00 0x01
Owen Anderson192a7602011-08-18 22:31:17 +0000356
357# CHECK: rfedb #4!
3580x14 0x0 0x32 0xf9
Owen Anderson96b7ad22011-08-18 22:47:44 +0000359
Jim Grosbach8c799c92011-10-11 20:18:50 +0000360# CHECK: stc2l p0, c0, [r2], #-96
Owen Anderson96b7ad22011-08-18 22:47:44 +00003610x18 0x0 0x62 0xfc
Owen Andersonfbb704f2011-11-02 18:03:14 +0000362
363# CHECK: ldmgt sp!, {r9}
3640x00 0x02 0xbd 0xc8