OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [ia64/] [opc-m.pl] - Blame information for rev 301

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
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
;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.