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