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

1.1     ! root        1:    1  00000000                                  LL0:
        !             2:    2  00000000                                         .data
        !             3:    3  000001dc *                                       .text
        !             4:    4  00000000                                         .align  1
        !             5:    5  00000000                                         .globl  _ovfl_test
        !             6:    6  00000000                                  _ovfl_test:
        !             7:    7  0000DE50    0000                                 .word   L381
        !             8:    8  0000DE52                                   # 
        !             9:    9  0000DE52                                   # #include "evt_defs.h"
        !            10:   10  0000DE52                                   # 
        !            11:   11  0000DE52                                   # /*
        !            12:   12  0000DE52                                   #  ********************************************************************
        !            13:   13  0000DE52                                   #  *
        !            14:   14  0000DE52                                   #  *  MONITOR FOR THE FPP OVERFLOW EVENT TEST
        !            15:   15  0000DE52                                   #  *
        !            16:   16  0000DE52                                   #  *  25-Mar-85  JJM: written
        !            17:   17  0000DE52                                   #  *
        !            18:   18  0000DE52                                   #  ********************************************************************
        !            19:   19  0000DE52                                   # */
        !            20:   20  0000DE52                                   # ovfl_test()
        !            21:   21  0000DE52                                   # {
        !            22:   22  0000DE52    13 00b2                              jbr     L383
        !            23:   23  0000DE55                                  L384:
        !            24:   24  0000DE55                                   #     event_msg = "Overflow";
        !            25:   25  0000DE55                                         .data   1
        !            26:   26  000001dc *                                L385:
        !            27:   27  000001dc *  4F766572666C6F7700                   .ascii  "Overflow\0"
        !            28:   28  000001e5 *                                       .text
        !            29:   29  0000DE55    0d 8f000001dc effffffff0             movl    $L385,_event_msg
        !            30:   30  0000DE60                                   #     test_event = ARITH_CODE;        /* expect an arithmetic fault */
        !            31:   31  0000DE60    0d 34 efffffffe9                     movl    $52,_test_event
        !            32:   32  0000DE67                                   #     exp_code = FLT_OVFL_CODE;       /*  -specificly floating overflow */
        !            33:   33  0000DE67    0d 04 efffffffe2                     movl    $4,_exp_code
        !            34:   34  0000DE6E                                   #     disable_mask = 0;               /* don't disable any events   */
        !            35:   35  0000DE6E    4b efffffffdc                        clrw    _disable_mask
        !            36:   36  0000DE74                                   #     evt_disabled = FALSE;
        !            37:   37  0000DE74    4d efffffffd6                        clrl    _evt_disabled
        !            38:   38  0000DE7A                                   #     if( evt_inst )                  /* was the op-code specified? */
        !            39:   39  0000DE7A    5d efffffffd0                        tstl    _evt_inst
        !            40:   40  0000DE80    31 62                                jeql    L386
        !            41:   41  0000DE82                                   #     {
        !            42:   42  0000DE82                                   #           inst_index = get_ovfl_index( evt_inst );
        !            43:   43  0000DE82    dd efffffffc8                        pushl   _evt_inst
        !            44:   44  0000DE88    fe 08 ef0000015b                     callf   $8,_get_ovfl_index
        !            45:   45  0000DE8F    0d 50 efffffffba                     movl    r0,_inst_index
        !            46:   46  0000DE96                                   #           if( inst_index < 0 )      /* valid instruction for OVFL? */
        !            47:   47  0000DE96    5d efffffffb4                        tstl    _inst_index
        !            48:   48  0000DE9C    81 3d                                jgeq    L388
        !            49:   49  0000DE9E                                   #           {
        !            50:   50  0000DE9E                                   #                if( (prt_hdrs) && (cycle == 1) )  /* not a valid instr */
        !            51:   51  0000DE9E    5d efffffffac                        tstl    _prt_hdrs
        !            52:   52  0000DEA4    31 33                                jeql    L389
        !            53:   53  0000DEA6    1d efffffffa4 01                     cmpl    _cycle,$1
        !            54:   54  0000DEAD    21 2a                                jneq    L389
        !            55:   55  0000DEAF                                   #                {
        !            56:   56  0000DEAF                                   #                     writes(
        !            57:   57  0000DEAF                                   #                    "There are no floating OVERFLOW faults with op-code ");
        !            58:   58  0000DEAF                                         .data   1
        !            59:   59  000001e5 *                                L391:
        !            60:   60  000001e5 *  546865726520617265206E6F2            .ascii  "There are no floating OVERFLOW faults with op-code \0"
        !            61:                   0666C6F6174696E67204F5645
        !            62:                   52464C4F57206661756C74732
        !            63:                   077697468206F702D636F6465
        !            64:                   2000
        !            65:   61  00000219 *                                       .text
        !            66:   62  0000DEAF    dd 8f000001e5                        pushl   $L391
        !            67:   63  0000DEB5    fe 08 efffffff94                     callf   $8,_writes
        !            68:   64  0000DEBC                                   #                     writeh( evt_inst );
        !            69:   65  0000DEBC    dd efffffff8e                        pushl   _evt_inst
        !            70:   66  0000DEC2    fe 08 efffffff87                     callf   $8,_writeh
        !            71:   67  0000DEC9                                   #                     writec('\n');
        !            72:   68  0000DEC9    dd 0a                                pushl   $10
        !            73:   69  0000DECB    fe 08 efffffff7e                     callf   $8,_writec
        !            74:   70  0000DED2                                   #                     error = TRUE;   /* needed for line feed control */
        !            75:   71  0000DED2    0d 01 efffffff77                     movl    $1,_error
        !            76:   72  0000DED9                                   #                }
        !            77:   73  0000DED9                                   #           } else 
        !            78:   74  0000DED9                                  L389:
        !            79:   75  0000DED9    11 07                                jbr     L394
        !            80:   76  0000DEDB                                  L388:
        !            81:   77  0000DEDB                                   #                test_ovfl_inst();    /* test the instruction */
        !            82:   78  0000DEDB    fe 04 ef00000028                     callf   $4,_test_ovfl_inst
        !            83:   79  0000DEE2                                  L394:
        !            84:   80  0000DEE2                                   #     } else                          /* the op-code wasn't specfied */
        !            85:   81  0000DEE2    11 22                                jbr     L396
        !            86:   82  0000DEE4                                  L386:
        !            87:   83  0000DEE4                                   #           for(inst_index=0; inst_index < size_ovfl_tbl; inst_index++)
        !            88:   84  0000DEE4    4d efffffff66                        clrl    _inst_index
        !            89:   85  0000DEEA                                  L399:
        !            90:   86  0000DEEA    1d efffffff60 efffffff5b             cmpl    _inst_index,_size_ovfl_tbl
        !            91:   87  0000DEF5    81 0f                                jgeq    L398
        !            92:   88  0000DEF7                                   #                test_ovfl_inst();    /* test each ovfl instruction */
        !            93:   89  0000DEF7    fe 04 ef0000000c                     callf   $4,_test_ovfl_inst
        !            94:   90  0000DEFE                                  L397:
        !            95:   91  0000DEFE    6d efffffff4c                        incl    _inst_index
        !            96:   92  0000DF04    11 e4                                jbr     L399
        !            97:   93  0000DF06                                  L398:
        !            98:   94  0000DF06                                  L396:
        !            99:   95  0000DF06                                   # }
        !           100:   96  0000DF06    40                                   ret#2
        !           101:   97  0000DF07                                         .set    L381,0x0
        !           102:   98  0000DF07                                  L383:
        !           103:   99  0000DF07    13 ff4b                              jbr     L384
        !           104:  100  0000DF0A                                         .data
        !           105:  101  000001dc *                                       .text
        !           106:  102  0000DF0A                                         .align  1
        !           107:  103  0000DF0A                                         .globl  _test_ovfl_inst
        !           108:  104  0000DF0A                                  _test_ovfl_inst:
        !           109:  105  0000DF0A    0000                                 .word   L400
        !           110:  106  0000DF0C                                   # 
        !           111:  107  0000DF0C                                   # 
        !           112:  108  0000DF0C                                   # /*
        !           113:  109  0000DF0C                                   #  ********************************************************************
        !           114:  110  0000DF0C                                   #  *
        !           115:  111  0000DF0C                                   #  *  test the floating overflow event on an instruction
        !           116:  112  0000DF0C                                   #  *
        !           117:  113  0000DF0C                                   #  ********************************************************************
        !           118:  114  0000DF0C                                   # */
        !           119:  115  0000DF0C                                   # test_ovfl_inst()
        !           120:  116  0000DF0C                                   # {
        !           121:  117  0000DF0C    13 00d7                              jbr     L402
        !           122:  118  0000DF0F                                  L403:
        !           123:  119  0000DF0F                                   #     valid_test = TRUE;              /* a test is being run */
        !           124:  120  0000DF0F    0d 01 efffffff3a                     movl    $1,_valid_test
        !           125:  121  0000DF16                                   #     op_code    =  ovfl_tbl[ inst_index ].inst_code;
        !           126:  122  0000DF16    0d efffffff34 50                     movl    _inst_index,r0
        !           127:  123  0000DF1D    48 05 50 50                          shll    $5,r0,r0
        !           128:  124  0000DF21    0d e000000000 efffffff24             movl    _ovfl_tbl(r0),_op_code
        !           129:  125  0000DF2C                                   #     op_name    =  ovfl_tbl[ inst_index ].name;
        !           130:  126  0000DF2C    0d efffffff1e 50                     movl    _inst_index,r0
        !           131:  127  0000DF33    48 05 50 50                          shll    $5,r0,r0
        !           132:  128  0000DF37    0d e000000004 efffffff0e             movl    _ovfl_tbl+4(r0),_op_name
        !           133:  129  0000DF42                                   #     no_ops     =  ovfl_tbl[ inst_index ].no_operands;
        !           134:  130  0000DF42    0d efffffff08 50                     movl    _inst_index,r0
        !           135:  131  0000DF49    48 05 50 50                          shll    $5,r0,r0
        !           136:  132  0000DF4D    0d e000000008 effffffef8             movl    _ovfl_tbl+8(r0),_no_ops
        !           137:  133  0000DF58                                   #     precision  =  ovfl_tbl[ inst_index ].precision;
        !           138:  134  0000DF58    0d effffffef2 50                     movl    _inst_index,r0
        !           139:  135  0000DF5F    48 05 50 50                          shll    $5,r0,r0
        !           140:  136  0000DF63    0d e00000000c effffffee2             movl    _ovfl_tbl+12(r0),_precision
        !           141:  137  0000DF6E                                   #     data_ptr   =  ovfl_tbl[ inst_index ].ovfl_data;
        !           142:  138  0000DF6E    0d effffffedc 50                     movl    _inst_index,r0
        !           143:  139  0000DF75    48 05 50 50                          shll    $5,r0,r0
        !           144:  140  0000DF79    0d e000000010 effffffecc             movl    _ovfl_tbl+16(r0),_data_ptr
        !           145:  141  0000DF84                                   #     max_index  = *ovfl_tbl[ inst_index ].ovfl_cnt;
        !           146:  142  0000DF84    0d effffffec6 50                     movl    _inst_index,r0
        !           147:  143  0000DF8B    48 05 50 50                          shll    $5,r0,r0
        !           148:  144  0000DF8F    0d f000000014 effffffeb6             movl    *_ovfl_tbl+20(r0),_max_index
        !           149:  145  0000DF9A                                   #     if( precision == SGL ) {
        !           150:  146  0000DF9A    1d effffffeb0 01                     cmpl    _precision,$1
        !           151:  147  0000DFA1    21 10                                jneq    L404
        !           152:  148  0000DFA3                                   #          sgl_op = TRUE;
        !           153:  149  0000DFA3    0d 01 effffffea6                     movl    $1,_sgl_op
        !           154:  150  0000DFAA                                   #          acc_ld_size = SGL;         /* use a sgl precision Acc. */
        !           155:  151  0000DFAA    0d 01 effffffe9f                     movl    $1,_acc_ld_size
        !           156:  152  0000DFB1                                   #     } else {
        !           157:  153  0000DFB1    11 0d                                jbr     L405
        !           158:  154  0000DFB3                                  L404:
        !           159:  155  0000DFB3                                   #          sgl_op = FALSE;
        !           160:  156  0000DFB3    4d effffffe97                        clrl    _sgl_op
        !           161:  157  0000DFB9                                   #          acc_ld_size = DBL;         /* use a dbl precision Acc. */
        !           162:  158  0000DFB9    0d 02 effffffe90                     movl    $2,_acc_ld_size
        !           163:  159  0000DFC0                                   #     }
        !           164:  160  0000DFC0                                  L405:
        !           165:  161  0000DFC0                                   #     if( (prt_hdrs) && (cycle == 1) ) 
        !           166:  162  0000DFC0    5d effffffe8a                        tstl    _prt_hdrs
        !           167:  163  0000DFC6    31 16                                jeql    L406
        !           168:  164  0000DFC8    1d effffffe82 01                     cmpl    _cycle,$1
        !           169:  165  0000DFCF    21 0d                                jneq    L406
        !           170:  166  0000DFD1                                   #          writes( op_name );
        !           171:  167  0000DFD1    dd effffffe79                        pushl   _op_name
        !           172:  168  0000DFD7    fe 08 effffffe72                     callf   $8,_writes
        !           173:  169  0000DFDE                                   #     test_inst();
        !           174:  170  0000DFDE                                  L406:
        !           175:  171  0000DFDE    fe 04 effffffe6b                     callf   $4,_test_inst
        !           176:  172  0000DFE5                                   # }
        !           177:  173  0000DFE5    40                                   ret#2
        !           178:  174  0000DFE6                                         .set    L400,0x0
        !           179:  175  0000DFE6                                  L402:
        !           180:  176  0000DFE6    13 ff26                              jbr     L403
        !           181:  177  0000DFE9                                         .data
        !           182:  178  000001dc *                                       .text
        !           183:  179  0000DFE9    00                                   .align  1
        !           184:  180  0000DFEA                                         .globl  _get_ovfl_index
        !           185:  181  0000DFEA                                  _get_ovfl_index:
        !           186:  182  0000DFEA    0000                                 .word   L408
        !           187:  183  0000DFEC                                   # 
        !           188:  184  0000DFEC                                   # 
        !           189:  185  0000DFEC                                   # 
        !           190:  186  0000DFEC                                   # 
        !           191:  187  0000DFEC                                   # /*
        !           192:  188  0000DFEC                                   #  ***************************************************************************
        !           193:  189  0000DFEC                                   #  *
        !           194:  190  0000DFEC                                   #  *   GET THE OVERFLOW / UNDERFLOW INSTRUCTION TABLE INDEX FOR AN OP-CODE
        !           195:  191  0000DFEC                                   #  *
        !           196:  192  0000DFEC                                   #  *  Given the op_code of an instruction, return the instruction's index in
        !           197:  193  0000DFEC                                   #  *  the overflow / underflow instruction table. Return a negative number 
        !           198:  194  0000DFEC                                   #  *  if the op-code isn't in the table.
        !           199:  195  0000DFEC                                   #  *
        !           200:  196  0000DFEC                                   #  **************************************************************************
        !           201:  197  0000DFEC                                   # */
        !           202:  198  0000DFEC                                   # get_ovfl_index( op_code )
        !           203:  199  0000DFEC                                   # {
        !           204:  200  0000DFEC    11 38                                jbr     L410
        !           205:  201  0000DFEE                                  L411:
        !           206:  202  0000DFEE                                   # int x;
        !           207:  203  0000DFEE                                   #     x = 0;
        !           208:  204  0000DFEE    4d adc8                              clrl    -56(fp)
        !           209:  205  0000DFF1                                   #     while( (ovfl_tbl[x].inst_code != op_code) && (x < size_ovfl_tbl) )
        !           210:  206  0000DFF1                                  L412:
        !           211:  207  0000DFF1    0d adc8 50                           movl    -56(fp),r0
        !           212:  208  0000DFF5    48 05 50 50                          shll    $5,r0,r0
        !           213:  209  0000DFF9    1d e000000000 ad04                   cmpl    _ovfl_tbl(r0),4(fp)
        !           214:  210  0000E001    31 0f                                jeql    L413
        !           215:  211  0000E003    1d adc8 effffffe45                   cmpl    -56(fp),_size_ovfl_tbl
        !           216:  212  0000E00B    81 05                                jgeq    L413
        !           217:  213  0000E00D                                   #          x++;
        !           218:  214  0000E00D    6d adc8                              incl    -56(fp)
        !           219:  215  0000E010    11 df                                jbr     L412
        !           220:  216  0000E012                                  L413:
        !           221:  217  0000E012                                   #     if( x == size_ovfl_tbl )
        !           222:  218  0000E012    1d adc8 effffffe36                   cmpl    -56(fp),_size_ovfl_tbl
        !           223:  219  0000E01A    21 04                                jneq    L414
        !           224:  220  0000E01C                                   #          x = -1;
        !           225:  221  0000E01C    ec 01 adc8                           mnegl   $1,-56(fp)
        !           226:  222  0000E020                                   #     return( x );
        !           227:  223  0000E020                                  L414:
        !           228:  224  0000E020    0d adc8 50                           movl    -56(fp),r0
        !           229:  225  0000E024    40                                   ret#1
        !           230:  226  0000E025                                   # }
        !           231:  227  0000E025    40                                   ret#1
        !           232:  228  0000E026                                         .set    L408,0x0
        !           233:  229  0000E026                                  L410:
        !           234:  230  0000E026    3c 38 5d 5e                          subl3   $56,fp,sp
        !           235:  231  0000E02A    11 c2                                jbr     L411
        !           236:  232  000001dc *                                       .data
        !           237:  233  000001dc *                                 # 
        !           238:  234  000001dc *                                 # 
        !           239:  234  000001dc *                                 # 

unix.superglobalmegacorp.com

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