File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / macro4 / ldd_std.lst
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:30:56 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

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