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

1.1       root        1:    1  00000000                                  LL0:
                      2:    2  00000000                                         .data
                      3:    3  00000a98 *                                       .text
                      4:    4  00000000                                         .align  1
                      5:    5  00000000                                         .globl  _cmpd
                      6:    6  00000000                                  _cmpd:
                      7:    7  0001B358    0000                                 .word   L215
                      8:    8  0001B35A                                   # #include "fpp_defs.h"
                      9:    9  0001B35A                                   # 
                     10:   10  0001B35A                                   # 
                     11:   11  0001B35A                                   # 
                     12:   12  0001B35A                                   # /***************************************************************************
                     13:   13  0001B35A                                   # *
                     14:   14  0001B35A                                   # *       CMPD  -COMPARE SGL ACCUMULATOR TO SGL OPERAND
                     15:   15  0001B35A                                   # *
                     16:   16  0001B35A                                   # *****************************************************************************/
                     17:   17  0001B35A                                   # cmpd()
                     18:   18  0001B35A                                   # {
                     19:   19  0001B35A    11 41                                jbr     L217
                     20:   20  0001B35C                                  L218:
                     21:   21  0001B35C                                   #         asm(".globl _cmpd_t");
                     22:   22  0001B35C                                  .globl _cmpd_t
                     23:   23  0001B35C                                   #         asm("_cmpd_t:");                        /* entry address            */
                     24:   24  0001B35C                                  _cmpd_t:
                     25:   25  0001B35C                                   #         if( ( cycle == 1 ) && ( prt_hdrs ) )    /* print headers on 1st pass  */
                     26:   26  0001B35C    1d effffffff6 01                     cmpl    _cycle,$1
                     27:   27  0001B363    21 15                                jneq    L219
                     28:   28  0001B365    5d efffffffed                        tstl    _prt_hdrs
                     29:   29  0001B36B    31 0d                                jeql    L219
                     30:   30  0001B36D                                   #         {
                     31:   31  0001B36D                                   #            writes(" CMPD");
                     32:   32  0001B36D                                         .data   1
                     33:   33  00000a98 *                                L221:
                     34:   34  00000a98 *  20434D504400                         .ascii  " CMPD\0"
                     35:   35  00000a9e *                                       .text
                     36:   36  0001B36D    dd 8f00000a98                        pushl   $L221
                     37:   37  0001B373    fe 08 efffffffde                     callf   $8,_writes
                     38:   38  0001B37A                                   #         }
                     39:   39  0001B37A                                   #         cmpd_1();                               /* test via registers         */
                     40:   40  0001B37A                                  L219:
                     41:   41  0001B37A    fe 04 ef0000001f                     callf   $4,_cmpd_1
                     42:   42  0001B381                                   #         cmpd_2();                               /* test via cache             */
                     43:   43  0001B381    fe 04 ef00000274                     callf   $4,_cmpd_2
                     44:   44  0001B388                                   #         cmpd_3();                               /* register corruption test   */
                     45:   45  0001B388    fe 04 ef00000489                     callf   $4,_cmpd_3
                     46:   46  0001B38F                                   #         cmpd_4();                               /* acc. corruption test       */
                     47:   47  0001B38F    fe 04 ef0000068a                     callf   $4,_cmpd_4
                     48:   48  0001B396                                   #         asm("jmp *return");                     /* return to the test monitor */
                     49:   49  0001B396    71 ffffffffbc                 jmp *return
                     50:   50  0001B39C                                   # }
                     51:   51  0001B39C    40                                   ret#2
                     52:   52  0001B39D                                         .set    L215,0x0
                     53:   53  0001B39D                                  L217:
                     54:   54  0001B39D    11 bd                                jbr     L218
                     55:   55  0001B39F                                         .data
                     56:   56  00000a98 *                                       .text
                     57:   57  0001B39F    00                                   .align  1
                     58:   58  0001B3A0                                         .globl  _cmpd_1
                     59:   59  0001B3A0                                  _cmpd_1:
                     60:   60  0001B3A0    0000                                 .word   L226
                     61:   61  0001B3A2                                   #   
                     62:   62  0001B3A2                                   # 
                     63:   63  0001B3A2                                   # 
                     64:   64  0001B3A2                                   # /****************************************************************************
                     65:   65  0001B3A2                                   # *
                     66:   66  0001B3A2                                   # *               SUBTEST 1 - CMPD status test  -register data
                     67:   67  0001B3A2                                   # *
                     68:   68  0001B3A2                                   # ****************************************************************************/
                     69:   69  0001B3A2                                   # cmpd_1() 
                     70:   70  0001B3A2                                   # {
                     71:   71  0001B3A2    13 0253                              jbr     L228
                     72:   72  0001B3A5                                  L229:
                     73:   73  0001B3A5                                   #         force_loop = FALSE;
                     74:   74  0001B3A5    4d efffffffad                        clrl    _force_loop
                     75:   75  0001B3AB                                   #         subtest = 1;
                     76:   76  0001B3AB    0d 01 efffffffa6                     movl    $1,_subtest
                     77:   77  0001B3B2                                   #     index = 0;
                     78:   78  0001B3B2    4d efffffffa0                        clrl    _index
                     79:   79  0001B3B8                                   #         do 
                     80:   80  0001B3B8                                  L232:
                     81:   81  0001B3B8                                   #         {
                     82:   82  0001B3B8                                   #        dbl_value_1  = cmpd_1_data[index].one; /* get the data operands  */
                     83:   83  0001B3B8    5c 14 efffffff99 50                  mull3   $20,_index,r0
                     84:   84  0001B3C0    0c 8f00000000 50                     addl2   $_cmpd_1_data,r0
                     85:   85  0001B3C7    0d a004 efffffff8d                   movl    4(r0),_dbl_value_1+4
                     86:   86  0001B3CF    0d 60 efffffff82                     movl    (r0),_dbl_value_1
                     87:   87  0001B3D6                                   #        dbl_value_2  = cmpd_1_data[index].two;
                     88:   88  0001B3D6    5c 14 efffffff7b 50                  mull3   $20,_index,r0
                     89:   89  0001B3DE    0c 8f00000008 50                     addl2   $_cmpd_1_data+8,r0
                     90:   90  0001B3E5    0d a004 efffffff6f                   movl    4(r0),_dbl_value_2+4
                     91:   91  0001B3ED    0d 60 efffffff64                     movl    (r0),_dbl_value_2
                     92:   92  0001B3F4                                   #        sgl_expected = cmpd_1_data[index].flag; /* get expected results */
                     93:   93  0001B3F4    5c 14 efffffff5d 50                  mull3   $20,_index,r0
                     94:   94  0001B3FC    0d e000000010 efffffff51             movl    _cmpd_1_data+16(r0),_sgl_expected
                     95:   95  0001B407                                   #        sgl_value_1  = dbl_value_1.m;
                     96:   96  0001B407    0d efffffff4b efffffff46             movl    _dbl_value_1,_sgl_value_1
                     97:   97  0001B412                                   #        sgl_value_2  = dbl_value_1.l;
                     98:   98  0001B412    0d efffffff44 efffffff3b             movl    _dbl_value_1+4,_sgl_value_2
                     99:   99  0001B41D                                   #        sgl_value_3  = dbl_value_2.m;
                    100:  100  0001B41D    0d efffffff35 efffffff30             movl    _dbl_value_2,_sgl_value_3
                    101:  101  0001B428                                   #        sgl_value_4  = dbl_value_2.l;
                    102:  102  0001B428    0d efffffff2e efffffff25             movl    _dbl_value_2+4,_sgl_value_4
                    103:  103  0001B433                                   #            status_index = 0;                           /* clear the status index */
                    104:  104  0001B433    4d efffffff1f                        clrl    _status_index
                    105:  105  0001B439                                   #            do
                    106:  106  0001B439                                  L235:
                    107:  107  0001B439                                   #            {
                    108:  108  0001B439                                   #                sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
                    109:  109  0001B439    0d efffffff19 50                     movl    _status_index,r0
                    110:  110  0001B440    0d 40efffffff11                      movl    _status_array[r0],_sgl_dummy1
                    111:                   efffffff0c 
                    112:  111  0001B44C                                   # /*
                    113:  112  0001B44C                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    114:  113  0001B44C                                   #  * The force loop flag is set after the first error.
                    115:  114  0001B44C                                   # */
                    116:  115  0001B44C                                   #                asm("_cmpd_1_lp1:");
                    117:  116  0001B44C                                  _cmpd_1_lp1:
                    118:  117  0001B44C                                   #                asm("movl _sgl_value_1,r4");     /* move operand #1 to r4    */
                    119:  118  0001B44C    0d efffffff06 54              movl _sgl_value_1,r4
                    120:  119  0001B453                                   #                asm("movl _sgl_value_2,r5");     /* move operand #1 to r5    */
                    121:  120  0001B453    0d effffffeff 55              movl _sgl_value_2,r5
                    122:  121  0001B45A                                   #                asm("movl _sgl_value_3,r6");     /* move operand #2 to r6    */
                    123:  122  0001B45A    0d effffffef8 56              movl _sgl_value_3,r6
                    124:  123  0001B461                                   #                asm("movl _sgl_value_4,r7");     /* move operand #2 to r7    */
                    125:  124  0001B461    0d effffffef1 57              movl _sgl_value_4,r7
                    126:  125  0001B468                                   #                asm("ldd r4");                   /* load the operand         */
                    127:  126  0001B468    07 54                         ldd r4
                    128:  127  0001B46A                                   #                asm("tstl _sgl_dummy1");         /* generate initial status  */
                    129:  128  0001B46A    5d effffffee8                 tstl _sgl_dummy1
                    130:  129  0001B470                                   #                asm("movpsl _init_psl");         /* save the initial status  */
                    131:  130  0001B470    cd effffffee2                 movpsl _init_psl
                    132:  131  0001B476                                   #                asm("cmpd r6");                  /* compare the operands     */
                    133:  132  0001B476    37 56                         cmpd r6
                    134:  133  0001B478                                   #                asm("movpsl _psl_val");          /* save the final status    */
                    135:  134  0001B478    cd effffffeda                 movpsl _psl_val
                    136:  135  0001B47E                                   #                if( force_loop )                 /* loop?                    */
                    137:  136  0001B47E    5d effffffed4                        tstl    _force_loop
                    138:  137  0001B484    31 02                                jeql    L236
                    139:  138  0001B486                                   #                    asm("brb _cmpd_1_lp1");;     /* run the loop again       */
                    140:  139  0001B486    11 c4                         brb _cmpd_1_lp1
                    141:  140  0001B488                                  L236:
                    142:  141  0001B488                                   #                exp_psl = init_psl;              /* get the initial PSL      */
                    143:  142  0001B488    0d effffffeca effffffec5             movl    _init_psl,_exp_psl
                    144:  143  0001B493                                   #                exp_psl &= 0xfffffff3;           /* clear ZERO, NEGATIVE     */
                    145:  144  0001B493    ac 88f3 effffffebd                   andl2   $-13,_exp_psl
                    146:  145  0001B49B                                   #                if( sgl_expected == ZERO )
                    147:  146  0001B49B    1d effffffeb7 04                     cmpl    _sgl_expected,$4
                    148:  147  0001B4A2    21 07                                jneq    L237
                    149:  148  0001B4A4                                   #                    exp_psl |= PSL_Z;            /* expect the ZERO bit set  */
                    150:  149  0001B4A4    8c 04 effffffead                     orl2    $4,_exp_psl
                    151:  150  0001B4AB                                   #                if( sgl_expected == NEGATIVE )
                    152:  151  0001B4AB                                  L237:
                    153:  152  0001B4AB    1d effffffea7 08                     cmpl    _sgl_expected,$8
                    154:  153  0001B4B2    21 07                                jneq    L238
                    155:  154  0001B4B4                                   #                    exp_psl |= PSL_N;            /* expect the NEG bit set   */
                    156:  155  0001B4B4    8c 08 effffffe9d                     orl2    $8,_exp_psl
                    157:  156  0001B4BB                                   #                if( psl_val != exp_psl ) {       /* COMPARE the values       */
                    158:  157  0001B4BB                                  L238:
                    159:  158  0001B4BB    1d effffffe97 effffffe92             cmpl    _psl_val,_exp_psl
                    160:  159  0001B4C6    21 03 13 00fe                        jeql    L239
                    161:  160  0001B4CB                                   #                   errcnt++;                     /* bump the error count     */
                    162:  161  0001B4CB    6d effffffe87                        incl    _errcnt
                    163:  162  0001B4D1                                   #                   if ( prt_error ) {
                    164:  163  0001B4D1    5d effffffe81                        tstl    _prt_error
                    165:  164  0001B4D7    21 03 13 00ca                        jeql    L240
                    166:  165  0001B4DC                                   #                      writes(" \n");         /* start a new print line   */
                    167:  166  0001B4DC                                         .data   1
                    168:  167  00000a9e *                                L241:
                    169:  168  00000a9e *  200A00                               .ascii  " \12\0"
                    170:  169  00000aa1 *                                       .text
                    171:  170  0001B4DC    dd 8f00000a9e                        pushl   $L241
                    172:  171  0001B4E2    fe 08 effffffe6f                     callf   $8,_writes
                    173:  172  0001B4E9                                   #                      writes("cycle: ");
                    174:  173  0001B4E9                                         .data   1
                    175:  174  00000aa1 *                                L242:
                    176:  175  00000aa1 *  6379636C653A2000                     .ascii  "cycle: \0"
                    177:  176  00000aa9 *                                       .text
                    178:  177  0001B4E9    dd 8f00000aa1                        pushl   $L242
                    179:  178  0001B4EF    fe 08 effffffe62                     callf   $8,_writes
                    180:  179  0001B4F6                                   #                      writed( cycle );
                    181:  180  0001B4F6    dd effffffe5c                        pushl   _cycle
                    182:  181  0001B4FC    fe 08 effffffe55                     callf   $8,_writed
                    183:  182  0001B503                                   #                      writes("  CMPD test ");
                    184:  183  0001B503                                         .data   1
                    185:  184  00000aa9 *                                L244:
                    186:  185  00000aa9 *  2020434D50442074657374200            .ascii  "  CMPD test \0"
                    187:                   0
                    188:  186  00000ab6 *                                       .text
                    189:  187  0001B503    dd 8f00000aa9                        pushl   $L244
                    190:  188  0001B509    fe 08 effffffe48                     callf   $8,_writes
                    191:  189  0001B510                                   #                  writed( test_no );
                    192:  190  0001B510    dd effffffe42                        pushl   _test_no
                    193:  191  0001B516    fe 08 effffffe3b                     callf   $8,_writed
                    194:  192  0001B51D                                   #                  writes(", subtest 1 (Reg. Data) - BAD FINAL PSL\n");
                    195:  193  0001B51D                                         .data   1
                    196:  194  00000ab6 *                                L245:
                    197:  195  00000ab6 *  2C20737562746573742031202            .ascii  ", subtest 1 (Reg. Data) - BAD FINAL PSL\12\0"
                    198:                   85265672E204461746129202D
                    199:                   204241442046494E414C20505
                    200:                   34C0A00
                    201:  196  00000adf *                                       .text
                    202:  197  0001B51D    dd 8f00000ab6                        pushl   $L245
                    203:  198  0001B523    fe 08 effffffe2e                     callf   $8,_writes
                    204:  199  0001B52A                                   #                      print_cmpd_data();
                    205:  200  0001B52A    fe 04 ef00000731                     callf   $4,_print_cmpd_data
                    206:  201  0001B531                                   #                      writes(",  index = ");
                    207:  202  0001B531                                         .data   1
                    208:  203  00000adf *                                L247:
                    209:  204  00000adf *  2C2020696E646578203D2000             .ascii  ",  index = \0"
                    210:  205  00000aeb *                                       .text
                    211:  206  0001B531    dd 8f00000adf                        pushl   $L247
                    212:  207  0001B537    fe 08 effffffe1a                     callf   $8,_writes
                    213:  208  0001B53E                                   #                      writed( index );
                    214:  209  0001B53E    dd effffffe14                        pushl   _index
                    215:  210  0001B544    fe 08 effffffe0d                     callf   $8,_writed
                    216:  211  0001B54B                                   #                      writes("\ninitial PSL = ");
                    217:  212  0001B54B                                         .data   1
                    218:  213  00000aeb *                                L248:
                    219:  214  00000aeb *  0A696E697469616C2050534C2            .ascii  "\12initial PSL = \0"
                    220:                   03D2000
                    221:  215  00000afb *                                       .text
                    222:  216  0001B54B    dd 8f00000aeb                        pushl   $L248
                    223:  217  0001B551    fe 08 effffffe00                     callf   $8,_writes
                    224:  218  0001B558                                   #                      write32h( init_psl );
                    225:  219  0001B558    dd effffffdfa                        pushl   _init_psl
                    226:  220  0001B55E    fe 08 effffffdf3                     callf   $8,_write32h
                    227:  221  0001B565                                   #                      writes(",  final PSL = ");
                    228:  222  0001B565                                         .data   1
                    229:  223  00000afb *                                L250:
                    230:  224  00000afb *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
                    231:                   03D2000
                    232:  225  00000b0b *                                       .text
                    233:  226  0001B565    dd 8f00000afb                        pushl   $L250
                    234:  227  0001B56B    fe 08 effffffde6                     callf   $8,_writes
                    235:  228  0001B572                                   #                      write32h( psl_val );
                    236:  229  0001B572    dd effffffde0                        pushl   _psl_val
                    237:  230  0001B578    fe 08 effffffdd9                     callf   $8,_write32h
                    238:  231  0001B57F                                   #                      writes(",  expected PSL = ");
                    239:  232  0001B57F                                         .data   1
                    240:  233  00000b0b *                                L251:
                    241:  234  00000b0b *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
                    242:                   0534C203D2000
                    243:  235  00000b1e *                                       .text
                    244:  236  0001B57F    dd 8f00000b0b                        pushl   $L251
                    245:  237  0001B585    fe 08 effffffdcc                     callf   $8,_writes
                    246:  238  0001B58C                                   #                      write32h( exp_psl );
                    247:  239  0001B58C    dd effffffdc6                        pushl   _exp_psl
                    248:  240  0001B592    fe 08 effffffdbf                     callf   $8,_write32h
                    249:  241  0001B599                                   #                      writes("\n");
                    250:  242  0001B599                                         .data   1
                    251:  243  00000b1e *                                L252:
                    252:  244  00000b1e *  0A00                                 .ascii  "\12\0"
                    253:  245  00000b20 *                                       .text
                    254:  246  0001B599    dd 8f00000b1e                        pushl   $L252
                    255:  247  0001B59F    fe 08 effffffdb2                     callf   $8,_writes
                    256:  248  0001B5A6                                   #                   }
                    257:  249  0001B5A6                                   #                   if ( halt_flg )
                    258:  250  0001B5A6                                  L240:
                    259:  251  0001B5A6    5d effffffdac                        tstl    _halt_flg
                    260:  252  0001B5AC    31 09                                jeql    L253
                    261:  253  0001B5AE                                   #                      cmpd_er_halt( BAD_PSL_HLT );/* halt on the error      */
                    262:  254  0001B5AE    dd 03                                pushl   $3
                    263:  255  0001B5B0    fe 08 ef00000713                     callf   $8,_cmpd_er_halt
                    264:  256  0001B5B7                                   #                   if ( loop_on_err ) {
                    265:  257  0001B5B7                                  L253:
                    266:  258  0001B5B7    5d effffffd9b                        tstl    _loop_on_err
                    267:  259  0001B5BD    31 0a                                jeql    L255
                    268:  260  0001B5BF                                   #                      force_loop = TRUE;         /* set the force loop flag */
                    269:  261  0001B5BF    0d 01 effffffd92                     movl    $1,_force_loop
                    270:  262  0001B5C6                                   #                      asm("brw _cmpd_1_lp1");    /* and loop on the error   */
                    271:  263  0001B5C6    13 fe83                       brw _cmpd_1_lp1
                    272:  264  0001B5C9                                   #                   }   /* end of loop on error    */
                    273:  265  0001B5C9                                   #                }   /* end of compare error    */
                    274:  266  0001B5C9                                  L255:
                    275:  267  0001B5C9                                   #            } while( ++status_index < 3 );       /* end of WHILE loop */
                    276:  268  0001B5C9                                  L239:
                    277:  269  0001B5C9                                  L234:
                    278:  270  0001B5C9    6d effffffd89                        incl    _status_index
                    279:  271  0001B5CF    0d effffffd83 50                     movl    _status_index,r0
                    280:  272  0001B5D6    1d 50 03                             cmpl    r0,$3
                    281:  273  0001B5D9    81 03 13 fe5b                        jlss    L235
                    282:  274  0001B5DE                                  L233:
                    283:  275  0001B5DE                                   #         } while ( index++ < max_cmpd_1_index ); /* end of WHILE loop */
                    284:  276  0001B5DE                                  L231:
                    285:  277  0001B5DE    0d effffffd74 50                     movl    _index,r0
                    286:  278  0001B5E5    6d effffffd6d                        incl    _index
                    287:  279  0001B5EB    1d 50 effffffd66                     cmpl    r0,_max_cmpd_1_index
                    288:  280  0001B5F2    81 03 13 fdc1                        jlss    L232
                    289:  281  0001B5F7                                  L230:
                    290:  282  0001B5F7                                   # }  /* end of subtest 1 */
                    291:  283  0001B5F7    40                                   ret#2
                    292:  284  0001B5F8                                         .set    L226,0x0
                    293:  285  0001B5F8                                  L228:
                    294:  286  0001B5F8    13 fdaa                              jbr     L229
                    295:  287  0001B5FB                                         .data
                    296:  288  00000a98 *                                       .text
                    297:  289  0001B5FB    00                                   .align  1
                    298:  290  0001B5FC                                         .globl  _cmpd_2
                    299:  291  0001B5FC                                  _cmpd_2:
                    300:  292  0001B5FC    0000                                 .word   L256
                    301:  293  0001B5FE                                   #   
                    302:  294  0001B5FE                                   # 
                    303:  295  0001B5FE                                   # 
                    304:  296  0001B5FE                                   # /****************************************************************************
                    305:  297  0001B5FE                                   # *
                    306:  298  0001B5FE                                   # *               SUBTEST 2 - CMPD status test  -cache data
                    307:  299  0001B5FE                                   # *
                    308:  300  0001B5FE                                   # ****************************************************************************/
                    309:  301  0001B5FE                                   # cmpd_2() 
                    310:  302  0001B5FE                                   # {
                    311:  303  0001B5FE    13 0213                              jbr     L258
                    312:  304  0001B601                                  L259:
                    313:  305  0001B601                                   #         force_loop = FALSE; 
                    314:  306  0001B601    4d effffffd51                        clrl    _force_loop
                    315:  307  0001B607                                   #     subtest = 2;
                    316:  308  0001B607    0d 02 effffffd4a                     movl    $2,_subtest
                    317:  309  0001B60E                                   #     index = 0;
                    318:  310  0001B60E    4d effffffd44                        clrl    _index
                    319:  311  0001B614                                   #         do 
                    320:  312  0001B614                                  L262:
                    321:  313  0001B614                                   #         {
                    322:  314  0001B614                                   #            dbl_value_1  = cmpd_1_data[index].one; /* get the data operands  */
                    323:  315  0001B614    5c 14 effffffd3d 50                  mull3   $20,_index,r0
                    324:  316  0001B61C    0c 8f00000000 50                     addl2   $_cmpd_1_data,r0
                    325:  317  0001B623    0d a004 effffffd31                   movl    4(r0),_dbl_value_1+4
                    326:  318  0001B62B    0d 60 effffffd26                     movl    (r0),_dbl_value_1
                    327:  319  0001B632                                   #            dbl_value_2  = cmpd_1_data[index].two;
                    328:  320  0001B632    5c 14 effffffd1f 50                  mull3   $20,_index,r0
                    329:  321  0001B63A    0c 8f00000008 50                     addl2   $_cmpd_1_data+8,r0
                    330:  322  0001B641    0d a004 effffffd13                   movl    4(r0),_dbl_value_2+4
                    331:  323  0001B649    0d 60 effffffd08                     movl    (r0),_dbl_value_2
                    332:  324  0001B650                                   #            sgl_expected = cmpd_1_data[index].flag;/* get expected results */
                    333:  325  0001B650    5c 14 effffffd01 50                  mull3   $20,_index,r0
                    334:  326  0001B658    0d e000000010 effffffcf5             movl    _cmpd_1_data+16(r0),_sgl_expected
                    335:  327  0001B663                                   #            status_index = 0;                      /* clear the status index */
                    336:  328  0001B663    4d effffffcef                        clrl    _status_index
                    337:  329  0001B669                                   #            do
                    338:  330  0001B669                                  L265:
                    339:  331  0001B669                                   #            {
                    340:  332  0001B669                                   #                sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
                    341:  333  0001B669    0d effffffce9 50                     movl    _status_index,r0
                    342:  334  0001B670    0d 40effffffce1                      movl    _status_array[r0],_sgl_dummy1
                    343:                   effffffcdc 
                    344:  335  0001B67C                                   # /*
                    345:  336  0001B67C                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    346:  337  0001B67C                                   #  * The force loop flag is set after the first error.
                    347:  338  0001B67C                                   # */
                    348:  339  0001B67C                                   #                asm("_cmpd_2_lp1:");
                    349:  340  0001B67C                                  _cmpd_2_lp1:
                    350:  341  0001B67C                                   #                asm("ldd _dbl_value_1");         /* load the 1st operand     */
                    351:  342  0001B67C    07 effffffcd6                 ldd _dbl_value_1
                    352:  343  0001B682                                   #                asm("tstl _sgl_dummy1");         /* generate initial status  */
                    353:  344  0001B682    5d effffffcd0                 tstl _sgl_dummy1
                    354:  345  0001B688                                   #                asm("movpsl _init_psl");         /* save the initial status  */
                    355:  346  0001B688    cd effffffcca                 movpsl _init_psl
                    356:  347  0001B68E                                   #                asm("cmpd _dbl_value_2");        /* compare the operands     */
                    357:  348  0001B68E    37 effffffcc4                 cmpd _dbl_value_2
                    358:  349  0001B694                                   #                asm("movpsl _psl_val");          /* save the final status    */
                    359:  350  0001B694    cd effffffcbe                 movpsl _psl_val
                    360:  351  0001B69A                                   #                if( force_loop )                 /* loop?                    */
                    361:  352  0001B69A    5d effffffcb8                        tstl    _force_loop
                    362:  353  0001B6A0    31 02                                jeql    L266
                    363:  354  0001B6A2                                   #                    asm("brb _cmpd_2_lp1");;     /* run the loop again       */
                    364:  355  0001B6A2    11 d8                         brb _cmpd_2_lp1
                    365:  356  0001B6A4                                  L266:
                    366:  357  0001B6A4                                   #                exp_psl = init_psl;              /* get the initial PSL      */
                    367:  358  0001B6A4    0d effffffcae effffffca9             movl    _init_psl,_exp_psl
                    368:  359  0001B6AF                                   #                exp_psl &= 0xfffffff3;           /* clear ZERO, NEGATIVE     */
                    369:  360  0001B6AF    ac 88f3 effffffca1                   andl2   $-13,_exp_psl
                    370:  361  0001B6B7                                   #                if( sgl_expected == ZERO )
                    371:  362  0001B6B7    1d effffffc9b 04                     cmpl    _sgl_expected,$4
                    372:  363  0001B6BE    21 07                                jneq    L267
                    373:  364  0001B6C0                                   #                    exp_psl |= PSL_Z;            /* expect the ZERO bit set  */
                    374:  365  0001B6C0    8c 04 effffffc91                     orl2    $4,_exp_psl
                    375:  366  0001B6C7                                   #                if( sgl_expected == NEGATIVE )
                    376:  367  0001B6C7                                  L267:
                    377:  368  0001B6C7    1d effffffc8b 08                     cmpl    _sgl_expected,$8
                    378:  369  0001B6CE    21 07                                jneq    L268
                    379:  370  0001B6D0                                   #                    exp_psl |= PSL_N;            /* expect the NEG bit set   */
                    380:  371  0001B6D0    8c 08 effffffc81                     orl2    $8,_exp_psl
                    381:  372  0001B6D7                                   #                if( psl_val != exp_psl ) {       /* COMPARE the values       */
                    382:  373  0001B6D7                                  L268:
                    383:  374  0001B6D7    1d effffffc7b effffffc76             cmpl    _psl_val,_exp_psl
                    384:  375  0001B6E2    21 03 13 00fe                        jeql    L269
                    385:  376  0001B6E7                                   #                   errcnt++;                     /* bump the error count     */
                    386:  377  0001B6E7    6d effffffc6b                        incl    _errcnt
                    387:  378  0001B6ED                                   #                   if ( prt_error ) {
                    388:  379  0001B6ED    5d effffffc65                        tstl    _prt_error
                    389:  380  0001B6F3    21 03 13 00ca                        jeql    L270
                    390:  381  0001B6F8                                   #                      writes(" \n");         /* start a new print line   */
                    391:  382  0001B6F8                                         .data   1
                    392:  383  00000b20 *                                L271:
                    393:  384  00000b20 *  200A00                               .ascii  " \12\0"
                    394:  385  00000b23 *                                       .text
                    395:  386  0001B6F8    dd 8f00000b20                        pushl   $L271
                    396:  387  0001B6FE    fe 08 effffffc53                     callf   $8,_writes
                    397:  388  0001B705                                   #                      writes("cycle: ");
                    398:  389  0001B705                                         .data   1
                    399:  390  00000b23 *                                L272:
                    400:  391  00000b23 *  6379636C653A2000                     .ascii  "cycle: \0"
                    401:  392  00000b2b *                                       .text
                    402:  393  0001B705    dd 8f00000b23                        pushl   $L272
                    403:  394  0001B70B    fe 08 effffffc46                     callf   $8,_writes
                    404:  395  0001B712                                   #                      writed( cycle );
                    405:  396  0001B712    dd effffffc40                        pushl   _cycle
                    406:  397  0001B718    fe 08 effffffc39                     callf   $8,_writed
                    407:  398  0001B71F                                   #                      writes("  CMPD test ");
                    408:  399  0001B71F                                         .data   1
                    409:  400  00000b2b *                                L273:
                    410:  401  00000b2b *  2020434D50442074657374200            .ascii  "  CMPD test \0"
                    411:                   0
                    412:  402  00000b38 *                                       .text
                    413:  403  0001B71F    dd 8f00000b2b                        pushl   $L273
                    414:  404  0001B725    fe 08 effffffc2c                     callf   $8,_writes
                    415:  405  0001B72C                                   #                  writed( test_no );
                    416:  406  0001B72C    dd effffffc26                        pushl   _test_no
                    417:  407  0001B732    fe 08 effffffc1f                     callf   $8,_writed
                    418:  408  0001B739                                   #                  writes(", subtest 2 (Cache Data) - BAD FINAL PSL\n");
                    419:  409  0001B739                                         .data   1
                    420:  410  00000b38 *                                L274:
                    421:  411  00000b38 *  2C20737562746573742032202            .ascii  ", subtest 2 (Cache Data) - BAD FINAL PSL\12\0"
                    422:                   8436163686520446174612920
                    423:                   2D204241442046494E414C205
                    424:                   0534C0A00
                    425:  412  00000b62 *                                       .text
                    426:  413  0001B739    dd 8f00000b38                        pushl   $L274
                    427:  414  0001B73F    fe 08 effffffc12                     callf   $8,_writes
                    428:  415  0001B746                                   #                      print_cmpd_data();
                    429:  416  0001B746    fe 04 ef00000515                     callf   $4,_print_cmpd_data
                    430:  417  0001B74D                                   #                      writes(",  index = ");
                    431:  418  0001B74D                                         .data   1
                    432:  419  00000b62 *                                L275:
                    433:  420  00000b62 *  2C2020696E646578203D2000             .ascii  ",  index = \0"
                    434:  421  00000b6e *                                       .text
                    435:  422  0001B74D    dd 8f00000b62                        pushl   $L275
                    436:  423  0001B753    fe 08 effffffbfe                     callf   $8,_writes
                    437:  424  0001B75A                                   #                      writed( index );
                    438:  425  0001B75A    dd effffffbf8                        pushl   _index
                    439:  426  0001B760    fe 08 effffffbf1                     callf   $8,_writed
                    440:  427  0001B767                                   #                      writes("\ninitial PSL = ");
                    441:  428  0001B767                                         .data   1
                    442:  429  00000b6e *                                L276:
                    443:  430  00000b6e *  0A696E697469616C2050534C2            .ascii  "\12initial PSL = \0"
                    444:                   03D2000
                    445:  431  00000b7e *                                       .text
                    446:  432  0001B767    dd 8f00000b6e                        pushl   $L276
                    447:  433  0001B76D    fe 08 effffffbe4                     callf   $8,_writes
                    448:  434  0001B774                                   #                      write32h( init_psl );
                    449:  435  0001B774    dd effffffbde                        pushl   _init_psl
                    450:  436  0001B77A    fe 08 effffffbd7                     callf   $8,_write32h
                    451:  437  0001B781                                   #                      writes(",  final PSL = ");
                    452:  438  0001B781                                         .data   1
                    453:  439  00000b7e *                                L277:
                    454:  440  00000b7e *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
                    455:                   03D2000
                    456:  441  00000b8e *                                       .text
                    457:  442  0001B781    dd 8f00000b7e                        pushl   $L277
                    458:  443  0001B787    fe 08 effffffbca                     callf   $8,_writes
                    459:  444  0001B78E                                   #                      write32h( psl_val );
                    460:  445  0001B78E    dd effffffbc4                        pushl   _psl_val
                    461:  446  0001B794    fe 08 effffffbbd                     callf   $8,_write32h
                    462:  447  0001B79B                                   #                      writes(",  expected PSL = ");
                    463:  448  0001B79B                                         .data   1
                    464:  449  00000b8e *                                L278:
                    465:  450  00000b8e *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
                    466:                   0534C203D2000
                    467:  451  00000ba1 *                                       .text
                    468:  452  0001B79B    dd 8f00000b8e                        pushl   $L278
                    469:  453  0001B7A1    fe 08 effffffbb0                     callf   $8,_writes
                    470:  454  0001B7A8                                   #                      write32h( exp_psl );
                    471:  455  0001B7A8    dd effffffbaa                        pushl   _exp_psl
                    472:  456  0001B7AE    fe 08 effffffba3                     callf   $8,_write32h
                    473:  457  0001B7B5                                   #                      writes("\n");
                    474:  458  0001B7B5                                         .data   1
                    475:  459  00000ba1 *                                L279:
                    476:  460  00000ba1 *  0A00                                 .ascii  "\12\0"
                    477:  461  00000ba3 *                                       .text
                    478:  462  0001B7B5    dd 8f00000ba1                        pushl   $L279
                    479:  463  0001B7BB    fe 08 effffffb96                     callf   $8,_writes
                    480:  464  0001B7C2                                   #                   }
                    481:  465  0001B7C2                                   #                   if ( halt_flg ) 
                    482:  466  0001B7C2                                  L270:
                    483:  467  0001B7C2    5d effffffb90                        tstl    _halt_flg
                    484:  468  0001B7C8    31 09                                jeql    L280
                    485:  469  0001B7CA                                   #                      cmpd_er_halt( BAD_PSL_HLT );   /* halt on the error   */
                    486:  470  0001B7CA    dd 03                                pushl   $3
                    487:  471  0001B7CC    fe 08 ef000004f7                     callf   $8,_cmpd_er_halt
                    488:  472  0001B7D3                                   #                   if ( loop_on_err ) {
                    489:  473  0001B7D3                                  L280:
                    490:  474  0001B7D3    5d effffffb7f                        tstl    _loop_on_err
                    491:  475  0001B7D9    31 0a                                jeql    L281
                    492:  476  0001B7DB                                   #                      force_loop = TRUE;         /* set the force loop flag */
                    493:  477  0001B7DB    0d 01 effffffb76                     movl    $1,_force_loop
                    494:  478  0001B7E2                                   #                      asm("brw _cmpd_2_lp1");    /* and loop on the error   */
                    495:  479  0001B7E2    13 fe97                       brw _cmpd_2_lp1
                    496:  480  0001B7E5                                   #                   }   /* end of loop on error    */
                    497:  481  0001B7E5                                   #                }  /* end of compare error */
                    498:  482  0001B7E5                                  L281:
                    499:  483  0001B7E5                                   #            } while( ++status_index < 3 );       /* end of WHILE loop */
                    500:  484  0001B7E5                                  L269:
                    501:  485  0001B7E5                                  L264:
                    502:  486  0001B7E5    6d effffffb6d                        incl    _status_index
                    503:  487  0001B7EB    0d effffffb67 50                     movl    _status_index,r0
                    504:  488  0001B7F2    1d 50 03                             cmpl    r0,$3
                    505:  489  0001B7F5    81 03 13 fe6f                        jlss    L265
                    506:  490  0001B7FA                                  L263:
                    507:  491  0001B7FA                                   #         } while ( index++ < max_cmpd_1_index ); /* end of WHILE loop */
                    508:  492  0001B7FA                                  L261:
                    509:  493  0001B7FA    0d effffffb58 50                     movl    _index,r0
                    510:  494  0001B801    6d effffffb51                        incl    _index
                    511:  495  0001B807    1d 50 effffffb4a                     cmpl    r0,_max_cmpd_1_index
                    512:  496  0001B80E    81 03 13 fe01                        jlss    L262
                    513:  497  0001B813                                  L260:
                    514:  498  0001B813                                   # }  /* end of subtest 2 */
                    515:  499  0001B813    40                                   ret#2
                    516:  500  0001B814                                         .set    L256,0x0
                    517:  501  0001B814                                  L258:
                    518:  502  0001B814    13 fdea                              jbr     L259
                    519:  503  0001B817                                         .data
                    520:  504  00000a98 *                                       .text
                    521:  505  0001B817    00                                   .align  1
                    522:  506  0001B818                                         .globl  _cmpd_3
                    523:  507  0001B818                                  _cmpd_3:
                    524:  508  0001B818    0000                                 .word   L282
                    525:  509  0001B81A                                   #   
                    526:  510  0001B81A                                   # 
                    527:  511  0001B81A                                   # 
                    528:  512  0001B81A                                   # /************************************************************************
                    529:  513  0001B81A                                   # *
                    530:  514  0001B81A                                   # *       SUBTEST 3 - Check for register corruption
                    531:  515  0001B81A                                   # *
                    532:  516  0001B81A                                   # ************************************************************************/
                    533:  517  0001B81A                                   # cmpd_3() 
                    534:  518  0001B81A                                   # {
                    535:  519  0001B81A    13 0200                              jbr     L284
                    536:  520  0001B81D                                  L285:
                    537:  521  0001B81D                                   #         force_loop = FALSE;                     /* clear force_loop flg   */
                    538:  522  0001B81D    4d effffffb35                        clrl    _force_loop
                    539:  523  0001B823                                   #         subtest = 3;
                    540:  524  0001B823    0d 03 effffffb2e                     movl    $3,_subtest
                    541:  525  0001B82A                                   #     fill_reg_buf( load_regs );              /* get pattern for regs   */
                    542:  526  0001B82A    dd 8f00000000                        pushl   $_load_regs
                    543:  527  0001B830    fe 08 effffffb21                     callf   $8,_fill_reg_buf
                    544:  528  0001B837                                   #     index = 0;
                    545:  529  0001B837    4d effffffb1b                        clrl    _index
                    546:  530  0001B83D                                   #         do 
                    547:  531  0001B83D                                  L289:
                    548:  532  0001B83D                                   #         {
                    549:  533  0001B83D                                   #              dbl_value_1  = cmpd_1_data[index].one;   /* data to load    */
                    550:  534  0001B83D    5c 14 effffffb14 50                  mull3   $20,_index,r0
                    551:  535  0001B845    0c 8f00000000 50                     addl2   $_cmpd_1_data,r0
                    552:  536  0001B84C    0d a004 effffffb08                   movl    4(r0),_dbl_value_1+4
                    553:  537  0001B854    0d 60 effffffafd                     movl    (r0),_dbl_value_1
                    554:  538  0001B85B                                   #              dbl_value_2  = cmpd_1_data[index].two;   /* data to compare */
                    555:  539  0001B85B    5c 14 effffffaf6 50                  mull3   $20,_index,r0
                    556:  540  0001B863    0c 8f00000008 50                     addl2   $_cmpd_1_data+8,r0
                    557:  541  0001B86A    0d a004 effffffaea                   movl    4(r0),_dbl_value_2+4
                    558:  542  0001B872    0d 60 effffffadf                     movl    (r0),_dbl_value_2
                    559:  543  0001B879                                   #              dbl_expected = cmpd_1_data[index].one;   /* expected result */
                    560:  544  0001B879    5c 14 effffffad8 50                  mull3   $20,_index,r0
                    561:  545  0001B881    0c 8f00000000 50                     addl2   $_cmpd_1_data,r0
                    562:  546  0001B888    0d a004 effffffacc                   movl    4(r0),_dbl_expected+4
                    563:  547  0001B890    0d 60 effffffac1                     movl    (r0),_dbl_expected
                    564:  548  0001B897                                   # /*
                    565:  549  0001B897                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    566:  550  0001B897                                   #  * The force loop flag is set after the first error.
                    567:  551  0001B897                                   # */
                    568:  552  0001B897                                   #              asm("_cmpd_3_lp1:");
                    569:  553  0001B897                                  _cmpd_3_lp1:
                    570:  554  0001B897                                   #              asm("ldd _dbl_value_1");           /* LOAD the accumulator  */
                    571:  555  0001B897    07 effffffabb                 ldd _dbl_value_1
                    572:  556  0001B89D                                   #              asm("nop");
                    573:  557  0001B89D    10                            nop
                    574:  558  0001B89E                                   #          asm("loadr $0x1fff,_load_regs");   /* load regs 0 - 12       */
                    575:  559  0001B89E    ab 891fff effffffab1          loadr $0x1fff,_load_regs
                    576:  560  0001B8A7                                   #              asm("nop");
                    577:  561  0001B8A7    10                            nop
                    578:  562  0001B8A8                                   #              asm("cmpd _dbl_value_2");          /* test the values        */
                    579:  563  0001B8A8    37 effffffaaa                 cmpd _dbl_value_2
                    580:  564  0001B8AE                                   #              asm("nop");
                    581:  565  0001B8AE    10                            nop
                    582:  566  0001B8AF                                   #              asm("storer $0x1fff,_store_regs"); /* store regs 0 - 12 */
                    583:  567  0001B8AF    bb 891fff effffffaa0          storer $0x1fff,_store_regs
                    584:  568  0001B8B8                                   #              if( force_loop )                   /* loop?                    */
                    585:  569  0001B8B8    5d effffffa9a                        tstl    _force_loop
                    586:  570  0001B8BE    31 02                                jeql    L290
                    587:  571  0001B8C0                                   #                    asm("brb _cmpd_3_lp1");;     /* run the loop again       */
                    588:  572  0001B8C0    11 d5                         brb _cmpd_3_lp1
                    589:  573  0001B8C2                                  L290:
                    590:  574  0001B8C2                                   # /*
                    591:  575  0001B8C2                                   #  * Now compare the stored register values to those that were loaded
                    592:  576  0001B8C2                                   # */
                    593:  577  0001B8C2                                   #              index2 = 0;
                    594:  578  0001B8C2    4d effffffa90                        clrl    _index2
                    595:  579  0001B8C8                                   #              while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
                    596:  580  0001B8C8                                  L291:
                    597:  581  0001B8C8    0d effffffa8a 50                     movl    _index2,r0
                    598:  582  0001B8CF    0d effffffa83 51                     movl    _index2,r1
                    599:  583  0001B8D6    1d 40effffffa7b                      cmpl    _load_regs[r0],_store_regs[r1]
                    600:                   41effffffa75 
                    601:  584  0001B8E3    21 11                                jneq    L292
                    602:  585  0001B8E5    1d effffffa6d 0d                     cmpl    _index2,$13
                    603:  586  0001B8EC    81 08                                jgeq    L292
                    604:  587  0001B8EE                                   #                   index2++;                     /* check reg values */
                    605:  588  0001B8EE    6d effffffa64                        incl    _index2
                    606:  589  0001B8F4    11 d2                                jbr     L291
                    607:  590  0001B8F6                                  L292:
                    608:  591  0001B8F6                                   #              if( index2 < 13 )  {               /* error if index2 < 13 */
                    609:  592  0001B8F6    1d effffffa5c 0d                     cmpl    _index2,$13
                    610:  593  0001B8FD    91 03 13 0101                        jgeq    L293
                    611:  594  0001B902                                   #                   errcnt++;                     /* bump the error count */
                    612:  595  0001B902    6d effffffa50                        incl    _errcnt
                    613:  596  0001B908                                   #                   if ( prt_error ) {
                    614:  597  0001B908    5d effffffa4a                        tstl    _prt_error
                    615:  598  0001B90E    21 03 13 00cd                        jeql    L294
                    616:  599  0001B913                                   #                        writes(" \n");      /* start a new print line   */
                    617:  600  0001B913                                         .data   1
                    618:  601  00000ba3 *                                L295:
                    619:  602  00000ba3 *  200A00                               .ascii  " \12\0"
                    620:  603  00000ba6 *                                       .text
                    621:  604  0001B913    dd 8f00000ba3                        pushl   $L295
                    622:  605  0001B919    fe 08 effffffa38                     callf   $8,_writes
                    623:  606  0001B920                                   #                        writes("cycle: ");
                    624:  607  0001B920                                         .data   1
                    625:  608  00000ba6 *                                L296:
                    626:  609  00000ba6 *  6379636C653A2000                     .ascii  "cycle: \0"
                    627:  610  00000bae *                                       .text
                    628:  611  0001B920    dd 8f00000ba6                        pushl   $L296
                    629:  612  0001B926    fe 08 effffffa2b                     callf   $8,_writes
                    630:  613  0001B92D                                   #                        writed( cycle );
                    631:  614  0001B92D    dd effffffa25                        pushl   _cycle
                    632:  615  0001B933    fe 08 effffffa1e                     callf   $8,_writed
                    633:  616  0001B93A                                   #                        writes(", CMPD test ");
                    634:  617  0001B93A                                         .data   1
                    635:  618  00000bae *                                L297:
                    636:  619  00000bae *  2C20434D50442074657374200            .ascii  ", CMPD test \0"
                    637:                   0
                    638:  620  00000bbb *                                       .text
                    639:  621  0001B93A    dd 8f00000bae                        pushl   $L297
                    640:  622  0001B940    fe 08 effffffa11                     callf   $8,_writes
                    641:  623  0001B947                                   #                    writed( test_no );
                    642:  624  0001B947    dd effffffa0b                        pushl   _test_no
                    643:  625  0001B94D    fe 08 effffffa04                     callf   $8,_writed
                    644:  626  0001B954                                   #     writes(", subtest 3 - A REGISTER WAS MODIFIED\n");
                    645:  627  0001B954                                         .data   1
                    646:  628  00000bbb *                                L298:
                    647:  629  00000bbb *  2C20737562746573742033202            .ascii  ", subtest 3 - A REGISTER WAS MODIFIED\12\0"
                    648:                   D204120524547495354455220
                    649:                   574153204D4F4449464945440
                    650:                   A00
                    651:  630  00000be2 *                                       .text
                    652:  631  0001B954    dd 8f00000bbb                        pushl   $L298
                    653:  632  0001B95A    fe 08 effffff9f7                     callf   $8,_writes
                    654:  633  0001B961                                   #                        print_cmpd_data();            /* print the operands    */
                    655:  634  0001B961    fe 04 ef000002fa                     callf   $4,_print_cmpd_data
                    656:  635  0001B968                                   #                        writes("\n");
                    657:  636  0001B968                                         .data   1
                    658:  637  00000be2 *                                L299:
                    659:  638  00000be2 *  0A00                                 .ascii  "\12\0"
                    660:  639  00000be4 *                                       .text
                    661:  640  0001B968    dd 8f00000be2                        pushl   $L299
                    662:  641  0001B96E    fe 08 effffff9e3                     callf   $8,_writes
                    663:  642  0001B975                                   #                        writes("register ");          /* print the information */
                    664:  643  0001B975                                         .data   1
                    665:  644  00000be4 *                                L300:
                    666:  645  00000be4 *  72656769737465722000                 .ascii  "register \0"
                    667:  646  00000bee *                                       .text
                    668:  647  0001B975    dd 8f00000be4                        pushl   $L300
                    669:  648  0001B97B    fe 08 effffff9d6                     callf   $8,_writes
                    670:  649  0001B982                                   #                        writed( index2 );             /* about the corrupted  */
                    671:  650  0001B982    dd effffff9d0                        pushl   _index2
                    672:  651  0001B988    fe 08 effffff9c9                     callf   $8,_writed
                    673:  652  0001B98F                                   #                        writes(" = ");                /*    register         */
                    674:  653  0001B98F                                         .data   1
                    675:  654  00000bee *                                L301:
                    676:  655  00000bee *  203D2000                             .ascii  " = \0"
                    677:  656  00000bf2 *                                       .text
                    678:  657  0001B98F    dd 8f00000bee                        pushl   $L301
                    679:  658  0001B995    fe 08 effffff9bc                     callf   $8,_writes
                    680:  659  0001B99C                                   #                        write32h( store_regs[index2] );
                    681:  660  0001B99C    0d effffff9b6 50                     movl    _index2,r0
                    682:  661  0001B9A3    dd 40effffff9ae                      pushl   _store_regs[r0]
                    683:  662  0001B9AA    fe 08 effffff9a7                     callf   $8,_write32h
                    684:  663  0001B9B1                                   #                        writes(",  should be = ");
                    685:  664  0001B9B1                                         .data   1
                    686:  665  00000bf2 *                                L302:
                    687:  666  00000bf2 *  2C202073686F756C642062652            .ascii  ",  should be = \0"
                    688:                   03D2000
                    689:  667  00000c02 *                                       .text
                    690:  668  0001B9B1    dd 8f00000bf2                        pushl   $L302
                    691:  669  0001B9B7    fe 08 effffff99a                     callf   $8,_writes
                    692:  670  0001B9BE                                   #                        write32h( load_regs[index2] );
                    693:  671  0001B9BE    0d effffff994 50                     movl    _index2,r0
                    694:  672  0001B9C5    dd 40effffff98c                      pushl   _load_regs[r0]
                    695:  673  0001B9CC    fe 08 effffff985                     callf   $8,_write32h
                    696:  674  0001B9D3                                   #                        writes("\n");
                    697:  675  0001B9D3                                         .data   1
                    698:  676  00000c02 *                                L303:
                    699:  677  00000c02 *  0A00                                 .ascii  "\12\0"
                    700:  678  00000c04 *                                       .text
                    701:  679  0001B9D3    dd 8f00000c02                        pushl   $L303
                    702:  680  0001B9D9    fe 08 effffff978                     callf   $8,_writes
                    703:  681  0001B9E0                                   #                    }
                    704:  682  0001B9E0                                   #                        if ( halt_flg )               /* halt on error? */
                    705:  683  0001B9E0                                  L294:
                    706:  684  0001B9E0    5d effffff972                        tstl    _halt_flg
                    707:  685  0001B9E6    31 09                                jeql    L304
                    708:  686  0001B9E8                                   #                             cmpd_er_halt( BAD_REG_HLT );   /* PC after halt */
                    709:  687  0001B9E8    dd 02                                pushl   $2
                    710:  688  0001B9EA    fe 08 ef000002d9                     callf   $8,_cmpd_er_halt
                    711:  689  0001B9F1                                   #                        if ( loop_on_err ) {
                    712:  690  0001B9F1                                  L304:
                    713:  691  0001B9F1    5d effffff961                        tstl    _loop_on_err
                    714:  692  0001B9F7    31 0a                                jeql    L305
                    715:  693  0001B9F9                                   #                           force_loop = TRUE;         /* set force loop flag */
                    716:  694  0001B9F9    0d 01 effffff958                     movl    $1,_force_loop
                    717:  695  0001BA00                                   #                           asm("brw _cmpd_3_lp1");    /* and loop on error   */
                    718:  696  0001BA00    13 fe94                       brw _cmpd_3_lp1
                    719:  697  0001BA03                                   #                        }   /* end of loop on error    */
                    720:  698  0001BA03                                   #                   }    /* end of register corruption error */
                    721:  699  0001BA03                                  L305:
                    722:  700  0001BA03                                   #         } while ( index++ < max_cmpd_1_index ); /* end of WHILE loop */
                    723:  701  0001BA03                                  L293:
                    724:  702  0001BA03                                  L288:
                    725:  703  0001BA03    0d effffff94f 50                     movl    _index,r0
                    726:  704  0001BA0A    6d effffff948                        incl    _index
                    727:  705  0001BA10    1d 50 effffff941                     cmpl    r0,_max_cmpd_1_index
                    728:  706  0001BA17    81 03 13 fe21                        jlss    L289
                    729:  707  0001BA1C                                  L287:
                    730:  708  0001BA1C                                   # }  /* end of subtest 3 */
                    731:  709  0001BA1C    40                                   ret#2
                    732:  710  0001BA1D                                         .set    L282,0x0
                    733:  711  0001BA1D                                  L284:
                    734:  712  0001BA1D    13 fdfd                              jbr     L285
                    735:  713  0001BA20                                         .data
                    736:  714  00000a98 *                                       .text
                    737:  715  0001BA20                                         .align  1
                    738:  716  0001BA20                                         .globl  _cmpd_4
                    739:  717  0001BA20                                  _cmpd_4:
                    740:  718  0001BA20    0000                                 .word   L306
                    741:  719  0001BA22                                   #   
                    742:  720  0001BA22                                   # 
                    743:  721  0001BA22                                   # 
                    744:  722  0001BA22                                   # /************************************************************************
                    745:  723  0001BA22                                   # *
                    746:  724  0001BA22                                   # *       SUBTEST 4 - Check for accumulator corruption
                    747:  725  0001BA22                                   # *
                    748:  726  0001BA22                                   # ************************************************************************/
                    749:  727  0001BA22                                   # cmpd_4() 
                    750:  728  0001BA22                                   # {
                    751:  729  0001BA22    13 023a                              jbr     L308
                    752:  730  0001BA25                                  L309:
                    753:  731  0001BA25                                   #         force_loop = FALSE;                         /* clear force_loop flg */
                    754:  732  0001BA25    4d effffff92d                        clrl    _force_loop
                    755:  733  0001BA2B                                   #         index = 0;
                    756:  734  0001BA2B    4d effffff927                        clrl    _index
                    757:  735  0001BA31                                   #         do 
                    758:  736  0001BA31                                  L312:
                    759:  737  0001BA31                                   #         {
                    760:  738  0001BA31                                   #              dbl_value_1   = cmpd_1_data[index].one; /* data to load */
                    761:  739  0001BA31    5c 14 effffff920 50                  mull3   $20,_index,r0
                    762:  740  0001BA39    0c 8f00000000 50                     addl2   $_cmpd_1_data,r0
                    763:  741  0001BA40    0d a004 effffff914                   movl    4(r0),_dbl_value_1+4
                    764:  742  0001BA48    0d 60 effffff909                     movl    (r0),_dbl_value_1
                    765:  743  0001BA4F                                   #              dbl_value_2   = cmpd_1_data[index].two;
                    766:  744  0001BA4F    5c 14 effffff902 50                  mull3   $20,_index,r0
                    767:  745  0001BA57    0c 8f00000008 50                     addl2   $_cmpd_1_data+8,r0
                    768:  746  0001BA5E    0d a004 effffff8f6                   movl    4(r0),_dbl_value_2+4
                    769:  747  0001BA66    0d 60 effffff8eb                     movl    (r0),_dbl_value_2
                    770:  748  0001BA6D                                   #              dbl_expected  = cmpd_1_data[index].one; /* expected result */
                    771:  749  0001BA6D    5c 14 effffff8e4 50                  mull3   $20,_index,r0
                    772:  750  0001BA75    0c 8f00000000 50                     addl2   $_cmpd_1_data,r0
                    773:  751  0001BA7C    0d a004 effffff8d8                   movl    4(r0),_dbl_expected+4
                    774:  752  0001BA84    0d 60 effffff8cd                     movl    (r0),_dbl_expected
                    775:  753  0001BA8B                                   #          if( !(dbl_value_1.m & 0x7f800000) ) {    /*   */
                    776:  754  0001BA8B    3d 8f7f800000 effffff8c2             bitl    $2139095040,_dbl_value_1
                    777:  755  0001BA96    21 0c                                jneq    L313
                    778:  756  0001BA98                                   #             dbl_expected.m = 0;                  /*   */
                    779:  757  0001BA98    4d effffff8ba                        clrl    _dbl_expected
                    780:  758  0001BA9E                                   #             dbl_expected.l = 0;             /* ignore bad 0's */
                    781:  759  0001BA9E    4d effffff8b8                        clrl    _dbl_expected+4
                    782:  760  0001BAA4                                   #             }                               /*                */
                    783:  761  0001BAA4                                   #              sgl_value_1  = dbl_value_1.m;
                    784:  762  0001BAA4                                  L313:
                    785:  763  0001BAA4    0d effffff8ae effffff8a9             movl    _dbl_value_1,_sgl_value_1
                    786:  764  0001BAAF                                   #              sgl_value_2  = dbl_value_1.l;
                    787:  765  0001BAAF    0d effffff8a7 effffff89e             movl    _dbl_value_1+4,_sgl_value_2
                    788:  766  0001BABA                                   #              sgl_value_3  = dbl_value_2.m;
                    789:  767  0001BABA    0d effffff898 effffff893             movl    _dbl_value_2,_sgl_value_3
                    790:  768  0001BAC5                                   #              sgl_value_4  = dbl_value_2.l;
                    791:  769  0001BAC5    0d effffff891 effffff888             movl    _dbl_value_2+4,_sgl_value_4
                    792:  770  0001BAD0                                   # /*
                    793:  771  0001BAD0                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    794:  772  0001BAD0                                   #  * The force loop flag is set after the first error.
                    795:  773  0001BAD0                                   # */
                    796:  774  0001BAD0                                   #              asm("_cmpd_4_lp1:");
                    797:  775  0001BAD0                                  _cmpd_4_lp1:
                    798:  776  0001BAD0                                   #              asm("movl _sgl_value_1,r4");       /* r4 = operand #1's MSW */
                    799:  777  0001BAD0    0d effffff882 54              movl _sgl_value_1,r4
                    800:  778  0001BAD7                                   #              asm("movl _sgl_value_2,r5");       /* r5 = operand #1's LSW */
                    801:  779  0001BAD7    0d effffff87b 55              movl _sgl_value_2,r5
                    802:  780  0001BADE                                   #              asm("movl _sgl_value_3,r6");       /* r6 = operand #2's MSW */
                    803:  781  0001BADE    0d effffff874 56              movl _sgl_value_3,r6
                    804:  782  0001BAE5                                   #              asm("movl _sgl_value_4,r7");       /* r7 = operand #2's LSW */
                    805:  783  0001BAE5    0d effffff86d 57              movl _sgl_value_4,r7
                    806:  784  0001BAEC                                   #              asm("ldd r4");                     /* store the accumulator */
                    807:  785  0001BAEC    07 54                         ldd r4
                    808:  786  0001BAEE                                   #              asm("cmpd r6");                    /* test the values       */
                    809:  787  0001BAEE    37 56                         cmpd r6
                    810:  788  0001BAF0                                   #              asm("std r8");                     /* store the accumulator */
                    811:  789  0001BAF0    27 58                         std r8
                    812:  790  0001BAF2                                   #              if( force_loop )                   /* loop?                    */
                    813:  791  0001BAF2    5d effffff860                        tstl    _force_loop
                    814:  792  0001BAF8    31 02                                jeql    L314
                    815:  793  0001BAFA                                   #                    asm("brb _cmpd_4_lp1");;     /* run the loop again       */
                    816:  794  0001BAFA    11 d4                         brb _cmpd_4_lp1
                    817:  795  0001BAFC                                  L314:
                    818:  796  0001BAFC                                   #              asm("movl r8,_sgl_value_5");       /* move results to cache */
                    819:  797  0001BAFC    0d 58 effffff855              movl r8,_sgl_value_5
                    820:  798  0001BB03                                   #              asm("movl r9,_sgl_value_6");
                    821:  799  0001BB03    0d 59 effffff84e              movl r9,_sgl_value_6
                    822:  800  0001BB0A                                   #              if (  (sgl_value_5 != dbl_expected.m) || /* COMPARE the values */
                    823:  801  0001BB0A                                   #                    (sgl_value_6 != dbl_expected.l) ){
                    824:  802  0001BB0A    1d effffff848 effffff843             cmpl    _sgl_value_5,_dbl_expected
                    825:  803  0001BB15    21 10                                jneq    L9999
                    826:  804  0001BB17    1d effffff83b effffff83a             cmpl    _sgl_value_6,_dbl_expected+4
                    827:  805  0001BB22    21 03 13 011e                        jeql    L315
                    828:  806  0001BB27                                  L9999:
                    829:  807  0001BB27                                   #                   errcnt++;                     /* bump the error count */
                    830:  808  0001BB27    6d effffff82b                        incl    _errcnt
                    831:  809  0001BB2D                                   #                   if ( prt_error ) {
                    832:  810  0001BB2D    5d effffff825                        tstl    _prt_error
                    833:  811  0001BB33    21 03 13 00ea                        jeql    L316
                    834:  812  0001BB38                                   #                        writes(" \n");      /* start a new print line   */
                    835:  813  0001BB38                                         .data   1
                    836:  814  00000c04 *                                L317:
                    837:  815  00000c04 *  200A00                               .ascii  " \12\0"
                    838:  816  00000c07 *                                       .text
                    839:  817  0001BB38    dd 8f00000c04                        pushl   $L317
                    840:  818  0001BB3E    fe 08 effffff813                     callf   $8,_writes
                    841:  819  0001BB45                                   #                        writes("cycle: ");
                    842:  820  0001BB45                                         .data   1
                    843:  821  00000c07 *                                L318:
                    844:  822  00000c07 *  6379636C653A2000                     .ascii  "cycle: \0"
                    845:  823  00000c0f *                                       .text
                    846:  824  0001BB45    dd 8f00000c07                        pushl   $L318
                    847:  825  0001BB4B    fe 08 effffff806                     callf   $8,_writes
                    848:  826  0001BB52                                   #                        writed( cycle );
                    849:  827  0001BB52    dd effffff800                        pushl   _cycle
                    850:  828  0001BB58    fe 08 effffff7f9                     callf   $8,_writed
                    851:  829  0001BB5F                                   #                        writes(", CMPD test ");
                    852:  830  0001BB5F                                         .data   1
                    853:  831  00000c0f *                                L319:
                    854:  832  00000c0f *  2C20434D50442074657374200            .ascii  ", CMPD test \0"
                    855:                   0
                    856:  833  00000c1c *                                       .text
                    857:  834  0001BB5F    dd 8f00000c0f                        pushl   $L319
                    858:  835  0001BB65    fe 08 effffff7ec                     callf   $8,_writes
                    859:  836  0001BB6C                                   #                    writed( test_no );
                    860:  837  0001BB6C    dd effffff7e6                        pushl   _test_no
                    861:  838  0001BB72    fe 08 effffff7df                     callf   $8,_writed
                    862:  839  0001BB79                                   #     writes(", subtest 4 - THE ACC WAS MODIFIED\n");
                    863:  840  0001BB79                                         .data   1
                    864:  841  00000c1c *                                L320:
                    865:  842  00000c1c *  2C20737562746573742034202            .ascii  ", subtest 4 - THE ACC WAS MODIFIED\12\0"
                    866:                   D205448452041434320574153
                    867:                   204D4F4449464945440A00
                    868:  843  00000c40 *                                       .text
                    869:  844  0001BB79    dd 8f00000c1c                        pushl   $L320
                    870:  845  0001BB7F    fe 08 effffff7d2                     callf   $8,_writes
                    871:  846  0001BB86                                   #                        print_cmpd_data();
                    872:  847  0001BB86    fe 04 ef000000d5                     callf   $4,_print_cmpd_data
                    873:  848  0001BB8D                                   #                        writes(",  index = ");
                    874:  849  0001BB8D                                         .data   1
                    875:  850  00000c40 *                                L321:
                    876:  851  00000c40 *  2C2020696E646578203D2000             .ascii  ",  index = \0"
                    877:  852  00000c4c *                                       .text
                    878:  853  0001BB8D    dd 8f00000c40                        pushl   $L321
                    879:  854  0001BB93    fe 08 effffff7be                     callf   $8,_writes
                    880:  855  0001BB9A                                   #                    writed( index );
                    881:  856  0001BB9A    dd effffff7b8                        pushl   _index
                    882:  857  0001BBA0    fe 08 effffff7b1                     callf   $8,_writed
                    883:  858  0001BBA7                                   #                    writec('\n');
                    884:  859  0001BBA7    dd 0a                                pushl   $10
                    885:  860  0001BBA9    fe 08 effffff7a8                     callf   $8,_writec
                    886:  861  0001BBB0                                   #                    writes("  final Acc = ");
                    887:  862  0001BBB0                                         .data   1
                    888:  863  00000c4c *                                L323:
                    889:  864  00000c4c *  202066696E616C20416363203            .ascii  "  final Acc = \0"
                    890:                   D2000
                    891:  865  00000c5b *                                       .text
                    892:  866  0001BBB0    dd 8f00000c4c                        pushl   $L323
                    893:  867  0001BBB6    fe 08 effffff79b                     callf   $8,_writes
                    894:  868  0001BBBD                                   #                    write32h( sgl_value_5 );
                    895:  869  0001BBBD    dd effffff795                        pushl   _sgl_value_5
                    896:  870  0001BBC3    fe 08 effffff78e                     callf   $8,_write32h
                    897:  871  0001BBCA                                   #                    writec(' ');
                    898:  872  0001BBCA    dd 20                                pushl   $32
                    899:  873  0001BBCC    fe 08 effffff785                     callf   $8,_writec
                    900:  874  0001BBD3                                   #                    write32h( sgl_value_6 );
                    901:  875  0001BBD3    dd effffff77f                        pushl   _sgl_value_6
                    902:  876  0001BBD9    fe 08 effffff778                     callf   $8,_write32h
                    903:  877  0001BBE0                                   #                    writec('\n');
                    904:  878  0001BBE0    dd 0a                                pushl   $10
                    905:  879  0001BBE2    fe 08 effffff76f                     callf   $8,_writec
                    906:  880  0001BBE9                                   #                    writes("   expected = ");
                    907:  881  0001BBE9                                         .data   1
                    908:  882  00000c5b *                                L324:
                    909:  883  00000c5b *  2020206578706563746564203            .ascii  "   expected = \0"
                    910:                   D2000
                    911:  884  00000c6a *                                       .text
                    912:  885  0001BBE9    dd 8f00000c5b                        pushl   $L324
                    913:  886  0001BBEF    fe 08 effffff762                     callf   $8,_writes
                    914:  887  0001BBF6                                   #                    write32h( dbl_expected.m );
                    915:  888  0001BBF6    dd effffff75c                        pushl   _dbl_expected
                    916:  889  0001BBFC    fe 08 effffff755                     callf   $8,_write32h
                    917:  890  0001BC03                                   #                    writec(' ');
                    918:  891  0001BC03    dd 20                                pushl   $32
                    919:  892  0001BC05    fe 08 effffff74c                     callf   $8,_writec
                    920:  893  0001BC0C                                   #                    write32h( dbl_expected.l );
                    921:  894  0001BC0C    dd effffff74a                        pushl   _dbl_expected+4
                    922:  895  0001BC12    fe 08 effffff73f                     callf   $8,_write32h
                    923:  896  0001BC19                                   #                    writec('\n');
                    924:  897  0001BC19    dd 0a                                pushl   $10
                    925:  898  0001BC1B    fe 08 effffff736                     callf   $8,_writec
                    926:  899  0001BC22                                   #                    }
                    927:  900  0001BC22                                   #                   if ( halt_flg )               /* halt on error? */
                    928:  901  0001BC22                                  L316:
                    929:  902  0001BC22    5d effffff730                        tstl    _halt_flg
                    930:  903  0001BC28    31 09                                jeql    L325
                    931:  904  0001BC2A                                   #                        cmpd_er_halt( BAD_ACC_HLT ); /* halt on the error */
                    932:  905  0001BC2A    dd 01                                pushl   $1
                    933:  906  0001BC2C    fe 08 ef00000097                     callf   $8,_cmpd_er_halt
                    934:  907  0001BC33                                   #                   if ( loop_on_err ) {
                    935:  908  0001BC33                                  L325:
                    936:  909  0001BC33    5d effffff71f                        tstl    _loop_on_err
                    937:  910  0001BC39    31 0a                                jeql    L326
                    938:  911  0001BC3B                                   #                      force_loop = TRUE;         /* set the force loop flag */
                    939:  912  0001BC3B    0d 01 effffff716                     movl    $1,_force_loop
                    940:  913  0001BC42                                   #                      asm("brw _cmpd_4_lp1");    /* and loop on the error   */
                    941:  914  0001BC42    13 fe8b                       brw _cmpd_4_lp1
                    942:  915  0001BC45                                   #                   }   /* end of loop on error    */
                    943:  916  0001BC45                                   #              }   /* end of compare error    */
                    944:  917  0001BC45                                  L326:
                    945:  918  0001BC45                                   #         } while ( index++ < max_cmpd_1_index ); /* end of WHILE loop */
                    946:  919  0001BC45                                  L315:
                    947:  920  0001BC45                                  L311:
                    948:  921  0001BC45    0d effffff70d 50                     movl    _index,r0
                    949:  922  0001BC4C    6d effffff706                        incl    _index
                    950:  923  0001BC52    1d 50 effffff6ff                     cmpl    r0,_max_cmpd_1_index
                    951:  924  0001BC59    81 03 13 fdd3                        jlss    L312
                    952:  925  0001BC5E                                  L310:
                    953:  926  0001BC5E                                   # }  /* end of subtest 4 */
                    954:  927  0001BC5E    40                                   ret#2
                    955:  928  0001BC5F                                         .set    L306,0x0
                    956:  929  0001BC5F                                  L308:
                    957:  930  0001BC5F    13 fdc3                              jbr     L309
                    958:  931  0001BC62                                         .data
                    959:  932  00000a98 *                                       .text
                    960:  933  0001BC62                                         .align  1
                    961:  934  0001BC62                                         .globl  _print_cmpd_data
                    962:  935  0001BC62                                  _print_cmpd_data:
                    963:  936  0001BC62    0000                                 .word   L327
                    964:  937  0001BC64                                   #   
                    965:  938  0001BC64                                   # 
                    966:  939  0001BC64                                   # 
                    967:  940  0001BC64                                   # /**************************************************************************
                    968:  941  0001BC64                                   # *
                    969:  942  0001BC64                                   # *       PRINT THE DATA AND STORE RESULTS
                    970:  943  0001BC64                                   # *
                    971:  944  0001BC64                                   # * initial Acc = xxxxxxxx xxxxxxxx,  operand = xxxxxxxx xxxxxxxx
                    972:  945  0001BC64                                   # **************************************************************************/
                    973:  946  0001BC64                                   # print_cmpd_data()
                    974:  947  0001BC64                                   # {
                    975:  948  0001BC64    11 61                                jbr     L329
                    976:  949  0001BC66                                  L330:
                    977:  950  0001BC66                                   #         writes("initial Acc = ");
                    978:  951  0001BC66                                         .data   1
                    979:  952  00000c6a *                                L331:
                    980:  953  00000c6a *  696E697469616C20416363203            .ascii  "initial Acc = \0"
                    981:                   D2000
                    982:  954  00000c79 *                                       .text
                    983:  955  0001BC66    dd 8f00000c6a                        pushl   $L331
                    984:  956  0001BC6C    fe 08 effffff6e5                     callf   $8,_writes
                    985:  957  0001BC73                                   #         write32h( dbl_value_1.m );
                    986:  958  0001BC73    dd effffff6df                        pushl   _dbl_value_1
                    987:  959  0001BC79    fe 08 effffff6d8                     callf   $8,_write32h
                    988:  960  0001BC80                                   #         writec(' ');
                    989:  961  0001BC80    dd 20                                pushl   $32
                    990:  962  0001BC82    fe 08 effffff6cf                     callf   $8,_writec
                    991:  963  0001BC89                                   #         write32h( dbl_value_1.l );
                    992:  964  0001BC89    dd effffff6cd                        pushl   _dbl_value_1+4
                    993:  965  0001BC8F    fe 08 effffff6c2                     callf   $8,_write32h
                    994:  966  0001BC96                                   #         writes("  operand = ");
                    995:  967  0001BC96                                         .data   1
                    996:  968  00000c79 *                                L332:
                    997:  969  00000c79 *  20206F706572616E64203D200            .ascii  "  operand = \0"
                    998:                   0
                    999:  970  00000c86 *                                       .text
                   1000:  971  0001BC96    dd 8f00000c79                        pushl   $L332
                   1001:  972  0001BC9C    fe 08 effffff6b5                     callf   $8,_writes
                   1002:  973  0001BCA3                                   #         write32h( dbl_value_2.m );
                   1003:  974  0001BCA3    dd effffff6af                        pushl   _dbl_value_2
                   1004:  975  0001BCA9    fe 08 effffff6a8                     callf   $8,_write32h
                   1005:  976  0001BCB0                                   #         writec(' ');
                   1006:  977  0001BCB0    dd 20                                pushl   $32
                   1007:  978  0001BCB2    fe 08 effffff69f                     callf   $8,_writec
                   1008:  979  0001BCB9                                   #         write32h( dbl_value_2.l );
                   1009:  980  0001BCB9    dd effffff69d                        pushl   _dbl_value_2+4
                   1010:  981  0001BCBF    fe 08 effffff692                     callf   $8,_write32h
                   1011:  982  0001BCC6                                   # }
                   1012:  983  0001BCC6    40                                   ret#2
                   1013:  984  0001BCC7                                         .set    L327,0x0
                   1014:  985  0001BCC7                                  L329:
                   1015:  986  0001BCC7    11 9d                                jbr     L330
                   1016:  987  0001BCC9                                         .data
                   1017:  988  00000a98 *                                       .text
                   1018:  989  0001BCC9    00                                   .align  1
                   1019:  990  0001BCCA                                         .globl  _cmpd_er_halt
                   1020:  991  0001BCCA                                  _cmpd_er_halt:
                   1021:  992  0001BCCA    0000                                 .word   L333
                   1022:  993  0001BCCC                                   #   
                   1023:  994  0001BCCC                                   # 
                   1024:  995  0001BCCC                                   # 
                   1025:  996  0001BCCC                                   # /**************************************************************************
                   1026:  997  0001BCCC                                   # *
                   1027:  998  0001BCCC                                   # *               HALT ON ERROR ROUTINE 
                   1028:  999  0001BCCC                                   # *
                   1029: 1000  0001BCCC                                   # **************************************************************************/
                   1030: 1001  0001BCCC                                   # cmpd_er_halt( halt_code )
                   1031: 1002  0001BCCC                                   # int halt_code;
                   1032: 1003  0001BCCC                                   # {
                   1033: 1004  0001BCCC    13 011c                              jbr     L335
                   1034: 1005  0001BCCF                                  L336:
                   1035: 1006  0001BCCF                                   #         sgl_value_1 = dbl_value_1.m;
                   1036: 1007  0001BCCF    0d effffff683 effffff67e             movl    _dbl_value_1,_sgl_value_1
                   1037: 1008  0001BCDA                                   #         sgl_value_2 = dbl_value_1.l;
                   1038: 1009  0001BCDA    0d effffff67c effffff673             movl    _dbl_value_1+4,_sgl_value_2
                   1039: 1010  0001BCE5                                   #         sgl_value_3 = dbl_value_2.m;
                   1040: 1011  0001BCE5    0d effffff66d effffff668             movl    _dbl_value_2,_sgl_value_3
                   1041: 1012  0001BCF0                                   #         sgl_value_4 = dbl_value_2.l;
                   1042: 1013  0001BCF0    0d effffff666 effffff65d             movl    _dbl_value_2+4,_sgl_value_4
                   1043: 1014  0001BCFB                                   #         sgl_value_5 = dbl_st_acc.m;
                   1044: 1015  0001BCFB    0d effffff657 effffff652             movl    _dbl_st_acc,_sgl_value_5
                   1045: 1016  0001BD06                                   #         sgl_value_6 = dbl_st_acc.l;
                   1046: 1017  0001BD06    0d effffff650 effffff647             movl    _dbl_st_acc+4,_sgl_value_6
                   1047: 1018  0001BD11                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
                   1048: 1019  0001BD11    0d ad04 effffff63f                   movl    4(fp),_sgl_dummy1
                   1049: 1020  0001BD19                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
                   1050: 1021  0001BD19    0d effffff639 50              movl _test_no,r0
                   1051: 1022  0001BD20                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
                   1052: 1023  0001BD20    0d effffff632 51              movl _subtest,r1
                   1053: 1024  0001BD27                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
                   1054: 1025  0001BD27    0d effffff62b 52              movl _sgl_dummy1,r2
                   1055: 1026  0001BD2E                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
                   1056: 1027  0001BD2E    0d effffff624 53              movl _cycle,r3
                   1057: 1028  0001BD35                                   #         asm("movl _sgl_value_1,r4");            /* r4  = MS operand 1    */
                   1058: 1029  0001BD35    0d effffff61d 54              movl _sgl_value_1,r4
                   1059: 1030  0001BD3C                                   #         asm("movl _sgl_value_2,r5");            /* r5  = LS operand 1    */
                   1060: 1031  0001BD3C    0d effffff616 55              movl _sgl_value_2,r5
                   1061: 1032  0001BD43                                   #         asm("movl _sgl_value_3,r6");            /* r6  = MS operand 2    */
                   1062: 1033  0001BD43    0d effffff60f 56              movl _sgl_value_3,r6
                   1063: 1034  0001BD4A                                   #         asm("movl _sgl_value_4,r7");            /* r7  = MS operand 2    */
                   1064: 1035  0001BD4A    0d effffff608 57              movl _sgl_value_4,r7
                   1065: 1036  0001BD51                                   #         asm("movl _psl_val,r8");                /* r8  = actual PSL      */
                   1066: 1037  0001BD51    0d effffff601 58              movl _psl_val,r8
                   1067: 1038  0001BD58                                   #         if( halt_code == BAD_ACC_HLT ) {
                   1068: 1039  0001BD58    1d ad04 01                           cmpl    4(fp),$1
                   1069: 1040  0001BD5C    21 34                                jneq    L337
                   1070: 1041  0001BD5E                                   #              sgl_value_1 = dbl_expected.m;
                   1071: 1042  0001BD5E    0d effffff5f4 effffff5ef             movl    _dbl_expected,_sgl_value_1
                   1072: 1043  0001BD69                                   #              sgl_value_2 = dbl_expected.l;
                   1073: 1044  0001BD69    0d effffff5ed effffff5e4             movl    _dbl_expected+4,_sgl_value_2
                   1074: 1045  0001BD74                                   #              asm("movl _sgl_value_5,r9");       /* r9  = MS stored       */
                   1075: 1046  0001BD74    0d effffff5de 59              movl _sgl_value_5,r9
                   1076: 1047  0001BD7B                                   #              asm("movl _sgl_value_6,r10");      /* r10 = LS stored       */
                   1077: 1048  0001BD7B    0d effffff5d7 5a              movl _sgl_value_6,r10
                   1078: 1049  0001BD82                                   #              asm("movl _sgl_value_1,r11");      /* r11 = MS expected     */
                   1079: 1050  0001BD82    0d effffff5d0 5b              movl _sgl_value_1,r11
                   1080: 1051  0001BD89                                   #              asm("movl _sgl_value_2,r12");      /* r12 = LS expected     */
                   1081: 1052  0001BD89    0d effffff5c9 5c              movl _sgl_value_2,r12
                   1082: 1053  0001BD90                                   #         } else 
                   1083: 1054  0001BD90    11 57                                jbr     L338
                   1084: 1055  0001BD92                                  L337:
                   1085: 1056  0001BD92                                   #           if( halt_code == BAD_REG_HLT ) {
                   1086: 1057  0001BD92    1d ad04 02                           cmpl    4(fp),$2
                   1087: 1058  0001BD96    21 3d                                jneq    L339
                   1088: 1059  0001BD98                                   #              sgl_dummy1 = load_regs[index2];
                   1089: 1060  0001BD98    0d effffff5ba 50                     movl    _index2,r0
                   1090: 1061  0001BD9F    0d 40effffff5b2                      movl    _load_regs[r0],_sgl_dummy1
                   1091:                   effffff5ad 
                   1092: 1062  0001BDAB                                   #              sgl_dummy2 = store_regs[index2];
                   1093: 1063  0001BDAB    0d effffff5a7 50                     movl    _index2,r0
                   1094: 1064  0001BDB2    0d 40effffff59f                      movl    _store_regs[r0],_sgl_dummy2
                   1095:                   effffff59a 
                   1096: 1065  0001BDBE                                   #              asm("movl _index2,r9");            /* r9  = bad register #  */
                   1097: 1066  0001BDBE    0d effffff594 59              movl _index2,r9
                   1098: 1067  0001BDC5                                   #              asm("movl _sgl_dummy2,r10");       /* r10 = actual value    */
                   1099: 1068  0001BDC5    0d effffff58d 5a              movl _sgl_dummy2,r10
                   1100: 1069  0001BDCC                                   #              asm("movl _sgl_dummy1,r11");       /* r11 = expected value  */
                   1101: 1070  0001BDCC    0d effffff586 5b              movl _sgl_dummy1,r11
                   1102: 1071  0001BDD3                                   #         } else
                   1103: 1072  0001BDD3    11 14                                jbr     L340
                   1104: 1073  0001BDD5                                  L339:
                   1105: 1074  0001BDD5                                   #           if( halt_code == BAD_PSL_HLT ) {
                   1106: 1075  0001BDD5    1d ad04 03                           cmpl    4(fp),$3
                   1107: 1076  0001BDD9    21 0e                                jneq    L341
                   1108: 1077  0001BDDB                                   #              asm("movl _exp_psl,r9");           /* r9  = expected PSL    */
                   1109: 1078  0001BDDB    0d effffff577 59              movl _exp_psl,r9
                   1110: 1079  0001BDE2                                   #              asm("movl _index,r10");            /* r10 = data index      */
                   1111: 1080  0001BDE2    0d effffff570 5a              movl _index,r10
                   1112: 1081  0001BDE9                                   #         };
                   1113: 1082  0001BDE9                                  L341:
                   1114: 1083  0001BDE9                                  L340:
                   1115: 1084  0001BDE9                                  L338:
                   1116: 1085  0001BDE9                                   #         asm("halt");                            /* HALT ...              */
                   1117: 1086  0001BDE9    00                            halt
                   1118: 1087  0001BDEA                                   # }  
                   1119: 1088  0001BDEA    40                                   ret#2
                   1120: 1089  0001BDEB                                         .set    L333,0x0
                   1121: 1090  0001BDEB                                  L335:
                   1122: 1091  0001BDEB    13 fee1                              jbr     L336
                   1123: 1092  0001BDEE                                         .data
                   1124: 1092  00037146                                         .data

unix.superglobalmegacorp.com

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