|
|
1.1 root 1:
2: /**************************************************************************
3: *
4: * FLOATING POINT MACRO TEST GLOBAL VARIABLES
5: *
6: **************************************************************************/
7:
8:
9: filler:
10: .align 2 /* longword align */
11: .globl _run_list
12: _run_list:
13: .long 0 /* user entered test to execute */
14: .align 2 /* longword align */
15:
16: .globl _test_no
17: _test_no:
18: .long 0 /* test # being executed */
19:
20: .globl _subtest
21: _subtest:
22: .long 0 /* subtest # being executed */
23:
24: .globl _cycle
25: _cycle:
26: .long 0 /* current test cycle */
27:
28: .globl _run_all
29: _run_all:
30: .long 0 /* flag - if <> 0, run all tests */
31:
32: .align 2
33: .globl _Hardclk
34: _Hardclk:
35: incl _clk_cnt
36: rei
37:
38: .align 2
39: .globl _tstmsk
40: _tstmsk: .long 0 /* tests to run */
41: .globl _ss1
42: _ss1: .long 0 /* If 1 then do not print heading messages */
43:
44: .globl _zero /* a known '0' data pattern */
45: _zero:
46: .long 0
47:
48: .globl _nonstop /* continuous testing flag */
49: _nonstop:
50: .long 0
51:
52: .globl _OPTIONS /* r1 options */
53: _OPTIONS:
54: .long 0
55:
56: .globl _halt_flg /* b(0) flag -halt on error */
57: _halt_flg:
58: .long 0
59:
60: .globl _loop_on_err /* b(1) flag -loop on error */
61: _loop_on_err:
62: .long 0
63:
64: .globl _prt_error /* b(2) flag -print error messages */
65: _prt_error:
66: .long 0
67:
68: .globl _prt_hdrs /* b(3) flag -print header messages */
69: _prt_hdrs:
70: .long 0
71:
72: .globl _en_data_cache /* b(4) flag -enable the data cache */
73: _en_data_cache:
74: .long 0
75:
76: .globl _user_mode /* b(5) flag -run DMP tests in user mode */
77: _user_mode:
78: .long 0
79:
80: .globl _evt_inst /* R3 flag -instruction op-code to test */
81: _evt_inst:
82: .long 0
83:
84: .globl _no_fpp_wcs /* flag -the NO-FPP WCS was loaded */
85: _no_fpp_wcs:
86: .long 0
87:
88: .globl _emulated_inst /* flag -instr is emulated w/ no-fpp wcs */
89: _emulated_inst:
90: .long 0
91:
92: .globl _force_loop /* flag -force loop after error if set */
93: _force_loop:
94: .long 0
95:
96: .globl _clock_event /* flag - a clock event occurred */
97: _clock_event:
98: .long 0
99:
100: .globl _test_event /* flag - type of event under test */
101: _test_event:
102: .long 0
103:
104: .globl _exp_event /* flag - expect fpp event & type expected */
105: _exp_event:
106: .long 0
107:
108: .globl _exp_code /* flag - type of arithmetic fault expected */
109: _exp_code:
110: .long 0
111:
112: .globl _evt_disabled /* flag - event is disabled in the PSW */
113: _evt_disabled:
114: .long 0
115:
116: .globl _disable_mask /* mask to disable events in the PSW */
117: _disable_mask:
118: .word 0
119: .align 2
120:
121: .globl _nop_cnt /* # of NOPs between test instructions */
122: _nop_cnt:
123: .long 0
124:
125: .globl _pipe_test /* flag - pipelineing test in progress */
126: _pipe_test:
127: .long 0
128:
129: .globl _pipe_inst1 /* 1st instruction in pipelined test */
130: _pipe_inst1:
131: .long 0
132:
133: .globl _pipe_inst2 /* last instruction in pipelined test */
134: _pipe_inst2:
135: .long 0
136:
137: .globl _event_msg /* pointer to event message */
138: _event_msg:
139: .long 0
140:
141: .globl _event_return /* return address after fpp event */
142: _event_return:
143: .long 0
144:
145: .globl _unexp_event_ret /* return address after unexpected event */
146: _unexp_event_ret:
147: .long 0
148:
149: .globl _event_type /* event type (arith, resop, etc.) */
150: _event_type:
151: .long 0
152:
153: .globl _event_code /* arith fault type (ovfl, undfl,...) */
154: _event_code:
155: .long 0
156:
157: .globl _fpm_trap_occurred /* flag -got an FPM trap */
158: _fpm_trap_occurred:
159: .long 0
160:
161: .globl _push_cnt /* # longwords pushed on stack by an event */
162: _push_cnt:
163: .long 0
164:
165: .globl _exp_push_cnt /* # longwords expected to be pushed */
166: _exp_push_cnt:
167: .long 0
168:
169: .globl _i_cache_hit /* instruction cache hit flag */
170: _i_cache_hit:
171: .long 0
172:
173: .globl _monitor_fp /* the monitor's frame pointer */
174: _monitor_fp:
175: .long 0
176:
177: .globl _monitor_sp /* the monitor's stack pointer */
178: _monitor_sp:
179: .long 0
180:
181: .globl _run_code_psl /* "run_code"'s entry PSL */
182: _run_code_psl:
183: .long 0
184:
185: .globl _event_pc /* PC pushed on the stack by an event */
186: _event_pc:
187: .long 0
188:
189: .globl _event_psl /* PSL pushed on the stack by an event */
190: _event_psl:
191: .long 0
192:
193: .globl _post_evt_acc /* Accumulator value after an event */
194: _post_evt_acc:
195: .long 0
196: .long 0
197:
198: .globl _post_event_psl /* PSL after an FPM event */
199: _post_event_psl:
200: .long 0
201:
202: .globl _pre_event_fp /* frame pointer before an expected event */
203: _pre_event_fp:
204: .long 0
205:
206: .globl _pre_event_sp /* stack pointer before an expected event */
207: _pre_event_sp:
208: .long 0
209:
210: .globl _post_event_sp /* stack pointer after an fpp event */
211: _post_event_sp:
212: .long 0
213:
214: /* post_event_fp is with STORE_REG */
215:
216: .globl _count /* cycle count */
217: _count: .long 0
218:
219: .globl _tmp_mcbr
220: _tmp_mcbr: .long 0
221: .globl _tmp_mear
222: _tmp_mear: .long 0
223:
224:
225:
226: .globl _dbl_value_1 /* 1st dbl test value */
227: _dbl_value_1:
228: .long 0
229: .long 0
230:
231: .globl _dbl_value_2 /* 2nd dbl test value */
232: _dbl_value_2:
233: .long 0
234: .long 0
235:
236: .globl _dbl_value_3 /* 3rd dbl test value */
237: _dbl_value_3:
238: .long 0
239: .long 0
240:
241: .globl _dbl_expected /* expected dbl data */
242: _dbl_expected:
243: .long 0
244: .long 0
245:
246: .globl _dbl_ld_acc /* load dbl acc. from here */
247: _dbl_ld_acc:
248: .long 0
249: .long 0
250:
251: .globl _dbl_st_acc /* stored dbl accumulator */
252: _dbl_st_acc:
253: .long 0
254: .long 0
255:
256: .globl _dbl_dummy1 /* dummy quad word */
257: _dbl_dummy1:
258: .long 0
259: .long 0
260:
261: .globl _dbl_dummy2 /* ditto */
262: _dbl_dummy2:
263: .long 0
264: .long 0
265:
266: .globl _sgl_value_1 /* 1st sgl data value */
267: _sgl_value_1:
268: .long 0
269:
270: .globl _sgl_value_2 /* 2nd sgl data value */
271: _sgl_value_2:
272: .long 0
273:
274: .globl _sgl_value_3 /* 3rd sgl data value */
275: _sgl_value_3:
276: .long 0
277:
278: .globl _sgl_value_4 /* 4th sgl data value */
279: _sgl_value_4:
280: .long 0
281:
282: .globl _sgl_value_5 /* 5th sgl data value */
283: _sgl_value_5:
284: .long 0
285:
286: .globl _sgl_value_6 /* 6th sgl data value */
287: _sgl_value_6:
288: .long 0
289:
290: .globl _sgl_value_7 /* 7th sgl data value */
291: _sgl_value_7:
292: .long 0
293:
294: .globl _sgl_value_8 /* 8th sgl data value */
295: _sgl_value_8:
296: .long 0
297:
298: .globl _sgl_value_9 /* 9th sgl data value */
299: _sgl_value_9:
300: .long 0
301:
302: .globl _sgl_value_10 /* 10th sgl data value */
303: _sgl_value_10:
304: .long 0
305:
306: .globl _sgl_expected /* expected sgl data */
307: _sgl_expected:
308: .long 0
309:
310: .globl _sgl_ld_acc /* load sgl acc. from here */
311: _sgl_ld_acc:
312: .long 0
313:
314: .globl _sgl_st_acc /* stored sgl acc. */
315: _sgl_st_acc:
316: .long 0
317:
318: .globl _sgl_dummy1 /* a dummy variable */
319: _sgl_dummy1:
320: .long 0
321:
322: .globl _sgl_dummy2 /* a dummy variable, too */
323: _sgl_dummy2:
324: .long 0
325:
326: .globl _psl_val /* PSL value */
327: _psl_val:
328: .long 0
329:
330: .globl _exp_psl /* expected PSL value */
331: _exp_psl:
332: .long 0
333:
334: .globl _init_psl /* initial PSL value */
335: _init_psl:
336: .long 0
337:
338: .globl _status_array /* array of +, -, 0 data */
339: _status_array:
340: .long 255 /* + */
341: .long -15 /* - */
342: .long 0 /* 0 */
343:
344: .globl _status_index /* index to status array */
345: _status_index:
346: .long 0
347:
348: .globl _test_flags /* condition flags seen */
349: _test_flags:
350: .long 0
351:
352: .globl _fpm_ms_op /* MS op on stack -FPM trap */
353: _fpm_ms_op:
354: .long 0
355:
356: .globl _fpm_ls_op /* LS op on stack -FPM trap */
357: _fpm_ls_op:
358: .long 0
359:
360: .globl _fpm_op_code /* stack's op-code -FPM trap */
361: _fpm_op_code:
362: .long 0
363:
364: .globl _fpm_pc /* stack's PC -FPM trap */
365: _fpm_pc:
366: .long 0
367:
368: .globl _fpm_psl /* stack's PSL -FPM trap */
369: _fpm_psl:
370: .long 0
371:
372: .globl _rtc_occurred /* flag -clock event seen */
373: _rtc_occurred:
374: .long 0
375:
376: .globl _clock_retrys /* # times to wait for clock */
377: _clock_retrys:
378: .long 0
379:
380: .globl _pop_val_1 /* 1st popped stack data */
381: _pop_val_1:
382: .long 0
383:
384: .globl _pop_val_2 /* 2nd popped stack data */
385: _pop_val_2:
386: .long 0
387:
388: .globl _pop_val_3 /* 3rd popped stack data */
389: _pop_val_3:
390: .long 0
391:
392: .globl _pop_val_4 /* 4th popped stack data */
393: _pop_val_4:
394: .long 0
395:
396: .globl _pop_val_5 /* 5th popped stack data */
397: _pop_val_5:
398: .long 0
399:
400: .globl _pop_val_6 /* 6th popped stack data */
401: _pop_val_6:
402: .long 0
403:
404: .globl _exp_pc /* expected PC */
405: _exp_pc:
406: .long 0
407:
408: .globl _act_pc /* actual PC */
409: _act_pc:
410: .long 0
411:
412: .globl _op_code /* op-code of the inst. */
413: _op_code:
414: .long 0
415:
416: .globl _op_name /* instruction name */
417: _op_name:
418: .long 0
419:
420: .globl _precision /* sgl / dbl precision inst */
421: _precision:
422: .long 0
423:
424: .globl _acc_ld_size /* sgl or dbl acc. loaded */
425: _acc_ld_size:
426: .long 0
427:
428: .globl _acc_st_size /* sgl or dbl acc. stored */
429: _acc_st_size:
430: .long 0
431:
432: .globl _no_ops /* # of operands needed */
433: _no_ops:
434: .long 0
435:
436: .globl _op_type /* load / store operand */
437: _op_type:
438: .long 0
439:
440: .globl _load_type_inst /* flag -inst loads the Acc */
441: _load_type_inst:
442: .long 0
443:
444: .globl _sgl_op /* inst has sgl operand(s) */
445: _sgl_op:
446: .long 0
447:
448: .globl _s_to_d /* inst converts sgl to dbl */
449: _s_to_d:
450: .long 0
451:
452: .globl _d_to_s /* inst converts dbl to sgl */
453: _d_to_s:
454: .long 0
455:
456: .globl _valid_test /* flag -some tests were run */
457: _valid_test:
458: .long 0
459:
460: .globl _insts_tested /* # of instructions tested */
461: _insts_tested:
462: .long 0
463:
464: .globl _force_sp /* flag to set the SP value */
465: _force_sp:
466: .long 0
467:
468: .globl _data_ptr /* ptr to dmp test data tbl */
469: _data_ptr:
470: .long 0
471:
472: .globl _test_ptr /* ptr to result test func. */
473: _test_ptr:
474: .long 0
475:
476: .globl _no_page_faults /* # addr page faults found */
477: _no_page_faults:
478: .long 0
479:
480: .globl _exp_page_faults /* # addr page faults exp'd */
481: _exp_page_faults:
482: .long 0
483:
484: .globl _trans_acc_error /* flag -bad Acc after pg flt */
485: _trans_acc_error:
486: .long 0
487:
488: .globl _trans_acc /* Acc. after a page fault */
489: _trans_acc:
490: .long 0
491: .long 0
492:
493: .globl _exp_trans_acc /* Acc. expected after fault */
494: _exp_trans_acc:
495: .long 0
496: .long 0
497:
498: /*
499: * OFFSETS FROM THE CODE BUFFER TO THE DMP DATA OPERANDS
500: */
501: .globl _os_b_op1 /* offset to byte operand 1 */
502: _os_b_op1:
503: .long _dmp_byte_op_1-DMP_PG_1
504:
505: .globl _os_b_op2 /* offset to byte operand 2 */
506: _os_b_op2:
507: .long _dmp_byte_op_2-DMP_PG_1
508:
509: .globl _os_b_op3 /* offset to byte operand 3 */
510: _os_b_op3:
511: .long _dmp_byte_op_3-DMP_PG_1
512:
513: .globl _os_op1 /* offset to word operand 1 */
514: _os_op1:
515: .long _dmp_op_1-DMP_PG_1
516:
517: .globl _os_op2 /* offset to word operand 2 */
518: _os_op2:
519: .long _dmp_op_2-DMP_PG_1
520:
521: .globl _os_op3 /* offset to word operand 3 */
522: _os_op3:
523: .long _dmp_op_3-DMP_PG_1
524:
525: .globl _os_ad_op1 /* offset to operand 1 ptr. */
526: _os_ad_op1:
527: .long _dmp_op_1_ptr-DMP_PG_1
528:
529: .globl _os_ad_op2 /* offset to operand 2 ptr. */
530: _os_ad_op2:
531: .long _dmp_op_2_ptr-DMP_PG_1
532:
533: .globl _os_ad_op3 /* offset to operand 3 ptr. */
534: _os_ad_op3:
535: .long _dmp_op_3_ptr-DMP_PG_1
536:
537:
538: /*
539: * Pointers to the Demand Paging Data Operands
540: */
541: .globl _adr_b_op1 /* byte operand 1's address */
542: _adr_b_op1:
543: .long _dmp_byte_op_1
544:
545: .globl _adr_bop1_lsw /* addr of byte op 1's LSW */
546: _adr_bop1_lsw:
547: .long _dmp_byte_op_1+4
548:
549: .globl _adr_b_op2 /* byte operand 2's address */
550: _adr_b_op2:
551: .long _dmp_byte_op_2
552:
553: .globl _adr_bop2_lsw /* addr of byte op 2's LSW */
554: _adr_bop2_lsw:
555: .long _dmp_byte_op_2+4
556:
557: .globl _adr_b_op3 /* byte operand 3's address */
558: _adr_b_op3:
559: .long _dmp_byte_op_3
560:
561: .globl _adr_op1 /* operand 1's address */
562: _adr_op1:
563: .long _dmp_op_1
564:
565: .globl _adr_op1_lsw /* address of LSW of dbl op 1 */
566: _adr_op1_lsw:
567: .long _dmp_op_1+4
568:
569: .globl _adr_op2 /* operand 2's address */
570: _adr_op2:
571: .long _dmp_op_2
572:
573: .globl _adr_op2_lsw /* address of LSW of dbl op 2 */
574: _adr_op2_lsw:
575: .long _dmp_op_2+4
576:
577: .globl _adr_op3 /* operand 3's address */
578: _adr_op3:
579: .long _dmp_op_3
580:
581: .globl _adr_op4 /* operand 4's address */
582: _adr_op4:
583: .long _dmp_op_4
584:
585: .globl _adr_op5 /* operand 5's address */
586: _adr_op5:
587: .long _dmp_op_5
588:
589: .globl _adr_op1_ptr /* op. ptr 1's address */
590: _adr_op1_ptr:
591: .long _dmp_op_1_ptr
592:
593: .globl _adr_op3_ptr /* op. ptr 3's address */
594: _adr_op3_ptr:
595: .long _dmp_op_3_ptr
596:
597: .globl _adr_op2_ptr /* op. ptr 2's address */
598: _adr_op2_ptr:
599: .long _dmp_op_2_ptr
600:
601: .globl _reg_no /* register being validated */
602: _reg_no:
603: .long 0
604:
605: .globl _regs_ok /* flag -no reg. miscompares*/
606: _regs_ok:
607: .long 0
608:
609: .globl _exp_reg /* expected reg. value */
610: _exp_reg:
611: .long 0
612:
613: .globl _act_reg /* actual register value */
614: _act_reg:
615: .long 0
616:
617: .globl _test_index /* test table index */
618: _test_index:
619: .long 0
620:
621: .globl _inst_index /* instruction table index */
622: _inst_index:
623: .long 0
624:
625: .globl _index /* test data index */
626: _index:
627: .long 0
628:
629: .globl _index2 /* test data index # 2 */
630: _index2:
631: .long 0
632:
633: .globl _old_indx /* test data index (-1) */
634: _old_indx:
635: .long 0
636:
637: .globl _max_index /* maximum data index */
638: _max_index:
639: .long 0
640:
641: .globl _loop_val_1a /* op_1 MSW for data swaps */
642: _loop_val_1a:
643: .long 0x40800000
644:
645: .globl _loop_val_1b /* op_1 MSW for data swaps */
646: _loop_val_1b:
647: .long 0x40800000
648:
649: .globl _loop_val_1c /*op_1 LSW for data swaps */
650: _loop_val_1c:
651: .long 0x40800000
652:
653: .globl _loop_val_1d /* op_1 LSW for data swaps */
654: _loop_val_1d:
655: .long 0x40800000
656:
657: .globl _loop_val_2a /* op_2 MSW for data swaps */
658: _loop_val_2a:
659: .long 0x40800000
660:
661: .globl _loop_val_2b /* op_2 MSW for data swaps */
662: _loop_val_2b:
663: .long 0x40800000
664:
665: .globl _loop_val_2c /* op_2 LSW for data swaps */
666: _loop_val_2c:
667: .long 0x40800000
668:
669: .globl _loop_val_2d /* op_2 LSW for data swaps */
670: _loop_val_2d:
671: .long 0x40800000
672:
673: .globl _error /* an error exists flag */
674: _error:
675: .long 0
676:
677: .globl _err_code /* code ( type ) of error */
678: _err_code:
679: .long 0
680:
681: .globl _subtest_message /* pointer to test message */
682: _subtest_message:
683: .long 0
684:
685: .globl _error_message /* pointer to error message */
686: _error_message:
687: .long 0
688:
689: .globl _load_regs /* load registers' buffer */
690: _load_regs:
691: .space (15*4)
692:
693: .globl _store_regs /* store registers' buffer */
694: _store_regs:
695: .space (15*4)
696:
697: .globl _exp_regs /* expected register data */
698: _exp_regs:
699: .space (15*4)
700:
701: .globl _post_event_fp /* frame pointer storage */
702: _post_event_fp: /* (must follow store_reg */
703: .long 0
704:
705:
706: .globl _address_fault_expected /* reserved-address fault? */
707: _address_fault_expected:
708: .long 0
709:
710: .globl _loop_addr /* for addr test looping */
711: _loop_addr:
712: .long 0
713:
714: .globl _next_addr /* for address testing */
715: _next_addr:
716: .long 0
717:
718: .globl _addr_mode /* current addressing mode */
719: _addr_mode:
720: .long 0
721:
722: .globl _addr_code /* code for addressing mode */
723: _addr_code:
724: .long 0
725:
726: .globl _addr_code2 /* addr code for 2nd operand */
727: _addr_code2:
728: .long 0
729:
730: .globl _addr_code3 /* addr code for 3rd operand */
731: _addr_code3:
732: .long 0
733:
734: .globl _addr_codeB /* 2nd adr code for indexing */
735: _addr_codeB:
736: .long 0
737:
738: .globl _addr_code_p1 /* addr code for pipelines */
739: _addr_code_p1:
740: .long 0
741:
742: .globl _addr_code_p2 /* addr code for pipelines */
743: _addr_code_p2:
744: .long 0
745:
746: .globl _inst_size /* # of bytes in instruction */
747: _inst_size:
748: .long 0
749:
750: .globl _shift_count /* inst_buf shift count */
751: _shift_count:
752: .long 0
753:
754: .globl _min_shift /* minimum inst_buf shift */
755: _min_shift:
756: .long 0
757:
758: .globl _addr_size /* size of addr specifier(s)*/
759: _addr_size:
760: .long 0
761:
762: .globl _addr_1 /* address specifier # 1 */
763: _addr_1:
764: .long 0
765:
766: .globl _addr_2 /* address specifier # 2 */
767: _addr_2:
768: .long 0
769:
770: .globl _addr_3 /* address specifier # 3 */
771: _addr_3:
772: .long 0
773:
774: .globl _inst_buf /* instruction code buffer */
775: _inst_buf:
776: .space 20 /* 20 bytes (5 longwords) */
777: .globl _end_of_inst_buf
778: _end_of_inst_buf:
779:
780: .globl _code_addr /* start of test code */
781: _code_addr:
782: .long 0
783:
784:
785:
786:
787: /*
788: * exaustive test data
789: */
790:
791: .globl _fudgeing_ok /* +/- 1 answer is OK */
792: _fudgeing_ok:
793: .long 0
794:
795: .globl _not_done /* keep testing flag */
796: _not_done:
797: .long 0
798:
799: .globl _use_ITT_data /* use ITT type fractions */
800: _use_ITT_data:
801: .long 0
802:
803: .space (80*4) /* room for 40 stack entries */
804: .long 0
805: .globl _pointer_data /* point test FP / SP here */
806: _pointer_data:
807: .long 0
808: .globl _pointer_data_2 /* LSW for FP/SP addressing*/
809: _pointer_data_2:
810: .long 0
811: .space (10*4) /* more buffer space */
812:
813:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.