• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2# Hexagon Programmer's Reference Manual 11.8 ST
3
4# Store doubleword
50x9e 0xf5 0xd1 0x3b
6# CHECK: memd(r17 + r21<<#3) = r31:30
70x28 0xd4 0xc0 0x48
8# CHECK: memd(##320) = r21:20
90x15 0xd4 0xd1 0xa1
10# CHECK: memd(r17+#168) = r21:20
110x02 0xf4 0xd1 0xa9
12# CHECK: memd(r17 ++ I:circ(m1)) = r21:20
130x28 0xf4 0xd1 0xa9
14# CHECK: memd(r17 ++ #40:circ(m1)) = r21:20
150x28 0xd4 0xd1 0xab
16# CHECK: memd(r17++#40) = r21:20
170x00 0xf4 0xd1 0xad
18# CHECK: memd(r17++m1) = r21:20
190x00 0xf4 0xd1 0xaf
20# CHECK: memd(r17 ++ m1:brev) = r21:20
21
22# Store doubleword conditionally
230xfe 0xf5 0xd1 0x34
24# CHECK: if (p3) memd(r17+r21<<#3) = r31:30
250xfe 0xf5 0xd1 0x35
26# CHECK: if (!p3) memd(r17+r21<<#3) = r31:30
270x03 0x40 0x45 0x85 0xfe 0xf5 0xd1 0x36
28# CHECK: p3 = r5
29# CHECK-NEXT: if (p3.new) memd(r17+r21<<#3) = r31:30
300x03 0x40 0x45 0x85 0xfe 0xf5 0xd1 0x37
31# CHECK: p3 = r5
32# CHECK-NEXT: if (!p3.new) memd(r17+r21<<#3) = r31:30
330xab 0xde 0xd1 0x40
34# CHECK: if (p3) memd(r17+#168) = r31:30
350xab 0xde 0xd1 0x44
36# CHECK: if (!p3) memd(r17+#168) = r31:30
370x03 0x40 0x45 0x85 0xab 0xde 0xd1 0x42
38# CHECK: p3 = r5
39# CHECK-NEXT: if (p3.new) memd(r17+#168) = r31:30
400x03 0x40 0x45 0x85 0xab 0xde 0xd1 0x46
41# CHECK: p3 = r5
42# CHECK-NEXT: if (!p3.new) memd(r17+#168) = r31:30
430x2b 0xf4 0xd1 0xab
44# CHECK: if (p3) memd(r17++#40) = r21:20
450x2f 0xf4 0xd1 0xab
46# CHECK: if (!p3) memd(r17++#40) = r21:20
470x03 0x40 0x45 0x85 0xab 0xf4 0xd1 0xab
48# CHECK: p3 = r5
49# CHECK-NEXT: if (p3.new) memd(r17++#40) = r21:20
500x03 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
550x9f 0xf5 0x11 0x3b
56# CHECK: memb(r17 + r21<<#3) = r31
570x9f 0xca 0x11 0x3c
58# CHECK: memb(r17+#21)=#31
590x15 0xd5 0x00 0x48
60# CHECK: memb(##21) = r21
610x15 0xd5 0x11 0xa1
62# CHECK: memb(r17+#21) = r21
630x02 0xf5 0x11 0xa9
64# CHECK: memb(r17 ++ I:circ(m1)) = r21
650x28 0xf5 0x11 0xa9
66# CHECK: memb(r17 ++ #5:circ(m1)) = r21
670x28 0xd5 0x11 0xab
68# CHECK: memb(r17++#5) = r21
690x00 0xf5 0x11 0xad
70# CHECK: memb(r17++m1) = r21
710x00 0xf5 0x11 0xaf
72# CHECK: memb(r17 ++ m1:brev) = r21
73
74# Store byte conditionally
750xff 0xf5 0x11 0x34
76# CHECK: if (p3) memb(r17+r21<<#3) = r31
770xff 0xf5 0x11 0x35
78# CHECK: if (!p3) memb(r17+r21<<#3) = r31
790x03 0x40 0x45 0x85 0xff 0xf5 0x11 0x36
80# CHECK: p3 = r5
81# CHECK-NEXT: if (p3.new) memb(r17+r21<<#3) = r31
820x03 0x40 0x45 0x85 0xff 0xf5 0x11 0x37
83# CHECK: p3 = r5
84# CHECK-NEXT: if (!p3.new) memb(r17+r21<<#3) = r31
850xff 0xca 0x11 0x38
86# CHECK: if (p3) memb(r17+#21)=#31
870xff 0xca 0x91 0x38
88# CHECK: if (!p3) memb(r17+#21)=#31
890x03 0x40 0x45 0x85 0xff 0xca 0x11 0x39
90# CHECK: p3 = r5
91# CHECK-NEXT: if (p3.new) memb(r17+#21)=#31
920x03 0x40 0x45 0x85 0xff 0xca 0x91 0x39
93# CHECK: p3 = r5
94# CHECK-NEXT: if (!p3.new) memb(r17+#21)=#31
950xab 0xdf 0x11 0x40
96# CHECK: if (p3) memb(r17+#21) = r31
970xab 0xdf 0x11 0x44
98# CHECK: if (!p3) memb(r17+#21) = r31
990x03 0x40 0x45 0x85 0xab 0xdf 0x11 0x42
100# CHECK: p3 = r5
101# CHECK-NEXT: if (p3.new) memb(r17+#21) = r31
1020x03 0x40 0x45 0x85 0xab 0xdf 0x11 0x46
103# CHECK: p3 = r5
104# CHECK-NEXT: if (!p3.new) memb(r17+#21) = r31
1050x2b 0xf5 0x11 0xab
106# CHECK: if (p3) memb(r17++#5) = r21
1070x2f 0xf5 0x11 0xab
108# CHECK: if (!p3) memb(r17++#5) = r21
1090x03 0x40 0x45 0x85 0xab 0xf5 0x11 0xab
110# CHECK: p3 = r5
111# CHECK-NEXT: if (p3.new) memb(r17++#5) = r21
1120x03 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
1170x9f 0xf5 0x51 0x3b
118# CHECK: memh(r17 + r21<<#3) = r31
1190x9f 0xf5 0x71 0x3b
120# CHECK: memh(r17 + r21<<#3) = r31.h
1210x95 0xcf 0x31 0x3c
122# CHECK: memh(r17+#62)=#21
1230x2a 0xd5 0x40 0x48
124# CHECK: memh(##84) = r21
1250x2a 0xd5 0x60 0x48
126# CHECK: memh(##84) = r21.h
1270x15 0xdf 0x51 0xa1
128# CHECK: memh(r17+#42) = r31
1290x15 0xdf 0x71 0xa1
130# CHECK: memh(r17+#42) = r31.h
1310x02 0xf5 0x51 0xa9
132# CHECK: memh(r17 ++ I:circ(m1)) = r21
1330x28 0xf5 0x51 0xa9
134# CHECK: memh(r17 ++ #10:circ(m1)) = r21
1350x02 0xf5 0x71 0xa9
136# CHECK: memh(r17 ++ I:circ(m1)) = r21.h
1370x28 0xf5 0x71 0xa9
138# CHECK: memh(r17 ++ #10:circ(m1)) = r21.h
1390x28 0xd5 0x51 0xab
140# CHECK: memh(r17++#10) = r21
1410x28 0xd5 0x71 0xab
142# CHECK: memh(r17++#10) = r21.h
1430x00 0xf5 0x51 0xad
144# CHECK: memh(r17++m1) = r21
1450x00 0xf5 0x71 0xad
146# CHECK: memh(r17++m1) = r21.h
1470x00 0xf5 0x51 0xaf
148# CHECK: memh(r17 ++ m1:brev) = r21
1490x00 0xf5 0x71 0xaf
150# CHECK: memh(r17 ++ m1:brev) = r21.h
151
152# Store halfword conditionally
1530xff 0xf5 0x51 0x34
154# CHECK: if (p3) memh(r17+r21<<#3) = r31
1550xff 0xf5 0x71 0x34
156# CHECK: if (p3) memh(r17+r21<<#3) = r31.h
1570xff 0xf5 0x51 0x35
158# CHECK: if (!p3) memh(r17+r21<<#3) = r31
1590xff 0xf5 0x71 0x35
160# CHECK: if (!p3) memh(r17+r21<<#3) = r31.h
1610x03 0x40 0x45 0x85 0xff 0xf5 0x51 0x36
162# CHECK: p3 = r5
163# CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r31
1640x03 0x40 0x45 0x85 0xff 0xf5 0x71 0x36
165# CHECK: p3 = r5
166# CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r31.h
1670x03 0x40 0x45 0x85 0xff 0xf5 0x51 0x37
168# CHECK: p3 = r5
169# CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r31
1700x03 0x40 0x45 0x85 0xff 0xf5 0x71 0x37
171# CHECK: p3 = r5
172# CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r31.h
1730xf5 0xcf 0x31 0x38
174# CHECK: if (p3) memh(r17+#62)=#21
1750xf5 0xcf 0xb1 0x38
176# CHECK: if (!p3) memh(r17+#62)=#21
1770x03 0x40 0x45 0x85 0xf5 0xcf 0x31 0x39
178# CHECK: p3 = r5
179# CHECK-NEXT: if (p3.new) memh(r17+#62)=#21
1800x03 0x40 0x45 0x85 0xf5 0xcf 0xb1 0x39
181# CHECK: p3 = r5
182# CHECK-NEXT: if (!p3.new) memh(r17+#62)=#21
1830xfb 0xd5 0x51 0x40
184# CHECK: if (p3) memh(r17+#62) = r21
1850xfb 0xd5 0x71 0x40
186# CHECK: if (p3) memh(r17+#62) = r21.h
1870xfb 0xd5 0x51 0x44
188# CHECK: if (!p3) memh(r17+#62) = r21
1890xfb 0xd5 0x71 0x44
190# CHECK: if (!p3) memh(r17+#62) = r21.h
1910x03 0x40 0x45 0x85 0xfb 0xd5 0x51 0x42
192# CHECK: p3 = r5
193# CHECK-NEXT: if (p3.new) memh(r17+#62) = r21
1940x03 0x40 0x45 0x85 0xfb 0xd5 0x71 0x42
195# CHECK: p3 = r5
196# CHECK-NEXT: if (p3.new) memh(r17+#62) = r21.h
1970x03 0x40 0x45 0x85 0xfb 0xd5 0x51 0x46
198# CHECK: p3 = r5
199# CHECK-NEXT: if (!p3.new) memh(r17+#62) = r21
2000x03 0x40 0x45 0x85 0xfb 0xd5 0x71 0x46
201# CHECK: p3 = r5
202# CHECK-NEXT: if (!p3.new) memh(r17+#62) = r21.h
2030x2b 0xf5 0x51 0xab
204# CHECK: if (p3) memh(r17++#10) = r21
2050x2f 0xf5 0x51 0xab
206# CHECK: if (!p3) memh(r17++#10) = r21
2070x03 0x40 0x45 0x85 0xab 0xf5 0x51 0xab
208# CHECK: p3 = r5
209# CHECK-NEXT: if (p3.new) memh(r17++#10) = r21
2100x03 0x40 0x45 0x85 0xaf 0xf5 0x51 0xab
211# CHECK: p3 = r5
212# CHECK-NEXT: if (!p3.new) memh(r17++#10) = r21
2130x2b 0xf5 0x71 0xab
214# CHECK: if (p3) memh(r17++#10) = r21.h
2150x2f 0xf5 0x71 0xab
216# CHECK: if (!p3) memh(r17++#10) = r21.h
2170x03 0x40 0x45 0x85 0xab 0xf5 0x71 0xab
218# CHECK: p3 = r5
219# CHECK-NEXT: if (p3.new) memh(r17++#10) = r21.h
2200x03 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
2250x9f 0xf5 0x91 0x3b
226# CHECK: memw(r17 + r21<<#3) = r31
2270x9f 0xca 0x51 0x3c
228# CHECK: memw(r17+#84)=#31
2290x15 0xdf 0x91 0xa1
230# CHECK: memw(r17+#84) = r31
2310x14 0xd5 0x80 0x48
232# CHECK: memw(##80) = r21
2330x02 0xf5 0x91 0xa9
234# CHECK: memw(r17 ++ I:circ(m1)) = r21
2350x28 0xf5 0x91 0xa9
236# CHECK: memw(r17 ++ #20:circ(m1)) = r21
2370x28 0xd5 0x91 0xab
238# CHECK: memw(r17++#20) = r21
2390x00 0xf5 0x91 0xad
240# CHECK: memw(r17++m1) = r21
2410x00 0xf5 0x91 0xaf
242# CHECK: memw(r17 ++ m1:brev) = r21
243
244# Store word conditionally
2450xff 0xf5 0x91 0x34
246# CHECK: if (p3) memw(r17+r21<<#3) = r31
2470xff 0xf5 0x91 0x35
248# CHECK: if (!p3) memw(r17+r21<<#3) = r31
2490x03 0x40 0x45 0x85 0xff 0xf5 0x91 0x36
250# CHECK: p3 = r5
251# CHECK-NEXT: if (p3.new) memw(r17+r21<<#3) = r31
2520x03 0x40 0x45 0x85 0xff 0xf5 0x91 0x37
253# CHECK: p3 = r5
254# CHECK-NEXT: if (!p3.new) memw(r17+r21<<#3) = r31
2550xff 0xca 0x51 0x38
256# CHECK: if (p3) memw(r17+#84)=#31
2570xff 0xca 0xd1 0x38
258# CHECK: if (!p3) memw(r17+#84)=#31
2590x03 0x40 0x45 0x85 0xff 0xca 0x51 0x39
260# CHECK: p3 = r5
261# CHECK-NEXT: if (p3.new) memw(r17+#84)=#31
2620x03 0x40 0x45 0x85 0xff 0xca 0xd1 0x39
263# CHECK: p3 = r5
264# CHECK-NEXT: if (!p3.new) memw(r17+#84)=#31
2650xab 0xdf 0x91 0x40
266# CHECK: if (p3) memw(r17+#84) = r31
2670xab 0xdf 0x91 0x44
268# CHECK: if (!p3) memw(r17+#84) = r31
2690x03 0x40 0x45 0x85 0xab 0xdf 0x91 0x42
270# CHECK: p3 = r5
271# CHECK-NEXT: if (p3.new) memw(r17+#84) = r31
2720x03 0x40 0x45 0x85 0xab 0xdf 0x91 0x46
273# CHECK: p3 = r5
274# CHECK-NEXT: if (!p3.new) memw(r17+#84) = r31
2750x2b 0xf5 0x91 0xab
276# CHECK: if (p3) memw(r17++#20) = r21
2770x2f 0xf5 0x91 0xab
278# CHECK: if (!p3) memw(r17++#20) = r21
2790x03 0x40 0x45 0x85 0xaf 0xf5 0x91 0xab
280# CHECK: p3 = r5
281# CHECK-NEXT: if (!p3.new) memw(r17++#20) = r21
2820x03 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
2870x1f 0xc0 0x9d 0xa0
288# CHECK: allocframe(#248)