Annotation of cci/d/dmp4/dmp_defs.h, revision 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.