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

1.1     ! root        1:    1  00000000                                  LL0:
        !             2:    2  00000000                                         .data
        !             3:    3  00000d28 *                                       .text
        !             4:    4  00000000                                         .align  1
        !             5:    5  00000000                                         .globl  _subd
        !             6:    6  00000000                                  _subd:
        !             7:    7  00017588    0000                                 .word   L215
        !             8:    8  0001758A                                   # 
        !             9:    9  0001758A                                   # 
        !            10:   10  0001758A                                   # #include "fpp_defs.h"
        !            11:   11  0001758A                                   # 
        !            12:   12  0001758A                                   # 
        !            13:   13  0001758A                                   # /*****************************************************************************
        !            14:   14  0001758A                                   # *
        !            15:   15  0001758A                                   # *       SUBD - DOUBLE PRECISION FLOATING POINT SUBTRACT TEST
        !            16:   16  0001758A                                   # *
        !            17:   17  0001758A                                   # *****************************************************************************/
        !            18:   18  0001758A                                   # subd()
        !            19:   19  0001758A                                   # {
        !            20:   20  0001758A    11 7a                                jbr     L217
        !            21:   21  0001758C                                  L218:
        !            22:   22  0001758C                                   #         asm(".globl _subd_t");
        !            23:   23  0001758C                                  .globl _subd_t
        !            24:   24  0001758C                                   #         asm("_subd_t:");                        /* entry address            */
        !            25:   25  0001758C                                  _subd_t:
        !            26:   26  0001758C                                   #         if( (cycle == 1) && (prt_hdrs) )        /* print headers on 1st cycle */
        !            27:   27  0001758C    1d effffffff6 01                     cmpl    _cycle,$1
        !            28:   28  00017593    21 15                                jneq    L219
        !            29:   29  00017595    5d efffffffed                        tstl    _prt_hdrs
        !            30:   30  0001759B    31 0d                                jeql    L219
        !            31:   31  0001759D                                   #            writes(" SUBD");
        !            32:   32  0001759D                                         .data   1
        !            33:   33  00000d28 *                                L221:
        !            34:   34  00000d28 *  205355424400                         .ascii  " SUBD\0"
        !            35:   35  00000d2e *                                       .text
        !            36:   36  0001759D    dd 8f00000d28                        pushl   $L221
        !            37:   37  000175A3    fe 08 efffffffde                     callf   $8,_writes
        !            38:   38  000175AA                                   #         subd_1();                               /* sub through a register     */
        !            39:   39  000175AA                                  L219:
        !            40:   40  000175AA    fe 04 ef00000057                     callf   $4,_subd_1
        !            41:   41  000175B1                                   #         subd_2();                               /* sub through the cache      */
        !            42:   42  000175B1    fe 04 ef000001b2                     callf   $4,_subd_2
        !            43:   43  000175B8                                   #         subd_3();                               /* wait 1 NOP before storeing */
        !            44:   44  000175B8    fe 04 ef000002f9                     callf   $4,_subd_3
        !            45:   45  000175BF                                   #         for( nop_cnt = 3; nop_cnt > 0; nop_cnt-- )
        !            46:   46  000175BF    0d 03 efffffffc2                     movl    $3,_nop_cnt
        !            47:   47  000175C6                                  L227:
        !            48:   48  000175C6    5d efffffffbc                        tstl    _nop_cnt
        !            49:   49  000175CC    51 15                                jleq    L226
        !            50:   50  000175CE                                   #              subd_3(nop_cnt);                   /* wait 6 ... 2 NOPs          */
        !            51:   51  000175CE    dd efffffffb4                        pushl   _nop_cnt
        !            52:   52  000175D4    fe 08 ef000002dd                     callf   $8,_subd_3
        !            53:   53  000175DB                                  L225:
        !            54:   54  000175DB    7d efffffffa7                        decl    _nop_cnt
        !            55:   55  000175E1    11 e3                                jbr     L227
        !            56:   56  000175E3                                  L226:
        !            57:   57  000175E3                                   #         subd_4();                               /* wait 3 NOPs                */
        !            58:   58  000175E3    fe 04 ef00000456                     callf   $4,_subd_4
        !            59:   59  000175EA                                   #         subd_5();                               /* wait 1 NOP before storing  */
        !            60:   60  000175EA    fe 04 ef000005a1                     callf   $4,_subd_5
        !            61:   61  000175F1                                   #         subd_6();                               /* register stability test    */
        !            62:   62  000175F1    fe 04 ef000006ea                     callf   $4,_subd_6
        !            63:   63  000175F8                                   #         subd_7();                               /* PSL stability test         */
        !            64:   64  000175F8    fe 04 ef000008b3                     callf   $4,_subd_7
        !            65:   65  000175FF                                   #         asm("jmp *return");                     /* return to the test monitor */
        !            66:   66  000175FF    71 ffffffff83                 jmp *return
        !            67:   67  00017605                                   # }
        !            68:   68  00017605    40                                   ret#2
        !            69:   69  00017606                                         .set    L215,0x0
        !            70:   70  00017606                                  L217:
        !            71:   71  00017606    11 84                                jbr     L218
        !            72:   72  00017608                                         .data
        !            73:   73  00000d28 *                                       .text
        !            74:   74  00017608                                         .align  1
        !            75:   75  00017608                                         .globl  _subd_1
        !            76:   76  00017608                                  _subd_1:
        !            77:   77  00017608    0000                                 .word   L232
        !            78:   78  0001760A                                   #   
        !            79:   79  0001760A                                   # 
        !            80:   80  0001760A                                   # 
        !            81:   81  0001760A                                   # /************************************************************************
        !            82:   82  0001760A                                   # *
        !            83:   83  0001760A                                   # *               SUBTEST 1 - subtract through a register
        !            84:   84  0001760A                                   # *
        !            85:   85  0001760A                                   # ************************************************************************/
        !            86:   86  0001760A                                   # subd_1() 
        !            87:   87  0001760A                                   # {
        !            88:   88  0001760A    13 015a                              jbr     L234
        !            89:   89  0001760D                                  L235:
        !            90:   90  0001760D                                   #         force_loop = FALSE;
        !            91:   91  0001760D    4d efffffff75                        clrl    _force_loop
        !            92:   92  00017613                                   #         subtest = 1;
        !            93:   93  00017613    0d 01 efffffff6e                     movl    $1,_subtest
        !            94:   94  0001761A                                   #         for( index = 0; index < max_subd_1_index; index++ ) {
        !            95:   95  0001761A    4d efffffff68                        clrl    _index
        !            96:   96  00017620                                  L238:
        !            97:   97  00017620    1d efffffff62 efffffff5d             cmpl    _index,_max_subd_1_index
        !            98:   98  0001762B    91 03 13 0136                        jgeq    L237
        !            99:   99  00017630                                   #              dbl_ld_acc   = subd_1_data[index].op_1; /* get operand 1       */
        !           100:  100  00017630    5c 18 efffffff51 50                  mull3   $24,_index,r0
        !           101:  101  00017638    0c 8f00000000 50                     addl2   $_subd_1_data,r0
        !           102:  102  0001763F    0d a004 efffffff45                   movl    4(r0),_dbl_ld_acc+4
        !           103:  103  00017647    0d 60 efffffff3a                     movl    (r0),_dbl_ld_acc
        !           104:  104  0001764E                                   #              dbl_value_1  = subd_1_data[index].op_2; /* get operand 2       */
        !           105:  105  0001764E    5c 18 efffffff33 50                  mull3   $24,_index,r0
        !           106:  106  00017656    0c 8f00000008 50                     addl2   $_subd_1_data+8,r0
        !           107:  107  0001765D    0d a004 efffffff27                   movl    4(r0),_dbl_value_1+4
        !           108:  108  00017665    0d 60 efffffff1c                     movl    (r0),_dbl_value_1
        !           109:  109  0001766C                                   #              dbl_expected = subd_1_data[index].exp;  /* get expected result */
        !           110:  110  0001766C    5c 18 efffffff15 50                  mull3   $24,_index,r0
        !           111:  111  00017674    0c 8f00000010 50                     addl2   $_subd_1_data+16,r0
        !           112:  112  0001767B    0d a004 efffffff09                   movl    4(r0),_dbl_expected+4
        !           113:  113  00017683    0d 60 effffffefe                     movl    (r0),_dbl_expected
        !           114:  114  0001768A                                   # /*
        !           115:  115  0001768A                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           116:  116  0001768A                                   #  * The force loop flag is set after the first error.
        !           117:  117  0001768A                                   # */
        !           118:  118  0001768A                                   #              asm("_subd_1_lp1:");
        !           119:  119  0001768A                                  _subd_1_lp1:
        !           120:  120  0001768A                                   #              asm("movl _dbl_ld_acc,r2");        /* move operand 1 to r2/r3 */
        !           121:  121  0001768A    0d effffffef8 52              movl _dbl_ld_acc,r2
        !           122:  122  00017691                                   #              asm("movl _dbl_ld_acc+4,r3");
        !           123:  123  00017691    0d effffffef5 53              movl _dbl_ld_acc+4,r3
        !           124:  124  00017698                                   #              asm("movl _dbl_value_1,r4");       /* move operand 2 to r4/r5 */
        !           125:  125  00017698    0d effffffeea 54              movl _dbl_value_1,r4
        !           126:  126  0001769F                                   #              asm("movl _dbl_value_1+4,r5");
        !           127:  127  0001769F    0d effffffee7 55              movl _dbl_value_1+4,r5
        !           128:  128  000176A6                                   #              asm("ldd r2");                     /* load the 1st operand    */
        !           129:  129  000176A6    07 52                         ldd r2
        !           130:  130  000176A8                                   #              asm("subd r4");                    /* subtract the 2nd operand*/
        !           131:  131  000176A8    d7 54                         subd r4
        !           132:  132  000176AA                                   #              asm("std _dbl_st_acc");            /* store the result        */
        !           133:  133  000176AA    27 effffffed8                 std _dbl_st_acc
        !           134:  134  000176B0                                   #              if( force_loop )
        !           135:  135  000176B0    5d effffffed2                        tstl    _force_loop
        !           136:  136  000176B6    31 02                                jeql    L239
        !           137:  137  000176B8                                   #                   asm("brb _subd_1_lp1");;      /* loop on the error       */
        !           138:  138  000176B8    11 d0                         brb _subd_1_lp1
        !           139:  139  000176BA                                  L239:
        !           140:  140  000176BA                                   # /* 
        !           141:  141  000176BA                                   #  * end error loop - test the results
        !           142:  142  000176BA                                   # */
        !           143:  143  000176BA                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
        !           144:  144  000176BA                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
        !           145:  145  000176BA    1d effffffec8 effffffec3             cmpl    _dbl_st_acc,_dbl_expected
        !           146:  146  000176C5    21 10                                jneq    L9999
        !           147:  147  000176C7    1d effffffebf effffffeba             cmpl    _dbl_st_acc+4,_dbl_expected+4
        !           148:  148  000176D2    21 03 13 0086                        jeql    L240
        !           149:  149  000176D7                                  L9999:
        !           150:  150  000176D7                                   #                    errcnt++;                    /* bump the error count   */
        !           151:  151  000176D7    6d effffffeab                        incl    _errcnt
        !           152:  152  000176DD                                   #                    if( prt_error ) {
        !           153:  153  000176DD    5d effffffea5                        tstl    _prt_error
        !           154:  154  000176E3    31 55                                jeql    L241
        !           155:  155  000176E5                                   #                         writes(" \n");      /* start a new print line */
        !           156:  156  000176E5                                         .data   1
        !           157:  157  00000d2e *                                L242:
        !           158:  158  00000d2e *  200A00                               .ascii  " \12\0"
        !           159:  159  00000d31 *                                       .text
        !           160:  160  000176E5    dd 8f00000d2e                        pushl   $L242
        !           161:  161  000176EB    fe 08 effffffe96                     callf   $8,_writes
        !           162:  162  000176F2                                   #                         writes("cycle: ");
        !           163:  163  000176F2                                         .data   1
        !           164:  164  00000d31 *                                L243:
        !           165:  165  00000d31 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           166:  166  00000d39 *                                       .text
        !           167:  167  000176F2    dd 8f00000d31                        pushl   $L243
        !           168:  168  000176F8    fe 08 effffffe89                     callf   $8,_writes
        !           169:  169  000176FF                                   #                         writed( cycle );
        !           170:  170  000176FF    dd effffffe83                        pushl   _cycle
        !           171:  171  00017705    fe 08 effffffe7c                     callf   $8,_writed
        !           172:  172  0001770C                                   #                         writes("  SUBD test ");
        !           173:  173  0001770C                                         .data   1
        !           174:  174  00000d39 *                                L245:
        !           175:  175  00000d39 *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !           176:                   0
        !           177:  176  00000d46 *                                       .text
        !           178:  177  0001770C    dd 8f00000d39                        pushl   $L245
        !           179:  178  00017712    fe 08 effffffe6f                     callf   $8,_writes
        !           180:  179  00017719                                   #                     writed( test_no );
        !           181:  180  00017719    dd effffffe69                        pushl   _test_no
        !           182:  181  0001771F    fe 08 effffffe62                     callf   $8,_writed
        !           183:  182  00017726                                   #                     writes(", subtest 1 (Reg. Data) - BAD FINAL ACC\n");
        !           184:  183  00017726                                         .data   1
        !           185:  184  00000d46 *                                L246:
        !           186:  185  00000d46 *  2C20737562746573742031202            .ascii  ", subtest 1 (Reg. Data) - BAD FINAL ACC\12\0"
        !           187:                   85265672E204461746129202D
        !           188:                   204241442046494E414C20414
        !           189:                   3430A00
        !           190:  186  00000d6f *                                       .text
        !           191:  187  00017726    dd 8f00000d46                        pushl   $L246
        !           192:  188  0001772C    fe 08 effffffe55                     callf   $8,_writes
        !           193:  189  00017733                                   #                         print_subd_data();
        !           194:  190  00017733    fe 04 ef00000952                     callf   $4,_print_subd_data
        !           195:  191  0001773A                                   #                    }
        !           196:  192  0001773A                                   #                    if( halt_flg ) 
        !           197:  193  0001773A                                  L241:
        !           198:  194  0001773A    5d effffffe48                        tstl    _halt_flg
        !           199:  195  00017740    31 09                                jeql    L248
        !           200:  196  00017742                                   #                         subd_er_halt( BAD_ACC_HLT );    /* halt on the error */
        !           201:  197  00017742    dd 01                                pushl   $1
        !           202:  198  00017744    fe 08 ef00000a37                     callf   $8,_subd_er_halt
        !           203:  199  0001774B                                   #                    if( loop_on_err ) {
        !           204:  200  0001774B                                  L248:
        !           205:  201  0001774B    5d effffffe37                        tstl    _loop_on_err
        !           206:  202  00017751    31 0a                                jeql    L250
        !           207:  203  00017753                                   #                         force_loop = TRUE;        /* set the force loop flag */
        !           208:  204  00017753    0d 01 effffffe2e                     movl    $1,_force_loop
        !           209:  205  0001775A                                   #                         asm("brw _subd_1_lp1");;  /* and loop on the error   */
        !           210:  206  0001775A    13 ff2d                       brw _subd_1_lp1
        !           211:  207  0001775D                                   #                    }   /* end of loop on error */
        !           212:  208  0001775D                                   #              }   /* end of compare error */
        !           213:  209  0001775D                                  L250:
        !           214:  210  0001775D                                   #         }  /* end of WHILE loop */
        !           215:  211  0001775D                                  L240:
        !           216:  212  0001775D                                  L236:
        !           217:  213  0001775D    6d effffffe25                        incl    _index
        !           218:  214  00017763    13 feba                              jbr     L238
        !           219:  215  00017766                                  L237:
        !           220:  216  00017766                                   # }  /* end of subtest 1 */
        !           221:  217  00017766    40                                   ret#2
        !           222:  218  00017767                                         .set    L232,0x0
        !           223:  219  00017767                                  L234:
        !           224:  220  00017767    13 fea3                              jbr     L235
        !           225:  221  0001776A                                         .data
        !           226:  222  00000d28 *                                       .text
        !           227:  223  0001776A                                         .align  1
        !           228:  224  0001776A                                         .globl  _subd_2
        !           229:  225  0001776A                                  _subd_2:
        !           230:  226  0001776A    0000                                 .word   L251
        !           231:  227  0001776C                                   #   
        !           232:  228  0001776C                                   # 
        !           233:  229  0001776C                                   # 
        !           234:  230  0001776C                                   # /************************************************************************
        !           235:  231  0001776C                                   # *
        !           236:  232  0001776C                                   # *               SUBTEST 2 - subtract through memory
        !           237:  233  0001776C                                   # *
        !           238:  234  0001776C                                   # ************************************************************************/
        !           239:  235  0001776C                                   # subd_2() 
        !           240:  236  0001776C                                   # {
        !           241:  237  0001776C    13 0146                              jbr     L253
        !           242:  238  0001776F                                  L254:
        !           243:  239  0001776F                                   #         force_loop = FALSE;
        !           244:  240  0001776F    4d effffffe13                        clrl    _force_loop
        !           245:  241  00017775                                   #         subtest = 2;
        !           246:  242  00017775    0d 02 effffffe0c                     movl    $2,_subtest
        !           247:  243  0001777C                                   #         for( index = 0; index < max_subd_1_index; index++ ) {
        !           248:  244  0001777C    4d effffffe06                        clrl    _index
        !           249:  245  00017782                                  L257:
        !           250:  246  00017782    1d effffffe00 effffffdfb             cmpl    _index,_max_subd_1_index
        !           251:  247  0001778D    91 03 13 0122                        jgeq    L256
        !           252:  248  00017792                                   #              dbl_ld_acc   = subd_1_data[index].op_1; /* get operand 1       */
        !           253:  249  00017792    5c 18 effffffdef 50                  mull3   $24,_index,r0
        !           254:  250  0001779A    0c 8f00000000 50                     addl2   $_subd_1_data,r0
        !           255:  251  000177A1    0d a004 effffffde3                   movl    4(r0),_dbl_ld_acc+4
        !           256:  252  000177A9    0d 60 effffffdd8                     movl    (r0),_dbl_ld_acc
        !           257:  253  000177B0                                   #              dbl_value_1  = subd_1_data[index].op_2; /* get operand 2       */
        !           258:  254  000177B0    5c 18 effffffdd1 50                  mull3   $24,_index,r0
        !           259:  255  000177B8    0c 8f00000008 50                     addl2   $_subd_1_data+8,r0
        !           260:  256  000177BF    0d a004 effffffdc5                   movl    4(r0),_dbl_value_1+4
        !           261:  257  000177C7    0d 60 effffffdba                     movl    (r0),_dbl_value_1
        !           262:  258  000177CE                                   #              dbl_expected = subd_1_data[index].exp;  /* get expected result */
        !           263:  259  000177CE    5c 18 effffffdb3 50                  mull3   $24,_index,r0
        !           264:  260  000177D6    0c 8f00000010 50                     addl2   $_subd_1_data+16,r0
        !           265:  261  000177DD    0d a004 effffffda7                   movl    4(r0),_dbl_expected+4
        !           266:  262  000177E5    0d 60 effffffd9c                     movl    (r0),_dbl_expected
        !           267:  263  000177EC                                   # /*
        !           268:  264  000177EC                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           269:  265  000177EC                                   #  * The force loop flag is set after the first error.
        !           270:  266  000177EC                                   # */
        !           271:  267  000177EC                                   #              asm("_subd_2_lp1:");
        !           272:  268  000177EC                                  _subd_2_lp1:
        !           273:  269  000177EC                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
        !           274:  270  000177EC    07 effffffd96                 ldd _dbl_ld_acc
        !           275:  271  000177F2                                   #              asm("subd _dbl_value_1");          /* subtract the 2nd operand*/
        !           276:  272  000177F2    d7 effffffd90                 subd _dbl_value_1
        !           277:  273  000177F8                                   #              asm("std _dbl_st_acc");            /* store the result        */
        !           278:  274  000177F8    27 effffffd8a                 std _dbl_st_acc
        !           279:  275  000177FE                                   #              if( force_loop )
        !           280:  276  000177FE    5d effffffd84                        tstl    _force_loop
        !           281:  277  00017804    31 02                                jeql    L258
        !           282:  278  00017806                                   #                   asm("brb _subd_2_lp1");;      /* loop on the error       */
        !           283:  279  00017806    11 e4                         brb _subd_2_lp1
        !           284:  280  00017808                                  L258:
        !           285:  281  00017808                                   # /* 
        !           286:  282  00017808                                   #  * end error loop - test the results
        !           287:  283  00017808                                   # */
        !           288:  284  00017808                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
        !           289:  285  00017808                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
        !           290:  286  00017808    1d effffffd7a effffffd75             cmpl    _dbl_st_acc,_dbl_expected
        !           291:  287  00017813    21 10                                jneq    L9998
        !           292:  288  00017815    1d effffffd71 effffffd6c             cmpl    _dbl_st_acc+4,_dbl_expected+4
        !           293:  289  00017820    21 03 13 0086                        jeql    L259
        !           294:  290  00017825                                  L9998:
        !           295:  291  00017825                                   #                    errcnt++;                    /* bump the error count   */
        !           296:  292  00017825    6d effffffd5d                        incl    _errcnt
        !           297:  293  0001782B                                   #                    if( prt_error ) {
        !           298:  294  0001782B    5d effffffd57                        tstl    _prt_error
        !           299:  295  00017831    31 55                                jeql    L260
        !           300:  296  00017833                                   #                         writes(" \n");      /* start a new print line */
        !           301:  297  00017833                                         .data   1
        !           302:  298  00000d6f *                                L261:
        !           303:  299  00000d6f *  200A00                               .ascii  " \12\0"
        !           304:  300  00000d72 *                                       .text
        !           305:  301  00017833    dd 8f00000d6f                        pushl   $L261
        !           306:  302  00017839    fe 08 effffffd48                     callf   $8,_writes
        !           307:  303  00017840                                   #                         writes("cycle: ");
        !           308:  304  00017840                                         .data   1
        !           309:  305  00000d72 *                                L262:
        !           310:  306  00000d72 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           311:  307  00000d7a *                                       .text
        !           312:  308  00017840    dd 8f00000d72                        pushl   $L262
        !           313:  309  00017846    fe 08 effffffd3b                     callf   $8,_writes
        !           314:  310  0001784D                                   #                         writed( cycle );
        !           315:  311  0001784D    dd effffffd35                        pushl   _cycle
        !           316:  312  00017853    fe 08 effffffd2e                     callf   $8,_writed
        !           317:  313  0001785A                                   #                         writes("  SUBD test ");
        !           318:  314  0001785A                                         .data   1
        !           319:  315  00000d7a *                                L263:
        !           320:  316  00000d7a *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !           321:                   0
        !           322:  317  00000d87 *                                       .text
        !           323:  318  0001785A    dd 8f00000d7a                        pushl   $L263
        !           324:  319  00017860    fe 08 effffffd21                     callf   $8,_writes
        !           325:  320  00017867                                   #                     writed( test_no );
        !           326:  321  00017867    dd effffffd1b                        pushl   _test_no
        !           327:  322  0001786D    fe 08 effffffd14                     callf   $8,_writed
        !           328:  323  00017874                                   #                     writes(", subtest 2 (Cache Data) - BAD FINAL ACC\n");
        !           329:  324  00017874                                         .data   1
        !           330:  325  00000d87 *                                L264:
        !           331:  326  00000d87 *  2C20737562746573742032202            .ascii  ", subtest 2 (Cache Data) - BAD FINAL ACC\12\0"
        !           332:                   8436163686520446174612920
        !           333:                   2D204241442046494E414C204
        !           334:                   143430A00
        !           335:  327  00000db1 *                                       .text
        !           336:  328  00017874    dd 8f00000d87                        pushl   $L264
        !           337:  329  0001787A    fe 08 effffffd07                     callf   $8,_writes
        !           338:  330  00017881                                   #                         print_subd_data();
        !           339:  331  00017881    fe 04 ef00000804                     callf   $4,_print_subd_data
        !           340:  332  00017888                                   #                    }
        !           341:  333  00017888                                   #                    if( halt_flg ) 
        !           342:  334  00017888                                  L260:
        !           343:  335  00017888    5d effffffcfa                        tstl    _halt_flg
        !           344:  336  0001788E    31 09                                jeql    L265
        !           345:  337  00017890                                   #                         subd_er_halt( BAD_ACC_HLT );    /* halt on the error */
        !           346:  338  00017890    dd 01                                pushl   $1
        !           347:  339  00017892    fe 08 ef000008e9                     callf   $8,_subd_er_halt
        !           348:  340  00017899                                   #                    if( loop_on_err ) {
        !           349:  341  00017899                                  L265:
        !           350:  342  00017899    5d effffffce9                        tstl    _loop_on_err
        !           351:  343  0001789F    31 0a                                jeql    L266
        !           352:  344  000178A1                                   #                         force_loop = TRUE;        /* set the force loop flag */
        !           353:  345  000178A1    0d 01 effffffce0                     movl    $1,_force_loop
        !           354:  346  000178A8                                   #                         asm("brw _subd_2_lp1");;  /* and loop on the error   */
        !           355:  347  000178A8    13 ff41                       brw _subd_2_lp1
        !           356:  348  000178AB                                   #                    }   /* end of loop on error */
        !           357:  349  000178AB                                   #              }   /* end of compare error */
        !           358:  350  000178AB                                  L266:
        !           359:  351  000178AB                                   #         }  /* end of WHILE loop */
        !           360:  352  000178AB                                  L259:
        !           361:  353  000178AB                                  L255:
        !           362:  354  000178AB    6d effffffcd7                        incl    _index
        !           363:  355  000178B1    13 fece                              jbr     L257
        !           364:  356  000178B4                                  L256:
        !           365:  357  000178B4                                   # }  /* end of subtest 2 */
        !           366:  358  000178B4    40                                   ret#2
        !           367:  359  000178B5                                         .set    L251,0x0
        !           368:  360  000178B5                                  L253:
        !           369:  361  000178B5    13 feb7                              jbr     L254
        !           370:  362  000178B8                                         .data
        !           371:  363  00000d28 *                                       .text
        !           372:  364  000178B8                                         .align  1
        !           373:  365  000178B8                                         .globl  _subd_3
        !           374:  366  000178B8                                  _subd_3:
        !           375:  367  000178B8    0000                                 .word   L267
        !           376:  368  000178BA                                   #   
        !           377:  369  000178BA                                   # 
        !           378:  370  000178BA                                   # 
        !           379:  371  000178BA                                   # /****************************************************************************
        !           380:  372  000178BA                                   # *
        !           381:  373  000178BA                                   # *       SUBTEST 3 - Wait 2n NOPs before storing the results
        !           382:  374  000178BA                                   # *
        !           383:  375  000178BA                                   # ****************************************************************************/
        !           384:  376  000178BA                                   # subd_3( count ) 
        !           385:  377  000178BA                                   # int count;                                      /* wait "count" * 2 NOPs   */
        !           386:  378  000178BA                                   # {
        !           387:  379  000178BA    13 0180                              jbr     L269
        !           388:  380  000178BD                                  L270:
        !           389:  381  000178BD                                   #         force_loop = FALSE;
        !           390:  382  000178BD    4d effffffcc5                        clrl    _force_loop
        !           391:  383  000178C3                                   #         subtest = 3;
        !           392:  384  000178C3    0d 03 effffffcbe                     movl    $3,_subtest
        !           393:  385  000178CA                                   #         sgl_dummy2 = count;                     /* get the NOP count */
        !           394:  386  000178CA    0d ad04 effffffcb6                   movl    4(fp),_sgl_dummy2
        !           395:  387  000178D2                                   #         for( index = 0; index < max_subd_1_index; index++ ) {
        !           396:  388  000178D2    4d effffffcb0                        clrl    _index
        !           397:  389  000178D8                                  L273:
        !           398:  390  000178D8    1d effffffcaa effffffca5             cmpl    _index,_max_subd_1_index
        !           399:  391  000178E3    91 03 13 0154                        jgeq    L272
        !           400:  392  000178E8                                   #              dbl_ld_acc   = subd_1_data[index].op_1; /* get operand 1       */
        !           401:  393  000178E8    5c 18 effffffc99 50                  mull3   $24,_index,r0
        !           402:  394  000178F0    0c 8f00000000 50                     addl2   $_subd_1_data,r0
        !           403:  395  000178F7    0d a004 effffffc8d                   movl    4(r0),_dbl_ld_acc+4
        !           404:  396  000178FF    0d 60 effffffc82                     movl    (r0),_dbl_ld_acc
        !           405:  397  00017906                                   #              dbl_value_1  = subd_1_data[index].op_2; /* get operand 2       */
        !           406:  398  00017906    5c 18 effffffc7b 50                  mull3   $24,_index,r0
        !           407:  399  0001790E    0c 8f00000008 50                     addl2   $_subd_1_data+8,r0
        !           408:  400  00017915    0d a004 effffffc6f                   movl    4(r0),_dbl_value_1+4
        !           409:  401  0001791D    0d 60 effffffc64                     movl    (r0),_dbl_value_1
        !           410:  402  00017924                                   #              dbl_expected = subd_1_data[index].exp;  /* get expected result */
        !           411:  403  00017924    5c 18 effffffc5d 50                  mull3   $24,_index,r0
        !           412:  404  0001792C    0c 8f00000010 50                     addl2   $_subd_1_data+16,r0
        !           413:  405  00017933    0d a004 effffffc51                   movl    4(r0),_dbl_expected+4
        !           414:  406  0001793B    0d 60 effffffc46                     movl    (r0),_dbl_expected
        !           415:  407  00017942                                   # /*
        !           416:  408  00017942                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           417:  409  00017942                                   #  * The force loop flag is set after the first error.
        !           418:  410  00017942                                   # */
        !           419:  411  00017942                                   #              asm("_subd_3_lp1:");
        !           420:  412  00017942                                  _subd_3_lp1:
        !           421:  413  00017942                                   #              asm("movl _sgl_dummy2,r0");        /* set the NOP count       */
        !           422:  414  00017942    0d effffffc40 50              movl _sgl_dummy2,r0
        !           423:  415  00017949                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
        !           424:  416  00017949    07 effffffc39                 ldd _dbl_ld_acc
        !           425:  417  0001794F                                   #              asm("nop");                        /* delay                   */
        !           426:  418  0001794F    10                            nop
        !           427:  419  00017950                                   #              asm("subd _dbl_value_1");          /* subtract the 2nd operand*/
        !           428:  420  00017950    d7 effffffc32                 subd _dbl_value_1
        !           429:  421  00017956                                   #              asm("1:");
        !           430:  422  00017956                                  1:
        !           431:  423  00017956                                   #              asm("decl r0");                    /* decrement the NOP count  */
        !           432:  424  00017956    7d 50                         decl r0
        !           433:  425  00017958                                   #              asm("bneq 1b");                    /*    till the count = 0    */
        !           434:  426  00017958    21 fc                         bneq 1b
        !           435:  427  0001795A                                   #              asm("std _dbl_st_acc");            /* store the result        */
        !           436:  428  0001795A    27 effffffc28                 std _dbl_st_acc
        !           437:  429  00017960                                   #              if( force_loop )
        !           438:  430  00017960    5d effffffc22                        tstl    _force_loop
        !           439:  431  00017966    31 02                                jeql    L274
        !           440:  432  00017968                                   #                   asm("brb _subd_3_lp1");;      /* loop on the error       */
        !           441:  433  00017968    11 d8                         brb _subd_3_lp1
        !           442:  434  0001796A                                  L274:
        !           443:  435  0001796A                                   # /* 
        !           444:  436  0001796A                                   #  * end error loop - test the results
        !           445:  437  0001796A                                   # */
        !           446:  438  0001796A                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
        !           447:  439  0001796A                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
        !           448:  440  0001796A    1d effffffc18 effffffc13             cmpl    _dbl_st_acc,_dbl_expected
        !           449:  441  00017975    21 10                                jneq    L9997
        !           450:  442  00017977    1d effffffc0f effffffc0a             cmpl    _dbl_st_acc+4,_dbl_expected+4
        !           451:  443  00017982    21 03 13 00ac                        jeql    L275
        !           452:  444  00017987                                  L9997:
        !           453:  445  00017987                                   #                    errcnt++;                    /* bump the error count   */
        !           454:  446  00017987    6d effffffbfb                        incl    _errcnt
        !           455:  447  0001798D                                   #                    if( prt_error ) {
        !           456:  448  0001798D    5d effffffbf5                        tstl    _prt_error
        !           457:  449  00017993    31 7b                                jeql    L276
        !           458:  450  00017995                                   #                         writes(" \n");      /* start a new print line */
        !           459:  451  00017995                                         .data   1
        !           460:  452  00000db1 *                                L277:
        !           461:  453  00000db1 *  200A00                               .ascii  " \12\0"
        !           462:  454  00000db4 *                                       .text
        !           463:  455  00017995    dd 8f00000db1                        pushl   $L277
        !           464:  456  0001799B    fe 08 effffffbe6                     callf   $8,_writes
        !           465:  457  000179A2                                   #                         writes("cycle: ");
        !           466:  458  000179A2                                         .data   1
        !           467:  459  00000db4 *                                L278:
        !           468:  460  00000db4 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           469:  461  00000dbc *                                       .text
        !           470:  462  000179A2    dd 8f00000db4                        pushl   $L278
        !           471:  463  000179A8    fe 08 effffffbd9                     callf   $8,_writes
        !           472:  464  000179AF                                   #                         writed( cycle );
        !           473:  465  000179AF    dd effffffbd3                        pushl   _cycle
        !           474:  466  000179B5    fe 08 effffffbcc                     callf   $8,_writed
        !           475:  467  000179BC                                   #                         writes("  SUBD test ");
        !           476:  468  000179BC                                         .data   1
        !           477:  469  00000dbc *                                L279:
        !           478:  470  00000dbc *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !           479:                   0
        !           480:  471  00000dc9 *                                       .text
        !           481:  472  000179BC    dd 8f00000dbc                        pushl   $L279
        !           482:  473  000179C2    fe 08 effffffbbf                     callf   $8,_writes
        !           483:  474  000179C9                                   #                     writed( test_no );
        !           484:  475  000179C9    dd effffffbb9                        pushl   _test_no
        !           485:  476  000179CF    fe 08 effffffbb2                     callf   $8,_writed
        !           486:  477  000179D6                                   #                     writes(", subtest 3 (wait ");
        !           487:  478  000179D6                                         .data   1
        !           488:  479  00000dc9 *                                L280:
        !           489:  480  00000dc9 *  2C20737562746573742033202            .ascii  ", subtest 3 (wait \0"
        !           490:                   8776169742000
        !           491:  481  00000ddc *                                       .text
        !           492:  482  000179D6    dd 8f00000dc9                        pushl   $L280
        !           493:  483  000179DC    fe 08 effffffba5                     callf   $8,_writes
        !           494:  484  000179E3                                   #                         sgl_dummy1 = 2*count;
        !           495:  485  000179E3    48 01 ad04 50                        shll    $1,4(fp),r0
        !           496:  486  000179E8    0d 50 effffffb99                     movl    r0,_sgl_dummy1
        !           497:  487  000179EF                                   #                         writed( sgl_dummy1 );   /* write the NOP count    */
        !           498:  488  000179EF    dd effffffb93                        pushl   _sgl_dummy1
        !           499:  489  000179F5    fe 08 effffffb8c                     callf   $8,_writed
        !           500:  490  000179FC                                   #                         writes(" NOPs) - BAD FINAL ACC\n");
        !           501:  491  000179FC                                         .data   1
        !           502:  492  00000ddc *                                L281:
        !           503:  493  00000ddc *  204E4F507329202D204241442            .ascii  " NOPs) - BAD FINAL ACC\12\0"
        !           504:                   046494E414C204143430A00
        !           505:  494  00000df4 *                                       .text
        !           506:  495  000179FC    dd 8f00000ddc                        pushl   $L281
        !           507:  496  00017A02    fe 08 effffffb7f                     callf   $8,_writes
        !           508:  497  00017A09                                   #                         print_subd_data();
        !           509:  498  00017A09    fe 04 ef0000067c                     callf   $4,_print_subd_data
        !           510:  499  00017A10                                   #                    }
        !           511:  500  00017A10                                   #                    if( halt_flg ) 
        !           512:  501  00017A10                                  L276:
        !           513:  502  00017A10    5d effffffb72                        tstl    _halt_flg
        !           514:  503  00017A16    31 09                                jeql    L282
        !           515:  504  00017A18                                   #                         subd_er_halt( BAD_ACC_HLT );    /* halt on the error */
        !           516:  505  00017A18    dd 01                                pushl   $1
        !           517:  506  00017A1A    fe 08 ef00000761                     callf   $8,_subd_er_halt
        !           518:  507  00017A21                                   #                    if( loop_on_err ) {
        !           519:  508  00017A21                                  L282:
        !           520:  509  00017A21    5d effffffb61                        tstl    _loop_on_err
        !           521:  510  00017A27    31 0a                                jeql    L283
        !           522:  511  00017A29                                   #                         force_loop = TRUE;        /* set the force loop flag */
        !           523:  512  00017A29    0d 01 effffffb58                     movl    $1,_force_loop
        !           524:  513  00017A30                                   #                         asm("brw _subd_3_lp1");;  /* and loop on the error   */
        !           525:  514  00017A30    13 ff0f                       brw _subd_3_lp1
        !           526:  515  00017A33                                   #                    }   /* end of loop on error */
        !           527:  516  00017A33                                   #              }   /* end of compare error */
        !           528:  517  00017A33                                  L283:
        !           529:  518  00017A33                                   #         }  /* end of WHILE loop */
        !           530:  519  00017A33                                  L275:
        !           531:  520  00017A33                                  L271:
        !           532:  521  00017A33    6d effffffb4f                        incl    _index
        !           533:  522  00017A39    13 fe9c                              jbr     L273
        !           534:  523  00017A3C                                  L272:
        !           535:  524  00017A3C                                   # }  /* end of subtest 3 */
        !           536:  525  00017A3C    40                                   ret#2
        !           537:  526  00017A3D                                         .set    L267,0x0
        !           538:  527  00017A3D                                  L269:
        !           539:  528  00017A3D    13 fe7d                              jbr     L270
        !           540:  529  00017A40                                         .data
        !           541:  530  00000d28 *                                       .text
        !           542:  531  00017A40                                         .align  1
        !           543:  532  00017A40                                         .globl  _subd_4
        !           544:  533  00017A40                                  _subd_4:
        !           545:  534  00017A40    0000                                 .word   L284
        !           546:  535  00017A42                                   #   
        !           547:  536  00017A42                                   # 
        !           548:  537  00017A42                                   # 
        !           549:  538  00017A42                                   # /************************************************************************
        !           550:  539  00017A42                                   # *
        !           551:  540  00017A42                                   # *       SUBTEST 4 - Wait 2 NOPs before storing the results
        !           552:  541  00017A42                                   # *
        !           553:  542  00017A42                                   # ************************************************************************/
        !           554:  543  00017A42                                   # subd_4() 
        !           555:  544  00017A42                                   # {
        !           556:  545  00017A42    13 0149                              jbr     L286
        !           557:  546  00017A45                                  L287:
        !           558:  547  00017A45                                   #         force_loop = FALSE;
        !           559:  548  00017A45    4d effffffb3d                        clrl    _force_loop
        !           560:  549  00017A4B                                   #         subtest = 4;
        !           561:  550  00017A4B    0d 04 effffffb36                     movl    $4,_subtest
        !           562:  551  00017A52                                   #         for( index = 0; index < max_subd_1_index; index++ ) {
        !           563:  552  00017A52    4d effffffb30                        clrl    _index
        !           564:  553  00017A58                                  L290:
        !           565:  554  00017A58    1d effffffb2a effffffb25             cmpl    _index,_max_subd_1_index
        !           566:  555  00017A63    91 03 13 0125                        jgeq    L289
        !           567:  556  00017A68                                   #              dbl_ld_acc   = subd_1_data[index].op_1; /* get operand 1       */
        !           568:  557  00017A68    5c 18 effffffb19 50                  mull3   $24,_index,r0
        !           569:  558  00017A70    0c 8f00000000 50                     addl2   $_subd_1_data,r0
        !           570:  559  00017A77    0d a004 effffffb0d                   movl    4(r0),_dbl_ld_acc+4
        !           571:  560  00017A7F    0d 60 effffffb02                     movl    (r0),_dbl_ld_acc
        !           572:  561  00017A86                                   #              dbl_value_1  = subd_1_data[index].op_2; /* get operand 2       */
        !           573:  562  00017A86    5c 18 effffffafb 50                  mull3   $24,_index,r0
        !           574:  563  00017A8E    0c 8f00000008 50                     addl2   $_subd_1_data+8,r0
        !           575:  564  00017A95    0d a004 effffffaef                   movl    4(r0),_dbl_value_1+4
        !           576:  565  00017A9D    0d 60 effffffae4                     movl    (r0),_dbl_value_1
        !           577:  566  00017AA4                                   #              dbl_expected = subd_1_data[index].exp;  /* get expected result */
        !           578:  567  00017AA4    5c 18 effffffadd 50                  mull3   $24,_index,r0
        !           579:  568  00017AAC    0c 8f00000010 50                     addl2   $_subd_1_data+16,r0
        !           580:  569  00017AB3    0d a004 effffffad1                   movl    4(r0),_dbl_expected+4
        !           581:  570  00017ABB    0d 60 effffffac6                     movl    (r0),_dbl_expected
        !           582:  571  00017AC2                                   # /*
        !           583:  572  00017AC2                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           584:  573  00017AC2                                   #  * The force loop flag is set after the first error.
        !           585:  574  00017AC2                                   # */
        !           586:  575  00017AC2                                   #              asm("_subd_4_lp1:");
        !           587:  576  00017AC2                                  _subd_4_lp1:
        !           588:  577  00017AC2                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
        !           589:  578  00017AC2    07 effffffac0                 ldd _dbl_ld_acc
        !           590:  579  00017AC8                                   #              asm("nop");                        /* delay                   */
        !           591:  580  00017AC8    10                            nop
        !           592:  581  00017AC9                                   #              asm("subd _dbl_value_1");          /* subtract the 2nd operand*/
        !           593:  582  00017AC9    d7 effffffab9                 subd _dbl_value_1
        !           594:  583  00017ACF                                   #              asm("nop");                        /* delay before ...        */
        !           595:  584  00017ACF    10                            nop
        !           596:  585  00017AD0                                   #              asm("nop");                        /* ... storing the result  */
        !           597:  586  00017AD0    10                            nop
        !           598:  587  00017AD1                                   #              asm("std _dbl_st_acc");            /* store the result        */
        !           599:  588  00017AD1    27 effffffab1                 std _dbl_st_acc
        !           600:  589  00017AD7                                   #              if( force_loop )
        !           601:  590  00017AD7    5d effffffaab                        tstl    _force_loop
        !           602:  591  00017ADD    31 02                                jeql    L291
        !           603:  592  00017ADF                                   #                   asm("brb _subd_4_lp1");;      /* loop on the error       */
        !           604:  593  00017ADF    11 e1                         brb _subd_4_lp1
        !           605:  594  00017AE1                                  L291:
        !           606:  595  00017AE1                                   # /* 
        !           607:  596  00017AE1                                   #  * end error loop - test the results
        !           608:  597  00017AE1                                   # */
        !           609:  598  00017AE1                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
        !           610:  599  00017AE1                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
        !           611:  600  00017AE1    1d effffffaa1 effffffa9c             cmpl    _dbl_st_acc,_dbl_expected
        !           612:  601  00017AEC    21 10                                jneq    L9996
        !           613:  602  00017AEE    1d effffffa98 effffffa93             cmpl    _dbl_st_acc+4,_dbl_expected+4
        !           614:  603  00017AF9    21 03 13 0086                        jeql    L292
        !           615:  604  00017AFE                                  L9996:
        !           616:  605  00017AFE                                   #                    errcnt++;                    /* bump the error count   */
        !           617:  606  00017AFE    6d effffffa84                        incl    _errcnt
        !           618:  607  00017B04                                   #                    if( prt_error ) {
        !           619:  608  00017B04    5d effffffa7e                        tstl    _prt_error
        !           620:  609  00017B0A    31 55                                jeql    L293
        !           621:  610  00017B0C                                   #                         writes(" \n");      /* start a new print line */
        !           622:  611  00017B0C                                         .data   1
        !           623:  612  00000df4 *                                L294:
        !           624:  613  00000df4 *  200A00                               .ascii  " \12\0"
        !           625:  614  00000df7 *                                       .text
        !           626:  615  00017B0C    dd 8f00000df4                        pushl   $L294
        !           627:  616  00017B12    fe 08 effffffa6f                     callf   $8,_writes
        !           628:  617  00017B19                                   #                         writes("cycle: ");
        !           629:  618  00017B19                                         .data   1
        !           630:  619  00000df7 *                                L295:
        !           631:  620  00000df7 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           632:  621  00000dff *                                       .text
        !           633:  622  00017B19    dd 8f00000df7                        pushl   $L295
        !           634:  623  00017B1F    fe 08 effffffa62                     callf   $8,_writes
        !           635:  624  00017B26                                   #                         writed( cycle );
        !           636:  625  00017B26    dd effffffa5c                        pushl   _cycle
        !           637:  626  00017B2C    fe 08 effffffa55                     callf   $8,_writed
        !           638:  627  00017B33                                   #                         writes("  SUBD test ");
        !           639:  628  00017B33                                         .data   1
        !           640:  629  00000dff *                                L296:
        !           641:  630  00000dff *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !           642:                   0
        !           643:  631  00000e0c *                                       .text
        !           644:  632  00017B33    dd 8f00000dff                        pushl   $L296
        !           645:  633  00017B39    fe 08 effffffa48                     callf   $8,_writes
        !           646:  634  00017B40                                   #                     writed( test_no );
        !           647:  635  00017B40    dd effffffa42                        pushl   _test_no
        !           648:  636  00017B46    fe 08 effffffa3b                     callf   $8,_writed
        !           649:  637  00017B4D                                   #                     writes(", subtest 4 (2 NOPs) - BAD FINAL ACC\n");
        !           650:  638  00017B4D                                         .data   1
        !           651:  639  00000e0c *                                L297:
        !           652:  640  00000e0c *  2C20737562746573742034202            .ascii  ", subtest 4 (2 NOPs) - BAD FINAL ACC\12\0"
        !           653:                   832204E4F507329202D204241
        !           654:                   442046494E414C204143430A0
        !           655:                   0
        !           656:  641  00000e32 *                                       .text
        !           657:  642  00017B4D    dd 8f00000e0c                        pushl   $L297
        !           658:  643  00017B53    fe 08 effffffa2e                     callf   $8,_writes
        !           659:  644  00017B5A                                   #                         print_subd_data();
        !           660:  645  00017B5A    fe 04 ef0000052b                     callf   $4,_print_subd_data
        !           661:  646  00017B61                                   #                    }
        !           662:  647  00017B61                                   #                    if( halt_flg ) 
        !           663:  648  00017B61                                  L293:
        !           664:  649  00017B61    5d effffffa21                        tstl    _halt_flg
        !           665:  650  00017B67    31 09                                jeql    L298
        !           666:  651  00017B69                                   #                         subd_er_halt( BAD_ACC_HLT );    /* halt on the error */
        !           667:  652  00017B69    dd 01                                pushl   $1
        !           668:  653  00017B6B    fe 08 ef00000610                     callf   $8,_subd_er_halt
        !           669:  654  00017B72                                   #                    if( loop_on_err ) {
        !           670:  655  00017B72                                  L298:
        !           671:  656  00017B72    5d effffffa10                        tstl    _loop_on_err
        !           672:  657  00017B78    31 0a                                jeql    L299
        !           673:  658  00017B7A                                   #                         force_loop = TRUE;        /* set the force loop flag */
        !           674:  659  00017B7A    0d 01 effffffa07                     movl    $1,_force_loop
        !           675:  660  00017B81                                   #                         asm("brw _subd_4_lp1");;  /* and loop on the error   */
        !           676:  661  00017B81    13 ff3e                       brw _subd_4_lp1
        !           677:  662  00017B84                                   #                    }   /* end of loop on error */
        !           678:  663  00017B84                                   #              }   /* end of compare error */
        !           679:  664  00017B84                                  L299:
        !           680:  665  00017B84                                   #         }  /* end of WHILE loop */
        !           681:  666  00017B84                                  L292:
        !           682:  667  00017B84                                  L288:
        !           683:  668  00017B84    6d effffff9fe                        incl    _index
        !           684:  669  00017B8A    13 fecb                              jbr     L290
        !           685:  670  00017B8D                                  L289:
        !           686:  671  00017B8D                                   # }  /* end of subtest 4 */
        !           687:  672  00017B8D    40                                   ret#2
        !           688:  673  00017B8E                                         .set    L284,0x0
        !           689:  674  00017B8E                                  L286:
        !           690:  675  00017B8E    13 feb4                              jbr     L287
        !           691:  676  00017B91                                         .data
        !           692:  677  00000d28 *                                       .text
        !           693:  678  00017B91    00                                   .align  1
        !           694:  679  00017B92                                         .globl  _subd_5
        !           695:  680  00017B92                                  _subd_5:
        !           696:  681  00017B92    0000                                 .word   L300
        !           697:  682  00017B94                                   #   
        !           698:  683  00017B94                                   # 
        !           699:  684  00017B94                                   # 
        !           700:  685  00017B94                                   # /************************************************************************
        !           701:  686  00017B94                                   # *
        !           702:  687  00017B94                                   # *       SUBTEST 5 - Wait 1 NOP before storing the results
        !           703:  688  00017B94                                   # *
        !           704:  689  00017B94                                   # ************************************************************************/
        !           705:  690  00017B94                                   # subd_5() 
        !           706:  691  00017B94                                   # {
        !           707:  692  00017B94    13 0148                              jbr     L302
        !           708:  693  00017B97                                  L303:
        !           709:  694  00017B97                                   #         force_loop = FALSE;
        !           710:  695  00017B97    4d effffff9eb                        clrl    _force_loop
        !           711:  696  00017B9D                                   #         subtest = 5;
        !           712:  697  00017B9D    0d 05 effffff9e4                     movl    $5,_subtest
        !           713:  698  00017BA4                                   #         for( index = 0; index < max_subd_1_index; index++ ) {
        !           714:  699  00017BA4    4d effffff9de                        clrl    _index
        !           715:  700  00017BAA                                  L306:
        !           716:  701  00017BAA    1d effffff9d8 effffff9d3             cmpl    _index,_max_subd_1_index
        !           717:  702  00017BB5    91 03 13 0124                        jgeq    L305
        !           718:  703  00017BBA                                   #              dbl_ld_acc   = subd_1_data[index].op_1; /* get operand 1       */
        !           719:  704  00017BBA    5c 18 effffff9c7 50                  mull3   $24,_index,r0
        !           720:  705  00017BC2    0c 8f00000000 50                     addl2   $_subd_1_data,r0
        !           721:  706  00017BC9    0d a004 effffff9bb                   movl    4(r0),_dbl_ld_acc+4
        !           722:  707  00017BD1    0d 60 effffff9b0                     movl    (r0),_dbl_ld_acc
        !           723:  708  00017BD8                                   #              dbl_value_1  = subd_1_data[index].op_2; /* get operand 2       */
        !           724:  709  00017BD8    5c 18 effffff9a9 50                  mull3   $24,_index,r0
        !           725:  710  00017BE0    0c 8f00000008 50                     addl2   $_subd_1_data+8,r0
        !           726:  711  00017BE7    0d a004 effffff99d                   movl    4(r0),_dbl_value_1+4
        !           727:  712  00017BEF    0d 60 effffff992                     movl    (r0),_dbl_value_1
        !           728:  713  00017BF6                                   #              dbl_expected = subd_1_data[index].exp;  /* get expected result */
        !           729:  714  00017BF6    5c 18 effffff98b 50                  mull3   $24,_index,r0
        !           730:  715  00017BFE    0c 8f00000010 50                     addl2   $_subd_1_data+16,r0
        !           731:  716  00017C05    0d a004 effffff97f                   movl    4(r0),_dbl_expected+4
        !           732:  717  00017C0D    0d 60 effffff974                     movl    (r0),_dbl_expected
        !           733:  718  00017C14                                   # /*
        !           734:  719  00017C14                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           735:  720  00017C14                                   #  * The force loop flag is set after the first error.
        !           736:  721  00017C14                                   # */
        !           737:  722  00017C14                                   #              asm("_subd_5_lp1:");
        !           738:  723  00017C14                                  _subd_5_lp1:
        !           739:  724  00017C14                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
        !           740:  725  00017C14    07 effffff96e                 ldd _dbl_ld_acc
        !           741:  726  00017C1A                                   #              asm("nop");                        /* delay                   */
        !           742:  727  00017C1A    10                            nop
        !           743:  728  00017C1B                                   #              asm("subd _dbl_value_1");          /* subtract the 2nd operand*/
        !           744:  729  00017C1B    d7 effffff967                 subd _dbl_value_1
        !           745:  730  00017C21                                   #              asm("nop");                        /* delay before storing    */
        !           746:  731  00017C21    10                            nop
        !           747:  732  00017C22                                   #              asm("std _dbl_st_acc");            /* store the result        */
        !           748:  733  00017C22    27 effffff960                 std _dbl_st_acc
        !           749:  734  00017C28                                   #              if( force_loop )
        !           750:  735  00017C28    5d effffff95a                        tstl    _force_loop
        !           751:  736  00017C2E    31 02                                jeql    L307
        !           752:  737  00017C30                                   #                   asm("brb _subd_5_lp1");;      /* loop on the error       */
        !           753:  738  00017C30    11 e2                         brb _subd_5_lp1
        !           754:  739  00017C32                                  L307:
        !           755:  740  00017C32                                   # /* 
        !           756:  741  00017C32                                   #  * end error loop - test the results
        !           757:  742  00017C32                                   # */
        !           758:  743  00017C32                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
        !           759:  744  00017C32                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
        !           760:  745  00017C32    1d effffff950 effffff94b             cmpl    _dbl_st_acc,_dbl_expected
        !           761:  746  00017C3D    21 10                                jneq    L9995
        !           762:  747  00017C3F    1d effffff947 effffff942             cmpl    _dbl_st_acc+4,_dbl_expected+4
        !           763:  748  00017C4A    21 03 13 0086                        jeql    L308
        !           764:  749  00017C4F                                  L9995:
        !           765:  750  00017C4F                                   #                    errcnt++;                    /* bump the error count   */
        !           766:  751  00017C4F    6d effffff933                        incl    _errcnt
        !           767:  752  00017C55                                   #                    if( prt_error ) {
        !           768:  753  00017C55    5d effffff92d                        tstl    _prt_error
        !           769:  754  00017C5B    31 55                                jeql    L309
        !           770:  755  00017C5D                                   #                         writes(" \n");      /* start a new print line */
        !           771:  756  00017C5D                                         .data   1
        !           772:  757  00000e32 *                                L310:
        !           773:  758  00000e32 *  200A00                               .ascii  " \12\0"
        !           774:  759  00000e35 *                                       .text
        !           775:  760  00017C5D    dd 8f00000e32                        pushl   $L310
        !           776:  761  00017C63    fe 08 effffff91e                     callf   $8,_writes
        !           777:  762  00017C6A                                   #                         writes("cycle: ");
        !           778:  763  00017C6A                                         .data   1
        !           779:  764  00000e35 *                                L311:
        !           780:  765  00000e35 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           781:  766  00000e3d *                                       .text
        !           782:  767  00017C6A    dd 8f00000e35                        pushl   $L311
        !           783:  768  00017C70    fe 08 effffff911                     callf   $8,_writes
        !           784:  769  00017C77                                   #                         writed( cycle );
        !           785:  770  00017C77    dd effffff90b                        pushl   _cycle
        !           786:  771  00017C7D    fe 08 effffff904                     callf   $8,_writed
        !           787:  772  00017C84                                   #                         writes("  SUBD test ");
        !           788:  773  00017C84                                         .data   1
        !           789:  774  00000e3d *                                L312:
        !           790:  775  00000e3d *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !           791:                   0
        !           792:  776  00000e4a *                                       .text
        !           793:  777  00017C84    dd 8f00000e3d                        pushl   $L312
        !           794:  778  00017C8A    fe 08 effffff8f7                     callf   $8,_writes
        !           795:  779  00017C91                                   #                     writed( test_no );
        !           796:  780  00017C91    dd effffff8f1                        pushl   _test_no
        !           797:  781  00017C97    fe 08 effffff8ea                     callf   $8,_writed
        !           798:  782  00017C9E                                   #                     writes(", subtest 5 (1 NOP) - BAD FINAL ACC\n");
        !           799:  783  00017C9E                                         .data   1
        !           800:  784  00000e4a *                                L313:
        !           801:  785  00000e4a *  2C20737562746573742035202            .ascii  ", subtest 5 (1 NOP) - BAD FINAL ACC\12\0"
        !           802:                   831204E4F5029202D20424144
        !           803:                   2046494E414C204143430A00
        !           804:  786  00000e6f *                                       .text
        !           805:  787  00017C9E    dd 8f00000e4a                        pushl   $L313
        !           806:  788  00017CA4    fe 08 effffff8dd                     callf   $8,_writes
        !           807:  789  00017CAB                                   #                         print_subd_data();
        !           808:  790  00017CAB    fe 04 ef000003da                     callf   $4,_print_subd_data
        !           809:  791  00017CB2                                   #                    }
        !           810:  792  00017CB2                                   #                    if( halt_flg ) 
        !           811:  793  00017CB2                                  L309:
        !           812:  794  00017CB2    5d effffff8d0                        tstl    _halt_flg
        !           813:  795  00017CB8    31 09                                jeql    L314
        !           814:  796  00017CBA                                   #                         subd_er_halt( BAD_ACC_HLT );    /* halt on the error */
        !           815:  797  00017CBA    dd 01                                pushl   $1
        !           816:  798  00017CBC    fe 08 ef000004bf                     callf   $8,_subd_er_halt
        !           817:  799  00017CC3                                   #                    if( loop_on_err ) {
        !           818:  800  00017CC3                                  L314:
        !           819:  801  00017CC3    5d effffff8bf                        tstl    _loop_on_err
        !           820:  802  00017CC9    31 0a                                jeql    L315
        !           821:  803  00017CCB                                   #                         force_loop = TRUE;        /* set the force loop flag */
        !           822:  804  00017CCB    0d 01 effffff8b6                     movl    $1,_force_loop
        !           823:  805  00017CD2                                   #                         asm("brw _subd_5_lp1");;  /* and loop on the error   */
        !           824:  806  00017CD2    13 ff3f                       brw _subd_5_lp1
        !           825:  807  00017CD5                                   #                    }   /* end of loop on error */
        !           826:  808  00017CD5                                   #              }   /* end of compare error */
        !           827:  809  00017CD5                                  L315:
        !           828:  810  00017CD5                                   #         }  /* end of WHILE loop */
        !           829:  811  00017CD5                                  L308:
        !           830:  812  00017CD5                                  L304:
        !           831:  813  00017CD5    6d effffff8ad                        incl    _index
        !           832:  814  00017CDB    13 fecc                              jbr     L306
        !           833:  815  00017CDE                                  L305:
        !           834:  816  00017CDE                                   # }  /* end of subtest 5 */
        !           835:  817  00017CDE    40                                   ret#2
        !           836:  818  00017CDF                                         .set    L300,0x0
        !           837:  819  00017CDF                                  L302:
        !           838:  820  00017CDF    13 feb5                              jbr     L303
        !           839:  821  00017CE2                                         .data
        !           840:  822  00000d28 *                                       .text
        !           841:  823  00017CE2                                         .align  1
        !           842:  824  00017CE2                                         .globl  _subd_6
        !           843:  825  00017CE2                                  _subd_6:
        !           844:  826  00017CE2    0000                                 .word   L316
        !           845:  827  00017CE4                                   #   
        !           846:  828  00017CE4                                   # 
        !           847:  829  00017CE4                                   # 
        !           848:  830  00017CE4                                   # /************************************************************************
        !           849:  831  00017CE4                                   # *
        !           850:  832  00017CE4                                   # *       SUBTEST 6 - Check for register corruption
        !           851:  833  00017CE4                                   # *
        !           852:  834  00017CE4                                   # ************************************************************************/
        !           853:  835  00017CE4                                   # subd_6() 
        !           854:  836  00017CE4                                   # {
        !           855:  837  00017CE4    13 01c8                              jbr     L318
        !           856:  838  00017CE7                                  L319:
        !           857:  839  00017CE7                                   #         force_loop = FALSE;                     /* clear force_loop flg */
        !           858:  840  00017CE7    4d effffff89b                        clrl    _force_loop
        !           859:  841  00017CED                                   #         subtest = 6;
        !           860:  842  00017CED    0d 06 effffff894                     movl    $6,_subtest
        !           861:  843  00017CF4                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
        !           862:  844  00017CF4    dd 8f00000000                        pushl   $_load_regs
        !           863:  845  00017CFA    fe 08 effffff887                     callf   $8,_fill_reg_buf
        !           864:  846  00017D01                                   #         index = 0;
        !           865:  847  00017D01    4d effffff881                        clrl    _index
        !           866:  848  00017D07                                   #         dbl_ld_acc   = subd_1_data[0].op_1;     /* get operand 1       */
        !           867:  849  00017D07    0d effffff87f effffff87a             movl    _subd_1_data+4,_dbl_ld_acc+4
        !           868:  850  00017D12    0d effffff870 effffff86b             movl    _subd_1_data,_dbl_ld_acc
        !           869:  851  00017D1D                                   #         dbl_value_1  = subd_1_data[0].op_2;     /* get operand 2       */
        !           870:  852  00017D1D    0d effffff871 effffff864             movl    _subd_1_data+12,_dbl_value_1+4
        !           871:  853  00017D28    0d effffff862 effffff855             movl    _subd_1_data+8,_dbl_value_1
        !           872:  854  00017D33                                   #         dbl_expected = subd_1_data[0].exp;      /* get expected result */
        !           873:  855  00017D33    0d effffff863 effffff84e             movl    _subd_1_data+20,_dbl_expected+4
        !           874:  856  00017D3E    0d effffff854 effffff83f             movl    _subd_1_data+16,_dbl_expected
        !           875:  857  00017D49                                   # /*
        !           876:  858  00017D49                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           877:  859  00017D49                                   #  * The force loop flag is set after the first error.
        !           878:  860  00017D49                                   # */
        !           879:  861  00017D49                                   #         asm("_subd_6_lp1:");
        !           880:  862  00017D49                                  _subd_6_lp1:
        !           881:  863  00017D49                                   #         asm("ldd _dbl_ld_acc");                 /* LOAD the accumulator  */
        !           882:  864  00017D49    07 effffff839                 ldd _dbl_ld_acc
        !           883:  865  00017D4F                                   #         asm("nop");
        !           884:  866  00017D4F    10                            nop
        !           885:  867  00017D50                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
        !           886:  868  00017D50    ab 891fff effffff82f          loadr $0x1fff,_load_regs
        !           887:  869  00017D59                                   #         asm("nop");
        !           888:  870  00017D59    10                            nop
        !           889:  871  00017D5A                                   #         asm("subd _dbl_value_1");               /* do the subtract       */
        !           890:  872  00017D5A    d7 effffff828                 subd _dbl_value_1
        !           891:  873  00017D60                                   #         asm("nop");
        !           892:  874  00017D60    10                            nop
        !           893:  875  00017D61                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
        !           894:  876  00017D61    bb 891fff effffff81e          storer $0x1fff,_store_regs
        !           895:  877  00017D6A                                   #         asm("std _dbl_st_acc");                 /* save the accumulator  */
        !           896:  878  00017D6A    27 effffff818                 std _dbl_st_acc
        !           897:  879  00017D70                                   #         if( force_loop )
        !           898:  880  00017D70    5d effffff812                        tstl    _force_loop
        !           899:  881  00017D76    31 02                                jeql    L321
        !           900:  882  00017D78                                   #              asm("brb _subd_6_lp1");;           /* loop on the error     */
        !           901:  883  00017D78    11 cf                         brb _subd_6_lp1
        !           902:  884  00017D7A                                  L321:
        !           903:  885  00017D7A                                   # /*
        !           904:  886  00017D7A                                   #  * Now compare the stored register values to those that were loaded
        !           905:  887  00017D7A                                   # */
        !           906:  888  00017D7A                                   #         index2 = 0;
        !           907:  889  00017D7A    4d effffff808                        clrl    _index2
        !           908:  890  00017D80                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
        !           909:  891  00017D80                                  L322:
        !           910:  892  00017D80    0d effffff802 50                     movl    _index2,r0
        !           911:  893  00017D87    0d effffff7fb 51                     movl    _index2,r1
        !           912:  894  00017D8E    1d 40effffff7f3                      cmpl    _load_regs[r0],_store_regs[r1]
        !           913:                   41effffff7ed 
        !           914:  895  00017D9B    21 11                                jneq    L323
        !           915:  896  00017D9D    1d effffff7e5 0d                     cmpl    _index2,$13
        !           916:  897  00017DA4    81 08                                jgeq    L323
        !           917:  898  00017DA6                                   #              index2++;                          /* check reg values        */
        !           918:  899  00017DA6    6d effffff7dc                        incl    _index2
        !           919:  900  00017DAC    11 d2                                jbr     L322
        !           920:  901  00017DAE                                  L323:
        !           921:  902  00017DAE                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
        !           922:  903  00017DAE    1d effffff7d4 0d                     cmpl    _index2,$13
        !           923:  904  00017DB5    91 03 13 00f4                        jgeq    L324
        !           924:  905  00017DBA                                   #              errcnt++;                          /* bump the error count    */
        !           925:  906  00017DBA    6d effffff7c8                        incl    _errcnt
        !           926:  907  00017DC0                                   #              if( prt_error ) {
        !           927:  908  00017DC0    5d effffff7c2                        tstl    _prt_error
        !           928:  909  00017DC6    21 03 13 00c0                        jeql    L325
        !           929:  910  00017DCB                                   #                   writes(" \n");           /* start a new print line  */
        !           930:  911  00017DCB                                         .data   1
        !           931:  912  00000e6f *                                L326:
        !           932:  913  00000e6f *  200A00                               .ascii  " \12\0"
        !           933:  914  00000e72 *                                       .text
        !           934:  915  00017DCB    dd 8f00000e6f                        pushl   $L326
        !           935:  916  00017DD1    fe 08 effffff7b0                     callf   $8,_writes
        !           936:  917  00017DD8                                   #                   writes("cycle: ");
        !           937:  918  00017DD8                                         .data   1
        !           938:  919  00000e72 *                                L327:
        !           939:  920  00000e72 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           940:  921  00000e7a *                                       .text
        !           941:  922  00017DD8    dd 8f00000e72                        pushl   $L327
        !           942:  923  00017DDE    fe 08 effffff7a3                     callf   $8,_writes
        !           943:  924  00017DE5                                   #                   writed( cycle );
        !           944:  925  00017DE5    dd effffff79d                        pushl   _cycle
        !           945:  926  00017DEB    fe 08 effffff796                     callf   $8,_writed
        !           946:  927  00017DF2                                   #                   writes("  SUBD test ");
        !           947:  928  00017DF2                                         .data   1
        !           948:  929  00000e7a *                                L328:
        !           949:  930  00000e7a *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !           950:                   0
        !           951:  931  00000e87 *                                       .text
        !           952:  932  00017DF2    dd 8f00000e7a                        pushl   $L328
        !           953:  933  00017DF8    fe 08 effffff789                     callf   $8,_writes
        !           954:  934  00017DFF                                   #               writed( test_no );
        !           955:  935  00017DFF    dd effffff783                        pushl   _test_no
        !           956:  936  00017E05    fe 08 effffff77c                     callf   $8,_writed
        !           957:  937  00017E0C                                   #     writes(", subtest 6 - A REGISTER WAS CHANGED\n");
        !           958:  938  00017E0C                                         .data   1
        !           959:  939  00000e87 *                                L329:
        !           960:  940  00000e87 *  2C20737562746573742036202            .ascii  ", subtest 6 - A REGISTER WAS CHANGED\12\0"
        !           961:                   D204120524547495354455220
        !           962:                   574153204348414E4745440A0
        !           963:                   0
        !           964:  941  00000ead *                                       .text
        !           965:  942  00017E0C    dd 8f00000e87                        pushl   $L329
        !           966:  943  00017E12    fe 08 effffff76f                     callf   $8,_writes
        !           967:  944  00017E19                                   #                   print_subd_data();            /* print the operands      */
        !           968:  945  00017E19    fe 04 ef0000026c                     callf   $4,_print_subd_data
        !           969:  946  00017E20                                   #                   writes("register ");          /* print the information   */
        !           970:  947  00017E20                                         .data   1
        !           971:  948  00000ead *                                L330:
        !           972:  949  00000ead *  72656769737465722000                 .ascii  "register \0"
        !           973:  950  00000eb7 *                                       .text
        !           974:  951  00017E20    dd 8f00000ead                        pushl   $L330
        !           975:  952  00017E26    fe 08 effffff75b                     callf   $8,_writes
        !           976:  953  00017E2D                                   #                   writed( index2 );             /*    about the corrupted  */
        !           977:  954  00017E2D    dd effffff755                        pushl   _index2
        !           978:  955  00017E33    fe 08 effffff74e                     callf   $8,_writed
        !           979:  956  00017E3A                                   #                   writes(" = ");                /*        register         */
        !           980:  957  00017E3A                                         .data   1
        !           981:  958  00000eb7 *                                L331:
        !           982:  959  00000eb7 *  203D2000                             .ascii  " = \0"
        !           983:  960  00000ebb *                                       .text
        !           984:  961  00017E3A    dd 8f00000eb7                        pushl   $L331
        !           985:  962  00017E40    fe 08 effffff741                     callf   $8,_writes
        !           986:  963  00017E47                                   #                   write32h( store_regs[index2] );
        !           987:  964  00017E47    0d effffff73b 50                     movl    _index2,r0
        !           988:  965  00017E4E    dd 40effffff733                      pushl   _store_regs[r0]
        !           989:  966  00017E55    fe 08 effffff72c                     callf   $8,_write32h
        !           990:  967  00017E5C                                   #                   writes(",  should be = ");
        !           991:  968  00017E5C                                         .data   1
        !           992:  969  00000ebb *                                L333:
        !           993:  970  00000ebb *  2C202073686F756C642062652            .ascii  ",  should be = \0"
        !           994:                   03D2000
        !           995:  971  00000ecb *                                       .text
        !           996:  972  00017E5C    dd 8f00000ebb                        pushl   $L333
        !           997:  973  00017E62    fe 08 effffff71f                     callf   $8,_writes
        !           998:  974  00017E69                                   #                   write32h( load_regs[index2] );
        !           999:  975  00017E69    0d effffff719 50                     movl    _index2,r0
        !          1000:  976  00017E70    dd 40effffff711                      pushl   _load_regs[r0]
        !          1001:  977  00017E77    fe 08 effffff70a                     callf   $8,_write32h
        !          1002:  978  00017E7E                                   #                   writes("\n");
        !          1003:  979  00017E7E                                         .data   1
        !          1004:  980  00000ecb *                                L334:
        !          1005:  981  00000ecb *  0A00                                 .ascii  "\12\0"
        !          1006:  982  00000ecd *                                       .text
        !          1007:  983  00017E7E    dd 8f00000ecb                        pushl   $L334
        !          1008:  984  00017E84    fe 08 effffff6fd                     callf   $8,_writes
        !          1009:  985  00017E8B                                   #              }
        !          1010:  986  00017E8B                                   #              if( halt_flg )   
        !          1011:  987  00017E8B                                  L325:
        !          1012:  988  00017E8B    5d effffff6f7                        tstl    _halt_flg
        !          1013:  989  00017E91    31 09                                jeql    L335
        !          1014:  990  00017E93                                   #                   subd_er_halt( BAD_REG_HLT );  /* halt on the error      */
        !          1015:  991  00017E93    dd 02                                pushl   $2
        !          1016:  992  00017E95    fe 08 ef000002e6                     callf   $8,_subd_er_halt
        !          1017:  993  00017E9C                                   #              if( loop_on_err ) {
        !          1018:  994  00017E9C                                  L335:
        !          1019:  995  00017E9C    5d effffff6e6                        tstl    _loop_on_err
        !          1020:  996  00017EA2    31 0a                                jeql    L336
        !          1021:  997  00017EA4                                   #                   force_loop = TRUE;        /* set the force loop flag */
        !          1022:  998  00017EA4    0d 01 effffff6dd                     movl    $1,_force_loop
        !          1023:  999  00017EAB                                   #                   asm("brw _subd_6_lp1");;  /* and loop on the error   */
        !          1024: 1000  00017EAB    13 fe9b                       brw _subd_6_lp1
        !          1025: 1001  00017EAE                                   #              }   /* end of loop on error */
        !          1026: 1002  00017EAE                                   #         }  /* end of register corruption error */
        !          1027: 1003  00017EAE                                  L336:
        !          1028: 1004  00017EAE                                   # }  /* end of subtest 6 */
        !          1029: 1005  00017EAE                                  L324:
        !          1030: 1006  00017EAE    40                                   ret#2
        !          1031: 1007  00017EAF                                         .set    L316,0x0
        !          1032: 1008  00017EAF                                  L318:
        !          1033: 1009  00017EAF    13 fe35                              jbr     L319
        !          1034: 1010  00017EB2                                         .data
        !          1035: 1011  00000d28 *                                       .text
        !          1036: 1012  00017EB2                                         .align  1
        !          1037: 1013  00017EB2                                         .globl  _subd_7
        !          1038: 1014  00017EB2                                  _subd_7:
        !          1039: 1015  00017EB2    0000                                 .word   L337
        !          1040: 1016  00017EB4                                   #   
        !          1041: 1017  00017EB4                                   # 
        !          1042: 1018  00017EB4                                   # 
        !          1043: 1019  00017EB4                                   # /************************************************************************
        !          1044: 1020  00017EB4                                   # *
        !          1045: 1021  00017EB4                                   # *       SUBTEST 7 - Check for PSL corruption
        !          1046: 1022  00017EB4                                   # *
        !          1047: 1023  00017EB4                                   # ************************************************************************/
        !          1048: 1024  00017EB4                                   # subd_7() 
        !          1049: 1025  00017EB4                                   # {
        !          1050: 1026  00017EB4    13 01d2                              jbr     L339
        !          1051: 1027  00017EB7                                  L340:
        !          1052: 1028  00017EB7                                   #         force_loop = FALSE;                     /* clear force_loop flg */
        !          1053: 1029  00017EB7    4d effffff6cb                        clrl    _force_loop
        !          1054: 1030  00017EBD                                   #         subtest = 7;
        !          1055: 1031  00017EBD    0d 07 effffff6c4                     movl    $7,_subtest
        !          1056: 1032  00017EC4                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
        !          1057: 1033  00017EC4    dd 8f00000000                        pushl   $_load_regs
        !          1058: 1034  00017ECA    fe 08 effffff6b7                     callf   $8,_fill_reg_buf
        !          1059: 1035  00017ED1                                   #         for( index = 0; index < 3; index++ ) {
        !          1060: 1036  00017ED1    4d effffff6b1                        clrl    _index
        !          1061: 1037  00017ED7                                  L343:
        !          1062: 1038  00017ED7    1d effffff6ab 03                     cmpl    _index,$3
        !          1063: 1039  00017EDE    91 03 13 01a5                        jgeq    L342
        !          1064: 1040  00017EE3                                   #              dbl_ld_acc   = subd_1_data[index].op_1;    /* get operand 1 */
        !          1065: 1041  00017EE3    5c 18 effffff69e 50                  mull3   $24,_index,r0
        !          1066: 1042  00017EEB    0c 8f00000000 50                     addl2   $_subd_1_data,r0
        !          1067: 1043  00017EF2    0d a004 effffff692                   movl    4(r0),_dbl_ld_acc+4
        !          1068: 1044  00017EFA    0d 60 effffff687                     movl    (r0),_dbl_ld_acc
        !          1069: 1045  00017F01                                   #              dbl_value_1  = subd_1_data[index].op_2;    /* get operand 2 */
        !          1070: 1046  00017F01    5c 18 effffff680 50                  mull3   $24,_index,r0
        !          1071: 1047  00017F09    0c 8f00000008 50                     addl2   $_subd_1_data+8,r0
        !          1072: 1048  00017F10    0d a004 effffff674                   movl    4(r0),_dbl_value_1+4
        !          1073: 1049  00017F18    0d 60 effffff669                     movl    (r0),_dbl_value_1
        !          1074: 1050  00017F1F                                   #              dbl_expected = subd_1_data[index].exp;     /* get expected  */
        !          1075: 1051  00017F1F    5c 18 effffff662 50                  mull3   $24,_index,r0
        !          1076: 1052  00017F27    0c 8f00000010 50                     addl2   $_subd_1_data+16,r0
        !          1077: 1053  00017F2E    0d a004 effffff656                   movl    4(r0),_dbl_expected+4
        !          1078: 1054  00017F36    0d 60 effffff64b                     movl    (r0),_dbl_expected
        !          1079: 1055  00017F3D                                   #              sgl_dummy1 = status_array[status_index];    /* status = +, -, 0 */
        !          1080: 1056  00017F3D    0d effffff645 50                     movl    _status_index,r0
        !          1081: 1057  00017F44    0d 40effffff63d                      movl    _status_array[r0],_sgl_dummy1
        !          1082:                   effffff638 
        !          1083: 1058  00017F50                                   # /*
        !          1084: 1059  00017F50                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !          1085: 1060  00017F50                                   #  * The force loop flag is set after the first error.
        !          1086: 1061  00017F50                                   # */
        !          1087: 1062  00017F50                                   #              asm("_subd_7_lp1:");
        !          1088: 1063  00017F50                                  _subd_7_lp1:
        !          1089: 1064  00017F50                                   #              asm("ldd _dbl_ld_acc");            /* LOAD the accumulator  */
        !          1090: 1065  00017F50    07 effffff632                 ldd _dbl_ld_acc
        !          1091: 1066  00017F56                                   #              asm("nop");
        !          1092: 1067  00017F56    10                            nop
        !          1093: 1068  00017F57                                   #              asm("tstl _sgl_dummy1");               /* set the PSL status    */
        !          1094: 1069  00017F57    5d effffff62b                 tstl _sgl_dummy1
        !          1095: 1070  00017F5D                                   #          asm("movpsl _init_psl");           /* save the initial PSL  */
        !          1096: 1071  00017F5D    cd effffff625                 movpsl _init_psl
        !          1097: 1072  00017F63                                   #              asm("subd _dbl_value_1");          /* do the subtract       */
        !          1098: 1073  00017F63    d7 effffff61f                 subd _dbl_value_1
        !          1099: 1074  00017F69                                   #              asm("nop");
        !          1100: 1075  00017F69    10                            nop
        !          1101: 1076  00017F6A                                   #              asm("movpsl _psl_val");            /* save the final PSL    */
        !          1102: 1077  00017F6A    cd effffff618                 movpsl _psl_val
        !          1103: 1078  00017F70                                   #              asm("std _dbl_st_acc");            /* save the accumulator  */
        !          1104: 1079  00017F70    27 effffff612                 std _dbl_st_acc
        !          1105: 1080  00017F76                                   #              if( force_loop )
        !          1106: 1081  00017F76    5d effffff60c                        tstl    _force_loop
        !          1107: 1082  00017F7C    31 02                                jeql    L344
        !          1108: 1083  00017F7E                                   #                   asm("brb _subd_7_lp1");;      /* loop on the error     */
        !          1109: 1084  00017F7E    11 d0                         brb _subd_7_lp1
        !          1110: 1085  00017F80                                  L344:
        !          1111: 1086  00017F80                                   # /*
        !          1112: 1087  00017F80                                   #  * Now compare the final PSL to the initial PSL -they should be the same
        !          1113: 1088  00017F80                                   # */
        !          1114: 1089  00017F80                                   #              exp_psl = init_psl;
        !          1115: 1090  00017F80    0d effffff602 effffff5fd             movl    _init_psl,_exp_psl
        !          1116: 1091  00017F8B                                   #          if( psl_val != exp_psl ) {
        !          1117: 1092  00017F8B    1d effffff5f7 effffff5f2             cmpl    _psl_val,_exp_psl
        !          1118: 1093  00017F96    21 03 13 00e4                        jeql    L345
        !          1119: 1094  00017F9B                                   #                   errcnt++;                     /* bump the error count    */
        !          1120: 1095  00017F9B    6d effffff5e7                        incl    _errcnt
        !          1121: 1096  00017FA1                                   #                   if( prt_error ) {
        !          1122: 1097  00017FA1    5d effffff5e1                        tstl    _prt_error
        !          1123: 1098  00017FA7    21 03 13 00b0                        jeql    L346
        !          1124: 1099  00017FAC                                   #                        writes(" \n");      /* start a new print line  */
        !          1125: 1100  00017FAC                                         .data   1
        !          1126: 1101  00000ecd *                                L347:
        !          1127: 1102  00000ecd *  200A00                               .ascii  " \12\0"
        !          1128: 1103  00000ed0 *                                       .text
        !          1129: 1104  00017FAC    dd 8f00000ecd                        pushl   $L347
        !          1130: 1105  00017FB2    fe 08 effffff5cf                     callf   $8,_writes
        !          1131: 1106  00017FB9                                   #                        writes("cycle: ");
        !          1132: 1107  00017FB9                                         .data   1
        !          1133: 1108  00000ed0 *                                L348:
        !          1134: 1109  00000ed0 *  6379636C653A2000                     .ascii  "cycle: \0"
        !          1135: 1110  00000ed8 *                                       .text
        !          1136: 1111  00017FB9    dd 8f00000ed0                        pushl   $L348
        !          1137: 1112  00017FBF    fe 08 effffff5c2                     callf   $8,_writes
        !          1138: 1113  00017FC6                                   #                        writed( cycle );
        !          1139: 1114  00017FC6    dd effffff5bc                        pushl   _cycle
        !          1140: 1115  00017FCC    fe 08 effffff5b5                     callf   $8,_writed
        !          1141: 1116  00017FD3                                   #                        writes("  SUBD test ");
        !          1142: 1117  00017FD3                                         .data   1
        !          1143: 1118  00000ed8 *                                L349:
        !          1144: 1119  00000ed8 *  2020535542442074657374200            .ascii  "  SUBD test \0"
        !          1145:                   0
        !          1146: 1120  00000ee5 *                                       .text
        !          1147: 1121  00017FD3    dd 8f00000ed8                        pushl   $L349
        !          1148: 1122  00017FD9    fe 08 effffff5a8                     callf   $8,_writes
        !          1149: 1123  00017FE0                                   #                    writed( test_no );
        !          1150: 1124  00017FE0    dd effffff5a2                        pushl   _test_no
        !          1151: 1125  00017FE6    fe 08 effffff59b                     callf   $8,_writed
        !          1152: 1126  00017FED                                   #     writes(", subtest 7 - INCORRECT FINAL PSL\n");
        !          1153: 1127  00017FED                                         .data   1
        !          1154: 1128  00000ee5 *                                L350:
        !          1155: 1129  00000ee5 *  2C20737562746573742037202            .ascii  ", subtest 7 - INCORRECT FINAL PSL\12\0"
        !          1156:                   D20494E434F52524543542046
        !          1157:                   494E414C2050534C0A00
        !          1158: 1130  00000f08 *                                       .text
        !          1159: 1131  00017FED    dd 8f00000ee5                        pushl   $L350
        !          1160: 1132  00017FF3    fe 08 effffff58e                     callf   $8,_writes
        !          1161: 1133  00017FFA                                   #                        print_subd_data();       /* print the operands      */
        !          1162: 1134  00017FFA    fe 04 ef0000008b                     callf   $4,_print_subd_data
        !          1163: 1135  00018001                                   #                        writes("initial PSL = ");
        !          1164: 1136  00018001                                         .data   1
        !          1165: 1137  00000f08 *                                L351:
        !          1166: 1138  00000f08 *  696E697469616C2050534C203            .ascii  "initial PSL = \0"
        !          1167:                   D2000
        !          1168: 1139  00000f17 *                                       .text
        !          1169: 1140  00018001    dd 8f00000f08                        pushl   $L351
        !          1170: 1141  00018007    fe 08 effffff57a                     callf   $8,_writes
        !          1171: 1142  0001800E                                   #                        write32h( init_psl );
        !          1172: 1143  0001800E    dd effffff574                        pushl   _init_psl
        !          1173: 1144  00018014    fe 08 effffff56d                     callf   $8,_write32h
        !          1174: 1145  0001801B                                   #                        writes(",  final PSL = ");
        !          1175: 1146  0001801B                                         .data   1
        !          1176: 1147  00000f17 *                                L352:
        !          1177: 1148  00000f17 *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
        !          1178:                   03D2000
        !          1179: 1149  00000f27 *                                       .text
        !          1180: 1150  0001801B    dd 8f00000f17                        pushl   $L352
        !          1181: 1151  00018021    fe 08 effffff560                     callf   $8,_writes
        !          1182: 1152  00018028                                   #                        write32h( psl_val );
        !          1183: 1153  00018028    dd effffff55a                        pushl   _psl_val
        !          1184: 1154  0001802E    fe 08 effffff553                     callf   $8,_write32h
        !          1185: 1155  00018035                                   #                        writes(",  expected PSL = ");
        !          1186: 1156  00018035                                         .data   1
        !          1187: 1157  00000f27 *                                L353:
        !          1188: 1158  00000f27 *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
        !          1189:                   0534C203D2000
        !          1190: 1159  00000f3a *                                       .text
        !          1191: 1160  00018035    dd 8f00000f27                        pushl   $L353
        !          1192: 1161  0001803B    fe 08 effffff546                     callf   $8,_writes
        !          1193: 1162  00018042                                   #                        write32h( exp_psl );
        !          1194: 1163  00018042    dd effffff540                        pushl   _exp_psl
        !          1195: 1164  00018048    fe 08 effffff539                     callf   $8,_write32h
        !          1196: 1165  0001804F                                   #                        writes("\n");
        !          1197: 1166  0001804F                                         .data   1
        !          1198: 1167  00000f3a *                                L354:
        !          1199: 1168  00000f3a *  0A00                                 .ascii  "\12\0"
        !          1200: 1169  00000f3c *                                       .text
        !          1201: 1170  0001804F    dd 8f00000f3a                        pushl   $L354
        !          1202: 1171  00018055    fe 08 effffff52c                     callf   $8,_writes
        !          1203: 1172  0001805C                                   #                   }
        !          1204: 1173  0001805C                                   #                   if( halt_flg )   
        !          1205: 1174  0001805C                                  L346:
        !          1206: 1175  0001805C    5d effffff526                        tstl    _halt_flg
        !          1207: 1176  00018062    31 09                                jeql    L355
        !          1208: 1177  00018064                                   #                        subd_er_halt( BAD_PSL_HLT );   /* halt on the error */
        !          1209: 1178  00018064    dd 03                                pushl   $3
        !          1210: 1179  00018066    fe 08 ef00000115                     callf   $8,_subd_er_halt
        !          1211: 1180  0001806D                                   #                   if( loop_on_err ) {
        !          1212: 1181  0001806D                                  L355:
        !          1213: 1182  0001806D    5d effffff515                        tstl    _loop_on_err
        !          1214: 1183  00018073    31 0a                                jeql    L356
        !          1215: 1184  00018075                                   #                        force_loop = TRUE;        /* set the force loop flag */
        !          1216: 1185  00018075    0d 01 effffff50c                     movl    $1,_force_loop
        !          1217: 1186  0001807C                                   #                        asm("brw _subd_7_lp1");;  /* and loop on the error   */
        !          1218: 1187  0001807C    13 fed1                       brw _subd_7_lp1
        !          1219: 1188  0001807F                                   #                   }   /* end of loop on error */
        !          1220: 1189  0001807F                                   #              }  /* end of PSL corruption error */
        !          1221: 1190  0001807F                                  L356:
        !          1222: 1191  0001807F                                   #         }  /* end of WHILE loop */
        !          1223: 1192  0001807F                                  L345:
        !          1224: 1193  0001807F                                  L341:
        !          1225: 1194  0001807F    6d effffff503                        incl    _index
        !          1226: 1195  00018085    13 fe4f                              jbr     L343
        !          1227: 1196  00018088                                  L342:
        !          1228: 1197  00018088                                   # }  /* end of subtest 7 */
        !          1229: 1198  00018088    40                                   ret#2
        !          1230: 1199  00018089                                         .set    L337,0x0
        !          1231: 1200  00018089                                  L339:
        !          1232: 1201  00018089    13 fe2b                              jbr     L340
        !          1233: 1202  0001808C                                         .data
        !          1234: 1203  00000d28 *                                       .text
        !          1235: 1204  0001808C                                         .align  1
        !          1236: 1205  0001808C                                         .globl  _print_subd_data
        !          1237: 1206  0001808C                                  _print_subd_data:
        !          1238: 1207  0001808C    0000                                 .word   L357
        !          1239: 1208  0001808E                                   #   
        !          1240: 1209  0001808E                                   # 
        !          1241: 1210  0001808E                                   # 
        !          1242: 1211  0001808E                                   # /**************************************************************************
        !          1243: 1212  0001808E                                   # *
        !          1244: 1213  0001808E                                   # *       PRINT THE DATA AND STORE RESULTS
        !          1245: 1214  0001808E                                   # *
        !          1246: 1215  0001808E                                   # * initial Acc = xxxxxxxx xxxxxxxx,    stored = xxxxxxxx xxxxxxxx,  index = xx
        !          1247: 1216  0001808E                                   # *     operand = xxxxxxxx xxxxxxxx,  expected = xxxxxxxx xxxxxxxx
        !          1248: 1217  0001808E                                   # **************************************************************************/
        !          1249: 1218  0001808E                                   # print_subd_data()
        !          1250: 1219  0001808E                                   # {
        !          1251: 1220  0001808E    13 00ed                              jbr     L359
        !          1252: 1221  00018091                                  L360:
        !          1253: 1222  00018091                                   #         writes("initial Acc = ");
        !          1254: 1223  00018091                                         .data   1
        !          1255: 1224  00000f3c *                                L361:
        !          1256: 1225  00000f3c *  696E697469616C20416363203            .ascii  "initial Acc = \0"
        !          1257:                   D2000
        !          1258: 1226  00000f4b *                                       .text
        !          1259: 1227  00018091    dd 8f00000f3c                        pushl   $L361
        !          1260: 1228  00018097    fe 08 effffff4ea                     callf   $8,_writes
        !          1261: 1229  0001809E                                   #         write32h( dbl_ld_acc.m );
        !          1262: 1230  0001809E    dd effffff4e4                        pushl   _dbl_ld_acc
        !          1263: 1231  000180A4    fe 08 effffff4dd                     callf   $8,_write32h
        !          1264: 1232  000180AB                                   #         writec(' ');
        !          1265: 1233  000180AB    dd 20                                pushl   $32
        !          1266: 1234  000180AD    fe 08 effffff4d4                     callf   $8,_writec
        !          1267: 1235  000180B4                                   #         write32h( dbl_ld_acc.l );
        !          1268: 1236  000180B4    dd effffff4d2                        pushl   _dbl_ld_acc+4
        !          1269: 1237  000180BA    fe 08 effffff4c7                     callf   $8,_write32h
        !          1270: 1238  000180C1                                   #         writes(",    stored = ");
        !          1271: 1239  000180C1                                         .data   1
        !          1272: 1240  00000f4b *                                L363:
        !          1273: 1241  00000f4b *  2C2020202073746F726564203            .ascii  ",    stored = \0"
        !          1274:                   D2000
        !          1275: 1242  00000f5a *                                       .text
        !          1276: 1243  000180C1    dd 8f00000f4b                        pushl   $L363
        !          1277: 1244  000180C7    fe 08 effffff4ba                     callf   $8,_writes
        !          1278: 1245  000180CE                                   #         write32h( dbl_st_acc.m );
        !          1279: 1246  000180CE    dd effffff4b4                        pushl   _dbl_st_acc
        !          1280: 1247  000180D4    fe 08 effffff4ad                     callf   $8,_write32h
        !          1281: 1248  000180DB                                   #         writec(' ');
        !          1282: 1249  000180DB    dd 20                                pushl   $32
        !          1283: 1250  000180DD    fe 08 effffff4a4                     callf   $8,_writec
        !          1284: 1251  000180E4                                   #         write32h( dbl_st_acc.l );
        !          1285: 1252  000180E4    dd effffff4a2                        pushl   _dbl_st_acc+4
        !          1286: 1253  000180EA    fe 08 effffff497                     callf   $8,_write32h
        !          1287: 1254  000180F1                                   #         writes(",   index = ");
        !          1288: 1255  000180F1                                         .data   1
        !          1289: 1256  00000f5a *                                L364:
        !          1290: 1257  00000f5a *  2C202020696E646578203D200            .ascii  ",   index = \0"
        !          1291:                   0
        !          1292: 1258  00000f67 *                                       .text
        !          1293: 1259  000180F1    dd 8f00000f5a                        pushl   $L364
        !          1294: 1260  000180F7    fe 08 effffff48a                     callf   $8,_writes
        !          1295: 1261  000180FE                                   #         writed( index );
        !          1296: 1262  000180FE    dd effffff484                        pushl   _index
        !          1297: 1263  00018104    fe 08 effffff47d                     callf   $8,_writed
        !          1298: 1264  0001810B                                   #         writec('\n');
        !          1299: 1265  0001810B    dd 0a                                pushl   $10
        !          1300: 1266  0001810D    fe 08 effffff474                     callf   $8,_writec
        !          1301: 1267  00018114                                   #         writes("    operand = ");
        !          1302: 1268  00018114                                         .data   1
        !          1303: 1269  00000f67 *                                L365:
        !          1304: 1270  00000f67 *  202020206F706572616E64203            .ascii  "    operand = \0"
        !          1305:                   D2000
        !          1306: 1271  00000f76 *                                       .text
        !          1307: 1272  00018114    dd 8f00000f67                        pushl   $L365
        !          1308: 1273  0001811A    fe 08 effffff467                     callf   $8,_writes
        !          1309: 1274  00018121                                   #         write32h( dbl_value_1.m );
        !          1310: 1275  00018121    dd effffff461                        pushl   _dbl_value_1
        !          1311: 1276  00018127    fe 08 effffff45a                     callf   $8,_write32h
        !          1312: 1277  0001812E                                   #         writec(' ');
        !          1313: 1278  0001812E    dd 20                                pushl   $32
        !          1314: 1279  00018130    fe 08 effffff451                     callf   $8,_writec
        !          1315: 1280  00018137                                   #         write32h( dbl_value_1.l );
        !          1316: 1281  00018137    dd effffff44f                        pushl   _dbl_value_1+4
        !          1317: 1282  0001813D    fe 08 effffff444                     callf   $8,_write32h
        !          1318: 1283  00018144                                   #         writes(",  expected = ");
        !          1319: 1284  00018144                                         .data   1
        !          1320: 1285  00000f76 *                                L366:
        !          1321: 1286  00000f76 *  2C20206578706563746564203            .ascii  ",  expected = \0"
        !          1322:                   D2000
        !          1323: 1287  00000f85 *                                       .text
        !          1324: 1288  00018144    dd 8f00000f76                        pushl   $L366
        !          1325: 1289  0001814A    fe 08 effffff437                     callf   $8,_writes
        !          1326: 1290  00018151                                   #         write32h( dbl_expected.m );
        !          1327: 1291  00018151    dd effffff431                        pushl   _dbl_expected
        !          1328: 1292  00018157    fe 08 effffff42a                     callf   $8,_write32h
        !          1329: 1293  0001815E                                   #         writec(' ');
        !          1330: 1294  0001815E    dd 20                                pushl   $32
        !          1331: 1295  00018160    fe 08 effffff421                     callf   $8,_writec
        !          1332: 1296  00018167                                   #         write32h( dbl_expected.l );
        !          1333: 1297  00018167    dd effffff41f                        pushl   _dbl_expected+4
        !          1334: 1298  0001816D    fe 08 effffff414                     callf   $8,_write32h
        !          1335: 1299  00018174                                   #         writec('\n');
        !          1336: 1300  00018174    dd 0a                                pushl   $10
        !          1337: 1301  00018176    fe 08 effffff40b                     callf   $8,_writec
        !          1338: 1302  0001817D                                   # }
        !          1339: 1303  0001817D    40                                   ret#2
        !          1340: 1304  0001817E                                         .set    L357,0x0
        !          1341: 1305  0001817E                                  L359:
        !          1342: 1306  0001817E    13 ff10                              jbr     L360
        !          1343: 1307  00018181                                         .data
        !          1344: 1308  00000d28 *                                       .text
        !          1345: 1309  00018181    00                                   .align  1
        !          1346: 1310  00018182                                         .globl  _subd_er_halt
        !          1347: 1311  00018182                                  _subd_er_halt:
        !          1348: 1312  00018182    0000                                 .word   L367
        !          1349: 1313  00018184                                   #   
        !          1350: 1314  00018184                                   # 
        !          1351: 1315  00018184                                   # 
        !          1352: 1316  00018184                                   # /**************************************************************************
        !          1353: 1317  00018184                                   # *
        !          1354: 1318  00018184                                   # *               HALT ON ERROR ROUTINE 
        !          1355: 1319  00018184                                   # *
        !          1356: 1320  00018184                                   # **************************************************************************/
        !          1357: 1321  00018184                                   # subd_er_halt( halt_code )
        !          1358: 1322  00018184                                   # int halt_code;
        !          1359: 1323  00018184                                   # {
        !          1360: 1324  00018184    13 0123                              jbr     L369
        !          1361: 1325  00018187                                  L370:
        !          1362: 1326  00018187                                   #         sgl_value_1 = dbl_ld_acc.m;
        !          1363: 1327  00018187    0d effffff3fb effffff3f6             movl    _dbl_ld_acc,_sgl_value_1
        !          1364: 1328  00018192                                   #         sgl_value_2 = dbl_ld_acc.l;
        !          1365: 1329  00018192    0d effffff3f4 effffff3eb             movl    _dbl_ld_acc+4,_sgl_value_2
        !          1366: 1330  0001819D                                   #         sgl_value_3 = dbl_value_1.m;
        !          1367: 1331  0001819D    0d effffff3e5 effffff3e0             movl    _dbl_value_1,_sgl_value_3
        !          1368: 1332  000181A8                                   #         sgl_value_4 = dbl_value_1.l;
        !          1369: 1333  000181A8    0d effffff3de effffff3d5             movl    _dbl_value_1+4,_sgl_value_4
        !          1370: 1334  000181B3                                   #         sgl_value_5 = dbl_st_acc.m;
        !          1371: 1335  000181B3    0d effffff3cf effffff3ca             movl    _dbl_st_acc,_sgl_value_5
        !          1372: 1336  000181BE                                   #         sgl_value_6 = dbl_st_acc.l;
        !          1373: 1337  000181BE    0d effffff3c8 effffff3bf             movl    _dbl_st_acc+4,_sgl_value_6
        !          1374: 1338  000181C9                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
        !          1375: 1339  000181C9    0d ad04 effffff3b7                   movl    4(fp),_sgl_dummy1
        !          1376: 1340  000181D1                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
        !          1377: 1341  000181D1    0d effffff3b1 50              movl _test_no,r0
        !          1378: 1342  000181D8                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
        !          1379: 1343  000181D8    0d effffff3aa 51              movl _subtest,r1
        !          1380: 1344  000181DF                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
        !          1381: 1345  000181DF    0d effffff3a3 52              movl _sgl_dummy1,r2
        !          1382: 1346  000181E6                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
        !          1383: 1347  000181E6    0d effffff39c 53              movl _cycle,r3
        !          1384: 1348  000181ED                                   #         asm("movl _sgl_value_1,r4");            /* r4  = MS operand 1    */
        !          1385: 1349  000181ED    0d effffff395 54              movl _sgl_value_1,r4
        !          1386: 1350  000181F4                                   #         asm("movl _sgl_value_2,r5");            /* r5  = LS operand 1    */
        !          1387: 1351  000181F4    0d effffff38e 55              movl _sgl_value_2,r5
        !          1388: 1352  000181FB                                   #         asm("movl _sgl_value_3,r6");            /* r6  = MS operand 2    */
        !          1389: 1353  000181FB    0d effffff387 56              movl _sgl_value_3,r6
        !          1390: 1354  00018202                                   #         asm("movl _sgl_value_4,r7");            /* r7  = LS operand 2    */
        !          1391: 1355  00018202    0d effffff380 57              movl _sgl_value_4,r7
        !          1392: 1356  00018209                                   #         asm("movl _sgl_value_5,r8");            /* r8  = MS stored       */
        !          1393: 1357  00018209    0d effffff379 58              movl _sgl_value_5,r8
        !          1394: 1358  00018210                                   #         asm("movl _sgl_value_6,r9");            /* r9  = LS stored       */
        !          1395: 1359  00018210    0d effffff372 59              movl _sgl_value_6,r9
        !          1396: 1360  00018217                                   #         if( halt_code == BAD_ACC_HLT ) {
        !          1397: 1361  00018217    1d ad04 01                           cmpl    4(fp),$1
        !          1398: 1362  0001821B    21 2d                                jneq    L371
        !          1399: 1363  0001821D                                   #              sgl_value_1 = dbl_expected.m;
        !          1400: 1364  0001821D    0d effffff365 effffff360             movl    _dbl_expected,_sgl_value_1
        !          1401: 1365  00018228                                   #              sgl_value_2 = dbl_expected.l;
        !          1402: 1366  00018228    0d effffff35e effffff355             movl    _dbl_expected+4,_sgl_value_2
        !          1403: 1367  00018233                                   #              asm("movl _sgl_value_1,r10");      /* r10 = MS expected     */
        !          1404: 1368  00018233    0d effffff34f 5a              movl _sgl_value_1,r10
        !          1405: 1369  0001823A                                   #              asm("movl _sgl_value_2,r11");      /* r11 = LS expected     */
        !          1406: 1370  0001823A    0d effffff348 5b              movl _sgl_value_2,r11
        !          1407: 1371  00018241                                   #              asm("movl _index2,r12");           /* r12 = data index      */
        !          1408: 1372  00018241    0d effffff341 5c              movl _index2,r12
        !          1409: 1373  00018248                                   #         } else 
        !          1410: 1374  00018248    11 5e                                jbr     L372
        !          1411: 1375  0001824A                                  L371:
        !          1412: 1376  0001824A                                   #           if( halt_code == BAD_REG_HLT ) {
        !          1413: 1377  0001824A    1d ad04 02                           cmpl    4(fp),$2
        !          1414: 1378  0001824E    21 3d                                jneq    L373
        !          1415: 1379  00018250                                   #              sgl_dummy1 = load_regs[index2];
        !          1416: 1380  00018250    0d effffff332 50                     movl    _index2,r0
        !          1417: 1381  00018257    0d 40effffff32a                      movl    _load_regs[r0],_sgl_dummy1
        !          1418:                   effffff325 
        !          1419: 1382  00018263                                   #              sgl_dummy2 = store_regs[index2];
        !          1420: 1383  00018263    0d effffff31f 50                     movl    _index2,r0
        !          1421: 1384  0001826A    0d 40effffff317                      movl    _store_regs[r0],_sgl_dummy2
        !          1422:                   effffff312 
        !          1423: 1385  00018276                                   #              asm("movl _index2,r10");           /* r10 = bad register #  */
        !          1424: 1386  00018276    0d effffff30c 5a              movl _index2,r10
        !          1425: 1387  0001827D                                   #              asm("movl _sgl_dummy2,r11");       /* r11 = actual value    */
        !          1426: 1388  0001827D    0d effffff305 5b              movl _sgl_dummy2,r11
        !          1427: 1389  00018284                                   #              asm("movl _sgl_dummy1,r12");       /* r12 = expected value  */
        !          1428: 1390  00018284    0d effffff2fe 5c              movl _sgl_dummy1,r12
        !          1429: 1391  0001828B                                   #         } else
        !          1430: 1392  0001828B    11 1b                                jbr     L374
        !          1431: 1393  0001828D                                  L373:
        !          1432: 1394  0001828D                                   #           if( halt_code == BAD_PSL_HLT ) {
        !          1433: 1395  0001828D    1d ad04 03                           cmpl    4(fp),$3
        !          1434: 1396  00018291    21 15                                jneq    L375
        !          1435: 1397  00018293                                   #              asm("movl _init_psl,r10");         /* r10 = initial PSL     */
        !          1436: 1398  00018293    0d effffff2ef 5a              movl _init_psl,r10
        !          1437: 1399  0001829A                                   #              asm("movl _psl_val,r11");          /* r11 = final PSL       */
        !          1438: 1400  0001829A    0d effffff2e8 5b              movl _psl_val,r11
        !          1439: 1401  000182A1                                   #              asm("movl _exp_psl,r12");          /* r12 = expected PSL    */
        !          1440: 1402  000182A1    0d effffff2e1 5c              movl _exp_psl,r12
        !          1441: 1403  000182A8                                   #         };
        !          1442: 1404  000182A8                                  L375:
        !          1443: 1405  000182A8                                  L374:
        !          1444: 1406  000182A8                                  L372:
        !          1445: 1407  000182A8                                   #         asm("halt");                            /* HALT ...              */
        !          1446: 1408  000182A8    00                            halt
        !          1447: 1409  000182A9                                   # }  
        !          1448: 1410  000182A9    40                                   ret#2
        !          1449: 1411  000182AA                                         .set    L367,0x0
        !          1450: 1412  000182AA                                  L369:
        !          1451: 1413  000182AA    13 feda                              jbr     L370
        !          1452: 1414  000182AD                                         .data
        !          1453: 1414  0002F835                                         .data

unix.superglobalmegacorp.com

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