File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / macro4 / ldf_stf.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  00000be8 *                                	.text
   4  00000000                                  	.align	1
   5  00000000                                  	.globl	_ldf
   6  00000000                                  _ldf:
   7  0000CA44    0000                          	.word	L215
   8  0000CA46                                   # #include "fpp_defs.h"
   9  0000CA46                                   # 
  10  0000CA46                                   # 
  11  0000CA46                                   # /*****************************************************************************
  12  0000CA46                                   # *
  13  0000CA46                                   # *     LDF_STF - SINGLE PRECISION FLOATING POINT LOAD_STORE  TEST
  14  0000CA46                                   # *
  15  0000CA46                                   # *****************************************************************************/
  16  0000CA46                                   # ldf()
  17  0000CA46                                   # {
  18  0000CA46    11 56                         	jbr 	L217
  19  0000CA48                                  L218:
  20  0000CA48                                   #         asm(".globl _ldf_t");
  21  0000CA48                                  .globl _ldf_t
  22  0000CA48                                   #         asm("_ldf_t:");                        /* entry address              */
  23  0000CA48                                  _ldf_t:
  24  0000CA48                                   #         if( ( cycle == 1 ) && ( prt_hdrs )  )  /* print headers on 1st cycle */
  25  0000CA48    1d effffffff6 01              	cmpl	_cycle,$1
  26  0000CA4F    21 15                         	jneq	L219
  27  0000CA51    5d efffffffed                 	tstl	_prt_hdrs
  28  0000CA57    31 0d                         	jeql	L219
  29  0000CA59                                   #            writes(" LDF_STF");
  30  0000CA59                                  	.data	1
  31  00000be8 *                                L221:
  32  00000be8 *  204C44465F53544600            	.ascii	" LDF_STF\0"
  33  00000bf1 *                                	.text
  34  0000CA59    dd 8f00000be8                 	pushl	$L221
  35  0000CA5F    fe 08 efffffffde              	callf	$8,_writes
  36  0000CA66                                   #         ldf_1();                               /* load through a register    */
  37  0000CA66                                  L219:
  38  0000CA66    fe 04 ef00000033              	callf	$4,_ldf_1
  39  0000CA6D                                   #         ldf_2();                               /* load through the cache     */
  40  0000CA6D    fe 04 ef0000014c              	callf	$4,_ldf_2
  41  0000CA74                                   #         ldf_3();                               /* register stability ldf     */
  42  0000CA74    fe 04 ef0000025f              	callf	$4,_ldf_3
  43  0000CA7B                                   #         ldf_4();                               /* register stability stf     */
  44  0000CA7B    fe 04 ef000003bc              	callf	$4,_ldf_4
  45  0000CA82                                   #         ldf_5();                               /* PSL stability test -LDF    */
  46  0000CA82    fe 04 ef00000519              	callf	$4,_ldf_5
  47  0000CA89                                   #         ldf_6();                               /* PSL stability test -STF    */
  48  0000CA89    fe 04 ef00000664              	callf	$4,_ldf_6
  49  0000CA90                                   #         ldf_7();                               /* pipelined entry test       */
  50  0000CA90    fe 04 ef000007fd              	callf	$4,_ldf_7
  51  0000CA97                                   #         asm("jmp *return");                    /* return to the test monitor */
  52  0000CA97    71 ffffffffa7                 jmp *return
  53  0000CA9D                                   # }
  54  0000CA9D    40                            	ret#2
  55  0000CA9E                                  	.set	L215,0x0
  56  0000CA9E                                  L217:
  57  0000CA9E    11 a8                         	jbr 	L218
  58  0000CAA0                                  	.data
  59  00000be8 *                                	.text
  60  0000CAA0                                  	.align	1
  61  0000CAA0                                  	.globl	_ldf_1
  62  0000CAA0                                  _ldf_1:
  63  0000CAA0    0000                          	.word	L229
  64  0000CAA2                                   #  
  65  0000CAA2                                   # 
  66  0000CAA2                                   # /************************************************************************
  67  0000CAA2                                   # *
  68  0000CAA2                                   # *               SUBTEST 1 - load through a register
  69  0000CAA2                                   # *
  70  0000CAA2                                   # ************************************************************************/
  71  0000CAA2                                   # ldf_1() 
  72  0000CAA2                                   # {
  73  0000CAA2    13 0118                       	jbr 	L231
  74  0000CAA5                                  L232:
  75  0000CAA5                                   #         force_loop = FALSE;
  76  0000CAA5    4d efffffff99                 	clrl	_force_loop
  77  0000CAAB                                   #         subtest = 1;
  78  0000CAAB    0d 01 efffffff92              	movl	$1,_subtest
  79  0000CAB2                                   #         for( index = 0; index < max_ldf_1_index; index++ ) {
  80  0000CAB2    4d efffffff8c                 	clrl	_index
  81  0000CAB8                                  L235:
  82  0000CAB8    1d efffffff86 efffffff81      	cmpl	_index,_max_ldf_1_index
  83  0000CAC3    91 03 13 00f4                 	jgeq	L234
  84  0000CAC8                                   #              sgl_ld_acc   = ldf_1_data[index].ld;   /* get value to load   */
  85  0000CAC8    0d efffffff76 50              	movl	_index,r0
  86  0000CACF    48 03 50 50                   	shll	$3,r0,r0
  87  0000CAD3    0d e000000000 efffffff66      	movl	_ldf_1_data(r0),_sgl_ld_acc
  88  0000CADE                                   #              sgl_expected = ldf_1_data[index].exp;  /* get expected result */
  89  0000CADE    0d efffffff60 50              	movl	_index,r0
  90  0000CAE5    48 03 50 50                   	shll	$3,r0,r0
  91  0000CAE9    0d e000000004 efffffff50      	movl	_ldf_1_data+4(r0),_sgl_expected
  92  0000CAF4                                   # /*
  93  0000CAF4                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
  94  0000CAF4                                   #  * The force loop flag is set after the first error.
  95  0000CAF4                                   # */
  96  0000CAF4                                   #              asm("_ldf_1_lp1:");
  97  0000CAF4                                  _ldf_1_lp1:
  98  0000CAF4                                   #              asm("movl _sgl_ld_acc,r4");        /* get the value to load   */
  99  0000CAF4    0d efffffff4a 54              movl _sgl_ld_acc,r4
 100  0000CAFB                                   #              asm("ldf r4");                     /* load the value          */
 101  0000CAFB    06 54                         ldf r4
 102  0000CAFD                                   #              asm("nop");
 103  0000CAFD    10                            nop
 104  0000CAFE                                   #              asm("stf r5");                     /* store the result in R5  */
 105  0000CAFE    26 55                         stf r5
 106  0000CB00                                   #              if( force_loop )
 107  0000CB00    5d efffffff3e                 	tstl	_force_loop
 108  0000CB06    31 02                         	jeql	L236
 109  0000CB08                                   #                   asm("brb _ldf_1_lp1");;       /* loop on the error       */
 110  0000CB08    11 ea                         brb _ldf_1_lp1
 111  0000CB0A                                  L236:
 112  0000CB0A                                   # /* 
 113  0000CB0A                                   #  * end error loop - test the results
 114  0000CB0A                                   # */
 115  0000CB0A                                   #              asm("movl r5,_sgl_st_acc");        /* move R5 data to cache  */
 116  0000CB0A    0d 55 efffffff33              movl r5,_sgl_st_acc
 117  0000CB11                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 118  0000CB11    1d efffffff2d efffffff28      	cmpl	_sgl_st_acc,_sgl_expected
 119  0000CB1C    21 03 13 0092                 	jeql	L237
 120  0000CB21                                   #                    errcnt++;                    /* bump the error count   */
 121  0000CB21    6d efffffff1d                 	incl	_errcnt
 122  0000CB27                                   #                    if( prt_error ) {
 123  0000CB27    5d efffffff17                 	tstl	_prt_error
 124  0000CB2D    31 61                         	jeql	L238
 125  0000CB2F                                   #                         print_ldf_er_hdr();
 126  0000CB2F    fe 04 ef00000998              	callf	$4,_print_ldf_er_hdr
 127  0000CB36                                   # 			writes(" (Reg. Data) - BAD FINAL ACC\n");
 128  0000CB36                                  	.data	1
 129  00000bf1 *                                L240:
 130  00000bf1 *  20285265672E2044617461292     	.ascii	" (Reg. Data) - BAD FINAL ACC\12\0"
                  02D204241442046494E414C20
                  4143430A00
 131  00000c0f *                                	.text
 132  0000CB36    dd 8f00000bf1                 	pushl	$L240
 133  0000CB3C    fe 08 efffffff01              	callf	$8,_writes
 134  0000CB43                                   #                         print_ldf_data();
 135  0000CB43    fe 04 ef000009f4              	callf	$4,_print_ldf_data
 136  0000CB4A                                   #                         writes(",  data index = ");
 137  0000CB4A                                  	.data	1
 138  00000c0f *                                L242:
 139  00000c0f *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
 140  00000c20 *                                	.text
 141  0000CB4A    dd 8f00000c0f                 	pushl	$L242
 142  0000CB50    fe 08 effffffeed              	callf	$8,_writes
 143  0000CB57                                   #                         writed( index );
 144  0000CB57    dd effffffee7                 	pushl	_index
 145  0000CB5D    fe 08 effffffee0              	callf	$8,_writed
 146  0000CB64                                   #                         writec('\n');
 147  0000CB64    dd 0a                         	pushl	$10
 148  0000CB66    fe 08 effffffed7              	callf	$8,_writec
 149  0000CB6D                                   # 		        writes("                       Acc expected = ");
 150  0000CB6D                                  	.data	1
 151  00000c20 *                                L245:
 152  00000c20 *  2020202020202020202020202     	.ascii	"                       Acc expected = \0"
                  0202020202020202020204163
                  63206578706563746564203D2
                  000
 153  00000c47 *                                	.text
 154  0000CB6D    dd 8f00000c20                 	pushl	$L245
 155  0000CB73    fe 08 effffffeca              	callf	$8,_writes
 156  0000CB7A                                   #                         write32h( sgl_expected );
 157  0000CB7A    dd effffffec4                 	pushl	_sgl_expected
 158  0000CB80    fe 08 effffffebd              	callf	$8,_write32h
 159  0000CB87                                   #                         writec('\n');
 160  0000CB87    dd 0a                         	pushl	$10
 161  0000CB89    fe 08 effffffeb4              	callf	$8,_writec
 162  0000CB90                                   #                    }
 163  0000CB90                                   #                    if( halt_flg ) 
 164  0000CB90                                  L238:
 165  0000CB90    5d effffffeae                 	tstl	_halt_flg
 166  0000CB96    31 09                         	jeql	L247
 167  0000CB98                                   #                         ldf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 168  0000CB98    dd 01                         	pushl	$1
 169  0000CB9A    fe 08 ef000009d9              	callf	$8,_ldf_er_halt
 170  0000CBA1                                   #                    if( loop_on_err ) {
 171  0000CBA1                                  L247:
 172  0000CBA1    5d effffffe9d                 	tstl	_loop_on_err
 173  0000CBA7    31 0a                         	jeql	L249
 174  0000CBA9                                   #                         force_loop = TRUE;       /* set the force loop flag */
 175  0000CBA9    0d 01 effffffe94              	movl	$1,_force_loop
 176  0000CBB0                                   #                         asm("brw _ldf_1_lp1");;  /* and loop on the error   */
 177  0000CBB0    13 ff41                       brw _ldf_1_lp1
 178  0000CBB3                                   #                    } /* end of loop on error */
 179  0000CBB3                                   #               }   /* end of compare error */
 180  0000CBB3                                  L249:
 181  0000CBB3                                   #         }  /* end of WHILE loop */
 182  0000CBB3                                  L237:
 183  0000CBB3                                  L233:
 184  0000CBB3    6d effffffe8b                 	incl	_index
 185  0000CBB9    13 fefc                       	jbr 	L235
 186  0000CBBC                                  L234:
 187  0000CBBC                                   # }  /* end of subtest 1 */
 188  0000CBBC    40                            	ret#2
 189  0000CBBD                                  	.set	L229,0x0
 190  0000CBBD                                  L231:
 191  0000CBBD    13 fee5                       	jbr 	L232
 192  0000CBC0                                  	.data
 193  00000be8 *                                	.text
 194  0000CBC0                                  	.align	1
 195  0000CBC0                                  	.globl	_ldf_2
 196  0000CBC0                                  _ldf_2:
 197  0000CBC0    0000                          	.word	L250
 198  0000CBC2                                   #  
 199  0000CBC2                                   # 
 200  0000CBC2                                   # 
 201  0000CBC2                                   # /************************************************************************
 202  0000CBC2                                   # *
 203  0000CBC2                                   # *               SUBTEST 2 - load through memory
 204  0000CBC2                                   # *
 205  0000CBC2                                   # ************************************************************************/
 206  0000CBC2                                   # ldf_2() 
 207  0000CBC2                                   # {
 208  0000CBC2    13 0112                       	jbr 	L252
 209  0000CBC5                                  L253:
 210  0000CBC5                                   #         force_loop = FALSE;
 211  0000CBC5    4d effffffe79                 	clrl	_force_loop
 212  0000CBCB                                   #         subtest = 2;
 213  0000CBCB    0d 02 effffffe72              	movl	$2,_subtest
 214  0000CBD2                                   #         for( index = 0; index < max_ldf_1_index; index++ ) {
 215  0000CBD2    4d effffffe6c                 	clrl	_index
 216  0000CBD8                                  L256:
 217  0000CBD8    1d effffffe66 effffffe61      	cmpl	_index,_max_ldf_1_index
 218  0000CBE3    91 03 13 00ee                 	jgeq	L255
 219  0000CBE8                                   #              sgl_ld_acc   = ldf_1_data[index].ld;   /* get value to load   */
 220  0000CBE8    0d effffffe56 50              	movl	_index,r0
 221  0000CBEF    48 03 50 50                   	shll	$3,r0,r0
 222  0000CBF3    0d e000000000 effffffe46      	movl	_ldf_1_data(r0),_sgl_ld_acc
 223  0000CBFE                                   #              sgl_expected = ldf_1_data[index].exp;  /* get expected result */
 224  0000CBFE    0d effffffe40 50              	movl	_index,r0
 225  0000CC05    48 03 50 50                   	shll	$3,r0,r0
 226  0000CC09    0d e000000004 effffffe30      	movl	_ldf_1_data+4(r0),_sgl_expected
 227  0000CC14                                   # /*
 228  0000CC14                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 229  0000CC14                                   #  * The force loop flag is set after the first error.
 230  0000CC14                                   # */
 231  0000CC14                                   #              asm("_ldf_2_lp1:");
 232  0000CC14                                  _ldf_2_lp1:
 233  0000CC14                                   #              asm("ldf _sgl_ld_acc");            /* load the value          */
 234  0000CC14    06 effffffe2a                 ldf _sgl_ld_acc
 235  0000CC1A                                   #              asm("nop");
 236  0000CC1A    10                            nop
 237  0000CC1B                                   #              asm("stf _sgl_st_acc");            /* store the result        */
 238  0000CC1B    26 effffffe23                 stf _sgl_st_acc
 239  0000CC21                                   #              if( force_loop )
 240  0000CC21    5d effffffe1d                 	tstl	_force_loop
 241  0000CC27    31 02                         	jeql	L257
 242  0000CC29                                   #                   asm("brb _ldf_2_lp1");;      /* loop on the error       */
 243  0000CC29    11 e9                         brb _ldf_2_lp1
 244  0000CC2B                                  L257:
 245  0000CC2B                                   # /* 
 246  0000CC2B                                   #  * end error loop - test the results
 247  0000CC2B                                   # */
 248  0000CC2B                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 249  0000CC2B    1d effffffe13 effffffe0e      	cmpl	_sgl_st_acc,_sgl_expected
 250  0000CC36    21 03 13 0092                 	jeql	L258
 251  0000CC3B                                   #                    errcnt++;                    /* bump the error count   */
 252  0000CC3B    6d effffffe03                 	incl	_errcnt
 253  0000CC41                                   #                    if( prt_error ) {
 254  0000CC41    5d effffffdfd                 	tstl	_prt_error
 255  0000CC47    31 61                         	jeql	L259
 256  0000CC49                                   #                         print_ldf_er_hdr();
 257  0000CC49    fe 04 ef0000087e              	callf	$4,_print_ldf_er_hdr
 258  0000CC50                                   # 			writes(" (Cache Data) - BAD FINAL ACC\n");
 259  0000CC50                                  	.data	1
 260  00000c47 *                                L260:
 261  00000c47 *  2028436163686520446174612     	.ascii	" (Cache Data) - BAD FINAL ACC\12\0"
                  9202D204241442046494E414C
                  204143430A00
 262  00000c66 *                                	.text
 263  0000CC50    dd 8f00000c47                 	pushl	$L260
 264  0000CC56    fe 08 effffffde7              	callf	$8,_writes
 265  0000CC5D                                   #                         print_ldf_data();
 266  0000CC5D    fe 04 ef000008da              	callf	$4,_print_ldf_data
 267  0000CC64                                   #                         writes(",  data index = ");
 268  0000CC64                                  	.data	1
 269  00000c66 *                                L261:
 270  00000c66 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
 271  00000c77 *                                	.text
 272  0000CC64    dd 8f00000c66                 	pushl	$L261
 273  0000CC6A    fe 08 effffffdd3              	callf	$8,_writes
 274  0000CC71                                   #                         writed( index );
 275  0000CC71    dd effffffdcd                 	pushl	_index
 276  0000CC77    fe 08 effffffdc6              	callf	$8,_writed
 277  0000CC7E                                   #                         writec('\n');
 278  0000CC7E    dd 0a                         	pushl	$10
 279  0000CC80    fe 08 effffffdbd              	callf	$8,_writec
 280  0000CC87                                   # 		        writes("                       Acc expected = ");
 281  0000CC87                                  	.data	1
 282  00000c77 *                                L262:
 283  00000c77 *  2020202020202020202020202     	.ascii	"                       Acc expected = \0"
                  0202020202020202020204163
                  63206578706563746564203D2
                  000
 284  00000c9e *                                	.text
 285  0000CC87    dd 8f00000c77                 	pushl	$L262
 286  0000CC8D    fe 08 effffffdb0              	callf	$8,_writes
 287  0000CC94                                   #                         write32h( sgl_expected );
 288  0000CC94    dd effffffdaa                 	pushl	_sgl_expected
 289  0000CC9A    fe 08 effffffda3              	callf	$8,_write32h
 290  0000CCA1                                   #                         writec('\n');
 291  0000CCA1    dd 0a                         	pushl	$10
 292  0000CCA3    fe 08 effffffd9a              	callf	$8,_writec
 293  0000CCAA                                   #                    }
 294  0000CCAA                                   #                    if( halt_flg ) 
 295  0000CCAA                                  L259:
 296  0000CCAA    5d effffffd94                 	tstl	_halt_flg
 297  0000CCB0    31 09                         	jeql	L263
 298  0000CCB2                                   #                         ldf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 299  0000CCB2    dd 01                         	pushl	$1
 300  0000CCB4    fe 08 ef000008bf              	callf	$8,_ldf_er_halt
 301  0000CCBB                                   #                    if( loop_on_err ) {
 302  0000CCBB                                  L263:
 303  0000CCBB    5d effffffd83                 	tstl	_loop_on_err
 304  0000CCC1    31 0a                         	jeql	L264
 305  0000CCC3                                   #                         force_loop = TRUE;       /* set the force loop flag */
 306  0000CCC3    0d 01 effffffd7a              	movl	$1,_force_loop
 307  0000CCCA                                   #                         asm("brw _ldf_2_lp1");;  /* and loop on the error   */
 308  0000CCCA    13 ff47                       brw _ldf_2_lp1
 309  0000CCCD                                   #                    } /* end of loop on error */
 310  0000CCCD                                   #              }   /* end of compare error */
 311  0000CCCD                                  L264:
 312  0000CCCD                                   #         }  /* end of WHILE loop */
 313  0000CCCD                                  L258:
 314  0000CCCD                                  L254:
 315  0000CCCD    6d effffffd71                 	incl	_index
 316  0000CCD3    13 ff02                       	jbr 	L256
 317  0000CCD6                                  L255:
 318  0000CCD6                                   # }  /* end of subtest 2 */
 319  0000CCD6    40                            	ret#2
 320  0000CCD7                                  	.set	L250,0x0
 321  0000CCD7                                  L252:
 322  0000CCD7    13 feeb                       	jbr 	L253
 323  0000CCDA                                  	.data
 324  00000be8 *                                	.text
 325  0000CCDA                                  	.align	1
 326  0000CCDA                                  	.globl	_ldf_3
 327  0000CCDA                                  _ldf_3:
 328  0000CCDA    0000                          	.word	L265
 329  0000CCDC                                   #  
 330  0000CCDC                                   # 
 331  0000CCDC                                   # 
 332  0000CCDC                                   # /************************************************************************
 333  0000CCDC                                   # *
 334  0000CCDC                                   # *       SUBTEST 3 - Check for register corruption (ldf)
 335  0000CCDC                                   # *
 336  0000CCDC                                   # ************************************************************************/
 337  0000CCDC                                   # ldf_3() 
 338  0000CCDC                                   # {
 339  0000CCDC    13 015c                       	jbr 	L267
 340  0000CCDF                                  L268:
 341  0000CCDF                                   #         force_loop = FALSE;                     /* clear force_loop flg */
 342  0000CCDF    4d effffffd5f                 	clrl	_force_loop
 343  0000CCE5                                   #         subtest = 3;
 344  0000CCE5    0d 03 effffffd58              	movl	$3,_subtest
 345  0000CCEC                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
 346  0000CCEC    dd 8f00000000                 	pushl	$_load_regs
 347  0000CCF2    fe 08 effffffd4b              	callf	$8,_fill_reg_buf
 348  0000CCF9                                   #         index = 0;
 349  0000CCF9    4d effffffd45                 	clrl	_index
 350  0000CCFF                                   #         sgl_ld_acc   = ldf_1_data[0].ld;       /* get value to load   */
 351  0000CCFF    0d effffffd3f effffffd3a      	movl	_ldf_1_data,_sgl_ld_acc
 352  0000CD0A                                   #         sgl_expected = ldf_1_data[0].exp;      /* get expected result */
 353  0000CD0A    0d effffffd38 effffffd2f      	movl	_ldf_1_data+4,_sgl_expected
 354  0000CD15                                   # /*
 355  0000CD15                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 356  0000CD15                                   #  * The force loop flag is set after the first error.
 357  0000CD15                                   # */
 358  0000CD15                                   #         asm("_ldf_3_lp1:");
 359  0000CD15                                  _ldf_3_lp1:
 360  0000CD15                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
 361  0000CD15    ab 891fff effffffd26          loadr $0x1fff,_load_regs
 362  0000CD1E                                   #         asm("nop");
 363  0000CD1E    10                            nop
 364  0000CD1F                                   #         asm("ldf _sgl_ld_acc");                 /* load the accumulator  */
 365  0000CD1F    06 effffffd1f                 ldf _sgl_ld_acc
 366  0000CD25                                   #         asm("nop");
 367  0000CD25    10                            nop
 368  0000CD26                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
 369  0000CD26    bb 891fff effffffd15          storer $0x1fff,_store_regs
 370  0000CD2F                                   #         asm("nop");
 371  0000CD2F    10                            nop
 372  0000CD30                                   #         asm("stf _sgl_st_acc");                 /* save the accumulator  */
 373  0000CD30    26 effffffd0e                 stf _sgl_st_acc
 374  0000CD36                                   #         if( force_loop )
 375  0000CD36    5d effffffd08                 	tstl	_force_loop
 376  0000CD3C    31 02                         	jeql	L270
 377  0000CD3E                                   #              asm("brb _ldf_3_lp1");;           /* loop on the error     */
 378  0000CD3E    11 d5                         brb _ldf_3_lp1
 379  0000CD40                                  L270:
 380  0000CD40                                   # /*
 381  0000CD40                                   #  * Now compare the stored register values to those that were loaded
 382  0000CD40                                   # */
 383  0000CD40                                   #         index2 = 0;
 384  0000CD40    4d effffffcfe                 	clrl	_index2
 385  0000CD46                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
 386  0000CD46                                  L271:
 387  0000CD46    0d effffffcf8 50              	movl	_index2,r0
 388  0000CD4D    0d effffffcf1 51              	movl	_index2,r1
 389  0000CD54    1d 40effffffce9               	cmpl	_load_regs[r0],_store_regs[r1]
                  41effffffce3 
 390  0000CD61    21 11                         	jneq	L272
 391  0000CD63    1d effffffcdb 0d              	cmpl	_index2,$13
 392  0000CD6A    81 08                         	jgeq	L272
 393  0000CD6C                                   #              index2++;                          /* check reg values        */
 394  0000CD6C    6d effffffcd2                 	incl	_index2
 395  0000CD72    11 d2                         	jbr 	L271
 396  0000CD74                                  L272:
 397  0000CD74                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
 398  0000CD74    1d effffffcca 0d              	cmpl	_index2,$13
 399  0000CD7B    91 03 13 00ba                 	jgeq	L273
 400  0000CD80                                   #              errcnt++;                          /* bump the error count    */
 401  0000CD80    6d effffffcbe                 	incl	_errcnt
 402  0000CD86                                   #              if( prt_error ) {
 403  0000CD86    5d effffffcb8                 	tstl	_prt_error
 404  0000CD8C    21 03 13 0086                 	jeql	L274
 405  0000CD91                                   #                   print_ldf_er_hdr();
 406  0000CD91    fe 04 ef00000736              	callf	$4,_print_ldf_er_hdr
 407  0000CD98                                   # 		  writes(" - A REGISTER WAS MODIFIED\n");
 408  0000CD98                                  	.data	1
 409  00000c9e *                                L275:
 410  00000c9e *  202D204120524547495354455     	.ascii	" - A REGISTER WAS MODIFIED\12\0"
                  220574153204D4F4449464945
                  440A00
 411  00000cba *                                	.text
 412  0000CD98    dd 8f00000c9e                 	pushl	$L275
 413  0000CD9E    fe 08 effffffc9f              	callf	$8,_writes
 414  0000CDA5                                   #                   print_ldf_data();
 415  0000CDA5    fe 04 ef00000792              	callf	$4,_print_ldf_data
 416  0000CDAC                                   #                   writes("register ");          /* print the information   */
 417  0000CDAC                                  	.data	1
 418  00000cba *                                L276:
 419  00000cba *  72656769737465722000          	.ascii	"register \0"
 420  00000cc4 *                                	.text
 421  0000CDAC    dd 8f00000cba                 	pushl	$L276
 422  0000CDB2    fe 08 effffffc8b              	callf	$8,_writes
 423  0000CDB9                                   #                   writed( index2 );             /*    about the corrupted  */
 424  0000CDB9    dd effffffc85                 	pushl	_index2
 425  0000CDBF    fe 08 effffffc7e              	callf	$8,_writed
 426  0000CDC6                                   #                   writes(" = ");                /*        register         */
 427  0000CDC6                                  	.data	1
 428  00000cc4 *                                L277:
 429  00000cc4 *  203D2000                      	.ascii	" = \0"
 430  00000cc8 *                                	.text
 431  0000CDC6    dd 8f00000cc4                 	pushl	$L277
 432  0000CDCC    fe 08 effffffc71              	callf	$8,_writes
 433  0000CDD3                                   #                   write32h( store_regs[index2] );
 434  0000CDD3    0d effffffc6b 50              	movl	_index2,r0
 435  0000CDDA    dd 40effffffc63               	pushl	_store_regs[r0]
 436  0000CDE1    fe 08 effffffc5c              	callf	$8,_write32h
 437  0000CDE8                                   #                   writes(",  should be = ");
 438  0000CDE8                                  	.data	1
 439  00000cc8 *                                L278:
 440  00000cc8 *  2C202073686F756C642062652     	.ascii	",  should be = \0"
                  03D2000
 441  00000cd8 *                                	.text
 442  0000CDE8    dd 8f00000cc8                 	pushl	$L278
 443  0000CDEE    fe 08 effffffc4f              	callf	$8,_writes
 444  0000CDF5                                   #                   write32h( load_regs[index2] );
 445  0000CDF5    0d effffffc49 50              	movl	_index2,r0
 446  0000CDFC    dd 40effffffc41               	pushl	_load_regs[r0]
 447  0000CE03    fe 08 effffffc3a              	callf	$8,_write32h
 448  0000CE0A                                   #                   writes("\n");
 449  0000CE0A                                  	.data	1
 450  00000cd8 *                                L279:
 451  00000cd8 *  0A00                          	.ascii	"\12\0"
 452  00000cda *                                	.text
 453  0000CE0A    dd 8f00000cd8                 	pushl	$L279
 454  0000CE10    fe 08 effffffc2d              	callf	$8,_writes
 455  0000CE17                                   #              }
 456  0000CE17                                   #              if( halt_flg )   
 457  0000CE17                                  L274:
 458  0000CE17    5d effffffc27                 	tstl	_halt_flg
 459  0000CE1D    31 09                         	jeql	L280
 460  0000CE1F                                   #                   ldf_er_halt( BAD_REG_HLT );  /* halt on the error      */
 461  0000CE1F    dd 02                         	pushl	$2
 462  0000CE21    fe 08 ef00000752              	callf	$8,_ldf_er_halt
 463  0000CE28                                   #              if( loop_on_err ) {
 464  0000CE28                                  L280:
 465  0000CE28    5d effffffc16                 	tstl	_loop_on_err
 466  0000CE2E    31 0a                         	jeql	L281
 467  0000CE30                                   #                   force_loop = TRUE;       /* set the force loop flag */
 468  0000CE30    0d 01 effffffc0d              	movl	$1,_force_loop
 469  0000CE37                                   #                   asm("brw _ldf_3_lp1");   /* and loop on the error   */
 470  0000CE37    13 fedb                       brw _ldf_3_lp1
 471  0000CE3A                                   #              } /* end of loop on error */
 472  0000CE3A                                   #         }  /* end of register corruption error */
 473  0000CE3A                                  L281:
 474  0000CE3A                                   # }  /* end of subtest 3 */
 475  0000CE3A                                  L273:
 476  0000CE3A    40                            	ret#2
 477  0000CE3B                                  	.set	L265,0x0
 478  0000CE3B                                  L267:
 479  0000CE3B    13 fea1                       	jbr 	L268
 480  0000CE3E                                  	.data
 481  00000be8 *                                	.text
 482  0000CE3E                                  	.align	1
 483  0000CE3E                                  	.globl	_ldf_4
 484  0000CE3E                                  _ldf_4:
 485  0000CE3E    0000                          	.word	L282
 486  0000CE40                                   #   
 487  0000CE40                                   # 
 488  0000CE40                                   # 
 489  0000CE40                                   # /************************************************************************
 490  0000CE40                                   # *
 491  0000CE40                                   # *       SUBTEST 4 - Check for register corruption (stf)
 492  0000CE40                                   # *
 493  0000CE40                                   # ************************************************************************/
 494  0000CE40                                   # ldf_4() 
 495  0000CE40                                   # {
 496  0000CE40    13 015c                       	jbr 	L284
 497  0000CE43                                  L285:
 498  0000CE43                                   #         force_loop = FALSE;                     /* clear force_loop flg */
 499  0000CE43    4d effffffbfb                 	clrl	_force_loop
 500  0000CE49                                   #         subtest = 4;
 501  0000CE49    0d 04 effffffbf4              	movl	$4,_subtest
 502  0000CE50                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
 503  0000CE50    dd 8f00000000                 	pushl	$_load_regs
 504  0000CE56    fe 08 effffffbe7              	callf	$8,_fill_reg_buf
 505  0000CE5D                                   #         index = 0;
 506  0000CE5D    4d effffffbe1                 	clrl	_index
 507  0000CE63                                   #         sgl_ld_acc   = ldf_1_data[0].ld;       /* get value to store  */
 508  0000CE63    0d effffffbdb effffffbd6      	movl	_ldf_1_data,_sgl_ld_acc
 509  0000CE6E                                   #         sgl_expected = ldf_1_data[0].exp;      /* get expected result */
 510  0000CE6E    0d effffffbd4 effffffbcb      	movl	_ldf_1_data+4,_sgl_expected
 511  0000CE79                                   # /*
 512  0000CE79                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 513  0000CE79                                   #  * The force loop flag is set after the first error.
 514  0000CE79                                   # */
 515  0000CE79                                   #         asm("_ldf_4_lp1:");
 516  0000CE79                                  _ldf_4_lp1:
 517  0000CE79                                   #         asm("ldf _sgl_ld_acc");                 /* load the accumulator  */
 518  0000CE79    06 effffffbc5                 ldf _sgl_ld_acc
 519  0000CE7F                                   #         asm("nop");
 520  0000CE7F    10                            nop
 521  0000CE80                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
 522  0000CE80    ab 891fff effffffbbb          loadr $0x1fff,_load_regs
 523  0000CE89                                   #         asm("nop");
 524  0000CE89    10                            nop
 525  0000CE8A                                   #         asm("stf _sgl_st_acc");                 /* save the accumulator  */
 526  0000CE8A    26 effffffbb4                 stf _sgl_st_acc
 527  0000CE90                                   #         asm("nop");
 528  0000CE90    10                            nop
 529  0000CE91                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
 530  0000CE91    bb 891fff effffffbaa          storer $0x1fff,_store_regs
 531  0000CE9A                                   #         if( force_loop )
 532  0000CE9A    5d effffffba4                 	tstl	_force_loop
 533  0000CEA0    31 02                         	jeql	L286
 534  0000CEA2                                   #              asm("brb _ldf_4_lp1");;           /* loop on the error     */
 535  0000CEA2    11 d5                         brb _ldf_4_lp1
 536  0000CEA4                                  L286:
 537  0000CEA4                                   # /*
 538  0000CEA4                                   #  * Now compare the stored register values to those that were loaded
 539  0000CEA4                                   # */
 540  0000CEA4                                   #         index2 = 0;
 541  0000CEA4    4d effffffb9a                 	clrl	_index2
 542  0000CEAA                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
 543  0000CEAA                                  L287:
 544  0000CEAA    0d effffffb94 50              	movl	_index2,r0
 545  0000CEB1    0d effffffb8d 51              	movl	_index2,r1
 546  0000CEB8    1d 40effffffb85               	cmpl	_load_regs[r0],_store_regs[r1]
                  41effffffb7f 
 547  0000CEC5    21 11                         	jneq	L288
 548  0000CEC7    1d effffffb77 0d              	cmpl	_index2,$13
 549  0000CECE    81 08                         	jgeq	L288
 550  0000CED0                                   #              index2++;                          /* check reg values        */
 551  0000CED0    6d effffffb6e                 	incl	_index2
 552  0000CED6    11 d2                         	jbr 	L287
 553  0000CED8                                  L288:
 554  0000CED8                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
 555  0000CED8    1d effffffb66 0d              	cmpl	_index2,$13
 556  0000CEDF    91 03 13 00ba                 	jgeq	L289
 557  0000CEE4                                   #              errcnt++;                          /* bump the error count    */
 558  0000CEE4    6d effffffb5a                 	incl	_errcnt
 559  0000CEEA                                   #              if( prt_error ) {
 560  0000CEEA    5d effffffb54                 	tstl	_prt_error
 561  0000CEF0    21 03 13 0086                 	jeql	L290
 562  0000CEF5                                   #                   print_ldf_er_hdr();
 563  0000CEF5    fe 04 ef000005d2              	callf	$4,_print_ldf_er_hdr
 564  0000CEFC                                   # 		  writes(" - A REGISTER WAS MODIFIED\n");
 565  0000CEFC                                  	.data	1
 566  00000cda *                                L291:
 567  00000cda *  202D204120524547495354455     	.ascii	" - A REGISTER WAS MODIFIED\12\0"
                  220574153204D4F4449464945
                  440A00
 568  00000cf6 *                                	.text
 569  0000CEFC    dd 8f00000cda                 	pushl	$L291
 570  0000CF02    fe 08 effffffb3b              	callf	$8,_writes
 571  0000CF09                                   #                   print_ldf_data();
 572  0000CF09    fe 04 ef0000062e              	callf	$4,_print_ldf_data
 573  0000CF10                                   #                   writes("register ");          /* print the information   */
 574  0000CF10                                  	.data	1
 575  00000cf6 *                                L292:
 576  00000cf6 *  72656769737465722000          	.ascii	"register \0"
 577  00000d00 *                                	.text
 578  0000CF10    dd 8f00000cf6                 	pushl	$L292
 579  0000CF16    fe 08 effffffb27              	callf	$8,_writes
 580  0000CF1D                                   #                   writed( index2 );             /*    about the corrupted  */
 581  0000CF1D    dd effffffb21                 	pushl	_index2
 582  0000CF23    fe 08 effffffb1a              	callf	$8,_writed
 583  0000CF2A                                   #                   writes(" = ");                /*        register         */
 584  0000CF2A                                  	.data	1
 585  00000d00 *                                L293:
 586  00000d00 *  203D2000                      	.ascii	" = \0"
 587  00000d04 *                                	.text
 588  0000CF2A    dd 8f00000d00                 	pushl	$L293
 589  0000CF30    fe 08 effffffb0d              	callf	$8,_writes
 590  0000CF37                                   #                   write32h( store_regs[index2] );
 591  0000CF37    0d effffffb07 50              	movl	_index2,r0
 592  0000CF3E    dd 40effffffaff               	pushl	_store_regs[r0]
 593  0000CF45    fe 08 effffffaf8              	callf	$8,_write32h
 594  0000CF4C                                   #                   writes(",  should be = ");
 595  0000CF4C                                  	.data	1
 596  00000d04 *                                L294:
 597  00000d04 *  2C202073686F756C642062652     	.ascii	",  should be = \0"
                  03D2000
 598  00000d14 *                                	.text
 599  0000CF4C    dd 8f00000d04                 	pushl	$L294
 600  0000CF52    fe 08 effffffaeb              	callf	$8,_writes
 601  0000CF59                                   #                   write32h( load_regs[index2] );
 602  0000CF59    0d effffffae5 50              	movl	_index2,r0
 603  0000CF60    dd 40effffffadd               	pushl	_load_regs[r0]
 604  0000CF67    fe 08 effffffad6              	callf	$8,_write32h
 605  0000CF6E                                   #                   writes("\n");
 606  0000CF6E                                  	.data	1
 607  00000d14 *                                L295:
 608  00000d14 *  0A00                          	.ascii	"\12\0"
 609  00000d16 *                                	.text
 610  0000CF6E    dd 8f00000d14                 	pushl	$L295
 611  0000CF74    fe 08 effffffac9              	callf	$8,_writes
 612  0000CF7B                                   #              }
 613  0000CF7B                                   #              if( halt_flg )   
 614  0000CF7B                                  L290:
 615  0000CF7B    5d effffffac3                 	tstl	_halt_flg
 616  0000CF81    31 09                         	jeql	L296
 617  0000CF83                                   #                   ldf_er_halt( BAD_REG_HLT );  /* halt on the error      */
 618  0000CF83    dd 02                         	pushl	$2
 619  0000CF85    fe 08 ef000005ee              	callf	$8,_ldf_er_halt
 620  0000CF8C                                   #              if( loop_on_err ) {
 621  0000CF8C                                  L296:
 622  0000CF8C    5d effffffab2                 	tstl	_loop_on_err
 623  0000CF92    31 0a                         	jeql	L297
 624  0000CF94                                   #                   force_loop = TRUE;       /* set the force loop flag */
 625  0000CF94    0d 01 effffffaa9              	movl	$1,_force_loop
 626  0000CF9B                                   #                   asm("brw _ldf_4_lp1");   /* and loop on the error   */
 627  0000CF9B    13 fedb                       brw _ldf_4_lp1
 628  0000CF9E                                   #              } /* end of loop on error */
 629  0000CF9E                                   #         }  /* end of register corruption error */
 630  0000CF9E                                  L297:
 631  0000CF9E                                   # }  /* end of subtest 4 */
 632  0000CF9E                                  L289:
 633  0000CF9E    40                            	ret#2
 634  0000CF9F                                  	.set	L282,0x0
 635  0000CF9F                                  L284:
 636  0000CF9F    13 fea1                       	jbr 	L285
 637  0000CFA2                                  	.data
 638  00000be8 *                                	.text
 639  0000CFA2                                  	.align	1
 640  0000CFA2                                  	.globl	_ldf_5
 641  0000CFA2                                  _ldf_5:
 642  0000CFA2    0000                          	.word	L298
 643  0000CFA4                                   #   
 644  0000CFA4                                   # 
 645  0000CFA4                                   # 
 646  0000CFA4                                   # /************************************************************************
 647  0000CFA4                                   # *
 648  0000CFA4                                   # *       SUBTEST 5 - Check for PSL corruption (ldf)
 649  0000CFA4                                   # *
 650  0000CFA4                                   # ************************************************************************/
 651  0000CFA4                                   # ldf_5() 
 652  0000CFA4                                   # {
 653  0000CFA4    13 014a                       	jbr 	L300
 654  0000CFA7                                  L301:
 655  0000CFA7                                   #         force_loop = FALSE;                     /* clear force_loop flg */
 656  0000CFA7    4d effffffa97                 	clrl	_force_loop
 657  0000CFAD                                   #         subtest = 5;
 658  0000CFAD    0d 05 effffffa90              	movl	$5,_subtest
 659  0000CFB4                                   #         for( index = 0; index < 3; index++ ) {
 660  0000CFB4    4d effffffa8a                 	clrl	_index
 661  0000CFBA                                  L304:
 662  0000CFBA    1d effffffa84 03              	cmpl	_index,$3
 663  0000CFC1    91 03 13 012a                 	jgeq	L303
 664  0000CFC6                                   #              sgl_ld_acc   = ldf_1_data[index].ld;      /* get value to load */
 665  0000CFC6    0d effffffa78 50              	movl	_index,r0
 666  0000CFCD    48 03 50 50                   	shll	$3,r0,r0
 667  0000CFD1    0d e000000000 effffffa68      	movl	_ldf_1_data(r0),_sgl_ld_acc
 668  0000CFDC                                   #              sgl_expected = ldf_1_data[index].exp;     /* get expected  */
 669  0000CFDC    0d effffffa62 50              	movl	_index,r0
 670  0000CFE3    48 03 50 50                   	shll	$3,r0,r0
 671  0000CFE7    0d e000000004 effffffa52      	movl	_ldf_1_data+4(r0),_sgl_expected
 672  0000CFF2                                   #              sgl_dummy1 = status_array[status_index];    /* status = +, -, 0 */
 673  0000CFF2    0d effffffa4c 50              	movl	_status_index,r0
 674  0000CFF9    0d 40effffffa44               	movl	_status_array[r0],_sgl_dummy1
                  effffffa3f 
 675  0000D005                                   # /*
 676  0000D005                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 677  0000D005                                   #  * The force loop flag is set after the first error.
 678  0000D005                                   # */
 679  0000D005                                   #              asm("_ldf_5_lp1:");
 680  0000D005                                  _ldf_5_lp1:
 681  0000D005                                   #              asm("tstl _sgl_dummy1");		/* set the PSL status    */
 682  0000D005    5d effffffa39                 tstl _sgl_dummy1
 683  0000D00B                                   # 	     asm("movpsl _init_psl");		/* save the initial PSL  */
 684  0000D00B    cd effffffa33                 movpsl _init_psl
 685  0000D011                                   #              asm("nop");
 686  0000D011    10                            nop
 687  0000D012                                   #              asm("ldf _sgl_ld_acc");            /* load the accumulator  */
 688  0000D012    06 effffffa2c                 ldf _sgl_ld_acc
 689  0000D018                                   #              asm("nop");
 690  0000D018    10                            nop
 691  0000D019                                   #              asm("movpsl _psl_val");            /* save the final PSL    */
 692  0000D019    cd effffffa25                 movpsl _psl_val
 693  0000D01F                                   #              asm("nop");
 694  0000D01F    10                            nop
 695  0000D020                                   #              asm("stf _sgl_st_acc");            /* save the accumulator  */
 696  0000D020    26 effffffa1e                 stf _sgl_st_acc
 697  0000D026                                   #              if( force_loop )
 698  0000D026    5d effffffa18                 	tstl	_force_loop
 699  0000D02C    31 02                         	jeql	L305
 700  0000D02E                                   #                   asm("brb _ldf_5_lp1");;      /* loop on the error     */
 701  0000D02E    11 d5                         brb _ldf_5_lp1
 702  0000D030                                  L305:
 703  0000D030                                   # /*
 704  0000D030                                   #  * Now compare the final PSL to the initial PSL -they should be the same
 705  0000D030                                   # */
 706  0000D030                                   #              if( psl_val != init_psl ) {
 707  0000D030    1d effffffa0e effffffa09      	cmpl	_psl_val,_init_psl
 708  0000D03B    21 03 13 00a7                 	jeql	L306
 709  0000D040                                   #                   errcnt++;                     /* bump the error count    */
 710  0000D040    6d effffff9fe                 	incl	_errcnt
 711  0000D046                                   #                   if( prt_error ) {
 712  0000D046    5d effffff9f8                 	tstl	_prt_error
 713  0000D04C    31 76                         	jeql	L307
 714  0000D04E                                   #                        print_ldf_er_hdr();
 715  0000D04E    fe 04 ef00000479              	callf	$4,_print_ldf_er_hdr
 716  0000D055                                   # 		       writes(" - INCORRECT FINAL PSL\n");
 717  0000D055                                  	.data	1
 718  00000d16 *                                L308:
 719  00000d16 *  202D20494E434F52524543542     	.ascii	" - INCORRECT FINAL PSL\12\0"
                  046494E414C2050534C0A00
 720  00000d2e *                                	.text
 721  0000D055    dd 8f00000d16                 	pushl	$L308
 722  0000D05B    fe 08 effffff9e2              	callf	$8,_writes
 723  0000D062                                   #                        print_ldf_data();
 724  0000D062    fe 04 ef000004d5              	callf	$4,_print_ldf_data
 725  0000D069                                   #                        writes("initial PSL = ");
 726  0000D069                                  	.data	1
 727  00000d2e *                                L309:
 728  00000d2e *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
 729  00000d3d *                                	.text
 730  0000D069    dd 8f00000d2e                 	pushl	$L309
 731  0000D06F    fe 08 effffff9ce              	callf	$8,_writes
 732  0000D076                                   #                        write32h( init_psl );
 733  0000D076    dd effffff9c8                 	pushl	_init_psl
 734  0000D07C    fe 08 effffff9c1              	callf	$8,_write32h
 735  0000D083                                   #                        writes(",   final PSL = ");
 736  0000D083                                  	.data	1
 737  00000d3d *                                L310:
 738  00000d3d *  2C20202066696E616C2050534     	.ascii	",   final PSL = \0"
                  C203D2000
 739  00000d4e *                                	.text
 740  0000D083    dd 8f00000d3d                 	pushl	$L310
 741  0000D089    fe 08 effffff9b4              	callf	$8,_writes
 742  0000D090                                   #                        write32h( psl_val );
 743  0000D090    dd effffff9ae                 	pushl	_psl_val
 744  0000D096    fe 08 effffff9a7              	callf	$8,_write32h
 745  0000D09D                                   #                        writes(",  expected PSL = ");
 746  0000D09D                                  	.data	1
 747  00000d4e *                                L311:
 748  00000d4e *  2C20206578706563746564205     	.ascii	",  expected PSL = \0"
                  0534C203D2000
 749  00000d61 *                                	.text
 750  0000D09D    dd 8f00000d4e                 	pushl	$L311
 751  0000D0A3    fe 08 effffff99a              	callf	$8,_writes
 752  0000D0AA                                   #                        write32h( exp_psl );
 753  0000D0AA    dd effffff994                 	pushl	_exp_psl
 754  0000D0B0    fe 08 effffff98d              	callf	$8,_write32h
 755  0000D0B7                                   #                        writes("\n");
 756  0000D0B7                                  	.data	1
 757  00000d61 *                                L312:
 758  00000d61 *  0A00                          	.ascii	"\12\0"
 759  00000d63 *                                	.text
 760  0000D0B7    dd 8f00000d61                 	pushl	$L312
 761  0000D0BD    fe 08 effffff980              	callf	$8,_writes
 762  0000D0C4                                   #                   }
 763  0000D0C4                                   #                   if( halt_flg )   
 764  0000D0C4                                  L307:
 765  0000D0C4    5d effffff97a                 	tstl	_halt_flg
 766  0000D0CA    31 09                         	jeql	L313
 767  0000D0CC                                   #                        ldf_er_halt( BAD_PSL_HLT );   /* halt on the error */
 768  0000D0CC    dd 03                         	pushl	$3
 769  0000D0CE    fe 08 ef000004a5              	callf	$8,_ldf_er_halt
 770  0000D0D5                                   #                   if( loop_on_err ) {
 771  0000D0D5                                  L313:
 772  0000D0D5    5d effffff969                 	tstl	_loop_on_err
 773  0000D0DB    31 0a                         	jeql	L314
 774  0000D0DD                                   #                        force_loop = TRUE;       /* set the force loop flag */
 775  0000D0DD    0d 01 effffff960              	movl	$1,_force_loop
 776  0000D0E4                                   #                        asm("brw _ldf_5_lp1");;  /* and loop on the error   */
 777  0000D0E4    13 ff1e                       brw _ldf_5_lp1
 778  0000D0E7                                   #                   } /* end of loop on error */
 779  0000D0E7                                   #              }  /* end of PSL corruption error */
 780  0000D0E7                                  L314:
 781  0000D0E7                                   #         }  /* end of WHILE loop */
 782  0000D0E7                                  L306:
 783  0000D0E7                                  L302:
 784  0000D0E7    6d effffff957                 	incl	_index
 785  0000D0ED    13 feca                       	jbr 	L304
 786  0000D0F0                                  L303:
 787  0000D0F0                                   # }  /* end of subtest 5 */
 788  0000D0F0    40                            	ret#2
 789  0000D0F1                                  	.set	L298,0x0
 790  0000D0F1                                  L300:
 791  0000D0F1    13 feb3                       	jbr 	L301
 792  0000D0F4                                  	.data
 793  00000be8 *                                	.text
 794  0000D0F4                                  	.align	1
 795  0000D0F4                                  	.globl	_ldf_6
 796  0000D0F4                                  _ldf_6:
 797  0000D0F4    0000                          	.word	L315
 798  0000D0F6                                   #   
 799  0000D0F6                                   # 
 800  0000D0F6                                   # 
 801  0000D0F6                                   # /************************************************************************
 802  0000D0F6                                   # *
 803  0000D0F6                                   # *       SUBTEST 6 - Check for PSL corruption (stf)
 804  0000D0F6                                   # *
 805  0000D0F6                                   # ************************************************************************/
 806  0000D0F6                                   # ldf_6() 
 807  0000D0F6                                   # {
 808  0000D0F6    13 0197                       	jbr 	L317
 809  0000D0F9                                  L318:
 810  0000D0F9                                   # 	force_loop = FALSE;
 811  0000D0F9    4d effffff945                 	clrl	_force_loop
 812  0000D0FF                                   # 	index = 0;				  /* clear the data index */
 813  0000D0FF    4d effffff93f                 	clrl	_index
 814  0000D105                                   # 	status_index = 0;			  /* clear the status index */
 815  0000D105    4d effffff939                 	clrl	_status_index
 816  0000D10B                                   # 	do {
 817  0000D10B                                  L321:
 818  0000D10B                                   # 	   sgl_ld_acc   = ldf_1_data[index].ld;   /* get the dbl operand    */
 819  0000D10B    0d effffff933 50              	movl	_index,r0
 820  0000D112    48 03 50 50                   	shll	$3,r0,r0
 821  0000D116    0d e000000000 effffff923      	movl	_ldf_1_data(r0),_sgl_ld_acc
 822  0000D121                                   # 	   sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
 823  0000D121    0d effffff91d 50              	movl	_status_index,r0
 824  0000D128    0d 40effffff915               	movl	_status_array[r0],_sgl_dummy1
                  effffff910 
 825  0000D134                                   # /*
 826  0000D134                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 827  0000D134                                   #  * The force loop flag is set after the first error.
 828  0000D134                                   # */
 829  0000D134                                   # 	   asm("_ldf_6_lp1:");
 830  0000D134                                  _ldf_6_lp1:
 831  0000D134                                   # 	   asm("ldf _sgl_ld_acc");		/* load the operand        */
 832  0000D134    06 effffff90a                 ldf _sgl_ld_acc
 833  0000D13A                                   # 	   asm("tstl _sgl_dummy1");		/* generate initial status */
 834  0000D13A    5d effffff904                 tstl _sgl_dummy1
 835  0000D140                                   # 	   asm("movpsl _init_psl");		/* save the initial status */
 836  0000D140    cd effffff8fe                 movpsl _init_psl
 837  0000D146                                   # 	   asm("stf _sgl_st_acc");		/* save the accumulator    */
 838  0000D146    26 effffff8f8                 stf _sgl_st_acc
 839  0000D14C                                   # 	   asm("movpsl _psl_val");		/* save the final status   */
 840  0000D14C    cd effffff8f2                 movpsl _psl_val
 841  0000D152                                   # 	   if( force_loop ) 			/* loop?                   */
 842  0000D152    5d effffff8ec                 	tstl	_force_loop
 843  0000D158    31 06                         	jeql	L322
 844  0000D15A                                   # 	         asm("jmp _ldf_6_lp1");;	/* run the loop again      */
 845  0000D15A    71 efffffffd4                 jmp _ldf_6_lp1
 846  0000D160                                  L322:
 847  0000D160                                   # 	   exp_psl = init_psl;			/* get the initial PSL     */
 848  0000D160    0d effffff8de effffff8d9      	movl	_init_psl,_exp_psl
 849  0000D16B                                   # 	   exp_psl &= 0xfffffff3;		/* clear ZERO, NEGATIVE    */
 850  0000D16B    ac 88f3 effffff8d1            	andl2	$-13,_exp_psl
 851  0000D173                                   # 	   sgl_dummy2 = sgl_ld_acc;		/* get the operand         */
 852  0000D173    0d effffff8cb effffff8c6      	movl	_sgl_ld_acc,_sgl_dummy2
 853  0000D17E                                   # 	   sgl_dummy2 &= 0xff800000;		/* clear the fraction part */
 854  0000D17E    ac 8fff800000 effffff8bb      	andl2	$-8388608,_sgl_dummy2
 855  0000D189                                   # 	   if( !sgl_dummy2 )
 856  0000D189    5d effffff8b5                 	tstl	_sgl_dummy2
 857  0000D18F    21 07                         	jneq	L323
 858  0000D191                                   # 		 exp_psl |= PSL_Z;		/* expect the ZERO bit set */
 859  0000D191    8c 04 effffff8ac              	orl2	$4,_exp_psl
 860  0000D198                                   # 	   if( sgl_dummy2 < 0 )
 861  0000D198                                  L323:
 862  0000D198    5d effffff8a6                 	tstl	_sgl_dummy2
 863  0000D19E    81 07                         	jgeq	L324
 864  0000D1A0                                   # 		 exp_psl |= PSL_N;		/* expect the NEG bit set  */
 865  0000D1A0    8c 08 effffff89d              	orl2	$8,_exp_psl
 866  0000D1A7                                   # 	   if( psl_val != exp_psl ) {		/* COMPARE the values      */
 867  0000D1A7                                  L324:
 868  0000D1A7    1d effffff897 effffff892      	cmpl	_psl_val,_exp_psl
 869  0000D1B2    21 03 13 00a7                 	jeql	L325
 870  0000D1B7                                   # 	          errcnt++;			/* bump the error count    */
 871  0000D1B7    6d effffff887                 	incl	_errcnt
 872  0000D1BD                                   # 	          if( prt_error ) {
 873  0000D1BD    5d effffff881                 	tstl	_prt_error
 874  0000D1C3    31 76                         	jeql	L326
 875  0000D1C5                                   #                        print_ldf_er_hdr();
 876  0000D1C5    fe 04 ef00000302              	callf	$4,_print_ldf_er_hdr
 877  0000D1CC                                   # 		       writes(" - INCORRECT FINAL PSL\n");
 878  0000D1CC                                  	.data	1
 879  00000d63 *                                L327:
 880  00000d63 *  202D20494E434F52524543542     	.ascii	" - INCORRECT FINAL PSL\12\0"
                  046494E414C2050534C0A00
 881  00000d7b *                                	.text
 882  0000D1CC    dd 8f00000d63                 	pushl	$L327
 883  0000D1D2    fe 08 effffff86b              	callf	$8,_writes
 884  0000D1D9                                   #                        print_ldf_data();
 885  0000D1D9    fe 04 ef0000035e              	callf	$4,_print_ldf_data
 886  0000D1E0                                   #                        writes("initial PSL = ");
 887  0000D1E0                                  	.data	1
 888  00000d7b *                                L328:
 889  00000d7b *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
 890  00000d8a *                                	.text
 891  0000D1E0    dd 8f00000d7b                 	pushl	$L328
 892  0000D1E6    fe 08 effffff857              	callf	$8,_writes
 893  0000D1ED                                   #                        write32h( init_psl );
 894  0000D1ED    dd effffff851                 	pushl	_init_psl
 895  0000D1F3    fe 08 effffff84a              	callf	$8,_write32h
 896  0000D1FA                                   #                        writes(",   final PSL = ");
 897  0000D1FA                                  	.data	1
 898  00000d8a *                                L329:
 899  00000d8a *  2C20202066696E616C2050534     	.ascii	",   final PSL = \0"
                  C203D2000
 900  00000d9b *                                	.text
 901  0000D1FA    dd 8f00000d8a                 	pushl	$L329
 902  0000D200    fe 08 effffff83d              	callf	$8,_writes
 903  0000D207                                   #                        write32h( psl_val );
 904  0000D207    dd effffff837                 	pushl	_psl_val
 905  0000D20D    fe 08 effffff830              	callf	$8,_write32h
 906  0000D214                                   #                        writes(",  expected PSL = ");
 907  0000D214                                  	.data	1
 908  00000d9b *                                L330:
 909  00000d9b *  2C20206578706563746564205     	.ascii	",  expected PSL = \0"
                  0534C203D2000
 910  00000dae *                                	.text
 911  0000D214    dd 8f00000d9b                 	pushl	$L330
 912  0000D21A    fe 08 effffff823              	callf	$8,_writes
 913  0000D221                                   #                        write32h( exp_psl );
 914  0000D221    dd effffff81d                 	pushl	_exp_psl
 915  0000D227    fe 08 effffff816              	callf	$8,_write32h
 916  0000D22E                                   #                        writes("\n");
 917  0000D22E                                  	.data	1
 918  00000dae *                                L331:
 919  00000dae *  0A00                          	.ascii	"\12\0"
 920  00000db0 *                                	.text
 921  0000D22E    dd 8f00000dae                 	pushl	$L331
 922  0000D234    fe 08 effffff809              	callf	$8,_writes
 923  0000D23B                                   #                   }
 924  0000D23B                                   #                   if( halt_flg )   
 925  0000D23B                                  L326:
 926  0000D23B    5d effffff803                 	tstl	_halt_flg
 927  0000D241    31 09                         	jeql	L332
 928  0000D243                                   #                       ldf_er_halt( BAD_PSL_HLT );   /* halt on the error */
 929  0000D243    dd 03                         	pushl	$3
 930  0000D245    fe 08 ef0000032e              	callf	$8,_ldf_er_halt
 931  0000D24C                                   # 	          if( loop_on_err ) {
 932  0000D24C                                  L332:
 933  0000D24C    5d effffff7f2                 	tstl	_loop_on_err
 934  0000D252    31 0a                         	jeql	L333
 935  0000D254                                   # 		      force_loop = TRUE;	/* set the force loop flag */
 936  0000D254    0d 01 effffff7e9              	movl	$1,_force_loop
 937  0000D25B                                   # 		      asm("brw _ldf_6_lp1");;	/* and loop                */
 938  0000D25B    13 fed6                       brw _ldf_6_lp1
 939  0000D25E                                   # 	          }; 				/* end of loop-on-error    */
 940  0000D25E                                  L333:
 941  0000D25E                                   # 	    }  					/* end of compare error    */
 942  0000D25E                                   # 	    if( ++status_index >= 3 )
 943  0000D25E                                  L325:
 944  0000D25E    6d effffff7e0                 	incl	_status_index
 945  0000D264    0d effffff7da 50              	movl	_status_index,r0
 946  0000D26B    1d 50 03                      	cmpl	r0,$3
 947  0000D26E    91 06                         	jlss	L334
 948  0000D270                                   # 		 status_index = 0;		/* reset the status index  */
 949  0000D270    4d effffff7ce                 	clrl	_status_index
 950  0000D276                                   # 	} while( index++ < max_ldf_1_index );
 951  0000D276                                  L334:
 952  0000D276                                  L320:
 953  0000D276    0d effffff7c8 50              	movl	_index,r0
 954  0000D27D    6d effffff7c1                 	incl	_index
 955  0000D283    1d 50 effffff7ba              	cmpl	r0,_max_ldf_1_index
 956  0000D28A    81 03 13 fe7c                 	jlss	L321
 957  0000D28F                                  L319:
 958  0000D28F                                   # }  /* end of subtest 6 */
 959  0000D28F    40                            	ret#2
 960  0000D290                                  	.set	L315,0x0
 961  0000D290                                  L317:
 962  0000D290    13 fe66                       	jbr 	L318
 963  0000D293                                  	.data
 964  00000be8 *                                	.text
 965  0000D293    00                            	.align	1
 966  0000D294                                  	.globl	_ldf_7
 967  0000D294                                  _ldf_7:
 968  0000D294    0000                          	.word	L335
 969  0000D296                                   #   
 970  0000D296                                   # 
 971  0000D296                                   # 
 972  0000D296                                   # /************************************************************************
 973  0000D296                                   # *
 974  0000D296                                   # *               SUBTEST 7 - pipelined entry test (ldf)
 975  0000D296                                   # *
 976  0000D296                                   # ************************************************************************/
 977  0000D296                                   # ldf_7() 
 978  0000D296                                   # {
 979  0000D296    13 0117                       	jbr 	L337
 980  0000D299                                  L338:
 981  0000D299                                   #         force_loop = FALSE;
 982  0000D299    4d effffff7a5                 	clrl	_force_loop
 983  0000D29F                                   #         subtest = 7;
 984  0000D29F    0d 07 effffff79e              	movl	$7,_subtest
 985  0000D2A6                                   #         for( index = 0; index < max_ldf_1_index; index++ ) {
 986  0000D2A6    4d effffff798                 	clrl	_index
 987  0000D2AC                                  L341:
 988  0000D2AC    1d effffff792 effffff78d      	cmpl	_index,_max_ldf_1_index
 989  0000D2B7    91 03 13 00f3                 	jgeq	L340
 990  0000D2BC                                   #              sgl_ld_acc   = ldf_1_data[index].ld;   /* get value to load   */
 991  0000D2BC    0d effffff782 50              	movl	_index,r0
 992  0000D2C3    48 03 50 50                   	shll	$3,r0,r0
 993  0000D2C7    0d e000000000 effffff772      	movl	_ldf_1_data(r0),_sgl_ld_acc
 994  0000D2D2                                   #              sgl_expected = ldf_1_data[index].exp;  /* get expected result */
 995  0000D2D2    0d effffff76c 50              	movl	_index,r0
 996  0000D2D9    48 03 50 50                   	shll	$3,r0,r0
 997  0000D2DD    0d e000000004 effffff75c      	movl	_ldf_1_data+4(r0),_sgl_expected
 998  0000D2E8                                   # /*
 999  0000D2E8                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1000  0000D2E8                                   #  * The force loop flag is set after the first error.
1001  0000D2E8                                   # */
1002  0000D2E8                                   #              asm("_ldf_7_lp1:");
1003  0000D2E8                                  _ldf_7_lp1:
1004  0000D2E8                                   #              asm("movl $0,r0");                 /* clear r0                */
1005  0000D2E8    0d 00 50                      movl $0,r0
1006  0000D2EB                                   #              asm("ldf r0");                     /* load the Acc. with 0.0  */
1007  0000D2EB    06 50                         ldf r0
1008  0000D2ED                                   #              asm("ldf _sgl_ld_acc");            /* load the value           */
1009  0000D2ED    06 effffff751                 ldf _sgl_ld_acc
1010  0000D2F3                                   #              asm("nop");
1011  0000D2F3    10                            nop
1012  0000D2F4                                   #              asm("stf _sgl_st_acc");            /* store the result        */
1013  0000D2F4    26 effffff74a                 stf _sgl_st_acc
1014  0000D2FA                                   #              if( force_loop )
1015  0000D2FA    5d effffff744                 	tstl	_force_loop
1016  0000D300    31 02                         	jeql	L342
1017  0000D302                                   #                   asm("brb _ldf_7_lp1");;       /* loop on the error       */
1018  0000D302    11 e4                         brb _ldf_7_lp1
1019  0000D304                                  L342:
1020  0000D304                                   # /* 
1021  0000D304                                   #  * end error loop - test the results
1022  0000D304                                   # */
1023  0000D304                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
1024  0000D304    1d effffff73a effffff735      	cmpl	_sgl_st_acc,_sgl_expected
1025  0000D30F    21 03 13 0092                 	jeql	L343
1026  0000D314                                   #                    errcnt++;                    /* bump the error count   */
1027  0000D314    6d effffff72a                 	incl	_errcnt
1028  0000D31A                                   #                    if( prt_error ) {
1029  0000D31A    5d effffff724                 	tstl	_prt_error
1030  0000D320    31 61                         	jeql	L344
1031  0000D322                                   #                         print_ldf_er_hdr();
1032  0000D322    fe 04 ef000001a5              	callf	$4,_print_ldf_er_hdr
1033  0000D329                                   # 			writes(" (Piped Entry) - BAD FINAL ACC\n");
1034  0000D329                                  	.data	1
1035  00000db0 *                                L345:
1036  00000db0 *  2028506970656420456E74727     	.ascii	" (Piped Entry) - BAD FINAL ACC\12\0"
                  929202D204241442046494E41
                  4C204143430A00
1037  00000dd0 *                                	.text
1038  0000D329    dd 8f00000db0                 	pushl	$L345
1039  0000D32F    fe 08 effffff70e              	callf	$8,_writes
1040  0000D336                                   #                         print_ldf_data();
1041  0000D336    fe 04 ef00000201              	callf	$4,_print_ldf_data
1042  0000D33D                                   #                         writes(",  data index = ");
1043  0000D33D                                  	.data	1
1044  00000dd0 *                                L346:
1045  00000dd0 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
1046  00000de1 *                                	.text
1047  0000D33D    dd 8f00000dd0                 	pushl	$L346
1048  0000D343    fe 08 effffff6fa              	callf	$8,_writes
1049  0000D34A                                   #                         writed( index );
1050  0000D34A    dd effffff6f4                 	pushl	_index
1051  0000D350    fe 08 effffff6ed              	callf	$8,_writed
1052  0000D357                                   #                         writec('\n');
1053  0000D357    dd 0a                         	pushl	$10
1054  0000D359    fe 08 effffff6e4              	callf	$8,_writec
1055  0000D360                                   # 		        writes("                       Acc expected = ");
1056  0000D360                                  	.data	1
1057  00000de1 *                                L347:
1058  00000de1 *  2020202020202020202020202     	.ascii	"                       Acc expected = \0"
                  0202020202020202020204163
                  63206578706563746564203D2
                  000
1059  00000e08 *                                	.text
1060  0000D360    dd 8f00000de1                 	pushl	$L347
1061  0000D366    fe 08 effffff6d7              	callf	$8,_writes
1062  0000D36D                                   #                         write32h( sgl_expected );
1063  0000D36D    dd effffff6d1                 	pushl	_sgl_expected
1064  0000D373    fe 08 effffff6ca              	callf	$8,_write32h
1065  0000D37A                                   #                         writec('\n');
1066  0000D37A    dd 0a                         	pushl	$10
1067  0000D37C    fe 08 effffff6c1              	callf	$8,_writec
1068  0000D383                                   #                    }
1069  0000D383                                   #                    if( halt_flg ) 
1070  0000D383                                  L344:
1071  0000D383    5d effffff6bb                 	tstl	_halt_flg
1072  0000D389    31 09                         	jeql	L348
1073  0000D38B                                   #                         ldf_er_halt( BAD_ACC_HLT );    /* halt on the error */
1074  0000D38B    dd 01                         	pushl	$1
1075  0000D38D    fe 08 ef000001e6              	callf	$8,_ldf_er_halt
1076  0000D394                                   #                   if( loop_on_err ) {
1077  0000D394                                  L348:
1078  0000D394    5d effffff6aa                 	tstl	_loop_on_err
1079  0000D39A    31 0a                         	jeql	L349
1080  0000D39C                                   #                        force_loop = TRUE;       /* set the force loop flag */
1081  0000D39C    0d 01 effffff6a1              	movl	$1,_force_loop
1082  0000D3A3                                   #                        asm("brw _ldf_7_lp1");;  /* and loop on the error   */
1083  0000D3A3    13 ff42                       brw _ldf_7_lp1
1084  0000D3A6                                   #                   } /* end of loop on error */
1085  0000D3A6                                   #              }   /* end of compare error */
1086  0000D3A6                                  L349:
1087  0000D3A6                                   #         }  /* end of WHILE loop */
1088  0000D3A6                                  L343:
1089  0000D3A6                                  L339:
1090  0000D3A6    6d effffff698                 	incl	_index
1091  0000D3AC    13 fefd                       	jbr 	L341
1092  0000D3AF                                  L340:
1093  0000D3AF                                   # }  /* end of subtest 7 */
1094  0000D3AF    40                            	ret#2
1095  0000D3B0                                  	.set	L335,0x0
1096  0000D3B0                                  L337:
1097  0000D3B0    13 fee6                       	jbr 	L338
1098  0000D3B3                                  	.data
1099  00000be8 *                                	.text
1100  0000D3B3    00                            	.align	1
1101  0000D3B4                                  	.globl	_ldf_8
1102  0000D3B4                                  _ldf_8:
1103  0000D3B4    0000                          	.word	L351
1104  0000D3B6                                   #   
1105  0000D3B6                                   # 
1106  0000D3B6                                   # 
1107  0000D3B6                                   # /************************************************************************
1108  0000D3B6                                   # *
1109  0000D3B6                                   # *               SUBTEST 8 - pipelined entry test (stf)
1110  0000D3B6                                   # *
1111  0000D3B6                                   # ************************************************************************/
1112  0000D3B6                                   # ldf_8() 
1113  0000D3B6                                   # {
1114  0000D3B6    13 0111                       	jbr 	L353
1115  0000D3B9                                  L354:
1116  0000D3B9                                   #         force_loop = FALSE;
1117  0000D3B9    4d effffff685                 	clrl	_force_loop
1118  0000D3BF                                   #         subtest = 8;
1119  0000D3BF    0d 08 effffff67e              	movl	$8,_subtest
1120  0000D3C6                                   #         for( index = 0; index < max_ldf_1_index; index++ ) {
1121  0000D3C6    4d effffff678                 	clrl	_index
1122  0000D3CC                                  L357:
1123  0000D3CC    1d effffff672 effffff66d      	cmpl	_index,_max_ldf_1_index
1124  0000D3D7    91 03 13 00ed                 	jgeq	L356
1125  0000D3DC                                   #              sgl_ld_acc   = ldf_1_data[index].ld;   /* get value to load   */
1126  0000D3DC    0d effffff662 50              	movl	_index,r0
1127  0000D3E3    48 03 50 50                   	shll	$3,r0,r0
1128  0000D3E7    0d e000000000 effffff652      	movl	_ldf_1_data(r0),_sgl_ld_acc
1129  0000D3F2                                   #              sgl_expected = ldf_1_data[index].exp;  /* get expected result */
1130  0000D3F2    0d effffff64c 50              	movl	_index,r0
1131  0000D3F9    48 03 50 50                   	shll	$3,r0,r0
1132  0000D3FD    0d e000000004 effffff63c      	movl	_ldf_1_data+4(r0),_sgl_expected
1133  0000D408                                   # /*
1134  0000D408                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1135  0000D408                                   #  * The force loop flag is set after the first error.
1136  0000D408                                   # */
1137  0000D408                                   #              asm("_ldf_8_lp1:");
1138  0000D408                                  _ldf_8_lp1:
1139  0000D408                                   #              asm("ldf _sgl_ld_acc");            /* load the value           */
1140  0000D408    06 effffff636                 ldf _sgl_ld_acc
1141  0000D40E                                   #              asm("stf _sgl_st_acc");            /* store the result        */
1142  0000D40E    26 effffff630                 stf _sgl_st_acc
1143  0000D414                                   #              if( force_loop )
1144  0000D414    5d effffff62a                 	tstl	_force_loop
1145  0000D41A    31 02                         	jeql	L358
1146  0000D41C                                   #                   asm("brb _ldf_8_lp1");;       /* loop on the error       */
1147  0000D41C    11 ea                         brb _ldf_8_lp1
1148  0000D41E                                  L358:
1149  0000D41E                                   # /* 
1150  0000D41E                                   #  * end error loop - test the results
1151  0000D41E                                   # */
1152  0000D41E                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
1153  0000D41E    1d effffff620 effffff61b      	cmpl	_sgl_st_acc,_sgl_expected
1154  0000D429    21 03 13 0092                 	jeql	L359
1155  0000D42E                                   #                    errcnt++;                    /* bump the error count   */
1156  0000D42E    6d effffff610                 	incl	_errcnt
1157  0000D434                                   #                    if( prt_error ) {
1158  0000D434    5d effffff60a                 	tstl	_prt_error
1159  0000D43A    31 61                         	jeql	L360
1160  0000D43C                                   #                         print_ldf_er_hdr();
1161  0000D43C    fe 04 ef0000008b              	callf	$4,_print_ldf_er_hdr
1162  0000D443                                   # 			writes(" (Piped Exit) - BAD FINAL ACC\n");
1163  0000D443                                  	.data	1
1164  00000e08 *                                L361:
1165  00000e08 *  2028506970656420457869742     	.ascii	" (Piped Exit) - BAD FINAL ACC\12\0"
                  9202D204241442046494E414C
                  204143430A00
1166  00000e27 *                                	.text
1167  0000D443    dd 8f00000e08                 	pushl	$L361
1168  0000D449    fe 08 effffff5f4              	callf	$8,_writes
1169  0000D450                                   #                         print_ldf_data();
1170  0000D450    fe 04 ef000000e7              	callf	$4,_print_ldf_data
1171  0000D457                                   #                         writes(",  data index = ");
1172  0000D457                                  	.data	1
1173  00000e27 *                                L362:
1174  00000e27 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
1175  00000e38 *                                	.text
1176  0000D457    dd 8f00000e27                 	pushl	$L362
1177  0000D45D    fe 08 effffff5e0              	callf	$8,_writes
1178  0000D464                                   #                         writed( index );
1179  0000D464    dd effffff5da                 	pushl	_index
1180  0000D46A    fe 08 effffff5d3              	callf	$8,_writed
1181  0000D471                                   #                         writec('\n');
1182  0000D471    dd 0a                         	pushl	$10
1183  0000D473    fe 08 effffff5ca              	callf	$8,_writec
1184  0000D47A                                   # 		        writes("                       Acc expected = ");
1185  0000D47A                                  	.data	1
1186  00000e38 *                                L363:
1187  00000e38 *  2020202020202020202020202     	.ascii	"                       Acc expected = \0"
                  0202020202020202020204163
                  63206578706563746564203D2
                  000
1188  00000e5f *                                	.text
1189  0000D47A    dd 8f00000e38                 	pushl	$L363
1190  0000D480    fe 08 effffff5bd              	callf	$8,_writes
1191  0000D487                                   #                         write32h( sgl_expected );
1192  0000D487    dd effffff5b7                 	pushl	_sgl_expected
1193  0000D48D    fe 08 effffff5b0              	callf	$8,_write32h
1194  0000D494                                   #                         writec('\n');
1195  0000D494    dd 0a                         	pushl	$10
1196  0000D496    fe 08 effffff5a7              	callf	$8,_writec
1197  0000D49D                                   #                    }
1198  0000D49D                                   #                    if( halt_flg ) 
1199  0000D49D                                  L360:
1200  0000D49D    5d effffff5a1                 	tstl	_halt_flg
1201  0000D4A3    31 09                         	jeql	L364
1202  0000D4A5                                   #                         ldf_er_halt( BAD_ACC_HLT );    /* halt on the error */
1203  0000D4A5    dd 01                         	pushl	$1
1204  0000D4A7    fe 08 ef000000cc              	callf	$8,_ldf_er_halt
1205  0000D4AE                                   #                    if( loop_on_err ) {
1206  0000D4AE                                  L364:
1207  0000D4AE    5d effffff590                 	tstl	_loop_on_err
1208  0000D4B4    31 0a                         	jeql	L365
1209  0000D4B6                                   #                         force_loop = TRUE;       /* set the force loop flag */
1210  0000D4B6    0d 01 effffff587              	movl	$1,_force_loop
1211  0000D4BD                                   #                         asm("brw _ldf_8_lp1");;  /* and loop on the error   */
1212  0000D4BD    13 ff48                       brw _ldf_8_lp1
1213  0000D4C0                                   #                    } /* end of loop on error */
1214  0000D4C0                                   #              }   /* end of compare error */
1215  0000D4C0                                  L365:
1216  0000D4C0                                   #         }  /* end of WHILE loop */
1217  0000D4C0                                  L359:
1218  0000D4C0                                  L355:
1219  0000D4C0    6d effffff57e                 	incl	_index
1220  0000D4C6    13 ff03                       	jbr 	L357
1221  0000D4C9                                  L356:
1222  0000D4C9                                   # }  /* end of subtest 8 */
1223  0000D4C9    40                            	ret#2
1224  0000D4CA                                  	.set	L351,0x0
1225  0000D4CA                                  L353:
1226  0000D4CA    13 feec                       	jbr 	L354
1227  0000D4CD                                  	.data
1228  00000be8 *                                	.text
1229  0000D4CD    00                            	.align	1
1230  0000D4CE                                  	.globl	_print_ldf_er_hdr
1231  0000D4CE                                  _print_ldf_er_hdr:
1232  0000D4CE    0000                          	.word	L366
1233  0000D4D0                                   #   
1234  0000D4D0                                   # 
1235  0000D4D0                                   # 
1236  0000D4D0                                   # /**************************************************************************
1237  0000D4D0                                   # *
1238  0000D4D0                                   # *       PRINT THE ERROR MESSAGE HEADER
1239  0000D4D0                                   # *
1240  0000D4D0                                   # **************************************************************************/
1241  0000D4D0                                   # print_ldf_er_hdr()
1242  0000D4D0                                   # {
1243  0000D4D0    11 69                         	jbr 	L368
1244  0000D4D2                                  L369:
1245  0000D4D2                                   # 	writes(" \n");				/* start a new print line */
1246  0000D4D2                                  	.data	1
1247  00000e5f *                                L370:
1248  00000e5f *  200A00                        	.ascii	" \12\0"
1249  00000e62 *                                	.text
1250  0000D4D2    dd 8f00000e5f                 	pushl	$L370
1251  0000D4D8    fe 08 effffff565              	callf	$8,_writes
1252  0000D4DF                                   # 	writes("cycle: ");			/* print the cycle count  */
1253  0000D4DF                                  	.data	1
1254  00000e62 *                                L371:
1255  00000e62 *  6379636C653A2000              	.ascii	"cycle: \0"
1256  00000e6a *                                	.text
1257  0000D4DF    dd 8f00000e62                 	pushl	$L371
1258  0000D4E5    fe 08 effffff558              	callf	$8,_writes
1259  0000D4EC                                   # 	writed( cycle );
1260  0000D4EC    dd effffff552                 	pushl	_cycle
1261  0000D4F2    fe 08 effffff54b              	callf	$8,_writed
1262  0000D4F9                                   # 	writes("  LDF_STF ");			/* print test name header */
1263  0000D4F9                                  	.data	1
1264  00000e6a *                                L372:
1265  00000e6a *  20204C44465F5354462000        	.ascii	"  LDF_STF \0"
1266  00000e75 *                                	.text
1267  0000D4F9    dd 8f00000e6a                 	pushl	$L372
1268  0000D4FF    fe 08 effffff53e              	callf	$8,_writes
1269  0000D506                                   # 	writes("test ");			/* print the test number  */
1270  0000D506                                  	.data	1
1271  00000e75 *                                L373:
1272  00000e75 *  746573742000                  	.ascii	"test \0"
1273  00000e7b *                                	.text
1274  0000D506    dd 8f00000e75                 	pushl	$L373
1275  0000D50C    fe 08 effffff531              	callf	$8,_writes
1276  0000D513                                   # 	writed( test_no );
1277  0000D513    dd effffff52b                 	pushl	_test_no
1278  0000D519    fe 08 effffff524              	callf	$8,_writed
1279  0000D520                                   # 	writes(", subtest ");			/* print subtest number   */
1280  0000D520                                  	.data	1
1281  00000e7b *                                L374:
1282  00000e7b *  2C20737562746573742000        	.ascii	", subtest \0"
1283  00000e86 *                                	.text
1284  0000D520    dd 8f00000e7b                 	pushl	$L374
1285  0000D526    fe 08 effffff517              	callf	$8,_writes
1286  0000D52D                                   # 	writed( subtest );
1287  0000D52D    dd effffff511                 	pushl	_subtest
1288  0000D533    fe 08 effffff50a              	callf	$8,_writed
1289  0000D53A                                   # }
1290  0000D53A    40                            	ret#2
1291  0000D53B                                  	.set	L366,0x0
1292  0000D53B                                  L368:
1293  0000D53B    11 95                         	jbr 	L369
1294  0000D53D                                  	.data
1295  00000be8 *                                	.text
1296  0000D53D    00                            	.align	1
1297  0000D53E                                  	.globl	_print_ldf_data
1298  0000D53E                                  _print_ldf_data:
1299  0000D53E    0000                          	.word	L375
1300  0000D540                                   # 
1301  0000D540                                   # 
1302  0000D540                                   # 
1303  0000D540                                   # /**************************************************************************
1304  0000D540                                   # *
1305  0000D540                                   # *       PRINT THE DATA AND STORE RESULTS
1306  0000D540                                   # *
1307  0000D540                                   # *  Acc loaded = xxxxxxxx,  Acc stored = xxxxxxxx,  data index = xx
1308  0000D540                                   # *                         Acc expected = xxxxxxxx
1309  0000D540                                   # **************************************************************************/
1310  0000D540                                   # print_ldf_data()
1311  0000D540                                   # {
1312  0000D540    11 35                         	jbr 	L377
1313  0000D542                                  L378:
1314  0000D542                                   #         writes(" Acc loaded = ");
1315  0000D542                                  	.data	1
1316  00000e86 *                                L379:
1317  00000e86 *  20416363206C6F61646564203     	.ascii	" Acc loaded = \0"
                  D2000
1318  00000e95 *                                	.text
1319  0000D542    dd 8f00000e86                 	pushl	$L379
1320  0000D548    fe 08 effffff4f5              	callf	$8,_writes
1321  0000D54F                                   #         write32h( sgl_ld_acc );
1322  0000D54F    dd effffff4ef                 	pushl	_sgl_ld_acc
1323  0000D555    fe 08 effffff4e8              	callf	$8,_write32h
1324  0000D55C                                   #         writes(",  Acc stored = ");
1325  0000D55C                                  	.data	1
1326  00000e95 *                                L380:
1327  00000e95 *  2C20204163632073746F72656     	.ascii	",  Acc stored = \0"
                  4203D2000
1328  00000ea6 *                                	.text
1329  0000D55C    dd 8f00000e95                 	pushl	$L380
1330  0000D562    fe 08 effffff4db              	callf	$8,_writes
1331  0000D569                                   #         write32h( sgl_st_acc );
1332  0000D569    dd effffff4d5                 	pushl	_sgl_st_acc
1333  0000D56F    fe 08 effffff4ce              	callf	$8,_write32h
1334  0000D576                                   # }
1335  0000D576    40                            	ret#2
1336  0000D577                                  	.set	L375,0x0
1337  0000D577                                  L377:
1338  0000D577    11 c9                         	jbr 	L378
1339  0000D579                                  	.data
1340  00000be8 *                                	.text
1341  0000D579    00                            	.align	1
1342  0000D57A                                  	.globl	_ldf_er_halt
1343  0000D57A                                  _ldf_er_halt:
1344  0000D57A    0000                          	.word	L381
1345  0000D57C                                   #  
1346  0000D57C                                   # 
1347  0000D57C                                   # 
1348  0000D57C                                   # /**************************************************************************
1349  0000D57C                                   # *
1350  0000D57C                                   # *               HALT ON ERROR ROUTINE 
1351  0000D57C                                   # *
1352  0000D57C                                   # **************************************************************************/
1353  0000D57C                                   # ldf_er_halt( halt_code )
1354  0000D57C                                   # int halt_code;
1355  0000D57C                                   # {
1356  0000D57C    13 00a8                       	jbr 	L383
1357  0000D57F                                  L384:
1358  0000D57F                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
1359  0000D57F    0d ad04 effffff4bd            	movl	4(fp),_sgl_dummy1
1360  0000D587                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
1361  0000D587    0d effffff4b7 50              movl _test_no,r0
1362  0000D58E                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
1363  0000D58E    0d effffff4b0 51              movl _subtest,r1
1364  0000D595                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
1365  0000D595    0d effffff4a9 52              movl _sgl_dummy1,r2
1366  0000D59C                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
1367  0000D59C    0d effffff4a2 53              movl _cycle,r3
1368  0000D5A3                                   #         asm("movl _sgl_ld_acc,r4");             /* r4  = data loaded     */
1369  0000D5A3    0d effffff49b 54              movl _sgl_ld_acc,r4
1370  0000D5AA                                   #         asm("movl _sgl_st_acc,r5");             /* r5  = data stored     */
1371  0000D5AA    0d effffff494 55              movl _sgl_st_acc,r5
1372  0000D5B1                                   #         if( halt_code == BAD_ACC_HLT ) {
1373  0000D5B1    1d ad04 01                    	cmpl	4(fp),$1
1374  0000D5B5    21 10                         	jneq	L385
1375  0000D5B7                                   #              asm("movl _sgl_expected,r6");      /* r6  = data expected   */
1376  0000D5B7    0d effffff487 56              movl _sgl_expected,r6
1377  0000D5BE                                   #              asm("movl _index,r7");             /* r7  = data index      */
1378  0000D5BE    0d effffff480 57              movl _index,r7
1379  0000D5C5                                   #         } else
1380  0000D5C5    11 5e                         	jbr 	L386
1381  0000D5C7                                  L385:
1382  0000D5C7                                   #           if( halt_code == BAD_REG_HLT ) {
1383  0000D5C7    1d ad04 02                    	cmpl	4(fp),$2
1384  0000D5CB    21 3d                         	jneq	L387
1385  0000D5CD                                   #              sgl_dummy1 = load_regs[index2];
1386  0000D5CD    0d effffff471 50              	movl	_index2,r0
1387  0000D5D4    0d 40effffff469               	movl	_load_regs[r0],_sgl_dummy1
                  effffff464 
1388  0000D5E0                                   #              sgl_dummy2 = store_regs[index2];
1389  0000D5E0    0d effffff45e 50              	movl	_index2,r0
1390  0000D5E7    0d 40effffff456               	movl	_store_regs[r0],_sgl_dummy2
                  effffff451 
1391  0000D5F3                                   #              asm("movl _index2,r6");            /* r6  = bad register #  */
1392  0000D5F3    0d effffff44b 56              movl _index2,r6
1393  0000D5FA                                   #              asm("movl _sgl_dummy2,r7");        /* r7  = final reg value */
1394  0000D5FA    0d effffff444 57              movl _sgl_dummy2,r7
1395  0000D601                                   #              asm("movl _sgl_dummy1,r8");        /* r8  = expected value  */
1396  0000D601    0d effffff43d 58              movl _sgl_dummy1,r8
1397  0000D608                                   #         } else
1398  0000D608    11 1b                         	jbr 	L388
1399  0000D60A                                  L387:
1400  0000D60A                                   #           if( halt_code == BAD_PSL_HLT ) {
1401  0000D60A    1d ad04 03                    	cmpl	4(fp),$3
1402  0000D60E    21 15                         	jneq	L389
1403  0000D610                                   #              asm("movl _init_psl,r6");          /* r6  = initial PSL     */
1404  0000D610    0d effffff42e 56              movl _init_psl,r6
1405  0000D617                                   #              asm("movl _psl_val,r7");           /* r7  = final PSL       */
1406  0000D617    0d effffff427 57              movl _psl_val,r7
1407  0000D61E                                   #              asm("movl _exp_psl,r8");           /* r8  = expected PSL    */
1408  0000D61E    0d effffff420 58              movl _exp_psl,r8
1409  0000D625                                   #         };
1410  0000D625                                  L389:
1411  0000D625                                  L388:
1412  0000D625                                  L386:
1413  0000D625                                   #         asm("halt");                            /* HALT ...              */
1414  0000D625    00                            halt
1415  0000D626                                   # }  
1416  0000D626    40                            	ret#2
1417  0000D627                                  	.set	L381,0x0
1418  0000D627                                  L383:
1419  0000D627    13 ff55                       	jbr 	L384
1420  0000D62A                                  	.data
1420  0001A06E                                  	.data

unix.superglobalmegacorp.com

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