|
|
Power 6/32 Unix version 1.21
1 00000000 LL0:
2 00000000 .data
3 00000920 * .text
4 00000000 .align 1
5 00000000 .globl _cvld
6 00000000 _cvld:
7 0001D188 0000 .word L215
8 0001D18A #
9 0001D18A # #include "fpp_defs.h"
10 0001D18A #
11 0001D18A #
12 0001D18A # /*****************************************************************************
13 0001D18A # *
14 0001D18A # * CVLD - SINGLE PRECISION FLOATING POINT CONVERT LONG TO FLOAT TEST
15 0001D18A # *
16 0001D18A # *****************************************************************************/
17 0001D18A # cvld()
18 0001D18A # {
19 0001D18A 11 41 jbr L217
20 0001D18C L218:
21 0001D18C # asm(".globl _cvld_t");
22 0001D18C .globl _cvld_t
23 0001D18C # asm("_cvld_t:"); /* entry address */
24 0001D18C _cvld_t:
25 0001D18C # if( ( cycle ==1 ) && ( prt_hdrs ) ) /* print headers on 1st pass */
26 0001D18C 1d effffffff6 01 cmpl _cycle,$1
27 0001D193 21 15 jneq L219
28 0001D195 5d efffffffed tstl _prt_hdrs
29 0001D19B 31 0d jeql L219
30 0001D19D # writes(" CVLD");
31 0001D19D .data 1
32 00000920 * L221:
33 00000920 * 2043564C4400 .ascii " CVLD\0"
34 00000926 * .text
35 0001D19D dd 8f00000920 pushl $L221
36 0001D1A3 fe 08 efffffffde callf $8,_writes
37 0001D1AA # cvld_1(); /* load through a register */
38 0001D1AA L219:
39 0001D1AA fe 04 ef0000001f callf $4,_cvld_1
40 0001D1B1 # cvld_2(); /* load through the cache */
41 0001D1B1 fe 04 ef000001e0 callf $4,_cvld_2
42 0001D1B8 # cvld_3(); /* register stability */
43 0001D1B8 fe 04 ef00000389 callf $4,_cvld_3
44 0001D1BF # cvld_4(); /* PSL stability test */
45 0001D1BF fe 04 ef0000057a callf $4,_cvld_4
46 0001D1C6 # asm("jmp *return"); /* return to the test monitor */
47 0001D1C6 71 ffffffffbc jmp *return
48 0001D1CC # }
49 0001D1CC 40 ret#2
50 0001D1CD .set L215,0x0
51 0001D1CD L217:
52 0001D1CD 11 bd jbr L218
53 0001D1CF .data
54 00000920 * .text
55 0001D1CF 00 .align 1
56 0001D1D0 .globl _cvld_1
57 0001D1D0 _cvld_1:
58 0001D1D0 0000 .word L226
59 0001D1D2 #
60 0001D1D2 #
61 0001D1D2 #
62 0001D1D2 # /************************************************************************
63 0001D1D2 # *
64 0001D1D2 # * SUBTEST 1
65 0001D1D2 # *
66 0001D1D2 # ************************************************************************/
67 0001D1D2 # cvld_1()
68 0001D1D2 # {
69 0001D1D2 13 01bf jbr L228
70 0001D1D5 L229:
71 0001D1D5 # force_loop = FALSE;
72 0001D1D5 4d efffffffad clrl _force_loop
73 0001D1DB # subtest = 1;
74 0001D1DB 0d 01 efffffffa6 movl $1,_subtest
75 0001D1E2 # index = 0;
76 0001D1E2 4d efffffffa0 clrl _index
77 0001D1E8 # do
78 0001D1E8 L232:
79 0001D1E8 # {
80 0001D1E8 # sgl_value_2 = 0xffffffff; /* get an initial value */
81 0001D1E8 ec 01 efffffff99 mnegl $1,_sgl_value_2
82 0001D1EF # sgl_value_3 = 0xfff0fff0; /* for the accumulator */
83 0001D1EF 0d 8ffff0fff0 efffffff8e movl $-983056,_sgl_value_3
84 0001D1FA # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
85 0001D1FA 5c 0c efffffff87 50 mull3 $12,_index,r0
86 0001D202 0d e000000000 efffffff7b movl _cvld_1_data(r0),_sgl_value_1
87 0001D20D # dbl_expected = cvld_1_data[index].exp; /* get expected result */
88 0001D20D 5c 0c efffffff74 50 mull3 $12,_index,r0
89 0001D215 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
90 0001D21C 0d a004 efffffff68 movl 4(r0),_dbl_expected+4
91 0001D224 0d 60 efffffff5d movl (r0),_dbl_expected
92 0001D22B # /*
93 0001D22B # * If LOOP ON ERROR is set, this is the loop for this subtest.
94 0001D22B # * The force loop flag is set after the first error.
95 0001D22B # */
96 0001D22B # asm("_cvld_1_lp1:");
97 0001D22B _cvld_1_lp1:
98 0001D22B # asm("movl _sgl_value_2,r4"); /* move background data */
99 0001D22B 0d efffffff57 54 movl _sgl_value_2,r4
100 0001D232 # asm("movl _sgl_value_3,r5");
101 0001D232 0d efffffff50 55 movl _sgl_value_3,r5
102 0001D239 # asm("movl _sgl_value_1,r6"); /* move the operand to r6 */
103 0001D239 0d efffffff49 56 movl _sgl_value_1,r6
104 0001D240 # asm("ldd r4"); /* load the background data */
105 0001D240 07 54 ldd r4
106 0001D242 # asm("cvld r6"); /* convert the value */
107 0001D242 77 56 cvld r6
108 0001D244 # asm("std r8"); /* store the result in R8 */
109 0001D244 27 58 std r8
110 0001D246 # if( force_loop )
111 0001D246 5d efffffff3c tstl _force_loop
112 0001D24C 31 02 jeql L233
113 0001D24E # asm("brb _cvld_1_lp1");; /* loop on the error */
114 0001D24E 11 db brb _cvld_1_lp1
115 0001D250 L233:
116 0001D250 # /*
117 0001D250 # * end error loop - test the results
118 0001D250 # */
119 0001D250 # asm("movl r8,_dbl_st_acc"); /* move MSW to cache */
120 0001D250 0d 58 efffffff31 movl r8,_dbl_st_acc
121 0001D257 # asm("movl r9,_dbl_st_acc+4"); /* move LSW to cache */
122 0001D257 0d 59 efffffff2e movl r9,_dbl_st_acc+4
123 0001D25E # if( ( dbl_st_acc.m != dbl_expected.m ) || /* COMPARE the values */
124 0001D25E # ( dbl_st_acc.l != dbl_expected.l ) ){
125 0001D25E 1d efffffff24 efffffff1f cmpl _dbl_st_acc,_dbl_expected
126 0001D269 21 10 jneq L9999
127 0001D26B 1d efffffff1b efffffff16 cmpl _dbl_st_acc+4,_dbl_expected+4
128 0001D276 21 03 13 00ff jeql L234
129 0001D27B L9999:
130 0001D27B # errcnt++; /* bump the error count */
131 0001D27B 6d efffffff07 incl _errcnt
132 0001D281 # if( prt_error ) {
133 0001D281 5d efffffff01 tstl _prt_error
134 0001D287 21 03 13 00cb jeql L235
135 0001D28C # writes(" \n"); /* start a new print line */
136 0001D28C .data 1
137 00000926 * L236:
138 00000926 * 200A00 .ascii " \12\0"
139 00000929 * .text
140 0001D28C dd 8f00000926 pushl $L236
141 0001D292 fe 08 effffffeef callf $8,_writes
142 0001D299 # writes("cycle: ");
143 0001D299 .data 1
144 00000929 * L237:
145 00000929 * 6379636C653A2000 .ascii "cycle: \0"
146 00000931 * .text
147 0001D299 dd 8f00000929 pushl $L237
148 0001D29F fe 08 effffffee2 callf $8,_writes
149 0001D2A6 # writed( cycle );
150 0001D2A6 dd effffffedc pushl _cycle
151 0001D2AC fe 08 effffffed5 callf $8,_writed
152 0001D2B3 # writes(" CVLD test ");
153 0001D2B3 .data 1
154 00000931 * L239:
155 00000931 * 202043564C442074657374200 .ascii " CVLD test \0"
0
156 0000093e * .text
157 0001D2B3 dd 8f00000931 pushl $L239
158 0001D2B9 fe 08 effffffec8 callf $8,_writes
159 0001D2C0 # writed( test_no );
160 0001D2C0 dd effffffec2 pushl _test_no
161 0001D2C6 fe 08 effffffebb callf $8,_writed
162 0001D2CD # writes(", subtest 1 (Reg. Data) - BAD FINAL ACC\n");
163 0001D2CD .data 1
164 0000093e * L240:
165 0000093e * 2C20737562746573742031202 .ascii ", subtest 1 (Reg. Data) - BAD FINAL ACC\12\0"
85265672E204461746129202D
204241442046494E414C20414
3430A00
166 00000967 * .text
167 0001D2CD dd 8f0000093e pushl $L240
168 0001D2D3 fe 08 effffffeae callf $8,_writes
169 0001D2DA # print_cvld_data();
170 0001D2DA fe 04 ef00000643 callf $4,_print_cvld_data
171 0001D2E1 # writes(", index = ");
172 0001D2E1 .data 1
173 00000967 * L242:
174 00000967 * 2C202020696E646578203D200 .ascii ", index = \0"
0
175 00000974 * .text
176 0001D2E1 dd 8f00000967 pushl $L242
177 0001D2E7 fe 08 effffffe9a callf $8,_writes
178 0001D2EE # writed( index );
179 0001D2EE dd effffffe94 pushl _index
180 0001D2F4 fe 08 effffffe8d callf $8,_writed
181 0001D2FB # writec('\n');
182 0001D2FB dd 0a pushl $10
183 0001D2FD fe 08 effffffe84 callf $8,_writec
184 0001D304 # writes(" operand = ");
185 0001D304 .data 1
186 00000974 * L244:
187 00000974 * 202020206F706572616E64203 .ascii " operand = \0"
D2000
188 00000983 * .text
189 0001D304 dd 8f00000974 pushl $L244
190 0001D30A fe 08 effffffe77 callf $8,_writes
191 0001D311 # write32h( sgl_value_1 );
192 0001D311 dd effffffe71 pushl _sgl_value_1
193 0001D317 fe 08 effffffe6a callf $8,_write32h
194 0001D31E # writes(" expected Acc = ");
195 0001D31E .data 1
196 00000983 * L246:
197 00000983 * 2020202020202020202065787 .ascii " expected Acc = \0"
0656374656420416363203D20
00
198 0000099d * .text
199 0001D31E dd 8f00000983 pushl $L246
200 0001D324 fe 08 effffffe5d callf $8,_writes
201 0001D32B # write32h( dbl_expected.m );
202 0001D32B dd effffffe57 pushl _dbl_expected
203 0001D331 fe 08 effffffe50 callf $8,_write32h
204 0001D338 # writec(' ');
205 0001D338 dd 20 pushl $32
206 0001D33A fe 08 effffffe47 callf $8,_writec
207 0001D341 # write32h( dbl_expected.l );
208 0001D341 dd effffffe45 pushl _dbl_expected+4
209 0001D347 fe 08 effffffe3a callf $8,_write32h
210 0001D34E # writec('\n');
211 0001D34E dd 0a pushl $10
212 0001D350 fe 08 effffffe31 callf $8,_writec
213 0001D357 # }
214 0001D357 # if( halt_flg )
215 0001D357 L235:
216 0001D357 5d effffffe2b tstl _halt_flg
217 0001D35D 31 09 jeql L247
218 0001D35F # cvld_er_halt( BAD_ACC_HLT ); /* halt on the error */
219 0001D35F dd 01 pushl $1
220 0001D361 fe 08 ef00000624 callf $8,_cvld_er_halt
221 0001D368 # if( loop_on_err ) {
222 0001D368 L247:
223 0001D368 5d effffffe1a tstl _loop_on_err
224 0001D36E 31 0a jeql L249
225 0001D370 # force_loop = TRUE; /* set the force loop flag */
226 0001D370 0d 01 effffffe11 movl $1,_force_loop
227 0001D377 # asm("brw _cvld_1_lp1");; /* and loop on the error */
228 0001D377 13 feb1 brw _cvld_1_lp1
229 0001D37A # } /* end of loop on error */
230 0001D37A # } /* end of compare error */
231 0001D37A L249:
232 0001D37A # } while( index++ < max_cvld_1_index ); /* end of WHILE loop */
233 0001D37A L234:
234 0001D37A L231:
235 0001D37A 0d effffffe08 50 movl _index,r0
236 0001D381 6d effffffe01 incl _index
237 0001D387 1d 50 effffffdfa cmpl r0,_max_cvld_1_index
238 0001D38E 81 03 13 fe55 jlss L232
239 0001D393 L230:
240 0001D393 # } /* end of subtest 1 */
241 0001D393 40 ret#2
242 0001D394 .set L226,0x0
243 0001D394 L228:
244 0001D394 13 fe3e jbr L229
245 0001D397 .data
246 00000920 * .text
247 0001D397 00 .align 1
248 0001D398 .globl _cvld_2
249 0001D398 _cvld_2:
250 0001D398 0000 .word L250
251 0001D39A #
252 0001D39A #
253 0001D39A #
254 0001D39A # /************************************************************************
255 0001D39A # *
256 0001D39A # * SUBTEST 2 - convert through memory
257 0001D39A # *
258 0001D39A # ************************************************************************/
259 0001D39A # cvld_2()
260 0001D39A # {
261 0001D39A 13 01a8 jbr L252
262 0001D39D L253:
263 0001D39D # force_loop = FALSE;
264 0001D39D 4d effffffde5 clrl _force_loop
265 0001D3A3 # subtest = 2;
266 0001D3A3 0d 02 effffffdde movl $2,_subtest
267 0001D3AA # index = 0;
268 0001D3AA 4d effffffdd8 clrl _index
269 0001D3B0 # do
270 0001D3B0 L256:
271 0001D3B0 # {
272 0001D3B0 # dbl_ld_acc.m = 0xffffffff; /* get an initial value */
273 0001D3B0 ec 01 effffffdd1 mnegl $1,_dbl_ld_acc
274 0001D3B7 # dbl_ld_acc.l = 0xfff0fff0; /* for the accumulator */
275 0001D3B7 0d 8ffff0fff0 effffffdca movl $-983056,_dbl_ld_acc+4
276 0001D3C2 # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
277 0001D3C2 5c 0c effffffdbf 50 mull3 $12,_index,r0
278 0001D3CA 0d e000000000 effffffdb3 movl _cvld_1_data(r0),_sgl_value_1
279 0001D3D5 # dbl_expected = cvld_1_data[index].exp; /* get expected result */
280 0001D3D5 5c 0c effffffdac 50 mull3 $12,_index,r0
281 0001D3DD 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
282 0001D3E4 0d a004 effffffda0 movl 4(r0),_dbl_expected+4
283 0001D3EC 0d 60 effffffd95 movl (r0),_dbl_expected
284 0001D3F3 # /*
285 0001D3F3 # * If LOOP ON ERROR is set, this is the loop for this subtest.
286 0001D3F3 # * The force loop flag is set after the first error.
287 0001D3F3 # */
288 0001D3F3 # asm("_cvld_2_lp1:");
289 0001D3F3 _cvld_2_lp1:
290 0001D3F3 # asm("ldd _dbl_ld_acc"); /* load the base value */
291 0001D3F3 07 effffffd8f ldd _dbl_ld_acc
292 0001D3F9 # asm("cvld _sgl_value_1"); /* convert the value */
293 0001D3F9 77 effffffd89 cvld _sgl_value_1
294 0001D3FF # asm("std _dbl_st_acc"); /* store the result */
295 0001D3FF 27 effffffd83 std _dbl_st_acc
296 0001D405 # if( force_loop )
297 0001D405 5d effffffd7d tstl _force_loop
298 0001D40B 31 02 jeql L257
299 0001D40D # asm("brb _cvld_2_lp1");; /* loop on the error */
300 0001D40D 11 e4 brb _cvld_2_lp1
301 0001D40F L257:
302 0001D40F # /*
303 0001D40F # * end error loop - test the results
304 0001D40F # */
305 0001D40F # if( ( dbl_st_acc.m != dbl_expected.m ) || /* COMPARE the values */
306 0001D40F # ( dbl_st_acc.l != dbl_expected.l ) ){
307 0001D40F 1d effffffd73 effffffd6e cmpl _dbl_st_acc,_dbl_expected
308 0001D41A 21 10 jneq L9998
309 0001D41C 1d effffffd6a effffffd65 cmpl _dbl_st_acc+4,_dbl_expected+4
310 0001D427 21 03 13 00ff jeql L258
311 0001D42C L9998:
312 0001D42C # errcnt++; /* bump the error count */
313 0001D42C 6d effffffd56 incl _errcnt
314 0001D432 # if( prt_error ) {
315 0001D432 5d effffffd50 tstl _prt_error
316 0001D438 21 03 13 00cb jeql L259
317 0001D43D # writes(" \n"); /* start a new print line */
318 0001D43D .data 1
319 0000099d * L260:
320 0000099d * 200A00 .ascii " \12\0"
321 000009a0 * .text
322 0001D43D dd 8f0000099d pushl $L260
323 0001D443 fe 08 effffffd3e callf $8,_writes
324 0001D44A # writes("cycle: ");
325 0001D44A .data 1
326 000009a0 * L261:
327 000009a0 * 6379636C653A2000 .ascii "cycle: \0"
328 000009a8 * .text
329 0001D44A dd 8f000009a0 pushl $L261
330 0001D450 fe 08 effffffd31 callf $8,_writes
331 0001D457 # writed( cycle );
332 0001D457 dd effffffd2b pushl _cycle
333 0001D45D fe 08 effffffd24 callf $8,_writed
334 0001D464 # writes(" CVLD test ");
335 0001D464 .data 1
336 000009a8 * L262:
337 000009a8 * 202043564C442074657374200 .ascii " CVLD test \0"
0
338 000009b5 * .text
339 0001D464 dd 8f000009a8 pushl $L262
340 0001D46A fe 08 effffffd17 callf $8,_writes
341 0001D471 # writed( test_no );
342 0001D471 dd effffffd11 pushl _test_no
343 0001D477 fe 08 effffffd0a callf $8,_writed
344 0001D47E # writes(", subtest 2 (Cache Data) - BAD FINAL ACC\n");
345 0001D47E .data 1
346 000009b5 * L263:
347 000009b5 * 2C20737562746573742032202 .ascii ", subtest 2 (Cache Data) - BAD FINAL ACC\12\0"
8436163686520446174612920
2D204241442046494E414C204
143430A00
348 000009df * .text
349 0001D47E dd 8f000009b5 pushl $L263
350 0001D484 fe 08 effffffcfd callf $8,_writes
351 0001D48B # print_cvld_data();
352 0001D48B fe 04 ef00000492 callf $4,_print_cvld_data
353 0001D492 # writes(", index = ");
354 0001D492 .data 1
355 000009df * L264:
356 000009df * 2C202020696E646578203D200 .ascii ", index = \0"
0
357 000009ec * .text
358 0001D492 dd 8f000009df pushl $L264
359 0001D498 fe 08 effffffce9 callf $8,_writes
360 0001D49F # writed( index );
361 0001D49F dd effffffce3 pushl _index
362 0001D4A5 fe 08 effffffcdc callf $8,_writed
363 0001D4AC # writec('\n');
364 0001D4AC dd 0a pushl $10
365 0001D4AE fe 08 effffffcd3 callf $8,_writec
366 0001D4B5 # writes(" operand = ");
367 0001D4B5 .data 1
368 000009ec * L265:
369 000009ec * 202020206F706572616E64203 .ascii " operand = \0"
D2000
370 000009fb * .text
371 0001D4B5 dd 8f000009ec pushl $L265
372 0001D4BB fe 08 effffffcc6 callf $8,_writes
373 0001D4C2 # write32h( sgl_value_1 );
374 0001D4C2 dd effffffcc0 pushl _sgl_value_1
375 0001D4C8 fe 08 effffffcb9 callf $8,_write32h
376 0001D4CF # writes(" expected Acc = ");
377 0001D4CF .data 1
378 000009fb * L266:
379 000009fb * 2020202020202020202065787 .ascii " expected Acc = \0"
0656374656420416363203D20
00
380 00000a15 * .text
381 0001D4CF dd 8f000009fb pushl $L266
382 0001D4D5 fe 08 effffffcac callf $8,_writes
383 0001D4DC # write32h( dbl_expected.m );
384 0001D4DC dd effffffca6 pushl _dbl_expected
385 0001D4E2 fe 08 effffffc9f callf $8,_write32h
386 0001D4E9 # writec(' ');
387 0001D4E9 dd 20 pushl $32
388 0001D4EB fe 08 effffffc96 callf $8,_writec
389 0001D4F2 # write32h( dbl_expected.l );
390 0001D4F2 dd effffffc94 pushl _dbl_expected+4
391 0001D4F8 fe 08 effffffc89 callf $8,_write32h
392 0001D4FF # writec('\n');
393 0001D4FF dd 0a pushl $10
394 0001D501 fe 08 effffffc80 callf $8,_writec
395 0001D508 # }
396 0001D508 # if( halt_flg )
397 0001D508 L259:
398 0001D508 5d effffffc7a tstl _halt_flg
399 0001D50E 31 09 jeql L267
400 0001D510 # cvld_er_halt( BAD_ACC_HLT ); /* halt on the error */
401 0001D510 dd 01 pushl $1
402 0001D512 fe 08 ef00000473 callf $8,_cvld_er_halt
403 0001D519 # if( loop_on_err ) {
404 0001D519 L267:
405 0001D519 5d effffffc69 tstl _loop_on_err
406 0001D51F 31 0a jeql L268
407 0001D521 # force_loop = TRUE; /* set the force loop flag */
408 0001D521 0d 01 effffffc60 movl $1,_force_loop
409 0001D528 # asm("brw _cvld_2_lp1");; /* and loop on the error */
410 0001D528 13 fec8 brw _cvld_2_lp1
411 0001D52B # } /* end of loop on error */
412 0001D52B # } /* end of compare error */
413 0001D52B L268:
414 0001D52B # } while( index++ < max_cvld_1_index ); /* end of WHILE loop */
415 0001D52B L258:
416 0001D52B L255:
417 0001D52B 0d effffffc57 50 movl _index,r0
418 0001D532 6d effffffc50 incl _index
419 0001D538 1d 50 effffffc49 cmpl r0,_max_cvld_1_index
420 0001D53F 81 03 13 fe6c jlss L256
421 0001D544 L254:
422 0001D544 # } /* end of subtest 2 */
423 0001D544 40 ret#2
424 0001D545 .set L250,0x0
425 0001D545 L252:
426 0001D545 13 fe55 jbr L253
427 0001D548 .data
428 00000920 * .text
429 0001D548 .align 1
430 0001D548 .globl _cvld_3
431 0001D548 _cvld_3:
432 0001D548 0000 .word L269
433 0001D54A #
434 0001D54A #
435 0001D54A #
436 0001D54A # /************************************************************************
437 0001D54A # *
438 0001D54A # * SUBTEST 3 - Check for register corruption
439 0001D54A # *
440 0001D54A # ************************************************************************/
441 0001D54A # cvld_3()
442 0001D54A # {
443 0001D54A 13 01f0 jbr L271
444 0001D54D L272:
445 0001D54D # force_loop = FALSE; /* clear force_loop flg */
446 0001D54D 4d effffffc35 clrl _force_loop
447 0001D553 # subtest = 3;
448 0001D553 0d 03 effffffc2e movl $3,_subtest
449 0001D55A # fill_reg_buf( load_regs ); /* get patterns for regs */
450 0001D55A dd 8f00000000 pushl $_load_regs
451 0001D560 fe 08 effffffc21 callf $8,_fill_reg_buf
452 0001D567 # index = 0;
453 0001D567 4d effffffc1b clrl _index
454 0001D56D # dbl_ld_acc.m = 0xffffffff; /* get an initial value */
455 0001D56D ec 01 effffffc14 mnegl $1,_dbl_ld_acc
456 0001D574 # dbl_ld_acc.l = 0xfff0fff0; /* for the accumulator */
457 0001D574 0d 8ffff0fff0 effffffc0d movl $-983056,_dbl_ld_acc+4
458 0001D57F # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
459 0001D57F 5c 0c effffffc02 50 mull3 $12,_index,r0
460 0001D587 0d e000000000 effffffbf6 movl _cvld_1_data(r0),_sgl_value_1
461 0001D592 # dbl_expected = cvld_1_data[index].exp; /* get expected result */
462 0001D592 5c 0c effffffbef 50 mull3 $12,_index,r0
463 0001D59A 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
464 0001D5A1 0d a004 effffffbe3 movl 4(r0),_dbl_expected+4
465 0001D5A9 0d 60 effffffbd8 movl (r0),_dbl_expected
466 0001D5B0 # /*
467 0001D5B0 # * If LOOP ON ERROR is set, this is the loop for this subtest.
468 0001D5B0 # * The force loop flag is set after the first error.
469 0001D5B0 # */
470 0001D5B0 # asm("_cvld_3_lp1:");
471 0001D5B0 _cvld_3_lp1:
472 0001D5B0 # asm("ldd _dbl_ld_acc"); /* load base value */
473 0001D5B0 07 effffffbd2 ldd _dbl_ld_acc
474 0001D5B6 # asm("loadr $0x1fff,_load_regs"); /* load regs 0 - 12 */
475 0001D5B6 ab 891fff effffffbc9 loadr $0x1fff,_load_regs
476 0001D5BF # asm("nop");
477 0001D5BF 10 nop
478 0001D5C0 # asm("cvld _sgl_value_1"); /* convert the value */
479 0001D5C0 77 effffffbc2 cvld _sgl_value_1
480 0001D5C6 # asm("nop");
481 0001D5C6 10 nop
482 0001D5C7 # asm("storer $0x1fff,_store_regs"); /* store regs 0 - 12 */
483 0001D5C7 bb 891fff effffffbb8 storer $0x1fff,_store_regs
484 0001D5D0 # asm("std _dbl_st_acc"); /* save the accumulator */
485 0001D5D0 27 effffffbb2 std _dbl_st_acc
486 0001D5D6 # if( force_loop )
487 0001D5D6 5d effffffbac tstl _force_loop
488 0001D5DC 31 02 jeql L274
489 0001D5DE # asm("brb _cvld_3_lp1");; /* loop on the error */
490 0001D5DE 11 d0 brb _cvld_3_lp1
491 0001D5E0 L274:
492 0001D5E0 # /*
493 0001D5E0 # * Now compare the stored register values to those that were loaded
494 0001D5E0 # */
495 0001D5E0 # index2 = 0;
496 0001D5E0 4d effffffba2 clrl _index2
497 0001D5E6 # while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
498 0001D5E6 L275:
499 0001D5E6 0d effffffb9c 50 movl _index2,r0
500 0001D5ED 0d effffffb95 51 movl _index2,r1
501 0001D5F4 1d 40effffffb8d cmpl _load_regs[r0],_store_regs[r1]
41effffffb87
502 0001D601 21 11 jneq L276
503 0001D603 1d effffffb7f 0d cmpl _index2,$13
504 0001D60A 81 08 jgeq L276
505 0001D60C # index2++; /* check reg values */
506 0001D60C 6d effffffb76 incl _index2
507 0001D612 11 d2 jbr L275
508 0001D614 L276:
509 0001D614 # if( index2 < 13 ) { /* error if index2 < 13 */
510 0001D614 1d effffffb6e 0d cmpl _index2,$13
511 0001D61B 91 03 13 011c jgeq L277
512 0001D620 # errcnt++; /* bump the error count */
513 0001D620 6d effffffb62 incl _errcnt
514 0001D626 # if( prt_error ) {
515 0001D626 5d effffffb5c tstl _prt_error
516 0001D62C 21 03 13 00e8 jeql L278
517 0001D631 # writes(" \n"); /* start a new print line */
518 0001D631 .data 1
519 00000a15 * L279:
520 00000a15 * 200A00 .ascii " \12\0"
521 00000a18 * .text
522 0001D631 dd 8f00000a15 pushl $L279
523 0001D637 fe 08 effffffb4a callf $8,_writes
524 0001D63E # writes("cycle: ");
525 0001D63E .data 1
526 00000a18 * L280:
527 00000a18 * 6379636C653A2000 .ascii "cycle: \0"
528 00000a20 * .text
529 0001D63E dd 8f00000a18 pushl $L280
530 0001D644 fe 08 effffffb3d callf $8,_writes
531 0001D64B # writed( cycle );
532 0001D64B dd effffffb37 pushl _cycle
533 0001D651 fe 08 effffffb30 callf $8,_writed
534 0001D658 # writes(" CVLD test ");
535 0001D658 .data 1
536 00000a20 * L281:
537 00000a20 * 202043564C442074657374200 .ascii " CVLD test \0"
0
538 00000a2d * .text
539 0001D658 dd 8f00000a20 pushl $L281
540 0001D65E fe 08 effffffb23 callf $8,_writes
541 0001D665 # writed( test_no );
542 0001D665 dd effffffb1d pushl _test_no
543 0001D66B fe 08 effffffb16 callf $8,_writed
544 0001D672 # writes(", subtest 3 - A REGISTER WAS MODIFIED\n");
545 0001D672 .data 1
546 00000a2d * L282:
547 00000a2d * 2C20737562746573742033202 .ascii ", subtest 3 - A REGISTER WAS MODIFIED\12\0"
D204120524547495354455220
574153204D4F4449464945440
A00
548 00000a54 * .text
549 0001D672 dd 8f00000a2d pushl $L282
550 0001D678 fe 08 effffffb09 callf $8,_writes
551 0001D67F # print_cvld_data();
552 0001D67F fe 04 ef0000029e callf $4,_print_cvld_data
553 0001D686 # writec('\n');
554 0001D686 dd 0a pushl $10
555 0001D688 fe 08 effffffaf9 callf $8,_writec
556 0001D68F # writes(" operand = ");
557 0001D68F .data 1
558 00000a54 * L283:
559 00000a54 * 202020206F706572616E64203 .ascii " operand = \0"
D2000
560 00000a63 * .text
561 0001D68F dd 8f00000a54 pushl $L283
562 0001D695 fe 08 effffffaec callf $8,_writes
563 0001D69C # write32h( sgl_value_1 );
564 0001D69C dd effffffae6 pushl _sgl_value_1
565 0001D6A2 fe 08 effffffadf callf $8,_write32h
566 0001D6A9 # writec('\n');
567 0001D6A9 dd 0a pushl $10
568 0001D6AB fe 08 effffffad6 callf $8,_writec
569 0001D6B2 # writes("register "); /* print the information */
570 0001D6B2 .data 1
571 00000a63 * L284:
572 00000a63 * 72656769737465722000 .ascii "register \0"
573 00000a6d * .text
574 0001D6B2 dd 8f00000a63 pushl $L284
575 0001D6B8 fe 08 effffffac9 callf $8,_writes
576 0001D6BF # writed( index2 ); /* about the corrupted */
577 0001D6BF dd effffffac3 pushl _index2
578 0001D6C5 fe 08 effffffabc callf $8,_writed
579 0001D6CC # writes(" = "); /* register */
580 0001D6CC .data 1
581 00000a6d * L285:
582 00000a6d * 203D2000 .ascii " = \0"
583 00000a71 * .text
584 0001D6CC dd 8f00000a6d pushl $L285
585 0001D6D2 fe 08 effffffaaf callf $8,_writes
586 0001D6D9 # write32h( store_regs[index2] );
587 0001D6D9 0d effffffaa9 50 movl _index2,r0
588 0001D6E0 dd 40effffffaa1 pushl _store_regs[r0]
589 0001D6E7 fe 08 effffffa9a callf $8,_write32h
590 0001D6EE # writes(", should be = ");
591 0001D6EE .data 1
592 00000a71 * L286:
593 00000a71 * 2C202073686F756C642062652 .ascii ", should be = \0"
03D2000
594 00000a81 * .text
595 0001D6EE dd 8f00000a71 pushl $L286
596 0001D6F4 fe 08 effffffa8d callf $8,_writes
597 0001D6FB # write32h( load_regs[index2] );
598 0001D6FB 0d effffffa87 50 movl _index2,r0
599 0001D702 dd 40effffffa7f pushl _load_regs[r0]
600 0001D709 fe 08 effffffa78 callf $8,_write32h
601 0001D710 # writec('\n');
602 0001D710 dd 0a pushl $10
603 0001D712 fe 08 effffffa6f callf $8,_writec
604 0001D719 # }
605 0001D719 # if( halt_flg )
606 0001D719 L278:
607 0001D719 5d effffffa69 tstl _halt_flg
608 0001D71F 31 09 jeql L287
609 0001D721 # cvld_er_halt( BAD_REG_HLT ); /* halt on the error */
610 0001D721 dd 02 pushl $2
611 0001D723 fe 08 ef00000262 callf $8,_cvld_er_halt
612 0001D72A # if( loop_on_err ) {
613 0001D72A L287:
614 0001D72A 5d effffffa58 tstl _loop_on_err
615 0001D730 31 0a jeql L288
616 0001D732 # force_loop = TRUE; /* set the force loop flag */
617 0001D732 0d 01 effffffa4f movl $1,_force_loop
618 0001D739 # asm("brw _cvld_3_lp1");; /* and loop on the error */
619 0001D739 13 fe74 brw _cvld_3_lp1
620 0001D73C # } /* end of loop on error */
621 0001D73C # } /* end of register corruption error */
622 0001D73C L288:
623 0001D73C # } /* end of subtest 3 */
624 0001D73C L277:
625 0001D73C 40 ret#2
626 0001D73D .set L269,0x0
627 0001D73D L271:
628 0001D73D 13 fe0d jbr L272
629 0001D740 .data
630 00000920 * .text
631 0001D740 .align 1
632 0001D740 .globl _cvld_4
633 0001D740 _cvld_4:
634 0001D740 0000 .word L289
635 0001D742 #
636 0001D742 #
637 0001D742 #
638 0001D742 # /************************************************************************
639 0001D742 # *
640 0001D742 # * SUBTEST 4 - Check for PSL corruption
641 0001D742 # *
642 0001D742 # ************************************************************************/
643 0001D742 # cvld_4()
644 0001D742 # {
645 0001D742 13 01dc jbr L291
646 0001D745 L292:
647 0001D745 # force_loop = FALSE; /* clear force_loop flg */
648 0001D745 4d effffffa3d clrl _force_loop
649 0001D74B # subtest = 4;
650 0001D74B 0d 04 effffffa36 movl $4,_subtest
651 0001D752 # fill_reg_buf( load_regs ); /* get patterns for regs */
652 0001D752 dd 8f00000000 pushl $_load_regs
653 0001D758 fe 08 effffffa29 callf $8,_fill_reg_buf
654 0001D75F # for( index = 0; index < 3; index++ ) {
655 0001D75F 4d effffffa23 clrl _index
656 0001D765 L295:
657 0001D765 1d effffffa1d 03 cmpl _index,$3
658 0001D76C 91 03 13 01af jgeq L294
659 0001D771 # dbl_ld_acc.m = 0xffffffff; /* get an initial value */
660 0001D771 ec 01 effffffa10 mnegl $1,_dbl_ld_acc
661 0001D778 # dbl_ld_acc.l = 0xfff0fff0; /* for the accumulator */
662 0001D778 0d 8ffff0fff0 effffffa09 movl $-983056,_dbl_ld_acc+4
663 0001D783 # sgl_value_1 = cvld_1_data[index].ld; /* get the operand */
664 0001D783 5c 0c effffff9fe 50 mull3 $12,_index,r0
665 0001D78B 0d e000000000 effffff9f2 movl _cvld_1_data(r0),_sgl_value_1
666 0001D796 # dbl_expected = cvld_1_data[index].exp; /* get expected */
667 0001D796 5c 0c effffff9eb 50 mull3 $12,_index,r0
668 0001D79E 0c 8f00000004 50 addl2 $_cvld_1_data+4,r0
669 0001D7A5 0d a004 effffff9df movl 4(r0),_dbl_expected+4
670 0001D7AD 0d 60 effffff9d4 movl (r0),_dbl_expected
671 0001D7B4 # sgl_dummy1 = status_array[status_index]; /* status = +, -, 0 */
672 0001D7B4 0d effffff9ce 50 movl _status_index,r0
673 0001D7BB 0d 40effffff9c6 movl _status_array[r0],_sgl_dummy1
effffff9c1
674 0001D7C7 # /*
675 0001D7C7 # * If LOOP ON ERROR is set, this is the loop for this subtest.
676 0001D7C7 # * The force loop flag is set after the first error.
677 0001D7C7 # */
678 0001D7C7 # asm("_cvld_4_lp1:");
679 0001D7C7 _cvld_4_lp1:
680 0001D7C7 # asm("ldd _dbl_ld_acc"); /* load the base value */
681 0001D7C7 07 effffff9bb ldd _dbl_ld_acc
682 0001D7CD # asm("tstl _sgl_dummy1"); /* set the PSL status */
683 0001D7CD 5d effffff9b5 tstl _sgl_dummy1
684 0001D7D3 # asm("movpsl _init_psl"); /* save the initial PSL */
685 0001D7D3 cd effffff9af movpsl _init_psl
686 0001D7D9 # asm("nop");
687 0001D7D9 10 nop
688 0001D7DA # asm("cvld _sgl_value_1"); /* convert the value */
689 0001D7DA 77 effffff9a8 cvld _sgl_value_1
690 0001D7E0 # asm("nop");
691 0001D7E0 10 nop
692 0001D7E1 # asm("movpsl _psl_val"); /* save the final PSL */
693 0001D7E1 cd effffff9a1 movpsl _psl_val
694 0001D7E7 # asm("std _dbl_st_acc"); /* save the accumulator */
695 0001D7E7 27 effffff99b std _dbl_st_acc
696 0001D7ED # if( force_loop )
697 0001D7ED 5d effffff995 tstl _force_loop
698 0001D7F3 31 02 jeql L296
699 0001D7F5 # asm("brb _cvld_4_lp1");; /* loop on the error */
700 0001D7F5 11 d0 brb _cvld_4_lp1
701 0001D7F7 L296:
702 0001D7F7 # /*
703 0001D7F7 # * Now compare the final PSL to the initial PSL -they should be the same
704 0001D7F7 # */
705 0001D7F7 # if( psl_val != init_psl ) {
706 0001D7F7 1d effffff98b effffff986 cmpl _psl_val,_init_psl
707 0001D802 21 03 13 0110 jeql L297
708 0001D807 # errcnt++; /* bump the error count */
709 0001D807 6d effffff97b incl _errcnt
710 0001D80D # if( prt_error ) {
711 0001D80D 5d effffff975 tstl _prt_error
712 0001D813 21 03 13 00dc jeql L298
713 0001D818 # writes(" \n"); /* start a new print line */
714 0001D818 .data 1
715 00000a81 * L299:
716 00000a81 * 200A00 .ascii " \12\0"
717 00000a84 * .text
718 0001D818 dd 8f00000a81 pushl $L299
719 0001D81E fe 08 effffff963 callf $8,_writes
720 0001D825 # writes("cycle: ");
721 0001D825 .data 1
722 00000a84 * L300:
723 00000a84 * 6379636C653A2000 .ascii "cycle: \0"
724 00000a8c * .text
725 0001D825 dd 8f00000a84 pushl $L300
726 0001D82B fe 08 effffff956 callf $8,_writes
727 0001D832 # writed( cycle );
728 0001D832 dd effffff950 pushl _cycle
729 0001D838 fe 08 effffff949 callf $8,_writed
730 0001D83F # writes(" CVLD test ");
731 0001D83F .data 1
732 00000a8c * L301:
733 00000a8c * 202043564C442074657374200 .ascii " CVLD test \0"
0
734 00000a99 * .text
735 0001D83F dd 8f00000a8c pushl $L301
736 0001D845 fe 08 effffff93c callf $8,_writes
737 0001D84C # writed( test_no );
738 0001D84C dd effffff936 pushl _test_no
739 0001D852 fe 08 effffff92f callf $8,_writed
740 0001D859 # writes(", subtest 4 - INCORRECT FINAL PSL\n");
741 0001D859 .data 1
742 00000a99 * L302:
743 00000a99 * 2C20737562746573742034202 .ascii ", subtest 4 - INCORRECT FINAL PSL\12\0"
D20494E434F52524543542046
494E414C2050534C0A00
744 00000abc * .text
745 0001D859 dd 8f00000a99 pushl $L302
746 0001D85F fe 08 effffff922 callf $8,_writes
747 0001D866 # print_cvld_data(); /* print the operands */
748 0001D866 fe 04 ef000000b7 callf $4,_print_cvld_data
749 0001D86D # writec('\n');
750 0001D86D dd 0a pushl $10
751 0001D86F fe 08 effffff912 callf $8,_writec
752 0001D876 # writes(" operand = ");
753 0001D876 .data 1
754 00000abc * L303:
755 00000abc * 202020206F706572616E64203 .ascii " operand = \0"
D2000
756 00000acb * .text
757 0001D876 dd 8f00000abc pushl $L303
758 0001D87C fe 08 effffff905 callf $8,_writes
759 0001D883 # write32h( sgl_value_1 );
760 0001D883 dd effffff8ff pushl _sgl_value_1
761 0001D889 fe 08 effffff8f8 callf $8,_write32h
762 0001D890 # writec('\n');
763 0001D890 dd 0a pushl $10
764 0001D892 fe 08 effffff8ef callf $8,_writec
765 0001D899 # writes("initial PSL = ");
766 0001D899 .data 1
767 00000acb * L304:
768 00000acb * 696E697469616C2050534C203 .ascii "initial PSL = \0"
D2000
769 00000ada * .text
770 0001D899 dd 8f00000acb pushl $L304
771 0001D89F fe 08 effffff8e2 callf $8,_writes
772 0001D8A6 # write32h( init_psl );
773 0001D8A6 dd effffff8dc pushl _init_psl
774 0001D8AC fe 08 effffff8d5 callf $8,_write32h
775 0001D8B3 # writes(", final PSL = ");
776 0001D8B3 .data 1
777 00000ada * L305:
778 00000ada * 2C202066696E616C2050534C2 .ascii ", final PSL = \0"
03D2000
779 00000aea * .text
780 0001D8B3 dd 8f00000ada pushl $L305
781 0001D8B9 fe 08 effffff8c8 callf $8,_writes
782 0001D8C0 # write32h( psl_val );
783 0001D8C0 dd effffff8c2 pushl _psl_val
784 0001D8C6 fe 08 effffff8bb callf $8,_write32h
785 0001D8CD # writes(", expected PSL = ");
786 0001D8CD .data 1
787 00000aea * L306:
788 00000aea * 2C20206578706563746564205 .ascii ", expected PSL = \0"
0534C203D2000
789 00000afd * .text
790 0001D8CD dd 8f00000aea pushl $L306
791 0001D8D3 fe 08 effffff8ae callf $8,_writes
792 0001D8DA # write32h( psl_val );
793 0001D8DA dd effffff8a8 pushl _psl_val
794 0001D8E0 fe 08 effffff8a1 callf $8,_write32h
795 0001D8E7 # writes("\n");
796 0001D8E7 .data 1
797 00000afd * L307:
798 00000afd * 0A00 .ascii "\12\0"
799 00000aff * .text
800 0001D8E7 dd 8f00000afd pushl $L307
801 0001D8ED fe 08 effffff894 callf $8,_writes
802 0001D8F4 # }
803 0001D8F4 # if( halt_flg )
804 0001D8F4 L298:
805 0001D8F4 5d effffff88e tstl _halt_flg
806 0001D8FA 31 09 jeql L308
807 0001D8FC # cvld_er_halt( BAD_PSL_HLT ); /* halt on the error */
808 0001D8FC dd 03 pushl $3
809 0001D8FE fe 08 ef00000087 callf $8,_cvld_er_halt
810 0001D905 # if( loop_on_err ) {
811 0001D905 L308:
812 0001D905 5d effffff87d tstl _loop_on_err
813 0001D90B 31 0a jeql L309
814 0001D90D # force_loop = TRUE; /* set the force loop flag */
815 0001D90D 0d 01 effffff874 movl $1,_force_loop
816 0001D914 # asm("brw _cvld_4_lp1");; /* and loop on the error */
817 0001D914 13 feb0 brw _cvld_4_lp1
818 0001D917 # } /* end of loop on error */
819 0001D917 # } /* end of PSL corruption error */
820 0001D917 L309:
821 0001D917 # } /* end of WHILE loop */
822 0001D917 L297:
823 0001D917 L293:
824 0001D917 6d effffff86b incl _index
825 0001D91D 13 fe45 jbr L295
826 0001D920 L294:
827 0001D920 # } /* end of subtest 4 */
828 0001D920 40 ret#2
829 0001D921 .set L289,0x0
830 0001D921 L291:
831 0001D921 13 fe21 jbr L292
832 0001D924 .data
833 00000920 * .text
834 0001D924 .align 1
835 0001D924 .globl _print_cvld_data
836 0001D924 _print_cvld_data:
837 0001D924 0000 .word L310
838 0001D926 #
839 0001D926 #
840 0001D926 #
841 0001D926 # /**************************************************************************
842 0001D926 # *
843 0001D926 # * PRINT THE DATA AND STORE RESULTS
844 0001D926 # *
845 0001D926 # * initial Acc = xxxxxxxx xxxxxxxx, final Acc = xxxxxxxx xxxxxxxx
846 0001D926 # **************************************************************************/
847 0001D926 # print_cvld_data()
848 0001D926 # {
849 0001D926 11 61 jbr L312
850 0001D928 L313:
851 0001D928 # writes("initial Acc = ");
852 0001D928 .data 1
853 00000aff * L314:
854 00000aff * 696E697469616C20416363203 .ascii "initial Acc = \0"
D2000
855 00000b0e * .text
856 0001D928 dd 8f00000aff pushl $L314
857 0001D92E fe 08 effffff853 callf $8,_writes
858 0001D935 # write32h( dbl_ld_acc.m );
859 0001D935 dd effffff84d pushl _dbl_ld_acc
860 0001D93B fe 08 effffff846 callf $8,_write32h
861 0001D942 # writec(' ');
862 0001D942 dd 20 pushl $32
863 0001D944 fe 08 effffff83d callf $8,_writec
864 0001D94B # write32h( dbl_ld_acc.l );
865 0001D94B dd effffff83b pushl _dbl_ld_acc+4
866 0001D951 fe 08 effffff830 callf $8,_write32h
867 0001D958 # writes(", final Acc = ");
868 0001D958 .data 1
869 00000b0e * L315:
870 00000b0e * 2C202066696E616C204163632 .ascii ", final Acc = \0"
03D2000
871 00000b1e * .text
872 0001D958 dd 8f00000b0e pushl $L315
873 0001D95E fe 08 effffff823 callf $8,_writes
874 0001D965 # write32h( dbl_st_acc.m );
875 0001D965 dd effffff81d pushl _dbl_st_acc
876 0001D96B fe 08 effffff816 callf $8,_write32h
877 0001D972 # writec(' ');
878 0001D972 dd 20 pushl $32
879 0001D974 fe 08 effffff80d callf $8,_writec
880 0001D97B # write32h( dbl_st_acc.l );
881 0001D97B dd effffff80b pushl _dbl_st_acc+4
882 0001D981 fe 08 effffff800 callf $8,_write32h
883 0001D988 # }
884 0001D988 40 ret#2
885 0001D989 .set L310,0x0
886 0001D989 L312:
887 0001D989 11 9d jbr L313
888 0001D98B .data
889 00000920 * .text
890 0001D98B 00 .align 1
891 0001D98C .globl _cvld_er_halt
892 0001D98C _cvld_er_halt:
893 0001D98C 0000 .word L316
894 0001D98E #
895 0001D98E #
896 0001D98E #
897 0001D98E # /**************************************************************************
898 0001D98E # *
899 0001D98E # * HALT ON ERROR ROUTINE
900 0001D98E # *
901 0001D98E # **************************************************************************/
902 0001D98E # cvld_er_halt( halt_code )
903 0001D98E # int halt_code;
904 0001D98E # {
905 0001D98E 13 0111 jbr L318
906 0001D991 L319:
907 0001D991 # sgl_value_1 = dbl_ld_acc.m;
908 0001D991 0d effffff7f1 effffff7ec movl _dbl_ld_acc,_sgl_value_1
909 0001D99C # sgl_value_2 = dbl_ld_acc.l;
910 0001D99C 0d effffff7ea effffff7e1 movl _dbl_ld_acc+4,_sgl_value_2
911 0001D9A7 # sgl_value_3 = sgl_value_1;
912 0001D9A7 0d effffff7db effffff7d6 movl _sgl_value_1,_sgl_value_3
913 0001D9B2 # sgl_value_4 = dbl_st_acc.m;
914 0001D9B2 0d effffff7d0 effffff7cb movl _dbl_st_acc,_sgl_value_4
915 0001D9BD # sgl_value_5 = dbl_st_acc.l;
916 0001D9BD 0d effffff7c9 effffff7c0 movl _dbl_st_acc+4,_sgl_value_5
917 0001D9C8 # sgl_dummy1 = halt_code; /* get the error type */
918 0001D9C8 0d ad04 effffff7b8 movl 4(fp),_sgl_dummy1
919 0001D9D0 # asm("movl _test_no,r0"); /* r0 = test number */
920 0001D9D0 0d effffff7b2 50 movl _test_no,r0
921 0001D9D7 # asm("movl _subtest,r1"); /* r1 = subtest number */
922 0001D9D7 0d effffff7ab 51 movl _subtest,r1
923 0001D9DE # asm("movl _sgl_dummy1,r2"); /* r2 = error code */
924 0001D9DE 0d effffff7a4 52 movl _sgl_dummy1,r2
925 0001D9E5 # asm("movl _cycle,r3"); /* r3 = cycle count */
926 0001D9E5 0d effffff79d 53 movl _cycle,r3
927 0001D9EC # asm("movl _sgl_value_1,r4"); /* r4 = MS operand 1 */
928 0001D9EC 0d effffff796 54 movl _sgl_value_1,r4
929 0001D9F3 # asm("movl _sgl_value_2,r5"); /* r5 = LS operand 1 */
930 0001D9F3 0d effffff78f 55 movl _sgl_value_2,r5
931 0001D9FA # asm("movl _sgl_value_3,r6"); /* r6 = operand 2 */
932 0001D9FA 0d effffff788 56 movl _sgl_value_3,r6
933 0001DA01 # asm("movl _sgl_value_4,r7"); /* r7 = MS stored */
934 0001DA01 0d effffff781 57 movl _sgl_value_4,r7
935 0001DA08 # asm("movl _sgl_value_5,r8"); /* r8 = LS stored */
936 0001DA08 0d effffff77a 58 movl _sgl_value_5,r8
937 0001DA0F # if( halt_code == BAD_ACC_HLT ) {
938 0001DA0F 1d ad04 01 cmpl 4(fp),$1
939 0001DA13 21 2d jneq L320
940 0001DA15 # sgl_value_1 = dbl_expected.m;
941 0001DA15 0d effffff76d effffff768 movl _dbl_expected,_sgl_value_1
942 0001DA20 # sgl_value_2 = dbl_expected.l;
943 0001DA20 0d effffff766 effffff75d movl _dbl_expected+4,_sgl_value_2
944 0001DA2B # asm("movl _sgl_value_1,r9"); /* r9 = MS expected */
945 0001DA2B 0d effffff757 59 movl _sgl_value_1,r9
946 0001DA32 # asm("movl _sgl_value_2,r10"); /* r10 = LS expected */
947 0001DA32 0d effffff750 5a movl _sgl_value_2,r10
948 0001DA39 # asm("movl _index2,r11"); /* r11 = data index */
949 0001DA39 0d effffff749 5b movl _index2,r11
950 0001DA40 # } else
951 0001DA40 11 5e jbr L321
952 0001DA42 L320:
953 0001DA42 # if( halt_code == BAD_REG_HLT ) {
954 0001DA42 1d ad04 02 cmpl 4(fp),$2
955 0001DA46 21 3d jneq L322
956 0001DA48 # sgl_dummy1 = load_regs[index2];
957 0001DA48 0d effffff73a 50 movl _index2,r0
958 0001DA4F 0d 40effffff732 movl _load_regs[r0],_sgl_dummy1
effffff72d
959 0001DA5B # sgl_dummy2 = store_regs[index2];
960 0001DA5B 0d effffff727 50 movl _index2,r0
961 0001DA62 0d 40effffff71f movl _store_regs[r0],_sgl_dummy2
effffff71a
962 0001DA6E # asm("movl _index2,r9"); /* r9 = bad register # */
963 0001DA6E 0d effffff714 59 movl _index2,r9
964 0001DA75 # asm("movl _sgl_dummy2,r10"); /* r10 = actual value */
965 0001DA75 0d effffff70d 5a movl _sgl_dummy2,r10
966 0001DA7C # asm("movl _sgl_dummy1,r11"); /* r11 = expected value */
967 0001DA7C 0d effffff706 5b movl _sgl_dummy1,r11
968 0001DA83 # } else
969 0001DA83 11 1b jbr L323
970 0001DA85 L322:
971 0001DA85 # if( halt_code == BAD_PSL_HLT ) {
972 0001DA85 1d ad04 03 cmpl 4(fp),$3
973 0001DA89 21 15 jneq L324
974 0001DA8B # asm("movl _init_psl,r9"); /* r9 = initial PSL */
975 0001DA8B 0d effffff6f7 59 movl _init_psl,r9
976 0001DA92 # asm("movl _psl_val,r10"); /* r10 = final PSL */
977 0001DA92 0d effffff6f0 5a movl _psl_val,r10
978 0001DA99 # asm("movl _exp_psl,r11"); /* r11 = expected PSL */
979 0001DA99 0d effffff6e9 5b movl _exp_psl,r11
980 0001DAA0 # };
981 0001DAA0 L324:
982 0001DAA0 L323:
983 0001DAA0 L321:
984 0001DAA0 # asm("halt"); /* HALT ... */
985 0001DAA0 00 halt
986 0001DAA1 # }
987 0001DAA1 40 ret#2
988 0001DAA2 .set L316,0x0
989 0001DAA2 L318:
990 0001DAA2 13 feec jbr L319
991 0001DAA5 .data
991 0003AC2D .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.