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