|
|
Power 6/32 Unix version 1.21
1 00000000 LL0:
2 00000000 .data
3 000005c4 * .text
4 00000000 .align 1
5 00000000 .globl _pipe4
6 00000000 _pipe4:
7 0001042C 0000 .word L381
8 0001042E #
9 0001042E # #include "evt_defs.h"
10 0001042E #
11 0001042E # /*
12 0001042E # *********************************************************************
13 0001042E # * FPP PIPELINED EVENTS TEST #4
14 0001042E # *
15 0001042E # * This test will execute the following code: "LDF MULF MULL3 NEGF"
16 0001042E # * with an alignment fault on the MULL3. We will make sure that:
17 0001042E # * 1. The fault is detected,
18 0001042E # * 2. the floating multiply operation completes,
19 0001042E # * 3. the negate instruction is not executed.
20 0001042E # *********************************************************************
21 0001042E # */
22 0001042E # pipe4()
23 0001042E # {
24 0001042E 13 015d jbr L383
25 00010431 L384:
26 00010431 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
27 00010431 ed 6d effffffff4 moval (r13),_pre_event_fp
28 00010438 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
29 00010438 ed 6e efffffffed moval (r14),_pre_event_sp
30 0001043F # precision = SGL;
31 0001043F 0d 01 efffffffe6 movl $1,_precision
32 00010446 # test_event = ALIGN_CODE; /* alignment fault expected */
33 00010446 0d 35 efffffffdf movl $53,_test_event
34 0001044D # exp_event = FALSE; /* ... but not yet */
35 0001044D 4d efffffffd9 clrl _exp_event
36 00010453 # asm("movab _pipe4_ret,_event_return"); /* post event addr */
37 00010453 e9 ef000000dd efffffffce movab _pipe4_ret,_event_return
38 0001045E # for( index = 0; index < max_pipe4_index; index++ )
39 0001045E 4d efffffffc8 clrl _index
40 00010464 L387:
41 00010464 1d efffffffc2 efffffffbd cmpl _index,_max_pipe4_index
42 0001046F 91 03 13 0119 jgeq L386
43 00010474 # {
44 00010474 # dbl_ld_acc = pipe4_data[index].op_1; /* get the data */
45 00010474 5c 18 efffffffb1 50 mull3 $24,_index,r0
46 0001047C 0c 8f00000000 50 addl2 $_pipe4_data,r0
47 00010483 0d a004 efffffffa5 movl 4(r0),_dbl_ld_acc+4
48 0001048B 0d 60 efffffff9a movl (r0),_dbl_ld_acc
49 00010492 # dbl_value_1 = pipe4_data[index].op_2;
50 00010492 5c 18 efffffff93 50 mull3 $24,_index,r0
51 0001049A 0c 8f00000008 50 addl2 $_pipe4_data+8,r0
52 000104A1 0d a004 efffffff87 movl 4(r0),_dbl_value_1+4
53 000104A9 0d 60 efffffff7c movl (r0),_dbl_value_1
54 000104B0 # dbl_expected = pipe4_data[index].exp;
55 000104B0 5c 18 efffffff75 50 mull3 $24,_index,r0
56 000104B8 0c 8f00000010 50 addl2 $_pipe4_data+16,r0
57 000104BF 0d a004 efffffff69 movl 4(r0),_dbl_expected+4
58 000104C7 0d 60 efffffff5e movl (r0),_dbl_expected
59 000104CE # sgl_value_1 = 0x12345;
60 000104CE 0d 8f00012345 efffffff53 movl $74565,_sgl_value_1
61 000104D9 # sgl_value_2 = -12345;
62 000104D9 0d 89cfc7 efffffff4a movl $-12345,_sgl_value_2
63 000104E2 # asm(".globl _pipe4_lp1");
64 000104E2 .globl _pipe4_lp1
65 000104E2 # asm("_pipe4_lp1:");
66 000104E2 _pipe4_lp1:
67 000104E2 # asm("bispsw $0x60"); /* enable ovfl & undfl */
68 000104E2 8b 8860 bispsw $0x60
69 000104E5 # asm("ldf _dbl_ld_acc"); /* load the Acc. */
70 000104E5 06 efffffff41 ldf _dbl_ld_acc
71 000104EB # exp_event = test_event; /* expect event soon */
72 000104EB 0d efffffff3b efffffff36 movl _test_event,_exp_event
73 000104F6 # asm("mulf _dbl_value_1");
74 000104F6 e6 efffffff30 mulf _dbl_value_1
75 000104FC # asm("mull3 _sgl_value_1,_sgl_value_2,_sgl_value_3+3");
76 000104FC 5c efffffff2a efffffff25 mull3 _sgl_value_1,_sgl_value_2,_sgl_value_3+3
efffffff23
77 0001050C # asm("negf");
78 0001050C b6 negf
79 0001050D # /*
80 0001050D # * If we got to here then there was no event
81 0001050D # */
82 0001050D # if( force_loop )
83 0001050D 5d efffffff19 tstl _force_loop
84 00010513 31 03 jeql L388
85 00010515 # asm("brw _pipe4_lp1");; /* loop on the error */
Assemb00027BEC # asm("brw _pipe4_lp1");; /* loop on the error */
"pipe400027BEC 86: WARNING: brw: destination label is external
86 00010515 13 ffca brw _pipe4_lp1
87 00010518 L388:
88 00010518 # exp_event = FALSE; /* reset event expected flag */
89 00010518 4d efffffff0e clrl _exp_event
90 0001051E # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */
91 0001051E 0d efffffff08 5d movl _pre_event_fp,fp
92 00010525 # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */
93 00010525 0d efffffff01 5e movl _pre_event_sp,sp
94 0001052C # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */
95 0001052C 9b 8860 bicpsw $0x60
96 0001052F # no_pipe4_evt();; /* report the error */
97 0001052F fe 04 ef0000005c callf $4,_no_pipe4_evt
98 00010536 # /*
99 00010536 # * Come here after the event
100 00010536 # */
101 00010536 # asm(".globl _pipe4_ret");
102 00010536 .globl _pipe4_ret
103 00010536 # asm("_pipe4_ret:");
104 00010536 _pipe4_ret:
105 00010536 # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */
106 00010536 0d effffffef0 5d movl _pre_event_fp,fp
107 0001053D # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */
108 0001053D 0d effffffee9 5e movl _pre_event_sp,sp
109 00010544 # if( force_loop )
110 00010544 5d effffffee2 tstl _force_loop
111 0001054A 31 03 jeql L390
112 0001054C # asm("brw _pipe4_lp1");; /* loop on the error */
"pipe400027BEC 113: WARNING: brw: destination label is external
113 0001054C 13 ff93 brw _pipe4_lp1
114 0001054F L390:
115 0001054F # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */
116 0001054F 9b 8860 bicpsw $0x60
117 00010552 # if( post_evt_acc.m == (dbl_expected.m ^ 0x80000000) )
118 00010552 dc 8f80000000 effffffecf xorl3 $-2147483648,_dbl_expected,r0
50
119 0001055E 1d effffffec8 50 cmpl _post_evt_acc,r0
120 00010565 21 09 jneq L391
121 00010567 # pipe4_queue_er(); /* fpp queue not cleared */
122 00010567 fe 04 ef00000216 callf $4,_pipe4_queue_er
123 0001056E # else if( post_evt_acc.m != dbl_expected.m )
124 0001056E 11 14 jbr L393
125 00010570 L391:
126 00010570 1d effffffeb6 effffffeb1 cmpl _post_evt_acc,_dbl_expected
127 0001057B 31 07 jeql L394
128 0001057D # bad_pipe4_result(); /* incorrect result error */
129 0001057D fe 04 ef000000e6 callf $4,_bad_pipe4_result
130 00010584 # }
131 00010584 L394:
132 00010584 L393:
133 00010584 L385:
134 00010584 6d effffffea2 incl _index
135 0001058A 13 fed7 jbr L387
136 0001058D L386:
137 0001058D # }
138 0001058D 40 ret#2
139 0001058E .set L381,0x0
140 0001058E L383:
141 0001058E 13 fea0 jbr L384
142 00010591 .data
143 000005c4 * .text
144 00010591 00 .align 1
145 00010592 .globl _no_pipe4_evt
146 00010592 _no_pipe4_evt:
147 00010592 0000 .word L396
148 00010594 #
149 00010594 #
150 00010594 #
151 00010594 # /****************************************************************************
152 00010594 # * Report an "EVENT NOT DETECTED" error
153 00010594 # *
154 00010594 # * Cycle: xx. EVT test xx. subtest xx. no alignment fault. index = xx
155 00010594 # * inst = LDF op1, MULF op2, MULL3 op3,op4,op5 (alignment fault on MULL3)
156 00010594 # * op1 = xxxxxxxx, op2 = xxxxxxxx
157 00010594 # * op3 = xxxxxxxx, op4 = xxxxxxxx, addr op5 = xxxxxxxx
158 00010594 # ****************************************************************************/
159 00010594 # no_pipe4_evt()
160 00010594 # {
161 00010594 13 00d0 jbr L398
162 00010597 L399:
163 00010597 # errcnt++; /* bump the error count */
164 00010597 6d effffffe8f incl _errcnt
165 0001059D # if ( prt_error )
166 0001059D 5d effffffe89 tstl _prt_error
167 000105A3 21 03 13 0098 jeql L400
168 000105A8 # {
169 000105A8 # print_pipe4_er( ". no alignment fault.");
170 000105A8 .data 1
171 000005c4 * L402:
172 000005c4 * 2E206E6F20616C69676E6D656 .ascii ". no alignment fault.\0"
E74206661756C742E00
173 000005da * .text
174 000105A8 dd 8f000005c4 pushl $L402
175 000105AE fe 08 ef000002e9 callf $8,_print_pipe4_er
176 000105B5 # writes("op1 = ");
177 000105B5 .data 1
178 000005da * L404:
179 000005da * 6F7031203D2000 .ascii "op1 = \0"
180 000005e1 * .text
181 000105B5 dd 8f000005da pushl $L404
182 000105BB fe 08 effffffe6a callf $8,_writes
183 000105C2 # write32h( dbl_ld_acc.m );
184 000105C2 dd effffffe64 pushl _dbl_ld_acc
185 000105C8 fe 08 effffffe5d callf $8,_write32h
186 000105CF # writes(", op2 = ");
187 000105CF .data 1
188 000005e1 * L406:
189 000005e1 * 2C20206F7032203D2000 .ascii ", op2 = \0"
190 000005eb * .text
191 000105CF dd 8f000005e1 pushl $L406
192 000105D5 fe 08 effffffe50 callf $8,_writes
193 000105DC # write32h( dbl_value_1.m );
194 000105DC dd effffffe4a pushl _dbl_value_1
195 000105E2 fe 08 effffffe43 callf $8,_write32h
196 000105E9 # writes("\nop3 = ");
197 000105E9 .data 1
198 000005eb * L407:
199 000005eb * 0A6F7033203D2000 .ascii "\12op3 = \0"
200 000005f3 * .text
201 000105E9 dd 8f000005eb pushl $L407
202 000105EF fe 08 effffffe36 callf $8,_writes
203 000105F6 # write32h( sgl_value_1 );
204 000105F6 dd effffffe30 pushl _sgl_value_1
205 000105FC fe 08 effffffe29 callf $8,_write32h
206 00010603 # writes(", op4 = ");
207 00010603 .data 1
208 000005f3 * L408:
209 000005f3 * 2C20206F7034203D2000 .ascii ", op4 = \0"
210 000005fd * .text
211 00010603 dd 8f000005f3 pushl $L408
212 00010609 fe 08 effffffe1c callf $8,_writes
213 00010610 # write32h( sgl_value_2 );
214 00010610 dd effffffe16 pushl _sgl_value_2
215 00010616 fe 08 effffffe0f callf $8,_write32h
216 0001061D # writes(", addr of op5 = ");
217 0001061D .data 1
218 000005fd * L409:
219 000005fd * 2C202061646472206F66206F7 .ascii ", addr of op5 = \0"
035203D2000
220 0000060f * .text
221 0001061D dd 8f000005fd pushl $L409
222 00010623 fe 08 effffffe02 callf $8,_writes
223 0001062A # write32h( ( (int)&sgl_value_3 )+1 );
224 0001062A dd 8f00000001 pushl $_sgl_value_3+1
225 00010630 fe 08 effffffdf5 callf $8,_write32h
226 00010637 # writec('\n');
227 00010637 dd 0a pushl $10
228 00010639 fe 08 effffffdec callf $8,_writec
229 00010640 # }
230 00010640 # if ( halt_flg ) /* halt on error? */
231 00010640 L400:
232 00010640 5d effffffde6 tstl _halt_flg
233 00010646 31 09 jeql L411
234 00010648 # pipe4_halt( 1 );
235 00010648 dd 01 pushl $1
236 0001064A fe 08 ef000002f9 callf $8,_pipe4_halt
237 00010651 # if ( loop_on_err )
238 00010651 L411:
239 00010651 5d effffffdd5 tstl _loop_on_err
240 00010657 31 0d jeql L413
241 00010659 # {
242 00010659 # force_loop = TRUE; /* set the force loop flag */
243 00010659 0d 01 effffffdcc movl $1,_force_loop
244 00010660 # asm("jmp _pipe4_lp1"); /* and loop */
245 00010660 71 effffffe7c jmp _pipe4_lp1
246 00010666 # };
247 00010666 L413:
248 00010666 # }
249 00010666 40 ret#2
250 00010667 .set L396,0x0
251 00010667 L398:
252 00010667 13 ff2d jbr L399
253 0001066A .data
254 000005c4 * .text
255 0001066A .align 1
256 0001066A .globl _bad_pipe4_result
257 0001066A _bad_pipe4_result:
258 0001066A 0000 .word L414
259 0001066C #
260 0001066C #
261 0001066C #
262 0001066C #
263 0001066C # /****************************************************************************
264 0001066C # * Report an "BAD ACCUMULATOR AFTER THE EVENT" error
265 0001066C # *
266 0001066C # * Cycle: xx. EVT test xx. subtest xx. Bad final Accumulator. index = xx
267 0001066C # * inst = LDF op1, MULF op2, MULL3 op3,op4,op5 (alignment fault on MULL3)
268 0001066C # * The NEGF should not have been executed.
269 0001066C # * op1 = xxxxxxxx, op2 = xxxxxxxx, final Acc. = xxxxxxxx, expected = xxxxxxxx
270 0001066C # * op3 = xxxxxxxx, op4 = xxxxxxxx, addr op5 = xxxxxxxx
271 0001066C # ****************************************************************************/
272 0001066C # bad_pipe4_result()
273 0001066C # {
274 0001066C 13 0111 jbr L416
275 0001066F L417:
276 0001066F # errcnt++; /* bump the error count */
277 0001066F 6d effffffdb7 incl _errcnt
278 00010675 # if ( prt_error )
279 00010675 5d effffffdb1 tstl _prt_error
280 0001067B 21 03 13 00d9 jeql L418
281 00010680 # {
282 00010680 # print_pipe4_er(". Bad final Accumulator.");
283 00010680 .data 1
284 0000060f * L419:
285 0000060f * 2E204261642066696E616C204 .ascii ". Bad final Accumulator.\0"
16363756D756C61746F722E00
286 00000628 * .text
287 00010680 dd 8f0000060f pushl $L419
288 00010686 fe 08 ef00000211 callf $8,_print_pipe4_er
289 0001068D # writes("The NEGF should not have been executed.\n");
290 0001068D .data 1
291 00000628 * L420:
292 00000628 * 546865204E4547462073686F7 .ascii "The NEGF should not have been executed.\12\0"
56C64206E6F74206861766520
6265656E20657865637574656
42E0A00
293 00000651 * .text
294 0001068D dd 8f00000628 pushl $L420
295 00010693 fe 08 effffffd92 callf $8,_writes
296 0001069A # writes("op1 = ");
297 0001069A .data 1
298 00000651 * L421:
299 00000651 * 6F7031203D2000 .ascii "op1 = \0"
300 00000658 * .text
301 0001069A dd 8f00000651 pushl $L421
302 000106A0 fe 08 effffffd85 callf $8,_writes
303 000106A7 # write32h( dbl_value_1.m );
304 000106A7 dd effffffd7f pushl _dbl_value_1
305 000106AD fe 08 effffffd78 callf $8,_write32h
306 000106B4 # writes(", op2 = ");
307 000106B4 .data 1
308 00000658 * L422:
309 00000658 * 2C206F7032203D2000 .ascii ", op2 = \0"
310 00000661 * .text
311 000106B4 dd 8f00000658 pushl $L422
312 000106BA fe 08 effffffd6b callf $8,_writes
313 000106C1 # write32h( dbl_value_2.m );
314 000106C1 dd effffffd65 pushl _dbl_value_2
315 000106C7 fe 08 effffffd5e callf $8,_write32h
316 000106CE # writes(", final Acc. = ");
317 000106CE .data 1
318 00000661 * L423:
319 00000661 * 2C2066696E616C204163632E2 .ascii ", final Acc. = \0"
03D2000
320 00000671 * .text
321 000106CE dd 8f00000661 pushl $L423
322 000106D4 fe 08 effffffd51 callf $8,_writes
323 000106DB # write32h( post_evt_acc.m );
324 000106DB dd effffffd4b pushl _post_evt_acc
325 000106E1 fe 08 effffffd44 callf $8,_write32h
326 000106E8 # writes(", expected = ");
327 000106E8 .data 1
328 00000671 * L424:
329 00000671 * 2C20657870656374656420202 .ascii ", expected = \0"
03D2000
330 00000681 * .text
331 000106E8 dd 8f00000671 pushl $L424
332 000106EE fe 08 effffffd37 callf $8,_writes
333 000106F5 # write32h( dbl_expected.m );
334 000106F5 dd effffffd31 pushl _dbl_expected
335 000106FB fe 08 effffffd2a callf $8,_write32h
336 00010702 # writes("\nop3 = ");
337 00010702 .data 1
338 00000681 * L425:
339 00000681 * 0A6F7033203D2000 .ascii "\12op3 = \0"
340 00000689 * .text
341 00010702 dd 8f00000681 pushl $L425
342 00010708 fe 08 effffffd1d callf $8,_writes
343 0001070F # write32h( sgl_value_1 );
344 0001070F dd effffffd17 pushl _sgl_value_1
345 00010715 fe 08 effffffd10 callf $8,_write32h
346 0001071C # writes(", op4 = ");
347 0001071C .data 1
348 00000689 * L426:
349 00000689 * 2C206F7034203D2000 .ascii ", op4 = \0"
350 00000692 * .text
351 0001071C dd 8f00000689 pushl $L426
352 00010722 fe 08 effffffd03 callf $8,_writes
353 00010729 # write32h( sgl_value_2 );
354 00010729 dd effffffcfd pushl _sgl_value_2
355 0001072F fe 08 effffffcf6 callf $8,_write32h
356 00010736 # writes(", addr of op5 = ");
357 00010736 .data 1
358 00000692 * L427:
359 00000692 * 2C20202061646472206F66206 .ascii ", addr of op5 = \0"
F7035203D2000
360 000006a5 * .text
361 00010736 dd 8f00000692 pushl $L427
362 0001073C fe 08 effffffce9 callf $8,_writes
363 00010743 # write32h( ( (int)&sgl_value_3 )+1 );
364 00010743 dd 8f00000001 pushl $_sgl_value_3+1
365 00010749 fe 08 effffffcdc callf $8,_write32h
366 00010750 # writec('\n');
367 00010750 dd 0a pushl $10
368 00010752 fe 08 effffffcd3 callf $8,_writec
369 00010759 # }
370 00010759 # if ( halt_flg ) /* halt on error? */
371 00010759 L418:
372 00010759 5d effffffccd tstl _halt_flg
373 0001075F 31 09 jeql L428
374 00010761 # pipe4_halt( 2 );
375 00010761 dd 02 pushl $2
376 00010763 fe 08 ef000001e0 callf $8,_pipe4_halt
377 0001076A # if ( loop_on_err )
378 0001076A L428:
379 0001076A 5d effffffcbc tstl _loop_on_err
380 00010770 31 0d jeql L429
381 00010772 # {
382 00010772 # force_loop = TRUE; /* set the force loop flag */
383 00010772 0d 01 effffffcb3 movl $1,_force_loop
384 00010779 # asm("jmp _pipe4_lp1"); /* and loop */
385 00010779 71 effffffd63 jmp _pipe4_lp1
386 0001077F # };
387 0001077F L429:
388 0001077F # }
389 0001077F 40 ret#2
390 00010780 .set L414,0x0
391 00010780 L416:
392 00010780 13 feec jbr L417
393 00010783 .data
394 000005c4 * .text
395 00010783 00 .align 1
396 00010784 .globl _pipe4_queue_er
397 00010784 _pipe4_queue_er:
398 00010784 0000 .word L430
399 00010786 #
400 00010786 #
401 00010786 #
402 00010786 #
403 00010786 #
404 00010786 # /****************************************************************************
405 00010786 # * Report an "FPP Queue apparently not cleared" error
406 00010786 # *
407 00010786 # * Cycle: xx. EVT test xx. subtest xx. Fpp Queue not cleared. index = xx
408 00010786 # * inst = LDF op1, MULF op2, MULL3 op3,op4,op5, NEGF (alignment fault on MULL3)
409 00010786 # * The NEGF should not have been executed but apparently was.
410 00010786 # * op1 = xxxxxxxx, op2 = xxxxxxxx, final Acc. = xxxxxxxx, expected = xxxxxxxx
411 00010786 # * op3 = xxxxxxxx, op4 = xxxxxxxx, addr op5 = xxxxxxxx
412 00010786 # ****************************************************************************/
413 00010786 # pipe4_queue_er()
414 00010786 # {
415 00010786 13 0111 jbr L432
416 00010789 L433:
417 00010789 # errcnt++; /* bump the error count */
418 00010789 6d effffffc9d incl _errcnt
419 0001078F # if ( prt_error )
420 0001078F 5d effffffc97 tstl _prt_error
421 00010795 21 03 13 00d9 jeql L434
422 0001079A # {
423 0001079A # print_pipe4_er(". Fpp Queue not cleared.");
424 0001079A .data 1
425 000006a5 * L435:
426 000006a5 * 2E20467070205175657565206 .ascii ". Fpp Queue not cleared.\0"
E6F7420636C65617265642E00
427 000006be * .text
428 0001079A dd 8f000006a5 pushl $L435
429 000107A0 fe 08 ef000000f7 callf $8,_print_pipe4_er
430 000107A7 # writes(
431 000107A7 # "The NEGF should not have been executed but apparently was.\n");
432 000107A7 .data 1
433 000006be * L436:
434 000006be * 546865204E4547462073686F7 .ascii "The NEGF should not have been executed but apparently was.\12\0"
56C64206E6F74206861766520
6265656E20657865637574656
420627574206170706172656E
746C79207761732E0A00
435 000006fa * .text
436 000107A7 dd 8f000006be pushl $L436
437 000107AD fe 08 effffffc78 callf $8,_writes
438 000107B4 # writes("op1 = ");
439 000107B4 .data 1
440 000006fa * L437:
441 000006fa * 6F7031203D2000 .ascii "op1 = \0"
442 00000701 * .text
443 000107B4 dd 8f000006fa pushl $L437
444 000107BA fe 08 effffffc6b callf $8,_writes
445 000107C1 # write32h( dbl_value_1.m );
446 000107C1 dd effffffc65 pushl _dbl_value_1
447 000107C7 fe 08 effffffc5e callf $8,_write32h
448 000107CE # writes(", op2 = ");
449 000107CE .data 1
450 00000701 * L438:
451 00000701 * 2C206F7032203D2000 .ascii ", op2 = \0"
452 0000070a * .text
453 000107CE dd 8f00000701 pushl $L438
454 000107D4 fe 08 effffffc51 callf $8,_writes
455 000107DB # write32h( dbl_value_2.m );
456 000107DB dd effffffc4b pushl _dbl_value_2
457 000107E1 fe 08 effffffc44 callf $8,_write32h
458 000107E8 # writes(", final Acc. = ");
459 000107E8 .data 1
460 0000070a * L439:
461 0000070a * 2C2066696E616C204163632E2 .ascii ", final Acc. = \0"
03D2000
462 0000071a * .text
463 000107E8 dd 8f0000070a pushl $L439
464 000107EE fe 08 effffffc37 callf $8,_writes
465 000107F5 # write32h( post_evt_acc.m );
466 000107F5 dd effffffc31 pushl _post_evt_acc
467 000107FB fe 08 effffffc2a callf $8,_write32h
468 00010802 # writes(", expected = ");
469 00010802 .data 1
470 0000071a * L440:
471 0000071a * 2C20657870656374656420202 .ascii ", expected = \0"
03D2000
472 0000072a * .text
473 00010802 dd 8f0000071a pushl $L440
474 00010808 fe 08 effffffc1d callf $8,_writes
475 0001080F # write32h( dbl_expected.m );
476 0001080F dd effffffc17 pushl _dbl_expected
477 00010815 fe 08 effffffc10 callf $8,_write32h
478 0001081C # writes("\nop3 = ");
479 0001081C .data 1
480 0000072a * L441:
481 0000072a * 0A6F7033203D2000 .ascii "\12op3 = \0"
482 00000732 * .text
483 0001081C dd 8f0000072a pushl $L441
484 00010822 fe 08 effffffc03 callf $8,_writes
485 00010829 # write32h( sgl_value_1 );
486 00010829 dd effffffbfd pushl _sgl_value_1
487 0001082F fe 08 effffffbf6 callf $8,_write32h
488 00010836 # writes(", op4 = ");
489 00010836 .data 1
490 00000732 * L442:
491 00000732 * 2C206F7034203D2000 .ascii ", op4 = \0"
492 0000073b * .text
493 00010836 dd 8f00000732 pushl $L442
494 0001083C fe 08 effffffbe9 callf $8,_writes
495 00010843 # write32h( sgl_value_2 );
496 00010843 dd effffffbe3 pushl _sgl_value_2
497 00010849 fe 08 effffffbdc callf $8,_write32h
498 00010850 # writes(", addr of op5 = ");
499 00010850 .data 1
500 0000073b * L443:
501 0000073b * 2C20202061646472206F66206 .ascii ", addr of op5 = \0"
F7035203D2000
502 0000074e * .text
503 00010850 dd 8f0000073b pushl $L443
504 00010856 fe 08 effffffbcf callf $8,_writes
505 0001085D # write32h( ( (int)&sgl_value_3 )+1 );
506 0001085D dd 8f00000001 pushl $_sgl_value_3+1
507 00010863 fe 08 effffffbc2 callf $8,_write32h
508 0001086A # writec('\n');
509 0001086A dd 0a pushl $10
510 0001086C fe 08 effffffbb9 callf $8,_writec
511 00010873 # }
512 00010873 # if ( halt_flg ) /* halt on error? */
513 00010873 L434:
514 00010873 5d effffffbb3 tstl _halt_flg
515 00010879 31 09 jeql L444
516 0001087B # pipe4_halt( 3 );
517 0001087B dd 03 pushl $3
518 0001087D fe 08 ef000000c6 callf $8,_pipe4_halt
519 00010884 # if ( loop_on_err )
520 00010884 L444:
521 00010884 5d effffffba2 tstl _loop_on_err
522 0001088A 31 0d jeql L445
523 0001088C # {
524 0001088C # force_loop = TRUE; /* set the force loop flag */
525 0001088C 0d 01 effffffb99 movl $1,_force_loop
526 00010893 # asm("jmp _pipe4_lp1"); /* and loop */
527 00010893 71 effffffc49 jmp _pipe4_lp1
528 00010899 # };
529 00010899 L445:
530 00010899 # }
531 00010899 40 ret#2
532 0001089A .set L430,0x0
533 0001089A L432:
534 0001089A 13 feec jbr L433
535 0001089D .data
536 000005c4 * .text
537 0001089D 00 .align 1
538 0001089E .globl _print_pipe4_er
539 0001089E _print_pipe4_er:
540 0001089E 0000 .word L446
541 000108A0 #
542 000108A0 #
543 000108A0 #
544 000108A0 # /****************************************************************************
545 000108A0 # * print an error message of the form:
546 000108A0 # *
547 000108A0 # * Cycle: xx. EVT test xx. subtest xx. <your message here> index = xx
548 000108A0 # * inst = LDF op1; MULF op2; MULL3 op3,op4,op5; NEGF; (alignment fault on MULL3)
549 000108A0 # ****************************************************************************/
550 000108A0 # print_pipe4_er( msg )
551 000108A0 # char *msg; /* error message to print */
552 000108A0 # {
553 000108A0 13 00a3 jbr L448
554 000108A3 L449:
555 000108A3 # if( errcnt == 1 ) /* 1st error? */
556 000108A3 1d effffffb83 01 cmpl _errcnt,$1
557 000108AA 21 0d jneq L450
558 000108AC # writes(" \n"); /* start a new print line */
559 000108AC .data 1
560 0000074e * L451:
561 0000074e * 200A00 .ascii " \12\0"
562 00000751 * .text
563 000108AC dd 8f0000074e pushl $L451
564 000108B2 fe 08 effffffb73 callf $8,_writes
565 000108B9 # writes("Cycle: ");
566 000108B9 L450:
567 000108B9 .data 1
568 00000751 * L452:
569 00000751 * 4379636C653A2000 .ascii "Cycle: \0"
570 00000759 * .text
571 000108B9 dd 8f00000751 pushl $L452
572 000108BF fe 08 effffffb66 callf $8,_writes
573 000108C6 # writed( cycle );
574 000108C6 dd effffffb60 pushl _cycle
575 000108CC fe 08 effffffb59 callf $8,_writed
576 000108D3 # writes(" EVT test ");
577 000108D3 .data 1
578 00000759 * L454:
579 00000759 * 202045565420746573742000 .ascii " EVT test \0"
580 00000765 * .text
581 000108D3 dd 8f00000759 pushl $L454
582 000108D9 fe 08 effffffb4c callf $8,_writes
583 000108E0 # writed( test_no );
584 000108E0 dd effffffb46 pushl _test_no
585 000108E6 fe 08 effffffb3f callf $8,_writed
586 000108ED # writes(". subtest ");
587 000108ED .data 1
588 00000765 * L455:
589 00000765 * 2E20737562746573742000 .ascii ". subtest \0"
590 00000770 * .text
591 000108ED dd 8f00000765 pushl $L455
592 000108F3 fe 08 effffffb32 callf $8,_writes
593 000108FA # writed( subtest );
594 000108FA dd effffffb2c pushl _subtest
595 00010900 fe 08 effffffb25 callf $8,_writed
596 00010907 # writes( msg ); /* print the error message */
597 00010907 dd ad04 pushl 4(fp)
598 0001090A fe 08 effffffb1b callf $8,_writes
599 00010911 # writes(" index = ");
600 00010911 .data 1
601 00000770 * L456:
602 00000770 * 20696E646578203D2000 .ascii " index = \0"
603 0000077a * .text
604 00010911 dd 8f00000770 pushl $L456
605 00010917 fe 08 effffffb0e callf $8,_writes
606 0001091E # writed( index );
607 0001091E dd effffffb08 pushl _index
608 00010924 fe 08 effffffb01 callf $8,_writed
609 0001092B # writes("\ninst = LDF op1; MULF op2; MULL3 op3,op4,op5; NEGF");
610 0001092B .data 1
611 0000077a * L457:
612 0000077a * 0A696E7374203D204C4446206 .ascii "\12inst = LDF op1; MULF op2; MULL3 op3,op4,op5; NEGF\0"
F70313B204D554C46206F7032
3B204D554C4C33206F70332C6
F70342C6F70353B204E454746
00
613 000007ad * .text
614 0001092B dd 8f0000077a pushl $L457
615 00010931 fe 08 effffffaf4 callf $8,_writes
616 00010938 # writes(" (alignment fault on MULL3)\n");
617 00010938 .data 1
618 000007ad * L458:
619 000007ad * 2028616C69676E6D656E74206 .ascii " (alignment fault on MULL3)\12\0"
661756C74206F6E204D554C4C
33290A00
620 000007ca * .text
621 00010938 dd 8f000007ad pushl $L458
622 0001093E fe 08 effffffae7 callf $8,_writes
623 00010945 # }
624 00010945 40 ret#2
625 00010946 .set L446,0x0
626 00010946 L448:
627 00010946 13 ff5a jbr L449
628 00010949 .data
629 000005c4 * .text
630 00010949 00 .align 1
631 0001094A .globl _pipe4_halt
632 0001094A _pipe4_halt:
633 0001094A 0000 .word L459
634 0001094C #
635 0001094C #
636 0001094C #
637 0001094C # /****************************************************************************
638 0001094C # * Halt on Error routine
639 0001094C # ****************************************************************************/
640 0001094C # pipe4_halt( code )
641 0001094C # int code; /* error code to halt with */
642 0001094C # {
643 0001094C 13 009b jbr L461
644 0001094F L462:
645 0001094F # err_code = code;
646 0001094F 0d ad04 effffffad5 movl 4(fp),_err_code
647 00010957 # sgl_value_4 = dbl_ld_acc.m;
648 00010957 0d effffffacf effffffaca movl _dbl_ld_acc,_sgl_value_4
649 00010962 # sgl_value_5 = dbl_value_1.m;
650 00010962 0d effffffac4 effffffabf movl _dbl_value_1,_sgl_value_5
651 0001096D # asm("movl _test_no,r0"); /* r0 = test number */
652 0001096D 0d effffffab9 50 movl _test_no,r0
653 00010974 # asm("movl _subtest,r1"); /* r1 = subtest number */
654 00010974 0d effffffab2 51 movl _subtest,r1
655 0001097B # asm("movl _err_code,r2"); /* r2 = error code */
656 0001097B 0d effffffaab 52 movl _err_code,r2
657 00010982 # asm("movl _cycle,r3"); /* r3 = cycle count */
658 00010982 0d effffffaa4 53 movl _cycle,r3
659 00010989 # asm("movl _sgl_value_4,r4"); /* r4 = floating operand 1 */
660 00010989 0d effffffa9d 54 movl _sgl_value_4,r4
661 00010990 # asm("movl _sgl_value_5,r5"); /* r5 = floating operand 2 */
662 00010990 0d effffffa96 55 movl _sgl_value_5,r5
663 00010997 # asm("movl _sgl_value_1,r6"); /* r6 = integer operand 1 */
664 00010997 0d effffffa8f 56 movl _sgl_value_1,r6
665 0001099E # asm("movl _sgl_value_2,r7"); /* r7 = integer operand 2 */
666 0001099E 0d effffffa88 57 movl _sgl_value_2,r7
667 000109A5 # asm("moval _sgl_value_3,r8");
668 000109A5 ed effffffa81 58 moval _sgl_value_3,r8
669 000109AC # asm("incl r8"); /* r8 = addr causing event */
670 000109AC 6d 58 incl r8
671 000109AE # if( code == 1 )
672 000109AE 1d ad04 01 cmpl 4(fp),$1
673 000109B2 21 09 jneq L463
674 000109B4 # asm("movl _index,r9"); /* r9 = data index */
675 000109B4 0d effffffa72 59 movl _index,r9
676 000109BB # else {
677 000109BB 11 2b jbr L464
678 000109BD L463:
679 000109BD # sgl_value_6 = post_evt_acc.m;
680 000109BD 0d effffffa69 effffffa64 movl _post_evt_acc,_sgl_value_6
681 000109C8 # sgl_value_7 = dbl_expected.m;
682 000109C8 0d effffffa5e effffffa59 movl _dbl_expected,_sgl_value_7
683 000109D3 # asm("movl _sgl_value_6,r9"); /* r9 = final accumulator */
684 000109D3 0d effffffa53 59 movl _sgl_value_6,r9
685 000109DA # asm("movl _sgl_value_7,r10"); /* r10 = expected acc. */
686 000109DA 0d effffffa4c 5a movl _sgl_value_7,r10
687 000109E1 # asm("movl _index,r11"); /* r11 = data index */
688 000109E1 0d effffffa45 5b movl _index,r11
689 000109E8 # }
690 000109E8 L464:
691 000109E8 # asm("halt");; /* HALT ... */
692 000109E8 00 halt
693 000109E9 # }
694 000109E9 40 ret#2
695 000109EA .set L459,0x0
696 000109EA L461:
697 000109EA 13 ff62 jbr L462
698 000109ED .data
698 00020E19 .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.