3b809d3465a84e8e66f5ea476f1598697d4bf043
[oota-llvm.git] / test / MC / Disassembler / Hexagon / st.txt
1 # RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.8 ST
3
4 # Store doubleword
5 0x9e 0xf5 0xd1 0x3b
6 # CHECK: memd(r17 + r21<<#3) = r31:30
7 0x28 0xd4 0xc0 0x48
8 # CHECK: memd(##320) = r21:20
9 0x15 0xd4 0xd1 0xa1
10 # CHECK: memd(r17+#168) = r21:20
11 0x02 0xf4 0xd1 0xa9
12 # CHECK: memd(r17 ++ I:circ(m1)) = r21:20
13 0x28 0xf4 0xd1 0xa9
14 # CHECK: memd(r17 ++ #40:circ(m1)) = r21:20
15 0x28 0xd4 0xd1 0xab
16 # CHECK: memd(r17++#40) = r21:20
17 0x00 0xf4 0xd1 0xad
18 # CHECK: memd(r17++m1) = r21:20
19 0x00 0xf4 0xd1 0xaf
20 # CHECK: memd(r17 ++ m1:brev) = r21:20
21
22 # Store doubleword conditionally
23 0xfe 0xf5 0xd1 0x34
24 # CHECK: if (p3) memd(r17+r21<<#3) = r31:30
25 0xfe 0xf5 0xd1 0x35
26 # CHECK: if (!p3) memd(r17+r21<<#3) = r31:30
27 0x03 0x40 0x45 0x85 0xfe 0xf5 0xd1 0x36
28 # CHECK: p3 = r5
29 # CHECK-NEXT: if (p3.new) memd(r17+r21<<#3) = r31:30
30 0x03 0x40 0x45 0x85 0xfe 0xf5 0xd1 0x37
31 # CHECK: p3 = r5
32 # CHECK-NEXT: if (!p3.new) memd(r17+r21<<#3) = r31:30
33 0xab 0xde 0xd1 0x40
34 # CHECK: if (p3) memd(r17+#168) = r31:30
35 0xab 0xde 0xd1 0x44
36 # CHECK: if (!p3) memd(r17+#168) = r31:30
37 0x03 0x40 0x45 0x85 0xab 0xde 0xd1 0x42
38 # CHECK: p3 = r5
39 # CHECK-NEXT: if (p3.new) memd(r17+#168) = r31:30
40 0x03 0x40 0x45 0x85 0xab 0xde 0xd1 0x46
41 # CHECK: p3 = r5
42 # CHECK-NEXT: if (!p3.new) memd(r17+#168) = r31:30
43 0x2b 0xf4 0xd1 0xab
44 # CHECK: if (p3) memd(r17++#40) = r21:20
45 0x2f 0xf4 0xd1 0xab
46 # CHECK: if (!p3) memd(r17++#40) = r21:20
47 0x03 0x40 0x45 0x85 0xab 0xf4 0xd1 0xab
48 # CHECK: p3 = r5
49 # CHECK-NEXT: if (p3.new) memd(r17++#40) = r21:20
50 0x03 0x40 0x45 0x85 0xaf 0xf4 0xd1 0xab
51 # CHECK: p3 = r5
52 # CHECK-NEXT: if (!p3.new) memd(r17++#40) = r21:20
53
54 # Store byte
55 0x9f 0xf5 0x11 0x3b
56 # CHECK: memb(r17 + r21<<#3) = r31
57 0x9f 0xca 0x11 0x3c
58 # CHECK: memb(r17+#21)=#31
59 0x15 0xd5 0x00 0x48
60 # CHECK: memb(##21) = r21
61 0x15 0xd5 0x11 0xa1
62 # CHECK: memb(r17+#21) = r21
63 0x02 0xf5 0x11 0xa9
64 # CHECK: memb(r17 ++ I:circ(m1)) = r21
65 0x28 0xf5 0x11 0xa9
66 # CHECK: memb(r17 ++ #5:circ(m1)) = r21
67 0x28 0xd5 0x11 0xab
68 # CHECK: memb(r17++#5) = r21
69 0x00 0xf5 0x11 0xad
70 # CHECK: memb(r17++m1) = r21
71 0x00 0xf5 0x11 0xaf
72 # CHECK: memb(r17 ++ m1:brev) = r21
73
74 # Store byte conditionally
75 0xff 0xf5 0x11 0x34
76 # CHECK: if (p3) memb(r17+r21<<#3) = r31
77 0xff 0xf5 0x11 0x35
78 # CHECK: if (!p3) memb(r17+r21<<#3) = r31
79 0x03 0x40 0x45 0x85 0xff 0xf5 0x11 0x36
80 # CHECK: p3 = r5
81 # CHECK-NEXT: if (p3.new) memb(r17+r21<<#3) = r31
82 0x03 0x40 0x45 0x85 0xff 0xf5 0x11 0x37
83 # CHECK: p3 = r5
84 # CHECK-NEXT: if (!p3.new) memb(r17+r21<<#3) = r31
85 0xff 0xca 0x11 0x38
86 # CHECK: if (p3) memb(r17+#21)=#31
87 0xff 0xca 0x91 0x38
88 # CHECK: if (!p3) memb(r17+#21)=#31
89 0x03 0x40 0x45 0x85 0xff 0xca 0x11 0x39
90 # CHECK: p3 = r5
91 # CHECK-NEXT: if (p3.new) memb(r17+#21)=#31
92 0x03 0x40 0x45 0x85 0xff 0xca 0x91 0x39
93 # CHECK: p3 = r5
94 # CHECK-NEXT: if (!p3.new) memb(r17+#21)=#31
95 0xab 0xdf 0x11 0x40
96 # CHECK: if (p3) memb(r17+#21) = r31
97 0xab 0xdf 0x11 0x44
98 # CHECK: if (!p3) memb(r17+#21) = r31
99 0x03 0x40 0x45 0x85 0xab 0xdf 0x11 0x42
100 # CHECK: p3 = r5
101 # CHECK-NEXT: if (p3.new) memb(r17+#21) = r31
102 0x03 0x40 0x45 0x85 0xab 0xdf 0x11 0x46
103 # CHECK: p3 = r5
104 # CHECK-NEXT: if (!p3.new) memb(r17+#21) = r31
105 0x2b 0xf5 0x11 0xab
106 # CHECK: if (p3) memb(r17++#5) = r21
107 0x2f 0xf5 0x11 0xab
108 # CHECK: if (!p3) memb(r17++#5) = r21
109 0x03 0x40 0x45 0x85 0xab 0xf5 0x11 0xab
110 # CHECK: p3 = r5
111 # CHECK-NEXT: if (p3.new) memb(r17++#5) = r21
112 0x03 0x40 0x45 0x85 0xaf 0xf5 0x11 0xab
113 # CHECK: p3 = r5
114 # CHECK-NEXT: if (!p3.new) memb(r17++#5) = r21
115
116 # Store halfword
117 0x9f 0xf5 0x51 0x3b
118 # CHECK: memh(r17 + r21<<#3) = r31
119 0x9f 0xf5 0x71 0x3b
120 # CHECK: memh(r17 + r21<<#3) = r31.h
121 0x95 0xcf 0x31 0x3c
122 # CHECK: memh(r17+#62)=#21
123 0x2a 0xd5 0x40 0x48
124 # CHECK: memh(##84) = r21
125 0x2a 0xd5 0x60 0x48
126 # CHECK: memh(##84) = r21.h
127 0x15 0xdf 0x51 0xa1
128 # CHECK: memh(r17+#42) = r31
129 0x15 0xdf 0x71 0xa1
130 # CHECK: memh(r17+#42) = r31.h
131 0x02 0xf5 0x51 0xa9
132 # CHECK: memh(r17 ++ I:circ(m1)) = r21
133 0x28 0xf5 0x51 0xa9
134 # CHECK: memh(r17 ++ #10:circ(m1)) = r21
135 0x02 0xf5 0x71 0xa9
136 # CHECK: memh(r17 ++ I:circ(m1)) = r21.h
137 0x28 0xf5 0x71 0xa9
138 # CHECK: memh(r17 ++ #10:circ(m1)) = r21.h
139 0x28 0xd5 0x51 0xab
140 # CHECK: memh(r17++#10) = r21
141 0x28 0xd5 0x71 0xab
142 # CHECK: memh(r17++#10) = r21.h
143 0x00 0xf5 0x51 0xad
144 # CHECK: memh(r17++m1) = r21
145 0x00 0xf5 0x71 0xad
146 # CHECK: memh(r17++m1) = r21.h
147 0x00 0xf5 0x51 0xaf
148 # CHECK: memh(r17 ++ m1:brev) = r21
149 0x00 0xf5 0x71 0xaf
150 # CHECK: memh(r17 ++ m1:brev) = r21.h
151
152 # Store halfword conditionally
153 0xff 0xf5 0x51 0x34
154 # CHECK: if (p3) memh(r17+r21<<#3) = r31
155 0xff 0xf5 0x71 0x34
156 # CHECK: if (p3) memh(r17+r21<<#3) = r31.h
157 0xff 0xf5 0x51 0x35
158 # CHECK: if (!p3) memh(r17+r21<<#3) = r31
159 0xff 0xf5 0x71 0x35
160 # CHECK: if (!p3) memh(r17+r21<<#3) = r31.h
161 0x03 0x40 0x45 0x85 0xff 0xf5 0x51 0x36
162 # CHECK: p3 = r5
163 # CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r31
164 0x03 0x40 0x45 0x85 0xff 0xf5 0x71 0x36
165 # CHECK: p3 = r5
166 # CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r31.h
167 0x03 0x40 0x45 0x85 0xff 0xf5 0x51 0x37
168 # CHECK: p3 = r5
169 # CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r31
170 0x03 0x40 0x45 0x85 0xff 0xf5 0x71 0x37
171 # CHECK: p3 = r5
172 # CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r31.h
173 0xf5 0xcf 0x31 0x38
174 # CHECK: if (p3) memh(r17+#62)=#21
175 0xf5 0xcf 0xb1 0x38
176 # CHECK: if (!p3) memh(r17+#62)=#21
177 0x03 0x40 0x45 0x85 0xf5 0xcf 0x31 0x39
178 # CHECK: p3 = r5
179 # CHECK-NEXT: if (p3.new) memh(r17+#62)=#21
180 0x03 0x40 0x45 0x85 0xf5 0xcf 0xb1 0x39
181 # CHECK: p3 = r5
182 # CHECK-NEXT: if (!p3.new) memh(r17+#62)=#21
183 0xfb 0xd5 0x51 0x40
184 # CHECK: if (p3) memh(r17+#62) = r21
185 0xfb 0xd5 0x71 0x40
186 # CHECK: if (p3) memh(r17+#62) = r21.h
187 0xfb 0xd5 0x51 0x44
188 # CHECK: if (!p3) memh(r17+#62) = r21
189 0xfb 0xd5 0x71 0x44
190 # CHECK: if (!p3) memh(r17+#62) = r21.h
191 0x03 0x40 0x45 0x85 0xfb 0xd5 0x51 0x42
192 # CHECK: p3 = r5
193 # CHECK-NEXT: if (p3.new) memh(r17+#62) = r21
194 0x03 0x40 0x45 0x85 0xfb 0xd5 0x71 0x42
195 # CHECK: p3 = r5
196 # CHECK-NEXT: if (p3.new) memh(r17+#62) = r21.h
197 0x03 0x40 0x45 0x85 0xfb 0xd5 0x51 0x46
198 # CHECK: p3 = r5
199 # CHECK-NEXT: if (!p3.new) memh(r17+#62) = r21
200 0x03 0x40 0x45 0x85 0xfb 0xd5 0x71 0x46
201 # CHECK: p3 = r5
202 # CHECK-NEXT: if (!p3.new) memh(r17+#62) = r21.h
203 0x2b 0xf5 0x51 0xab
204 # CHECK: if (p3) memh(r17++#10) = r21
205 0x2f 0xf5 0x51 0xab
206 # CHECK: if (!p3) memh(r17++#10) = r21
207 0x03 0x40 0x45 0x85 0xab 0xf5 0x51 0xab
208 # CHECK: p3 = r5
209 # CHECK-NEXT: if (p3.new) memh(r17++#10) = r21
210 0x03 0x40 0x45 0x85 0xaf 0xf5 0x51 0xab 
211 # CHECK: p3 = r5
212 # CHECK-NEXT: if (!p3.new) memh(r17++#10) = r21
213 0x2b 0xf5 0x71 0xab
214 # CHECK: if (p3) memh(r17++#10) = r21.h
215 0x2f 0xf5 0x71 0xab
216 # CHECK: if (!p3) memh(r17++#10) = r21.h
217 0x03 0x40 0x45 0x85 0xab 0xf5 0x71 0xab
218 # CHECK: p3 = r5
219 # CHECK-NEXT: if (p3.new) memh(r17++#10) = r21.h
220 0x03 0x40 0x45 0x85 0xaf 0xf5 0x71 0xab
221 # CHECK: p3 = r5
222 # CHECK-NEXT: if (!p3.new) memh(r17++#10) = r21.h
223
224 # Store word
225 0x9f 0xf5 0x91 0x3b
226 # CHECK: memw(r17 + r21<<#3) = r31
227 0x9f 0xca 0x51 0x3c
228 # CHECK: memw(r17+#84)=#31
229 0x15 0xdf 0x91 0xa1
230 # CHECK: memw(r17+#84) = r31
231 0x14 0xd5 0x80 0x48
232 # CHECK: memw(##80) = r21
233 0x02 0xf5 0x91 0xa9
234 # CHECK: memw(r17 ++ I:circ(m1)) = r21
235 0x28 0xf5 0x91 0xa9
236 # CHECK: memw(r17 ++ #20:circ(m1)) = r21
237 0x28 0xd5 0x91 0xab
238 # CHECK: memw(r17++#20) = r21
239 0x00 0xf5 0x91 0xad
240 # CHECK: memw(r17++m1) = r21
241 0x00 0xf5 0x91 0xaf
242 # CHECK: memw(r17 ++ m1:brev) = r21
243
244 # Store word conditionally
245 0xff 0xf5 0x91 0x34
246 # CHECK: if (p3) memw(r17+r21<<#3) = r31
247 0xff 0xf5 0x91 0x35
248 # CHECK: if (!p3) memw(r17+r21<<#3) = r31
249 0x03 0x40 0x45 0x85 0xff 0xf5 0x91 0x36
250 # CHECK: p3 = r5
251 # CHECK-NEXT: if (p3.new) memw(r17+r21<<#3) = r31
252 0x03 0x40 0x45 0x85 0xff 0xf5 0x91 0x37
253 # CHECK: p3 = r5
254 # CHECK-NEXT: if (!p3.new) memw(r17+r21<<#3) = r31
255 0xff 0xca 0x51 0x38
256 # CHECK: if (p3) memw(r17+#84)=#31
257 0xff 0xca 0xd1 0x38
258 # CHECK: if (!p3) memw(r17+#84)=#31
259 0x03 0x40 0x45 0x85 0xff 0xca 0x51 0x39
260 # CHECK: p3 = r5
261 # CHECK-NEXT: if (p3.new) memw(r17+#84)=#31
262 0x03 0x40 0x45 0x85 0xff 0xca 0xd1 0x39
263 # CHECK: p3 = r5
264 # CHECK-NEXT: if (!p3.new) memw(r17+#84)=#31
265 0xab 0xdf 0x91 0x40
266 # CHECK: if (p3) memw(r17+#84) = r31
267 0xab 0xdf 0x91 0x44 
268 # CHECK: if (!p3) memw(r17+#84) = r31
269 0x03 0x40 0x45 0x85 0xab 0xdf 0x91 0x42
270 # CHECK: p3 = r5
271 # CHECK-NEXT: if (p3.new) memw(r17+#84) = r31
272 0x03 0x40 0x45 0x85 0xab 0xdf 0x91 0x46
273 # CHECK: p3 = r5
274 # CHECK-NEXT: if (!p3.new) memw(r17+#84) = r31
275 0x2b 0xf5 0x91 0xab
276 # CHECK: if (p3) memw(r17++#20) = r21
277 0x2f 0xf5 0x91 0xab
278 # CHECK: if (!p3) memw(r17++#20) = r21
279 0x03 0x40 0x45 0x85 0xaf 0xf5 0x91 0xab
280 # CHECK: p3 = r5
281 # CHECK-NEXT: if (!p3.new) memw(r17++#20) = r21
282 0x03 0x40 0x45 0x85 0xab 0xf5 0x91 0xab
283 # CHECK: p3 = r5
284 # CHECK-NEXT: if (p3.new) memw(r17++#20) = r21
285
286 # Allocate stack frame
287 0x1f 0xc0 0x9d 0xa0
288 # CHECK: allocframe(#248)