|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 00000d20 * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _pipe_17
6: 6 00000000 _pipe_17:
7: 7 00031D64 0000 .word L215
8: 8 00031D66 # #include "fpp_defs.h"
9: 9 00031D66 #
10: 10 00031D66 #
11: 11 00031D66 # /*****************************************************************************
12: 12 00031D66 # *
13: 13 00031D66 # * DBL PIPELINE TEST #17 MONITOR
14: 14 00031D66 # *
15: 15 00031D66 # * This test will do:
16: 16 00031D66 # *
17: 17 00031D66 # * CVLD(x) ADDD(0) MULD(1) STD
18: 18 00031D66 # *
19: 19 00031D66 # * where the x's are the CVLD data patterns.
20: 20 00031D66 # *****************************************************************************/
21: 21 00031D66 # pipe_17()
22: 22 00031D66 # {
23: 23 00031D66 13 009b jbr L217
24: 24 00031D69 L218:
25: 25 00031D69 # asm(".globl _pipeline_17_t");
26: 26 00031D69 .globl _pipeline_17_t
27: 27 00031D69 # asm("_pipeline_17_t:"); /* entry address */
28: 28 00031D69 _pipeline_17_t:
29: 29 00031D69 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */
30: 30 00031D69 1d effffffff5 01 cmpl _cycle,$1
31: 31 00031D70 21 15 jneq L219
32: 32 00031D72 5d efffffffec tstl _prt_hdrs
33: 33 00031D78 31 0d jeql L219
34: 34 00031D7A # {
35: 35 00031D7A # writes(" PIPE_17");
36: 36 00031D7A .data 1
37: 37 00000d20 * L221:
38: 38 00000d20 * 20504950455F313700 .ascii " PIPE_17\0"
39: 39 00000d29 * .text
40: 40 00031D7A dd 8f00000d20 pushl $L221
41: 41 00031D80 fe 08 efffffffdd callf $8,_writes
42: 42 00031D87 # }
43: 43 00031D87 # subtest = 1;
44: 44 00031D87 L219:
45: 45 00031D87 0d 01 efffffffd6 movl $1,_subtest
46: 46 00031D8E # pipe17_1(); /* data in REGs, no NOPs */
47: 47 00031D8E fe 04 ef00000073 callf $4,_pipe17_1
48: 48 00031D95 # subtest++; /* increment subtest num */
49: 49 00031D95 6d efffffffc9 incl _subtest
50: 50 00031D9B # pipe17_2(); /* data in REGs, 1 NOP */
51: 51 00031D9B fe 04 ef0000018c callf $4,_pipe17_2
52: 52 00031DA2 # subtest++; /* increment subtest num */
53: 53 00031DA2 6d efffffffbc incl _subtest
54: 54 00031DA8 # pipe17_3(); /* data in REGs, 2 NOPs */
55: 55 00031DA8 fe 04 ef000002a7 callf $4,_pipe17_3
56: 56 00031DAF # subtest++; /* increment subtest num */
57: 57 00031DAF 6d efffffffaf incl _subtest
58: 58 00031DB5 # pipe17_4(); /* data in REGs, 3 NOPs */
59: 59 00031DB5 fe 04 ef000003c6 callf $4,_pipe17_4
60: 60 00031DBC # subtest++; /* increment subtest num */
61: 61 00031DBC 6d efffffffa2 incl _subtest
62: 62 00031DC2 # pipe17_5(); /* data in CACHE, no NOPs */
63: 63 00031DC2 fe 04 ef000004e7 callf $4,_pipe17_5
64: 64 00031DC9 # subtest++; /* increment subtest num */
65: 65 00031DC9 6d efffffff95 incl _subtest
66: 66 00031DCF # pipe17_6(); /* data in CACHE, 1 NOP */
67: 67 00031DCF fe 04 ef000005d4 callf $4,_pipe17_6
68: 68 00031DD6 # subtest++; /* increment subtest num */
69: 69 00031DD6 6d efffffff88 incl _subtest
70: 70 00031DDC # pipe17_7(); /* data in CACHE, 2 NOPs */
71: 71 00031DDC fe 04 ef000006c5 callf $4,_pipe17_7
72: 72 00031DE3 # subtest++; /* increment subtest num */
73: 73 00031DE3 6d efffffff7b incl _subtest
74: 74 00031DE9 # pipe17_8(); /* data in CACHE, 3 NOPs */
75: 75 00031DE9 fe 04 ef000007b8 callf $4,_pipe17_8
76: 76 00031DF0 # subtest++; /* increment subtest num */
77: 77 00031DF0 6d efffffff6e incl _subtest
78: 78 00031DF6 # pipe17_9(); /* data via F.P. 0 NOPs */
79: 79 00031DF6 fe 04 ef000008af callf $4,_pipe17_9
80: 80 00031DFD # asm("jmp *return"); /* return to the test monitor */
81: 81 00031DFD 71 ffffffff61 jmp *return
82: 82 00031E03 # }
83: 83 00031E03 40 ret#2
84: 84 00031E04 .set L215,0x0
85: 85 00031E04 L217:
86: 86 00031E04 13 ff62 jbr L218
87: 87 00031E07 .data
88: 88 00000d20 * .text
89: 89 00031E07 00 .align 1
90: 90 00031E08 .globl _pipe17_1
91: 91 00031E08 _pipe17_1:
92: 92 00031E08 0000 .word L231
93: 93 00031E0A #
94: 94 00031E0A #
95: 95 00031E0A #
96: 96 00031E0A #
97: 97 00031E0A #
98: 98 00031E0A #
99: 99 00031E0A #
100: 100 00031E0A # /************************************************************************
101: 101 00031E0A # *
102: 102 00031E0A # * SUBTEST 1
103: 103 00031E0A # * data in registers, no NO-OPs
104: 104 00031E0A # *
105: 105 00031E0A # ************************************************************************/
106: 106 00031E0A # pipe17_1()
107: 107 00031E0A # {
108: 108 00031E0A 13 011d jbr L233
109: 109 00031E0D L234:
110: 110 00031E0D # force_loop = FALSE; /* clear the force_loop flg */
111: 111 00031E0D 4d efffffff51 clrl _force_loop
112: 112 00031E13 # index = 0;
113: 113 00031E13 4d efffffff4b clrl _index
114: 114 00031E19 # do
115: 115 00031E19 L237:
116: 116 00031E19 # {
117: 117 00031E19 # sgl_value_1 = cvld_1_data[index].ld; /* get the integer operand */
118: 118 00031E19 5c 0c efffffff44 50 mull3 $12,_index,r0
119: 119 00031E21 0d e000000000 efffffff38 movl _cvld_1_data(r0),_sgl_value_1
120: 120 00031E2C # sgl_value_7 = 0x40800000; /* get a '1.0' ( MSW ) */
121: 121 00031E2C 0d 8f40800000 efffffff2d movl $1082130432,_sgl_value_7
122: 122 00031E37 # sgl_value_8 = 0; /* get a 0 */
123: 123 00031E37 4d efffffff27 clrl _sgl_value_8
124: 124 00031E3D # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
125: 125 00031E3D 5c 0c efffffff20 50 mull3 $12,_index,r0
126: 126 00031E45 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
127: 127 00031E4C 0d a004 efffffff14 movl 4(r0),_dbl_expected+4
128: 128 00031E54 0d 60 efffffff09 movl (r0),_dbl_expected
129: 129 00031E5B # /*
130: 130 00031E5B # * If LOOP ON ERROR is set, this is the loop for this subtest.
131: 131 00031E5B # * The force loop flag is set after the first error.
132: 132 00031E5B # */
133: 133 00031E5B # asm("_pipe17_1_lp1:");
134: 134 00031E5B _pipe17_1_lp1:
135: 135 00031E5B # asm("movl _sgl_value_1,r1"); /* move the data to r1 */
136: 136 00031E5B 0d efffffff03 51 movl _sgl_value_1,r1
137: 137 00031E62 # asm("movl _sgl_value_7,r2"); /* move a '1.0' to r2/r3 */
138: 138 00031E62 0d effffffefc 52 movl _sgl_value_7,r2
139: 139 00031E69 # asm("movl _sgl_value_8,r3");
140: 140 00031E69 0d effffffef5 53 movl _sgl_value_8,r3
141: 141 00031E70 # asm("movl _sgl_value_8,r4"); /* move a '0.0' to r4/r5 */
142: 142 00031E70 0d effffffeee 54 movl _sgl_value_8,r4
143: 143 00031E77 # asm("movl _sgl_value_8,r5");
144: 144 00031E77 0d effffffee7 55 movl _sgl_value_8,r5
145: 145 00031E7E # asm("cvld r1"); /* convert the int. ( op ) */
146: 146 00031E7E 77 51 cvld r1
147: 147 00031E80 # asm("addd r4"); /* add a '0.0' ( op ) */
148: 148 00031E80 c7 54 addd r4
149: 149 00031E82 # asm("muld r2"); /* multiply by 1.0 ( op ) */
150: 150 00031E82 e7 52 muld r2
151: 151 00031E84 # asm("std r6"); /* store the result ( op ) */
152: 152 00031E84 27 56 std r6
153: 153 00031E86 # if( force_loop )
154: 154 00031E86 5d effffffed8 tstl _force_loop
155: 155 00031E8C 31 02 jeql L238
156: 156 00031E8E # asm("brb _pipe17_1_lp1");; /* run the loop again */
157: 157 00031E8E 11 cb brb _pipe17_1_lp1
158: 158 00031E90 L238:
159: 159 00031E90 # /*
160: 160 00031E90 # * verify the results
161: 161 00031E90 # */
162: 162 00031E90 # asm("movl r6,_sgl_value_3"); /* get the result */
163: 163 00031E90 0d 56 effffffecd movl r6,_sgl_value_3
164: 164 00031E97 # asm("movl r7,_sgl_value_4");
165: 165 00031E97 0d 57 effffffec6 movl r7,_sgl_value_4
166: 166 00031E9E # dbl_st_acc.m = sgl_value_3;
167: 167 00031E9E 0d effffffec0 effffffebb movl _sgl_value_3,_dbl_st_acc
168: 168 00031EA9 # dbl_st_acc.l = sgl_value_4;
169: 169 00031EA9 0d effffffeb5 effffffeb4 movl _sgl_value_4,_dbl_st_acc+4
170: 170 00031EB4 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
171: 171 00031EB4 # (dbl_st_acc.l != dbl_expected.l) )
172: 172 00031EB4 1d effffffeaa effffffea5 cmpl _dbl_st_acc,_dbl_expected
173: 173 00031EBF 21 0d jneq L9999
174: 174 00031EC1 1d effffffea1 effffffe9c cmpl _dbl_st_acc+4,_dbl_expected+4
175: 175 00031ECC 31 42 jeql L239
176: 176 00031ECE L9999:
177: 177 00031ECE # {
178: 178 00031ECE # errcnt++; /* bump the error count */
179: 179 00031ECE 6d effffffe90 incl _errcnt
180: 180 00031ED4 # if ( prt_error )
181: 181 00031ED4 5d effffffe8a tstl _prt_error
182: 182 00031EDA 31 0d jeql L240
183: 183 00031EDC # print_pipe17_er("Reg. Data, no NOPs");
184: 184 00031EDC .data 1
185: 185 00000d29 * L242:
186: 186 00000d29 * 5265672E20446174612C206E6 .ascii "Reg. Data, no NOPs\0"
187: F204E4F507300
188: 187 00000d3c * .text
189: 188 00031EDC dd 8f00000d29 pushl $L242
190: 189 00031EE2 fe 08 ef000009cf callf $8,_print_pipe17_er
191: 190 00031EE9 # if ( halt_flg ) /* halt on error? */
192: 191 00031EE9 L240:
193: 192 00031EE9 5d effffffe75 tstl _halt_flg
194: 193 00031EEF 31 0d jeql L243
195: 194 00031EF1 # pipe17_er_hlt( subtest );
196: 195 00031EF1 dd effffffe6d pushl _subtest
197: 196 00031EF7 fe 08 ef00000b08 callf $8,_pipe17_er_hlt
198: 197 00031EFE # if ( loop_on_err ) {
199: 198 00031EFE L243:
200: 199 00031EFE 5d effffffe60 tstl _loop_on_err
201: 200 00031F04 31 0a jeql L245
202: 201 00031F06 # force_loop = TRUE; /* set the force loop flag */
203: 202 00031F06 0d 01 effffffe57 movl $1,_force_loop
204: 203 00031F0D # asm("brw _pipe17_1_lp1"); /* and loop */
205: 204 00031F0D 13 ff4b brw _pipe17_1_lp1
206: 205 00031F10 # }
207: 206 00031F10 # } /* end of compare error */
208: 207 00031F10 L245:
209: 208 00031F10 # } while( index++ < max_cvld_1_index );
210: 209 00031F10 L239:
211: 210 00031F10 L236:
212: 211 00031F10 0d effffffe4e 50 movl _index,r0
213: 212 00031F17 6d effffffe47 incl _index
214: 213 00031F1D 1d 50 effffffe40 cmpl r0,_max_cvld_1_index
215: 214 00031F24 81 03 13 fef0 jlss L237
216: 215 00031F29 L235:
217: 216 00031F29 # } /* end of subtest 1 */
218: 217 00031F29 40 ret#2
219: 218 00031F2A .set L231,0x0
220: 219 00031F2A L233:
221: 220 00031F2A 13 fee0 jbr L234
222: 221 00031F2D .data
223: 222 00000d20 * .text
224: 223 00031F2D 00 .align 1
225: 224 00031F2E .globl _pipe17_2
226: 225 00031F2E _pipe17_2:
227: 226 00031F2E 0000 .word L246
228: 227 00031F30 #
229: 228 00031F30 #
230: 229 00031F30 #
231: 230 00031F30 #
232: 231 00031F30 #
233: 232 00031F30 #
234: 233 00031F30 #
235: 234 00031F30 # /************************************************************************
236: 235 00031F30 # *
237: 236 00031F30 # * SUBTEST 2
238: 237 00031F30 # * data in registers, 1 NO-OP
239: 238 00031F30 # *
240: 239 00031F30 # ************************************************************************/
241: 240 00031F30 # pipe17_2()
242: 241 00031F30 # {
243: 242 00031F30 13 0120 jbr L248
244: 243 00031F33 L249:
245: 244 00031F33 # force_loop = FALSE; /* clear the force_loop flg */
246: 245 00031F33 4d effffffe2b clrl _force_loop
247: 246 00031F39 # index = 0;
248: 247 00031F39 4d effffffe25 clrl _index
249: 248 00031F3F # do
250: 249 00031F3F L252:
251: 250 00031F3F # {
252: 251 00031F3F # sgl_value_1 = cvld_1_data[index].ld; /* get the integer operand */
253: 252 00031F3F 5c 0c effffffe1e 50 mull3 $12,_index,r0
254: 253 00031F47 0d e000000000 effffffe12 movl _cvld_1_data(r0),_sgl_value_1
255: 254 00031F52 # sgl_value_7 = 0x40800000; /* get a '1.0' ( MSW ) */
256: 255 00031F52 0d 8f40800000 effffffe07 movl $1082130432,_sgl_value_7
257: 256 00031F5D # sgl_value_8 = 0; /* get a 0 */
258: 257 00031F5D 4d effffffe01 clrl _sgl_value_8
259: 258 00031F63 # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
260: 259 00031F63 5c 0c effffffdfa 50 mull3 $12,_index,r0
261: 260 00031F6B 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
262: 261 00031F72 0d a004 effffffdee movl 4(r0),_dbl_expected+4
263: 262 00031F7A 0d 60 effffffde3 movl (r0),_dbl_expected
264: 263 00031F81 # /*
265: 264 00031F81 # * If LOOP ON ERROR is set, this is the loop for this subtest.
266: 265 00031F81 # * The force loop flag is set after the first error.
267: 266 00031F81 # */
268: 267 00031F81 # asm("_pipe17_2_lp1:");
269: 268 00031F81 _pipe17_2_lp1:
270: 269 00031F81 # asm("movl _sgl_value_1,r1"); /* move the data to r1 */
271: 270 00031F81 0d effffffddd 51 movl _sgl_value_1,r1
272: 271 00031F88 # asm("movl _sgl_value_7,r2"); /* move a '1.0' to r2/r3 */
273: 272 00031F88 0d effffffdd6 52 movl _sgl_value_7,r2
274: 273 00031F8F # asm("movl _sgl_value_8,r3");
275: 274 00031F8F 0d effffffdcf 53 movl _sgl_value_8,r3
276: 275 00031F96 # asm("movl _sgl_value_8,r4"); /* move a '0.0' to r4/r5 */
277: 276 00031F96 0d effffffdc8 54 movl _sgl_value_8,r4
278: 277 00031F9D # asm("movl _sgl_value_8,r5");
279: 278 00031F9D 0d effffffdc1 55 movl _sgl_value_8,r5
280: 279 00031FA4 # asm("cvld r1"); /* convert the int. ( op ) */
281: 280 00031FA4 77 51 cvld r1
282: 281 00031FA6 # asm("nop");
283: 282 00031FA6 10 nop
284: 283 00031FA7 # asm("addd r4"); /* add a '0.0' ( op ) */
285: 284 00031FA7 c7 54 addd r4
286: 285 00031FA9 # asm("nop");
287: 286 00031FA9 10 nop
288: 287 00031FAA # asm("muld r2"); /* multiply by 1.0 ( op ) */
289: 288 00031FAA e7 52 muld r2
290: 289 00031FAC # asm("nop");
291: 290 00031FAC 10 nop
292: 291 00031FAD # asm("std r6"); /* store the result ( op ) */
293: 292 00031FAD 27 56 std r6
294: 293 00031FAF # if( force_loop )
295: 294 00031FAF 5d effffffdaf tstl _force_loop
296: 295 00031FB5 31 02 jeql L253
297: 296 00031FB7 # asm("brb _pipe17_2_lp1");; /* run the loop again */
298: 297 00031FB7 11 c8 brb _pipe17_2_lp1
299: 298 00031FB9 L253:
300: 299 00031FB9 # /*
301: 300 00031FB9 # * verify the results
302: 301 00031FB9 # */
303: 302 00031FB9 # asm("movl r6,_sgl_value_3"); /* get the result */
304: 303 00031FB9 0d 56 effffffda4 movl r6,_sgl_value_3
305: 304 00031FC0 # asm("movl r7,_sgl_value_4");
306: 305 00031FC0 0d 57 effffffd9d movl r7,_sgl_value_4
307: 306 00031FC7 # dbl_st_acc.m = sgl_value_3;
308: 307 00031FC7 0d effffffd97 effffffd92 movl _sgl_value_3,_dbl_st_acc
309: 308 00031FD2 # dbl_st_acc.l = sgl_value_4;
310: 309 00031FD2 0d effffffd8c effffffd8b movl _sgl_value_4,_dbl_st_acc+4
311: 310 00031FDD # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
312: 311 00031FDD # (dbl_st_acc.l != dbl_expected.l) )
313: 312 00031FDD 1d effffffd81 effffffd7c cmpl _dbl_st_acc,_dbl_expected
314: 313 00031FE8 21 0d jneq L9998
315: 314 00031FEA 1d effffffd78 effffffd73 cmpl _dbl_st_acc+4,_dbl_expected+4
316: 315 00031FF5 31 42 jeql L254
317: 316 00031FF7 L9998:
318: 317 00031FF7 # {
319: 318 00031FF7 # errcnt++; /* bump the error count */
320: 319 00031FF7 6d effffffd67 incl _errcnt
321: 320 00031FFD # if ( prt_error )
322: 321 00031FFD 5d effffffd61 tstl _prt_error
323: 322 00032003 31 0d jeql L255
324: 323 00032005 # print_pipe17_er("Reg. Data, 1 NOP");
325: 324 00032005 .data 1
326: 325 00000d3c * L256:
327: 326 00000d3c * 5265672E20446174612C20312 .ascii "Reg. Data, 1 NOP\0"
328: 04E4F5000
329: 327 00000d4d * .text
330: 328 00032005 dd 8f00000d3c pushl $L256
331: 329 0003200B fe 08 ef000008a6 callf $8,_print_pipe17_er
332: 330 00032012 # if ( halt_flg ) /* halt on error? */
333: 331 00032012 L255:
334: 332 00032012 5d effffffd4c tstl _halt_flg
335: 333 00032018 31 0d jeql L257
336: 334 0003201A # pipe17_er_hlt( subtest );
337: 335 0003201A dd effffffd44 pushl _subtest
338: 336 00032020 fe 08 ef000009df callf $8,_pipe17_er_hlt
339: 337 00032027 # if ( loop_on_err ) {
340: 338 00032027 L257:
341: 339 00032027 5d effffffd37 tstl _loop_on_err
342: 340 0003202D 31 0a jeql L258
343: 341 0003202F # force_loop = TRUE; /* set the force loop flag */
344: 342 0003202F 0d 01 effffffd2e movl $1,_force_loop
345: 343 00032036 # asm("brw _pipe17_2_lp1"); /* and loop */
346: 344 00032036 13 ff48 brw _pipe17_2_lp1
347: 345 00032039 # }
348: 346 00032039 # } /* end of compare error */
349: 347 00032039 L258:
350: 348 00032039 # } while( index++ < max_cvld_1_index );
351: 349 00032039 L254:
352: 350 00032039 L251:
353: 351 00032039 0d effffffd25 50 movl _index,r0
354: 352 00032040 6d effffffd1e incl _index
355: 353 00032046 1d 50 effffffd17 cmpl r0,_max_cvld_1_index
356: 354 0003204D 81 03 13 feed jlss L252
357: 355 00032052 L250:
358: 356 00032052 # } /* end of subtest 2 */
359: 357 00032052 40 ret#2
360: 358 00032053 .set L246,0x0
361: 359 00032053 L248:
362: 360 00032053 13 fedd jbr L249
363: 361 00032056 .data
364: 362 00000d20 * .text
365: 363 00032056 .align 1
366: 364 00032056 .globl _pipe17_3
367: 365 00032056 _pipe17_3:
368: 366 00032056 0000 .word L259
369: 367 00032058 #
370: 368 00032058 #
371: 369 00032058 #
372: 370 00032058 #
373: 371 00032058 #
374: 372 00032058 #
375: 373 00032058 #
376: 374 00032058 # /************************************************************************
377: 375 00032058 # *
378: 376 00032058 # * SUBTEST 3
379: 377 00032058 # * data in registers, 2 NO-OPs
380: 378 00032058 # *
381: 379 00032058 # ************************************************************************/
382: 380 00032058 # pipe17_3()
383: 381 00032058 # {
384: 382 00032058 13 0123 jbr L261
385: 383 0003205B L262:
386: 384 0003205B # force_loop = FALSE; /* clear the force_loop flg */
387: 385 0003205B 4d effffffd03 clrl _force_loop
388: 386 00032061 # index = 0;
389: 387 00032061 4d effffffcfd clrl _index
390: 388 00032067 # do
391: 389 00032067 L265:
392: 390 00032067 # {
393: 391 00032067 # sgl_value_1 = cvld_1_data[index].ld; /* get the integer operand */
394: 392 00032067 5c 0c effffffcf6 50 mull3 $12,_index,r0
395: 393 0003206F 0d e000000000 effffffcea movl _cvld_1_data(r0),_sgl_value_1
396: 394 0003207A # sgl_value_7 = 0x40800000; /* get a '1.0' ( MSW ) */
397: 395 0003207A 0d 8f40800000 effffffcdf movl $1082130432,_sgl_value_7
398: 396 00032085 # sgl_value_8 = 0; /* get a 0 */
399: 397 00032085 4d effffffcd9 clrl _sgl_value_8
400: 398 0003208B # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
401: 399 0003208B 5c 0c effffffcd2 50 mull3 $12,_index,r0
402: 400 00032093 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
403: 401 0003209A 0d a004 effffffcc6 movl 4(r0),_dbl_expected+4
404: 402 000320A2 0d 60 effffffcbb movl (r0),_dbl_expected
405: 403 000320A9 # /*
406: 404 000320A9 # * If LOOP ON ERROR is set, this is the loop for this subtest.
407: 405 000320A9 # * The force loop flag is set after the first error.
408: 406 000320A9 # */
409: 407 000320A9 # asm("_pipe17_3_lp1:");
410: 408 000320A9 _pipe17_3_lp1:
411: 409 000320A9 # asm("movl _sgl_value_1,r1"); /* move the data to r1 */
412: 410 000320A9 0d effffffcb5 51 movl _sgl_value_1,r1
413: 411 000320B0 # asm("movl _sgl_value_7,r2"); /* move a '1.0' to r2/r3 */
414: 412 000320B0 0d effffffcae 52 movl _sgl_value_7,r2
415: 413 000320B7 # asm("movl _sgl_value_8,r3");
416: 414 000320B7 0d effffffca7 53 movl _sgl_value_8,r3
417: 415 000320BE # asm("movl _sgl_value_8,r4"); /* move a '0.0' to r4/r5 */
418: 416 000320BE 0d effffffca0 54 movl _sgl_value_8,r4
419: 417 000320C5 # asm("movl _sgl_value_8,r5");
420: 418 000320C5 0d effffffc99 55 movl _sgl_value_8,r5
421: 419 000320CC # asm("cvld r1"); /* convert the int. ( op ) */
422: 420 000320CC 77 51 cvld r1
423: 421 000320CE # asm("nop");
424: 422 000320CE 10 nop
425: 423 000320CF # asm("nop");
426: 424 000320CF 10 nop
427: 425 000320D0 # asm("addd r4"); /* add a '0.0' ( op ) */
428: 426 000320D0 c7 54 addd r4
429: 427 000320D2 # asm("nop");
430: 428 000320D2 10 nop
431: 429 000320D3 # asm("nop");
432: 430 000320D3 10 nop
433: 431 000320D4 # asm("muld r2"); /* multiply by 1.0 ( op ) */
434: 432 000320D4 e7 52 muld r2
435: 433 000320D6 # asm("nop");
436: 434 000320D6 10 nop
437: 435 000320D7 # asm("nop");
438: 436 000320D7 10 nop
439: 437 000320D8 # asm("std r6"); /* store the result ( op ) */
440: 438 000320D8 27 56 std r6
441: 439 000320DA # if( force_loop )
442: 440 000320DA 5d effffffc84 tstl _force_loop
443: 441 000320E0 31 02 jeql L266
444: 442 000320E2 # asm("brb _pipe17_3_lp1");; /* run the loop again */
445: 443 000320E2 11 c5 brb _pipe17_3_lp1
446: 444 000320E4 L266:
447: 445 000320E4 # /*
448: 446 000320E4 # * verify the results
449: 447 000320E4 # */
450: 448 000320E4 # asm("movl r6,_sgl_value_3"); /* get the result */
451: 449 000320E4 0d 56 effffffc79 movl r6,_sgl_value_3
452: 450 000320EB # asm("movl r7,_sgl_value_4");
453: 451 000320EB 0d 57 effffffc72 movl r7,_sgl_value_4
454: 452 000320F2 # dbl_st_acc.m = sgl_value_3;
455: 453 000320F2 0d effffffc6c effffffc67 movl _sgl_value_3,_dbl_st_acc
456: 454 000320FD # dbl_st_acc.l = sgl_value_4;
457: 455 000320FD 0d effffffc61 effffffc60 movl _sgl_value_4,_dbl_st_acc+4
458: 456 00032108 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
459: 457 00032108 # (dbl_st_acc.l != dbl_expected.l) )
460: 458 00032108 1d effffffc56 effffffc51 cmpl _dbl_st_acc,_dbl_expected
461: 459 00032113 21 0d jneq L9997
462: 460 00032115 1d effffffc4d effffffc48 cmpl _dbl_st_acc+4,_dbl_expected+4
463: 461 00032120 31 42 jeql L267
464: 462 00032122 L9997:
465: 463 00032122 # {
466: 464 00032122 # errcnt++; /* bump the error count */
467: 465 00032122 6d effffffc3c incl _errcnt
468: 466 00032128 # if ( prt_error )
469: 467 00032128 5d effffffc36 tstl _prt_error
470: 468 0003212E 31 0d jeql L268
471: 469 00032130 # print_pipe17_er("Reg. Data, 2 NOPs");
472: 470 00032130 .data 1
473: 471 00000d4d * L269:
474: 472 00000d4d * 5265672E20446174612C20322 .ascii "Reg. Data, 2 NOPs\0"
475: 04E4F507300
476: 473 00000d5f * .text
477: 474 00032130 dd 8f00000d4d pushl $L269
478: 475 00032136 fe 08 ef0000077b callf $8,_print_pipe17_er
479: 476 0003213D # if ( halt_flg ) /* halt on error? */
480: 477 0003213D L268:
481: 478 0003213D 5d effffffc21 tstl _halt_flg
482: 479 00032143 31 0d jeql L270
483: 480 00032145 # pipe17_er_hlt( subtest );
484: 481 00032145 dd effffffc19 pushl _subtest
485: 482 0003214B fe 08 ef000008b4 callf $8,_pipe17_er_hlt
486: 483 00032152 # if ( loop_on_err ) {
487: 484 00032152 L270:
488: 485 00032152 5d effffffc0c tstl _loop_on_err
489: 486 00032158 31 0a jeql L271
490: 487 0003215A # force_loop = TRUE; /* set the force loop flag */
491: 488 0003215A 0d 01 effffffc03 movl $1,_force_loop
492: 489 00032161 # asm("brw _pipe17_3_lp1"); /* and loop */
493: 490 00032161 13 ff45 brw _pipe17_3_lp1
494: 491 00032164 # }
495: 492 00032164 # } /* end of compare error */
496: 493 00032164 L271:
497: 494 00032164 # } while( index++ < max_cvld_1_index );
498: 495 00032164 L267:
499: 496 00032164 L264:
500: 497 00032164 0d effffffbfa 50 movl _index,r0
501: 498 0003216B 6d effffffbf3 incl _index
502: 499 00032171 1d 50 effffffbec cmpl r0,_max_cvld_1_index
503: 500 00032178 81 03 13 feea jlss L265
504: 501 0003217D L263:
505: 502 0003217D # } /* end of subtest 3 */
506: 503 0003217D 40 ret#2
507: 504 0003217E .set L259,0x0
508: 505 0003217E L261:
509: 506 0003217E 13 feda jbr L262
510: 507 00032181 .data
511: 508 00000d20 * .text
512: 509 00032181 00 .align 1
513: 510 00032182 .globl _pipe17_4
514: 511 00032182 _pipe17_4:
515: 512 00032182 0000 .word L272
516: 513 00032184 #
517: 514 00032184 #
518: 515 00032184 #
519: 516 00032184 #
520: 517 00032184 #
521: 518 00032184 #
522: 519 00032184 #
523: 520 00032184 # /************************************************************************
524: 521 00032184 # *
525: 522 00032184 # * SUBTEST 4
526: 523 00032184 # * data in registers, 3 NO-OPs
527: 524 00032184 # *
528: 525 00032184 # ************************************************************************/
529: 526 00032184 # pipe17_4()
530: 527 00032184 # {
531: 528 00032184 13 0126 jbr L274
532: 529 00032187 L275:
533: 530 00032187 # force_loop = FALSE; /* clear the force_loop flg */
534: 531 00032187 4d effffffbd7 clrl _force_loop
535: 532 0003218D # index = 0;
536: 533 0003218D 4d effffffbd1 clrl _index
537: 534 00032193 # do
538: 535 00032193 L278:
539: 536 00032193 # {
540: 537 00032193 # sgl_value_1 = cvld_1_data[index].ld; /* get the integer operand */
541: 538 00032193 5c 0c effffffbca 50 mull3 $12,_index,r0
542: 539 0003219B 0d e000000000 effffffbbe movl _cvld_1_data(r0),_sgl_value_1
543: 540 000321A6 # sgl_value_7 = 0x40800000; /* get a '1.0' ( MSW ) */
544: 541 000321A6 0d 8f40800000 effffffbb3 movl $1082130432,_sgl_value_7
545: 542 000321B1 # sgl_value_8 = 0; /* get a 0 */
546: 543 000321B1 4d effffffbad clrl _sgl_value_8
547: 544 000321B7 # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
548: 545 000321B7 5c 0c effffffba6 50 mull3 $12,_index,r0
549: 546 000321BF 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
550: 547 000321C6 0d a004 effffffb9a movl 4(r0),_dbl_expected+4
551: 548 000321CE 0d 60 effffffb8f movl (r0),_dbl_expected
552: 549 000321D5 # /*
553: 550 000321D5 # * If LOOP ON ERROR is set, this is the loop for this subtest.
554: 551 000321D5 # * The force loop flag is set after the first error.
555: 552 000321D5 # */
556: 553 000321D5 # asm("_pipe17_4_lp1:");
557: 554 000321D5 _pipe17_4_lp1:
558: 555 000321D5 # asm("movl _sgl_value_1,r1"); /* move the data to r1 */
559: 556 000321D5 0d effffffb89 51 movl _sgl_value_1,r1
560: 557 000321DC # asm("movl _sgl_value_7,r2"); /* move a '1.0' to r2/r3 */
561: 558 000321DC 0d effffffb82 52 movl _sgl_value_7,r2
562: 559 000321E3 # asm("movl _sgl_value_8,r3");
563: 560 000321E3 0d effffffb7b 53 movl _sgl_value_8,r3
564: 561 000321EA # asm("movl _sgl_value_8,r4"); /* move a '0.0' to r4/r5 */
565: 562 000321EA 0d effffffb74 54 movl _sgl_value_8,r4
566: 563 000321F1 # asm("movl _sgl_value_8,r5");
567: 564 000321F1 0d effffffb6d 55 movl _sgl_value_8,r5
568: 565 000321F8 # asm("cvld r1"); /* convert the int. ( op ) */
569: 566 000321F8 77 51 cvld r1
570: 567 000321FA # asm("nop");
571: 568 000321FA 10 nop
572: 569 000321FB # asm("nop");
573: 570 000321FB 10 nop
574: 571 000321FC # asm("nop");
575: 572 000321FC 10 nop
576: 573 000321FD # asm("addd r4"); /* add a '0.0' ( op ) */
577: 574 000321FD c7 54 addd r4
578: 575 000321FF # asm("nop");
579: 576 000321FF 10 nop
580: 577 00032200 # asm("nop");
581: 578 00032200 10 nop
582: 579 00032201 # asm("nop");
583: 580 00032201 10 nop
584: 581 00032202 # asm("muld r2"); /* multiply by 1.0 ( op ) */
585: 582 00032202 e7 52 muld r2
586: 583 00032204 # asm("nop");
587: 584 00032204 10 nop
588: 585 00032205 # asm("nop");
589: 586 00032205 10 nop
590: 587 00032206 # asm("nop");
591: 588 00032206 10 nop
592: 589 00032207 # asm("std r6"); /* store the result ( op ) */
593: 590 00032207 27 56 std r6
594: 591 00032209 # if( force_loop )
595: 592 00032209 5d effffffb55 tstl _force_loop
596: 593 0003220F 31 02 jeql L279
597: 594 00032211 # asm("brb _pipe17_4_lp1");; /* run the loop again */
598: 595 00032211 11 c2 brb _pipe17_4_lp1
599: 596 00032213 L279:
600: 597 00032213 # /*
601: 598 00032213 # * verify the results
602: 599 00032213 # */
603: 600 00032213 # asm("movl r6,_sgl_value_3"); /* get the result */
604: 601 00032213 0d 56 effffffb4a movl r6,_sgl_value_3
605: 602 0003221A # asm("movl r7,_sgl_value_4");
606: 603 0003221A 0d 57 effffffb43 movl r7,_sgl_value_4
607: 604 00032221 # dbl_st_acc.m = sgl_value_3;
608: 605 00032221 0d effffffb3d effffffb38 movl _sgl_value_3,_dbl_st_acc
609: 606 0003222C # dbl_st_acc.l = sgl_value_4;
610: 607 0003222C 0d effffffb32 effffffb31 movl _sgl_value_4,_dbl_st_acc+4
611: 608 00032237 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
612: 609 00032237 # (dbl_st_acc.l != dbl_expected.l) )
613: 610 00032237 1d effffffb27 effffffb22 cmpl _dbl_st_acc,_dbl_expected
614: 611 00032242 21 0d jneq L9996
615: 612 00032244 1d effffffb1e effffffb19 cmpl _dbl_st_acc+4,_dbl_expected+4
616: 613 0003224F 31 42 jeql L280
617: 614 00032251 L9996:
618: 615 00032251 # {
619: 616 00032251 # errcnt++; /* bump the error count */
620: 617 00032251 6d effffffb0d incl _errcnt
621: 618 00032257 # if ( prt_error )
622: 619 00032257 5d effffffb07 tstl _prt_error
623: 620 0003225D 31 0d jeql L281
624: 621 0003225F # print_pipe17_er("Reg. Data, 3 NOPs");
625: 622 0003225F .data 1
626: 623 00000d5f * L282:
627: 624 00000d5f * 5265672E20446174612C20332 .ascii "Reg. Data, 3 NOPs\0"
628: 04E4F507300
629: 625 00000d71 * .text
630: 626 0003225F dd 8f00000d5f pushl $L282
631: 627 00032265 fe 08 ef0000064c callf $8,_print_pipe17_er
632: 628 0003226C # if ( halt_flg ) /* halt on error? */
633: 629 0003226C L281:
634: 630 0003226C 5d effffffaf2 tstl _halt_flg
635: 631 00032272 31 0d jeql L283
636: 632 00032274 # pipe17_er_hlt( subtest );
637: 633 00032274 dd effffffaea pushl _subtest
638: 634 0003227A fe 08 ef00000785 callf $8,_pipe17_er_hlt
639: 635 00032281 # if ( loop_on_err ) {
640: 636 00032281 L283:
641: 637 00032281 5d effffffadd tstl _loop_on_err
642: 638 00032287 31 0a jeql L284
643: 639 00032289 # force_loop = TRUE; /* set the force loop flag */
644: 640 00032289 0d 01 effffffad4 movl $1,_force_loop
645: 641 00032290 # asm("brw _pipe17_4_lp1"); /* and loop */
646: 642 00032290 13 ff42 brw _pipe17_4_lp1
647: 643 00032293 # }
648: 644 00032293 # } /* end of compare error */
649: 645 00032293 L284:
650: 646 00032293 # } while( index++ < max_cvld_1_index );
651: 647 00032293 L280:
652: 648 00032293 L277:
653: 649 00032293 0d effffffacb 50 movl _index,r0
654: 650 0003229A 6d effffffac4 incl _index
655: 651 000322A0 1d 50 effffffabd cmpl r0,_max_cvld_1_index
656: 652 000322A7 81 03 13 fee7 jlss L278
657: 653 000322AC L276:
658: 654 000322AC # } /* end of subtest 4 */
659: 655 000322AC 40 ret#2
660: 656 000322AD .set L272,0x0
661: 657 000322AD L274:
662: 658 000322AD 13 fed7 jbr L275
663: 659 000322B0 .data
664: 660 00000d20 * .text
665: 661 000322B0 .align 1
666: 662 000322B0 .globl _pipe17_5
667: 663 000322B0 _pipe17_5:
668: 664 000322B0 0000 .word L285
669: 665 000322B2 #
670: 666 000322B2 #
671: 667 000322B2 #
672: 668 000322B2 #
673: 669 000322B2 #
674: 670 000322B2 #
675: 671 000322B2 #
676: 672 000322B2 # /************************************************************************
677: 673 000322B2 # *
678: 674 000322B2 # * SUBTEST 5
679: 675 000322B2 # * data in cache, no NO-OPs
680: 676 000322B2 # *
681: 677 000322B2 # ************************************************************************/
682: 678 000322B2 # pipe17_5()
683: 679 000322B2 # {
684: 680 000322B2 13 00f2 jbr L287
685: 681 000322B5 L288:
686: 682 000322B5 # force_loop = FALSE; /* clear the force_loop flg */
687: 683 000322B5 4d effffffaa9 clrl _force_loop
688: 684 000322BB # index = 0;
689: 685 000322BB 4d effffffaa3 clrl _index
690: 686 000322C1 # do
691: 687 000322C1 L291:
692: 688 000322C1 # {
693: 689 000322C1 # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
694: 690 000322C1 5c 0c effffffa9c 50 mull3 $12,_index,r0
695: 691 000322C9 0d e000000000 effffffa90 movl _cvld_1_data(r0),_sgl_value_1
696: 692 000322D4 # dbl_value_1.m = 0x40800000; /* set the '1.0' operand */
697: 693 000322D4 0d 8f40800000 effffffa85 movl $1082130432,_dbl_value_1
698: 694 000322DF # dbl_value_1.l = 0;
699: 695 000322DF 4d effffffa83 clrl _dbl_value_1+4
700: 696 000322E5 # dbl_value_2.m = 0; /* set the '0.0' operand */
701: 697 000322E5 4d effffffa79 clrl _dbl_value_2
702: 698 000322EB # dbl_value_2.l = 0;
703: 699 000322EB 4d effffffa77 clrl _dbl_value_2+4
704: 700 000322F1 # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
705: 701 000322F1 5c 0c effffffa6c 50 mull3 $12,_index,r0
706: 702 000322F9 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
707: 703 00032300 0d a004 effffffa60 movl 4(r0),_dbl_expected+4
708: 704 00032308 0d 60 effffffa55 movl (r0),_dbl_expected
709: 705 0003230F # /*
710: 706 0003230F # * If LOOP ON ERROR is set, this is the loop for this subtest.
711: 707 0003230F # * The force loop flag is set after the first error.
712: 708 0003230F # */
713: 709 0003230F # asm("_pipe17_5_lp1:");
714: 710 0003230F _pipe17_5_lp1:
715: 711 0003230F # asm("cvld _sgl_value_1"); /* convert the int. ( op ) */
716: 712 0003230F 77 effffffa4f cvld _sgl_value_1
717: 713 00032315 # asm("addd _dbl_value_2"); /* add a '0.0' ( 0 ) */
718: 714 00032315 c7 effffffa49 addd _dbl_value_2
719: 715 0003231B # asm("muld _dbl_value_1"); /* multiply by 1.0 ( 0 ) */
720: 716 0003231B e7 effffffa43 muld _dbl_value_1
721: 717 00032321 # asm("std _dbl_st_acc"); /* store the result (-op ) */
722: 718 00032321 27 effffffa3d std _dbl_st_acc
723: 719 00032327 # if( force_loop )
724: 720 00032327 5d effffffa37 tstl _force_loop
725: 721 0003232D 31 02 jeql L292
726: 722 0003232F # asm("brb _pipe17_5_lp1");; /* run the loop again */
727: 723 0003232F 11 de brb _pipe17_5_lp1
728: 724 00032331 L292:
729: 725 00032331 # /*
730: 726 00032331 # * verify the results
731: 727 00032331 # */
732: 728 00032331 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
733: 729 00032331 # (dbl_st_acc.l != dbl_expected.l) )
734: 730 00032331 1d effffffa2d effffffa28 cmpl _dbl_st_acc,_dbl_expected
735: 731 0003233C 21 0d jneq L9995
736: 732 0003233E 1d effffffa24 effffffa1f cmpl _dbl_st_acc+4,_dbl_expected+4
737: 733 00032349 31 42 jeql L293
738: 734 0003234B L9995:
739: 735 0003234B # {
740: 736 0003234B # errcnt++; /* bump the error count */
741: 737 0003234B 6d effffffa13 incl _errcnt
742: 738 00032351 # if ( prt_error )
743: 739 00032351 5d effffffa0d tstl _prt_error
744: 740 00032357 31 0d jeql L294
745: 741 00032359 # print_pipe17_er("Cache Data, no NOPs");
746: 742 00032359 .data 1
747: 743 00000d71 * L295:
748: 744 00000d71 * 436163686520446174612C206 .ascii "Cache Data, no NOPs\0"
749: E6F204E4F507300
750: 745 00000d85 * .text
751: 746 00032359 dd 8f00000d71 pushl $L295
752: 747 0003235F fe 08 ef00000552 callf $8,_print_pipe17_er
753: 748 00032366 # if ( halt_flg ) /* halt on error? */
754: 749 00032366 L294:
755: 750 00032366 5d effffff9f8 tstl _halt_flg
756: 751 0003236C 31 0d jeql L296
757: 752 0003236E # pipe17_er_hlt( subtest );
758: 753 0003236E dd effffff9f0 pushl _subtest
759: 754 00032374 fe 08 ef0000068b callf $8,_pipe17_er_hlt
760: 755 0003237B # if ( loop_on_err ) {
761: 756 0003237B L296:
762: 757 0003237B 5d effffff9e3 tstl _loop_on_err
763: 758 00032381 31 0a jeql L297
764: 759 00032383 # force_loop = TRUE; /* set the force loop flag */
765: 760 00032383 0d 01 effffff9da movl $1,_force_loop
766: 761 0003238A # asm("brw _pipe17_5_lp1"); /* and loop */
767: 762 0003238A 13 ff82 brw _pipe17_5_lp1
768: 763 0003238D # }
769: 764 0003238D # } /* end of compare error */
770: 765 0003238D L297:
771: 766 0003238D # } while( index++ < max_cvld_1_index );
772: 767 0003238D L293:
773: 768 0003238D L290:
774: 769 0003238D 0d effffff9d1 50 movl _index,r0
775: 770 00032394 6d effffff9ca incl _index
776: 771 0003239A 1d 50 effffff9c3 cmpl r0,_max_cvld_1_index
777: 772 000323A1 81 03 13 ff1b jlss L291
778: 773 000323A6 L289:
779: 774 000323A6 # } /* end of subtest 5 */
780: 775 000323A6 40 ret#2
781: 776 000323A7 .set L285,0x0
782: 777 000323A7 L287:
783: 778 000323A7 13 ff0b jbr L288
784: 779 000323AA .data
785: 780 00000d20 * .text
786: 781 000323AA .align 1
787: 782 000323AA .globl _pipe17_6
788: 783 000323AA _pipe17_6:
789: 784 000323AA 0000 .word L298
790: 785 000323AC #
791: 786 000323AC #
792: 787 000323AC #
793: 788 000323AC #
794: 789 000323AC #
795: 790 000323AC #
796: 791 000323AC #
797: 792 000323AC #
798: 793 000323AC # /************************************************************************
799: 794 000323AC # *
800: 795 000323AC # * SUBTEST 6
801: 796 000323AC # * data in cache, 1 NO-OP
802: 797 000323AC # *
803: 798 000323AC # ************************************************************************/
804: 799 000323AC # pipe17_6()
805: 800 000323AC # {
806: 801 000323AC 13 00f5 jbr L300
807: 802 000323AF L301:
808: 803 000323AF # force_loop = FALSE; /* clear the force_loop flg */
809: 804 000323AF 4d effffff9af clrl _force_loop
810: 805 000323B5 # index = 0;
811: 806 000323B5 4d effffff9a9 clrl _index
812: 807 000323BB # do
813: 808 000323BB L304:
814: 809 000323BB # {
815: 810 000323BB # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
816: 811 000323BB 5c 0c effffff9a2 50 mull3 $12,_index,r0
817: 812 000323C3 0d e000000000 effffff996 movl _cvld_1_data(r0),_sgl_value_1
818: 813 000323CE # dbl_value_1.m = 0x40800000; /* set the '1.0' operand */
819: 814 000323CE 0d 8f40800000 effffff98b movl $1082130432,_dbl_value_1
820: 815 000323D9 # dbl_value_1.l = 0;
821: 816 000323D9 4d effffff989 clrl _dbl_value_1+4
822: 817 000323DF # dbl_value_2.m = 0; /* set the '0.0' operand */
823: 818 000323DF 4d effffff97f clrl _dbl_value_2
824: 819 000323E5 # dbl_value_2.l = 0;
825: 820 000323E5 4d effffff97d clrl _dbl_value_2+4
826: 821 000323EB # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
827: 822 000323EB 5c 0c effffff972 50 mull3 $12,_index,r0
828: 823 000323F3 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
829: 824 000323FA 0d a004 effffff966 movl 4(r0),_dbl_expected+4
830: 825 00032402 0d 60 effffff95b movl (r0),_dbl_expected
831: 826 00032409 # /*
832: 827 00032409 # * If LOOP ON ERROR is set, this is the loop for this subtest.
833: 828 00032409 # * The force loop flag is set after the first error.
834: 829 00032409 # */
835: 830 00032409 # asm("_pipe17_6_lp1:");
836: 831 00032409 _pipe17_6_lp1:
837: 832 00032409 # asm("cvld _sgl_value_1"); /* convert the int. ( op ) */
838: 833 00032409 77 effffff955 cvld _sgl_value_1
839: 834 0003240F # asm("nop");
840: 835 0003240F 10 nop
841: 836 00032410 # asm("addd _dbl_value_2"); /* add a '0.0' ( 0 ) */
842: 837 00032410 c7 effffff94e addd _dbl_value_2
843: 838 00032416 # asm("nop");
844: 839 00032416 10 nop
845: 840 00032417 # asm("muld _dbl_value_1"); /* multiply by 1.0 ( 0 ) */
846: 841 00032417 e7 effffff947 muld _dbl_value_1
847: 842 0003241D # asm("nop");
848: 843 0003241D 10 nop
849: 844 0003241E # asm("std _dbl_st_acc"); /* store the result (-op ) */
850: 845 0003241E 27 effffff940 std _dbl_st_acc
851: 846 00032424 # if( force_loop )
852: 847 00032424 5d effffff93a tstl _force_loop
853: 848 0003242A 31 02 jeql L305
854: 849 0003242C # asm("brb _pipe17_6_lp1");; /* run the loop again */
855: 850 0003242C 11 db brb _pipe17_6_lp1
856: 851 0003242E L305:
857: 852 0003242E # /*
858: 853 0003242E # * verify the results
859: 854 0003242E # */
860: 855 0003242E # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
861: 856 0003242E # (dbl_st_acc.l != dbl_expected.l) )
862: 857 0003242E 1d effffff930 effffff92b cmpl _dbl_st_acc,_dbl_expected
863: 858 00032439 21 0d jneq L9994
864: 859 0003243B 1d effffff927 effffff922 cmpl _dbl_st_acc+4,_dbl_expected+4
865: 860 00032446 31 42 jeql L306
866: 861 00032448 L9994:
867: 862 00032448 # {
868: 863 00032448 # errcnt++; /* bump the error count */
869: 864 00032448 6d effffff916 incl _errcnt
870: 865 0003244E # if ( prt_error )
871: 866 0003244E 5d effffff910 tstl _prt_error
872: 867 00032454 31 0d jeql L307
873: 868 00032456 # print_pipe17_er("Cache Data, 1 NOP");
874: 869 00032456 .data 1
875: 870 00000d85 * L308:
876: 871 00000d85 * 436163686520446174612C203 .ascii "Cache Data, 1 NOP\0"
877: 1204E4F5000
878: 872 00000d97 * .text
879: 873 00032456 dd 8f00000d85 pushl $L308
880: 874 0003245C fe 08 ef00000455 callf $8,_print_pipe17_er
881: 875 00032463 # if ( halt_flg ) /* halt on error? */
882: 876 00032463 L307:
883: 877 00032463 5d effffff8fb tstl _halt_flg
884: 878 00032469 31 0d jeql L309
885: 879 0003246B # pipe17_er_hlt( subtest );
886: 880 0003246B dd effffff8f3 pushl _subtest
887: 881 00032471 fe 08 ef0000058e callf $8,_pipe17_er_hlt
888: 882 00032478 # if ( loop_on_err ) {
889: 883 00032478 L309:
890: 884 00032478 5d effffff8e6 tstl _loop_on_err
891: 885 0003247E 31 0a jeql L310
892: 886 00032480 # force_loop = TRUE; /* set the force loop flag */
893: 887 00032480 0d 01 effffff8dd movl $1,_force_loop
894: 888 00032487 # asm("brw _pipe17_6_lp1"); /* and loop */
895: 889 00032487 13 ff7f brw _pipe17_6_lp1
896: 890 0003248A # }
897: 891 0003248A # } /* end of compare error */
898: 892 0003248A L310:
899: 893 0003248A # } while( index++ < max_cvld_1_index );
900: 894 0003248A L306:
901: 895 0003248A L303:
902: 896 0003248A 0d effffff8d4 50 movl _index,r0
903: 897 00032491 6d effffff8cd incl _index
904: 898 00032497 1d 50 effffff8c6 cmpl r0,_max_cvld_1_index
905: 899 0003249E 81 03 13 ff18 jlss L304
906: 900 000324A3 L302:
907: 901 000324A3 # } /* end of subtest 6 */
908: 902 000324A3 40 ret#2
909: 903 000324A4 .set L298,0x0
910: 904 000324A4 L300:
911: 905 000324A4 13 ff08 jbr L301
912: 906 000324A7 .data
913: 907 00000d20 * .text
914: 908 000324A7 00 .align 1
915: 909 000324A8 .globl _pipe17_7
916: 910 000324A8 _pipe17_7:
917: 911 000324A8 0000 .word L311
918: 912 000324AA #
919: 913 000324AA #
920: 914 000324AA #
921: 915 000324AA #
922: 916 000324AA #
923: 917 000324AA #
924: 918 000324AA #
925: 919 000324AA #
926: 920 000324AA # /************************************************************************
927: 921 000324AA # *
928: 922 000324AA # * SUBTEST 7
929: 923 000324AA # * data in cache, 2 NO-OPs
930: 924 000324AA # *
931: 925 000324AA # ************************************************************************/
932: 926 000324AA # pipe17_7()
933: 927 000324AA # {
934: 928 000324AA 13 00f8 jbr L313
935: 929 000324AD L314:
936: 930 000324AD # force_loop = FALSE; /* clear the force_loop flg */
937: 931 000324AD 4d effffff8b1 clrl _force_loop
938: 932 000324B3 # index = 0;
939: 933 000324B3 4d effffff8ab clrl _index
940: 934 000324B9 # do
941: 935 000324B9 L317:
942: 936 000324B9 # {
943: 937 000324B9 # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
944: 938 000324B9 5c 0c effffff8a4 50 mull3 $12,_index,r0
945: 939 000324C1 0d e000000000 effffff898 movl _cvld_1_data(r0),_sgl_value_1
946: 940 000324CC # dbl_value_1.m = 0x40800000; /* set the '1.0' operand */
947: 941 000324CC 0d 8f40800000 effffff88d movl $1082130432,_dbl_value_1
948: 942 000324D7 # dbl_value_1.l = 0;
949: 943 000324D7 4d effffff88b clrl _dbl_value_1+4
950: 944 000324DD # dbl_value_2.m = 0; /* set the '0.0' operand */
951: 945 000324DD 4d effffff881 clrl _dbl_value_2
952: 946 000324E3 # dbl_value_2.l = 0;
953: 947 000324E3 4d effffff87f clrl _dbl_value_2+4
954: 948 000324E9 # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
955: 949 000324E9 5c 0c effffff874 50 mull3 $12,_index,r0
956: 950 000324F1 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
957: 951 000324F8 0d a004 effffff868 movl 4(r0),_dbl_expected+4
958: 952 00032500 0d 60 effffff85d movl (r0),_dbl_expected
959: 953 00032507 # /*
960: 954 00032507 # * If LOOP ON ERROR is set, this is the loop for this subtest.
961: 955 00032507 # * The force loop flag is set after the first error.
962: 956 00032507 # */
963: 957 00032507 # asm("_pipe17_7_lp1:");
964: 958 00032507 _pipe17_7_lp1:
965: 959 00032507 # asm("cvld _sgl_value_1"); /* convert the int. ( op ) */
966: 960 00032507 77 effffff857 cvld _sgl_value_1
967: 961 0003250D # asm("nop");
968: 962 0003250D 10 nop
969: 963 0003250E # asm("nop");
970: 964 0003250E 10 nop
971: 965 0003250F # asm("addd _dbl_value_2"); /* add a '0.0' ( 0 ) */
972: 966 0003250F c7 effffff84f addd _dbl_value_2
973: 967 00032515 # asm("nop");
974: 968 00032515 10 nop
975: 969 00032516 # asm("nop");
976: 970 00032516 10 nop
977: 971 00032517 # asm("muld _dbl_value_1"); /* multiply by 1.0 ( 0 ) */
978: 972 00032517 e7 effffff847 muld _dbl_value_1
979: 973 0003251D # asm("nop");
980: 974 0003251D 10 nop
981: 975 0003251E # asm("nop");
982: 976 0003251E 10 nop
983: 977 0003251F # asm("std _dbl_st_acc"); /* store the result (-op ) */
984: 978 0003251F 27 effffff83f std _dbl_st_acc
985: 979 00032525 # if( force_loop )
986: 980 00032525 5d effffff839 tstl _force_loop
987: 981 0003252B 31 02 jeql L318
988: 982 0003252D # asm("brb _pipe17_7_lp1");; /* run the loop again */
989: 983 0003252D 11 d8 brb _pipe17_7_lp1
990: 984 0003252F L318:
991: 985 0003252F # /*
992: 986 0003252F # * verify the results
993: 987 0003252F # */
994: 988 0003252F # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
995: 989 0003252F # (dbl_st_acc.l != dbl_expected.l) )
996: 990 0003252F 1d effffff82f effffff82a cmpl _dbl_st_acc,_dbl_expected
997: 991 0003253A 21 0d jneq L9993
998: 992 0003253C 1d effffff826 effffff821 cmpl _dbl_st_acc+4,_dbl_expected+4
999: 993 00032547 31 42 jeql L319
1000: 994 00032549 L9993:
1001: 995 00032549 # {
1002: 996 00032549 # errcnt++; /* bump the error count */
1003: 997 00032549 6d effffff815 incl _errcnt
1004: 998 0003254F # if ( prt_error )
1005: 999 0003254F 5d effffff80f tstl _prt_error
1006: 1000 00032555 31 0d jeql L320
1007: 1001 00032557 # print_pipe17_er("Cache Data, 2 NOPs");
1008: 1002 00032557 .data 1
1009: 1003 00000d97 * L321:
1010: 1004 00000d97 * 436163686520446174612C203 .ascii "Cache Data, 2 NOPs\0"
1011: 2204E4F507300
1012: 1005 00000daa * .text
1013: 1006 00032557 dd 8f00000d97 pushl $L321
1014: 1007 0003255D fe 08 ef00000354 callf $8,_print_pipe17_er
1015: 1008 00032564 # if ( halt_flg ) /* halt on error? */
1016: 1009 00032564 L320:
1017: 1010 00032564 5d effffff7fa tstl _halt_flg
1018: 1011 0003256A 31 0d jeql L322
1019: 1012 0003256C # pipe17_er_hlt( subtest );
1020: 1013 0003256C dd effffff7f2 pushl _subtest
1021: 1014 00032572 fe 08 ef0000048d callf $8,_pipe17_er_hlt
1022: 1015 00032579 # if ( loop_on_err ) {
1023: 1016 00032579 L322:
1024: 1017 00032579 5d effffff7e5 tstl _loop_on_err
1025: 1018 0003257F 31 0a jeql L323
1026: 1019 00032581 # force_loop = TRUE; /* set the force loop flag */
1027: 1020 00032581 0d 01 effffff7dc movl $1,_force_loop
1028: 1021 00032588 # asm("brw _pipe17_7_lp1"); /* and loop */
1029: 1022 00032588 13 ff7c brw _pipe17_7_lp1
1030: 1023 0003258B # }
1031: 1024 0003258B # } /* end of compare error */
1032: 1025 0003258B L323:
1033: 1026 0003258B # } while( index++ < max_cvld_1_index );
1034: 1027 0003258B L319:
1035: 1028 0003258B L316:
1036: 1029 0003258B 0d effffff7d3 50 movl _index,r0
1037: 1030 00032592 6d effffff7cc incl _index
1038: 1031 00032598 1d 50 effffff7c5 cmpl r0,_max_cvld_1_index
1039: 1032 0003259F 81 03 13 ff15 jlss L317
1040: 1033 000325A4 L315:
1041: 1034 000325A4 # } /* end of subtest 7 */
1042: 1035 000325A4 40 ret#2
1043: 1036 000325A5 .set L311,0x0
1044: 1037 000325A5 L313:
1045: 1038 000325A5 13 ff05 jbr L314
1046: 1039 000325A8 .data
1047: 1040 00000d20 * .text
1048: 1041 000325A8 .align 1
1049: 1042 000325A8 .globl _pipe17_8
1050: 1043 000325A8 _pipe17_8:
1051: 1044 000325A8 0000 .word L324
1052: 1045 000325AA #
1053: 1046 000325AA #
1054: 1047 000325AA #
1055: 1048 000325AA #
1056: 1049 000325AA #
1057: 1050 000325AA #
1058: 1051 000325AA #
1059: 1052 000325AA # /************************************************************************
1060: 1053 000325AA # *
1061: 1054 000325AA # * SUBTEST 8
1062: 1055 000325AA # * data in cache, 3 NO-OPs
1063: 1056 000325AA # *
1064: 1057 000325AA # ************************************************************************/
1065: 1058 000325AA # pipe17_8()
1066: 1059 000325AA # {
1067: 1060 000325AA 13 00fb jbr L326
1068: 1061 000325AD L327:
1069: 1062 000325AD # force_loop = FALSE; /* clear the force_loop flg */
1070: 1063 000325AD 4d effffff7b1 clrl _force_loop
1071: 1064 000325B3 # index = 0;
1072: 1065 000325B3 4d effffff7ab clrl _index
1073: 1066 000325B9 # do
1074: 1067 000325B9 L330:
1075: 1068 000325B9 # {
1076: 1069 000325B9 # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
1077: 1070 000325B9 5c 0c effffff7a4 50 mull3 $12,_index,r0
1078: 1071 000325C1 0d e000000000 effffff798 movl _cvld_1_data(r0),_sgl_value_1
1079: 1072 000325CC # dbl_value_1.m = 0x40800000; /* set the '1.0' operand */
1080: 1073 000325CC 0d 8f40800000 effffff78d movl $1082130432,_dbl_value_1
1081: 1074 000325D7 # dbl_value_1.l = 0;
1082: 1075 000325D7 4d effffff78b clrl _dbl_value_1+4
1083: 1076 000325DD # dbl_value_2.m = 0; /* set the '0.0' operand */
1084: 1077 000325DD 4d effffff781 clrl _dbl_value_2
1085: 1078 000325E3 # dbl_value_2.l = 0;
1086: 1079 000325E3 4d effffff77f clrl _dbl_value_2+4
1087: 1080 000325E9 # dbl_expected = cvld_1_data[index].exp; /* get the expected results */
1088: 1081 000325E9 5c 0c effffff774 50 mull3 $12,_index,r0
1089: 1082 000325F1 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
1090: 1083 000325F8 0d a004 effffff768 movl 4(r0),_dbl_expected+4
1091: 1084 00032600 0d 60 effffff75d movl (r0),_dbl_expected
1092: 1085 00032607 # /*
1093: 1086 00032607 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1094: 1087 00032607 # * The force loop flag is set after the first error.
1095: 1088 00032607 # */
1096: 1089 00032607 # asm("_pipe17_8_lp1:");
1097: 1090 00032607 _pipe17_8_lp1:
1098: 1091 00032607 # asm("cvld _sgl_value_1"); /* convert the int. ( op ) */
1099: 1092 00032607 77 effffff757 cvld _sgl_value_1
1100: 1093 0003260D # asm("nop");
1101: 1094 0003260D 10 nop
1102: 1095 0003260E # asm("nop");
1103: 1096 0003260E 10 nop
1104: 1097 0003260F # asm("nop");
1105: 1098 0003260F 10 nop
1106: 1099 00032610 # asm("addd _dbl_value_2"); /* add a '0.0' ( 0 ) */
1107: 1100 00032610 c7 effffff74e addd _dbl_value_2
1108: 1101 00032616 # asm("nop");
1109: 1102 00032616 10 nop
1110: 1103 00032617 # asm("nop");
1111: 1104 00032617 10 nop
1112: 1105 00032618 # asm("nop");
1113: 1106 00032618 10 nop
1114: 1107 00032619 # asm("muld _dbl_value_1"); /* multiply by 1.0 ( 0 ) */
1115: 1108 00032619 e7 effffff745 muld _dbl_value_1
1116: 1109 0003261F # asm("nop");
1117: 1110 0003261F 10 nop
1118: 1111 00032620 # asm("nop");
1119: 1112 00032620 10 nop
1120: 1113 00032621 # asm("nop");
1121: 1114 00032621 10 nop
1122: 1115 00032622 # asm("std _dbl_st_acc"); /* store the result (-op ) */
1123: 1116 00032622 27 effffff73c std _dbl_st_acc
1124: 1117 00032628 # if( force_loop )
1125: 1118 00032628 5d effffff736 tstl _force_loop
1126: 1119 0003262E 31 02 jeql L331
1127: 1120 00032630 # asm("brb _pipe17_8_lp1");; /* run the loop again */
1128: 1121 00032630 11 d5 brb _pipe17_8_lp1
1129: 1122 00032632 L331:
1130: 1123 00032632 # /*
1131: 1124 00032632 # * verify the results
1132: 1125 00032632 # */
1133: 1126 00032632 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
1134: 1127 00032632 # (dbl_st_acc.l != dbl_expected.l) )
1135: 1128 00032632 1d effffff72c effffff727 cmpl _dbl_st_acc,_dbl_expected
1136: 1129 0003263D 21 0d jneq L9992
1137: 1130 0003263F 1d effffff723 effffff71e cmpl _dbl_st_acc+4,_dbl_expected+4
1138: 1131 0003264A 31 42 jeql L332
1139: 1132 0003264C L9992:
1140: 1133 0003264C # {
1141: 1134 0003264C # errcnt++; /* bump the error count */
1142: 1135 0003264C 6d effffff712 incl _errcnt
1143: 1136 00032652 # if ( prt_error )
1144: 1137 00032652 5d effffff70c tstl _prt_error
1145: 1138 00032658 31 0d jeql L333
1146: 1139 0003265A # print_pipe17_er("Cache Data, 3 NOPs");
1147: 1140 0003265A .data 1
1148: 1141 00000daa * L334:
1149: 1142 00000daa * 436163686520446174612C203 .ascii "Cache Data, 3 NOPs\0"
1150: 3204E4F507300
1151: 1143 00000dbd * .text
1152: 1144 0003265A dd 8f00000daa pushl $L334
1153: 1145 00032660 fe 08 ef00000251 callf $8,_print_pipe17_er
1154: 1146 00032667 # if ( halt_flg ) /* halt on error? */
1155: 1147 00032667 L333:
1156: 1148 00032667 5d effffff6f7 tstl _halt_flg
1157: 1149 0003266D 31 0d jeql L335
1158: 1150 0003266F # pipe17_er_hlt( subtest );
1159: 1151 0003266F dd effffff6ef pushl _subtest
1160: 1152 00032675 fe 08 ef0000038a callf $8,_pipe17_er_hlt
1161: 1153 0003267C # if ( loop_on_err ) {
1162: 1154 0003267C L335:
1163: 1155 0003267C 5d effffff6e2 tstl _loop_on_err
1164: 1156 00032682 31 0a jeql L336
1165: 1157 00032684 # force_loop = TRUE; /* set the force loop flag */
1166: 1158 00032684 0d 01 effffff6d9 movl $1,_force_loop
1167: 1159 0003268B # asm("brw _pipe17_8_lp1"); /* and loop */
1168: 1160 0003268B 13 ff79 brw _pipe17_8_lp1
1169: 1161 0003268E # }
1170: 1162 0003268E # } /* end of compare error */
1171: 1163 0003268E L336:
1172: 1164 0003268E # } while( index++ < max_cvld_1_index );
1173: 1165 0003268E L332:
1174: 1166 0003268E L329:
1175: 1167 0003268E 0d effffff6d0 50 movl _index,r0
1176: 1168 00032695 6d effffff6c9 incl _index
1177: 1169 0003269B 1d 50 effffff6c2 cmpl r0,_max_cvld_1_index
1178: 1170 000326A2 81 03 13 ff12 jlss L330
1179: 1171 000326A7 L328:
1180: 1172 000326A7 # } /* end of subtest 8 */
1181: 1173 000326A7 40 ret#2
1182: 1174 000326A8 .set L324,0x0
1183: 1175 000326A8 L326:
1184: 1176 000326A8 13 ff02 jbr L327
1185: 1177 000326AB .data
1186: 1178 00000d20 * .text
1187: 1179 000326AB 00 .align 1
1188: 1180 000326AC .globl _pipe17_9
1189: 1181 000326AC _pipe17_9:
1190: 1182 000326AC 0000 .word L337
1191: 1183 000326AE #
1192: 1184 000326AE #
1193: 1185 000326AE #
1194: 1186 000326AE #
1195: 1187 000326AE #
1196: 1188 000326AE #
1197: 1189 000326AE #
1198: 1190 000326AE # /******************************************************************************
1199: 1191 000326AE # *
1200: 1192 000326AE # * SUBTEST 9
1201: 1193 000326AE # *
1202: 1194 000326AE # * Get the data via the FRAME POINTER ( indexed )
1203: 1195 000326AE # *
1204: 1196 000326AE # * ADDRESSES OF DATA OPERANDS INDEX DATA
1205: 1197 000326AE # * pointer_data,-4 (FP+32) 4 the STF result goes here
1206: 1198 000326AE # * pointer_data-8,-12 (FP+24) 3 < '0.0' data >
1207: 1199 000326AE # * pointer_data-16 (FP+20) 5(sgl) <operand data>
1208: 1200 000326AE # * pointer_data-20 (FP+16) 2 < unused >
1209: 1201 000326AE # * pointer_data-24,-28 (FP+8 ) 1 < '1.0' data >
1210: 1202 000326AE # * pointer_data-32,-36 ( FP ) 0 point the frame pointer here
1211: 1203 000326AE # *
1212: 1204 000326AE # * NOTE: The double precision instructions are using Quad Word indexing.
1213: 1205 000326AE # * The Convert Long To Double uses longword indexing.
1214: 1206 000326AE # ******************************************************************************/
1215: 1207 000326AE # pipe17_9()
1216: 1208 000326AE # {
1217: 1209 000326AE 13 0204 jbr L339
1218: 1210 000326B1 L340:
1219: 1211 000326B1 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1220: 1212 000326B1 ed 6d effffff6ac moval (r13),_pre_event_fp
1221: 1213 000326B8 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1222: 1214 000326B8 ed 6e effffff6a5 moval (r14),_pre_event_sp
1223: 1215 000326BF # force_loop = FALSE; /* clear force_loop flag */
1224: 1216 000326BF 4d effffff69f clrl _force_loop
1225: 1217 000326C5 # index = 0;
1226: 1218 000326C5 4d effffff699 clrl _index
1227: 1219 000326CB # do
1228: 1220 000326CB L343:
1229: 1221 000326CB # {
1230: 1222 000326CB # sgl_value_1 = cvld_1_data[index].ld; /* get the integer operand */
1231: 1223 000326CB 5c 0c effffff692 50 mull3 $12,_index,r0
1232: 1224 000326D3 0d e000000000 effffff686 movl _cvld_1_data(r0),_sgl_value_1
1233: 1225 000326DE # sgl_value_7 = 0x40800000; /* get MSW of '1.0' */
1234: 1226 000326DE 0d 8f40800000 effffff67b movl $1082130432,_sgl_value_7
1235: 1227 000326E9 # sgl_value_8 = 0; /* get a 0 */
1236: 1228 000326E9 4d effffff675 clrl _sgl_value_8
1237: 1229 000326EF # dbl_expected = cvld_1_data[index].exp; /* get expected results */
1238: 1230 000326EF 5c 0c effffff66e 50 mull3 $12,_index,r0
1239: 1231 000326F7 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
1240: 1232 000326FE 0d a004 effffff662 movl 4(r0),_dbl_expected+4
1241: 1233 00032706 0d 60 effffff657 movl (r0),_dbl_expected
1242: 1234 0003270D # /*
1243: 1235 0003270D # * If LOOP ON ERROR is set, this is the loop for this subtest.
1244: 1236 0003270D # * The force loop flag is set after the first error.
1245: 1237 0003270D # */
1246: 1238 0003270D # asm("_pipe17_9_lp1:");
1247: 1239 0003270D _pipe17_9_lp1:
1248: 1240 0003270D # asm("moval _pointer_data,_sgl_value_9");/* get store data's addr */
1249: 1241 0003270D ed effffff651 effffff64c moval _pointer_data,_sgl_value_9
1250: 1242 00032718 # sgl_value_9 -= 8;
1251: 1243 00032718 2c 08 effffff645 subl2 $8,_sgl_value_9
1252: 1244 0003271F # asm("movl _sgl_value_8,*_sgl_value_9"); /* set the '0.0's LSW */
1253: 1245 0003271F 0d effffff63f fffffff63a movl _sgl_value_8,*_sgl_value_9
1254: 1246 0003272A # sgl_value_9 -= 4;
1255: 1247 0003272A 2c 04 effffff633 subl2 $4,_sgl_value_9
1256: 1248 00032731 # asm("movl _sgl_value_8,*_sgl_value_9"); /* set the '0.0's MSW */
1257: 1249 00032731 0d effffff62d fffffff628 movl _sgl_value_8,*_sgl_value_9
1258: 1250 0003273C # sgl_value_9 -= 4;
1259: 1251 0003273C 2c 04 effffff621 subl2 $4,_sgl_value_9
1260: 1252 00032743 # asm("movl _sgl_value_1,*_sgl_value_9"); /* set the integer op. */
1261: 1253 00032743 0d effffff61b fffffff616 movl _sgl_value_1,*_sgl_value_9
1262: 1254 0003274E # sgl_value_9 -= 4;
1263: 1255 0003274E 2c 04 effffff60f subl2 $4,_sgl_value_9
1264: 1256 00032755 # asm("movl _sgl_value_8,*_sgl_value_9"); /* < unused data addr. > */
1265: 1257 00032755 0d effffff609 fffffff604 movl _sgl_value_8,*_sgl_value_9
1266: 1258 00032760 # sgl_value_9 -= 4;
1267: 1259 00032760 2c 04 effffff5fd subl2 $4,_sgl_value_9
1268: 1260 00032767 # asm("movl _sgl_value_8,*_sgl_value_9"); /* set the '1.0's LSW */
1269: 1261 00032767 0d effffff5f7 fffffff5f2 movl _sgl_value_8,*_sgl_value_9
1270: 1262 00032772 # sgl_value_9 -= 4;
1271: 1263 00032772 2c 04 effffff5eb subl2 $4,_sgl_value_9
1272: 1264 00032779 # asm("movl _sgl_value_7,*_sgl_value_9"); /* set the '1.0's MSW */
1273: 1265 00032779 0d effffff5e5 fffffff5e0 movl _sgl_value_7,*_sgl_value_9
1274: 1266 00032784 # sgl_value_9 -= 8; /* get the FP addr to use */
1275: 1267 00032784 2c 08 effffff5d9 subl2 $8,_sgl_value_9
1276: 1268 0003278B # asm("movl _sgl_value_9,r13"); /* set the FRAME POINTER */
1277: 1269 0003278B 0d effffff5d3 5d movl _sgl_value_9,r13
1278: 1270 00032792 # asm("movl $1,r2"); /* r2 index = 1 quadwords */
1279: 1271 00032792 0d 01 52 movl $1,r2
1280: 1272 00032795 # asm("movl $3,r3"); /* r3 index = 3 quadwords */
1281: 1273 00032795 0d 03 53 movl $3,r3
1282: 1274 00032798 # asm("movl $4,r4"); /* r4 index = 4 quadwords */
1283: 1275 00032798 0d 04 54 movl $4,r4
1284: 1276 0003279B # asm("movl $5,r5"); /* r5 index = 5 longwords */
1285: 1277 0003279B 0d 05 55 movl $5,r5
1286: 1278 0003279E # asm("cvld (r13)[r5]"); /* convert the int. ( op ) */
1287: 1279 0003279E 77 456d cvld (r13)[r5]
1288: 1280 000327A1 # asm("addd (r13)[r3]"); /* add a '0.0' ( op ) */
1289: 1281 000327A1 c7 436d addd (r13)[r3]
1290: 1282 000327A4 # asm("muld (r13)[r2]"); /* multiply by '1.0' ( op ) */
1291: 1283 000327A4 e7 426d muld (r13)[r2]
1292: 1284 000327A7 # asm("std (r13)[r4]"); /* store the result ( op ) */
1293: 1285 000327A7 27 446d std (r13)[r4]
1294: 1286 000327AA # if( force_loop )
1295: 1287 000327AA 5d effffff5b4 tstl _force_loop
1296: 1288 000327B0 31 03 jeql L344
1297: 1289 000327B2 # asm("brw _pipe17_9_lp1");; /* run the loop again */
1298: 1290 000327B2 13 ff58 brw _pipe17_9_lp1
1299: 1291 000327B5 L344:
1300: 1292 000327B5 # /*
1301: 1293 000327B5 # * verify the results
1302: 1294 000327B5 # */
1303: 1295 000327B5 # asm("moval (r13),_sgl_value_10"); /* save the frame pointer */
1304: 1296 000327B5 ed 6d effffff5a8 moval (r13),_sgl_value_10
1305: 1297 000327BC # asm("movl _pointer_data,_sgl_value_4"); /* save the LSW stored */
1306: 1298 000327BC 0d effffff5a2 effffff59d movl _pointer_data,_sgl_value_4
1307: 1299 000327C7 # asm("movl _pointer_data-4,_sgl_value_3"); /* and the MSW */
1308: 1300 000327C7 0d effffff593 effffff592 movl _pointer_data-4,_sgl_value_3
1309: 1301 000327D2 # if( (sgl_value_3 != dbl_expected.m) || /* verify the result... */
1310: 1302 000327D2 # (sgl_value_4 != dbl_expected.l) || /* verify the result... */
1311: 1303 000327D2 # (sgl_value_10 != sgl_value_9) ) /* ... and the final FP */
1312: 1304 000327D2 1d effffff58c effffff587 cmpl _sgl_value_3,_dbl_expected
1313: 1305 000327DD 21 1d jneq L9991
1314: 1306 000327DF 1d effffff57f effffff57e cmpl _sgl_value_4,_dbl_expected+4
1315: 1307 000327EA 21 10 jneq L9991
1316: 1308 000327EC 1d effffff572 effffff56d cmpl _sgl_value_10,_sgl_value_9
1317: 1309 000327F7 21 03 13 0091 jeql L345
1318: 1310 000327FC L9991:
1319: 1311 000327FC # {
1320: 1312 000327FC # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1321: 1313 000327FC 0d effffff562 5d movl _pre_event_fp,r13
1322: 1314 00032803 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1323: 1315 00032803 0d effffff55b 5e movl _pre_event_sp,r14
1324: 1316 0003280A # errcnt++; /* bump the error count */
1325: 1317 0003280A 6d effffff554 incl _errcnt
1326: 1318 00032810 # if ( prt_error ) {
1327: 1319 00032810 5d effffff54e tstl _prt_error
1328: 1320 00032816 31 4e jeql L346
1329: 1321 00032818 # print_pipe17_er("indexed FP addressing");
1330: 1322 00032818 .data 1
1331: 1323 00000dbd * L347:
1332: 1324 00000dbd * 696E646578656420465020616 .ascii "indexed FP addressing\0"
1333: 46472657373696E6700
1334: 1325 00000dd3 * .text
1335: 1326 00032818 dd 8f00000dbd pushl $L347
1336: 1327 0003281E fe 08 ef00000093 callf $8,_print_pipe17_er
1337: 1328 00032825 # writes("final Frame Pointer = ");
1338: 1329 00032825 .data 1
1339: 1330 00000dd3 * L348:
1340: 1331 00000dd3 * 66696E616C204672616D65205 .ascii "final Frame Pointer = \0"
1341: 06F696E746572203D2000
1342: 1332 00000dea * .text
1343: 1333 00032825 dd 8f00000dd3 pushl $L348
1344: 1334 0003282B fe 08 effffff532 callf $8,_writes
1345: 1335 00032832 # write32h( sgl_value_10 );
1346: 1336 00032832 dd effffff52c pushl _sgl_value_10
1347: 1337 00032838 fe 08 effffff525 callf $8,_write32h
1348: 1338 0003283F # writes(", expected FP = ");
1349: 1339 0003283F .data 1
1350: 1340 00000dea * L350:
1351: 1341 00000dea * 2C20206578706563746564204 .ascii ", expected FP = \0"
1352: 650203D2000
1353: 1342 00000dfc * .text
1354: 1343 0003283F dd 8f00000dea pushl $L350
1355: 1344 00032845 fe 08 effffff518 callf $8,_writes
1356: 1345 0003284C # write32h( sgl_value_9 );
1357: 1346 0003284C dd effffff512 pushl _sgl_value_9
1358: 1347 00032852 fe 08 effffff50b callf $8,_write32h
1359: 1348 00032859 # writes("\n");
1360: 1349 00032859 .data 1
1361: 1350 00000dfc * L351:
1362: 1351 00000dfc * 0A00 .ascii "\12\0"
1363: 1352 00000dfe * .text
1364: 1353 00032859 dd 8f00000dfc pushl $L351
1365: 1354 0003285F fe 08 effffff4fe callf $8,_writes
1366: 1355 00032866 # }
1367: 1356 00032866 # if ( halt_flg ) /* halt on error? */
1368: 1357 00032866 L346:
1369: 1358 00032866 5d effffff4f8 tstl _halt_flg
1370: 1359 0003286C 31 0d jeql L352
1371: 1360 0003286E # pipe17_er_hlt( subtest );
1372: 1361 0003286E dd effffff4f0 pushl _subtest
1373: 1362 00032874 fe 08 ef0000018b callf $8,_pipe17_er_hlt
1374: 1363 0003287B # if ( loop_on_err ) {
1375: 1364 0003287B L352:
1376: 1365 0003287B 5d effffff4e3 tstl _loop_on_err
1377: 1366 00032881 31 0a jeql L353
1378: 1367 00032883 # force_loop = TRUE; /* set the force loop flag */
1379: 1368 00032883 0d 01 effffff4da movl $1,_force_loop
1380: 1369 0003288A # asm("brw _pipe17_9_lp1"); /* and loop */
1381: 1370 0003288A 13 fe80 brw _pipe17_9_lp1
1382: 1371 0003288D # }
1383: 1372 0003288D # } /* end of compare error */
1384: 1373 0003288D L353:
1385: 1374 0003288D # } while( index++ < max_cvld_1_index );
1386: 1375 0003288D L345:
1387: 1376 0003288D L342:
1388: 1377 0003288D 0d effffff4d1 50 movl _index,r0
1389: 1378 00032894 6d effffff4ca incl _index
1390: 1379 0003289A 1d 50 effffff4c3 cmpl r0,_max_cvld_1_index
1391: 1380 000328A1 81 03 13 fe25 jlss L343
1392: 1381 000328A6 L341:
1393: 1382 000328A6 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1394: 1383 000328A6 0d effffff4b8 5d movl _pre_event_fp,r13
1395: 1384 000328AD # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1396: 1385 000328AD 0d effffff4b1 5e movl _pre_event_sp,r14
1397: 1386 000328B4 # } /* end of subtest 9 */
1398: 1387 000328B4 40 ret#2
1399: 1388 000328B5 .set L337,0x0
1400: 1389 000328B5 L339:
1401: 1390 000328B5 13 fdf9 jbr L340
1402: 1391 000328B8 .data
1403: 1392 00000d20 * .text
1404: 1393 000328B8 .align 1
1405: 1394 000328B8 .globl _print_pipe17_er
1406: 1395 000328B8 _print_pipe17_er:
1407: 1396 000328B8 0000 .word L354
1408: 1397 000328BA #
1409: 1398 000328BA #
1410: 1399 000328BA # /******************************************************************************
1411: 1400 000328BA # *
1412: 1401 000328BA # * ERROR ROUTINE
1413: 1402 000328BA # *
1414: 1403 000328BA # * print an error in the following form
1415: 1404 000328BA # *
1416: 1405 000328BA # *operand = xxxxxxxx xxxxxxxx, final Acc = xxxxxxxx xxxxxxxx, index = dd
1417: 1406 000328BA # * expected Acc = xxxxxxxx xxxxxxxx
1418: 1407 000328BA # *
1419: 1408 000328BA # ******************************************************************************/
1420: 1409 000328BA # print_pipe17_er(msg)
1421: 1410 000328BA # char *msg;
1422: 1411 000328BA # {
1423: 1412 000328BA 13 0145 jbr L356
1424: 1413 000328BD L357:
1425: 1414 000328BD # writes("\n"); /* start a new print line */
1426: 1415 000328BD .data 1
1427: 1416 00000dfe * L358:
1428: 1417 00000dfe * 0A00 .ascii "\12\0"
1429: 1418 00000e00 * .text
1430: 1419 000328BD dd 8f00000dfe pushl $L358
1431: 1420 000328C3 fe 08 effffff49a callf $8,_writes
1432: 1421 000328CA # writes("cycle: ");
1433: 1422 000328CA .data 1
1434: 1423 00000e00 * L359:
1435: 1424 00000e00 * 6379636C653A2000 .ascii "cycle: \0"
1436: 1425 00000e08 * .text
1437: 1426 000328CA dd 8f00000e00 pushl $L359
1438: 1427 000328D0 fe 08 effffff48d callf $8,_writes
1439: 1428 000328D7 # writed( cycle );
1440: 1429 000328D7 dd effffff487 pushl _cycle
1441: 1430 000328DD fe 08 effffff480 callf $8,_writed
1442: 1431 000328E4 # writes(" test ");
1443: 1432 000328E4 .data 1
1444: 1433 00000e08 * L361:
1445: 1434 00000e08 * 20746573742000 .ascii " test \0"
1446: 1435 00000e0f * .text
1447: 1436 000328E4 dd 8f00000e08 pushl $L361
1448: 1437 000328EA fe 08 effffff473 callf $8,_writes
1449: 1438 000328F1 # writed( test_no );
1450: 1439 000328F1 dd effffff46d pushl _test_no
1451: 1440 000328F7 fe 08 effffff466 callf $8,_writed
1452: 1441 000328FE # writes(" (Pipe 17), subtest ");
1453: 1442 000328FE .data 1
1454: 1443 00000e0f * L362:
1455: 1444 00000e0f * 20202850697065203137292C2 .ascii " (Pipe 17), subtest \0"
1456: 0737562746573742000
1457: 1445 00000e25 * .text
1458: 1446 000328FE dd 8f00000e0f pushl $L362
1459: 1447 00032904 fe 08 effffff459 callf $8,_writes
1460: 1448 0003290B # writed( subtest );
1461: 1449 0003290B dd effffff453 pushl _subtest
1462: 1450 00032911 fe 08 effffff44c callf $8,_writed
1463: 1451 00032918 # writes(" error - ");
1464: 1452 00032918 .data 1
1465: 1453 00000e25 * L363:
1466: 1454 00000e25 * 206572726F72202D2000 .ascii " error - \0"
1467: 1455 00000e2f * .text
1468: 1456 00032918 dd 8f00000e25 pushl $L363
1469: 1457 0003291E fe 08 effffff43f callf $8,_writes
1470: 1458 00032925 # writes( msg );
1471: 1459 00032925 dd ad04 pushl 4(fp)
1472: 1460 00032928 fe 08 effffff435 callf $8,_writes
1473: 1461 0003292F # writec('\n');
1474: 1462 0003292F dd 0a pushl $10
1475: 1463 00032931 fe 08 effffff42c callf $8,_writec
1476: 1464 00032938 # writes(" CVLD(op), ADDD(0.0), MULD(1.0), STD\n");
1477: 1465 00032938 .data 1
1478: 1466 00000e2f * L365:
1479: 1467 00000e2f * 2043564C44286F70292C20414 .ascii " CVLD(op), ADDD(0.0), MULD(1.0), STD\12\0"
1480: 4444428302E30292C204D554C
1481: 4428312E30292C205354440A0
1482: 0
1483: 1468 00000e55 * .text
1484: 1469 00032938 dd 8f00000e2f pushl $L365
1485: 1470 0003293E fe 08 effffff41f callf $8,_writes
1486: 1471 00032945 # writes("operand = ");
1487: 1472 00032945 .data 1
1488: 1473 00000e55 * L366:
1489: 1474 00000e55 * 6F706572616E64203D2000 .ascii "operand = \0"
1490: 1475 00000e60 * .text
1491: 1476 00032945 dd 8f00000e55 pushl $L366
1492: 1477 0003294B fe 08 effffff412 callf $8,_writes
1493: 1478 00032952 # write32h( dbl_ld_acc.m );
1494: 1479 00032952 dd effffff40c pushl _dbl_ld_acc
1495: 1480 00032958 fe 08 effffff405 callf $8,_write32h
1496: 1481 0003295F # writec(' ');
1497: 1482 0003295F dd 20 pushl $32
1498: 1483 00032961 fe 08 effffff3fc callf $8,_writec
1499: 1484 00032968 # write32h( dbl_ld_acc.l );
1500: 1485 00032968 dd effffff3fa pushl _dbl_ld_acc+4
1501: 1486 0003296E fe 08 effffff3ef callf $8,_write32h
1502: 1487 00032975 # writes(", final Acc = ");
1503: 1488 00032975 .data 1
1504: 1489 00000e60 * L367:
1505: 1490 00000e60 * 2C20202066696E616C2041636 .ascii ", final Acc = \0"
1506: 3203D2000
1507: 1491 00000e71 * .text
1508: 1492 00032975 dd 8f00000e60 pushl $L367
1509: 1493 0003297B fe 08 effffff3e2 callf $8,_writes
1510: 1494 00032982 # write32h( dbl_st_acc.m );
1511: 1495 00032982 dd effffff3dc pushl _dbl_st_acc
1512: 1496 00032988 fe 08 effffff3d5 callf $8,_write32h
1513: 1497 0003298F # writec(' ');
1514: 1498 0003298F dd 20 pushl $32
1515: 1499 00032991 fe 08 effffff3cc callf $8,_writec
1516: 1500 00032998 # write32h( dbl_st_acc.l );
1517: 1501 00032998 dd effffff3ca pushl _dbl_st_acc+4
1518: 1502 0003299E fe 08 effffff3bf callf $8,_write32h
1519: 1503 000329A5 # writes(", index = ");
1520: 1504 000329A5 .data 1
1521: 1505 00000e71 * L368:
1522: 1506 00000e71 * 2C202020696E646578203D200 .ascii ", index = \0"
1523: 0
1524: 1507 00000e7e * .text
1525: 1508 000329A5 dd 8f00000e71 pushl $L368
1526: 1509 000329AB fe 08 effffff3b2 callf $8,_writes
1527: 1510 000329B2 # writed( index );
1528: 1511 000329B2 dd effffff3ac pushl _index
1529: 1512 000329B8 fe 08 effffff3a5 callf $8,_writed
1530: 1513 000329BF # writec('\n');
1531: 1514 000329BF dd 0a pushl $10
1532: 1515 000329C1 fe 08 effffff39c callf $8,_writec
1533: 1516 000329C8 # writes(" expected Acc = ");
1534: 1517 000329C8 .data 1
1535: 1518 00000e7e * L369:
1536: 1519 00000e7e * 2020202020202020202020202 .ascii " expected Acc = \0"
1537: 0202020202020202020202020
1538: 2020206578706563746564204
1539: 16363203D2000
1540: 1520 00000eaa * .text
1541: 1521 000329C8 dd 8f00000e7e pushl $L369
1542: 1522 000329CE fe 08 effffff38f callf $8,_writes
1543: 1523 000329D5 # write32h( dbl_expected.m );
1544: 1524 000329D5 dd effffff389 pushl _dbl_expected
1545: 1525 000329DB fe 08 effffff382 callf $8,_write32h
1546: 1526 000329E2 # writec(' ');
1547: 1527 000329E2 dd 20 pushl $32
1548: 1528 000329E4 fe 08 effffff379 callf $8,_writec
1549: 1529 000329EB # write32h( dbl_expected.l );
1550: 1530 000329EB dd effffff377 pushl _dbl_expected+4
1551: 1531 000329F1 fe 08 effffff36c callf $8,_write32h
1552: 1532 000329F8 # writec('\n');
1553: 1533 000329F8 dd 0a pushl $10
1554: 1534 000329FA fe 08 effffff363 callf $8,_writec
1555: 1535 00032A01 # }
1556: 1536 00032A01 40 ret#2
1557: 1537 00032A02 .set L354,0x0
1558: 1538 00032A02 L356:
1559: 1539 00032A02 13 feb8 jbr L357
1560: 1540 00032A05 .data
1561: 1541 00000d20 * .text
1562: 1542 00032A05 00 .align 1
1563: 1543 00032A06 .globl _pipe17_er_hlt
1564: 1544 00032A06 _pipe17_er_hlt:
1565: 1545 00032A06 0000 .word L370
1566: 1546 00032A08 #
1567: 1547 00032A08 #
1568: 1548 00032A08 #
1569: 1549 00032A08 #
1570: 1550 00032A08 #
1571: 1551 00032A08 # /******************************************************************************
1572: 1552 00032A08 # *
1573: 1553 00032A08 # * HALT ON ERROR ROUTINE
1574: 1554 00032A08 # *
1575: 1555 00032A08 # * halt with the necessary information saved in the registers
1576: 1556 00032A08 # *
1577: 1557 00032A08 # ******************************************************************************/
1578: 1558 00032A08 # pipe17_er_hlt( subtest )
1579: 1559 00032A08 # int subtest;
1580: 1560 00032A08 # {
1581: 1561 00032A08 11 75 jbr L372
1582: 1562 00032A0A L373:
1583: 1563 00032A0A # sgl_value_3 = dbl_st_acc.m;
1584: 1564 00032A0A 0d effffff354 effffff34f movl _dbl_st_acc,_sgl_value_3
1585: 1565 00032A15 # sgl_value_4 = dbl_st_acc.l;
1586: 1566 00032A15 0d effffff34d effffff344 movl _dbl_st_acc+4,_sgl_value_4
1587: 1567 00032A20 # asm("movl _test_no,r0"); /* r0 = test number */
1588: 1568 00032A20 0d effffff33e 50 movl _test_no,r0
1589: 1569 00032A27 # asm("movl _subtest,r1"); /* r1 = subtest number */
1590: 1570 00032A27 0d effffff337 51 movl _subtest,r1
1591: 1571 00032A2E # asm("movl $1,r2"); /* r2 = error code */
1592: 1572 00032A2E 0d 01 52 movl $1,r2
1593: 1573 00032A31 # asm("movl _cycle,r3"); /* r3 = cycle count */
1594: 1574 00032A31 0d effffff32d 53 movl _cycle,r3
1595: 1575 00032A38 # asm("movl _sgl_value_1,r4"); /* r4 = MSW operand loaded */
1596: 1576 00032A38 0d effffff326 54 movl _sgl_value_1,r4
1597: 1577 00032A3F # asm("movl _sgl_value_2,r5"); /* r5 = LSW operand loaded */
1598: 1578 00032A3F 0d effffff31f 55 movl _sgl_value_2,r5
1599: 1579 00032A46 # asm("movl _sgl_value_3,r6"); /* r6 = MSW operand stored */
1600: 1580 00032A46 0d effffff318 56 movl _sgl_value_3,r6
1601: 1581 00032A4D # asm("movl _sgl_value_4,r7"); /* r7 = LSW operand stored */
1602: 1582 00032A4D 0d effffff311 57 movl _sgl_value_4,r7
1603: 1583 00032A54 # asm("movl _sgl_value_5,r8"); /* r8 = MSW operand expect */
1604: 1584 00032A54 0d effffff30a 58 movl _sgl_value_5,r8
1605: 1585 00032A5B # asm("movl _sgl_value_6,r9"); /* r9 = LSW operand expect */
1606: 1586 00032A5B 0d effffff303 59 movl _sgl_value_6,r9
1607: 1587 00032A62 # asm("movl _index,r10"); /* r10 = data index */
1608: 1588 00032A62 0d effffff2fc 5a movl _index,r10
1609: 1589 00032A69 # if( subtest == 9 ) {
1610: 1590 00032A69 1d ad04 09 cmpl 4(fp),$9
1611: 1591 00032A6D 21 0e jneq L374
1612: 1592 00032A6F # asm("movl _sgl_value_10,r11"); /* r11 = final FP value */
1613: 1593 00032A6F 0d effffff2ef 5b movl _sgl_value_10,r11
1614: 1594 00032A76 # asm("movl _sgl_value_9,r12"); /* r12 = expected FP value */
1615: 1595 00032A76 0d effffff2e8 5c movl _sgl_value_9,r12
1616: 1596 00032A7D # };
1617: 1597 00032A7D L374:
1618: 1598 00032A7D # asm(".globl _pipe17_1_hlt");
1619: 1599 00032A7D .globl _pipe17_1_hlt
1620: 1600 00032A7D # asm("_pipe17_1_hlt:"); /* PC after the halt */
1621: 1601 00032A7D _pipe17_1_hlt:
1622: 1602 00032A7D # asm("halt"); /* HALT ... */
1623: 1603 00032A7D 00 halt
1624: 1604 00032A7E # } /* end of halt on error */
1625: 1605 00032A7E 40 ret#2
1626: 1606 00032A7F .set L370,0x0
1627: 1607 00032A7F L372:
1628: 1608 00032A7F 11 89 jbr L373
1629: 1609 00032A81 .data
1630: 1609 000647E5 .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.