|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 000003a0 * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _int_ovfl_test
6: 6 00000000 _int_ovfl_test:
7: 7 0000DAB0 0000 .word L381
8: 8 0000DAB2 #
9: 9 0000DAB2 # #include "evt_defs.h"
10: 10 0000DAB2 #
11: 11 0000DAB2 # /*
12: 12 0000DAB2 # ********************************************************************
13: 13 0000DAB2 # *
14: 14 0000DAB2 # * MONITOR FOR THE FPP INTEGER-OVERFLOW EVENT TEST
15: 15 0000DAB2 # *
16: 16 0000DAB2 # * This test will generate integer-overflow faults with the FPP.
17: 17 0000DAB2 # * There are 2 ways for the floating point to generate integer overflows:
18: 18 0000DAB2 # * -either with the convert floating to integer instructions (CVFL, CVDL),
19: 19 0000DAB2 # * or with the longword integer multiply instructions (MULL2, MULL3).
20: 20 0000DAB2 # * CVFL and CVDL can cause integer overflows because any floating point
21: 21 0000DAB2 # * accumulator larger than +(2**23)-1 or -2**23 will be too big to store
22: 22 0000DAB2 # * as a longword integer.
23: 23 0000DAB2 # * The test will cause the overflows with and without the integer
24: 24 0000DAB2 # * overflow event being enabled. If the event is enabled we'll get an
25: 25 0000DAB2 # * arithmetic trap (but the overflow bit (V) will NOT be set in the PSL.
26: 26 0000DAB2 # * If the event is disabled then no event will occur but the 'V' bit
27: 27 0000DAB2 # * will be set in the PSL.
28: 28 0000DAB2 # * The integer multiplys will only be tested if there is an active FPP
29: 29 0000DAB2 # * in the system. The converts will always be tested.
30: 30 0000DAB2 # *
31: 31 0000DAB2 # * 26-Mar-85 : written
32: 32 0000DAB2 # * 20-Jul-85 : added MULL2, MULL3
33: 33 0000DAB2 # *
34: 34 0000DAB2 # ********************************************************************
35: 35 0000DAB2 # */
36: 36 0000DAB2 # int_ovfl_test()
37: 37 0000DAB2 # {
38: 38 0000DAB2 13 0126 jbr L383
39: 39 0000DAB5 L384:
40: 40 0000DAB5 # event_msg = "Integer Overflow";
41: 41 0000DAB5 .data 1
42: 42 000003a0 * L385:
43: 43 000003a0 * 496E7465676572204F7665726 .ascii "Integer Overflow\0"
44: 66C6F7700
45: 44 000003b1 * .text
46: 45 0000DAB5 0d 8f000003a0 effffffff0 movl $L385,_event_msg
47: 46 0000DAC0 # test_event = ARITH_CODE; /* expect an arithmetic fault */
48: 47 0000DAC0 0d 34 efffffffe9 movl $52,_test_event
49: 48 0000DAC7 # exp_code = INT_OVFL_CODE; /* -specificly integer overflow */
50: 49 0000DAC7 0d 01 efffffffe2 movl $1,_exp_code
51: 50 0000DACE # if( evt_inst ) { /* was the op-code specified? */
52: 51 0000DACE 5d efffffffdc tstl _evt_inst
53: 52 0000DAD4 21 03 13 00dd jeql L386
54: 53 0000DAD9 # if( evt_inst == CVFL_OP_CODE )
55: 54 0000DAD9 1d efffffffd1 890086 cmpl _evt_inst,$134
56: 55 0000DAE2 21 0a jneq L387
57: 56 0000DAE4 # run_cvfl(); /* test the CVFL instruction */
58: 57 0000DAE4 fe 04 ef000000f3 callf $4,_run_cvfl
59: 58 0000DAEB # else if( evt_inst == CVDL_OP_CODE )
60: 59 0000DAEB 13 00c6 jbr L389
61: 60 0000DAEE L387:
62: 61 0000DAEE 1d efffffffbc 890087 cmpl _evt_inst,$135
63: 62 0000DAF7 21 0a jneq L390
64: 63 0000DAF9 # run_cvdl(); /* test the CVDL instruction */
65: 64 0000DAF9 fe 04 ef0000017a callf $4,_run_cvdl
66: 65 0000DB00 # else if( evt_inst == MULL2_OP_CODE ) {
67: 66 0000DB00 13 00b1 jbr L392
68: 67 0000DB03 L390:
69: 68 0000DB03 1d efffffffa7 884c cmpl _evt_inst,$76
70: 69 0000DB0B 21 31 jneq L393
71: 70 0000DB0D # if( !no_fpp_wcs )
72: 71 0000DB0D 5d efffffff9d tstl _no_fpp_wcs
73: 72 0000DB13 21 09 jneq L394
74: 73 0000DB15 # run_mull2(); /* test the MULL2 instruction */
75: 74 0000DB15 fe 04 ef000001fa callf $4,_run_mull2
76: 75 0000DB1C # else {
77: 76 0000DB1C 11 1e jbr L396
78: 77 0000DB1E L394:
79: 78 0000DB1E # if( (prt_hdrs) && (cycle == 1) )
80: 79 0000DB1E 5d efffffff8c tstl _prt_hdrs
81: 80 0000DB24 31 16 jeql L397
82: 81 0000DB26 1d efffffff84 01 cmpl _cycle,$1
83: 82 0000DB2D 21 0d jneq L397
84: 83 0000DB2F # writes("MULL2 is only tested with FPP hardware\n");
85: 84 0000DB2F .data 1
86: 85 000003b1 * L399:
87: 86 000003b1 * 4D554C4C32206973206F6E6C7 .ascii "MULL2 is only tested with FPP hardware\12\0"
88: 9207465737465642077697468
89: 2046505020686172647761726
90: 50A00
91: 87 000003d9 * .text
92: 88 0000DB2F dd 8f000003b1 pushl $L399
93: 89 0000DB35 fe 08 efffffff74 callf $8,_writes
94: 90 0000DB3C # }
95: 91 0000DB3C L397:
96: 92 0000DB3C L396:
97: 93 0000DB3C # }
98: 94 0000DB3C # else if( evt_inst == MULL3_OP_CODE ) {
99: 95 0000DB3C 11 76 jbr L400
100: 96 0000DB3E L393:
101: 97 0000DB3E 1d efffffff6c 885c cmpl _evt_inst,$92
102: 98 0000DB46 21 31 jneq L401
103: 99 0000DB48 # if( !no_fpp_wcs )
104: 100 0000DB48 5d efffffff62 tstl _no_fpp_wcs
105: 101 0000DB4E 21 09 jneq L402
106: 102 0000DB50 # run_mull3(); /* test the MULL3 instruction */
107: 103 0000DB50 fe 04 ef0000025b callf $4,_run_mull3
108: 104 0000DB57 # else {
109: 105 0000DB57 11 1e jbr L404
110: 106 0000DB59 L402:
111: 107 0000DB59 # if( (prt_hdrs) && (cycle == 1) )
112: 108 0000DB59 5d efffffff51 tstl _prt_hdrs
113: 109 0000DB5F 31 16 jeql L405
114: 110 0000DB61 1d efffffff49 01 cmpl _cycle,$1
115: 111 0000DB68 21 0d jneq L405
116: 112 0000DB6A # writes("MULL3 is only tested with FPP hardware\n");
117: 113 0000DB6A .data 1
118: 114 000003d9 * L406:
119: 115 000003d9 * 4D554C4C33206973206F6E6C7 .ascii "MULL3 is only tested with FPP hardware\12\0"
120: 9207465737465642077697468
121: 2046505020686172647761726
122: 50A00
123: 116 00000401 * .text
124: 117 0000DB6A dd 8f000003d9 pushl $L406
125: 118 0000DB70 fe 08 efffffff39 callf $8,_writes
126: 119 0000DB77 # }
127: 120 0000DB77 L405:
128: 121 0000DB77 L404:
129: 122 0000DB77 # }
130: 123 0000DB77 # else if( (prt_hdrs) && (cycle == 1) ) {
131: 124 0000DB77 11 3b jbr L407
132: 125 0000DB79 L401:
133: 126 0000DB79 5d efffffff31 tstl _prt_hdrs
134: 127 0000DB7F 31 33 jeql L408
135: 128 0000DB81 1d efffffff29 01 cmpl _cycle,$1
136: 129 0000DB88 21 2a jneq L408
137: 130 0000DB8A # writes(
138: 131 0000DB8A # "There are no INTEGER OVERFLOW faults with op-code ");
139: 132 0000DB8A .data 1
140: 133 00000401 * L409:
141: 134 00000401 * 546865726520617265206E6F2 .ascii "There are no INTEGER OVERFLOW faults with op-code \0"
142: 0494E5445474552204F564552
143: 464C4F57206661756C7473207
144: 7697468206F702D636F646520
145: 00
146: 135 00000434 * .text
147: 136 0000DB8A dd 8f00000401 pushl $L409
148: 137 0000DB90 fe 08 efffffff19 callf $8,_writes
149: 138 0000DB97 # writeh( evt_inst ); /* print the ersatz op-code */
150: 139 0000DB97 dd efffffff13 pushl _evt_inst
151: 140 0000DB9D fe 08 efffffff0c callf $8,_writeh
152: 141 0000DBA4 # writec('\n');
153: 142 0000DBA4 dd 0a pushl $10
154: 143 0000DBA6 fe 08 efffffff03 callf $8,_writec
155: 144 0000DBAD # error = TRUE; /* needed for line feed spacing */
156: 145 0000DBAD 0d 01 effffffefc movl $1,_error
157: 146 0000DBB4 # }
158: 147 0000DBB4 # }
159: 148 0000DBB4 L408:
160: 149 0000DBB4 L407:
161: 150 0000DBB4 L400:
162: 151 0000DBB4 L392:
163: 152 0000DBB4 L389:
164: 153 0000DBB4 # else { /* test all instructions */
165: 154 0000DBB4 11 24 jbr L412
166: 155 0000DBB6 L386:
167: 156 0000DBB6 # run_cvfl(); /* test the CVFL instruction */
168: 157 0000DBB6 fe 04 ef00000021 callf $4,_run_cvfl
169: 158 0000DBBD # run_cvdl(); /* test the CVDL instruction */
170: 159 0000DBBD fe 04 ef000000b6 callf $4,_run_cvdl
171: 160 0000DBC4 # if( !no_fpp_wcs ) {
172: 161 0000DBC4 5d effffffee6 tstl _no_fpp_wcs
173: 162 0000DBCA 21 0e jneq L413
174: 163 0000DBCC # run_mull2(); /* test the MULL2 instruction */
175: 164 0000DBCC fe 04 ef00000143 callf $4,_run_mull2
176: 165 0000DBD3 # run_mull3(); /* test the MULL3 instruction */
177: 166 0000DBD3 fe 04 ef000001d8 callf $4,_run_mull3
178: 167 0000DBDA # }
179: 168 0000DBDA # }
180: 169 0000DBDA L413:
181: 170 0000DBDA L412:
182: 171 0000DBDA # }
183: 172 0000DBDA 40 ret#2
184: 173 0000DBDB .set L381,0x0
185: 174 0000DBDB L383:
186: 175 0000DBDB 13 fed7 jbr L384
187: 176 0000DBDE .data
188: 177 000003a0 * .text
189: 178 0000DBDE .align 1
190: 179 0000DBDE .globl _run_cvfl
191: 180 0000DBDE _run_cvfl:
192: 181 0000DBDE 0000 .word L414
193: 182 0000DBE0 #
194: 183 0000DBE0 #
195: 184 0000DBE0 # /*
196: 185 0000DBE0 # **********************************************************************
197: 186 0000DBE0 # *
198: 187 0000DBE0 # * SET UP TO TEST INTEGER OVERFLOW WITH THE CVFL INSTRUCTION
199: 188 0000DBE0 # *
200: 189 0000DBE0 # **********************************************************************
201: 190 0000DBE0 # */
202: 191 0000DBE0 # run_cvfl()
203: 192 0000DBE0 # {
204: 193 0000DBE0 13 0094 jbr L416
205: 194 0000DBE3 L417:
206: 195 0000DBE3 # valid_test = TRUE; /* a test is being run */
207: 196 0000DBE3 0d 01 effffffec6 movl $1,_valid_test
208: 197 0000DBEA # op_code = CVFL_OP_CODE; /* set the inst's op_code */
209: 198 0000DBEA 0d 890086 effffffebd movl $134,_op_code
210: 199 0000DBF3 # op_name = "CVFL "; /* set the inst's name */
211: 200 0000DBF3 .data 1
212: 201 00000434 * L418:
213: 202 00000434 * 4356464C2000 .ascii "CVFL \0"
214: 203 0000043a * .text
215: 204 0000DBF3 0d 8f00000434 effffffeb2 movl $L418,_op_name
216: 205 0000DBFE # precision = SGL;
217: 206 0000DBFE 0d 01 effffffeab movl $1,_precision
218: 207 0000DC05 # acc_ld_size = SGL; /* load a single precision Acc. */
219: 208 0000DC05 0d 01 effffffea4 movl $1,_acc_ld_size
220: 209 0000DC0C # sgl_op = TRUE;
221: 210 0000DC0C 0d 01 effffffe9d movl $1,_sgl_op
222: 211 0000DC13 # no_ops = 1; /* one operand */
223: 212 0000DC13 0d 01 effffffe96 movl $1,_no_ops
224: 213 0000DC1A # data_ptr = cvfl_ov_dat; /* set the data ptr */
225: 214 0000DC1A 0d 8f00000000 effffffe8b movl $_cvfl_ov_dat,_data_ptr
226: 215 0000DC25 # max_index = cvfl_ov_cnt; /* set the max index */
227: 216 0000DC25 0d effffffe85 effffffe80 movl _cvfl_ov_cnt,_max_index
228: 217 0000DC30 # if( (prt_hdrs) && (cycle == 1) )
229: 218 0000DC30 5d effffffe7a tstl _prt_hdrs
230: 219 0000DC36 31 16 jeql L419
231: 220 0000DC38 1d effffffe72 01 cmpl _cycle,$1
232: 221 0000DC3F 21 0d jneq L419
233: 222 0000DC41 # writes( op_name );
234: 223 0000DC41 dd effffffe69 pushl _op_name
235: 224 0000DC47 fe 08 effffffe62 callf $8,_writes
236: 225 0000DC4E # disable_mask = 0; /* don't disable any events */
237: 226 0000DC4E L419:
238: 227 0000DC4E 4b effffffe5c clrw _disable_mask
239: 228 0000DC54 # evt_disabled = FALSE; /* expected event is enabled */
240: 229 0000DC54 4d effffffe56 clrl _evt_disabled
241: 230 0000DC5A # test_inst();
242: 231 0000DC5A fe 04 effffffe4f callf $4,_test_inst
243: 232 0000DC61 # disable_mask = PSL_EN_OVFL; /* disable the int ovfl event */
244: 233 0000DC61 7f 20 effffffe48 cvtlw $32,_disable_mask
245: 234 0000DC68 # evt_disabled = TRUE;
246: 235 0000DC68 0d 01 effffffe41 movl $1,_evt_disabled
247: 236 0000DC6F # test_inst();
248: 237 0000DC6F fe 04 effffffe3a callf $4,_test_inst
249: 238 0000DC76 # }
250: 239 0000DC76 40 ret#2
251: 240 0000DC77 .set L414,0x0
252: 241 0000DC77 L416:
253: 242 0000DC77 13 ff69 jbr L417
254: 243 0000DC7A .data
255: 244 000003a0 * .text
256: 245 0000DC7A .align 1
257: 246 0000DC7A .globl _run_cvdl
258: 247 0000DC7A _run_cvdl:
259: 248 0000DC7A 0000 .word L421
260: 249 0000DC7C #
261: 250 0000DC7C # /*
262: 251 0000DC7C # **********************************************************************
263: 252 0000DC7C # *
264: 253 0000DC7C # * SET UP TO TEST INTEGER OVERFLOW WITH THE CVDL INSTRUCTION
265: 254 0000DC7C # *
266: 255 0000DC7C # **********************************************************************
267: 256 0000DC7C # */
268: 257 0000DC7C # run_cvdl()
269: 258 0000DC7C # {
270: 259 0000DC7C 13 0094 jbr L423
271: 260 0000DC7F L424:
272: 261 0000DC7F # valid_test = TRUE; /* a test is being run */
273: 262 0000DC7F 0d 01 effffffe2a movl $1,_valid_test
274: 263 0000DC86 # op_code = CVDL_OP_CODE; /* set the inst's op_code */
275: 264 0000DC86 0d 890087 effffffe21 movl $135,_op_code
276: 265 0000DC8F # op_name = "CVDL "; /* set the inst's name */
277: 266 0000DC8F .data 1
278: 267 0000043a * L425:
279: 268 0000043a * 4356444C2000 .ascii "CVDL \0"
280: 269 00000440 * .text
281: 270 0000DC8F 0d 8f0000043a effffffe16 movl $L425,_op_name
282: 271 0000DC9A # precision = DBL;
283: 272 0000DC9A 0d 02 effffffe0f movl $2,_precision
284: 273 0000DCA1 # acc_ld_size = DBL; /* load a double precision Acc. */
285: 274 0000DCA1 0d 02 effffffe08 movl $2,_acc_ld_size
286: 275 0000DCA8 # sgl_op = TRUE;
287: 276 0000DCA8 0d 01 effffffe01 movl $1,_sgl_op
288: 277 0000DCAF # no_ops = 1; /* one operand */
289: 278 0000DCAF 0d 01 effffffdfa movl $1,_no_ops
290: 279 0000DCB6 # data_ptr = cvdl_ov_dat; /* set the data ptr */
291: 280 0000DCB6 0d 8f00000000 effffffdef movl $_cvdl_ov_dat,_data_ptr
292: 281 0000DCC1 # max_index = cvdl_ov_cnt; /* set the max index */
293: 282 0000DCC1 0d effffffde9 effffffde4 movl _cvdl_ov_cnt,_max_index
294: 283 0000DCCC # if( (prt_hdrs) && (cycle == 1) )
295: 284 0000DCCC 5d effffffdde tstl _prt_hdrs
296: 285 0000DCD2 31 16 jeql L426
297: 286 0000DCD4 1d effffffdd6 01 cmpl _cycle,$1
298: 287 0000DCDB 21 0d jneq L426
299: 288 0000DCDD # writes( op_name );
300: 289 0000DCDD dd effffffdcd pushl _op_name
301: 290 0000DCE3 fe 08 effffffdc6 callf $8,_writes
302: 291 0000DCEA # disable_mask = 0; /* don't disable any events */
303: 292 0000DCEA L426:
304: 293 0000DCEA 4b effffffdc0 clrw _disable_mask
305: 294 0000DCF0 # evt_disabled = FALSE; /* expected event is enabled */
306: 295 0000DCF0 4d effffffdba clrl _evt_disabled
307: 296 0000DCF6 # test_inst();
308: 297 0000DCF6 fe 04 effffffdb3 callf $4,_test_inst
309: 298 0000DCFD # disable_mask = PSL_EN_OVFL; /* disable the int ovfl event */
310: 299 0000DCFD 7f 20 effffffdac cvtlw $32,_disable_mask
311: 300 0000DD04 # evt_disabled = TRUE;
312: 301 0000DD04 0d 01 effffffda5 movl $1,_evt_disabled
313: 302 0000DD0B # test_inst();
314: 303 0000DD0B fe 04 effffffd9e callf $4,_test_inst
315: 304 0000DD12 # }
316: 305 0000DD12 40 ret#2
317: 306 0000DD13 .set L421,0x0
318: 307 0000DD13 L423:
319: 308 0000DD13 13 ff69 jbr L424
320: 309 0000DD16 .data
321: 310 000003a0 * .text
322: 311 0000DD16 .align 1
323: 312 0000DD16 .globl _run_mull2
324: 313 0000DD16 _run_mull2:
325: 314 0000DD16 0000 .word L427
326: 315 0000DD18 #
327: 316 0000DD18 #
328: 317 0000DD18 # /*
329: 318 0000DD18 # **********************************************************************
330: 319 0000DD18 # *
331: 320 0000DD18 # * SET UP TO TEST INTEGER OVERFLOW WITH THE MULL2 INSTRUCTION
332: 321 0000DD18 # *
333: 322 0000DD18 # **********************************************************************
334: 323 0000DD18 # */
335: 324 0000DD18 # run_mull2()
336: 325 0000DD18 # {
337: 326 0000DD18 13 0093 jbr L429
338: 327 0000DD1B L430:
339: 328 0000DD1B # valid_test = TRUE; /* a test is being run */
340: 329 0000DD1B 0d 01 effffffd8e movl $1,_valid_test
341: 330 0000DD22 # op_code = MULL2_OP_CODE; /* set the inst's op_code */
342: 331 0000DD22 0d 884c effffffd86 movl $76,_op_code
343: 332 0000DD2A # op_name = "MULL2 "; /* set the inst's name */
344: 333 0000DD2A .data 1
345: 334 00000440 * L431:
346: 335 00000440 * 4D554C4C322000 .ascii "MULL2 \0"
347: 336 00000447 * .text
348: 337 0000DD2A 0d 8f00000440 effffffd7b movl $L431,_op_name
349: 338 0000DD35 # precision = SGL;
350: 339 0000DD35 0d 01 effffffd74 movl $1,_precision
351: 340 0000DD3C # acc_ld_size = DBL; /* load a double precision Acc. */
352: 341 0000DD3C 0d 02 effffffd6d movl $2,_acc_ld_size
353: 342 0000DD43 # sgl_op = TRUE;
354: 343 0000DD43 0d 01 effffffd66 movl $1,_sgl_op
355: 344 0000DD4A # no_ops = 2; /* two operands */
356: 345 0000DD4A 0d 02 effffffd5f movl $2,_no_ops
357: 346 0000DD51 # data_ptr = mull_ov_dat; /* set the data ptr */
358: 347 0000DD51 0d 8f00000000 effffffd54 movl $_mull_ov_dat,_data_ptr
359: 348 0000DD5C # max_index = mull_ov_cnt; /* set the max index */
360: 349 0000DD5C 0d effffffd4e effffffd49 movl _mull_ov_cnt,_max_index
361: 350 0000DD67 # if( (prt_hdrs) && (cycle == 1) )
362: 351 0000DD67 5d effffffd43 tstl _prt_hdrs
363: 352 0000DD6D 31 16 jeql L432
364: 353 0000DD6F 1d effffffd3b 01 cmpl _cycle,$1
365: 354 0000DD76 21 0d jneq L432
366: 355 0000DD78 # writes( op_name );
367: 356 0000DD78 dd effffffd32 pushl _op_name
368: 357 0000DD7E fe 08 effffffd2b callf $8,_writes
369: 358 0000DD85 # disable_mask = 0; /* don't disable any events */
370: 359 0000DD85 L432:
371: 360 0000DD85 4b effffffd25 clrw _disable_mask
372: 361 0000DD8B # evt_disabled = FALSE; /* expected event is enabled */
373: 362 0000DD8B 4d effffffd1f clrl _evt_disabled
374: 363 0000DD91 # test_inst();
375: 364 0000DD91 fe 04 effffffd18 callf $4,_test_inst
376: 365 0000DD98 # disable_mask = PSL_EN_OVFL; /* disable the int ovfl event */
377: 366 0000DD98 7f 20 effffffd11 cvtlw $32,_disable_mask
378: 367 0000DD9F # evt_disabled = TRUE;
379: 368 0000DD9F 0d 01 effffffd0a movl $1,_evt_disabled
380: 369 0000DDA6 # test_inst();
381: 370 0000DDA6 fe 04 effffffd03 callf $4,_test_inst
382: 371 0000DDAD # }
383: 372 0000DDAD 40 ret#2
384: 373 0000DDAE .set L427,0x0
385: 374 0000DDAE L429:
386: 375 0000DDAE 13 ff6a jbr L430
387: 376 0000DDB1 .data
388: 377 000003a0 * .text
389: 378 0000DDB1 00 .align 1
390: 379 0000DDB2 .globl _run_mull3
391: 380 0000DDB2 _run_mull3:
392: 381 0000DDB2 0000 .word L433
393: 382 0000DDB4 #
394: 383 0000DDB4 #
395: 384 0000DDB4 #
396: 385 0000DDB4 # /*
397: 386 0000DDB4 # **********************************************************************
398: 387 0000DDB4 # *
399: 388 0000DDB4 # * SET UP TO TEST INTEGER OVERFLOW WITH THE MULL3 INSTRUCTION
400: 389 0000DDB4 # *
401: 390 0000DDB4 # **********************************************************************
402: 391 0000DDB4 # */
403: 392 0000DDB4 # run_mull3()
404: 393 0000DDB4 # {
405: 394 0000DDB4 13 0093 jbr L435
406: 395 0000DDB7 L436:
407: 396 0000DDB7 # valid_test = TRUE; /* a test is being run */
408: 397 0000DDB7 0d 01 effffffcf2 movl $1,_valid_test
409: 398 0000DDBE # op_code = MULL3_OP_CODE; /* set the inst's op_code */
410: 399 0000DDBE 0d 885c effffffcea movl $92,_op_code
411: 400 0000DDC6 # op_name = "MULL3 "; /* set the inst's name */
412: 401 0000DDC6 .data 1
413: 402 00000447 * L437:
414: 403 00000447 * 4D554C4C332000 .ascii "MULL3 \0"
415: 404 0000044e * .text
416: 405 0000DDC6 0d 8f00000447 effffffcdf movl $L437,_op_name
417: 406 0000DDD1 # precision = SGL;
418: 407 0000DDD1 0d 01 effffffcd8 movl $1,_precision
419: 408 0000DDD8 # acc_ld_size = DBL; /* load a double precision Acc. */
420: 409 0000DDD8 0d 02 effffffcd1 movl $2,_acc_ld_size
421: 410 0000DDDF # sgl_op = TRUE;
422: 411 0000DDDF 0d 01 effffffcca movl $1,_sgl_op
423: 412 0000DDE6 # no_ops = 3; /* three operands */
424: 413 0000DDE6 0d 03 effffffcc3 movl $3,_no_ops
425: 414 0000DDED # data_ptr = mull_ov_dat; /* set the data ptr */
426: 415 0000DDED 0d 8f00000000 effffffcb8 movl $_mull_ov_dat,_data_ptr
427: 416 0000DDF8 # max_index = mull_ov_cnt; /* set the max index */
428: 417 0000DDF8 0d effffffcb2 effffffcad movl _mull_ov_cnt,_max_index
429: 418 0000DE03 # if( (prt_hdrs) && (cycle == 1) )
430: 419 0000DE03 5d effffffca7 tstl _prt_hdrs
431: 420 0000DE09 31 16 jeql L438
432: 421 0000DE0B 1d effffffc9f 01 cmpl _cycle,$1
433: 422 0000DE12 21 0d jneq L438
434: 423 0000DE14 # writes( op_name );
435: 424 0000DE14 dd effffffc96 pushl _op_name
436: 425 0000DE1A fe 08 effffffc8f callf $8,_writes
437: 426 0000DE21 # disable_mask = 0; /* don't disable any events */
438: 427 0000DE21 L438:
439: 428 0000DE21 4b effffffc89 clrw _disable_mask
440: 429 0000DE27 # evt_disabled = FALSE; /* expected event is enabled */
441: 430 0000DE27 4d effffffc83 clrl _evt_disabled
442: 431 0000DE2D # test_inst();
443: 432 0000DE2D fe 04 effffffc7c callf $4,_test_inst
444: 433 0000DE34 # disable_mask = PSL_EN_OVFL; /* disable the int ovfl event */
445: 434 0000DE34 7f 20 effffffc75 cvtlw $32,_disable_mask
446: 435 0000DE3B # evt_disabled = TRUE;
447: 436 0000DE3B 0d 01 effffffc6e movl $1,_evt_disabled
448: 437 0000DE42 # test_inst();
449: 438 0000DE42 fe 04 effffffc67 callf $4,_test_inst
450: 439 0000DE49 # }
451: 440 0000DE49 40 ret#2
452: 441 0000DE4A .set L433,0x0
453: 442 0000DE4A L435:
454: 443 0000DE4A 13 ff6a jbr L436
455: 444 0000DE4D .data
456: 445 000003a0 * #
457: 446 000003a0 * #
458: 446 000003a0 * #
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.