Upload Tizen:Base source
[external/binutils.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 ;