Annotation of cci/d/fpevent/test_inst.lst, revision 1.1.1.1

1.1       root        1:    1  00000000                                  LL0:
                      2:    2  00000000                                         .data
                      3:    3  00000998 *                                       .text
                      4:    4  00000000                                         .align  1
                      5:    5  00000000                                         .globl  _test_inst
                      6:    6  00000000                                  _test_inst:
                      7:    7  0000E610    0000                                 .word   L382
                      8:    8  0000E612                                   # #include "evt_defs.h"
                      9:    9  0000E612                                   # 
                     10:   10  0000E612                                   # /**************************************************************************
                     11:   11  0000E612                                   # *
                     12:   12  0000E612                                   # *                   Test the current instruction
                     13:   13  0000E612                                   # *
                     14:   14  0000E612                                   # *   10-Apr-85 - changed the test to just check a couple of addr. modes
                     15:   15  0000E612                                   # *   30-May-85 - added pipeline tests for A-loaded and B-loaded entries.
                     16:   16  0000E612                                   # *   20-Jul-85 - added 3 operands for MULL3 integer overflow
                     17:   17  0000E612                                   # **************************************************************************/
                     18:   18  0000E612                                   # test_inst()
                     19:   19  0000E612                                   # {
                     20:   20  0000E612    13 00a8                              jbr     L384
                     21:   21  0000E615                                  L385:
                     22:   22  0000E615                                   #     *adr_op1_ptr = (int) adr_op1;   /* set word offset ptr #1 */
                     23:   23  0000E615    0d effffffff5 fffffffff0             movl    _adr_op1,*_adr_op1_ptr
                     24:   24  0000E620                                   #     *adr_op2_ptr = (int) adr_op2;   /* set word offset ptr #2 */
                     25:   25  0000E620    0d efffffffea ffffffffe5             movl    _adr_op2,*_adr_op2_ptr
                     26:   26  0000E62B                                   #     *adr_op3_ptr = (int) adr_op3;   /* set word offset ptr #3 */
                     27:   27  0000E62B    0d efffffffdf ffffffffda             movl    _adr_op3,*_adr_op3_ptr
                     28:   28  0000E636                                   #     asm("moval (sp),_monitor_sp");  /* save the stack pointer */
                     29:   29  0000E636    ed 6e efffffffd3              moval (sp),_monitor_sp
                     30:   30  0000E63D                                   #     asm("moval (fp),_monitor_fp");  /* save the frame pointer */
                     31:   31  0000E63D    ed 6d efffffffcc              moval (fp),_monitor_fp
                     32:   32  0000E644                                   #     asm("movab _test_inst_ret,_unexp_event_ret");
                     33:   33  0000E644    e9 ef00000064 efffffffc1      movab _test_inst_ret,_unexp_event_ret
                     34:   34  0000E64F                                   #     error = FALSE;                  /* clear error flag       */
                     35:   35  0000E64F    4d efffffffbb                        clrl    _error
                     36:   36  0000E655                                   #     set_load_flag();                /* set the LOAD ACC. flag */
                     37:   37  0000E655    fe 04 ef00000906                     callf   $4,_set_load_flag
                     38:   38  0000E65C                                   #     if( !no_ops )
                     39:   39  0000E65C    5d efffffffae                        tstl    _no_ops
                     40:   40  0000E662    21 09                                jneq    L387
                     41:   41  0000E664                                   #          test_0_ops();      /* test inst w/ no operands */
                     42:   42  0000E664    fe 04 efffffffa5                     callf   $4,_test_0_ops
                     43:   43  0000E66B                                   #     else {
                     44:   44  0000E66B    11 41                                jbr     L389
                     45:   45  0000E66D                                  L387:
                     46:   46  0000E66D                                   #          tst_l();           /* longword displacement relative   */
                     47:   47  0000E66D    fe 04 ef0000004c                     callf   $4,_tst_l
                     48:   48  0000E674                                   #          tst_r();           /* direct register                  */
                     49:   49  0000E674    fe 04 ef0000010b                     callf   $4,_tst_r
                     50:   50  0000E67B                                   #          tst_r_d();         /* register deferred                */
                     51:   51  0000E67B    fe 04 ef0000022a                     callf   $4,_tst_r_d
                     52:   52  0000E682                                   #          tst_r_ld();        /* register + longword displacement */
                     53:   53  0000E682    fe 04 ef000002ef                     callf   $4,_tst_r_ld
                     54:   54  0000E689                                   #          tst_x_fpd();       /* FP deferred + longword index     */
                     55:   55  0000E689    fe 04 ef000003e4                     callf   $4,_tst_x_fpd
                     56:   56  0000E690                                   #          tst_p1();          /* pipeline test #1,  LDx <op.>     */
                     57:   57  0000E690    fe 04 ef000004fd                     callf   $4,_tst_p1
                     58:   58  0000E697                                   #          if( (!load_type_inst) && (!no_fpp_wcs) )
                     59:   59  0000E697    5d efffffff73                        tstl    _load_type_inst
                     60:   60  0000E69D    21 0f                                jneq    L396
                     61:   61  0000E69F    5d efffffff6b                        tstl    _no_fpp_wcs
                     62:   62  0000E6A5    21 07                                jneq    L396
                     63:   63  0000E6A7                                   #               tst_p2();     /* pipeline test #2,  ADDx <op.>    */
                     64:   64  0000E6A7    fe 04 ef0000064a                     callf   $4,_tst_p2
                     65:   65  0000E6AE                                   #     }
                     66:   66  0000E6AE                                  L396:
                     67:   67  0000E6AE                                  L389:
                     68:   68  0000E6AE                                   #     asm(".globl _test_inst_ret");
                     69:   69  0000E6AE                                  .globl _test_inst_ret
                     70:   70  0000E6AE                                   #     asm("_test_inst_ret:");
                     71:   71  0000E6AE                                  _test_inst_ret:
                     72:   72  0000E6AE                                   #     asm("movl _monitor_sp,sp");     /* restore the stack ptr.   */
                     73:   73  0000E6AE    0d efffffff5c 5e              movl _monitor_sp,sp
                     74:   74  0000E6B5                                   #     asm("movl _monitor_fp,fp");     /* restore the frame ptr.   */
                     75:   75  0000E6B5    0d efffffff55 5d              movl _monitor_fp,fp
                     76:   76  0000E6BC                                   # }
                     77:   77  0000E6BC    40                                   ret#2
                     78:   78  0000E6BD                                         .set    L382,0x0
                     79:   79  0000E6BD                                  L384:
                     80:   80  0000E6BD    13 ff55                              jbr     L385
                     81:   81  0000E6C0                                         .data
                     82:   82  00000998 *                                       .text
                     83:   83  0000E6C0                                         .align  1
                     84:   84  0000E6C0                                         .globl  _tst_l
                     85:   85  0000E6C0                                  _tst_l:
                     86:   86  0000E6C0    0000                                 .word   L398
                     87:   87  0000E6C2                                   # 
                     88:   88  0000E6C2                                   # 
                     89:   89  0000E6C2                                   # 
                     90:   90  0000E6C2                                   # 
                     91:   91  0000E6C2                                   # 
                     92:   92  0000E6C2                                   # 
                     93:   93  0000E6C2                                   # /*******************************************************************
                     94:   94  0000E6C2                                   # * LONGWORD DISPLACEMENT RELATIVE ADDRESSING:
                     95:   95  0000E6C2                                   # *  instruction =  <op-code> <ef> <offset to dmp_op_1>
                     96:   96  0000E6C2                                   # *                         { <ef> <offset to dmp_op_2> }
                     97:   97  0000E6C2                                   # *                         { <ef> <offset to dmp_op_3> }
                     98:   98  0000E6C2                                   # *******************************************************************/
                     99:   99  0000E6C2                                   # tst_l()
                    100:  100  0000E6C2                                   # {
                    101:  101  0000E6C2    13 00bd                              jbr     L400
                    102:  102  0000E6C5                                  L401:
                    103:  103  0000E6C5                                   #     pipe_test = FALSE;
                    104:  104  0000E6C5    4d efffffff45                        clrl    _pipe_test
                    105:  105  0000E6CB                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    106:  106  0000E6CB    dd 8f00000000                        pushl   $_load_regs
                    107:  107  0000E6D1    fe 08 efffffff38                     callf   $8,_fill_reg_buf
                    108:  108  0000E6D8                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    109:  109  0000E6D8    dd 8f00000000                        pushl   $_exp_regs
                    110:  110  0000E6DE    fe 08 efffffff2b                     callf   $8,_fill_reg_buf
                    111:  111  0000E6E5                                   #     addr_mode = ADR_L_DSP;
                    112:  112  0000E6E5    0d 08 efffffff24                     movl    $8,_addr_mode
                    113:  113  0000E6EC                                   #     addr_code = addr_code2 = addr_code3 = 0xef;
                    114:  114  0000E6EC    0d 8900ef efffffff1b                 movl    $239,_addr_code3
                    115:  115  0000E6F5    0d efffffff15 50                     movl    _addr_code3,r0
                    116:  116  0000E6FC    0d 50 efffffff0d                     movl    r0,_addr_code2
                    117:  117  0000E703    0d efffffff07 50                     movl    _addr_code2,r0
                    118:  118  0000E70A    0d 50 effffffeff                     movl    r0,_addr_code
                    119:  119  0000E711                                   #     addr_size = 4;                  /* longword (4 byte) ops. */
                    120:  120  0000E711    0d 04 effffffef8                     movl    $4,_addr_size
                    121:  121  0000E718                                   #     addr_1 = os_op1 + 14;           /* offset to the data      */
                    122:  122  0000E718    1c 0e effffffef1 50                  addl3   $14,_os_op1,r0
                    123:  123  0000E720    0d 50 effffffee9                     movl    r0,_addr_1
                    124:  124  0000E727                                   #     addr_2 = os_op2 + 9;
                    125:  125  0000E727    1c 09 effffffee2 50                  addl3   $9,_os_op2,r0
                    126:  126  0000E72F    0d 50 effffffeda                     movl    r0,_addr_2
                    127:  127  0000E736                                   #     addr_3 = os_op3 + 4;
                    128:  128  0000E736    1c 04 effffffed3 50                  addl3   $4,_os_op3,r0
                    129:  129  0000E73E    0d 50 effffffecb                     movl    r0,_addr_3
                    130:  130  0000E745                                   #     pack_inst();                    /* pack the instr. code   */
                    131:  131  0000E745    fe 04 effffffec4                     callf   $4,_pack_inst
                    132:  132  0000E74C                                   #     for( index = 0; index <= max_index; index++ ) {
                    133:  133  0000E74C    4d effffffebe                        clrl    _index
                    134:  134  0000E752                                  L406:
                    135:  135  0000E752    1d effffffeb8 effffffeb3             cmpl    _index,_max_index
                    136:  136  0000E75D    41 22                                jgtr    L405
                    137:  137  0000E75F                                   #          get_current_data( adr_op1, adr_op2 );
                    138:  138  0000E75F    dd effffffeab                        pushl   _adr_op2
                    139:  139  0000E765    dd effffffea5                        pushl   _adr_op1
                    140:  140  0000E76B    fe 0c ef000006ee                     callf   $12,_get_current_data
                    141:  141  0000E772                                   #          run_code();                /* execute the instruction */
                    142:  142  0000E772    fe 04 effffffe97                     callf   $4,_run_code
                    143:  143  0000E779                                   #     }
                    144:  144  0000E779                                  L404:
                    145:  145  0000E779    6d effffffe91                        incl    _index
                    146:  146  0000E77F    11 d1                                jbr     L406
                    147:  147  0000E781                                  L405:
                    148:  148  0000E781                                   # }
                    149:  149  0000E781    40                                   ret#2
                    150:  150  0000E782                                         .set    L398,0x0
                    151:  151  0000E782                                  L400:
                    152:  152  0000E782    13 ff40                              jbr     L401
                    153:  153  0000E785                                         .data
                    154:  154  00000998 *                                       .text
                    155:  155  0000E785    00                                   .align  1
                    156:  156  0000E786                                         .globl  _tst_r
                    157:  157  0000E786                                  _tst_r:
                    158:  158  0000E786    0000                                 .word   L409
                    159:  159  0000E788                                   # 
                    160:  160  0000E788                                   # 
                    161:  161  0000E788                                   # 
                    162:  162  0000E788                                   # /*******************************************************************
                    163:  163  0000E788                                   # * DIRECT REGISTER ADDRESSING:
                    164:  164  0000E788                                   # *  instruction =  <op-code> <50> { <54> <56> }
                    165:  165  0000E788                                   # *******************************************************************/
                    166:  166  0000E788                                   # tst_r()
                    167:  167  0000E788                                   # {
                    168:  168  0000E788    13 011e                              jbr     L411
                    169:  169  0000E78B                                  L412:
                    170:  170  0000E78B                                   #     pipe_test = FALSE;
                    171:  171  0000E78B    4d effffffe7f                        clrl    _pipe_test
                    172:  172  0000E791                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    173:  173  0000E791    dd 8f00000000                        pushl   $_load_regs
                    174:  174  0000E797    fe 08 effffffe72                     callf   $8,_fill_reg_buf
                    175:  175  0000E79E                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    176:  176  0000E79E    dd 8f00000000                        pushl   $_exp_regs
                    177:  177  0000E7A4    fe 08 effffffe65                     callf   $8,_fill_reg_buf
                    178:  178  0000E7AB                                   #     if( op_code == MULL3_OP_CODE )
                    179:  179  0000E7AB    1d effffffe5f 885c                   cmpl    _op_code,$92
                    180:  180  0000E7B3    21 06                                jneq    L413
                    181:  181  0000E7B5                                   #           exp_regs[6] = 0;          /* final op #3 should = 0 */
                    182:  182  0000E7B5    4d effffffe6d                        clrl    _exp_regs+24
                    183:  183  0000E7BB                                   #     addr_mode = ADR_REG;
                    184:  184  0000E7BB                                  L413:
                    185:  185  0000E7BB    0d 0c effffffe4e                     movl    $12,_addr_mode
                    186:  186  0000E7C2                                   #     addr_code  = 0x50;              /* 1st op in registers 0/1 */
                    187:  187  0000E7C2    0d 8850 effffffe46                   movl    $80,_addr_code
                    188:  188  0000E7CA                                   #     addr_code2 = 0x54;              /* 2nd op in registers 4/5 */
                    189:  189  0000E7CA    0d 8854 effffffe3e                   movl    $84,_addr_code2
                    190:  190  0000E7D2                                   #     addr_code3 = 0x56;              /* 3rd op in registers 6   */
                    191:  191  0000E7D2    0d 8856 effffffe36                   movl    $86,_addr_code3
                    192:  192  0000E7DA                                   #     addr_size = 0;                  /* no addressing bytes    */
                    193:  193  0000E7DA    4d effffffe30                        clrl    _addr_size
                    194:  194  0000E7E0                                   #     pack_inst();                    /* pack the instr. code   */
                    195:  195  0000E7E0    fe 04 effffffe29                     callf   $4,_pack_inst
                    196:  196  0000E7E7                                   #     for( index = 0; index <= max_index; index++ ) {
                    197:  197  0000E7E7    4d effffffe23                        clrl    _index
                    198:  198  0000E7ED                                  L416:
                    199:  199  0000E7ED    1d effffffe1d effffffe18             cmpl    _index,_max_index
                    200:  200  0000E7F8    51 03 13 00ab                        jgtr    L415
                    201:  201  0000E7FD                                   #               get_current_data( adr_op1, adr_op2 ); /* addr's not used */
                    202:  202  0000E7FD    dd effffffe0d                        pushl   _adr_op2
                    203:  203  0000E803    dd effffffe07                        pushl   _adr_op1
                    204:  204  0000E809    fe 0c ef00000650                     callf   $12,_get_current_data
                    205:  205  0000E810                                   #               load_regs[0] = dbl_value_1.m; /* set the data       */
                    206:  206  0000E810    0d effffffdfa effffffdf5             movl    _dbl_value_1,_load_regs
                    207:  207  0000E81B                                   #               load_regs[1] = dbl_value_1.l;
                    208:  208  0000E81B    0d effffffdf3 effffffdee             movl    _dbl_value_1+4,_load_regs+4
                    209:  209  0000E826                                   #               load_regs[4] = dbl_value_2.m;
                    210:  210  0000E826    0d effffffde4 effffffdef             movl    _dbl_value_2,_load_regs+16
                    211:  211  0000E831                                   #               load_regs[5] = dbl_value_2.l;
                    212:  212  0000E831    0d effffffddd effffffde8             movl    _dbl_value_2+4,_load_regs+20
                    213:  213  0000E83C                                   #               if( op_code == MULL2_OP_CODE )
                    214:  214  0000E83C    1d effffffdce 884c                   cmpl    _op_code,$76
                    215:  215  0000E844    21 08                                jneq    L417
                    216:  216  0000E846                                   #                    exp_regs[4] = 0;         /* final op #2 should = 0 */
                    217:  217  0000E846    4d effffffdd4                        clrl    _exp_regs+16
                    218:  218  0000E84C                                   #               else                          /* op #2 shouldn't change */
                    219:  219  0000E84C    11 0b                                jbr     L418
                    220:  220  0000E84E                                  L417:
                    221:  221  0000E84E                                   #                    exp_regs[4]  = dbl_value_2.m;
                    222:  222  0000E84E    0d effffffdbc effffffdc7             movl    _dbl_value_2,_exp_regs+16
                    223:  223  0000E859                                  L418:
                    224:  224  0000E859                                   #               exp_regs[5]  = dbl_value_2.l;
                    225:  225  0000E859    0d effffffdb5 effffffdc0             movl    _dbl_value_2+4,_exp_regs+20
                    226:  226  0000E864                                   #               exp_regs[1]  = dbl_value_1.l; /* op #1's LSW won't change */
                    227:  227  0000E864    0d effffffdaa effffffda5             movl    _dbl_value_1+4,_exp_regs+4
                    228:  228  0000E86F                                   #               if( (op_code == CVFL_OP_CODE) || /* correct for sgl store */
                    229:  229  0000E86F                                   #                   (op_code == CVDL_OP_CODE) )
                    230:  230  0000E86F    1d effffffd9b 890086                 cmpl    _op_code,$134
                    231:  231  0000E878    31 0b                                jeql    L9999
                    232:  232  0000E87A    1d effffffd90 890087                 cmpl    _op_code,$135
                    233:  233  0000E883    21 08                                jneq    L419
                    234:  234  0000E885                                  L9999:
                    235:  235  0000E885                                   #                    exp_regs[0] = 0;         /* ovfl results are cleared */
                    236:  236  0000E885    4d effffffd85                        clrl    _exp_regs
                    237:  237  0000E88B                                   #               else
                    238:  238  0000E88B    11 0b                                jbr     L420
                    239:  239  0000E88D                                  L419:
                    240:  240  0000E88D                                   #                    exp_regs[0] = dbl_value_1.m;
                    241:  241  0000E88D    0d effffffd7d effffffd78             movl    _dbl_value_1,_exp_regs
                    242:  242  0000E898                                  L420:
                    243:  243  0000E898                                   #               run_code();                   /* execute the instruction  */
                    244:  244  0000E898    fe 04 effffffd71                     callf   $4,_run_code
                    245:  245  0000E89F                                   #     }
                    246:  246  0000E89F                                  L414:
                    247:  247  0000E89F    6d effffffd6b                        incl    _index
                    248:  248  0000E8A5    13 ff45                              jbr     L416
                    249:  249  0000E8A8                                  L415:
                    250:  250  0000E8A8                                   # }
                    251:  251  0000E8A8    40                                   ret#2
                    252:  252  0000E8A9                                         .set    L409,0x0
                    253:  253  0000E8A9                                  L411:
                    254:  254  0000E8A9    13 fedf                              jbr     L412
                    255:  255  0000E8AC                                         .data
                    256:  256  00000998 *                                       .text
                    257:  257  0000E8AC                                         .align  1
                    258:  258  0000E8AC                                         .globl  _tst_r_d
                    259:  259  0000E8AC                                  _tst_r_d:
                    260:  260  0000E8AC    0000                                 .word   L421
                    261:  261  0000E8AE                                   # 
                    262:  262  0000E8AE                                   # 
                    263:  263  0000E8AE                                   # 
                    264:  264  0000E8AE                                   # /*******************************************************************
                    265:  265  0000E8AE                                   # * REGISTER DEFERRED ADDRESSING:
                    266:  266  0000E8AE                                   # *  instruction =  <op-code> <60> { <61> <62> }
                    267:  267  0000E8AE                                   # *******************************************************************/
                    268:  268  0000E8AE                                   # tst_r_d()
                    269:  269  0000E8AE                                   # {
                    270:  270  0000E8AE    13 00c4                              jbr     L423
                    271:  271  0000E8B1                                  L424:
                    272:  272  0000E8B1                                   #     pipe_test = FALSE;
                    273:  273  0000E8B1    4d effffffd59                        clrl    _pipe_test
                    274:  274  0000E8B7                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    275:  275  0000E8B7    dd 8f00000000                        pushl   $_load_regs
                    276:  276  0000E8BD    fe 08 effffffd4c                     callf   $8,_fill_reg_buf
                    277:  277  0000E8C4                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    278:  278  0000E8C4    dd 8f00000000                        pushl   $_exp_regs
                    279:  279  0000E8CA    fe 08 effffffd3f                     callf   $8,_fill_reg_buf
                    280:  280  0000E8D1                                   #     addr_mode  = ADR_REG_DEF;
                    281:  281  0000E8D1    0d 0d effffffd38                     movl    $13,_addr_mode
                    282:  282  0000E8D8                                   #     addr_code  = 0x60;
                    283:  283  0000E8D8    0d 8860 effffffd30                   movl    $96,_addr_code
                    284:  284  0000E8E0                                   #     addr_code2 = 0x61;
                    285:  285  0000E8E0    0d 8861 effffffd28                   movl    $97,_addr_code2
                    286:  286  0000E8E8                                   #     addr_code3 = 0x62;
                    287:  287  0000E8E8    0d 8862 effffffd20                   movl    $98,_addr_code3
                    288:  288  0000E8F0                                   #     addr_size  = 0;                 /* no address byte(s)   */
                    289:  289  0000E8F0    4d effffffd1a                        clrl    _addr_size
                    290:  290  0000E8F6                                   #     load_regs[0] = (int) adr_op1;   /* get addr of op. 1    */
                    291:  291  0000E8F6    0d effffffd14 effffffd0f             movl    _adr_op1,_load_regs
                    292:  292  0000E901                                   #     load_regs[1] = (int) adr_op2;   /* get addr of op. 2    */
                    293:  293  0000E901    0d effffffd09 effffffd08             movl    _adr_op2,_load_regs+4
                    294:  294  0000E90C                                   #     load_regs[2] = (int) adr_op3;   /* get addr of op. 3    */
                    295:  295  0000E90C    0d effffffcfe effffffd01             movl    _adr_op3,_load_regs+8
                    296:  296  0000E917                                   #     exp_regs[0] = load_regs[0];
                    297:  297  0000E917    0d effffffcf3 effffffcee             movl    _load_regs,_exp_regs
                    298:  298  0000E922                                   #     exp_regs[1] = load_regs[1];
                    299:  299  0000E922    0d effffffcec effffffce7             movl    _load_regs+4,_exp_regs+4
                    300:  300  0000E92D                                   #     exp_regs[2] = load_regs[2];
                    301:  301  0000E92D    0d effffffce5 effffffce0             movl    _load_regs+8,_exp_regs+8
                    302:  302  0000E938                                   #     pack_inst();                    /* pack the instr. code */
                    303:  303  0000E938    fe 04 effffffcd1                     callf   $4,_pack_inst
                    304:  304  0000E93F                                   #     for( index = 0; index <= max_index; index++ ) {
                    305:  305  0000E93F    4d effffffccb                        clrl    _index
                    306:  306  0000E945                                  L427:
                    307:  307  0000E945    1d effffffcc5 effffffcc0             cmpl    _index,_max_index
                    308:  308  0000E950    41 22                                jgtr    L426
                    309:  309  0000E952                                   #               get_current_data( adr_op1, adr_op2 );
                    310:  310  0000E952    dd effffffcb8                        pushl   _adr_op2
                    311:  311  0000E958    dd effffffcb2                        pushl   _adr_op1
                    312:  312  0000E95E    fe 0c ef000004fb                     callf   $12,_get_current_data
                    313:  313  0000E965                                   #               run_code();                /* execute the instruction */
                    314:  314  0000E965    fe 04 effffffca4                     callf   $4,_run_code
                    315:  315  0000E96C                                   #     }
                    316:  316  0000E96C                                  L425:
                    317:  317  0000E96C    6d effffffc9e                        incl    _index
                    318:  318  0000E972    11 d1                                jbr     L427
                    319:  319  0000E974                                  L426:
                    320:  320  0000E974                                   # }
                    321:  321  0000E974    40                                   ret#2
                    322:  322  0000E975                                         .set    L421,0x0
                    323:  323  0000E975                                  L423:
                    324:  324  0000E975    13 ff39                              jbr     L424
                    325:  325  0000E978                                         .data
                    326:  326  00000998 *                                       .text
                    327:  327  0000E978                                         .align  1
                    328:  328  0000E978                                         .globl  _tst_r_ld
                    329:  329  0000E978                                  _tst_r_ld:
                    330:  330  0000E978    0000                                 .word   L428
                    331:  331  0000E97A                                   # 
                    332:  332  0000E97A                                   # 
                    333:  333  0000E97A                                   # 
                    334:  334  0000E97A                                   # 
                    335:  335  0000E97A                                   # /*******************************************************************
                    336:  336  0000E97A                                   # * REGISTER + LONGWORD DISPLACEMENT DEFERRED ADDRESSING:
                    337:  337  0000E97A                                   # *  instruction =  <op-code> <f4> <(longword &ptr_to_op_1 -r4)>
                    338:  338  0000E97A                                   # *                         { <f5> <(longword &ptr_to_op_2 -r5)> }
                    339:  339  0000E97A                                   # *                         { <f6> <(longword &ptr_to_op_3 -r6)> }
                    340:  340  0000E97A                                   # *******************************************************************/
                    341:  341  0000E97A                                   # tst_r_ld()
                    342:  342  0000E97A                                   # {
                    343:  343  0000E97A    13 00f3                              jbr     L430
                    344:  344  0000E97D                                  L431:
                    345:  345  0000E97D                                   #     pipe_test = FALSE;
                    346:  346  0000E97D    4d effffffc8d                        clrl    _pipe_test
                    347:  347  0000E983                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    348:  348  0000E983    dd 8f00000000                        pushl   $_load_regs
                    349:  349  0000E989    fe 08 effffffc80                     callf   $8,_fill_reg_buf
                    350:  350  0000E990                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    351:  351  0000E990    dd 8f00000000                        pushl   $_exp_regs
                    352:  352  0000E996    fe 08 effffffc73                     callf   $8,_fill_reg_buf
                    353:  353  0000E99D                                   #     addr_mode    = ADR_REG_L_DEF;
                    354:  354  0000E99D    0d 18 effffffc6c                     movl    $24,_addr_mode
                    355:  355  0000E9A4                                   #     addr_code    = 0xf4;            /* addr 1 is offset by r4 */
                    356:  356  0000E9A4    0d 8900f4 effffffc63                 movl    $244,_addr_code
                    357:  357  0000E9AD                                   #     addr_code2   = 0xf5;            /* addr 2 is offset by r5 */
                    358:  358  0000E9AD    0d 8900f5 effffffc5a                 movl    $245,_addr_code2
                    359:  359  0000E9B6                                   #     addr_code3   = 0xf6;            /* addr 3 is offset by r6 */
                    360:  360  0000E9B6    0d 8900f6 effffffc51                 movl    $246,_addr_code3
                    361:  361  0000E9BF                                   #     addr_size    = 4;               /* longword (4 byte) op.  */
                    362:  362  0000E9BF    0d 04 effffffc4a                     movl    $4,_addr_size
                    363:  363  0000E9C6                                   #     addr_1 = (int) adr_op1_ptr - 123;       /* set the 1st offset */
                    364:  364  0000E9C6    3c 887b effffffc42 50                subl3   $123,_adr_op1_ptr,r0
                    365:  365  0000E9CF    0d 50 effffffc3a                     movl    r0,_addr_1
                    366:  366  0000E9D6                                   #     addr_2 = (int) adr_op2_ptr - 212;       /* set the 2nd offset */
                    367:  367  0000E9D6    3c 8900d4 effffffc31 50              subl3   $212,_adr_op2_ptr,r0
                    368:  368  0000E9E0    0d 50 effffffc29                     movl    r0,_addr_2
                    369:  369  0000E9E7                                   #     addr_3 = (int) adr_op3_ptr - 256;       /* set the 3rd offset */
                    370:  370  0000E9E7    3c 890100 effffffc20 50              subl3   $256,_adr_op3_ptr,r0
                    371:  371  0000E9F1    0d 50 effffffc18                     movl    r0,_addr_3
                    372:  372  0000E9F8                                   #     pack_inst();                    /* pack the instr. code    */
                    373:  373  0000E9F8    fe 04 effffffc11                     callf   $4,_pack_inst
                    374:  374  0000E9FF                                   #     load_regs[4] = 123;             /* reg 4 = 123             */
                    375:  375  0000E9FF    0d 887b effffffc19                   movl    $123,_load_regs+16
                    376:  376  0000EA07                                   #     load_regs[5] = 212;             /* reg 5 = 212             */
                    377:  377  0000EA07    0d 8900d4 effffffc14                 movl    $212,_load_regs+20
                    378:  378  0000EA10                                   #     load_regs[6] = 256;             /* reg 5 = 212             */
                    379:  379  0000EA10    0d 890100 effffffc0f                 movl    $256,_load_regs+24
                    380:  380  0000EA19                                   #     exp_regs[4]  = load_regs[4];
                    381:  381  0000EA19    0d effffffc01 effffffbfc             movl    _load_regs+16,_exp_regs+16
                    382:  382  0000EA24                                   #     exp_regs[5]  = load_regs[5];
                    383:  383  0000EA24    0d effffffbfa effffffbf5             movl    _load_regs+20,_exp_regs+20
                    384:  384  0000EA2F                                   #     exp_regs[6]  = load_regs[6];
                    385:  385  0000EA2F    0d effffffbf3 effffffbee             movl    _load_regs+24,_exp_regs+24
                    386:  386  0000EA3A                                   #     for( index = 0; index <= max_index; index++ ) {
                    387:  387  0000EA3A    4d effffffbd0                        clrl    _index
                    388:  388  0000EA40                                  L434:
                    389:  389  0000EA40    1d effffffbca effffffbc5             cmpl    _index,_max_index
                    390:  390  0000EA4B    41 22                                jgtr    L433
                    391:  391  0000EA4D                                   #          get_current_data( adr_op1, adr_op2 );
                    392:  392  0000EA4D    dd effffffbbd                        pushl   _adr_op2
                    393:  393  0000EA53    dd effffffbb7                        pushl   _adr_op1
                    394:  394  0000EA59    fe 0c ef00000400                     callf   $12,_get_current_data
                    395:  395  0000EA60                                   #          run_code();                /* execute the instruction */
                    396:  396  0000EA60    fe 04 effffffba9                     callf   $4,_run_code
                    397:  397  0000EA67                                   #     }
                    398:  398  0000EA67                                  L432:
                    399:  399  0000EA67    6d effffffba3                        incl    _index
                    400:  400  0000EA6D    11 d1                                jbr     L434
                    401:  401  0000EA6F                                  L433:
                    402:  402  0000EA6F                                   # }
                    403:  403  0000EA6F    40                                   ret#2
                    404:  404  0000EA70                                         .set    L428,0x0
                    405:  405  0000EA70                                  L430:
                    406:  406  0000EA70    13 ff0a                              jbr     L431
                    407:  407  0000EA73                                         .data
                    408:  408  00000998 *                                       .text
                    409:  409  0000EA73    00                                   .align  1
                    410:  410  0000EA74                                         .globl  _tst_x_fpd
                    411:  411  0000EA74                                  _tst_x_fpd:
                    412:  412  0000EA74    0000                                 .word   L435
                    413:  413  0000EA76                                   # 
                    414:  414  0000EA76                                   # 
                    415:  415  0000EA76                                   # 
                    416:  416  0000EA76                                   # /*******************************************************************
                    417:  417  0000EA76                                   # * FRAME POINTER DEFERRED + LONGWORD INDEX ADDRESSING:
                    418:  418  0000EA76                                   # *  instruction =  <op-code> <44> <6d> { <45> <6d>   <46> <6d> }
                    419:  419  0000EA76                                   # * 
                    420:  420  0000EA76                                   # *  The indeces used will be either quadword indeces ( for DBL operands )
                    421:  421  0000EA76                                   # *  of longword indeces ( for SGL operands ).
                    422:  422  0000EA76                                   # *
                    423:  423  0000EA76                                   # * NOTE: 
                    424:  424  0000EA76                                   # *  dmp_op_2 is exactly 4 pages away from dmp_op_1. (200 hex quadwords)
                    425:  425  0000EA76                                   # *   IF THIS RELATIVE DISPLACEMENT IS CHANGED THEN THE R5 INDEX MUST
                    426:  426  0000EA76                                   # *   BE CHANGED IN THIS CODE!!! ( used by CMPF2, CMPD2, MULL2, MULL3 )
                    427:  427  0000EA76                                   # *  dmp_op_3 is exactly 5 pages and 4 bytes away from dmp_op_1 (501 hex
                    428:  428  0000EA76                                   # *   longwords). This is needed for MULL3.
                    429:  429  0000EA76                                   # *******************************************************************/
                    430:  430  0000EA76                                   # tst_x_fpd()
                    431:  431  0000EA76                                   # {
                    432:  432  0000EA76    13 0118                              jbr     L437
                    433:  433  0000EA79                                  L438:
                    434:  434  0000EA79                                   #     pipe_test = FALSE;
                    435:  435  0000EA79    4d effffffb91                        clrl    _pipe_test
                    436:  436  0000EA7F                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    437:  437  0000EA7F    dd 8f00000000                        pushl   $_load_regs
                    438:  438  0000EA85    fe 08 effffffb84                     callf   $8,_fill_reg_buf
                    439:  439  0000EA8C                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    440:  440  0000EA8C    dd 8f00000000                        pushl   $_exp_regs
                    441:  441  0000EA92    fe 08 effffffb77                     callf   $8,_fill_reg_buf
                    442:  442  0000EA99                                   #     addr_mode  = ADR_I_FP_DEF;
                    443:  443  0000EA99    0d 19 effffffb70                     movl    $25,_addr_mode
                    444:  444  0000EAA0                                   #     addr_code  = 0x44;              /* code for reg. 4 index  */
                    445:  445  0000EAA0    0d 8844 effffffb68                   movl    $68,_addr_code
                    446:  446  0000EAA8                                   #     addr_code2 = 0x45;              /* code for reg. 5 index  */
                    447:  447  0000EAA8    0d 8845 effffffb60                   movl    $69,_addr_code2
                    448:  448  0000EAB0                                   #     addr_code3 = 0x46;              /* code for reg. 6 index  */
                    449:  449  0000EAB0    0d 8846 effffffb58                   movl    $70,_addr_code3
                    450:  450  0000EAB8                                   #     addr_codeB = 0x6d;              /* code for FP deferred   */
                    451:  451  0000EAB8    0d 886d effffffb50                   movl    $109,_addr_codeB
                    452:  452  0000EAC0                                   #     addr_size = 0;                  /* no addr. field per se  */
                    453:  453  0000EAC0    4d effffffb4a                        clrl    _addr_size
                    454:  454  0000EAC6                                   #     pack_inst();                    /* pack the instr. code   */
                    455:  455  0000EAC6    fe 04 effffffb43                     callf   $4,_pack_inst
                    456:  456  0000EACD                                   # /*
                    457:  457  0000EACD                                   #  * set the frame pointer to '&operand_1 - 16 bytes' (2 quad-words)
                    458:  458  0000EACD                                   # */
                    459:  459  0000EACD                                   #     sgl_dummy1 = (int) adr_op1;     /* get the addr of op #1  */
                    460:  460  0000EACD    0d effffffb3d effffffb38             movl    _adr_op1,_sgl_dummy1
                    461:  461  0000EAD8                                   #     load_regs[13] = sgl_dummy1-16;  /* FP = op 1's addr - 16  */
                    462:  462  0000EAD8    3c 10 effffffb31 50                  subl3   $16,_sgl_dummy1,r0
                    463:  463  0000EAE0    0d 50 effffffb5d                     movl    r0,_load_regs+52
                    464:  464  0000EAE7                                   #     exp_regs[13] = load_regs[13];
                    465:  465  0000EAE7    0d effffffb57 effffffb52             movl    _load_regs+52,_exp_regs+52
                    466:  466  0000EAF2                                   #     if( (sgl_op) ||                 /* Should we use a longword */
                    467:  467  0000EAF2                                   #         (op_code == LDFD_OP_CODE) ||    /* or a quadword index? */
                    468:  468  0000EAF2                                   #         (op_code == CVLD_OP_CODE) ) {
                    469:  469  0000EAF2    5d effffffb18                        tstl    _sgl_op
                    470:  470  0000EAF8    21 15                                jneq    L9998
                    471:  471  0000EAFA    1d effffffb10 890097                 cmpl    _op_code,$151
                    472:  472  0000EB03    31 0a                                jeql    L9998
                    473:  473  0000EB05    1d effffffb05 8877                   cmpl    _op_code,$119
                    474:  474  0000EB0D    21 1b                                jneq    L439
                    475:  475  0000EB0F                                  L9998:
                    476:  476  0000EB0F                                   #         load_regs[4] = 4;           /* FP to op_1 (longwords) */
                    477:  477  0000EB0F    0d 04 effffffb0a                     movl    $4,_load_regs+16
                    478:  478  0000EB16                                   #         load_regs[5] = 0x404;       /* FP to op_2 (longwords) */
                    479:  479  0000EB16    0d 890404 effffffb05                 movl    $1028,_load_regs+20
                    480:  480  0000EB1F                                   #         load_regs[6] = 0x505;       /* FP to op_3 (longwords) */
                    481:  481  0000EB1F    0d 890505 effffffb00                 movl    $1285,_load_regs+24
                    482:  482  0000EB28                                   #     } else {
                    483:  483  0000EB28    11 10                                jbr     L440
                    484:  484  0000EB2A                                  L439:
                    485:  485  0000EB2A                                   #         load_regs[4] = 2;           /* FP to op_1 (quadwords) */
                    486:  486  0000EB2A    0d 02 effffffaef                     movl    $2,_load_regs+16
                    487:  487  0000EB31                                   #         load_regs[5] = 0x202;       /* FP to op_2 (quadwords) */
                    488:  488  0000EB31    0d 890202 effffffaea                 movl    $514,_load_regs+20
                    489:  489  0000EB3A                                   #     }
                    490:  490  0000EB3A                                  L440:
                    491:  491  0000EB3A                                   #     exp_regs[4] = load_regs[4];
                    492:  492  0000EB3A    0d effffffae0 effffffadb             movl    _load_regs+16,_exp_regs+16
                    493:  493  0000EB45                                   #     exp_regs[5] = load_regs[5];
                    494:  494  0000EB45    0d effffffad9 effffffad4             movl    _load_regs+20,_exp_regs+20
                    495:  495  0000EB50                                   #     exp_regs[6] = load_regs[6];
                    496:  496  0000EB50    0d effffffad2 effffffacd             movl    _load_regs+24,_exp_regs+24
                    497:  497  0000EB5B                                   #     for( index = 0; index <= max_index; index++ ) {
                    498:  498  0000EB5B    4d effffffaaf                        clrl    _index
                    499:  499  0000EB61                                  L443:
                    500:  500  0000EB61    1d effffffaa9 effffffaa4             cmpl    _index,_max_index
                    501:  501  0000EB6C    41 22                                jgtr    L442
                    502:  502  0000EB6E                                   #          get_current_data( adr_op1, adr_op2 );
                    503:  503  0000EB6E    dd effffffa9c                        pushl   _adr_op2
                    504:  504  0000EB74    dd effffffa96                        pushl   _adr_op1
                    505:  505  0000EB7A    fe 0c ef000002df                     callf   $12,_get_current_data
                    506:  506  0000EB81                                   #          run_code();                /* execute the instruction */
                    507:  507  0000EB81    fe 04 effffffa88                     callf   $4,_run_code
                    508:  508  0000EB88                                   #     }
                    509:  509  0000EB88                                  L441:
                    510:  510  0000EB88    6d effffffa82                        incl    _index
                    511:  511  0000EB8E    11 d1                                jbr     L443
                    512:  512  0000EB90                                  L442:
                    513:  513  0000EB90                                   # }
                    514:  514  0000EB90    40                                   ret#2
                    515:  515  0000EB91                                         .set    L435,0x0
                    516:  516  0000EB91                                  L437:
                    517:  517  0000EB91    13 fee5                              jbr     L438
                    518:  518  0000EB94                                         .data
                    519:  519  00000998 *                                       .text
                    520:  520  0000EB94                                         .align  1
                    521:  521  0000EB94                                         .globl  _tst_p1
                    522:  522  0000EB94                                  _tst_p1:
                    523:  523  0000EB94    0000                                 .word   L444
                    524:  524  0000EB96                                   # 
                    525:  525  0000EB96                                   # 
                    526:  526  0000EB96                                   # 
                    527:  527  0000EB96                                   # 
                    528:  528  0000EB96                                   # /*******************************************************************
                    529:  529  0000EB96                                   # * PIPELINE TEST #1 -LOAD THE ACCUMULATOR JUST BEFORE THE OPERATION
                    530:  530  0000EB96                                   # *  instruction =  <ldx> <62> <op-code> <50> { <54> <56> }
                    531:  531  0000EB96                                   # *******************************************************************/
                    532:  532  0000EB96                                   # tst_p1()
                    533:  533  0000EB96                                   # {
                    534:  534  0000EB96    13 015c                              jbr     L446
                    535:  535  0000EB99                                  L447:
                    536:  536  0000EB99                                   #     pipe_test = 1;                  /* pipeline test #1       */
                    537:  537  0000EB99    0d 01 effffffa70                     movl    $1,_pipe_test
                    538:  538  0000EBA0                                   #     if( acc_ld_size == DBL )
                    539:  539  0000EBA0    1d effffffa6a 02                     cmpl    _acc_ld_size,$2
                    540:  540  0000EBA7    21 09                                jneq    L448
                    541:  541  0000EBA9                                   #          pipe_inst1 = LDD_OP_CODE;
                    542:  542  0000EBA9    0d 07 effffffa60                     movl    $7,_pipe_inst1
                    543:  543  0000EBB0                                   #     else
                    544:  544  0000EBB0    11 07                                jbr     L449
                    545:  545  0000EBB2                                  L448:
                    546:  546  0000EBB2                                   #          pipe_inst1 = LDF_OP_CODE;
                    547:  547  0000EBB2    0d 06 effffffa57                     movl    $6,_pipe_inst1
                    548:  548  0000EBB9                                  L449:
                    549:  549  0000EBB9                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    550:  550  0000EBB9    dd 8f00000000                        pushl   $_load_regs
                    551:  551  0000EBBF    fe 08 effffffa4a                     callf   $8,_fill_reg_buf
                    552:  552  0000EBC6                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    553:  553  0000EBC6    dd 8f00000000                        pushl   $_exp_regs
                    554:  554  0000EBCC    fe 08 effffffa3d                     callf   $8,_fill_reg_buf
                    555:  555  0000EBD3                                   #     if( op_code == MULL3_OP_CODE )
                    556:  556  0000EBD3    1d effffffa37 885c                   cmpl    _op_code,$92
                    557:  557  0000EBDB    21 06                                jneq    L450
                    558:  558  0000EBDD                                   #          exp_regs[6]  = 0;          /* op 3 s/b = 0 if MULL3 */
                    559:  559  0000EBDD    4d effffffa45                        clrl    _exp_regs+24
                    560:  560  0000EBE3                                   #     addr_code_p1 = 0x62;            /* piped load is via reg 2 */
                    561:  561  0000EBE3                                  L450:
                    562:  562  0000EBE3    0d 8862 effffffa25                   movl    $98,_addr_code_p1
                    563:  563  0000EBEB                                   #     load_regs[2] = (int)&dbl_ld_acc; /* point R2 to the load data */
                    564:  564  0000EBEB    0d 8f00000000 effffffa22             movl    $_dbl_ld_acc,_load_regs+8
                    565:  565  0000EBF6                                   #     exp_regs[2] =  (int)&dbl_ld_acc;
                    566:  566  0000EBF6    0d 8f00000000 effffffa17             movl    $_dbl_ld_acc,_exp_regs+8
                    567:  567  0000EC01                                   #     addr_mode = ADR_REG;
                    568:  568  0000EC01    0d 0c effffffa08                     movl    $12,_addr_mode
                    569:  569  0000EC08                                   #     addr_code  = 0x50;              /* 1st op in registers 0/1 */
                    570:  570  0000EC08    0d 8850 effffffa00                   movl    $80,_addr_code
                    571:  571  0000EC10                                   #     addr_code2 = 0x54;              /* 2nd op in registers 4/5 */
                    572:  572  0000EC10    0d 8854 effffff9f8                   movl    $84,_addr_code2
                    573:  573  0000EC18                                   #     addr_code3 = 0x56;              /* 3rd op in register  6   */
                    574:  574  0000EC18    0d 8856 effffff9f0                   movl    $86,_addr_code3
                    575:  575  0000EC20                                   #     addr_size = 0;                  /* no addressing bytes    */
                    576:  576  0000EC20    4d effffff9ea                        clrl    _addr_size
                    577:  577  0000EC26                                   #     pack_inst();                    /* pack the instr. code   */
                    578:  578  0000EC26    fe 04 effffff9e3                     callf   $4,_pack_inst
                    579:  579  0000EC2D                                   #     for( index = 0; index <= max_index; index++ ) {
                    580:  580  0000EC2D    4d effffff9dd                        clrl    _index
                    581:  581  0000EC33                                  L453:
                    582:  582  0000EC33    1d effffff9d7 effffff9d2             cmpl    _index,_max_index
                    583:  583  0000EC3E    51 03 13 00ab                        jgtr    L452
                    584:  584  0000EC43                                   #               get_current_data( adr_op1, adr_op2 ); /* addr's not used */
                    585:  585  0000EC43    dd effffff9c7                        pushl   _adr_op2
                    586:  586  0000EC49    dd effffff9c1                        pushl   _adr_op1
                    587:  587  0000EC4F    fe 0c ef0000020a                     callf   $12,_get_current_data
                    588:  588  0000EC56                                   #               load_regs[0] = dbl_value_1.m; /* set the data       */
                    589:  589  0000EC56    0d effffff9b4 effffff9af             movl    _dbl_value_1,_load_regs
                    590:  590  0000EC61                                   #               load_regs[1] = dbl_value_1.l;
                    591:  591  0000EC61    0d effffff9ad effffff9a8             movl    _dbl_value_1+4,_load_regs+4
                    592:  592  0000EC6C                                   #               load_regs[4] = dbl_value_2.m;
                    593:  593  0000EC6C    0d effffff99e effffff9a9             movl    _dbl_value_2,_load_regs+16
                    594:  594  0000EC77                                   #               load_regs[5] = dbl_value_2.l;
                    595:  595  0000EC77    0d effffff997 effffff9a2             movl    _dbl_value_2+4,_load_regs+20
                    596:  596  0000EC82                                   #               if( op_code == MULL2_OP_CODE )
                    597:  597  0000EC82    1d effffff988 884c                   cmpl    _op_code,$76
                    598:  598  0000EC8A    21 08                                jneq    L454
                    599:  599  0000EC8C                                   #                    exp_regs[4] = 0;         /* op 2 s/b = 0 if MULL2 */
                    600:  600  0000EC8C    4d effffff98e                        clrl    _exp_regs+16
                    601:  601  0000EC92                                   #               else
                    602:  602  0000EC92    11 0b                                jbr     L455
                    603:  603  0000EC94                                  L454:
                    604:  604  0000EC94                                   #                    exp_regs[4] = dbl_value_2.m;
                    605:  605  0000EC94    0d effffff976 effffff981             movl    _dbl_value_2,_exp_regs+16
                    606:  606  0000EC9F                                  L455:
                    607:  607  0000EC9F                                   #               exp_regs[5]  = dbl_value_2.l;
                    608:  608  0000EC9F    0d effffff96f effffff97a             movl    _dbl_value_2+4,_exp_regs+20
                    609:  609  0000ECAA                                   #               exp_regs[1]  = dbl_value_1.l; /* op #1's LSW won't change */
                    610:  610  0000ECAA    0d effffff964 effffff95f             movl    _dbl_value_1+4,_exp_regs+4
                    611:  611  0000ECB5                                   #               if( (op_code == CVFL_OP_CODE) || /* correct for sgl store */
                    612:  612  0000ECB5                                   #                   (op_code == CVDL_OP_CODE) )
                    613:  613  0000ECB5    1d effffff955 890086                 cmpl    _op_code,$134
                    614:  614  0000ECBE    31 0b                                jeql    L9997
                    615:  615  0000ECC0    1d effffff94a 890087                 cmpl    _op_code,$135
                    616:  616  0000ECC9    21 08                                jneq    L456
                    617:  617  0000ECCB                                  L9997:
                    618:  618  0000ECCB                                   #                    exp_regs[0] = 0;         /* fault results are cleared */
                    619:  619  0000ECCB    4d effffff93f                        clrl    _exp_regs
                    620:  620  0000ECD1                                   #               else
                    621:  621  0000ECD1    11 0b                                jbr     L457
                    622:  622  0000ECD3                                  L456:
                    623:  623  0000ECD3                                   #                    exp_regs[0] = dbl_value_1.m;
                    624:  624  0000ECD3    0d effffff937 effffff932             movl    _dbl_value_1,_exp_regs
                    625:  625  0000ECDE                                  L457:
                    626:  626  0000ECDE                                   #               run_code();                   /* execute the instruction  */
                    627:  627  0000ECDE    fe 04 effffff92b                     callf   $4,_run_code
                    628:  628  0000ECE5                                   #     }
                    629:  629  0000ECE5                                  L451:
                    630:  630  0000ECE5    6d effffff925                        incl    _index
                    631:  631  0000ECEB    13 ff45                              jbr     L453
                    632:  632  0000ECEE                                  L452:
                    633:  633  0000ECEE                                   #     pipe_test = FALSE;
                    634:  634  0000ECEE    4d effffff91c                        clrl    _pipe_test
                    635:  635  0000ECF4                                   # }
                    636:  636  0000ECF4    40                                   ret#2
                    637:  637  0000ECF5                                         .set    L444,0x0
                    638:  638  0000ECF5                                  L446:
                    639:  639  0000ECF5    13 fea1                              jbr     L447
                    640:  640  0000ECF8                                         .data
                    641:  641  00000998 *                                       .text
                    642:  642  0000ECF8                                         .align  1
                    643:  643  0000ECF8                                         .globl  _tst_p2
                    644:  644  0000ECF8                                  _tst_p2:
                    645:  645  0000ECF8    0000                                 .word   L458
                    646:  646  0000ECFA                                   # 
                    647:  647  0000ECFA                                   # 
                    648:  648  0000ECFA                                   # 
                    649:  649  0000ECFA                                   # 
                    650:  650  0000ECFA                                   # 
                    651:  651  0000ECFA                                   # /*******************************************************************
                    652:  652  0000ECFA                                   # * PIPELINE TEST #2 -ADD TO THE ACCUMULATOR JUST BEFORE THE OPERATION
                    653:  653  0000ECFA                                   # *  instruction =  <addx> <62> <op-code> <50> { <54> <56> }
                    654:  654  0000ECFA                                   # *******************************************************************/
                    655:  655  0000ECFA                                   # tst_p2()
                    656:  656  0000ECFA                                   # {
                    657:  657  0000ECFA    13 0160                              jbr     L460
                    658:  658  0000ECFD                                  L461:
                    659:  659  0000ECFD                                   #     pipe_test = 2;                  /* pipeline test #2       */
                    660:  660  0000ECFD    0d 02 effffff90c                     movl    $2,_pipe_test
                    661:  661  0000ED04                                   #     if( acc_ld_size == DBL )
                    662:  662  0000ED04    1d effffff906 02                     cmpl    _acc_ld_size,$2
                    663:  663  0000ED0B    21 0b                                jneq    L462
                    664:  664  0000ED0D                                   #          pipe_inst1 = ADDD_OP_CODE;
                    665:  665  0000ED0D    0d 8900c7 effffff8fa                 movl    $199,_pipe_inst1
                    666:  666  0000ED16                                   #     else
                    667:  667  0000ED16    11 09                                jbr     L463
                    668:  668  0000ED18                                  L462:
                    669:  669  0000ED18                                   #          pipe_inst1 = ADDF_OP_CODE;
                    670:  670  0000ED18    0d 8900c6 effffff8ef                 movl    $198,_pipe_inst1
                    671:  671  0000ED21                                  L463:
                    672:  672  0000ED21                                   #     fill_reg_buf( load_regs );      /* set data for registers */
                    673:  673  0000ED21    dd 8f00000000                        pushl   $_load_regs
                    674:  674  0000ED27    fe 08 effffff8e2                     callf   $8,_fill_reg_buf
                    675:  675  0000ED2E                                   #     fill_reg_buf( exp_regs );       /* set data for registers */
                    676:  676  0000ED2E    dd 8f00000000                        pushl   $_exp_regs
                    677:  677  0000ED34    fe 08 effffff8d5                     callf   $8,_fill_reg_buf
                    678:  678  0000ED3B                                   #     addr_code_p1 = 0x62;            /* piped load is via reg 2 */
                    679:  679  0000ED3B    0d 8862 effffff8cd                   movl    $98,_addr_code_p1
                    680:  680  0000ED43                                   #     load_regs[2] = (int)&dbl_ld_acc; /* point R2 to the load data */
                    681:  681  0000ED43    0d 8f00000000 effffff8ca             movl    $_dbl_ld_acc,_load_regs+8
                    682:  682  0000ED4E                                   #     exp_regs[2] =  (int)&dbl_ld_acc;
                    683:  683  0000ED4E    0d 8f00000000 effffff8bf             movl    $_dbl_ld_acc,_exp_regs+8
                    684:  684  0000ED59                                   #     if( op_code == MULL3_OP_CODE )
                    685:  685  0000ED59    1d effffff8b1 885c                   cmpl    _op_code,$92
                    686:  686  0000ED61    21 06                                jneq    L464
                    687:  687  0000ED63                                   #          exp_regs[6] = 0;           /* op 3 s/b = 0 */
                    688:  688  0000ED63    4d effffff8bf                        clrl    _exp_regs+24
                    689:  689  0000ED69                                   #     addr_mode = ADR_REG;
                    690:  690  0000ED69                                  L464:
                    691:  691  0000ED69    0d 0c effffff8a0                     movl    $12,_addr_mode
                    692:  692  0000ED70                                   #     addr_code  = 0x50;              /* 1st op in registers 0/1 */
                    693:  693  0000ED70    0d 8850 effffff898                   movl    $80,_addr_code
                    694:  694  0000ED78                                   #     addr_code2 = 0x54;              /* 2nd op in registers 4/5 */
                    695:  695  0000ED78    0d 8854 effffff890                   movl    $84,_addr_code2
                    696:  696  0000ED80                                   #     addr_code3 = 0x56;              /* 3rd op in register  6   */
                    697:  697  0000ED80    0d 8856 effffff888                   movl    $86,_addr_code3
                    698:  698  0000ED88                                   #     addr_size = 0;                  /* no addressing bytes    */
                    699:  699  0000ED88    4d effffff882                        clrl    _addr_size
                    700:  700  0000ED8E                                   #     pack_inst();                    /* pack the instr. code   */
                    701:  701  0000ED8E    fe 04 effffff87b                     callf   $4,_pack_inst
                    702:  702  0000ED95                                   #     for( index = 0; index <= max_index; index++ ) {
                    703:  703  0000ED95    4d effffff875                        clrl    _index
                    704:  704  0000ED9B                                  L467:
                    705:  705  0000ED9B    1d effffff86f effffff86a             cmpl    _index,_max_index
                    706:  706  0000EDA6    51 03 13 00ab                        jgtr    L466
                    707:  707  0000EDAB                                   #               get_current_data( adr_op1, adr_op2 ); /* addr's not used */
                    708:  708  0000EDAB    dd effffff85f                        pushl   _adr_op2
                    709:  709  0000EDB1    dd effffff859                        pushl   _adr_op1
                    710:  710  0000EDB7    fe 0c ef000000a2                     callf   $12,_get_current_data
                    711:  711  0000EDBE                                   #               load_regs[0] = dbl_value_1.m; /* set the data       */
                    712:  712  0000EDBE    0d effffff84c effffff847             movl    _dbl_value_1,_load_regs
                    713:  713  0000EDC9                                   #               load_regs[1] = dbl_value_1.l;
                    714:  714  0000EDC9    0d effffff845 effffff840             movl    _dbl_value_1+4,_load_regs+4
                    715:  715  0000EDD4                                   #               load_regs[4] = dbl_value_2.m;
                    716:  716  0000EDD4    0d effffff836 effffff841             movl    _dbl_value_2,_load_regs+16
                    717:  717  0000EDDF                                   #               load_regs[5] = dbl_value_2.l;
                    718:  718  0000EDDF    0d effffff82f effffff83a             movl    _dbl_value_2+4,_load_regs+20
                    719:  719  0000EDEA                                   #               if( op_code == MULL2_OP_CODE )
                    720:  720  0000EDEA    1d effffff820 884c                   cmpl    _op_code,$76
                    721:  721  0000EDF2    21 08                                jneq    L468
                    722:  722  0000EDF4                                   #                    exp_regs[4] = 0;         /* op 2 s/b = 0 */
                    723:  723  0000EDF4    4d effffff826                        clrl    _exp_regs+16
                    724:  724  0000EDFA                                   #               else
                    725:  725  0000EDFA    11 0b                                jbr     L469
                    726:  726  0000EDFC                                  L468:
                    727:  727  0000EDFC                                   #                    exp_regs[4] = dbl_value_2.m;  /* op #2 s/n change */
                    728:  728  0000EDFC    0d effffff80e effffff819             movl    _dbl_value_2,_exp_regs+16
                    729:  729  0000EE07                                  L469:
                    730:  730  0000EE07                                   #               exp_regs[5]  = dbl_value_2.l;
                    731:  731  0000EE07    0d effffff807 effffff812             movl    _dbl_value_2+4,_exp_regs+20
                    732:  732  0000EE12                                   #               exp_regs[1]  = dbl_value_1.l; /* op #1's LSW won't change */
                    733:  733  0000EE12    0d effffff7fc effffff7f7             movl    _dbl_value_1+4,_exp_regs+4
                    734:  734  0000EE1D                                   #               if( (op_code == CVFL_OP_CODE) || /* correct for sgl store */
                    735:  735  0000EE1D                                   #                   (op_code == CVDL_OP_CODE) )
                    736:  736  0000EE1D    1d effffff7ed 890086                 cmpl    _op_code,$134
                    737:  737  0000EE26    31 0b                                jeql    L9996
                    738:  738  0000EE28    1d effffff7e2 890087                 cmpl    _op_code,$135
                    739:  739  0000EE31    21 08                                jneq    L470
                    740:  740  0000EE33                                  L9996:
                    741:  741  0000EE33                                   #                    exp_regs[0] = 0;         /* fault results are cleared */
                    742:  742  0000EE33    4d effffff7d7                        clrl    _exp_regs
                    743:  743  0000EE39                                   #               else
                    744:  744  0000EE39    11 0b                                jbr     L471
                    745:  745  0000EE3B                                  L470:
                    746:  746  0000EE3B                                   #                    exp_regs[0] = dbl_value_1.m;
                    747:  747  0000EE3B    0d effffff7cf effffff7ca             movl    _dbl_value_1,_exp_regs
                    748:  748  0000EE46                                  L471:
                    749:  749  0000EE46                                   #               run_code();                   /* execute the instruction  */
                    750:  750  0000EE46    fe 04 effffff7c3                     callf   $4,_run_code
                    751:  751  0000EE4D                                   #     }
                    752:  752  0000EE4D                                  L465:
                    753:  753  0000EE4D    6d effffff7bd                        incl    _index
                    754:  754  0000EE53    13 ff45                              jbr     L467
                    755:  755  0000EE56                                  L466:
                    756:  756  0000EE56                                   #     pipe_test = FALSE;
                    757:  757  0000EE56    4d effffff7b4                        clrl    _pipe_test
                    758:  758  0000EE5C                                   # }
                    759:  759  0000EE5C    40                                   ret#2
                    760:  760  0000EE5D                                         .set    L458,0x0
                    761:  761  0000EE5D                                  L460:
                    762:  762  0000EE5D    13 fe9d                              jbr     L461
                    763:  763  0000EE60                                         .data
                    764:  764  00000998 *                                       .text
                    765:  765  0000EE60                                         .align  1
                    766:  766  0000EE60                                         .globl  _get_current_data
                    767:  767  0000EE60                                  _get_current_data:
                    768:  768  0000EE60    0000                                 .word   L472
                    769:  769  0000EE62                                   # 
                    770:  770  0000EE62                                   # 
                    771:  771  0000EE62                                   # 
                    772:  772  0000EE62                                   # 
                    773:  773  0000EE62                                   # 
                    774:  774  0000EE62                                   # 
                    775:  775  0000EE62                                   # 
                    776:  776  0000EE62                                   # /***************************************************************************
                    777:  777  0000EE62                                   # *           Get the Current Data Values
                    778:  778  0000EE62                                   # *
                    779:  779  0000EE62                                   # * In most cases the first operand is loaded into the accumulator.
                    780:  780  0000EE62                                   # * If we're testing Reserved Operands then, unless it's LOGF, we'd better not
                    781:  781  0000EE62                                   # * load the Accumulator with the Resop before executing the instruction.
                    782:  782  0000EE62                                   # * Ergo and towit, we'll use a dummy Acc. for those cases. 
                    783:  783  0000EE62                                   # * The 4 instructions currently tested that have 2 or more operands are:
                    784:  784  0000EE62                                   # * CMPF2, CMPD2, MULL2, MULL3. None of these accesses the accumulator so we'll 
                    785:  785  0000EE62                                   # * use dummy accumulator data for these too.
                    786:  786  0000EE62                                   # ***************************************************************************/
                    787:  787  0000EE62                                   # get_current_data( dptr_1, dptr_2 )
                    788:  788  0000EE62                                   # struct u64 *dptr_1;                         /* pointer to 1st operand */
                    789:  789  0000EE62                                   # struct u64 *dptr_2;                         /* pointer to 2nd operand */
                    790:  790  0000EE62                                   # {
                    791:  791  0000EE62    13 00fa                              jbr     L474
                    792:  792  0000EE65                                  L475:
                    793:  793  0000EE65                                   #     if( (no_ops >= 2) ||
                    794:  794  0000EE65                                   #         ((test_event == RESOP_CODE) && (op_code != LOGF_OP_CODE)) ) {
                    795:  795  0000EE65    1d effffff7a5 02                     cmpl    _no_ops,$2
                    796:  796  0000EE6C    81 12                                jgeq    L9995
                    797:  797  0000EE6E    1d effffff79c 2d                     cmpl    _test_event,$45
                    798:  798  0000EE75    21 6a                                jneq    L476
                    799:  799  0000EE77    1d effffff793 35                     cmpl    _op_code,$53
                    800:  800  0000EE7E    31 61                                jeql    L476
                    801:  801  0000EE80                                  L9995:
                    802:  802  0000EE80                                   #          dbl_ld_acc   = acc_data[ index ];
                    803:  803  0000EE80    48 03 effffff789 50                  shll    $3,_index,r0
                    804:  804  0000EE88    0c 8f00000000 50                     addl2   $_acc_data,r0
                    805:  805  0000EE8F    0d a004 effffff77d                   movl    4(r0),_dbl_ld_acc+4
                    806:  806  0000EE97    0d 60 effffff772                     movl    (r0),_dbl_ld_acc
                    807:  807  0000EE9E                                   #          dbl_value_1  = data_ptr[ index ].op_1;
                    808:  808  0000EE9E    48 04 effffff76b 50                  shll    $4,_index,r0
                    809:  809  0000EEA6    1c 50 effffff763 50                  addl3   r0,_data_ptr,r0
                    810:  810  0000EEAE    0d a004 effffff75e                   movl    4(r0),_dbl_value_1+4
                    811:  811  0000EEB6    0d 60 effffff753                     movl    (r0),_dbl_value_1
                    812:  812  0000EEBD                                   #          dbl_value_2  = data_ptr[ index ].op_2;
                    813:  813  0000EEBD    48 04 effffff74c 50                  shll    $4,_index,r0
                    814:  814  0000EEC5    1c 50 effffff744 50                  addl3   r0,_data_ptr,r0
                    815:  815  0000EECD    0c 08 50                             addl2   $8,r0
                    816:  816  0000EED0    0d a004 effffff73c                   movl    4(r0),_dbl_value_2+4
                    817:  817  0000EED8    0d 60 effffff731                     movl    (r0),_dbl_value_2
                    818:  818  0000EEDF                                   #     } else {
                    819:  819  0000EEDF    11 57                                jbr     L477
                    820:  820  0000EEE1                                  L476:
                    821:  821  0000EEE1                                   #          dbl_ld_acc   = data_ptr[ index ].op_1;
                    822:  822  0000EEE1    48 04 effffff728 50                  shll    $4,_index,r0
                    823:  823  0000EEE9    1c 50 effffff720 50                  addl3   r0,_data_ptr,r0
                    824:  824  0000EEF1    0d a004 effffff71b                   movl    4(r0),_dbl_ld_acc+4
                    825:  825  0000EEF9    0d 60 effffff710                     movl    (r0),_dbl_ld_acc
                    826:  826  0000EF00                                   #          dbl_value_1  = data_ptr[ index ].op_2;
                    827:  827  0000EF00    48 04 effffff709 50                  shll    $4,_index,r0
                    828:  828  0000EF08    1c 50 effffff701 50                  addl3   r0,_data_ptr,r0
                    829:  829  0000EF10    0c 08 50                             addl2   $8,r0
                    830:  830  0000EF13    0d a004 effffff6f9                   movl    4(r0),_dbl_value_1+4
                    831:  831  0000EF1B    0d 60 effffff6ee                     movl    (r0),_dbl_value_1
                    832:  832  0000EF22                                   #          dbl_value_2  = dbl_value_1;
                    833:  833  0000EF22    0d effffff6ec effffff6e7             movl    _dbl_value_1+4,_dbl_value_2+4
                    834:  834  0000EF2D    0d effffff6dd effffff6d8             movl    _dbl_value_1,_dbl_value_2
                    835:  835  0000EF38                                   #     }
                    836:  836  0000EF38                                  L477:
                    837:  837  0000EF38                                   #     *dptr_1 = dbl_value_1;                  /* set 1st operand */
                    838:  838  0000EF38    0d 8f00000000 50                     movl    $_dbl_value_1,r0
                    839:  839  0000EF3F    0d ad04 51                           movl    4(fp),r1
                    840:  840  0000EF43    0d a004 a104                         movl    4(r0),4(r1)
                    841:  841  0000EF48    0d 60 61                             movl    (r0),(r1)
                    842:  842  0000EF4B                                   #     *dptr_2 = dbl_value_2;                  /* set 2nd operand */
                    843:  843  0000EF4B    0d 8f00000000 50                     movl    $_dbl_value_2,r0
                    844:  844  0000EF52    0d ad08 51                           movl    8(fp),r1
                    845:  845  0000EF56    0d a004 a104                         movl    4(r0),4(r1)
                    846:  846  0000EF5B    0d 60 61                             movl    (r0),(r1)
                    847:  847  0000EF5E                                   # }
                    848:  848  0000EF5E    40                                   ret#2
                    849:  849  0000EF5F                                         .set    L472,0x0
                    850:  850  0000EF5F                                  L474:
                    851:  851  0000EF5F    13 ff03                              jbr     L475
                    852:  852  0000EF62                                         .data
                    853:  853  00000998 *                                       .text
                    854:  854  0000EF62                                         .align  1
                    855:  855  0000EF62                                         .globl  _set_load_flag
                    856:  856  0000EF62                                  _set_load_flag:
                    857:  857  0000EF62    0000                                 .word   L478
                    858:  858  0000EF64                                   # 
                    859:  859  0000EF64                                   # 
                    860:  860  0000EF64                                   # 
                    861:  861  0000EF64                                   # 
                    862:  862  0000EF64                                   # /*
                    863:  863  0000EF64                                   #  ***************************************************************************
                    864:  864  0000EF64                                   #  *
                    865:  865  0000EF64                                   #  *  Set or reset the LOAD_ACCUMULATOR flag
                    866:  866  0000EF64                                   #  *
                    867:  867  0000EF64                                   #  *  If the current instruction loads the accumulator then set the flag.
                    868:  868  0000EF64                                   #  ***************************************************************************
                    869:  869  0000EF64                                   # */
                    870:  870  0000EF64                                   # set_load_flag()
                    871:  871  0000EF64                                   # {
                    872:  872  0000EF64    11 3f                                jbr     L480
                    873:  873  0000EF66                                  L481:
                    874:  874  0000EF66                                   #     if( (op_code == LDF_OP_CODE)  ||        /* load SGL Acc. */
                    875:  875  0000EF66                                   #         (op_code == LNF_OP_CODE)  ||        /* load / negate SGL Acc. */
                    876:  876  0000EF66                                   #         (op_code == LDD_OP_CODE)  ||        /* load SGL Acc. */
                    877:  877  0000EF66                                   #         (op_code == LND_OP_CODE)  ||        /* load / negate SGL Acc. */
                    878:  878  0000EF66                                   #         (op_code == LDFD_OP_CODE) )         /* load SGL to DBL Acc. */
                    879:  879  0000EF66    1d effffff6a4 06                     cmpl    _op_code,$6
                    880:  880  0000EF6D    31 26                                jeql    L9994
                    881:  881  0000EF6F    1d effffff69b 16                     cmpl    _op_code,$22
                    882:  882  0000EF76    31 1d                                jeql    L9994
                    883:  883  0000EF78    1d effffff692 07                     cmpl    _op_code,$7
                    884:  884  0000EF7F    31 14                                jeql    L9994
                    885:  885  0000EF81    1d effffff689 17                     cmpl    _op_code,$23
                    886:  886  0000EF88    31 0b                                jeql    L9994
                    887:  887  0000EF8A    1d effffff680 890097                 cmpl    _op_code,$151
                    888:  888  0000EF93    21 09                                jneq    L482
                    889:  889  0000EF95                                  L9994:
                    890:  890  0000EF95                                   #          load_type_inst = TRUE;
                    891:  891  0000EF95    0d 01 effffff674                     movl    $1,_load_type_inst
                    892:  892  0000EF9C                                   #     else
                    893:  893  0000EF9C    11 06                                jbr     L483
                    894:  894  0000EF9E                                  L482:
                    895:  895  0000EF9E                                   #          load_type_inst = FALSE;
                    896:  896  0000EF9E    4d effffff66c                        clrl    _load_type_inst
                    897:  897  0000EFA4                                  L483:
                    898:  898  0000EFA4                                   # }
                    899:  899  0000EFA4    40                                   ret#2
                    900:  900  0000EFA5                                         .set    L478,0x0
                    901:  901  0000EFA5                                  L480:
                    902:  902  0000EFA5    11 bf                                jbr     L481
                    903:  903  0000EFA7                                         .data
                    904:  904  00000998 *                                 # 
                    905:  904  00000998 *                                 # 

unix.superglobalmegacorp.com

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