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

1.1       root        1:    1  00000000                                  LL0:
                      2:    2  00000000                                         .data
                      3:    3  00000c20 *                                       .text
                      4:    4  00000000                                         .align  1
                      5:    5  00000000                                         .globl  _ldd
                      6:    6  00000000                                  _ldd:
                      7:    7  00015C40    0000                                 .word   L215
                      8:    8  00015C42                                   # 
                      9:    9  00015C42                                   # #include "fpp_defs.h"
                     10:   10  00015C42                                   # 
                     11:   11  00015C42                                   # 
                     12:   12  00015C42                                   # /*****************************************************************************
                     13:   13  00015C42                                   # *
                     14:   14  00015C42                                   # *               LDD_STD - DOUBLE PRECISION FLOATING POINT LOAD_STORE  TEST
                     15:   15  00015C42                                   # *
                     16:   16  00015C42                                   # *****************************************************************************/
                     17:   17  00015C42                                   # ldd()
                     18:   18  00015C42                                   # {
                     19:   19  00015C42    11 4f                                jbr     L217
                     20:   20  00015C44                                  L218:
                     21:   21  00015C44                                   #         asm(".globl _ldd_t");
                     22:   22  00015C44                                  .globl _ldd_t
                     23:   23  00015C44                                   #         asm("_ldd_t:");                        /* entry address              */
                     24:   24  00015C44                                  _ldd_t:
                     25:   25  00015C44                                   #         if( ( cycle == 1 ) && ( prt_hdrs ) )   /* print headers on 1st pass  */
                     26:   26  00015C44    1d effffffff6 01                     cmpl    _cycle,$1
                     27:   27  00015C4B    21 15                                jneq    L219
                     28:   28  00015C4D    5d efffffffed                        tstl    _prt_hdrs
                     29:   29  00015C53    31 0d                                jeql    L219
                     30:   30  00015C55                                   #            writes("\n LDD_STD");
                     31:   31  00015C55                                         .data   1
                     32:   32  00000c20 *                                L221:
                     33:   33  00000c20 *  0A204C44445F53544400                 .ascii  "\12 LDD_STD\0"
                     34:   34  00000c2a *                                       .text
                     35:   35  00015C55    dd 8f00000c20                        pushl   $L221
                     36:   36  00015C5B    fe 08 efffffffde                     callf   $8,_writes
                     37:   37  00015C62                                   #         ldd_1();                               /* load through a register    */
                     38:   38  00015C62                                  L219:
                     39:   39  00015C62    fe 04 ef0000002d                     callf   $4,_ldd_1
                     40:   40  00015C69                                   #         ldd_2();                               /* load through the cache     */
                     41:   41  00015C69    fe 04 ef000001ee                     callf   $4,_ldd_2
                     42:   42  00015C70                                   #         ldd_3();                               /* register stability ldd     */
                     43:   43  00015C70    fe 04 ef00000385                     callf   $4,_ldd_3
                     44:   44  00015C77                                   #         ldd_4();                               /* register stability std     */
                     45:   45  00015C77    fe 04 ef0000054e                     callf   $4,_ldd_4
                     46:   46  00015C7E                                   #         ldd_5();                               /* PSL stability test ldd     */
                     47:   47  00015C7E    fe 04 ef000006e5                     callf   $4,_ldd_5
                     48:   48  00015C85                                   #         ldd_6();                               /* PSL stability test std     */
                     49:   49  00015C85    fe 04 ef0000087e                     callf   $4,_ldd_6
                     50:   50  00015C8C                                   #         asm("jmp *return");                    /* return to the test monitor */
                     51:   51  00015C8C    71 ffffffffae                 jmp *return
                     52:   52  00015C92                                   # }
                     53:   53  00015C92    40                                   ret#2
                     54:   54  00015C93                                         .set    L215,0x0
                     55:   55  00015C93                                  L217:
                     56:   56  00015C93    11 af                                jbr     L218
                     57:   57  00015C95                                         .data
                     58:   58  00000c20 *                                       .text
                     59:   59  00015C95    00                                   .align  1
                     60:   60  00015C96                                         .globl  _ldd_1
                     61:   61  00015C96                                  _ldd_1:
                     62:   62  00015C96    0000                                 .word   L228
                     63:   63  00015C98                                   #  
                     64:   64  00015C98                                   # 
                     65:   65  00015C98                                   # 
                     66:   66  00015C98                                   # /************************************************************************
                     67:   67  00015C98                                   # *
                     68:   68  00015C98                                   # *               SUBTEST 1 - load through a register
                     69:   69  00015C98                                   # *
                     70:   70  00015C98                                   # ************************************************************************/
                     71:   71  00015C98                                   # ldd_1() 
                     72:   72  00015C98                                   # {
                     73:   73  00015C98    13 01bf                              jbr     L230
                     74:   74  00015C9B                                  L231:
                     75:   75  00015C9B                                   #         force_loop = FALSE;
                     76:   76  00015C9B    4d efffffff9f                        clrl    _force_loop
                     77:   77  00015CA1                                   #         subtest = 1;
                     78:   78  00015CA1    0d 01 efffffff98                     movl    $1,_subtest
                     79:   79  00015CA8                                   #         for( index = 0; index < max_ldd_1_index; index++ ) {
                     80:   80  00015CA8    4d efffffff92                        clrl    _index
                     81:   81  00015CAE                                  L234:
                     82:   82  00015CAE    1d efffffff8c efffffff87             cmpl    _index,_max_ldd_1_index
                     83:   83  00015CB9    91 03 13 019b                        jgeq    L233
                     84:   84  00015CBE                                   #              dbl_ld_acc   = ldd_1_data[index].ld;       /* get the operand  */
                     85:   85  00015CBE    48 04 efffffff7b 50                  shll    $4,_index,r0
                     86:   86  00015CC6    0c 8f00000000 50                     addl2   $_ldd_1_data,r0
                     87:   87  00015CCD    0d a004 efffffff6f                   movl    4(r0),_dbl_ld_acc+4
                     88:   88  00015CD5    0d 60 efffffff64                     movl    (r0),_dbl_ld_acc
                     89:   89  00015CDC                                   #          if( dbl_ld_acc.m & 0x7f800000 )
                     90:   90  00015CDC    3d 8f7f800000 efffffff59             bitl    $2139095040,_dbl_ld_acc
                     91:   91  00015CE7    31 18                                jeql    L235
                     92:   92  00015CE9                                   #                   dbl_expected = dbl_ld_acc;                /* expected = loaded */
                     93:   93  00015CE9    0d efffffff55 efffffff50             movl    _dbl_ld_acc+4,_dbl_expected+4
                     94:   94  00015CF4    0d efffffff46 efffffff41             movl    _dbl_ld_acc,_dbl_expected
                     95:   95  00015CFF                                   #              else {
                     96:   96  00015CFF    11 0c                                jbr     L236
                     97:   97  00015D01                                  L235:
                     98:   98  00015D01                                   #                   dbl_expected.m = 0;                       /* expect a '0'  */
                     99:   99  00015D01    4d efffffff39                        clrl    _dbl_expected
                    100:  100  00015D07                                   #                   dbl_expected.l = 0;
                    101:  101  00015D07    4d efffffff37                        clrl    _dbl_expected+4
                    102:  102  00015D0D                                   #          }
                    103:  103  00015D0D                                  L236:
                    104:  104  00015D0D                                   #          sgl_value_1  = dbl_ld_acc.m;
                    105:  105  00015D0D    0d efffffff2d efffffff28             movl    _dbl_ld_acc,_sgl_value_1
                    106:  106  00015D18                                   #              sgl_value_2  = dbl_ld_acc.l;
                    107:  107  00015D18    0d efffffff26 efffffff1d             movl    _dbl_ld_acc+4,_sgl_value_2
                    108:  108  00015D23                                   # /*
                    109:  109  00015D23                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    110:  110  00015D23                                   #  * The force loop flag is set after the first error.
                    111:  111  00015D23                                   # */
                    112:  112  00015D23                                   #              asm("_ldd_1_lp1:");
                    113:  113  00015D23                                  _ldd_1_lp1:
                    114:  114  00015D23                                   #              asm("movl _sgl_value_1,r4");       /* move the operand to r4/r5 */
                    115:  115  00015D23    0d efffffff17 54              movl _sgl_value_1,r4
                    116:  116  00015D2A                                   #              asm("movl _sgl_value_2,r5");
                    117:  117  00015D2A    0d efffffff10 55              movl _sgl_value_2,r5
                    118:  118  00015D31                                   #              asm("ldd r4");                     /* load the value          */
                    119:  119  00015D31    07 54                         ldd r4
                    120:  120  00015D33                                   #              asm("nop");
                    121:  121  00015D33    10                            nop
                    122:  122  00015D34                                   #              asm("std r8");                     /* store the result in R8  */
                    123:  123  00015D34    27 58                         std r8
                    124:  124  00015D36                                   #              if( force_loop )
                    125:  125  00015D36    5d efffffff04                        tstl    _force_loop
                    126:  126  00015D3C    31 02                                jeql    L237
                    127:  127  00015D3E                                   #                   asm("brb _ldd_1_lp1");;       /* loop on the error       */
                    128:  128  00015D3E    11 e3                         brb _ldd_1_lp1
                    129:  129  00015D40                                  L237:
                    130:  130  00015D40                                   # /* 
                    131:  131  00015D40                                   #  * end error loop - test the results
                    132:  132  00015D40                                   # */
                    133:  133  00015D40                                   #              asm("movl r8,_dbl_st_acc");       /* save the stored data   */
                    134:  134  00015D40    0d 58 effffffef9              movl r8,_dbl_st_acc
                    135:  135  00015D47                                   #              asm("movl r9,_dbl_st_acc+4");
                    136:  136  00015D47    0d 59 effffffef6              movl r9,_dbl_st_acc+4
                    137:  137  00015D4E                                   #              if( ( dbl_st_acc.m != dbl_expected.m ) ||  /* COMPARE the    */
                    138:  138  00015D4E                                   #                  ( dbl_st_acc.l != dbl_expected.l )  ) {   /* values         */
                    139:  139  00015D4E    1d effffffeec effffffee7             cmpl    _dbl_st_acc,_dbl_expected
                    140:  140  00015D59    21 10                                jneq    L9999
                    141:  141  00015D5B    1d effffffee3 effffffede             cmpl    _dbl_st_acc+4,_dbl_expected+4
                    142:  142  00015D66    21 03 13 00e5                        jeql    L238
                    143:  143  00015D6B                                  L9999:
                    144:  144  00015D6B                                   #                    errcnt++;                    /* bump the error count   */
                    145:  145  00015D6B    6d effffffecf                        incl    _errcnt
                    146:  146  00015D71                                   #                    if( prt_error ) {
                    147:  147  00015D71    5d effffffec9                        tstl    _prt_error
                    148:  148  00015D77    21 03 13 00b1                        jeql    L239
                    149:  149  00015D7C                                   #                         writes(" \n");      /* start a new print line */
                    150:  150  00015D7C                                         .data   1
                    151:  151  00000c2a *                                L240:
                    152:  152  00000c2a *  200A00                               .ascii  " \12\0"
                    153:  153  00000c2d *                                       .text
                    154:  154  00015D7C    dd 8f00000c2a                        pushl   $L240
                    155:  155  00015D82    fe 08 effffffeb7                     callf   $8,_writes
                    156:  156  00015D89                                   #                         writes("cycle: ");
                    157:  157  00015D89                                         .data   1
                    158:  158  00000c2d *                                L241:
                    159:  159  00000c2d *  6379636C653A2000                     .ascii  "cycle: \0"
                    160:  160  00000c35 *                                       .text
                    161:  161  00015D89    dd 8f00000c2d                        pushl   $L241
                    162:  162  00015D8F    fe 08 effffffeaa                     callf   $8,_writes
                    163:  163  00015D96                                   #                         writed( cycle );
                    164:  164  00015D96    dd effffffea4                        pushl   _cycle
                    165:  165  00015D9C    fe 08 effffffe9d                     callf   $8,_writed
                    166:  166  00015DA3                                   #                         writes("  LDD_STD test ");
                    167:  167  00015DA3                                         .data   1
                    168:  168  00000c35 *                                L243:
                    169:  169  00000c35 *  20204C44445F5354442074657            .ascii  "  LDD_STD test \0"
                    170:                   3742000
                    171:  170  00000c45 *                                       .text
                    172:  171  00015DA3    dd 8f00000c35                        pushl   $L243
                    173:  172  00015DA9    fe 08 effffffe90                     callf   $8,_writes
                    174:  173  00015DB0                                   #                     writed( test_no );
                    175:  174  00015DB0    dd effffffe8a                        pushl   _test_no
                    176:  175  00015DB6    fe 08 effffffe83                     callf   $8,_writed
                    177:  176  00015DBD                                   #                     writes(", subtest 1 (Reg. Data) - BAD FINAL ACC\n");
                    178:  177  00015DBD                                         .data   1
                    179:  178  00000c45 *                                L244:
                    180:  179  00000c45 *  2C20737562746573742031202            .ascii  ", subtest 1 (Reg. Data) - BAD FINAL ACC\12\0"
                    181:                   85265672E204461746129202D
                    182:                   204241442046494E414C20414
                    183:                   3430A00
                    184:  180  00000c6e *                                       .text
                    185:  181  00015DBD    dd 8f00000c45                        pushl   $L244
                    186:  182  00015DC3    fe 08 effffffe76                     callf   $8,_writes
                    187:  183  00015DCA                                   #                         print_ldd_data();
                    188:  184  00015DCA    fe 04 ef0000091d                     callf   $4,_print_ldd_data
                    189:  185  00015DD1                                   #                         writes(", index = ");
                    190:  186  00015DD1                                         .data   1
                    191:  187  00000c6e *                                L246:
                    192:  188  00000c6e *  2C20696E646578203D2000               .ascii  ", index = \0"
                    193:  189  00000c79 *                                       .text
                    194:  190  00015DD1    dd 8f00000c6e                        pushl   $L246
                    195:  191  00015DD7    fe 08 effffffe62                     callf   $8,_writes
                    196:  192  00015DDE                                   #                         writed( index );
                    197:  193  00015DDE    dd effffffe5c                        pushl   _index
                    198:  194  00015DE4    fe 08 effffffe55                     callf   $8,_writed
                    199:  195  00015DEB                                   #                         writec('\n');
                    200:  196  00015DEB    dd 0a                                pushl   $10
                    201:  197  00015DED    fe 08 effffffe4c                     callf   $8,_writec
                    202:  198  00015DF4                                   #     writes("                                Acc expected = ");
                    203:  199  00015DF4                                         .data   1
                    204:  200  00000c79 *                                L248:
                    205:  201  00000c79 *  2020202020202020202020202            .ascii  "                                Acc expected = \0"
                    206:                   0202020202020202020202020
                    207:                   2020202020202041636320657
                    208:                   8706563746564203D2000
                    209:  202  00000ca9 *                                       .text
                    210:  203  00015DF4    dd 8f00000c79                        pushl   $L248
                    211:  204  00015DFA    fe 08 effffffe3f                     callf   $8,_writes
                    212:  205  00015E01                                   #                         write32h( dbl_expected.m );
                    213:  206  00015E01    dd effffffe39                        pushl   _dbl_expected
                    214:  207  00015E07    fe 08 effffffe32                     callf   $8,_write32h
                    215:  208  00015E0E                                   #                     writec(' ');
                    216:  209  00015E0E    dd 20                                pushl   $32
                    217:  210  00015E10    fe 08 effffffe29                     callf   $8,_writec
                    218:  211  00015E17                                   #                     write32h(dbl_expected.l );
                    219:  212  00015E17    dd effffffe27                        pushl   _dbl_expected+4
                    220:  213  00015E1D    fe 08 effffffe1c                     callf   $8,_write32h
                    221:  214  00015E24                                   #                     writec('\n');
                    222:  215  00015E24    dd 0a                                pushl   $10
                    223:  216  00015E26    fe 08 effffffe13                     callf   $8,_writec
                    224:  217  00015E2D                                   #                }
                    225:  218  00015E2D                                   #                    if( halt_flg ) 
                    226:  219  00015E2D                                  L239:
                    227:  220  00015E2D    5d effffffe0d                        tstl    _halt_flg
                    228:  221  00015E33    31 09                                jeql    L250
                    229:  222  00015E35                                   #                         ldd_er_halt( BAD_ACC_HLT );    /* halt on the error */
                    230:  223  00015E35    dd 01                                pushl   $1
                    231:  224  00015E37    fe 08 ef00000918                     callf   $8,_ldd_er_halt
                    232:  225  00015E3E                                   #                    if( loop_on_err ) {
                    233:  226  00015E3E                                  L250:
                    234:  227  00015E3E    5d effffffdfc                        tstl    _loop_on_err
                    235:  228  00015E44    31 0a                                jeql    L252
                    236:  229  00015E46                                   #                         force_loop = TRUE;       /* set the force loop flag */
                    237:  230  00015E46    0d 01 effffffdf3                     movl    $1,_force_loop
                    238:  231  00015E4D                                   #                         asm("brw _ldd_1_lp1");;  /* and loop on the error   */
                    239:  232  00015E4D    13 fed3                       brw _ldd_1_lp1
                    240:  233  00015E50                                   #                    } /* end of loop on error */
                    241:  234  00015E50                                   #               }   /* end of compare error */
                    242:  235  00015E50                                  L252:
                    243:  236  00015E50                                   #         }  /* end of WHILE loop */
                    244:  237  00015E50                                  L238:
                    245:  238  00015E50                                  L232:
                    246:  239  00015E50    6d effffffdea                        incl    _index
                    247:  240  00015E56    13 fe55                              jbr     L234
                    248:  241  00015E59                                  L233:
                    249:  242  00015E59                                   # }  /* end of subtest 1 */
                    250:  243  00015E59    40                                   ret#2
                    251:  244  00015E5A                                         .set    L228,0x0
                    252:  245  00015E5A                                  L230:
                    253:  246  00015E5A    13 fe3e                              jbr     L231
                    254:  247  00015E5D                                         .data
                    255:  248  00000c20 *                                       .text
                    256:  249  00015E5D    00                                   .align  1
                    257:  250  00015E5E                                         .globl  _ldd_2
                    258:  251  00015E5E                                  _ldd_2:
                    259:  252  00015E5E    0000                                 .word   L253
                    260:  253  00015E60                                   #  
                    261:  254  00015E60                                   # 
                    262:  255  00015E60                                   # 
                    263:  256  00015E60                                   # /************************************************************************
                    264:  257  00015E60                                   # *
                    265:  258  00015E60                                   # *               SUBTEST 2 - load through cache
                    266:  259  00015E60                                   # *
                    267:  260  00015E60                                   # ************************************************************************/
                    268:  261  00015E60                                   # ldd_2() 
                    269:  262  00015E60                                   # {
                    270:  263  00015E60    13 0195                              jbr     L255
                    271:  264  00015E63                                  L256:
                    272:  265  00015E63                                   #         force_loop = FALSE;
                    273:  266  00015E63    4d effffffdd7                        clrl    _force_loop
                    274:  267  00015E69                                   #         subtest = 2;
                    275:  268  00015E69    0d 02 effffffdd0                     movl    $2,_subtest
                    276:  269  00015E70                                   #         for( index = 0; index < max_ldd_1_index; index++ ) {
                    277:  270  00015E70    4d effffffdca                        clrl    _index
                    278:  271  00015E76                                  L259:
                    279:  272  00015E76    1d effffffdc4 effffffdbf             cmpl    _index,_max_ldd_1_index
                    280:  273  00015E81    91 03 13 0171                        jgeq    L258
                    281:  274  00015E86                                   #              dbl_ld_acc = ldd_1_data[index].ld;       /* get the operand     */
                    282:  275  00015E86    48 04 effffffdb3 50                  shll    $4,_index,r0
                    283:  276  00015E8E    0c 8f00000000 50                     addl2   $_ldd_1_data,r0
                    284:  277  00015E95    0d a004 effffffda7                   movl    4(r0),_dbl_ld_acc+4
                    285:  278  00015E9D    0d 60 effffffd9c                     movl    (r0),_dbl_ld_acc
                    286:  279  00015EA4                                   #          if( dbl_ld_acc.m & 0x7f800000 )
                    287:  280  00015EA4    3d 8f7f800000 effffffd91             bitl    $2139095040,_dbl_ld_acc
                    288:  281  00015EAF    31 18                                jeql    L260
                    289:  282  00015EB1                                   #                   dbl_expected = dbl_ld_acc;                /* expected = loaded */
                    290:  283  00015EB1    0d effffffd8d effffffd88             movl    _dbl_ld_acc+4,_dbl_expected+4
                    291:  284  00015EBC    0d effffffd7e effffffd79             movl    _dbl_ld_acc,_dbl_expected
                    292:  285  00015EC7                                   #              else {
                    293:  286  00015EC7    11 0c                                jbr     L261
                    294:  287  00015EC9                                  L260:
                    295:  288  00015EC9                                   #                   dbl_expected.m = 0;                       /* expect a '0'  */
                    296:  289  00015EC9    4d effffffd71                        clrl    _dbl_expected
                    297:  290  00015ECF                                   #                   dbl_expected.l = 0;
                    298:  291  00015ECF    4d effffffd6f                        clrl    _dbl_expected+4
                    299:  292  00015ED5                                   #          }
                    300:  293  00015ED5                                  L261:
                    301:  294  00015ED5                                   # /*
                    302:  295  00015ED5                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    303:  296  00015ED5                                   #  * The force loop flag is set after the first error.
                    304:  297  00015ED5                                   # */
                    305:  298  00015ED5                                   #              asm("_ldd_2_lp1:");
                    306:  299  00015ED5                                  _ldd_2_lp1:
                    307:  300  00015ED5                                   #              asm("ldd _dbl_ld_acc");           /* load the value          */
                    308:  301  00015ED5    07 effffffd65                 ldd _dbl_ld_acc
                    309:  302  00015EDB                                   #              asm("nop");
                    310:  303  00015EDB    10                            nop
                    311:  304  00015EDC                                   #              asm("std _dbl_st_acc");          /* store the result        */
                    312:  305  00015EDC    27 effffffd5e                 std _dbl_st_acc
                    313:  306  00015EE2                                   #              if( force_loop )
                    314:  307  00015EE2    5d effffffd58                        tstl    _force_loop
                    315:  308  00015EE8    31 02                                jeql    L262
                    316:  309  00015EEA                                   #                   asm("brb _ldd_2_lp1");;       /* loop on the error       */
                    317:  310  00015EEA    11 e9                         brb _ldd_2_lp1
                    318:  311  00015EEC                                  L262:
                    319:  312  00015EEC                                   # /* 
                    320:  313  00015EEC                                   #  * end error loop - test the results
                    321:  314  00015EEC                                   # */
                    322:  315  00015EEC                                   #              if( ( dbl_st_acc.m != dbl_expected.m ) || /* COMPARE the   */
                    323:  316  00015EEC                                   #                ( dbl_st_acc.l != dbl_expected.l ) ) {  /* values        */
                    324:  317  00015EEC    1d effffffd4e effffffd49             cmpl    _dbl_st_acc,_dbl_expected
                    325:  318  00015EF7    21 10                                jneq    L9998
                    326:  319  00015EF9    1d effffffd45 effffffd40             cmpl    _dbl_st_acc+4,_dbl_expected+4
                    327:  320  00015F04    21 03 13 00e5                        jeql    L263
                    328:  321  00015F09                                  L9998:
                    329:  322  00015F09                                   #                    errcnt++;                    /* bump the error count   */
                    330:  323  00015F09    6d effffffd31                        incl    _errcnt
                    331:  324  00015F0F                                   #                    if( prt_error ) {
                    332:  325  00015F0F    5d effffffd2b                        tstl    _prt_error
                    333:  326  00015F15    21 03 13 00b1                        jeql    L264
                    334:  327  00015F1A                                   #                         writes(" \n");      /* start a new print line */
                    335:  328  00015F1A                                         .data   1
                    336:  329  00000ca9 *                                L265:
                    337:  330  00000ca9 *  200A00                               .ascii  " \12\0"
                    338:  331  00000cac *                                       .text
                    339:  332  00015F1A    dd 8f00000ca9                        pushl   $L265
                    340:  333  00015F20    fe 08 effffffd19                     callf   $8,_writes
                    341:  334  00015F27                                   #                         writes("cycle: ");
                    342:  335  00015F27                                         .data   1
                    343:  336  00000cac *                                L266:
                    344:  337  00000cac *  6379636C653A2000                     .ascii  "cycle: \0"
                    345:  338  00000cb4 *                                       .text
                    346:  339  00015F27    dd 8f00000cac                        pushl   $L266
                    347:  340  00015F2D    fe 08 effffffd0c                     callf   $8,_writes
                    348:  341  00015F34                                   #                         writed( cycle );
                    349:  342  00015F34    dd effffffd06                        pushl   _cycle
                    350:  343  00015F3A    fe 08 effffffcff                     callf   $8,_writed
                    351:  344  00015F41                                   #                         writes("  LDD_STD test ");
                    352:  345  00015F41                                         .data   1
                    353:  346  00000cb4 *                                L267:
                    354:  347  00000cb4 *  20204C44445F5354442074657            .ascii  "  LDD_STD test \0"
                    355:                   3742000
                    356:  348  00000cc4 *                                       .text
                    357:  349  00015F41    dd 8f00000cb4                        pushl   $L267
                    358:  350  00015F47    fe 08 effffffcf2                     callf   $8,_writes
                    359:  351  00015F4E                                   #                     writed( test_no );
                    360:  352  00015F4E    dd effffffcec                        pushl   _test_no
                    361:  353  00015F54    fe 08 effffffce5                     callf   $8,_writed
                    362:  354  00015F5B                                   #                     writes(", subtest 2 (Cache Data) - BAD FINAL ACC\n");
                    363:  355  00015F5B                                         .data   1
                    364:  356  00000cc4 *                                L268:
                    365:  357  00000cc4 *  2C20737562746573742032202            .ascii  ", subtest 2 (Cache Data) - BAD FINAL ACC\12\0"
                    366:                   8436163686520446174612920
                    367:                   2D204241442046494E414C204
                    368:                   143430A00
                    369:  358  00000cee *                                       .text
                    370:  359  00015F5B    dd 8f00000cc4                        pushl   $L268
                    371:  360  00015F61    fe 08 effffffcd8                     callf   $8,_writes
                    372:  361  00015F68                                   #                         print_ldd_data();
                    373:  362  00015F68    fe 04 ef0000077f                     callf   $4,_print_ldd_data
                    374:  363  00015F6F                                   #                         writes(", index = ");
                    375:  364  00015F6F                                         .data   1
                    376:  365  00000cee *                                L269:
                    377:  366  00000cee *  2C20696E646578203D2000               .ascii  ", index = \0"
                    378:  367  00000cf9 *                                       .text
                    379:  368  00015F6F    dd 8f00000cee                        pushl   $L269
                    380:  369  00015F75    fe 08 effffffcc4                     callf   $8,_writes
                    381:  370  00015F7C                                   #                         writed( index );
                    382:  371  00015F7C    dd effffffcbe                        pushl   _index
                    383:  372  00015F82    fe 08 effffffcb7                     callf   $8,_writed
                    384:  373  00015F89                                   #                         writec('\n');
                    385:  374  00015F89    dd 0a                                pushl   $10
                    386:  375  00015F8B    fe 08 effffffcae                     callf   $8,_writec
                    387:  376  00015F92                                   #     writes("                                Acc expected = ");
                    388:  377  00015F92                                         .data   1
                    389:  378  00000cf9 *                                L270:
                    390:  379  00000cf9 *  2020202020202020202020202            .ascii  "                                Acc expected = \0"
                    391:                   0202020202020202020202020
                    392:                   2020202020202041636320657
                    393:                   8706563746564203D2000
                    394:  380  00000d29 *                                       .text
                    395:  381  00015F92    dd 8f00000cf9                        pushl   $L270
                    396:  382  00015F98    fe 08 effffffca1                     callf   $8,_writes
                    397:  383  00015F9F                                   #                         write32h( dbl_expected.m );
                    398:  384  00015F9F    dd effffffc9b                        pushl   _dbl_expected
                    399:  385  00015FA5    fe 08 effffffc94                     callf   $8,_write32h
                    400:  386  00015FAC                                   #                     writec(' ');
                    401:  387  00015FAC    dd 20                                pushl   $32
                    402:  388  00015FAE    fe 08 effffffc8b                     callf   $8,_writec
                    403:  389  00015FB5                                   #                     write32h( dbl_expected.l );
                    404:  390  00015FB5    dd effffffc89                        pushl   _dbl_expected+4
                    405:  391  00015FBB    fe 08 effffffc7e                     callf   $8,_write32h
                    406:  392  00015FC2                                   #                         writec('\n');
                    407:  393  00015FC2    dd 0a                                pushl   $10
                    408:  394  00015FC4    fe 08 effffffc75                     callf   $8,_writec
                    409:  395  00015FCB                                   #                    }
                    410:  396  00015FCB                                   #                    if( halt_flg ) 
                    411:  397  00015FCB                                  L264:
                    412:  398  00015FCB    5d effffffc6f                        tstl    _halt_flg
                    413:  399  00015FD1    31 09                                jeql    L271
                    414:  400  00015FD3                                   #                         ldd_er_halt( BAD_ACC_HLT );    /* halt on the error */
                    415:  401  00015FD3    dd 01                                pushl   $1
                    416:  402  00015FD5    fe 08 ef0000077a                     callf   $8,_ldd_er_halt
                    417:  403  00015FDC                                   #                    if( loop_on_err ) {
                    418:  404  00015FDC                                  L271:
                    419:  405  00015FDC    5d effffffc5e                        tstl    _loop_on_err
                    420:  406  00015FE2    31 0a                                jeql    L272
                    421:  407  00015FE4                                   #                         force_loop = TRUE;       /* set the force loop flag */
                    422:  408  00015FE4    0d 01 effffffc55                     movl    $1,_force_loop
                    423:  409  00015FEB                                   #                         asm("brw _ldd_2_lp1");;  /* and loop on the error   */
                    424:  410  00015FEB    13 fee7                       brw _ldd_2_lp1
                    425:  411  00015FEE                                   #                    } /* end of loop on error */
                    426:  412  00015FEE                                   #               }   /* end of compare error */
                    427:  413  00015FEE                                  L272:
                    428:  414  00015FEE                                   #         }  /* end of WHILE loop */
                    429:  415  00015FEE                                  L263:
                    430:  416  00015FEE                                  L257:
                    431:  417  00015FEE    6d effffffc4c                        incl    _index
                    432:  418  00015FF4    13 fe7f                              jbr     L259
                    433:  419  00015FF7                                  L258:
                    434:  420  00015FF7                                   # }  /* end of subtest 2 */
                    435:  421  00015FF7    40                                   ret#2
                    436:  422  00015FF8                                         .set    L253,0x0
                    437:  423  00015FF8                                  L255:
                    438:  424  00015FF8    13 fe68                              jbr     L256
                    439:  425  00015FFB                                         .data
                    440:  426  00000c20 *                                       .text
                    441:  427  00015FFB    00                                   .align  1
                    442:  428  00015FFC                                         .globl  _ldd_3
                    443:  429  00015FFC                                  _ldd_3:
                    444:  430  00015FFC    0000                                 .word   L273
                    445:  431  00015FFE                                   #  
                    446:  432  00015FFE                                   # 
                    447:  433  00015FFE                                   # 
                    448:  434  00015FFE                                   # /************************************************************************
                    449:  435  00015FFE                                   # *
                    450:  436  00015FFE                                   # *       SUBTEST 3 - Check for register corruption (ldd)
                    451:  437  00015FFE                                   # *
                    452:  438  00015FFE                                   # ************************************************************************/
                    453:  439  00015FFE                                   # ldd_3() 
                    454:  440  00015FFE                                   # {
                    455:  441  00015FFE    13 01c7                              jbr     L275
                    456:  442  00016001                                  L276:
                    457:  443  00016001                                   #         force_loop = FALSE;                     /* clear force_loop flg */
                    458:  444  00016001    4d effffffc39                        clrl    _force_loop
                    459:  445  00016007                                   #         subtest = 3;
                    460:  446  00016007    0d 03 effffffc32                     movl    $3,_subtest
                    461:  447  0001600E                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
                    462:  448  0001600E    dd 8f00000000                        pushl   $_load_regs
                    463:  449  00016014    fe 08 effffffc25                     callf   $8,_fill_reg_buf
                    464:  450  0001601B                                   #         index = 0;
                    465:  451  0001601B    4d effffffc1f                        clrl    _index
                    466:  452  00016021                                   #         dbl_ld_acc   = ldd_1_data[0].ld;        /* get value to load   */
                    467:  453  00016021    0d effffffc1d effffffc18             movl    _ldd_1_data+4,_dbl_ld_acc+4
                    468:  454  0001602C    0d effffffc0e effffffc09             movl    _ldd_1_data,_dbl_ld_acc
                    469:  455  00016037                                   #          if( dbl_ld_acc.m & 0x7f800000 )
                    470:  456  00016037    3d 8f7f800000 effffffbfe             bitl    $2139095040,_dbl_ld_acc
                    471:  457  00016042    31 18                                jeql    L278
                    472:  458  00016044                                   #                   dbl_expected = dbl_ld_acc;                /* expected = loaded */
                    473:  459  00016044    0d effffffbfa effffffbf5             movl    _dbl_ld_acc+4,_dbl_expected+4
                    474:  460  0001604F    0d effffffbeb effffffbe6             movl    _dbl_ld_acc,_dbl_expected
                    475:  461  0001605A                                   #              else {
                    476:  462  0001605A    11 0c                                jbr     L279
                    477:  463  0001605C                                  L278:
                    478:  464  0001605C                                   #                   dbl_expected.m = 0;                       /* expect a '0'  */
                    479:  465  0001605C    4d effffffbde                        clrl    _dbl_expected
                    480:  466  00016062                                   #                   dbl_expected.l = 0;
                    481:  467  00016062    4d effffffbdc                        clrl    _dbl_expected+4
                    482:  468  00016068                                   #          }
                    483:  469  00016068                                  L279:
                    484:  470  00016068                                   # /*
                    485:  471  00016068                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    486:  472  00016068                                   #  * The force loop flag is set after the first error.
                    487:  473  00016068                                   # */
                    488:  474  00016068                                   #         asm("_ldd_3_lp1:");
                    489:  475  00016068                                  _ldd_3_lp1:
                    490:  476  00016068                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
                    491:  477  00016068    ab 891fff effffffbcf          loadr $0x1fff,_load_regs
                    492:  478  00016071                                   #         asm("nop");
                    493:  479  00016071    10                            nop
                    494:  480  00016072                                   #         asm("ldd _dbl_ld_acc");                 /* load the accumulator  */
                    495:  481  00016072    07 effffffbc8                 ldd _dbl_ld_acc
                    496:  482  00016078                                   #         asm("nop");
                    497:  483  00016078    10                            nop
                    498:  484  00016079                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
                    499:  485  00016079    bb 891fff effffffbbe          storer $0x1fff,_store_regs
                    500:  486  00016082                                   #         asm("nop");
                    501:  487  00016082    10                            nop
                    502:  488  00016083                                   #         asm("std _dbl_st_acc");                 /* save the accumulator  */
                    503:  489  00016083    27 effffffbb7                 std _dbl_st_acc
                    504:  490  00016089                                   #         if( force_loop )
                    505:  491  00016089    5d effffffbb1                        tstl    _force_loop
                    506:  492  0001608F    31 02                                jeql    L280
                    507:  493  00016091                                   #              asm("brb _ldd_3_lp1");;           /* loop on the error     */
                    508:  494  00016091    11 d5                         brb _ldd_3_lp1
                    509:  495  00016093                                  L280:
                    510:  496  00016093                                   # /*
                    511:  497  00016093                                   #  * Now compare the stored register values to those that were loaded
                    512:  498  00016093                                   # */
                    513:  499  00016093                                   #         index2 = 0;
                    514:  500  00016093    4d effffffba7                        clrl    _index2
                    515:  501  00016099                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
                    516:  502  00016099                                  L281:
                    517:  503  00016099    0d effffffba1 50                     movl    _index2,r0
                    518:  504  000160A0    0d effffffb9a 51                     movl    _index2,r1
                    519:  505  000160A7    1d 40effffffb92                      cmpl    _load_regs[r0],_store_regs[r1]
                    520:                   41effffffb8c 
                    521:  506  000160B4    21 11                                jneq    L282
                    522:  507  000160B6    1d effffffb84 0d                     cmpl    _index2,$13
                    523:  508  000160BD    81 08                                jgeq    L282
                    524:  509  000160BF                                   #              index2++;                          /* check reg values        */
                    525:  510  000160BF    6d effffffb7b                        incl    _index2
                    526:  511  000160C5    11 d2                                jbr     L281
                    527:  512  000160C7                                  L282:
                    528:  513  000160C7                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
                    529:  514  000160C7    1d effffffb73 0d                     cmpl    _index2,$13
                    530:  515  000160CE    91 03 13 00f4                        jgeq    L283
                    531:  516  000160D3                                   #              errcnt++;                          /* bump the error count    */
                    532:  517  000160D3    6d effffffb67                        incl    _errcnt
                    533:  518  000160D9                                   #              if( prt_error ) {
                    534:  519  000160D9    5d effffffb61                        tstl    _prt_error
                    535:  520  000160DF    21 03 13 00c0                        jeql    L284
                    536:  521  000160E4                                   #                   writes(" \n");           /* start a new print line  */
                    537:  522  000160E4                                         .data   1
                    538:  523  00000d29 *                                L285:
                    539:  524  00000d29 *  200A00                               .ascii  " \12\0"
                    540:  525  00000d2c *                                       .text
                    541:  526  000160E4    dd 8f00000d29                        pushl   $L285
                    542:  527  000160EA    fe 08 effffffb4f                     callf   $8,_writes
                    543:  528  000160F1                                   #                   writes("cycle: ");
                    544:  529  000160F1                                         .data   1
                    545:  530  00000d2c *                                L286:
                    546:  531  00000d2c *  6379636C653A2000                     .ascii  "cycle: \0"
                    547:  532  00000d34 *                                       .text
                    548:  533  000160F1    dd 8f00000d2c                        pushl   $L286
                    549:  534  000160F7    fe 08 effffffb42                     callf   $8,_writes
                    550:  535  000160FE                                   #                   writed( cycle );
                    551:  536  000160FE    dd effffffb3c                        pushl   _cycle
                    552:  537  00016104    fe 08 effffffb35                     callf   $8,_writed
                    553:  538  0001610B                                   #                   writes("  LDD_STD test ");
                    554:  539  0001610B                                         .data   1
                    555:  540  00000d34 *                                L287:
                    556:  541  00000d34 *  20204C44445F5354442074657            .ascii  "  LDD_STD test \0"
                    557:                   3742000
                    558:  542  00000d44 *                                       .text
                    559:  543  0001610B    dd 8f00000d34                        pushl   $L287
                    560:  544  00016111    fe 08 effffffb28                     callf   $8,_writes
                    561:  545  00016118                                   #               writed( test_no );
                    562:  546  00016118    dd effffffb22                        pushl   _test_no
                    563:  547  0001611E    fe 08 effffffb1b                     callf   $8,_writed
                    564:  548  00016125                                   #     writes(", subtest 3 - A REGISTER WAS MODIFIED\n");
                    565:  549  00016125                                         .data   1
                    566:  550  00000d44 *                                L288:
                    567:  551  00000d44 *  2C20737562746573742033202            .ascii  ", subtest 3 - A REGISTER WAS MODIFIED\12\0"
                    568:                   D204120524547495354455220
                    569:                   574153204D4F4449464945440
                    570:                   A00
                    571:  552  00000d6b *                                       .text
                    572:  553  00016125    dd 8f00000d44                        pushl   $L288
                    573:  554  0001612B    fe 08 effffffb0e                     callf   $8,_writes
                    574:  555  00016132                                   #                   print_ldd_data();             /* print the operands      */
                    575:  556  00016132    fe 04 ef000005b5                     callf   $4,_print_ldd_data
                    576:  557  00016139                                   #                   writes("\nregister ");        /* print the information   */
                    577:  558  00016139                                         .data   1
                    578:  559  00000d6b *                                L289:
                    579:  560  00000d6b *  0A72656769737465722000               .ascii  "\12register \0"
                    580:  561  00000d76 *                                       .text
                    581:  562  00016139    dd 8f00000d6b                        pushl   $L289
                    582:  563  0001613F    fe 08 effffffafa                     callf   $8,_writes
                    583:  564  00016146                                   #                   writed( index2 );             /*    about the corrupted  */
                    584:  565  00016146    dd effffffaf4                        pushl   _index2
                    585:  566  0001614C    fe 08 effffffaed                     callf   $8,_writed
                    586:  567  00016153                                   #                   writes(" = ");                /*        register         */
                    587:  568  00016153                                         .data   1
                    588:  569  00000d76 *                                L290:
                    589:  570  00000d76 *  203D2000                             .ascii  " = \0"
                    590:  571  00000d7a *                                       .text
                    591:  572  00016153    dd 8f00000d76                        pushl   $L290
                    592:  573  00016159    fe 08 effffffae0                     callf   $8,_writes
                    593:  574  00016160                                   #                   write32h( store_regs[index2] );
                    594:  575  00016160    0d effffffada 50                     movl    _index2,r0
                    595:  576  00016167    dd 40effffffad2                      pushl   _store_regs[r0]
                    596:  577  0001616E    fe 08 effffffacb                     callf   $8,_write32h
                    597:  578  00016175                                   #                   writes(",  should be = ");
                    598:  579  00016175                                         .data   1
                    599:  580  00000d7a *                                L291:
                    600:  581  00000d7a *  2C202073686F756C642062652            .ascii  ",  should be = \0"
                    601:                   03D2000
                    602:  582  00000d8a *                                       .text
                    603:  583  00016175    dd 8f00000d7a                        pushl   $L291
                    604:  584  0001617B    fe 08 effffffabe                     callf   $8,_writes
                    605:  585  00016182                                   #                   write32h( load_regs[index2] );
                    606:  586  00016182    0d effffffab8 50                     movl    _index2,r0
                    607:  587  00016189    dd 40effffffab0                      pushl   _load_regs[r0]
                    608:  588  00016190    fe 08 effffffaa9                     callf   $8,_write32h
                    609:  589  00016197                                   #                   writes("\n");
                    610:  590  00016197                                         .data   1
                    611:  591  00000d8a *                                L292:
                    612:  592  00000d8a *  0A00                                 .ascii  "\12\0"
                    613:  593  00000d8c *                                       .text
                    614:  594  00016197    dd 8f00000d8a                        pushl   $L292
                    615:  595  0001619D    fe 08 effffffa9c                     callf   $8,_writes
                    616:  596  000161A4                                   #              }
                    617:  597  000161A4                                   #              if( halt_flg )   
                    618:  598  000161A4                                  L284:
                    619:  599  000161A4    5d effffffa96                        tstl    _halt_flg
                    620:  600  000161AA    31 09                                jeql    L293
                    621:  601  000161AC                                   #                   ldd_er_halt( BAD_REG_HLT );  /* halt on the error      */
                    622:  602  000161AC    dd 02                                pushl   $2
                    623:  603  000161AE    fe 08 ef000005a1                     callf   $8,_ldd_er_halt
                    624:  604  000161B5                                   #              if( loop_on_err ) {
                    625:  605  000161B5                                  L293:
                    626:  606  000161B5    5d effffffa85                        tstl    _loop_on_err
                    627:  607  000161BB    31 0a                                jeql    L294
                    628:  608  000161BD                                   #                   force_loop = TRUE;       /* set the force loop flag */
                    629:  609  000161BD    0d 01 effffffa7c                     movl    $1,_force_loop
                    630:  610  000161C4                                   #                   asm("brw _ldd_3_lp1");;  /* and loop on the error   */
                    631:  611  000161C4    13 fea1                       brw _ldd_3_lp1
                    632:  612  000161C7                                   #              } /* end of loop on error */
                    633:  613  000161C7                                   #         }  /* end of register corruption error */
                    634:  614  000161C7                                  L294:
                    635:  615  000161C7                                   # }  /* end of subtest 3 */
                    636:  616  000161C7                                  L283:
                    637:  617  000161C7    40                                   ret#2
                    638:  618  000161C8                                         .set    L273,0x0
                    639:  619  000161C8                                  L275:
                    640:  620  000161C8    13 fe36                              jbr     L276
                    641:  621  000161CB                                         .data
                    642:  622  00000c20 *                                       .text
                    643:  623  000161CB    00                                   .align  1
                    644:  624  000161CC                                         .globl  _ldd_4
                    645:  625  000161CC                                  _ldd_4:
                    646:  626  000161CC    0000                                 .word   L295
                    647:  627  000161CE                                   #   
                    648:  628  000161CE                                   # 
                    649:  629  000161CE                                   # 
                    650:  630  000161CE                                   # /************************************************************************
                    651:  631  000161CE                                   # *
                    652:  632  000161CE                                   # *       SUBTEST 4 - Check for register corruption (std)
                    653:  633  000161CE                                   # *
                    654:  634  000161CE                                   # ************************************************************************/
                    655:  635  000161CE                                   # ldd_4() 
                    656:  636  000161CE                                   # {
                    657:  637  000161CE    13 0196                              jbr     L297
                    658:  638  000161D1                                  L298:
                    659:  639  000161D1                                   #         force_loop = FALSE;                     /* clear force_loop flg */
                    660:  640  000161D1    4d effffffa69                        clrl    _force_loop
                    661:  641  000161D7                                   #         subtest = 4;
                    662:  642  000161D7    0d 04 effffffa62                     movl    $4,_subtest
                    663:  643  000161DE                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
                    664:  644  000161DE    dd 8f00000000                        pushl   $_load_regs
                    665:  645  000161E4    fe 08 effffffa55                     callf   $8,_fill_reg_buf
                    666:  646  000161EB                                   #         index = 0;
                    667:  647  000161EB    4d effffffa4f                        clrl    _index
                    668:  648  000161F1                                   #         dbl_ld_acc   = ldd_1_data[0].ld;        /* get value to store  */
                    669:  649  000161F1    0d effffffa4d effffffa48             movl    _ldd_1_data+4,_dbl_ld_acc+4
                    670:  650  000161FC    0d effffffa3e effffffa39             movl    _ldd_1_data,_dbl_ld_acc
                    671:  651  00016207                                   # /*
                    672:  652  00016207                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    673:  653  00016207                                   #  * The force loop flag is set after the first error.
                    674:  654  00016207                                   # */
                    675:  655  00016207                                   #         asm("_ldd_4_lp1:");
                    676:  656  00016207                                  _ldd_4_lp1:
                    677:  657  00016207                                   #         asm("ldd _dbl_ld_acc");                 /* load the accumulator  */
                    678:  658  00016207    07 effffffa33                 ldd _dbl_ld_acc
                    679:  659  0001620D                                   #         asm("nop");
                    680:  660  0001620D    10                            nop
                    681:  661  0001620E                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
                    682:  662  0001620E    ab 891fff effffffa29          loadr $0x1fff,_load_regs
                    683:  663  00016217                                   #         asm("nop");
                    684:  664  00016217    10                            nop
                    685:  665  00016218                                   #         asm("std _dbl_st_acc");                 /* save the accumulator  */
                    686:  666  00016218    27 effffffa22                 std _dbl_st_acc
                    687:  667  0001621E                                   #         asm("nop");
                    688:  668  0001621E    10                            nop
                    689:  669  0001621F                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
                    690:  670  0001621F    bb 891fff effffffa18          storer $0x1fff,_store_regs
                    691:  671  00016228                                   #         if( force_loop )
                    692:  672  00016228    5d effffffa12                        tstl    _force_loop
                    693:  673  0001622E    31 02                                jeql    L299
                    694:  674  00016230                                   #              asm("brb _ldd_4_lp1");;            /* loop on the error     */
                    695:  675  00016230    11 d5                         brb _ldd_4_lp1
                    696:  676  00016232                                  L299:
                    697:  677  00016232                                   # /*
                    698:  678  00016232                                   #  * Now compare the stored register values to those that were loaded
                    699:  679  00016232                                   # */
                    700:  680  00016232                                   #         index2 = 0;
                    701:  681  00016232    4d effffffa08                        clrl    _index2
                    702:  682  00016238                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
                    703:  683  00016238                                  L300:
                    704:  684  00016238    0d effffffa02 50                     movl    _index2,r0
                    705:  685  0001623F    0d effffff9fb 51                     movl    _index2,r1
                    706:  686  00016246    1d 40effffff9f3                      cmpl    _load_regs[r0],_store_regs[r1]
                    707:                   41effffff9ed 
                    708:  687  00016253    21 11                                jneq    L301
                    709:  688  00016255    1d effffff9e5 0d                     cmpl    _index2,$13
                    710:  689  0001625C    81 08                                jgeq    L301
                    711:  690  0001625E                                   #              index2++;                          /* check reg values        */
                    712:  691  0001625E    6d effffff9dc                        incl    _index2
                    713:  692  00016264    11 d2                                jbr     L300
                    714:  693  00016266                                  L301:
                    715:  694  00016266                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
                    716:  695  00016266    1d effffff9d4 0d                     cmpl    _index2,$13
                    717:  696  0001626D    91 03 13 00f4                        jgeq    L302
                    718:  697  00016272                                   #              errcnt++;                          /* bump the error count    */
                    719:  698  00016272    6d effffff9c8                        incl    _errcnt
                    720:  699  00016278                                   #              if( prt_error ) {
                    721:  700  00016278    5d effffff9c2                        tstl    _prt_error
                    722:  701  0001627E    21 03 13 00c0                        jeql    L303
                    723:  702  00016283                                   #                   writes(" \n");           /* start a new print line  */
                    724:  703  00016283                                         .data   1
                    725:  704  00000d8c *                                L304:
                    726:  705  00000d8c *  200A00                               .ascii  " \12\0"
                    727:  706  00000d8f *                                       .text
                    728:  707  00016283    dd 8f00000d8c                        pushl   $L304
                    729:  708  00016289    fe 08 effffff9b0                     callf   $8,_writes
                    730:  709  00016290                                   #                   writes("cycle: ");
                    731:  710  00016290                                         .data   1
                    732:  711  00000d8f *                                L305:
                    733:  712  00000d8f *  6379636C653A2000                     .ascii  "cycle: \0"
                    734:  713  00000d97 *                                       .text
                    735:  714  00016290    dd 8f00000d8f                        pushl   $L305
                    736:  715  00016296    fe 08 effffff9a3                     callf   $8,_writes
                    737:  716  0001629D                                   #                   writed( cycle );
                    738:  717  0001629D    dd effffff99d                        pushl   _cycle
                    739:  718  000162A3    fe 08 effffff996                     callf   $8,_writed
                    740:  719  000162AA                                   #               writes(" LDD_STD test ");
                    741:  720  000162AA                                         .data   1
                    742:  721  00000d97 *                                L306:
                    743:  722  00000d97 *  204C44445F535444207465737            .ascii  " LDD_STD test \0"
                    744:                   42000
                    745:  723  00000da6 *                                       .text
                    746:  724  000162AA    dd 8f00000d97                        pushl   $L306
                    747:  725  000162B0    fe 08 effffff989                     callf   $8,_writes
                    748:  726  000162B7                                   #               writed( test_no );
                    749:  727  000162B7    dd effffff983                        pushl   _test_no
                    750:  728  000162BD    fe 08 effffff97c                     callf   $8,_writed
                    751:  729  000162C4                                   #     writes(", subtest 4 - A REGISTER WAS MODIFIED\n");
                    752:  730  000162C4                                         .data   1
                    753:  731  00000da6 *                                L307:
                    754:  732  00000da6 *  2C20737562746573742034202            .ascii  ", subtest 4 - A REGISTER WAS MODIFIED\12\0"
                    755:                   D204120524547495354455220
                    756:                   574153204D4F4449464945440
                    757:                   A00
                    758:  733  00000dcd *                                       .text
                    759:  734  000162C4    dd 8f00000da6                        pushl   $L307
                    760:  735  000162CA    fe 08 effffff96f                     callf   $8,_writes
                    761:  736  000162D1                                   #                   print_ldd_data();             /* print the operands      */
                    762:  737  000162D1    fe 04 ef00000416                     callf   $4,_print_ldd_data
                    763:  738  000162D8                                   #                   writes("\nregister ");        /* print the information   */
                    764:  739  000162D8                                         .data   1
                    765:  740  00000dcd *                                L308:
                    766:  741  00000dcd *  0A72656769737465722000               .ascii  "\12register \0"
                    767:  742  00000dd8 *                                       .text
                    768:  743  000162D8    dd 8f00000dcd                        pushl   $L308
                    769:  744  000162DE    fe 08 effffff95b                     callf   $8,_writes
                    770:  745  000162E5                                   #                   writed( index2 );             /*    about the corrupted  */
                    771:  746  000162E5    dd effffff955                        pushl   _index2
                    772:  747  000162EB    fe 08 effffff94e                     callf   $8,_writed
                    773:  748  000162F2                                   #                   writes(" = ");                /*        register         */
                    774:  749  000162F2                                         .data   1
                    775:  750  00000dd8 *                                L309:
                    776:  751  00000dd8 *  203D2000                             .ascii  " = \0"
                    777:  752  00000ddc *                                       .text
                    778:  753  000162F2    dd 8f00000dd8                        pushl   $L309
                    779:  754  000162F8    fe 08 effffff941                     callf   $8,_writes
                    780:  755  000162FF                                   #                   write32h( store_regs[index2] );
                    781:  756  000162FF    0d effffff93b 50                     movl    _index2,r0
                    782:  757  00016306    dd 40effffff933                      pushl   _store_regs[r0]
                    783:  758  0001630D    fe 08 effffff92c                     callf   $8,_write32h
                    784:  759  00016314                                   #                   writes(",  should be = ");
                    785:  760  00016314                                         .data   1
                    786:  761  00000ddc *                                L310:
                    787:  762  00000ddc *  2C202073686F756C642062652            .ascii  ",  should be = \0"
                    788:                   03D2000
                    789:  763  00000dec *                                       .text
                    790:  764  00016314    dd 8f00000ddc                        pushl   $L310
                    791:  765  0001631A    fe 08 effffff91f                     callf   $8,_writes
                    792:  766  00016321                                   #                   write32h( load_regs[index2] );
                    793:  767  00016321    0d effffff919 50                     movl    _index2,r0
                    794:  768  00016328    dd 40effffff911                      pushl   _load_regs[r0]
                    795:  769  0001632F    fe 08 effffff90a                     callf   $8,_write32h
                    796:  770  00016336                                   #                   writes("\n");
                    797:  771  00016336                                         .data   1
                    798:  772  00000dec *                                L311:
                    799:  773  00000dec *  0A00                                 .ascii  "\12\0"
                    800:  774  00000dee *                                       .text
                    801:  775  00016336    dd 8f00000dec                        pushl   $L311
                    802:  776  0001633C    fe 08 effffff8fd                     callf   $8,_writes
                    803:  777  00016343                                   #              }
                    804:  778  00016343                                   #              if( halt_flg )   
                    805:  779  00016343                                  L303:
                    806:  780  00016343    5d effffff8f7                        tstl    _halt_flg
                    807:  781  00016349    31 09                                jeql    L312
                    808:  782  0001634B                                   #                   ldd_er_halt( BAD_REG_HLT );  /* halt on the error      */
                    809:  783  0001634B    dd 02                                pushl   $2
                    810:  784  0001634D    fe 08 ef00000402                     callf   $8,_ldd_er_halt
                    811:  785  00016354                                   #              if( loop_on_err ) {
                    812:  786  00016354                                  L312:
                    813:  787  00016354    5d effffff8e6                        tstl    _loop_on_err
                    814:  788  0001635A    31 0a                                jeql    L313
                    815:  789  0001635C                                   #                   force_loop = TRUE;       /* set the force loop flag */
                    816:  790  0001635C    0d 01 effffff8dd                     movl    $1,_force_loop
                    817:  791  00016363                                   #                   asm("brw _ldd_4_lp1");;  /* and loop on the error   */
                    818:  792  00016363    13 fea1                       brw _ldd_4_lp1
                    819:  793  00016366                                   #              } /* end of loop on error */
                    820:  794  00016366                                   #         }  /* end of register corruption error */
                    821:  795  00016366                                  L313:
                    822:  796  00016366                                   # }  /* end of subtest 4 */
                    823:  797  00016366                                  L302:
                    824:  798  00016366    40                                   ret#2
                    825:  799  00016367                                         .set    L295,0x0
                    826:  800  00016367                                  L297:
                    827:  801  00016367    13 fe67                              jbr     L298
                    828:  802  0001636A                                         .data
                    829:  803  00000c20 *                                       .text
                    830:  804  0001636A                                         .align  1
                    831:  805  0001636A                                         .globl  _ldd_5
                    832:  806  0001636A                                  _ldd_5:
                    833:  807  0001636A    0000                                 .word   L314
                    834:  808  0001636C                                   #   
                    835:  809  0001636C                                   # 
                    836:  810  0001636C                                   # 
                    837:  811  0001636C                                   # /************************************************************************
                    838:  812  0001636C                                   # *
                    839:  813  0001636C                                   # *       SUBTEST 5 - Check for PSL corruption (ldd)
                    840:  814  0001636C                                   # *
                    841:  815  0001636C                                   # ************************************************************************/
                    842:  816  0001636C                                   # ldd_5() 
                    843:  817  0001636C                                   # {
                    844:  818  0001636C    13 0197                              jbr     L316
                    845:  819  0001636F                                  L317:
                    846:  820  0001636F                                   #         force_loop = FALSE;                     /* clear force_loop flg */
                    847:  821  0001636F    4d effffff8cb                        clrl    _force_loop
                    848:  822  00016375                                   #         subtest = 5;
                    849:  823  00016375    0d 05 effffff8c4                     movl    $5,_subtest
                    850:  824  0001637C                                   #         status_index = 0;
                    851:  825  0001637C    4d effffff8be                        clrl    _status_index
                    852:  826  00016382                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
                    853:  827  00016382    dd 8f00000000                        pushl   $_load_regs
                    854:  828  00016388    fe 08 effffff8b1                     callf   $8,_fill_reg_buf
                    855:  829  0001638F                                   #         for( index = 0; index < 3; index++ ) {
                    856:  830  0001638F    4d effffff8ab                        clrl    _index
                    857:  831  00016395                                  L320:
                    858:  832  00016395    1d effffff8a5 03                     cmpl    _index,$3
                    859:  833  0001639C    91 03 13 0164                        jgeq    L319
                    860:  834  000163A1                                   #              dbl_ld_acc   = ldd_1_data[index].ld;      /* get value to load */
                    861:  835  000163A1    48 04 effffff898 50                  shll    $4,_index,r0
                    862:  836  000163A9    0c 8f00000000 50                     addl2   $_ldd_1_data,r0
                    863:  837  000163B0    0d a004 effffff88c                   movl    4(r0),_dbl_ld_acc+4
                    864:  838  000163B8    0d 60 effffff881                     movl    (r0),_dbl_ld_acc
                    865:  839  000163BF                                   #              sgl_dummy1 = status_array[status_index];    /* status = +, -, 0 */
                    866:  840  000163BF    0d effffff87b 50                     movl    _status_index,r0
                    867:  841  000163C6    0d 40effffff873                      movl    _status_array[r0],_sgl_dummy1
                    868:                   effffff86e 
                    869:  842  000163D2                                   # /*
                    870:  843  000163D2                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                    871:  844  000163D2                                   #  * The force loop flag is set after the first error.
                    872:  845  000163D2                                   # */
                    873:  846  000163D2                                   #              asm("_ldd_5_lp1:");
                    874:  847  000163D2                                  _ldd_5_lp1:
                    875:  848  000163D2                                   #              asm("tstl _sgl_dummy1");               /* set the PSL status    */
                    876:  849  000163D2    5d effffff868                 tstl _sgl_dummy1
                    877:  850  000163D8                                   #          asm("movpsl _init_psl");           /* save the initial PSL  */
                    878:  851  000163D8    cd effffff862                 movpsl _init_psl
                    879:  852  000163DE                                   #              asm("nop");
                    880:  853  000163DE    10                            nop
                    881:  854  000163DF                                   #              asm("ldd _dbl_ld_acc");            /* load the accumulator  */
                    882:  855  000163DF    07 effffff85b                 ldd _dbl_ld_acc
                    883:  856  000163E5                                   #              asm("nop");
                    884:  857  000163E5    10                            nop
                    885:  858  000163E6                                   #              asm("movpsl _psl_val");            /* save the final PSL    */
                    886:  859  000163E6    cd effffff854                 movpsl _psl_val
                    887:  860  000163EC                                   #              asm("nop");
                    888:  861  000163EC    10                            nop
                    889:  862  000163ED                                   #              asm("std _dbl_st_acc");            /* save the accumulator  */
                    890:  863  000163ED    27 effffff84d                 std _dbl_st_acc
                    891:  864  000163F3                                   #              if( force_loop )
                    892:  865  000163F3    5d effffff847                        tstl    _force_loop
                    893:  866  000163F9    31 02                                jeql    L321
                    894:  867  000163FB                                   #                   asm("brb _ldd_5_lp1");;       /* loop on the error     */
                    895:  868  000163FB    11 d5                         brb _ldd_5_lp1
                    896:  869  000163FD                                  L321:
                    897:  870  000163FD                                   # /*
                    898:  871  000163FD                                   #  * Now compare the final PSL to the initial PSL -they should be the same
                    899:  872  000163FD                                   # */
                    900:  873  000163FD                                   #              exp_psl = init_psl;
                    901:  874  000163FD    0d effffff83d effffff838             movl    _init_psl,_exp_psl
                    902:  875  00016408                                   #          if( psl_val != exp_psl ) {
                    903:  876  00016408    1d effffff832 effffff82d             cmpl    _psl_val,_exp_psl
                    904:  877  00016413    21 03 13 00e4                        jeql    L322
                    905:  878  00016418                                   #                   errcnt++;                     /* bump the error count    */
                    906:  879  00016418    6d effffff822                        incl    _errcnt
                    907:  880  0001641E                                   #                   if( prt_error ) {
                    908:  881  0001641E    5d effffff81c                        tstl    _prt_error
                    909:  882  00016424    21 03 13 00b0                        jeql    L323
                    910:  883  00016429                                   #                        writes(" \n");      /* start a new print line  */
                    911:  884  00016429                                         .data   1
                    912:  885  00000dee *                                L324:
                    913:  886  00000dee *  200A00                               .ascii  " \12\0"
                    914:  887  00000df1 *                                       .text
                    915:  888  00016429    dd 8f00000dee                        pushl   $L324
                    916:  889  0001642F    fe 08 effffff80a                     callf   $8,_writes
                    917:  890  00016436                                   #                        writes("cycle: ");
                    918:  891  00016436                                         .data   1
                    919:  892  00000df1 *                                L325:
                    920:  893  00000df1 *  6379636C653A2000                     .ascii  "cycle: \0"
                    921:  894  00000df9 *                                       .text
                    922:  895  00016436    dd 8f00000df1                        pushl   $L325
                    923:  896  0001643C    fe 08 effffff7fd                     callf   $8,_writes
                    924:  897  00016443                                   #                        writed( cycle );
                    925:  898  00016443    dd effffff7f7                        pushl   _cycle
                    926:  899  00016449    fe 08 effffff7f0                     callf   $8,_writed
                    927:  900  00016450                                   #                        writes("  LDD_STD test ");
                    928:  901  00016450                                         .data   1
                    929:  902  00000df9 *                                L326:
                    930:  903  00000df9 *  20204C44445F5354442074657            .ascii  "  LDD_STD test \0"
                    931:                   3742000
                    932:  904  00000e09 *                                       .text
                    933:  905  00016450    dd 8f00000df9                        pushl   $L326
                    934:  906  00016456    fe 08 effffff7e3                     callf   $8,_writes
                    935:  907  0001645D                                   #                    writed( test_no );
                    936:  908  0001645D    dd effffff7dd                        pushl   _test_no
                    937:  909  00016463    fe 08 effffff7d6                     callf   $8,_writed
                    938:  910  0001646A                                   #     writes(", subtest 5  - INCORRECT FINAL PSL - LDD\n");
                    939:  911  0001646A                                         .data   1
                    940:  912  00000e09 *                                L327:
                    941:  913  00000e09 *  2C20737562746573742035202            .ascii  ", subtest 5  - INCORRECT FINAL PSL - LDD\12\0"
                    942:                   02D20494E434F525245435420
                    943:                   46494E414C2050534C202D204
                    944:                   C44440A00
                    945:  914  00000e33 *                                       .text
                    946:  915  0001646A    dd 8f00000e09                        pushl   $L327
                    947:  916  00016470    fe 08 effffff7c9                     callf   $8,_writes
                    948:  917  00016477                                   #                        print_ldd_data();       /* print the operands      */
                    949:  918  00016477    fe 04 ef00000270                     callf   $4,_print_ldd_data
                    950:  919  0001647E                                   #                        writes("\ninitial PSL = ");
                    951:  920  0001647E                                         .data   1
                    952:  921  00000e33 *                                L328:
                    953:  922  00000e33 *  0A696E697469616C2050534C2            .ascii  "\12initial PSL = \0"
                    954:                   03D2000
                    955:  923  00000e43 *                                       .text
                    956:  924  0001647E    dd 8f00000e33                        pushl   $L328
                    957:  925  00016484    fe 08 effffff7b5                     callf   $8,_writes
                    958:  926  0001648B                                   #                        write32h( init_psl );
                    959:  927  0001648B    dd effffff7af                        pushl   _init_psl
                    960:  928  00016491    fe 08 effffff7a8                     callf   $8,_write32h
                    961:  929  00016498                                   #                        writes(",  final PSL = ");
                    962:  930  00016498                                         .data   1
                    963:  931  00000e43 *                                L329:
                    964:  932  00000e43 *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
                    965:                   03D2000
                    966:  933  00000e53 *                                       .text
                    967:  934  00016498    dd 8f00000e43                        pushl   $L329
                    968:  935  0001649E    fe 08 effffff79b                     callf   $8,_writes
                    969:  936  000164A5                                   #                        write32h( psl_val );
                    970:  937  000164A5    dd effffff795                        pushl   _psl_val
                    971:  938  000164AB    fe 08 effffff78e                     callf   $8,_write32h
                    972:  939  000164B2                                   #                        writes(",  expected PSL = ");
                    973:  940  000164B2                                         .data   1
                    974:  941  00000e53 *                                L330:
                    975:  942  00000e53 *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
                    976:                   0534C203D2000
                    977:  943  00000e66 *                                       .text
                    978:  944  000164B2    dd 8f00000e53                        pushl   $L330
                    979:  945  000164B8    fe 08 effffff781                     callf   $8,_writes
                    980:  946  000164BF                                   #                        write32h( exp_psl );
                    981:  947  000164BF    dd effffff77b                        pushl   _exp_psl
                    982:  948  000164C5    fe 08 effffff774                     callf   $8,_write32h
                    983:  949  000164CC                                   #                        writes("\n");
                    984:  950  000164CC                                         .data   1
                    985:  951  00000e66 *                                L331:
                    986:  952  00000e66 *  0A00                                 .ascii  "\12\0"
                    987:  953  00000e68 *                                       .text
                    988:  954  000164CC    dd 8f00000e66                        pushl   $L331
                    989:  955  000164D2    fe 08 effffff767                     callf   $8,_writes
                    990:  956  000164D9                                   #                   }
                    991:  957  000164D9                                   #                   if( halt_flg )   
                    992:  958  000164D9                                  L323:
                    993:  959  000164D9    5d effffff761                        tstl    _halt_flg
                    994:  960  000164DF    31 09                                jeql    L332
                    995:  961  000164E1                                   #                        ldd_er_halt( BAD_PSL_HLT );   /* halt on the error */
                    996:  962  000164E1    dd 03                                pushl   $3
                    997:  963  000164E3    fe 08 ef0000026c                     callf   $8,_ldd_er_halt
                    998:  964  000164EA                                   #                   if( loop_on_err ) {
                    999:  965  000164EA                                  L332:
                   1000:  966  000164EA    5d effffff750                        tstl    _loop_on_err
                   1001:  967  000164F0    31 0a                                jeql    L333
                   1002:  968  000164F2                                   #                        force_loop = TRUE;       /* set the force loop flag */
                   1003:  969  000164F2    0d 01 effffff747                     movl    $1,_force_loop
                   1004:  970  000164F9                                   #                        asm("brw _ldd_5_lp1");;  /* and loop on the error   */
                   1005:  971  000164F9    13 fed6                       brw _ldd_5_lp1
                   1006:  972  000164FC                                   #                   } /* end of loop on error */
                   1007:  973  000164FC                                   #              }  /* end of PSL corruption error */
                   1008:  974  000164FC                                  L333:
                   1009:  975  000164FC                                   #         }  /* end of WHILE loop */
                   1010:  976  000164FC                                  L322:
                   1011:  977  000164FC                                  L318:
                   1012:  978  000164FC    6d effffff73e                        incl    _index
                   1013:  979  00016502    13 fe90                              jbr     L320
                   1014:  980  00016505                                  L319:
                   1015:  981  00016505                                   # }  /* end of subtest 5 */
                   1016:  982  00016505    40                                   ret#2
                   1017:  983  00016506                                         .set    L314,0x0
                   1018:  984  00016506                                  L316:
                   1019:  985  00016506    13 fe66                              jbr     L317
                   1020:  986  00016509                                         .data
                   1021:  987  00000c20 *                                       .text
                   1022:  988  00016509    00                                   .align  1
                   1023:  989  0001650A                                         .globl  _ldd_6
                   1024:  990  0001650A                                  _ldd_6:
                   1025:  991  0001650A    0000                                 .word   L334
                   1026:  992  0001650C                                   #   
                   1027:  993  0001650C                                   # 
                   1028:  994  0001650C                                   # 
                   1029:  995  0001650C                                   # /************************************************************************
                   1030:  996  0001650C                                   # *
                   1031:  997  0001650C                                   # *           SUBTEST 6 - STD status test 
                   1032:  998  0001650C                                   # *
                   1033:  999  0001650C                                   # ************************************************************************/
                   1034: 1000  0001650C                                   # ldd_6() 
                   1035: 1001  0001650C                                   # {
                   1036: 1002  0001650C    13 01dc                              jbr     L336
                   1037: 1003  0001650F                                  L337:
                   1038: 1004  0001650F                                   #     force_loop = FALSE;
                   1039: 1005  0001650F    4d effffff72b                        clrl    _force_loop
                   1040: 1006  00016515                                   #     index = 0;                                /* clear the data index */
                   1041: 1007  00016515    4d effffff725                        clrl    _index
                   1042: 1008  0001651B                                   #     status_index = 0;                         /* clear the status index */
                   1043: 1009  0001651B    4d effffff71f                        clrl    _status_index
                   1044: 1010  00016521                                   #     do {
                   1045: 1011  00016521                                  L340:
                   1046: 1012  00016521                                   #        dbl_ld_acc   = ldd_1_data[index].ld;   /* get the dbl operand    */
                   1047: 1013  00016521    48 04 effffff718 50                  shll    $4,_index,r0
                   1048: 1014  00016529    0c 8f00000000 50                     addl2   $_ldd_1_data,r0
                   1049: 1015  00016530    0d a004 effffff70c                   movl    4(r0),_dbl_ld_acc+4
                   1050: 1016  00016538    0d 60 effffff701                     movl    (r0),_dbl_ld_acc
                   1051: 1017  0001653F                                   #        sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
                   1052: 1018  0001653F    0d effffff6fb 50                     movl    _status_index,r0
                   1053: 1019  00016546    0d 40effffff6f3                      movl    _status_array[r0],_sgl_dummy1
                   1054:                   effffff6ee 
                   1055: 1020  00016552                                   # /*
                   1056: 1021  00016552                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
                   1057: 1022  00016552                                   #  * The force loop flag is set after the first error.
                   1058: 1023  00016552                                   # */
                   1059: 1024  00016552                                   #        asm("_ldd_6_lp1:");
                   1060: 1025  00016552                                  _ldd_6_lp1:
                   1061: 1026  00016552                                   #        asm("ldd _dbl_ld_acc");              /* load the operand        */
                   1062: 1027  00016552    07 effffff6e8                 ldd _dbl_ld_acc
                   1063: 1028  00016558                                   #        asm("tstl _sgl_dummy1");             /* generate initial status */
                   1064: 1029  00016558    5d effffff6e2                 tstl _sgl_dummy1
                   1065: 1030  0001655E                                   #        asm("movpsl _init_psl");             /* save the initial status */
                   1066: 1031  0001655E    cd effffff6dc                 movpsl _init_psl
                   1067: 1032  00016564                                   #        asm("std _dbl_st_acc");              /* save the accumulator    */
                   1068: 1033  00016564    27 effffff6d6                 std _dbl_st_acc
                   1069: 1034  0001656A                                   #        asm("movpsl _psl_val");              /* save the final status   */
                   1070: 1035  0001656A    cd effffff6d0                 movpsl _psl_val
                   1071: 1036  00016570                                   #        if( force_loop )                     /* loop?                   */
                   1072: 1037  00016570    5d effffff6ca                        tstl    _force_loop
                   1073: 1038  00016576    31 06                                jeql    L341
                   1074: 1039  00016578                                   #              asm("jmp _ldd_6_lp1");;        /* run the loop again      */
                   1075: 1040  00016578    71 efffffffd4                 jmp _ldd_6_lp1
                   1076: 1041  0001657E                                  L341:
                   1077: 1042  0001657E                                   #        exp_psl = init_psl;                  /* get the initial PSL     */
                   1078: 1043  0001657E    0d effffff6bc effffff6b7             movl    _init_psl,_exp_psl
                   1079: 1044  00016589                                   #        exp_psl &= 0xfffffff3;               /* clear ZERO, NEGATIVE    */
                   1080: 1045  00016589    ac 88f3 effffff6af                   andl2   $-13,_exp_psl
                   1081: 1046  00016591                                   #        sgl_dummy2 = dbl_ld_acc.m;           /* get MSW of the operand  */
                   1082: 1047  00016591    0d effffff6a9 effffff6a4             movl    _dbl_ld_acc,_sgl_dummy2
                   1083: 1048  0001659C                                   # /*     if( !no_fpp_wcs )                    /* why?                    */
                   1084: 1049  0001659C                                   #             sgl_dummy2 &= 0xff800000;       /* clear the fraction part */
                   1085: 1050  0001659C    ac 8fff800000 effffff699             andl2   $-8388608,_sgl_dummy2
                   1086: 1051  000165A7                                   #        if( !sgl_dummy2 )
                   1087: 1052  000165A7    5d effffff693                        tstl    _sgl_dummy2
                   1088: 1053  000165AD    21 07                                jneq    L342
                   1089: 1054  000165AF                                   #              exp_psl |= PSL_Z;              /* expect the ZERO bit set */
                   1090: 1055  000165AF    8c 04 effffff68a                     orl2    $4,_exp_psl
                   1091: 1056  000165B6                                   #        if( sgl_dummy2 < 0 )
                   1092: 1057  000165B6                                  L342:
                   1093: 1058  000165B6    5d effffff684                        tstl    _sgl_dummy2
                   1094: 1059  000165BC    81 07                                jgeq    L343
                   1095: 1060  000165BE                                   #              exp_psl |= PSL_N;              /* expect the NEG bit set  */
                   1096: 1061  000165BE    8c 08 effffff67b                     orl2    $8,_exp_psl
                   1097: 1062  000165C5                                   #        if( psl_val != exp_psl ) {           /* COMPARE the values      */
                   1098: 1063  000165C5                                  L343:
                   1099: 1064  000165C5    1d effffff675 effffff670             cmpl    _psl_val,_exp_psl
                   1100: 1065  000165D0    21 03 13 00e4                        jeql    L344
                   1101: 1066  000165D5                                   #               errcnt++;                     /* bump the error count    */
                   1102: 1067  000165D5    6d effffff665                        incl    _errcnt
                   1103: 1068  000165DB                                   #               if( prt_error ) {
                   1104: 1069  000165DB    5d effffff65f                        tstl    _prt_error
                   1105: 1070  000165E1    21 03 13 00b0                        jeql    L345
                   1106: 1071  000165E6                                   #                        writes(" \n");      /* start a new print line  */
                   1107: 1072  000165E6                                         .data   1
                   1108: 1073  00000e68 *                                L346:
                   1109: 1074  00000e68 *  200A00                               .ascii  " \12\0"
                   1110: 1075  00000e6b *                                       .text
                   1111: 1076  000165E6    dd 8f00000e68                        pushl   $L346
                   1112: 1077  000165EC    fe 08 effffff64d                     callf   $8,_writes
                   1113: 1078  000165F3                                   #                        writes("cycle: ");
                   1114: 1079  000165F3                                         .data   1
                   1115: 1080  00000e6b *                                L347:
                   1116: 1081  00000e6b *  6379636C653A2000                     .ascii  "cycle: \0"
                   1117: 1082  00000e73 *                                       .text
                   1118: 1083  000165F3    dd 8f00000e6b                        pushl   $L347
                   1119: 1084  000165F9    fe 08 effffff640                     callf   $8,_writes
                   1120: 1085  00016600                                   #                        writed( cycle );
                   1121: 1086  00016600    dd effffff63a                        pushl   _cycle
                   1122: 1087  00016606    fe 08 effffff633                     callf   $8,_writed
                   1123: 1088  0001660D                                   #                        writes("  LDD_STD test ");
                   1124: 1089  0001660D                                         .data   1
                   1125: 1090  00000e73 *                                L348:
                   1126: 1091  00000e73 *  20204C44445F5354442074657            .ascii  "  LDD_STD test \0"
                   1127:                   3742000
                   1128: 1092  00000e83 *                                       .text
                   1129: 1093  0001660D    dd 8f00000e73                        pushl   $L348
                   1130: 1094  00016613    fe 08 effffff626                     callf   $8,_writes
                   1131: 1095  0001661A                                   #                    writed( test_no );
                   1132: 1096  0001661A    dd effffff620                        pushl   _test_no
                   1133: 1097  00016620    fe 08 effffff619                     callf   $8,_writed
                   1134: 1098  00016627                                   #     writes(", subtest 6  - INCORRECT FINAL PSL - STD\n");
                   1135: 1099  00016627                                         .data   1
                   1136: 1100  00000e83 *                                L349:
                   1137: 1101  00000e83 *  2C20737562746573742036202            .ascii  ", subtest 6  - INCORRECT FINAL PSL - STD\12\0"
                   1138:                   02D20494E434F525245435420
                   1139:                   46494E414C2050534C202D205
                   1140:                   354440A00
                   1141: 1102  00000ead *                                       .text
                   1142: 1103  00016627    dd 8f00000e83                        pushl   $L349
                   1143: 1104  0001662D    fe 08 effffff60c                     callf   $8,_writes
                   1144: 1105  00016634                                   #                        print_ldd_data();       /* print the operands      */
                   1145: 1106  00016634    fe 04 ef000000b3                     callf   $4,_print_ldd_data
                   1146: 1107  0001663B                                   #                        writes("\ninitial PSL = ");
                   1147: 1108  0001663B                                         .data   1
                   1148: 1109  00000ead *                                L350:
                   1149: 1110  00000ead *  0A696E697469616C2050534C2            .ascii  "\12initial PSL = \0"
                   1150:                   03D2000
                   1151: 1111  00000ebd *                                       .text
                   1152: 1112  0001663B    dd 8f00000ead                        pushl   $L350
                   1153: 1113  00016641    fe 08 effffff5f8                     callf   $8,_writes
                   1154: 1114  00016648                                   #                        write32h( init_psl );
                   1155: 1115  00016648    dd effffff5f2                        pushl   _init_psl
                   1156: 1116  0001664E    fe 08 effffff5eb                     callf   $8,_write32h
                   1157: 1117  00016655                                   #                        writes(",  final PSL = ");
                   1158: 1118  00016655                                         .data   1
                   1159: 1119  00000ebd *                                L351:
                   1160: 1120  00000ebd *  2C202066696E616C2050534C2            .ascii  ",  final PSL = \0"
                   1161:                   03D2000
                   1162: 1121  00000ecd *                                       .text
                   1163: 1122  00016655    dd 8f00000ebd                        pushl   $L351
                   1164: 1123  0001665B    fe 08 effffff5de                     callf   $8,_writes
                   1165: 1124  00016662                                   #                        write32h( psl_val );
                   1166: 1125  00016662    dd effffff5d8                        pushl   _psl_val
                   1167: 1126  00016668    fe 08 effffff5d1                     callf   $8,_write32h
                   1168: 1127  0001666F                                   #                        writes(",  expected PSL = ");
                   1169: 1128  0001666F                                         .data   1
                   1170: 1129  00000ecd *                                L352:
                   1171: 1130  00000ecd *  2C20206578706563746564205            .ascii  ",  expected PSL = \0"
                   1172:                   0534C203D2000
                   1173: 1131  00000ee0 *                                       .text
                   1174: 1132  0001666F    dd 8f00000ecd                        pushl   $L352
                   1175: 1133  00016675    fe 08 effffff5c4                     callf   $8,_writes
                   1176: 1134  0001667C                                   #                        write32h( exp_psl );
                   1177: 1135  0001667C    dd effffff5be                        pushl   _exp_psl
                   1178: 1136  00016682    fe 08 effffff5b7                     callf   $8,_write32h
                   1179: 1137  00016689                                   #                        writes("\n");
                   1180: 1138  00016689                                         .data   1
                   1181: 1139  00000ee0 *                                L353:
                   1182: 1140  00000ee0 *  0A00                                 .ascii  "\12\0"
                   1183: 1141  00000ee2 *                                       .text
                   1184: 1142  00016689    dd 8f00000ee0                        pushl   $L353
                   1185: 1143  0001668F    fe 08 effffff5aa                     callf   $8,_writes
                   1186: 1144  00016696                                   #                   }
                   1187: 1145  00016696                                   #                   if( halt_flg )   
                   1188: 1146  00016696                                  L345:
                   1189: 1147  00016696    5d effffff5a4                        tstl    _halt_flg
                   1190: 1148  0001669C    31 09                                jeql    L354
                   1191: 1149  0001669E                                   #                       ldd_er_halt( BAD_PSL_HLT );   /* halt on the error */
                   1192: 1150  0001669E    dd 03                                pushl   $3
                   1193: 1151  000166A0    fe 08 ef000000af                     callf   $8,_ldd_er_halt
                   1194: 1152  000166A7                                   #               if( loop_on_err ) {
                   1195: 1153  000166A7                                  L354:
                   1196: 1154  000166A7    5d effffff593                        tstl    _loop_on_err
                   1197: 1155  000166AD    31 0a                                jeql    L355
                   1198: 1156  000166AF                                   #                   force_loop = TRUE;        /* set the force loop flag */
                   1199: 1157  000166AF    0d 01 effffff58a                     movl    $1,_force_loop
                   1200: 1158  000166B6                                   #                   asm("brw _ldd_6_lp1");;   /* and loop                */
                   1201: 1159  000166B6    13 fe99                       brw _ldd_6_lp1
                   1202: 1160  000166B9                                   #               };                            /* end of loop-on-error    */
                   1203: 1161  000166B9                                  L355:
                   1204: 1162  000166B9                                   #         }                                   /* end of compare error    */
                   1205: 1163  000166B9                                   #         if( ++status_index >= 3 )
                   1206: 1164  000166B9                                  L344:
                   1207: 1165  000166B9    6d effffff581                        incl    _status_index
                   1208: 1166  000166BF    0d effffff57b 50                     movl    _status_index,r0
                   1209: 1167  000166C6    1d 50 03                             cmpl    r0,$3
                   1210: 1168  000166C9    91 06                                jlss    L356
                   1211: 1169  000166CB                                   #              status_index = 0;              /* reset the status index  */
                   1212: 1170  000166CB    4d effffff56f                        clrl    _status_index
                   1213: 1171  000166D1                                   #     } while( index++ < max_ldd_1_index );
                   1214: 1172  000166D1                                  L356:
                   1215: 1173  000166D1                                  L339:
                   1216: 1174  000166D1    0d effffff569 50                     movl    _index,r0
                   1217: 1175  000166D8    6d effffff562                        incl    _index
                   1218: 1176  000166DE    1d 50 effffff55b                     cmpl    r0,_max_ldd_1_index
                   1219: 1177  000166E5    81 03 13 fe37                        jlss    L340
                   1220: 1178  000166EA                                  L338:
                   1221: 1179  000166EA                                   # }  /* end of subtest 6 */
                   1222: 1180  000166EA    40                                   ret#2
                   1223: 1181  000166EB                                         .set    L334,0x0
                   1224: 1182  000166EB                                  L336:
                   1225: 1183  000166EB    13 fe21                              jbr     L337
                   1226: 1184  000166EE                                         .data
                   1227: 1185  00000c20 *                                       .text
                   1228: 1186  000166EE                                         .align  1
                   1229: 1187  000166EE                                         .globl  _print_ldd_data
                   1230: 1188  000166EE                                  _print_ldd_data:
                   1231: 1189  000166EE    0000                                 .word   L357
                   1232: 1190  000166F0                                   #   
                   1233: 1191  000166F0                                   # 
                   1234: 1192  000166F0                                   # 
                   1235: 1193  000166F0                                   # /**************************************************************************
                   1236: 1194  000166F0                                   # *
                   1237: 1195  000166F0                                   # *       PRINT THE DATA AND STORE RESULTS
                   1238: 1196  000166F0                                   # *
                   1239: 1197  000166F0                                   # *  Acc loaded = xxxxxxxx xxxxxxxx,  Acc stored = xxxxxxxx xxxxxxxx,  index = xx
                   1240: 1198  000166F0                                   # **************************************************************************/
                   1241: 1199  000166F0                                   # print_ldd_data()
                   1242: 1200  000166F0                                   # {
                   1243: 1201  000166F0    11 61                                jbr     L359
                   1244: 1202  000166F2                                  L360:
                   1245: 1203  000166F2                                   #         writes(" Acc loaded = ");
                   1246: 1204  000166F2                                         .data   1
                   1247: 1205  00000ee2 *                                L361:
                   1248: 1206  00000ee2 *  20416363206C6F61646564203            .ascii  " Acc loaded = \0"
                   1249:                   D2000
                   1250: 1207  00000ef1 *                                       .text
                   1251: 1208  000166F2    dd 8f00000ee2                        pushl   $L361
                   1252: 1209  000166F8    fe 08 effffff541                     callf   $8,_writes
                   1253: 1210  000166FF                                   #         write32h( dbl_ld_acc.m );
                   1254: 1211  000166FF    dd effffff53b                        pushl   _dbl_ld_acc
                   1255: 1212  00016705    fe 08 effffff534                     callf   $8,_write32h
                   1256: 1213  0001670C                                   #         writec(' ');
                   1257: 1214  0001670C    dd 20                                pushl   $32
                   1258: 1215  0001670E    fe 08 effffff52b                     callf   $8,_writec
                   1259: 1216  00016715                                   #         write32h( dbl_ld_acc.l );
                   1260: 1217  00016715    dd effffff529                        pushl   _dbl_ld_acc+4
                   1261: 1218  0001671B    fe 08 effffff51e                     callf   $8,_write32h
                   1262: 1219  00016722                                   #         writes(",  Acc stored = ");
                   1263: 1220  00016722                                         .data   1
                   1264: 1221  00000ef1 *                                L362:
                   1265: 1222  00000ef1 *  2C20204163632073746F72656            .ascii  ",  Acc stored = \0"
                   1266:                   4203D2000
                   1267: 1223  00000f02 *                                       .text
                   1268: 1224  00016722    dd 8f00000ef1                        pushl   $L362
                   1269: 1225  00016728    fe 08 effffff511                     callf   $8,_writes
                   1270: 1226  0001672F                                   #         write32h( dbl_st_acc.m );
                   1271: 1227  0001672F    dd effffff50b                        pushl   _dbl_st_acc
                   1272: 1228  00016735    fe 08 effffff504                     callf   $8,_write32h
                   1273: 1229  0001673C                                   #         writec(' ');
                   1274: 1230  0001673C    dd 20                                pushl   $32
                   1275: 1231  0001673E    fe 08 effffff4fb                     callf   $8,_writec
                   1276: 1232  00016745                                   #         write32h( dbl_st_acc.l );
                   1277: 1233  00016745    dd effffff4f9                        pushl   _dbl_st_acc+4
                   1278: 1234  0001674B    fe 08 effffff4ee                     callf   $8,_write32h
                   1279: 1235  00016752                                   # }
                   1280: 1236  00016752    40                                   ret#2
                   1281: 1237  00016753                                         .set    L357,0x0
                   1282: 1238  00016753                                  L359:
                   1283: 1239  00016753    11 9d                                jbr     L360
                   1284: 1240  00016755                                         .data
                   1285: 1241  00000c20 *                                       .text
                   1286: 1242  00016755    00                                   .align  1
                   1287: 1243  00016756                                         .globl  _ldd_er_halt
                   1288: 1244  00016756                                  _ldd_er_halt:
                   1289: 1245  00016756    0000                                 .word   L363
                   1290: 1246  00016758                                   #   
                   1291: 1247  00016758                                   # 
                   1292: 1248  00016758                                   # 
                   1293: 1249  00016758                                   # /**************************************************************************
                   1294: 1250  00016758                                   # *
                   1295: 1251  00016758                                   # *               HALT ON ERROR ROUTINE 
                   1296: 1252  00016758                                   # *
                   1297: 1253  00016758                                   # **************************************************************************/
                   1298: 1254  00016758                                   # ldd_er_halt( halt_code )
                   1299: 1255  00016758                                   # int halt_code;
                   1300: 1256  00016758                                   # {
                   1301: 1257  00016758    13 00ff                              jbr     L365
                   1302: 1258  0001675B                                  L366:
                   1303: 1259  0001675B                                   #         sgl_value_1 = dbl_ld_acc.m;
                   1304: 1260  0001675B    0d effffff4df effffff4da             movl    _dbl_ld_acc,_sgl_value_1
                   1305: 1261  00016766                                   #         sgl_value_2 = dbl_ld_acc.l;
                   1306: 1262  00016766    0d effffff4d8 effffff4cf             movl    _dbl_ld_acc+4,_sgl_value_2
                   1307: 1263  00016771                                   #         sgl_value_3 = dbl_st_acc.m;
                   1308: 1264  00016771    0d effffff4c9 effffff4c4             movl    _dbl_st_acc,_sgl_value_3
                   1309: 1265  0001677C                                   #         sgl_value_4 = dbl_st_acc.l;
                   1310: 1266  0001677C    0d effffff4c2 effffff4b9             movl    _dbl_st_acc+4,_sgl_value_4
                   1311: 1267  00016787                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
                   1312: 1268  00016787    0d ad04 effffff4b1                   movl    4(fp),_sgl_dummy1
                   1313: 1269  0001678F                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
                   1314: 1270  0001678F    0d effffff4ab 50              movl _test_no,r0
                   1315: 1271  00016796                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
                   1316: 1272  00016796    0d effffff4a4 51              movl _subtest,r1
                   1317: 1273  0001679D                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
                   1318: 1274  0001679D    0d effffff49d 52              movl _sgl_dummy1,r2
                   1319: 1275  000167A4                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
                   1320: 1276  000167A4    0d effffff496 53              movl _cycle,r3
                   1321: 1277  000167AB                                   #         asm("movl _sgl_value_1,r4");            /* r4  = MS operand      */
                   1322: 1278  000167AB    0d effffff48f 54              movl _sgl_value_1,r4
                   1323: 1279  000167B2                                   #         asm("movl _sgl_value_2,r5");            /* r5  = LS operand      */
                   1324: 1280  000167B2    0d effffff488 55              movl _sgl_value_2,r5
                   1325: 1281  000167B9                                   #         asm("movl _sgl_value_3,r6");            /* r6  = MS actual value */
                   1326: 1282  000167B9    0d effffff481 56              movl _sgl_value_3,r6
                   1327: 1283  000167C0                                   #         asm("movl _sgl_value_4,r7");            /* r7  = LS actual value */
                   1328: 1284  000167C0    0d effffff47a 57              movl _sgl_value_4,r7
                   1329: 1285  000167C7                                   #         if( halt_code == BAD_ACC_HLT ) {
                   1330: 1286  000167C7    1d ad04 01                           cmpl    4(fp),$1
                   1331: 1287  000167CB    21 2d                                jneq    L367
                   1332: 1288  000167CD                                   #              sgl_value_1 = dbl_expected.m;
                   1333: 1289  000167CD    0d effffff46d effffff468             movl    _dbl_expected,_sgl_value_1
                   1334: 1290  000167D8                                   #              sgl_value_2 = dbl_expected.l;
                   1335: 1291  000167D8    0d effffff466 effffff45d             movl    _dbl_expected+4,_sgl_value_2
                   1336: 1292  000167E3                                   #              asm("movl _sgl_value_1,r8");       /* r8  = MS expected     */
                   1337: 1293  000167E3    0d effffff457 58              movl _sgl_value_1,r8
                   1338: 1294  000167EA                                   #              asm("movl _sgl_value_2,r9");       /* r9  = LS expected     */
                   1339: 1295  000167EA    0d effffff450 59              movl _sgl_value_2,r9
                   1340: 1296  000167F1                                   #              asm("movl _index,r10");            /* r10 = data index      */
                   1341: 1297  000167F1    0d effffff449 5a              movl _index,r10
                   1342: 1298  000167F8                                   #         } else 
                   1343: 1299  000167F8    11 5e                                jbr     L368
                   1344: 1300  000167FA                                  L367:
                   1345: 1301  000167FA                                   #           if( halt_code == BAD_REG_HLT ) {
                   1346: 1302  000167FA    1d ad04 02                           cmpl    4(fp),$2
                   1347: 1303  000167FE    21 3d                                jneq    L369
                   1348: 1304  00016800                                   #              sgl_dummy1 = load_regs[index2];
                   1349: 1305  00016800    0d effffff43a 50                     movl    _index2,r0
                   1350: 1306  00016807    0d 40effffff432                      movl    _load_regs[r0],_sgl_dummy1
                   1351:                   effffff42d 
                   1352: 1307  00016813                                   #              sgl_dummy2 = store_regs[index2];
                   1353: 1308  00016813    0d effffff427 50                     movl    _index2,r0
                   1354: 1309  0001681A    0d 40effffff41f                      movl    _store_regs[r0],_sgl_dummy2
                   1355:                   effffff41a 
                   1356: 1310  00016826                                   #              asm("movl _index2,r8");            /* r8  = bad register #  */
                   1357: 1311  00016826    0d effffff414 58              movl _index2,r8
                   1358: 1312  0001682D                                   #              asm("movl _sgl_dummy2,r9");        /* r9  = actual value    */
                   1359: 1313  0001682D    0d effffff40d 59              movl _sgl_dummy2,r9
                   1360: 1314  00016834                                   #              asm("movl _sgl_dummy1,r10");       /* r10 = expected value  */
                   1361: 1315  00016834    0d effffff406 5a              movl _sgl_dummy1,r10
                   1362: 1316  0001683B                                   #         } else
                   1363: 1317  0001683B    11 1b                                jbr     L370
                   1364: 1318  0001683D                                  L369:
                   1365: 1319  0001683D                                   #           if( halt_code == BAD_PSL_HLT ) {
                   1366: 1320  0001683D    1d ad04 03                           cmpl    4(fp),$3
                   1367: 1321  00016841    21 15                                jneq    L371
                   1368: 1322  00016843                                   #              asm("movl _init_psl,r8");          /* r8  = initial PSL     */
                   1369: 1323  00016843    0d effffff3f7 58              movl _init_psl,r8
                   1370: 1324  0001684A                                   #              asm("movl _psl_val,r9");           /* r9  = final PSL       */
                   1371: 1325  0001684A    0d effffff3f0 59              movl _psl_val,r9
                   1372: 1326  00016851                                   #              asm("movl _exp_psl,r10");          /* r10 = expected PSL    */
                   1373: 1327  00016851    0d effffff3e9 5a              movl _exp_psl,r10
                   1374: 1328  00016858                                   #         };
                   1375: 1329  00016858                                  L371:
                   1376: 1330  00016858                                  L370:
                   1377: 1331  00016858                                  L368:
                   1378: 1332  00016858                                   #         asm("halt");                            /* HALT ...              */
                   1379: 1333  00016858    00                            halt
                   1380: 1334  00016859                                   # }  
                   1381: 1335  00016859    40                                   ret#2
                   1382: 1336  0001685A                                         .set    L363,0x0
                   1383: 1337  0001685A                                  L365:
                   1384: 1338  0001685A    13 fefe                              jbr     L366
                   1385: 1339  0001685D                                         .data
                   1386: 1339  0002C49D                                         .data

unix.superglobalmegacorp.com

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