Annotation of cci/d/dmp4/dmp_defs.h, revision 1.1.1.1

1.1       root        1: #include "fpp_defs.h"
                      2: 
                      3: 
                      4: /**************************************************************************
                      5: *
                      6: *      DEFINITIONS FOR THE FLOATING POINT PROCESSOR DEMAND PAGING TEST 
                      7: *
                      8: **************************************************************************/
                      9: 
                     10: 
                     11: /*
                     12:  * Instruction definitions used in Addressing and Demand Paging Tests
                     13: */
                     14: struct instruction_t {
                     15:                   int  inst_code;              /* instruction's op code     */
                     16:                  char  *name;                  /* instruction's name        */
                     17:                   int  precision;              /* sgl / dbl precision instr */
                     18:                   int  no_operands;            /* # operands used by instr  */
                     19:                  int  type;                    /* load / store type instr   */
                     20:    struct addd_data_t  *data;                  /* ptr to current data table */
                     21:                  int  *no_patterns;            /* # of data patterns        */
                     22:                   int  (*test_routine)();      /* ptr to inst test funcion  */
                     23:                  int  emulation_flg;           /* flag -FPM trap if no-fpp  */
                     24:     };
                     25: 
                     26: /*
                     27:  * instruction definition array ( in Common.c )
                     28: */
                     29: extern struct  instruction_t   inst_tbl[];
                     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   mull_data[];       /* MULL2,MULL3 data  */
                     69: 
                     70: 
                     71: /*
                     72:  * # of data patterns per subtest
                     73: */
                     74: extern int  ldf_cnt;           /*  # of LDF   data patterns  */
                     75: extern int  stf_cnt;           /*  # of STF   data patterns  */
                     76: extern int  lnf_cnt;           /*  # of LNF   data patterns  */
                     77: extern int  negf_cnt;          /*  # of NEGF  data patterns  */
                     78: extern int  addf_cnt;          /*  # of ADDF  data patterns  */
                     79: extern int  cmpf_cnt;          /*  # of CMPF  data patterns  */
                     80: extern int  cosf_cnt;          /*  # of COSF  data patterns  */
                     81: extern int  cvfl_cnt;          /*  # of CVFL  data patterns  */
                     82: extern int  cvlf_cnt;          /*  # of CVLF  data patterns  */
                     83: extern int  divf_cnt;          /*  # of DIVF  data patterns  */
                     84: extern int  expf_cnt;          /*  # of EXPF  data patterns  */
                     85: extern int  logf_cnt;          /*  # of LOGF  data patterns  */
                     86: extern int  mulf_cnt;          /*  # of MULF  data patterns  */
                     87: extern int  sinf_cnt;          /*  # of SINF  data patterns  */
                     88: extern int  subf_cnt;          /*  # of SUBF  data patterns  */
                     89: extern int  tstf_cnt;          /*  # of TSTF  data patterns  */
                     90: extern int  atanf_cnt;         /*  # of TANF  data patterns  */
                     91: extern int  sqrtf_cnt;         /*  # of SQRTF data patterns  */
                     92: extern int  ldd_cnt;           /*  # of LDD   data patterns  */
                     93: extern int  std_cnt;           /*  # of STD   data patterns  */
                     94: extern int  lnd_cnt;           /*  # of LND   data patterns  */
                     95: extern int  negd_cnt;          /*  # of NEGD  data patterns  */
                     96: extern int  addd_cnt;          /*  # of ADDD  data patterns  */
                     97: extern int  cmpd_cnt;          /*  # of CMPD  data patterns  */
                     98: extern int  cvdf_cnt;          /*  # of CVDF  data patterns  */
                     99: extern int  cvdl_cnt;          /*  # of CVDL  data patterns  */
                    100: extern int  cvld_cnt;          /*  # of CVLD  data patterns  */
                    101: extern int  divd_cnt;          /*  # of DIVD  data patterns  */
                    102: extern int  ldfd_cnt;          /*  # of LDFD  data patterns  */
                    103: extern int  muld_cnt;          /*  # of MULD  data patterns  */
                    104: extern int  subd_cnt;          /*  # of SUBD  data patterns  */
                    105: extern int  tstd_cnt;          /*  # of TSTD  data patterns  */
                    106: extern int  pushd_cnt;         /*  # of PUSHD data patterns  */
                    107: extern int  mull_cnt;          /*  # of MULL2,MULL3 patterns */
                    108: 
                    109: 
                    110: 
                    111: /*
                    112:  * test routines used in the demand paging tests
                    113: */
                    114: extern int chk_dbl_acc();      /* check final dbl. Acc    */
                    115: extern int chk_dbl_psl();      /* check PSL flags         */
                    116: extern int chk_dbl_s();                /* check stored value      */
                    117: extern int chk_sgl_acc();      /* check final sgl. Acc    */
                    118: extern int chk_sgl_psl();      /* check PSL flags         */
                    119: extern int chk_sgl_s();                /* check stored value      */
                    120: extern int chk_math();         /* check Acc for math fn's */
                    121: 
                    122: 
                    123: 
                    124: /*
                    125:  * variables used with the event / demand paging / emulation tests
                    126: */
                    127: extern int  user_mode;                         /* FLAG -run in User Mode   */
                    128: extern int  op_code;                           /* op-code of the inst.     */
                    129: extern char *op_name;                          /* ascii instruction name   */
                    130: extern int  precision;                         /* sgl / dbl instruction    */
                    131: extern int  acc_ld_size;                       /* load sgl of dbl operand  */
                    132: extern int  acc_st_size;                       /* store sgl of dbl operand */
                    133: extern int  no_ops;                            /* # of operands used       */
                    134: extern int  max_index;                         /* last data index to use   */
                    135: extern int  op_type;                           /* load / store operand     */
                    136: extern int  emulated_inst;                     /* flag -inst gets FPM trap */
                    137: extern int  load_type_inst;                    /* flag -inst loads the Acc */
                    138: extern int  d_to_s;                            /* inst converts dbl to sgl */
                    139: extern int  s_to_d;                            /* inst converts sgl to dbl */
                    140: extern int  sgl_op;                            /* inst has sgl operand(s)  */
                    141: extern int  force_sp;                          /* flag -set the Stack Ptr  */
                    142: extern int  min_shift;                         /* min # bytes to shift code */
                    143: extern int  inst_buf[];                                /* instruction code buffer  */
                    144: extern int  end_of_inst_buf;                   /* end address of code buff */
                    145: extern int  trans_acc_error;                   /* flag -bad Acc after pg flt */
                    146: extern int  code_addr;                         /* start of test code       */
                    147: extern int  addr_size;                         /* # bytes in addr specifier*/
                    148: extern int  addr_1;                            /* address specifier # 1    */
                    149: extern int  addr_2;                            /* address specifier # 2    */
                    150: extern int  addr_3;                            /* address specifier # 3    */
                    151: extern int  inst_size;                         /* # of bytes in the instr. */
                    152: extern int  shift_count;                       /* # bytes to shift inst_buf*/
                    153: extern int  no_page_faults;                    /* # addr translation faults*/
                    154: extern int  exp_page_faults;                   /* # addr trans faults exp'd*/
                    155: extern int  i_cache_hit;                       /* flag -instr. cache hit   */
                    156: extern int  pipe_test;                         /* flag -testing pipeline   */
                    157: extern int  pipe_inst1;                                /* 1st instr for pipe test  */
                    158: extern int  pipe_inst2;                                /* 2nd instr for pipe test  */
                    159: extern int  addr_code_p1;                      /* pipe inst #1's addr mode */
                    160: extern int  addr_code_p2;                      /* pipe inst #2's addr mode */
                    161: extern struct u64 trans_acc;                   /* Acc value after pg fault */
                    162: extern struct u64 exp_trans_acc;               /* expected trans_acc value */
                    163: extern struct addd_data_t *data_ptr;           /* pointer to current data  */
                    164: extern int  (*test_ptr)();                     /* ptr to results test func */
                    165: 
                    166: /*
                    167:  * demand paging data definitions
                    168: */
                    169: extern int  os_b_op1;                          /* offset to byte operand 1 */
                    170: extern int  os_b_op2;                          /* offset to byte operand 2 */
                    171: extern int  os_b_op3;                          /* offset to byte operand 3 */
                    172: extern int  os_op1;                            /* offset to operand # 1    */
                    173: extern int  os_op2;                            /* offset to operand # 2    */
                    174: extern int  os_op3;                            /* offset to operand # 3    */
                    175: extern int  os_ad_op1;                         /* offset to op. pointer #1 */
                    176: extern int  os_ad_op2;                         /* offset to op. pointer #2 */
                    177: extern int  os_ad_op3;                         /* offset to op. pointer #3 */
                    178: extern struct u64  *adr_b_op1;                 /* ptr. to byte operand 1   */
                    179: extern struct u64  *adr_b_op2;                 /* ptr. to byte operand 2   */
                    180: extern struct u64  *adr_b_op3;                 /* ptr. to byte operand 3   */
                    181: extern struct u64  *adr_op1;                   /* ptr. to operand #1       */
                    182: extern struct u64  *adr_op2;                   /* ptr. to operand #2       */
                    183: extern struct u64  *adr_op3;                   /* ptr. to operand #3       */
                    184: extern struct u64  *adr_op4;                   /* ptr. to op. #4 for pipes */
                    185: extern struct u64  *adr_op5;                   /* ptr. to op. #5 for pipes */
                    186: extern int *adr_bop1_lsw;                      /* ptr. to byte op 1's LSW  */
                    187: extern int *adr_bop2_lsw;                      /* ptr. to byte op 2's LSW  */
                    188: extern int *adr_op1_lsw;                       /* ptr. to dbl op #1's LSW  */
                    189: extern int *adr_op2_lsw;                       /* ptr. to dbl op #2's LSW  */
                    190: extern int *adr_op1_ptr;                       /* ptr. to pointer to op #1 */
                    191: extern int *adr_op2_ptr;                       /* ptr. to pointer to op #2 */
                    192: extern int *adr_op3_ptr;                       /* ptr. to pointer to op #3 */
                    193: 
                    194: /*
                    195:  * These definitions must agree with those in "diagnostics/INCLUDE"
                    196: */
                    197: #define        DMP_PG_0   0x36000
                    198: #define        DMP_PG_1   DMP_PG_0+0x400
                    199: #define        DMP_PG_2   DMP_PG_1+0x400
                    200: #define        DMP_PG_3   DMP_PG_2+0x400
                    201: #define        DMP_PG_4   DMP_PG_3+0x400
                    202: #define        DMP_PG_5   DMP_PG_4+0x400
                    203: #define DMP_PG_6   DMP_PG_5+0x400
                    204: #define DMP_PG_7   DMP_PG_6+0x400
                    205: #define DMP_PG_8   DMP_PG_7+0x400
                    206: #define DMP_PG_9   DMP_PG_8+0x400
                    207: #define DMP_PG_10  DMP_PG_9+0x400
                    208: #define DMP_PG_11  DMP_PG_10+0x400
                    209: #define DMP_PG_12  DMP_PG_11+0x400
                    210: #define DMP_PG_13  DMP_PG_12+0x400
                    211: 
                    212: #define        DMP_OP_1   DMP_PG_3-4           /* 1st data word      */
                    213: #define        DMP_OP_2   DMP_PG_7-4           /* 2nd data word      */
                    214: #define        DMP_OP_3   DMP_PG_8             /* 3rd data word      */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.