]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/ia64/opc-m.pl
2004-05-20 H.J. Lu <hongjiu.lu@intel.com>
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / ia64 / opc-m.pl
1 print ".text\n\t.type _start,@", "function\n_start:\n\n";
2
3 @ldhint = ( "", ".nt1", ".nta" );
4 @ldspec = ( "", ".s", ".a", ".sa", ".c.clr", ".c.nc" );
5 @sthint = ( "", ".nta" );
6
7 $i = 0;
8
9 # Integer Load
10
11 foreach $s ( "1", "2", "4", "8" ) {
12 foreach $e (@ldspec, ".bias", ".acq", ".c.clr.acq") {
13 foreach $l (@ldhint) {
14 print "\tld${s}${e}${l} r4 = [r5]\n";
15 print "\tld${s}${e}${l} r4 = [r5], r6\n";
16 print "\tld${s}${e}${l} r4 = [r5], ", $i - 256, "\n";
17 $i = ($i + 13) % 512;
18 }
19 print "\n";
20 }
21 }
22
23 # Integer Fill
24
25 for $l (@ldhint) {
26 print "\tld8.fill${l} r4 = [r5]\n";
27 print "\tld8.fill${l} r4 = [r5], r6\n";
28 print "\tld8.fill${l} r4 = [r5], ", $i - 256, "\n";
29 $i = ($i + 13) % 512;
30 }
31 print "\n";
32
33 # Integer Store
34
35 foreach $s ("1", "2", "4", "8", "1.rel", "2.rel", "4.rel", "8.rel", "8.spill") {
36 for $l (@sthint) {
37 print "\tst${s}${l} [r4] = r5\n";
38 print "\tst${s}${l} [r4] = r5, ", $i - 256, "\n";
39 $i = ($i + 13) % 512;
40 }
41 print "\n";
42 }
43
44 # Floating Point Load
45
46 foreach $s ( "fs", "fd", "f8", "fe" ) {
47 foreach $e (@ldspec) {
48 foreach $l (@ldhint) {
49 print "\tld${s}${e}${l} f4 = [r5]\n";
50 print "\tld${s}${e}${l} f4 = [r5], r6\n";
51 print "\tld${s}${e}${l} f4 = [r5], ", $i - 256, "\n";
52 $i = ($i + 13) % 512;
53 }
54 print "\n";
55 }
56 }
57
58 # Floating Point Fill
59
60 for $l (@ldhint) {
61 print "\tldf.fill${l} f4 = [r5]\n";
62 print "\tldf.fill${l} f4 = [r5], r6\n";
63 print "\tldf.fill${l} f4 = [r5], ", $i - 256, "\n";
64 $i = ($i + 13) % 512;
65 }
66 print "\n";
67
68 # Floating Point Store
69
70 foreach $s ( "fs", "fd", "f8", "fe", "f.spill" ) {
71 for $l (@sthint) {
72 print "\tst${s}${l} [r4] = f5\n";
73 print "\tst${s}${l} [r4] = f5, ", $i - 256, "\n";
74 $i = ($i + 13) % 512;
75 }
76 print "\n";
77 }
78
79 # Floating Point Load Pair
80
81 foreach $s ( "fps", "fpd", "fp8" ) {
82 foreach $e (@ldspec) {
83 foreach $l (@ldhint) {
84 print "\tld${s}${e}${l} f4, f5 = [r5]\n";
85 print "\tld${s}${e}${l} f4, f5 = [r5], ", ($s eq "fps" ? 8 : 16), "\n";
86 }
87 print "\n";
88 }
89 }
90
91 # Line Prefetch
92
93 @lfhint = ( "", ".nt1", ".nt2", ".nta" );
94
95 foreach $e ( "", ".excl" ) {
96 foreach $f ( "", ".fault" ) {
97 foreach $h (@lfhint) {
98 print "\tlfetch${f}${e}${h} [r4]\n";
99 print "\tlfetch${f}${e}${h} [r4], r5\n";
100 print "\tlfetch${f}${e}${h} [r4], ", $i - 256, "\n";
101 $i = ($i + 13) % 512;
102 }
103 print "\n";
104 }
105 }
106
107 # Compare and Exchange
108
109 foreach $s ( "1", "2", "4", "8" ) {
110 foreach $e ( ".acq", ".rel" ) {
111 foreach $h (@ldhint) {
112 print "\tcmpxchg${s}${e}${h} r4 = [r5], r6, ar.ccv\n";
113 }
114 print "\n";
115 }
116 }
117
118 # Exchange
119
120 foreach $s ( "1", "2", "4", "8" ) {
121 foreach $h (@ldhint) {
122 print "\txchg${s}${h} r4 = [r5], r6\n";
123 }
124 print "\n";
125 }
126
127 # Fetch and Add
128
129 $i = 0;
130 @inc3 = ( -16, -8, -4, -1, 1, 4, 8, 16 );
131 foreach $s ( "4.acq", "8.acq", "4.rel", "8.rel" ) {
132 foreach $h (@ldhint) {
133 print "\tfetchadd${s}${h} r4 = [r5], ", $inc3[$i], "\n";
134 $i = ($i + 1) % 8;
135 }
136 print "\n";
137 }
138
139 # Get/Set FR
140
141 foreach $e ( ".sig", ".exp", ".s", ".d" ) {
142 print "\tsetf${e} f4 = r5\n";
143 }
144 print "\n";
145
146 foreach $e ( ".sig", ".exp", ".s", ".d" ) {
147 print "\tgetf${e} r4 = f5\n";
148 }
149 print "\n";
150
151 # Speculation and Advanced Load Checkso
152
153 print <<END
154 chk.s.m r4, _start
155 chk.s f4, _start
156 chk.a.nc r4, _start
157 chk.a.clr r4, _start
158 chk.a.nc f4, _start
159 chk.a.clr f4, _start
160
161 invala
162 fwb
163 mf
164 mf.a
165 srlz.d
166 srlz.i
167 sync.i
168 nop.m 0
169 nop.i 0
170
171 { .mii; alloc r4 = ar.pfs, 2, 10, 16, 16 }
172
173 { .mii; flushrs }
174 { .mii; loadrs }
175
176 invala.e r4
177 invala.e f4
178
179 fc r4
180 ptc.e r4
181
182 break.m 0
183 break.m 0x1ffff
184
185 nop.m 0
186 break.m 0x1ffff
187
188 probe.r r4 = r5, r6
189 probe.w r4 = r5, r6
190
191 probe.r r4 = r5, 0
192 probe.w r4 = r5, 1
193
194 probe.r.fault r3, 2
195 probe.w.fault r3, 3
196 probe.rw.fault r3, 0
197
198 itc.d r8
199 itc.i r9
200
201 sum 0x1234
202 rum 0x5aaaaa
203 ssm 0xffffff
204 rsm 0x400000
205
206 ptc.l r4, r5
207 ptc.g r4, r5
208 ptc.ga r4, r5
209 ptr.d r4, r5
210 ptr.i r4, r5
211
212 thash r4 = r5
213 ttag r4 = r5
214 tpa r4 = r5
215 tak r4 = r5
216
217 END
218 ;