Annotation of cci/d/fpevent/undfl_test.lst, revision 1.1

1.1     ! root        1:    1  00000000                                  LL0:
        !             2:    2  00000000                                         .data
        !             3:    3  000001ec *                                       .text
        !             4:    4  00000000                                         .align  1
        !             5:    5  00000000                                         .globl  _undfl_test
        !             6:    6  00000000                                  _undfl_test:
        !             7:    7  0000E244    0000                                 .word   L381
        !             8:    8  0000E246                                   # 
        !             9:    9  0000E246                                   # #include "evt_defs.h"
        !            10:   10  0000E246                                   # 
        !            11:   11  0000E246                                   # /*
        !            12:   12  0000E246                                   #  ********************************************************************
        !            13:   13  0000E246                                   #  *
        !            14:   14  0000E246                                   #  *  MONITOR FOR THE FPP UNDERFLOW EVENT TEST
        !            15:   15  0000E246                                   #  *
        !            16:   16  0000E246                                   #  *  25-Mar-85  JJM: written
        !            17:   17  0000E246                                   #  *  29-Mar-85  JJM: mauled the beast for CVDF (cvdf has ovfl but no undfl)
        !            18:   18  0000E246                                   #  *
        !            19:   19  0000E246                                   #  ********************************************************************
        !            20:   20  0000E246                                   # */
        !            21:   21  0000E246                                   # undfl_test()
        !            22:   22  0000E246                                   # {
        !            23:   23  0000E246    13 00e1                              jbr     L383
        !            24:   24  0000E249                                  L384:
        !            25:   25  0000E249                                   #     event_msg = "Underflow";
        !            26:   26  0000E249                                         .data   1
        !            27:   27  000001ec *                                L385:
        !            28:   28  000001ec *  556E646572666C6F7700                 .ascii  "Underflow\0"
        !            29:   29  000001f6 *                                       .text
        !            30:   30  0000E249    0d 8f000001ec effffffff0             movl    $L385,_event_msg
        !            31:   31  0000E254                                   #     test_event = ARITH_CODE;        /* expect an arithmetic fault */
        !            32:   32  0000E254    0d 34 efffffffe9                     movl    $52,_test_event
        !            33:   33  0000E25B                                   #     exp_code = FLT_UNDFL_CODE;      /*  -specificly floating underflow */
        !            34:   34  0000E25B    0d 05 efffffffe2                     movl    $5,_exp_code
        !            35:   35  0000E262                                   #     if( evt_inst )                  /* was the op-code specified? */
        !            36:   36  0000E262    5d efffffffdc                        tstl    _evt_inst
        !            37:   37  0000E268    31 7a                                jeql    L386
        !            38:   38  0000E26A                                   #     {
        !            39:   39  0000E26A                                   #           inst_index = get_ovfl_index( evt_inst );
        !            40:   40  0000E26A    dd efffffffd4                        pushl   _evt_inst
        !            41:   41  0000E270    fe 08 efffffffcd                     callf   $8,_get_ovfl_index
        !            42:   42  0000E277    0d 50 efffffffc6                     movl    r0,_inst_index
        !            43:   43  0000E27E                                   #           if( (inst_index < 0) || 
        !            44:   44  0000E27E                                   #               (ovfl_tbl[inst_index].undfl_data == null_data) )
        !            45:   45  0000E27E    5d efffffffc0                        tstl    _inst_index
        !            46:   46  0000E284    91 18                                jlss    L9999
        !            47:   47  0000E286    0d efffffffb8 50                     movl    _inst_index,r0
        !            48:   48  0000E28D    48 05 50 50                          shll    $5,r0,r0
        !            49:   49  0000E291    1d e000000018 8f00000000             cmpl    _ovfl_tbl+24(r0),$_null_data
        !            50:   50  0000E29C    21 3d                                jneq    L388
        !            51:   51  0000E29E                                  L9999:
        !            52:   52  0000E29E                                   #           {
        !            53:   53  0000E29E                                   #                 if( (prt_hdrs) && (cycle == 1) ) 
        !            54:   54  0000E29E    5d efffffffa0                        tstl    _prt_hdrs
        !            55:   55  0000E2A4    31 33                                jeql    L389
        !            56:   56  0000E2A6    1d efffffff98 01                     cmpl    _cycle,$1
        !            57:   57  0000E2AD    21 2a                                jneq    L389
        !            58:   58  0000E2AF                                   #                 {
        !            59:   59  0000E2AF                                   #                      writes(
        !            60:   60  0000E2AF                                   #                       "There are no UNDERFLOW faults with op-code ");
        !            61:   61  0000E2AF                                         .data   1
        !            62:   62  000001f6 *                                L391:
        !            63:   63  000001f6 *  546865726520617265206E6F2            .ascii  "There are no UNDERFLOW faults with op-code \0"
        !            64:                   0554E444552464C4F57206661
        !            65:                   756C74732077697468206F702
        !            66:                   D636F64652000
        !            67:   64  00000222 *                                       .text
        !            68:   65  0000E2AF    dd 8f000001f6                        pushl   $L391
        !            69:   66  0000E2B5    fe 08 efffffff88                     callf   $8,_writes
        !            70:   67  0000E2BC                                   #                      writeh( evt_inst );    /* print the ersatz op-code */
        !            71:   68  0000E2BC    dd efffffff82                        pushl   _evt_inst
        !            72:   69  0000E2C2    fe 08 efffffff7b                     callf   $8,_writeh
        !            73:   70  0000E2C9                                   #                      writec('\n');
        !            74:   71  0000E2C9    dd 0a                                pushl   $10
        !            75:   72  0000E2CB    fe 08 efffffff72                     callf   $8,_writec
        !            76:   73  0000E2D2                                   #                      error = TRUE;          /* needed for line feeds */
        !            77:   74  0000E2D2    0d 01 efffffff6b                     movl    $1,_error
        !            78:   75  0000E2D9                                   #                 }
        !            79:   76  0000E2D9                                   #           } else 
        !            80:   77  0000E2D9                                  L389:
        !            81:   78  0000E2D9    11 07                                jbr     L394
        !            82:   79  0000E2DB                                  L388:
        !            83:   80  0000E2DB                                   #                 test_undfl_inst();          /* test the instruction */
        !            84:   81  0000E2DB    fe 04 ef0000004c                     callf   $4,_test_undfl_inst
        !            85:   82  0000E2E2                                  L394:
        !            86:   83  0000E2E2                                   #     } else                          /* test all applicable op-codes */
        !            87:   84  0000E2E2    11 45                                jbr     L396
        !            88:   85  0000E2E4                                  L386:
        !            89:   86  0000E2E4                                   #           for(inst_index=0; inst_index < size_ovfl_tbl; inst_index++)
        !            90:   87  0000E2E4    4d efffffff5a                        clrl    _inst_index
        !            91:   88  0000E2EA                                  L399:
        !            92:   89  0000E2EA    1d efffffff54 efffffff4f             cmpl    _inst_index,_size_ovfl_tbl
        !            93:   90  0000E2F5    81 32                                jgeq    L398
        !            94:   91  0000E2F7                                   #           {
        !            95:   92  0000E2F7                                   #                 data_ptr   =  ovfl_tbl[ inst_index ].undfl_data;
        !            96:   93  0000E2F7    0d efffffff47 50                     movl    _inst_index,r0
        !            97:   94  0000E2FE    48 05 50 50                          shll    $5,r0,r0
        !            98:   95  0000E302    0d e000000018 efffffff37             movl    _ovfl_tbl+24(r0),_data_ptr
        !            99:   96  0000E30D                                   #                 if( data_ptr != null_data )
        !           100:   97  0000E30D    1d efffffff31 8f00000000             cmpl    _data_ptr,$_null_data
        !           101:   98  0000E318    31 07                                jeql    L400
        !           102:   99  0000E31A                                   #                       test_undfl_inst();    /* test the instruction */
        !           103:  100  0000E31A    fe 04 ef0000000d                     callf   $4,_test_undfl_inst
        !           104:  101  0000E321                                   #           }
        !           105:  102  0000E321                                  L400:
        !           106:  103  0000E321                                  L397:
        !           107:  104  0000E321    6d efffffff1d                        incl    _inst_index
        !           108:  105  0000E327    11 c1                                jbr     L399
        !           109:  106  0000E329                                  L398:
        !           110:  107  0000E329                                  L396:
        !           111:  108  0000E329                                   # }
        !           112:  109  0000E329    40                                   ret#2
        !           113:  110  0000E32A                                         .set    L381,0x0
        !           114:  111  0000E32A                                  L383:
        !           115:  112  0000E32A    13 ff1c                              jbr     L384
        !           116:  113  0000E32D                                         .data
        !           117:  114  000001ec *                                       .text
        !           118:  115  0000E32D    00                                   .align  1
        !           119:  116  0000E32E                                         .globl  _test_undfl_inst
        !           120:  117  0000E32E                                  _test_undfl_inst:
        !           121:  118  0000E32E    0000                                 .word   L401
        !           122:  119  0000E330                                   #  
        !           123:  120  0000E330                                   # 
        !           124:  121  0000E330                                   # 
        !           125:  122  0000E330                                   # /*
        !           126:  123  0000E330                                   #  ********************************************************************
        !           127:  124  0000E330                                   #  *
        !           128:  125  0000E330                                   #  *  TEST THE UNDERFLOW EVENT ON AN INSTRUCTION 
        !           129:  126  0000E330                                   #  *
        !           130:  127  0000E330                                   #  ********************************************************************
        !           131:  128  0000E330                                   # */
        !           132:  129  0000E330                                   # test_undfl_inst()
        !           133:  130  0000E330                                   # {
        !           134:  131  0000E330    13 00f9                              jbr     L403
        !           135:  132  0000E333                                  L404:
        !           136:  133  0000E333                                   #     valid_test = TRUE;              /* a test is being run */
        !           137:  134  0000E333    0d 01 efffffff0a                     movl    $1,_valid_test
        !           138:  135  0000E33A                                   #     op_code    =  ovfl_tbl[ inst_index ].inst_code;
        !           139:  136  0000E33A    0d efffffff04 50                     movl    _inst_index,r0
        !           140:  137  0000E341    48 05 50 50                          shll    $5,r0,r0
        !           141:  138  0000E345    0d e000000000 effffffef4             movl    _ovfl_tbl(r0),_op_code
        !           142:  139  0000E350                                   #     op_name    =  ovfl_tbl[ inst_index ].name;
        !           143:  140  0000E350    0d effffffeee 50                     movl    _inst_index,r0
        !           144:  141  0000E357    48 05 50 50                          shll    $5,r0,r0
        !           145:  142  0000E35B    0d e000000004 effffffede             movl    _ovfl_tbl+4(r0),_op_name
        !           146:  143  0000E366                                   #     no_ops     =  ovfl_tbl[ inst_index ].no_operands;
        !           147:  144  0000E366    0d effffffed8 50                     movl    _inst_index,r0
        !           148:  145  0000E36D    48 05 50 50                          shll    $5,r0,r0
        !           149:  146  0000E371    0d e000000008 effffffec8             movl    _ovfl_tbl+8(r0),_no_ops
        !           150:  147  0000E37C                                   #     precision  =  ovfl_tbl[ inst_index ].precision;
        !           151:  148  0000E37C    0d effffffec2 50                     movl    _inst_index,r0
        !           152:  149  0000E383    48 05 50 50                          shll    $5,r0,r0
        !           153:  150  0000E387    0d e00000000c effffffeb2             movl    _ovfl_tbl+12(r0),_precision
        !           154:  151  0000E392                                   #     data_ptr   =  ovfl_tbl[ inst_index ].undfl_data;
        !           155:  152  0000E392    0d effffffeac 50                     movl    _inst_index,r0
        !           156:  153  0000E399    48 05 50 50                          shll    $5,r0,r0
        !           157:  154  0000E39D    0d e000000018 effffffe9c             movl    _ovfl_tbl+24(r0),_data_ptr
        !           158:  155  0000E3A8                                   #     max_index  = *ovfl_tbl[ inst_index ].undfl_cnt;
        !           159:  156  0000E3A8    0d effffffe96 50                     movl    _inst_index,r0
        !           160:  157  0000E3AF    48 05 50 50                          shll    $5,r0,r0
        !           161:  158  0000E3B3    0d f00000001c effffffe86             movl    *_ovfl_tbl+28(r0),_max_index
        !           162:  159  0000E3BE                                   #     if( precision == SGL ) {
        !           163:  160  0000E3BE    1d effffffe80 01                     cmpl    _precision,$1
        !           164:  161  0000E3C5    21 10                                jneq    L405
        !           165:  162  0000E3C7                                   #          sgl_op = TRUE;
        !           166:  163  0000E3C7    0d 01 effffffe76                     movl    $1,_sgl_op
        !           167:  164  0000E3CE                                   #          acc_ld_size = SGL; /* use a sgl precision Acc. */
        !           168:  165  0000E3CE    0d 01 effffffe6f                     movl    $1,_acc_ld_size
        !           169:  166  0000E3D5                                   #     } else {
        !           170:  167  0000E3D5    11 0d                                jbr     L406
        !           171:  168  0000E3D7                                  L405:
        !           172:  169  0000E3D7                                   #          sgl_op = FALSE;
        !           173:  170  0000E3D7    4d effffffe67                        clrl    _sgl_op
        !           174:  171  0000E3DD                                   #          acc_ld_size = DBL; /* use a dbl precision Acc. */
        !           175:  172  0000E3DD    0d 02 effffffe60                     movl    $2,_acc_ld_size
        !           176:  173  0000E3E4                                   #     }
        !           177:  174  0000E3E4                                  L406:
        !           178:  175  0000E3E4                                   #     if( (prt_hdrs) && (cycle == 1) ) 
        !           179:  176  0000E3E4    5d effffffe5a                        tstl    _prt_hdrs
        !           180:  177  0000E3EA    31 16                                jeql    L407
        !           181:  178  0000E3EC    1d effffffe52 01                     cmpl    _cycle,$1
        !           182:  179  0000E3F3    21 0d                                jneq    L407
        !           183:  180  0000E3F5                                   #          writes( op_name );
        !           184:  181  0000E3F5    dd effffffe49                        pushl   _op_name
        !           185:  182  0000E3FB    fe 08 effffffe42                     callf   $8,_writes
        !           186:  183  0000E402                                   #     disable_mask = 0;               /* all events enabled   */
        !           187:  184  0000E402                                  L407:
        !           188:  185  0000E402    4b effffffe3c                        clrw    _disable_mask
        !           189:  186  0000E408                                   #     evt_disabled = FALSE;
        !           190:  187  0000E408    4d effffffe36                        clrl    _evt_disabled
        !           191:  188  0000E40E                                   #     test_inst();                    /* test the instruction */
        !           192:  189  0000E40E    fe 04 effffffe2f                     callf   $4,_test_inst
        !           193:  190  0000E415                                   #     disable_mask = PSL_EN_UNDFL;    /* disable underflows   */
        !           194:  191  0000E415    7f 8840 effffffe27                   cvtlw   $64,_disable_mask
        !           195:  192  0000E41D                                   #     evt_disabled = TRUE;    
        !           196:  193  0000E41D    0d 01 effffffe20                     movl    $1,_evt_disabled
        !           197:  194  0000E424                                   #     test_inst();                    /* test the instruction */
        !           198:  195  0000E424    fe 04 effffffe19                     callf   $4,_test_inst
        !           199:  196  0000E42B                                   # }
        !           200:  197  0000E42B    40                                   ret#2
        !           201:  198  0000E42C                                         .set    L401,0x0
        !           202:  199  0000E42C                                  L403:
        !           203:  200  0000E42C    13 ff04                              jbr     L404
        !           204:  201  0000E42F                                         .data
        !           205:  201  0001C673                                         .data

unix.superglobalmegacorp.com

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