|
|
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.