Annotation of cci/d/dmp4/chk_math.c, revision 1.1.1.1

1.1       root        1: 
                      2: #include "dmp_defs.h"
                      3: 
                      4: /***********************************************************************
                      5: *
                      6: *   Verify final single precision accumulator value for Math functions
                      7: *
                      8: *  This code is the same as CHK_SGL_ACC in that it checks the final 
                      9: *  single precision accumulator value except that this code doesn't
                     10: *  check the PSL flag bits. In fact, the error printing and halting 
                     11: *  routines are in file CHK_SGL_ACC.
                     12: *  This routine is used because SINF & COSF play with the PSL flags.
                     13: ***********************************************************************/
                     14: chk_math()
                     15: {
                     16:        sgl_ld_acc   = dbl_ld_acc.m;            /* move the data to    */
                     17:        sgl_st_acc   = dbl_st_acc.m;            /*   the sgl data      */
                     18:        sgl_expected = dbl_expected.m;          /*      operands       */
                     19:        sgl_value_1  = dbl_value_1.m;
                     20:        sgl_value_2  = dbl_value_2.m;
                     21:        sgl_dummy1   = init_psl & 0xffffff00;   /* clear PSL's DBL bit */
                     22:        sgl_dummy2   = psl_val & 0xffffff00;    /* get final PSL value */
                     23:   
                     24:        if( sgl_st_acc != sgl_expected ) {
                     25:            errcnt++;
                     26:            if( prt_error )
                     27:                 prt_s_acc_e( bad_result_msg );
                     28:            if( halt_flg )
                     29:                 hlt_s_acc_e( 1 );              /* error code 1 */
                     30:            if( loop_on_err )
                     31:                 force_loop = TRUE;             /* set loop flag */
                     32:        }
                     33:         else if( sgl_dummy2 != sgl_dummy1 ) {
                     34:            errcnt++;
                     35:            if( prt_error )
                     36:                 prt_s_acc_e( bad_psl_msg );
                     37:            if( halt_flg )
                     38:                 hlt_s_acc_e( 2 );              /* error code 2 */
                     39:            if( loop_on_err )
                     40:                 force_loop = TRUE;             /* set loop flag */
                     41:        }
                     42:         else if( no_page_faults != exp_page_faults ) {
                     43:            errcnt++;
                     44:            if( prt_error )
                     45:                 prt_s_acc_e( trans_flt_cnt_msg );
                     46:            if( halt_flg )
                     47:                 hlt_s_acc_e( 3 );              /* error code 3 */
                     48:            if( loop_on_err )
                     49:                 force_loop = TRUE;             /* set loop flag */
                     50:        }
                     51:         else {
                     52:            reg_no = 0;
                     53:            regs_ok = TRUE;
                     54:            while( (reg_no <= 13) && (regs_ok) )  /* check 1st 13 regs */
                     55:                if( store_regs[ reg_no ] == exp_regs[ reg_no ] )
                     56:                    reg_no++;
                     57:                else
                     58:                    regs_ok = FALSE;
                     59:            if( !regs_ok ) {
                     60:                errcnt++;
                     61:                if( prt_error )
                     62:                     prt_s_acc_e( reg_modified_msg );
                     63:                if( halt_flg )
                     64:                     hlt_s_acc_e( 4 );  /* error code 4 */
                     65:                if( loop_on_err )
                     66:                     force_loop = TRUE;         /* set loop flag */
                     67:            }
                     68:        }
                     69: }
                     70: 
                     71: 

unix.superglobalmegacorp.com

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