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

1.1       root        1:    1  00000000                                  LL0:
                      2:    2  00000000                                         .data
                      3:    3  000006b4 *                                       .text
                      4:    4  00000000                                         .align  1
                      5:    5  00000000                                         .globl  _cvdf
                      6:    6  00000000                                  _cvdf:
                      7:    7  0001E6F0    0000                                 .word   L215
                      8:    8  0001E6F2                                   # 
                      9:    9  0001E6F2                                   # #include "fpp_defs.h"
                     10:   10  0001E6F2                                   # 
                     11:   11  0001E6F2                                   # 
                     12:   12  0001E6F2                                   # /*****************************************************************************
                     13:   13  0001E6F2                                   # *
                     14:   14  0001E6F2                                   # *       CVDF - SINGLE PRECISION FLOATING POINT CONVERT LONG TO FLOAT TEST
                     15:   15  0001E6F2                                   # *
                     16:   16  0001E6F2                                   # *****************************************************************************/
                     17:   17  0001E6F2                                   # cvdf()
                     18:   18  0001E6F2                                   # {
                     19:   19  0001E6F2    11 3a                                jbr     L217
                     20:   20  0001E6F4                                  L218:
                     21:   21  0001E6F4                                   #         asm(".globl _cvdf_t");
                     22:   22  0001E6F4                                  .globl _cvdf_t
                     23:   23  0001E6F4                                   #         asm("_cvdf_t:");                       /* entry address              */
                     24:   24  0001E6F4                                  _cvdf_t:
                     25:   25  0001E6F4                                   #         if( ( cycle == 1 ) && ( prt_hdrs ) )   /* print headers on 1st pass  */
                     26:   26  0001E6F4    1d effffffff6 01                     cmpl    _cycle,$1
                     27:   27  0001E6FB    21 15                                jneq    L219
                     28:   28  0001E6FD    5d efffffffed                        tstl    _prt_hdrs
                     29:   29  0001E703    31 0d                                jeql    L219
                     30:   30  0001E705                                   #            writes("\n CVDF");
                     31:   31  0001E705                                         .data   1
                     32:   32  000006b4 *                                L221:
                     33:   33  000006b4 *  0A204356444600                       .ascii  "\12 CVDF\0"
                     34:   34  000006bb *                                       .text
                     35:   35  0001E705    dd 8f000006b4                        pushl   $L221
                     36:   36  0001E70B    fe 08 efffffffde                     callf   $8,_writes
                     37:   37  0001E712                                   #         cvdf_1();                              /* load through a register    */
                     38:   38  0001E712                                  L219:
                     39:   39  0001E712    fe 04 ef00000017                     callf   $4,_cvdf_1
                     40:   40  0001E719                                   #         cvdf_2();                              /* register stability         */
                     41:   41  0001E719    fe 04 ef0000017e                     callf   $4,_cvdf_2
                     42:   42  0001E720                                   #         cvdf_3();                              /* PSL stability test         */
                     43:   43  0001E720    fe 04 ef00000343                     callf   $4,_cvdf_3
                     44:   44  0001E727                                   #         asm("jmp *return");                    /* return to the test monitor */
                     45:   45  0001E727    71 ffffffffc3                 jmp *return
                     46:   46  0001E72D                                   # }
                     47:   47  0001E72D    40                                   ret#2
                     48:   48  0001E72E                                         .set    L215,0x0
                     49:   49  0001E72E                                  L217:
                     50:   50  0001E72E    11 c4                                jbr     L218
                     51:   51  0001E730                                         .data
                     52:   52  000006b4 *                                       .text
                     53:   53  0001E730                                         .align  1
                     54:   54  0001E730                                         .globl  _cvdf_1
                     55:   55  0001E730                                  _cvdf_1:
                     56:   56  0001E730    0000                                 .word   L225
                     57:   57  0001E732                                   #  
                     58:   58  0001E732                                   # 
                     59:   59  0001E732                                   # 
                     60:   60  0001E732                                   # /************************************************************************
                     61:   61  0001E732                                   # *
                     62:   62  0001E732                                   # *               SUBTEST 1
                     63:   63  0001E732                                   # *
                     64:   64  0001E732                                   # ************************************************************************/
                     65:   65  0001E732                                   # cvdf_1() 
                     66:   66  0001E732                                   # {
                     67:   67  0001E732    13 0166                              jbr     L227
                     68:   68  0001E735                                  L228:
                     69:   69  0001E735                                   #         force_loop = FALSE;
                     70:   70  0001E735    4d efffffffb5                        clrl    _force_loop
                     71:   71  0001E73B                                   #         subtest = 1;
                     72:   72  0001E73B    0d 01 efffffffae                     movl    $1,_subtest
                     73:   73  0001E742                                   #         index = 0;
                     74:   74  0001E742    4d efffffffa8                        clrl    _index
                     75:   75  0001E748                                   #         do {
                     76:   76  0001E748                                  L231:
                     77:   77  0001E748                                   #              dbl_ld_acc   = cvdf_1_data[index].ld;   /* get the operand     */
                     78:   78  0001E748    5c 0c efffffffa1 50                  mull3   $12,_index,r0
                     79:   79  0001E750    0c 8f00000000 50                     addl2   $_cvdf_1_data,r0
                     80:   80  0001E757    0d a004 efffffff95                   movl    4(r0),_dbl_ld_acc+4
                     81:   81  0001E75F    0d 60 efffffff8a                     movl    (r0),_dbl_ld_acc
                     82:   82  0001E766                                   #              sgl_expected = cvdf_1_data[index].exp;  /* get expected result */
                     83:   83  0001E766    5c 0c efffffff83 50                  mull3   $12,_index,r0
                     84:   84  0001E76E    0d e000000008 efffffff77             movl    _cvdf_1_data+8(r0),_sgl_expected
                     85:   85  0001E779                                   #          if( (dbl_ld_acc.m & 0x7f800000) ) {
                     86:   86  0001E779    3d 8f7f800000 efffffff6c             bitl    $2139095040,_dbl_ld_acc
                     87:   87  0001E784    31 1e                                jeql    L232
                     88:   88  0001E786                                   #               sgl_expected = dbl_ld_acc.m;
                     89:   89  0001E786    0d efffffff64 efffffff5f             movl    _dbl_ld_acc,_sgl_expected
                     90:   90  0001E791                                   #               if( dbl_ld_acc.l & 0x80000000)
                     91:   91  0001E791    3d 8f80000000 efffffff58             bitl    $-2147483648,_dbl_ld_acc+4
                     92:   92  0001E79C    31 06                                jeql    L233
                     93:   93  0001E79E                                   #                   sgl_expected++;
                     94:   94  0001E79E    6d efffffff4c                        incl    _sgl_expected
                     95:   95  0001E7A4                                   #          }
                     96:   96  0001E7A4                                  L233:
                     97:   97  0001E7A4                                   # /*
                     98:   98  0001E7A4                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                     99:   99  0001E7A4                                   #  * The force loop flag is set after the first error.
                    100:  100  0001E7A4                                   # */
                    101:  101  0001E7A4                                   #              asm("_cvdf_1_lp1:");
                    102:  102  0001E7A4                                  L232:
                    103:  103  0001E7A4                                  _cvdf_1_lp1:
                    104:  104  0001E7A4                                   #              asm("movl _dbl_ld_acc,r4");       /* get the value to convert */
                    105:  105  0001E7A4    0d efffffff46 54              movl _dbl_ld_acc,r4
                    106:  106  0001E7AB                                   #              asm("movl _dbl_ld_acc+4,r5");
                    107:  107  0001E7AB    0d efffffff43 55              movl _dbl_ld_acc+4,r5
                    108:  108  0001E7B2                                   #              asm("ldd r4");                     /* load the data            */
                    109:  109  0001E7B2    07 54                         ldd r4
                    110:  110  0001E7B4                                   #              asm("cvdf");                       /* convert the value        */
                    111:  111  0001E7B4    a6                            cvdf
                    112:  112  0001E7B5                                   #              asm("stf r8");                     /* store the result         */
                    113:  113  0001E7B5    26 58                         stf r8
                    114:  114  0001E7B7                                   #              if( force_loop )
                    115:  115  0001E7B7    5d efffffff33                        tstl    _force_loop
                    116:  116  0001E7BD    31 02                                jeql    L234
                    117:  117  0001E7BF                                   #                   asm("brb _cvdf_1_lp1");;      /* loop on the error       */
                    118:  118  0001E7BF    11 e3                         brb _cvdf_1_lp1
                    119:  119  0001E7C1                                  L234:
                    120:  120  0001E7C1                                   # /* 
                    121:  121  0001E7C1                                   #  * end error loop - test the results
                    122:  122  0001E7C1                                   # */
                    123:  123  0001E7C1                                   #              asm("movl r8,_sgl_st_acc");        /* move result to cache   */
                    124:  124  0001E7C1    0d 58 efffffff28              movl r8,_sgl_st_acc
                    125:  125  0001E7C8                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
                    126:  126  0001E7C8    1d efffffff22 efffffff1d             cmpl    _sgl_st_acc,_sgl_expected
                    127:  127  0001E7D3    21 03 13 00a9                        jeql    L235
                    128:  128  0001E7D8                                   #                    errcnt++;                    /* bump the error count   */
                    129:  129  0001E7D8    6d efffffff12                        incl    _errcnt
                    130:  130  0001E7DE                                   #                    if( prt_error ) {
                    131:  131  0001E7DE    5d efffffff0c                        tstl    _prt_error
                    132:  132  0001E7E4    31 78                                jeql    L236
                    133:  133  0001E7E6                                   #                         writes(" \n");      /* start a new print line */
                    134:  134  0001E7E6                                         .data   1
                    135:  135  000006bb *                                L237:
                    136:  136  000006bb *  200A00                               .ascii  " \12\0"
                    137:  137  000006be *                                       .text
                    138:  138  0001E7E6    dd 8f000006bb                        pushl   $L237
                    139:  139  0001E7EC    fe 08 effffffefd                     callf   $8,_writes
                    140:  140  0001E7F3                                   #                         writes("cycle: ");
                    141:  141  0001E7F3                                         .data   1
                    142:  142  000006be *                                L238:
                    143:  143  000006be *  6379636C653A2000                     .ascii  "cycle: \0"
                    144:  144  000006c6 *                                       .text
                    145:  145  0001E7F3    dd 8f000006be                        pushl   $L238
                    146:  146  0001E7F9    fe 08 effffffef0                     callf   $8,_writes
                    147:  147  0001E800                                   #                         writed( cycle );
                    148:  148  0001E800    dd effffffeea                        pushl   _cycle
                    149:  149  0001E806    fe 08 effffffee3                     callf   $8,_writed
                    150:  150  0001E80D                                   #                         writes("  CVDF test ");
                    151:  151  0001E80D                                         .data   1
                    152:  152  000006c6 *                                L240:
                    153:  153  000006c6 *  2020435644462074657374200            .ascii  "  CVDF test \0"
                    154:                   0
                    155:  154  000006d3 *                                       .text
                    156:  155  0001E80D    dd 8f000006c6                        pushl   $L240
                    157:  156  0001E813    fe 08 effffffed6                     callf   $8,_writes
                    158:  157  0001E81A                                   #                     writed( test_no );
                    159:  158  0001E81A    dd effffffed0                        pushl   _test_no
                    160:  159  0001E820    fe 08 effffffec9                     callf   $8,_writed
                    161:  160  0001E827                                   #                     writes(", subtest 1 (Reg. Data) - BAD FINAL ACC\n");
                    162:  161  0001E827                                         .data   1
                    163:  162  000006d3 *                                L241:
                    164:  163  000006d3 *  2C20737562746573742031202            .ascii  ", subtest 1 (Reg. Data) - BAD FINAL ACC\12\0"
                    165:                   85265672E204461746129202D
                    166:                   204241442046494E414C20414
                    167:                   3430A00
                    168:  164  000006fc *                                       .text
                    169:  165  0001E827    dd 8f000006d3                        pushl   $L241
                    170:  166  0001E82D    fe 08 effffffebc                     callf   $8,_writes
                    171:  167  0001E834                                   #                         print_cvdf_data();
                    172:  168  0001E834    fe 04 ef00000411                     callf   $4,_print_cvdf_data
                    173:  169  0001E83B                                   #     writes("                               Acc expected = ");
                    174:  170  0001E83B                                         .data   1
                    175:  171  000006fc *                                L243:
                    176:  172  000006fc *  2020202020202020202020202            .ascii  "                               Acc expected = \0"
                    177:                   0202020202020202020202020
                    178:                   2020202020204163632065787
                    179:                   06563746564203D2000
                    180:  173  0000072b *                                       .text
                    181:  174  0001E83B    dd 8f000006fc                        pushl   $L243
                    182:  175  0001E841    fe 08 effffffea8                     callf   $8,_writes
                    183:  176  0001E848                                   #                         write32h( sgl_expected );
                    184:  177  0001E848    dd effffffea2                        pushl   _sgl_expected
                    185:  178  0001E84E    fe 08 effffffe9b                     callf   $8,_write32h
                    186:  179  0001E855                                   #                         writec('\n');
                    187:  180  0001E855    dd 0a                                pushl   $10
                    188:  181  0001E857    fe 08 effffffe92                     callf   $8,_writec
                    189:  182  0001E85E                                   #                         }
                    190:  183  0001E85E                                   #                    if( halt_flg ) 
                    191:  184  0001E85E                                  L236:
                    192:  185  0001E85E    5d effffffe8c                        tstl    _halt_flg
                    193:  186  0001E864    31 09                                jeql    L246
                    194:  187  0001E866                                   #                         cvdf_er_halt( BAD_ACC_HLT );    /* halt on the error */
                    195:  188  0001E866    dd 01                                pushl   $1
                    196:  189  0001E868    fe 08 ef00000451                     callf   $8,_cvdf_er_halt
                    197:  190  0001E86F                                   #                    if( loop_on_err ) {
                    198:  191  0001E86F                                  L246:
                    199:  192  0001E86F    5d effffffe7b                        tstl    _loop_on_err
                    200:  193  0001E875    31 0a                                jeql    L248
                    201:  194  0001E877                                   #                         force_loop = TRUE;        /* set the force loop flag */
                    202:  195  0001E877    0d 01 effffffe72                     movl    $1,_force_loop
                    203:  196  0001E87E                                   #                         asm("brw _cvdf_1_lp1");;  /* and loop on the error   */
                    204:  197  0001E87E    13 ff23                       brw _cvdf_1_lp1
                    205:  198  0001E881                                   #                    }   /* end of loop on error */
                    206:  199  0001E881                                   #              }   /* end of compare error */
                    207:  200  0001E881                                  L248:
                    208:  201  0001E881                                   #         }  while( index++ < max_cvdf_1_index ); /* end of WHILE loop */
                    209:  202  0001E881                                  L235:
                    210:  203  0001E881                                  L230:
                    211:  204  0001E881    0d effffffe69 50                     movl    _index,r0
                    212:  205  0001E888    6d effffffe62                        incl    _index
                    213:  206  0001E88E    1d 50 effffffe5b                     cmpl    r0,_max_cvdf_1_index
                    214:  207  0001E895    81 03 13 feae                        jlss    L231
                    215:  208  0001E89A                                  L229:
                    216:  209  0001E89A                                   # }  /* end of subtest 1 */
                    217:  210  0001E89A    40                                   ret#2
                    218:  211  0001E89B                                         .set    L225,0x0
                    219:  212  0001E89B                                  L227:
                    220:  213  0001E89B    13 fe97                              jbr     L228
                    221:  214  0001E89E                                         .data
                    222:  215  000006b4 *                                       .text
                    223:  216  0001E89E                                         .align  1
                    224:  217  0001E89E                                         .globl  _cvdf_2
                    225:  218  0001E89E                                  _cvdf_2:
                    226:  219  0001E89E    0000                                 .word   L249
                    227:  220  0001E8A0                                   #  
                    228:  221  0001E8A0                                   # 
                    229:  222  0001E8A0                                   # 
                    230:  223  0001E8A0                                   # /************************************************************************
                    231:  224  0001E8A0                                   # *
                    232:  225  0001E8A0                                   # *       SUBTEST 2 - Check for register corruption 
                    233:  226  0001E8A0                                   # *
                    234:  227  0001E8A0                                   # ************************************************************************/
                    235:  228  0001E8A0                                   # cvdf_2() 
                    236:  229  0001E8A0                                   # {
                    237:  230  0001E8A0    13 01c3                              jbr     L251
                    238:  231  0001E8A3                                  L252:
                    239:  232  0001E8A3                                   #         force_loop = FALSE;                     /* clear force_loop flg */
                    240:  233  0001E8A3    4d effffffe47                        clrl    _force_loop
                    241:  234  0001E8A9                                   #         subtest = 2;
                    242:  235  0001E8A9    0d 02 effffffe40                     movl    $2,_subtest
                    243:  236  0001E8B0                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
                    244:  237  0001E8B0    dd 8f00000000                        pushl   $_load_regs
                    245:  238  0001E8B6    fe 08 effffffe33                     callf   $8,_fill_reg_buf
                    246:  239  0001E8BD                                   #         index = 0;
                    247:  240  0001E8BD    4d effffffe2d                        clrl    _index
                    248:  241  0001E8C3                                   #              dbl_ld_acc   = cvdf_1_data[index].ld;   /* get the operand     */
                    249:  242  0001E8C3    5c 0c effffffe26 50                  mull3   $12,_index,r0
                    250:  243  0001E8CB    0c 8f00000000 50                     addl2   $_cvdf_1_data,r0
                    251:  244  0001E8D2    0d a004 effffffe1a                   movl    4(r0),_dbl_ld_acc+4
                    252:  245  0001E8DA    0d 60 effffffe0f                     movl    (r0),_dbl_ld_acc
                    253:  246  0001E8E1                                   #              sgl_expected = cvdf_1_data[index].exp;  /* get expected result */
                    254:  247  0001E8E1    5c 0c effffffe08 50                  mull3   $12,_index,r0
                    255:  248  0001E8E9    0d e000000008 effffffdfc             movl    _cvdf_1_data+8(r0),_sgl_expected
                    256:  249  0001E8F4                                   # /*
                    257:  250  0001E8F4                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    258:  251  0001E8F4                                   #  * The force loop flag is set after the first error.
                    259:  252  0001E8F4                                   # */
                    260:  253  0001E8F4                                   #         asm("_cvdf_2_lp1:");
                    261:  254  0001E8F4                                  _cvdf_2_lp1:
                    262:  255  0001E8F4                                   #         asm("ldd _dbl_ld_acc");                 /* load the data            */
                    263:  256  0001E8F4    07 effffffdf6                 ldd _dbl_ld_acc
                    264:  257  0001E8FA                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
                    265:  258  0001E8FA    ab 891fff effffffded          loadr $0x1fff,_load_regs
                    266:  259  0001E903                                   #         asm("nop");
                    267:  260  0001E903    10                            nop
                    268:  261  0001E904                                   #         asm("cvdf");                            /* convert the value     */
                    269:  262  0001E904    a6                            cvdf
                    270:  263  0001E905                                   #         asm("nop");
                    271:  264  0001E905    10                            nop
                    272:  265  0001E906                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
                    273:  266  0001E906    bb 891fff effffffde1          storer $0x1fff,_store_regs
                    274:  267  0001E90F                                   #         if( force_loop )
                    275:  268  0001E90F    5d effffffddb                        tstl    _force_loop
                    276:  269  0001E915    31 02                                jeql    L254
                    277:  270  0001E917                                   #              asm("brb _cvdf_2_lp1");;           /* loop on the error     */
                    278:  271  0001E917    11 db                         brb _cvdf_2_lp1
                    279:  272  0001E919                                  L254:
                    280:  273  0001E919                                   # /*
                    281:  274  0001E919                                   #  * Now compare the stored register values to those that were loaded
                    282:  275  0001E919                                   # */
                    283:  276  0001E919                                   #         index2 = 0;
                    284:  277  0001E919    4d effffffdd1                        clrl    _index2
                    285:  278  0001E91F                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
                    286:  279  0001E91F                                  L255:
                    287:  280  0001E91F    0d effffffdcb 50                     movl    _index2,r0
                    288:  281  0001E926    0d effffffdc4 51                     movl    _index2,r1
                    289:  282  0001E92D    1d 40effffffdbc                      cmpl    _load_regs[r0],_store_regs[r1]
                    290:                   41effffffdb6 
                    291:  283  0001E93A    21 11                                jneq    L256
                    292:  284  0001E93C    1d effffffdae 0d                     cmpl    _index2,$13
                    293:  285  0001E943    81 08                                jgeq    L256
                    294:  286  0001E945                                   #              index2++;                          /* check reg values        */
                    295:  287  0001E945    6d effffffda5                        incl    _index2
                    296:  288  0001E94B    11 d2                                jbr     L255
                    297:  289  0001E94D                                  L256:
                    298:  290  0001E94D                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
                    299:  291  0001E94D    1d effffffd9d 0d                     cmpl    _index2,$13
                    300:  292  0001E954    91 03 13 00f4                        jgeq    L257
                    301:  293  0001E959                                   #              errcnt++;                          /* bump the error count    */
                    302:  294  0001E959    6d effffffd91                        incl    _errcnt
                    303:  295  0001E95F                                   #              if( prt_error ) {
                    304:  296  0001E95F    5d effffffd8b                        tstl    _prt_error
                    305:  297  0001E965    21 03 13 00c0                        jeql    L258
                    306:  298  0001E96A                                   #                   writes(" \n");           /* start a new print line  */
                    307:  299  0001E96A                                         .data   1
                    308:  300  0000072b *                                L259:
                    309:  301  0000072b *  200A00                               .ascii  " \12\0"
                    310:  302  0000072e *                                       .text
                    311:  303  0001E96A    dd 8f0000072b                        pushl   $L259
                    312:  304  0001E970    fe 08 effffffd79                     callf   $8,_writes
                    313:  305  0001E977                                   #                   writes("cycle: ");
                    314:  306  0001E977                                         .data   1
                    315:  307  0000072e *                                L260:
                    316:  308  0000072e *  6379636C653A2000                     .ascii  "cycle: \0"
                    317:  309  00000736 *                                       .text
                    318:  310  0001E977    dd 8f0000072e                        pushl   $L260
                    319:  311  0001E97D    fe 08 effffffd6c                     callf   $8,_writes
                    320:  312  0001E984                                   #                   writed( cycle );
                    321:  313  0001E984    dd effffffd66                        pushl   _cycle
                    322:  314  0001E98A    fe 08 effffffd5f                     callf   $8,_writed
                    323:  315  0001E991                                   #                   writes("  CVDF test ");
                    324:  316  0001E991                                         .data   1
                    325:  317  00000736 *                                L261:
                    326:  318  00000736 *  2020435644462074657374200            .ascii  "  CVDF test \0"
                    327:                   0
                    328:  319  00000743 *                                       .text
                    329:  320  0001E991    dd 8f00000736                        pushl   $L261
                    330:  321  0001E997    fe 08 effffffd52                     callf   $8,_writes
                    331:  322  0001E99E                                   #               writed( test_no );
                    332:  323  0001E99E    dd effffffd4c                        pushl   _test_no
                    333:  324  0001E9A4    fe 08 effffffd45                     callf   $8,_writed
                    334:  325  0001E9AB                                   #     writes(", subtest 2 - A REGISTER WAS MODIFIED\n");
                    335:  326  0001E9AB                                         .data   1
                    336:  327  00000743 *                                L262:
                    337:  328  00000743 *  2C20737562746573742032202            .ascii  ", subtest 2 - A REGISTER WAS MODIFIED\12\0"
                    338:                   D204120524547495354455220
                    339:                   574153204D4F4449464945440
                    340:                   A00
                    341:  329  0000076a *                                       .text
                    342:  330  0001E9AB    dd 8f00000743                        pushl   $L262
                    343:  331  0001E9B1    fe 08 effffffd38                     callf   $8,_writes
                    344:  332  0001E9B8                                   #                   print_cvdf_data();            /* print the operands      */
                    345:  333  0001E9B8    fe 04 ef0000028d                     callf   $4,_print_cvdf_data
                    346:  334  0001E9BF                                   #                   writes("register ");          /* print the information   */
                    347:  335  0001E9BF                                         .data   1
                    348:  336  0000076a *                                L263:
                    349:  337  0000076a *  72656769737465722000                 .ascii  "register \0"
                    350:  338  00000774 *                                       .text
                    351:  339  0001E9BF    dd 8f0000076a                        pushl   $L263
                    352:  340  0001E9C5    fe 08 effffffd24                     callf   $8,_writes
                    353:  341  0001E9CC                                   #                   writed( index2 );             /*    about the corrupted  */
                    354:  342  0001E9CC    dd effffffd1e                        pushl   _index2
                    355:  343  0001E9D2    fe 08 effffffd17                     callf   $8,_writed
                    356:  344  0001E9D9                                   #                   writes(" = ");                /*        register         */
                    357:  345  0001E9D9                                         .data   1
                    358:  346  00000774 *                                L264:
                    359:  347  00000774 *  203D2000                             .ascii  " = \0"
                    360:  348  00000778 *                                       .text
                    361:  349  0001E9D9    dd 8f00000774                        pushl   $L264
                    362:  350  0001E9DF    fe 08 effffffd0a                     callf   $8,_writes
                    363:  351  0001E9E6                                   #                   write32h( store_regs[index2] );
                    364:  352  0001E9E6    0d effffffd04 50                     movl    _index2,r0
                    365:  353  0001E9ED    dd 40effffffcfc                      pushl   _store_regs[r0]
                    366:  354  0001E9F4    fe 08 effffffcf5                     callf   $8,_write32h
                    367:  355  0001E9FB                                   #                   writes(",  should be = ");
                    368:  356  0001E9FB                                         .data   1
                    369:  357  00000778 *                                L265:
                    370:  358  00000778 *  2C202073686F756C642062652            .ascii  ",  should be = \0"
                    371:                   03D2000
                    372:  359  00000788 *                                       .text
                    373:  360  0001E9FB    dd 8f00000778                        pushl   $L265
                    374:  361  0001EA01    fe 08 effffffce8                     callf   $8,_writes
                    375:  362  0001EA08                                   #                   write32h( load_regs[index2] );
                    376:  363  0001EA08    0d effffffce2 50                     movl    _index2,r0
                    377:  364  0001EA0F    dd 40effffffcda                      pushl   _load_regs[r0]
                    378:  365  0001EA16    fe 08 effffffcd3                     callf   $8,_write32h
                    379:  366  0001EA1D                                   #                   writes("\n");
                    380:  367  0001EA1D                                         .data   1
                    381:  368  00000788 *                                L266:
                    382:  369  00000788 *  0A00                                 .ascii  "\12\0"
                    383:  370  0000078a *                                       .text
                    384:  371  0001EA1D    dd 8f00000788                        pushl   $L266
                    385:  372  0001EA23    fe 08 effffffcc6                     callf   $8,_writes
                    386:  373  0001EA2A                                   #              }
                    387:  374  0001EA2A                                   #              if( halt_flg )   
                    388:  375  0001EA2A                                  L258:
                    389:  376  0001EA2A    5d effffffcc0                        tstl    _halt_flg
                    390:  377  0001EA30    31 09                                jeql    L267
                    391:  378  0001EA32                                   #                   cvdf_er_halt( BAD_REG_HLT );  /* halt on the error      */
                    392:  379  0001EA32    dd 02                                pushl   $2
                    393:  380  0001EA34    fe 08 ef00000285                     callf   $8,_cvdf_er_halt
                    394:  381  0001EA3B                                   #              if( loop_on_err ) {
                    395:  382  0001EA3B                                  L267:
                    396:  383  0001EA3B    5d effffffcaf                        tstl    _loop_on_err
                    397:  384  0001EA41    31 0a                                jeql    L268
                    398:  385  0001EA43                                   #                   force_loop = TRUE;        /* set the force loop flag */
                    399:  386  0001EA43    0d 01 effffffca6                     movl    $1,_force_loop
                    400:  387  0001EA4A                                   #                   asm("brw _cvdf_2_lp1");;  /* and loop on the error   */
                    401:  388  0001EA4A    13 fea7                       brw _cvdf_2_lp1
                    402:  389  0001EA4D                                   #              }   /* end of loop on error */
                    403:  390  0001EA4D                                   #         } while( index++ < max_cvdf_1_index ); /* end of reg corruption error */
                    404:  391  0001EA4D                                  L268:
                    405:  392  0001EA4D                                  L257:
                    406:  393  0001EA4D                                  L269:
                    407:  394  0001EA4D    0d effffffc9d 50                     movl    _index,r0
                    408:  395  0001EA54    6d effffffc96                        incl    _index
                    409:  396  0001EA5A    1d 50 effffffc8f                     cmpl    r0,_max_cvdf_1_index
                    410:  397  0001EA61    81 02                                jgeq    L270
                    411:  398  0001EA63    11 e8                                jbr     L269
                    412:  399  0001EA65                                  L270:
                    413:  400  0001EA65                                   # }  /* end of subtest 2 */
                    414:  401  0001EA65    40                                   ret#2
                    415:  402  0001EA66                                         .set    L249,0x0
                    416:  403  0001EA66                                  L251:
                    417:  404  0001EA66    13 fe3a                              jbr     L252
                    418:  405  0001EA69                                         .data
                    419:  406  000006b4 *                                       .text
                    420:  407  0001EA69    00                                   .align  1
                    421:  408  0001EA6A                                         .globl  _cvdf_3
                    422:  409  0001EA6A                                  _cvdf_3:
                    423:  410  0001EA6A    0000                                 .word   L271
                    424:  411  0001EA6C                                   #   
                    425:  412  0001EA6C                                   # 
                    426:  413  0001EA6C                                   # 
                    427:  414  0001EA6C                                   # /************************************************************************
                    428:  415  0001EA6C                                   # *
                    429:  416  0001EA6C                                   # *       SUBTEST 3 - Check for PSL corruption 
                    430:  417  0001EA6C                                   # *
                    431:  418  0001EA6C                                   # ************************************************************************/
                    432:  419  0001EA6C                                   # cvdf_3() 
                    433:  420  0001EA6C                                   # {
                    434:  421  0001EA6C    13 01da                              jbr     L273
                    435:  422  0001EA6F                                  L274:
                    436:  423  0001EA6F                                   #         force_loop = FALSE;                     /* clear force_loop flg */
                    437:  424  0001EA6F    4d effffffc7b                        clrl    _force_loop
                    438:  425  0001EA75                                   #         subtest = 3;
                    439:  426  0001EA75    0d 03 effffffc74                     movl    $3,_subtest
                    440:  427  0001EA7C                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
                    441:  428  0001EA7C    dd 8f00000000                        pushl   $_load_regs
                    442:  429  0001EA82    fe 08 effffffc67                     callf   $8,_fill_reg_buf
                    443:  430  0001EA89                                   #         for( index = 0; index < 3; index++ ) {
                    444:  431  0001EA89    4d effffffc61                        clrl    _index
                    445:  432  0001EA8F                                  L277:
                    446:  433  0001EA8F    1d effffffc5b 03                     cmpl    _index,$3
                    447:  434  0001EA96    91 03 13 0195                        jgeq    L276
                    448:  435  0001EA9B                                   #              dbl_ld_acc   = cvdf_1_data[index].ld;   /* get the operand     */
                    449:  436  0001EA9B    5c 0c effffffc4e 50                  mull3   $12,_index,r0
                    450:  437  0001EAA3    0c 8f00000000 50                     addl2   $_cvdf_1_data,r0
                    451:  438  0001EAAA    0d a004 effffffc42                   movl    4(r0),_dbl_ld_acc+4
                    452:  439  0001EAB2    0d 60 effffffc37                     movl    (r0),_dbl_ld_acc
                    453:  440  0001EAB9                                   #              sgl_expected = cvdf_1_data[index].exp;  /* get expected result */
                    454:  441  0001EAB9    5c 0c effffffc30 50                  mull3   $12,_index,r0
                    455:  442  0001EAC1    0d e000000008 effffffc24             movl    _cvdf_1_data+8(r0),_sgl_expected
                    456:  443  0001EACC                                   #              status_index = 0;
                    457:  444  0001EACC    4d effffffc1e                        clrl    _status_index
                    458:  445  0001EAD2                                   #              do {
                    459:  446  0001EAD2                                  L280:
                    460:  447  0001EAD2                                   #                   sgl_dummy1 = status_array[status_index]; /* +, -, 0 status */
                    461:  448  0001EAD2    0d effffffc18 50                     movl    _status_index,r0
                    462:  449  0001EAD9    0d 40effffffc10                      movl    _status_array[r0],_sgl_dummy1
                    463:                   effffffc0b 
                    464:  450  0001EAE5                                   # /*
                    465:  451  0001EAE5                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    466:  452  0001EAE5                                   #  * The force loop flag is set after the first error.
                    467:  453  0001EAE5                                   # */
                    468:  454  0001EAE5                                   #                   asm("_cvdf_3_lp1:");
                    469:  455  0001EAE5                                  _cvdf_3_lp1:
                    470:  456  0001EAE5                                   #                   asm("ldd _dbl_ld_acc");       /* load the data         */
                    471:  457  0001EAE5    07 effffffc05                 ldd _dbl_ld_acc
                    472:  458  0001EAEB                                   #                   asm("tstl _sgl_dummy1");  /* set the PSL status    */
                    473:  459  0001EAEB    5d effffffbff                 tstl _sgl_dummy1
                    474:  460  0001EAF1                                   #               asm("movpsl _init_psl");      /* save the initial PSL  */
                    475:  461  0001EAF1    cd effffffbf9                 movpsl _init_psl
                    476:  462  0001EAF7                                   #                   asm("nop");
                    477:  463  0001EAF7    10                            nop
                    478:  464  0001EAF8                                   #                   asm("cvdf");              /* convert the value     */
                    479:  465  0001EAF8    a6                            cvdf
                    480:  466  0001EAF9                                   #                   asm("nop");
                    481:  467  0001EAF9    10                            nop
                    482:  468  0001EAFA                                   #                   asm("movpsl _psl_val");       /* save the final PSL    */
                    483:  469  0001EAFA    cd effffffbf0                 movpsl _psl_val
                    484:  470  0001EB00                                   #                   if( force_loop )
                    485:  471  0001EB00    5d effffffbea                        tstl    _force_loop
                    486:  472  0001EB06    31 02                                jeql    L281
                    487:  473  0001EB08                                   #                        asm("brb _cvdf_3_lp1");; /* loop on the error     */
                    488:  474  0001EB08    11 db                         brb _cvdf_3_lp1
                    489:  475  0001EB0A                                  L281:
                    490:  476  0001EB0A                                   # /*
                    491:  477  0001EB0A                                   #  * Now compare the final PSL to the initial PSL -they should be the same
                    492:  478  0001EB0A                                   # */
                    493:  479  0001EB0A                                   #                   exp_psl = init_psl;
                    494:  480  0001EB0A    0d effffffbe0 effffffbdb             movl    _init_psl,_exp_psl
                    495:  481  0001EB15                                   #                   exp_psl &= 0xffffff7f;
                    496:  482  0001EB15    ac 89ff7f effffffbd2                 andl2   $-129,_exp_psl
                    497:  483  0001EB1E                                   #                   if( psl_val != exp_psl ) {
                    498:  484  0001EB1E    1d effffffbcc effffffbc7             cmpl    _psl_val,_exp_psl
                    499:  485  0001EB29    21 03 13 00e4                        jeql    L282
                    500:  486  0001EB2E                                   #                        errcnt++;            /* bump the error count  */
                    501:  487  0001EB2E    6d effffffbbc                        incl    _errcnt
                    502:  488  0001EB34                                   #                        if( prt_error ) {
                    503:  489  0001EB34    5d effffffbb6                        tstl    _prt_error
                    504:  490  0001EB3A    21 03 13 00b0                        jeql    L283
                    505:  491  0001EB3F                                   #                             writes(" \n");      /* start a new line */
                    506:  492  0001EB3F                                         .data   1
                    507:  493  0000078a *                                L284:
                    508:  494  0000078a *  200A00                               .ascii  " \12\0"
                    509:  495  0000078d *                                       .text
                    510:  496  0001EB3F    dd 8f0000078a                        pushl   $L284
                    511:  497  0001EB45    fe 08 effffffba4                     callf   $8,_writes
                    512:  498  0001EB4C                                   #                             writes("cycle: ");
                    513:  499  0001EB4C                                         .data   1
                    514:  500  0000078d *                                L285:
                    515:  501  0000078d *  6379636C653A2000                     .ascii  "cycle: \0"
                    516:  502  00000795 *                                       .text
                    517:  503  0001EB4C    dd 8f0000078d                        pushl   $L285
                    518:  504  0001EB52    fe 08 effffffb97                     callf   $8,_writes
                    519:  505  0001EB59                                   #                             writed( cycle );
                    520:  506  0001EB59    dd effffffb91                        pushl   _cycle
                    521:  507  0001EB5F    fe 08 effffffb8a                     callf   $8,_writed
                    522:  508  0001EB66                                   #                             writes("  CVDF test ");
                    523:  509  0001EB66                                         .data   1
                    524:  510  00000795 *                                L286:
                    525:  511  00000795 *  2020435644462074657374200            .ascii  "  CVDF test \0"
                    526:                   0
                    527:  512  000007a2 *                                       .text
                    528:  513  0001EB66    dd 8f00000795                        pushl   $L286
                    529:  514  0001EB6C    fe 08 effffffb7d                     callf   $8,_writes
                    530:  515  0001EB73                                   #                         writed( test_no );
                    531:  516  0001EB73    dd effffffb77                        pushl   _test_no
                    532:  517  0001EB79    fe 08 effffffb70                     callf   $8,_writed
                    533:  518  0001EB80                                   #          writes(", subtest 3  - INCORRECT FINAL PSL\n");
                    534:  519  0001EB80                                         .data   1
                    535:  520  000007a2 *                                L287:
                    536:  521  000007a2 *  2C20737562746573742033202            .ascii  ", subtest 3  - INCORRECT FINAL PSL\12\0"
                    537:                   02D20494E434F525245435420
                    538:                   46494E414C2050534C0A00
                    539:  522  000007c6 *                                       .text
                    540:  523  0001EB80    dd 8f000007a2                        pushl   $L287
                    541:  524  0001EB86    fe 08 effffffb63                     callf   $8,_writes
                    542:  525  0001EB8D                                   #                             print_cvdf_data();       /* print the operands */
                    543:  526  0001EB8D    fe 04 ef000000b8                     callf   $4,_print_cvdf_data
                    544:  527  0001EB94                                   #                             writes("initial PSL = ");
                    545:  528  0001EB94                                         .data   1
                    546:  529  000007c6 *                                L288:
                    547:  530  000007c6 *  696E697469616C2050534C203            .ascii  "initial PSL = \0"
                    548:                   D2000
                    549:  531  000007d5 *                                       .text
                    550:  532  0001EB94    dd 8f000007c6                        pushl   $L288
                    551:  533  0001EB9A    fe 08 effffffb4f                     callf   $8,_writes
                    552:  534  0001EBA1                                   #                             write32h( init_psl );
                    553:  535  0001EBA1    dd effffffb49                        pushl   _init_psl
                    554:  536  0001EBA7    fe 08 effffffb42                     callf   $8,_write32h
                    555:  537  0001EBAE                                   #                             writes(",  final PSL = ");
                    556:  538  0001EBAE                                         .data   1
                    557:  539  000007d5 *                                L289:
                    558:  540  000007d5 *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
                    559:                   03D2000
                    560:  541  000007e5 *                                       .text
                    561:  542  0001EBAE    dd 8f000007d5                        pushl   $L289
                    562:  543  0001EBB4    fe 08 effffffb35                     callf   $8,_writes
                    563:  544  0001EBBB                                   #                             write32h( psl_val );
                    564:  545  0001EBBB    dd effffffb2f                        pushl   _psl_val
                    565:  546  0001EBC1    fe 08 effffffb28                     callf   $8,_write32h
                    566:  547  0001EBC8                                   #                             writes(",  expected PSL = ");
                    567:  548  0001EBC8                                         .data   1
                    568:  549  000007e5 *                                L290:
                    569:  550  000007e5 *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
                    570:                   0534C203D2000
                    571:  551  000007f8 *                                       .text
                    572:  552  0001EBC8    dd 8f000007e5                        pushl   $L290
                    573:  553  0001EBCE    fe 08 effffffb1b                     callf   $8,_writes
                    574:  554  0001EBD5                                   #                             write32h( exp_psl );
                    575:  555  0001EBD5    dd effffffb15                        pushl   _exp_psl
                    576:  556  0001EBDB    fe 08 effffffb0e                     callf   $8,_write32h
                    577:  557  0001EBE2                                   #                             writes("\n");
                    578:  558  0001EBE2                                         .data   1
                    579:  559  000007f8 *                                L291:
                    580:  560  000007f8 *  0A00                                 .ascii  "\12\0"
                    581:  561  000007fa *                                       .text
                    582:  562  0001EBE2    dd 8f000007f8                        pushl   $L291
                    583:  563  0001EBE8    fe 08 effffffb01                     callf   $8,_writes
                    584:  564  0001EBEF                                   #                        }
                    585:  565  0001EBEF                                   #                        if( halt_flg )   
                    586:  566  0001EBEF                                  L283:
                    587:  567  0001EBEF    5d effffffafb                        tstl    _halt_flg
                    588:  568  0001EBF5    31 09                                jeql    L292
                    589:  569  0001EBF7                                   #                             cvdf_er_halt( BAD_PSL_HLT );   /* halt on error */
                    590:  570  0001EBF7    dd 03                                pushl   $3
                    591:  571  0001EBF9    fe 08 ef000000c0                     callf   $8,_cvdf_er_halt
                    592:  572  0001EC00                                   #                        if( loop_on_err ) {
                    593:  573  0001EC00                                  L292:
                    594:  574  0001EC00    5d effffffaea                        tstl    _loop_on_err
                    595:  575  0001EC06    31 0a                                jeql    L293
                    596:  576  0001EC08                                   #                             force_loop = TRUE;        /* set force loop flag */
                    597:  577  0001EC08    0d 01 effffffae1                     movl    $1,_force_loop
                    598:  578  0001EC0F                                   #                             asm("brw _cvdf_3_lp1");;  /* and loop            */
                    599:  579  0001EC0F    13 fed3                       brw _cvdf_3_lp1
                    600:  580  0001EC12                                   #                        }   /* end of loop on error */
                    601:  581  0001EC12                                   #                   }  /* end of PSL corruption error */
                    602:  582  0001EC12                                  L293:
                    603:  583  0001EC12                                   #              }  while( ++status_index < 3 ); /* end of status loop */
                    604:  584  0001EC12                                  L282:
                    605:  585  0001EC12                                  L279:
                    606:  586  0001EC12    6d effffffad8                        incl    _status_index
                    607:  587  0001EC18    0d effffffad2 50                     movl    _status_index,r0
                    608:  588  0001EC1F    1d 50 03                             cmpl    r0,$3
                    609:  589  0001EC22    81 03 13 feab                        jlss    L280
                    610:  590  0001EC27                                  L278:
                    611:  591  0001EC27                                   #     }  while( index++ < max_cvdf_1_index ); /* end of WHILE loop */
                    612:  592  0001EC27                                  L275:
                    613:  593  0001EC27    6d effffffac3                        incl    _index
                    614:  594  0001EC2D    13 fe5f                              jbr     L277
                    615:  595  0001EC30                                  L276:
                    616:  596  0001EC30                                  L294:
                    617:  597  0001EC30    0d effffffaba 50                     movl    _index,r0
                    618:  598  0001EC37    6d effffffab3                        incl    _index
                    619:  599  0001EC3D    1d 50 effffffaac                     cmpl    r0,_max_cvdf_1_index
                    620:  600  0001EC44    81 02                                jgeq    L295
                    621:  601  0001EC46    11 e8                                jbr     L294
                    622:  602  0001EC48                                  L295:
                    623:  603  0001EC48                                   # }  /* end of subtest 3 */
                    624:  604  0001EC48    40                                   ret#2
                    625:  605  0001EC49                                         .set    L271,0x0
                    626:  606  0001EC49                                  L273:
                    627:  607  0001EC49    13 fe23                              jbr     L274
                    628:  608  0001EC4C                                         .data
                    629:  609  000006b4 *                                       .text
                    630:  610  0001EC4C                                         .align  1
                    631:  611  0001EC4C                                         .globl  _print_cvdf_data
                    632:  612  0001EC4C                                  _print_cvdf_data:
                    633:  613  0001EC4C    0000                                 .word   L296
                    634:  614  0001EC4E                                   #   
                    635:  615  0001EC4E                                   # 
                    636:  616  0001EC4E                                   # 
                    637:  617  0001EC4E                                   # /**************************************************************************
                    638:  618  0001EC4E                                   # *
                    639:  619  0001EC4E                                   # *       PRINT THE DATA AND STORE RESULTS
                    640:  620  0001EC4E                                   # *
                    641:  621  0001EC4E                                   # * initial Acc = xxxxxxxx xxxxxxxx,    stored = xxxxxxxx xxxxxxxx,  index = xx
                    642:  622  0001EC4E                                   # **************************************************************************/
                    643:  623  0001EC4E                                   # print_cvdf_data()
                    644:  624  0001EC4E                                   # {
                    645:  625  0001EC4E    11 6e                                jbr     L298
                    646:  626  0001EC50                                  L299:
                    647:  627  0001EC50                                   #         writes("initial Acc = ");
                    648:  628  0001EC50                                         .data   1
                    649:  629  000007fa *                                L300:
                    650:  630  000007fa *  696E697469616C20416363203            .ascii  "initial Acc = \0"
                    651:                   D2000
                    652:  631  00000809 *                                       .text
                    653:  632  0001EC50    dd 8f000007fa                        pushl   $L300
                    654:  633  0001EC56    fe 08 effffffa93                     callf   $8,_writes
                    655:  634  0001EC5D                                   #         write32h( dbl_ld_acc.m );
                    656:  635  0001EC5D    dd effffffa8d                        pushl   _dbl_ld_acc
                    657:  636  0001EC63    fe 08 effffffa86                     callf   $8,_write32h
                    658:  637  0001EC6A                                   #         writec(' ');
                    659:  638  0001EC6A    dd 20                                pushl   $32
                    660:  639  0001EC6C    fe 08 effffffa7d                     callf   $8,_writec
                    661:  640  0001EC73                                   #         write32h( dbl_ld_acc.l );
                    662:  641  0001EC73    dd effffffa7b                        pushl   _dbl_ld_acc+4
                    663:  642  0001EC79    fe 08 effffffa70                     callf   $8,_write32h
                    664:  643  0001EC80                                   #         writes(",  final Acc = ");
                    665:  644  0001EC80                                         .data   1
                    666:  645  00000809 *                                L301:
                    667:  646  00000809 *  2C202066696E616C204163632            .ascii  ",  final Acc = \0"
                    668:                   03D2000
                    669:  647  00000819 *                                       .text
                    670:  648  0001EC80    dd 8f00000809                        pushl   $L301
                    671:  649  0001EC86    fe 08 effffffa63                     callf   $8,_writes
                    672:  650  0001EC8D                                   #         write32h( sgl_st_acc );
                    673:  651  0001EC8D    dd effffffa5d                        pushl   _sgl_st_acc
                    674:  652  0001EC93    fe 08 effffffa56                     callf   $8,_write32h
                    675:  653  0001EC9A                                   #         writes(",  index = ");
                    676:  654  0001EC9A                                         .data   1
                    677:  655  00000819 *                                L302:
                    678:  656  00000819 *  2C2020696E646578203D2000             .ascii  ",  index = \0"
                    679:  657  00000825 *                                       .text
                    680:  658  0001EC9A    dd 8f00000819                        pushl   $L302
                    681:  659  0001ECA0    fe 08 effffffa49                     callf   $8,_writes
                    682:  660  0001ECA7                                   #         writed( index );
                    683:  661  0001ECA7    dd effffffa43                        pushl   _index
                    684:  662  0001ECAD    fe 08 effffffa3c                     callf   $8,_writed
                    685:  663  0001ECB4                                   #         writec('\n');
                    686:  664  0001ECB4    dd 0a                                pushl   $10
                    687:  665  0001ECB6    fe 08 effffffa33                     callf   $8,_writec
                    688:  666  0001ECBD                                   # }
                    689:  667  0001ECBD    40                                   ret#2
                    690:  668  0001ECBE                                         .set    L296,0x0
                    691:  669  0001ECBE                                  L298:
                    692:  670  0001ECBE    11 90                                jbr     L299
                    693:  671  0001ECC0                                         .data
                    694:  672  000006b4 *                                       .text
                    695:  673  0001ECC0                                         .align  1
                    696:  674  0001ECC0                                         .globl  _cvdf_er_halt
                    697:  675  0001ECC0                                  _cvdf_er_halt:
                    698:  676  0001ECC0    0000                                 .word   L303
                    699:  677  0001ECC2                                   #   
                    700:  678  0001ECC2                                   # 
                    701:  679  0001ECC2                                   # 
                    702:  680  0001ECC2                                   # /**************************************************************************
                    703:  681  0001ECC2                                   # *
                    704:  682  0001ECC2                                   # *               HALT ON ERROR ROUTINE 
                    705:  683  0001ECC2                                   # *
                    706:  684  0001ECC2                                   # **************************************************************************/
                    707:  685  0001ECC2                                   # cvdf_er_halt( halt_code )
                    708:  686  0001ECC2                                   # int halt_code;
                    709:  687  0001ECC2                                   # {
                    710:  688  0001ECC2    13 00db                              jbr     L305
                    711:  689  0001ECC5                                  L306:
                    712:  690  0001ECC5                                   #         sgl_value_1 = dbl_ld_acc.m;
                    713:  691  0001ECC5    0d effffffa25 effffffa20             movl    _dbl_ld_acc,_sgl_value_1
                    714:  692  0001ECD0                                   #         sgl_value_2 = dbl_ld_acc.l;
                    715:  693  0001ECD0    0d effffffa1e effffffa15             movl    _dbl_ld_acc+4,_sgl_value_2
                    716:  694  0001ECDB                                   #         sgl_value_3 = sgl_st_acc;
                    717:  695  0001ECDB    0d effffffa0f effffffa0a             movl    _sgl_st_acc,_sgl_value_3
                    718:  696  0001ECE6                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
                    719:  697  0001ECE6    0d ad04 effffffa02                   movl    4(fp),_sgl_dummy1
                    720:  698  0001ECEE                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
                    721:  699  0001ECEE    0d effffff9fc 50              movl _test_no,r0
                    722:  700  0001ECF5                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
                    723:  701  0001ECF5    0d effffff9f5 51              movl _subtest,r1
                    724:  702  0001ECFC                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
                    725:  703  0001ECFC    0d effffff9ee 52              movl _sgl_dummy1,r2
                    726:  704  0001ED03                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
                    727:  705  0001ED03    0d effffff9e7 53              movl _cycle,r3
                    728:  706  0001ED0A                                   #         asm("movl _sgl_value_1,r4");            /* r4  = MS accumulator  */
                    729:  707  0001ED0A    0d effffff9e0 54              movl _sgl_value_1,r4
                    730:  708  0001ED11                                   #         asm("movl _sgl_value_2,r5");            /* r5  = LS accumulator  */
                    731:  709  0001ED11    0d effffff9d9 55              movl _sgl_value_2,r5
                    732:  710  0001ED18                                   #         asm("movl _sgl_value_3,r6");            /* r6  = final acc       */
                    733:  711  0001ED18    0d effffff9d2 56              movl _sgl_value_3,r6
                    734:  712  0001ED1F                                   #         if( halt_code == BAD_ACC_HLT ) {
                    735:  713  0001ED1F    1d ad04 01                           cmpl    4(fp),$1
                    736:  714  0001ED23    21 1b                                jneq    L307
                    737:  715  0001ED25                                   #              sgl_value_1 = sgl_expected;
                    738:  716  0001ED25    0d effffff9c5 effffff9c0             movl    _sgl_expected,_sgl_value_1
                    739:  717  0001ED30                                   #              asm("movl _sgl_value_1,r7");       /* r7  = expected acc    */
                    740:  718  0001ED30    0d effffff9ba 57              movl _sgl_value_1,r7
                    741:  719  0001ED37                                   #              asm("movl _index,r8");             /* r8  = data index      */
                    742:  720  0001ED37    0d effffff9b3 58              movl _index,r8
                    743:  721  0001ED3E                                   #         } else 
                    744:  722  0001ED3E    11 5e                                jbr     L308
                    745:  723  0001ED40                                  L307:
                    746:  724  0001ED40                                   #           if( halt_code == BAD_REG_HLT ) {
                    747:  725  0001ED40    1d ad04 02                           cmpl    4(fp),$2
                    748:  726  0001ED44    21 3d                                jneq    L309
                    749:  727  0001ED46                                   #              sgl_dummy1 = load_regs[index2];
                    750:  728  0001ED46    0d effffff9a4 50                     movl    _index2,r0
                    751:  729  0001ED4D    0d 40effffff99c                      movl    _load_regs[r0],_sgl_dummy1
                    752:                   effffff997 
                    753:  730  0001ED59                                   #              sgl_dummy2 = store_regs[index2];
                    754:  731  0001ED59    0d effffff991 50                     movl    _index2,r0
                    755:  732  0001ED60    0d 40effffff989                      movl    _store_regs[r0],_sgl_dummy2
                    756:                   effffff984 
                    757:  733  0001ED6C                                   #              asm("movl _index2,r7");            /* r7  = bad register #  */
                    758:  734  0001ED6C    0d effffff97e 57              movl _index2,r7
                    759:  735  0001ED73                                   #              asm("movl _sgl_dummy2,r8");        /* r8  = actual value    */
                    760:  736  0001ED73    0d effffff977 58              movl _sgl_dummy2,r8
                    761:  737  0001ED7A                                   #              asm("movl _sgl_dummy1,r9");        /* r9  = expected value  */
                    762:  738  0001ED7A    0d effffff970 59              movl _sgl_dummy1,r9
                    763:  739  0001ED81                                   #         } else
                    764:  740  0001ED81    11 1b                                jbr     L310
                    765:  741  0001ED83                                  L309:
                    766:  742  0001ED83                                   #           if( halt_code == BAD_PSL_HLT ) {
                    767:  743  0001ED83    1d ad04 03                           cmpl    4(fp),$3
                    768:  744  0001ED87    21 15                                jneq    L311
                    769:  745  0001ED89                                   #              asm("movl _init_psl,r7");          /* r7  = initial PSL     */
                    770:  746  0001ED89    0d effffff961 57              movl _init_psl,r7
                    771:  747  0001ED90                                   #              asm("movl _psl_val,r8");           /* r8  = final PSL       */
                    772:  748  0001ED90    0d effffff95a 58              movl _psl_val,r8
                    773:  749  0001ED97                                   #              asm("movl _exp_psl,r9");           /* r9  = expected PSL    */
                    774:  750  0001ED97    0d effffff953 59              movl _exp_psl,r9
                    775:  751  0001ED9E                                   #         };
                    776:  752  0001ED9E                                  L311:
                    777:  753  0001ED9E                                  L310:
                    778:  754  0001ED9E                                  L308:
                    779:  755  0001ED9E                                   #         asm("halt");                            /* HALT ...              */
                    780:  756  0001ED9E    00                            halt
                    781:  757  0001ED9F                                   # }  
                    782:  758  0001ED9F    40                                   ret#2
                    783:  759  0001EDA0                                         .set    L303,0x0
                    784:  760  0001EDA0                                  L305:
                    785:  761  0001EDA0    13 ff22                              jbr     L306
                    786:  762  0001EDA3                                         .data
                    787:  762  0003D493                                         .data

unix.superglobalmegacorp.com

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