|
|
Power 6/32 Unix version 1.21
1 00000000 LL0:
2 00000000 .data
3 00000ca0 * .text
4 00000000 .align 1
5 00000000 .globl _cvfl
6 00000000 _cvfl:
7 00014FA0 0000 .word L215
8 00014FA2 #
9 00014FA2 # #include "fpp_defs.h"
10 00014FA2 #
11 00014FA2 #
12 00014FA2 # /*****************************************************************************
13 00014FA2 # *
14 00014FA2 # * CVFL - CONVERT SINGLE PRECISION TO LONGWORD INTEGER
15 00014FA2 # *
16 00014FA2 # *****************************************************************************/
17 00014FA2 # cvfl()
18 00014FA2 # {
19 00014FA2 11 57 jbr L217
20 00014FA4 L218:
21 00014FA4 # asm(".globl _cvfl_t");
22 00014FA4 .globl _cvfl_t
23 00014FA4 # asm("_cvfl_t:"); /* entry address */
24 00014FA4 _cvfl_t:
25 00014FA4 # if( ( cycle == 1 ) && ( prt_hdrs ) ) /* print headers on 1st cycle */
26 00014FA4 1d effffffff6 01 cmpl _cycle,$1
27 00014FAB 21 15 jneq L219
28 00014FAD 5d efffffffed tstl _prt_hdrs
29 00014FB3 31 0d jeql L219
30 00014FB5 # writes(" CVFL");
31 00014FB5 .data 1
32 00000ca0 * L221:
33 00000ca0 * 204356464C00 .ascii " CVFL\0"
34 00000ca6 * .text
35 00014FB5 dd 8f00000ca0 pushl $L221
36 00014FBB fe 08 efffffffde callf $8,_writes
37 00014FC2 # cvfl_1(); /* load through a register */
38 00014FC2 L219:
39 00014FC2 fe 04 ef00000035 callf $4,_cvfl_1
40 00014FC9 # cvfl_2(); /* load through the cache */
41 00014FC9 fe 04 ef000001aa callf $4,_cvfl_2
42 00014FD0 # cvfl_3(); /* register stability */
43 00014FD0 fe 04 ef00000319 callf $4,_cvfl_3
44 00014FD7 # cvfl_4(); /* PSL stability test */
45 00014FD7 fe 04 ef000004ea callf $4,_cvfl_4
46 00014FDE # cvfl_5(); /* pipelined entry test */
47 00014FDE fe 04 ef00000703 callf $4,_cvfl_5
48 00014FE5 # if( !no_fpp_wcs )
49 00014FE5 5d efffffffb5 tstl _no_fpp_wcs
50 00014FEB 21 07 jneq L227
51 00014FED # cvfl_6();; /* pipelined exit test */
52 00014FED fe 04 ef0000085a callf $4,_cvfl_6
53 00014FF4 L227:
54 00014FF4 # asm("jmp *return"); /* return to the test monitor */
55 00014FF4 71 ffffffffa6 jmp *return
56 00014FFA # }
57 00014FFA 40 ret#2
58 00014FFB .set L215,0x0
59 00014FFB L217:
60 00014FFB 11 a7 jbr L218
61 00014FFD .data
62 00000ca0 * .text
63 00014FFD 00 .align 1
64 00014FFE .globl _cvfl_1
65 00014FFE _cvfl_1:
66 00014FFE 0000 .word L229
67 00015000 #
68 00015000 #
69 00015000 #
70 00015000 # /************************************************************************
71 00015000 # *
72 00015000 # * SUBTEST 1 - convert through a register
73 00015000 # *
74 00015000 # ************************************************************************/
75 00015000 # cvfl_1()
76 00015000 # {
77 00015000 13 0174 jbr L231
78 00015003 L232:
79 00015003 # force_loop = FALSE;
80 00015003 4d efffffff97 clrl _force_loop
81 00015009 # subtest = 1;
82 00015009 0d 01 efffffff90 movl $1,_subtest
83 00015010 # for( index = 0; index < max_cvfl_1_index; index++ ) {
84 00015010 4d efffffff8a clrl _index
85 00015016 L235:
86 00015016 1d efffffff84 efffffff7f cmpl _index,_max_cvfl_1_index
87 00015021 91 03 13 0150 jgeq L234
88 00015026 # sgl_ld_acc = cvfl_1_data[index].ld; /* get value to negate */
89 00015026 0d efffffff74 50 movl _index,r0
90 0001502D 48 03 50 50 shll $3,r0,r0
91 00015031 0d e000000000 efffffff64 movl _cvfl_1_data(r0),_sgl_ld_acc
92 0001503C # sgl_expected = cvfl_1_data[index].exp; /* get expected result */
93 0001503C 0d efffffff5e 50 movl _index,r0
94 00015043 48 03 50 50 shll $3,r0,r0
95 00015047 0d e000000004 efffffff4e movl _cvfl_1_data+4(r0),_sgl_expected
96 00015052 # /*
97 00015052 # * If LOOP ON ERROR is set, this is the loop for this subtest.
98 00015052 # * The force loop flag is set after the first error.
99 00015052 # */
100 00015052 # asm("_cvfl_1_lp1:");
101 00015052 _cvfl_1_lp1:
102 00015052 # asm("movl _sgl_ld_acc,r4"); /* get the value to convert */
103 00015052 0d efffffff48 54 movl _sgl_ld_acc,r4
104 00015059 # asm("ldf r4"); /* load the value */
105 00015059 06 54 ldf r4
106 0001505B # asm("cvfl r5"); /* store the result in R5 */
107 0001505B 86 55 cvfl r5
108 0001505D # asm("stf _sgl_st_acc"); /* save the acc */
109 0001505D 26 efffffff3d stf _sgl_st_acc
110 00015063 # if( force_loop )
111 00015063 5d efffffff37 tstl _force_loop
112 00015069 31 02 jeql L236
113 0001506B # asm("brb _cvfl_1_lp1");; /* loop on the error */
114 0001506B 11 e5 brb _cvfl_1_lp1
115 0001506D L236:
116 0001506D # /*
117 0001506D # * end error loop - test the results
118 0001506D # */
119 0001506D # asm("movl r5,_sgl_value_1"); /* move R5 data to cache */
120 0001506D 0d 55 efffffff2c movl r5,_sgl_value_1
121 00015074 # if( sgl_value_1 != sgl_expected ) {/* COMPARE the values */
122 00015074 1d efffffff26 efffffff21 cmpl _sgl_value_1,_sgl_expected
123 0001507F 21 03 13 00e9 jeql L237
124 00015084 # errcnt++; /* bump the error count */
125 00015084 6d efffffff16 incl _errcnt
126 0001508A # if( prt_error ) {
127 0001508A 5d efffffff10 tstl _prt_error
128 00015090 21 03 13 00b5 jeql L238
129 00015095 # writes(" \n"); /* start a new print line */
130 00015095 .data 1
131 00000ca6 * L239:
132 00000ca6 * 200A00 .ascii " \12\0"
133 00000ca9 * .text
134 00015095 dd 8f00000ca6 pushl $L239
135 0001509B fe 08 effffffefe callf $8,_writes
136 000150A2 # writes("cycle: ");
137 000150A2 .data 1
138 00000ca9 * L240:
139 00000ca9 * 6379636C653A2000 .ascii "cycle: \0"
140 00000cb1 * .text
141 000150A2 dd 8f00000ca9 pushl $L240
142 000150A8 fe 08 effffffef1 callf $8,_writes
143 000150AF # writed( cycle );
144 000150AF dd effffffeeb pushl _cycle
145 000150B5 fe 08 effffffee4 callf $8,_writed
146 000150BC # writes(" CVFL test ");
147 000150BC .data 1
148 00000cb1 * L242:
149 00000cb1 * 20204356464C2074657374200 .ascii " CVFL test \0"
0
150 00000cbe * .text
151 000150BC dd 8f00000cb1 pushl $L242
152 000150C2 fe 08 effffffed7 callf $8,_writes
153 000150C9 # writed( test_no );
154 000150C9 dd effffffed1 pushl _test_no
155 000150CF fe 08 effffffeca callf $8,_writed
156 000150D6 # writes(", subtest 1 (Reg. Data) - WRONG DATA STORED\n");
157 000150D6 .data 1
158 00000cbe * L243:
159 00000cbe * 2C20737562746573742031202 .ascii ", subtest 1 (Reg. Data) - WRONG DATA STORED\12\0"
85265672E204461746129202D
2057524F4E472044415441205
3544F5245440A00
160 00000ceb * .text
161 000150D6 dd 8f00000cbe pushl $L243
162 000150DC fe 08 effffffebd callf $8,_writes
163 000150E3 # print_cvfl_data();
164 000150E3 fe 04 ef00000a4a callf $4,_print_cvfl_data
165 000150EA # writes(", data index = ");
166 000150EA .data 1
167 00000ceb * L245:
168 00000ceb * 2C2020206461746120696E646 .ascii ", data index = \0"
578203D2000
169 00000cfd * .text
170 000150EA dd 8f00000ceb pushl $L245
171 000150F0 fe 08 effffffea9 callf $8,_writes
172 000150F7 # writed( index );
173 000150F7 dd effffffea3 pushl _index
174 000150FD fe 08 effffffe9c callf $8,_writed
175 00015104 # writec('\n');
176 00015104 dd 0a pushl $10
177 00015106 fe 08 effffffe93 callf $8,_writec
178 0001510D # writes(" final Acc = ");
179 0001510D .data 1
180 00000cfd * L247:
181 00000cfd * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
182 00000d0c * .text
183 0001510D dd 8f00000cfd pushl $L247
184 00015113 fe 08 effffffe86 callf $8,_writes
185 0001511A # write32h( sgl_st_acc );
186 0001511A dd effffffe80 pushl _sgl_st_acc
187 00015120 fe 08 effffffe79 callf $8,_write32h
188 00015127 # writes(", int. expected = ");
189 00015127 .data 1
190 00000d0c * L249:
191 00000d0c * 2C20696E742E2065787065637 .ascii ", int. expected = \0"
46564203D2000
192 00000d1f * .text
193 00015127 dd 8f00000d0c pushl $L249
194 0001512D fe 08 effffffe6c callf $8,_writes
195 00015134 # write32h( sgl_expected );
196 00015134 dd effffffe66 pushl _sgl_expected
197 0001513A fe 08 effffffe5f callf $8,_write32h
198 00015141 # writec('\n');
199 00015141 dd 0a pushl $10
200 00015143 fe 08 effffffe56 callf $8,_writec
201 0001514A # }
202 0001514A # if( halt_flg )
203 0001514A L238:
204 0001514A 5d effffffe50 tstl _halt_flg
205 00015150 31 09 jeql L250
206 00015152 # cvfl_er_halt( BAD_STORE_HLT ); /* halt on the error */
207 00015152 dd 09 pushl $9
208 00015154 fe 08 ef00000a15 callf $8,_cvfl_er_halt
209 0001515B # if( loop_on_err ) {
210 0001515B L250:
211 0001515B 5d effffffe3f tstl _loop_on_err
212 00015161 31 0a jeql L252
213 00015163 # force_loop = TRUE; /* set the force loop flag */
214 00015163 0d 01 effffffe36 movl $1,_force_loop
215 0001516A # asm("brw _cvfl_1_lp1");; /* and loop on the error */
216 0001516A 13 fee5 brw _cvfl_1_lp1
217 0001516D # } /* end of loop on error */
218 0001516D # } /* end of wrong data compare error */
219 0001516D L252:
220 0001516D # } /* end of WHILE loop */
221 0001516D L237:
222 0001516D L233:
223 0001516D 6d effffffe2d incl _index
224 00015173 13 fea0 jbr L235
225 00015176 L234:
226 00015176 # } /* end of subtest 1 */
227 00015176 40 ret#2
228 00015177 .set L229,0x0
229 00015177 L231:
230 00015177 13 fe89 jbr L232
231 0001517A .data
232 00000ca0 * .text
233 0001517A .align 1
234 0001517A .globl _cvfl_2
235 0001517A _cvfl_2:
236 0001517A 0000 .word L253
237 0001517C #
238 0001517C #
239 0001517C #
240 0001517C # /************************************************************************
241 0001517C # *
242 0001517C # * SUBTEST 2 - convert through memory
243 0001517C # *
244 0001517C # ************************************************************************/
245 0001517C # cvfl_2()
246 0001517C # {
247 0001517C 13 016e jbr L255
248 0001517F L256:
249 0001517F # force_loop = FALSE;
250 0001517F 4d effffffe1b clrl _force_loop
251 00015185 # subtest = 2;
252 00015185 0d 02 effffffe14 movl $2,_subtest
253 0001518C # for( index = 0; index < max_cvfl_1_index; index++ ) {
254 0001518C 4d effffffe0e clrl _index
255 00015192 L259:
256 00015192 1d effffffe08 effffffe03 cmpl _index,_max_cvfl_1_index
257 0001519D 91 03 13 014a jgeq L258
258 000151A2 # sgl_ld_acc = cvfl_1_data[index].ld; /* get value to convert */
259 000151A2 0d effffffdf8 50 movl _index,r0
260 000151A9 48 03 50 50 shll $3,r0,r0
261 000151AD 0d e000000000 effffffde8 movl _cvfl_1_data(r0),_sgl_ld_acc
262 000151B8 # sgl_expected = cvfl_1_data[index].exp; /* get expected result */
263 000151B8 0d effffffde2 50 movl _index,r0
264 000151BF 48 03 50 50 shll $3,r0,r0
265 000151C3 0d e000000004 effffffdd2 movl _cvfl_1_data+4(r0),_sgl_expected
266 000151CE # /*
267 000151CE # * If LOOP ON ERROR is set, this is the loop for this subtest.
268 000151CE # * The force loop flag is set after the first error.
269 000151CE # */
270 000151CE # asm("_cvfl_2_lp1:");
271 000151CE _cvfl_2_lp1:
272 000151CE # asm("ldf _sgl_ld_acc"); /* load the base value */
273 000151CE 06 effffffdcc ldf _sgl_ld_acc
274 000151D4 # asm("cvfl _sgl_value_1"); /* store the result */
275 000151D4 86 effffffdc6 cvfl _sgl_value_1
276 000151DA # asm("stf _sgl_st_acc"); /* save the acc */
277 000151DA 26 effffffdc0 stf _sgl_st_acc
278 000151E0 # if( force_loop )
279 000151E0 5d effffffdba tstl _force_loop
280 000151E6 31 02 jeql L260
281 000151E8 # asm("brb _cvfl_2_lp1");; /* loop on the error */
282 000151E8 11 e4 brb _cvfl_2_lp1
283 000151EA L260:
284 000151EA # /*
285 000151EA # * end error loop - test the results
286 000151EA # */
287 000151EA # if( sgl_value_1 != sgl_expected ) {/* COMPARE the values */
288 000151EA 1d effffffdb0 effffffdab cmpl _sgl_value_1,_sgl_expected
289 000151F5 21 03 13 00e9 jeql L261
290 000151FA # errcnt++; /* bump the error count */
291 000151FA 6d effffffda0 incl _errcnt
292 00015200 # if( prt_error ) {
293 00015200 5d effffffd9a tstl _prt_error
294 00015206 21 03 13 00b5 jeql L262
295 0001520B # writes(" \n"); /* start a new print line */
296 0001520B .data 1
297 00000d1f * L263:
298 00000d1f * 200A00 .ascii " \12\0"
299 00000d22 * .text
300 0001520B dd 8f00000d1f pushl $L263
301 00015211 fe 08 effffffd88 callf $8,_writes
302 00015218 # writes("cycle: ");
303 00015218 .data 1
304 00000d22 * L264:
305 00000d22 * 6379636C653A2000 .ascii "cycle: \0"
306 00000d2a * .text
307 00015218 dd 8f00000d22 pushl $L264
308 0001521E fe 08 effffffd7b callf $8,_writes
309 00015225 # writed( cycle );
310 00015225 dd effffffd75 pushl _cycle
311 0001522B fe 08 effffffd6e callf $8,_writed
312 00015232 # writes(" CVFL test ");
313 00015232 .data 1
314 00000d2a * L265:
315 00000d2a * 20204356464C2074657374200 .ascii " CVFL test \0"
0
316 00000d37 * .text
317 00015232 dd 8f00000d2a pushl $L265
318 00015238 fe 08 effffffd61 callf $8,_writes
319 0001523F # writed( test_no );
320 0001523F dd effffffd5b pushl _test_no
321 00015245 fe 08 effffffd54 callf $8,_writed
322 0001524C # writes(
323 0001524C # ", subtest 2 (Cache Data) - WRONG DATA STORED\n");
324 0001524C .data 1
325 00000d37 * L266:
326 00000d37 * 2C20737562746573742032202 .ascii ", subtest 2 (Cache Data) - WRONG DATA STORED\12\0"
8436163686520446174612920
2D2057524F4E4720444154412
053544F5245440A00
327 00000d65 * .text
328 0001524C dd 8f00000d37 pushl $L266
329 00015252 fe 08 effffffd47 callf $8,_writes
330 00015259 # print_cvfl_data();
331 00015259 fe 04 ef000008d4 callf $4,_print_cvfl_data
332 00015260 # writes(", data index = ");
333 00015260 .data 1
334 00000d65 * L267:
335 00000d65 * 2C2020206461746120696E646 .ascii ", data index = \0"
578203D2000
336 00000d77 * .text
337 00015260 dd 8f00000d65 pushl $L267
338 00015266 fe 08 effffffd33 callf $8,_writes
339 0001526D # writed( index );
340 0001526D dd effffffd2d pushl _index
341 00015273 fe 08 effffffd26 callf $8,_writed
342 0001527A # writec('\n');
343 0001527A dd 0a pushl $10
344 0001527C fe 08 effffffd1d callf $8,_writec
345 00015283 # writes(" final Acc = ");
346 00015283 .data 1
347 00000d77 * L268:
348 00000d77 * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
349 00000d86 * .text
350 00015283 dd 8f00000d77 pushl $L268
351 00015289 fe 08 effffffd10 callf $8,_writes
352 00015290 # write32h( sgl_value_1 );
353 00015290 dd effffffd0a pushl _sgl_value_1
354 00015296 fe 08 effffffd03 callf $8,_write32h
355 0001529D # writes(", int. expected = ");
356 0001529D .data 1
357 00000d86 * L269:
358 00000d86 * 2C20696E742E2065787065637 .ascii ", int. expected = \0"
46564203D2000
359 00000d99 * .text
360 0001529D dd 8f00000d86 pushl $L269
361 000152A3 fe 08 effffffcf6 callf $8,_writes
362 000152AA # write32h( sgl_expected );
363 000152AA dd effffffcf0 pushl _sgl_expected
364 000152B0 fe 08 effffffce9 callf $8,_write32h
365 000152B7 # writec('\n');
366 000152B7 dd 0a pushl $10
367 000152B9 fe 08 effffffce0 callf $8,_writec
368 000152C0 # }
369 000152C0 # if( halt_flg )
370 000152C0 L262:
371 000152C0 5d effffffcda tstl _halt_flg
372 000152C6 31 09 jeql L270
373 000152C8 # cvfl_er_halt( BAD_STORE_HLT ); /* halt on the error */
374 000152C8 dd 09 pushl $9
375 000152CA fe 08 ef0000089f callf $8,_cvfl_er_halt
376 000152D1 # if( loop_on_err ) {
377 000152D1 L270:
378 000152D1 5d effffffcc9 tstl _loop_on_err
379 000152D7 31 0a jeql L271
380 000152D9 # force_loop = TRUE; /* set the force loop flag */
381 000152D9 0d 01 effffffcc0 movl $1,_force_loop
382 000152E0 # asm("brw _cvfl_1_lp1");; /* and loop on the error */
383 000152E0 13 fd6f brw _cvfl_1_lp1
384 000152E3 # } /* end of loop on error */
385 000152E3 # } /* end of compare error */
386 000152E3 L271:
387 000152E3 # } /* end of WHILE loop */
388 000152E3 L261:
389 000152E3 L257:
390 000152E3 6d effffffcb7 incl _index
391 000152E9 13 fea6 jbr L259
392 000152EC L258:
393 000152EC # } /* end of subtest 2 */
394 000152EC 40 ret#2
395 000152ED .set L253,0x0
396 000152ED L255:
397 000152ED 13 fe8f jbr L256
398 000152F0 .data
399 00000ca0 * .text
400 000152F0 .align 1
401 000152F0 .globl _cvfl_3
402 000152F0 _cvfl_3:
403 000152F0 0000 .word L272
404 000152F2 #
405 000152F2 #
406 000152F2 #
407 000152F2 # /************************************************************************
408 000152F2 # *
409 000152F2 # * SUBTEST 3 - Check for register corruption
410 000152F2 # *
411 000152F2 # ************************************************************************/
412 000152F2 # cvfl_3()
413 000152F2 # {
414 000152F2 13 01d0 jbr L274
415 000152F5 L275:
416 000152F5 # force_loop = FALSE; /* clear force_loop flg */
417 000152F5 4d effffffca5 clrl _force_loop
418 000152FB # subtest = 3;
419 000152FB 0d 03 effffffc9e movl $3,_subtest
420 00015302 # fill_reg_buf( load_regs ); /* get patterns for regs */
421 00015302 dd 8f00000000 pushl $_load_regs
422 00015308 fe 08 effffffc91 callf $8,_fill_reg_buf
423 0001530F # index = 0;
424 0001530F 4d effffffc8b clrl _index
425 00015315 # sgl_ld_acc = cvfl_1_data[0].ld; /* get value to convert */
426 00015315 0d effffffc85 effffffc80 movl _cvfl_1_data,_sgl_ld_acc
427 00015320 # sgl_expected = cvfl_1_data[0].exp; /* get expected result */
428 00015320 0d effffffc7e effffffc75 movl _cvfl_1_data+4,_sgl_expected
429 0001532B # /*
430 0001532B # * If LOOP ON ERROR is set, this is the loop for this subtest.
431 0001532B # * The force loop flag is set after the first error.
432 0001532B # */
433 0001532B # asm("_cvfl_3_lp1:");
434 0001532B _cvfl_3_lp1:
435 0001532B # asm("ldf _sgl_ld_acc"); /* load base value */
436 0001532B 06 effffffc6f ldf _sgl_ld_acc
437 00015331 # asm("loadr $0x1fff,_load_regs"); /* load regs 0 - 12 */
438 00015331 ab 891fff effffffc66 loadr $0x1fff,_load_regs
439 0001533A # asm("nop");
440 0001533A 10 nop
441 0001533B # asm("cvfl _sgl_value_1"); /* convert the value */
442 0001533B 86 effffffc5f cvfl _sgl_value_1
443 00015341 # asm("nop");
444 00015341 10 nop
445 00015342 # asm("stf _sgl_st_acc"); /* store the result */
446 00015342 26 effffffc58 stf _sgl_st_acc
447 00015348 # asm("nop");
448 00015348 10 nop
449 00015349 # asm("storer $0x1fff,_store_regs"); /* store regs 0 - 12 */
450 00015349 bb 891fff effffffc4e storer $0x1fff,_store_regs
451 00015352 # if( force_loop )
452 00015352 5d effffffc48 tstl _force_loop
453 00015358 31 02 jeql L277
454 0001535A # asm("brb _cvfl_3_lp1");; /* loop on the error */
455 0001535A 11 cf brb _cvfl_3_lp1
456 0001535C L277:
457 0001535C # /*
458 0001535C # * Now compare the stored register values to those that were loaded
459 0001535C # */
460 0001535C # index2 = 0;
461 0001535C 4d effffffc3e clrl _index2
462 00015362 # while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
463 00015362 L278:
464 00015362 0d effffffc38 50 movl _index2,r0
465 00015369 0d effffffc31 51 movl _index2,r1
466 00015370 1d 40effffffc29 cmpl _load_regs[r0],_store_regs[r1]
41effffffc23
467 0001537D 21 11 jneq L279
468 0001537F 1d effffffc1b 0d cmpl _index2,$13
469 00015386 81 08 jgeq L279
470 00015388 # index2++; /* check reg values */
471 00015388 6d effffffc12 incl _index2
472 0001538E 11 d2 jbr L278
473 00015390 L279:
474 00015390 # if( index2 < 13 ) { /* error if index2 < 13 */
475 00015390 1d effffffc0a 0d cmpl _index2,$13
476 00015397 91 03 13 0128 jgeq L280
477 0001539C # errcnt++; /* bump the error count */
478 0001539C 6d effffffbfe incl _errcnt
479 000153A2 # if( prt_error ) {
480 000153A2 5d effffffbf8 tstl _prt_error
481 000153A8 21 03 13 00f4 jeql L281
482 000153AD # writes(" \n"); /* start a new print line */
483 000153AD .data 1
484 00000d99 * L282:
485 00000d99 * 200A00 .ascii " \12\0"
486 00000d9c * .text
487 000153AD dd 8f00000d99 pushl $L282
488 000153B3 fe 08 effffffbe6 callf $8,_writes
489 000153BA # writes("cycle: ");
490 000153BA .data 1
491 00000d9c * L283:
492 00000d9c * 6379636C653A2000 .ascii "cycle: \0"
493 00000da4 * .text
494 000153BA dd 8f00000d9c pushl $L283
495 000153C0 fe 08 effffffbd9 callf $8,_writes
496 000153C7 # writed( cycle );
497 000153C7 dd effffffbd3 pushl _cycle
498 000153CD fe 08 effffffbcc callf $8,_writed
499 000153D4 # writes(" CVFL test ");
500 000153D4 .data 1
501 00000da4 * L284:
502 00000da4 * 20204356464C2074657374200 .ascii " CVFL test \0"
0
503 00000db1 * .text
504 000153D4 dd 8f00000da4 pushl $L284
505 000153DA fe 08 effffffbbf callf $8,_writes
506 000153E1 # writed( test_no );
507 000153E1 dd effffffbb9 pushl _test_no
508 000153E7 fe 08 effffffbb2 callf $8,_writed
509 000153EE # writes(", subtest 3 - A REGISTER WAS MODIFIED\n");
510 000153EE .data 1
511 00000db1 * L285:
512 00000db1 * 2C20737562746573742033202 .ascii ", subtest 3 - A REGISTER WAS MODIFIED\12\0"
D204120524547495354455220
574153204D4F4449464945440
A00
513 00000dd8 * .text
514 000153EE dd 8f00000db1 pushl $L285
515 000153F4 fe 08 effffffba5 callf $8,_writes
516 000153FB # print_cvfl_data(); /* print the operands */
517 000153FB fe 04 ef00000732 callf $4,_print_cvfl_data
518 00015402 # writes("\n");
519 00015402 .data 1
520 00000dd8 * L286:
521 00000dd8 * 0A00 .ascii "\12\0"
522 00000dda * .text
523 00015402 dd 8f00000dd8 pushl $L286
524 00015408 fe 08 effffffb91 callf $8,_writes
525 0001540F # writes(" final Acc = "); /* print the information */
526 0001540F .data 1
527 00000dda * L287:
528 00000dda * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
529 00000de9 * .text
530 0001540F dd 8f00000dda pushl $L287
531 00015415 fe 08 effffffb84 callf $8,_writes
532 0001541C # write32h( sgl_value_1 );
533 0001541C dd effffffb7e pushl _sgl_value_1
534 00015422 fe 08 effffffb77 callf $8,_write32h
535 00015429 # writes("\n");
536 00015429 .data 1
537 00000de9 * L288:
538 00000de9 * 0A00 .ascii "\12\0"
539 00000deb * .text
540 00015429 dd 8f00000de9 pushl $L288
541 0001542F fe 08 effffffb6a callf $8,_writes
542 00015436 # writes("register ");
543 00015436 .data 1
544 00000deb * L289:
545 00000deb * 72656769737465722000 .ascii "register \0"
546 00000df5 * .text
547 00015436 dd 8f00000deb pushl $L289
548 0001543C fe 08 effffffb5d callf $8,_writes
549 00015443 # writed( index2 ); /* about the corrupted */
550 00015443 dd effffffb57 pushl _index2
551 00015449 fe 08 effffffb50 callf $8,_writed
552 00015450 # writes(" = "); /* register */
553 00015450 .data 1
554 00000df5 * L290:
555 00000df5 * 203D2000 .ascii " = \0"
556 00000df9 * .text
557 00015450 dd 8f00000df5 pushl $L290
558 00015456 fe 08 effffffb43 callf $8,_writes
559 0001545D # write32h( store_regs[index2] );
560 0001545D 0d effffffb3d 50 movl _index2,r0
561 00015464 dd 40effffffb35 pushl _store_regs[r0]
562 0001546B fe 08 effffffb2e callf $8,_write32h
563 00015472 # writes(", should be = ");
564 00015472 .data 1
565 00000df9 * L291:
566 00000df9 * 2C202073686F756C642062652 .ascii ", should be = \0"
03D2000
567 00000e09 * .text
568 00015472 dd 8f00000df9 pushl $L291
569 00015478 fe 08 effffffb21 callf $8,_writes
570 0001547F # write32h( load_regs[index2] );
571 0001547F 0d effffffb1b 50 movl _index2,r0
572 00015486 dd 40effffffb13 pushl _load_regs[r0]
573 0001548D fe 08 effffffb0c callf $8,_write32h
574 00015494 # writes("\n");
575 00015494 .data 1
576 00000e09 * L292:
577 00000e09 * 0A00 .ascii "\12\0"
578 00000e0b * .text
579 00015494 dd 8f00000e09 pushl $L292
580 0001549A fe 08 effffffaff callf $8,_writes
581 000154A1 # }
582 000154A1 # if( halt_flg )
583 000154A1 L281:
584 000154A1 5d effffffaf9 tstl _halt_flg
585 000154A7 31 09 jeql L293
586 000154A9 # cvfl_er_halt( BAD_REG_HLT ); /* halt on the error */
587 000154A9 dd 02 pushl $2
588 000154AB fe 08 ef000006be callf $8,_cvfl_er_halt
589 000154B2 # if( loop_on_err ) {
590 000154B2 L293:
591 000154B2 5d effffffae8 tstl _loop_on_err
592 000154B8 31 0a jeql L294
593 000154BA # force_loop = TRUE; /* set the force loop flag */
594 000154BA 0d 01 effffffadf movl $1,_force_loop
595 000154C1 # asm("brw _cvfl_3_lp1");; /* and loop on the error */
596 000154C1 13 fe67 brw _cvfl_3_lp1
597 000154C4 # } /* end of loop on error */
598 000154C4 # } /* end of register corruption error */
599 000154C4 L294:
600 000154C4 # } /* end of subtest 3 */
601 000154C4 L280:
602 000154C4 40 ret#2
603 000154C5 .set L272,0x0
604 000154C5 L274:
605 000154C5 13 fe2d jbr L275
606 000154C8 .data
607 00000ca0 * .text
608 000154C8 .align 1
609 000154C8 .globl _cvfl_4
610 000154C8 _cvfl_4:
611 000154C8 0000 .word L295
612 000154CA #
613 000154CA #
614 000154CA #
615 000154CA # /************************************************************************
616 000154CA # *
617 000154CA # * SUBTEST 4 - Check for PSL corruption
618 000154CA # *
619 000154CA # ************************************************************************/
620 000154CA # cvfl_4()
621 000154CA # {
622 000154CA 13 0217 jbr L297
623 000154CD L298:
624 000154CD # force_loop = FALSE; /* clear force_loop flg */
625 000154CD 4d effffffacd clrl _force_loop
626 000154D3 # subtest = 4;
627 000154D3 0d 04 effffffac6 movl $4,_subtest
628 000154DA # for( index = 0; index < max_cvfl_1_index; index++ ) {
629 000154DA 4d effffffac0 clrl _index
630 000154E0 L301:
631 000154E0 1d effffffaba effffffab5 cmpl _index,_max_cvfl_1_index
632 000154EB 91 03 13 01f3 jgeq L300
633 000154F0 # sgl_ld_acc = cvfl_1_data[index].ld; /* get value to convert */
634 000154F0 0d effffffaaa 50 movl _index,r0
635 000154F7 48 03 50 50 shll $3,r0,r0
636 000154FB 0d e000000000 effffffa9a movl _cvfl_1_data(r0),_sgl_ld_acc
637 00015506 # sgl_expected = cvfl_1_data[index].exp; /* get expected */
638 00015506 0d effffffa94 50 movl _index,r0
639 0001550D 48 03 50 50 shll $3,r0,r0
640 00015511 0d e000000004 effffffa84 movl _cvfl_1_data+4(r0),_sgl_expected
641 0001551C # for( status_index = 0; status_index < 3; status_index++ ) {
642 0001551C 4d effffffa7e clrl _status_index
643 00015522 L304:
644 00015522 1d effffffa78 03 cmpl _status_index,$3
645 00015529 91 03 13 01ac jgeq L303
646 0001552E # sgl_dummy1 = status_array[status_index];/* status = +, -, 0 */
647 0001552E 0d effffffa6c 50 movl _status_index,r0
648 00015535 0d 40effffffa64 movl _status_array[r0],_sgl_dummy1
effffffa5f
649 00015541 # /*
650 00015541 # * If LOOP ON ERROR is set, this is the loop for this subtest.
651 00015541 # * The force loop flag is set after the first error.
652 00015541 # */
653 00015541 # asm("_cvfl_4_lp1:");
654 00015541 _cvfl_4_lp1:
655 00015541 # asm("movl _sgl_ld_acc,r4"); /* move operand to r4 */
656 00015541 0d effffffa59 54 movl _sgl_ld_acc,r4
657 00015548 # asm("ldf r4"); /* load the operand */
658 00015548 06 54 ldf r4
659 0001554A # asm("tstl _sgl_dummy1"); /* set the PSL status */
660 0001554A 5d effffffa50 tstl _sgl_dummy1
661 00015550 # asm("movpsl _init_psl"); /* save the initial PSL */
662 00015550 cd effffffa4a movpsl _init_psl
663 00015556 # asm("nop");
664 00015556 10 nop
665 00015557 # asm("cvfl r8"); /* convert the value */
666 00015557 86 58 cvfl r8
667 00015559 # asm("nop");
668 00015559 10 nop
669 0001555A # asm("movpsl _psl_val"); /* save the final PSL */
670 0001555A cd effffffa40 movpsl _psl_val
671 00015560 # asm("nop");
672 00015560 10 nop
673 00015561 # asm("stf _sgl_st_acc"); /* store the result */
674 00015561 26 effffffa39 stf _sgl_st_acc
675 00015567 # if( force_loop )
676 00015567 5d effffffa33 tstl _force_loop
677 0001556D 31 02 jeql L305
678 0001556F # asm("brb _cvfl_4_lp1");; /* loop on the error */
679 0001556F 11 d0 brb _cvfl_4_lp1
680 00015571 L305:
681 00015571 # /*
682 00015571 # * Now compare the final PSL to the initial PSL -they should be the same
683 00015571 # */
684 00015571 # asm("movl r8,_sgl_value_1"); /* save the converted int*/
685 00015571 0d 58 effffffa28 movl r8,_sgl_value_1
686 00015578 # exp_psl = init_psl;
687 00015578 0d effffffa22 effffffa1d movl _init_psl,_exp_psl
688 00015583 # exp_psl &= 0xfffffff3; /* clear ZERO, NEGATIVE */
689 00015583 ac 88f3 effffffa15 andl2 $-13,_exp_psl
690 0001558B # if( !sgl_expected )
691 0001558B 5d effffffa0f tstl _sgl_expected
692 00015591 21 07 jneq L306
693 00015593 # exp_psl |= PSL_Z; /* expect the ZERO bit set */
694 00015593 8c 04 effffffa06 orl2 $4,_exp_psl
695 0001559A # if( sgl_expected < 0 )
696 0001559A L306:
697 0001559A 5d effffffa00 tstl _sgl_expected
698 000155A0 81 07 jgeq L307
699 000155A2 # exp_psl |= PSL_N; /* expect the NEG bit set */
700 000155A2 8c 08 effffff9f7 orl2 $8,_exp_psl
701 000155A9 # if( psl_val != exp_psl ) {
702 000155A9 L307:
703 000155A9 1d effffff9f1 effffff9ec cmpl _psl_val,_exp_psl
704 000155B4 21 03 13 0118 jeql L308
705 000155B9 # errcnt++; /* bump the error count */
706 000155B9 6d effffff9e1 incl _errcnt
707 000155BF # if( prt_error ) {
708 000155BF 5d effffff9db tstl _prt_error
709 000155C5 21 03 13 00e4 jeql L309
710 000155CA # writes(" \n"); /* start a new print line */
711 000155CA .data 1
712 00000e0b * L310:
713 00000e0b * 200A00 .ascii " \12\0"
714 00000e0e * .text
715 000155CA dd 8f00000e0b pushl $L310
716 000155D0 fe 08 effffff9c9 callf $8,_writes
717 000155D7 # writes("cycle: ");
718 000155D7 .data 1
719 00000e0e * L311:
720 00000e0e * 6379636C653A2000 .ascii "cycle: \0"
721 00000e16 * .text
722 000155D7 dd 8f00000e0e pushl $L311
723 000155DD fe 08 effffff9bc callf $8,_writes
724 000155E4 # writed( cycle );
725 000155E4 dd effffff9b6 pushl _cycle
726 000155EA fe 08 effffff9af callf $8,_writed
727 000155F1 # writes(" CVFL test ");
728 000155F1 .data 1
729 00000e16 * L312:
730 00000e16 * 20204356464C2074657374200 .ascii " CVFL test \0"
0
731 00000e23 * .text
732 000155F1 dd 8f00000e16 pushl $L312
733 000155F7 fe 08 effffff9a2 callf $8,_writes
734 000155FE # writed( test_no );
735 000155FE dd effffff99c pushl _test_no
736 00015604 fe 08 effffff995 callf $8,_writed
737 0001560B # writes(", subtest 4 - INCORRECT FINAL PSL\n");
738 0001560B .data 1
739 00000e23 * L313:
740 00000e23 * 2C20737562746573742034202 .ascii ", subtest 4 - INCORRECT FINAL PSL\12\0"
D20494E434F52524543542046
494E414C2050534C0A00
741 00000e46 * .text
742 0001560B dd 8f00000e23 pushl $L313
743 00015611 fe 08 effffff988 callf $8,_writes
744 00015618 # print_cvfl_data(); /* print operands */
745 00015618 fe 04 ef00000515 callf $4,_print_cvfl_data
746 0001561F # writes("\n");
747 0001561F .data 1
748 00000e46 * L314:
749 00000e46 * 0A00 .ascii "\12\0"
750 00000e48 * .text
751 0001561F dd 8f00000e46 pushl $L314
752 00015625 fe 08 effffff974 callf $8,_writes
753 0001562C # writes(" final Acc = ");
754 0001562C .data 1
755 00000e48 * L315:
756 00000e48 * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
757 00000e57 * .text
758 0001562C dd 8f00000e48 pushl $L315
759 00015632 fe 08 effffff967 callf $8,_writes
760 00015639 # write32h( sgl_st_acc );
761 00015639 dd effffff961 pushl _sgl_st_acc
762 0001563F fe 08 effffff95a callf $8,_write32h
763 00015646 # writes("\n");
764 00015646 .data 1
765 00000e57 * L316:
766 00000e57 * 0A00 .ascii "\12\0"
767 00000e59 * .text
768 00015646 dd 8f00000e57 pushl $L316
769 0001564C fe 08 effffff94d callf $8,_writes
770 00015653 # writes("initial PSL = ");
771 00015653 .data 1
772 00000e59 * L317:
773 00000e59 * 696E697469616C2050534C203 .ascii "initial PSL = \0"
D2000
774 00000e68 * .text
775 00015653 dd 8f00000e59 pushl $L317
776 00015659 fe 08 effffff940 callf $8,_writes
777 00015660 # write32h( init_psl );
778 00015660 dd effffff93a pushl _init_psl
779 00015666 fe 08 effffff933 callf $8,_write32h
780 0001566D # writes(", final PSL = ");
781 0001566D .data 1
782 00000e68 * L318:
783 00000e68 * 2C202066696E616C2050534C2 .ascii ", final PSL = \0"
03D2000
784 00000e78 * .text
785 0001566D dd 8f00000e68 pushl $L318
786 00015673 fe 08 effffff926 callf $8,_writes
787 0001567A # write32h( psl_val );
788 0001567A dd effffff920 pushl _psl_val
789 00015680 fe 08 effffff919 callf $8,_write32h
790 00015687 # writes(", expected PSL = ");
791 00015687 .data 1
792 00000e78 * L319:
793 00000e78 * 2C20206578706563746564205 .ascii ", expected PSL = \0"
0534C203D2000
794 00000e8b * .text
795 00015687 dd 8f00000e78 pushl $L319
796 0001568D fe 08 effffff90c callf $8,_writes
797 00015694 # write32h( exp_psl );
798 00015694 dd effffff906 pushl _exp_psl
799 0001569A fe 08 effffff8ff callf $8,_write32h
800 000156A1 # writes("\n");
801 000156A1 .data 1
802 00000e8b * L320:
803 00000e8b * 0A00 .ascii "\12\0"
804 00000e8d * .text
805 000156A1 dd 8f00000e8b pushl $L320
806 000156A7 fe 08 effffff8f2 callf $8,_writes
807 000156AE # }
808 000156AE # if( halt_flg )
809 000156AE L309:
810 000156AE 5d effffff8ec tstl _halt_flg
811 000156B4 31 09 jeql L321
812 000156B6 # cvfl_er_halt( BAD_PSL_HLT ); /* halt on error */
813 000156B6 dd 03 pushl $3
814 000156B8 fe 08 ef000004b1 callf $8,_cvfl_er_halt
815 000156BF # if( loop_on_err ) {
816 000156BF L321:
817 000156BF 5d effffff8db tstl _loop_on_err
818 000156C5 31 0a jeql L322
819 000156C7 # force_loop = TRUE; /* set force loop flag */
820 000156C7 0d 01 effffff8d2 movl $1,_force_loop
821 000156CE # asm("brw _cvfl_4_lp1");;/* and loop on error */
822 000156CE 13 fe70 brw _cvfl_4_lp1
823 000156D1 # } /* end of loop on error */
824 000156D1 # } /* end of PSL corruption error */
825 000156D1 L322:
826 000156D1 # } /* end of status WHILE loop */
827 000156D1 L308:
828 000156D1 L302:
829 000156D1 6d effffff8c9 incl _status_index
830 000156D7 13 fe48 jbr L304
831 000156DA L303:
832 000156DA # } /* end of data WHILE loop */
833 000156DA L299:
834 000156DA 6d effffff8c0 incl _index
835 000156E0 13 fdfd jbr L301
836 000156E3 L300:
837 000156E3 # } /* end of subtest 4 */
838 000156E3 40 ret#2
839 000156E4 .set L295,0x0
840 000156E4 L297:
841 000156E4 13 fde6 jbr L298
842 000156E7 .data
843 00000ca0 * .text
844 000156E7 00 .align 1
845 000156E8 .globl _cvfl_5
846 000156E8 _cvfl_5:
847 000156E8 0000 .word L323
848 000156EA #
849 000156EA #
850 000156EA #
851 000156EA # /************************************************************************
852 000156EA # *
853 000156EA # * SUBTEST 5 - accumulator corruption
854 000156EA # *
855 000156EA # ************************************************************************/
856 000156EA # cvfl_5()
857 000156EA # {
858 000156EA 13 015e jbr L325
859 000156ED L326:
860 000156ED # force_loop = FALSE;
861 000156ED 4d effffff8ad clrl _force_loop
862 000156F3 # subtest = 5;
863 000156F3 0d 05 effffff8a6 movl $5,_subtest
864 000156FA # for( index = 0; index < max_cvfl_1_index; index++ ) {
865 000156FA 4d effffff8a0 clrl _index
866 00015700 L329:
867 00015700 1d effffff89a effffff895 cmpl _index,_max_cvfl_1_index
868 0001570B 91 03 13 013a jgeq L328
869 00015710 # sgl_ld_acc = cvfl_1_data[index].ld; /* get value to convert */
870 00015710 0d effffff88a 50 movl _index,r0
871 00015717 48 03 50 50 shll $3,r0,r0
872 0001571B 0d e000000000 effffff87a movl _cvfl_1_data(r0),_sgl_ld_acc
873 00015726 # if( sgl_ld_acc & 0x7f800000 )
874 00015726 3d 8f7f800000 effffff86f bitl $2139095040,_sgl_ld_acc
875 00015731 31 0d jeql L330
876 00015733 # sgl_expected = sgl_ld_acc;
877 00015733 0d effffff867 effffff862 movl _sgl_ld_acc,_sgl_expected
878 0001573E # else
879 0001573E 11 06 jbr L331
880 00015740 L330:
881 00015740 # sgl_expected = 0;
882 00015740 4d effffff85a clrl _sgl_expected
883 00015746 L331:
884 00015746 # /*
885 00015746 # * If LOOP ON ERROR is set, this is the loop for this subtest.
886 00015746 # * The force loop flag is set after the first error.
887 00015746 # */
888 00015746 # asm("_cvfl_5_lp1:");
889 00015746 _cvfl_5_lp1:
890 00015746 # asm("ldf _sgl_ld_acc"); /* load the base value */
891 00015746 06 effffff854 ldf _sgl_ld_acc
892 0001574C # asm("cvfl _sgl_value_1"); /* store the result */
893 0001574C 86 effffff84e cvfl _sgl_value_1
894 00015752 # asm("stf _sgl_st_acc"); /* store the result */
895 00015752 26 effffff848 stf _sgl_st_acc
896 00015758 # if( force_loop )
897 00015758 5d effffff842 tstl _force_loop
898 0001575E 31 02 jeql L332
899 00015760 # asm("brb _cvfl_5_lp1");; /* loop on the error */
900 00015760 11 e4 brb _cvfl_5_lp1
901 00015762 L332:
902 00015762 # /*
903 00015762 # * end error loop - test the results
904 00015762 # */
905 00015762 # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
906 00015762 1d effffff838 effffff833 cmpl _sgl_st_acc,_sgl_expected
907 0001576D 21 03 13 00cf jeql L333
908 00015772 # errcnt++; /* bump the error count */
909 00015772 6d effffff828 incl _errcnt
910 00015778 # if( prt_error ) {
911 00015778 5d effffff822 tstl _prt_error
912 0001577E 21 03 13 009b jeql L334
913 00015783 # writes(" \n"); /* start a new print line */
914 00015783 .data 1
915 00000e8d * L335:
916 00000e8d * 200A00 .ascii " \12\0"
917 00000e90 * .text
918 00015783 dd 8f00000e8d pushl $L335
919 00015789 fe 08 effffff810 callf $8,_writes
920 00015790 # writes("cycle: ");
921 00015790 .data 1
922 00000e90 * L336:
923 00000e90 * 6379636C653A2000 .ascii "cycle: \0"
924 00000e98 * .text
925 00015790 dd 8f00000e90 pushl $L336
926 00015796 fe 08 effffff803 callf $8,_writes
927 0001579D # writed( cycle );
928 0001579D dd effffff7fd pushl _cycle
929 000157A3 fe 08 effffff7f6 callf $8,_writed
930 000157AA # writes(" CVFL test ");
931 000157AA .data 1
932 00000e98 * L337:
933 00000e98 * 20204356464C2074657374200 .ascii " CVFL test \0"
0
934 00000ea5 * .text
935 000157AA dd 8f00000e98 pushl $L337
936 000157B0 fe 08 effffff7e9 callf $8,_writes
937 000157B7 # writed( test_no );
938 000157B7 dd effffff7e3 pushl _test_no
939 000157BD fe 08 effffff7dc callf $8,_writed
940 000157C4 # writes(", subtest 5 (Cache Data) - BAD_FINAL_ACC\n");
941 000157C4 .data 1
942 00000ea5 * L338:
943 00000ea5 * 2C20737562746573742035202 .ascii ", subtest 5 (Cache Data) - BAD_FINAL_ACC\12\0"
8436163686520446174612920
2D204241445F46494E414C5F4
143430A00
944 00000ecf * .text
945 000157C4 dd 8f00000ea5 pushl $L338
946 000157CA fe 08 effffff7cf callf $8,_writes
947 000157D1 # print_cvfl_data();
948 000157D1 fe 04 ef0000035c callf $4,_print_cvfl_data
949 000157D8 # writec('\n');
950 000157D8 dd 0a pushl $10
951 000157DA fe 08 effffff7bf callf $8,_writec
952 000157E1 # writes(" final Acc = ");
953 000157E1 .data 1
954 00000ecf * L339:
955 00000ecf * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
956 00000ede * .text
957 000157E1 dd 8f00000ecf pushl $L339
958 000157E7 fe 08 effffff7b2 callf $8,_writes
959 000157EE # write32h( sgl_value_1 );
960 000157EE dd effffff7ac pushl _sgl_value_1
961 000157F4 fe 08 effffff7a5 callf $8,_write32h
962 000157FB # writes(", expected Acc = ");
963 000157FB .data 1
964 00000ede * L340:
965 00000ede * 2C20202020657870656374656 .ascii ", expected Acc = \0"
420416363203D2000
966 00000ef3 * .text
967 000157FB dd 8f00000ede pushl $L340
968 00015801 fe 08 effffff798 callf $8,_writes
969 00015808 # write32h( sgl_ld_acc );
970 00015808 dd effffff792 pushl _sgl_ld_acc
971 0001580E fe 08 effffff78b callf $8,_write32h
972 00015815 # writec('\n');
973 00015815 dd 0a pushl $10
974 00015817 fe 08 effffff782 callf $8,_writec
975 0001581E # }
976 0001581E # if( halt_flg )
977 0001581E L334:
978 0001581E 5d effffff77c tstl _halt_flg
979 00015824 31 09 jeql L341
980 00015826 # cvfl_er_halt( BAD_ACC_HLT ); /* halt on the error */
981 00015826 dd 01 pushl $1
982 00015828 fe 08 ef00000341 callf $8,_cvfl_er_halt
983 0001582F # if( loop_on_err ) {
984 0001582F L341:
985 0001582F 5d effffff76b tstl _loop_on_err
986 00015835 31 0a jeql L342
987 00015837 # force_loop = TRUE; /* set the force loop flag */
988 00015837 0d 01 effffff762 movl $1,_force_loop
989 0001583E # asm("brw _cvfl_1_lp1");; /* and loop on the error */
990 0001583E 13 f811 brw _cvfl_1_lp1
991 00015841 # } /* end of loop on error */
992 00015841 # } /* end of compare error */
993 00015841 L342:
994 00015841 # } /* end of WHILE loop */
995 00015841 L333:
996 00015841 L327:
997 00015841 6d effffff759 incl _index
998 00015847 13 feb6 jbr L329
999 0001584A L328:
1000 0001584A # } /* end of subtest 5 */
1001 0001584A 40 ret#2
1002 0001584B .set L323,0x0
1003 0001584B L325:
1004 0001584B 13 fe9f jbr L326
1005 0001584E .data
1006 00000ca0 * .text
1007 0001584E .align 1
1008 0001584E .globl _cvfl_6
1009 0001584E _cvfl_6:
1010 0001584E 0000 .word L343
1011 00015850 #
1012 00015850 #
1013 00015850 #
1014 00015850 # /************************************************************************
1015 00015850 # *
1016 00015850 # * SUBTEST 6 - pipelined entry test
1017 00015850 # *
1018 00015850 # ************************************************************************/
1019 00015850 # cvfl_6()
1020 00015850 # {
1021 00015850 13 0163 jbr L345
1022 00015853 L346:
1023 00015853 # force_loop = FALSE;
1024 00015853 4d effffff747 clrl _force_loop
1025 00015859 # subtest = 6;
1026 00015859 0d 06 effffff740 movl $6,_subtest
1027 00015860 # for( index = 0; index < max_cvfl_1_index; index++ ) {
1028 00015860 4d effffff73a clrl _index
1029 00015866 L349:
1030 00015866 1d effffff734 effffff72f cmpl _index,_max_cvfl_1_index
1031 00015871 91 03 13 013f jgeq L348
1032 00015876 # sgl_ld_acc = cvfl_1_data[index].ld; /* get value to convert */
1033 00015876 0d effffff724 50 movl _index,r0
1034 0001587D 48 03 50 50 shll $3,r0,r0
1035 00015881 0d e000000000 effffff714 movl _cvfl_1_data(r0),_sgl_ld_acc
1036 0001588C # if( sgl_ld_acc & 0x7f800000 )
1037 0001588C 3d 8f7f800000 effffff709 bitl $2139095040,_sgl_ld_acc
1038 00015897 31 0d jeql L350
1039 00015899 # sgl_expected = sgl_ld_acc; /* expected = loaded */
1040 00015899 0d effffff701 effffff6fc movl _sgl_ld_acc,_sgl_expected
1041 000158A4 # else
1042 000158A4 11 06 jbr L351
1043 000158A6 L350:
1044 000158A6 # sgl_expected = 0; /* expect a '0' */
1045 000158A6 4d effffff6f4 clrl _sgl_expected
1046 000158AC L351:
1047 000158AC # /*
1048 000158AC # * If LOOP ON ERROR is set, this is the loop for this subtest.
1049 000158AC # * The force loop flag is set after the first error.
1050 000158AC # */
1051 000158AC # asm("_cvfl_6_lp1:");
1052 000158AC _cvfl_6_lp1:
1053 000158AC # asm("movl $0,r0"); /* clear r0 */
1054 000158AC 0d 00 50 movl $0,r0
1055 000158AF # asm("ldf r0"); /* load the Acc. with 0.0 */
1056 000158AF 06 50 ldf r0
1057 000158B1 # asm("addf _sgl_ld_acc"); /* add the base value */
1058 000158B1 c6 effffff6e9 addf _sgl_ld_acc
1059 000158B7 # asm("cvfl _sgl_value_1"); /* convert the value */
1060 000158B7 86 effffff6e3 cvfl _sgl_value_1
1061 000158BD # asm("stf _sgl_st_acc"); /* store the result */
1062 000158BD 26 effffff6dd stf _sgl_st_acc
1063 000158C3 # if( force_loop )
1064 000158C3 5d effffff6d7 tstl _force_loop
1065 000158C9 31 02 jeql L352
1066 000158CB # asm("brb _cvfl_6_lp1");; /* loop on the error */
1067 000158CB 11 df brb _cvfl_6_lp1
1068 000158CD L352:
1069 000158CD # /*
1070 000158CD # * end error loop - test the results
1071 000158CD # */
1072 000158CD # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
1073 000158CD 1d effffff6cd effffff6c8 cmpl _sgl_st_acc,_sgl_expected
1074 000158D8 21 03 13 00cf jeql L353
1075 000158DD # errcnt++; /* bump the error count */
1076 000158DD 6d effffff6bd incl _errcnt
1077 000158E3 # if( prt_error ) {
1078 000158E3 5d effffff6b7 tstl _prt_error
1079 000158E9 21 03 13 009b jeql L354
1080 000158EE # writes(" \n"); /* start a new print line */
1081 000158EE .data 1
1082 00000ef3 * L355:
1083 00000ef3 * 200A00 .ascii " \12\0"
1084 00000ef6 * .text
1085 000158EE dd 8f00000ef3 pushl $L355
1086 000158F4 fe 08 effffff6a5 callf $8,_writes
1087 000158FB # writes("cycle: ");
1088 000158FB .data 1
1089 00000ef6 * L356:
1090 00000ef6 * 6379636C653A2000 .ascii "cycle: \0"
1091 00000efe * .text
1092 000158FB dd 8f00000ef6 pushl $L356
1093 00015901 fe 08 effffff698 callf $8,_writes
1094 00015908 # writed( cycle );
1095 00015908 dd effffff692 pushl _cycle
1096 0001590E fe 08 effffff68b callf $8,_writed
1097 00015915 # writes(" CVFL test ");
1098 00015915 .data 1
1099 00000efe * L357:
1100 00000efe * 20204356464C2074657374200 .ascii " CVFL test \0"
0
1101 00000f0b * .text
1102 00015915 dd 8f00000efe pushl $L357
1103 0001591B fe 08 effffff67e callf $8,_writes
1104 00015922 # writed( test_no );
1105 00015922 dd effffff678 pushl _test_no
1106 00015928 fe 08 effffff671 callf $8,_writed
1107 0001592F # writes(", subtest 6 (Piped Entry) - BAD_FINAL_ACC\n");
1108 0001592F .data 1
1109 00000f0b * L358:
1110 00000f0b * 2C20737562746573742036202 .ascii ", subtest 6 (Piped Entry) - BAD_FINAL_ACC\12\0"
8506970656420456E74727929
202D204241445F46494E414C5
F4143430A00
1111 00000f36 * .text
1112 0001592F dd 8f00000f0b pushl $L358
1113 00015935 fe 08 effffff664 callf $8,_writes
1114 0001593C # print_cvfl_data();
1115 0001593C fe 04 ef000001f1 callf $4,_print_cvfl_data
1116 00015943 # writec('\n');
1117 00015943 dd 0a pushl $10
1118 00015945 fe 08 effffff654 callf $8,_writec
1119 0001594C # writes(" final Acc = ");
1120 0001594C .data 1
1121 00000f36 * L359:
1122 00000f36 * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
1123 00000f45 * .text
1124 0001594C dd 8f00000f36 pushl $L359
1125 00015952 fe 08 effffff647 callf $8,_writes
1126 00015959 # write32h( sgl_value_1 );
1127 00015959 dd effffff641 pushl _sgl_value_1
1128 0001595F fe 08 effffff63a callf $8,_write32h
1129 00015966 # writes(", expected Acc = ");
1130 00015966 .data 1
1131 00000f45 * L360:
1132 00000f45 * 2C20657870656374656420416 .ascii ", expected Acc = \0"
363203D2000
1133 00000f57 * .text
1134 00015966 dd 8f00000f45 pushl $L360
1135 0001596C fe 08 effffff62d callf $8,_writes
1136 00015973 # write32h( sgl_ld_acc );
1137 00015973 dd effffff627 pushl _sgl_ld_acc
1138 00015979 fe 08 effffff620 callf $8,_write32h
1139 00015980 # writec('\n');
1140 00015980 dd 0a pushl $10
1141 00015982 fe 08 effffff617 callf $8,_writec
1142 00015989 # }
1143 00015989 # if( halt_flg )
1144 00015989 L354:
1145 00015989 5d effffff611 tstl _halt_flg
1146 0001598F 31 09 jeql L361
1147 00015991 # cvfl_er_halt( BAD_ACC_HLT ); /* halt on the error */
1148 00015991 dd 01 pushl $1
1149 00015993 fe 08 ef000001d6 callf $8,_cvfl_er_halt
1150 0001599A # if( loop_on_err ) {
1151 0001599A L361:
1152 0001599A 5d effffff600 tstl _loop_on_err
1153 000159A0 31 0a jeql L362
1154 000159A2 # force_loop = TRUE; /* set the force loop flag */
1155 000159A2 0d 01 effffff5f7 movl $1,_force_loop
1156 000159A9 # asm("brw _cvfl_6_lp1");; /* and loop on the error */
1157 000159A9 13 ff00 brw _cvfl_6_lp1
1158 000159AC # } /* end of loop on error */
1159 000159AC # } /* end of compare error */
1160 000159AC L362:
1161 000159AC # } /* end of WHILE loop */
1162 000159AC L353:
1163 000159AC L347:
1164 000159AC 6d effffff5ee incl _index
1165 000159B2 13 feb1 jbr L349
1166 000159B5 L348:
1167 000159B5 # } /* end of subtest 6 */
1168 000159B5 40 ret#2
1169 000159B6 .set L343,0x0
1170 000159B6 L345:
1171 000159B6 13 fe9a jbr L346
1172 000159B9 .data
1173 00000ca0 * .text
1174 000159B9 00 .align 1
1175 000159BA .globl _cvfl_7
1176 000159BA _cvfl_7:
1177 000159BA 0000 .word L364
1178 000159BC #
1179 000159BC #
1180 000159BC #
1181 000159BC # /************************************************************************
1182 000159BC # *
1183 000159BC # * SUBTEST 7 - pipelined exit test
1184 000159BC # *
1185 000159BC # ************************************************************************/
1186 000159BC # cvfl_7()
1187 000159BC # {
1188 000159BC 13 0172 jbr L366
1189 000159BF L367:
1190 000159BF # force_loop = FALSE;
1191 000159BF 4d effffff5db clrl _force_loop
1192 000159C5 # subtest = 7;
1193 000159C5 0d 07 effffff5d4 movl $7,_subtest
1194 000159CC # for( index = 0; index < max_cvfl_1_index; index++ ) {
1195 000159CC 4d effffff5ce clrl _index
1196 000159D2 L370:
1197 000159D2 1d effffff5c8 effffff5c3 cmpl _index,_max_cvfl_1_index
1198 000159DD 91 03 13 014e jgeq L369
1199 000159E2 # sgl_ld_acc = cvfl_1_data[index].ld; /* get value to negate */
1200 000159E2 0d effffff5b8 50 movl _index,r0
1201 000159E9 48 03 50 50 shll $3,r0,r0
1202 000159ED 0d e000000000 effffff5a8 movl _cvfl_1_data(r0),_sgl_ld_acc
1203 000159F8 # if( sgl_ld_acc & 0x7f800000 )
1204 000159F8 3d 8f7f800000 effffff59d bitl $2139095040,_sgl_ld_acc
1205 00015A03 31 0d jeql L371
1206 00015A05 # sgl_expected = sgl_ld_acc; /* expected = loaded */
1207 00015A05 0d effffff595 effffff590 movl _sgl_ld_acc,_sgl_expected
1208 00015A10 # else
1209 00015A10 11 06 jbr L372
1210 00015A12 L371:
1211 00015A12 # sgl_expected = 0; /* expect a '0' */
1212 00015A12 4d effffff588 clrl _sgl_expected
1213 00015A18 L372:
1214 00015A18 # /*
1215 00015A18 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1216 00015A18 # * The force loop flag is set after the first error.
1217 00015A18 # */
1218 00015A18 # asm("_cvfl_7_lp1:");
1219 00015A18 _cvfl_7_lp1:
1220 00015A18 # asm("movl $0,r0"); /* clear r0 */
1221 00015A18 0d 00 50 movl $0,r0
1222 00015A1B # asm("ldf _sgl_ld_acc"); /* load the value */
1223 00015A1B 06 effffff57f ldf _sgl_ld_acc
1224 00015A21 # asm("cvfl _sgl_value_1"); /* convert the value */
1225 00015A21 86 effffff579 cvfl _sgl_value_1
1226 00015A27 # asm("addf r0"); /* add a zero to the acc */
1227 00015A27 c6 50 addf r0
1228 00015A29 # asm("stf _sgl_st_acc"); /* store the result */
1229 00015A29 26 effffff571 stf _sgl_st_acc
1230 00015A2F # if( force_loop )
1231 00015A2F 5d effffff56b tstl _force_loop
1232 00015A35 31 02 jeql L373
1233 00015A37 # asm("brb _cvfl_7_lp1");; /* loop on the error */
1234 00015A37 11 df brb _cvfl_7_lp1
1235 00015A39 L373:
1236 00015A39 # /*
1237 00015A39 # * end error loop - test the results
1238 00015A39 # */
1239 00015A39 # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
1240 00015A39 1d effffff561 effffff55c cmpl _sgl_st_acc,_sgl_expected
1241 00015A44 21 03 13 00de jeql L374
1242 00015A49 # errcnt++; /* bump the error count */
1243 00015A49 6d effffff551 incl _errcnt
1244 00015A4F # if( prt_error ) {
1245 00015A4F 5d effffff54b tstl _prt_error
1246 00015A55 21 03 13 00aa jeql L375
1247 00015A5A # writes(" \n"); /* start a new print line */
1248 00015A5A .data 1
1249 00000f57 * L376:
1250 00000f57 * 200A00 .ascii " \12\0"
1251 00000f5a * .text
1252 00015A5A dd 8f00000f57 pushl $L376
1253 00015A60 fe 08 effffff539 callf $8,_writes
1254 00015A67 # writes("cycle: ");
1255 00015A67 .data 1
1256 00000f5a * L377:
1257 00000f5a * 6379636C653A2000 .ascii "cycle: \0"
1258 00000f62 * .text
1259 00015A67 dd 8f00000f5a pushl $L377
1260 00015A6D fe 08 effffff52c callf $8,_writes
1261 00015A74 # writed( cycle );
1262 00015A74 dd effffff526 pushl _cycle
1263 00015A7A fe 08 effffff51f callf $8,_writed
1264 00015A81 # writes(" CVFL test ");
1265 00015A81 .data 1
1266 00000f62 * L378:
1267 00000f62 * 20204356464C2074657374200 .ascii " CVFL test \0"
0
1268 00000f6f * .text
1269 00015A81 dd 8f00000f62 pushl $L378
1270 00015A87 fe 08 effffff512 callf $8,_writes
1271 00015A8E # writed( test_no );
1272 00015A8E dd effffff50c pushl _test_no
1273 00015A94 fe 08 effffff505 callf $8,_writed
1274 00015A9B # writes(", subtest 7 (piped exit) - BAD_FINAL_ACC\n");
1275 00015A9B .data 1
1276 00000f6f * L379:
1277 00000f6f * 2C20737562746573742037202 .ascii ", subtest 7 (piped exit) - BAD_FINAL_ACC\12\0"
8706970656420657869742920
2D204241445F46494E414C5F4
143430A00
1278 00000f99 * .text
1279 00015A9B dd 8f00000f6f pushl $L379
1280 00015AA1 fe 08 effffff4f8 callf $8,_writes
1281 00015AA8 # print_cvfl_data();
1282 00015AA8 fe 04 ef00000085 callf $4,_print_cvfl_data
1283 00015AAF # writes(" final Acc = ");
1284 00015AAF .data 1
1285 00000f99 * L380:
1286 00000f99 * 202066696E616C20416363203 .ascii " final Acc = \0"
D2000
1287 00000fa8 * .text
1288 00015AAF dd 8f00000f99 pushl $L380
1289 00015AB5 fe 08 effffff4e4 callf $8,_writes
1290 00015ABC # write32h( sgl_st_acc );
1291 00015ABC dd effffff4de pushl _sgl_st_acc
1292 00015AC2 fe 08 effffff4d7 callf $8,_write32h
1293 00015AC9 # writes(", expected Acc = ");
1294 00015AC9 .data 1
1295 00000fa8 * L381:
1296 00000fa8 * 2C20202020657870656374656 .ascii ", expected Acc = \0"
420416363203D2000
1297 00000fbd * .text
1298 00015AC9 dd 8f00000fa8 pushl $L381
1299 00015ACF fe 08 effffff4ca callf $8,_writes
1300 00015AD6 # if( sgl_ld_acc & 0x7f800000 )
1301 00015AD6 3d 8f7f800000 effffff4bf bitl $2139095040,_sgl_ld_acc
1302 00015AE1 31 0f jeql L382
1303 00015AE3 # write32h( sgl_ld_acc );
1304 00015AE3 dd effffff4b7 pushl _sgl_ld_acc
1305 00015AE9 fe 08 effffff4b0 callf $8,_write32h
1306 00015AF0 # else
1307 00015AF0 11 09 jbr L383
1308 00015AF2 L382:
1309 00015AF2 # write32h( 0 );
1310 00015AF2 dd 00 pushl $0
1311 00015AF4 fe 08 effffff4a5 callf $8,_write32h
1312 00015AFB L383:
1313 00015AFB # writec('\n');
1314 00015AFB dd 0a pushl $10
1315 00015AFD fe 08 effffff49c callf $8,_writec
1316 00015B04 # }
1317 00015B04 # if( halt_flg )
1318 00015B04 L375:
1319 00015B04 5d effffff496 tstl _halt_flg
1320 00015B0A 31 09 jeql L384
1321 00015B0C # cvfl_er_halt( BAD_ACC_HLT ); /* halt on the error */
1322 00015B0C dd 01 pushl $1
1323 00015B0E fe 08 ef0000005b callf $8,_cvfl_er_halt
1324 00015B15 # if( loop_on_err ) {
1325 00015B15 L384:
1326 00015B15 5d effffff485 tstl _loop_on_err
1327 00015B1B 31 0a jeql L385
1328 00015B1D # force_loop = TRUE; /* set the force loop flag */
1329 00015B1D 0d 01 effffff47c movl $1,_force_loop
1330 00015B24 # asm("brw _cvfl_7_lp1");; /* and loop on the error */
1331 00015B24 13 fef1 brw _cvfl_7_lp1
1332 00015B27 # } /* end of loop on error */
1333 00015B27 # } /* end of compare error */
1334 00015B27 L385:
1335 00015B27 # } /* end of WHILE loop */
1336 00015B27 L374:
1337 00015B27 L368:
1338 00015B27 6d effffff473 incl _index
1339 00015B2D 13 fea2 jbr L370
1340 00015B30 L369:
1341 00015B30 # } /* end of subtest 7 */
1342 00015B30 40 ret#2
1343 00015B31 .set L364,0x0
1344 00015B31 L366:
1345 00015B31 13 fe8b jbr L367
1346 00015B34 .data
1347 00000ca0 * .text
1348 00015B34 .align 1
1349 00015B34 .globl _print_cvfl_data
1350 00015B34 _print_cvfl_data:
1351 00015B34 0000 .word L386
1352 00015B36 #
1353 00015B36 #
1354 00015B36 #
1355 00015B36 # /**************************************************************************
1356 00015B36 # *
1357 00015B36 # * PRINT THE DATA AND STORE RESULTS
1358 00015B36 # *
1359 00015B36 # * initial Acc = xxxxxxxx, int. stored = xxxxxxxx, data index = xx
1360 00015B36 # **************************************************************************/
1361 00015B36 # print_cvfl_data()
1362 00015B36 # {
1363 00015B36 11 35 jbr L388
1364 00015B38 L389:
1365 00015B38 # writes("initial Acc = ");
1366 00015B38 .data 1
1367 00000fbd * L390:
1368 00000fbd * 696E697469616C20416363203 .ascii "initial Acc = \0"
D2000
1369 00000fcc * .text
1370 00015B38 dd 8f00000fbd pushl $L390
1371 00015B3E fe 08 effffff45b callf $8,_writes
1372 00015B45 # write32h( sgl_ld_acc );
1373 00015B45 dd effffff455 pushl _sgl_ld_acc
1374 00015B4B fe 08 effffff44e callf $8,_write32h
1375 00015B52 # writes(", int. stored = ");
1376 00015B52 .data 1
1377 00000fcc * L391:
1378 00000fcc * 2C202020696E742E2073746F7 .ascii ", int. stored = \0"
26564203D2000
1379 00000fdf * .text
1380 00015B52 dd 8f00000fcc pushl $L391
1381 00015B58 fe 08 effffff441 callf $8,_writes
1382 00015B5F # write32h( sgl_value_1 );
1383 00015B5F dd effffff43b pushl _sgl_value_1
1384 00015B65 fe 08 effffff434 callf $8,_write32h
1385 00015B6C # }
1386 00015B6C 40 ret#2
1387 00015B6D .set L386,0x0
1388 00015B6D L388:
1389 00015B6D 11 c9 jbr L389
1390 00015B6F .data
1391 00000ca0 * .text
1392 00015B6F 00 .align 1
1393 00015B70 .globl _cvfl_er_halt
1394 00015B70 _cvfl_er_halt:
1395 00015B70 0000 .word L392
1396 00015B72 #
1397 00015B72 #
1398 00015B72 #
1399 00015B72 # /**************************************************************************
1400 00015B72 # *
1401 00015B72 # * HALT ON ERROR ROUTINE
1402 00015B72 # *
1403 00015B72 # **************************************************************************/
1404 00015B72 # cvfl_er_halt( halt_code )
1405 00015B72 # int halt_code;
1406 00015B72 # {
1407 00015B72 13 00c5 jbr L394
1408 00015B75 L395:
1409 00015B75 # sgl_dummy1 = halt_code; /* get the error type */
1410 00015B75 0d ad04 effffff423 movl 4(fp),_sgl_dummy1
1411 00015B7D # asm("movl _test_no,r0"); /* r0 = test number */
1412 00015B7D 0d effffff41d 50 movl _test_no,r0
1413 00015B84 # asm("movl _subtest,r1"); /* r1 = subtest number */
1414 00015B84 0d effffff416 51 movl _subtest,r1
1415 00015B8B # asm("movl _sgl_dummy1,r2"); /* r2 = error code */
1416 00015B8B 0d effffff40f 52 movl _sgl_dummy1,r2
1417 00015B92 # asm("movl _cycle,r3"); /* r3 = cycle count */
1418 00015B92 0d effffff408 53 movl _cycle,r3
1419 00015B99 # asm("movl _sgl_ld_acc,r4"); /* r4 = initial data */
1420 00015B99 0d effffff401 54 movl _sgl_ld_acc,r4
1421 00015BA0 # asm("movl _sgl_value_1,r5"); /* r5 = final acc */
1422 00015BA0 0d effffff3fa 55 movl _sgl_value_1,r5
1423 00015BA7 # asm("movl _sgl_st_acc,r6"); /* r6 = integer stored */
1424 00015BA7 0d effffff3f3 56 movl _sgl_st_acc,r6
1425 00015BAE # if( halt_code == BAD_ACC_HLT ) {
1426 00015BAE 1d ad04 01 cmpl 4(fp),$1
1427 00015BB2 21 10 jneq L396
1428 00015BB4 # asm("movl _sgl_ld_acc,r7"); /* r7 = expected acc */
1429 00015BB4 0d effffff3e6 57 movl _sgl_ld_acc,r7
1430 00015BBB # asm("movl _index,r8"); /* r8 = data index */
1431 00015BBB 0d effffff3df 58 movl _index,r8
1432 00015BC2 # } else
1433 00015BC2 11 74 jbr L397
1434 00015BC4 L396:
1435 00015BC4 # if( halt_code == BAD_REG_HLT ) {
1436 00015BC4 1d ad04 02 cmpl 4(fp),$2
1437 00015BC8 21 3d jneq L398
1438 00015BCA # sgl_dummy1 = load_regs[index2];
1439 00015BCA 0d effffff3d0 50 movl _index2,r0
1440 00015BD1 0d 40effffff3c8 movl _load_regs[r0],_sgl_dummy1
effffff3c3
1441 00015BDD # sgl_dummy2 = store_regs[index2];
1442 00015BDD 0d effffff3bd 50 movl _index2,r0
1443 00015BE4 0d 40effffff3b5 movl _store_regs[r0],_sgl_dummy2
effffff3b0
1444 00015BF0 # asm("movl _index2,r7"); /* r7 = bad register # */
1445 00015BF0 0d effffff3aa 57 movl _index2,r7
1446 00015BF7 # asm("movl _sgl_dummy2,r8"); /* r8 = final reg value */
1447 00015BF7 0d effffff3a3 58 movl _sgl_dummy2,r8
1448 00015BFE # asm("movl _sgl_dummy1,r9"); /* r9 = init reg value */
1449 00015BFE 0d effffff39c 59 movl _sgl_dummy1,r9
1450 00015C05 # } else
1451 00015C05 11 31 jbr L399
1452 00015C07 L398:
1453 00015C07 # if( halt_code == BAD_PSL_HLT ) {
1454 00015C07 1d ad04 03 cmpl 4(fp),$3
1455 00015C0B 21 17 jneq L400
1456 00015C0D # asm("movl _init_psl,r7"); /* r7 = initial PSL */
1457 00015C0D 0d effffff38d 57 movl _init_psl,r7
1458 00015C14 # asm("movl _psl_val,r8"); /* r8 = final PSL */
1459 00015C14 0d effffff386 58 movl _psl_val,r8
1460 00015C1B # asm("movl _exp_psl,r9"); /* r9 = expected PSL */
1461 00015C1B 0d effffff37f 59 movl _exp_psl,r9
1462 00015C22 # } else
1463 00015C22 11 14 jbr L401
1464 00015C24 L400:
1465 00015C24 # if( halt_code == BAD_STORE_HLT ) {
1466 00015C24 1d ad04 09 cmpl 4(fp),$9
1467 00015C28 21 0e jneq L402
1468 00015C2A # asm("movl _sgl_expected,r7"); /* r7 = data expectd */
1469 00015C2A 0d effffff370 57 movl _sgl_expected,r7
1470 00015C31 # asm("movl _index,r8"); /* r8 = data index */
1471 00015C31 0d effffff369 58 movl _index,r8
1472 00015C38 # };
1473 00015C38 L402:
1474 00015C38 L401:
1475 00015C38 L399:
1476 00015C38 L397:
1477 00015C38 # asm("halt"); /* HALT ... */
1478 00015C38 00 halt
1479 00015C39 # }
1480 00015C39 40 ret#2
1481 00015C3A .set L392,0x0
1482 00015C3A L394:
1483 00015C3A 13 ff38 jbr L395
1484 00015C3D .data
1484 0002ABDD .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.