File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / macro4 / divd.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	_divd
   6  00000000                                  _divd:
   7  00018FD8    0000                          	.word	L215
   8  00018FDA                                   # 
   9  00018FDA                                   # 
  10  00018FDA                                   # #include "fpp_defs.h"
  11  00018FDA                                   # 
  12  00018FDA                                   # 
  13  00018FDA                                   # /*****************************************************************************
  14  00018FDA                                   # *
  15  00018FDA                                   # *       DIVD - DOUBLE PRECISION FLOATING POINT DIVIDE TEST
  16  00018FDA                                   # *
  17  00018FDA                                   # *****************************************************************************/
  18  00018FDA                                   # divd()
  19  00018FDA                                   # {
  20  00018FDA    11 7a                         	jbr 	L217
  21  00018FDC                                  L218:
  22  00018FDC                                   #         asm(".globl _divd_t");
  23  00018FDC                                  .globl _divd_t
  24  00018FDC                                   #         asm("_divd_t:");                        /* entry address            */
  25  00018FDC                                  _divd_t:
  26  00018FDC                                   #         if( (cycle == 1) && (prt_hdrs) )        /* print headers on 1st cycle */
  27  00018FDC    1d effffffff6 01              	cmpl	_cycle,$1
  28  00018FE3    21 15                         	jneq	L219
  29  00018FE5    5d efffffffed                 	tstl	_prt_hdrs
  30  00018FEB    31 0d                         	jeql	L219
  31  00018FED                                   #            writes(" DIVD");
  32  00018FED                                  	.data	1
  33  00000d28 *                                L221:
  34  00000d28 *  204449564400                  	.ascii	" DIVD\0"
  35  00000d2e *                                	.text
  36  00018FED    dd 8f00000d28                 	pushl	$L221
  37  00018FF3    fe 08 efffffffde              	callf	$8,_writes
  38  00018FFA                                   #         divd_1();                               /* div through a register     */
  39  00018FFA                                  L219:
  40  00018FFA    fe 04 ef00000057              	callf	$4,_divd_1
  41  00019001                                   #         divd_2();                               /* div through the cache      */
  42  00019001    fe 04 ef000001b2              	callf	$4,_divd_2
  43  00019008                                   #         divd_3();                               /* wait 1 NOP before storeing */
  44  00019008    fe 04 ef000002f9              	callf	$4,_divd_3
  45  0001900F                                   #         for( nop_cnt = 3; nop_cnt > 0; nop_cnt-- )
  46  0001900F    0d 03 efffffffc2              	movl	$3,_nop_cnt
  47  00019016                                  L227:
  48  00019016    5d efffffffbc                 	tstl	_nop_cnt
  49  0001901C    51 15                         	jleq	L226
  50  0001901E                                   #              divd_3(nop_cnt);                   /* wait 6 ... 2 NOPs          */
  51  0001901E    dd efffffffb4                 	pushl	_nop_cnt
  52  00019024    fe 08 ef000002dd              	callf	$8,_divd_3
  53  0001902B                                  L225:
  54  0001902B    7d efffffffa7                 	decl	_nop_cnt
  55  00019031    11 e3                         	jbr 	L227
  56  00019033                                  L226:
  57  00019033                                   #         divd_4();                               /* wait 3 NOPs                */
  58  00019033    fe 04 ef00000456              	callf	$4,_divd_4
  59  0001903A                                   #         divd_5();                               /* wait 1 NOP before storing  */
  60  0001903A    fe 04 ef000005a1              	callf	$4,_divd_5
  61  00019041                                   #         divd_6();                               /* register stability test    */
  62  00019041    fe 04 ef000006ea              	callf	$4,_divd_6
  63  00019048                                   #         divd_7();                               /* PSL stability test         */
  64  00019048    fe 04 ef000008b3              	callf	$4,_divd_7
  65  0001904F                                   #         asm("jmp *return");                     /* return to the test monitor */
  66  0001904F    71 ffffffff83                 jmp *return
  67  00019055                                   # }
  68  00019055    40                            	ret#2
  69  00019056                                  	.set	L215,0x0
  70  00019056                                  L217:
  71  00019056    11 84                         	jbr 	L218
  72  00019058                                  	.data
  73  00000d28 *                                	.text
  74  00019058                                  	.align	1
  75  00019058                                  	.globl	_divd_1
  76  00019058                                  _divd_1:
  77  00019058    0000                          	.word	L232
  78  0001905A                                   #   
  79  0001905A                                   # 
  80  0001905A                                   # 
  81  0001905A                                   # /************************************************************************
  82  0001905A                                   # *
  83  0001905A                                   # *               SUBTEST 1 - divide through a register
  84  0001905A                                   # *
  85  0001905A                                   # ************************************************************************/
  86  0001905A                                   # divd_1() 
  87  0001905A                                   # {
  88  0001905A    13 015a                       	jbr 	L234
  89  0001905D                                  L235:
  90  0001905D                                   #         force_loop = FALSE;
  91  0001905D    4d efffffff75                 	clrl	_force_loop
  92  00019063                                   #         subtest = 1;
  93  00019063    0d 01 efffffff6e              	movl	$1,_subtest
  94  0001906A                                   #         for( index = 0; index < max_divd_1_index; index++ ) {
  95  0001906A    4d efffffff68                 	clrl	_index
  96  00019070                                  L238:
  97  00019070    1d efffffff62 efffffff5d      	cmpl	_index,_max_divd_1_index
  98  0001907B    91 03 13 0136                 	jgeq	L237
  99  00019080                                   #              dbl_ld_acc   = divd_1_data[index].op_1; /* get operand 1       */
 100  00019080    5c 18 efffffff51 50           	mull3	$24,_index,r0
 101  00019088    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 102  0001908F    0d a004 efffffff45            	movl	4(r0),_dbl_ld_acc+4
 103  00019097    0d 60 efffffff3a              	movl	(r0),_dbl_ld_acc
 104  0001909E                                   #              dbl_value_1  = divd_1_data[index].op_2; /* get operand 2       */
 105  0001909E    5c 18 efffffff33 50           	mull3	$24,_index,r0
 106  000190A6    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 107  000190AD    0d a004 efffffff27            	movl	4(r0),_dbl_value_1+4
 108  000190B5    0d 60 efffffff1c              	movl	(r0),_dbl_value_1
 109  000190BC                                   #              dbl_expected = divd_1_data[index].exp;  /* get expected result */
 110  000190BC    5c 18 efffffff15 50           	mull3	$24,_index,r0
 111  000190C4    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 112  000190CB    0d a004 efffffff09            	movl	4(r0),_dbl_expected+4
 113  000190D3    0d 60 effffffefe              	movl	(r0),_dbl_expected
 114  000190DA                                   # /*
 115  000190DA                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 116  000190DA                                   #  * The force loop flag is set after the first error.
 117  000190DA                                   # */
 118  000190DA                                   #              asm("_divd_1_lp1:");
 119  000190DA                                  _divd_1_lp1:
 120  000190DA                                   #              asm("movl _dbl_ld_acc,r2");        /* move operand 1 to r2/r3 */
 121  000190DA    0d effffffef8 52              movl _dbl_ld_acc,r2
 122  000190E1                                   #              asm("movl _dbl_ld_acc+4,r3");
 123  000190E1    0d effffffef5 53              movl _dbl_ld_acc+4,r3
 124  000190E8                                   #              asm("movl _dbl_value_1,r4");       /* move operand 2 to r4/r5 */
 125  000190E8    0d effffffeea 54              movl _dbl_value_1,r4
 126  000190EF                                   #              asm("movl _dbl_value_1+4,r5");
 127  000190EF    0d effffffee7 55              movl _dbl_value_1+4,r5
 128  000190F6                                   #              asm("ldd r2");                     /* load the 1st operand    */
 129  000190F6    07 52                         ldd r2
 130  000190F8                                   #              asm("divd r4");                    /* divide the 2nd operand  */
 131  000190F8    f7 54                         divd r4
 132  000190FA                                   #              asm("std _dbl_st_acc");            /* store the result        */
 133  000190FA    27 effffffed8                 std _dbl_st_acc
 134  00019100                                   #              if( force_loop )
 135  00019100    5d effffffed2                 	tstl	_force_loop
 136  00019106    31 02                         	jeql	L239
 137  00019108                                   #                   asm("brb _divd_1_lp1");;      /* loop on the error       */
 138  00019108    11 d0                         brb _divd_1_lp1
 139  0001910A                                  L239:
 140  0001910A                                   # /* 
 141  0001910A                                   #  * end error loop - test the results
 142  0001910A                                   # */
 143  0001910A                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
 144  0001910A                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
 145  0001910A    1d effffffec8 effffffec3      	cmpl	_dbl_st_acc,_dbl_expected
 146  00019115    21 10                         	jneq	L9999
 147  00019117    1d effffffebf effffffeba      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 148  00019122    21 03 13 0086                 	jeql	L240
 149  00019127                                  L9999:
 150  00019127                                   #                    errcnt++;                    /* bump the error count   */
 151  00019127    6d effffffeab                 	incl	_errcnt
 152  0001912D                                   #                    if( prt_error ) {
 153  0001912D    5d effffffea5                 	tstl	_prt_error
 154  00019133    31 55                         	jeql	L241
 155  00019135                                   #                         writes(" \n");      /* start a new print line */
 156  00019135                                  	.data	1
 157  00000d2e *                                L242:
 158  00000d2e *  200A00                        	.ascii	" \12\0"
 159  00000d31 *                                	.text
 160  00019135    dd 8f00000d2e                 	pushl	$L242
 161  0001913B    fe 08 effffffe96              	callf	$8,_writes
 162  00019142                                   #                         writes("cycle: ");
 163  00019142                                  	.data	1
 164  00000d31 *                                L243:
 165  00000d31 *  6379636C653A2000              	.ascii	"cycle: \0"
 166  00000d39 *                                	.text
 167  00019142    dd 8f00000d31                 	pushl	$L243
 168  00019148    fe 08 effffffe89              	callf	$8,_writes
 169  0001914F                                   #                         writed( cycle );
 170  0001914F    dd effffffe83                 	pushl	_cycle
 171  00019155    fe 08 effffffe7c              	callf	$8,_writed
 172  0001915C                                   #                         writes("  DIVD test ");
 173  0001915C                                  	.data	1
 174  00000d39 *                                L245:
 175  00000d39 *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
 176  00000d46 *                                	.text
 177  0001915C    dd 8f00000d39                 	pushl	$L245
 178  00019162    fe 08 effffffe6f              	callf	$8,_writes
 179  00019169                                   # 			writed( test_no );
 180  00019169    dd effffffe69                 	pushl	_test_no
 181  0001916F    fe 08 effffffe62              	callf	$8,_writed
 182  00019176                                   # 			writes(", subtest 1 (Reg. Data) - BAD FINAL ACC\n");
 183  00019176                                  	.data	1
 184  00000d46 *                                L246:
 185  00000d46 *  2C20737562746573742031202     	.ascii	", subtest 1 (Reg. Data) - BAD FINAL ACC\12\0"
                  85265672E204461746129202D
                  204241442046494E414C20414
                  3430A00
 186  00000d6f *                                	.text
 187  00019176    dd 8f00000d46                 	pushl	$L246
 188  0001917C    fe 08 effffffe55              	callf	$8,_writes
 189  00019183                                   #                         print_divd_data();
 190  00019183    fe 04 ef00000952              	callf	$4,_print_divd_data
 191  0001918A                                   #                    }
 192  0001918A                                   #                    if( halt_flg ) 
 193  0001918A                                  L241:
 194  0001918A    5d effffffe48                 	tstl	_halt_flg
 195  00019190    31 09                         	jeql	L248
 196  00019192                                   #                         divd_er_halt( BAD_ACC_HLT );    /* halt on the error */
 197  00019192    dd 01                         	pushl	$1
 198  00019194    fe 08 ef00000a37              	callf	$8,_divd_er_halt
 199  0001919B                                   #                    if( loop_on_err ) {
 200  0001919B                                  L248:
 201  0001919B    5d effffffe37                 	tstl	_loop_on_err
 202  000191A1    31 0a                         	jeql	L250
 203  000191A3                                   #                         force_loop = TRUE;        /* set the force loop flag */
 204  000191A3    0d 01 effffffe2e              	movl	$1,_force_loop
 205  000191AA                                   #                         asm("brw _divd_1_lp1");;  /* and loop on the error   */
 206  000191AA    13 ff2d                       brw _divd_1_lp1
 207  000191AD                                   #                    }   /* end of loop on error */
 208  000191AD                                   #              }   /* end of compare error */
 209  000191AD                                  L250:
 210  000191AD                                   #         }  /* end of WHILE loop */
 211  000191AD                                  L240:
 212  000191AD                                  L236:
 213  000191AD    6d effffffe25                 	incl	_index
 214  000191B3    13 feba                       	jbr 	L238
 215  000191B6                                  L237:
 216  000191B6                                   # }  /* end of subtest 1 */
 217  000191B6    40                            	ret#2
 218  000191B7                                  	.set	L232,0x0
 219  000191B7                                  L234:
 220  000191B7    13 fea3                       	jbr 	L235
 221  000191BA                                  	.data
 222  00000d28 *                                	.text
 223  000191BA                                  	.align	1
 224  000191BA                                  	.globl	_divd_2
 225  000191BA                                  _divd_2:
 226  000191BA    0000                          	.word	L251
 227  000191BC                                   #   
 228  000191BC                                   # 
 229  000191BC                                   # 
 230  000191BC                                   # /************************************************************************
 231  000191BC                                   # *
 232  000191BC                                   # *               SUBTEST 2 - divide through memory
 233  000191BC                                   # *
 234  000191BC                                   # ************************************************************************/
 235  000191BC                                   # divd_2() 
 236  000191BC                                   # {
 237  000191BC    13 0146                       	jbr 	L253
 238  000191BF                                  L254:
 239  000191BF                                   #         force_loop = FALSE;
 240  000191BF    4d effffffe13                 	clrl	_force_loop
 241  000191C5                                   #         subtest = 2;
 242  000191C5    0d 02 effffffe0c              	movl	$2,_subtest
 243  000191CC                                   #         for( index = 0; index < max_divd_1_index; index++ ) {
 244  000191CC    4d effffffe06                 	clrl	_index
 245  000191D2                                  L257:
 246  000191D2    1d effffffe00 effffffdfb      	cmpl	_index,_max_divd_1_index
 247  000191DD    91 03 13 0122                 	jgeq	L256
 248  000191E2                                   #              dbl_ld_acc   = divd_1_data[index].op_1; /* get operand 1       */
 249  000191E2    5c 18 effffffdef 50           	mull3	$24,_index,r0
 250  000191EA    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 251  000191F1    0d a004 effffffde3            	movl	4(r0),_dbl_ld_acc+4
 252  000191F9    0d 60 effffffdd8              	movl	(r0),_dbl_ld_acc
 253  00019200                                   #              dbl_value_1  = divd_1_data[index].op_2; /* get operand 2       */
 254  00019200    5c 18 effffffdd1 50           	mull3	$24,_index,r0
 255  00019208    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 256  0001920F    0d a004 effffffdc5            	movl	4(r0),_dbl_value_1+4
 257  00019217    0d 60 effffffdba              	movl	(r0),_dbl_value_1
 258  0001921E                                   #              dbl_expected = divd_1_data[index].exp;  /* get expected result */
 259  0001921E    5c 18 effffffdb3 50           	mull3	$24,_index,r0
 260  00019226    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 261  0001922D    0d a004 effffffda7            	movl	4(r0),_dbl_expected+4
 262  00019235    0d 60 effffffd9c              	movl	(r0),_dbl_expected
 263  0001923C                                   # /*
 264  0001923C                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 265  0001923C                                   #  * The force loop flag is set after the first error.
 266  0001923C                                   # */
 267  0001923C                                   #              asm("_divd_2_lp1:");
 268  0001923C                                  _divd_2_lp1:
 269  0001923C                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
 270  0001923C    07 effffffd96                 ldd _dbl_ld_acc
 271  00019242                                   #              asm("divd _dbl_value_1");          /* divide the 2nd operand  */
 272  00019242    f7 effffffd90                 divd _dbl_value_1
 273  00019248                                   #              asm("std _dbl_st_acc");            /* store the result        */
 274  00019248    27 effffffd8a                 std _dbl_st_acc
 275  0001924E                                   #              if( force_loop )
 276  0001924E    5d effffffd84                 	tstl	_force_loop
 277  00019254    31 02                         	jeql	L258
 278  00019256                                   #                   asm("brb _divd_2_lp1");;      /* loop on the error       */
 279  00019256    11 e4                         brb _divd_2_lp1
 280  00019258                                  L258:
 281  00019258                                   # /* 
 282  00019258                                   #  * end error loop - test the results
 283  00019258                                   # */
 284  00019258                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
 285  00019258                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
 286  00019258    1d effffffd7a effffffd75      	cmpl	_dbl_st_acc,_dbl_expected
 287  00019263    21 10                         	jneq	L9998
 288  00019265    1d effffffd71 effffffd6c      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 289  00019270    21 03 13 0086                 	jeql	L259
 290  00019275                                  L9998:
 291  00019275                                   #                    errcnt++;                    /* bump the error count   */
 292  00019275    6d effffffd5d                 	incl	_errcnt
 293  0001927B                                   #                    if( prt_error ) {
 294  0001927B    5d effffffd57                 	tstl	_prt_error
 295  00019281    31 55                         	jeql	L260
 296  00019283                                   #                         writes(" \n");      /* start a new print line */
 297  00019283                                  	.data	1
 298  00000d6f *                                L261:
 299  00000d6f *  200A00                        	.ascii	" \12\0"
 300  00000d72 *                                	.text
 301  00019283    dd 8f00000d6f                 	pushl	$L261
 302  00019289    fe 08 effffffd48              	callf	$8,_writes
 303  00019290                                   #                         writes("cycle: ");
 304  00019290                                  	.data	1
 305  00000d72 *                                L262:
 306  00000d72 *  6379636C653A2000              	.ascii	"cycle: \0"
 307  00000d7a *                                	.text
 308  00019290    dd 8f00000d72                 	pushl	$L262
 309  00019296    fe 08 effffffd3b              	callf	$8,_writes
 310  0001929D                                   #                         writed( cycle );
 311  0001929D    dd effffffd35                 	pushl	_cycle
 312  000192A3    fe 08 effffffd2e              	callf	$8,_writed
 313  000192AA                                   #                         writes("  DIVD test ");
 314  000192AA                                  	.data	1
 315  00000d7a *                                L263:
 316  00000d7a *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
 317  00000d87 *                                	.text
 318  000192AA    dd 8f00000d7a                 	pushl	$L263
 319  000192B0    fe 08 effffffd21              	callf	$8,_writes
 320  000192B7                                   # 			writed( test_no );
 321  000192B7    dd effffffd1b                 	pushl	_test_no
 322  000192BD    fe 08 effffffd14              	callf	$8,_writed
 323  000192C4                                   # 			writes(", subtest 2 (Cache Data) - BAD FINAL ACC\n");
 324  000192C4                                  	.data	1
 325  00000d87 *                                L264:
 326  00000d87 *  2C20737562746573742032202     	.ascii	", subtest 2 (Cache Data) - BAD FINAL ACC\12\0"
                  8436163686520446174612920
                  2D204241442046494E414C204
                  143430A00
 327  00000db1 *                                	.text
 328  000192C4    dd 8f00000d87                 	pushl	$L264
 329  000192CA    fe 08 effffffd07              	callf	$8,_writes
 330  000192D1                                   #                         print_divd_data();
 331  000192D1    fe 04 ef00000804              	callf	$4,_print_divd_data
 332  000192D8                                   #                    }
 333  000192D8                                   #                    if( halt_flg ) 
 334  000192D8                                  L260:
 335  000192D8    5d effffffcfa                 	tstl	_halt_flg
 336  000192DE    31 09                         	jeql	L265
 337  000192E0                                   #                         divd_er_halt( BAD_ACC_HLT );    /* halt on the error */
 338  000192E0    dd 01                         	pushl	$1
 339  000192E2    fe 08 ef000008e9              	callf	$8,_divd_er_halt
 340  000192E9                                   #                    if( loop_on_err ) {
 341  000192E9                                  L265:
 342  000192E9    5d effffffce9                 	tstl	_loop_on_err
 343  000192EF    31 0a                         	jeql	L266
 344  000192F1                                   #                         force_loop = TRUE;        /* set the force loop flag */
 345  000192F1    0d 01 effffffce0              	movl	$1,_force_loop
 346  000192F8                                   #                         asm("brw _divd_2_lp1");;  /* and loop on the error   */
 347  000192F8    13 ff41                       brw _divd_2_lp1
 348  000192FB                                   #                    }   /* end of loop on error */
 349  000192FB                                   #              }   /* end of compare error */
 350  000192FB                                  L266:
 351  000192FB                                   #         }  /* end of WHILE loop */
 352  000192FB                                  L259:
 353  000192FB                                  L255:
 354  000192FB    6d effffffcd7                 	incl	_index
 355  00019301    13 fece                       	jbr 	L257
 356  00019304                                  L256:
 357  00019304                                   # }  /* end of subtest 2 */
 358  00019304    40                            	ret#2
 359  00019305                                  	.set	L251,0x0
 360  00019305                                  L253:
 361  00019305    13 feb7                       	jbr 	L254
 362  00019308                                  	.data
 363  00000d28 *                                	.text
 364  00019308                                  	.align	1
 365  00019308                                  	.globl	_divd_3
 366  00019308                                  _divd_3:
 367  00019308    0000                          	.word	L267
 368  0001930A                                   #   
 369  0001930A                                   # 
 370  0001930A                                   # 
 371  0001930A                                   # /****************************************************************************
 372  0001930A                                   # *
 373  0001930A                                   # *       SUBTEST 3 - Wait 2n NOPs before storing the results
 374  0001930A                                   # *
 375  0001930A                                   # ****************************************************************************/
 376  0001930A                                   # divd_3( count ) 
 377  0001930A                                   # int count;                                      /* wait "count" * 2 NOPs   */
 378  0001930A                                   # {
 379  0001930A    13 0180                       	jbr 	L269
 380  0001930D                                  L270:
 381  0001930D                                   #         force_loop = FALSE;
 382  0001930D    4d effffffcc5                 	clrl	_force_loop
 383  00019313                                   #         subtest = 3;
 384  00019313    0d 03 effffffcbe              	movl	$3,_subtest
 385  0001931A                                   #         sgl_dummy2 = count;                     /* get the NOP count */
 386  0001931A    0d ad04 effffffcb6            	movl	4(fp),_sgl_dummy2
 387  00019322                                   #         for( index = 0; index < max_divd_1_index; index++ ) {
 388  00019322    4d effffffcb0                 	clrl	_index
 389  00019328                                  L273:
 390  00019328    1d effffffcaa effffffca5      	cmpl	_index,_max_divd_1_index
 391  00019333    91 03 13 0154                 	jgeq	L272
 392  00019338                                   #              dbl_ld_acc   = divd_1_data[index].op_1; /* get operand 1       */
 393  00019338    5c 18 effffffc99 50           	mull3	$24,_index,r0
 394  00019340    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 395  00019347    0d a004 effffffc8d            	movl	4(r0),_dbl_ld_acc+4
 396  0001934F    0d 60 effffffc82              	movl	(r0),_dbl_ld_acc
 397  00019356                                   #              dbl_value_1  = divd_1_data[index].op_2; /* get operand 2       */
 398  00019356    5c 18 effffffc7b 50           	mull3	$24,_index,r0
 399  0001935E    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 400  00019365    0d a004 effffffc6f            	movl	4(r0),_dbl_value_1+4
 401  0001936D    0d 60 effffffc64              	movl	(r0),_dbl_value_1
 402  00019374                                   #              dbl_expected = divd_1_data[index].exp;  /* get expected result */
 403  00019374    5c 18 effffffc5d 50           	mull3	$24,_index,r0
 404  0001937C    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 405  00019383    0d a004 effffffc51            	movl	4(r0),_dbl_expected+4
 406  0001938B    0d 60 effffffc46              	movl	(r0),_dbl_expected
 407  00019392                                   # /*
 408  00019392                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 409  00019392                                   #  * The force loop flag is set after the first error.
 410  00019392                                   # */
 411  00019392                                   #              asm("_divd_3_lp1:");
 412  00019392                                  _divd_3_lp1:
 413  00019392                                   #              asm("movl _sgl_dummy2,r0");        /* set the NOP count       */
 414  00019392    0d effffffc40 50              movl _sgl_dummy2,r0
 415  00019399                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
 416  00019399    07 effffffc39                 ldd _dbl_ld_acc
 417  0001939F                                   #              asm("nop");                        /* delay                   */
 418  0001939F    10                            nop
 419  000193A0                                   #              asm("divd _dbl_value_1");          /* divide the 2nd operand  */
 420  000193A0    f7 effffffc32                 divd _dbl_value_1
 421  000193A6                                   #              asm("1:");
 422  000193A6                                  1:
 423  000193A6                                   #              asm("decl r0");                    /* decrement the NOP count  */
 424  000193A6    7d 50                         decl r0
 425  000193A8                                   #              asm("bneq 1b");                    /*    till the count = 0    */
 426  000193A8    21 fc                         bneq 1b
 427  000193AA                                   #              asm("std _dbl_st_acc");            /* store the result        */
 428  000193AA    27 effffffc28                 std _dbl_st_acc
 429  000193B0                                   #              if( force_loop )
 430  000193B0    5d effffffc22                 	tstl	_force_loop
 431  000193B6    31 02                         	jeql	L274
 432  000193B8                                   #                   asm("brb _divd_3_lp1");;      /* loop on the error       */
 433  000193B8    11 d8                         brb _divd_3_lp1
 434  000193BA                                  L274:
 435  000193BA                                   # /* 
 436  000193BA                                   #  * end error loop - test the results
 437  000193BA                                   # */
 438  000193BA                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
 439  000193BA                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
 440  000193BA    1d effffffc18 effffffc13      	cmpl	_dbl_st_acc,_dbl_expected
 441  000193C5    21 10                         	jneq	L9997
 442  000193C7    1d effffffc0f effffffc0a      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 443  000193D2    21 03 13 00ac                 	jeql	L275
 444  000193D7                                  L9997:
 445  000193D7                                   #                    errcnt++;                    /* bump the error count   */
 446  000193D7    6d effffffbfb                 	incl	_errcnt
 447  000193DD                                   #                    if( prt_error ) {
 448  000193DD    5d effffffbf5                 	tstl	_prt_error
 449  000193E3    31 7b                         	jeql	L276
 450  000193E5                                   #                         writes(" \n");      /* start a new print line */
 451  000193E5                                  	.data	1
 452  00000db1 *                                L277:
 453  00000db1 *  200A00                        	.ascii	" \12\0"
 454  00000db4 *                                	.text
 455  000193E5    dd 8f00000db1                 	pushl	$L277
 456  000193EB    fe 08 effffffbe6              	callf	$8,_writes
 457  000193F2                                   #                         writes("cycle: ");
 458  000193F2                                  	.data	1
 459  00000db4 *                                L278:
 460  00000db4 *  6379636C653A2000              	.ascii	"cycle: \0"
 461  00000dbc *                                	.text
 462  000193F2    dd 8f00000db4                 	pushl	$L278
 463  000193F8    fe 08 effffffbd9              	callf	$8,_writes
 464  000193FF                                   #                         writed( cycle );
 465  000193FF    dd effffffbd3                 	pushl	_cycle
 466  00019405    fe 08 effffffbcc              	callf	$8,_writed
 467  0001940C                                   #                         writes("  DIVD test ");
 468  0001940C                                  	.data	1
 469  00000dbc *                                L279:
 470  00000dbc *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
 471  00000dc9 *                                	.text
 472  0001940C    dd 8f00000dbc                 	pushl	$L279
 473  00019412    fe 08 effffffbbf              	callf	$8,_writes
 474  00019419                                   # 			writed( test_no );
 475  00019419    dd effffffbb9                 	pushl	_test_no
 476  0001941F    fe 08 effffffbb2              	callf	$8,_writed
 477  00019426                                   # 			writes(", subtest 3 (wait ");
 478  00019426                                  	.data	1
 479  00000dc9 *                                L280:
 480  00000dc9 *  2C20737562746573742033202     	.ascii	", subtest 3 (wait \0"
                  8776169742000
 481  00000ddc *                                	.text
 482  00019426    dd 8f00000dc9                 	pushl	$L280
 483  0001942C    fe 08 effffffba5              	callf	$8,_writes
 484  00019433                                   #                         sgl_dummy1 = 2*count;
 485  00019433    48 01 ad04 50                 	shll	$1,4(fp),r0
 486  00019438    0d 50 effffffb99              	movl	r0,_sgl_dummy1
 487  0001943F                                   #                         writed( sgl_dummy1 );   /* write the NOP count    */
 488  0001943F    dd effffffb93                 	pushl	_sgl_dummy1
 489  00019445    fe 08 effffffb8c              	callf	$8,_writed
 490  0001944C                                   #                         writes(" NOPs) - BAD FINAL ACC\n");
 491  0001944C                                  	.data	1
 492  00000ddc *                                L281:
 493  00000ddc *  204E4F507329202D204241442     	.ascii	" NOPs) - BAD FINAL ACC\12\0"
                  046494E414C204143430A00
 494  00000df4 *                                	.text
 495  0001944C    dd 8f00000ddc                 	pushl	$L281
 496  00019452    fe 08 effffffb7f              	callf	$8,_writes
 497  00019459                                   #                         print_divd_data();
 498  00019459    fe 04 ef0000067c              	callf	$4,_print_divd_data
 499  00019460                                   #                    }
 500  00019460                                   #                    if( halt_flg ) 
 501  00019460                                  L276:
 502  00019460    5d effffffb72                 	tstl	_halt_flg
 503  00019466    31 09                         	jeql	L282
 504  00019468                                   #                         divd_er_halt( BAD_ACC_HLT );    /* halt on the error */
 505  00019468    dd 01                         	pushl	$1
 506  0001946A    fe 08 ef00000761              	callf	$8,_divd_er_halt
 507  00019471                                   #                    if( loop_on_err ) {
 508  00019471                                  L282:
 509  00019471    5d effffffb61                 	tstl	_loop_on_err
 510  00019477    31 0a                         	jeql	L283
 511  00019479                                   #                         force_loop = TRUE;        /* set the force loop flag */
 512  00019479    0d 01 effffffb58              	movl	$1,_force_loop
 513  00019480                                   #                         asm("brw _divd_3_lp1");;  /* and loop on the error   */
 514  00019480    13 ff0f                       brw _divd_3_lp1
 515  00019483                                   #                    }   /* end of loop on error */
 516  00019483                                   #              }   /* end of compare error */
 517  00019483                                  L283:
 518  00019483                                   #         }  /* end of WHILE loop */
 519  00019483                                  L275:
 520  00019483                                  L271:
 521  00019483    6d effffffb4f                 	incl	_index
 522  00019489    13 fe9c                       	jbr 	L273
 523  0001948C                                  L272:
 524  0001948C                                   # }  /* end of subtest 3 */
 525  0001948C    40                            	ret#2
 526  0001948D                                  	.set	L267,0x0
 527  0001948D                                  L269:
 528  0001948D    13 fe7d                       	jbr 	L270
 529  00019490                                  	.data
 530  00000d28 *                                	.text
 531  00019490                                  	.align	1
 532  00019490                                  	.globl	_divd_4
 533  00019490                                  _divd_4:
 534  00019490    0000                          	.word	L284
 535  00019492                                   #   
 536  00019492                                   # 
 537  00019492                                   # 
 538  00019492                                   # /************************************************************************
 539  00019492                                   # *
 540  00019492                                   # *       SUBTEST 4 - Wait 2 NOPs before storing the results
 541  00019492                                   # *
 542  00019492                                   # ************************************************************************/
 543  00019492                                   # divd_4() 
 544  00019492                                   # {
 545  00019492    13 0149                       	jbr 	L286
 546  00019495                                  L287:
 547  00019495                                   #         force_loop = FALSE;
 548  00019495    4d effffffb3d                 	clrl	_force_loop
 549  0001949B                                   #         subtest = 4;
 550  0001949B    0d 04 effffffb36              	movl	$4,_subtest
 551  000194A2                                   #         for( index = 0; index < max_divd_1_index; index++ ) {
 552  000194A2    4d effffffb30                 	clrl	_index
 553  000194A8                                  L290:
 554  000194A8    1d effffffb2a effffffb25      	cmpl	_index,_max_divd_1_index
 555  000194B3    91 03 13 0125                 	jgeq	L289
 556  000194B8                                   #              dbl_ld_acc   = divd_1_data[index].op_1; /* get operand 1       */
 557  000194B8    5c 18 effffffb19 50           	mull3	$24,_index,r0
 558  000194C0    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 559  000194C7    0d a004 effffffb0d            	movl	4(r0),_dbl_ld_acc+4
 560  000194CF    0d 60 effffffb02              	movl	(r0),_dbl_ld_acc
 561  000194D6                                   #              dbl_value_1  = divd_1_data[index].op_2; /* get operand 2       */
 562  000194D6    5c 18 effffffafb 50           	mull3	$24,_index,r0
 563  000194DE    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 564  000194E5    0d a004 effffffaef            	movl	4(r0),_dbl_value_1+4
 565  000194ED    0d 60 effffffae4              	movl	(r0),_dbl_value_1
 566  000194F4                                   #              dbl_expected = divd_1_data[index].exp;  /* get expected result */
 567  000194F4    5c 18 effffffadd 50           	mull3	$24,_index,r0
 568  000194FC    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 569  00019503    0d a004 effffffad1            	movl	4(r0),_dbl_expected+4
 570  0001950B    0d 60 effffffac6              	movl	(r0),_dbl_expected
 571  00019512                                   # /*
 572  00019512                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 573  00019512                                   #  * The force loop flag is set after the first error.
 574  00019512                                   # */
 575  00019512                                   #              asm("_divd_4_lp1:");
 576  00019512                                  _divd_4_lp1:
 577  00019512                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
 578  00019512    07 effffffac0                 ldd _dbl_ld_acc
 579  00019518                                   #              asm("nop");                        /* delay                   */
 580  00019518    10                            nop
 581  00019519                                   #              asm("divd _dbl_value_1");          /* divide the 2nd operand  */
 582  00019519    f7 effffffab9                 divd _dbl_value_1
 583  0001951F                                   #              asm("nop");                        /* delay before ...        */
 584  0001951F    10                            nop
 585  00019520                                   #              asm("nop");                        /* ... storing the result  */
 586  00019520    10                            nop
 587  00019521                                   #              asm("std _dbl_st_acc");            /* store the result        */
 588  00019521    27 effffffab1                 std _dbl_st_acc
 589  00019527                                   #              if( force_loop )
 590  00019527    5d effffffaab                 	tstl	_force_loop
 591  0001952D    31 02                         	jeql	L291
 592  0001952F                                   #                   asm("brb _divd_4_lp1");;      /* loop on the error       */
 593  0001952F    11 e1                         brb _divd_4_lp1
 594  00019531                                  L291:
 595  00019531                                   # /* 
 596  00019531                                   #  * end error loop - test the results
 597  00019531                                   # */
 598  00019531                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
 599  00019531                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
 600  00019531    1d effffffaa1 effffffa9c      	cmpl	_dbl_st_acc,_dbl_expected
 601  0001953C    21 10                         	jneq	L9996
 602  0001953E    1d effffffa98 effffffa93      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 603  00019549    21 03 13 0086                 	jeql	L292
 604  0001954E                                  L9996:
 605  0001954E                                   #                    errcnt++;                    /* bump the error count   */
 606  0001954E    6d effffffa84                 	incl	_errcnt
 607  00019554                                   #                    if( prt_error ) {
 608  00019554    5d effffffa7e                 	tstl	_prt_error
 609  0001955A    31 55                         	jeql	L293
 610  0001955C                                   #                         writes(" \n");      /* start a new print line */
 611  0001955C                                  	.data	1
 612  00000df4 *                                L294:
 613  00000df4 *  200A00                        	.ascii	" \12\0"
 614  00000df7 *                                	.text
 615  0001955C    dd 8f00000df4                 	pushl	$L294
 616  00019562    fe 08 effffffa6f              	callf	$8,_writes
 617  00019569                                   #                         writes("cycle: ");
 618  00019569                                  	.data	1
 619  00000df7 *                                L295:
 620  00000df7 *  6379636C653A2000              	.ascii	"cycle: \0"
 621  00000dff *                                	.text
 622  00019569    dd 8f00000df7                 	pushl	$L295
 623  0001956F    fe 08 effffffa62              	callf	$8,_writes
 624  00019576                                   #                         writed( cycle );
 625  00019576    dd effffffa5c                 	pushl	_cycle
 626  0001957C    fe 08 effffffa55              	callf	$8,_writed
 627  00019583                                   #                         writes("  DIVD test ");
 628  00019583                                  	.data	1
 629  00000dff *                                L296:
 630  00000dff *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
 631  00000e0c *                                	.text
 632  00019583    dd 8f00000dff                 	pushl	$L296
 633  00019589    fe 08 effffffa48              	callf	$8,_writes
 634  00019590                                   # 			writed( test_no );
 635  00019590    dd effffffa42                 	pushl	_test_no
 636  00019596    fe 08 effffffa3b              	callf	$8,_writed
 637  0001959D                                   # 			writes(", subtest 4 (2 NOPs) - BAD FINAL ACC\n");
 638  0001959D                                  	.data	1
 639  00000e0c *                                L297:
 640  00000e0c *  2C20737562746573742034202     	.ascii	", subtest 4 (2 NOPs) - BAD FINAL ACC\12\0"
                  832204E4F507329202D204241
                  442046494E414C204143430A0
                  0
 641  00000e32 *                                	.text
 642  0001959D    dd 8f00000e0c                 	pushl	$L297
 643  000195A3    fe 08 effffffa2e              	callf	$8,_writes
 644  000195AA                                   #                         print_divd_data();
 645  000195AA    fe 04 ef0000052b              	callf	$4,_print_divd_data
 646  000195B1                                   #                    }
 647  000195B1                                   #                    if( halt_flg ) 
 648  000195B1                                  L293:
 649  000195B1    5d effffffa21                 	tstl	_halt_flg
 650  000195B7    31 09                         	jeql	L298
 651  000195B9                                   #                         divd_er_halt( BAD_ACC_HLT );    /* halt on the error */
 652  000195B9    dd 01                         	pushl	$1
 653  000195BB    fe 08 ef00000610              	callf	$8,_divd_er_halt
 654  000195C2                                   #                    if( loop_on_err ) {
 655  000195C2                                  L298:
 656  000195C2    5d effffffa10                 	tstl	_loop_on_err
 657  000195C8    31 0a                         	jeql	L299
 658  000195CA                                   #                         force_loop = TRUE;        /* set the force loop flag */
 659  000195CA    0d 01 effffffa07              	movl	$1,_force_loop
 660  000195D1                                   #                         asm("brw _divd_4_lp1");;  /* and loop on the error   */
 661  000195D1    13 ff3e                       brw _divd_4_lp1
 662  000195D4                                   #                    }   /* end of loop on error */
 663  000195D4                                   #              }   /* end of compare error */
 664  000195D4                                  L299:
 665  000195D4                                   #         }  /* end of WHILE loop */
 666  000195D4                                  L292:
 667  000195D4                                  L288:
 668  000195D4    6d effffff9fe                 	incl	_index
 669  000195DA    13 fecb                       	jbr 	L290
 670  000195DD                                  L289:
 671  000195DD                                   # }  /* end of subtest 4 */
 672  000195DD    40                            	ret#2
 673  000195DE                                  	.set	L284,0x0
 674  000195DE                                  L286:
 675  000195DE    13 feb4                       	jbr 	L287
 676  000195E1                                  	.data
 677  00000d28 *                                	.text
 678  000195E1    00                            	.align	1
 679  000195E2                                  	.globl	_divd_5
 680  000195E2                                  _divd_5:
 681  000195E2    0000                          	.word	L300
 682  000195E4                                   #   
 683  000195E4                                   # 
 684  000195E4                                   # 
 685  000195E4                                   # /************************************************************************
 686  000195E4                                   # *
 687  000195E4                                   # *       SUBTEST 5 - Wait 1 NOP before storing the results
 688  000195E4                                   # *
 689  000195E4                                   # ************************************************************************/
 690  000195E4                                   # divd_5() 
 691  000195E4                                   # {
 692  000195E4    13 0148                       	jbr 	L302
 693  000195E7                                  L303:
 694  000195E7                                   #         force_loop = FALSE;
 695  000195E7    4d effffff9eb                 	clrl	_force_loop
 696  000195ED                                   #         subtest = 5;
 697  000195ED    0d 05 effffff9e4              	movl	$5,_subtest
 698  000195F4                                   #         for( index = 0; index < max_divd_1_index; index++ ) {
 699  000195F4    4d effffff9de                 	clrl	_index
 700  000195FA                                  L306:
 701  000195FA    1d effffff9d8 effffff9d3      	cmpl	_index,_max_divd_1_index
 702  00019605    91 03 13 0124                 	jgeq	L305
 703  0001960A                                   #              dbl_ld_acc   = divd_1_data[index].op_1; /* get operand 1       */
 704  0001960A    5c 18 effffff9c7 50           	mull3	$24,_index,r0
 705  00019612    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 706  00019619    0d a004 effffff9bb            	movl	4(r0),_dbl_ld_acc+4
 707  00019621    0d 60 effffff9b0              	movl	(r0),_dbl_ld_acc
 708  00019628                                   #              dbl_value_1  = divd_1_data[index].op_2; /* get operand 2       */
 709  00019628    5c 18 effffff9a9 50           	mull3	$24,_index,r0
 710  00019630    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 711  00019637    0d a004 effffff99d            	movl	4(r0),_dbl_value_1+4
 712  0001963F    0d 60 effffff992              	movl	(r0),_dbl_value_1
 713  00019646                                   #              dbl_expected = divd_1_data[index].exp;  /* get expected result */
 714  00019646    5c 18 effffff98b 50           	mull3	$24,_index,r0
 715  0001964E    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 716  00019655    0d a004 effffff97f            	movl	4(r0),_dbl_expected+4
 717  0001965D    0d 60 effffff974              	movl	(r0),_dbl_expected
 718  00019664                                   # /*
 719  00019664                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 720  00019664                                   #  * The force loop flag is set after the first error.
 721  00019664                                   # */
 722  00019664                                   #              asm("_divd_5_lp1:");
 723  00019664                                  _divd_5_lp1:
 724  00019664                                   #              asm("ldd _dbl_ld_acc");            /* load the 1st operand    */
 725  00019664    07 effffff96e                 ldd _dbl_ld_acc
 726  0001966A                                   #              asm("nop");                        /* delay                   */
 727  0001966A    10                            nop
 728  0001966B                                   #              asm("divd _dbl_value_1");          /* divide the 2nd operand  */
 729  0001966B    f7 effffff967                 divd _dbl_value_1
 730  00019671                                   #              asm("nop");                        /* delay before storing    */
 731  00019671    10                            nop
 732  00019672                                   #              asm("std _dbl_st_acc");            /* store the result        */
 733  00019672    27 effffff960                 std _dbl_st_acc
 734  00019678                                   #              if( force_loop )
 735  00019678    5d effffff95a                 	tstl	_force_loop
 736  0001967E    31 02                         	jeql	L307
 737  00019680                                   #                   asm("brb _divd_5_lp1");;      /* loop on the error       */
 738  00019680    11 e2                         brb _divd_5_lp1
 739  00019682                                  L307:
 740  00019682                                   # /* 
 741  00019682                                   #  * end error loop - test the results
 742  00019682                                   # */
 743  00019682                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the results */
 744  00019682                                   #                  (dbl_st_acc.l != dbl_expected.l) ) {
 745  00019682    1d effffff950 effffff94b      	cmpl	_dbl_st_acc,_dbl_expected
 746  0001968D    21 10                         	jneq	L9995
 747  0001968F    1d effffff947 effffff942      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 748  0001969A    21 03 13 0086                 	jeql	L308
 749  0001969F                                  L9995:
 750  0001969F                                   #                    errcnt++;                    /* bump the error count   */
 751  0001969F    6d effffff933                 	incl	_errcnt
 752  000196A5                                   #                    if( prt_error ) {
 753  000196A5    5d effffff92d                 	tstl	_prt_error
 754  000196AB    31 55                         	jeql	L309
 755  000196AD                                   #                         writes(" \n");      /* start a new print line */
 756  000196AD                                  	.data	1
 757  00000e32 *                                L310:
 758  00000e32 *  200A00                        	.ascii	" \12\0"
 759  00000e35 *                                	.text
 760  000196AD    dd 8f00000e32                 	pushl	$L310
 761  000196B3    fe 08 effffff91e              	callf	$8,_writes
 762  000196BA                                   #                         writes("cycle: ");
 763  000196BA                                  	.data	1
 764  00000e35 *                                L311:
 765  00000e35 *  6379636C653A2000              	.ascii	"cycle: \0"
 766  00000e3d *                                	.text
 767  000196BA    dd 8f00000e35                 	pushl	$L311
 768  000196C0    fe 08 effffff911              	callf	$8,_writes
 769  000196C7                                   #                         writed( cycle );
 770  000196C7    dd effffff90b                 	pushl	_cycle
 771  000196CD    fe 08 effffff904              	callf	$8,_writed
 772  000196D4                                   #                         writes("  DIVD test ");
 773  000196D4                                  	.data	1
 774  00000e3d *                                L312:
 775  00000e3d *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
 776  00000e4a *                                	.text
 777  000196D4    dd 8f00000e3d                 	pushl	$L312
 778  000196DA    fe 08 effffff8f7              	callf	$8,_writes
 779  000196E1                                   # 			writed( test_no );
 780  000196E1    dd effffff8f1                 	pushl	_test_no
 781  000196E7    fe 08 effffff8ea              	callf	$8,_writed
 782  000196EE                                   # 			writes(", subtest 5 (1 NOP) - BAD FINAL ACC\n");
 783  000196EE                                  	.data	1
 784  00000e4a *                                L313:
 785  00000e4a *  2C20737562746573742035202     	.ascii	", subtest 5 (1 NOP) - BAD FINAL ACC\12\0"
                  831204E4F5029202D20424144
                  2046494E414C204143430A00
 786  00000e6f *                                	.text
 787  000196EE    dd 8f00000e4a                 	pushl	$L313
 788  000196F4    fe 08 effffff8dd              	callf	$8,_writes
 789  000196FB                                   #                         print_divd_data();
 790  000196FB    fe 04 ef000003da              	callf	$4,_print_divd_data
 791  00019702                                   #                    }
 792  00019702                                   #                    if( halt_flg ) 
 793  00019702                                  L309:
 794  00019702    5d effffff8d0                 	tstl	_halt_flg
 795  00019708    31 09                         	jeql	L314
 796  0001970A                                   #                         divd_er_halt( BAD_ACC_HLT );    /* halt on the error */
 797  0001970A    dd 01                         	pushl	$1
 798  0001970C    fe 08 ef000004bf              	callf	$8,_divd_er_halt
 799  00019713                                   #                    if( loop_on_err ) {
 800  00019713                                  L314:
 801  00019713    5d effffff8bf                 	tstl	_loop_on_err
 802  00019719    31 0a                         	jeql	L315
 803  0001971B                                   #                         force_loop = TRUE;        /* set the force loop flag */
 804  0001971B    0d 01 effffff8b6              	movl	$1,_force_loop
 805  00019722                                   #                         asm("brw _divd_5_lp1");;  /* and loop on the error   */
 806  00019722    13 ff3f                       brw _divd_5_lp1
 807  00019725                                   #                    }   /* end of loop on error */
 808  00019725                                   #              }   /* end of compare error */
 809  00019725                                  L315:
 810  00019725                                   #         }  /* end of WHILE loop */
 811  00019725                                  L308:
 812  00019725                                  L304:
 813  00019725    6d effffff8ad                 	incl	_index
 814  0001972B    13 fecc                       	jbr 	L306
 815  0001972E                                  L305:
 816  0001972E                                   # }  /* end of subtest 5 */
 817  0001972E    40                            	ret#2
 818  0001972F                                  	.set	L300,0x0
 819  0001972F                                  L302:
 820  0001972F    13 feb5                       	jbr 	L303
 821  00019732                                  	.data
 822  00000d28 *                                	.text
 823  00019732                                  	.align	1
 824  00019732                                  	.globl	_divd_6
 825  00019732                                  _divd_6:
 826  00019732    0000                          	.word	L316
 827  00019734                                   #   
 828  00019734                                   # 
 829  00019734                                   # 
 830  00019734                                   # /************************************************************************
 831  00019734                                   # *
 832  00019734                                   # *       SUBTEST 6 - Check for register corruption
 833  00019734                                   # *
 834  00019734                                   # ************************************************************************/
 835  00019734                                   # divd_6() 
 836  00019734                                   # {
 837  00019734    13 01c8                       	jbr 	L318
 838  00019737                                  L319:
 839  00019737                                   #         force_loop = FALSE;                     /* clear force_loop flg */
 840  00019737    4d effffff89b                 	clrl	_force_loop
 841  0001973D                                   #         subtest = 6;
 842  0001973D    0d 06 effffff894              	movl	$6,_subtest
 843  00019744                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
 844  00019744    dd 8f00000000                 	pushl	$_load_regs
 845  0001974A    fe 08 effffff887              	callf	$8,_fill_reg_buf
 846  00019751                                   #         index = 0;
 847  00019751    4d effffff881                 	clrl	_index
 848  00019757                                   #         dbl_ld_acc   = divd_1_data[0].op_1;     /* get operand 1       */
 849  00019757    0d effffff87f effffff87a      	movl	_divd_1_data+4,_dbl_ld_acc+4
 850  00019762    0d effffff870 effffff86b      	movl	_divd_1_data,_dbl_ld_acc
 851  0001976D                                   #         dbl_value_1  = divd_1_data[0].op_2;     /* get operand 2       */
 852  0001976D    0d effffff871 effffff864      	movl	_divd_1_data+12,_dbl_value_1+4
 853  00019778    0d effffff862 effffff855      	movl	_divd_1_data+8,_dbl_value_1
 854  00019783                                   #         dbl_expected = divd_1_data[0].exp;      /* get expected result */
 855  00019783    0d effffff863 effffff84e      	movl	_divd_1_data+20,_dbl_expected+4
 856  0001978E    0d effffff854 effffff83f      	movl	_divd_1_data+16,_dbl_expected
 857  00019799                                   # /*
 858  00019799                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 859  00019799                                   #  * The force loop flag is set after the first error.
 860  00019799                                   # */
 861  00019799                                   #         asm("_divd_6_lp1:");
 862  00019799                                  _divd_6_lp1:
 863  00019799                                   #         asm("ldd _dbl_ld_acc");                 /* LOAD the accumulator  */
 864  00019799    07 effffff839                 ldd _dbl_ld_acc
 865  0001979F                                   #         asm("nop");
 866  0001979F    10                            nop
 867  000197A0                                   #         asm("loadr $0x1fff,_load_regs");        /* load regs 0 - 12      */
 868  000197A0    ab 891fff effffff82f          loadr $0x1fff,_load_regs
 869  000197A9                                   #         asm("nop");
 870  000197A9    10                            nop
 871  000197AA                                   #         asm("divd _dbl_value_1");               /* do the divide         */
 872  000197AA    f7 effffff828                 divd _dbl_value_1
 873  000197B0                                   #         asm("nop");
 874  000197B0    10                            nop
 875  000197B1                                   #         asm("storer $0x1fff,_store_regs");      /* store regs 0 - 12 */
 876  000197B1    bb 891fff effffff81e          storer $0x1fff,_store_regs
 877  000197BA                                   #         asm("std _dbl_st_acc");                 /* save the accumulator  */
 878  000197BA    27 effffff818                 std _dbl_st_acc
 879  000197C0                                   #         if( force_loop )
 880  000197C0    5d effffff812                 	tstl	_force_loop
 881  000197C6    31 02                         	jeql	L321
 882  000197C8                                   #              asm("brb _divd_6_lp1");;           /* loop on the error     */
 883  000197C8    11 cf                         brb _divd_6_lp1
 884  000197CA                                  L321:
 885  000197CA                                   # /*
 886  000197CA                                   #  * Now compare the stored register values to those that were loaded
 887  000197CA                                   # */
 888  000197CA                                   #         index2 = 0;
 889  000197CA    4d effffff808                 	clrl	_index2
 890  000197D0                                   #         while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
 891  000197D0                                  L322:
 892  000197D0    0d effffff802 50              	movl	_index2,r0
 893  000197D7    0d effffff7fb 51              	movl	_index2,r1
 894  000197DE    1d 40effffff7f3               	cmpl	_load_regs[r0],_store_regs[r1]
                  41effffff7ed 
 895  000197EB    21 11                         	jneq	L323
 896  000197ED    1d effffff7e5 0d              	cmpl	_index2,$13
 897  000197F4    81 08                         	jgeq	L323
 898  000197F6                                   #              index2++;                          /* check reg values        */
 899  000197F6    6d effffff7dc                 	incl	_index2
 900  000197FC    11 d2                         	jbr 	L322
 901  000197FE                                  L323:
 902  000197FE                                   #         if( index2 < 13 ) {                     /* error if index2 < 13    */
 903  000197FE    1d effffff7d4 0d              	cmpl	_index2,$13
 904  00019805    91 03 13 00f4                 	jgeq	L324
 905  0001980A                                   #              errcnt++;                          /* bump the error count    */
 906  0001980A    6d effffff7c8                 	incl	_errcnt
 907  00019810                                   #              if( prt_error ) {
 908  00019810    5d effffff7c2                 	tstl	_prt_error
 909  00019816    21 03 13 00c0                 	jeql	L325
 910  0001981B                                   #                   writes(" \n");           /* start a new print line  */
 911  0001981B                                  	.data	1
 912  00000e6f *                                L326:
 913  00000e6f *  200A00                        	.ascii	" \12\0"
 914  00000e72 *                                	.text
 915  0001981B    dd 8f00000e6f                 	pushl	$L326
 916  00019821    fe 08 effffff7b0              	callf	$8,_writes
 917  00019828                                   #                   writes("cycle: ");
 918  00019828                                  	.data	1
 919  00000e72 *                                L327:
 920  00000e72 *  6379636C653A2000              	.ascii	"cycle: \0"
 921  00000e7a *                                	.text
 922  00019828    dd 8f00000e72                 	pushl	$L327
 923  0001982E    fe 08 effffff7a3              	callf	$8,_writes
 924  00019835                                   #                   writed( cycle );
 925  00019835    dd effffff79d                 	pushl	_cycle
 926  0001983B    fe 08 effffff796              	callf	$8,_writed
 927  00019842                                   #                   writes("  DIVD test ");
 928  00019842                                  	.data	1
 929  00000e7a *                                L328:
 930  00000e7a *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
 931  00000e87 *                                	.text
 932  00019842    dd 8f00000e7a                 	pushl	$L328
 933  00019848    fe 08 effffff789              	callf	$8,_writes
 934  0001984F                                   # 		  writed( test_no );
 935  0001984F    dd effffff783                 	pushl	_test_no
 936  00019855    fe 08 effffff77c              	callf	$8,_writed
 937  0001985C                                   # 	writes(", subtest 6 - A REGISTER WAS CHANGED\n");
 938  0001985C                                  	.data	1
 939  00000e87 *                                L329:
 940  00000e87 *  2C20737562746573742036202     	.ascii	", subtest 6 - A REGISTER WAS CHANGED\12\0"
                  D204120524547495354455220
                  574153204348414E4745440A0
                  0
 941  00000ead *                                	.text
 942  0001985C    dd 8f00000e87                 	pushl	$L329
 943  00019862    fe 08 effffff76f              	callf	$8,_writes
 944  00019869                                   #                   print_divd_data();            /* print the operands      */
 945  00019869    fe 04 ef0000026c              	callf	$4,_print_divd_data
 946  00019870                                   #                   writes("register ");          /* print the information   */
 947  00019870                                  	.data	1
 948  00000ead *                                L330:
 949  00000ead *  72656769737465722000          	.ascii	"register \0"
 950  00000eb7 *                                	.text
 951  00019870    dd 8f00000ead                 	pushl	$L330
 952  00019876    fe 08 effffff75b              	callf	$8,_writes
 953  0001987D                                   #                   writed( index2 );             /*    about the corrupted  */
 954  0001987D    dd effffff755                 	pushl	_index2
 955  00019883    fe 08 effffff74e              	callf	$8,_writed
 956  0001988A                                   #                   writes(" = ");                /*        register         */
 957  0001988A                                  	.data	1
 958  00000eb7 *                                L331:
 959  00000eb7 *  203D2000                      	.ascii	" = \0"
 960  00000ebb *                                	.text
 961  0001988A    dd 8f00000eb7                 	pushl	$L331
 962  00019890    fe 08 effffff741              	callf	$8,_writes
 963  00019897                                   #                   write32h( store_regs[index2] );
 964  00019897    0d effffff73b 50              	movl	_index2,r0
 965  0001989E    dd 40effffff733               	pushl	_store_regs[r0]
 966  000198A5    fe 08 effffff72c              	callf	$8,_write32h
 967  000198AC                                   #                   writes(",  should be = ");
 968  000198AC                                  	.data	1
 969  00000ebb *                                L333:
 970  00000ebb *  2C202073686F756C642062652     	.ascii	",  should be = \0"
                  03D2000
 971  00000ecb *                                	.text
 972  000198AC    dd 8f00000ebb                 	pushl	$L333
 973  000198B2    fe 08 effffff71f              	callf	$8,_writes
 974  000198B9                                   #                   write32h( load_regs[index2] );
 975  000198B9    0d effffff719 50              	movl	_index2,r0
 976  000198C0    dd 40effffff711               	pushl	_load_regs[r0]
 977  000198C7    fe 08 effffff70a              	callf	$8,_write32h
 978  000198CE                                   #                   writes("\n");
 979  000198CE                                  	.data	1
 980  00000ecb *                                L334:
 981  00000ecb *  0A00                          	.ascii	"\12\0"
 982  00000ecd *                                	.text
 983  000198CE    dd 8f00000ecb                 	pushl	$L334
 984  000198D4    fe 08 effffff6fd              	callf	$8,_writes
 985  000198DB                                   #              }
 986  000198DB                                   #              if( halt_flg )   
 987  000198DB                                  L325:
 988  000198DB    5d effffff6f7                 	tstl	_halt_flg
 989  000198E1    31 09                         	jeql	L335
 990  000198E3                                   #                   divd_er_halt( BAD_REG_HLT );  /* halt on the error      */
 991  000198E3    dd 02                         	pushl	$2
 992  000198E5    fe 08 ef000002e6              	callf	$8,_divd_er_halt
 993  000198EC                                   #              if( loop_on_err ) {
 994  000198EC                                  L335:
 995  000198EC    5d effffff6e6                 	tstl	_loop_on_err
 996  000198F2    31 0a                         	jeql	L336
 997  000198F4                                   #                   force_loop = TRUE;        /* set the force loop flag */
 998  000198F4    0d 01 effffff6dd              	movl	$1,_force_loop
 999  000198FB                                   #                   asm("brw _divd_6_lp1");;  /* and loop on the error   */
1000  000198FB    13 fe9b                       brw _divd_6_lp1
1001  000198FE                                   #              }   /* end of loop on error */
1002  000198FE                                   #         }  /* end of register corruption error */
1003  000198FE                                  L336:
1004  000198FE                                   # }  /* end of subtest 6 */
1005  000198FE                                  L324:
1006  000198FE    40                            	ret#2
1007  000198FF                                  	.set	L316,0x0
1008  000198FF                                  L318:
1009  000198FF    13 fe35                       	jbr 	L319
1010  00019902                                  	.data
1011  00000d28 *                                	.text
1012  00019902                                  	.align	1
1013  00019902                                  	.globl	_divd_7
1014  00019902                                  _divd_7:
1015  00019902    0000                          	.word	L337
1016  00019904                                   #   
1017  00019904                                   # 
1018  00019904                                   # 
1019  00019904                                   # /************************************************************************
1020  00019904                                   # *
1021  00019904                                   # *       SUBTEST 7 - Check for PSL corruption
1022  00019904                                   # *
1023  00019904                                   # ************************************************************************/
1024  00019904                                   # divd_7() 
1025  00019904                                   # {
1026  00019904    13 01d2                       	jbr 	L339
1027  00019907                                  L340:
1028  00019907                                   #         force_loop = FALSE;                     /* clear force_loop flg */
1029  00019907    4d effffff6cb                 	clrl	_force_loop
1030  0001990D                                   #         subtest = 7;
1031  0001990D    0d 07 effffff6c4              	movl	$7,_subtest
1032  00019914                                   #         fill_reg_buf( load_regs );              /* get patterns for regs */
1033  00019914    dd 8f00000000                 	pushl	$_load_regs
1034  0001991A    fe 08 effffff6b7              	callf	$8,_fill_reg_buf
1035  00019921                                   #         for( index = 0; index < 3; index++ ) {
1036  00019921    4d effffff6b1                 	clrl	_index
1037  00019927                                  L343:
1038  00019927    1d effffff6ab 03              	cmpl	_index,$3
1039  0001992E    91 03 13 01a5                 	jgeq	L342
1040  00019933                                   #              dbl_ld_acc   = divd_1_data[index].op_1;    /* get operand 1 */
1041  00019933    5c 18 effffff69e 50           	mull3	$24,_index,r0
1042  0001993B    0c 8f00000000 50              	addl2	$_divd_1_data,r0
1043  00019942    0d a004 effffff692            	movl	4(r0),_dbl_ld_acc+4
1044  0001994A    0d 60 effffff687              	movl	(r0),_dbl_ld_acc
1045  00019951                                   #              dbl_value_1  = divd_1_data[index].op_2;    /* get operand 2 */
1046  00019951    5c 18 effffff680 50           	mull3	$24,_index,r0
1047  00019959    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
1048  00019960    0d a004 effffff674            	movl	4(r0),_dbl_value_1+4
1049  00019968    0d 60 effffff669              	movl	(r0),_dbl_value_1
1050  0001996F                                   #              dbl_expected = divd_1_data[index].exp;     /* get expected  */
1051  0001996F    5c 18 effffff662 50           	mull3	$24,_index,r0
1052  00019977    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
1053  0001997E    0d a004 effffff656            	movl	4(r0),_dbl_expected+4
1054  00019986    0d 60 effffff64b              	movl	(r0),_dbl_expected
1055  0001998D                                   #              sgl_dummy1 = status_array[status_index];    /* status = +, -, 0 */
1056  0001998D    0d effffff645 50              	movl	_status_index,r0
1057  00019994    0d 40effffff63d               	movl	_status_array[r0],_sgl_dummy1
                  effffff638 
1058  000199A0                                   # /*
1059  000199A0                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1060  000199A0                                   #  * The force loop flag is set after the first error.
1061  000199A0                                   # */
1062  000199A0                                   #              asm("_divd_7_lp1:");
1063  000199A0                                  _divd_7_lp1:
1064  000199A0                                   #              asm("ldd _dbl_ld_acc");            /* LOAD the accumulator  */
1065  000199A0    07 effffff632                 ldd _dbl_ld_acc
1066  000199A6                                   #              asm("nop");
1067  000199A6    10                            nop
1068  000199A7                                   #              asm("tstl _sgl_dummy1");		/* set the PSL status    */
1069  000199A7    5d effffff62b                 tstl _sgl_dummy1
1070  000199AD                                   # 	     asm("movpsl _init_psl");		/* save the initial PSL  */
1071  000199AD    cd effffff625                 movpsl _init_psl
1072  000199B3                                   #              asm("divd _dbl_value_1");          /* do the divide         */
1073  000199B3    f7 effffff61f                 divd _dbl_value_1
1074  000199B9                                   #              asm("nop");
1075  000199B9    10                            nop
1076  000199BA                                   #              asm("movpsl _psl_val");            /* save the final PSL    */
1077  000199BA    cd effffff618                 movpsl _psl_val
1078  000199C0                                   #              asm("std _dbl_st_acc");            /* save the accumulator  */
1079  000199C0    27 effffff612                 std _dbl_st_acc
1080  000199C6                                   #              if( force_loop )
1081  000199C6    5d effffff60c                 	tstl	_force_loop
1082  000199CC    31 02                         	jeql	L344
1083  000199CE                                   #                   asm("brb _divd_7_lp1");;      /* loop on the error     */
1084  000199CE    11 d0                         brb _divd_7_lp1
1085  000199D0                                  L344:
1086  000199D0                                   # /*
1087  000199D0                                   #  * Now compare the final PSL to the initial PSL -they should be the same
1088  000199D0                                   # */
1089  000199D0                                   #              exp_psl = init_psl;
1090  000199D0    0d effffff602 effffff5fd      	movl	_init_psl,_exp_psl
1091  000199DB                                   # 	     if( psl_val != exp_psl ) {
1092  000199DB    1d effffff5f7 effffff5f2      	cmpl	_psl_val,_exp_psl
1093  000199E6    21 03 13 00e4                 	jeql	L345
1094  000199EB                                   #                   errcnt++;                     /* bump the error count    */
1095  000199EB    6d effffff5e7                 	incl	_errcnt
1096  000199F1                                   #                   if( prt_error ) {
1097  000199F1    5d effffff5e1                 	tstl	_prt_error
1098  000199F7    21 03 13 00b0                 	jeql	L346
1099  000199FC                                   #                        writes(" \n");      /* start a new print line  */
1100  000199FC                                  	.data	1
1101  00000ecd *                                L347:
1102  00000ecd *  200A00                        	.ascii	" \12\0"
1103  00000ed0 *                                	.text
1104  000199FC    dd 8f00000ecd                 	pushl	$L347
1105  00019A02    fe 08 effffff5cf              	callf	$8,_writes
1106  00019A09                                   #                        writes("cycle: ");
1107  00019A09                                  	.data	1
1108  00000ed0 *                                L348:
1109  00000ed0 *  6379636C653A2000              	.ascii	"cycle: \0"
1110  00000ed8 *                                	.text
1111  00019A09    dd 8f00000ed0                 	pushl	$L348
1112  00019A0F    fe 08 effffff5c2              	callf	$8,_writes
1113  00019A16                                   #                        writed( cycle );
1114  00019A16    dd effffff5bc                 	pushl	_cycle
1115  00019A1C    fe 08 effffff5b5              	callf	$8,_writed
1116  00019A23                                   #                        writes("  DIVD test ");
1117  00019A23                                  	.data	1
1118  00000ed8 *                                L349:
1119  00000ed8 *  2020444956442074657374200     	.ascii	"  DIVD test \0"
                  0
1120  00000ee5 *                                	.text
1121  00019A23    dd 8f00000ed8                 	pushl	$L349
1122  00019A29    fe 08 effffff5a8              	callf	$8,_writes
1123  00019A30                                   # 		       writed( test_no );
1124  00019A30    dd effffff5a2                 	pushl	_test_no
1125  00019A36    fe 08 effffff59b              	callf	$8,_writed
1126  00019A3D                                   # 	writes(", subtest 7 - INCORRECT FINAL PSL\n");
1127  00019A3D                                  	.data	1
1128  00000ee5 *                                L350:
1129  00000ee5 *  2C20737562746573742037202     	.ascii	", subtest 7 - INCORRECT FINAL PSL\12\0"
                  D20494E434F52524543542046
                  494E414C2050534C0A00
1130  00000f08 *                                	.text
1131  00019A3D    dd 8f00000ee5                 	pushl	$L350
1132  00019A43    fe 08 effffff58e              	callf	$8,_writes
1133  00019A4A                                   #                        print_divd_data();       /* print the operands      */
1134  00019A4A    fe 04 ef0000008b              	callf	$4,_print_divd_data
1135  00019A51                                   #                        writes("initial PSL = ");
1136  00019A51                                  	.data	1
1137  00000f08 *                                L351:
1138  00000f08 *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
1139  00000f17 *                                	.text
1140  00019A51    dd 8f00000f08                 	pushl	$L351
1141  00019A57    fe 08 effffff57a              	callf	$8,_writes
1142  00019A5E                                   #                        write32h( init_psl );
1143  00019A5E    dd effffff574                 	pushl	_init_psl
1144  00019A64    fe 08 effffff56d              	callf	$8,_write32h
1145  00019A6B                                   #                        writes(",  final PSL = ");
1146  00019A6B                                  	.data	1
1147  00000f17 *                                L352:
1148  00000f17 *  2C202066696E616C2050534C2     	.ascii	",  final PSL = \0"
                  03D2000
1149  00000f27 *                                	.text
1150  00019A6B    dd 8f00000f17                 	pushl	$L352
1151  00019A71    fe 08 effffff560              	callf	$8,_writes
1152  00019A78                                   #                        write32h( psl_val );
1153  00019A78    dd effffff55a                 	pushl	_psl_val
1154  00019A7E    fe 08 effffff553              	callf	$8,_write32h
1155  00019A85                                   #                        writes(",  expected PSL = ");
1156  00019A85                                  	.data	1
1157  00000f27 *                                L353:
1158  00000f27 *  2C20206578706563746564205     	.ascii	",  expected PSL = \0"
                  0534C203D2000
1159  00000f3a *                                	.text
1160  00019A85    dd 8f00000f27                 	pushl	$L353
1161  00019A8B    fe 08 effffff546              	callf	$8,_writes
1162  00019A92                                   #                        write32h( exp_psl );
1163  00019A92    dd effffff540                 	pushl	_exp_psl
1164  00019A98    fe 08 effffff539              	callf	$8,_write32h
1165  00019A9F                                   #                        writes("\n");
1166  00019A9F                                  	.data	1
1167  00000f3a *                                L354:
1168  00000f3a *  0A00                          	.ascii	"\12\0"
1169  00000f3c *                                	.text
1170  00019A9F    dd 8f00000f3a                 	pushl	$L354
1171  00019AA5    fe 08 effffff52c              	callf	$8,_writes
1172  00019AAC                                   #                   }
1173  00019AAC                                   #                   if( halt_flg )   
1174  00019AAC                                  L346:
1175  00019AAC    5d effffff526                 	tstl	_halt_flg
1176  00019AB2    31 09                         	jeql	L355
1177  00019AB4                                   #                        divd_er_halt( BAD_PSL_HLT );   /* halt on the error */
1178  00019AB4    dd 03                         	pushl	$3
1179  00019AB6    fe 08 ef00000115              	callf	$8,_divd_er_halt
1180  00019ABD                                   #                   if( loop_on_err ) {
1181  00019ABD                                  L355:
1182  00019ABD    5d effffff515                 	tstl	_loop_on_err
1183  00019AC3    31 0a                         	jeql	L356
1184  00019AC5                                   #                        force_loop = TRUE;        /* set the force loop flag */
1185  00019AC5    0d 01 effffff50c              	movl	$1,_force_loop
1186  00019ACC                                   #                        asm("brw _divd_7_lp1");;  /* and loop on the error   */
1187  00019ACC    13 fed1                       brw _divd_7_lp1
1188  00019ACF                                   #                   }   /* end of loop on error */
1189  00019ACF                                   #              }  /* end of PSL corruption error */
1190  00019ACF                                  L356:
1191  00019ACF                                   #         }  /* end of WHILE loop */
1192  00019ACF                                  L345:
1193  00019ACF                                  L341:
1194  00019ACF    6d effffff503                 	incl	_index
1195  00019AD5    13 fe4f                       	jbr 	L343
1196  00019AD8                                  L342:
1197  00019AD8                                   # }  /* end of subtest 7 */
1198  00019AD8    40                            	ret#2
1199  00019AD9                                  	.set	L337,0x0
1200  00019AD9                                  L339:
1201  00019AD9    13 fe2b                       	jbr 	L340
1202  00019ADC                                  	.data
1203  00000d28 *                                	.text
1204  00019ADC                                  	.align	1
1205  00019ADC                                  	.globl	_print_divd_data
1206  00019ADC                                  _print_divd_data:
1207  00019ADC    0000                          	.word	L357
1208  00019ADE                                   #   
1209  00019ADE                                   # 
1210  00019ADE                                   # 
1211  00019ADE                                   # /**************************************************************************
1212  00019ADE                                   # *
1213  00019ADE                                   # *       PRINT THE DATA AND STORE RESULTS
1214  00019ADE                                   # *
1215  00019ADE                                   # * initial Acc = xxxxxxxx xxxxxxxx,    stored = xxxxxxxx xxxxxxxx,  index = xx
1216  00019ADE                                   # *     operand = xxxxxxxx xxxxxxxx,  expected = xxxxxxxx xxxxxxxx
1217  00019ADE                                   # **************************************************************************/
1218  00019ADE                                   # print_divd_data()
1219  00019ADE                                   # {
1220  00019ADE    13 00ed                       	jbr 	L359
1221  00019AE1                                  L360:
1222  00019AE1                                   #         writes("initial Acc = ");
1223  00019AE1                                  	.data	1
1224  00000f3c *                                L361:
1225  00000f3c *  696E697469616C20416363203     	.ascii	"initial Acc = \0"
                  D2000
1226  00000f4b *                                	.text
1227  00019AE1    dd 8f00000f3c                 	pushl	$L361
1228  00019AE7    fe 08 effffff4ea              	callf	$8,_writes
1229  00019AEE                                   #         write32h( dbl_ld_acc.m );
1230  00019AEE    dd effffff4e4                 	pushl	_dbl_ld_acc
1231  00019AF4    fe 08 effffff4dd              	callf	$8,_write32h
1232  00019AFB                                   #         writec(' ');
1233  00019AFB    dd 20                         	pushl	$32
1234  00019AFD    fe 08 effffff4d4              	callf	$8,_writec
1235  00019B04                                   #         write32h( dbl_ld_acc.l );
1236  00019B04    dd effffff4d2                 	pushl	_dbl_ld_acc+4
1237  00019B0A    fe 08 effffff4c7              	callf	$8,_write32h
1238  00019B11                                   #         writes(",    stored = ");
1239  00019B11                                  	.data	1
1240  00000f4b *                                L363:
1241  00000f4b *  2C2020202073746F726564203     	.ascii	",    stored = \0"
                  D2000
1242  00000f5a *                                	.text
1243  00019B11    dd 8f00000f4b                 	pushl	$L363
1244  00019B17    fe 08 effffff4ba              	callf	$8,_writes
1245  00019B1E                                   #         write32h( dbl_st_acc.m );
1246  00019B1E    dd effffff4b4                 	pushl	_dbl_st_acc
1247  00019B24    fe 08 effffff4ad              	callf	$8,_write32h
1248  00019B2B                                   #         writec(' ');
1249  00019B2B    dd 20                         	pushl	$32
1250  00019B2D    fe 08 effffff4a4              	callf	$8,_writec
1251  00019B34                                   #         write32h( dbl_st_acc.l );
1252  00019B34    dd effffff4a2                 	pushl	_dbl_st_acc+4
1253  00019B3A    fe 08 effffff497              	callf	$8,_write32h
1254  00019B41                                   #         writes(",   index = ");
1255  00019B41                                  	.data	1
1256  00000f5a *                                L364:
1257  00000f5a *  2C202020696E646578203D200     	.ascii	",   index = \0"
                  0
1258  00000f67 *                                	.text
1259  00019B41    dd 8f00000f5a                 	pushl	$L364
1260  00019B47    fe 08 effffff48a              	callf	$8,_writes
1261  00019B4E                                   #         writed( index );
1262  00019B4E    dd effffff484                 	pushl	_index
1263  00019B54    fe 08 effffff47d              	callf	$8,_writed
1264  00019B5B                                   #         writec('\n');
1265  00019B5B    dd 0a                         	pushl	$10
1266  00019B5D    fe 08 effffff474              	callf	$8,_writec
1267  00019B64                                   #         writes("    operand = ");
1268  00019B64                                  	.data	1
1269  00000f67 *                                L365:
1270  00000f67 *  202020206F706572616E64203     	.ascii	"    operand = \0"
                  D2000
1271  00000f76 *                                	.text
1272  00019B64    dd 8f00000f67                 	pushl	$L365
1273  00019B6A    fe 08 effffff467              	callf	$8,_writes
1274  00019B71                                   #         write32h( dbl_value_1.m );
1275  00019B71    dd effffff461                 	pushl	_dbl_value_1
1276  00019B77    fe 08 effffff45a              	callf	$8,_write32h
1277  00019B7E                                   #         writec(' ');
1278  00019B7E    dd 20                         	pushl	$32
1279  00019B80    fe 08 effffff451              	callf	$8,_writec
1280  00019B87                                   #         write32h( dbl_value_1.l );
1281  00019B87    dd effffff44f                 	pushl	_dbl_value_1+4
1282  00019B8D    fe 08 effffff444              	callf	$8,_write32h
1283  00019B94                                   #         writes(",  expected = ");
1284  00019B94                                  	.data	1
1285  00000f76 *                                L366:
1286  00000f76 *  2C20206578706563746564203     	.ascii	",  expected = \0"
                  D2000
1287  00000f85 *                                	.text
1288  00019B94    dd 8f00000f76                 	pushl	$L366
1289  00019B9A    fe 08 effffff437              	callf	$8,_writes
1290  00019BA1                                   #         write32h( dbl_expected.m );
1291  00019BA1    dd effffff431                 	pushl	_dbl_expected
1292  00019BA7    fe 08 effffff42a              	callf	$8,_write32h
1293  00019BAE                                   #         writec(' ');
1294  00019BAE    dd 20                         	pushl	$32
1295  00019BB0    fe 08 effffff421              	callf	$8,_writec
1296  00019BB7                                   #         write32h( dbl_expected.l );
1297  00019BB7    dd effffff41f                 	pushl	_dbl_expected+4
1298  00019BBD    fe 08 effffff414              	callf	$8,_write32h
1299  00019BC4                                   #         writec('\n');
1300  00019BC4    dd 0a                         	pushl	$10
1301  00019BC6    fe 08 effffff40b              	callf	$8,_writec
1302  00019BCD                                   # }
1303  00019BCD    40                            	ret#2
1304  00019BCE                                  	.set	L357,0x0
1305  00019BCE                                  L359:
1306  00019BCE    13 ff10                       	jbr 	L360
1307  00019BD1                                  	.data
1308  00000d28 *                                	.text
1309  00019BD1    00                            	.align	1
1310  00019BD2                                  	.globl	_divd_er_halt
1311  00019BD2                                  _divd_er_halt:
1312  00019BD2    0000                          	.word	L367
1313  00019BD4                                   #   
1314  00019BD4                                   # 
1315  00019BD4                                   # 
1316  00019BD4                                   # /**************************************************************************
1317  00019BD4                                   # *
1318  00019BD4                                   # *               HALT ON ERROR ROUTINE 
1319  00019BD4                                   # *
1320  00019BD4                                   # **************************************************************************/
1321  00019BD4                                   # divd_er_halt( halt_code )
1322  00019BD4                                   # int halt_code;
1323  00019BD4                                   # {
1324  00019BD4    13 0123                       	jbr 	L369
1325  00019BD7                                  L370:
1326  00019BD7                                   #         sgl_value_1 = dbl_ld_acc.m;
1327  00019BD7    0d effffff3fb effffff3f6      	movl	_dbl_ld_acc,_sgl_value_1
1328  00019BE2                                   #         sgl_value_2 = dbl_ld_acc.l;
1329  00019BE2    0d effffff3f4 effffff3eb      	movl	_dbl_ld_acc+4,_sgl_value_2
1330  00019BED                                   #         sgl_value_3 = dbl_value_1.m;
1331  00019BED    0d effffff3e5 effffff3e0      	movl	_dbl_value_1,_sgl_value_3
1332  00019BF8                                   #         sgl_value_4 = dbl_value_1.l;
1333  00019BF8    0d effffff3de effffff3d5      	movl	_dbl_value_1+4,_sgl_value_4
1334  00019C03                                   #         sgl_value_5 = dbl_st_acc.m;
1335  00019C03    0d effffff3cf effffff3ca      	movl	_dbl_st_acc,_sgl_value_5
1336  00019C0E                                   #         sgl_value_6 = dbl_st_acc.l;
1337  00019C0E    0d effffff3c8 effffff3bf      	movl	_dbl_st_acc+4,_sgl_value_6
1338  00019C19                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
1339  00019C19    0d ad04 effffff3b7            	movl	4(fp),_sgl_dummy1
1340  00019C21                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
1341  00019C21    0d effffff3b1 50              movl _test_no,r0
1342  00019C28                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
1343  00019C28    0d effffff3aa 51              movl _subtest,r1
1344  00019C2F                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
1345  00019C2F    0d effffff3a3 52              movl _sgl_dummy1,r2
1346  00019C36                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
1347  00019C36    0d effffff39c 53              movl _cycle,r3
1348  00019C3D                                   #         asm("movl _sgl_value_1,r4");            /* r4  = MS operand 1    */
1349  00019C3D    0d effffff395 54              movl _sgl_value_1,r4
1350  00019C44                                   #         asm("movl _sgl_value_2,r5");            /* r5  = LS operand 1    */
1351  00019C44    0d effffff38e 55              movl _sgl_value_2,r5
1352  00019C4B                                   #         asm("movl _sgl_value_3,r6");            /* r6  = MS operand 2    */
1353  00019C4B    0d effffff387 56              movl _sgl_value_3,r6
1354  00019C52                                   #         asm("movl _sgl_value_4,r7");            /* r7  = LS operand 2    */
1355  00019C52    0d effffff380 57              movl _sgl_value_4,r7
1356  00019C59                                   #         asm("movl _sgl_value_5,r8");            /* r8  = MS stored       */
1357  00019C59    0d effffff379 58              movl _sgl_value_5,r8
1358  00019C60                                   #         asm("movl _sgl_value_6,r9");            /* r9  = LS stored       */
1359  00019C60    0d effffff372 59              movl _sgl_value_6,r9
1360  00019C67                                   #         if( halt_code == BAD_ACC_HLT ) {
1361  00019C67    1d ad04 01                    	cmpl	4(fp),$1
1362  00019C6B    21 2d                         	jneq	L371
1363  00019C6D                                   #              sgl_value_1 = dbl_expected.m;
1364  00019C6D    0d effffff365 effffff360      	movl	_dbl_expected,_sgl_value_1
1365  00019C78                                   #              sgl_value_2 = dbl_expected.l;
1366  00019C78    0d effffff35e effffff355      	movl	_dbl_expected+4,_sgl_value_2
1367  00019C83                                   #              asm("movl _sgl_value_1,r10");      /* r10 = MS expected     */
1368  00019C83    0d effffff34f 5a              movl _sgl_value_1,r10
1369  00019C8A                                   #              asm("movl _sgl_value_2,r11");      /* r11 = LS expected     */
1370  00019C8A    0d effffff348 5b              movl _sgl_value_2,r11
1371  00019C91                                   #              asm("movl _index2,r12");           /* r12 = data index      */
1372  00019C91    0d effffff341 5c              movl _index2,r12
1373  00019C98                                   #         } else 
1374  00019C98    11 5e                         	jbr 	L372
1375  00019C9A                                  L371:
1376  00019C9A                                   #           if( halt_code == BAD_REG_HLT ) {
1377  00019C9A    1d ad04 02                    	cmpl	4(fp),$2
1378  00019C9E    21 3d                         	jneq	L373
1379  00019CA0                                   #              sgl_dummy1 = load_regs[index2];
1380  00019CA0    0d effffff332 50              	movl	_index2,r0
1381  00019CA7    0d 40effffff32a               	movl	_load_regs[r0],_sgl_dummy1
                  effffff325 
1382  00019CB3                                   #              sgl_dummy2 = store_regs[index2];
1383  00019CB3    0d effffff31f 50              	movl	_index2,r0
1384  00019CBA    0d 40effffff317               	movl	_store_regs[r0],_sgl_dummy2
                  effffff312 
1385  00019CC6                                   #              asm("movl _index2,r10");           /* r10 = bad register #  */
1386  00019CC6    0d effffff30c 5a              movl _index2,r10
1387  00019CCD                                   #              asm("movl _sgl_dummy2,r11");       /* r11 = actual value    */
1388  00019CCD    0d effffff305 5b              movl _sgl_dummy2,r11
1389  00019CD4                                   #              asm("movl _sgl_dummy1,r12");       /* r12 = expected value  */
1390  00019CD4    0d effffff2fe 5c              movl _sgl_dummy1,r12
1391  00019CDB                                   #         } else
1392  00019CDB    11 1b                         	jbr 	L374
1393  00019CDD                                  L373:
1394  00019CDD                                   #           if( halt_code == BAD_PSL_HLT ) {
1395  00019CDD    1d ad04 03                    	cmpl	4(fp),$3
1396  00019CE1    21 15                         	jneq	L375
1397  00019CE3                                   #              asm("movl _init_psl,r10");         /* r10 = initial PSL     */
1398  00019CE3    0d effffff2ef 5a              movl _init_psl,r10
1399  00019CEA                                   #              asm("movl _psl_val,r11");          /* r11 = final PSL       */
1400  00019CEA    0d effffff2e8 5b              movl _psl_val,r11
1401  00019CF1                                   #              asm("movl _exp_psl,r12");          /* r12 = expected PSL    */
1402  00019CF1    0d effffff2e1 5c              movl _exp_psl,r12
1403  00019CF8                                   #         };
1404  00019CF8                                  L375:
1405  00019CF8                                  L374:
1406  00019CF8                                  L372:
1407  00019CF8                                   #         asm("halt");                            /* HALT ...              */
1408  00019CF8    00                            halt
1409  00019CF9                                   # }  
1410  00019CF9    40                            	ret#2
1411  00019CFA                                  	.set	L367,0x0
1412  00019CFA                                  L369:
1413  00019CFA    13 feda                       	jbr 	L370
1414  00019CFD                                  	.data
1414  00032CD5                                  	.data

unix.superglobalmegacorp.com

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