Annotation of cci/d/macro4/fpp_defs.h, revision 1.1.1.1

1.1       root        1: 
                      2: /**************************************************************************
                      3: *
                      4: *              FLOATING POINT PROCESSOR DIAGNOSTIC DEFINITIONS
                      5: *
                      6: *  10-Dec-84 :  added "enable_data_cache" option flag
                      7: *  26-Jun-85 :  added MULL2 and MULL3
                      8: **************************************************************************/
                      9: 
                     10: 
                     11: #define TRUE  1
                     12: #define FALSE 0
                     13: 
                     14: /*
                     15:  * some tests are accessed via tables of pointers to the test functions
                     16: */
                     17: typedef int (*func_ptr_array[20])();   /* array of pointers to functions */
                     18: 
                     19: 
                     20: /*
                     21:  * Precisions used
                     22: */
                     23: #define  SGL  1
                     24: #define  DBL  2
                     25: 
                     26: 
                     27: /*
                     28:  * Operand types
                     29: */
                     30: #define  NONE   0                      /* no operand */
                     31: #define  LOAD   1                      /* operand is a data address  */
                     32: #define  STORE  2                      /* operand is a STORE address */
                     33: 
                     34: 
                     35: /*
                     36:  * Priveleged Register contents
                     37: */
                     38: #define  SBR   0                       /*system base register          */
                     39: #define  SLR   1                       /*system length reg             */
                     40: #define  P0BR  2                       /*p0 base reg                   */
                     41: #define  P0LR  3                       /*p0 length reg                 */
                     42: #define  P1BR  4                       /*p1 base reg                   */
                     43: #define  P1LR  5                       /*p1 length reg                 */
                     44: #define  P2BR  6                       /*p2 base reg                   */
                     45: #define  P2LR  7                       /*p2 length reg                 */
                     46: #define  IPL   8                       /*int priority level reg        */
                     47: #define  MME   9                       /*memory mgmt enable reg        */
                     48: #define  TBIA  10                      /*trans buf invalidate all      */
                     49:                                        /*entries                       */
                     50: #define  TBIS  11                      /*trans buf invalidate single   */
                     51:                                        /*entry                         */
                     52: #define  DCK   12                      /*data cache key                */
                     53: #define  CCK   13                      /*code cache key                */
                     54: #define  PCBB  14                      /*process control block base    */
                     55: #define  ISP   15                      /*interrupt stack pointer       */
                     56: #define  SIRR  16                      /*software int request reg      */
                     57: #define  SISR  17                      /*software int summary reg      */
                     58: #define  SCBB  18                      /*system control block base reg */
                     59: #define  KSP   19                      /*kernel stack pointer reg      */
                     60: #define  USP   20                      /*user stack pointer            */
                     61: #define  DCB   21                      /*CPU2 DCB                      */
                     62: #define  PACC  23                      /*purge (invalidate) all pages  */
                     63:                                        /*of process in code cache      */
                     64: #define  P1DC  24                      /*purge one page of data cache  */
                     65: #define  PADC  25                      /*purge all the pages of        */
                     66:                                        /*process in data cache         */
                     67: #define  HISR  26                      /* Hardware interrupt summary reg  */
                     68: #define  DCR   27                      /* Diagnostic control register  */
                     69: #define  PDCS  28                      /* Purge 1 data cache slot      */
                     70:        
                     71: 
                     72: 
                     73: /*
                     74:  * PSL bit definitions
                     75: */
                     76: #define PSL_C          0x1             /* bit(00) CARRY bit          */
                     77: #define PSL_V          0x2             /* bit(01) OVERFLOW bit       */
                     78: #define PSL_Z          0x4             /* bit(02) ZERO bit           */
                     79: #define PSL_N          0x8             /* bit(03) NEGATIVE bit       */
                     80: #define PSL_EN_T       0x10            /* bit(04) Enable TRACE bit   */
                     81: #define PSL_EN_OVFL    0x20            /* bit(05) Enable OVERFLOW bit*/
                     82: #define PSL_EN_UNDFL   0x40            /* bit(06) Enable UNDERFLOW   */
                     83: #define PSL_DBL        0x80            /* bit(07) DBL Precision acc. */
                     84: #define ENABLE_EVENTS  0x60            /* enable INT OVFL & UNDFL    */
                     85: 
                     86: 
                     87: /*
                     88:  * Event Codes
                     89: */
                     90: #define SW_IPL1_CODE 0x1e              /* s/w interrupt (IPL = 1)    */
                     91: #define BUS_ER_CODE  0x20              /* buss error interrupt       */
                     92: #define RESINST_CODE 0x2c              /* priveleged/reserved instr. */
                     93: #define RESOP_CODE   0x2d              /* reserved operand fault     */
                     94: #define RESAD_CODE   0x2e              /* reserved address fault     */
                     95: #define TRACE_CODE   0x33              /* trace trap                 */
                     96: #define ARITH_CODE   0x34              /* arithmetic fault           */
                     97: #define ALIGN_CODE   0x35              /* alignment fault            */
                     98: #define SFE_CODE     0x36              /* system forced exception    */
                     99: #define FPM_CODE     0x37              /* fpp emulation trap         */
                    100: 
                    101: /*
                    102:  * Arithmetic Event Types
                    103: */
                    104: #define INT_OVFL_CODE   1              /* integer overflow fault     */
                    105: #define INT_0_DIV_CODE  2              /* integer divide by 0 fault  */
                    106: #define FLT_0_DIV_CODE  3              /* floating divide by 0 fault */
                    107: #define FLT_OVFL_CODE   4              /* floating overflow fault    */
                    108: #define FLT_UNDFL_CODE  5              /* floating underflow fault   */
                    109: 
                    110: 
                    111: /*
                    112:  * jump condition flag definitions
                    113: */
                    114: #define POSITIVE       2                       /* positive flag bit */
                    115: #define ZERO           4                       /* zero flag bit     */
                    116: #define NEGATIVE       8                       /* negative flag bit */
                    117: 
                    118: 
                    119: /*
                    120:  *  OP-CODEs for the FPP instruction set
                    121: */
                    122: #define  LDF_OP_CODE   0x06                    /* sgl load acc. instr      */
                    123: #define  LDD_OP_CODE   0x07                    /* dbl load acc. instr      */
                    124: #define  LNF_OP_CODE   0x16                    /* sgl load-neg acc. instr  */
                    125: #define  LND_OP_CODE   0x17                    /* dbl load-neg acc. instr  */
                    126: #define  STF_OP_CODE   0x26                    /* sgl store acc. instr     */
                    127: #define  STD_OP_CODE   0x27                    /* dbl store acc. instr     */
                    128: #define  CMPF_OP_CODE  0x36                    /* sgl compare instr        */
                    129: #define  CMPD_OP_CODE  0x37                    /* dbl compare instr        */
                    130: #define  CMPF2_OP_CODE 0x46                    /* sgl compare 2 instr      */
                    131: #define  CMPD2_OP_CODE 0x47                    /* dbl compare 2 instr      */
                    132: #define  TSTF_OP_CODE  0x56                    /* sgl test acc. instr      */
                    133: #define  TSTD_OP_CODE  0x57                    /* dbl test acc. instr      */
                    134: #define  PUSHD_OP_CODE 0x67                    /* dbl push acc. instr      */
                    135: #define  CVLF_OP_CODE  0x76                    /* convert int to sgl instr */
                    136: #define  CVLD_OP_CODE  0x77                    /* convert int to dbl instr */
                    137: #define  CVFL_OP_CODE  0x86                    /* convert sgl to int instr */
                    138: #define  CVDL_OP_CODE  0x87                    /* convert dbl to int instr */
                    139: #define  LDFD_OP_CODE  0x97                    /* load sgl to dbl instr    */
                    140: #define  CVDF_OP_CODE  0xa6                    /* convert dbl to sgl instr */
                    141: #define  NEGF_OP_CODE  0xb6                    /* negate sgl acc. instr    */
                    142: #define  NEGD_OP_CODE  0xb7                    /* negate dbl acc. instr    */
                    143: #define  ADDF_OP_CODE  0xc6                    /* sgl add instr            */
                    144: #define  ADDD_OP_CODE  0xc7                    /* dbl add instr            */
                    145: #define  SUBF_OP_CODE  0xd6                    /* sgl subtract instr       */
                    146: #define  SUBD_OP_CODE  0xd7                    /* dbl subtract instr       */
                    147: #define  MULF_OP_CODE  0xe6                    /* sgl multiply instr       */
                    148: #define  MULD_OP_CODE  0xe7                    /* dbl multiply instr       */
                    149: #define  DIVF_OP_CODE  0xf6                    /* sgl divide instr         */
                    150: #define  DIVD_OP_CODE  0xf7                    /* dbl divide instr         */
                    151: #define  SINF_OP_CODE  0x05                    /* sgl sine instr           */
                    152: #define  COSF_OP_CODE  0x15                    /* sgl cosine instr         */
                    153: #define  ATANF_OP_CODE 0x25                    /* sgl arc-tangent instr    */
                    154: #define  LOGF_OP_CODE  0x35                    /* sgl natural log instr    */
                    155: #define  SQRTF_OP_CODE 0x45                    /* sgl square root instr    */
                    156: #define  EXPF_OP_CODE  0x55                    /* sgl "e to the x" instr   */
                    157: #define  MULL2_OP_CODE  0x4c                   /* multiply integer 2 instr */
                    158: #define  MULL3_OP_CODE  0x5c                   /* multiply integer 3 instr */
                    159: 
                    160: #define  NO_INSTRUCTIONS  37                   /* 37 fpp instructions      */
                    161: 
                    162: 
                    163: /*
                    164:  *  definitions for addressing mode tests
                    165: */
                    166: #define ADR_ABSOLUTE   1       /* absolute address                         */
                    167: #define ADR_LITERAL    2       /* literal -short immediate byte            */
                    168: #define ADR_IM_B       3       /* immediate byte                           */
                    169: #define ADR_IM_W       4       /* immediate word                           */
                    170: #define ADR_IM_L       5       /* immediate long-word                      */
                    171: #define ADR_B_DSP      6       /* byte displ relative                      */
                    172: #define ADR_W_DSP      7       /* word displ relative                      */
                    173: #define ADR_L_DSP      8       /* long-word displ relative                 */
                    174: #define ADR_B_DSP_DEF  9       /* byte displ relative deferred             */
                    175: #define ADR_W_DSP_DEF  10      /* word displ relative deferred             */
                    176: #define ADR_L_DSP_DEF  11      /* long-word displ relative deferred        */
                    177: #define ADR_REG                12      /* direct register                          */
                    178: #define ADR_REG_DEF    13      /* register deferred                        */
                    179: #define ADR_FP_DEF     14      /* FP deferred                              */
                    180: #define ADR_SP_DEF     15      /* SP deferred                              */
                    181: #define ADR_PUSH       16      /* auto-decrement SP                        */
                    182: #define ADR_POP                17      /* auto-increment SP                        */
                    183: #define ADR_POP_DEF    18      /* auto-increment SP deferred               */
                    184: #define ADR_REG_B      19      /* register + byte displ                    */
                    185: #define ADR_REG_W      20      /* register + word displ                    */
                    186: #define ADR_REG_L      21      /* register + long-word displ               */
                    187: #define ADR_REG_B_DEF  22      /* register + byte displ deferred           */
                    188: #define ADR_REG_W_DEF  23      /* register + word displ deferred           */
                    189: #define ADR_REG_L_DEF  24      /* register + long-word displ deferred      */
                    190: #define ADR_I_FP_DEF   25      /* indexed (frame pointer deferred)         */
                    191: #define ADR_I_L        26      /* indexed (longword displacement)          */
                    192: #define ADR_I_REG_DEF  27      /* indexed (register deferred)              */
                    193: #define ADR_I_L_DEF    28      /* indexed (longword displacement deferred) */
                    194: #define SIZ_ADDR_MODE_TABLE 29 /* allow for 29 addressing types ( w/ '0' ) */
                    195: 
                    196: 
                    197: 
                    198: /*
                    199:  *  Define the halt codes for the tests
                    200: */
                    201: 
                    202: #define UNEXP_EVT_HLT   0              /* unexpected event     */
                    203: #define BAD_ACC_HLT     1              /* bad final Acc.       */
                    204: #define BAD_REG_HLT     2              /* bad final register   */
                    205: #define BAD_PSL_HLT     3              /* wrong PSL value      */
                    206: #define NO_EVT_HLT      4              /* did not Get event    */
                    207: #define EVT_MSK_HLT     5              /* got masked event     */
                    208: #define PUSH_PSL_HLT    6              /* bad PSL on stack     */
                    209: #define BAD_FPM_STK_HLT  7             /* stack error w/ FPM   */
                    210: #define PUSH_CNT_HLT    8              /* wrong # ops on stack */
                    211: #define BAD_STORE_HLT    9             /* bad data stored      */
                    212: 
                    213: 
                    214: 
                    215: 
                    216: /***************************************************************************** 
                    217: *
                    218: *      These are the global variables 
                    219: *
                    220: *****************************************************************************/
                    221: 
                    222: 
                    223: /*
                    224:  * These are the run option flags 
                    225: */
                    226: extern int halt_flg;                   /* halt on error flag             */
                    227: extern int loop_on_err;                        /* loop on error flag             */
                    228: extern int prt_error;                  /* print error message flag       */
                    229: extern int prt_hdrs;                   /* print main header flag         */
                    230: extern int prt_sbtsts;                 /* outdated -print subtest headers*/
                    231: extern int en_data_cache;              /* enable the data chache flag    */
                    232: 
                    233: 
                    234: 
                    235: /*
                    236:  * These are used by the tests as control flags
                    237: */
                    238: extern int no_fpp_wcs;                 /* "NO-FPP WCS" loaded flag   */
                    239: extern int test_no;                    /* fpp test number            */
                    240: extern int run_all;                    /* all subtests run flag      */
                    241: extern int count;                      /* cycle count to run         */
                    242: extern int nonstop;                    /* run forever flag n         */
                    243: extern int run_list;                   /* test # (or 0) to test      */
                    244: extern int subtest;                    /* fpp subtest number         */
                    245: extern int cycle;                      /* current test cycle         */
                    246: extern int force_loop;                 /* loop on error signal       */
                    247: extern int errcnt;                     /* error count                */
                    248: extern int err_code;                   /* error code (for subtests)  */
                    249: extern int zero;                       /* a known '0' data word      */
                    250: extern int nop_cnt;                    /* # of NOPs between instr's  */
                    251: extern int i_cache_hit;                        /* flag -test instr. in cache */
                    252: extern int event_type;                 /* actual event type          */
                    253: extern int event_code;                 /* actual arith. fault type   */
                    254: extern int test_event;                 /* event type under test      */
                    255: extern int exp_event;                  /* expected event type (or 0) */
                    256: extern int exp_code;                   /* expected event code        */
                    257: extern int event_return;               /* return addr. after event   */
                    258: extern int unexp_event_ret;            /* return if event unexpected */
                    259: extern int fpm_trap_occurred;          /* flag -got an FPM trap      */
                    260: extern int monitor_fp;                 /* monitor's frame pointer    */
                    261: extern int monitor_sp;                 /* monitor's stack pointer    */
                    262: extern int run_code_psl;               /* "run_code"'s entry PSL     */
                    263: extern int pre_event_sp;               /* stack pointer before event */
                    264: extern int post_event_sp;              /* stack pointer after event  */
                    265: extern int pre_event_fp;               /* frame pointer before event */
                    266: extern int post_event_fp;              /* frame pointer after event  */
                    267: extern int post_event_psl;             /* PSL after an (FPM) event   */
                    268: extern int event_pc;                   /* PC on stack from an event  */
                    269: extern int event_psl;                  /* PSL on stack from an event */
                    270: extern int pointer_data;               /* location to set SP / FP to */
                    271: extern int pointer_data_2;             /* LSW data for SP / FP addrs */
                    272: extern int address_fault_expected;     /* fault expected or not      */
                    273: extern int loop_addr;                  /* address to loop on error   */
                    274: extern int next_addr;                  /* start of "next addr. test" */
                    275: extern int addr_mode;                  /* addressing type under test */
                    276: extern int addr_code;                  /* code for addressing op. #1 */
                    277: extern int addr_code2;                 /* code for addressing op. #2 */
                    278: extern int addr_code3;                 /* code for addressing op. #3 */
                    279: extern int addr_codeB;                 /* 2nd addr code for indexing */
                    280: extern int test_index;                 /* index to a specific test   */
                    281: extern int inst_index;                 /* index to a specific instr. */
                    282: extern int index;                      /* test data index            */
                    283: extern int index2;                     /* test data index # 2        */
                    284: extern int error;                      /* an error exists flag       */
                    285: extern int clock_event;                        /* diagnostic flag -rtc event */
                    286: extern int status_index;               /* index to status array      */
                    287: extern int status_array[];             /* holds (+), (-), (0) words  */
                    288: extern char *subtest_message;          /* description of subtest     */
                    289: extern char *error_message;            /* description of error       */
                    290: extern char *event_msg;                        /* description of event       */
                    291: extern char *addressing_modes[SIZ_ADDR_MODE_TABLE];
                    292: 
                    293: /*
                    294:  * These are the canned error messages
                    295: */
                    296: extern char *k_mode_msg;               /* Kernal Mode message        */
                    297: extern char *u_mode_msg;               /* User Mode message          */
                    298: extern char *i_cache_hit_msg;          /* instr. cache hit message   */
                    299: extern char *i_cache_miss_msg;         /* instr. cache miss message  */
                    300: extern char *bad_result_msg;           /* incorrect result error     */
                    301: extern char *acc_modified_msg;         /* Accumulator modified msg.  */
                    302: extern char *bad_acc_msg;              /* incorrect ACC message      */
                    303: extern char *psl_modified_msg;         /* PSL modified message       */
                    304: extern char *bad_psl_msg;              /* incorrect PSL message      */
                    305: extern char *reg_modified_msg;         /* register modified message  */
                    306: extern char *trans_flt_cnt_msg;                /* wrong # of page faults     */
                    307: extern char *no_evt_msg;               /* expected event didn't occur*/
                    308: extern char *disbl_evt_msg;            /* a disabled event occurred  */
                    309: extern char *push_cnt_msg;             /* wrong # ops. pushed w/ evt.*/
                    310: extern char *psl_pushed_msg;           /* wrong PSL pushed w/ event  */
                    311: extern char *pc_pushed_msg;            /* wrong PC pushed w/ event   */
                    312: extern char *trans_acc_er_msg;         /* Acc wrong after pg fault   */
                    313: extern char *bad_fpm_stack_msg;                /* stack wrong after FPM trap */
                    314: extern char *bad_fpm_acc_msg;          /* Acc wrong after FPM trap   */
                    315: extern char *bad_tbl_entry_msg;                /* wrong FPP table data read  */
                    316: 
                    317: /*
                    318:  * These values are used for alternating data patterns in error looping
                    319: */
                    320: extern int old_indx;                   /* previous test data index   */
                    321: extern int loop_val_1a;                        /* MSW of 1st data op in loop */
                    322: extern int loop_val_1b;                        /* MSW of 1st data op in loop */
                    323: extern int loop_val_1c;                        /* LSW of 1st data op in loop */
                    324: extern int loop_val_1d;                        /* LSW of 1st data op in loop */
                    325: extern int loop_val_2a;                        /* MSW of 2nd data op in loop */
                    326: extern int loop_val_2b;                        /* MSW of 2nd data op in loop */
                    327: extern int loop_val_2c;                        /* LSW of 2nd data op in loop */
                    328: extern int loop_val_2d;                        /* LSW of 2nd data op in loop */
                    329: 
                    330: 
                    331: /*
                    332:  *  data structure definitions
                    333: */
                    334: 
                    335: struct u64 {                                   /* 64 bit (dbl) integer      */
                    336:    unsigned  m;                                        /*   -most significant bits  */
                    337:    unsigned  l;                                        /*   -least significant bits */
                    338:   };
                    339: 
                    340: 
                    341: struct cmpd_data_t {                           /* compare 2 dbl opderands   */
                    342:    struct u64  one;                            /*   -1st compare value      */
                    343:    struct u64  two;                            /*   -2nd compare value      */
                    344:    int flag;                                   /*   -expected condition flg */
                    345:   };
                    346: 
                    347: 
                    348: struct cmpf_data_t {                           /* compare 2 sgl operands    */
                    349:    int one;                                    /*   -1st compare value      */
                    350:    int two;                                    /*   -2nd compare value      */
                    351:    int flag;                                   /*   -expected condition flg */
                    352:    };
                    353: 
                    354: 
                    355: struct cvds_data_t {                           /* convert dbl op to sgl */
                    356:   struct u64 ld;                               /*   -data to load       */
                    357:   unsigned  exp;                               /*   -converted result   */
                    358:  };
                    359: 
                    360: 
                    361: struct cvfl_data_t {                           /* convert sgl to integer */
                    362:   unsigned ld;                                 /*   -data to load        */
                    363:   unsigned exp;                                        /*   -converted result    */
                    364:  };
                    365: 
                    366: 
                    367: struct ldd_data_t {                            /* load / store doubles   */
                    368:   struct u64 ld;                               /*   -data to load        */
                    369:   struct u64 exp;                              /*   -expected results    */
                    370:  };
                    371: 
                    372: 
                    373: struct ldf_data_t {                            /* load / store singles  */
                    374:   unsigned ld;                                 /*   -data to load       */
                    375:   unsigned exp;                                        /*   -expected results   */
                    376:  };
                    377: 
                    378: 
                    379: struct ldfd_data_t {                           /* load sgl convert to dbl */
                    380:   unsigned ld;                                 /*   -sgl data to load     */
                    381:   struct u64 exp;                              /*   -dbl data expected    */
                    382:  };
                    383: 
                    384: 
                    385: struct addf_data_t {                           /* sgl precision +, -, *, / */
                    386:   unsigned op_1;                               /*   -operand 1 ( in ACC. ) */
                    387:   unsigned op_2;                               /*   -operand 2             */
                    388:   unsigned exp;                                /*   -expected result       */
                    389:  };
                    390: 
                    391: 
                    392: struct addd_data_t {                           /* dbl precision +, -, *, / */
                    393:   struct u64 op_1;                             /*   -operand 1 ( in ACC. ) */
                    394:   struct u64 op_2;                             /*   -operand 2             */
                    395:   struct u64 exp;                              /*   -expected result       */
                    396:  };
                    397: 
                    398: 
                    399: struct addd_ovflw_t {                          /* dbl reserved operands    */
                    400:   struct u64 op_1;                             /*   -operand 1 ( in ACC. ) */
                    401:   struct u64 op_2;                             /*   -operand 2 ( RESOP )   */
                    402:  };
                    403: 
                    404: 
                    405: struct addf_ovflw_t {                          /* sgl reserved operands    */
                    406:   unsigned op_1;                               /*   -operand 1 ( in ACC. ) */
                    407:   unsigned op_2;                               /*   -operand 2 ( RESOP )   */
                    408:  };
                    409: 
                    410: 
                    411: 
                    412: /*
                    413:  * data variables used by the tests  (must be declared someplace)
                    414: */
                    415: extern struct ldf_data_t   ldf_1_data[];       /* LDF data pattern array   */
                    416: extern int max_ldf_1_index;                    /*     (# data patterns) -1 */
                    417: extern struct ldf_data_t   lnf_1_data[];       /* LNF   */
                    418: extern int max_lnf_1_index;
                    419: extern struct addf_data_t  addf_1_data[];      /* ADDF  */
                    420: extern int max_addf_1_index;
                    421: extern struct addf_data_t  subf_1_data[];      /* SUBF  */
                    422: extern int max_subf_1_index;
                    423: extern struct addf_data_t  mulf_1_data[];      /* MULF  */
                    424: extern int max_mulf_1_index;
                    425: extern struct addf_data_t  divf_1_data[];      /* DIVF  */
                    426: extern int max_divf_1_index;
                    427: extern struct cvfl_data_t  cvlf_1_data[];      /* CVLF  */
                    428: extern int max_cvlf_1_index;
                    429: extern struct cmpd_data_t  cmpd_1_data[];      /* CMPD  */
                    430: extern int max_cmpd_1_index;
                    431: extern struct cmpd_data_t  cmpd2_1_data[];     /* CMPD2 */
                    432: extern int max_cmpd2_1_index;
                    433: extern struct cmpf_data_t  cmpf_1_data[];      /* CMPF  */
                    434: extern int max_cmpf_1_index;
                    435: extern struct cmpf_data_t  cmpf2_1_data[];     /* CMPF2 */
                    436: extern int max_cmpf2_1_index;
                    437: extern struct cvds_data_t  cvdf_1_data[];      /* CVDF  */
                    438: extern int max_cvdf_1_index;
                    439: extern struct cvds_data_t  cvdl_1_data[];      /* CVDL  */
                    440: extern int max_cvdl_1_index;
                    441: extern struct cvfl_data_t  cvfl_1_data[];      /* CVFL  */
                    442: extern int max_cvfl_1_index;
                    443: extern struct ldfd_data_t  cvld_1_data[];      /* CVLD  */
                    444: extern int max_cvld_1_index;
                    445: extern struct ldd_data_t   ldd_1_data[];       /* LDD   */
                    446: extern int max_ldd_1_index;
                    447: extern struct ldfd_data_t  ldfd_1_data[];      /* LDFD  */
                    448: extern int max_ldfd_1_index;
                    449: extern struct ldd_data_t   lnd_1_data[];       /* LND   */
                    450: extern int max_lnd_1_index;
                    451: extern struct addd_data_t   addd_1_data[];     /* ADDD  */
                    452: extern int max_addd_1_index;
                    453: extern struct addd_data_t   subd_1_data[];     /* SUBD  */
                    454: extern int max_subd_1_index;
                    455: extern struct addd_data_t   muld_1_data[];     /* MULD  */
                    456: extern int max_muld_1_index;
                    457: extern struct addd_data_t   divd_1_data[];     /* DIVD  */
                    458: extern int max_divd_1_index;
                    459: extern struct ldd_data_t   pushd_1_data[];     /* PUSHD */
                    460: extern int max_pushd_1_index;
                    461: extern struct cvds_data_t  tstd_1_data[];      /* TSTD  */
                    462: extern int max_tstd_1_index;
                    463: extern struct cvfl_data_t  tstf_1_data[];      /* TSTF  */
                    464: extern int max_tstf_1_index;
                    465: extern struct ldf_data_t   sinf_1_data[];      /* SINF  */
                    466: extern int max_sinf_1_index;
                    467: extern struct ldf_data_t   cosf_1_data[];      /* COSF  */
                    468: extern int max_cosf_1_index;
                    469: extern struct ldf_data_t   atanf_1_data[];     /* ATANF */
                    470: extern int max_atanf_1_index;
                    471: extern struct ldf_data_t   expf_1_data[];      /* EXPF  */
                    472: extern int max_expf_1_index;
                    473: extern struct ldf_data_t   logf_1_data[];      /* LOGF  */
                    474: extern int max_logf_1_index;
                    475: extern struct ldf_data_t   sqrtf_1_data[];     /* SQRTF */
                    476: extern int max_sqrtf_1_index;
                    477: extern struct addf_data_t mull_1_data[]; 
                    478: extern int max_mull_1_index;
                    479: 
                    480: 
                    481: 
                    482: /* 
                    483:  * global data variables
                    484: */
                    485: extern struct u64  dbl_value_1;                        /* 1st dbl test value      */
                    486: extern struct u64  dbl_value_2;                        /* 2nd dbl test value      */
                    487: extern struct u64  dbl_value_3;                        /* 3rd dbl test value      */
                    488: extern struct u64  dbl_expected;               /* expected dbl data       */
                    489: extern struct u64  dbl_ld_acc;                 /* load dbl acc. from here */
                    490: extern struct u64  dbl_st_acc;                 /* stored dbl accumulator  */
                    491: extern struct u64  dbl_dummy1;                 /* dummy quad word         */
                    492: extern struct u64  dbl_dummy2;                 /* ditto                   */
                    493: extern int sgl_ld_acc;                         /* load sgl acc. from here */
                    494: extern int sgl_st_acc;                         /* stored sgl acc.         */
                    495: extern int sgl_expected;                       /* expected sgl data       */
                    496: extern int sgl_value_1;                                /* 1st  sgl data value     */
                    497: extern int sgl_value_2;                                /* 2nd  sgl data value     */
                    498: extern int sgl_value_3;                                /* 3rd  sgl data value     */
                    499: extern int sgl_value_4;                                /* 4th  sgl data value     */
                    500: extern int sgl_value_5;                                /* 5th  sgl data value     */
                    501: extern int sgl_value_6;                                /* 6th  sgl data value     */
                    502: extern int sgl_value_7;                                /* 7th  sgl data value     */
                    503: extern int sgl_value_8;                                /* 8th  sgl data value     */
                    504: extern int sgl_value_9;                                /* 9th  sgl data value     */
                    505: extern int sgl_value_10;                       /* 10th sgl data value     */
                    506: extern int sgl_dummy1;                         /* a dummy variable        */
                    507: extern int sgl_dummy2;                         /* a dummy variable, too   */
                    508: extern int psl_val;                            /* PSL value               */
                    509: extern int init_psl;                           /* initial PSL value       */
                    510: extern int exp_psl;                            /* expected PSL value      */
                    511: extern int test_flags;                         /* condition flags seen    */
                    512: extern int flg_expected;                       /* condition flags expected*/
                    513: extern int reg_no;                             /* register being validated */
                    514: extern int regs_ok;                            /* flag - no reg. miscompare*/
                    515: extern int exp_reg;                            /* expected reg. value      */
                    516: extern int act_reg;                            /* actual register value    */
                    517: extern int load_regs[14];                      /* load registers from here */
                    518: extern int store_regs[14];                     /* store registers here     */
                    519: extern int exp_regs[14];                       /* expected registers data  */
                    520: extern int  exp_pc;                            /* expected PC              */
                    521: extern int  act_pc;                            /* actual PC                */
                    522: 
                    523: 
                    524: 
                    525: /*
                    526:  * stack variables
                    527: */
                    528: extern int pop_val_1;                          /* 1st popped stack data  */
                    529: extern int pop_val_2;                          /* 2nd popped stack data  */
                    530: extern int pop_val_3;                          /* 3rd popped stack data  */
                    531: extern int pop_val_4;                          /* 4th popped stack data  */
                    532: extern int pop_val_5;                          /* 5th popped stack data  */
                    533: extern int pop_val_6;                          /* 6th popped stack data  */
                    534: 
                    535: extern int fpm_ms_op;                          /* MS operand w/ FPM trap */
                    536: extern int fpm_ls_op;                          /* LS operand w/ FPM trap */
                    537: extern int fpm_op_code;                                /* op-code w/ FPM trap    */
                    538: extern int fpm_pc;                             /* PC w/ FPM trap         */
                    539: extern int fpm_psl;                            /* PSL w/ FPM trap        */
                    540: 
                    541: 
                    542: /*
                    543:  *  pointers used with the pipe tests
                    544: */
                    545: extern int        *adr_pipe_ops;               /* points to integer data */
                    546: extern struct u64 *adr_dpipe_ops;              /* points to double data  */
                    547: 

unix.superglobalmegacorp.com

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