|
|
1.1 ! root 1: #include "../fpp_defs.h" ! 2: ! 3: ! 4: /************************************************************************** ! 5: * ! 6: * FLOATING POINT PROCESSOR DEMAND PAGING TEST DEFINITIONS ! 7: * ! 8: * 19-Feb-85: JJM created the little beast ! 9: * ! 10: **************************************************************************/ ! 11: ! 12: ! 13: /* ! 14: * Instruction definitions used in Addressing and Demand Paging Tests ! 15: */ ! 16: struct instruction_t { ! 17: int inst_code; /* instruction's op code */ ! 18: char *name; /* instruction's name */ ! 19: int precision; /* sgl / dbl precision instr */ ! 20: int no_operands; /* # operands used by instr */ ! 21: int type; /* load / store type instr */ ! 22: struct addd_data_t *data; /* ptr to current data table */ ! 23: int (*test_routine)(); /* prt to inst test funcion */ ! 24: }; ! 25: ! 26: /* ! 27: * instruction definition array ( in Common.c ) ! 28: */ ! 29: extern struct instruction_t instruction_table[]; ! 30: ! 31: ! 32: /* ! 33: * data for use in the addressing / demand paging tests ! 34: */ ! 35: extern struct addd_data_t ldf_data[]; /* LDF instr data */ ! 36: extern struct addd_data_t stf_data[]; /* STF instr data */ ! 37: extern struct addd_data_t lnf_data[]; /* LNF instr data */ ! 38: extern struct addd_data_t negf_data[]; /* NEGF instr data */ ! 39: extern struct addd_data_t addf_data[]; /* ADDF instr data */ ! 40: extern struct addd_data_t cmpf_data[]; /* CMPF instr data */ ! 41: extern struct addd_data_t cosf_data[]; /* COSF instr data */ ! 42: extern struct addd_data_t cvfl_data[]; /* CVFL instr data */ ! 43: extern struct addd_data_t cvlf_data[]; /* CVLF instr data */ ! 44: extern struct addd_data_t divf_data[]; /* DIVF instr data */ ! 45: extern struct addd_data_t expf_data[]; /* EXPF instr data */ ! 46: extern struct addd_data_t logf_data[]; /* LOGF instr data */ ! 47: extern struct addd_data_t mulf_data[]; /* MULF instr data */ ! 48: extern struct addd_data_t sinf_data[]; /* SINF instr data */ ! 49: extern struct addd_data_t subf_data[]; /* SUBF instr data */ ! 50: extern struct addd_data_t tstf_data[]; /* TSTF instr data */ ! 51: extern struct addd_data_t atanf_data[]; /* ATANF instr data */ ! 52: extern struct addd_data_t sqrtf_data[]; /* SQRTF instr data */ ! 53: extern struct addd_data_t ldd_data[]; /* LDD instr data */ ! 54: extern struct addd_data_t std_data[]; /* STD instr data */ ! 55: extern struct addd_data_t lnd_data[]; /* LND instr data */ ! 56: extern struct addd_data_t negd_data[]; /* NEGD instr data */ ! 57: extern struct addd_data_t addd_data[]; /* ADDD instr data */ ! 58: extern struct addd_data_t cmpd_data[]; /* CMPD instr data */ ! 59: extern struct addd_data_t cvdf_data[]; /* CVDF instr data */ ! 60: extern struct addd_data_t cvdl_data[]; /* CVDL instr data */ ! 61: extern struct addd_data_t cvld_data[]; /* CVLD instr data */ ! 62: extern struct addd_data_t divd_data[]; /* DIVD instr data */ ! 63: extern struct addd_data_t ldfd_data[]; /* LDFD instr data */ ! 64: extern struct addd_data_t muld_data[]; /* MULD instr data */ ! 65: extern struct addd_data_t subd_data[]; /* SUBD instr data */ ! 66: extern struct addd_data_t tstd_data[]; /* TSTD instr data */ ! 67: extern struct addd_data_t pushd_data[]; /* PUSHD instr data */ ! 68: extern struct addd_data_t dbl_null_data[]; /* dbl null data ptr */ ! 69: extern struct addd_data_t sgl_null_data[]; /* sgl null data ptr */ ! 70: ! 71: ! 72: ! 73: /* ! 74: * test routines used in the demand paging tests ! 75: */ ! 76: extern int chk_dbl_acc(); /* check final dbl. Acc */ ! 77: extern int chk_dbl_psl(); /* check PSL flags */ ! 78: extern int chk_dbl_s(); /* check stored value */ ! 79: extern int chk_sgl_acc(); /* check final sgl. Acc */ ! 80: extern int chk_sgl_psl(); /* check PSL flags */ ! 81: extern int chk_sgl_s(); /* check stored value */ ! 82: ! 83: ! 84: ! 85: /* ! 86: * variables used with the event / demand paging / emulation tests ! 87: */ ! 88: extern int op_code; /* op-code of the inst. */ ! 89: extern char *op_name; /* ascii instruction name */ ! 90: extern int precision; /* sgl / dbl instruction */ ! 91: extern int acc_ld_size; /* load sgl of dbl operand */ ! 92: extern int acc_st_size; /* store sgl of dbl operand */ ! 93: extern int no_ops; /* # of operands used */ ! 94: extern int op_type; /* load / store type instr. */ ! 95: extern int d_to_s; /* inst converts dbl to sgl */ ! 96: extern int s_to_d; /* inst converts sgl to dbl */ ! 97: extern int sgl_op; /* inst has sgl operand(s) */ ! 98: extern int force_sp; /* flag -set the Stack Ptr */ ! 99: extern int min_shift; /* min # bytes to shift code */ ! 100: extern int inst_buf[]; /* instruction code buffer */ ! 101: extern int end_of_inst_buf; /* end address of code buff */ ! 102: extern int code_addr; /* start of test code */ ! 103: extern int addr_size; /* # bytes in addr specifier*/ ! 104: extern int addr_1; /* address specifier # 1 */ ! 105: extern int addr_2; /* address specifier # 2 */ ! 106: extern int shift_count; /* # bytes to shift inst_buf*/ ! 107: extern int no_page_faults; /* # addr translation faults*/ ! 108: extern int exp_page_faults; /* # addr trans faults exp'd*/ ! 109: extern struct addd_data_t *data_ptr; /* pointer to current data */ ! 110: extern int (*test_ptr)(); /* ptr to results test func */ ! 111: ! 112: /* ! 113: * demand paging data definitions ! 114: */ ! 115: extern int os_b_op1; /* offset to byte operand 1 */ ! 116: extern int os_b_op2; /* offset to byte operand 2 */ ! 117: extern int os_op1; /* offset to operand # 1 */ ! 118: extern int os_op2; /* offset to operand # 2 */ ! 119: extern int os_ad_op1; /* offset to op. pointer #1 */ ! 120: extern int os_ad_op2; /* offset to op. pointer #2 */ ! 121: extern int *adr_b_op1; /* ptr. to byte operand 1 */ ! 122: extern int *adr_bop1_lsw; /* ptr. to byte op 1's LSW */ ! 123: extern int *adr_bop2_lsw; /* ptr. to byte op 2's LSW */ ! 124: extern int *adr_b_op2; /* ptr. to byte operand 2 */ ! 125: extern int *adr_op1; /* ptr. to operand #1 */ ! 126: extern int *adr_op2; /* ptr. to operand #2 */ ! 127: extern int *adr_op1_lsw; /* ptr. to dbl op #1's LSW */ ! 128: extern int *adr_op2_lsw; /* ptr. to dbl op #2's LSW */ ! 129: extern int *adr_op1_ptr; /* ptr. to pointer to op #1 */ ! 130: extern int *adr_op2_ptr; /* ptr. to pointer to op #2 */ ! 131: ! 132: /* ! 133: * These definitions must agree with those in "diagnostics/INCLUDE" ! 134: */ ! 135: #define DMP_PG_0 0x36000 ! 136: #define DMP_PG_1 DMP_PG_0+0x400 ! 137: #define DMP_PG_2 DMP_PG_1+0x400 ! 138: #define DMP_PG_3 DMP_PG_2+0x400 ! 139: #define DMP_PG_4 DMP_PG_3+0x400 ! 140: #define DMP_PG_5 DMP_PG_4+0x400 ! 141: #define DMP_PG_6 DMP_PG_5+0x400 ! 142: #define DMP_PG_7 DMP_PG_6+0x400 ! 143: ! 144: #define DMP_OP_1 DMP_PG_3-4 /* 1st data word */ ! 145: #define DMP_OP_2 DMP_PG_7-4 /* 2nd data word */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.