|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 00000d0c * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _pipe_2
6: 6 00000000 _pipe_2:
7: 7 00026C3C 0000 .word L215
8: 8 00026C3E #
9: 9 00026C3E #
10: 10 00026C3E # #include "fpp_defs.h"
11: 11 00026C3E #
12: 12 00026C3E #
13: 13 00026C3E # /*****************************************************************************
14: 14 00026C3E # *
15: 15 00026C3E # * PIPELINE TEST #2 MONITOR
16: 16 00026C3E # *
17: 17 00026C3E # * This test will do:
18: 18 00026C3E # *
19: 19 00026C3E # * LNF(x), MULF(1), MULF(1), ADDF(0), MULF(1), STF
20: 20 00026C3E # *
21: 21 00026C3E # * where x is the fmacro1 LNF data.
22: 22 00026C3E # *****************************************************************************/
23: 23 00026C3E # pipe_2()
24: 24 00026C3E # {
25: 25 00026C3E 13 00a8 jbr L217
26: 26 00026C41 L218:
27: 27 00026C41 # asm(".globl _pipeline_2_t");
28: 28 00026C41 .globl _pipeline_2_t
29: 29 00026C41 # asm("_pipeline_2_t:"); /* entry address */
30: 30 00026C41 _pipeline_2_t:
31: 31 00026C41 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */
32: 32 00026C41 1d effffffff5 01 cmpl _cycle,$1
33: 33 00026C48 21 15 jneq L219
34: 34 00026C4A 5d efffffffec tstl _prt_hdrs
35: 35 00026C50 31 0d jeql L219
36: 36 00026C52 # {
37: 37 00026C52 # writes(" PIPE_2 ");
38: 38 00026C52 .data 1
39: 39 00000d0c * L221:
40: 40 00000d0c * 20504950455F322000 .ascii " PIPE_2 \0"
41: 41 00000d15 * .text
42: 42 00026C52 dd 8f00000d0c pushl $L221
43: 43 00026C58 fe 08 efffffffdd callf $8,_writes
44: 44 00026C5F # }
45: 45 00026C5F # subtest = 1;
46: 46 00026C5F L219:
47: 47 00026C5F 0d 01 efffffffd6 movl $1,_subtest
48: 48 00026C66 # pipe2_1(); /* data in REGs, no NOPs */
49: 49 00026C66 fe 04 ef0000007f callf $4,_pipe2_1
50: 50 00026C6D # subtest++; /* increment the subtest */
51: 51 00026C6D 6d efffffffc9 incl _subtest
52: 52 00026C73 # pipe2_2(); /* data in REGs, 1 NOP */
53: 53 00026C73 fe 04 ef0000015e callf $4,_pipe2_2
54: 54 00026C7A # subtest++; /* increment the subtest */
55: 55 00026C7A 6d efffffffbc incl _subtest
56: 56 00026C80 # pipe2_3(); /* data in REGs, 2 NOPs */
57: 57 00026C80 fe 04 ef00000243 callf $4,_pipe2_3
58: 58 00026C87 # subtest++; /* increment the subtest */
59: 59 00026C87 6d efffffffaf incl _subtest
60: 60 00026C8D # pipe2_4(); /* data in REGs, 3 NOPs */
61: 61 00026C8D fe 04 ef0000032c callf $4,_pipe2_4
62: 62 00026C94 # subtest++; /* increment the subtest */
63: 63 00026C94 6d efffffffa2 incl _subtest
64: 64 00026C9A # pipe2_5(); /* data in CACHE, no NOPs */
65: 65 00026C9A fe 04 ef0000041b callf $4,_pipe2_5
66: 66 00026CA1 # subtest++; /* increment the subtest */
67: 67 00026CA1 6d efffffff95 incl _subtest
68: 68 00026CA7 # pipe2_6(); /* data in CACHE, 1 NOP */
69: 69 00026CA7 fe 04 ef000004f6 callf $4,_pipe2_6
70: 70 00026CAE # subtest++; /* increment the subtest */
71: 71 00026CAE 6d efffffff88 incl _subtest
72: 72 00026CB4 # pipe2_7(); /* data in CACHE, 2 NOPs */
73: 73 00026CB4 fe 04 ef000005d7 callf $4,_pipe2_7
74: 74 00026CBB # subtest++; /* increment the subtest */
75: 75 00026CBB 6d efffffff7b incl _subtest
76: 76 00026CC1 # pipe2_8(); /* data in CACHE, 3 NOPs */
77: 77 00026CC1 fe 04 ef000006bc callf $4,_pipe2_8
78: 78 00026CC8 # subtest++; /* increment the subtest */
79: 79 00026CC8 6d efffffff6e incl _subtest
80: 80 00026CCE # pipe2_9(); /* data on STACK, no NOPs */
81: 81 00026CCE fe 04 ef000007a7 callf $4,_pipe2_9
82: 82 00026CD5 # subtest++; /* increment the subtest */
83: 83 00026CD5 6d efffffff61 incl _subtest
84: 84 00026CDB # pipe2_10(); /* data via FP no NOPs */
85: 85 00026CDB fe 04 ef00000928 callf $4,_pipe2_10
86: 86 00026CE2 # asm("jmp *return"); /* return to the test monitor */
87: 87 00026CE2 71 ffffffff54 jmp *return
88: 88 00026CE8 # }
89: 89 00026CE8 40 ret#2
90: 90 00026CE9 .set L215,0x0
91: 91 00026CE9 L217:
92: 92 00026CE9 13 ff55 jbr L218
93: 93 00026CEC .data
94: 94 00000d0c * .text
95: 95 00026CEC .align 1
96: 96 00026CEC .globl _pipe2_1
97: 97 00026CEC _pipe2_1:
98: 98 00026CEC 0000 .word L232
99: 99 00026CEE #
100: 100 00026CEE #
101: 101 00026CEE #
102: 102 00026CEE #
103: 103 00026CEE #
104: 104 00026CEE #
105: 105 00026CEE # /************************************************************************
106: 106 00026CEE # *
107: 107 00026CEE # * SUBTEST 1
108: 108 00026CEE # * data in registers, no NO-OPs
109: 109 00026CEE # *
110: 110 00026CEE # ************************************************************************/
111: 111 00026CEE # pipe2_1()
112: 112 00026CEE # {
113: 113 00026CEE 13 00e4 jbr L234
114: 114 00026CF1 L235:
115: 115 00026CF1 # force_loop = FALSE; /* clear force_loop flag */
116: 116 00026CF1 4d efffffff45 clrl _force_loop
117: 117 00026CF7 # index = 0;
118: 118 00026CF7 4d efffffff3f clrl _index
119: 119 00026CFD # do
120: 120 00026CFD L238:
121: 121 00026CFD # {
122: 122 00026CFD # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
123: 123 00026CFD 0d efffffff39 50 movl _index,r0
124: 124 00026D04 48 03 50 50 shll $3,r0,r0
125: 125 00026D08 0d e000000000 efffffff29 movl _lnf_1_data(r0),_sgl_value_1
126: 126 00026D13 # sgl_expected = lnf_1_data[index].exp; /* get expected results */
127: 127 00026D13 0d efffffff23 50 movl _index,r0
128: 128 00026D1A 48 03 50 50 shll $3,r0,r0
129: 129 00026D1E 0d e000000004 efffffff13 movl _lnf_1_data+4(r0),_sgl_expected
130: 130 00026D29 # sgl_value_2 = 0x40800000; /* floating '1' */
131: 131 00026D29 0d 8f40800000 efffffff08 movl $1082130432,_sgl_value_2
132: 132 00026D34 # sgl_value_3 = 0; /* floating '0' */
133: 133 00026D34 4d efffffff02 clrl _sgl_value_3
134: 134 00026D3A # /*
135: 135 00026D3A # * If LOOP ON ERROR is set, this is the loop for this subtest.
136: 136 00026D3A # * The force loop flag is set after the first error.
137: 137 00026D3A # */
138: 138 00026D3A # asm("_pipe2_1_lp1:");
139: 139 00026D3A _pipe2_1_lp1:
140: 140 00026D3A # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
141: 141 00026D3A 0d effffffefc 54 movl _sgl_value_1,r4
142: 142 00026D41 # asm("movl _sgl_value_2,r5"); /* move data to r5 */
143: 143 00026D41 0d effffffef5 55 movl _sgl_value_2,r5
144: 144 00026D48 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
145: 145 00026D48 0d effffffeee 56 movl _sgl_value_3,r6
146: 146 00026D4F # asm("lnf r4"); /* load (negate) the data */
147: 147 00026D4F 16 54 lnf r4
148: 148 00026D51 # asm("mulf r5"); /* multipy by '1' (twice) */
149: 149 00026D51 e6 55 mulf r5
150: 150 00026D53 # asm("mulf r5");
151: 151 00026D53 e6 55 mulf r5
152: 152 00026D55 # asm("addf r6"); /* add a '0' */
153: 153 00026D55 c6 56 addf r6
154: 154 00026D57 # asm("mulf r5"); /* multipy by '1' again */
155: 155 00026D57 e6 55 mulf r5
156: 156 00026D59 # asm("stf r7"); /* store the result */
157: 157 00026D59 26 57 stf r7
158: 158 00026D5B # if( force_loop );
159: 159 00026D5B 5d effffffedb tstl _force_loop
160: 160 00026D61 31 00 jeql L239
161: 161 00026D63 # asm("brb _pipe2_1_lp1");; /* loop on the error */
162: 162 00026D63 L239:
163: 163 00026D63 11 d5 brb _pipe2_1_lp1
164: 164 00026D65 # /*
165: 165 00026D65 # * verify the results
166: 166 00026D65 # */
167: 167 00026D65 # asm("movl r7,_sgl_st_acc"); /* get the result */
168: 168 00026D65 0d 57 effffffed0 movl r7,_sgl_st_acc
169: 169 00026D6C # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
170: 170 00026D6C 1d effffffeca effffffec5 cmpl _sgl_st_acc,_sgl_expected
171: 171 00026D77 31 42 jeql L240
172: 172 00026D79 # {
173: 173 00026D79 # errcnt++; /* bump the error count */
174: 174 00026D79 6d effffffebd incl _errcnt
175: 175 00026D7F # if ( prt_error )
176: 176 00026D7F 5d effffffeb7 tstl _prt_error
177: 177 00026D85 31 0d jeql L241
178: 178 00026D87 # print_pipe2_er("Reg. Data, no NO-OPS");
179: 179 00026D87 .data 1
180: 180 00000d15 * L243:
181: 181 00000d15 * 5265672E20446174612C206E6 .ascii "Reg. Data, no NO-OPS\0"
182: F204E4F2D4F505300
183: 182 00000d2a * .text
184: 183 00026D87 dd 8f00000d15 pushl $L243
185: 184 00026D8D fe 08 ef00000a34 callf $8,_print_pipe2_er
186: 185 00026D94 # if ( halt_flg ) /* halt on error? */
187: 186 00026D94 L241:
188: 187 00026D94 5d effffffea2 tstl _halt_flg
189: 188 00026D9A 31 0d jeql L244
190: 189 00026D9C # pipe2_er_hlt( subtest );
191: 190 00026D9C dd effffffe9a pushl _subtest
192: 191 00026DA2 fe 08 ef00000b2b callf $8,_pipe2_er_hlt
193: 192 00026DA9 # if ( loop_on_err ) {
194: 193 00026DA9 L244:
195: 194 00026DA9 5d effffffe8d tstl _loop_on_err
196: 195 00026DAF 31 0a jeql L246
197: 196 00026DB1 # force_loop = TRUE; /* set the force loop flag */
198: 197 00026DB1 0d 01 effffffe84 movl $1,_force_loop
199: 198 00026DB8 # asm("brw _pipe2_1_lp1"); /* and loop */
200: 199 00026DB8 13 ff7f brw _pipe2_1_lp1
201: 200 00026DBB # }
202: 201 00026DBB # } /* end of compare error */
203: 202 00026DBB L246:
204: 203 00026DBB # } while( index++ < max_lnf_1_index );
205: 204 00026DBB L240:
206: 205 00026DBB L237:
207: 206 00026DBB 0d effffffe7b 50 movl _index,r0
208: 207 00026DC2 6d effffffe74 incl _index
209: 208 00026DC8 1d 50 effffffe6d cmpl r0,_max_lnf_1_index
210: 209 00026DCF 81 03 13 ff29 jlss L238
211: 210 00026DD4 L236:
212: 211 00026DD4 # } /* end of subtest 1 */
213: 212 00026DD4 40 ret#2
214: 213 00026DD5 .set L232,0x0
215: 214 00026DD5 L234:
216: 215 00026DD5 13 ff19 jbr L235
217: 216 00026DD8 .data
218: 217 00000d0c * .text
219: 218 00026DD8 .align 1
220: 219 00026DD8 .globl _pipe2_2
221: 220 00026DD8 _pipe2_2:
222: 221 00026DD8 0000 .word L247
223: 222 00026DDA #
224: 223 00026DDA #
225: 224 00026DDA #
226: 225 00026DDA #
227: 226 00026DDA #
228: 227 00026DDA #
229: 228 00026DDA # /************************************************************************
230: 229 00026DDA # *
231: 230 00026DDA # * SUBTEST 2
232: 231 00026DDA # * data in registers, 1 NO-OP
233: 232 00026DDA # *
234: 233 00026DDA # ************************************************************************/
235: 234 00026DDA # pipe2_2()
236: 235 00026DDA # {
237: 236 00026DDA 13 00e9 jbr L249
238: 237 00026DDD L250:
239: 238 00026DDD # force_loop = FALSE; /* clear force_loop flag */
240: 239 00026DDD 4d effffffe59 clrl _force_loop
241: 240 00026DE3 # index = 0;
242: 241 00026DE3 4d effffffe53 clrl _index
243: 242 00026DE9 # do
244: 243 00026DE9 L253:
245: 244 00026DE9 # {
246: 245 00026DE9 # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
247: 246 00026DE9 0d effffffe4d 50 movl _index,r0
248: 247 00026DF0 48 03 50 50 shll $3,r0,r0
249: 248 00026DF4 0d e000000000 effffffe3d movl _lnf_1_data(r0),_sgl_value_1
250: 249 00026DFF # sgl_expected = lnf_1_data[index].exp; /* get expected results */
251: 250 00026DFF 0d effffffe37 50 movl _index,r0
252: 251 00026E06 48 03 50 50 shll $3,r0,r0
253: 252 00026E0A 0d e000000004 effffffe27 movl _lnf_1_data+4(r0),_sgl_expected
254: 253 00026E15 # sgl_value_2 = 0x40800000; /* floating '1' */
255: 254 00026E15 0d 8f40800000 effffffe1c movl $1082130432,_sgl_value_2
256: 255 00026E20 # sgl_value_3 = 0; /* floating '0' */
257: 256 00026E20 4d effffffe16 clrl _sgl_value_3
258: 257 00026E26 # /*
259: 258 00026E26 # * If LOOP ON ERROR is set, this is the loop for this subtest.
260: 259 00026E26 # * The force loop flag is set after the first error.
261: 260 00026E26 # */
262: 261 00026E26 # asm("_pipe2_2_lp1:");
263: 262 00026E26 _pipe2_2_lp1:
264: 263 00026E26 # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
265: 264 00026E26 0d effffffe10 54 movl _sgl_value_1,r4
266: 265 00026E2D # asm("movl _sgl_value_2,r5"); /* move data to r5 */
267: 266 00026E2D 0d effffffe09 55 movl _sgl_value_2,r5
268: 267 00026E34 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
269: 268 00026E34 0d effffffe02 56 movl _sgl_value_3,r6
270: 269 00026E3B # asm("lnf r4"); /* load (negate) the data */
271: 270 00026E3B 16 54 lnf r4
272: 271 00026E3D # asm("nop");
273: 272 00026E3D 10 nop
274: 273 00026E3E # asm("mulf r5"); /* multipy by '1' (twice) */
275: 274 00026E3E e6 55 mulf r5
276: 275 00026E40 # asm("nop");
277: 276 00026E40 10 nop
278: 277 00026E41 # asm("mulf r5");
279: 278 00026E41 e6 55 mulf r5
280: 279 00026E43 # asm("nop");
281: 280 00026E43 10 nop
282: 281 00026E44 # asm("addf r6"); /* add a '0' */
283: 282 00026E44 c6 56 addf r6
284: 283 00026E46 # asm("nop");
285: 284 00026E46 10 nop
286: 285 00026E47 # asm("mulf r5"); /* multipy by '1' again */
287: 286 00026E47 e6 55 mulf r5
288: 287 00026E49 # asm("nop");
289: 288 00026E49 10 nop
290: 289 00026E4A # asm("stf r7"); /* store the result */
291: 290 00026E4A 26 57 stf r7
292: 291 00026E4C # if( force_loop );
293: 292 00026E4C 5d effffffdea tstl _force_loop
294: 293 00026E52 31 00 jeql L254
295: 294 00026E54 # asm("brb _pipe2_2_lp1");; /* loop on the error */
296: 295 00026E54 L254:
297: 296 00026E54 11 d0 brb _pipe2_2_lp1
298: 297 00026E56 # /*
299: 298 00026E56 # * verify the results
300: 299 00026E56 # */
301: 300 00026E56 # asm("movl r7,_sgl_st_acc"); /* get the result */
302: 301 00026E56 0d 57 effffffddf movl r7,_sgl_st_acc
303: 302 00026E5D # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
304: 303 00026E5D 1d effffffdd9 effffffdd4 cmpl _sgl_st_acc,_sgl_expected
305: 304 00026E68 31 42 jeql L255
306: 305 00026E6A # {
307: 306 00026E6A # errcnt++; /* bump the error count */
308: 307 00026E6A 6d effffffdcc incl _errcnt
309: 308 00026E70 # if ( prt_error )
310: 309 00026E70 5d effffffdc6 tstl _prt_error
311: 310 00026E76 31 0d jeql L256
312: 311 00026E78 # print_pipe2_er("Reg. Data, 1 NO-OP");
313: 312 00026E78 .data 1
314: 313 00000d2a * L257:
315: 314 00000d2a * 5265672E20446174612C20312 .ascii "Reg. Data, 1 NO-OP\0"
316: 04E4F2D4F5000
317: 315 00000d3d * .text
318: 316 00026E78 dd 8f00000d2a pushl $L257
319: 317 00026E7E fe 08 ef00000943 callf $8,_print_pipe2_er
320: 318 00026E85 # if ( halt_flg ) /* halt on error? */
321: 319 00026E85 L256:
322: 320 00026E85 5d effffffdb1 tstl _halt_flg
323: 321 00026E8B 31 0d jeql L258
324: 322 00026E8D # pipe2_er_hlt( subtest );
325: 323 00026E8D dd effffffda9 pushl _subtest
326: 324 00026E93 fe 08 ef00000a3a callf $8,_pipe2_er_hlt
327: 325 00026E9A # if ( loop_on_err ) {
328: 326 00026E9A L258:
329: 327 00026E9A 5d effffffd9c tstl _loop_on_err
330: 328 00026EA0 31 0a jeql L259
331: 329 00026EA2 # force_loop = TRUE; /* set the force loop flag */
332: 330 00026EA2 0d 01 effffffd93 movl $1,_force_loop
333: 331 00026EA9 # asm("brw _pipe2_2_lp1"); /* and loop */
334: 332 00026EA9 13 ff7a brw _pipe2_2_lp1
335: 333 00026EAC # }
336: 334 00026EAC # } /* end of compare error */
337: 335 00026EAC L259:
338: 336 00026EAC # } while( index++ < max_lnf_1_index );
339: 337 00026EAC L255:
340: 338 00026EAC L252:
341: 339 00026EAC 0d effffffd8a 50 movl _index,r0
342: 340 00026EB3 6d effffffd83 incl _index
343: 341 00026EB9 1d 50 effffffd7c cmpl r0,_max_lnf_1_index
344: 342 00026EC0 81 03 13 ff24 jlss L253
345: 343 00026EC5 L251:
346: 344 00026EC5 # } /* end of subtest 2 */
347: 345 00026EC5 40 ret#2
348: 346 00026EC6 .set L247,0x0
349: 347 00026EC6 L249:
350: 348 00026EC6 13 ff14 jbr L250
351: 349 00026EC9 .data
352: 350 00000d0c * .text
353: 351 00026EC9 00 .align 1
354: 352 00026ECA .globl _pipe2_3
355: 353 00026ECA _pipe2_3:
356: 354 00026ECA 0000 .word L260
357: 355 00026ECC #
358: 356 00026ECC #
359: 357 00026ECC #
360: 358 00026ECC #
361: 359 00026ECC #
362: 360 00026ECC #
363: 361 00026ECC # /************************************************************************
364: 362 00026ECC # *
365: 363 00026ECC # * SUBTEST 3
366: 364 00026ECC # * data in registers, 2 NO-OPs
367: 365 00026ECC # *
368: 366 00026ECC # ************************************************************************/
369: 367 00026ECC # pipe2_3()
370: 368 00026ECC # {
371: 369 00026ECC 13 00ee jbr L262
372: 370 00026ECF L263:
373: 371 00026ECF # force_loop = FALSE; /* clear force_loop flag */
374: 372 00026ECF 4d effffffd67 clrl _force_loop
375: 373 00026ED5 # index = 0;
376: 374 00026ED5 4d effffffd61 clrl _index
377: 375 00026EDB # do
378: 376 00026EDB L266:
379: 377 00026EDB # {
380: 378 00026EDB # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
381: 379 00026EDB 0d effffffd5b 50 movl _index,r0
382: 380 00026EE2 48 03 50 50 shll $3,r0,r0
383: 381 00026EE6 0d e000000000 effffffd4b movl _lnf_1_data(r0),_sgl_value_1
384: 382 00026EF1 # sgl_expected = lnf_1_data[index].exp; /* get expected results */
385: 383 00026EF1 0d effffffd45 50 movl _index,r0
386: 384 00026EF8 48 03 50 50 shll $3,r0,r0
387: 385 00026EFC 0d e000000004 effffffd35 movl _lnf_1_data+4(r0),_sgl_expected
388: 386 00026F07 # sgl_value_2 = 0x40800000; /* floating '1' */
389: 387 00026F07 0d 8f40800000 effffffd2a movl $1082130432,_sgl_value_2
390: 388 00026F12 # sgl_value_3 = 0; /* floating '0' */
391: 389 00026F12 4d effffffd24 clrl _sgl_value_3
392: 390 00026F18 # /*
393: 391 00026F18 # * If LOOP ON ERROR is set, this is the loop for this subtest.
394: 392 00026F18 # * The force loop flag is set after the first error.
395: 393 00026F18 # */
396: 394 00026F18 # asm("_pipe2_3_lp1:");
397: 395 00026F18 _pipe2_3_lp1:
398: 396 00026F18 # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
399: 397 00026F18 0d effffffd1e 54 movl _sgl_value_1,r4
400: 398 00026F1F # asm("movl _sgl_value_2,r5"); /* move data to r5 */
401: 399 00026F1F 0d effffffd17 55 movl _sgl_value_2,r5
402: 400 00026F26 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
403: 401 00026F26 0d effffffd10 56 movl _sgl_value_3,r6
404: 402 00026F2D # asm("lnf r4"); /* load (negate) the data */
405: 403 00026F2D 16 54 lnf r4
406: 404 00026F2F # asm("nop");
407: 405 00026F2F 10 nop
408: 406 00026F30 # asm("nop");
409: 407 00026F30 10 nop
410: 408 00026F31 # asm("mulf r5"); /* multipy by '1' (twice) */
411: 409 00026F31 e6 55 mulf r5
412: 410 00026F33 # asm("nop");
413: 411 00026F33 10 nop
414: 412 00026F34 # asm("nop");
415: 413 00026F34 10 nop
416: 414 00026F35 # asm("mulf r5");
417: 415 00026F35 e6 55 mulf r5
418: 416 00026F37 # asm("nop");
419: 417 00026F37 10 nop
420: 418 00026F38 # asm("nop");
421: 419 00026F38 10 nop
422: 420 00026F39 # asm("addf r6"); /* add a '0' */
423: 421 00026F39 c6 56 addf r6
424: 422 00026F3B # asm("nop");
425: 423 00026F3B 10 nop
426: 424 00026F3C # asm("nop");
427: 425 00026F3C 10 nop
428: 426 00026F3D # asm("mulf r5"); /* multipy by '1' again */
429: 427 00026F3D e6 55 mulf r5
430: 428 00026F3F # asm("nop");
431: 429 00026F3F 10 nop
432: 430 00026F40 # asm("nop");
433: 431 00026F40 10 nop
434: 432 00026F41 # asm("stf r7"); /* store the result */
435: 433 00026F41 26 57 stf r7
436: 434 00026F43 # if( force_loop );
437: 435 00026F43 5d effffffcf3 tstl _force_loop
438: 436 00026F49 31 00 jeql L267
439: 437 00026F4B # asm("brb _pipe2_3_lp1");; /* loop on the error */
440: 438 00026F4B L267:
441: 439 00026F4B 11 cb brb _pipe2_3_lp1
442: 440 00026F4D # /*
443: 441 00026F4D # * verify the results
444: 442 00026F4D # */
445: 443 00026F4D # asm("movl r7,_sgl_st_acc"); /* get the result */
446: 444 00026F4D 0d 57 effffffce8 movl r7,_sgl_st_acc
447: 445 00026F54 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
448: 446 00026F54 1d effffffce2 effffffcdd cmpl _sgl_st_acc,_sgl_expected
449: 447 00026F5F 31 42 jeql L268
450: 448 00026F61 # {
451: 449 00026F61 # errcnt++; /* bump the error count */
452: 450 00026F61 6d effffffcd5 incl _errcnt
453: 451 00026F67 # if ( prt_error )
454: 452 00026F67 5d effffffccf tstl _prt_error
455: 453 00026F6D 31 0d jeql L269
456: 454 00026F6F # print_pipe2_er("Reg. Data, 2 NO-OPS");
457: 455 00026F6F .data 1
458: 456 00000d3d * L270:
459: 457 00000d3d * 5265672E20446174612C20322 .ascii "Reg. Data, 2 NO-OPS\0"
460: 04E4F2D4F505300
461: 458 00000d51 * .text
462: 459 00026F6F dd 8f00000d3d pushl $L270
463: 460 00026F75 fe 08 ef0000084c callf $8,_print_pipe2_er
464: 461 00026F7C # if ( halt_flg ) /* halt on error? */
465: 462 00026F7C L269:
466: 463 00026F7C 5d effffffcba tstl _halt_flg
467: 464 00026F82 31 0d jeql L271
468: 465 00026F84 # pipe2_er_hlt( subtest );
469: 466 00026F84 dd effffffcb2 pushl _subtest
470: 467 00026F8A fe 08 ef00000943 callf $8,_pipe2_er_hlt
471: 468 00026F91 # if ( loop_on_err ) {
472: 469 00026F91 L271:
473: 470 00026F91 5d effffffca5 tstl _loop_on_err
474: 471 00026F97 31 0a jeql L272
475: 472 00026F99 # force_loop = TRUE; /* set the force loop flag */
476: 473 00026F99 0d 01 effffffc9c movl $1,_force_loop
477: 474 00026FA0 # asm("brw _pipe2_3_lp1"); /* and loop */
478: 475 00026FA0 13 ff75 brw _pipe2_3_lp1
479: 476 00026FA3 # }
480: 477 00026FA3 # } /* end of compare error */
481: 478 00026FA3 L272:
482: 479 00026FA3 # } while( index++ < max_lnf_1_index );
483: 480 00026FA3 L268:
484: 481 00026FA3 L265:
485: 482 00026FA3 0d effffffc93 50 movl _index,r0
486: 483 00026FAA 6d effffffc8c incl _index
487: 484 00026FB0 1d 50 effffffc85 cmpl r0,_max_lnf_1_index
488: 485 00026FB7 81 03 13 ff1f jlss L266
489: 486 00026FBC L264:
490: 487 00026FBC # } /* end of subtest 3 */
491: 488 00026FBC 40 ret#2
492: 489 00026FBD .set L260,0x0
493: 490 00026FBD L262:
494: 491 00026FBD 13 ff0f jbr L263
495: 492 00026FC0 .data
496: 493 00000d0c * .text
497: 494 00026FC0 .align 1
498: 495 00026FC0 .globl _pipe2_4
499: 496 00026FC0 _pipe2_4:
500: 497 00026FC0 0000 .word L273
501: 498 00026FC2 #
502: 499 00026FC2 #
503: 500 00026FC2 #
504: 501 00026FC2 #
505: 502 00026FC2 #
506: 503 00026FC2 #
507: 504 00026FC2 # /************************************************************************
508: 505 00026FC2 # *
509: 506 00026FC2 # * SUBTEST 4
510: 507 00026FC2 # * data in registers, 3 NO-OPs
511: 508 00026FC2 # *
512: 509 00026FC2 # ************************************************************************/
513: 510 00026FC2 # pipe2_4()
514: 511 00026FC2 # {
515: 512 00026FC2 13 00f3 jbr L275
516: 513 00026FC5 L276:
517: 514 00026FC5 # force_loop = FALSE; /* clear force_loop flag */
518: 515 00026FC5 4d effffffc71 clrl _force_loop
519: 516 00026FCB # index = 0;
520: 517 00026FCB 4d effffffc6b clrl _index
521: 518 00026FD1 # do
522: 519 00026FD1 L279:
523: 520 00026FD1 # {
524: 521 00026FD1 # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
525: 522 00026FD1 0d effffffc65 50 movl _index,r0
526: 523 00026FD8 48 03 50 50 shll $3,r0,r0
527: 524 00026FDC 0d e000000000 effffffc55 movl _lnf_1_data(r0),_sgl_value_1
528: 525 00026FE7 # sgl_expected = lnf_1_data[index].exp; /* get expected results */
529: 526 00026FE7 0d effffffc4f 50 movl _index,r0
530: 527 00026FEE 48 03 50 50 shll $3,r0,r0
531: 528 00026FF2 0d e000000004 effffffc3f movl _lnf_1_data+4(r0),_sgl_expected
532: 529 00026FFD # sgl_value_2 = 0x40800000; /* floating '1' */
533: 530 00026FFD 0d 8f40800000 effffffc34 movl $1082130432,_sgl_value_2
534: 531 00027008 # sgl_value_3 = 0; /* floating '0' */
535: 532 00027008 4d effffffc2e clrl _sgl_value_3
536: 533 0002700E # /*
537: 534 0002700E # * If LOOP ON ERROR is set, this is the loop for this subtest.
538: 535 0002700E # * The force loop flag is set after the first error.
539: 536 0002700E # */
540: 537 0002700E # asm("_pipe2_4_lp1:");
541: 538 0002700E _pipe2_4_lp1:
542: 539 0002700E # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
543: 540 0002700E 0d effffffc28 54 movl _sgl_value_1,r4
544: 541 00027015 # asm("movl _sgl_value_2,r5"); /* move data to r5 */
545: 542 00027015 0d effffffc21 55 movl _sgl_value_2,r5
546: 543 0002701C # asm("movl _sgl_value_3,r6"); /* move data to r6 */
547: 544 0002701C 0d effffffc1a 56 movl _sgl_value_3,r6
548: 545 00027023 # asm("lnf r4"); /* load (negate) the data */
549: 546 00027023 16 54 lnf r4
550: 547 00027025 # asm("nop");
551: 548 00027025 10 nop
552: 549 00027026 # asm("nop");
553: 550 00027026 10 nop
554: 551 00027027 # asm("nop");
555: 552 00027027 10 nop
556: 553 00027028 # asm("mulf r5"); /* multipy by '1' (twice) */
557: 554 00027028 e6 55 mulf r5
558: 555 0002702A # asm("nop");
559: 556 0002702A 10 nop
560: 557 0002702B # asm("nop");
561: 558 0002702B 10 nop
562: 559 0002702C # asm("nop");
563: 560 0002702C 10 nop
564: 561 0002702D # asm("mulf r5");
565: 562 0002702D e6 55 mulf r5
566: 563 0002702F # asm("nop");
567: 564 0002702F 10 nop
568: 565 00027030 # asm("nop");
569: 566 00027030 10 nop
570: 567 00027031 # asm("nop");
571: 568 00027031 10 nop
572: 569 00027032 # asm("addf r6"); /* add a '0' */
573: 570 00027032 c6 56 addf r6
574: 571 00027034 # asm("nop");
575: 572 00027034 10 nop
576: 573 00027035 # asm("nop");
577: 574 00027035 10 nop
578: 575 00027036 # asm("nop");
579: 576 00027036 10 nop
580: 577 00027037 # asm("mulf r5"); /* multipy by '1' again */
581: 578 00027037 e6 55 mulf r5
582: 579 00027039 # asm("nop");
583: 580 00027039 10 nop
584: 581 0002703A # asm("nop");
585: 582 0002703A 10 nop
586: 583 0002703B # asm("nop");
587: 584 0002703B 10 nop
588: 585 0002703C # asm("stf r7"); /* store the result */
589: 586 0002703C 26 57 stf r7
590: 587 0002703E # if( force_loop );
591: 588 0002703E 5d effffffbf8 tstl _force_loop
592: 589 00027044 31 00 jeql L280
593: 590 00027046 # asm("brb _pipe2_4_lp1");; /* loop on the error */
594: 591 00027046 L280:
595: 592 00027046 11 c6 brb _pipe2_4_lp1
596: 593 00027048 # /*
597: 594 00027048 # * verify the results
598: 595 00027048 # */
599: 596 00027048 # asm("movl r7,_sgl_st_acc"); /* get the result */
600: 597 00027048 0d 57 effffffbed movl r7,_sgl_st_acc
601: 598 0002704F # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
602: 599 0002704F 1d effffffbe7 effffffbe2 cmpl _sgl_st_acc,_sgl_expected
603: 600 0002705A 31 42 jeql L281
604: 601 0002705C # {
605: 602 0002705C # errcnt++; /* bump the error count */
606: 603 0002705C 6d effffffbda incl _errcnt
607: 604 00027062 # if ( prt_error )
608: 605 00027062 5d effffffbd4 tstl _prt_error
609: 606 00027068 31 0d jeql L282
610: 607 0002706A # print_pipe2_er("Reg. Data, 3 NO-OPS");
611: 608 0002706A .data 1
612: 609 00000d51 * L283:
613: 610 00000d51 * 5265672E20446174612C20332 .ascii "Reg. Data, 3 NO-OPS\0"
614: 04E4F2D4F505300
615: 611 00000d65 * .text
616: 612 0002706A dd 8f00000d51 pushl $L283
617: 613 00027070 fe 08 ef00000751 callf $8,_print_pipe2_er
618: 614 00027077 # if ( halt_flg ) /* halt on error? */
619: 615 00027077 L282:
620: 616 00027077 5d effffffbbf tstl _halt_flg
621: 617 0002707D 31 0d jeql L284
622: 618 0002707F # pipe2_er_hlt( subtest );
623: 619 0002707F dd effffffbb7 pushl _subtest
624: 620 00027085 fe 08 ef00000848 callf $8,_pipe2_er_hlt
625: 621 0002708C # if ( loop_on_err ) {
626: 622 0002708C L284:
627: 623 0002708C 5d effffffbaa tstl _loop_on_err
628: 624 00027092 31 0a jeql L285
629: 625 00027094 # force_loop = TRUE; /* set the force loop flag */
630: 626 00027094 0d 01 effffffba1 movl $1,_force_loop
631: 627 0002709B # asm("brw _pipe2_4_lp1"); /* and loop */
632: 628 0002709B 13 ff70 brw _pipe2_4_lp1
633: 629 0002709E # }
634: 630 0002709E # } /* end of compare error */
635: 631 0002709E L285:
636: 632 0002709E # } while( index++ < max_lnf_1_index );
637: 633 0002709E L281:
638: 634 0002709E L278:
639: 635 0002709E 0d effffffb98 50 movl _index,r0
640: 636 000270A5 6d effffffb91 incl _index
641: 637 000270AB 1d 50 effffffb8a cmpl r0,_max_lnf_1_index
642: 638 000270B2 81 03 13 ff1a jlss L279
643: 639 000270B7 L277:
644: 640 000270B7 # } /* end of subtest 4 */
645: 641 000270B7 40 ret#2
646: 642 000270B8 .set L273,0x0
647: 643 000270B8 L275:
648: 644 000270B8 13 ff0a jbr L276
649: 645 000270BB .data
650: 646 00000d0c * .text
651: 647 000270BB 00 .align 1
652: 648 000270BC .globl _pipe2_5
653: 649 000270BC _pipe2_5:
654: 650 000270BC 0000 .word L286
655: 651 000270BE #
656: 652 000270BE #
657: 653 000270BE #
658: 654 000270BE #
659: 655 000270BE #
660: 656 000270BE #
661: 657 000270BE #
662: 658 000270BE # /************************************************************************
663: 659 000270BE # *
664: 660 000270BE # * SUBTEST 5
665: 661 000270BE # * data in Cache, no NO-OPs
666: 662 000270BE # *
667: 663 000270BE # ************************************************************************/
668: 664 000270BE # pipe2_5()
669: 665 000270BE # {
670: 666 000270BE 13 00e0 jbr L288
671: 667 000270C1 L289:
672: 668 000270C1 # force_loop = FALSE; /* clear force_loop flag */
673: 669 000270C1 4d effffffb75 clrl _force_loop
674: 670 000270C7 # index = 0;
675: 671 000270C7 4d effffffb6f clrl _index
676: 672 000270CD # do
677: 673 000270CD L292:
678: 674 000270CD # {
679: 675 000270CD # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
680: 676 000270CD 0d effffffb69 50 movl _index,r0
681: 677 000270D4 48 03 50 50 shll $3,r0,r0
682: 678 000270D8 0d e000000000 effffffb59 movl _lnf_1_data(r0),_sgl_value_1
683: 679 000270E3 # sgl_expected = lnf_1_data[index].exp; /* get expected results */
684: 680 000270E3 0d effffffb53 50 movl _index,r0
685: 681 000270EA 48 03 50 50 shll $3,r0,r0
686: 682 000270EE 0d e000000004 effffffb43 movl _lnf_1_data+4(r0),_sgl_expected
687: 683 000270F9 # sgl_value_2 = 0x40800000; /* floating '1' */
688: 684 000270F9 0d 8f40800000 effffffb38 movl $1082130432,_sgl_value_2
689: 685 00027104 # sgl_value_3 = 0; /* floating '0' */
690: 686 00027104 4d effffffb32 clrl _sgl_value_3
691: 687 0002710A # /*
692: 688 0002710A # * If LOOP ON ERROR is set, this is the loop for this subtest.
693: 689 0002710A # * The force loop flag is set after the first error.
694: 690 0002710A # */
695: 691 0002710A # asm("_pipe2_5_lp1:");
696: 692 0002710A _pipe2_5_lp1:
697: 693 0002710A # asm("lnf _sgl_value_1"); /* load (negate) the data */
698: 694 0002710A 16 effffffb2c lnf _sgl_value_1
699: 695 00027110 # asm("mulf _sgl_value_2"); /* multipy by '1' (twice) */
700: 696 00027110 e6 effffffb26 mulf _sgl_value_2
701: 697 00027116 # asm("mulf _sgl_value_2");
702: 698 00027116 e6 effffffb20 mulf _sgl_value_2
703: 699 0002711C # asm("addf _sgl_value_3"); /* add a '0' */
704: 700 0002711C c6 effffffb1a addf _sgl_value_3
705: 701 00027122 # asm("mulf _sgl_value_2"); /* multipy by '1' again */
706: 702 00027122 e6 effffffb14 mulf _sgl_value_2
707: 703 00027128 # asm("stf _sgl_st_acc"); /* store the result */
708: 704 00027128 26 effffffb0e stf _sgl_st_acc
709: 705 0002712E # if( force_loop );
710: 706 0002712E 5d effffffb08 tstl _force_loop
711: 707 00027134 31 00 jeql L293
712: 708 00027136 # asm("brb _pipe2_5_lp1");; /* loop on the error */
713: 709 00027136 L293:
714: 710 00027136 11 d2 brb _pipe2_5_lp1
715: 711 00027138 # /*
716: 712 00027138 # * verify the results
717: 713 00027138 # */
718: 714 00027138 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
719: 715 00027138 1d effffffafe effffffaf9 cmpl _sgl_st_acc,_sgl_expected
720: 716 00027143 31 42 jeql L294
721: 717 00027145 # {
722: 718 00027145 # errcnt++; /* bump the error count */
723: 719 00027145 6d effffffaf1 incl _errcnt
724: 720 0002714B # if ( prt_error )
725: 721 0002714B 5d effffffaeb tstl _prt_error
726: 722 00027151 31 0d jeql L295
727: 723 00027153 # print_pipe2_er("Cache Data, no NO-OPS");
728: 724 00027153 .data 1
729: 725 00000d65 * L296:
730: 726 00000d65 * 436163686520446174612C206 .ascii "Cache Data, no NO-OPS\0"
731: E6F204E4F2D4F505300
732: 727 00000d7b * .text
733: 728 00027153 dd 8f00000d65 pushl $L296
734: 729 00027159 fe 08 ef00000668 callf $8,_print_pipe2_er
735: 730 00027160 # if ( halt_flg ) /* halt on error? */
736: 731 00027160 L295:
737: 732 00027160 5d effffffad6 tstl _halt_flg
738: 733 00027166 31 0d jeql L297
739: 734 00027168 # pipe2_er_hlt( subtest );
740: 735 00027168 dd efffffface pushl _subtest
741: 736 0002716E fe 08 ef0000075f callf $8,_pipe2_er_hlt
742: 737 00027175 # if ( loop_on_err ) {
743: 738 00027175 L297:
744: 739 00027175 5d effffffac1 tstl _loop_on_err
745: 740 0002717B 31 0a jeql L298
746: 741 0002717D # force_loop = TRUE; /* set the force loop flag */
747: 742 0002717D 0d 01 effffffab8 movl $1,_force_loop
748: 743 00027184 # asm("brw _pipe2_5_lp1"); /* and loop */
749: 744 00027184 13 ff83 brw _pipe2_5_lp1
750: 745 00027187 # }
751: 746 00027187 # } /* end of compare error */
752: 747 00027187 L298:
753: 748 00027187 # } while( index++ < max_lnf_1_index );
754: 749 00027187 L294:
755: 750 00027187 L291:
756: 751 00027187 0d effffffaaf 50 movl _index,r0
757: 752 0002718E 6d effffffaa8 incl _index
758: 753 00027194 1d 50 effffffaa1 cmpl r0,_max_lnf_1_index
759: 754 0002719B 81 03 13 ff2d jlss L292
760: 755 000271A0 L290:
761: 756 000271A0 # } /* end of subtest 5 */
762: 757 000271A0 40 ret#2
763: 758 000271A1 .set L286,0x0
764: 759 000271A1 L288:
765: 760 000271A1 13 ff1d jbr L289
766: 761 000271A4 .data
767: 762 00000d0c * .text
768: 763 000271A4 .align 1
769: 764 000271A4 .globl _pipe2_6
770: 765 000271A4 _pipe2_6:
771: 766 000271A4 0000 .word L299
772: 767 000271A6 #
773: 768 000271A6 #
774: 769 000271A6 #
775: 770 000271A6 #
776: 771 000271A6 #
777: 772 000271A6 #
778: 773 000271A6 # /************************************************************************
779: 774 000271A6 # *
780: 775 000271A6 # * SUBTEST 6
781: 776 000271A6 # * data in Cache, 1 NO-OP
782: 777 000271A6 # *
783: 778 000271A6 # ************************************************************************/
784: 779 000271A6 # pipe2_6()
785: 780 000271A6 # {
786: 781 000271A6 13 00e5 jbr L301
787: 782 000271A9 L302:
788: 783 000271A9 # force_loop = FALSE; /* clear force_loop flag */
789: 784 000271A9 4d effffffa8d clrl _force_loop
790: 785 000271AF # index = 0;
791: 786 000271AF 4d effffffa87 clrl _index
792: 787 000271B5 # do
793: 788 000271B5 L305:
794: 789 000271B5 # {
795: 790 000271B5 # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
796: 791 000271B5 0d effffffa81 50 movl _index,r0
797: 792 000271BC 48 03 50 50 shll $3,r0,r0
798: 793 000271C0 0d e000000000 effffffa71 movl _lnf_1_data(r0),_sgl_value_1
799: 794 000271CB # sgl_expected = lnf_1_data[index].exp; /* get expected results */
800: 795 000271CB 0d effffffa6b 50 movl _index,r0
801: 796 000271D2 48 03 50 50 shll $3,r0,r0
802: 797 000271D6 0d e000000004 effffffa5b movl _lnf_1_data+4(r0),_sgl_expected
803: 798 000271E1 # sgl_value_2 = 0x40800000; /* floating '1' */
804: 799 000271E1 0d 8f40800000 effffffa50 movl $1082130432,_sgl_value_2
805: 800 000271EC # sgl_value_3 = 0; /* floating '0' */
806: 801 000271EC 4d effffffa4a clrl _sgl_value_3
807: 802 000271F2 # /*
808: 803 000271F2 # * If LOOP ON ERROR is set, this is the loop for this subtest.
809: 804 000271F2 # * The force loop flag is set after the first error.
810: 805 000271F2 # */
811: 806 000271F2 # asm("_pipe2_6_lp1:");
812: 807 000271F2 _pipe2_6_lp1:
813: 808 000271F2 # asm("lnf _sgl_value_1"); /* load (negate) the data */
814: 809 000271F2 16 effffffa44 lnf _sgl_value_1
815: 810 000271F8 # asm("nop");
816: 811 000271F8 10 nop
817: 812 000271F9 # asm("mulf _sgl_value_2"); /* multipy by '1' (twice) */
818: 813 000271F9 e6 effffffa3d mulf _sgl_value_2
819: 814 000271FF # asm("nop");
820: 815 000271FF 10 nop
821: 816 00027200 # asm("mulf _sgl_value_2");
822: 817 00027200 e6 effffffa36 mulf _sgl_value_2
823: 818 00027206 # asm("nop");
824: 819 00027206 10 nop
825: 820 00027207 # asm("addf _sgl_value_3"); /* add a '0' */
826: 821 00027207 c6 effffffa2f addf _sgl_value_3
827: 822 0002720D # asm("nop");
828: 823 0002720D 10 nop
829: 824 0002720E # asm("mulf _sgl_value_2"); /* multipy by '1' again */
830: 825 0002720E e6 effffffa28 mulf _sgl_value_2
831: 826 00027214 # asm("nop");
832: 827 00027214 10 nop
833: 828 00027215 # asm("stf _sgl_st_acc"); /* store the result */
834: 829 00027215 26 effffffa21 stf _sgl_st_acc
835: 830 0002721B # if( force_loop );
836: 831 0002721B 5d effffffa1b tstl _force_loop
837: 832 00027221 31 00 jeql L306
838: 833 00027223 # asm("brb _pipe2_6_lp1");; /* loop on the error */
839: 834 00027223 L306:
840: 835 00027223 11 cd brb _pipe2_6_lp1
841: 836 00027225 # /*
842: 837 00027225 # * verify the results
843: 838 00027225 # */
844: 839 00027225 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
845: 840 00027225 1d effffffa11 effffffa0c cmpl _sgl_st_acc,_sgl_expected
846: 841 00027230 31 42 jeql L307
847: 842 00027232 # {
848: 843 00027232 # errcnt++; /* bump the error count */
849: 844 00027232 6d effffffa04 incl _errcnt
850: 845 00027238 # if ( prt_error )
851: 846 00027238 5d effffff9fe tstl _prt_error
852: 847 0002723E 31 0d jeql L308
853: 848 00027240 # print_pipe2_er("Cache Data, 1 NO-OP");
854: 849 00027240 .data 1
855: 850 00000d7b * L309:
856: 851 00000d7b * 436163686520446174612C203 .ascii "Cache Data, 1 NO-OP\0"
857: 1204E4F2D4F5000
858: 852 00000d8f * .text
859: 853 00027240 dd 8f00000d7b pushl $L309
860: 854 00027246 fe 08 ef0000057b callf $8,_print_pipe2_er
861: 855 0002724D # if ( halt_flg ) /* halt on error? */
862: 856 0002724D L308:
863: 857 0002724D 5d effffff9e9 tstl _halt_flg
864: 858 00027253 31 0d jeql L310
865: 859 00027255 # pipe2_er_hlt( subtest );
866: 860 00027255 dd effffff9e1 pushl _subtest
867: 861 0002725B fe 08 ef00000672 callf $8,_pipe2_er_hlt
868: 862 00027262 # if ( loop_on_err ) {
869: 863 00027262 L310:
870: 864 00027262 5d effffff9d4 tstl _loop_on_err
871: 865 00027268 31 0a jeql L311
872: 866 0002726A # force_loop = TRUE; /* set the force loop flag */
873: 867 0002726A 0d 01 effffff9cb movl $1,_force_loop
874: 868 00027271 # asm("brw _pipe2_6_lp1"); /* and loop */
875: 869 00027271 13 ff7e brw _pipe2_6_lp1
876: 870 00027274 # }
877: 871 00027274 # } /* end of compare error */
878: 872 00027274 L311:
879: 873 00027274 # } while( index++ < max_lnf_1_index );
880: 874 00027274 L307:
881: 875 00027274 L304:
882: 876 00027274 0d effffff9c2 50 movl _index,r0
883: 877 0002727B 6d effffff9bb incl _index
884: 878 00027281 1d 50 effffff9b4 cmpl r0,_max_lnf_1_index
885: 879 00027288 81 03 13 ff28 jlss L305
886: 880 0002728D L303:
887: 881 0002728D # } /* end of subtest 6 */
888: 882 0002728D 40 ret#2
889: 883 0002728E .set L299,0x0
890: 884 0002728E L301:
891: 885 0002728E 13 ff18 jbr L302
892: 886 00027291 .data
893: 887 00000d0c * .text
894: 888 00027291 00 .align 1
895: 889 00027292 .globl _pipe2_7
896: 890 00027292 _pipe2_7:
897: 891 00027292 0000 .word L312
898: 892 00027294 #
899: 893 00027294 #
900: 894 00027294 #
901: 895 00027294 #
902: 896 00027294 #
903: 897 00027294 #
904: 898 00027294 # /************************************************************************
905: 899 00027294 # *
906: 900 00027294 # * SUBTEST 7
907: 901 00027294 # * data in Cache, 2 NO-OPs
908: 902 00027294 # *
909: 903 00027294 # ************************************************************************/
910: 904 00027294 # pipe2_7()
911: 905 00027294 # {
912: 906 00027294 13 00ea jbr L314
913: 907 00027297 L315:
914: 908 00027297 # force_loop = FALSE; /* clear force_loop flag */
915: 909 00027297 4d effffff99f clrl _force_loop
916: 910 0002729D # index = 0;
917: 911 0002729D 4d effffff999 clrl _index
918: 912 000272A3 # do
919: 913 000272A3 L318:
920: 914 000272A3 # {
921: 915 000272A3 # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
922: 916 000272A3 0d effffff993 50 movl _index,r0
923: 917 000272AA 48 03 50 50 shll $3,r0,r0
924: 918 000272AE 0d e000000000 effffff983 movl _lnf_1_data(r0),_sgl_value_1
925: 919 000272B9 # sgl_expected = lnf_1_data[index].exp; /* get expected results */
926: 920 000272B9 0d effffff97d 50 movl _index,r0
927: 921 000272C0 48 03 50 50 shll $3,r0,r0
928: 922 000272C4 0d e000000004 effffff96d movl _lnf_1_data+4(r0),_sgl_expected
929: 923 000272CF # sgl_value_2 = 0x40800000; /* floating '1' */
930: 924 000272CF 0d 8f40800000 effffff962 movl $1082130432,_sgl_value_2
931: 925 000272DA # sgl_value_3 = 0; /* floating '0' */
932: 926 000272DA 4d effffff95c clrl _sgl_value_3
933: 927 000272E0 # /*
934: 928 000272E0 # * If LOOP ON ERROR is set, this is the loop for this subtest.
935: 929 000272E0 # * The force loop flag is set after the first error.
936: 930 000272E0 # */
937: 931 000272E0 # asm("_pipe2_7_lp1:");
938: 932 000272E0 _pipe2_7_lp1:
939: 933 000272E0 # asm("lnf _sgl_value_1"); /* load (negate) the data */
940: 934 000272E0 16 effffff956 lnf _sgl_value_1
941: 935 000272E6 # asm("nop");
942: 936 000272E6 10 nop
943: 937 000272E7 # asm("nop");
944: 938 000272E7 10 nop
945: 939 000272E8 # asm("mulf _sgl_value_2"); /* multipy by '1' (twice) */
946: 940 000272E8 e6 effffff94e mulf _sgl_value_2
947: 941 000272EE # asm("nop");
948: 942 000272EE 10 nop
949: 943 000272EF # asm("nop");
950: 944 000272EF 10 nop
951: 945 000272F0 # asm("mulf _sgl_value_2");
952: 946 000272F0 e6 effffff946 mulf _sgl_value_2
953: 947 000272F6 # asm("nop");
954: 948 000272F6 10 nop
955: 949 000272F7 # asm("nop");
956: 950 000272F7 10 nop
957: 951 000272F8 # asm("addf _sgl_value_3"); /* add a '0' */
958: 952 000272F8 c6 effffff93e addf _sgl_value_3
959: 953 000272FE # asm("nop");
960: 954 000272FE 10 nop
961: 955 000272FF # asm("nop");
962: 956 000272FF 10 nop
963: 957 00027300 # asm("mulf _sgl_value_2"); /* multipy by '1' again */
964: 958 00027300 e6 effffff936 mulf _sgl_value_2
965: 959 00027306 # asm("nop");
966: 960 00027306 10 nop
967: 961 00027307 # asm("nop");
968: 962 00027307 10 nop
969: 963 00027308 # asm("stf _sgl_st_acc"); /* store the result */
970: 964 00027308 26 effffff92e stf _sgl_st_acc
971: 965 0002730E # if( force_loop );
972: 966 0002730E 5d effffff928 tstl _force_loop
973: 967 00027314 31 00 jeql L319
974: 968 00027316 # asm("brb _pipe2_7_lp1");; /* loop on the error */
975: 969 00027316 L319:
976: 970 00027316 11 c8 brb _pipe2_7_lp1
977: 971 00027318 # /*
978: 972 00027318 # * verify the results
979: 973 00027318 # */
980: 974 00027318 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
981: 975 00027318 1d effffff91e effffff919 cmpl _sgl_st_acc,_sgl_expected
982: 976 00027323 31 42 jeql L320
983: 977 00027325 # {
984: 978 00027325 # errcnt++; /* bump the error count */
985: 979 00027325 6d effffff911 incl _errcnt
986: 980 0002732B # if ( prt_error )
987: 981 0002732B 5d effffff90b tstl _prt_error
988: 982 00027331 31 0d jeql L321
989: 983 00027333 # print_pipe2_er("Cache Data, 2 NO-OPS");
990: 984 00027333 .data 1
991: 985 00000d8f * L322:
992: 986 00000d8f * 436163686520446174612C203 .ascii "Cache Data, 2 NO-OPS\0"
993: 2204E4F2D4F505300
994: 987 00000da4 * .text
995: 988 00027333 dd 8f00000d8f pushl $L322
996: 989 00027339 fe 08 ef00000488 callf $8,_print_pipe2_er
997: 990 00027340 # if ( halt_flg ) /* halt on error? */
998: 991 00027340 L321:
999: 992 00027340 5d effffff8f6 tstl _halt_flg
1000: 993 00027346 31 0d jeql L323
1001: 994 00027348 # pipe2_er_hlt( subtest );
1002: 995 00027348 dd effffff8ee pushl _subtest
1003: 996 0002734E fe 08 ef0000057f callf $8,_pipe2_er_hlt
1004: 997 00027355 # if ( loop_on_err ) {
1005: 998 00027355 L323:
1006: 999 00027355 5d effffff8e1 tstl _loop_on_err
1007: 1000 0002735B 31 0a jeql L324
1008: 1001 0002735D # force_loop = TRUE; /* set the force loop flag */
1009: 1002 0002735D 0d 01 effffff8d8 movl $1,_force_loop
1010: 1003 00027364 # asm("brw _pipe2_7_lp1"); /* and loop */
1011: 1004 00027364 13 ff79 brw _pipe2_7_lp1
1012: 1005 00027367 # }
1013: 1006 00027367 # } /* end of compare error */
1014: 1007 00027367 L324:
1015: 1008 00027367 # } while( index++ < max_lnf_1_index );
1016: 1009 00027367 L320:
1017: 1010 00027367 L317:
1018: 1011 00027367 0d effffff8cf 50 movl _index,r0
1019: 1012 0002736E 6d effffff8c8 incl _index
1020: 1013 00027374 1d 50 effffff8c1 cmpl r0,_max_lnf_1_index
1021: 1014 0002737B 81 03 13 ff23 jlss L318
1022: 1015 00027380 L316:
1023: 1016 00027380 # } /* end of subtest 7 */
1024: 1017 00027380 40 ret#2
1025: 1018 00027381 .set L312,0x0
1026: 1019 00027381 L314:
1027: 1020 00027381 13 ff13 jbr L315
1028: 1021 00027384 .data
1029: 1022 00000d0c * .text
1030: 1023 00027384 .align 1
1031: 1024 00027384 .globl _pipe2_8
1032: 1025 00027384 _pipe2_8:
1033: 1026 00027384 0000 .word L325
1034: 1027 00027386 #
1035: 1028 00027386 #
1036: 1029 00027386 #
1037: 1030 00027386 #
1038: 1031 00027386 #
1039: 1032 00027386 #
1040: 1033 00027386 # /************************************************************************
1041: 1034 00027386 # *
1042: 1035 00027386 # * SUBTEST 8
1043: 1036 00027386 # * data in Cache, 3 NO-OPs
1044: 1037 00027386 # *
1045: 1038 00027386 # ************************************************************************/
1046: 1039 00027386 # pipe2_8()
1047: 1040 00027386 # {
1048: 1041 00027386 13 00ef jbr L327
1049: 1042 00027389 L328:
1050: 1043 00027389 # force_loop = FALSE; /* clear force_loop flag */
1051: 1044 00027389 4d effffff8ad clrl _force_loop
1052: 1045 0002738F # index = 0;
1053: 1046 0002738F 4d effffff8a7 clrl _index
1054: 1047 00027395 # do
1055: 1048 00027395 L331:
1056: 1049 00027395 # {
1057: 1050 00027395 # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
1058: 1051 00027395 0d effffff8a1 50 movl _index,r0
1059: 1052 0002739C 48 03 50 50 shll $3,r0,r0
1060: 1053 000273A0 0d e000000000 effffff891 movl _lnf_1_data(r0),_sgl_value_1
1061: 1054 000273AB # sgl_expected = lnf_1_data[index].exp; /* get expected results */
1062: 1055 000273AB 0d effffff88b 50 movl _index,r0
1063: 1056 000273B2 48 03 50 50 shll $3,r0,r0
1064: 1057 000273B6 0d e000000004 effffff87b movl _lnf_1_data+4(r0),_sgl_expected
1065: 1058 000273C1 # sgl_value_2 = 0x40800000; /* floating '1' */
1066: 1059 000273C1 0d 8f40800000 effffff870 movl $1082130432,_sgl_value_2
1067: 1060 000273CC # sgl_value_3 = 0; /* floating '0' */
1068: 1061 000273CC 4d effffff86a clrl _sgl_value_3
1069: 1062 000273D2 # /*
1070: 1063 000273D2 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1071: 1064 000273D2 # * The force loop flag is set after the first error.
1072: 1065 000273D2 # */
1073: 1066 000273D2 # asm("_pipe2_8_lp1:");
1074: 1067 000273D2 _pipe2_8_lp1:
1075: 1068 000273D2 # asm("lnf _sgl_value_1"); /* load (negate) the data */
1076: 1069 000273D2 16 effffff864 lnf _sgl_value_1
1077: 1070 000273D8 # asm("nop");
1078: 1071 000273D8 10 nop
1079: 1072 000273D9 # asm("nop");
1080: 1073 000273D9 10 nop
1081: 1074 000273DA # asm("nop");
1082: 1075 000273DA 10 nop
1083: 1076 000273DB # asm("mulf _sgl_value_2"); /* multipy by '1' (twice) */
1084: 1077 000273DB e6 effffff85b mulf _sgl_value_2
1085: 1078 000273E1 # asm("nop");
1086: 1079 000273E1 10 nop
1087: 1080 000273E2 # asm("nop");
1088: 1081 000273E2 10 nop
1089: 1082 000273E3 # asm("nop");
1090: 1083 000273E3 10 nop
1091: 1084 000273E4 # asm("mulf _sgl_value_2");
1092: 1085 000273E4 e6 effffff852 mulf _sgl_value_2
1093: 1086 000273EA # asm("nop");
1094: 1087 000273EA 10 nop
1095: 1088 000273EB # asm("nop");
1096: 1089 000273EB 10 nop
1097: 1090 000273EC # asm("nop");
1098: 1091 000273EC 10 nop
1099: 1092 000273ED # asm("addf _sgl_value_3"); /* add a '0' */
1100: 1093 000273ED c6 effffff849 addf _sgl_value_3
1101: 1094 000273F3 # asm("nop");
1102: 1095 000273F3 10 nop
1103: 1096 000273F4 # asm("nop");
1104: 1097 000273F4 10 nop
1105: 1098 000273F5 # asm("nop");
1106: 1099 000273F5 10 nop
1107: 1100 000273F6 # asm("mulf _sgl_value_2"); /* multipy by '1' again */
1108: 1101 000273F6 e6 effffff840 mulf _sgl_value_2
1109: 1102 000273FC # asm("nop");
1110: 1103 000273FC 10 nop
1111: 1104 000273FD # asm("nop");
1112: 1105 000273FD 10 nop
1113: 1106 000273FE # asm("nop");
1114: 1107 000273FE 10 nop
1115: 1108 000273FF # asm("stf _sgl_st_acc"); /* store the result */
1116: 1109 000273FF 26 effffff837 stf _sgl_st_acc
1117: 1110 00027405 # if( force_loop );
1118: 1111 00027405 5d effffff831 tstl _force_loop
1119: 1112 0002740B 31 00 jeql L332
1120: 1113 0002740D # asm("brb _pipe2_8_lp1");; /* loop on the error */
1121: 1114 0002740D L332:
1122: 1115 0002740D 11 c3 brb _pipe2_8_lp1
1123: 1116 0002740F # /*
1124: 1117 0002740F # * verify the results
1125: 1118 0002740F # */
1126: 1119 0002740F # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
1127: 1120 0002740F 1d effffff827 effffff822 cmpl _sgl_st_acc,_sgl_expected
1128: 1121 0002741A 31 42 jeql L333
1129: 1122 0002741C # {
1130: 1123 0002741C # errcnt++; /* bump the error count */
1131: 1124 0002741C 6d effffff81a incl _errcnt
1132: 1125 00027422 # if ( prt_error )
1133: 1126 00027422 5d effffff814 tstl _prt_error
1134: 1127 00027428 31 0d jeql L334
1135: 1128 0002742A # print_pipe2_er("Cache Data, 3 NO-OPS");
1136: 1129 0002742A .data 1
1137: 1130 00000da4 * L335:
1138: 1131 00000da4 * 436163686520446174612C203 .ascii "Cache Data, 3 NO-OPS\0"
1139: 3204E4F2D4F505300
1140: 1132 00000db9 * .text
1141: 1133 0002742A dd 8f00000da4 pushl $L335
1142: 1134 00027430 fe 08 ef00000391 callf $8,_print_pipe2_er
1143: 1135 00027437 # if ( halt_flg ) /* halt on error? */
1144: 1136 00027437 L334:
1145: 1137 00027437 5d effffff7ff tstl _halt_flg
1146: 1138 0002743D 31 0d jeql L336
1147: 1139 0002743F # pipe2_er_hlt( subtest );
1148: 1140 0002743F dd effffff7f7 pushl _subtest
1149: 1141 00027445 fe 08 ef00000488 callf $8,_pipe2_er_hlt
1150: 1142 0002744C # if ( loop_on_err ) {
1151: 1143 0002744C L336:
1152: 1144 0002744C 5d effffff7ea tstl _loop_on_err
1153: 1145 00027452 31 0a jeql L337
1154: 1146 00027454 # force_loop = TRUE; /* set the force loop flag */
1155: 1147 00027454 0d 01 effffff7e1 movl $1,_force_loop
1156: 1148 0002745B # asm("brw _pipe2_8_lp1"); /* and loop */
1157: 1149 0002745B 13 ff74 brw _pipe2_8_lp1
1158: 1150 0002745E # }
1159: 1151 0002745E # } /* end of compare error */
1160: 1152 0002745E L337:
1161: 1153 0002745E # } while( index++ < max_lnf_1_index );
1162: 1154 0002745E L333:
1163: 1155 0002745E L330:
1164: 1156 0002745E 0d effffff7d8 50 movl _index,r0
1165: 1157 00027465 6d effffff7d1 incl _index
1166: 1158 0002746B 1d 50 effffff7ca cmpl r0,_max_lnf_1_index
1167: 1159 00027472 81 03 13 ff1e jlss L331
1168: 1160 00027477 L329:
1169: 1161 00027477 # } /* end of subtest 8 */
1170: 1162 00027477 40 ret#2
1171: 1163 00027478 .set L325,0x0
1172: 1164 00027478 L327:
1173: 1165 00027478 13 ff0e jbr L328
1174: 1166 0002747B .data
1175: 1167 00000d0c * .text
1176: 1168 0002747B 00 .align 1
1177: 1169 0002747C .globl _pipe2_9
1178: 1170 0002747C _pipe2_9:
1179: 1171 0002747C 0000 .word L338
1180: 1172 0002747E #
1181: 1173 0002747E #
1182: 1174 0002747E #
1183: 1175 0002747E #
1184: 1176 0002747E #
1185: 1177 0002747E #
1186: 1178 0002747E # /*****************************************************************************
1187: 1179 0002747E # *
1188: 1180 0002747E # * SUBTEST 9
1189: 1181 0002747E # * data on the stack, no NO-OPs
1190: 1182 0002747E # *
1191: 1183 0002747E # *****************************************************************************/
1192: 1184 0002747E # pipe2_9()
1193: 1185 0002747E # {
1194: 1186 0002747E 13 0186 jbr L340
1195: 1187 00027481 L341:
1196: 1188 00027481 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1197: 1189 00027481 ed 6d effffff7b4 moval (r13),_pre_event_fp
1198: 1190 00027488 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1199: 1191 00027488 ed 6e effffff7ad moval (r14),_pre_event_sp
1200: 1192 0002748F # force_loop = FALSE; /* clear force_loop flag */
1201: 1193 0002748F 4d effffff7a7 clrl _force_loop
1202: 1194 00027495 # index = 0;
1203: 1195 00027495 4d effffff7a1 clrl _index
1204: 1196 0002749B # do
1205: 1197 0002749B L344:
1206: 1198 0002749B # {
1207: 1199 0002749B # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
1208: 1200 0002749B 0d effffff79b 50 movl _index,r0
1209: 1201 000274A2 48 03 50 50 shll $3,r0,r0
1210: 1202 000274A6 0d e000000000 effffff78b movl _lnf_1_data(r0),_sgl_value_1
1211: 1203 000274B1 # sgl_expected = lnf_1_data[index].exp; /* get expected results */
1212: 1204 000274B1 0d effffff785 50 movl _index,r0
1213: 1205 000274B8 48 03 50 50 shll $3,r0,r0
1214: 1206 000274BC 0d e000000004 effffff775 movl _lnf_1_data+4(r0),_sgl_expected
1215: 1207 000274C7 # sgl_value_2 = 0x40800000; /* floating '1' */
1216: 1208 000274C7 0d 8f40800000 effffff76a movl $1082130432,_sgl_value_2
1217: 1209 000274D2 # sgl_value_3 = 0; /* floating '0' */
1218: 1210 000274D2 4d effffff764 clrl _sgl_value_3
1219: 1211 000274D8 # asm("moval _pointer_data,_sgl_value_4");/* init / final SP value */
1220: 1212 000274D8 ed effffff75e effffff759 moval _pointer_data,_sgl_value_4
1221: 1213 000274E3 # /*
1222: 1214 000274E3 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1223: 1215 000274E3 # * The force loop flag is set after the first error.
1224: 1216 000274E3 # */
1225: 1217 000274E3 # asm("_pipe2_9_lp1:");
1226: 1218 000274E3 _pipe2_9_lp1:
1227: 1219 000274E3 # asm("moval _pointer_data,r14"); /* set the stack pointer */
1228: 1220 000274E3 ed effffff753 5e moval _pointer_data,r14
1229: 1221 000274EA # asm("movl _sgl_value_2,-(r14)"); /* push a '1' on the stack */
1230: 1222 000274EA 0d effffff74c 7e movl _sgl_value_2,-(r14)
1231: 1223 000274F1 # asm("movl _sgl_value_3,-(r14)"); /* push a '0' on the stack */
1232: 1224 000274F1 0d effffff745 7e movl _sgl_value_3,-(r14)
1233: 1225 000274F8 # asm("movl _sgl_value_2,-(r14)"); /* push 2 more '1's */
1234: 1226 000274F8 0d effffff73e 7e movl _sgl_value_2,-(r14)
1235: 1227 000274FF # asm("movl _sgl_value_2,-(r14)");
1236: 1228 000274FF 0d effffff737 7e movl _sgl_value_2,-(r14)
1237: 1229 00027506 # asm("movl _sgl_value_1,-(r14)"); /* push the operand */
1238: 1230 00027506 0d effffff730 7e movl _sgl_value_1,-(r14)
1239: 1231 0002750D # /*
1240: 1232 0002750D # * now pop the data off the stack
1241: 1233 0002750D # */
1242: 1234 0002750D # asm("lnf (r14)+"); /* load (negate) the data */
1243: 1235 0002750D 16 8e lnf (r14)+
1244: 1236 0002750F # asm("mulf (r14)+"); /* multiply by '1' (twice) */
1245: 1237 0002750F e6 8e mulf (r14)+
1246: 1238 00027511 # asm("mulf (r14)+");
1247: 1239 00027511 e6 8e mulf (r14)+
1248: 1240 00027513 # asm("addf (r14)+"); /* add a '0' */
1249: 1241 00027513 c6 8e addf (r14)+
1250: 1242 00027515 # asm("mulf (r14)+"); /* multiply by '1' again */
1251: 1243 00027515 e6 8e mulf (r14)+
1252: 1244 00027517 # asm("stf r5"); /* store the result */
1253: 1245 00027517 26 55 stf r5
1254: 1246 00027519 # if( force_loop );
1255: 1247 00027519 5d effffff71d tstl _force_loop
1256: 1248 0002751F 31 00 jeql L345
1257: 1249 00027521 # asm("brb _pipe2_9_lp1");; /* loop on the error */
1258: 1250 00027521 L345:
1259: 1251 00027521 11 c0 brb _pipe2_9_lp1
1260: 1252 00027523 # /*
1261: 1253 00027523 # * verify the results
1262: 1254 00027523 # */
1263: 1255 00027523 # asm("movl r5,_sgl_st_acc"); /* get the result */
1264: 1256 00027523 0d 55 effffff712 movl r5,_sgl_st_acc
1265: 1257 0002752A # asm("moval (r14),_sgl_value_5"); /* save the stack pointer */
1266: 1258 0002752A ed 6e effffff70b moval (r14),_sgl_value_5
1267: 1259 00027531 # if( (sgl_st_acc != sgl_expected) || /* verify the result... */
1268: 1260 00027531 # (sgl_value_5 != sgl_value_4) ) /* ... and the final SP */
1269: 1261 00027531 1d effffff705 effffff700 cmpl _sgl_st_acc,_sgl_expected
1270: 1262 0002753C 21 10 jneq L9999
1271: 1263 0002753E 1d effffff6f8 effffff6f3 cmpl _sgl_value_5,_sgl_value_4
1272: 1264 00027549 21 03 13 0091 jeql L346
1273: 1265 0002754E L9999:
1274: 1266 0002754E # {
1275: 1267 0002754E # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1276: 1268 0002754E 0d effffff6e8 5d movl _pre_event_fp,r13
1277: 1269 00027555 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1278: 1270 00027555 0d effffff6e1 5e movl _pre_event_sp,r14
1279: 1271 0002755C # errcnt++; /* bump the error count */
1280: 1272 0002755C 6d effffff6da incl _errcnt
1281: 1273 00027562 # if ( prt_error )
1282: 1274 00027562 5d effffff6d4 tstl _prt_error
1283: 1275 00027568 31 0d jeql L347
1284: 1276 0002756A # print_pipe2_er("POP Data from the STACK");
1285: 1277 0002756A .data 1
1286: 1278 00000db9 * L348:
1287: 1279 00000db9 * 504F5020446174612066726F6 .ascii "POP Data from the STACK\0"
1288: D2074686520535441434B00
1289: 1280 00000dd1 * .text
1290: 1281 0002756A dd 8f00000db9 pushl $L348
1291: 1282 00027570 fe 08 ef00000251 callf $8,_print_pipe2_er
1292: 1283 00027577 # writes("final Stack Pointer = ");
1293: 1284 00027577 L347:
1294: 1285 00027577 .data 1
1295: 1286 00000dd1 * L349:
1296: 1287 00000dd1 * 66696E616C20537461636B205 .ascii "final Stack Pointer = \0"
1297: 06F696E746572203D2000
1298: 1288 00000de8 * .text
1299: 1289 00027577 dd 8f00000dd1 pushl $L349
1300: 1290 0002757D fe 08 effffff6b8 callf $8,_writes
1301: 1291 00027584 # write32h( sgl_value_5 );
1302: 1292 00027584 dd effffff6b2 pushl _sgl_value_5
1303: 1293 0002758A fe 08 effffff6ab callf $8,_write32h
1304: 1294 00027591 # writes(", expected SP = ");
1305: 1295 00027591 .data 1
1306: 1296 00000de8 * L351:
1307: 1297 00000de8 * 2C20206578706563746564205 .ascii ", expected SP = \0"
1308: 350203D2000
1309: 1298 00000dfa * .text
1310: 1299 00027591 dd 8f00000de8 pushl $L351
1311: 1300 00027597 fe 08 effffff69e callf $8,_writes
1312: 1301 0002759E # write32h( sgl_value_4 );
1313: 1302 0002759E dd effffff698 pushl _sgl_value_4
1314: 1303 000275A4 fe 08 effffff691 callf $8,_write32h
1315: 1304 000275AB # writes(" \n");
1316: 1305 000275AB .data 1
1317: 1306 00000dfa * L352:
1318: 1307 00000dfa * 200A00 .ascii " \12\0"
1319: 1308 00000dfd * .text
1320: 1309 000275AB dd 8f00000dfa pushl $L352
1321: 1310 000275B1 fe 08 effffff684 callf $8,_writes
1322: 1311 000275B8 # if ( halt_flg ) /* halt on error? */
1323: 1312 000275B8 5d effffff67e tstl _halt_flg
1324: 1313 000275BE 31 0d jeql L353
1325: 1314 000275C0 # pipe2_er_hlt( subtest );
1326: 1315 000275C0 dd effffff676 pushl _subtest
1327: 1316 000275C6 fe 08 ef00000307 callf $8,_pipe2_er_hlt
1328: 1317 000275CD # if ( loop_on_err ) {
1329: 1318 000275CD L353:
1330: 1319 000275CD 5d effffff669 tstl _loop_on_err
1331: 1320 000275D3 31 0a jeql L354
1332: 1321 000275D5 # force_loop = TRUE; /* set the force loop flag */
1333: 1322 000275D5 0d 01 effffff660 movl $1,_force_loop
1334: 1323 000275DC # asm("brw _pipe2_9_lp1"); /* and loop */
1335: 1324 000275DC 13 ff04 brw _pipe2_9_lp1
1336: 1325 000275DF # }
1337: 1326 000275DF # } /* end of compare error */
1338: 1327 000275DF L354:
1339: 1328 000275DF # } while( index++ < max_lnf_1_index );
1340: 1329 000275DF L346:
1341: 1330 000275DF L343:
1342: 1331 000275DF 0d effffff657 50 movl _index,r0
1343: 1332 000275E6 6d effffff650 incl _index
1344: 1333 000275EC 1d 50 effffff649 cmpl r0,_max_lnf_1_index
1345: 1334 000275F3 81 03 13 fea3 jlss L344
1346: 1335 000275F8 L342:
1347: 1336 000275F8 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1348: 1337 000275F8 0d effffff63e 5d movl _pre_event_fp,r13
1349: 1338 000275FF # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1350: 1339 000275FF 0d effffff637 5e movl _pre_event_sp,r14
1351: 1340 00027606 # } /* end of subtest 9 */
1352: 1341 00027606 40 ret#2
1353: 1342 00027607 .set L338,0x0
1354: 1343 00027607 L340:
1355: 1344 00027607 13 fe77 jbr L341
1356: 1345 0002760A .data
1357: 1346 00000d0c * .text
1358: 1347 0002760A .align 1
1359: 1348 0002760A .globl _pipe2_10
1360: 1349 0002760A _pipe2_10:
1361: 1350 0002760A 0000 .word L355
1362: 1351 0002760C #
1363: 1352 0002760C #
1364: 1353 0002760C #
1365: 1354 0002760C #
1366: 1355 0002760C #
1367: 1356 0002760C #
1368: 1357 0002760C # /******************************************************************************
1369: 1358 0002760C # *
1370: 1359 0002760C # * SUBTEST 10
1371: 1360 0002760C # * get data via indexed FRAME pointer
1372: 1361 0002760C # *
1373: 1362 0002760C # * ADDR INDEX DATA
1374: 1363 0002760C # * pointer_data 4 <the STF result goes here>
1375: 1364 0002760C # * pointer_data-4 3 <operand data>
1376: 1365 0002760C # * pointer_data-16 0 point the frame pointer here
1377: 1366 0002760C # *
1378: 1367 0002760C # ******************************************************************************/
1379: 1368 0002760C # pipe2_10()
1380: 1369 0002760C # {
1381: 1370 0002760C 13 01b6 jbr L357
1382: 1371 0002760F L358:
1383: 1372 0002760F # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1384: 1373 0002760F ed 6d effffff626 moval (r13),_pre_event_fp
1385: 1374 00027616 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1386: 1375 00027616 ed 6e effffff61f moval (r14),_pre_event_sp
1387: 1376 0002761D # force_loop = FALSE; /* clear force_loop flag */
1388: 1377 0002761D 4d effffff619 clrl _force_loop
1389: 1378 00027623 # index = 0;
1390: 1379 00027623 4d effffff613 clrl _index
1391: 1380 00027629 # do
1392: 1381 00027629 L361:
1393: 1382 00027629 # {
1394: 1383 00027629 # sgl_value_1 = lnf_1_data[index].ld; /* get operand 1 */
1395: 1384 00027629 0d effffff60d 50 movl _index,r0
1396: 1385 00027630 48 03 50 50 shll $3,r0,r0
1397: 1386 00027634 0d e000000000 effffff5fd movl _lnf_1_data(r0),_sgl_value_1
1398: 1387 0002763F # sgl_expected = lnf_1_data[index].exp; /* get expected results */
1399: 1388 0002763F 0d effffff5f7 50 movl _index,r0
1400: 1389 00027646 48 03 50 50 shll $3,r0,r0
1401: 1390 0002764A 0d e000000004 effffff5e7 movl _lnf_1_data+4(r0),_sgl_expected
1402: 1391 00027655 # sgl_value_2 = 0x40800000; /* floating '1' */
1403: 1392 00027655 0d 8f40800000 effffff5dc movl $1082130432,_sgl_value_2
1404: 1393 00027660 # sgl_value_3 = 0; /* floating '0' */
1405: 1394 00027660 4d effffff5d6 clrl _sgl_value_3
1406: 1395 00027666 # asm("moval _pointer_data,_sgl_value_4");/* get store data's addr */
1407: 1396 00027666 ed effffff5d0 effffff5cb moval _pointer_data,_sgl_value_4
1408: 1397 00027671 # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1409: 1398 00027671 2c 04 effffff5c4 subl2 $4,_sgl_value_4
1410: 1399 00027678 # asm("movl _sgl_value_1,*_sgl_value_4"); /* set the operand data */
1411: 1400 00027678 0d effffff5be fffffff5b9 movl _sgl_value_1,*_sgl_value_4
1412: 1401 00027683 # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1413: 1402 00027683 2c 04 effffff5b2 subl2 $4,_sgl_value_4
1414: 1403 0002768A # asm("movl _sgl_value_2,*_sgl_value_4"); /* set the operand data */
1415: 1404 0002768A 0d effffff5ac fffffff5a7 movl _sgl_value_2,*_sgl_value_4
1416: 1405 00027695 # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1417: 1406 00027695 2c 04 effffff5a0 subl2 $4,_sgl_value_4
1418: 1407 0002769C # asm("movl _sgl_value_3,*_sgl_value_4"); /* set the operand data */
1419: 1408 0002769C 0d effffff59a fffffff595 movl _sgl_value_3,*_sgl_value_4
1420: 1409 000276A7 # sgl_value_4 -= 4; /* get FRAME PTR address */
1421: 1410 000276A7 2c 04 effffff58e subl2 $4,_sgl_value_4
1422: 1411 000276AE # /*
1423: 1412 000276AE # * If LOOP ON ERROR is set, this is the loop for this subtest.
1424: 1413 000276AE # * The force loop flag is set after the first error.
1425: 1414 000276AE # */
1426: 1415 000276AE # asm("_pipe2_10_lp1:");
1427: 1416 000276AE _pipe2_10_lp1:
1428: 1417 000276AE # asm("movl _sgl_value_4,r13"); /* set the FRAME POINTER */
1429: 1418 000276AE 0d effffff588 5d movl _sgl_value_4,r13
1430: 1419 000276B5 # asm("movl $1,r1"); /* r1 index = 1 longwords */
1431: 1420 000276B5 0d 01 51 movl $1,r1
1432: 1421 000276B8 # asm("movl $2,r2"); /* r2 index = 2 longwords */
1433: 1422 000276B8 0d 02 52 movl $2,r2
1434: 1423 000276BB # asm("movl $3,r3"); /* r3 index = 3 longwords */
1435: 1424 000276BB 0d 03 53 movl $3,r3
1436: 1425 000276BE # asm("movl $4,r4"); /* r4 index = 4 longwords */
1437: 1426 000276BE 0d 04 54 movl $4,r4
1438: 1427 000276C1 # asm("lnf (r13)[r3]"); /* load -indexed by r3 */
1439: 1428 000276C1 16 436d lnf (r13)[r3]
1440: 1429 000276C4 # asm("mulf (r13)[r2]"); /* multiply by '1' (twice) */
1441: 1430 000276C4 e6 426d mulf (r13)[r2]
1442: 1431 000276C7 # asm("mulf (r13)[r2]");
1443: 1432 000276C7 e6 426d mulf (r13)[r2]
1444: 1433 000276CA # asm("addf (r13)[r1]"); /* add a '0' to it */
1445: 1434 000276CA c6 416d addf (r13)[r1]
1446: 1435 000276CD # asm("mulf (r13)[r2]"); /* multiply by '1' again */
1447: 1436 000276CD e6 426d mulf (r13)[r2]
1448: 1437 000276D0 # asm("stf (r13)[r4]"); /* store -indexed by r4 */
1449: 1438 000276D0 26 446d stf (r13)[r4]
1450: 1439 000276D3 # if( force_loop );
1451: 1440 000276D3 5d effffff563 tstl _force_loop
1452: 1441 000276D9 31 00 jeql L362
1453: 1442 000276DB # asm("brb _pipe2_10_lp1");; /* loop on the error */
1454: 1443 000276DB L362:
1455: 1444 000276DB 11 d1 brb _pipe2_10_lp1
1456: 1445 000276DD # /*
1457: 1446 000276DD # * verify the results
1458: 1447 000276DD # */
1459: 1448 000276DD # sgl_st_acc = pointer_data; /* move the stored result */
1460: 1449 000276DD 0d effffff559 effffff554 movl _pointer_data,_sgl_st_acc
1461: 1450 000276E8 # asm("moval (r13),_sgl_value_5"); /* save the frame pointer */
1462: 1451 000276E8 ed 6d effffff54d moval (r13),_sgl_value_5
1463: 1452 000276EF # if( (sgl_st_acc != sgl_expected) || /* verify the result... */
1464: 1453 000276EF # (sgl_value_5 != sgl_value_4) ) /* ... and the final FP */
1465: 1454 000276EF 1d effffff547 effffff542 cmpl _sgl_st_acc,_sgl_expected
1466: 1455 000276FA 21 10 jneq L9998
1467: 1456 000276FC 1d effffff53a effffff535 cmpl _sgl_value_5,_sgl_value_4
1468: 1457 00027707 21 03 13 0091 jeql L363
1469: 1458 0002770C L9998:
1470: 1459 0002770C # {
1471: 1460 0002770C # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1472: 1461 0002770C 0d effffff52a 5d movl _pre_event_fp,r13
1473: 1462 00027713 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1474: 1463 00027713 0d effffff523 5e movl _pre_event_sp,r14
1475: 1464 0002771A # errcnt++; /* bump the error count */
1476: 1465 0002771A 6d effffff51c incl _errcnt
1477: 1466 00027720 # if ( prt_error )
1478: 1467 00027720 5d effffff516 tstl _prt_error
1479: 1468 00027726 31 0d jeql L364
1480: 1469 00027728 # print_pipe2_er("indexed FP addressing");
1481: 1470 00027728 .data 1
1482: 1471 00000dfd * L365:
1483: 1472 00000dfd * 696E646578656420465020616 .ascii "indexed FP addressing\0"
1484: 46472657373696E6700
1485: 1473 00000e13 * .text
1486: 1474 00027728 dd 8f00000dfd pushl $L365
1487: 1475 0002772E fe 08 ef00000093 callf $8,_print_pipe2_er
1488: 1476 00027735 # writes("final Frame Pointer = ");
1489: 1477 00027735 L364:
1490: 1478 00027735 .data 1
1491: 1479 00000e13 * L366:
1492: 1480 00000e13 * 66696E616C204672616D65205 .ascii "final Frame Pointer = \0"
1493: 06F696E746572203D2000
1494: 1481 00000e2a * .text
1495: 1482 00027735 dd 8f00000e13 pushl $L366
1496: 1483 0002773B fe 08 effffff4fa callf $8,_writes
1497: 1484 00027742 # writeh( sgl_value_5 );
1498: 1485 00027742 dd effffff4f4 pushl _sgl_value_5
1499: 1486 00027748 fe 08 effffff4ed callf $8,_writeh
1500: 1487 0002774F # writes(", expected FP = ");
1501: 1488 0002774F .data 1
1502: 1489 00000e2a * L368:
1503: 1490 00000e2a * 2C20206578706563746564204 .ascii ", expected FP = \0"
1504: 650203D2000
1505: 1491 00000e3c * .text
1506: 1492 0002774F dd 8f00000e2a pushl $L368
1507: 1493 00027755 fe 08 effffff4e0 callf $8,_writes
1508: 1494 0002775C # writeh( sgl_value_4 );
1509: 1495 0002775C dd effffff4da pushl _sgl_value_4
1510: 1496 00027762 fe 08 effffff4d3 callf $8,_writeh
1511: 1497 00027769 # writes(" \n");
1512: 1498 00027769 .data 1
1513: 1499 00000e3c * L369:
1514: 1500 00000e3c * 200A00 .ascii " \12\0"
1515: 1501 00000e3f * .text
1516: 1502 00027769 dd 8f00000e3c pushl $L369
1517: 1503 0002776F fe 08 effffff4c6 callf $8,_writes
1518: 1504 00027776 # if ( halt_flg ) /* halt on error? */
1519: 1505 00027776 5d effffff4c0 tstl _halt_flg
1520: 1506 0002777C 31 0d jeql L370
1521: 1507 0002777E # pipe2_er_hlt( subtest );
1522: 1508 0002777E dd effffff4b8 pushl _subtest
1523: 1509 00027784 fe 08 ef00000149 callf $8,_pipe2_er_hlt
1524: 1510 0002778B # if ( loop_on_err ) {
1525: 1511 0002778B L370:
1526: 1512 0002778B 5d effffff4ab tstl _loop_on_err
1527: 1513 00027791 31 0a jeql L371
1528: 1514 00027793 # force_loop = TRUE; /* set the force loop flag */
1529: 1515 00027793 0d 01 effffff4a2 movl $1,_force_loop
1530: 1516 0002779A # asm("brw _pipe2_10_lp1"); /* and loop */
1531: 1517 0002779A 13 ff11 brw _pipe2_10_lp1
1532: 1518 0002779D # }
1533: 1519 0002779D # } /* end of compare error */
1534: 1520 0002779D L371:
1535: 1521 0002779D # } while( index++ < max_lnf_1_index );
1536: 1522 0002779D L363:
1537: 1523 0002779D L360:
1538: 1524 0002779D 0d effffff499 50 movl _index,r0
1539: 1525 000277A4 6d effffff492 incl _index
1540: 1526 000277AA 1d 50 effffff48b cmpl r0,_max_lnf_1_index
1541: 1527 000277B1 81 03 13 fe73 jlss L361
1542: 1528 000277B6 L359:
1543: 1529 000277B6 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1544: 1530 000277B6 0d effffff480 5d movl _pre_event_fp,r13
1545: 1531 000277BD # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1546: 1532 000277BD 0d effffff479 5e movl _pre_event_sp,r14
1547: 1533 000277C4 # } /* end of subtest 10 */
1548: 1534 000277C4 40 ret#2
1549: 1535 000277C5 .set L355,0x0
1550: 1536 000277C5 L357:
1551: 1537 000277C5 13 fe47 jbr L358
1552: 1538 000277C8 .data
1553: 1539 00000d0c * .text
1554: 1540 000277C8 .align 1
1555: 1541 000277C8 .globl _print_pipe2_er
1556: 1542 000277C8 _print_pipe2_er:
1557: 1543 000277C8 0000 .word L372
1558: 1544 000277CA #
1559: 1545 000277CA #
1560: 1546 000277CA # /******************************************************************************
1561: 1547 000277CA # *
1562: 1548 000277CA # *
1563: 1549 000277CA # * print an error in the following form
1564: 1550 000277CA # *
1565: 1551 000277CA # * operand = xxxxxxxx, final Acc = xxxxxxxx, data index = dd
1566: 1552 000277CA # * expected Acc = xxxxxxxx
1567: 1553 000277CA # *
1568: 1554 000277CA # ******************************************************************************/
1569: 1555 000277CA # print_pipe2_er(msg)
1570: 1556 000277CA # char *msg;
1571: 1557 000277CA # {
1572: 1558 000277CA 13 0103 jbr L374
1573: 1559 000277CD L375:
1574: 1560 000277CD # writes(" \n"); /* start a new print line */
1575: 1561 000277CD .data 1
1576: 1562 00000e3f * L376:
1577: 1563 00000e3f * 200A00 .ascii " \12\0"
1578: 1564 00000e42 * .text
1579: 1565 000277CD dd 8f00000e3f pushl $L376
1580: 1566 000277D3 fe 08 effffff462 callf $8,_writes
1581: 1567 000277DA # writes("cycle: ");
1582: 1568 000277DA .data 1
1583: 1569 00000e42 * L377:
1584: 1570 00000e42 * 6379636C653A2000 .ascii "cycle: \0"
1585: 1571 00000e4a * .text
1586: 1572 000277DA dd 8f00000e42 pushl $L377
1587: 1573 000277E0 fe 08 effffff455 callf $8,_writes
1588: 1574 000277E7 # writed( cycle );
1589: 1575 000277E7 dd effffff44f pushl _cycle
1590: 1576 000277ED fe 08 effffff448 callf $8,_writed
1591: 1577 000277F4 # writes(" test ");
1592: 1578 000277F4 .data 1
1593: 1579 00000e4a * L379:
1594: 1580 00000e4a * 20746573742000 .ascii " test \0"
1595: 1581 00000e51 * .text
1596: 1582 000277F4 dd 8f00000e4a pushl $L379
1597: 1583 000277FA fe 08 effffff43b callf $8,_writes
1598: 1584 00027801 # writed( test_no );
1599: 1585 00027801 dd effffff435 pushl _test_no
1600: 1586 00027807 fe 08 effffff42e callf $8,_writed
1601: 1587 0002780E # writes(" (Pipe 2), subtest ");
1602: 1588 0002780E .data 1
1603: 1589 00000e51 * L380:
1604: 1590 00000e51 * 202028506970652032292C207 .ascii " (Pipe 2), subtest \0"
1605: 37562746573742000
1606: 1591 00000e66 * .text
1607: 1592 0002780E dd 8f00000e51 pushl $L380
1608: 1593 00027814 fe 08 effffff421 callf $8,_writes
1609: 1594 0002781B # writed( subtest );
1610: 1595 0002781B dd effffff41b pushl _subtest
1611: 1596 00027821 fe 08 effffff414 callf $8,_writed
1612: 1597 00027828 # writes(" error - ");
1613: 1598 00027828 .data 1
1614: 1599 00000e66 * L381:
1615: 1600 00000e66 * 206572726F72202D2000 .ascii " error - \0"
1616: 1601 00000e70 * .text
1617: 1602 00027828 dd 8f00000e66 pushl $L381
1618: 1603 0002782E fe 08 effffff407 callf $8,_writes
1619: 1604 00027835 # writes( msg );
1620: 1605 00027835 dd ad04 pushl 4(fp)
1621: 1606 00027838 fe 08 effffff3fd callf $8,_writes
1622: 1607 0002783F # writec('\n');
1623: 1608 0002783F dd 0a pushl $10
1624: 1609 00027841 fe 08 effffff3f4 callf $8,_writec
1625: 1610 00027848 # writes(" LNF (op1), MULF(1.0), MULF(1.0), ADD(0.0), MULF(1.0), STF\n");
1626: 1611 00027848 .data 1
1627: 1612 00000e70 * L383:
1628: 1613 00000e70 * 204C4E4620286F7031292C204 .ascii " LNF (op1), MULF(1.0), MULF(1.0), ADD(0.0), MULF(1.0), STF\12\0"
1629: D554C4628312E30292C204D55
1630: 4C4628312E30292C204144442
1631: 8302E30292C204D554C462831
1632: 2E30292C205354460A00
1633: 1614 00000eac * .text
1634: 1615 00027848 dd 8f00000e70 pushl $L383
1635: 1616 0002784E fe 08 effffff3e7 callf $8,_writes
1636: 1617 00027855 # writes("operand = ");
1637: 1618 00027855 .data 1
1638: 1619 00000eac * L384:
1639: 1620 00000eac * 6F706572616E64203D2000 .ascii "operand = \0"
1640: 1621 00000eb7 * .text
1641: 1622 00027855 dd 8f00000eac pushl $L384
1642: 1623 0002785B fe 08 effffff3da callf $8,_writes
1643: 1624 00027862 # write32h( sgl_value_1 );
1644: 1625 00027862 dd effffff3d4 pushl _sgl_value_1
1645: 1626 00027868 fe 08 effffff3cd callf $8,_write32h
1646: 1627 0002786F # writes(", final Acc = ");
1647: 1628 0002786F .data 1
1648: 1629 00000eb7 * L385:
1649: 1630 00000eb7 * 2C20202066696E616C2041636 .ascii ", final Acc = \0"
1650: 3203D2000
1651: 1631 00000ec8 * .text
1652: 1632 0002786F dd 8f00000eb7 pushl $L385
1653: 1633 00027875 fe 08 effffff3c0 callf $8,_writes
1654: 1634 0002787C # write32h( sgl_st_acc );
1655: 1635 0002787C dd effffff3ba pushl _sgl_st_acc
1656: 1636 00027882 fe 08 effffff3b3 callf $8,_write32h
1657: 1637 00027889 # writes(", data index = ");
1658: 1638 00027889 .data 1
1659: 1639 00000ec8 * L386:
1660: 1640 00000ec8 * 2C2020206461746120696E646 .ascii ", data index = \0"
1661: 578203D2000
1662: 1641 00000eda * .text
1663: 1642 00027889 dd 8f00000ec8 pushl $L386
1664: 1643 0002788F fe 08 effffff3a6 callf $8,_writes
1665: 1644 00027896 # writed( index );
1666: 1645 00027896 dd effffff3a0 pushl _index
1667: 1646 0002789C fe 08 effffff399 callf $8,_writed
1668: 1647 000278A3 # writec('\n');
1669: 1648 000278A3 dd 0a pushl $10
1670: 1649 000278A5 fe 08 effffff390 callf $8,_writec
1671: 1650 000278AC # writes(" expected Acc = ");
1672: 1651 000278AC .data 1
1673: 1652 00000eda * L387:
1674: 1653 00000eda * 2020202020202020202020202 .ascii " expected Acc = \0"
1675: 0202020202020657870656374
1676: 656420416363203D2000
1677: 1654 00000efd * .text
1678: 1655 000278AC dd 8f00000eda pushl $L387
1679: 1656 000278B2 fe 08 effffff383 callf $8,_writes
1680: 1657 000278B9 # write32h( sgl_expected );
1681: 1658 000278B9 dd effffff37d pushl _sgl_expected
1682: 1659 000278BF fe 08 effffff376 callf $8,_write32h
1683: 1660 000278C6 # writec('\n');
1684: 1661 000278C6 dd 0a pushl $10
1685: 1662 000278C8 fe 08 effffff36d callf $8,_writec
1686: 1663 000278CF # }
1687: 1664 000278CF 40 ret#2
1688: 1665 000278D0 .set L372,0x0
1689: 1666 000278D0 L374:
1690: 1667 000278D0 13 fefa jbr L375
1691: 1668 000278D3 .data
1692: 1669 00000d0c * .text
1693: 1670 000278D3 00 .align 1
1694: 1671 000278D4 .globl _pipe2_er_hlt
1695: 1672 000278D4 _pipe2_er_hlt:
1696: 1673 000278D4 0000 .word L388
1697: 1674 000278D6 #
1698: 1675 000278D6 #
1699: 1676 000278D6 #
1700: 1677 000278D6 #
1701: 1678 000278D6 #
1702: 1679 000278D6 # /******************************************************************************
1703: 1680 000278D6 # *
1704: 1681 000278D6 # * HALT ON ERROR ROUTINE
1705: 1682 000278D6 # *
1706: 1683 000278D6 # * halt with the necessary information saved in the registers
1707: 1684 000278D6 # *
1708: 1685 000278D6 # ******************************************************************************/
1709: 1686 000278D6 # pipe2_er_hlt( subtest )
1710: 1687 000278D6 # int subtest;
1711: 1688 000278D6 # {
1712: 1689 000278D6 11 6e jbr L390
1713: 1690 000278D8 L391:
1714: 1691 000278D8 # asm("movl _test_no,r0"); /* r0 = test number */
1715: 1692 000278D8 0d effffff35e 50 movl _test_no,r0
1716: 1693 000278DF # asm("movl _subtest,r1"); /* r1 = subtest number */
1717: 1694 000278DF 0d effffff357 51 movl _subtest,r1
1718: 1695 000278E6 # asm("movl $1,r2"); /* r2 = error code */
1719: 1696 000278E6 0d 01 52 movl $1,r2
1720: 1697 000278E9 # asm("movl _cycle,r3"); /* r3 = cycle count */
1721: 1698 000278E9 0d effffff34d 53 movl _cycle,r3
1722: 1699 000278F0 # asm("movl _sgl_value_1,r4"); /* r4 = sgl operand */
1723: 1700 000278F0 0d effffff346 54 movl _sgl_value_1,r4
1724: 1701 000278F7 # asm("movl _sgl_st_acc,r5"); /* r5 = sgl stored */
1725: 1702 000278F7 0d effffff33f 55 movl _sgl_st_acc,r5
1726: 1703 000278FE # asm("movl _sgl_expected,r6"); /* r6 = sgl expected */
1727: 1704 000278FE 0d effffff338 56 movl _sgl_expected,r6
1728: 1705 00027905 # asm("movl _index,r7"); /* r7 = data index */
1729: 1706 00027905 0d effffff331 57 movl _index,r7
1730: 1707 0002790C # asm("movl _sgl_value_2,r8"); /* r8 = floating one */
1731: 1708 0002790C 0d effffff32a 58 movl _sgl_value_2,r8
1732: 1709 00027913 # asm("movl _sgl_value_3,r9"); /* r9 = floating zero */
1733: 1710 00027913 0d effffff323 59 movl _sgl_value_3,r9
1734: 1711 0002791A # if( subtest == 9 ) {
1735: 1712 0002791A 1d ad04 09 cmpl 4(fp),$9
1736: 1713 0002791E 21 10 jneq L392
1737: 1714 00027920 # asm("movl _sgl_value_5,r10"); /* r10= final SP value */
1738: 1715 00027920 0d effffff316 5a movl _sgl_value_5,r10
1739: 1716 00027927 # asm("movl _sgl_value_4,r11"); /* r11= expected SP value */
1740: 1717 00027927 0d effffff30f 5b movl _sgl_value_4,r11
1741: 1718 0002792E # } else
1742: 1719 0002792E 11 14 jbr L393
1743: 1720 00027930 L392:
1744: 1721 00027930 # if( subtest == 10 ) {
1745: 1722 00027930 1d ad04 0a cmpl 4(fp),$10
1746: 1723 00027934 21 0e jneq L394
1747: 1724 00027936 # asm("movl _sgl_value_5,r10"); /* r10= final FP value */
1748: 1725 00027936 0d effffff300 5a movl _sgl_value_5,r10
1749: 1726 0002793D # asm("movl _sgl_value_4,r11"); /* r11= expected FP value */
1750: 1727 0002793D 0d effffff2f9 5b movl _sgl_value_4,r11
1751: 1728 00027944 # };
1752: 1729 00027944 L394:
1753: 1730 00027944 L393:
1754: 1731 00027944 # asm(".globl _pipe2_1_hlt");
1755: 1732 00027944 .globl _pipe2_1_hlt
1756: 1733 00027944 # asm("_pipe2_1_hlt:"); /* PC after the halt */
1757: 1734 00027944 _pipe2_1_hlt:
1758: 1735 00027944 # asm("halt"); /* HALT ... */
1759: 1736 00027944 00 halt
1760: 1737 00027945 # } /* end of halt on error */
1761: 1738 00027945 40 ret#2
1762: 1739 00027946 .set L388,0x0
1763: 1740 00027946 L390:
1764: 1741 00027946 11 90 jbr L391
1765: 1742 00000d0c * .data
1766: 1742 00000d0c * .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.