Annotation of cci/d/macro4/pipe10.lst, revision 1.1.1.1

1.1       root        1:    1  00000000                                  LL0:
                      2:    2  00000000                                         .data
                      3:    3  00000278 *                                       .text
                      4:    4  00000000                                         .align  1
                      5:    5  00000000                                         .globl  _pipe_10
                      6:    6  00000000                                  _pipe_10:
                      7:    7  0002CCDC    0000                                 .word   L215
                      8:    8  0002CCDE                                   # #include "fpp_defs.h"
                      9:    9  0002CCDE                                   # 
                     10:   10  0002CCDE                                   # 
                     11:   11  0002CCDE                                   # /*****************************************************************************
                     12:   12  0002CCDE                                   # *
                     13:   13  0002CCDE                                   # *           PIPELINE TEST #10 
                     14:   14  0002CCDE                                   # *
                     15:   15  0002CCDE                                   # *   LDF(op1), MULF(op2), STF op3, SUBF op3, STF
                     16:   16  0002CCDE                                   # *
                     17:   17  0002CCDE                                   # *  -where the operands are the fmacro1 MULF data patterns. The SUBF operand
                     18:   18  0002CCDE                                   # *   is the stored result of the MULF.
                     19:   19  0002CCDE                                   # *  -If the 1st STF isn't completed before the SUBF data is fetched then we
                     20:   20  0002CCDE                                   # *   won't get a final accumulator of zero.
                     21:   21  0002CCDE                                   # *****************************************************************************/
                     22:   22  0002CCDE                                   # pipe_10()
                     23:   23  0002CCDE                                   # {
                     24:   24  0002CCDE    13 00ee                              jbr     L217
                     25:   25  0002CCE1                                  L218:
                     26:   26  0002CCE1                                   #     asm(".globl _pipeline_10_t");
                     27:   27  0002CCE1                                  .globl _pipeline_10_t
                     28:   28  0002CCE1                                   #     asm("_pipeline_10_t:");
                     29:   29  0002CCE1                                  _pipeline_10_t:
                     30:   30  0002CCE1                                   #     if( (cycle == 1) && (prt_hdrs) )        /* print headers on 1st cycle */
                     31:   31  0002CCE1    1d effffffff5 01                     cmpl    _cycle,$1
                     32:   32  0002CCE8    21 15                                jneq    L219
                     33:   33  0002CCEA    5d efffffffec                        tstl    _prt_hdrs
                     34:   34  0002CCF0    31 0d                                jeql    L219
                     35:   35  0002CCF2                                   #        writes(" PIPE_10");
                     36:   36  0002CCF2                                         .data   1
                     37:   37  00000278 *                                L221:
                     38:   38  00000278 *  20504950455F313000                   .ascii  " PIPE_10\0"
                     39:   39  00000281 *                                       .text
                     40:   40  0002CCF2    dd 8f00000278                        pushl   $L221
                     41:   41  0002CCF8    fe 08 efffffffdd                     callf   $8,_writes
                     42:   42  0002CCFF                                   #     force_loop = FALSE;                     /* clear force_loop flag */
                     43:   43  0002CCFF                                  L219:
                     44:   44  0002CCFF    4d efffffffd7                        clrl    _force_loop
                     45:   45  0002CD05                                   #     for( index = 0; index <= max_mulf_1_index; index++ )
                     46:   46  0002CD05    4d efffffffd1                        clrl    _index
                     47:   47  0002CD0B                                  L224:
                     48:   48  0002CD0B    1d efffffffcb efffffffc6             cmpl    _index,_max_mulf_1_index
                     49:   49  0002CD16    51 03 13 00ad                        jgtr    L223
                     50:   50  0002CD1B                                   #     {
                     51:   51  0002CD1B                                   #           sgl_value_1  = mulf_1_data[index].op_1;   /* get the data    */
                     52:   52  0002CD1B    5c 0c efffffffba 50                  mull3   $12,_index,r0
                     53:   53  0002CD23    0d e000000000 efffffffae             movl    _mulf_1_data(r0),_sgl_value_1
                     54:   54  0002CD2E                                   #           sgl_value_2  = mulf_1_data[index].op_2;   /*   operands      */
                     55:   55  0002CD2E    5c 0c efffffffa7 50                  mull3   $12,_index,r0
                     56:   56  0002CD36    0d e000000004 efffffff9b             movl    _mulf_1_data+4(r0),_sgl_value_2
                     57:   57  0002CD41                                   #           sgl_expected = mulf_1_data[index].exp; 
                     58:   58  0002CD41    5c 0c efffffff94 50                  mull3   $12,_index,r0
                     59:   59  0002CD49    0d e000000008 efffffff88             movl    _mulf_1_data+8(r0),_sgl_expected
                     60:   60  0002CD54                                   # /*
                     61:   61  0002CD54                                   #  *  This is the start of the LOOP ON ERROR section
                     62:   62  0002CD54                                   # */
                     63:   63  0002CD54                                   #           asm("_pipe10_1_lp:");
                     64:   64  0002CD54                                  _pipe10_1_lp:
                     65:   65  0002CD54                                   #           asm("ldf _sgl_value_1");          /* get the 1st operand     */
                     66:   66  0002CD54    06 efffffff82                 ldf _sgl_value_1
                     67:   67  0002CD5A                                   #           asm("mulf _sgl_value_2");         /* multiply by the 2nd op. */
                     68:   68  0002CD5A    e6 efffffff7c                 mulf _sgl_value_2
                     69:   69  0002CD60                                   #           asm("stf _sgl_value_3");          /* save the MULF result    */
                     70:   70  0002CD60    26 efffffff76                 stf _sgl_value_3
                     71:   71  0002CD66                                   #           asm("subf _sgl_value_3");         /* and subtract it again   */
                     72:   72  0002CD66    d6 efffffff70                 subf _sgl_value_3
                     73:   73  0002CD6C                                   #           asm("stf _sgl_st_acc");           /* save the final result   */
                     74:   74  0002CD6C    26 efffffff6a                 stf _sgl_st_acc
                     75:   75  0002CD72                                   #           if( force_loop ) 
                     76:   76  0002CD72    5d efffffff64                        tstl    _force_loop
                     77:   77  0002CD78    31 02                                jeql    L225
                     78:   78  0002CD7A                                   #                 asm("brb _pipe10_1_lp");;   /* loop on the error */
                     79:   79  0002CD7A    11 d8                         brb _pipe10_1_lp
                     80:   80  0002CD7C                                  L225:
                     81:   81  0002CD7C                                   # /*
                     82:   82  0002CD7C                                   #  *   Verify the results
                     83:   83  0002CD7C                                   # */
                     84:   84  0002CD7C                                   #           if( sgl_st_acc ) {                /* the Acc s/b cleared */
                     85:   85  0002CD7C    5d efffffff5a                        tstl    _sgl_st_acc
                     86:   86  0002CD82    31 3b                                jeql    L226
                     87:   87  0002CD84                                   #                 errcnt++;                   /* bump the error count    */
                     88:   88  0002CD84    6d efffffff52                        incl    _errcnt
                     89:   89  0002CD8A                                   #                 if ( prt_error ) 
                     90:   90  0002CD8A    5d efffffff4c                        tstl    _prt_error
                     91:   91  0002CD90    31 07                                jeql    L227
                     92:   92  0002CD92                                   #                       pipe10_print();       /* print the error mesage  */
                     93:   93  0002CD92    fe 04 ef00000039                     callf   $4,_pipe10_print
                     94:   94  0002CD99                                   #                 if ( halt_flg )
                     95:   95  0002CD99                                  L227:
                     96:   96  0002CD99    5d efffffff3d                        tstl    _halt_flg
                     97:   97  0002CD9F    31 09                                jeql    L229
                     98:   98  0002CDA1                                   #                       pipe10_halt( 1 );     /* halt on the error       */
                     99:   99  0002CDA1    dd 01                                pushl   $1
                    100:  100  0002CDA3    fe 08 ef00000156                     callf   $8,_pipe10_halt
                    101:  101  0002CDAA                                   #                 if ( loop_on_err ) {
                    102:  102  0002CDAA                                  L229:
                    103:  103  0002CDAA    5d efffffff2c                        tstl    _loop_on_err
                    104:  104  0002CDB0    31 0d                                jeql    L231
                    105:  105  0002CDB2                                   #                       force_loop = TRUE;
                    106:  106  0002CDB2    0d 01 efffffff23                     movl    $1,_force_loop
                    107:  107  0002CDB9                                   #                       asm("jmp _pipe10_1_lp");;   
                    108:  108  0002CDB9    71 efffffff95                 jmp _pipe10_1_lp
                    109:  109  0002CDBF                                   #                 }
                    110:  110  0002CDBF                                   #           }
                    111:  111  0002CDBF                                  L231:
                    112:  112  0002CDBF                                   #     } 
                    113:  113  0002CDBF                                  L226:
                    114:  114  0002CDBF                                  L222:
                    115:  115  0002CDBF    6d efffffff17                        incl    _index
                    116:  116  0002CDC5    13 ff43                              jbr     L224
                    117:  117  0002CDC8                                  L223:
                    118:  118  0002CDC8                                   #     asm("jmp *return");             /* return to the test monitor       */
                    119:  119  0002CDC8    71 ffffffff0e                 jmp *return
                    120:  120  0002CDCE                                   # }
                    121:  121  0002CDCE    40                                   ret#2
                    122:  122  0002CDCF                                         .set    L215,0x0
                    123:  123  0002CDCF                                  L217:
                    124:  124  0002CDCF    13 ff0f                              jbr     L218
                    125:  125  0002CDD2                                         .data
                    126:  126  00000278 *                                       .text
                    127:  127  0002CDD2                                         .align  1
                    128:  128  0002CDD2                                         .globl  _pipe10_print
                    129:  129  0002CDD2                                  _pipe10_print:
                    130:  130  0002CDD2    0000                                 .word   L232
                    131:  131  0002CDD4                                   # 
                    132:  132  0002CDD4                                   # 
                    133:  133  0002CDD4                                   # 
                    134:  134  0002CDD4                                   # 
                    135:  135  0002CDD4                                   # /*
                    136:  136  0002CDD4                                   #  **************************************************************************
                    137:  137  0002CDD4                                   #  *
                    138:  138  0002CDD4                                   #  *          print an error message of the form
                    139:  139  0002CDD4                                   #  *
                    140:  140  0002CDD4                                   #  * cycle: xx  Test xx, Error subtracting the stored data (op3),  index = xx
                    141:  141  0002CDD4                                   #  * test sequence = LDF(op1), MULF(op2), STF(op3), SUBF(op3), STF
                    142:  142  0002CDD4                                   #  * operand 1 = xxxxxxxx,     final Acc = xxxxxxxx,   data index = dd
                    143:  143  0002CDD4                                   #  * operand 2 = xxxxxxxx,  expected Acc = xxxxxxxx
                    144:  144  0002CDD4                                   #  * operand 3 = xxxxxxxx,  expected op3 = xxxxxxxx
                    145:  145  0002CDD4                                   # **************************************************************************/
                    146:  146  0002CDD4                                   # pipe10_print()
                    147:  147  0002CDD4                                   # {
                    148:  148  0002CDD4    13 0125                              jbr     L234
                    149:  149  0002CDD7                                  L235:
                    150:  150  0002CDD7                                   #     writes(" \n");          /* start a new print line   */
                    151:  151  0002CDD7                                         .data   1
                    152:  152  00000281 *                                L236:
                    153:  153  00000281 *  200A00                               .ascii  " \12\0"
                    154:  154  00000284 *                                       .text
                    155:  155  0002CDD7    dd 8f00000281                        pushl   $L236
                    156:  156  0002CDDD    fe 08 effffffef8                     callf   $8,_writes
                    157:  157  0002CDE4                                   #     writes("cycle: ");
                    158:  158  0002CDE4                                         .data   1
                    159:  159  00000284 *                                L237:
                    160:  160  00000284 *  6379636C653A2000                     .ascii  "cycle: \0"
                    161:  161  0000028c *                                       .text
                    162:  162  0002CDE4    dd 8f00000284                        pushl   $L237
                    163:  163  0002CDEA    fe 08 effffffeeb                     callf   $8,_writes
                    164:  164  0002CDF1                                   #     writed( cycle );
                    165:  165  0002CDF1    dd effffffee5                        pushl   _cycle
                    166:  166  0002CDF7    fe 08 effffffede                     callf   $8,_writed
                    167:  167  0002CDFE                                   #     writes("  Test ");
                    168:  168  0002CDFE                                         .data   1
                    169:  169  0000028c *                                L239:
                    170:  170  0000028c *  2020546573742000                     .ascii  "  Test \0"
                    171:  171  00000294 *                                       .text
                    172:  172  0002CDFE    dd 8f0000028c                        pushl   $L239
                    173:  173  0002CE04    fe 08 effffffed1                     callf   $8,_writes
                    174:  174  0002CE0B                                   #     writed( test_no );
                    175:  175  0002CE0B    dd effffffecb                        pushl   _test_no
                    176:  176  0002CE11    fe 08 effffffec4                     callf   $8,_writed
                    177:  177  0002CE18                                   #     writes("   (Pipe 10), error\n");
                    178:  178  0002CE18                                         .data   1
                    179:  179  00000294 *                                L240:
                    180:  180  00000294 *  2020202850697065203130292            .ascii  "   (Pipe 10), error\12\0"
                    181:                   C206572726F720A00
                    182:  181  000002a9 *                                       .text
                    183:  182  0002CE18    dd 8f00000294                        pushl   $L240
                    184:  183  0002CE1E    fe 08 effffffeb7                     callf   $8,_writes
                    185:  184  0002CE25                                   #     writes(" LDF(op1), MULF(op2), STF(op3), SUBF(op3), STF\n");
                    186:  185  0002CE25                                         .data   1
                    187:  186  000002a9 *                                L241:
                    188:  187  000002a9 *  204C4446286F7031292C204D5            .ascii  " LDF(op1), MULF(op2), STF(op3), SUBF(op3), STF\12\0"
                    189:                   54C46286F7032292C20535446
                    190:                   286F7033292C2053554246286
                    191:                   F7033292C205354460A00
                    192:  188  000002d9 *                                       .text
                    193:  189  0002CE25    dd 8f000002a9                        pushl   $L241
                    194:  190  0002CE2B    fe 08 effffffeaa                     callf   $8,_writes
                    195:  191  0002CE32                                   #     writes("operand 1 = ");
                    196:  192  0002CE32                                         .data   1
                    197:  193  000002d9 *                                L242:
                    198:  194  000002d9 *  6F706572616E642031203D200            .ascii  "operand 1 = \0"
                    199:                   0
                    200:  195  000002e6 *                                       .text
                    201:  196  0002CE32    dd 8f000002d9                        pushl   $L242
                    202:  197  0002CE38    fe 08 effffffe9d                     callf   $8,_writes
                    203:  198  0002CE3F                                   #     write32h( sgl_value_1 );
                    204:  199  0002CE3F    dd effffffe97                        pushl   _sgl_value_1
                    205:  200  0002CE45    fe 08 effffffe90                     callf   $8,_write32h
                    206:  201  0002CE4C                                   #     writes(",     final Acc = ");
                    207:  202  0002CE4C                                         .data   1
                    208:  203  000002e6 *                                L244:
                    209:  204  000002e6 *  2C202020202066696E616C204            .ascii  ",     final Acc = \0"
                    210:                   16363203D2000
                    211:  205  000002f9 *                                       .text
                    212:  206  0002CE4C    dd 8f000002e6                        pushl   $L244
                    213:  207  0002CE52    fe 08 effffffe83                     callf   $8,_writes
                    214:  208  0002CE59                                   #     write32h( sgl_st_acc );
                    215:  209  0002CE59    dd effffffe7d                        pushl   _sgl_st_acc
                    216:  210  0002CE5F    fe 08 effffffe76                     callf   $8,_write32h
                    217:  211  0002CE66                                   #     writes(",   data index = ");
                    218:  212  0002CE66                                         .data   1
                    219:  213  000002f9 *                                L245:
                    220:  214  000002f9 *  2C2020206461746120696E646            .ascii  ",   data index = \0"
                    221:                   578203D2000
                    222:  215  0000030b *                                       .text
                    223:  216  0002CE66    dd 8f000002f9                        pushl   $L245
                    224:  217  0002CE6C    fe 08 effffffe69                     callf   $8,_writes
                    225:  218  0002CE73                                   #     writed( index );
                    226:  219  0002CE73    dd effffffe63                        pushl   _index
                    227:  220  0002CE79    fe 08 effffffe5c                     callf   $8,_writed
                    228:  221  0002CE80                                   #     writec('\n');
                    229:  222  0002CE80    dd 0a                                pushl   $10
                    230:  223  0002CE82    fe 08 effffffe53                     callf   $8,_writec
                    231:  224  0002CE89                                   #     writes("operand 2 = ");
                    232:  225  0002CE89                                         .data   1
                    233:  226  0000030b *                                L247:
                    234:  227  0000030b *  6F706572616E642032203D200            .ascii  "operand 2 = \0"
                    235:                   0
                    236:  228  00000318 *                                       .text
                    237:  229  0002CE89    dd 8f0000030b                        pushl   $L247
                    238:  230  0002CE8F    fe 08 effffffe46                     callf   $8,_writes
                    239:  231  0002CE96                                   #     write32h( sgl_value_2 );
                    240:  232  0002CE96    dd effffffe40                        pushl   _sgl_value_2
                    241:  233  0002CE9C    fe 08 effffffe39                     callf   $8,_write32h
                    242:  234  0002CEA3                                   #     writes(",  expected Acc = ");
                    243:  235  0002CEA3                                         .data   1
                    244:  236  00000318 *                                L248:
                    245:  237  00000318 *  2C20206578706563746564204            .ascii  ",  expected Acc = \0"
                    246:                   16363203D2000
                    247:  238  0000032b *                                       .text
                    248:  239  0002CEA3    dd 8f00000318                        pushl   $L248
                    249:  240  0002CEA9    fe 08 effffffe2c                     callf   $8,_writes
                    250:  241  0002CEB0                                   #     write32h( 0 );
                    251:  242  0002CEB0    dd 00                                pushl   $0
                    252:  243  0002CEB2    fe 08 effffffe23                     callf   $8,_write32h
                    253:  244  0002CEB9                                   #     writec('\n');
                    254:  245  0002CEB9    dd 0a                                pushl   $10
                    255:  246  0002CEBB    fe 08 effffffe1a                     callf   $8,_writec
                    256:  247  0002CEC2                                   #     writes("operand 3 = ");
                    257:  248  0002CEC2                                         .data   1
                    258:  249  0000032b *                                L249:
                    259:  250  0000032b *  6F706572616E642033203D200            .ascii  "operand 3 = \0"
                    260:                   0
                    261:  251  00000338 *                                       .text
                    262:  252  0002CEC2    dd 8f0000032b                        pushl   $L249
                    263:  253  0002CEC8    fe 08 effffffe0d                     callf   $8,_writes
                    264:  254  0002CECF                                   #     write32h( sgl_value_3 );
                    265:  255  0002CECF    dd effffffe07                        pushl   _sgl_value_3
                    266:  256  0002CED5    fe 08 effffffe00                     callf   $8,_write32h
                    267:  257  0002CEDC                                   #     writes(",  expected op3 = ");
                    268:  258  0002CEDC                                         .data   1
                    269:  259  00000338 *                                L250:
                    270:  260  00000338 *  2C20206578706563746564206            .ascii  ",  expected op3 = \0"
                    271:                   F7033203D2000
                    272:  261  0000034b *                                       .text
                    273:  262  0002CEDC    dd 8f00000338                        pushl   $L250
                    274:  263  0002CEE2    fe 08 effffffdf3                     callf   $8,_writes
                    275:  264  0002CEE9                                   #     write32h( 0 );
                    276:  265  0002CEE9    dd 00                                pushl   $0
                    277:  266  0002CEEB    fe 08 effffffdea                     callf   $8,_write32h
                    278:  267  0002CEF2                                   #     writec('\n');
                    279:  268  0002CEF2    dd 0a                                pushl   $10
                    280:  269  0002CEF4    fe 08 effffffde1                     callf   $8,_writec
                    281:  270  0002CEFB                                   # }
                    282:  271  0002CEFB    40                                   ret#2
                    283:  272  0002CEFC                                         .set    L232,0x0
                    284:  273  0002CEFC                                  L234:
                    285:  274  0002CEFC    13 fed8                              jbr     L235
                    286:  275  0002CEFF                                         .data
                    287:  276  00000278 *                                       .text
                    288:  277  0002CEFF    00                                   .align  1
                    289:  278  0002CF00                                         .globl  _pipe10_halt
                    290:  279  0002CF00                                  _pipe10_halt:
                    291:  280  0002CF00    0000                                 .word   L251
                    292:  281  0002CF02                                   # 
                    293:  282  0002CF02                                   # 
                    294:  283  0002CF02                                   # 
                    295:  284  0002CF02                                   # /*
                    296:  285  0002CF02                                   #  **************************************************************************
                    297:  286  0002CF02                                   #  *
                    298:  287  0002CF02                                   #  *          HALT ON AN ERROR
                    299:  288  0002CF02                                   #  *
                    300:  289  0002CF02                                   #  **************************************************************************
                    301:  290  0002CF02                                   # */
                    302:  291  0002CF02                                   # pipe10_halt()
                    303:  292  0002CF02                                   # {
                    304:  293  0002CF02    11 4d                                jbr     L253
                    305:  294  0002CF04                                  L254:
                    306:  295  0002CF04                                   #      sgl_value_4 = 0;
                    307:  296  0002CF04    4d effffffdd2                        clrl    _sgl_value_4
                    308:  297  0002CF0A                                   #      asm("movl _test_no,r0");       /* r0  = test number        */
                    309:  298  0002CF0A    0d effffffdcc 50              movl _test_no,r0
                    310:  299  0002CF11                                   #      asm("movl $1,r1");             /* r1  = subtest number     */
                    311:  300  0002CF11    0d 01 51                      movl $1,r1
                    312:  301  0002CF14                                   #      asm("movl $1,r2");             /* r2  = error code         */
                    313:  302  0002CF14    0d 01 52                      movl $1,r2
                    314:  303  0002CF17                                   #      asm("movl _cycle,r3");         /* r3  = cycle count        */
                    315:  304  0002CF17    0d effffffdbf 53              movl _cycle,r3
                    316:  305  0002CF1E                                   #      asm("movl _sgl_value_1,r4");   /* r4  = sgl operand #1     */
                    317:  306  0002CF1E    0d effffffdb8 54              movl _sgl_value_1,r4
                    318:  307  0002CF25                                   #      asm("movl _sgl_value_2,r5");   /* r5  = sgl operand #2     */
                    319:  308  0002CF25    0d effffffdb1 55              movl _sgl_value_2,r5
                    320:  309  0002CF2C                                   #      asm("movl _sgl_value_3,r6");   /* r6  = sgl operand #3     */
                    321:  310  0002CF2C    0d effffffdaa 56              movl _sgl_value_3,r6
                    322:  311  0002CF33                                   #      asm("movl _sgl_st_acc,r7");    /* r7  = sgl stored         */
                    323:  312  0002CF33    0d effffffda3 57              movl _sgl_st_acc,r7
                    324:  313  0002CF3A                                   #      asm("movl _sgl_expected,r8");  /* r8  = sgl expected       */
                    325:  314  0002CF3A    0d effffffd9c 58              movl _sgl_expected,r8
                    326:  315  0002CF41                                   #      asm("movl _sgl_value_4,r9");   /* r9  = op3 expected       */
                    327:  316  0002CF41    0d effffffd95 59              movl _sgl_value_4,r9
                    328:  317  0002CF48                                   #      asm("movl _index,r10");        /* r10  = data index        */
                    329:  318  0002CF48    0d effffffd8e 5a              movl _index,r10
                    330:  319  0002CF4F                                   #      asm("halt");                   /* HALT ...                 */
                    331:  320  0002CF4F    00                            halt
                    332:  321  0002CF50                                   # }  
                    333:  322  0002CF50    40                                   ret#2
                    334:  323  0002CF51                                         .set    L251,0x0
                    335:  324  0002CF51                                  L253:
                    336:  325  0002CF51    11 b1                                jbr     L254
                    337:  326  0002CF53                                         .data
                    338:  326  00059C2F                                         .data

unix.superglobalmegacorp.com

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