File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / macro4 / divf.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  00000d28 *                                	.text
   4  00000000                                  	.align	1
   5  00000000                                  	.globl	_divf
   6  00000000                                  _divf:
   7  0000FAE8    0000                          	.word	L215
   8  0000FAEA                                   # #include "fpp_defs.h"
   9  0000FAEA                                   # 
  10  0000FAEA                                   # 
  11  0000FAEA                                   # /*****************************************************************************
  12  0000FAEA                                   # *
  13  0000FAEA                                   # *               DIVF - SINGLE PRECISION FLOATING POINT ADD TEST
  14  0000FAEA                                   # *
  15  0000FAEA                                   # *****************************************************************************/
  16  0000FAEA                                   # divf()
  17  0000FAEA                                   # {
  18  0000FAEA    11 64                         	jbr 	L217
  19  0000FAEC                                  L218:
  20  0000FAEC                                   #         asm(".globl _divf_t");
  21  0000FAEC                                  .globl _divf_t
  22  0000FAEC                                   #         asm("_divf_t:");                        /* entry address            */
  23  0000FAEC                                  _divf_t:
  24  0000FAEC                                   #         if( ( cycle == 1 ) && ( prt_hdrs )  )   /* print headers on 1st pass */
  25  0000FAEC    1d effffffff6 01              	cmpl	_cycle,$1
  26  0000FAF3    21 15                         	jneq	L219
  27  0000FAF5    5d efffffffed                 	tstl	_prt_hdrs
  28  0000FAFB    31 0d                         	jeql	L219
  29  0000FAFD                                   #            writes(" DIVF");
  30  0000FAFD                                  	.data	1
  31  00000d28 *                                L221:
  32  00000d28 *  204449564600                  	.ascii	" DIVF\0"
  33  00000d2e *                                	.text
  34  0000FAFD    dd 8f00000d28                 	pushl	$L221
  35  0000FB03    fe 08 efffffffde              	callf	$8,_writes
  36  0000FB0A                                   #         divf_1();                               /* div through a register     */
  37  0000FB0A                                  L219:
  38  0000FB0A    fe 04 ef00000041              	callf	$4,_divf_1
  39  0000FB11                                   #         divf_2();                               /* div through the cache      */
  40  0000FB11    fe 04 ef00000160              	callf	$4,_divf_2
  41  0000FB18                                   #         divf_3();                               /* wait 3 NOPs                */
  42  0000FB18    fe 04 ef00000279              	callf	$4,_divf_3
  43  0000FB1F                                   #         divf_4();                               /* wait 2 NOPs                */
  44  0000FB1F    fe 04 ef00000396              	callf	$4,_divf_4
  45  0000FB26                                   #         divf_5();                               /* wait 1 NOP before storing  */
  46  0000FB26    fe 04 ef000004b3              	callf	$4,_divf_5
  47  0000FB2D                                   #         divf_6();                               /* register stability test    */
  48  0000FB2D    fe 04 ef000005ce              	callf	$4,_divf_6
  49  0000FB34                                   #         divf_7();                               /* PSL stability test         */
  50  0000FB34    fe 04 ef00000777              	callf	$4,_divf_7
  51  0000FB3B                                   #         divf_8();                               /* pipelined entry test       */
  52  0000FB3B    fe 04 ef0000092a              	callf	$4,_divf_8
  53  0000FB42                                   #         divf_9();                               /* pipelined exit test        */
  54  0000FB42    fe 04 ef00000a49              	callf	$4,_divf_9
  55  0000FB49                                   #         asm("jmp *return");                     /* return to the test monitor */
  56  0000FB49    71 ffffffff99                 jmp *return
  57  0000FB4F                                   # }
  58  0000FB4F    40                            	ret#2
  59  0000FB50                                  	.set	L215,0x0
  60  0000FB50                                  L217:
  61  0000FB50    11 9a                         	jbr 	L218
  62  0000FB52                                  	.data
  63  00000d28 *                                	.text
  64  0000FB52                                  	.align	1
  65  0000FB52                                  	.globl	_divf_1
  66  0000FB52                                  _divf_1:
  67  0000FB52    0000                          	.word	L231
  68  0000FB54                                   #   
  69  0000FB54                                   # 
  70  0000FB54                                   # 
  71  0000FB54                                   # /************************************************************************
  72  0000FB54                                   # *
  73  0000FB54                                   # *               SUBTEST 1 - divide through a register
  74  0000FB54                                   # *
  75  0000FB54                                   # ************************************************************************/
  76  0000FB54                                   # divf_1() 
  77  0000FB54                                   # {
  78  0000FB54    13 011e                       	jbr 	L233
  79  0000FB57                                  L234:
  80  0000FB57                                   #         force_loop = FALSE;
  81  0000FB57    4d efffffff8b                 	clrl	_force_loop
  82  0000FB5D                                   #         subtest = 1;
  83  0000FB5D    0d 01 efffffff84              	movl	$1,_subtest
  84  0000FB64                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
  85  0000FB64    4d efffffff7e                 	clrl	_index
  86  0000FB6A                                  L237:
  87  0000FB6A    1d efffffff78 efffffff73      	cmpl	_index,_max_divf_1_index
  88  0000FB75    91 03 13 00fa                 	jgeq	L236
  89  0000FB7A                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
  90  0000FB7A    5c 0c efffffff67 50           	mull3	$12,_index,r0
  91  0000FB82    0d e000000000 efffffff5b      	movl	_divf_1_data(r0),_sgl_ld_acc
  92  0000FB8D                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
  93  0000FB8D    5c 0c efffffff54 50           	mull3	$12,_index,r0
  94  0000FB95    0d e000000004 efffffff48      	movl	_divf_1_data+4(r0),_sgl_value_1
  95  0000FBA0                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
  96  0000FBA0    5c 0c efffffff41 50           	mull3	$12,_index,r0
  97  0000FBA8    0d e000000008 efffffff35      	movl	_divf_1_data+8(r0),_sgl_expected
  98  0000FBB3                                   # /*
  99  0000FBB3                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 100  0000FBB3                                   #  * The force loop flag is set after the first error.
 101  0000FBB3                                   # */
 102  0000FBB3                                   #              asm("_divf_1_lp1:");
 103  0000FBB3                                  _divf_1_lp1:
 104  0000FBB3                                   #              asm("movl _sgl_ld_acc,r3");        /* move the 1st data to r3 */
 105  0000FBB3    0d efffffff2f 53              movl _sgl_ld_acc,r3
 106  0000FBBA                                   #              asm("movl _sgl_value_1,r4");       /* move the 2nd data to r4 */
 107  0000FBBA    0d efffffff28 54              movl _sgl_value_1,r4
 108  0000FBC1                                   #              asm("ldf r3");                     /* load the 1st operand    */
 109  0000FBC1    06 53                         ldf r3
 110  0000FBC3                                   #              asm("divf r4");                    /* divide the 2nd operand  */
 111  0000FBC3    f6 54                         divf r4
 112  0000FBC5                                   #              asm("stf _sgl_st_acc");            /* store the result        */
 113  0000FBC5    26 efffffff1d                 stf _sgl_st_acc
 114  0000FBCB                                   #              if( force_loop )
 115  0000FBCB    5d efffffff17                 	tstl	_force_loop
 116  0000FBD1    31 02                         	jeql	L238
 117  0000FBD3                                   #                   asm("brb _divf_1_lp1");;      /* loop on the error       */
 118  0000FBD3    11 de                         brb _divf_1_lp1
 119  0000FBD5                                  L238:
 120  0000FBD5                                   # /* 
 121  0000FBD5                                   #  * end error loop - test the results
 122  0000FBD5                                   # */
 123  0000FBD5                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 124  0000FBD5    1d efffffff0d efffffff08      	cmpl	_sgl_st_acc,_sgl_expected
 125  0000FBE0    21 03 13 0086                 	jeql	L239
 126  0000FBE5                                   #                    errcnt++;                    /* bump the error count   */
 127  0000FBE5    6d effffffefd                 	incl	_errcnt
 128  0000FBEB                                   #                    if( prt_error ) {
 129  0000FBEB    5d effffffef7                 	tstl	_prt_error
 130  0000FBF1    31 55                         	jeql	L240
 131  0000FBF3                                   #                         writes(" \n");      /* start a new print line */
 132  0000FBF3                                  	.data	1
 133  00000d2e *                                L241:
 134  00000d2e *  200A00                        	.ascii	" \12\0"
 135  00000d31 *                                	.text
 136  0000FBF3    dd 8f00000d2e                 	pushl	$L241
 137  0000FBF9    fe 08 effffffee8              	callf	$8,_writes
 138  0000FC00                                   #                         writes("cycle: ");
 139  0000FC00                                  	.data	1
 140  00000d31 *                                L242:
 141  00000d31 *  6379636C653A2000              	.ascii	"cycle: \0"
 142  00000d39 *                                	.text
 143  0000FC00    dd 8f00000d31                 	pushl	$L242
 144  0000FC06    fe 08 effffffedb              	callf	$8,_writes
 145  0000FC0D                                   #                         writed( cycle );
 146  0000FC0D    dd effffffed5                 	pushl	_cycle
 147  0000FC13    fe 08 effffffece              	callf	$8,_writed
 148  0000FC1A                                   #                         writes("  DIVF test ");
 149  0000FC1A                                  	.data	1
 150  00000d39 *                                L244:
 151  00000d39 *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
 152  00000d46 *                                	.text
 153  0000FC1A    dd 8f00000d39                 	pushl	$L244
 154  0000FC20    fe 08 effffffec1              	callf	$8,_writes
 155  0000FC27                                   # 			writed( test_no );
 156  0000FC27    dd effffffebb                 	pushl	_test_no
 157  0000FC2D    fe 08 effffffeb4              	callf	$8,_writed
 158  0000FC34                                   # 			writes(", subtest 1 (Reg. Data) - BAD FINAL ACC\n");
 159  0000FC34                                  	.data	1
 160  00000d46 *                                L245:
 161  00000d46 *  2C20737562746573742031202     	.ascii	", subtest 1 (Reg. Data) - BAD FINAL ACC\12\0"
                  85265672E204461746129202D
                  204241442046494E414C20414
                  3430A00
 162  00000d6f *                                	.text
 163  0000FC34    dd 8f00000d46                 	pushl	$L245
 164  0000FC3A    fe 08 effffffea7              	callf	$8,_writes
 165  0000FC41                                   #                         print_divf_data();
 166  0000FC41    fe 04 ef00000a70              	callf	$4,_print_divf_data
 167  0000FC48                                   #                    }
 168  0000FC48                                   #                    if( halt_flg ) 
 169  0000FC48                                  L240:
 170  0000FC48    5d effffffe9a                 	tstl	_halt_flg
 171  0000FC4E    31 09                         	jeql	L247
 172  0000FC50                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 173  0000FC50    dd 01                         	pushl	$1
 174  0000FC52    fe 08 ef00000afd              	callf	$8,_divf_er_halt
 175  0000FC59                                   #                    if( loop_on_err ) {
 176  0000FC59                                  L247:
 177  0000FC59    5d effffffe89                 	tstl	_loop_on_err
 178  0000FC5F    31 0a                         	jeql	L249
 179  0000FC61                                   #                         force_loop = TRUE;        /* set the force loop flag */
 180  0000FC61    0d 01 effffffe80              	movl	$1,_force_loop
 181  0000FC68                                   #                         asm("brw _divf_1_lp1");;  /* and loop on the error   */
 182  0000FC68    13 ff48                       brw _divf_1_lp1
 183  0000FC6B                                   #                    }   /* end of loop on error */
 184  0000FC6B                                   #              }   /* end of compare error */
 185  0000FC6B                                  L249:
 186  0000FC6B                                   #         }  /* end of WHILE loop */
 187  0000FC6B                                  L239:
 188  0000FC6B                                  L235:
 189  0000FC6B    6d effffffe77                 	incl	_index
 190  0000FC71    13 fef6                       	jbr 	L237
 191  0000FC74                                  L236:
 192  0000FC74                                   # }  /* end of subtest 1 */
 193  0000FC74    40                            	ret#2
 194  0000FC75                                  	.set	L231,0x0
 195  0000FC75                                  L233:
 196  0000FC75    13 fedf                       	jbr 	L234
 197  0000FC78                                  	.data
 198  00000d28 *                                	.text
 199  0000FC78                                  	.align	1
 200  0000FC78                                  	.globl	_divf_2
 201  0000FC78                                  _divf_2:
 202  0000FC78    0000                          	.word	L250
 203  0000FC7A                                   #   
 204  0000FC7A                                   # 
 205  0000FC7A                                   # 
 206  0000FC7A                                   # /************************************************************************
 207  0000FC7A                                   # *
 208  0000FC7A                                   # *               SUBTEST 2 - divide through memory
 209  0000FC7A                                   # *
 210  0000FC7A                                   # ************************************************************************/
 211  0000FC7A                                   # divf_2() 
 212  0000FC7A                                   # {
 213  0000FC7A    13 0118                       	jbr 	L252
 214  0000FC7D                                  L253:
 215  0000FC7D                                   #         force_loop = FALSE;
 216  0000FC7D    4d effffffe65                 	clrl	_force_loop
 217  0000FC83                                   #         subtest = 2;
 218  0000FC83    0d 02 effffffe5e              	movl	$2,_subtest
 219  0000FC8A                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
 220  0000FC8A    4d effffffe58                 	clrl	_index
 221  0000FC90                                  L256:
 222  0000FC90    1d effffffe52 effffffe4d      	cmpl	_index,_max_divf_1_index
 223  0000FC9B    91 03 13 00f4                 	jgeq	L255
 224  0000FCA0                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
 225  0000FCA0    5c 0c effffffe41 50           	mull3	$12,_index,r0
 226  0000FCA8    0d e000000000 effffffe35      	movl	_divf_1_data(r0),_sgl_ld_acc
 227  0000FCB3                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
 228  0000FCB3    5c 0c effffffe2e 50           	mull3	$12,_index,r0
 229  0000FCBB    0d e000000004 effffffe22      	movl	_divf_1_data+4(r0),_sgl_value_1
 230  0000FCC6                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
 231  0000FCC6    5c 0c effffffe1b 50           	mull3	$12,_index,r0
 232  0000FCCE    0d e000000008 effffffe0f      	movl	_divf_1_data+8(r0),_sgl_expected
 233  0000FCD9                                   # /*
 234  0000FCD9                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 235  0000FCD9                                   #  * The force loop flag is set after the first error.
 236  0000FCD9                                   # */
 237  0000FCD9                                   #              asm("_divf_2_lp1:");
 238  0000FCD9                                  _divf_2_lp1:
 239  0000FCD9                                   #              asm("ldf _sgl_ld_acc");            /* load the 1st operand    */
 240  0000FCD9    06 effffffe09                 ldf _sgl_ld_acc
 241  0000FCDF                                   #              asm("divf _sgl_value_1");          /* divide the 2nd operand  */
 242  0000FCDF    f6 effffffe03                 divf _sgl_value_1
 243  0000FCE5                                   #              asm("stf _sgl_st_acc");            /* store the result        */
 244  0000FCE5    26 effffffdfd                 stf _sgl_st_acc
 245  0000FCEB                                   #              if( force_loop )
 246  0000FCEB    5d effffffdf7                 	tstl	_force_loop
 247  0000FCF1    31 02                         	jeql	L257
 248  0000FCF3                                   #                   asm("brb _divf_2_lp1");;      /* loop on the error       */
 249  0000FCF3    11 e4                         brb _divf_2_lp1
 250  0000FCF5                                  L257:
 251  0000FCF5                                   # /* 
 252  0000FCF5                                   #  * end error loop - test the results
 253  0000FCF5                                   # */
 254  0000FCF5                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 255  0000FCF5    1d effffffded effffffde8      	cmpl	_sgl_st_acc,_sgl_expected
 256  0000FD00    21 03 13 0086                 	jeql	L258
 257  0000FD05                                   #                    errcnt++;                    /* bump the error count   */
 258  0000FD05    6d effffffddd                 	incl	_errcnt
 259  0000FD0B                                   #                    if( prt_error ) {
 260  0000FD0B    5d effffffdd7                 	tstl	_prt_error
 261  0000FD11    31 55                         	jeql	L259
 262  0000FD13                                   #                         writes(" \n");      /* start a new print line */
 263  0000FD13                                  	.data	1
 264  00000d6f *                                L260:
 265  00000d6f *  200A00                        	.ascii	" \12\0"
 266  00000d72 *                                	.text
 267  0000FD13    dd 8f00000d6f                 	pushl	$L260
 268  0000FD19    fe 08 effffffdc8              	callf	$8,_writes
 269  0000FD20                                   #                         writes("cycle: ");
 270  0000FD20                                  	.data	1
 271  00000d72 *                                L261:
 272  00000d72 *  6379636C653A2000              	.ascii	"cycle: \0"
 273  00000d7a *                                	.text
 274  0000FD20    dd 8f00000d72                 	pushl	$L261
 275  0000FD26    fe 08 effffffdbb              	callf	$8,_writes
 276  0000FD2D                                   #                         writed( cycle );
 277  0000FD2D    dd effffffdb5                 	pushl	_cycle
 278  0000FD33    fe 08 effffffdae              	callf	$8,_writed
 279  0000FD3A                                   #                         writes("  DIVF test ");
 280  0000FD3A                                  	.data	1
 281  00000d7a *                                L262:
 282  00000d7a *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
 283  00000d87 *                                	.text
 284  0000FD3A    dd 8f00000d7a                 	pushl	$L262
 285  0000FD40    fe 08 effffffda1              	callf	$8,_writes
 286  0000FD47                                   # 			writed( test_no );
 287  0000FD47    dd effffffd9b                 	pushl	_test_no
 288  0000FD4D    fe 08 effffffd94              	callf	$8,_writed
 289  0000FD54                                   # 			writes(", subtest 2 (Cache Data) - BAD FINAL ACC\n");
 290  0000FD54                                  	.data	1
 291  00000d87 *                                L263:
 292  00000d87 *  2C20737562746573742032202     	.ascii	", subtest 2 (Cache Data) - BAD FINAL ACC\12\0"
                  8436163686520446174612920
                  2D204241442046494E414C204
                  143430A00
 293  00000db1 *                                	.text
 294  0000FD54    dd 8f00000d87                 	pushl	$L263
 295  0000FD5A    fe 08 effffffd87              	callf	$8,_writes
 296  0000FD61                                   #                         print_divf_data();
 297  0000FD61    fe 04 ef00000950              	callf	$4,_print_divf_data
 298  0000FD68                                   #                    }
 299  0000FD68                                   #                    if( halt_flg ) 
 300  0000FD68                                  L259:
 301  0000FD68    5d effffffd7a                 	tstl	_halt_flg
 302  0000FD6E    31 09                         	jeql	L264
 303  0000FD70                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 304  0000FD70    dd 01                         	pushl	$1
 305  0000FD72    fe 08 ef000009dd              	callf	$8,_divf_er_halt
 306  0000FD79                                   #                    if( loop_on_err ) {
 307  0000FD79                                  L264:
 308  0000FD79    5d effffffd69                 	tstl	_loop_on_err
 309  0000FD7F    31 0a                         	jeql	L265
 310  0000FD81                                   #                         force_loop = TRUE;        /* set the force loop flag */
 311  0000FD81    0d 01 effffffd60              	movl	$1,_force_loop
 312  0000FD88                                   #                         asm("brw _divf_2_lp1");;  /* and loop on the error   */
 313  0000FD88    13 ff4e                       brw _divf_2_lp1
 314  0000FD8B                                   #                    }   /* end of loop on error */
 315  0000FD8B                                   #              }   /* end of compare error */
 316  0000FD8B                                  L265:
 317  0000FD8B                                   #         }  /* end of WHILE loop */
 318  0000FD8B                                  L258:
 319  0000FD8B                                  L254:
 320  0000FD8B    6d effffffd57                 	incl	_index
 321  0000FD91    13 fefc                       	jbr 	L256
 322  0000FD94                                  L255:
 323  0000FD94                                   # }  /* end of subtest 2 */
 324  0000FD94    40                            	ret#2
 325  0000FD95                                  	.set	L250,0x0
 326  0000FD95                                  L252:
 327  0000FD95    13 fee5                       	jbr 	L253
 328  0000FD98                                  	.data
 329  00000d28 *                                	.text
 330  0000FD98                                  	.align	1
 331  0000FD98                                  	.globl	_divf_3
 332  0000FD98                                  _divf_3:
 333  0000FD98    0000                          	.word	L266
 334  0000FD9A                                   #   
 335  0000FD9A                                   # 
 336  0000FD9A                                   # 
 337  0000FD9A                                   # /************************************************************************
 338  0000FD9A                                   # *
 339  0000FD9A                                   # *       SUBTEST 3 - Divide, Wait 3 NOPs before storing the results
 340  0000FD9A                                   # *
 341  0000FD9A                                   # ************************************************************************/
 342  0000FD9A                                   # divf_3() 
 343  0000FD9A                                   # {
 344  0000FD9A    13 011c                       	jbr 	L268
 345  0000FD9D                                  L269:
 346  0000FD9D                                   #         force_loop = FALSE;
 347  0000FD9D    4d effffffd45                 	clrl	_force_loop
 348  0000FDA3                                   #         subtest = 3;
 349  0000FDA3    0d 03 effffffd3e              	movl	$3,_subtest
 350  0000FDAA                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
 351  0000FDAA    4d effffffd38                 	clrl	_index
 352  0000FDB0                                  L272:
 353  0000FDB0    1d effffffd32 effffffd2d      	cmpl	_index,_max_divf_1_index
 354  0000FDBB    91 03 13 00f8                 	jgeq	L271
 355  0000FDC0                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
 356  0000FDC0    5c 0c effffffd21 50           	mull3	$12,_index,r0
 357  0000FDC8    0d e000000000 effffffd15      	movl	_divf_1_data(r0),_sgl_ld_acc
 358  0000FDD3                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
 359  0000FDD3    5c 0c effffffd0e 50           	mull3	$12,_index,r0
 360  0000FDDB    0d e000000004 effffffd02      	movl	_divf_1_data+4(r0),_sgl_value_1
 361  0000FDE6                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
 362  0000FDE6    5c 0c effffffcfb 50           	mull3	$12,_index,r0
 363  0000FDEE    0d e000000008 effffffcef      	movl	_divf_1_data+8(r0),_sgl_expected
 364  0000FDF9                                   # /*
 365  0000FDF9                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 366  0000FDF9                                   #  * The force loop flag is set after the first error.
 367  0000FDF9                                   # */
 368  0000FDF9                                   #              asm("_divf_3_lp1:");
 369  0000FDF9                                  _divf_3_lp1:
 370  0000FDF9                                   #              asm("ldf _sgl_ld_acc");            /* load the 1st operand    */
 371  0000FDF9    06 effffffce9                 ldf _sgl_ld_acc
 372  0000FDFF                                   #              asm("nop");                        /* delay                   */
 373  0000FDFF    10                            nop
 374  0000FE00                                   #              asm("divf _sgl_value_1");          /* divide the 2nd operand  */
 375  0000FE00    f6 effffffce2                 divf _sgl_value_1
 376  0000FE06                                   #              asm("nop");                        /* delay before ...        */
 377  0000FE06    10                            nop
 378  0000FE07                                   #              asm("nop");
 379  0000FE07    10                            nop
 380  0000FE08                                   #              asm("nop");                        /* ... storing the result  */
 381  0000FE08    10                            nop
 382  0000FE09                                   #              asm("stf _sgl_st_acc");            /* store the result        */
 383  0000FE09    26 effffffcd9                 stf _sgl_st_acc
 384  0000FE0F                                   #              if( force_loop )
 385  0000FE0F    5d effffffcd3                 	tstl	_force_loop
 386  0000FE15    31 02                         	jeql	L273
 387  0000FE17                                   #                   asm("brb _divf_3_lp1");;      /* loop on the error       */
 388  0000FE17    11 e0                         brb _divf_3_lp1
 389  0000FE19                                  L273:
 390  0000FE19                                   # /* 
 391  0000FE19                                   #  * end error loop - test the results
 392  0000FE19                                   # */
 393  0000FE19                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 394  0000FE19    1d effffffcc9 effffffcc4      	cmpl	_sgl_st_acc,_sgl_expected
 395  0000FE24    21 03 13 0086                 	jeql	L274
 396  0000FE29                                   #                    errcnt++;                    /* bump the error count   */
 397  0000FE29    6d effffffcb9                 	incl	_errcnt
 398  0000FE2F                                   #                    if( prt_error ) {
 399  0000FE2F    5d effffffcb3                 	tstl	_prt_error
 400  0000FE35    31 55                         	jeql	L275
 401  0000FE37                                   #                         writes(" \n");      /* start a new print line */
 402  0000FE37                                  	.data	1
 403  00000db1 *                                L276:
 404  00000db1 *  200A00                        	.ascii	" \12\0"
 405  00000db4 *                                	.text
 406  0000FE37    dd 8f00000db1                 	pushl	$L276
 407  0000FE3D    fe 08 effffffca4              	callf	$8,_writes
 408  0000FE44                                   #                         writes("cycle: ");
 409  0000FE44                                  	.data	1
 410  00000db4 *                                L277:
 411  00000db4 *  6379636C653A2000              	.ascii	"cycle: \0"
 412  00000dbc *                                	.text
 413  0000FE44    dd 8f00000db4                 	pushl	$L277
 414  0000FE4A    fe 08 effffffc97              	callf	$8,_writes
 415  0000FE51                                   #                         writed( cycle );
 416  0000FE51    dd effffffc91                 	pushl	_cycle
 417  0000FE57    fe 08 effffffc8a              	callf	$8,_writed
 418  0000FE5E                                   #                         writes("  DIVF test ");
 419  0000FE5E                                  	.data	1
 420  00000dbc *                                L278:
 421  00000dbc *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
 422  00000dc9 *                                	.text
 423  0000FE5E    dd 8f00000dbc                 	pushl	$L278
 424  0000FE64    fe 08 effffffc7d              	callf	$8,_writes
 425  0000FE6B                                   # 			writed( test_no );
 426  0000FE6B    dd effffffc77                 	pushl	_test_no
 427  0000FE71    fe 08 effffffc70              	callf	$8,_writed
 428  0000FE78                                   # 	writes(", subtest 3 (Cache data - 3 NOPs) - BAD FINAL ACC\n");
 429  0000FE78                                  	.data	1
 430  00000dc9 *                                L279:
 431  00000dc9 *  2C20737562746573742033202     	.ascii	", subtest 3 (Cache data - 3 NOPs) - BAD FINAL ACC\12\0"
                  843616368652064617461202D
                  2033204E4F507329202D20424
                  1442046494E414C204143430A
                  00
 432  00000dfc *                                	.text
 433  0000FE78    dd 8f00000dc9                 	pushl	$L279
 434  0000FE7E    fe 08 effffffc63              	callf	$8,_writes
 435  0000FE85                                   #                         print_divf_data();
 436  0000FE85    fe 04 ef0000082c              	callf	$4,_print_divf_data
 437  0000FE8C                                   #                    }
 438  0000FE8C                                   #                    if( halt_flg ) 
 439  0000FE8C                                  L275:
 440  0000FE8C    5d effffffc56                 	tstl	_halt_flg
 441  0000FE92    31 09                         	jeql	L280
 442  0000FE94                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 443  0000FE94    dd 01                         	pushl	$1
 444  0000FE96    fe 08 ef000008b9              	callf	$8,_divf_er_halt
 445  0000FE9D                                   #                    if( loop_on_err ) {
 446  0000FE9D                                  L280:
 447  0000FE9D    5d effffffc45                 	tstl	_loop_on_err
 448  0000FEA3    31 0a                         	jeql	L281
 449  0000FEA5                                   #                         force_loop = TRUE;        /* set the force loop flag */
 450  0000FEA5    0d 01 effffffc3c              	movl	$1,_force_loop
 451  0000FEAC                                   #                         asm("brw _divf_3_lp1");;  /* and loop on the error   */
 452  0000FEAC    13 ff4a                       brw _divf_3_lp1
 453  0000FEAF                                   #                    }   /* end of loop on error */
 454  0000FEAF                                   #              }   /* end of compare error */
 455  0000FEAF                                  L281:
 456  0000FEAF                                   #         }  /* end of WHILE loop */
 457  0000FEAF                                  L274:
 458  0000FEAF                                  L270:
 459  0000FEAF    6d effffffc33                 	incl	_index
 460  0000FEB5    13 fef8                       	jbr 	L272
 461  0000FEB8                                  L271:
 462  0000FEB8                                   # }  /* end of subtest 3 */
 463  0000FEB8    40                            	ret#2
 464  0000FEB9                                  	.set	L266,0x0
 465  0000FEB9                                  L268:
 466  0000FEB9    13 fee1                       	jbr 	L269
 467  0000FEBC                                  	.data
 468  00000d28 *                                	.text
 469  0000FEBC                                  	.align	1
 470  0000FEBC                                  	.globl	_divf_4
 471  0000FEBC                                  _divf_4:
 472  0000FEBC    0000                          	.word	L282
 473  0000FEBE                                   #   
 474  0000FEBE                                   # 
 475  0000FEBE                                   # 
 476  0000FEBE                                   # /************************************************************************
 477  0000FEBE                                   # *
 478  0000FEBE                                   # *       SUBTEST 4 - Divide, Wait 2 NOPs before storing the results
 479  0000FEBE                                   # *
 480  0000FEBE                                   # ************************************************************************/
 481  0000FEBE                                   # divf_4() 
 482  0000FEBE                                   # {
 483  0000FEBE    13 011b                       	jbr 	L284
 484  0000FEC1                                  L285:
 485  0000FEC1                                   #         force_loop = FALSE;
 486  0000FEC1    4d effffffc21                 	clrl	_force_loop
 487  0000FEC7                                   #         subtest = 4;
 488  0000FEC7    0d 04 effffffc1a              	movl	$4,_subtest
 489  0000FECE                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
 490  0000FECE    4d effffffc14                 	clrl	_index
 491  0000FED4                                  L288:
 492  0000FED4    1d effffffc0e effffffc09      	cmpl	_index,_max_divf_1_index
 493  0000FEDF    91 03 13 00f7                 	jgeq	L287
 494  0000FEE4                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
 495  0000FEE4    5c 0c effffffbfd 50           	mull3	$12,_index,r0
 496  0000FEEC    0d e000000000 effffffbf1      	movl	_divf_1_data(r0),_sgl_ld_acc
 497  0000FEF7                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
 498  0000FEF7    5c 0c effffffbea 50           	mull3	$12,_index,r0
 499  0000FEFF    0d e000000004 effffffbde      	movl	_divf_1_data+4(r0),_sgl_value_1
 500  0000FF0A                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
 501  0000FF0A    5c 0c effffffbd7 50           	mull3	$12,_index,r0
 502  0000FF12    0d e000000008 effffffbcb      	movl	_divf_1_data+8(r0),_sgl_expected
 503  0000FF1D                                   # /*
 504  0000FF1D                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 505  0000FF1D                                   #  * The force loop flag is set after the first error.
 506  0000FF1D                                   # */
 507  0000FF1D                                   #              asm("_divf_4_lp1:");
 508  0000FF1D                                  _divf_4_lp1:
 509  0000FF1D                                   #              asm("ldf _sgl_ld_acc");            /* load the 1st operand    */
 510  0000FF1D    06 effffffbc5                 ldf _sgl_ld_acc
 511  0000FF23                                   #              asm("nop");                        /* delay                   */
 512  0000FF23    10                            nop
 513  0000FF24                                   #              asm("divf _sgl_value_1");          /* divide the 2nd operand  */
 514  0000FF24    f6 effffffbbe                 divf _sgl_value_1
 515  0000FF2A                                   #              asm("nop");                        /* delay before ...        */
 516  0000FF2A    10                            nop
 517  0000FF2B                                   #              asm("nop");                        /* ... storing the result  */
 518  0000FF2B    10                            nop
 519  0000FF2C                                   #              asm("stf _sgl_st_acc");            /* store the result        */
 520  0000FF2C    26 effffffbb6                 stf _sgl_st_acc
 521  0000FF32                                   #              if( force_loop )
 522  0000FF32    5d effffffbb0                 	tstl	_force_loop
 523  0000FF38    31 02                         	jeql	L289
 524  0000FF3A                                   #                   asm("brb _divf_4_lp1");;      /* loop on the error       */
 525  0000FF3A    11 e1                         brb _divf_4_lp1
 526  0000FF3C                                  L289:
 527  0000FF3C                                   # /* 
 528  0000FF3C                                   #  * end error loop - test the results
 529  0000FF3C                                   # */
 530  0000FF3C                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 531  0000FF3C    1d effffffba6 effffffba1      	cmpl	_sgl_st_acc,_sgl_expected
 532  0000FF47    21 03 13 0086                 	jeql	L290
 533  0000FF4C                                   #                    errcnt++;                    /* bump the error count   */
 534  0000FF4C    6d effffffb96                 	incl	_errcnt
 535  0000FF52                                   #                    if( prt_error ) {
 536  0000FF52    5d effffffb90                 	tstl	_prt_error
 537  0000FF58    31 55                         	jeql	L291
 538  0000FF5A                                   #                         writes(" \n");      /* start a new print line */
 539  0000FF5A                                  	.data	1
 540  00000dfc *                                L292:
 541  00000dfc *  200A00                        	.ascii	" \12\0"
 542  00000dff *                                	.text
 543  0000FF5A    dd 8f00000dfc                 	pushl	$L292
 544  0000FF60    fe 08 effffffb81              	callf	$8,_writes
 545  0000FF67                                   #                         writes("cycle: ");
 546  0000FF67                                  	.data	1
 547  00000dff *                                L293:
 548  00000dff *  6379636C653A2000              	.ascii	"cycle: \0"
 549  00000e07 *                                	.text
 550  0000FF67    dd 8f00000dff                 	pushl	$L293
 551  0000FF6D    fe 08 effffffb74              	callf	$8,_writes
 552  0000FF74                                   #                         writed( cycle );
 553  0000FF74    dd effffffb6e                 	pushl	_cycle
 554  0000FF7A    fe 08 effffffb67              	callf	$8,_writed
 555  0000FF81                                   #                         writes("  DIVF test ");
 556  0000FF81                                  	.data	1
 557  00000e07 *                                L294:
 558  00000e07 *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
 559  00000e14 *                                	.text
 560  0000FF81    dd 8f00000e07                 	pushl	$L294
 561  0000FF87    fe 08 effffffb5a              	callf	$8,_writes
 562  0000FF8E                                   # 			writed( test_no );
 563  0000FF8E    dd effffffb54                 	pushl	_test_no
 564  0000FF94    fe 08 effffffb4d              	callf	$8,_writed
 565  0000FF9B                                   # 	writes(", subtest 4 (Cache Data - 2 NOPs) - BAD FINAL ACC\n");
 566  0000FF9B                                  	.data	1
 567  00000e14 *                                L295:
 568  00000e14 *  2C20737562746573742034202     	.ascii	", subtest 4 (Cache Data - 2 NOPs) - BAD FINAL ACC\12\0"
                  843616368652044617461202D
                  2032204E4F507329202D20424
                  1442046494E414C204143430A
                  00
 569  00000e47 *                                	.text
 570  0000FF9B    dd 8f00000e14                 	pushl	$L295
 571  0000FFA1    fe 08 effffffb40              	callf	$8,_writes
 572  0000FFA8                                   #                         print_divf_data();
 573  0000FFA8    fe 04 ef00000709              	callf	$4,_print_divf_data
 574  0000FFAF                                   #                    }
 575  0000FFAF                                   #                    if( halt_flg ) 
 576  0000FFAF                                  L291:
 577  0000FFAF    5d effffffb33                 	tstl	_halt_flg
 578  0000FFB5    31 09                         	jeql	L296
 579  0000FFB7                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 580  0000FFB7    dd 01                         	pushl	$1
 581  0000FFB9    fe 08 ef00000796              	callf	$8,_divf_er_halt
 582  0000FFC0                                   #                    if( loop_on_err ) {
 583  0000FFC0                                  L296:
 584  0000FFC0    5d effffffb22                 	tstl	_loop_on_err
 585  0000FFC6    31 0a                         	jeql	L297
 586  0000FFC8                                   #                         force_loop = TRUE;        /* set the force loop flag */
 587  0000FFC8    0d 01 effffffb19              	movl	$1,_force_loop
 588  0000FFCF                                   #                         asm("brw _divf_4_lp1");;  /* and loop on the error   */
 589  0000FFCF    13 ff4b                       brw _divf_4_lp1
 590  0000FFD2                                   #                    }   /* end of loop on error */
 591  0000FFD2                                   #              }   /* end of compare error */
 592  0000FFD2                                  L297:
 593  0000FFD2                                   #         }  /* end of WHILE loop */
 594  0000FFD2                                  L290:
 595  0000FFD2                                  L286:
 596  0000FFD2    6d effffffb10                 	incl	_index
 597  0000FFD8    13 fef9                       	jbr 	L288
 598  0000FFDB                                  L287:
 599  0000FFDB                                   # }  /* end of subtest 4 */
 600  0000FFDB    40                            	ret#2
 601  0000FFDC                                  	.set	L282,0x0
 602  0000FFDC                                  L284:
 603  0000FFDC    13 fee2                       	jbr 	L285
 604  0000FFDF                                  	.data
 605  00000d28 *                                	.text
 606  0000FFDF    00                            	.align	1
 607  0000FFE0                                  	.globl	_divf_5
 608  0000FFE0                                  _divf_5:
 609  0000FFE0    0000                          	.word	L298
 610  0000FFE2                                   #   
 611  0000FFE2                                   # 
 612  0000FFE2                                   # 
 613  0000FFE2                                   # /************************************************************************
 614  0000FFE2                                   # *
 615  0000FFE2                                   # *       SUBTEST 5 - DIvide, Wait 1 NOP before storing the results
 616  0000FFE2                                   # *
 617  0000FFE2                                   # ************************************************************************/
 618  0000FFE2                                   # divf_5() 
 619  0000FFE2                                   # {
 620  0000FFE2    13 011a                       	jbr 	L300
 621  0000FFE5                                  L301:
 622  0000FFE5                                   #         force_loop = FALSE;
 623  0000FFE5    4d effffffafd                 	clrl	_force_loop
 624  0000FFEB                                   #         subtest = 5;
 625  0000FFEB    0d 05 effffffaf6              	movl	$5,_subtest
 626  0000FFF2                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
 627  0000FFF2    4d effffffaf0                 	clrl	_index
 628  0000FFF8                                  L304:
 629  0000FFF8    1d effffffaea effffffae5      	cmpl	_index,_max_divf_1_index
 630  00010003    91 03 13 00f6                 	jgeq	L303
 631  00010008                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
 632  00010008    5c 0c effffffad9 50           	mull3	$12,_index,r0
 633  00010010    0d e000000000 effffffacd      	movl	_divf_1_data(r0),_sgl_ld_acc
 634  0001001B                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
 635  0001001B    5c 0c effffffac6 50           	mull3	$12,_index,r0
 636  00010023    0d e000000004 effffffaba      	movl	_divf_1_data+4(r0),_sgl_value_1
 637  0001002E                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
 638  0001002E    5c 0c effffffab3 50           	mull3	$12,_index,r0
 639  00010036    0d e000000008 effffffaa7      	movl	_divf_1_data+8(r0),_sgl_expected
 640  00010041                                   # /*
 641  00010041                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 642  00010041                                   #  * The force loop flag is set after the first error.
 643  00010041                                   # */
 644  00010041                                   #              asm("_divf_5_lp1:");
 645  00010041                                  _divf_5_lp1:
 646  00010041                                   #              asm("ldf _sgl_ld_acc");            /* load the 1st operand    */
 647  00010041    06 effffffaa1                 ldf _sgl_ld_acc
 648  00010047                                   #              asm("nop");                        /* delay                   */
 649  00010047    10                            nop
 650  00010048                                   #              asm("divf _sgl_value_1");          /* divide the 2nd operand  */
 651  00010048    f6 effffffa9a                 divf _sgl_value_1
 652  0001004E                                   #              asm("nop");                        /* delay before storing    */
 653  0001004E    10                            nop
 654  0001004F                                   #              asm("stf _sgl_st_acc");            /* store the result        */
 655  0001004F    26 effffffa93                 stf _sgl_st_acc
 656  00010055                                   #              if( force_loop )
 657  00010055    5d effffffa8d                 	tstl	_force_loop
 658  0001005B    31 02                         	jeql	L305
 659  0001005D                                   #                   asm("brb _divf_5_lp1");;      /* loop on the error       */
 660  0001005D    11 e2                         brb _divf_5_lp1
 661  0001005F                                  L305:
 662  0001005F                                   # /* 
 663  0001005F                                   #  * end error loop - test the results
 664  0001005F                                   # */
 665  0001005F                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
 666  0001005F    1d effffffa83 effffffa7e      	cmpl	_sgl_st_acc,_sgl_expected
 667  0001006A    21 03 13 0086                 	jeql	L306
 668  0001006F                                   #                    errcnt++;                    /* bump the error count   */
 669  0001006F    6d effffffa73                 	incl	_errcnt
 670  00010075                                   #                    if( prt_error ) {
 671  00010075    5d effffffa6d                 	tstl	_prt_error
 672  0001007B    31 55                         	jeql	L307
 673  0001007D                                   #                         writes(" \n");      /* start a new print line */
 674  0001007D                                  	.data	1
 675  00000e47 *                                L308:
 676  00000e47 *  200A00                        	.ascii	" \12\0"
 677  00000e4a *                                	.text
 678  0001007D    dd 8f00000e47                 	pushl	$L308
 679  00010083    fe 08 effffffa5e              	callf	$8,_writes
 680  0001008A                                   #                         writes("cycle: ");
 681  0001008A                                  	.data	1
 682  00000e4a *                                L309:
 683  00000e4a *  6379636C653A2000              	.ascii	"cycle: \0"
 684  00000e52 *                                	.text
 685  0001008A    dd 8f00000e4a                 	pushl	$L309
 686  00010090    fe 08 effffffa51              	callf	$8,_writes
 687  00010097                                   #                         writed( cycle );
 688  00010097    dd effffffa4b                 	pushl	_cycle
 689  0001009D    fe 08 effffffa44              	callf	$8,_writed
 690  000100A4                                   #                         writes("  DIVF test ");
 691  000100A4                                  	.data	1
 692  00000e52 *                                L310:
 693  00000e52 *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
 694  00000e5f *                                	.text
 695  000100A4    dd 8f00000e52                 	pushl	$L310
 696  000100AA    fe 08 effffffa37              	callf	$8,_writes
 697  000100B1                                   # 			writed( test_no );
 698  000100B1    dd effffffa31                 	pushl	_test_no
 699  000100B7    fe 08 effffffa2a              	callf	$8,_writed
 700  000100BE                                   # 	writes(", subtest 5 (Cache Data - 1 NOP) - BAD FINAL ACC\n");
 701  000100BE                                  	.data	1
 702  00000e5f *                                L311:
 703  00000e5f *  2C20737562746573742035202     	.ascii	", subtest 5 (Cache Data - 1 NOP) - BAD FINAL ACC\12\0"
                  843616368652044617461202D
                  2031204E4F5029202D2042414
                  42046494E414C204143430A00
 704  00000e91 *                                	.text
 705  000100BE    dd 8f00000e5f                 	pushl	$L311
 706  000100C4    fe 08 effffffa1d              	callf	$8,_writes
 707  000100CB                                   #                         print_divf_data();
 708  000100CB    fe 04 ef000005e6              	callf	$4,_print_divf_data
 709  000100D2                                   #                    }
 710  000100D2                                   #                    if( halt_flg ) 
 711  000100D2                                  L307:
 712  000100D2    5d effffffa10                 	tstl	_halt_flg
 713  000100D8    31 09                         	jeql	L312
 714  000100DA                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
 715  000100DA    dd 01                         	pushl	$1
 716  000100DC    fe 08 ef00000673              	callf	$8,_divf_er_halt
 717  000100E3                                   #                    if( loop_on_err ) {
 718  000100E3                                  L312:
 719  000100E3    5d effffff9ff                 	tstl	_loop_on_err
 720  000100E9    31 0a                         	jeql	L313
 721  000100EB                                   #                         force_loop = TRUE;        /* set the force loop flag */
 722  000100EB    0d 01 effffff9f6              	movl	$1,_force_loop
 723  000100F2                                   #                         asm("brw _divf_5_lp1");;  /* and loop on the error   */
 724  000100F2    13 ff4c                       brw _divf_5_lp1
 725  000100F5                                   #                    }   /* end of loop on error */
 726  000100F5                                   #              }   /* end of compare error */
 727  000100F5                                  L313:
 728  000100F5                                   #         }  /* end of WHILE loop */
 729  000100F5                                  L306:
 730  000100F5                                  L302:
 731  000100F5    6d effffff9ed                 	incl	_index
 732  000100FB    13 fefa                       	jbr 	L304
 733  000100FE                                  L303:
 734  000100FE                                   # }  /* end of subtest 5 */
 735  000100FE    40                            	ret#2
 736  000100FF                                  	.set	L298,0x0
 737  000100FF                                  L300:
 738  000100FF    13 fee3                       	jbr 	L301
 739  00010102                                  	.data
 740  00000d28 *                                	.text
 741  00010102                                  	.align	1
 742  00010102                                  	.globl	_divf_6
 743  00010102                                  _divf_6:
 744  00010102    0000                          	.word	L314
 745  00010104                                   #   
 746  00010104                                   # 
 747  00010104                                   # 
 748  00010104                                   # /************************************************************************
 749  00010104                                   # *
 750  00010104                                   # *       SUBTEST 6 - Check for register corruption
 751  00010104                                   # *
 752  00010104                                   # ************************************************************************/
 753  00010104                                   # divf_6() 
 754  00010104                                   # {
 755  00010104    13 01a7                       	jbr 	L316
 756  00010107                                  L317:
 757  00010107                                   #         force_loop = FALSE;                     /* clear force_loop flg */
 758  00010107    4d effffff9db                 	clrl	_force_loop
 759  0001010D                                   #         subtest = 6;
 760  0001010D    0d 06 effffff9d4              	movl	$6,_subtest
 761  00010114                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
 762  00010114    dd 8f00000000                 	pushl	$_load_regs
 763  0001011A    fe 08 effffff9c7              	callf	$8,_fill_reg_buf
 764  00010121                                   #         index = 0;
 765  00010121    4d effffff9c1                 	clrl	_index
 766  00010127                                   #         sgl_ld_acc   = divf_1_data[0].op_1;     /* get operand 1       */
 767  00010127    0d effffff9bb effffff9b6      	movl	_divf_1_data,_sgl_ld_acc
 768  00010132                                   #         sgl_value_1  = divf_1_data[0].op_2;     /* get operand 2       */
 769  00010132    0d effffff9b4 effffff9ab      	movl	_divf_1_data+4,_sgl_value_1
 770  0001013D                                   #         sgl_expected = divf_1_data[0].exp;      /* get expected result */
 771  0001013D    0d effffff9ad effffff9a0      	movl	_divf_1_data+8,_sgl_expected
 772  00010148                                   # /*
 773  00010148                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 774  00010148                                   #  * The force loop flag is set after the first error.
 775  00010148                                   # */
 776  00010148                                   #         asm("_divf_6_lp1:");
 777  00010148                                  _divf_6_lp1:
 778  00010148                                   #         asm("ldf _sgl_ld_acc");                 /* LOAD the accumulator  */
 779  00010148    06 effffff99a                 ldf _sgl_ld_acc
 780  0001014E                                   #         asm("nop");
 781  0001014E    10                            nop
 782  0001014F                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
 783  0001014F    ab 891fff effffff990          loadr $0x1fff,_load_regs
 784  00010158                                   #         asm("nop");
 785  00010158    10                            nop
 786  00010159                                   #         asm("divf _sgl_value_1");               /* do the divide         */
 787  00010159    f6 effffff989                 divf _sgl_value_1
 788  0001015F                                   #         asm("nop");
 789  0001015F    10                            nop
 790  00010160                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
 791  00010160    bb 891fff effffff97f          storer $0x1fff,_store_regs
 792  00010169                                   #         asm("stf _sgl_st_acc");                 /* save the accumulator  */
 793  00010169    26 effffff979                 stf _sgl_st_acc
 794  0001016F                                   #         if( force_loop )
 795  0001016F    5d effffff973                 	tstl	_force_loop
 796  00010175    31 02                         	jeql	L319
 797  00010177                                   #              asm("brb _divf_6_lp1");;           /* loop on the error     */
 798  00010177    11 cf                         brb _divf_6_lp1
 799  00010179                                  L319:
 800  00010179                                   # /*
 801  00010179                                   #  * Now compare the stored register values to those that were loaded
 802  00010179                                   # */
 803  00010179                                   #         index2 = 0;
 804  00010179    4d effffff969                 	clrl	_index2
 805  0001017F                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
 806  0001017F                                  L320:
 807  0001017F    0d effffff963 50              	movl	_index2,r0
 808  00010186    0d effffff95c 51              	movl	_index2,r1
 809  0001018D    1d 40effffff954               	cmpl	_load_regs[r0],_store_regs[r1]
                  41effffff94e 
 810  0001019A    21 11                         	jneq	L321
 811  0001019C    1d effffff946 0d              	cmpl	_index2,$13
 812  000101A3    81 08                         	jgeq	L321
 813  000101A5                                   #              index2++;                          /* check reg values        */
 814  000101A5    6d effffff93d                 	incl	_index2
 815  000101AB    11 d2                         	jbr 	L320
 816  000101AD                                  L321:
 817  000101AD                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
 818  000101AD    1d effffff935 0d              	cmpl	_index2,$13
 819  000101B4    91 03 13 00f4                 	jgeq	L322
 820  000101B9                                   #              errcnt++;                          /* bump the error count    */
 821  000101B9    6d effffff929                 	incl	_errcnt
 822  000101BF                                   #              if( prt_error ) {
 823  000101BF    5d effffff923                 	tstl	_prt_error
 824  000101C5    21 03 13 00c0                 	jeql	L323
 825  000101CA                                   #                   writes(" \n");           /* start a new print line  */
 826  000101CA                                  	.data	1
 827  00000e91 *                                L324:
 828  00000e91 *  200A00                        	.ascii	" \12\0"
 829  00000e94 *                                	.text
 830  000101CA    dd 8f00000e91                 	pushl	$L324
 831  000101D0    fe 08 effffff911              	callf	$8,_writes
 832  000101D7                                   #                   writes("cycle: ");
 833  000101D7                                  	.data	1
 834  00000e94 *                                L325:
 835  00000e94 *  6379636C653A2000              	.ascii	"cycle: \0"
 836  00000e9c *                                	.text
 837  000101D7    dd 8f00000e94                 	pushl	$L325
 838  000101DD    fe 08 effffff904              	callf	$8,_writes
 839  000101E4                                   #                   writed( cycle );
 840  000101E4    dd effffff8fe                 	pushl	_cycle
 841  000101EA    fe 08 effffff8f7              	callf	$8,_writed
 842  000101F1                                   #                   writes("  DIVF test ");
 843  000101F1                                  	.data	1
 844  00000e9c *                                L326:
 845  00000e9c *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
 846  00000ea9 *                                	.text
 847  000101F1    dd 8f00000e9c                 	pushl	$L326
 848  000101F7    fe 08 effffff8ea              	callf	$8,_writes
 849  000101FE                                   # 		  writed( test_no );
 850  000101FE    dd effffff8e4                 	pushl	_test_no
 851  00010204    fe 08 effffff8dd              	callf	$8,_writed
 852  0001020B                                   # 	  writes(", subtest 6 - A REGISTER WAS CHANGED\n");
 853  0001020B                                  	.data	1
 854  00000ea9 *                                L327:
 855  00000ea9 *  2C20737562746573742036202     	.ascii	", subtest 6 - A REGISTER WAS CHANGED\12\0"
                  D204120524547495354455220
                  574153204348414E4745440A0
                  0
 856  00000ecf *                                	.text
 857  0001020B    dd 8f00000ea9                 	pushl	$L327
 858  00010211    fe 08 effffff8d0              	callf	$8,_writes
 859  00010218                                   #                   print_divf_data();            /* print the operands      */
 860  00010218    fe 04 ef00000499              	callf	$4,_print_divf_data
 861  0001021F                                   #                   writes("register ");          /* print the information   */
 862  0001021F                                  	.data	1
 863  00000ecf *                                L328:
 864  00000ecf *  72656769737465722000          	.ascii	"register \0"
 865  00000ed9 *                                	.text
 866  0001021F    dd 8f00000ecf                 	pushl	$L328
 867  00010225    fe 08 effffff8bc              	callf	$8,_writes
 868  0001022C                                   #                   writed( index2 );             /*    about the corrupted  */
 869  0001022C    dd effffff8b6                 	pushl	_index2
 870  00010232    fe 08 effffff8af              	callf	$8,_writed
 871  00010239                                   #                   writes(" = ");                /*        register         */
 872  00010239                                  	.data	1
 873  00000ed9 *                                L329:
 874  00000ed9 *  203D2000                      	.ascii	" = \0"
 875  00000edd *                                	.text
 876  00010239    dd 8f00000ed9                 	pushl	$L329
 877  0001023F    fe 08 effffff8a2              	callf	$8,_writes
 878  00010246                                   #                   write32h( store_regs[index2] );
 879  00010246    0d effffff89c 50              	movl	_index2,r0
 880  0001024D    dd 40effffff894               	pushl	_store_regs[r0]
 881  00010254    fe 08 effffff88d              	callf	$8,_write32h
 882  0001025B                                   #                   writes(",  should be = ");
 883  0001025B                                  	.data	1
 884  00000edd *                                L331:
 885  00000edd *  2C202073686F756C642062652     	.ascii	",  should be = \0"
                  03D2000
 886  00000eed *                                	.text
 887  0001025B    dd 8f00000edd                 	pushl	$L331
 888  00010261    fe 08 effffff880              	callf	$8,_writes
 889  00010268                                   #                   write32h( load_regs[index2] );
 890  00010268    0d effffff87a 50              	movl	_index2,r0
 891  0001026F    dd 40effffff872               	pushl	_load_regs[r0]
 892  00010276    fe 08 effffff86b              	callf	$8,_write32h
 893  0001027D                                   #                   writes("\n");
 894  0001027D                                  	.data	1
 895  00000eed *                                L332:
 896  00000eed *  0A00                          	.ascii	"\12\0"
 897  00000eef *                                	.text
 898  0001027D    dd 8f00000eed                 	pushl	$L332
 899  00010283    fe 08 effffff85e              	callf	$8,_writes
 900  0001028A                                   #              }
 901  0001028A                                   #              if( halt_flg )   
 902  0001028A                                  L323:
 903  0001028A    5d effffff858                 	tstl	_halt_flg
 904  00010290    31 09                         	jeql	L333
 905  00010292                                   #                   divf_er_halt( BAD_REG_HLT );  /* halt on the error      */
 906  00010292    dd 02                         	pushl	$2
 907  00010294    fe 08 ef000004bb              	callf	$8,_divf_er_halt
 908  0001029B                                   #              if( loop_on_err ) {
 909  0001029B                                  L333:
 910  0001029B    5d effffff847                 	tstl	_loop_on_err
 911  000102A1    31 0a                         	jeql	L334
 912  000102A3                                   #                   force_loop = TRUE;        /* set the force loop flag */
 913  000102A3    0d 01 effffff83e              	movl	$1,_force_loop
 914  000102AA                                   #                   asm("brw _divf_6_lp1");;  /* and loop on the error   */
 915  000102AA    13 fe9b                       brw _divf_6_lp1
 916  000102AD                                   #              }   /* end of loop on error */
 917  000102AD                                   #         }  /* end of register corruption error */
 918  000102AD                                  L334:
 919  000102AD                                   # }  /* end of subtest 6 */
 920  000102AD                                  L322:
 921  000102AD    40                            	ret#2
 922  000102AE                                  	.set	L314,0x0
 923  000102AE                                  L316:
 924  000102AE    13 fe56                       	jbr 	L317
 925  000102B1                                  	.data
 926  00000d28 *                                	.text
 927  000102B1    00                            	.align	1
 928  000102B2                                  	.globl	_divf_7
 929  000102B2                                  _divf_7:
 930  000102B2    0000                          	.word	L335
 931  000102B4                                   #   
 932  000102B4                                   # 
 933  000102B4                                   # 
 934  000102B4                                   # /************************************************************************
 935  000102B4                                   # *
 936  000102B4                                   # *       SUBTEST 7 - Check for PSL corruption
 937  000102B4                                   # *
 938  000102B4                                   # ************************************************************************/
 939  000102B4                                   # divf_7() 
 940  000102B4                                   # {
 941  000102B4    13 01b2                       	jbr 	L337
 942  000102B7                                  L338:
 943  000102B7                                   #         force_loop = FALSE;                     /* clear force_loop flg */
 944  000102B7    4d effffff82b                 	clrl	_force_loop
 945  000102BD                                   #         subtest = 7;
 946  000102BD    0d 07 effffff824              	movl	$7,_subtest
 947  000102C4                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
 948  000102C4    dd 8f00000000                 	pushl	$_load_regs
 949  000102CA    fe 08 effffff817              	callf	$8,_fill_reg_buf
 950  000102D1                                   #         for( index = 0; index < 3; index++ ) {
 951  000102D1    4d effffff811                 	clrl	_index
 952  000102D7                                  L341:
 953  000102D7    1d effffff80b 03              	cmpl	_index,$3
 954  000102DE    91 03 13 0185                 	jgeq	L340
 955  000102E3                                   #              sgl_ld_acc   = divf_1_data[index].op_1;    /* get operand 1 */
 956  000102E3    5c 0c effffff7fe 50           	mull3	$12,_index,r0
 957  000102EB    0d e000000000 effffff7f2      	movl	_divf_1_data(r0),_sgl_ld_acc
 958  000102F6                                   #              sgl_value_1  = divf_1_data[index].op_2;    /* get operand 2 */
 959  000102F6    5c 0c effffff7eb 50           	mull3	$12,_index,r0
 960  000102FE    0d e000000004 effffff7df      	movl	_divf_1_data+4(r0),_sgl_value_1
 961  00010309                                   #              sgl_expected = divf_1_data[index].exp;     /* get expected  */
 962  00010309    5c 0c effffff7d8 50           	mull3	$12,_index,r0
 963  00010311    0d e000000008 effffff7cc      	movl	_divf_1_data+8(r0),_sgl_expected
 964  0001031C                                   #              sgl_dummy1 = status_array[status_index];   /* status = +, -, 0 */
 965  0001031C    0d effffff7c6 50              	movl	_status_index,r0
 966  00010323    0d 40effffff7be               	movl	_status_array[r0],_sgl_dummy1
                  effffff7b9 
 967  0001032F                                   # /*
 968  0001032F                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 969  0001032F                                   #  * The force loop flag is set after the first error.
 970  0001032F                                   # */
 971  0001032F                                   #              asm("_divf_7_lp1:");
 972  0001032F                                  _divf_7_lp1:
 973  0001032F                                   #              asm("ldf _sgl_ld_acc");            /* LOAD the accumulator  */
 974  0001032F    06 effffff7b3                 ldf _sgl_ld_acc
 975  00010335                                   #              asm("nop");
 976  00010335    10                            nop
 977  00010336                                   #              asm("tstl _sgl_dummy1");		/* set the PSL status    */
 978  00010336    5d effffff7ac                 tstl _sgl_dummy1
 979  0001033C                                   # 	     asm("movpsl _init_psl");		/* save the initial PSL  */
 980  0001033C    cd effffff7a6                 movpsl _init_psl
 981  00010342                                   #              asm("nop");
 982  00010342    10                            nop
 983  00010343                                   #              asm("divf _sgl_value_1");          /* do the divide         */
 984  00010343    f6 effffff79f                 divf _sgl_value_1
 985  00010349                                   #              asm("nop");
 986  00010349    10                            nop
 987  0001034A                                   #              asm("movpsl _psl_val");            /* save the final PSL    */
 988  0001034A    cd effffff798                 movpsl _psl_val
 989  00010350                                   #              asm("stf _sgl_st_acc");            /* save the accumulator  */
 990  00010350    26 effffff792                 stf _sgl_st_acc
 991  00010356                                   #              if( force_loop )
 992  00010356    5d effffff78c                 	tstl	_force_loop
 993  0001035C    31 02                         	jeql	L342
 994  0001035E                                   #                   asm("brb _divf_7_lp1");;      /* loop on the error     */
 995  0001035E    11 cf                         brb _divf_7_lp1
 996  00010360                                  L342:
 997  00010360                                   # /*
 998  00010360                                   #  * Now compare the final PSL to the initial PSL -they should be the same
 999  00010360                                   # */
1000  00010360                                   #              exp_psl = init_psl;
1001  00010360    0d effffff782 effffff77d      	movl	_init_psl,_exp_psl
1002  0001036B                                   # 	     if( psl_val != exp_psl ) {
1003  0001036B    1d effffff777 effffff772      	cmpl	_psl_val,_exp_psl
1004  00010376    21 03 13 00e4                 	jeql	L343
1005  0001037B                                   #                   errcnt++;                     /* bump the error count    */
1006  0001037B    6d effffff767                 	incl	_errcnt
1007  00010381                                   #                   if( prt_error ) {
1008  00010381    5d effffff761                 	tstl	_prt_error
1009  00010387    21 03 13 00b0                 	jeql	L344
1010  0001038C                                   #                        writes(" \n");      /* start a new print line  */
1011  0001038C                                  	.data	1
1012  00000eef *                                L345:
1013  00000eef *  200A00                        	.ascii	" \12\0"
1014  00000ef2 *                                	.text
1015  0001038C    dd 8f00000eef                 	pushl	$L345
1016  00010392    fe 08 effffff74f              	callf	$8,_writes
1017  00010399                                   #                        writes("cycle: ");
1018  00010399                                  	.data	1
1019  00000ef2 *                                L346:
1020  00000ef2 *  6379636C653A2000              	.ascii	"cycle: \0"
1021  00000efa *                                	.text
1022  00010399    dd 8f00000ef2                 	pushl	$L346
1023  0001039F    fe 08 effffff742              	callf	$8,_writes
1024  000103A6                                   #                        writed( cycle );
1025  000103A6    dd effffff73c                 	pushl	_cycle
1026  000103AC    fe 08 effffff735              	callf	$8,_writed
1027  000103B3                                   #                        writes("  DIVF test ");
1028  000103B3                                  	.data	1
1029  00000efa *                                L347:
1030  00000efa *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
1031  00000f07 *                                	.text
1032  000103B3    dd 8f00000efa                 	pushl	$L347
1033  000103B9    fe 08 effffff728              	callf	$8,_writes
1034  000103C0                                   # 		       writed( test_no );
1035  000103C0    dd effffff722                 	pushl	_test_no
1036  000103C6    fe 08 effffff71b              	callf	$8,_writed
1037  000103CD                                   # 	writes(", subtest 7 - INCORRECT FINAL PSL\n");
1038  000103CD                                  	.data	1
1039  00000f07 *                                L348:
1040  00000f07 *  2C20737562746573742037202     	.ascii	", subtest 7 - INCORRECT FINAL PSL\12\0"
                  D20494E434F52524543542046
                  494E414C2050534C0A00
1041  00000f2a *                                	.text
1042  000103CD    dd 8f00000f07                 	pushl	$L348
1043  000103D3    fe 08 effffff70e              	callf	$8,_writes
1044  000103DA                                   #                        print_divf_data();       /* print the operands      */
1045  000103DA    fe 04 ef000002d7              	callf	$4,_print_divf_data
1046  000103E1                                   #                        writes("initial PSL = ");
1047  000103E1                                  	.data	1
1048  00000f2a *                                L349:
1049  00000f2a *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
1050  00000f39 *                                	.text
1051  000103E1    dd 8f00000f2a                 	pushl	$L349
1052  000103E7    fe 08 effffff6fa              	callf	$8,_writes
1053  000103EE                                   #                        write32h( init_psl );
1054  000103EE    dd effffff6f4                 	pushl	_init_psl
1055  000103F4    fe 08 effffff6ed              	callf	$8,_write32h
1056  000103FB                                   #                        writes(", final PSL = ");
1057  000103FB                                  	.data	1
1058  00000f39 *                                L350:
1059  00000f39 *  2C2066696E616C2050534C203     	.ascii	", final PSL = \0"
                  D2000
1060  00000f48 *                                	.text
1061  000103FB    dd 8f00000f39                 	pushl	$L350
1062  00010401    fe 08 effffff6e0              	callf	$8,_writes
1063  00010408                                   #                        write32h( psl_val );
1064  00010408    dd effffff6da                 	pushl	_psl_val
1065  0001040E    fe 08 effffff6d3              	callf	$8,_write32h
1066  00010415                                   #                        writes(", expected PSL = ");
1067  00010415                                  	.data	1
1068  00000f48 *                                L351:
1069  00000f48 *  2C20657870656374656420505     	.ascii	", expected PSL = \0"
                  34C203D2000
1070  00000f5a *                                	.text
1071  00010415    dd 8f00000f48                 	pushl	$L351
1072  0001041B    fe 08 effffff6c6              	callf	$8,_writes
1073  00010422                                   #                        write32h( exp_psl );
1074  00010422    dd effffff6c0                 	pushl	_exp_psl
1075  00010428    fe 08 effffff6b9              	callf	$8,_write32h
1076  0001042F                                   #                        writes("\n");
1077  0001042F                                  	.data	1
1078  00000f5a *                                L352:
1079  00000f5a *  0A00                          	.ascii	"\12\0"
1080  00000f5c *                                	.text
1081  0001042F    dd 8f00000f5a                 	pushl	$L352
1082  00010435    fe 08 effffff6ac              	callf	$8,_writes
1083  0001043C                                   #                   }
1084  0001043C                                   #                   if( halt_flg )   
1085  0001043C                                  L344:
1086  0001043C    5d effffff6a6                 	tstl	_halt_flg
1087  00010442    31 09                         	jeql	L353
1088  00010444                                   #                        divf_er_halt( BAD_PSL_HLT );   /* halt on the error */
1089  00010444    dd 03                         	pushl	$3
1090  00010446    fe 08 ef00000309              	callf	$8,_divf_er_halt
1091  0001044D                                   #                   if( loop_on_err ) {
1092  0001044D                                  L353:
1093  0001044D    5d effffff695                 	tstl	_loop_on_err
1094  00010453    31 0a                         	jeql	L354
1095  00010455                                   #                        force_loop = TRUE;        /* set the force loop flag */
1096  00010455    0d 01 effffff68c              	movl	$1,_force_loop
1097  0001045C                                   #                        asm("brw _divf_7_lp1");;  /* and loop on the error   */
1098  0001045C    13 fed0                       brw _divf_7_lp1
1099  0001045F                                   #                   }   /* end of loop on error */
1100  0001045F                                   #              }  /* end of PSL corruption error */
1101  0001045F                                  L354:
1102  0001045F                                   #         }  /* end of WHILE loop */
1103  0001045F                                  L343:
1104  0001045F                                  L339:
1105  0001045F    6d effffff683                 	incl	_index
1106  00010465    13 fe6f                       	jbr 	L341
1107  00010468                                  L340:
1108  00010468                                   # }  /* end of subtest 7 */
1109  00010468    40                            	ret#2
1110  00010469                                  	.set	L335,0x0
1111  00010469                                  L337:
1112  00010469    13 fe4b                       	jbr 	L338
1113  0001046C                                  	.data
1114  00000d28 *                                	.text
1115  0001046C                                  	.align	1
1116  0001046C                                  	.globl	_divf_8
1117  0001046C                                  _divf_8:
1118  0001046C    0000                          	.word	L355
1119  0001046E                                   #   
1120  0001046E                                   # 
1121  0001046E                                   # 
1122  0001046E                                   # /************************************************************************
1123  0001046E                                   # *
1124  0001046E                                   # *               SUBTEST 8 - pipelined entry test
1125  0001046E                                   # *
1126  0001046E                                   # ************************************************************************/
1127  0001046E                                   # divf_8() 
1128  0001046E                                   # {
1129  0001046E    13 011d                       	jbr 	L357
1130  00010471                                  L358:
1131  00010471                                   #         force_loop = FALSE;
1132  00010471    4d effffff671                 	clrl	_force_loop
1133  00010477                                   #         subtest = 8;
1134  00010477    0d 08 effffff66a              	movl	$8,_subtest
1135  0001047E                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
1136  0001047E    4d effffff664                 	clrl	_index
1137  00010484                                  L361:
1138  00010484    1d effffff65e effffff659      	cmpl	_index,_max_divf_1_index
1139  0001048F    91 03 13 00f9                 	jgeq	L360
1140  00010494                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
1141  00010494    5c 0c effffff64d 50           	mull3	$12,_index,r0
1142  0001049C    0d e000000000 effffff641      	movl	_divf_1_data(r0),_sgl_ld_acc
1143  000104A7                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
1144  000104A7    5c 0c effffff63a 50           	mull3	$12,_index,r0
1145  000104AF    0d e000000004 effffff62e      	movl	_divf_1_data+4(r0),_sgl_value_1
1146  000104BA                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
1147  000104BA    5c 0c effffff627 50           	mull3	$12,_index,r0
1148  000104C2    0d e000000008 effffff61b      	movl	_divf_1_data+8(r0),_sgl_expected
1149  000104CD                                   # /*
1150  000104CD                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1151  000104CD                                   #  * The force loop flag is set after the first error.
1152  000104CD                                   # */
1153  000104CD                                   #              asm("_divf_8_lp1:");
1154  000104CD                                  _divf_8_lp1:
1155  000104CD                                   #              asm("movl $0,r0");                 /* clear r0                */
1156  000104CD    0d 00 50                      movl $0,r0
1157  000104D0                                   #              asm("ldf r0");                     /* load the Acc. with 0.0  */
1158  000104D0    06 50                         ldf r0
1159  000104D2                                   #              asm("addf _sgl_ld_acc");           /* add the 1st operand     */
1160  000104D2    c6 effffff610                 addf _sgl_ld_acc
1161  000104D8                                   #              asm("divf _sgl_value_1");          /* div the 2nd operand     */
1162  000104D8    f6 effffff60a                 divf _sgl_value_1
1163  000104DE                                   #              asm("stf _sgl_st_acc");            /* store the result        */
1164  000104DE    26 effffff604                 stf _sgl_st_acc
1165  000104E4                                   #              if( force_loop )
1166  000104E4    5d effffff5fe                 	tstl	_force_loop
1167  000104EA    31 02                         	jeql	L362
1168  000104EC                                   #                   asm("brb _divf_8_lp1");;      /* loop on the error       */
1169  000104EC    11 df                         brb _divf_8_lp1
1170  000104EE                                  L362:
1171  000104EE                                   # /* 
1172  000104EE                                   #  * end error loop - test the results
1173  000104EE                                   # */
1174  000104EE                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
1175  000104EE    1d effffff5f4 effffff5ef      	cmpl	_sgl_st_acc,_sgl_expected
1176  000104F9    21 03 13 0086                 	jeql	L363
1177  000104FE                                   #                    errcnt++;                    /* bump the error count   */
1178  000104FE    6d effffff5e4                 	incl	_errcnt
1179  00010504                                   #                    if( prt_error ) {
1180  00010504    5d effffff5de                 	tstl	_prt_error
1181  0001050A    31 55                         	jeql	L364
1182  0001050C                                   #                         writes(" \n");      /* start a new print line */
1183  0001050C                                  	.data	1
1184  00000f5c *                                L365:
1185  00000f5c *  200A00                        	.ascii	" \12\0"
1186  00000f5f *                                	.text
1187  0001050C    dd 8f00000f5c                 	pushl	$L365
1188  00010512    fe 08 effffff5cf              	callf	$8,_writes
1189  00010519                                   #                         writes("cycle: ");
1190  00010519                                  	.data	1
1191  00000f5f *                                L366:
1192  00000f5f *  6379636C653A2000              	.ascii	"cycle: \0"
1193  00000f67 *                                	.text
1194  00010519    dd 8f00000f5f                 	pushl	$L366
1195  0001051F    fe 08 effffff5c2              	callf	$8,_writes
1196  00010526                                   #                         writed( cycle );
1197  00010526    dd effffff5bc                 	pushl	_cycle
1198  0001052C    fe 08 effffff5b5              	callf	$8,_writed
1199  00010533                                   #                         writes("  DIVF test ");
1200  00010533                                  	.data	1
1201  00000f67 *                                L367:
1202  00000f67 *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
1203  00000f74 *                                	.text
1204  00010533    dd 8f00000f67                 	pushl	$L367
1205  00010539    fe 08 effffff5a8              	callf	$8,_writes
1206  00010540                                   # 			writed( test_no );
1207  00010540    dd effffff5a2                 	pushl	_test_no
1208  00010546    fe 08 effffff59b              	callf	$8,_writed
1209  0001054D                                   # 	writes(", subtest 8 (Piped Entry) - BAD FINAL ACC\n");
1210  0001054D                                  	.data	1
1211  00000f74 *                                L368:
1212  00000f74 *  2C20737562746573742038202     	.ascii	", subtest 8 (Piped Entry) - BAD FINAL ACC\12\0"
                  8506970656420456E74727929
                  202D204241442046494E414C2
                  04143430A00
1213  00000f9f *                                	.text
1214  0001054D    dd 8f00000f74                 	pushl	$L368
1215  00010553    fe 08 effffff58e              	callf	$8,_writes
1216  0001055A                                   #                         print_divf_data();
1217  0001055A    fe 04 ef00000157              	callf	$4,_print_divf_data
1218  00010561                                   #                    }
1219  00010561                                   #                    if( halt_flg ) 
1220  00010561                                  L364:
1221  00010561    5d effffff581                 	tstl	_halt_flg
1222  00010567    31 09                         	jeql	L369
1223  00010569                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
1224  00010569    dd 01                         	pushl	$1
1225  0001056B    fe 08 ef000001e4              	callf	$8,_divf_er_halt
1226  00010572                                   #                    if( loop_on_err ) {
1227  00010572                                  L369:
1228  00010572    5d effffff570                 	tstl	_loop_on_err
1229  00010578    31 0a                         	jeql	L370
1230  0001057A                                   #                         force_loop = TRUE;        /* set the force loop flag */
1231  0001057A    0d 01 effffff567              	movl	$1,_force_loop
1232  00010581                                   #                         asm("brw _divf_8_lp1");;  /* and loop on the error   */
1233  00010581    13 ff49                       brw _divf_8_lp1
1234  00010584                                   #                    }   /* end of loop on error */
1235  00010584                                   #              }   /* end of compare error */
1236  00010584                                  L370:
1237  00010584                                   #         }  /* end of WHILE loop */
1238  00010584                                  L363:
1239  00010584                                  L359:
1240  00010584    6d effffff55e                 	incl	_index
1241  0001058A    13 fef7                       	jbr 	L361
1242  0001058D                                  L360:
1243  0001058D                                   # }  /* end of subtest 8 */
1244  0001058D    40                            	ret#2
1245  0001058E                                  	.set	L355,0x0
1246  0001058E                                  L357:
1247  0001058E    13 fee0                       	jbr 	L358
1248  00010591                                  	.data
1249  00000d28 *                                	.text
1250  00010591    00                            	.align	1
1251  00010592                                  	.globl	_divf_9
1252  00010592                                  _divf_9:
1253  00010592    0000                          	.word	L371
1254  00010594                                   #   
1255  00010594                                   # 
1256  00010594                                   # 
1257  00010594                                   # /************************************************************************
1258  00010594                                   # *
1259  00010594                                   # *               SUBTEST 9 - pipelined exit test
1260  00010594                                   # *
1261  00010594                                   # ************************************************************************/
1262  00010594                                   # divf_9() 
1263  00010594                                   # {
1264  00010594    13 011d                       	jbr 	L373
1265  00010597                                  L374:
1266  00010597                                   #         force_loop = FALSE;
1267  00010597    4d effffff54b                 	clrl	_force_loop
1268  0001059D                                   #         subtest = 9;
1269  0001059D    0d 09 effffff544              	movl	$9,_subtest
1270  000105A4                                   #         for( index = 0; index < max_divf_1_index; index++ ) {
1271  000105A4    4d effffff53e                 	clrl	_index
1272  000105AA                                  L377:
1273  000105AA    1d effffff538 effffff533      	cmpl	_index,_max_divf_1_index
1274  000105B5    91 03 13 00f9                 	jgeq	L376
1275  000105BA                                   #              sgl_ld_acc   = divf_1_data[index].op_1; /* get operand 1       */
1276  000105BA    5c 0c effffff527 50           	mull3	$12,_index,r0
1277  000105C2    0d e000000000 effffff51b      	movl	_divf_1_data(r0),_sgl_ld_acc
1278  000105CD                                   #              sgl_value_1  = divf_1_data[index].op_2; /* get operand 2       */
1279  000105CD    5c 0c effffff514 50           	mull3	$12,_index,r0
1280  000105D5    0d e000000004 effffff508      	movl	_divf_1_data+4(r0),_sgl_value_1
1281  000105E0                                   #              sgl_expected = divf_1_data[index].exp;  /* get expected result */
1282  000105E0    5c 0c effffff501 50           	mull3	$12,_index,r0
1283  000105E8    0d e000000008 effffff4f5      	movl	_divf_1_data+8(r0),_sgl_expected
1284  000105F3                                   # /*
1285  000105F3                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1286  000105F3                                   #  * The force loop flag is set after the first error.
1287  000105F3                                   # */
1288  000105F3                                   #              asm("_divf_9_lp1:");
1289  000105F3                                  _divf_9_lp1:
1290  000105F3                                   #              asm("movl $0,r0");                 /* clear r0                */
1291  000105F3    0d 00 50                      movl $0,r0
1292  000105F6                                   #              asm("ldf _sgl_ld_acc");            /* load the 1st operand    */
1293  000105F6    06 effffff4ec                 ldf _sgl_ld_acc
1294  000105FC                                   #              asm("divf _sgl_value_1");          /* divide the 2nd operand  */
1295  000105FC    f6 effffff4e6                 divf _sgl_value_1
1296  00010602                                   #              asm("addf r0");                    /* add a 0.0 to the result */
1297  00010602    c6 50                         addf r0
1298  00010604                                   #              asm("stf _sgl_st_acc");            /* store the result        */
1299  00010604    26 effffff4de                 stf _sgl_st_acc
1300  0001060A                                   #              if( force_loop )
1301  0001060A    5d effffff4d8                 	tstl	_force_loop
1302  00010610    31 02                         	jeql	L378
1303  00010612                                   #                   asm("brb _divf_9_lp1");;      /* loop on the error       */
1304  00010612    11 df                         brb _divf_9_lp1
1305  00010614                                  L378:
1306  00010614                                   # /* 
1307  00010614                                   #  * end error loop - test the results
1308  00010614                                   # */
1309  00010614                                   #              if( sgl_st_acc != sgl_expected ) { /* COMPARE the values     */
1310  00010614    1d effffff4ce effffff4c9      	cmpl	_sgl_st_acc,_sgl_expected
1311  0001061F    21 03 13 0086                 	jeql	L379
1312  00010624                                   #                    errcnt++;                    /* bump the error count   */
1313  00010624    6d effffff4be                 	incl	_errcnt
1314  0001062A                                   #                    if( prt_error ) {
1315  0001062A    5d effffff4b8                 	tstl	_prt_error
1316  00010630    31 55                         	jeql	L380
1317  00010632                                   #                         writes(" \n");      /* start a new print line */
1318  00010632                                  	.data	1
1319  00000f9f *                                L381:
1320  00000f9f *  200A00                        	.ascii	" \12\0"
1321  00000fa2 *                                	.text
1322  00010632    dd 8f00000f9f                 	pushl	$L381
1323  00010638    fe 08 effffff4a9              	callf	$8,_writes
1324  0001063F                                   #                         writes("cycle: ");
1325  0001063F                                  	.data	1
1326  00000fa2 *                                L382:
1327  00000fa2 *  6379636C653A2000              	.ascii	"cycle: \0"
1328  00000faa *                                	.text
1329  0001063F    dd 8f00000fa2                 	pushl	$L382
1330  00010645    fe 08 effffff49c              	callf	$8,_writes
1331  0001064C                                   #                         writed( cycle );
1332  0001064C    dd effffff496                 	pushl	_cycle
1333  00010652    fe 08 effffff48f              	callf	$8,_writed
1334  00010659                                   #                         writes("  DIVF test ");
1335  00010659                                  	.data	1
1336  00000faa *                                L383:
1337  00000faa *  2020444956462074657374200     	.ascii	"  DIVF test \0"
                  0
1338  00000fb7 *                                	.text
1339  00010659    dd 8f00000faa                 	pushl	$L383
1340  0001065F    fe 08 effffff482              	callf	$8,_writes
1341  00010666                                   # 			writed( test_no );
1342  00010666    dd effffff47c                 	pushl	_test_no
1343  0001066C    fe 08 effffff475              	callf	$8,_writed
1344  00010673                                   # 	writes(", subtest 9 (Piped Exit) - BAD FINAL ACC\n");
1345  00010673                                  	.data	1
1346  00000fb7 *                                L384:
1347  00000fb7 *  2C20737562746573742039202     	.ascii	", subtest 9 (Piped Exit) - BAD FINAL ACC\12\0"
                  8506970656420457869742920
                  2D204241442046494E414C204
                  143430A00
1348  00000fe1 *                                	.text
1349  00010673    dd 8f00000fb7                 	pushl	$L384
1350  00010679    fe 08 effffff468              	callf	$8,_writes
1351  00010680                                   #                         print_divf_data();
1352  00010680    fe 04 ef00000031              	callf	$4,_print_divf_data
1353  00010687                                   #                    }
1354  00010687                                   #                    if( halt_flg ) 
1355  00010687                                  L380:
1356  00010687    5d effffff45b                 	tstl	_halt_flg
1357  0001068D    31 09                         	jeql	L385
1358  0001068F                                   #                         divf_er_halt( BAD_ACC_HLT );    /* halt on the error */
1359  0001068F    dd 01                         	pushl	$1
1360  00010691    fe 08 ef000000be              	callf	$8,_divf_er_halt
1361  00010698                                   #                    if( loop_on_err ) {
1362  00010698                                  L385:
1363  00010698    5d effffff44a                 	tstl	_loop_on_err
1364  0001069E    31 0a                         	jeql	L386
1365  000106A0                                   #                         force_loop = TRUE;        /* set the force loop flag */
1366  000106A0    0d 01 effffff441              	movl	$1,_force_loop
1367  000106A7                                   #                         asm("brw _divf_9_lp1");;  /* and loop on the error   */
1368  000106A7    13 ff49                       brw _divf_9_lp1
1369  000106AA                                   #                    }   /* end of loop on error */
1370  000106AA                                   #              }   /* end of compare error */
1371  000106AA                                  L386:
1372  000106AA                                   #         }  /* end of WHILE loop */
1373  000106AA                                  L379:
1374  000106AA                                  L375:
1375  000106AA    6d effffff438                 	incl	_index
1376  000106B0    13 fef7                       	jbr 	L377
1377  000106B3                                  L376:
1378  000106B3                                   # }  /* end of subtest 9 */
1379  000106B3    40                            	ret#2
1380  000106B4                                  	.set	L371,0x0
1381  000106B4                                  L373:
1382  000106B4    13 fee0                       	jbr 	L374
1383  000106B7                                  	.data
1384  00000d28 *                                	.text
1385  000106B7    00                            	.align	1
1386  000106B8                                  	.globl	_print_divf_data
1387  000106B8                                  _print_divf_data:
1388  000106B8    0000                          	.word	L387
1389  000106BA                                   #   
1390  000106BA                                   # 
1391  000106BA                                   # 
1392  000106BA                                   # /**************************************************************************
1393  000106BA                                   # *
1394  000106BA                                   # *       PRINT THE DATA AND STORE RESULTS
1395  000106BA                                   # *
1396  000106BA                                   # *  initial Acc = xxxxxxxx,     stored = xxxxxxxx,   data index = xx
1397  000106BA                                   # *      operand = xxxxxxxx,   expected = xxxxxxxx
1398  000106BA                                   # **************************************************************************/
1399  000106BA                                   # print_divf_data()
1400  000106BA                                   # {
1401  000106BA    13 0095                       	jbr 	L389
1402  000106BD                                  L390:
1403  000106BD                                   #         writes("initial Acc = ");
1404  000106BD                                  	.data	1
1405  00000fe1 *                                L391:
1406  00000fe1 *  696E697469616C20416363203     	.ascii	"initial Acc = \0"
                  D2000
1407  00000ff0 *                                	.text
1408  000106BD    dd 8f00000fe1                 	pushl	$L391
1409  000106C3    fe 08 effffff41e              	callf	$8,_writes
1410  000106CA                                   #         write32h( sgl_ld_acc );
1411  000106CA    dd effffff418                 	pushl	_sgl_ld_acc
1412  000106D0    fe 08 effffff411              	callf	$8,_write32h
1413  000106D7                                   #         writes(",    stored = ");
1414  000106D7                                  	.data	1
1415  00000ff0 *                                L392:
1416  00000ff0 *  2C2020202073746F726564203     	.ascii	",    stored = \0"
                  D2000
1417  00000fff *                                	.text
1418  000106D7    dd 8f00000ff0                 	pushl	$L392
1419  000106DD    fe 08 effffff404              	callf	$8,_writes
1420  000106E4                                   #         write32h( sgl_st_acc );
1421  000106E4    dd effffff3fe                 	pushl	_sgl_st_acc
1422  000106EA    fe 08 effffff3f7              	callf	$8,_write32h
1423  000106F1                                   #         writes(",  data index = ");
1424  000106F1                                  	.data	1
1425  00000fff *                                L393:
1426  00000fff *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
1427  00001010 *                                	.text
1428  000106F1    dd 8f00000fff                 	pushl	$L393
1429  000106F7    fe 08 effffff3ea              	callf	$8,_writes
1430  000106FE                                   #         writed( index );
1431  000106FE    dd effffff3e4                 	pushl	_index
1432  00010704    fe 08 effffff3dd              	callf	$8,_writed
1433  0001070B                                   #         writec('\n');
1434  0001070B    dd 0a                         	pushl	$10
1435  0001070D    fe 08 effffff3d4              	callf	$8,_writec
1436  00010714                                   #         writes("    operand = ");
1437  00010714                                  	.data	1
1438  00001010 *                                L395:
1439  00001010 *  202020206F706572616E64203     	.ascii	"    operand = \0"
                  D2000
1440  0000101f *                                	.text
1441  00010714    dd 8f00001010                 	pushl	$L395
1442  0001071A    fe 08 effffff3c7              	callf	$8,_writes
1443  00010721                                   #         write32h( sgl_value_1 );
1444  00010721    dd effffff3c1                 	pushl	_sgl_value_1
1445  00010727    fe 08 effffff3ba              	callf	$8,_write32h
1446  0001072E                                   #         writes(",  expected = ");
1447  0001072E                                  	.data	1
1448  0000101f *                                L396:
1449  0000101f *  2C20206578706563746564203     	.ascii	",  expected = \0"
                  D2000
1450  0000102e *                                	.text
1451  0001072E    dd 8f0000101f                 	pushl	$L396
1452  00010734    fe 08 effffff3ad              	callf	$8,_writes
1453  0001073B                                   #         write32h( sgl_expected );
1454  0001073B    dd effffff3a7                 	pushl	_sgl_expected
1455  00010741    fe 08 effffff3a0              	callf	$8,_write32h
1456  00010748                                   #         writec('\n');
1457  00010748    dd 0a                         	pushl	$10
1458  0001074A    fe 08 effffff397              	callf	$8,_writec
1459  00010751                                   # }
1460  00010751    40                            	ret#2
1461  00010752                                  	.set	L387,0x0
1462  00010752                                  L389:
1463  00010752    13 ff68                       	jbr 	L390
1464  00010755                                  	.data
1465  00000d28 *                                	.text
1466  00010755    00                            	.align	1
1467  00010756                                  	.globl	_divf_er_halt
1468  00010756                                  _divf_er_halt:
1469  00010756    0000                          	.word	L397
1470  00010758                                   #   
1471  00010758                                   # 
1472  00010758                                   # 
1473  00010758                                   # /**************************************************************************
1474  00010758                                   # *
1475  00010758                                   # *               HALT ON ERROR ROUTINE 
1476  00010758                                   # *
1477  00010758                                   # **************************************************************************/
1478  00010758                                   # divf_er_halt( halt_code )
1479  00010758                                   # int halt_code;
1480  00010758                                   # {
1481  00010758    13 00af                       	jbr 	L399
1482  0001075B                                  L400:
1483  0001075B                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
1484  0001075B    0d ad04 effffff385            	movl	4(fp),_sgl_dummy1
1485  00010763                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
1486  00010763    0d effffff37f 50              movl _test_no,r0
1487  0001076A                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
1488  0001076A    0d effffff378 51              movl _subtest,r1
1489  00010771                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
1490  00010771    0d effffff371 52              movl _sgl_dummy1,r2
1491  00010778                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
1492  00010778    0d effffff36a 53              movl _cycle,r3
1493  0001077F                                   #         asm("movl _sgl_ld_acc,r4");             /* r4  = initial data    */
1494  0001077F    0d effffff363 54              movl _sgl_ld_acc,r4
1495  00010786                                   #         asm("movl _sgl_value_1,r5");            /* r5  = data dived      */
1496  00010786    0d effffff35c 55              movl _sgl_value_1,r5
1497  0001078D                                   #         asm("movl _sgl_st_acc,r6");             /* r6  = data stored     */
1498  0001078D    0d effffff355 56              movl _sgl_st_acc,r6
1499  00010794                                   #         if( halt_code == BAD_ACC_HLT ) {
1500  00010794    1d ad04 01                    	cmpl	4(fp),$1
1501  00010798    21 10                         	jneq	L401
1502  0001079A                                   #              asm("movl _sgl_expected,r7");      /* r7  = data expected   */
1503  0001079A    0d effffff348 57              movl _sgl_expected,r7
1504  000107A1                                   #              asm("movl _index,r8");             /* r8  = data index      */
1505  000107A1    0d effffff341 58              movl _index,r8
1506  000107A8                                   #         } else
1507  000107A8    11 5e                         	jbr 	L402
1508  000107AA                                  L401:
1509  000107AA                                   #         if( halt_code == BAD_REG_HLT ) {
1510  000107AA    1d ad04 02                    	cmpl	4(fp),$2
1511  000107AE    21 3d                         	jneq	L403
1512  000107B0                                   #              sgl_dummy1 = load_regs[index2];
1513  000107B0    0d effffff332 50              	movl	_index2,r0
1514  000107B7    0d 40effffff32a               	movl	_load_regs[r0],_sgl_dummy1
                  effffff325 
1515  000107C3                                   #              sgl_dummy2 = store_regs[index2];
1516  000107C3    0d effffff31f 50              	movl	_index2,r0
1517  000107CA    0d 40effffff317               	movl	_store_regs[r0],_sgl_dummy2
                  effffff312 
1518  000107D6                                   #              asm("movl _index2,r7");            /* r7  = bad register #  */
1519  000107D6    0d effffff30c 57              movl _index2,r7
1520  000107DD                                   #              asm("movl _sgl_dummy2,r8");        /* r8  = actual value    */
1521  000107DD    0d effffff305 58              movl _sgl_dummy2,r8
1522  000107E4                                   #              asm("movl _sgl_dummy1,r9");        /* r9  = expected value  */
1523  000107E4    0d effffff2fe 59              movl _sgl_dummy1,r9
1524  000107EB                                   #         } else
1525  000107EB    11 1b                         	jbr 	L404
1526  000107ED                                  L403:
1527  000107ED                                   #           if( halt_code == BAD_PSL_HLT ) {
1528  000107ED    1d ad04 03                    	cmpl	4(fp),$3
1529  000107F1    21 15                         	jneq	L405
1530  000107F3                                   #              asm("movl _init_psl,r7");          /* r7  = initial PSL     */
1531  000107F3    0d effffff2ef 57              movl _init_psl,r7
1532  000107FA                                   #              asm("movl _psl_val,r8");           /* r8  = final PSL       */
1533  000107FA    0d effffff2e8 58              movl _psl_val,r8
1534  00010801                                   #              asm("movl _exp_psl,r9");           /* r9  = expected PSL    */
1535  00010801    0d effffff2e1 59              movl _exp_psl,r9
1536  00010808                                   #         };
1537  00010808                                  L405:
1538  00010808                                  L404:
1539  00010808                                  L402:
1540  00010808                                   #         asm("halt");                            /* HALT ...              */
1541  00010808    00                            halt
1542  00010809                                   # }  
1543  00010809    40                            	ret#2
1544  0001080A                                  	.set	L397,0x0
1545  0001080A                                  L399:
1546  0001080A    13 ff4e                       	jbr 	L400
1547  0001080D                                  	.data
1547  000202F5                                  	.data

unix.superglobalmegacorp.com

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