|
|
Power 6/32 Unix version 1.21
1 00000000 LL0:
2 00000000 .data
3 000005c8 * .text
4 00000000 .align 1
5 00000000 .globl _pipe7
6 00000000 _pipe7:
7 000116F4 0000 .word L381
8 000116F6 #
9 000116F6 # #include "evt_defs.h"
10 000116F6 # #define MAX_POS 0x7fffffff;
11 000116F6 #
12 000116F6 # /*
13 000116F6 # *********************************************************************
14 000116F6 # * FPP PIPELINED EVENTS TEST #7
15 000116F6 # *
16 000116F6 # * This test will execute the following code: "LDF DIVF MULL3 NEGF"
17 000116F6 # * with an integer overflow fault on the MULL3. We will make sure that:
18 000116F6 # * 1. The fault is detected,
19 000116F6 # * 2. the floating divide operation completes,
20 000116F6 # * 3. and that the negate doesn't complete
21 000116F6 # *********************************************************************
22 000116F6 # */
23 000116F6 # pipe7()
24 000116F6 # {
25 000116F6 13 0166 jbr L383
26 000116F9 L384:
27 000116F9 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
28 000116F9 ed 6d effffffff4 moval (r13),_pre_event_fp
29 00011700 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
30 00011700 ed 6e efffffffed moval (r14),_pre_event_sp
31 00011707 # precision = SGL;
32 00011707 0d 01 efffffffe6 movl $1,_precision
33 0001170E # test_event = ARITH_CODE; /* expect an arithmetic fault */
34 0001170E 0d 34 efffffffdf movl $52,_test_event
35 00011715 # exp_code = INT_OVFL_CODE; /* -specificly int overflow */
36 00011715 0d 01 efffffffd8 movl $1,_exp_code
37 0001171C # exp_event = FALSE; /* ... but not yet */
38 0001171C 4d efffffffd2 clrl _exp_event
39 00011722 # asm("movab _pipe7_ret,_event_return"); /* post event addr */
40 00011722 e9 ef000000df efffffffc7 movab _pipe7_ret,_event_return
41 0001172D # for( index = 0; index < max_pipe7_index; index++ )
42 0001172D 4d efffffffc1 clrl _index
43 00011733 L387:
44 00011733 1d efffffffbb efffffffb6 cmpl _index,_max_pipe7_index
45 0001173E 91 03 13 011b jgeq L386
46 00011743 # {
47 00011743 # dbl_ld_acc = pipe7_data[index].op_1; /* get the data */
48 00011743 5c 18 efffffffaa 50 mull3 $24,_index,r0
49 0001174B 0c 8f00000000 50 addl2 $_pipe7_data,r0
50 00011752 0d a004 efffffff9e movl 4(r0),_dbl_ld_acc+4
51 0001175A 0d 60 efffffff93 movl (r0),_dbl_ld_acc
52 00011761 # dbl_value_1 = pipe7_data[index].op_2;
53 00011761 5c 18 efffffff8c 50 mull3 $24,_index,r0
54 00011769 0c 8f00000008 50 addl2 $_pipe7_data+8,r0
55 00011770 0d a004 efffffff80 movl 4(r0),_dbl_value_1+4
56 00011778 0d 60 efffffff75 movl (r0),_dbl_value_1
57 0001177F # dbl_expected = pipe7_data[index].exp;
58 0001177F 5c 18 efffffff6e 50 mull3 $24,_index,r0
59 00011787 0c 8f00000010 50 addl2 $_pipe7_data+16,r0
60 0001178E 0d a004 efffffff62 movl 4(r0),_dbl_expected+4
61 00011796 0d 60 efffffff57 movl (r0),_dbl_expected
62 0001179D # sgl_value_1 = 0x12345; /* get overflow data */
63 0001179D 0d 8f00012345 efffffff4c movl $74565,_sgl_value_1
64 000117A8 # sgl_value_2 = MAX_POS;
65 000117A8 0d 8f7fffffff efffffff41 movl $2147483647,_sgl_value_2
66 000117B3 # asm("bispsw $0x60"); /* enable ovfl,undfl */
67 000117B3 8b 8860 bispsw $0x60
68 000117B6 # asm(".globl _pipe7_lp1");
69 000117B6 .globl _pipe7_lp1
70 000117B6 # asm("_pipe7_lp1:");
71 000117B6 _pipe7_lp1:
72 000117B6 # asm("ldf _dbl_ld_acc"); /* load the Acc. */
73 000117B6 06 efffffff38 ldf _dbl_ld_acc
74 000117BC # exp_event = test_event; /* expect event soon */
75 000117BC 0d efffffff32 efffffff2d movl _test_event,_exp_event
76 000117C7 # asm("divf _dbl_value_1"); /* divide by op.#2 */
77 000117C7 f6 efffffff27 divf _dbl_value_1
78 000117CD # asm("mull3 _sgl_value_1,_sgl_value_2,_sgl_value_3");
79 000117CD 5c efffffff21 efffffff1c mull3 _sgl_value_1,_sgl_value_2,_sgl_value_3
efffffff17
80 000117DD # asm("negf");
81 000117DD b6 negf
82 000117DE # /*
83 000117DE # * If we got to here then there was no event
84 000117DE # */
85 000117DE # if( force_loop )
86 000117DE 5d efffffff10 tstl _force_loop
87 000117E4 31 03 jeql L388
88 000117E6 # asm("brw _pipe7_lp1");; /* loop on the error */
Assemb00028EB4 # asm("brw _pipe7_lp1");; /* loop on the error */
"pipe700028EB4 89: WARNING: brw: destination label is external
89 000117E6 13 ffcd brw _pipe7_lp1
90 000117E9 L388:
91 000117E9 # exp_event = FALSE; /* reset event expected flag */
92 000117E9 4d efffffff05 clrl _exp_event
93 000117EF # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */
94 000117EF 0d effffffeff 5d movl _pre_event_fp,fp
95 000117F6 # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */
96 000117F6 0d effffffef8 5e movl _pre_event_sp,sp
97 000117FD # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */
98 000117FD 9b 8860 bicpsw $0x60
99 00011800 # no_pipe7_evt();; /* report the error */
100 00011800 fe 04 ef0000005b callf $4,_no_pipe7_evt
101 00011807 # /*
102 00011807 # * Come here after the event
103 00011807 # */
104 00011807 # asm(".globl _pipe7_ret");
105 00011807 .globl _pipe7_ret
106 00011807 # asm("_pipe7_ret:");
107 00011807 _pipe7_ret:
108 00011807 # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */
109 00011807 0d effffffee7 5d movl _pre_event_fp,fp
110 0001180E # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */
111 0001180E 0d effffffee0 5e movl _pre_event_sp,sp
112 00011815 # if( force_loop )
113 00011815 5d effffffed9 tstl _force_loop
114 0001181B 31 03 jeql L390
115 0001181D # asm("brw _pipe7_lp1");; /* loop on the error */
"pipe700028EB4 116: WARNING: brw: destination label is external
116 0001181D 13 ff96 brw _pipe7_lp1
117 00011820 L390:
118 00011820 # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */
119 00011820 9b 8860 bicpsw $0x60
120 00011823 # if( post_evt_acc.m == (dbl_expected.m ^ 0x80000000) )
121 00011823 dc 8f80000000 effffffec6 xorl3 $-2147483648,_dbl_expected,r0
50
122 0001182F 1d effffffebf 50 cmpl _post_evt_acc,r0
123 00011836 21 09 jneq L391
124 00011838 # pipe7_queue_er(); /* fpp queue not cleared */
125 00011838 fe 04 ef00000215 callf $4,_pipe7_queue_er
126 0001183F # else if( post_evt_acc.m != dbl_expected.m )
127 0001183F 11 14 jbr L393
128 00011841 L391:
129 00011841 1d effffffead effffffea8 cmpl _post_evt_acc,_dbl_expected
130 0001184C 31 07 jeql L394
131 0001184E # bad_pipe7_result(); /* incorrect result error */
132 0001184E fe 04 ef000000e5 callf $4,_bad_pipe7_result
133 00011855 # }
134 00011855 L394:
135 00011855 L393:
136 00011855 L385:
137 00011855 6d effffffe99 incl _index
138 0001185B 13 fed5 jbr L387
139 0001185E L386:
140 0001185E # }
141 0001185E 40 ret#2
142 0001185F .set L381,0x0
143 0001185F L383:
144 0001185F 13 fe97 jbr L384
145 00011862 .data
146 000005c8 * .text
147 00011862 .align 1
148 00011862 .globl _no_pipe7_evt
149 00011862 _no_pipe7_evt:
150 00011862 0000 .word L396
151 00011864 #
152 00011864 #
153 00011864 #
154 00011864 # /****************************************************************************
155 00011864 # * Report an "EVENT NOT DETECTED" error
156 00011864 # *
157 00011864 # * Cycle: xx. EVT test xx. subtest xx. no integer overflow fault. index = xx
158 00011864 # * inst = LDF op1, DIVF op2, MULL3 op3,op4,op5, NEGF (int. overflow on MULL3)
159 00011864 # * op1 = xxxxxxxx, op2 = xxxxxxxx
160 00011864 # * op3 = xxxxxxxx, op4 = xxxxxxxx, op5 = xxxxxxxx
161 00011864 # ****************************************************************************/
162 00011864 # no_pipe7_evt()
163 00011864 # {
164 00011864 13 00d0 jbr L398
165 00011867 L399:
166 00011867 # errcnt++; /* bump the error count */
167 00011867 6d effffffe87 incl _errcnt
168 0001186D # if ( prt_error )
169 0001186D 5d effffffe81 tstl _prt_error
170 00011873 21 03 13 0098 jeql L400
171 00011878 # {
172 00011878 # print_pipe7_er( ". no integer overflow fault.");
173 00011878 .data 1
174 000005c8 * L402:
175 000005c8 * 2E206E6F20696E74656765722 .ascii ". no integer overflow fault.\0"
06F766572666C6F7720666175
6C742E00
176 000005e5 * .text
177 00011878 dd 8f000005c8 pushl $L402
178 0001187E fe 08 ef000002e9 callf $8,_print_pipe7_er
179 00011885 # writes("op1 = ");
180 00011885 .data 1
181 000005e5 * L404:
182 000005e5 * 6F7031203D2000 .ascii "op1 = \0"
183 000005ec * .text
184 00011885 dd 8f000005e5 pushl $L404
185 0001188B fe 08 effffffe62 callf $8,_writes
186 00011892 # write32h( dbl_ld_acc.m );
187 00011892 dd effffffe5c pushl _dbl_ld_acc
188 00011898 fe 08 effffffe55 callf $8,_write32h
189 0001189F # writes(", op2 = ");
190 0001189F .data 1
191 000005ec * L406:
192 000005ec * 2C20206F7032203D2000 .ascii ", op2 = \0"
193 000005f6 * .text
194 0001189F dd 8f000005ec pushl $L406
195 000118A5 fe 08 effffffe48 callf $8,_writes
196 000118AC # write32h( dbl_value_1.m );
197 000118AC dd effffffe42 pushl _dbl_value_1
198 000118B2 fe 08 effffffe3b callf $8,_write32h
199 000118B9 # writes("\nop3 = ");
200 000118B9 .data 1
201 000005f6 * L407:
202 000005f6 * 0A6F7033203D2000 .ascii "\12op3 = \0"
203 000005fe * .text
204 000118B9 dd 8f000005f6 pushl $L407
205 000118BF fe 08 effffffe2e callf $8,_writes
206 000118C6 # write32h( sgl_value_1 );
207 000118C6 dd effffffe28 pushl _sgl_value_1
208 000118CC fe 08 effffffe21 callf $8,_write32h
209 000118D3 # writes(", op4 = ");
210 000118D3 .data 1
211 000005fe * L408:
212 000005fe * 2C20206F7034203D2000 .ascii ", op4 = \0"
213 00000608 * .text
214 000118D3 dd 8f000005fe pushl $L408
215 000118D9 fe 08 effffffe14 callf $8,_writes
216 000118E0 # write32h( sgl_value_2 );
217 000118E0 dd effffffe0e pushl _sgl_value_2
218 000118E6 fe 08 effffffe07 callf $8,_write32h
219 000118ED # writes(", op5 = ");
220 000118ED .data 1
221 00000608 * L409:
222 00000608 * 2C20206F7035203D2000 .ascii ", op5 = \0"
223 00000612 * .text
224 000118ED dd 8f00000608 pushl $L409
225 000118F3 fe 08 effffffdfa callf $8,_writes
226 000118FA # write32h( sgl_value_3 );
227 000118FA dd effffffdf4 pushl _sgl_value_3
228 00011900 fe 08 effffffded callf $8,_write32h
229 00011907 # writec('\n');
230 00011907 dd 0a pushl $10
231 00011909 fe 08 effffffde4 callf $8,_writec
232 00011910 # }
233 00011910 # if ( halt_flg ) /* halt on error? */
234 00011910 L400:
235 00011910 5d effffffdde tstl _halt_flg
236 00011916 31 09 jeql L411
237 00011918 # pipe7_halt( 1 );
238 00011918 dd 01 pushl $1
239 0001191A fe 08 ef000002f9 callf $8,_pipe7_halt
240 00011921 # if ( loop_on_err )
241 00011921 L411:
242 00011921 5d effffffdcd tstl _loop_on_err
243 00011927 31 0d jeql L413
244 00011929 # {
245 00011929 # force_loop = TRUE; /* set the force loop flag */
246 00011929 0d 01 effffffdc4 movl $1,_force_loop
247 00011930 # asm("jmp _pipe7_lp1"); /* and loop */
248 00011930 71 effffffe80 jmp _pipe7_lp1
249 00011936 # };
250 00011936 L413:
251 00011936 # }
252 00011936 40 ret#2
253 00011937 .set L396,0x0
254 00011937 L398:
255 00011937 13 ff2d jbr L399
256 0001193A .data
257 000005c8 * .text
258 0001193A .align 1
259 0001193A .globl _bad_pipe7_result
260 0001193A _bad_pipe7_result:
261 0001193A 0000 .word L414
262 0001193C #
263 0001193C #
264 0001193C #
265 0001193C #
266 0001193C # /****************************************************************************
267 0001193C # * Report an "BAD ACCUMULATOR AFTER THE EVENT" error
268 0001193C # *
269 0001193C # * Cycle: xx. EVT test xx. subtest xx. Bad final Accumulator. index = xx
270 0001193C # * inst = LDF op1, DIVF op2, MULL3 op3,op4,op5, NEGF (int. overflow on MULL3)
271 0001193C # * The NEGF should not have been executed.
272 0001193C # * op1 = xxxxxxxx, final Acc. = xxxxxxxx, op3 = xxxxxxxx
273 0001193C # * op2 = xxxxxxxx, expected = xxxxxxxx, op4 = xxxxxxxx, op5 = xxxxxxxx
274 0001193C # ****************************************************************************/
275 0001193C # bad_pipe7_result()
276 0001193C # {
277 0001193C 13 0111 jbr L416
278 0001193F L417:
279 0001193F # errcnt++; /* bump the error count */
280 0001193F 6d effffffdaf incl _errcnt
281 00011945 # if ( prt_error )
282 00011945 5d effffffda9 tstl _prt_error
283 0001194B 21 03 13 00d9 jeql L418
284 00011950 # {
285 00011950 # print_pipe7_er(". Bad final Accumulator.");
286 00011950 .data 1
287 00000612 * L419:
288 00000612 * 2E204261642066696E616C204 .ascii ". Bad final Accumulator.\0"
16363756D756C61746F722E00
289 0000062b * .text
290 00011950 dd 8f00000612 pushl $L419
291 00011956 fe 08 ef00000211 callf $8,_print_pipe7_er
292 0001195D # writes("The NEGF should not have been executed.\n");
293 0001195D .data 1
294 0000062b * L420:
295 0000062b * 546865204E4547462073686F7 .ascii "The NEGF should not have been executed.\12\0"
56C64206E6F74206861766520
6265656E20657865637574656
42E0A00
296 00000654 * .text
297 0001195D dd 8f0000062b pushl $L420
298 00011963 fe 08 effffffd8a callf $8,_writes
299 0001196A # writes("op1 = ");
300 0001196A .data 1
301 00000654 * L421:
302 00000654 * 6F7031203D2000 .ascii "op1 = \0"
303 0000065b * .text
304 0001196A dd 8f00000654 pushl $L421
305 00011970 fe 08 effffffd7d callf $8,_writes
306 00011977 # write32h( dbl_value_1.m );
307 00011977 dd effffffd77 pushl _dbl_value_1
308 0001197D fe 08 effffffd70 callf $8,_write32h
309 00011984 # writes(", final Acc. = ");
310 00011984 .data 1
311 0000065b * L422:
312 0000065b * 2C202066696E616C204163632 .ascii ", final Acc. = \0"
E203D2000
313 0000066c * .text
314 00011984 dd 8f0000065b pushl $L422
315 0001198A fe 08 effffffd63 callf $8,_writes
316 00011991 # write32h( post_evt_acc.m );
317 00011991 dd effffffd5d pushl _post_evt_acc
318 00011997 fe 08 effffffd56 callf $8,_write32h
319 0001199E # writes(", op3 = ");
320 0001199E .data 1
321 0000066c * L423:
322 0000066c * 2C20206F7033203D2000 .ascii ", op3 = \0"
323 00000676 * .text
324 0001199E dd 8f0000066c pushl $L423
325 000119A4 fe 08 effffffd49 callf $8,_writes
326 000119AB # write32h( sgl_value_1 );
327 000119AB dd effffffd43 pushl _sgl_value_1
328 000119B1 fe 08 effffffd3c callf $8,_write32h
329 000119B8 # writes("\nop2 = ");
330 000119B8 .data 1
331 00000676 * L424:
332 00000676 * 0A6F7032203D2000 .ascii "\12op2 = \0"
333 0000067e * .text
334 000119B8 dd 8f00000676 pushl $L424
335 000119BE fe 08 effffffd2f callf $8,_writes
336 000119C5 # write32h( dbl_value_2.m );
337 000119C5 dd effffffd29 pushl _dbl_value_2
338 000119CB fe 08 effffffd22 callf $8,_write32h
339 000119D2 # writes(", expected = ");
340 000119D2 .data 1
341 0000067e * L425:
342 0000067e * 2C20202020657870656374656 .ascii ", expected = \0"
4203D2000
343 0000068f * .text
344 000119D2 dd 8f0000067e pushl $L425
345 000119D8 fe 08 effffffd15 callf $8,_writes
346 000119DF # write32h( dbl_expected.m );
347 000119DF dd effffffd0f pushl _dbl_expected
348 000119E5 fe 08 effffffd08 callf $8,_write32h
349 000119EC # writes(", op4 = ");
350 000119EC .data 1
351 0000068f * L426:
352 0000068f * 2C20206F7034203D2000 .ascii ", op4 = \0"
353 00000699 * .text
354 000119EC dd 8f0000068f pushl $L426
355 000119F2 fe 08 effffffcfb callf $8,_writes
356 000119F9 # write32h( sgl_value_2 );
357 000119F9 dd effffffcf5 pushl _sgl_value_2
358 000119FF fe 08 effffffcee callf $8,_write32h
359 00011A06 # writes(", op5 = ");
360 00011A06 .data 1
361 00000699 * L427:
362 00000699 * 2C20206F7035203D2000 .ascii ", op5 = \0"
363 000006a3 * .text
364 00011A06 dd 8f00000699 pushl $L427
365 00011A0C fe 08 effffffce1 callf $8,_writes
366 00011A13 # write32h( sgl_value_3 );
367 00011A13 dd effffffcdb pushl _sgl_value_3
368 00011A19 fe 08 effffffcd4 callf $8,_write32h
369 00011A20 # writec('\n');
370 00011A20 dd 0a pushl $10
371 00011A22 fe 08 effffffccb callf $8,_writec
372 00011A29 # }
373 00011A29 # if ( halt_flg ) /* halt on error? */
374 00011A29 L418:
375 00011A29 5d effffffcc5 tstl _halt_flg
376 00011A2F 31 09 jeql L428
377 00011A31 # pipe7_halt( 2 );
378 00011A31 dd 02 pushl $2
379 00011A33 fe 08 ef000001e0 callf $8,_pipe7_halt
380 00011A3A # if ( loop_on_err )
381 00011A3A L428:
382 00011A3A 5d effffffcb4 tstl _loop_on_err
383 00011A40 31 0d jeql L429
384 00011A42 # {
385 00011A42 # force_loop = TRUE; /* set the force loop flag */
386 00011A42 0d 01 effffffcab movl $1,_force_loop
387 00011A49 # asm("jmp _pipe7_lp1"); /* and loop */
388 00011A49 71 effffffd67 jmp _pipe7_lp1
389 00011A4F # };
390 00011A4F L429:
391 00011A4F # }
392 00011A4F 40 ret#2
393 00011A50 .set L414,0x0
394 00011A50 L416:
395 00011A50 13 feec jbr L417
396 00011A53 .data
397 000005c8 * .text
398 00011A53 00 .align 1
399 00011A54 .globl _pipe7_queue_er
400 00011A54 _pipe7_queue_er:
401 00011A54 0000 .word L430
402 00011A56 #
403 00011A56 #
404 00011A56 #
405 00011A56 #
406 00011A56 #
407 00011A56 # /****************************************************************************
408 00011A56 # * Report an "FPP Queue apparently not cleared" error
409 00011A56 # *
410 00011A56 # * Cycle: xx. EVT test xx. subtest xx. too many instructions run. index = xx
411 00011A56 # * inst = LDF op1, DIVF op2, MULL3 op3,op4,op5, NEGF (int. overflow on MULL3)
412 00011A56 # * The NEGF should not have been executed but apparently was.
413 00011A56 # * op1 = xxxxxxxx, final Acc. = xxxxxxxx, op3 = xxxxxxxx
414 00011A56 # * op2 = xxxxxxxx, expected = xxxxxxxx, op4 = xxxxxxxx, op5 = xxxxxxxx
415 00011A56 # ****************************************************************************/
416 00011A56 # pipe7_queue_er()
417 00011A56 # {
418 00011A56 13 0111 jbr L432
419 00011A59 L433:
420 00011A59 # errcnt++; /* bump the error count */
421 00011A59 6d effffffc95 incl _errcnt
422 00011A5F # if ( prt_error )
423 00011A5F 5d effffffc8f tstl _prt_error
424 00011A65 21 03 13 00d9 jeql L434
425 00011A6A # {
426 00011A6A # print_pipe7_er(". Fpp Queue not cleared.");
427 00011A6A .data 1
428 000006a3 * L435:
429 000006a3 * 2E20467070205175657565206 .ascii ". Fpp Queue not cleared.\0"
E6F7420636C65617265642E00
430 000006bc * .text
431 00011A6A dd 8f000006a3 pushl $L435
432 00011A70 fe 08 ef000000f7 callf $8,_print_pipe7_er
433 00011A77 # writes(
434 00011A77 # "The NEGF should not have been executed but apparently was.\n");
435 00011A77 .data 1
436 000006bc * L436:
437 000006bc * 546865204E4547462073686F7 .ascii "The NEGF should not have been executed but apparently was.\12\0"
56C64206E6F74206861766520
6265656E20657865637574656
420627574206170706172656E
746C79207761732E0A00
438 000006f8 * .text
439 00011A77 dd 8f000006bc pushl $L436
440 00011A7D fe 08 effffffc70 callf $8,_writes
441 00011A84 # writes("op1 = ");
442 00011A84 .data 1
443 000006f8 * L437:
444 000006f8 * 6F7031203D2000 .ascii "op1 = \0"
445 000006ff * .text
446 00011A84 dd 8f000006f8 pushl $L437
447 00011A8A fe 08 effffffc63 callf $8,_writes
448 00011A91 # write32h( dbl_value_1.m );
449 00011A91 dd effffffc5d pushl _dbl_value_1
450 00011A97 fe 08 effffffc56 callf $8,_write32h
451 00011A9E # writes(", final Acc. = ");
452 00011A9E .data 1
453 000006ff * L438:
454 000006ff * 2C202066696E616C204163632 .ascii ", final Acc. = \0"
E203D2000
455 00000710 * .text
456 00011A9E dd 8f000006ff pushl $L438
457 00011AA4 fe 08 effffffc49 callf $8,_writes
458 00011AAB # write32h( post_evt_acc.m );
459 00011AAB dd effffffc43 pushl _post_evt_acc
460 00011AB1 fe 08 effffffc3c callf $8,_write32h
461 00011AB8 # writes(", op3 = ");
462 00011AB8 .data 1
463 00000710 * L439:
464 00000710 * 2C20206F7033203D2000 .ascii ", op3 = \0"
465 0000071a * .text
466 00011AB8 dd 8f00000710 pushl $L439
467 00011ABE fe 08 effffffc2f callf $8,_writes
468 00011AC5 # write32h( sgl_value_1 );
469 00011AC5 dd effffffc29 pushl _sgl_value_1
470 00011ACB fe 08 effffffc22 callf $8,_write32h
471 00011AD2 # writes("\nop2 = ");
472 00011AD2 .data 1
473 0000071a * L440:
474 0000071a * 0A6F7032203D2000 .ascii "\12op2 = \0"
475 00000722 * .text
476 00011AD2 dd 8f0000071a pushl $L440
477 00011AD8 fe 08 effffffc15 callf $8,_writes
478 00011ADF # write32h( dbl_value_2.m );
479 00011ADF dd effffffc0f pushl _dbl_value_2
480 00011AE5 fe 08 effffffc08 callf $8,_write32h
481 00011AEC # writes(", expected = ");
482 00011AEC .data 1
483 00000722 * L441:
484 00000722 * 2C20202020657870656374656 .ascii ", expected = \0"
4203D2000
485 00000733 * .text
486 00011AEC dd 8f00000722 pushl $L441
487 00011AF2 fe 08 effffffbfb callf $8,_writes
488 00011AF9 # write32h( dbl_expected.m );
489 00011AF9 dd effffffbf5 pushl _dbl_expected
490 00011AFF fe 08 effffffbee callf $8,_write32h
491 00011B06 # writes(", op4 = ");
492 00011B06 .data 1
493 00000733 * L442:
494 00000733 * 2C20206F7034203D2000 .ascii ", op4 = \0"
495 0000073d * .text
496 00011B06 dd 8f00000733 pushl $L442
497 00011B0C fe 08 effffffbe1 callf $8,_writes
498 00011B13 # write32h( sgl_value_2 );
499 00011B13 dd effffffbdb pushl _sgl_value_2
500 00011B19 fe 08 effffffbd4 callf $8,_write32h
501 00011B20 # writes(", op5 = ");
502 00011B20 .data 1
503 0000073d * L443:
504 0000073d * 2C20206F7035203D2000 .ascii ", op5 = \0"
505 00000747 * .text
506 00011B20 dd 8f0000073d pushl $L443
507 00011B26 fe 08 effffffbc7 callf $8,_writes
508 00011B2D # write32h( sgl_value_3 );
509 00011B2D dd effffffbc1 pushl _sgl_value_3
510 00011B33 fe 08 effffffbba callf $8,_write32h
511 00011B3A # writec('\n');
512 00011B3A dd 0a pushl $10
513 00011B3C fe 08 effffffbb1 callf $8,_writec
514 00011B43 # }
515 00011B43 # if ( halt_flg ) /* halt on error? */
516 00011B43 L434:
517 00011B43 5d effffffbab tstl _halt_flg
518 00011B49 31 09 jeql L444
519 00011B4B # pipe7_halt( 3 );
520 00011B4B dd 03 pushl $3
521 00011B4D fe 08 ef000000c6 callf $8,_pipe7_halt
522 00011B54 # if ( loop_on_err )
523 00011B54 L444:
524 00011B54 5d effffffb9a tstl _loop_on_err
525 00011B5A 31 0d jeql L445
526 00011B5C # {
527 00011B5C # force_loop = TRUE; /* set the force loop flag */
528 00011B5C 0d 01 effffffb91 movl $1,_force_loop
529 00011B63 # asm("jmp _pipe7_lp1"); /* and loop */
530 00011B63 71 effffffc4d jmp _pipe7_lp1
531 00011B69 # };
532 00011B69 L445:
533 00011B69 # }
534 00011B69 40 ret#2
535 00011B6A .set L430,0x0
536 00011B6A L432:
537 00011B6A 13 feec jbr L433
538 00011B6D .data
539 000005c8 * .text
540 00011B6D 00 .align 1
541 00011B6E .globl _print_pipe7_er
542 00011B6E _print_pipe7_er:
543 00011B6E 0000 .word L446
544 00011B70 #
545 00011B70 #
546 00011B70 #
547 00011B70 # /****************************************************************************
548 00011B70 # * print an error message of the form:
549 00011B70 # *
550 00011B70 # * Cycle: xx. EVT test xx. subtest xx. <your message here> index = xx
551 00011B70 # * inst = LDF op1, DIVF op2, MULL3 op3,op4,op5, NEGF (int. overflow on MULL3)
552 00011B70 # ****************************************************************************/
553 00011B70 # print_pipe7_er( msg )
554 00011B70 # char *msg; /* error message to print */
555 00011B70 # {
556 00011B70 13 00a3 jbr L448
557 00011B73 L449:
558 00011B73 # if( errcnt == 1 ) /* 1st error? */
559 00011B73 1d effffffb7b 01 cmpl _errcnt,$1
560 00011B7A 21 0d jneq L450
561 00011B7C # writes(" \n"); /* start a new print line */
562 00011B7C .data 1
563 00000747 * L451:
564 00000747 * 200A00 .ascii " \12\0"
565 0000074a * .text
566 00011B7C dd 8f00000747 pushl $L451
567 00011B82 fe 08 effffffb6b callf $8,_writes
568 00011B89 # writes("Cycle: ");
569 00011B89 L450:
570 00011B89 .data 1
571 0000074a * L452:
572 0000074a * 4379636C653A2000 .ascii "Cycle: \0"
573 00000752 * .text
574 00011B89 dd 8f0000074a pushl $L452
575 00011B8F fe 08 effffffb5e callf $8,_writes
576 00011B96 # writed( cycle );
577 00011B96 dd effffffb58 pushl _cycle
578 00011B9C fe 08 effffffb51 callf $8,_writed
579 00011BA3 # writes(" EVT test ");
580 00011BA3 .data 1
581 00000752 * L454:
582 00000752 * 202045565420746573742000 .ascii " EVT test \0"
583 0000075e * .text
584 00011BA3 dd 8f00000752 pushl $L454
585 00011BA9 fe 08 effffffb44 callf $8,_writes
586 00011BB0 # writed( test_no );
587 00011BB0 dd effffffb3e pushl _test_no
588 00011BB6 fe 08 effffffb37 callf $8,_writed
589 00011BBD # writes(". subtest ");
590 00011BBD .data 1
591 0000075e * L455:
592 0000075e * 2E20737562746573742000 .ascii ". subtest \0"
593 00000769 * .text
594 00011BBD dd 8f0000075e pushl $L455
595 00011BC3 fe 08 effffffb2a callf $8,_writes
596 00011BCA # writed( subtest );
597 00011BCA dd effffffb24 pushl _subtest
598 00011BD0 fe 08 effffffb1d callf $8,_writed
599 00011BD7 # writes( msg ); /* print the error message */
600 00011BD7 dd ad04 pushl 4(fp)
601 00011BDA fe 08 effffffb13 callf $8,_writes
602 00011BE1 # writes(" index = ");
603 00011BE1 .data 1
604 00000769 * L456:
605 00000769 * 20696E646578203D2000 .ascii " index = \0"
606 00000773 * .text
607 00011BE1 dd 8f00000769 pushl $L456
608 00011BE7 fe 08 effffffb06 callf $8,_writes
609 00011BEE # writed( index );
610 00011BEE dd effffffb00 pushl _index
611 00011BF4 fe 08 effffffaf9 callf $8,_writed
612 00011BFB # writes("\ninst = LDF op1, DIVF op2, MULL3 op3,op4,op5, NEGF");
613 00011BFB .data 1
614 00000773 * L457:
615 00000773 * 0A696E7374203D204C4446206 .ascii "\12inst = LDF op1, DIVF op2, MULL3 op3,op4,op5, NEGF\0"
F70312C2044495646206F7032
2C204D554C4C33206F70332C6
F70342C6F70352C204E454746
00
616 000007a6 * .text
617 00011BFB dd 8f00000773 pushl $L457
618 00011C01 fe 08 effffffaec callf $8,_writes
619 00011C08 # writes(" (int. overflow on MULL3)\n");
620 00011C08 .data 1
621 000007a6 * L458:
622 000007a6 * 202028696E742E206F7665726 .ascii " (int. overflow on MULL3)\12\0"
66C6F77206F6E204D554C4C33
290A00
623 000007c2 * .text
624 00011C08 dd 8f000007a6 pushl $L458
625 00011C0E fe 08 effffffadf callf $8,_writes
626 00011C15 # }
627 00011C15 40 ret#2
628 00011C16 .set L446,0x0
629 00011C16 L448:
630 00011C16 13 ff5a jbr L449
631 00011C19 .data
632 000005c8 * .text
633 00011C19 00 .align 1
634 00011C1A .globl _pipe7_halt
635 00011C1A _pipe7_halt:
636 00011C1A 0000 .word L459
637 00011C1C #
638 00011C1C #
639 00011C1C #
640 00011C1C # /****************************************************************************
641 00011C1C # * Halt on Error routine
642 00011C1C # ****************************************************************************/
643 00011C1C # pipe7_halt( code )
644 00011C1C # int code; /* error code to halt with */
645 00011C1C # {
646 00011C1C 13 0099 jbr L461
647 00011C1F L462:
648 00011C1F # err_code = code;
649 00011C1F 0d ad04 effffffacd movl 4(fp),_err_code
650 00011C27 # sgl_value_4 = dbl_ld_acc.m;
651 00011C27 0d effffffac7 effffffac2 movl _dbl_ld_acc,_sgl_value_4
652 00011C32 # sgl_value_5 = dbl_value_1.m;
653 00011C32 0d effffffabc effffffab7 movl _dbl_value_1,_sgl_value_5
654 00011C3D # asm("movl _test_no,r0"); /* r0 = test number */
655 00011C3D 0d effffffab1 50 movl _test_no,r0
656 00011C44 # asm("movl _subtest,r1"); /* r1 = subtest number */
657 00011C44 0d effffffaaa 51 movl _subtest,r1
658 00011C4B # asm("movl _err_code,r2"); /* r2 = error code */
659 00011C4B 0d effffffaa3 52 movl _err_code,r2
660 00011C52 # asm("movl _cycle,r3"); /* r3 = cycle count */
661 00011C52 0d effffffa9c 53 movl _cycle,r3
662 00011C59 # asm("movl _sgl_value_4,r4"); /* r4 = floating operand 1 */
663 00011C59 0d effffffa95 54 movl _sgl_value_4,r4
664 00011C60 # asm("movl _sgl_value_5,r5"); /* r5 = floating operand 2 */
665 00011C60 0d effffffa8e 55 movl _sgl_value_5,r5
666 00011C67 # asm("movl _sgl_value_1,r6"); /* r6 = integer operand 1 */
667 00011C67 0d effffffa87 56 movl _sgl_value_1,r6
668 00011C6E # asm("movl _sgl_value_2,r7"); /* r7 = integer operand 2 */
669 00011C6E 0d effffffa80 57 movl _sgl_value_2,r7
670 00011C75 # asm("movl _sgl_value_3,r8"); /* r8 = final int. value */
671 00011C75 0d effffffa79 58 movl _sgl_value_3,r8
672 00011C7C # if( code == 1 )
673 00011C7C 1d ad04 01 cmpl 4(fp),$1
674 00011C80 21 09 jneq L463
675 00011C82 # asm("movl _index,r9"); /* r9 = data index */
676 00011C82 0d effffffa6c 59 movl _index,r9
677 00011C89 # else {
678 00011C89 11 2b jbr L464
679 00011C8B L463:
680 00011C8B # sgl_value_6 = post_evt_acc.m;
681 00011C8B 0d effffffa63 effffffa5e movl _post_evt_acc,_sgl_value_6
682 00011C96 # sgl_value_7 = dbl_expected.m;
683 00011C96 0d effffffa58 effffffa53 movl _dbl_expected,_sgl_value_7
684 00011CA1 # asm("movl _sgl_value_6,r9"); /* r9 = final accumulator */
685 00011CA1 0d effffffa4d 59 movl _sgl_value_6,r9
686 00011CA8 # asm("movl _sgl_value_7,r10"); /* r10 = expected acc. */
687 00011CA8 0d effffffa46 5a movl _sgl_value_7,r10
688 00011CAF # asm("movl _index,r11"); /* r11 = data index */
689 00011CAF 0d effffffa3f 5b movl _index,r11
690 00011CB6 # }
691 00011CB6 L464:
692 00011CB6 # asm("halt");; /* HALT ... */
693 00011CB6 00 halt
694 00011CB7 # }
695 00011CB7 40 ret#2
696 00011CB8 .set L459,0x0
697 00011CB8 L461:
698 00011CB8 13 ff64 jbr L462
699 00011CBB .data
699 000233AF .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.