Annotation of cci/d/fpevent/div_by_0_test.c, revision 1.1

1.1     ! root        1: 
        !             2: #include "evt_defs.h"
        !             3: 
        !             4: /*
        !             5:  ********************************************************************
        !             6:  *
        !             7:  *     MONITOR FOR THE FPP DIVIDE BY ZERO EVENT TEST
        !             8:  *
        !             9:  *  26-Mar-85  JJM: written
        !            10:  *
        !            11:  ********************************************************************
        !            12: */
        !            13: div_by_0_test()
        !            14: {
        !            15:        event_msg = "Divide By ZERO";
        !            16:        test_event = ARITH_CODE;        /* expect an arithmetic fault */
        !            17:        exp_code = FLT_0_DIV_CODE;      /*  -specificly divide by 0   */
        !            18:        disable_mask = 0;               /* don't disable any events   */
        !            19:        evt_disabled = FALSE;           /* expected event is enabled  */
        !            20:        if( evt_inst )                  /* was the op-code specified? */
        !            21:        {
        !            22:              if( evt_inst == DIVF_OP_CODE ) 
        !            23:                   run_divf();          /* test the DIVF instruction */
        !            24:              else if( evt_inst == DIVD_OP_CODE ) 
        !            25:                   run_divd();          /* test the DIVD instruction */
        !            26:              else if( (prt_hdrs) && (cycle == 1) ) 
        !            27:              {
        !            28:                   writes("There are no DIVIDE BY ZERO faults with op-code ");
        !            29:                   writeh( evt_inst );  /* print the ersatz op-code  */
        !            30:                   writec('\n');
        !            31:                   error = TRUE;        /* needed for line feed control */
        !            32:              }
        !            33:        } 
        !            34:         else   /* test both DIVF and DIVD */
        !            35:        {
        !            36:             run_divf();                /* test the DIVF instruction */
        !            37:             run_divd();                /* test the DIVD instruction */
        !            38:        }
        !            39: }
        !            40:  
        !            41: 
        !            42: 
        !            43: 
        !            44: /*
        !            45:  **********************************************************************
        !            46:  *
        !            47:  *     SET UP TO TEST DIVIDE BY ZERO WITH THE DIVF INSTRUCTION
        !            48:  *
        !            49:  **********************************************************************
        !            50: */
        !            51: run_divf()
        !            52: {
        !            53:        op_code     = DIVF_OP_CODE;     /* set the inst's op_code */
        !            54:        op_name     = "DIVF ";          /* set the inst's name */
        !            55:        precision   = SGL;
        !            56:        acc_ld_size = SGL;              /* load a single precision Acc. */
        !            57:        sgl_op      = TRUE;
        !            58:        valid_test  = TRUE;             /* we're running a test */
        !            59:        data_ptr    = zero_divide_data; /* set the data ptr */
        !            60:        max_index   = zero_divide_cnt;  /* set the max index */
        !            61:        if( (prt_hdrs) && (cycle == 1) ) 
        !            62:             writes( op_name );
        !            63:        test_inst();
        !            64: }
        !            65: 
        !            66: 
        !            67: 
        !            68: /*
        !            69:  **********************************************************************
        !            70:  *
        !            71:  *     SET UP TO TEST DIVIDE BY ZERO WITH THE DIVD INSTRUCTION
        !            72:  *
        !            73:  **********************************************************************
        !            74: */
        !            75: run_divd()
        !            76: {
        !            77:        op_code     = DIVD_OP_CODE;     /* set the inst's op_code */
        !            78:        op_name     = "DIVD ";          /* set the inst's name */
        !            79:        precision   = DBL;
        !            80:        acc_ld_size = DBL;              /* load a double precision Acc. */
        !            81:        sgl_op      = FALSE;
        !            82:        valid_test  = TRUE;             /* we're running a test */
        !            83:        data_ptr    = zero_divide_data; /* set the data ptr */
        !            84:        max_index   = zero_divide_cnt;  /* set the max index */
        !            85:        if( (prt_hdrs) && (cycle == 1) ) 
        !            86:             writes( op_name );
        !            87:        test_inst();
        !            88: }

unix.superglobalmegacorp.com

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