Annotation of cci/d/macro4/mull2.lst, revision 1.1

1.1     ! root        1:    1  00000000                                  LL0:
        !             2:    2  00000000                                         .data
        !             3:    3  00000d58 *                                       .text
        !             4:    4  00000000                                         .align  1
        !             5:    5  00000000                                         .globl  _mull2
        !             6:    6  00000000                                  _mull2:
        !             7:    7  00023F34    0000                                 .word   L215
        !             8:    8  00023F36                                   # #include "fpp_defs.h"
        !             9:    9  00023F36                                   # 
        !            10:   10  00023F36                                   # 
        !            11:   11  00023F36                                   # /***************************************************************************
        !            12:   12  00023F36                                   # *
        !            13:   13  00023F36                                   # *       MULL2 -MULTIPLY INTEGER 2 INSTRUCTION TEST
        !            14:   14  00023F36                                   # *
        !            15:   15  00023F36                                   # *****************************************************************************/
        !            16:   16  00023F36                                   # mull2()
        !            17:   17  00023F36                                   # {
        !            18:   18  00023F36    11 4f                                jbr     L217
        !            19:   19  00023F38                                  L218:
        !            20:   20  00023F38                                   #         asm(".globl _mull2_t");
        !            21:   21  00023F38                                  .globl _mull2_t
        !            22:   22  00023F38                                   #         asm("_mull2_t:");                       /* entry address            */
        !            23:   23  00023F38                                  _mull2_t:
        !            24:   24  00023F38                                   #         if( (cycle == 1) && (prt_hdrs) )        /* print headers on 1st cycle */
        !            25:   25  00023F38    1d effffffff6 01                     cmpl    _cycle,$1
        !            26:   26  00023F3F    21 15                                jneq    L219
        !            27:   27  00023F41    5d efffffffed                        tstl    _prt_hdrs
        !            28:   28  00023F47    31 0d                                jeql    L219
        !            29:   29  00023F49                                   #         {
        !            30:   30  00023F49                                   #            writes(" MULL2");
        !            31:   31  00023F49                                         .data   1
        !            32:   32  00000d58 *                                L221:
        !            33:   33  00000d58 *  204D554C4C3200                       .ascii  " MULL2\0"
        !            34:   34  00000d5f *                                       .text
        !            35:   35  00023F49    dd 8f00000d58                        pushl   $L221
        !            36:   36  00023F4F    fe 08 efffffffde                     callf   $8,_writes
        !            37:   37  00023F56                                   #         }
        !            38:   38  00023F56                                   #         mull2_1();                              /* register data / SGL acc. */
        !            39:   39  00023F56                                  L219:
        !            40:   40  00023F56    fe 04 ef0000002d                     callf   $4,_mull2_1
        !            41:   41  00023F5D                                   #         mull2_2();                              /* memory data   / DBL acc. */
        !            42:   42  00023F5D    fe 04 ef000001d2                     callf   $4,_mull2_2
        !            43:   43  00023F64                                   #         mull2_3();                              /* register corruption test */
        !            44:   44  00023F64    fe 04 ef000003db                     callf   $4,_mull2_3
        !            45:   45  00023F6B                                   #         mull2_4();                              /* PSL corruption test      */
        !            46:   46  00023F6B    fe 04 ef0000056a                     callf   $4,_mull2_4
        !            47:   47  00023F72                                   #         mull2_5();                              /* pipelined entry test     */
        !            48:   48  00023F72    fe 04 ef0000070d                     callf   $4,_mull2_5
        !            49:   49  00023F79                                   #         mull2_6();                              /* pipelined exit test      */
        !            50:   50  00023F79    fe 04 ef000008d8                     callf   $4,_mull2_6
        !            51:   51  00023F80                                   #         asm("jmp *return");                     /* return to the test monitor */
        !            52:   52  00023F80    71 ffffffffae                 jmp *return
        !            53:   53  00023F86                                   # }
        !            54:   54  00023F86    40                                   ret#2
        !            55:   55  00023F87                                         .set    L215,0x0
        !            56:   56  00023F87                                  L217:
        !            57:   57  00023F87    11 af                                jbr     L218
        !            58:   58  00023F89                                         .data
        !            59:   59  00000d58 *                                       .text
        !            60:   60  00023F89    00                                   .align  1
        !            61:   61  00023F8A                                         .globl  _mull2_1
        !            62:   62  00023F8A                                  _mull2_1:
        !            63:   63  00023F8A    0000                                 .word   L228
        !            64:   64  00023F8C                                   #   
        !            65:   65  00023F8C                                   # 
        !            66:   66  00023F8C                                   # 
        !            67:   67  00023F8C                                   # /************************************************************************
        !            68:   68  00023F8C                                   # *
        !            69:   69  00023F8C                                   # *        SUBTEST 1 - register addressing / single precsion accumulator
        !            70:   70  00023F8C                                   # *
        !            71:   71  00023F8C                                   # ************************************************************************/
        !            72:   72  00023F8C                                   # mull2_1() 
        !            73:   73  00023F8C                                   # {
        !            74:   74  00023F8C    13 01a4                              jbr     L230
        !            75:   75  00023F8F                                  L231:
        !            76:   76  00023F8F                                   #         force_loop = FALSE;
        !            77:   77  00023F8F    4d efffffff9f                        clrl    _force_loop
        !            78:   78  00023F95                                   #         subtest = 1;
        !            79:   79  00023F95    0d 01 efffffff98                     movl    $1,_subtest
        !            80:   80  00023F9C                                   #         for( index = 0; index < max_mull_1_index; index++ ) {
        !            81:   81  00023F9C    4d efffffff92                        clrl    _index
        !            82:   82  00023FA2                                  L234:
        !            83:   83  00023FA2    1d efffffff8c efffffff87             cmpl    _index,_max_mull_1_index
        !            84:   84  00023FAD    91 03 13 0180                        jgeq    L233
        !            85:   85  00023FB2                                   #            sgl_value_1  = mull_1_data[index].op_1; /* get operand 1        */
        !            86:   86  00023FB2    5c 0c efffffff7b 50                  mull3   $12,_index,r0
        !            87:   87  00023FBA    0d e000000000 efffffff6f             movl    _mull_1_data(r0),_sgl_value_1
        !            88:   88  00023FC5                                   #            sgl_value_2  = mull_1_data[index].op_2; /* get operand 2        */
        !            89:   89  00023FC5    5c 0c efffffff68 50                  mull3   $12,_index,r0
        !            90:   90  00023FCD    0d e000000004 efffffff5c             movl    _mull_1_data+4(r0),_sgl_value_2
        !            91:   91  00023FD8                                   #        sgl_value_4  = mull_1_data[index].exp;  /* get expected results */
        !            92:   92  00023FD8    5c 0c efffffff55 50                  mull3   $12,_index,r0
        !            93:   93  00023FE0    0d e000000008 efffffff49             movl    _mull_1_data+8(r0),_sgl_value_4
        !            94:   94  00023FEB                                   #            sgl_ld_acc   = 0x12345678;                  /* set acc data pattern */
        !            95:   95  00023FEB    0d 8f12345678 efffffff3e             movl    $305419896,_sgl_ld_acc
        !            96:   96  00023FF6                                   #        sgl_expected = sgl_ld_acc;              /* final Acc expected   */
        !            97:   97  00023FF6    0d efffffff38 efffffff33             movl    _sgl_ld_acc,_sgl_expected
        !            98:   98  00024001                                   # /*
        !            99:   99  00024001                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           100:  100  00024001                                   # */
        !           101:  101  00024001                                   #            asm("_mull2_1_lp1:");
        !           102:  102  00024001                                  _mull2_1_lp1:
        !           103:  103  00024001                                   #            asm("movl _sgl_value_1,r3");         /* move the 1st data to r3 */
        !           104:  104  00024001    0d efffffff2d 53              movl _sgl_value_1,r3
        !           105:  105  00024008                                   #            asm("movl _sgl_value_2,r4");         /* move the 2nd data to r4 */
        !           106:  106  00024008    0d efffffff26 54              movl _sgl_value_2,r4
        !           107:  107  0002400F                                   #            asm("movl _sgl_ld_acc,r5");      /* move the acc data to r5 */
        !           108:  108  0002400F    0d efffffff1f 55              movl _sgl_ld_acc,r5
        !           109:  109  00024016                                   #            asm("ldf r5");                   /* load the acc            */
        !           110:  110  00024016    06 55                         ldf r5
        !           111:  111  00024018                                   #        asm("mull2 r3,r4");                  /* do the multiply         */
        !           112:  112  00024018    4c 53 54                      mull2 r3,r4
        !           113:  113  0002401B                                   #            asm("nop");
        !           114:  114  0002401B    10                            nop
        !           115:  115  0002401C                                   #            asm("stf _sgl_st_acc");          /* save the acc            */
        !           116:  116  0002401C    26 efffffff12                 stf _sgl_st_acc
        !           117:  117  00024022                                   #            if( force_loop )
        !           118:  118  00024022    5d efffffff0c                        tstl    _force_loop
        !           119:  119  00024028    31 02                                jeql    L235
        !           120:  120  0002402A                                   #                 asm("brb _mull2_1_lp1");;
        !           121:  121  0002402A    11 d5                         brb _mull2_1_lp1
        !           122:  122  0002402C                                  L235:
        !           123:  123  0002402C                                   #            asm("movl r4,_sgl_value_3");
        !           124:  124  0002402C    0d 54 efffffff01              movl r4,_sgl_value_3
        !           125:  125  00024033                                   #        if( sgl_expected != sgl_st_acc )  {   /* COMPARE the values      */
        !           126:  126  00024033    1d effffffefb effffffef6             cmpl    _sgl_expected,_sgl_st_acc
        !           127:  127  0002403E    21 03 13 0098                        jeql    L236
        !           128:  128  00024043                                   #               errcnt++;                         /* bump the error count    */
        !           129:  129  00024043    6d effffffeeb                        incl    _errcnt
        !           130:  130  00024049                                   #               if ( prt_error ) {
        !           131:  131  00024049    5d effffffee5                        tstl    _prt_error
        !           132:  132  0002404F    31 64                                jeql    L237
        !           133:  133  00024051                                   #                   print_mull2_error("(Reg. Data) -THE ACC WAS MODIFIED");
        !           134:  134  00024051                                         .data   1
        !           135:  135  00000d5f *                                L239:
        !           136:  136  00000d5f *  285265672E204461746129202            .ascii  "(Reg. Data) -THE ACC WAS MODIFIED\0"
        !           137:                   D544845204143432057415320
        !           138:                   4D4F44494649454400
        !           139:  137  00000d81 *                                       .text
        !           140:  138  00024051    dd 8f00000d5f                        pushl   $L239
        !           141:  139  00024057    fe 08 ef000009cc                     callf   $8,_print_mull2_error
        !           142:  140  0002405E                                   #               writes("initial Acc = ");
        !           143:  141  0002405E                                         .data   1
        !           144:  142  00000d81 *                                L240:
        !           145:  143  00000d81 *  696E697469616C20416363203            .ascii  "initial Acc = \0"
        !           146:                   D2000
        !           147:  144  00000d90 *                                       .text
        !           148:  145  0002405E    dd 8f00000d81                        pushl   $L240
        !           149:  146  00024064    fe 08 effffffec9                     callf   $8,_writes
        !           150:  147  0002406B                                   #                   write32h( sgl_ld_acc );
        !           151:  148  0002406B    dd effffffec3                        pushl   _sgl_ld_acc
        !           152:  149  00024071    fe 08 effffffebc                     callf   $8,_write32h
        !           153:  150  00024078                                   #                   writes(",     final Acc = ");
        !           154:  151  00024078                                         .data   1
        !           155:  152  00000d90 *                                L242:
        !           156:  153  00000d90 *  2C202020202066696E616C204            .ascii  ",     final Acc = \0"
        !           157:                   16363203D2000
        !           158:  154  00000da3 *                                       .text
        !           159:  155  00024078    dd 8f00000d90                        pushl   $L242
        !           160:  156  0002407E    fe 08 effffffeaf                     callf   $8,_writes
        !           161:  157  00024085                                   #                   write32h( sgl_st_acc );
        !           162:  158  00024085    dd effffffea9                        pushl   _sgl_st_acc
        !           163:  159  0002408B    fe 08 effffffea2                     callf   $8,_write32h
        !           164:  160  00024092                                   #               writes("\n                         expected Acc = ");
        !           165:  161  00024092                                         .data   1
        !           166:  162  00000da3 *                                L243:
        !           167:  163  00000da3 *  0A20202020202020202020202            .ascii  "\12                         expected Acc = \0"
        !           168:                   0202020202020202020202020
        !           169:                   2065787065637465642041636
        !           170:                   3203D2000
        !           171:  164  00000dcd *                                       .text
        !           172:  165  00024092    dd 8f00000da3                        pushl   $L243
        !           173:  166  00024098    fe 08 effffffe95                     callf   $8,_writes
        !           174:  167  0002409F                                   #                   write32h( sgl_expected );
        !           175:  168  0002409F    dd effffffe8f                        pushl   _sgl_expected
        !           176:  169  000240A5    fe 08 effffffe88                     callf   $8,_write32h
        !           177:  170  000240AC                                   #                   writec('\n');
        !           178:  171  000240AC    dd 0a                                pushl   $10
        !           179:  172  000240AE    fe 08 effffffe7f                     callf   $8,_writec
        !           180:  173  000240B5                                   #               }
        !           181:  174  000240B5                                   #           if ( halt_flg )                   /* halt on error?          */
        !           182:  175  000240B5                                  L237:
        !           183:  176  000240B5    5d effffffe79                        tstl    _halt_flg
        !           184:  177  000240BB    31 09                                jeql    L245
        !           185:  178  000240BD                                   #                   mull2_halt( 4 );
        !           186:  179  000240BD    dd 04                                pushl   $4
        !           187:  180  000240BF    fe 08 ef00000a6a                     callf   $8,_mull2_halt
        !           188:  181  000240C6                                   #               if ( loop_on_err ) {
        !           189:  182  000240C6                                  L245:
        !           190:  183  000240C6    5d effffffe68                        tstl    _loop_on_err
        !           191:  184  000240CC    31 0d                                jeql    L247
        !           192:  185  000240CE                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           193:  186  000240CE    0d 01 effffffe5f                     movl    $1,_force_loop
        !           194:  187  000240D5                                   #                   asm("jmp _mull2_1_lp1");      /* and loop                */
        !           195:  188  000240D5    71 efffffff26                 jmp _mull2_1_lp1
        !           196:  189  000240DB                                   #               }  /* end of loop-on-error */
        !           197:  190  000240DB                                   #            } /* end of acc corr error */
        !           198:  191  000240DB                                  L247:
        !           199:  192  000240DB                                   #        if( sgl_value_4 != sgl_value_3 )    /* COMPARE the values      */
        !           200:  193  000240DB                                  L236:
        !           201:  194  000240DB    1d effffffe53 effffffe4e             cmpl    _sgl_value_4,_sgl_value_3
        !           202:  195  000240E6    31 41                                jeql    L248
        !           203:  196  000240E8                                   #            {
        !           204:  197  000240E8                                   #               errcnt++;                         /* bump the error count    */
        !           205:  198  000240E8    6d effffffe46                        incl    _errcnt
        !           206:  199  000240EE                                   #               if ( prt_error ) {
        !           207:  200  000240EE    5d effffffe40                        tstl    _prt_error
        !           208:  201  000240F4    31 0d                                jeql    L249
        !           209:  202  000240F6                                   #                   print_mull2_error("(Reg. Data) -BAD MULTIPLY RESULT");
        !           210:  203  000240F6                                         .data   1
        !           211:  204  00000dcd *                                L250:
        !           212:  205  00000dcd *  285265672E204461746129202            .ascii  "(Reg. Data) -BAD MULTIPLY RESULT\0"
        !           213:                   D424144204D554C5449504C59
        !           214:                   20524553554C5400
        !           215:  206  00000dee *                                       .text
        !           216:  207  000240F6    dd 8f00000dcd                        pushl   $L250
        !           217:  208  000240FC    fe 08 ef00000927                     callf   $8,_print_mull2_error
        !           218:  209  00024103                                   #               }
        !           219:  210  00024103                                   #           if ( halt_flg )                   /* halt on error?          */
        !           220:  211  00024103                                  L249:
        !           221:  212  00024103    5d effffffe2b                        tstl    _halt_flg
        !           222:  213  00024109    31 09                                jeql    L251
        !           223:  214  0002410B                                   #                   mull2_halt( 1 );
        !           224:  215  0002410B    dd 01                                pushl   $1
        !           225:  216  0002410D    fe 08 ef00000a1c                     callf   $8,_mull2_halt
        !           226:  217  00024114                                   #               if ( loop_on_err ) {
        !           227:  218  00024114                                  L251:
        !           228:  219  00024114    5d effffffe1a                        tstl    _loop_on_err
        !           229:  220  0002411A    31 0d                                jeql    L252
        !           230:  221  0002411C                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           231:  222  0002411C    0d 01 effffffe11                     movl    $1,_force_loop
        !           232:  223  00024123                                   #                   asm("jmp _mull2_1_lp1");      /* and loop                */
        !           233:  224  00024123    71 effffffed8                 jmp _mull2_1_lp1
        !           234:  225  00024129                                   #               }  /* end of loop-on-error */
        !           235:  226  00024129                                   #            } /* end of multiply error */
        !           236:  227  00024129                                  L252:
        !           237:  228  00024129                                   #         }
        !           238:  229  00024129                                  L248:
        !           239:  230  00024129                                  L232:
        !           240:  231  00024129    6d effffffe05                        incl    _index
        !           241:  232  0002412F    13 fe70                              jbr     L234
        !           242:  233  00024132                                  L233:
        !           243:  234  00024132                                   # }  /* end of subtest 1 */
        !           244:  235  00024132    40                                   ret#2
        !           245:  236  00024133                                         .set    L228,0x0
        !           246:  237  00024133                                  L230:
        !           247:  238  00024133    13 fe59                              jbr     L231
        !           248:  239  00024136                                         .data
        !           249:  240  00000d58 *                                       .text
        !           250:  241  00024136                                         .align  1
        !           251:  242  00024136                                         .globl  _mull2_2
        !           252:  243  00024136                                  _mull2_2:
        !           253:  244  00024136    0000                                 .word   L253
        !           254:  245  00024138                                   #   
        !           255:  246  00024138                                   # 
        !           256:  247  00024138                                   # 
        !           257:  248  00024138                                   # /************************************************************************
        !           258:  249  00024138                                   # *
        !           259:  250  00024138                                   # *        SUBTEST 2 - cache addressing / double precsion accumulator
        !           260:  251  00024138                                   # *
        !           261:  252  00024138                                   # ************************************************************************/
        !           262:  253  00024138                                   # mull2_2() 
        !           263:  254  00024138                                   # {
        !           264:  255  00024138    13 0207                              jbr     L255
        !           265:  256  0002413B                                  L256:
        !           266:  257  0002413B                                   #         force_loop = FALSE;
        !           267:  258  0002413B    4d effffffdf3                        clrl    _force_loop
        !           268:  259  00024141                                   #         subtest = 2;
        !           269:  260  00024141    0d 02 effffffdec                     movl    $2,_subtest
        !           270:  261  00024148                                   #         for( index = 0; index < max_mull_1_index; index++ ) {
        !           271:  262  00024148    4d effffffde6                        clrl    _index
        !           272:  263  0002414E                                  L259:
        !           273:  264  0002414E    1d effffffde0 effffffddb             cmpl    _index,_max_mull_1_index
        !           274:  265  00024159    91 03 13 01e3                        jgeq    L258
        !           275:  266  0002415E                                   #            sgl_value_1  = mull_1_data[index].op_1; /* get operand 1        */
        !           276:  267  0002415E    5c 0c effffffdcf 50                  mull3   $12,_index,r0
        !           277:  268  00024166    0d e000000000 effffffdc3             movl    _mull_1_data(r0),_sgl_value_1
        !           278:  269  00024171                                   #            sgl_value_2  = mull_1_data[index].op_2; /* get operand 2        */
        !           279:  270  00024171    5c 0c effffffdbc 50                  mull3   $12,_index,r0
        !           280:  271  00024179    0d e000000004 effffffdb0             movl    _mull_1_data+4(r0),_sgl_value_2
        !           281:  272  00024184                                   #        sgl_value_4  = mull_1_data[index].exp;  /* get expected results */
        !           282:  273  00024184    5c 0c effffffda9 50                  mull3   $12,_index,r0
        !           283:  274  0002418C    0d e000000008 effffffd9d             movl    _mull_1_data+8(r0),_sgl_value_4
        !           284:  275  00024197                                   #            dbl_ld_acc.m = 0x12345678;                  /* set acc data pattern */
        !           285:  276  00024197    0d 8f12345678 effffffd92             movl    $305419896,_dbl_ld_acc
        !           286:  277  000241A2                                   #            dbl_ld_acc.l = 0x9abcdef0;
        !           287:  278  000241A2    0d 8f9abcdef0 effffffd8b             movl    $-1698898192,_dbl_ld_acc+4
        !           288:  279  000241AD                                   #        dbl_expected.m = dbl_ld_acc.m;          /* final Acc expected   */
        !           289:  280  000241AD    0d effffffd81 effffffd7c             movl    _dbl_ld_acc,_dbl_expected
        !           290:  281  000241B8                                   #        dbl_expected.l = dbl_ld_acc.l;
        !           291:  282  000241B8    0d effffffd7a effffffd75             movl    _dbl_ld_acc+4,_dbl_expected+4
        !           292:  283  000241C3                                   # /*
        !           293:  284  000241C3                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           294:  285  000241C3                                   # */
        !           295:  286  000241C3                                   #            asm("_mull2_2_lp1:");
        !           296:  287  000241C3                                  _mull2_2_lp1:
        !           297:  288  000241C3                                   #        sgl_value_3 = sgl_value_2;           /* set initial op 2 data   */
        !           298:  289  000241C3    0d effffffd6b effffffd66             movl    _sgl_value_2,_sgl_value_3
        !           299:  290  000241CE                                   #            asm("ldd _dbl_ld_acc");          /* load the acc            */
        !           300:  291  000241CE    07 effffffd60                 ldd _dbl_ld_acc
        !           301:  292  000241D4                                   #        asm("mull2 _sgl_value_1,_sgl_value_3"); /* multiply the integers */
        !           302:  293  000241D4    4c effffffd5a effffffd55      mull2 _sgl_value_1,_sgl_value_3
        !           303:  294  000241DF                                   #            asm("nop");
        !           304:  295  000241DF    10                            nop
        !           305:  296  000241E0                                   #            asm("std _dbl_st_acc");          /* save the acc            */
        !           306:  297  000241E0    27 effffffd4e                 std _dbl_st_acc
        !           307:  298  000241E6                                   #            if( force_loop )
        !           308:  299  000241E6    5d effffffd48                        tstl    _force_loop
        !           309:  300  000241EC    31 02                                jeql    L260
        !           310:  301  000241EE                                   #                 asm("brb _mull2_2_lp1");;
        !           311:  302  000241EE    11 d3                         brb _mull2_2_lp1
        !           312:  303  000241F0                                  L260:
        !           313:  304  000241F0                                   #        if( (dbl_expected.m != dbl_st_acc.m) ||    /* COMPARE the Acc */
        !           314:  305  000241F0                                   #            (dbl_expected.l != dbl_st_acc.l) )  { 
        !           315:  306  000241F0    1d effffffd3e effffffd39             cmpl    _dbl_expected,_dbl_st_acc
        !           316:  307  000241FB    21 10                                jneq    L9999
        !           317:  308  000241FD    1d effffffd35 effffffd30             cmpl    _dbl_expected+4,_dbl_st_acc+4
        !           318:  309  00024208    21 03 13 00dd                        jeql    L261
        !           319:  310  0002420D                                  L9999:
        !           320:  311  0002420D                                   #               errcnt++;                         /* bump the error count    */
        !           321:  312  0002420D    6d effffffd21                        incl    _errcnt
        !           322:  313  00024213                                   #               if ( prt_error ) {
        !           323:  314  00024213    5d effffffd1b                        tstl    _prt_error
        !           324:  315  00024219    21 03 13 00a6                        jeql    L262
        !           325:  316  0002421E                                   #                   print_mull2_error("(Memory data) -THE ACC WAS MODIFIED");
        !           326:  317  0002421E                                         .data   1
        !           327:  318  00000dee *                                L263:
        !           328:  319  00000dee *  284D656D6F727920646174612            .ascii  "(Memory data) -THE ACC WAS MODIFIED\0"
        !           329:                   9202D54484520414343205741
        !           330:                   53204D4F44494649454400
        !           331:  320  00000e12 *                                       .text
        !           332:  321  0002421E    dd 8f00000dee                        pushl   $L263
        !           333:  322  00024224    fe 08 ef000007ff                     callf   $8,_print_mull2_error
        !           334:  323  0002422B                                   #               writes("initial Acc = ");
        !           335:  324  0002422B                                         .data   1
        !           336:  325  00000e12 *                                L264:
        !           337:  326  00000e12 *  696E697469616C20416363203            .ascii  "initial Acc = \0"
        !           338:                   D2000
        !           339:  327  00000e21 *                                       .text
        !           340:  328  0002422B    dd 8f00000e12                        pushl   $L264
        !           341:  329  00024231    fe 08 effffffcfc                     callf   $8,_writes
        !           342:  330  00024238                                   #                   write32h( dbl_ld_acc.m );
        !           343:  331  00024238    dd effffffcf6                        pushl   _dbl_ld_acc
        !           344:  332  0002423E    fe 08 effffffcef                     callf   $8,_write32h
        !           345:  333  00024245                                   #               writec(' ');
        !           346:  334  00024245    dd 20                                pushl   $32
        !           347:  335  00024247    fe 08 effffffce6                     callf   $8,_writec
        !           348:  336  0002424E                                   #                   write32h( dbl_ld_acc.l );
        !           349:  337  0002424E    dd effffffce4                        pushl   _dbl_ld_acc+4
        !           350:  338  00024254    fe 08 effffffcd9                     callf   $8,_write32h
        !           351:  339  0002425B                                   #                   writes(",     final Acc = ");
        !           352:  340  0002425B                                         .data   1
        !           353:  341  00000e21 *                                L265:
        !           354:  342  00000e21 *  2C202020202066696E616C204            .ascii  ",     final Acc = \0"
        !           355:                   16363203D2000
        !           356:  343  00000e34 *                                       .text
        !           357:  344  0002425B    dd 8f00000e21                        pushl   $L265
        !           358:  345  00024261    fe 08 effffffccc                     callf   $8,_writes
        !           359:  346  00024268                                   #                   write32h( dbl_st_acc.m );
        !           360:  347  00024268    dd effffffcc6                        pushl   _dbl_st_acc
        !           361:  348  0002426E    fe 08 effffffcbf                     callf   $8,_write32h
        !           362:  349  00024275                                   #               writec(' ');
        !           363:  350  00024275    dd 20                                pushl   $32
        !           364:  351  00024277    fe 08 effffffcb6                     callf   $8,_writec
        !           365:  352  0002427E                                   #                   write32h( dbl_st_acc.l );
        !           366:  353  0002427E    dd effffffcb4                        pushl   _dbl_st_acc+4
        !           367:  354  00024284    fe 08 effffffca9                     callf   $8,_write32h
        !           368:  355  0002428B                                   #               writes("\n                                  expected Acc = ");
        !           369:  356  0002428B                                         .data   1
        !           370:  357  00000e34 *                                L266:
        !           371:  358  00000e34 *  0A20202020202020202020202            .ascii  "\12                                  expected Acc = \0"
        !           372:                   0202020202020202020202020
        !           373:                   2020202020202020202065787
        !           374:                   0656374656420416363203D20
        !           375:                   00
        !           376:  359  00000e67 *                                       .text
        !           377:  360  0002428B    dd 8f00000e34                        pushl   $L266
        !           378:  361  00024291    fe 08 effffffc9c                     callf   $8,_writes
        !           379:  362  00024298                                   #                   write32h( dbl_expected.m );
        !           380:  363  00024298    dd effffffc96                        pushl   _dbl_expected
        !           381:  364  0002429E    fe 08 effffffc8f                     callf   $8,_write32h
        !           382:  365  000242A5                                   #               writec(' ');
        !           383:  366  000242A5    dd 20                                pushl   $32
        !           384:  367  000242A7    fe 08 effffffc86                     callf   $8,_writec
        !           385:  368  000242AE                                   #                   write32h( dbl_expected.l );
        !           386:  369  000242AE    dd effffffc84                        pushl   _dbl_expected+4
        !           387:  370  000242B4    fe 08 effffffc79                     callf   $8,_write32h
        !           388:  371  000242BB                                   #                   writec('\n');
        !           389:  372  000242BB    dd 0a                                pushl   $10
        !           390:  373  000242BD    fe 08 effffffc70                     callf   $8,_writec
        !           391:  374  000242C4                                   #               }
        !           392:  375  000242C4                                   #           if ( halt_flg )                   /* halt on error?          */
        !           393:  376  000242C4                                  L262:
        !           394:  377  000242C4    5d effffffc6a                        tstl    _halt_flg
        !           395:  378  000242CA    31 09                                jeql    L267
        !           396:  379  000242CC                                   #                   mull2_halt( 4 );
        !           397:  380  000242CC    dd 04                                pushl   $4
        !           398:  381  000242CE    fe 08 ef0000085b                     callf   $8,_mull2_halt
        !           399:  382  000242D5                                   #               if ( loop_on_err ) {
        !           400:  383  000242D5                                  L267:
        !           401:  384  000242D5    5d effffffc59                        tstl    _loop_on_err
        !           402:  385  000242DB    31 0d                                jeql    L268
        !           403:  386  000242DD                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           404:  387  000242DD    0d 01 effffffc50                     movl    $1,_force_loop
        !           405:  388  000242E4                                   #                   asm("jmp _mull2_2_lp1");      /* and loop                */
        !           406:  389  000242E4    71 effffffed9                 jmp _mull2_2_lp1
        !           407:  390  000242EA                                   #               }  /* end of loop-on-error */
        !           408:  391  000242EA                                   #            } /* end of acc corr error */
        !           409:  392  000242EA                                  L268:
        !           410:  393  000242EA                                   #        if( sgl_value_4 != sgl_value_3 )    /* COMPARE the values      */
        !           411:  394  000242EA                                  L261:
        !           412:  395  000242EA    1d effffffc44 effffffc3f             cmpl    _sgl_value_4,_sgl_value_3
        !           413:  396  000242F5    31 41                                jeql    L269
        !           414:  397  000242F7                                   #            {
        !           415:  398  000242F7                                   #               errcnt++;                         /* bump the error count    */
        !           416:  399  000242F7    6d effffffc37                        incl    _errcnt
        !           417:  400  000242FD                                   #               if ( prt_error ) {
        !           418:  401  000242FD    5d effffffc31                        tstl    _prt_error
        !           419:  402  00024303    31 0d                                jeql    L270
        !           420:  403  00024305                                   #                   print_mull2_error("(Memory data) -BAD MULTIPLY RESULT");
        !           421:  404  00024305                                         .data   1
        !           422:  405  00000e67 *                                L271:
        !           423:  406  00000e67 *  284D656D6F727920646174612            .ascii  "(Memory data) -BAD MULTIPLY RESULT\0"
        !           424:                   9202D424144204D554C544950
        !           425:                   4C5920524553554C5400
        !           426:  407  00000e8a *                                       .text
        !           427:  408  00024305    dd 8f00000e67                        pushl   $L271
        !           428:  409  0002430B    fe 08 ef00000718                     callf   $8,_print_mull2_error
        !           429:  410  00024312                                   #               }
        !           430:  411  00024312                                   #           if ( halt_flg )                   /* halt on error?          */
        !           431:  412  00024312                                  L270:
        !           432:  413  00024312    5d effffffc1c                        tstl    _halt_flg
        !           433:  414  00024318    31 09                                jeql    L272
        !           434:  415  0002431A                                   #                   mull2_halt( 1 );
        !           435:  416  0002431A    dd 01                                pushl   $1
        !           436:  417  0002431C    fe 08 ef0000080d                     callf   $8,_mull2_halt
        !           437:  418  00024323                                   #               if ( loop_on_err ) {
        !           438:  419  00024323                                  L272:
        !           439:  420  00024323    5d effffffc0b                        tstl    _loop_on_err
        !           440:  421  00024329    31 0d                                jeql    L273
        !           441:  422  0002432B                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           442:  423  0002432B    0d 01 effffffc02                     movl    $1,_force_loop
        !           443:  424  00024332                                   #                   asm("jmp _mull2_2_lp1");      /* and loop                */
        !           444:  425  00024332    71 effffffe8b                 jmp _mull2_2_lp1
        !           445:  426  00024338                                   #               }  /* end of loop-on-error */
        !           446:  427  00024338                                   #            } /* end of multiply error */
        !           447:  428  00024338                                  L273:
        !           448:  429  00024338                                   #         }
        !           449:  430  00024338                                  L269:
        !           450:  431  00024338                                  L257:
        !           451:  432  00024338    6d effffffbf6                        incl    _index
        !           452:  433  0002433E    13 fe0d                              jbr     L259
        !           453:  434  00024341                                  L258:
        !           454:  435  00024341                                   # }  /* end of subtest 2 */
        !           455:  436  00024341    40                                   ret#2
        !           456:  437  00024342                                         .set    L253,0x0
        !           457:  438  00024342                                  L255:
        !           458:  439  00024342    13 fdf6                              jbr     L256
        !           459:  440  00024345                                         .data
        !           460:  441  00000d58 *                                       .text
        !           461:  442  00024345    00                                   .align  1
        !           462:  443  00024346                                         .globl  _mull2_3
        !           463:  444  00024346                                  _mull2_3:
        !           464:  445  00024346    0000                                 .word   L274
        !           465:  446  00024348                                   #   
        !           466:  447  00024348                                   # 
        !           467:  448  00024348                                   # 
        !           468:  449  00024348                                   # /************************************************************************
        !           469:  450  00024348                                   # *
        !           470:  451  00024348                                   # *               SUBTEST 3 - register corruption test
        !           471:  452  00024348                                   # *
        !           472:  453  00024348                                   # ************************************************************************/
        !           473:  454  00024348                                   # mull2_3() 
        !           474:  455  00024348                                   # {
        !           475:  456  00024348    13 018e                              jbr     L276
        !           476:  457  0002434B                                  L277:
        !           477:  458  0002434B                                   #         force_loop = FALSE;
        !           478:  459  0002434B    4d effffffbe3                        clrl    _force_loop
        !           479:  460  00024351                                   #         subtest = 3;
        !           480:  461  00024351    0d 03 effffffbdc                     movl    $3,_subtest
        !           481:  462  00024358                                   #         fill_reg_buf( load_regs );          /* get pattern for registers */
        !           482:  463  00024358    dd 8f00000000                        pushl   $_load_regs
        !           483:  464  0002435E    fe 08 effffffbcf                     callf   $8,_fill_reg_buf
        !           484:  465  00024365                                   #     for( index = 0; index < max_mull_1_index; index++ ) {
        !           485:  466  00024365    4d effffffbc9                        clrl    _index
        !           486:  467  0002436B                                  L281:
        !           487:  468  0002436B    1d effffffbc3 effffffbbe             cmpl    _index,_max_mull_1_index
        !           488:  469  00024376    91 03 13 015d                        jgeq    L280
        !           489:  470  0002437B                                   #            sgl_value_1  = mull_1_data[index].op_1; /* get operand 1        */
        !           490:  471  0002437B    5c 0c effffffbb2 50                  mull3   $12,_index,r0
        !           491:  472  00024383    0d e000000000 effffffba6             movl    _mull_1_data(r0),_sgl_value_1
        !           492:  473  0002438E                                   #            sgl_value_2  = mull_1_data[index].op_2; /* get operand 2        */
        !           493:  474  0002438E    5c 0c effffffb9f 50                  mull3   $12,_index,r0
        !           494:  475  00024396    0d e000000004 effffffb93             movl    _mull_1_data+4(r0),_sgl_value_2
        !           495:  476  000243A1                                   #            sgl_value_4  = mull_1_data[index].exp;  /* get expected results */
        !           496:  477  000243A1    5c 0c effffffb8c 50                  mull3   $12,_index,r0
        !           497:  478  000243A9    0d e000000008 effffffb80             movl    _mull_1_data+8(r0),_sgl_value_4
        !           498:  479  000243B4                                   # /*
        !           499:  480  000243B4                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           500:  481  000243B4                                   # */
        !           501:  482  000243B4                                   #            asm("_mull2_3_lp1:");
        !           502:  483  000243B4                                  _mull2_3_lp1:
        !           503:  484  000243B4                                   #        sgl_value_3 = sgl_value_2;           /* set operand 2        */
        !           504:  485  000243B4    0d effffffb7a effffffb75             movl    _sgl_value_2,_sgl_value_3
        !           505:  486  000243BF                                   #            asm("loadr $0x1fff,_load_regs"); /* load regs 0 - 12     */
        !           506:  487  000243BF    ab 891fff effffffb6c          loadr $0x1fff,_load_regs
        !           507:  488  000243C8                                   #        asm("mull2 _sgl_value_1,_sgl_value_3");/* do the multiply    */
        !           508:  489  000243C8    4c effffffb66 effffffb61      mull2 _sgl_value_1,_sgl_value_3
        !           509:  490  000243D3                                   #            asm("nop");
        !           510:  491  000243D3    10                            nop
        !           511:  492  000243D4                                   #            asm("storer $0x1fff,_store_regs");       /* store regs 0 - 12    */
        !           512:  493  000243D4    bb 891fff effffffb57          storer $0x1fff,_store_regs
        !           513:  494  000243DD                                   #        if( force_loop )
        !           514:  495  000243DD    5d effffffb51                        tstl    _force_loop
        !           515:  496  000243E3    31 02                                jeql    L282
        !           516:  497  000243E5                                   #                 asm("brb _mull2_3_lp1");
        !           517:  498  000243E5    11 cd                         brb _mull2_3_lp1
        !           518:  499  000243E7                                   # /*
        !           519:  500  000243E7                                   #  * Now check the result
        !           520:  501  000243E7                                   # */
        !           521:  502  000243E7                                   #         index2 = 0;
        !           522:  503  000243E7                                  L282:
        !           523:  504  000243E7    4d effffffb47                        clrl    _index2
        !           524:  505  000243ED                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
        !           525:  506  000243ED                                  L283:
        !           526:  507  000243ED    0d effffffb41 50                     movl    _index2,r0
        !           527:  508  000243F4    0d effffffb3a 51                     movl    _index2,r1
        !           528:  509  000243FB    1d 40effffffb32                      cmpl    _load_regs[r0],_store_regs[r1]
        !           529:                   41effffffb2c 
        !           530:  510  00024408    21 11                                jneq    L284
        !           531:  511  0002440A    1d effffffb24 0d                     cmpl    _index2,$13
        !           532:  512  00024411    81 08                                jgeq    L284
        !           533:  513  00024413                                   #              index2++;                          /* check reg values        */
        !           534:  514  00024413    6d effffffb1b                        incl    _index2
        !           535:  515  00024419    11 d2                                jbr     L283
        !           536:  516  0002441B                                  L284:
        !           537:  517  0002441B                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
        !           538:  518  0002441B    1d effffffb13 0d                     cmpl    _index2,$13
        !           539:  519  00024422    91 03 13 00a8                        jgeq    L285
        !           540:  520  00024427                                   #               errcnt++;                         /* bump the error count    */
        !           541:  521  00024427    6d effffffb07                        incl    _errcnt
        !           542:  522  0002442D                                   #           if ( prt_error ) {
        !           543:  523  0002442D    5d effffffb01                        tstl    _prt_error
        !           544:  524  00024433    31 74                                jeql    L286
        !           545:  525  00024435                                   #                   print_mull2_error(" -A REGISTER WAS MODIFIED");
        !           546:  526  00024435                                         .data   1
        !           547:  527  00000e8a *                                L287:
        !           548:  528  00000e8a *  202D412052454749535445522            .ascii  " -A REGISTER WAS MODIFIED\0"
        !           549:                   0574153204D4F444946494544
        !           550:                   00
        !           551:  529  00000ea4 *                                       .text
        !           552:  530  00024435    dd 8f00000e8a                        pushl   $L287
        !           553:  531  0002443B    fe 08 ef000005e8                     callf   $8,_print_mull2_error
        !           554:  532  00024442                                   #                   writes("register ");
        !           555:  533  00024442                                         .data   1
        !           556:  534  00000ea4 *                                L288:
        !           557:  535  00000ea4 *  72656769737465722000                 .ascii  "register \0"
        !           558:  536  00000eae *                                       .text
        !           559:  537  00024442    dd 8f00000ea4                        pushl   $L288
        !           560:  538  00024448    fe 08 effffffae5                     callf   $8,_writes
        !           561:  539  0002444F                                   #               writeh( index2 );
        !           562:  540  0002444F    dd effffffadf                        pushl   _index2
        !           563:  541  00024455    fe 08 effffffad8                     callf   $8,_writeh
        !           564:  542  0002445C                                   #               writes(" = ");
        !           565:  543  0002445C                                         .data   1
        !           566:  544  00000eae *                                L290:
        !           567:  545  00000eae *  203D2000                             .ascii  " = \0"
        !           568:  546  00000eb2 *                                       .text
        !           569:  547  0002445C    dd 8f00000eae                        pushl   $L290
        !           570:  548  00024462    fe 08 effffffacb                     callf   $8,_writes
        !           571:  549  00024469                                   #               write32h( store_regs[index2] );
        !           572:  550  00024469    0d effffffac5 50                     movl    _index2,r0
        !           573:  551  00024470    dd 40effffffabd                      pushl   _store_regs[r0]
        !           574:  552  00024477    fe 08 effffffab6                     callf   $8,_write32h
        !           575:  553  0002447E                                   #               writes(",  should be = ");
        !           576:  554  0002447E                                         .data   1
        !           577:  555  00000eb2 *                                L291:
        !           578:  556  00000eb2 *  2C202073686F756C642062652            .ascii  ",  should be = \0"
        !           579:                   03D2000
        !           580:  557  00000ec2 *                                       .text
        !           581:  558  0002447E    dd 8f00000eb2                        pushl   $L291
        !           582:  559  00024484    fe 08 effffffaa9                     callf   $8,_writes
        !           583:  560  0002448B                                   #                   write32h( load_regs[index2] );
        !           584:  561  0002448B    0d effffffaa3 50                     movl    _index2,r0
        !           585:  562  00024492    dd 40effffffa9b                      pushl   _load_regs[r0]
        !           586:  563  00024499    fe 08 effffffa94                     callf   $8,_write32h
        !           587:  564  000244A0                                   #                   writec('\n');
        !           588:  565  000244A0    dd 0a                                pushl   $10
        !           589:  566  000244A2    fe 08 effffffa8b                     callf   $8,_writec
        !           590:  567  000244A9                                   #               }
        !           591:  568  000244A9                                   #           if ( halt_flg )                   /* halt on error?          */
        !           592:  569  000244A9                                  L286:
        !           593:  570  000244A9    5d effffffa85                        tstl    _halt_flg
        !           594:  571  000244AF    31 09                                jeql    L292
        !           595:  572  000244B1                                   #                   mull2_halt( 2 );
        !           596:  573  000244B1    dd 02                                pushl   $2
        !           597:  574  000244B3    fe 08 ef00000676                     callf   $8,_mull2_halt
        !           598:  575  000244BA                                   #               if ( loop_on_err ) {
        !           599:  576  000244BA                                  L292:
        !           600:  577  000244BA    5d effffffa74                        tstl    _loop_on_err
        !           601:  578  000244C0    31 0d                                jeql    L293
        !           602:  579  000244C2                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           603:  580  000244C2    0d 01 effffffa6b                     movl    $1,_force_loop
        !           604:  581  000244C9                                   #                   asm("jmp _mull2_3_lp1");      /* and loop                */
        !           605:  582  000244C9    71 effffffee5                 jmp _mull2_3_lp1
        !           606:  583  000244CF                                   #               };  /* end of loop-on-error */
        !           607:  584  000244CF                                  L293:
        !           608:  585  000244CF                                   #            } /* end of multiply error */
        !           609:  586  000244CF                                   #         }
        !           610:  587  000244CF                                  L285:
        !           611:  588  000244CF                                  L279:
        !           612:  589  000244CF    6d effffffa5f                        incl    _index
        !           613:  590  000244D5    13 fe93                              jbr     L281
        !           614:  591  000244D8                                  L280:
        !           615:  592  000244D8                                   # }  /* end of subtest 3 */
        !           616:  593  000244D8    40                                   ret#2
        !           617:  594  000244D9                                         .set    L274,0x0
        !           618:  595  000244D9                                  L276:
        !           619:  596  000244D9    13 fe6f                              jbr     L277
        !           620:  597  000244DC                                         .data
        !           621:  598  00000d58 *                                       .text
        !           622:  599  000244DC                                         .align  1
        !           623:  600  000244DC                                         .globl  _mull2_4
        !           624:  601  000244DC                                  _mull2_4:
        !           625:  602  000244DC    0000                                 .word   L294
        !           626:  603  000244DE                                   #   
        !           627:  604  000244DE                                   # 
        !           628:  605  000244DE                                   # 
        !           629:  606  000244DE                                   # /************************************************************************
        !           630:  607  000244DE                                   # *
        !           631:  608  000244DE                                   # *               SUBTEST 4 - PSL corruption test
        !           632:  609  000244DE                                   # *
        !           633:  610  000244DE                                   # ************************************************************************/
        !           634:  611  000244DE                                   # mull2_4() 
        !           635:  612  000244DE                                   # {
        !           636:  613  000244DE    13 01a2                              jbr     L296
        !           637:  614  000244E1                                  L297:
        !           638:  615  000244E1                                   #         force_loop = FALSE;
        !           639:  616  000244E1    4d effffffa4d                        clrl    _force_loop
        !           640:  617  000244E7                                   #         subtest = 4;
        !           641:  618  000244E7    0d 04 effffffa46                     movl    $4,_subtest
        !           642:  619  000244EE                                   #     status_index = 0;
        !           643:  620  000244EE    4d effffffa40                        clrl    _status_index
        !           644:  621  000244F4                                   #     for( index = 0; index < max_mull_1_index; index++ ) {
        !           645:  622  000244F4    4d effffffa3a                        clrl    _index
        !           646:  623  000244FA                                  L300:
        !           647:  624  000244FA    1d effffffa34 effffffa2f             cmpl    _index,_max_mull_1_index
        !           648:  625  00024505    91 03 13 0178                        jgeq    L299
        !           649:  626  0002450A                                   #            sgl_value_1  = mull_1_data[index].op_1; /* get operand 1        */
        !           650:  627  0002450A    5c 0c effffffa23 50                  mull3   $12,_index,r0
        !           651:  628  00024512    0d e000000000 effffffa17             movl    _mull_1_data(r0),_sgl_value_1
        !           652:  629  0002451D                                   #            sgl_value_2  = mull_1_data[index].op_2; /* get operand 2        */
        !           653:  630  0002451D    5c 0c effffffa10 50                  mull3   $12,_index,r0
        !           654:  631  00024525    0d e000000004 effffffa04             movl    _mull_1_data+4(r0),_sgl_value_2
        !           655:  632  00024530                                   #            sgl_value_4  = mull_1_data[index].exp;  /* get expected results */
        !           656:  633  00024530    5c 0c effffff9fd 50                  mull3   $12,_index,r0
        !           657:  634  00024538    0d e000000008 effffff9f1             movl    _mull_1_data+8(r0),_sgl_value_4
        !           658:  635  00024543                                   #            sgl_dummy1   = status_array[status_index]; /* status = +, -, 0 */
        !           659:  636  00024543    0d effffff9eb 50                     movl    _status_index,r0
        !           660:  637  0002454A    0d 40effffff9e3                      movl    _status_array[r0],_sgl_dummy1
        !           661:                   effffff9de 
        !           662:  638  00024556                                   # /*
        !           663:  639  00024556                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           664:  640  00024556                                   # */
        !           665:  641  00024556                                   #            asm("_mull2_4_lp1:");
        !           666:  642  00024556                                  _mull2_4_lp1:
        !           667:  643  00024556                                   #        sgl_value_3 = sgl_value_2;           /* set operand 2        */
        !           668:  644  00024556    0d effffff9d8 effffff9d3             movl    _sgl_value_2,_sgl_value_3
        !           669:  645  00024561                                   #            asm("tstl _sgl_dummy1");
        !           670:  646  00024561    5d effffff9cd                 tstl _sgl_dummy1
        !           671:  647  00024567                                   #        asm("movpsl _init_psl");             /* save the initial PSL */
        !           672:  648  00024567    cd effffff9c7                 movpsl _init_psl
        !           673:  649  0002456D                                   #        asm("mull2 _sgl_value_1,_sgl_value_3");/* do the multiply    */
        !           674:  650  0002456D    4c effffff9c1 effffff9bc      mull2 _sgl_value_1,_sgl_value_3
        !           675:  651  00024578                                   #        asm("movpsl _psl_val");              /* save the final PSL   */
        !           676:  652  00024578    cd effffff9b6                 movpsl _psl_val
        !           677:  653  0002457E                                   #        if( force_loop )
        !           678:  654  0002457E    5d effffff9b0                        tstl    _force_loop
        !           679:  655  00024584    31 02                                jeql    L301
        !           680:  656  00024586                                   #                 asm("brb _mull2_4_lp1");
        !           681:  657  00024586    11 ce                         brb _mull2_4_lp1
        !           682:  658  00024588                                   # /*
        !           683:  659  00024588                                   #  * Now check the result
        !           684:  660  00024588                                   # */
        !           685:  661  00024588                                   #         exp_psl = init_psl & 0xffffff3;             /* strip off the PSL status */
        !           686:  662  00024588                                  L301:
        !           687:  663  00024588    bc 8f0ffffff3 effffff9a1             andl3   $268435443,_init_psl,r0
        !           688:                   50 
        !           689:  664  00024594    0d 50 effffff999                     movl    r0,_exp_psl
        !           690:  665  0002459B                                   #     if( sgl_value_4 < 0 )                   /* check the MULL result */
        !           691:  666  0002459B    5d effffff993                        tstl    _sgl_value_4
        !           692:  667  000245A1    81 07                                jgeq    L302
        !           693:  668  000245A3                                   #        exp_psl |= PSL_N;                    /* set the NEGATIVE bit */
        !           694:  669  000245A3    8c 08 effffff98a                     orl2    $8,_exp_psl
        !           695:  670  000245AA                                   #     if( !sgl_value_4 )
        !           696:  671  000245AA                                  L302:
        !           697:  672  000245AA    5d effffff984                        tstl    _sgl_value_4
        !           698:  673  000245B0    21 07                                jneq    L303
        !           699:  674  000245B2                                   #        exp_psl |= PSL_Z;                    /* set the ZERO bit */
        !           700:  675  000245B2    8c 04 effffff97b                     orl2    $4,_exp_psl
        !           701:  676  000245B9                                   #         if( psl_val != exp_psl ) {          /* was the final PSL correct */
        !           702:  677  000245B9                                  L303:
        !           703:  678  000245B9    1d effffff975 effffff970             cmpl    _psl_val,_exp_psl
        !           704:  679  000245C4    21 03 13 0098                        jeql    L304
        !           705:  680  000245C9                                   #               errcnt++;                         /* bump the error count    */
        !           706:  681  000245C9    6d effffff965                        incl    _errcnt
        !           707:  682  000245CF                                   #           if ( prt_error ) {
        !           708:  683  000245CF    5d effffff95f                        tstl    _prt_error
        !           709:  684  000245D5    31 64                                jeql    L305
        !           710:  685  000245D7                                   #                   print_mull2_error(" -INCORRECT FINAL PSL");
        !           711:  686  000245D7                                         .data   1
        !           712:  687  00000ec2 *                                L306:
        !           713:  688  00000ec2 *  202D494E434F5252454354204            .ascii  " -INCORRECT FINAL PSL\0"
        !           714:                   6494E414C2050534C00
        !           715:  689  00000ed8 *                                       .text
        !           716:  690  000245D7    dd 8f00000ec2                        pushl   $L306
        !           717:  691  000245DD    fe 08 ef00000446                     callf   $8,_print_mull2_error
        !           718:  692  000245E4                                   #                   writes("initial PSL = ");
        !           719:  693  000245E4                                         .data   1
        !           720:  694  00000ed8 *                                L307:
        !           721:  695  00000ed8 *  696E697469616C2050534C203            .ascii  "initial PSL = \0"
        !           722:                   D2000
        !           723:  696  00000ee7 *                                       .text
        !           724:  697  000245E4    dd 8f00000ed8                        pushl   $L307
        !           725:  698  000245EA    fe 08 effffff943                     callf   $8,_writes
        !           726:  699  000245F1                                   #               write32h( init_psl );
        !           727:  700  000245F1    dd effffff93d                        pushl   _init_psl
        !           728:  701  000245F7    fe 08 effffff936                     callf   $8,_write32h
        !           729:  702  000245FE                                   #               writes(",  final PSL = ");
        !           730:  703  000245FE                                         .data   1
        !           731:  704  00000ee7 *                                L308:
        !           732:  705  00000ee7 *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
        !           733:                   03D2000
        !           734:  706  00000ef7 *                                       .text
        !           735:  707  000245FE    dd 8f00000ee7                        pushl   $L308
        !           736:  708  00024604    fe 08 effffff929                     callf   $8,_writes
        !           737:  709  0002460B                                   #               write32h( psl_val );
        !           738:  710  0002460B    dd effffff923                        pushl   _psl_val
        !           739:  711  00024611    fe 08 effffff91c                     callf   $8,_write32h
        !           740:  712  00024618                                   #               writes(",  expected PSL = ");
        !           741:  713  00024618                                         .data   1
        !           742:  714  00000ef7 *                                L309:
        !           743:  715  00000ef7 *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
        !           744:                   0534C203D2000
        !           745:  716  00000f0a *                                       .text
        !           746:  717  00024618    dd 8f00000ef7                        pushl   $L309
        !           747:  718  0002461E    fe 08 effffff90f                     callf   $8,_writes
        !           748:  719  00024625                                   #               write32h( exp_psl );
        !           749:  720  00024625    dd effffff909                        pushl   _exp_psl
        !           750:  721  0002462B    fe 08 effffff902                     callf   $8,_write32h
        !           751:  722  00024632                                   #                   writec('\n');
        !           752:  723  00024632    dd 0a                                pushl   $10
        !           753:  724  00024634    fe 08 effffff8f9                     callf   $8,_writec
        !           754:  725  0002463B                                   #               }
        !           755:  726  0002463B                                   #           if ( halt_flg )                   /* halt on error?          */
        !           756:  727  0002463B                                  L305:
        !           757:  728  0002463B    5d effffff8f3                        tstl    _halt_flg
        !           758:  729  00024641    31 09                                jeql    L310
        !           759:  730  00024643                                   #                   mull2_halt( 3 );
        !           760:  731  00024643    dd 03                                pushl   $3
        !           761:  732  00024645    fe 08 ef000004e4                     callf   $8,_mull2_halt
        !           762:  733  0002464C                                   #               if ( loop_on_err ) {
        !           763:  734  0002464C                                  L310:
        !           764:  735  0002464C    5d effffff8e2                        tstl    _loop_on_err
        !           765:  736  00024652    31 0d                                jeql    L311
        !           766:  737  00024654                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           767:  738  00024654    0d 01 effffff8d9                     movl    $1,_force_loop
        !           768:  739  0002465B                                   #                   asm("jmp _mull2_4_lp1");      /* and loop                */
        !           769:  740  0002465B    71 effffffef5                 jmp _mull2_4_lp1
        !           770:  741  00024661                                   #               };  /* end of loop-on-error */
        !           771:  742  00024661                                  L311:
        !           772:  743  00024661                                   #            }; /* end of error */
        !           773:  744  00024661                                  L304:
        !           774:  745  00024661                                   #        if( ++status_index >= 3 )
        !           775:  746  00024661    6d effffff8cd                        incl    _status_index
        !           776:  747  00024667    0d effffff8c7 50                     movl    _status_index,r0
        !           777:  748  0002466E    1d 50 03                             cmpl    r0,$3
        !           778:  749  00024671    91 06                                jlss    L312
        !           779:  750  00024673                                   #           status_index = 0;
        !           780:  751  00024673    4d effffff8bb                        clrl    _status_index
        !           781:  752  00024679                                   #         }
        !           782:  753  00024679                                  L312:
        !           783:  754  00024679                                  L298:
        !           784:  755  00024679    6d effffff8b5                        incl    _index
        !           785:  756  0002467F    13 fe78                              jbr     L300
        !           786:  757  00024682                                  L299:
        !           787:  758  00024682                                   # }  /* end of subtest 4 */
        !           788:  759  00024682    40                                   ret#2
        !           789:  760  00024683                                         .set    L294,0x0
        !           790:  761  00024683                                  L296:
        !           791:  762  00024683    13 fe5b                              jbr     L297
        !           792:  763  00024686                                         .data
        !           793:  764  00000d58 *                                       .text
        !           794:  765  00024686                                         .align  1
        !           795:  766  00024686                                         .globl  _mull2_5
        !           796:  767  00024686                                  _mull2_5:
        !           797:  768  00024686    0000                                 .word   L313
        !           798:  769  00024688                                   #   
        !           799:  770  00024688                                   # 
        !           800:  771  00024688                                   # 
        !           801:  772  00024688                                   # /************************************************************************
        !           802:  773  00024688                                   # *
        !           803:  774  00024688                                   # *        SUBTEST 5 - Pipelined Entry test
        !           804:  775  00024688                                   # *
        !           805:  776  00024688                                   # ************************************************************************/
        !           806:  777  00024688                                   # mull2_5() 
        !           807:  778  00024688                                   # {
        !           808:  779  00024688    13 01ca                              jbr     L315
        !           809:  780  0002468B                                  L316:
        !           810:  781  0002468B                                   #         force_loop = FALSE;
        !           811:  782  0002468B    4d effffff8a3                        clrl    _force_loop
        !           812:  783  00024691                                   #         subtest = 5;
        !           813:  784  00024691    0d 05 effffff89c                     movl    $5,_subtest
        !           814:  785  00024698                                   #         for( index = 0; index < max_mull_1_index; index++ ) {
        !           815:  786  00024698    4d effffff896                        clrl    _index
        !           816:  787  0002469E                                  L319:
        !           817:  788  0002469E    1d effffff890 effffff88b             cmpl    _index,_max_mull_1_index
        !           818:  789  000246A9    91 03 13 01a6                        jgeq    L318
        !           819:  790  000246AE                                   #            sgl_value_1  = mull_1_data[index].op_1; /* get operand 1        */
        !           820:  791  000246AE    5c 0c effffff87f 50                  mull3   $12,_index,r0
        !           821:  792  000246B6    0d e000000000 effffff873             movl    _mull_1_data(r0),_sgl_value_1
        !           822:  793  000246C1                                   #            sgl_value_2  = mull_1_data[index].op_2; /* get operand 2        */
        !           823:  794  000246C1    5c 0c effffff86c 50                  mull3   $12,_index,r0
        !           824:  795  000246C9    0d e000000004 effffff860             movl    _mull_1_data+4(r0),_sgl_value_2
        !           825:  796  000246D4                                   #        sgl_value_4  = mull_1_data[index].exp;  /* get expected results */
        !           826:  797  000246D4    5c 0c effffff859 50                  mull3   $12,_index,r0
        !           827:  798  000246DC    0d e000000008 effffff84d             movl    _mull_1_data+8(r0),_sgl_value_4
        !           828:  799  000246E7                                   #            sgl_ld_acc   = 0x12345678;                  /* set acc data pattern */
        !           829:  800  000246E7    0d 8f12345678 effffff842             movl    $305419896,_sgl_ld_acc
        !           830:  801  000246F2                                   #        sgl_expected = sgl_ld_acc;              /* final Acc expected   */
        !           831:  802  000246F2    0d effffff83c effffff837             movl    _sgl_ld_acc,_sgl_expected
        !           832:  803  000246FD                                   #        sgl_value_10 = 0x40800000;              /* floating "1.0"       */
        !           833:  804  000246FD    0d 8f40800000 effffff82c             movl    $1082130432,_sgl_value_10
        !           834:  805  00024708                                   # /*
        !           835:  806  00024708                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           836:  807  00024708                                   # */
        !           837:  808  00024708                                   #            asm("_mull2_5_lp1:");
        !           838:  809  00024708                                  _mull2_5_lp1:
        !           839:  810  00024708                                   #        sgl_value_3 = sgl_value_2;           /* set integer operand 2   */
        !           840:  811  00024708    0d effffff826 effffff821             movl    _sgl_value_2,_sgl_value_3
        !           841:  812  00024713                                   #            asm("ldf _sgl_ld_acc");          /* load the acc            */
        !           842:  813  00024713    06 effffff81b                 ldf _sgl_ld_acc
        !           843:  814  00024719                                   #        asm("mulf _sgl_value_10");           /* do a floating multiply  */
        !           844:  815  00024719    e6 effffff815                 mulf _sgl_value_10
        !           845:  816  0002471F                                   #        asm("mull2 _sgl_value_1,_sgl_value_3"); /* do the int. multiply */
        !           846:  817  0002471F    4c effffff80f effffff80a      mull2 _sgl_value_1,_sgl_value_3
        !           847:  818  0002472A                                   #            asm("nop");
        !           848:  819  0002472A    10                            nop
        !           849:  820  0002472B                                   #        asm("stf _sgl_st_acc");              /* save the acc            */
        !           850:  821  0002472B    26 effffff803                 stf _sgl_st_acc
        !           851:  822  00024731                                   #            if( force_loop )
        !           852:  823  00024731    5d effffff7fd                        tstl    _force_loop
        !           853:  824  00024737    31 02                                jeql    L320
        !           854:  825  00024739                                   #                 asm("brb _mull2_5_lp1");;
        !           855:  826  00024739    11 cd                         brb _mull2_5_lp1
        !           856:  827  0002473B                                  L320:
        !           857:  828  0002473B                                   #        if( sgl_expected != sgl_st_acc )  {   /* COMPARE the values      */
        !           858:  829  0002473B    1d effffff7f3 effffff7ee             cmpl    _sgl_expected,_sgl_st_acc
        !           859:  830  00024746    21 03 13 00b2                        jeql    L321
        !           860:  831  0002474B                                   #               errcnt++;                         /* bump the error count    */
        !           861:  832  0002474B    6d effffff7e3                        incl    _errcnt
        !           862:  833  00024751                                   #               if ( prt_error ) {
        !           863:  834  00024751    5d effffff7dd                        tstl    _prt_error
        !           864:  835  00024757    31 7e                                jeql    L322
        !           865:  836  00024759                                   #                   print_mull2_error("(Piped Entry) -BAD FINAL ACC");
        !           866:  837  00024759                                         .data   1
        !           867:  838  00000f0a *                                L323:
        !           868:  839  00000f0a *  28506970656420456E7472792            .ascii  "(Piped Entry) -BAD FINAL ACC\0"
        !           869:                   9202D4241442046494E414C20
        !           870:                   41434300
        !           871:  840  00000f27 *                                       .text
        !           872:  841  00024759    dd 8f00000f0a                        pushl   $L323
        !           873:  842  0002475F    fe 08 ef000002c4                     callf   $8,_print_mull2_error
        !           874:  843  00024766                                   #               writes("initial Acc = ");
        !           875:  844  00024766                                         .data   1
        !           876:  845  00000f27 *                                L324:
        !           877:  846  00000f27 *  696E697469616C20416363203            .ascii  "initial Acc = \0"
        !           878:                   D2000
        !           879:  847  00000f36 *                                       .text
        !           880:  848  00024766    dd 8f00000f27                        pushl   $L324
        !           881:  849  0002476C    fe 08 effffff7c1                     callf   $8,_writes
        !           882:  850  00024773                                   #                   write32h( sgl_ld_acc );
        !           883:  851  00024773    dd effffff7bb                        pushl   _sgl_ld_acc
        !           884:  852  00024779    fe 08 effffff7b4                     callf   $8,_write32h
        !           885:  853  00024780                                   #                   writes(",     final Acc = ");
        !           886:  854  00024780                                         .data   1
        !           887:  855  00000f36 *                                L325:
        !           888:  856  00000f36 *  2C202020202066696E616C204            .ascii  ",     final Acc = \0"
        !           889:                   16363203D2000
        !           890:  857  00000f49 *                                       .text
        !           891:  858  00024780    dd 8f00000f36                        pushl   $L325
        !           892:  859  00024786    fe 08 effffff7a7                     callf   $8,_writes
        !           893:  860  0002478D                                   #                   write32h( sgl_st_acc );
        !           894:  861  0002478D    dd effffff7a1                        pushl   _sgl_st_acc
        !           895:  862  00024793    fe 08 effffff79a                     callf   $8,_write32h
        !           896:  863  0002479A                                   #               writes("\nFPP operand = ");
        !           897:  864  0002479A                                         .data   1
        !           898:  865  00000f49 *                                L326:
        !           899:  866  00000f49 *  0A465050206F706572616E642            .ascii  "\12FPP operand = \0"
        !           900:                   03D2000
        !           901:  867  00000f59 *                                       .text
        !           902:  868  0002479A    dd 8f00000f49                        pushl   $L326
        !           903:  869  000247A0    fe 08 effffff78d                     callf   $8,_writes
        !           904:  870  000247A7                                   #               write32h( sgl_value_10 );
        !           905:  871  000247A7    dd effffff787                        pushl   _sgl_value_10
        !           906:  872  000247AD    fe 08 effffff780                     callf   $8,_write32h
        !           907:  873  000247B4                                   #               writes(",  expected Acc = ");
        !           908:  874  000247B4                                         .data   1
        !           909:  875  00000f59 *                                L327:
        !           910:  876  00000f59 *  2C20206578706563746564204            .ascii  ",  expected Acc = \0"
        !           911:                   16363203D2000
        !           912:  877  00000f6c *                                       .text
        !           913:  878  000247B4    dd 8f00000f59                        pushl   $L327
        !           914:  879  000247BA    fe 08 effffff773                     callf   $8,_writes
        !           915:  880  000247C1                                   #                   write32h( sgl_expected );
        !           916:  881  000247C1    dd effffff76d                        pushl   _sgl_expected
        !           917:  882  000247C7    fe 08 effffff766                     callf   $8,_write32h
        !           918:  883  000247CE                                   #                   writec('\n');
        !           919:  884  000247CE    dd 0a                                pushl   $10
        !           920:  885  000247D0    fe 08 effffff75d                     callf   $8,_writec
        !           921:  886  000247D7                                   #               }
        !           922:  887  000247D7                                   #           if ( halt_flg )                   /* halt on error?          */
        !           923:  888  000247D7                                  L322:
        !           924:  889  000247D7    5d effffff757                        tstl    _halt_flg
        !           925:  890  000247DD    31 09                                jeql    L328
        !           926:  891  000247DF                                   #                   mull2_halt( 5 );
        !           927:  892  000247DF    dd 05                                pushl   $5
        !           928:  893  000247E1    fe 08 ef00000348                     callf   $8,_mull2_halt
        !           929:  894  000247E8                                   #               if ( loop_on_err ) {
        !           930:  895  000247E8                                  L328:
        !           931:  896  000247E8    5d effffff746                        tstl    _loop_on_err
        !           932:  897  000247EE    31 0d                                jeql    L329
        !           933:  898  000247F0                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           934:  899  000247F0    0d 01 effffff73d                     movl    $1,_force_loop
        !           935:  900  000247F7                                   #                   asm("jmp _mull2_5_lp1");      /* and loop                */
        !           936:  901  000247F7    71 efffffff0b                 jmp _mull2_5_lp1
        !           937:  902  000247FD                                   #               }  /* end of loop-on-error */
        !           938:  903  000247FD                                   #            } /* end of acc corr error */
        !           939:  904  000247FD                                  L329:
        !           940:  905  000247FD                                   #        if( sgl_value_4 != sgl_value_3 )    /* COMPARE the values      */
        !           941:  906  000247FD                                  L321:
        !           942:  907  000247FD    1d effffff731 effffff72c             cmpl    _sgl_value_4,_sgl_value_3
        !           943:  908  00024808    31 41                                jeql    L330
        !           944:  909  0002480A                                   #            {
        !           945:  910  0002480A                                   #               errcnt++;                         /* bump the error count    */
        !           946:  911  0002480A    6d effffff724                        incl    _errcnt
        !           947:  912  00024810                                   #               if ( prt_error ) {
        !           948:  913  00024810    5d effffff71e                        tstl    _prt_error
        !           949:  914  00024816    31 0d                                jeql    L331
        !           950:  915  00024818                                   #                   print_mull2_error("(Piped Entry) -BAD MULTIPLY RESULT");
        !           951:  916  00024818                                         .data   1
        !           952:  917  00000f6c *                                L332:
        !           953:  918  00000f6c *  28506970656420456E7472792            .ascii  "(Piped Entry) -BAD MULTIPLY RESULT\0"
        !           954:                   9202D424144204D554C544950
        !           955:                   4C5920524553554C5400
        !           956:  919  00000f8f *                                       .text
        !           957:  920  00024818    dd 8f00000f6c                        pushl   $L332
        !           958:  921  0002481E    fe 08 ef00000205                     callf   $8,_print_mull2_error
        !           959:  922  00024825                                   #               }
        !           960:  923  00024825                                   #           if ( halt_flg )                   /* halt on error?          */
        !           961:  924  00024825                                  L331:
        !           962:  925  00024825    5d effffff709                        tstl    _halt_flg
        !           963:  926  0002482B    31 09                                jeql    L333
        !           964:  927  0002482D                                   #                   mull2_halt( 1 );
        !           965:  928  0002482D    dd 01                                pushl   $1
        !           966:  929  0002482F    fe 08 ef000002fa                     callf   $8,_mull2_halt
        !           967:  930  00024836                                   #               if ( loop_on_err ) {
        !           968:  931  00024836                                  L333:
        !           969:  932  00024836    5d effffff6f8                        tstl    _loop_on_err
        !           970:  933  0002483C    31 0d                                jeql    L334
        !           971:  934  0002483E                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !           972:  935  0002483E    0d 01 effffff6ef                     movl    $1,_force_loop
        !           973:  936  00024845                                   #                   asm("jmp _mull2_5_lp1");      /* and loop                */
        !           974:  937  00024845    71 effffffebd                 jmp _mull2_5_lp1
        !           975:  938  0002484B                                   #               }  /* end of loop-on-error */
        !           976:  939  0002484B                                   #            } /* end of multiply error */
        !           977:  940  0002484B                                  L334:
        !           978:  941  0002484B                                   #         }
        !           979:  942  0002484B                                  L330:
        !           980:  943  0002484B                                  L317:
        !           981:  944  0002484B    6d effffff6e3                        incl    _index
        !           982:  945  00024851    13 fe4a                              jbr     L319
        !           983:  946  00024854                                  L318:
        !           984:  947  00024854                                   # }  /* end of subtest 5 */
        !           985:  948  00024854    40                                   ret#2
        !           986:  949  00024855                                         .set    L313,0x0
        !           987:  950  00024855                                  L315:
        !           988:  951  00024855    13 fe33                              jbr     L316
        !           989:  952  00024858                                         .data
        !           990:  953  00000d58 *                                       .text
        !           991:  954  00024858                                         .align  1
        !           992:  955  00024858                                         .globl  _mull2_6
        !           993:  956  00024858                                  _mull2_6:
        !           994:  957  00024858    0000                                 .word   L335
        !           995:  958  0002485A                                   #   
        !           996:  959  0002485A                                   # 
        !           997:  960  0002485A                                   # 
        !           998:  961  0002485A                                   # /************************************************************************
        !           999:  962  0002485A                                   # *
        !          1000:  963  0002485A                                   # *        SUBTEST 6 - Pipelined Exit test
        !          1001:  964  0002485A                                   # *
        !          1002:  965  0002485A                                   # ************************************************************************/
        !          1003:  966  0002485A                                   # mull2_6() 
        !          1004:  967  0002485A                                   # {
        !          1005:  968  0002485A    13 01c9                              jbr     L337
        !          1006:  969  0002485D                                  L338:
        !          1007:  970  0002485D                                   #         force_loop = FALSE;
        !          1008:  971  0002485D    4d effffff6d1                        clrl    _force_loop
        !          1009:  972  00024863                                   #         subtest = 6;
        !          1010:  973  00024863    0d 06 effffff6ca                     movl    $6,_subtest
        !          1011:  974  0002486A                                   #         for( index = 0; index < max_mull_1_index; index++ ) {
        !          1012:  975  0002486A    4d effffff6c4                        clrl    _index
        !          1013:  976  00024870                                  L341:
        !          1014:  977  00024870    1d effffff6be effffff6b9             cmpl    _index,_max_mull_1_index
        !          1015:  978  0002487B    91 03 13 01a5                        jgeq    L340
        !          1016:  979  00024880                                   #            sgl_value_1  = mull_1_data[index].op_1; /* get operand 1        */
        !          1017:  980  00024880    5c 0c effffff6ad 50                  mull3   $12,_index,r0
        !          1018:  981  00024888    0d e000000000 effffff6a1             movl    _mull_1_data(r0),_sgl_value_1
        !          1019:  982  00024893                                   #            sgl_value_2  = mull_1_data[index].op_2; /* get operand 2        */
        !          1020:  983  00024893    5c 0c effffff69a 50                  mull3   $12,_index,r0
        !          1021:  984  0002489B    0d e000000004 effffff68e             movl    _mull_1_data+4(r0),_sgl_value_2
        !          1022:  985  000248A6                                   #        sgl_value_4  = mull_1_data[index].exp;  /* get expected results */
        !          1023:  986  000248A6    5c 0c effffff687 50                  mull3   $12,_index,r0
        !          1024:  987  000248AE    0d e000000008 effffff67b             movl    _mull_1_data+8(r0),_sgl_value_4
        !          1025:  988  000248B9                                   #        sgl_ld_acc   = 0x40800000;              /* floating "1.0"       */
        !          1026:  989  000248B9    0d 8f40800000 effffff670             movl    $1082130432,_sgl_ld_acc
        !          1027:  990  000248C4                                   #            sgl_value_10 = 0x12345678;                  /* set acc data pattern */
        !          1028:  991  000248C4    0d 8f12345678 effffff665             movl    $305419896,_sgl_value_10
        !          1029:  992  000248CF                                   #        sgl_expected = sgl_value_10;            /* final Acc expected   */
        !          1030:  993  000248CF    0d effffff65f effffff65a             movl    _sgl_value_10,_sgl_expected
        !          1031:  994  000248DA                                   # /*
        !          1032:  995  000248DA                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !          1033:  996  000248DA                                   # */
        !          1034:  997  000248DA                                   #            asm("_mull2_6_lp1:");
        !          1035:  998  000248DA                                  _mull2_6_lp1:
        !          1036:  999  000248DA                                   #        sgl_value_3 = sgl_value_2;           /* set integer operand 2   */
        !          1037: 1000  000248DA    0d effffff654 effffff64f             movl    _sgl_value_2,_sgl_value_3
        !          1038: 1001  000248E5                                   #            asm("ldf _sgl_ld_acc");          /* load the acc            */
        !          1039: 1002  000248E5    06 effffff649                 ldf _sgl_ld_acc
        !          1040: 1003  000248EB                                   #        asm("mull2 _sgl_value_1,_sgl_value_3"); /* do the int. multiply */
        !          1041: 1004  000248EB    4c effffff643 effffff63e      mull2 _sgl_value_1,_sgl_value_3
        !          1042: 1005  000248F6                                   #        asm("mulf _sgl_value_10");           /* do a floating multiply  */
        !          1043: 1006  000248F6    e6 effffff638                 mulf _sgl_value_10
        !          1044: 1007  000248FC                                   #            asm("stf _sgl_st_acc");          /* save the acc            */
        !          1045: 1008  000248FC    26 effffff632                 stf _sgl_st_acc
        !          1046: 1009  00024902                                   #            if( force_loop )
        !          1047: 1010  00024902    5d effffff62c                        tstl    _force_loop
        !          1048: 1011  00024908    31 02                                jeql    L342
        !          1049: 1012  0002490A                                   #                 asm("brb _mull2_6_lp1");;
        !          1050: 1013  0002490A    11 ce                         brb _mull2_6_lp1
        !          1051: 1014  0002490C                                  L342:
        !          1052: 1015  0002490C                                   #        if( sgl_expected != sgl_st_acc )  {   /* COMPARE the values      */
        !          1053: 1016  0002490C    1d effffff622 effffff61d             cmpl    _sgl_expected,_sgl_st_acc
        !          1054: 1017  00024917    21 03 13 00b2                        jeql    L343
        !          1055: 1018  0002491C                                   #               errcnt++;                         /* bump the error count    */
        !          1056: 1019  0002491C    6d effffff612                        incl    _errcnt
        !          1057: 1020  00024922                                   #               if ( prt_error ) {
        !          1058: 1021  00024922    5d effffff60c                        tstl    _prt_error
        !          1059: 1022  00024928    31 7e                                jeql    L344
        !          1060: 1023  0002492A                                   #                   print_mull2_error("(Piped Exit) -BAD FINAL ACC");
        !          1061: 1024  0002492A                                         .data   1
        !          1062: 1025  00000f8f *                                L345:
        !          1063: 1026  00000f8f *  2850697065642045786974292            .ascii  "(Piped Exit) -BAD FINAL ACC\0"
        !          1064:                   02D4241442046494E414C2041
        !          1065:                   434300
        !          1066: 1027  00000fab *                                       .text
        !          1067: 1028  0002492A    dd 8f00000f8f                        pushl   $L345
        !          1068: 1029  00024930    fe 08 ef000000f3                     callf   $8,_print_mull2_error
        !          1069: 1030  00024937                                   #               writes("initial Acc = ");
        !          1070: 1031  00024937                                         .data   1
        !          1071: 1032  00000fab *                                L346:
        !          1072: 1033  00000fab *  696E697469616C20416363203            .ascii  "initial Acc = \0"
        !          1073:                   D2000
        !          1074: 1034  00000fba *                                       .text
        !          1075: 1035  00024937    dd 8f00000fab                        pushl   $L346
        !          1076: 1036  0002493D    fe 08 effffff5f0                     callf   $8,_writes
        !          1077: 1037  00024944                                   #                   write32h( sgl_ld_acc );
        !          1078: 1038  00024944    dd effffff5ea                        pushl   _sgl_ld_acc
        !          1079: 1039  0002494A    fe 08 effffff5e3                     callf   $8,_write32h
        !          1080: 1040  00024951                                   #                   writes(",     final Acc = ");
        !          1081: 1041  00024951                                         .data   1
        !          1082: 1042  00000fba *                                L347:
        !          1083: 1043  00000fba *  2C202020202066696E616C204            .ascii  ",     final Acc = \0"
        !          1084:                   16363203D2000
        !          1085: 1044  00000fcd *                                       .text
        !          1086: 1045  00024951    dd 8f00000fba                        pushl   $L347
        !          1087: 1046  00024957    fe 08 effffff5d6                     callf   $8,_writes
        !          1088: 1047  0002495E                                   #                   write32h( sgl_st_acc );
        !          1089: 1048  0002495E    dd effffff5d0                        pushl   _sgl_st_acc
        !          1090: 1049  00024964    fe 08 effffff5c9                     callf   $8,_write32h
        !          1091: 1050  0002496B                                   #               writes("\nFPP operand = ");
        !          1092: 1051  0002496B                                         .data   1
        !          1093: 1052  00000fcd *                                L348:
        !          1094: 1053  00000fcd *  0A465050206F706572616E642            .ascii  "\12FPP operand = \0"
        !          1095:                   03D2000
        !          1096: 1054  00000fdd *                                       .text
        !          1097: 1055  0002496B    dd 8f00000fcd                        pushl   $L348
        !          1098: 1056  00024971    fe 08 effffff5bc                     callf   $8,_writes
        !          1099: 1057  00024978                                   #               write32h( sgl_value_10 );
        !          1100: 1058  00024978    dd effffff5b6                        pushl   _sgl_value_10
        !          1101: 1059  0002497E    fe 08 effffff5af                     callf   $8,_write32h
        !          1102: 1060  00024985                                   #               writes(",  expected Acc = ");
        !          1103: 1061  00024985                                         .data   1
        !          1104: 1062  00000fdd *                                L349:
        !          1105: 1063  00000fdd *  2C20206578706563746564204            .ascii  ",  expected Acc = \0"
        !          1106:                   16363203D2000
        !          1107: 1064  00000ff0 *                                       .text
        !          1108: 1065  00024985    dd 8f00000fdd                        pushl   $L349
        !          1109: 1066  0002498B    fe 08 effffff5a2                     callf   $8,_writes
        !          1110: 1067  00024992                                   #                   write32h( sgl_expected );
        !          1111: 1068  00024992    dd effffff59c                        pushl   _sgl_expected
        !          1112: 1069  00024998    fe 08 effffff595                     callf   $8,_write32h
        !          1113: 1070  0002499F                                   #                   writec('\n');
        !          1114: 1071  0002499F    dd 0a                                pushl   $10
        !          1115: 1072  000249A1    fe 08 effffff58c                     callf   $8,_writec
        !          1116: 1073  000249A8                                   #               }
        !          1117: 1074  000249A8                                   #           if ( halt_flg )                   /* halt on error?          */
        !          1118: 1075  000249A8                                  L344:
        !          1119: 1076  000249A8    5d effffff586                        tstl    _halt_flg
        !          1120: 1077  000249AE    31 09                                jeql    L350
        !          1121: 1078  000249B0                                   #                   mull2_halt( 5 );
        !          1122: 1079  000249B0    dd 05                                pushl   $5
        !          1123: 1080  000249B2    fe 08 ef00000177                     callf   $8,_mull2_halt
        !          1124: 1081  000249B9                                   #               if ( loop_on_err ) {
        !          1125: 1082  000249B9                                  L350:
        !          1126: 1083  000249B9    5d effffff575                        tstl    _loop_on_err
        !          1127: 1084  000249BF    31 0d                                jeql    L351
        !          1128: 1085  000249C1                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !          1129: 1086  000249C1    0d 01 effffff56c                     movl    $1,_force_loop
        !          1130: 1087  000249C8                                   #                   asm("jmp _mull2_6_lp1");      /* and loop                */
        !          1131: 1088  000249C8    71 efffffff0c                 jmp _mull2_6_lp1
        !          1132: 1089  000249CE                                   #               }  /* end of loop-on-error */
        !          1133: 1090  000249CE                                   #            } /* end of acc corr error */
        !          1134: 1091  000249CE                                  L351:
        !          1135: 1092  000249CE                                   #        if( sgl_value_4 != sgl_value_3 )    /* COMPARE the values      */
        !          1136: 1093  000249CE                                  L343:
        !          1137: 1094  000249CE    1d effffff560 effffff55b             cmpl    _sgl_value_4,_sgl_value_3
        !          1138: 1095  000249D9    31 41                                jeql    L352
        !          1139: 1096  000249DB                                   #            {
        !          1140: 1097  000249DB                                   #               errcnt++;                         /* bump the error count    */
        !          1141: 1098  000249DB    6d effffff553                        incl    _errcnt
        !          1142: 1099  000249E1                                   #               if ( prt_error ) {
        !          1143: 1100  000249E1    5d effffff54d                        tstl    _prt_error
        !          1144: 1101  000249E7    31 0d                                jeql    L353
        !          1145: 1102  000249E9                                   #                   print_mull2_error("(Piped Exit) -BAD MULTIPLY RESULT");
        !          1146: 1103  000249E9                                         .data   1
        !          1147: 1104  00000ff0 *                                L354:
        !          1148: 1105  00000ff0 *  2850697065642045786974292            .ascii  "(Piped Exit) -BAD MULTIPLY RESULT\0"
        !          1149:                   02D424144204D554C5449504C
        !          1150:                   5920524553554C5400
        !          1151: 1106  00001012 *                                       .text
        !          1152: 1107  000249E9    dd 8f00000ff0                        pushl   $L354
        !          1153: 1108  000249EF    fe 08 ef00000034                     callf   $8,_print_mull2_error
        !          1154: 1109  000249F6                                   #               }
        !          1155: 1110  000249F6                                   #           if ( halt_flg )                   /* halt on error?          */
        !          1156: 1111  000249F6                                  L353:
        !          1157: 1112  000249F6    5d effffff538                        tstl    _halt_flg
        !          1158: 1113  000249FC    31 09                                jeql    L355
        !          1159: 1114  000249FE                                   #                   mull2_halt( 1 );
        !          1160: 1115  000249FE    dd 01                                pushl   $1
        !          1161: 1116  00024A00    fe 08 ef00000129                     callf   $8,_mull2_halt
        !          1162: 1117  00024A07                                   #               if ( loop_on_err ) {
        !          1163: 1118  00024A07                                  L355:
        !          1164: 1119  00024A07    5d effffff527                        tstl    _loop_on_err
        !          1165: 1120  00024A0D    31 0d                                jeql    L356
        !          1166: 1121  00024A0F                                   #                   force_loop = TRUE;            /* set the force loop flag */
        !          1167: 1122  00024A0F    0d 01 effffff51e                     movl    $1,_force_loop
        !          1168: 1123  00024A16                                   #                   asm("jmp _mull2_6_lp1");      /* and loop                */
        !          1169: 1124  00024A16    71 effffffebe                 jmp _mull2_6_lp1
        !          1170: 1125  00024A1C                                   #               }  /* end of loop-on-error */
        !          1171: 1126  00024A1C                                   #            } /* end of multiply error */
        !          1172: 1127  00024A1C                                  L356:
        !          1173: 1128  00024A1C                                   #         }
        !          1174: 1129  00024A1C                                  L352:
        !          1175: 1130  00024A1C                                  L339:
        !          1176: 1131  00024A1C    6d effffff512                        incl    _index
        !          1177: 1132  00024A22    13 fe4b                              jbr     L341
        !          1178: 1133  00024A25                                  L340:
        !          1179: 1134  00024A25                                   # }  /* end of subtest 6 */
        !          1180: 1135  00024A25    40                                   ret#2
        !          1181: 1136  00024A26                                         .set    L335,0x0
        !          1182: 1137  00024A26                                  L337:
        !          1183: 1138  00024A26    13 fe34                              jbr     L338
        !          1184: 1139  00024A29                                         .data
        !          1185: 1140  00000d58 *                                       .text
        !          1186: 1141  00024A29    00                                   .align  1
        !          1187: 1142  00024A2A                                         .globl  _print_mull2_error
        !          1188: 1143  00024A2A                                  _print_mull2_error:
        !          1189: 1144  00024A2A    0000                                 .word   L357
        !          1190: 1145  00024A2C                                   #   
        !          1191: 1146  00024A2C                                   # 
        !          1192: 1147  00024A2C                                   # 
        !          1193: 1148  00024A2C                                   # /*****************************************************************************
        !          1194: 1149  00024A2C                                   # *
        !          1195: 1150  00024A2C                                   # *               Print an error message of the form:
        !          1196: 1151  00024A2C                                   # *
        !          1197: 1152  00024A2C                                   # *  cycle: xx  MULL2 test xx, subtest xx  <"your message here">
        !          1198: 1153  00024A2C                                   # *    operand 1 = xxxxxxxx,        result = xxxxxxxx,   data index = xx
        !          1199: 1154  00024A2C                                   # *    operand 2 = xxxxxxxx,      expected = xxxxxxxx
        !          1200: 1155  00024A2C                                   # *
        !          1201: 1156  00024A2C                                   # *****************************************************************************/
        !          1202: 1157  00024A2C                                   # print_mull2_error(msg)
        !          1203: 1158  00024A2C                                   # char *msg;                                      /* addressing mode msg */
        !          1204: 1159  00024A2C                                   # {
        !          1205: 1160  00024A2C    13 00fe                              jbr     L359
        !          1206: 1161  00024A2F                                  L360:
        !          1207: 1162  00024A2F                                   #                  writes(" \n");             /* start a new print line   */
        !          1208: 1163  00024A2F                                         .data   1
        !          1209: 1164  00001012 *                                L361:
        !          1210: 1165  00001012 *  200A00                               .ascii  " \12\0"
        !          1211: 1166  00001015 *                                       .text
        !          1212: 1167  00024A2F    dd 8f00001012                        pushl   $L361
        !          1213: 1168  00024A35    fe 08 effffff4f8                     callf   $8,_writes
        !          1214: 1169  00024A3C                                   #                  writes("cycle: ");
        !          1215: 1170  00024A3C                                         .data   1
        !          1216: 1171  00001015 *                                L362:
        !          1217: 1172  00001015 *  6379636C653A2000                     .ascii  "cycle: \0"
        !          1218: 1173  0000101d *                                       .text
        !          1219: 1174  00024A3C    dd 8f00001015                        pushl   $L362
        !          1220: 1175  00024A42    fe 08 effffff4eb                     callf   $8,_writes
        !          1221: 1176  00024A49                                   #                  writed( cycle );
        !          1222: 1177  00024A49    dd effffff4e5                        pushl   _cycle
        !          1223: 1178  00024A4F    fe 08 effffff4de                     callf   $8,_writed
        !          1224: 1179  00024A56                                   #                  writes("  MULL2 test ");
        !          1225: 1180  00024A56                                         .data   1
        !          1226: 1181  0000101d *                                L364:
        !          1227: 1182  0000101d *  20204D554C4C3220746573742            .ascii  "  MULL2 test \0"
        !          1228:                   000
        !          1229: 1183  0000102b *                                       .text
        !          1230: 1184  00024A56    dd 8f0000101d                        pushl   $L364
        !          1231: 1185  00024A5C    fe 08 effffff4d1                     callf   $8,_writes
        !          1232: 1186  00024A63                                   #                  writed( test_no );
        !          1233: 1187  00024A63    dd effffff4cb                        pushl   _test_no
        !          1234: 1188  00024A69    fe 08 effffff4c4                     callf   $8,_writed
        !          1235: 1189  00024A70                                   #              writes(", subtest ");
        !          1236: 1190  00024A70                                         .data   1
        !          1237: 1191  0000102b *                                L365:
        !          1238: 1192  0000102b *  2C20737562746573742000               .ascii  ", subtest \0"
        !          1239: 1193  00001036 *                                       .text
        !          1240: 1194  00024A70    dd 8f0000102b                        pushl   $L365
        !          1241: 1195  00024A76    fe 08 effffff4b7                     callf   $8,_writes
        !          1242: 1196  00024A7D                                   #              writed( subtest );
        !          1243: 1197  00024A7D    dd effffff4b1                        pushl   _subtest
        !          1244: 1198  00024A83    fe 08 effffff4aa                     callf   $8,_writed
        !          1245: 1199  00024A8A                                   #              writes("  ");
        !          1246: 1200  00024A8A                                         .data   1
        !          1247: 1201  00001036 *                                L366:
        !          1248: 1202  00001036 *  202000                               .ascii  "  \0"
        !          1249: 1203  00001039 *                                       .text
        !          1250: 1204  00024A8A    dd 8f00001036                        pushl   $L366
        !          1251: 1205  00024A90    fe 08 effffff49d                     callf   $8,_writes
        !          1252: 1206  00024A97                                   #              writes( msg );
        !          1253: 1207  00024A97    dd ad04                              pushl   4(fp)
        !          1254: 1208  00024A9A    fe 08 effffff493                     callf   $8,_writes
        !          1255: 1209  00024AA1                                   #                  writes("\n  operand 1 = ");
        !          1256: 1210  00024AA1                                         .data   1
        !          1257: 1211  00001039 *                                L367:
        !          1258: 1212  00001039 *  0A20206F706572616E6420312            .ascii  "\12  operand 1 = \0"
        !          1259:                   03D2000
        !          1260: 1213  00001049 *                                       .text
        !          1261: 1214  00024AA1    dd 8f00001039                        pushl   $L367
        !          1262: 1215  00024AA7    fe 08 effffff486                     callf   $8,_writes
        !          1263: 1216  00024AAE                                   #              write32h( sgl_value_1 );
        !          1264: 1217  00024AAE    dd effffff480                        pushl   _sgl_value_1
        !          1265: 1218  00024AB4    fe 08 effffff479                     callf   $8,_write32h
        !          1266: 1219  00024ABB                                   #              writes(",        result = ");
        !          1267: 1220  00024ABB                                         .data   1
        !          1268: 1221  00001049 *                                L368:
        !          1269: 1222  00001049 *  2C20202020202020207265737            .ascii  ",        result = \0"
        !          1270:                   56C74203D2000
        !          1271: 1223  0000105c *                                       .text
        !          1272: 1224  00024ABB    dd 8f00001049                        pushl   $L368
        !          1273: 1225  00024AC1    fe 08 effffff46c                     callf   $8,_writes
        !          1274: 1226  00024AC8                                   #              write32h( sgl_value_3 );
        !          1275: 1227  00024AC8    dd effffff466                        pushl   _sgl_value_3
        !          1276: 1228  00024ACE    fe 08 effffff45f                     callf   $8,_write32h
        !          1277: 1229  00024AD5                                   #              writes(",   data index = ");
        !          1278: 1230  00024AD5                                         .data   1
        !          1279: 1231  0000105c *                                L369:
        !          1280: 1232  0000105c *  2C2020206461746120696E646            .ascii  ",   data index = \0"
        !          1281:                   578203D2000
        !          1282: 1233  0000106e *                                       .text
        !          1283: 1234  00024AD5    dd 8f0000105c                        pushl   $L369
        !          1284: 1235  00024ADB    fe 08 effffff452                     callf   $8,_writes
        !          1285: 1236  00024AE2                                   #              writed( index );
        !          1286: 1237  00024AE2    dd effffff44c                        pushl   _index
        !          1287: 1238  00024AE8    fe 08 effffff445                     callf   $8,_writed
        !          1288: 1239  00024AEF                                   #                  writes("\n  operand 2 = ");
        !          1289: 1240  00024AEF                                         .data   1
        !          1290: 1241  0000106e *                                L370:
        !          1291: 1242  0000106e *  0A20206F706572616E6420322            .ascii  "\12  operand 2 = \0"
        !          1292:                   03D2000
        !          1293: 1243  0000107e *                                       .text
        !          1294: 1244  00024AEF    dd 8f0000106e                        pushl   $L370
        !          1295: 1245  00024AF5    fe 08 effffff438                     callf   $8,_writes
        !          1296: 1246  00024AFC                                   #              write32h( sgl_value_2 );
        !          1297: 1247  00024AFC    dd effffff432                        pushl   _sgl_value_2
        !          1298: 1248  00024B02    fe 08 effffff42b                     callf   $8,_write32h
        !          1299: 1249  00024B09                                   #              writes(",      expected = ");
        !          1300: 1250  00024B09                                         .data   1
        !          1301: 1251  0000107e *                                L371:
        !          1302: 1252  0000107e *  2C20202020202065787065637            .ascii  ",      expected = \0"
        !          1303:                   46564203D2000
        !          1304: 1253  00001091 *                                       .text
        !          1305: 1254  00024B09    dd 8f0000107e                        pushl   $L371
        !          1306: 1255  00024B0F    fe 08 effffff41e                     callf   $8,_writes
        !          1307: 1256  00024B16                                   #              write32h( sgl_value_4 );
        !          1308: 1257  00024B16    dd effffff418                        pushl   _sgl_value_4
        !          1309: 1258  00024B1C    fe 08 effffff411                     callf   $8,_write32h
        !          1310: 1259  00024B23                                   #              writec('\n');
        !          1311: 1260  00024B23    dd 0a                                pushl   $10
        !          1312: 1261  00024B25    fe 08 effffff408                     callf   $8,_writec
        !          1313: 1262  00024B2C                                   # }
        !          1314: 1263  00024B2C    40                                   ret#2
        !          1315: 1264  00024B2D                                         .set    L357,0x0
        !          1316: 1265  00024B2D                                  L359:
        !          1317: 1266  00024B2D    13 feff                              jbr     L360
        !          1318: 1267  00024B30                                         .data
        !          1319: 1268  00000d58 *                                       .text
        !          1320: 1269  00024B30                                         .align  1
        !          1321: 1270  00024B30                                         .globl  _mull2_halt
        !          1322: 1271  00024B30                                  _mull2_halt:
        !          1323: 1272  00024B30    0000                                 .word   L372
        !          1324: 1273  00024B32                                   #   
        !          1325: 1274  00024B32                                   # 
        !          1326: 1275  00024B32                                   # 
        !          1327: 1276  00024B32                                   # /***************************************************************************
        !          1328: 1277  00024B32                                   # *
        !          1329: 1278  00024B32                                   # *               HALT ON AN ERROR
        !          1330: 1279  00024B32                                   # *
        !          1331: 1280  00024B32                                   # ***************************************************************************/
        !          1332: 1281  00024B32                                   # mull2_halt( code )
        !          1333: 1282  00024B32                                   # int code;                                   /* error code to use */
        !          1334: 1283  00024B32                                   # {
        !          1335: 1284  00024B32    13 0152                              jbr     L374
        !          1336: 1285  00024B35                                  L375:
        !          1337: 1286  00024B35                                   #     sgl_dummy1 = code;                      /* save the error code    */
        !          1338: 1287  00024B35    0d ad04 effffff3f7                   movl    4(fp),_sgl_dummy1
        !          1339: 1288  00024B3D                                   #         asm("movl _test_no,r0");                    /* r0  = test number      */
        !          1340: 1289  00024B3D    0d effffff3f1 50              movl _test_no,r0
        !          1341: 1290  00024B44                                   #         asm("movl _subtest,r1");                    /* r1  = subtest number   */
        !          1342: 1291  00024B44    0d effffff3ea 51              movl _subtest,r1
        !          1343: 1292  00024B4B                                   #         asm("movl _sgl_dummy1,r2");                 /* r2  = error code       */
        !          1344: 1293  00024B4B    0d effffff3e3 52              movl _sgl_dummy1,r2
        !          1345: 1294  00024B52                                   #         asm("movl _cycle,r3");                      /* r3  = cycle count      */
        !          1346: 1295  00024B52    0d effffff3dc 53              movl _cycle,r3
        !          1347: 1296  00024B59                                   #         asm("movl _sgl_value_1,r4");                /* r4  = operand 1        */
        !          1348: 1297  00024B59    0d effffff3d5 54              movl _sgl_value_1,r4
        !          1349: 1298  00024B60                                   #         asm("movl _sgl_value_2,r5");                /* r5  = operand 2        */
        !          1350: 1299  00024B60    0d effffff3ce 55              movl _sgl_value_2,r5
        !          1351: 1300  00024B67                                   #         asm("movl _sgl_value_3,r6");                /* r6  = MULL2's result   */
        !          1352: 1301  00024B67    0d effffff3c7 56              movl _sgl_value_3,r6
        !          1353: 1302  00024B6E                                   #     if( code == 1 ) {
        !          1354: 1303  00024B6E    1d ad04 01                           cmpl    4(fp),$1
        !          1355: 1304  00024B72    21 11                                jneq    L376
        !          1356: 1305  00024B74                                   #          asm("movl _sgl_value_4,r7");       /* r7  = expected result  */
        !          1357: 1306  00024B74    0d effffff3ba 57              movl _sgl_value_4,r7
        !          1358: 1307  00024B7B                                   #          asm("movl _index,r8");;            /* r8  = data index       */
        !          1359: 1308  00024B7B    0d effffff3b3 58              movl _index,r8
        !          1360: 1309  00024B82                                   #     }
        !          1361: 1310  00024B82                                   #      else if( code == 2 )  {  /* corrupted register */
        !          1362: 1311  00024B82    13 0100                              jbr     L377
        !          1363: 1312  00024B85                                  L376:
        !          1364: 1313  00024B85    1d ad04 02                           cmpl    4(fp),$2
        !          1365: 1314  00024B89    21 3e                                jneq    L378
        !          1366: 1315  00024B8B                                   #          sgl_dummy1 = store_regs[index2];   /* get the actual reg data */
        !          1367: 1316  00024B8B    0d effffff3a3 50                     movl    _index2,r0
        !          1368: 1317  00024B92    0d 40effffff39b                      movl    _store_regs[r0],_sgl_dummy1
        !          1369:                   effffff396 
        !          1370: 1318  00024B9E                                   #          sgl_dummy2 = load_regs[index2];    /* get the data expected  */
        !          1371: 1319  00024B9E    0d effffff390 50                     movl    _index2,r0
        !          1372: 1320  00024BA5    0d 40effffff388                      movl    _load_regs[r0],_sgl_dummy2
        !          1373:                   effffff383 
        !          1374: 1321  00024BB1                                   #          asm("movl _index2,r7");            /* r7  = register number  */
        !          1375: 1322  00024BB1    0d effffff37d 57              movl _index2,r7
        !          1376: 1323  00024BB8                                   #          asm("movl _sgl_dummy1,r8");        /* r8  = final reg value  */
        !          1377: 1324  00024BB8    0d effffff376 58              movl _sgl_dummy1,r8
        !          1378: 1325  00024BBF                                   #          asm("movl _sgl_dummy2,r9");        /* r9  = expected value   */
        !          1379: 1326  00024BBF    0d effffff36f 59              movl _sgl_dummy2,r9
        !          1380: 1327  00024BC6                                   #     }
        !          1381: 1328  00024BC6                                   #      else if( code == 3 ) {  /* corrupted PSL */
        !          1382: 1329  00024BC6    13 00bc                              jbr     L379
        !          1383: 1330  00024BC9                                  L378:
        !          1384: 1331  00024BC9    1d ad04 03                           cmpl    4(fp),$3
        !          1385: 1332  00024BCD    21 18                                jneq    L380
        !          1386: 1333  00024BCF                                   #              asm("movl _init_psl,r7");          /* r7  = initial PSL     */
        !          1387: 1334  00024BCF    0d effffff35f 57              movl _init_psl,r7
        !          1388: 1335  00024BD6                                   #              asm("movl _psl_val,r8");           /* r8  = final PSL       */
        !          1389: 1336  00024BD6    0d effffff358 58              movl _psl_val,r8
        !          1390: 1337  00024BDD                                   #              asm("movl _exp_psl,r9");           /* r9  = expected PSL    */
        !          1391: 1338  00024BDD    0d effffff351 59              movl _exp_psl,r9
        !          1392: 1339  00024BE4                                   #         }
        !          1393: 1340  00024BE4                                   #      else if( code == 4 ) {  /* corrupted Acc */
        !          1394: 1341  00024BE4    13 009e                              jbr     L381
        !          1395: 1342  00024BE7                                  L380:
        !          1396: 1343  00024BE7    1d ad04 04                           cmpl    4(fp),$4
        !          1397: 1344  00024BEB    21 6f                                jneq    L382
        !          1398: 1345  00024BED                                   #          if( subtest == 1 ) {       /* single precision */
        !          1399: 1346  00024BED    1d effffff341 01                     cmpl    _subtest,$1
        !          1400: 1347  00024BF4    21 33                                jneq    L383
        !          1401: 1348  00024BF6                                   #              dbl_ld_acc.m = sgl_ld_acc;
        !          1402: 1349  00024BF6    0d effffff338 effffff333             movl    _sgl_ld_acc,_dbl_ld_acc
        !          1403: 1350  00024C01                                   #              dbl_ld_acc.l = 0;
        !          1404: 1351  00024C01    4d effffff331                        clrl    _dbl_ld_acc+4
        !          1405: 1352  00024C07                                   #              dbl_st_acc.m = sgl_st_acc;
        !          1406: 1353  00024C07    0d effffff327 effffff322             movl    _sgl_st_acc,_dbl_st_acc
        !          1407: 1354  00024C12                                   #              dbl_st_acc.l = 0;
        !          1408: 1355  00024C12    4d effffff320                        clrl    _dbl_st_acc+4
        !          1409: 1356  00024C18                                   #              dbl_expected.m = sgl_expected;
        !          1410: 1357  00024C18    0d effffff316 effffff311             movl    _sgl_expected,_dbl_expected
        !          1411: 1358  00024C23                                   #              dbl_expected.l = 0;
        !          1412: 1359  00024C23    4d effffff30f                        clrl    _dbl_expected+4
        !          1413: 1360  00024C29                                   #          };
        !          1414: 1361  00024C29                                  L383:
        !          1415: 1362  00024C29                                   #          asm("movl _index,r7");             /* r7  = data index       */
        !          1416: 1363  00024C29    0d effffff305 57              movl _index,r7
        !          1417: 1364  00024C30                                   #          asm("movl _dbl_ld_acc,r8");        /* r8  = MS initial Acc.  */
        !          1418: 1365  00024C30    0d effffff2fe 58              movl _dbl_ld_acc,r8
        !          1419: 1366  00024C37                                   #          asm("movl _dbl_ld_acc+4,r9");      /* r9  = LS initial Acc.  */
        !          1420: 1367  00024C37    0d effffff2fb 59              movl _dbl_ld_acc+4,r9
        !          1421: 1368  00024C3E                                   #          asm("movl _dbl_st_acc,r10");       /* r10 = MS final Acc.    */
        !          1422: 1369  00024C3E    0d effffff2f0 5a              movl _dbl_st_acc,r10
        !          1423: 1370  00024C45                                   #          asm("movl _dbl_st_acc+4,r11");     /* r11 = LS final Acc.    */
        !          1424: 1371  00024C45    0d effffff2ed 5b              movl _dbl_st_acc+4,r11
        !          1425: 1372  00024C4C                                   #          asm("movl _dbl_expected,r12");     /* r12 = MS expected Acc. */
        !          1426: 1373  00024C4C    0d effffff2e2 5c              movl _dbl_expected,r12
        !          1427: 1374  00024C53                                   #          asm("movl _dbl_expected+4,r13");   /* r13 = LS expected Acc. */
        !          1428: 1375  00024C53    0d effffff2df 5d              movl _dbl_expected+4,r13
        !          1429: 1376  00024C5A                                   #     }
        !          1430: 1377  00024C5A                                   #      else if( code == 5 ) {  /* bad final Acc */
        !          1431: 1378  00024C5A    11 29                                jbr     L384
        !          1432: 1379  00024C5C                                  L382:
        !          1433: 1380  00024C5C    1d ad04 05                           cmpl    4(fp),$5
        !          1434: 1381  00024C60    21 23                                jneq    L385
        !          1435: 1382  00024C62                                   #          asm("movl _index,r7");             /* r7  = data index       */
        !          1436: 1383  00024C62    0d effffff2cc 57              movl _index,r7
        !          1437: 1384  00024C69                                   #          asm("movl _sgl_ld_acc,r8");        /* r8  = initial Acc.     */
        !          1438: 1385  00024C69    0d effffff2c5 58              movl _sgl_ld_acc,r8
        !          1439: 1386  00024C70                                   #          asm("movl _sgl_value_10,r9");      /* r9  = fpp operand      */
        !          1440: 1387  00024C70    0d effffff2be 59              movl _sgl_value_10,r9
        !          1441: 1388  00024C77                                   #          asm("movl _sgl_st_acc,r10");       /* r10 = final Acc.       */
        !          1442: 1389  00024C77    0d effffff2b7 5a              movl _sgl_st_acc,r10
        !          1443: 1390  00024C7E                                   #          asm("movl _sgl_expected,r11");     /* r11 = expected Acc.    */
        !          1444: 1391  00024C7E    0d effffff2b0 5b              movl _sgl_expected,r11
        !          1445: 1392  00024C85                                   #     };
        !          1446: 1393  00024C85                                  L385:
        !          1447: 1394  00024C85                                  L384:
        !          1448: 1395  00024C85                                  L381:
        !          1449: 1396  00024C85                                  L379:
        !          1450: 1397  00024C85                                  L377:
        !          1451: 1398  00024C85                                   #     asm("halt");                   /* HALT ...                */
        !          1452: 1399  00024C85    00                            halt
        !          1453: 1400  00024C86                                   # }
        !          1454: 1401  00024C86    40                                   ret#2
        !          1455: 1402  00024C87                                         .set    L372,0x0
        !          1456: 1403  00024C87                                  L374:
        !          1457: 1404  00024C87    13 feab                              jbr     L375
        !          1458: 1405  00024C8A                                         .data
        !          1459: 1405  00048BBE                                         .data

unix.superglobalmegacorp.com

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