|
|
1.1 root 1:
2: #include "dmp_defs.h"
3:
4:
5:
6: /*************************************************************************
7: *
8: * SCHEDULE THE ADDRESSING / DEMAND PAGING TESTS FOR AN INSTRUCTION
9: *
10: *************************************************************************/
11: sched_test( test_index )
12: int test_index;
13: {
14: exp_event = FALSE; /* clear event expected flag */
15: force_loop = FALSE; /* clear the force a loop flag */
16: unexp_event_ret = FALSE; /* clear unexpected event return */
17: /*
18: * get the information about this instruction
19: */
20: op_code = inst_tbl[ test_index ].inst_code;
21: op_name = inst_tbl[ test_index ].name;
22: precision = inst_tbl[ test_index ].precision;
23: no_ops = inst_tbl[ test_index ].no_operands;
24: op_type = inst_tbl[ test_index ].type;
25: data_ptr = inst_tbl[ test_index ].data;
26: test_ptr = inst_tbl[ test_index ].test_routine;
27: max_index = *inst_tbl[ test_index ].no_patterns;
28: /*
29: * if we're using the "no-fpp" wcs the instruction might be emulated
30: */
31: if( no_fpp_wcs )
32: emulated_inst = inst_tbl[ test_index ].emulation_flg;
33: else
34: emulated_inst = FALSE;
35: /*
36: * set the accumulator type flags based on the instruction type
37: */
38: if( precision == SGL ) {
39: acc_ld_size = SGL; /* load a sgl operand */
40: acc_st_size = SGL; /* store a sgl operand */
41: } else {
42: acc_ld_size = DBL; /* load a dbl operand */
43: acc_st_size = DBL; /* store a dbl operand */
44: }
45: if( op_code == CVDF_OP_CODE )
46: acc_st_size = SGL; /* store a sgl operand */
47: /*
48: * set the operand type flags based on the instruction type
49: */
50: if( (op_code == LDFD_OP_CODE) ||
51: (op_code == CVLD_OP_CODE) )
52: s_to_d = TRUE; /* set sgl-to-dbl conversion flag */
53: else
54: s_to_d = FALSE; /* reset sgl-to-dbl conversion flag */
55: if( op_code == CVDL_OP_CODE )
56: d_to_s = TRUE; /* set dbl-to-sgl conversion flag */
57: else
58: d_to_s = FALSE; /* reset dbl-to-sgl conversion flag */
59: if( s_to_d || d_to_s || (precision == SGL) )
60: sgl_op = TRUE; /* set sgl-operand flag */
61: else
62: sgl_op = FALSE; /* reset sgl-operand flag */
63: /*
64: * Now go out there and test 'em
65: */
66: test_inst(); /* test the instruction */
67: }
68:
69:
70:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.