File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / macro4 / pipe15.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  00001010 *                                	.text
   4  00000000                                  	.align	1
   5  00000000                                  	.globl	_pipe_15
   6  00000000                                  _pipe_15:
   7  00030020    0000                          	.word	L215
   8  00030022                                   # #include "fpp_defs.h"
   9  00030022                                   # 
  10  00030022                                   # 
  11  00030022                                   # /*****************************************************************************
  12  00030022                                   # *
  13  00030022                                   # *		DBL PIPELINE TEST #15 MONITOR
  14  00030022                                   # *
  15  00030022                                   # *  This test will do:
  16  00030022                                   # *
  17  00030022                                   # *	LDD(1)  MULD(op1)  DIVD(op2)  DIVD(1)  ADDD(0)  STD
  18  00030022                                   # *
  19  00030022                                   # *  where 'op1' and 'op2' are the DIVD data patterns.
  20  00030022                                   # *****************************************************************************/
  21  00030022                                   # pipe_15()
  22  00030022                                   # {
  23  00030022    13 009b                       	jbr 	L217
  24  00030025                                  L218:
  25  00030025                                   # 	asm(".globl _pipeline_15_t");
  26  00030025                                  .globl _pipeline_15_t
  27  00030025                                   # 	asm("_pipeline_15_t:");			/* entry address            */
  28  00030025                                  _pipeline_15_t:
  29  00030025                                   # 	if( (cycle == 1) && (prt_hdrs) )	/* print headers on 1st cycle */
  30  00030025    1d effffffff5 01              	cmpl	_cycle,$1
  31  0003002C    21 15                         	jneq	L219
  32  0003002E    5d efffffffec                 	tstl	_prt_hdrs
  33  00030034    31 0d                         	jeql	L219
  34  00030036                                   # 	{
  35  00030036                                   # 	   writes("\n PIPE_15");
  36  00030036                                  	.data	1
  37  00001010 *                                L221:
  38  00001010 *  0A20504950455F313500          	.ascii	"\12 PIPE_15\0"
  39  0000101a *                                	.text
  40  00030036    dd 8f00001010                 	pushl	$L221
  41  0003003C    fe 08 efffffffdd              	callf	$8,_writes
  42  00030043                                   # 	}
  43  00030043                                   # 	subtest = 1;
  44  00030043                                  L219:
  45  00030043    0d 01 efffffffd6              	movl	$1,_subtest
  46  0003004A                                   # 	pipe15_1();				/* data in REGs,  no NOPs */
  47  0003004A    fe 04 ef00000073              	callf	$4,_pipe15_1
  48  00030051                                   # 	subtest++;				/* increment subtest num  */
  49  00030051    6d efffffffc9                 	incl	_subtest
  50  00030057                                   # 	pipe15_2();				/* data in REGs,   1 NOP  */
  51  00030057    fe 04 ef000001de              	callf	$4,_pipe15_2
  52  0003005E                                   # 	subtest++;				/* increment subtest num  */
  53  0003005E    6d efffffffbc                 	incl	_subtest
  54  00030064                                   # 	pipe15_3();				/* data in REGs,   2 NOPs */
  55  00030064    fe 04 ef0000034d              	callf	$4,_pipe15_3
  56  0003006B                                   # 	subtest++;				/* increment subtest num  */
  57  0003006B    6d efffffffaf                 	incl	_subtest
  58  00030071                                   # 	pipe15_4();				/* data in REGs,   3 NOPs */
  59  00030071    fe 04 ef000004c2              	callf	$4,_pipe15_4
  60  00030078                                   # 	subtest++;				/* increment subtest num  */
  61  00030078    6d efffffffa2                 	incl	_subtest
  62  0003007E                                   # 	pipe15_5();				/* data in CACHE, no NOPs */
  63  0003007E    fe 04 ef0000063b              	callf	$4,_pipe15_5
  64  00030085                                   # 	subtest++;				/* increment subtest num  */
  65  00030085    6d efffffff95                 	incl	_subtest
  66  0003008B                                   # 	pipe15_6();				/* data in CACHE,  1 NOP  */
  67  0003008B    fe 04 ef0000075e              	callf	$4,_pipe15_6
  68  00030092                                   # 	subtest++;				/* increment subtest num  */
  69  00030092    6d efffffff88                 	incl	_subtest
  70  00030098                                   # 	pipe15_7();				/* data in CACHE,  2 NOPs */
  71  00030098    fe 04 ef00000885              	callf	$4,_pipe15_7
  72  0003009F                                   # 	subtest++;				/* increment subtest num  */
  73  0003009F    6d efffffff7b                 	incl	_subtest
  74  000300A5                                   # 	pipe15_8();				/* data in CACHE,  3 NOPs */
  75  000300A5    fe 04 ef000009b2              	callf	$4,_pipe15_8
  76  000300AC                                   # 	subtest++;				/* increment subtest num  */
  77  000300AC    6d efffffff6e                 	incl	_subtest
  78  000300B2                                   # 	pipe15_9();				/* data via F.P.   0 NOPs */
  79  000300B2    fe 04 ef00000ae3              	callf	$4,_pipe15_9
  80  000300B9                                   # 	asm("jmp *return");			/* return to the test monitor */
  81  000300B9    71 ffffffff61                 jmp *return
  82  000300BF                                   # }
  83  000300BF    40                            	ret#2
  84  000300C0                                  	.set	L215,0x0
  85  000300C0                                  L217:
  86  000300C0    13 ff62                       	jbr 	L218
  87  000300C3                                  	.data
  88  00001010 *                                	.text
  89  000300C3    00                            	.align	1
  90  000300C4                                  	.globl	_pipe15_1
  91  000300C4                                  _pipe15_1:
  92  000300C4    0000                          	.word	L231
  93  000300C6                                   # 
  94  000300C6                                   # 
  95  000300C6                                   # 
  96  000300C6                                   # 
  97  000300C6                                   # 
  98  000300C6                                   # 
  99  000300C6                                   # 
 100  000300C6                                   # 
 101  000300C6                                   # /************************************************************************
 102  000300C6                                   # *
 103  000300C6                                   # *			SUBTEST 1  
 104  000300C6                                   # *		data in registers, no NO-OPs
 105  000300C6                                   # *
 106  000300C6                                   # ************************************************************************/
 107  000300C6                                   # pipe15_1() 
 108  000300C6                                   # {
 109  000300C6    13 016f                       	jbr 	L233
 110  000300C9                                  L234:
 111  000300C9                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
 112  000300C9    4d efffffff51                 	clrl	_force_loop
 113  000300CF                                   # 	index = 0;
 114  000300CF    4d efffffff4b                 	clrl	_index
 115  000300D5                                   # 	do 
 116  000300D5                                  L237:
 117  000300D5                                   # 	{
 118  000300D5                                   # 	   sgl_value_1  = divd_1_data[index].op_1.m;      /* get op_1's MSW  */
 119  000300D5    5c 18 efffffff44 50           	mull3	$24,_index,r0
 120  000300DD    0d e000000000 efffffff38      	movl	_divd_1_data(r0),_sgl_value_1
 121  000300E8                                   # 	   sgl_value_2  = divd_1_data[index].op_1.l;      /* get op_1's LSW  */
 122  000300E8    5c 18 efffffff31 50           	mull3	$24,_index,r0
 123  000300F0    0d e000000004 efffffff25      	movl	_divd_1_data+4(r0),_sgl_value_2
 124  000300FB                                   # 	   sgl_value_3  = divd_1_data[index].op_2.m;      /* get op_2's MSW  */
 125  000300FB    5c 18 efffffff1e 50           	mull3	$24,_index,r0
 126  00030103    0d e000000008 efffffff12      	movl	_divd_1_data+8(r0),_sgl_value_3
 127  0003010E                                   # 	   sgl_value_4  = divd_1_data[index].op_2.l;      /* get op_2's LSW  */
 128  0003010E    5c 18 efffffff0b 50           	mull3	$24,_index,r0
 129  00030116    0d e00000000c effffffeff      	movl	_divd_1_data+12(r0),_sgl_value_4
 130  00030121                                   # 	   sgl_value_7  = 0x40800000;		    /* get dbl precision 1.0 */
 131  00030121    0d 8f40800000 effffffef4      	movl	$1082130432,_sgl_value_7
 132  0003012C                                   # 	   sgl_value_8  = 0;
 133  0003012C    4d effffffeee                 	clrl	_sgl_value_8
 134  00030132                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results */
 135  00030132    5c 18 effffffee7 50           	mull3	$24,_index,r0
 136  0003013A    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 137  00030141    0d a004 effffffedb            	movl	4(r0),_dbl_expected+4
 138  00030149    0d 60 effffffed0              	movl	(r0),_dbl_expected
 139  00030150                                   # /*
 140  00030150                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 141  00030150                                   #  * The force loop flag is set after the first error.
 142  00030150                                   # */
 143  00030150                                   # 	   asm("_pipe15_1_lp1:");
 144  00030150                                  _pipe15_1_lp1:
 145  00030150                                   # 	   asm("movl _sgl_value_1,r0");		/* move operand 1 to r0/r1  */
 146  00030150    0d effffffeca 50              movl _sgl_value_1,r0
 147  00030157                                   # 	   asm("movl _sgl_value_2,r1");		
 148  00030157    0d effffffec3 51              movl _sgl_value_2,r1
 149  0003015E                                   # 	   asm("movl _sgl_value_3,r2");		/* move operand 2 to r2/r3  */
 150  0003015E    0d effffffebc 52              movl _sgl_value_3,r2
 151  00030165                                   # 	   asm("movl _sgl_value_4,r3");		
 152  00030165    0d effffffeb5 53              movl _sgl_value_4,r3
 153  0003016C                                   # 	   asm("movl _sgl_value_7,r4");		/* move a '1.0' to r4/r5    */
 154  0003016C    0d effffffeae 54              movl _sgl_value_7,r4
 155  00030173                                   # 	   asm("movl _sgl_value_8,r5");		
 156  00030173    0d effffffea7 55              movl _sgl_value_8,r5
 157  0003017A                                   # 	   asm("movl _sgl_value_8,r8");		/* move a '0.0' to r8/r9    */
 158  0003017A    0d effffffea0 58              movl _sgl_value_8,r8
 159  00030181                                   # 	   asm("movl _sgl_value_8,r9");		
 160  00030181    0d effffffe99 59              movl _sgl_value_8,r9
 161  00030188                                   # 	   asm("ldd  r4");			/* load a '1.0'     (  1  ) */
 162  00030188    07 54                         ldd  r4
 163  0003018A                                   # 	   asm("muld r0");			/* mult by op. 1    ( op1 ) */
 164  0003018A    e7 50                         muld r0
 165  0003018C                                   # 	   asm("divd r2");			/* div by operand 2 ( exp ) */
 166  0003018C    f7 52                         divd r2
 167  0003018E                                   # 	   asm("divd r4");			/* divide by '1.0'  ( exp ) */
 168  0003018E    f7 54                         divd r4
 169  00030190                                   # 	   asm("addd r8");			/* add '0.0'        ( exp ) */
 170  00030190    c7 58                         addd r8
 171  00030192                                   # 	   asm("std  r6");			/* store the result ( exp ) */
 172  00030192    27 56                         std  r6
 173  00030194                                   # 	   if( force_loop )
 174  00030194    5d effffffe86                 	tstl	_force_loop
 175  0003019A    31 02                         	jeql	L238
 176  0003019C                                   # 	       asm("brb _pipe15_1_lp1");;	/* run the loop again      */
 177  0003019C    11 b2                         brb _pipe15_1_lp1
 178  0003019E                                  L238:
 179  0003019E                                   # /* 
 180  0003019E                                   #  * verify the results
 181  0003019E                                   # */
 182  0003019E                                   # 	   asm("movl r6,_sgl_value_5");		/* get the result          */
 183  0003019E    0d 56 effffffe7b              movl r6,_sgl_value_5
 184  000301A5                                   # 	   asm("movl r7,_sgl_value_6");
 185  000301A5    0d 57 effffffe74              movl r7,_sgl_value_6
 186  000301AC                                   # 	   dbl_st_acc.m = sgl_value_5;
 187  000301AC    0d effffffe6e effffffe69      	movl	_sgl_value_5,_dbl_st_acc
 188  000301B7                                   # 	   dbl_st_acc.l = sgl_value_6;
 189  000301B7    0d effffffe63 effffffe62      	movl	_sgl_value_6,_dbl_st_acc+4
 190  000301C2                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) ||/* compare the results   */
 191  000301C2                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
 192  000301C2    1d effffffe58 effffffe53      	cmpl	_dbl_st_acc,_dbl_expected
 193  000301CD    21 0d                         	jneq	L9999
 194  000301CF    1d effffffe4f effffffe4a      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 195  000301DA    31 42                         	jeql	L239
 196  000301DC                                  L9999:
 197  000301DC                                   # 	   {
 198  000301DC                                   # 	      errcnt++;				/* bump the error count    */
 199  000301DC    6d effffffe3e                 	incl	_errcnt
 200  000301E2                                   # 	      if ( prt_error ) 
 201  000301E2    5d effffffe38                 	tstl	_prt_error
 202  000301E8    31 0d                         	jeql	L240
 203  000301EA                                   # 		 print_pipe15_er("Reg. Data, no NO-OPs");
 204  000301EA                                  	.data	1
 205  0000101a *                                L242:
 206  0000101a *  5265672E20446174612C206E6     	.ascii	"Reg. Data, no NO-OPs\0"
                  F204E4F2D4F507300
 207  0000102f *                                	.text
 208  000301EA    dd 8f0000101a                 	pushl	$L242
 209  000301F0    fe 08 ef00000c17              	callf	$8,_print_pipe15_er
 210  000301F7                                   # 	      if ( halt_flg ) 			/* halt on error?           */
 211  000301F7                                  L240:
 212  000301F7    5d effffffe23                 	tstl	_halt_flg
 213  000301FD    31 0d                         	jeql	L243
 214  000301FF                                   # 		 pipe15_er_hlt( subtest );
 215  000301FF    dd effffffe1b                 	pushl	_subtest
 216  00030205    fe 08 ef00000d80              	callf	$8,_pipe15_er_hlt
 217  0003020C                                   # 	      if ( loop_on_err ) {
 218  0003020C                                  L243:
 219  0003020C    5d effffffe0e                 	tstl	_loop_on_err
 220  00030212    31 0a                         	jeql	L245
 221  00030214                                   # 		 force_loop = TRUE;		/* set the force loop flag */
 222  00030214    0d 01 effffffe05              	movl	$1,_force_loop
 223  0003021B                                   # 		 asm("brw _pipe15_1_lp1");	/* and loop                */
 224  0003021B    13 ff32                       brw _pipe15_1_lp1
 225  0003021E                                   # 	      }
 226  0003021E                                   # 	   }   /* end of compare error */
 227  0003021E                                  L245:
 228  0003021E                                   # 	} while( index++ < max_divd_1_index );
 229  0003021E                                  L239:
 230  0003021E                                  L236:
 231  0003021E    0d effffffdfc 50              	movl	_index,r0
 232  00030225    6d effffffdf5                 	incl	_index
 233  0003022B    1d 50 effffffdee              	cmpl	r0,_max_divd_1_index
 234  00030232    81 03 13 fe9e                 	jlss	L237
 235  00030237                                  L235:
 236  00030237                                   # }  /* end of subtest 1 */
 237  00030237    40                            	ret#2
 238  00030238                                  	.set	L231,0x0
 239  00030238                                  L233:
 240  00030238    13 fe8e                       	jbr 	L234
 241  0003023B                                  	.data
 242  00001010 *                                	.text
 243  0003023B    00                            	.align	1
 244  0003023C                                  	.globl	_pipe15_2
 245  0003023C                                  _pipe15_2:
 246  0003023C    0000                          	.word	L246
 247  0003023E                                   # 
 248  0003023E                                   # 
 249  0003023E                                   # 
 250  0003023E                                   # 
 251  0003023E                                   # 
 252  0003023E                                   # 
 253  0003023E                                   # /************************************************************************
 254  0003023E                                   # *
 255  0003023E                                   # *			SUBTEST 2  
 256  0003023E                                   # *		data in registers, 1 NO-OP
 257  0003023E                                   # *
 258  0003023E                                   # ************************************************************************/
 259  0003023E                                   # pipe15_2() 
 260  0003023E                                   # {
 261  0003023E    13 0174                       	jbr 	L248
 262  00030241                                  L249:
 263  00030241                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
 264  00030241    4d effffffdd9                 	clrl	_force_loop
 265  00030247                                   # 	index = 0;
 266  00030247    4d effffffdd3                 	clrl	_index
 267  0003024D                                   # 	do 
 268  0003024D                                  L252:
 269  0003024D                                   # 	{
 270  0003024D                                   # 	   sgl_value_1  = divd_1_data[index].op_1.m;      /* get op_1's MSW  */
 271  0003024D    5c 18 effffffdcc 50           	mull3	$24,_index,r0
 272  00030255    0d e000000000 effffffdc0      	movl	_divd_1_data(r0),_sgl_value_1
 273  00030260                                   # 	   sgl_value_2  = divd_1_data[index].op_1.l;      /* get op_1's LSW  */
 274  00030260    5c 18 effffffdb9 50           	mull3	$24,_index,r0
 275  00030268    0d e000000004 effffffdad      	movl	_divd_1_data+4(r0),_sgl_value_2
 276  00030273                                   # 	   sgl_value_3  = divd_1_data[index].op_2.m;      /* get op_2's MSW  */
 277  00030273    5c 18 effffffda6 50           	mull3	$24,_index,r0
 278  0003027B    0d e000000008 effffffd9a      	movl	_divd_1_data+8(r0),_sgl_value_3
 279  00030286                                   # 	   sgl_value_4  = divd_1_data[index].op_2.l;      /* get op_2's LSW  */
 280  00030286    5c 18 effffffd93 50           	mull3	$24,_index,r0
 281  0003028E    0d e00000000c effffffd87      	movl	_divd_1_data+12(r0),_sgl_value_4
 282  00030299                                   # 	   sgl_value_7  = 0x40800000;		    /* get dbl precision 1.0 */
 283  00030299    0d 8f40800000 effffffd7c      	movl	$1082130432,_sgl_value_7
 284  000302A4                                   # 	   sgl_value_8  = 0;
 285  000302A4    4d effffffd76                 	clrl	_sgl_value_8
 286  000302AA                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results */
 287  000302AA    5c 18 effffffd6f 50           	mull3	$24,_index,r0
 288  000302B2    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 289  000302B9    0d a004 effffffd63            	movl	4(r0),_dbl_expected+4
 290  000302C1    0d 60 effffffd58              	movl	(r0),_dbl_expected
 291  000302C8                                   # /*
 292  000302C8                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 293  000302C8                                   #  * The force loop flag is set after the first error.
 294  000302C8                                   # */
 295  000302C8                                   # 	   asm("_pipe15_2_lp1:");
 296  000302C8                                  _pipe15_2_lp1:
 297  000302C8                                   # 	   asm("movl _sgl_value_1,r0");		/* move operand 1 to r0/r1  */
 298  000302C8    0d effffffd52 50              movl _sgl_value_1,r0
 299  000302CF                                   # 	   asm("movl _sgl_value_2,r1");		
 300  000302CF    0d effffffd4b 51              movl _sgl_value_2,r1
 301  000302D6                                   # 	   asm("movl _sgl_value_3,r2");		/* move operand 2 to r2/r3  */
 302  000302D6    0d effffffd44 52              movl _sgl_value_3,r2
 303  000302DD                                   # 	   asm("movl _sgl_value_4,r3");		
 304  000302DD    0d effffffd3d 53              movl _sgl_value_4,r3
 305  000302E4                                   # 	   asm("movl _sgl_value_7,r4");		/* move a '1.0' to r4/r5    */
 306  000302E4    0d effffffd36 54              movl _sgl_value_7,r4
 307  000302EB                                   # 	   asm("movl _sgl_value_8,r5");		
 308  000302EB    0d effffffd2f 55              movl _sgl_value_8,r5
 309  000302F2                                   # 	   asm("movl _sgl_value_8,r8");		/* move a '0.0' to r8/r9    */
 310  000302F2    0d effffffd28 58              movl _sgl_value_8,r8
 311  000302F9                                   # 	   asm("movl _sgl_value_8,r9");		
 312  000302F9    0d effffffd21 59              movl _sgl_value_8,r9
 313  00030300                                   # 	   asm("ldd  r4");			/* load a '1.0'     (  1  ) */
 314  00030300    07 54                         ldd  r4
 315  00030302                                   # 	   asm("nop");
 316  00030302    10                            nop
 317  00030303                                   # 	   asm("muld r0");			/* mult by op. 1    ( op1 ) */
 318  00030303    e7 50                         muld r0
 319  00030305                                   # 	   asm("nop");
 320  00030305    10                            nop
 321  00030306                                   # 	   asm("divd r2");			/* div by operand 2 ( exp ) */
 322  00030306    f7 52                         divd r2
 323  00030308                                   # 	   asm("nop");
 324  00030308    10                            nop
 325  00030309                                   # 	   asm("divd r4");			/* divide by '1.0'  ( exp ) */
 326  00030309    f7 54                         divd r4
 327  0003030B                                   # 	   asm("nop");
 328  0003030B    10                            nop
 329  0003030C                                   # 	   asm("addd r8");			/* add '0.0'        ( exp ) */
 330  0003030C    c7 58                         addd r8
 331  0003030E                                   # 	   asm("nop");
 332  0003030E    10                            nop
 333  0003030F                                   # 	   asm("std  r6");			/* store the result ( exp ) */
 334  0003030F    27 56                         std  r6
 335  00030311                                   # 	   if( force_loop )
 336  00030311    5d effffffd09                 	tstl	_force_loop
 337  00030317    31 02                         	jeql	L253
 338  00030319                                   # 	       asm("brb _pipe15_2_lp1");;	/* run the loop again      */
 339  00030319    11 ad                         brb _pipe15_2_lp1
 340  0003031B                                  L253:
 341  0003031B                                   # /* 
 342  0003031B                                   #  * verify the results
 343  0003031B                                   # */
 344  0003031B                                   # 	   asm("movl r6,_sgl_value_5");		/* get the result          */
 345  0003031B    0d 56 effffffcfe              movl r6,_sgl_value_5
 346  00030322                                   # 	   asm("movl r7,_sgl_value_6");
 347  00030322    0d 57 effffffcf7              movl r7,_sgl_value_6
 348  00030329                                   # 	   dbl_st_acc.m = sgl_value_5;
 349  00030329    0d effffffcf1 effffffcec      	movl	_sgl_value_5,_dbl_st_acc
 350  00030334                                   # 	   dbl_st_acc.l = sgl_value_6;
 351  00030334    0d effffffce6 effffffce5      	movl	_sgl_value_6,_dbl_st_acc+4
 352  0003033F                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) ||/* compare the results   */
 353  0003033F                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
 354  0003033F    1d effffffcdb effffffcd6      	cmpl	_dbl_st_acc,_dbl_expected
 355  0003034A    21 0d                         	jneq	L9998
 356  0003034C    1d effffffcd2 effffffccd      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 357  00030357    31 42                         	jeql	L254
 358  00030359                                  L9998:
 359  00030359                                   # 	   {
 360  00030359                                   # 	      errcnt++;				/* bump the error count    */
 361  00030359    6d effffffcc1                 	incl	_errcnt
 362  0003035F                                   # 	      if ( prt_error ) 
 363  0003035F    5d effffffcbb                 	tstl	_prt_error
 364  00030365    31 0d                         	jeql	L255
 365  00030367                                   # 		 print_pipe15_er("Reg. Data, 1 NO-OP");
 366  00030367                                  	.data	1
 367  0000102f *                                L256:
 368  0000102f *  5265672E20446174612C20312     	.ascii	"Reg. Data, 1 NO-OP\0"
                  04E4F2D4F5000
 369  00001042 *                                	.text
 370  00030367    dd 8f0000102f                 	pushl	$L256
 371  0003036D    fe 08 ef00000a9a              	callf	$8,_print_pipe15_er
 372  00030374                                   # 	      if ( halt_flg ) 			/* halt on error?           */
 373  00030374                                  L255:
 374  00030374    5d effffffca6                 	tstl	_halt_flg
 375  0003037A    31 0d                         	jeql	L257
 376  0003037C                                   # 		 pipe15_er_hlt( subtest );
 377  0003037C    dd effffffc9e                 	pushl	_subtest
 378  00030382    fe 08 ef00000c03              	callf	$8,_pipe15_er_hlt
 379  00030389                                   # 	      if ( loop_on_err ) {
 380  00030389                                  L257:
 381  00030389    5d effffffc91                 	tstl	_loop_on_err
 382  0003038F    31 0a                         	jeql	L258
 383  00030391                                   # 		 force_loop = TRUE;		/* set the force loop flag */
 384  00030391    0d 01 effffffc88              	movl	$1,_force_loop
 385  00030398                                   # 		 asm("brw _pipe15_2_lp1");	/* and loop                */
 386  00030398    13 ff2d                       brw _pipe15_2_lp1
 387  0003039B                                   # 	      }
 388  0003039B                                   # 	   }   /* end of compare error */
 389  0003039B                                  L258:
 390  0003039B                                   # 	} while( index++ < max_divd_1_index );
 391  0003039B                                  L254:
 392  0003039B                                  L251:
 393  0003039B    0d effffffc7f 50              	movl	_index,r0
 394  000303A2    6d effffffc78                 	incl	_index
 395  000303A8    1d 50 effffffc71              	cmpl	r0,_max_divd_1_index
 396  000303AF    81 03 13 fe99                 	jlss	L252
 397  000303B4                                  L250:
 398  000303B4                                   # }  /* end of subtest 2 */
 399  000303B4    40                            	ret#2
 400  000303B5                                  	.set	L246,0x0
 401  000303B5                                  L248:
 402  000303B5    13 fe89                       	jbr 	L249
 403  000303B8                                  	.data
 404  00001010 *                                	.text
 405  000303B8                                  	.align	1
 406  000303B8                                  	.globl	_pipe15_3
 407  000303B8                                  _pipe15_3:
 408  000303B8    0000                          	.word	L259
 409  000303BA                                   # 
 410  000303BA                                   # 
 411  000303BA                                   # 
 412  000303BA                                   # 
 413  000303BA                                   # 
 414  000303BA                                   # 
 415  000303BA                                   # 
 416  000303BA                                   # 
 417  000303BA                                   # /************************************************************************
 418  000303BA                                   # *
 419  000303BA                                   # *			SUBTEST 3  
 420  000303BA                                   # *		data in registers, 2 NO-OPs
 421  000303BA                                   # *
 422  000303BA                                   # ************************************************************************/
 423  000303BA                                   # pipe15_3() 
 424  000303BA                                   # {
 425  000303BA    13 0179                       	jbr 	L261
 426  000303BD                                  L262:
 427  000303BD                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
 428  000303BD    4d effffffc5d                 	clrl	_force_loop
 429  000303C3                                   # 	index = 0;
 430  000303C3    4d effffffc57                 	clrl	_index
 431  000303C9                                   # 	do 
 432  000303C9                                  L265:
 433  000303C9                                   # 	{
 434  000303C9                                   # 	   sgl_value_1  = divd_1_data[index].op_1.m;      /* get op_1's MSW  */
 435  000303C9    5c 18 effffffc50 50           	mull3	$24,_index,r0
 436  000303D1    0d e000000000 effffffc44      	movl	_divd_1_data(r0),_sgl_value_1
 437  000303DC                                   # 	   sgl_value_2  = divd_1_data[index].op_1.l;      /* get op_1's LSW  */
 438  000303DC    5c 18 effffffc3d 50           	mull3	$24,_index,r0
 439  000303E4    0d e000000004 effffffc31      	movl	_divd_1_data+4(r0),_sgl_value_2
 440  000303EF                                   # 	   sgl_value_3  = divd_1_data[index].op_2.m;      /* get op_2's MSW  */
 441  000303EF    5c 18 effffffc2a 50           	mull3	$24,_index,r0
 442  000303F7    0d e000000008 effffffc1e      	movl	_divd_1_data+8(r0),_sgl_value_3
 443  00030402                                   # 	   sgl_value_4  = divd_1_data[index].op_2.l;      /* get op_2's LSW  */
 444  00030402    5c 18 effffffc17 50           	mull3	$24,_index,r0
 445  0003040A    0d e00000000c effffffc0b      	movl	_divd_1_data+12(r0),_sgl_value_4
 446  00030415                                   # 	   sgl_value_7  = 0x40800000;		    /* get dbl precision 1.0 */
 447  00030415    0d 8f40800000 effffffc00      	movl	$1082130432,_sgl_value_7
 448  00030420                                   # 	   sgl_value_8  = 0;
 449  00030420    4d effffffbfa                 	clrl	_sgl_value_8
 450  00030426                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results */
 451  00030426    5c 18 effffffbf3 50           	mull3	$24,_index,r0
 452  0003042E    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 453  00030435    0d a004 effffffbe7            	movl	4(r0),_dbl_expected+4
 454  0003043D    0d 60 effffffbdc              	movl	(r0),_dbl_expected
 455  00030444                                   # /*
 456  00030444                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 457  00030444                                   #  * The force loop flag is set after the first error.
 458  00030444                                   # */
 459  00030444                                   # 	   asm("_pipe15_3_lp1:");
 460  00030444                                  _pipe15_3_lp1:
 461  00030444                                   # 	   asm("movl _sgl_value_1,r0");		/* move operand 1 to r0/r1  */
 462  00030444    0d effffffbd6 50              movl _sgl_value_1,r0
 463  0003044B                                   # 	   asm("movl _sgl_value_2,r1");		
 464  0003044B    0d effffffbcf 51              movl _sgl_value_2,r1
 465  00030452                                   # 	   asm("movl _sgl_value_3,r2");		/* move operand 2 to r2/r3  */
 466  00030452    0d effffffbc8 52              movl _sgl_value_3,r2
 467  00030459                                   # 	   asm("movl _sgl_value_4,r3");		
 468  00030459    0d effffffbc1 53              movl _sgl_value_4,r3
 469  00030460                                   # 	   asm("movl _sgl_value_7,r4");		/* move a '1.0' to r4/r5    */
 470  00030460    0d effffffbba 54              movl _sgl_value_7,r4
 471  00030467                                   # 	   asm("movl _sgl_value_8,r5");		
 472  00030467    0d effffffbb3 55              movl _sgl_value_8,r5
 473  0003046E                                   # 	   asm("movl _sgl_value_8,r8");		/* move a '0.0' to r8/r9    */
 474  0003046E    0d effffffbac 58              movl _sgl_value_8,r8
 475  00030475                                   # 	   asm("movl _sgl_value_8,r9");		
 476  00030475    0d effffffba5 59              movl _sgl_value_8,r9
 477  0003047C                                   # 	   asm("ldd  r4");			/* load a '1.0'     (  1  ) */
 478  0003047C    07 54                         ldd  r4
 479  0003047E                                   # 	   asm("nop");
 480  0003047E    10                            nop
 481  0003047F                                   # 	   asm("nop");
 482  0003047F    10                            nop
 483  00030480                                   # 	   asm("muld r0");			/* mult by op. 1    ( op1 ) */
 484  00030480    e7 50                         muld r0
 485  00030482                                   # 	   asm("nop");
 486  00030482    10                            nop
 487  00030483                                   # 	   asm("nop");
 488  00030483    10                            nop
 489  00030484                                   # 	   asm("divd r2");			/* div by operand 2 ( exp ) */
 490  00030484    f7 52                         divd r2
 491  00030486                                   # 	   asm("nop");
 492  00030486    10                            nop
 493  00030487                                   # 	   asm("nop");
 494  00030487    10                            nop
 495  00030488                                   # 	   asm("divd r4");			/* divide by '1.0'  ( exp ) */
 496  00030488    f7 54                         divd r4
 497  0003048A                                   # 	   asm("nop");
 498  0003048A    10                            nop
 499  0003048B                                   # 	   asm("nop");
 500  0003048B    10                            nop
 501  0003048C                                   # 	   asm("addd r8");			/* add '0.0'        ( exp ) */
 502  0003048C    c7 58                         addd r8
 503  0003048E                                   # 	   asm("nop");
 504  0003048E    10                            nop
 505  0003048F                                   # 	   asm("nop");
 506  0003048F    10                            nop
 507  00030490                                   # 	   asm("std  r6");			/* store the result ( exp ) */
 508  00030490    27 56                         std  r6
 509  00030492                                   # 	   if( force_loop )
 510  00030492    5d effffffb88                 	tstl	_force_loop
 511  00030498    31 02                         	jeql	L266
 512  0003049A                                   # 	       asm("brb _pipe15_3_lp1");;	/* run the loop again      */
 513  0003049A    11 a8                         brb _pipe15_3_lp1
 514  0003049C                                  L266:
 515  0003049C                                   # /* 
 516  0003049C                                   #  * verify the results
 517  0003049C                                   # */
 518  0003049C                                   # 	   asm("movl r6,_sgl_value_5");		/* get the result          */
 519  0003049C    0d 56 effffffb7d              movl r6,_sgl_value_5
 520  000304A3                                   # 	   asm("movl r7,_sgl_value_6");
 521  000304A3    0d 57 effffffb76              movl r7,_sgl_value_6
 522  000304AA                                   # 	   dbl_st_acc.m = sgl_value_5;
 523  000304AA    0d effffffb70 effffffb6b      	movl	_sgl_value_5,_dbl_st_acc
 524  000304B5                                   # 	   dbl_st_acc.l = sgl_value_6;
 525  000304B5    0d effffffb65 effffffb64      	movl	_sgl_value_6,_dbl_st_acc+4
 526  000304C0                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) ||/* compare the results   */
 527  000304C0                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
 528  000304C0    1d effffffb5a effffffb55      	cmpl	_dbl_st_acc,_dbl_expected
 529  000304CB    21 0d                         	jneq	L9997
 530  000304CD    1d effffffb51 effffffb4c      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 531  000304D8    31 42                         	jeql	L267
 532  000304DA                                  L9997:
 533  000304DA                                   # 	   {
 534  000304DA                                   # 	      errcnt++;				/* bump the error count    */
 535  000304DA    6d effffffb40                 	incl	_errcnt
 536  000304E0                                   # 	      if ( prt_error ) 
 537  000304E0    5d effffffb3a                 	tstl	_prt_error
 538  000304E6    31 0d                         	jeql	L268
 539  000304E8                                   # 		 print_pipe15_er("Reg. Data, 2 NO-OPs");
 540  000304E8                                  	.data	1
 541  00001042 *                                L269:
 542  00001042 *  5265672E20446174612C20322     	.ascii	"Reg. Data, 2 NO-OPs\0"
                  04E4F2D4F507300
 543  00001056 *                                	.text
 544  000304E8    dd 8f00001042                 	pushl	$L269
 545  000304EE    fe 08 ef00000919              	callf	$8,_print_pipe15_er
 546  000304F5                                   # 	      if ( halt_flg ) 			/* halt on error?           */
 547  000304F5                                  L268:
 548  000304F5    5d effffffb25                 	tstl	_halt_flg
 549  000304FB    31 0d                         	jeql	L270
 550  000304FD                                   # 		 pipe15_er_hlt( subtest );
 551  000304FD    dd effffffb1d                 	pushl	_subtest
 552  00030503    fe 08 ef00000a82              	callf	$8,_pipe15_er_hlt
 553  0003050A                                   # 	      if ( loop_on_err ) {
 554  0003050A                                  L270:
 555  0003050A    5d effffffb10                 	tstl	_loop_on_err
 556  00030510    31 0a                         	jeql	L271
 557  00030512                                   # 		 force_loop = TRUE;		/* set the force loop flag */
 558  00030512    0d 01 effffffb07              	movl	$1,_force_loop
 559  00030519                                   # 		 asm("brw _pipe15_3_lp1");	/* and loop                */
 560  00030519    13 ff28                       brw _pipe15_3_lp1
 561  0003051C                                   # 	      }
 562  0003051C                                   # 	   }   /* end of compare error */
 563  0003051C                                  L271:
 564  0003051C                                   # 	} while( index++ < max_divd_1_index );
 565  0003051C                                  L267:
 566  0003051C                                  L264:
 567  0003051C    0d effffffafe 50              	movl	_index,r0
 568  00030523    6d effffffaf7                 	incl	_index
 569  00030529    1d 50 effffffaf0              	cmpl	r0,_max_divd_1_index
 570  00030530    81 03 13 fe94                 	jlss	L265
 571  00030535                                  L263:
 572  00030535                                   # }  /* end of subtest 3 */
 573  00030535    40                            	ret#2
 574  00030536                                  	.set	L259,0x0
 575  00030536                                  L261:
 576  00030536    13 fe84                       	jbr 	L262
 577  00030539                                  	.data
 578  00001010 *                                	.text
 579  00030539    00                            	.align	1
 580  0003053A                                  	.globl	_pipe15_4
 581  0003053A                                  _pipe15_4:
 582  0003053A    0000                          	.word	L272
 583  0003053C                                   # 
 584  0003053C                                   # 
 585  0003053C                                   # 
 586  0003053C                                   # 
 587  0003053C                                   # 
 588  0003053C                                   # 
 589  0003053C                                   # 
 590  0003053C                                   # /************************************************************************
 591  0003053C                                   # *
 592  0003053C                                   # *			SUBTEST 4  
 593  0003053C                                   # *		data in registers, 3 NO-OPs
 594  0003053C                                   # *
 595  0003053C                                   # ************************************************************************/
 596  0003053C                                   # pipe15_4() 
 597  0003053C                                   # {
 598  0003053C    13 017e                       	jbr 	L274
 599  0003053F                                  L275:
 600  0003053F                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
 601  0003053F    4d effffffadb                 	clrl	_force_loop
 602  00030545                                   # 	index = 0;
 603  00030545    4d effffffad5                 	clrl	_index
 604  0003054B                                   # 	do 
 605  0003054B                                  L278:
 606  0003054B                                   # 	{
 607  0003054B                                   # 	   sgl_value_1  = divd_1_data[index].op_1.m;      /* get op_1's MSW  */
 608  0003054B    5c 18 efffffface 50           	mull3	$24,_index,r0
 609  00030553    0d e000000000 effffffac2      	movl	_divd_1_data(r0),_sgl_value_1
 610  0003055E                                   # 	   sgl_value_2  = divd_1_data[index].op_1.l;      /* get op_1's LSW  */
 611  0003055E    5c 18 effffffabb 50           	mull3	$24,_index,r0
 612  00030566    0d e000000004 effffffaaf      	movl	_divd_1_data+4(r0),_sgl_value_2
 613  00030571                                   # 	   sgl_value_3  = divd_1_data[index].op_2.m;      /* get op_2's MSW  */
 614  00030571    5c 18 effffffaa8 50           	mull3	$24,_index,r0
 615  00030579    0d e000000008 effffffa9c      	movl	_divd_1_data+8(r0),_sgl_value_3
 616  00030584                                   # 	   sgl_value_4  = divd_1_data[index].op_2.l;      /* get op_2's LSW  */
 617  00030584    5c 18 effffffa95 50           	mull3	$24,_index,r0
 618  0003058C    0d e00000000c effffffa89      	movl	_divd_1_data+12(r0),_sgl_value_4
 619  00030597                                   # 	   sgl_value_7  = 0x40800000;		    /* get dbl precision 1.0 */
 620  00030597    0d 8f40800000 effffffa7e      	movl	$1082130432,_sgl_value_7
 621  000305A2                                   # 	   sgl_value_8  = 0;
 622  000305A2    4d effffffa78                 	clrl	_sgl_value_8
 623  000305A8                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results */
 624  000305A8    5c 18 effffffa71 50           	mull3	$24,_index,r0
 625  000305B0    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 626  000305B7    0d a004 effffffa65            	movl	4(r0),_dbl_expected+4
 627  000305BF    0d 60 effffffa5a              	movl	(r0),_dbl_expected
 628  000305C6                                   # /*
 629  000305C6                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 630  000305C6                                   #  * The force loop flag is set after the first error.
 631  000305C6                                   # */
 632  000305C6                                   # 	   asm("_pipe15_4_lp1:");
 633  000305C6                                  _pipe15_4_lp1:
 634  000305C6                                   # 	   asm("movl _sgl_value_1,r0");		/* move operand 1 to r0/r1  */
 635  000305C6    0d effffffa54 50              movl _sgl_value_1,r0
 636  000305CD                                   # 	   asm("movl _sgl_value_2,r1");		
 637  000305CD    0d effffffa4d 51              movl _sgl_value_2,r1
 638  000305D4                                   # 	   asm("movl _sgl_value_3,r2");		/* move operand 2 to r2/r3  */
 639  000305D4    0d effffffa46 52              movl _sgl_value_3,r2
 640  000305DB                                   # 	   asm("movl _sgl_value_4,r3");		
 641  000305DB    0d effffffa3f 53              movl _sgl_value_4,r3
 642  000305E2                                   # 	   asm("movl _sgl_value_7,r4");		/* move a '1.0' to r4/r5    */
 643  000305E2    0d effffffa38 54              movl _sgl_value_7,r4
 644  000305E9                                   # 	   asm("movl _sgl_value_8,r5");		
 645  000305E9    0d effffffa31 55              movl _sgl_value_8,r5
 646  000305F0                                   # 	   asm("movl _sgl_value_8,r8");		/* move a '0.0' to r8/r9    */
 647  000305F0    0d effffffa2a 58              movl _sgl_value_8,r8
 648  000305F7                                   # 	   asm("movl _sgl_value_8,r9");		
 649  000305F7    0d effffffa23 59              movl _sgl_value_8,r9
 650  000305FE                                   # 	   asm("ldd  r4");			/* load a '1.0'     (  1  ) */
 651  000305FE    07 54                         ldd  r4
 652  00030600                                   # 	   asm("nop");
 653  00030600    10                            nop
 654  00030601                                   # 	   asm("nop");
 655  00030601    10                            nop
 656  00030602                                   # 	   asm("nop");
 657  00030602    10                            nop
 658  00030603                                   # 	   asm("muld r0");			/* mult by op. 1    ( op1 ) */
 659  00030603    e7 50                         muld r0
 660  00030605                                   # 	   asm("nop");
 661  00030605    10                            nop
 662  00030606                                   # 	   asm("nop");
 663  00030606    10                            nop
 664  00030607                                   # 	   asm("nop");
 665  00030607    10                            nop
 666  00030608                                   # 	   asm("divd r2");			/* div by operand 2 ( exp ) */
 667  00030608    f7 52                         divd r2
 668  0003060A                                   # 	   asm("nop");
 669  0003060A    10                            nop
 670  0003060B                                   # 	   asm("nop");
 671  0003060B    10                            nop
 672  0003060C                                   # 	   asm("nop");
 673  0003060C    10                            nop
 674  0003060D                                   # 	   asm("divd r4");			/* divide by '1.0'  ( exp ) */
 675  0003060D    f7 54                         divd r4
 676  0003060F                                   # 	   asm("nop");
 677  0003060F    10                            nop
 678  00030610                                   # 	   asm("nop");
 679  00030610    10                            nop
 680  00030611                                   # 	   asm("nop");
 681  00030611    10                            nop
 682  00030612                                   # 	   asm("addd r8");			/* add '0.0'        ( exp ) */
 683  00030612    c7 58                         addd r8
 684  00030614                                   # 	   asm("nop");
 685  00030614    10                            nop
 686  00030615                                   # 	   asm("nop");
 687  00030615    10                            nop
 688  00030616                                   # 	   asm("nop");
 689  00030616    10                            nop
 690  00030617                                   # 	   asm("std  r6");			/* store the result ( exp ) */
 691  00030617    27 56                         std  r6
 692  00030619                                   # 	   if( force_loop )
 693  00030619    5d effffffa01                 	tstl	_force_loop
 694  0003061F    31 02                         	jeql	L279
 695  00030621                                   # 	       asm("brb _pipe15_4_lp1");;	/* run the loop again      */
 696  00030621    11 a3                         brb _pipe15_4_lp1
 697  00030623                                  L279:
 698  00030623                                   # /* 
 699  00030623                                   #  * verify the results
 700  00030623                                   # */
 701  00030623                                   # 	   asm("movl r6,_sgl_value_5");		/* get the result          */
 702  00030623    0d 56 effffff9f6              movl r6,_sgl_value_5
 703  0003062A                                   # 	   asm("movl r7,_sgl_value_6");
 704  0003062A    0d 57 effffff9ef              movl r7,_sgl_value_6
 705  00030631                                   # 	   dbl_st_acc.m = sgl_value_5;
 706  00030631    0d effffff9e9 effffff9e4      	movl	_sgl_value_5,_dbl_st_acc
 707  0003063C                                   # 	   dbl_st_acc.l = sgl_value_6;
 708  0003063C    0d effffff9de effffff9dd      	movl	_sgl_value_6,_dbl_st_acc+4
 709  00030647                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) ||/* compare the results   */
 710  00030647                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
 711  00030647    1d effffff9d3 effffff9ce      	cmpl	_dbl_st_acc,_dbl_expected
 712  00030652    21 0d                         	jneq	L9996
 713  00030654    1d effffff9ca effffff9c5      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 714  0003065F    31 42                         	jeql	L280
 715  00030661                                  L9996:
 716  00030661                                   # 	   {
 717  00030661                                   # 	      errcnt++;				/* bump the error count    */
 718  00030661    6d effffff9b9                 	incl	_errcnt
 719  00030667                                   # 	      if ( prt_error ) 
 720  00030667    5d effffff9b3                 	tstl	_prt_error
 721  0003066D    31 0d                         	jeql	L281
 722  0003066F                                   # 		 print_pipe15_er("Reg. Data, 3 NO-OPs");
 723  0003066F                                  	.data	1
 724  00001056 *                                L282:
 725  00001056 *  5265672E20446174612C20332     	.ascii	"Reg. Data, 3 NO-OPs\0"
                  04E4F2D4F507300
 726  0000106a *                                	.text
 727  0003066F    dd 8f00001056                 	pushl	$L282
 728  00030675    fe 08 ef00000792              	callf	$8,_print_pipe15_er
 729  0003067C                                   # 	      if ( halt_flg ) 			/* halt on error?           */
 730  0003067C                                  L281:
 731  0003067C    5d effffff99e                 	tstl	_halt_flg
 732  00030682    31 0d                         	jeql	L283
 733  00030684                                   # 		 pipe15_er_hlt( subtest );
 734  00030684    dd effffff996                 	pushl	_subtest
 735  0003068A    fe 08 ef000008fb              	callf	$8,_pipe15_er_hlt
 736  00030691                                   # 	      if ( loop_on_err ) {
 737  00030691                                  L283:
 738  00030691    5d effffff989                 	tstl	_loop_on_err
 739  00030697    31 0a                         	jeql	L284
 740  00030699                                   # 		 force_loop = TRUE;		/* set the force loop flag */
 741  00030699    0d 01 effffff980              	movl	$1,_force_loop
 742  000306A0                                   # 		 asm("brw _pipe15_4_lp1");	/* and loop                */
 743  000306A0    13 ff23                       brw _pipe15_4_lp1
 744  000306A3                                   # 	      }
 745  000306A3                                   # 	   }   /* end of compare error */
 746  000306A3                                  L284:
 747  000306A3                                   # 	} while( index++ < max_divd_1_index );
 748  000306A3                                  L280:
 749  000306A3                                  L277:
 750  000306A3    0d effffff977 50              	movl	_index,r0
 751  000306AA    6d effffff970                 	incl	_index
 752  000306B0    1d 50 effffff969              	cmpl	r0,_max_divd_1_index
 753  000306B7    81 03 13 fe8f                 	jlss	L278
 754  000306BC                                  L276:
 755  000306BC                                   # }  /* end of subtest 4 */
 756  000306BC    40                            	ret#2
 757  000306BD                                  	.set	L272,0x0
 758  000306BD                                  L274:
 759  000306BD    13 fe7f                       	jbr 	L275
 760  000306C0                                  	.data
 761  00001010 *                                	.text
 762  000306C0                                  	.align	1
 763  000306C0                                  	.globl	_pipe15_5
 764  000306C0                                  _pipe15_5:
 765  000306C0    0000                          	.word	L285
 766  000306C2                                   # 
 767  000306C2                                   # 
 768  000306C2                                   # 
 769  000306C2                                   # 
 770  000306C2                                   # 
 771  000306C2                                   # 
 772  000306C2                                   # 
 773  000306C2                                   # 
 774  000306C2                                   # /************************************************************************
 775  000306C2                                   # *
 776  000306C2                                   # *			SUBTEST 5  
 777  000306C2                                   # *		data in cache, no NO-OPs
 778  000306C2                                   # *
 779  000306C2                                   # ************************************************************************/
 780  000306C2                                   # pipe15_5() 
 781  000306C2                                   # {
 782  000306C2    13 0127                       	jbr 	L287
 783  000306C5                                  L288:
 784  000306C5                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
 785  000306C5    4d effffff955                 	clrl	_force_loop
 786  000306CB                                   # 	index = 0;
 787  000306CB    4d effffff94f                 	clrl	_index
 788  000306D1                                   # 	do 
 789  000306D1                                  L291:
 790  000306D1                                   # 	{
 791  000306D1                                   # 	   dbl_value_1  = divd_1_data[index].op_1;  /* get dbl operand # 1   */
 792  000306D1    5c 18 effffff948 50           	mull3	$24,_index,r0
 793  000306D9    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 794  000306E0    0d a004 effffff93c            	movl	4(r0),_dbl_value_1+4
 795  000306E8    0d 60 effffff931              	movl	(r0),_dbl_value_1
 796  000306EF                                   # 	   dbl_value_2  = divd_1_data[index].op_2;  /* get dbl operand # 2   */
 797  000306EF    5c 18 effffff92a 50           	mull3	$24,_index,r0
 798  000306F7    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 799  000306FE    0d a004 effffff91e            	movl	4(r0),_dbl_value_2+4
 800  00030706    0d 60 effffff913              	movl	(r0),_dbl_value_2
 801  0003070D                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results  */
 802  0003070D    5c 18 effffff90c 50           	mull3	$24,_index,r0
 803  00030715    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 804  0003071C    0d a004 effffff900            	movl	4(r0),_dbl_expected+4
 805  00030724    0d 60 effffff8f5              	movl	(r0),_dbl_expected
 806  0003072B                                   # 	   dbl_dummy1.m = 0x40800000;		    /* get dbl precision 1.0 */
 807  0003072B    0d 8f40800000 effffff8ea      	movl	$1082130432,_dbl_dummy1
 808  00030736                                   # 	   dbl_dummy1.l = 0;
 809  00030736    4d effffff8e8                 	clrl	_dbl_dummy1+4
 810  0003073C                                   # 	   dbl_dummy2.m = 0;			    /* get dbl precision 0.0 */
 811  0003073C    4d effffff8de                 	clrl	_dbl_dummy2
 812  00030742                                   # 	   dbl_dummy2.l = 0;
 813  00030742    4d effffff8dc                 	clrl	_dbl_dummy2+4
 814  00030748                                   # /*
 815  00030748                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 816  00030748                                   #  * The force loop flag is set after the first error.
 817  00030748                                   # */
 818  00030748                                   # 	   asm("_pipe15_5_lp1:");
 819  00030748                                  _pipe15_5_lp1:
 820  00030748                                   # 	   asm("ldd  _dbl_dummy1");		/* load a '1.0'     (  1  ) */
 821  00030748    07 effffff8d2                 ldd  _dbl_dummy1
 822  0003074E                                   # 	   asm("muld _dbl_value_1");		/* mult by op. 1    ( op1 ) */
 823  0003074E    e7 effffff8cc                 muld _dbl_value_1
 824  00030754                                   # 	   asm("divd _dbl_value_2");		/* div by operand 2 ( exp ) */
 825  00030754    f7 effffff8c6                 divd _dbl_value_2
 826  0003075A                                   # 	   asm("divd _dbl_dummy1");		/* divide by '1.0'  ( exp ) */
 827  0003075A    f7 effffff8c0                 divd _dbl_dummy1
 828  00030760                                   # 	   asm("addd _dbl_dummy2");		/* add a '0.0'      ( exp ) */
 829  00030760    c7 effffff8ba                 addd _dbl_dummy2
 830  00030766                                   # 	   asm("std  _dbl_st_acc");		/* store the result ( exp ) */
 831  00030766    27 effffff8b4                 std  _dbl_st_acc
 832  0003076C                                   # 	   if( force_loop )
 833  0003076C    5d effffff8ae                 	tstl	_force_loop
 834  00030772    31 02                         	jeql	L292
 835  00030774                                   # 	       asm("brb _pipe15_5_lp1");;	/* run the loop again      */
 836  00030774    11 d2                         brb _pipe15_5_lp1
 837  00030776                                  L292:
 838  00030776                                   # /* 
 839  00030776                                   #  * verify the results
 840  00030776                                   # */
 841  00030776                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results  */
 842  00030776                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
 843  00030776    1d effffff8a4 effffff89f      	cmpl	_dbl_st_acc,_dbl_expected
 844  00030781    21 0d                         	jneq	L9995
 845  00030783    1d effffff89b effffff896      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 846  0003078E    31 42                         	jeql	L293
 847  00030790                                  L9995:
 848  00030790                                   # 	   {
 849  00030790                                   # 	      errcnt++;				/* bump the error count    */
 850  00030790    6d effffff88a                 	incl	_errcnt
 851  00030796                                   # 	      if ( prt_error ) 
 852  00030796    5d effffff884                 	tstl	_prt_error
 853  0003079C    31 0d                         	jeql	L294
 854  0003079E                                   # 		 print_pipe15_er("Cache Data, no NO-OPs");
 855  0003079E                                  	.data	1
 856  0000106a *                                L295:
 857  0000106a *  436163686520446174612C206     	.ascii	"Cache Data, no NO-OPs\0"
                  E6F204E4F2D4F507300
 858  00001080 *                                	.text
 859  0003079E    dd 8f0000106a                 	pushl	$L295
 860  000307A4    fe 08 ef00000663              	callf	$8,_print_pipe15_er
 861  000307AB                                   # 	      if ( halt_flg ) 			/* halt on error?           */
 862  000307AB                                  L294:
 863  000307AB    5d effffff86f                 	tstl	_halt_flg
 864  000307B1    31 0d                         	jeql	L296
 865  000307B3                                   # 		 pipe15_er_hlt( subtest );
 866  000307B3    dd effffff867                 	pushl	_subtest
 867  000307B9    fe 08 ef000007cc              	callf	$8,_pipe15_er_hlt
 868  000307C0                                   # 	      if ( loop_on_err ) {
 869  000307C0                                  L296:
 870  000307C0    5d effffff85a                 	tstl	_loop_on_err
 871  000307C6    31 0a                         	jeql	L297
 872  000307C8                                   # 		 force_loop = TRUE;		/* set the force loop flag */
 873  000307C8    0d 01 effffff851              	movl	$1,_force_loop
 874  000307CF                                   # 		 asm("brw _pipe15_5_lp1");	/* and loop                */
 875  000307CF    13 ff76                       brw _pipe15_5_lp1
 876  000307D2                                   # 	      }
 877  000307D2                                   # 	   }   /* end of compare error */
 878  000307D2                                  L297:
 879  000307D2                                   # 	} while( index++ < max_divd_1_index );
 880  000307D2                                  L293:
 881  000307D2                                  L290:
 882  000307D2    0d effffff848 50              	movl	_index,r0
 883  000307D9    6d effffff841                 	incl	_index
 884  000307DF    1d 50 effffff83a              	cmpl	r0,_max_divd_1_index
 885  000307E6    81 03 13 fee6                 	jlss	L291
 886  000307EB                                  L289:
 887  000307EB                                   # }  /* end of subtest 5 */
 888  000307EB    40                            	ret#2
 889  000307EC                                  	.set	L285,0x0
 890  000307EC                                  L287:
 891  000307EC    13 fed6                       	jbr 	L288
 892  000307EF                                  	.data
 893  00001010 *                                	.text
 894  000307EF    00                            	.align	1
 895  000307F0                                  	.globl	_pipe15_6
 896  000307F0                                  _pipe15_6:
 897  000307F0    0000                          	.word	L298
 898  000307F2                                   # 
 899  000307F2                                   # 
 900  000307F2                                   # 
 901  000307F2                                   # 
 902  000307F2                                   # 
 903  000307F2                                   # 
 904  000307F2                                   # 
 905  000307F2                                   # /************************************************************************
 906  000307F2                                   # *
 907  000307F2                                   # *			SUBTEST 6  
 908  000307F2                                   # *		data in cache, 1 NO-OP
 909  000307F2                                   # *
 910  000307F2                                   # ************************************************************************/
 911  000307F2                                   # pipe15_6() 
 912  000307F2                                   # {
 913  000307F2    13 012c                       	jbr 	L300
 914  000307F5                                  L301:
 915  000307F5                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
 916  000307F5    4d effffff825                 	clrl	_force_loop
 917  000307FB                                   # 	index = 0;
 918  000307FB    4d effffff81f                 	clrl	_index
 919  00030801                                   # 	do 
 920  00030801                                  L304:
 921  00030801                                   # 	{
 922  00030801                                   # 	   dbl_value_1  = divd_1_data[index].op_1;  /* get dbl operand # 1   */
 923  00030801    5c 18 effffff818 50           	mull3	$24,_index,r0
 924  00030809    0c 8f00000000 50              	addl2	$_divd_1_data,r0
 925  00030810    0d a004 effffff80c            	movl	4(r0),_dbl_value_1+4
 926  00030818    0d 60 effffff801              	movl	(r0),_dbl_value_1
 927  0003081F                                   # 	   dbl_value_2  = divd_1_data[index].op_2;  /* get dbl operand # 2   */
 928  0003081F    5c 18 effffff7fa 50           	mull3	$24,_index,r0
 929  00030827    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
 930  0003082E    0d a004 effffff7ee            	movl	4(r0),_dbl_value_2+4
 931  00030836    0d 60 effffff7e3              	movl	(r0),_dbl_value_2
 932  0003083D                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results  */
 933  0003083D    5c 18 effffff7dc 50           	mull3	$24,_index,r0
 934  00030845    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
 935  0003084C    0d a004 effffff7d0            	movl	4(r0),_dbl_expected+4
 936  00030854    0d 60 effffff7c5              	movl	(r0),_dbl_expected
 937  0003085B                                   # 	   dbl_dummy1.m = 0x40800000;		    /* get dbl precision 1.0 */
 938  0003085B    0d 8f40800000 effffff7ba      	movl	$1082130432,_dbl_dummy1
 939  00030866                                   # 	   dbl_dummy1.l = 0;
 940  00030866    4d effffff7b8                 	clrl	_dbl_dummy1+4
 941  0003086C                                   # 	   dbl_dummy2.m = 0;			    /* get dbl precision 0.0 */
 942  0003086C    4d effffff7ae                 	clrl	_dbl_dummy2
 943  00030872                                   # 	   dbl_dummy2.l = 0;
 944  00030872    4d effffff7ac                 	clrl	_dbl_dummy2+4
 945  00030878                                   # /*
 946  00030878                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 947  00030878                                   #  * The force loop flag is set after the first error.
 948  00030878                                   # */
 949  00030878                                   # 	   asm("_pipe15_6_lp1:");
 950  00030878                                  _pipe15_6_lp1:
 951  00030878                                   # 	   asm("ldd  _dbl_dummy1");		/* load a '1.0'     (  1  ) */
 952  00030878    07 effffff7a2                 ldd  _dbl_dummy1
 953  0003087E                                   # 	   asm("nop");
 954  0003087E    10                            nop
 955  0003087F                                   # 	   asm("muld _dbl_value_1");		/* mult by op. 1    ( op1 ) */
 956  0003087F    e7 effffff79b                 muld _dbl_value_1
 957  00030885                                   # 	   asm("nop");
 958  00030885    10                            nop
 959  00030886                                   # 	   asm("divd _dbl_value_2");		/* div by operand 2 ( exp ) */
 960  00030886    f7 effffff794                 divd _dbl_value_2
 961  0003088C                                   # 	   asm("nop");
 962  0003088C    10                            nop
 963  0003088D                                   # 	   asm("divd _dbl_dummy1");		/* divide by '1.0'  ( exp ) */
 964  0003088D    f7 effffff78d                 divd _dbl_dummy1
 965  00030893                                   # 	   asm("nop");
 966  00030893    10                            nop
 967  00030894                                   # 	   asm("addd _dbl_dummy2");		/* add a '0.0'      ( exp ) */
 968  00030894    c7 effffff786                 addd _dbl_dummy2
 969  0003089A                                   # 	   asm("nop");
 970  0003089A    10                            nop
 971  0003089B                                   # 	   asm("std  _dbl_st_acc");		/* store the result ( exp ) */
 972  0003089B    27 effffff77f                 std  _dbl_st_acc
 973  000308A1                                   # 	   if( force_loop )
 974  000308A1    5d effffff779                 	tstl	_force_loop
 975  000308A7    31 02                         	jeql	L305
 976  000308A9                                   # 	       asm("brb _pipe15_6_lp1");;	/* run the loop again      */
 977  000308A9    11 cd                         brb _pipe15_6_lp1
 978  000308AB                                  L305:
 979  000308AB                                   # /* 
 980  000308AB                                   #  * verify the results
 981  000308AB                                   # */
 982  000308AB                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results  */
 983  000308AB                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
 984  000308AB    1d effffff76f effffff76a      	cmpl	_dbl_st_acc,_dbl_expected
 985  000308B6    21 0d                         	jneq	L9994
 986  000308B8    1d effffff766 effffff761      	cmpl	_dbl_st_acc+4,_dbl_expected+4
 987  000308C3    31 42                         	jeql	L306
 988  000308C5                                  L9994:
 989  000308C5                                   # 	   {
 990  000308C5                                   # 	      errcnt++;				/* bump the error count    */
 991  000308C5    6d effffff755                 	incl	_errcnt
 992  000308CB                                   # 	      if ( prt_error ) 
 993  000308CB    5d effffff74f                 	tstl	_prt_error
 994  000308D1    31 0d                         	jeql	L307
 995  000308D3                                   # 		 print_pipe15_er("Cache Data, 1 NO-OP");
 996  000308D3                                  	.data	1
 997  00001080 *                                L308:
 998  00001080 *  436163686520446174612C203     	.ascii	"Cache Data, 1 NO-OP\0"
                  1204E4F2D4F5000
 999  00001094 *                                	.text
1000  000308D3    dd 8f00001080                 	pushl	$L308
1001  000308D9    fe 08 ef0000052e              	callf	$8,_print_pipe15_er
1002  000308E0                                   # 	      if ( halt_flg ) 			/* halt on error?           */
1003  000308E0                                  L307:
1004  000308E0    5d effffff73a                 	tstl	_halt_flg
1005  000308E6    31 0d                         	jeql	L309
1006  000308E8                                   # 		 pipe15_er_hlt( subtest );
1007  000308E8    dd effffff732                 	pushl	_subtest
1008  000308EE    fe 08 ef00000697              	callf	$8,_pipe15_er_hlt
1009  000308F5                                   # 	      if ( loop_on_err ) {
1010  000308F5                                  L309:
1011  000308F5    5d effffff725                 	tstl	_loop_on_err
1012  000308FB    31 0a                         	jeql	L310
1013  000308FD                                   # 		 force_loop = TRUE;		/* set the force loop flag */
1014  000308FD    0d 01 effffff71c              	movl	$1,_force_loop
1015  00030904                                   # 		 asm("brw _pipe15_6_lp1");	/* and loop                */
1016  00030904    13 ff71                       brw _pipe15_6_lp1
1017  00030907                                   # 	      }
1018  00030907                                   # 	   }   /* end of compare error */
1019  00030907                                  L310:
1020  00030907                                   # 	} while( index++ < max_divd_1_index );
1021  00030907                                  L306:
1022  00030907                                  L303:
1023  00030907    0d effffff713 50              	movl	_index,r0
1024  0003090E    6d effffff70c                 	incl	_index
1025  00030914    1d 50 effffff705              	cmpl	r0,_max_divd_1_index
1026  0003091B    81 03 13 fee1                 	jlss	L304
1027  00030920                                  L302:
1028  00030920                                   # }  /* end of subtest 6 */
1029  00030920    40                            	ret#2
1030  00030921                                  	.set	L298,0x0
1031  00030921                                  L300:
1032  00030921    13 fed1                       	jbr 	L301
1033  00030924                                  	.data
1034  00001010 *                                	.text
1035  00030924                                  	.align	1
1036  00030924                                  	.globl	_pipe15_7
1037  00030924                                  _pipe15_7:
1038  00030924    0000                          	.word	L311
1039  00030926                                   # 
1040  00030926                                   # 
1041  00030926                                   # 
1042  00030926                                   # 
1043  00030926                                   # 
1044  00030926                                   # 
1045  00030926                                   # 
1046  00030926                                   # 
1047  00030926                                   # /************************************************************************
1048  00030926                                   # *
1049  00030926                                   # *			SUBTEST 7  
1050  00030926                                   # *		data in cache, 2 NO-OPs
1051  00030926                                   # *
1052  00030926                                   # ************************************************************************/
1053  00030926                                   # pipe15_7() 
1054  00030926                                   # {
1055  00030926    13 0131                       	jbr 	L313
1056  00030929                                  L314:
1057  00030929                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
1058  00030929    4d effffff6f1                 	clrl	_force_loop
1059  0003092F                                   # 	index = 0;
1060  0003092F    4d effffff6eb                 	clrl	_index
1061  00030935                                   # 	do 
1062  00030935                                  L317:
1063  00030935                                   # 	{
1064  00030935                                   # 	   dbl_value_1  = divd_1_data[index].op_1;  /* get dbl operand # 1   */
1065  00030935    5c 18 effffff6e4 50           	mull3	$24,_index,r0
1066  0003093D    0c 8f00000000 50              	addl2	$_divd_1_data,r0
1067  00030944    0d a004 effffff6d8            	movl	4(r0),_dbl_value_1+4
1068  0003094C    0d 60 effffff6cd              	movl	(r0),_dbl_value_1
1069  00030953                                   # 	   dbl_value_2  = divd_1_data[index].op_2;  /* get dbl operand # 2   */
1070  00030953    5c 18 effffff6c6 50           	mull3	$24,_index,r0
1071  0003095B    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
1072  00030962    0d a004 effffff6ba            	movl	4(r0),_dbl_value_2+4
1073  0003096A    0d 60 effffff6af              	movl	(r0),_dbl_value_2
1074  00030971                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results  */
1075  00030971    5c 18 effffff6a8 50           	mull3	$24,_index,r0
1076  00030979    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
1077  00030980    0d a004 effffff69c            	movl	4(r0),_dbl_expected+4
1078  00030988    0d 60 effffff691              	movl	(r0),_dbl_expected
1079  0003098F                                   # 	   dbl_dummy1.m = 0x40800000;		    /* get dbl precision 1.0 */
1080  0003098F    0d 8f40800000 effffff686      	movl	$1082130432,_dbl_dummy1
1081  0003099A                                   # 	   dbl_dummy1.l = 0;
1082  0003099A    4d effffff684                 	clrl	_dbl_dummy1+4
1083  000309A0                                   # 	   dbl_dummy2.m = 0;			    /* get dbl precision 0.0 */
1084  000309A0    4d effffff67a                 	clrl	_dbl_dummy2
1085  000309A6                                   # 	   dbl_dummy2.l = 0;
1086  000309A6    4d effffff678                 	clrl	_dbl_dummy2+4
1087  000309AC                                   # /*
1088  000309AC                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1089  000309AC                                   #  * The force loop flag is set after the first error.
1090  000309AC                                   # */
1091  000309AC                                   # 	   asm("_pipe15_7_lp1:");
1092  000309AC                                  _pipe15_7_lp1:
1093  000309AC                                   # 	   asm("ldd  _dbl_dummy1");		/* load a '1.0'     (  1  ) */
1094  000309AC    07 effffff66e                 ldd  _dbl_dummy1
1095  000309B2                                   # 	   asm("nop");
1096  000309B2    10                            nop
1097  000309B3                                   # 	   asm("nop");
1098  000309B3    10                            nop
1099  000309B4                                   # 	   asm("muld _dbl_value_1");		/* mult by op. 1    ( op1 ) */
1100  000309B4    e7 effffff666                 muld _dbl_value_1
1101  000309BA                                   # 	   asm("nop");
1102  000309BA    10                            nop
1103  000309BB                                   # 	   asm("nop");
1104  000309BB    10                            nop
1105  000309BC                                   # 	   asm("divd _dbl_value_2");		/* div by operand 2 ( exp ) */
1106  000309BC    f7 effffff65e                 divd _dbl_value_2
1107  000309C2                                   # 	   asm("nop");
1108  000309C2    10                            nop
1109  000309C3                                   # 	   asm("nop");
1110  000309C3    10                            nop
1111  000309C4                                   # 	   asm("divd _dbl_dummy1");		/* divide by '1.0'  ( exp ) */
1112  000309C4    f7 effffff656                 divd _dbl_dummy1
1113  000309CA                                   # 	   asm("nop");
1114  000309CA    10                            nop
1115  000309CB                                   # 	   asm("nop");
1116  000309CB    10                            nop
1117  000309CC                                   # 	   asm("addd _dbl_dummy2");		/* add a '0.0'      ( exp ) */
1118  000309CC    c7 effffff64e                 addd _dbl_dummy2
1119  000309D2                                   # 	   asm("nop");
1120  000309D2    10                            nop
1121  000309D3                                   # 	   asm("nop");
1122  000309D3    10                            nop
1123  000309D4                                   # 	   asm("std  _dbl_st_acc");		/* store the result ( exp ) */
1124  000309D4    27 effffff646                 std  _dbl_st_acc
1125  000309DA                                   # 	   if( force_loop )
1126  000309DA    5d effffff640                 	tstl	_force_loop
1127  000309E0    31 02                         	jeql	L318
1128  000309E2                                   # 	       asm("brb _pipe15_7_lp1");;	/* run the loop again      */
1129  000309E2    11 c8                         brb _pipe15_7_lp1
1130  000309E4                                  L318:
1131  000309E4                                   # /* 
1132  000309E4                                   #  * verify the results
1133  000309E4                                   # */
1134  000309E4                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results  */
1135  000309E4                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
1136  000309E4    1d effffff636 effffff631      	cmpl	_dbl_st_acc,_dbl_expected
1137  000309EF    21 0d                         	jneq	L9993
1138  000309F1    1d effffff62d effffff628      	cmpl	_dbl_st_acc+4,_dbl_expected+4
1139  000309FC    31 42                         	jeql	L319
1140  000309FE                                  L9993:
1141  000309FE                                   # 	   {
1142  000309FE                                   # 	      errcnt++;				/* bump the error count    */
1143  000309FE    6d effffff61c                 	incl	_errcnt
1144  00030A04                                   # 	      if ( prt_error ) 
1145  00030A04    5d effffff616                 	tstl	_prt_error
1146  00030A0A    31 0d                         	jeql	L320
1147  00030A0C                                   # 		 print_pipe15_er("Cache Data, 2 NO-OPs");
1148  00030A0C                                  	.data	1
1149  00001094 *                                L321:
1150  00001094 *  436163686520446174612C203     	.ascii	"Cache Data, 2 NO-OPs\0"
                  2204E4F2D4F507300
1151  000010a9 *                                	.text
1152  00030A0C    dd 8f00001094                 	pushl	$L321
1153  00030A12    fe 08 ef000003f5              	callf	$8,_print_pipe15_er
1154  00030A19                                   # 	      if ( halt_flg ) 			/* halt on error?           */
1155  00030A19                                  L320:
1156  00030A19    5d effffff601                 	tstl	_halt_flg
1157  00030A1F    31 0d                         	jeql	L322
1158  00030A21                                   # 		 pipe15_er_hlt( subtest );
1159  00030A21    dd effffff5f9                 	pushl	_subtest
1160  00030A27    fe 08 ef0000055e              	callf	$8,_pipe15_er_hlt
1161  00030A2E                                   # 	      if ( loop_on_err ) {
1162  00030A2E                                  L322:
1163  00030A2E    5d effffff5ec                 	tstl	_loop_on_err
1164  00030A34    31 0a                         	jeql	L323
1165  00030A36                                   # 		 force_loop = TRUE;		/* set the force loop flag */
1166  00030A36    0d 01 effffff5e3              	movl	$1,_force_loop
1167  00030A3D                                   # 		 asm("brw _pipe15_7_lp1");	/* and loop                */
1168  00030A3D    13 ff6c                       brw _pipe15_7_lp1
1169  00030A40                                   # 	      }
1170  00030A40                                   # 	   }   /* end of compare error */
1171  00030A40                                  L323:
1172  00030A40                                   # 	} while( index++ < max_divd_1_index );
1173  00030A40                                  L319:
1174  00030A40                                  L316:
1175  00030A40    0d effffff5da 50              	movl	_index,r0
1176  00030A47    6d effffff5d3                 	incl	_index
1177  00030A4D    1d 50 effffff5cc              	cmpl	r0,_max_divd_1_index
1178  00030A54    81 03 13 fedc                 	jlss	L317
1179  00030A59                                  L315:
1180  00030A59                                   # }  /* end of subtest 7 */
1181  00030A59    40                            	ret#2
1182  00030A5A                                  	.set	L311,0x0
1183  00030A5A                                  L313:
1184  00030A5A    13 fecc                       	jbr 	L314
1185  00030A5D                                  	.data
1186  00001010 *                                	.text
1187  00030A5D    00                            	.align	1
1188  00030A5E                                  	.globl	_pipe15_8
1189  00030A5E                                  _pipe15_8:
1190  00030A5E    0000                          	.word	L324
1191  00030A60                                   # 
1192  00030A60                                   # 
1193  00030A60                                   # 
1194  00030A60                                   # 
1195  00030A60                                   # 
1196  00030A60                                   # 
1197  00030A60                                   # 
1198  00030A60                                   # /************************************************************************
1199  00030A60                                   # *
1200  00030A60                                   # *			SUBTEST 8  
1201  00030A60                                   # *		data in cache, 3 NO-OPs
1202  00030A60                                   # *
1203  00030A60                                   # ************************************************************************/
1204  00030A60                                   # pipe15_8() 
1205  00030A60                                   # {
1206  00030A60    13 0136                       	jbr 	L326
1207  00030A63                                  L327:
1208  00030A63                                   # 	force_loop = FALSE;			/* clear the force_loop flg */
1209  00030A63    4d effffff5b7                 	clrl	_force_loop
1210  00030A69                                   # 	index = 0;
1211  00030A69    4d effffff5b1                 	clrl	_index
1212  00030A6F                                   # 	do 
1213  00030A6F                                  L330:
1214  00030A6F                                   # 	{
1215  00030A6F                                   # 	   dbl_value_1  = divd_1_data[index].op_1;  /* get dbl operand # 1   */
1216  00030A6F    5c 18 effffff5aa 50           	mull3	$24,_index,r0
1217  00030A77    0c 8f00000000 50              	addl2	$_divd_1_data,r0
1218  00030A7E    0d a004 effffff59e            	movl	4(r0),_dbl_value_1+4
1219  00030A86    0d 60 effffff593              	movl	(r0),_dbl_value_1
1220  00030A8D                                   # 	   dbl_value_2  = divd_1_data[index].op_2;  /* get dbl operand # 2   */
1221  00030A8D    5c 18 effffff58c 50           	mull3	$24,_index,r0
1222  00030A95    0c 8f00000008 50              	addl2	$_divd_1_data+8,r0
1223  00030A9C    0d a004 effffff580            	movl	4(r0),_dbl_value_2+4
1224  00030AA4    0d 60 effffff575              	movl	(r0),_dbl_value_2
1225  00030AAB                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results  */
1226  00030AAB    5c 18 effffff56e 50           	mull3	$24,_index,r0
1227  00030AB3    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
1228  00030ABA    0d a004 effffff562            	movl	4(r0),_dbl_expected+4
1229  00030AC2    0d 60 effffff557              	movl	(r0),_dbl_expected
1230  00030AC9                                   # 	   dbl_dummy1.m = 0x40800000;		    /* get dbl precision 1.0 */
1231  00030AC9    0d 8f40800000 effffff54c      	movl	$1082130432,_dbl_dummy1
1232  00030AD4                                   # 	   dbl_dummy1.l = 0;
1233  00030AD4    4d effffff54a                 	clrl	_dbl_dummy1+4
1234  00030ADA                                   # 	   dbl_dummy2.m = 0;			    /* get dbl precision 0.0 */
1235  00030ADA    4d effffff540                 	clrl	_dbl_dummy2
1236  00030AE0                                   # 	   dbl_dummy2.l = 0;
1237  00030AE0    4d effffff53e                 	clrl	_dbl_dummy2+4
1238  00030AE6                                   # /*
1239  00030AE6                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1240  00030AE6                                   #  * The force loop flag is set after the first error.
1241  00030AE6                                   # */
1242  00030AE6                                   # 	   asm("_pipe15_8_lp1:");
1243  00030AE6                                  _pipe15_8_lp1:
1244  00030AE6                                   # 	   asm("ldd  _dbl_dummy1");		/* load a '1.0'     (  1  ) */
1245  00030AE6    07 effffff534                 ldd  _dbl_dummy1
1246  00030AEC                                   # 	   asm("nop");
1247  00030AEC    10                            nop
1248  00030AED                                   # 	   asm("nop");
1249  00030AED    10                            nop
1250  00030AEE                                   # 	   asm("nop");
1251  00030AEE    10                            nop
1252  00030AEF                                   # 	   asm("muld _dbl_value_1");		/* mult by op. 1    ( op1 ) */
1253  00030AEF    e7 effffff52b                 muld _dbl_value_1
1254  00030AF5                                   # 	   asm("nop");
1255  00030AF5    10                            nop
1256  00030AF6                                   # 	   asm("nop");
1257  00030AF6    10                            nop
1258  00030AF7                                   # 	   asm("nop");
1259  00030AF7    10                            nop
1260  00030AF8                                   # 	   asm("divd _dbl_value_2");		/* div by operand 2 ( exp ) */
1261  00030AF8    f7 effffff522                 divd _dbl_value_2
1262  00030AFE                                   # 	   asm("nop");
1263  00030AFE    10                            nop
1264  00030AFF                                   # 	   asm("nop");
1265  00030AFF    10                            nop
1266  00030B00                                   # 	   asm("nop");
1267  00030B00    10                            nop
1268  00030B01                                   # 	   asm("divd _dbl_dummy1");		/* divide by '1.0'  ( exp ) */
1269  00030B01    f7 effffff519                 divd _dbl_dummy1
1270  00030B07                                   # 	   asm("nop");
1271  00030B07    10                            nop
1272  00030B08                                   # 	   asm("nop");
1273  00030B08    10                            nop
1274  00030B09                                   # 	   asm("nop");
1275  00030B09    10                            nop
1276  00030B0A                                   # 	   asm("addd _dbl_dummy2");		/* add a '0.0'      ( exp ) */
1277  00030B0A    c7 effffff510                 addd _dbl_dummy2
1278  00030B10                                   # 	   asm("nop");
1279  00030B10    10                            nop
1280  00030B11                                   # 	   asm("nop");
1281  00030B11    10                            nop
1282  00030B12                                   # 	   asm("nop");
1283  00030B12    10                            nop
1284  00030B13                                   # 	   asm("std  _dbl_st_acc");		/* store the result ( exp ) */
1285  00030B13    27 effffff507                 std  _dbl_st_acc
1286  00030B19                                   # 	   if( force_loop )
1287  00030B19    5d effffff501                 	tstl	_force_loop
1288  00030B1F    31 02                         	jeql	L331
1289  00030B21                                   # 	       asm("brb _pipe15_8_lp1");;	/* run the loop again      */
1290  00030B21    11 c3                         brb _pipe15_8_lp1
1291  00030B23                                  L331:
1292  00030B23                                   # /* 
1293  00030B23                                   #  * verify the results
1294  00030B23                                   # */
1295  00030B23                                   # 	   if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results  */
1296  00030B23                                   # 	       (dbl_st_acc.l != dbl_expected.l) )
1297  00030B23    1d effffff4f7 effffff4f2      	cmpl	_dbl_st_acc,_dbl_expected
1298  00030B2E    21 0d                         	jneq	L9992
1299  00030B30    1d effffff4ee effffff4e9      	cmpl	_dbl_st_acc+4,_dbl_expected+4
1300  00030B3B    31 42                         	jeql	L332
1301  00030B3D                                  L9992:
1302  00030B3D                                   # 	   {
1303  00030B3D                                   # 	      errcnt++;				/* bump the error count    */
1304  00030B3D    6d effffff4dd                 	incl	_errcnt
1305  00030B43                                   # 	      if ( prt_error ) 
1306  00030B43    5d effffff4d7                 	tstl	_prt_error
1307  00030B49    31 0d                         	jeql	L333
1308  00030B4B                                   # 		 print_pipe15_er("Cache Data, 3 NO-OPs");
1309  00030B4B                                  	.data	1
1310  000010a9 *                                L334:
1311  000010a9 *  436163686520446174612C203     	.ascii	"Cache Data, 3 NO-OPs\0"
                  3204E4F2D4F507300
1312  000010be *                                	.text
1313  00030B4B    dd 8f000010a9                 	pushl	$L334
1314  00030B51    fe 08 ef000002b6              	callf	$8,_print_pipe15_er
1315  00030B58                                   # 	      if ( halt_flg ) 			/* halt on error?           */
1316  00030B58                                  L333:
1317  00030B58    5d effffff4c2                 	tstl	_halt_flg
1318  00030B5E    31 0d                         	jeql	L335
1319  00030B60                                   # 		 pipe15_er_hlt( subtest );
1320  00030B60    dd effffff4ba                 	pushl	_subtest
1321  00030B66    fe 08 ef0000041f              	callf	$8,_pipe15_er_hlt
1322  00030B6D                                   # 	      if ( loop_on_err ) {
1323  00030B6D                                  L335:
1324  00030B6D    5d effffff4ad                 	tstl	_loop_on_err
1325  00030B73    31 0a                         	jeql	L336
1326  00030B75                                   # 		 force_loop = TRUE;		/* set the force loop flag */
1327  00030B75    0d 01 effffff4a4              	movl	$1,_force_loop
1328  00030B7C                                   # 		 asm("brw _pipe15_8_lp1");	/* and loop                */
1329  00030B7C    13 ff67                       brw _pipe15_8_lp1
1330  00030B7F                                   # 	      }
1331  00030B7F                                   # 	   }   /* end of compare error */
1332  00030B7F                                  L336:
1333  00030B7F                                   # 	} while( index++ < max_divd_1_index );
1334  00030B7F                                  L332:
1335  00030B7F                                  L329:
1336  00030B7F    0d effffff49b 50              	movl	_index,r0
1337  00030B86    6d effffff494                 	incl	_index
1338  00030B8C    1d 50 effffff48d              	cmpl	r0,_max_divd_1_index
1339  00030B93    81 03 13 fed7                 	jlss	L330
1340  00030B98                                  L328:
1341  00030B98                                   # }  /* end of subtest 8 */
1342  00030B98    40                            	ret#2
1343  00030B99                                  	.set	L324,0x0
1344  00030B99                                  L326:
1345  00030B99    13 fec7                       	jbr 	L327
1346  00030B9C                                  	.data
1347  00001010 *                                	.text
1348  00030B9C                                  	.align	1
1349  00030B9C                                  	.globl	_pipe15_9
1350  00030B9C                                  _pipe15_9:
1351  00030B9C    0000                          	.word	L337
1352  00030B9E                                   # 
1353  00030B9E                                   # 
1354  00030B9E                                   # 
1355  00030B9E                                   # 
1356  00030B9E                                   # 
1357  00030B9E                                   # 
1358  00030B9E                                   # 
1359  00030B9E                                   # 
1360  00030B9E                                   # /******************************************************************************
1361  00030B9E                                   # *
1362  00030B9E                                   # *			SUBTEST 9  
1363  00030B9E                                   # *
1364  00030B9E                                   # *	Get the data via the FRAME POINTER ( quad word indexed )
1365  00030B9E                                   # *
1366  00030B9E                                   # *	 ADDRESSES OF DATA OPERANDS    INDEX       DATA
1367  00030B9E                                   # *	pointer_data,-4     ( FP+40 )    5     the STF result goes here
1368  00030B9E                                   # *	pointer_data-8,-12  ( FP+32 )    4     <operand #1 data>
1369  00030B9E                                   # *	pointer_data-16,-20 ( FP+24 )    3     <operand #2 data>
1370  00030B9E                                   # *	pointer_data-24,-28 ( FP+16 )    2     < '1.0'  data>
1371  00030B9E                                   # *	pointer_data-32,-36 ( FP+8  )    1     < '0.0'  data>
1372  00030B9E                                   # *	pointer_data-40,-44 (  FP   )    0     point the frame pointer here
1373  00030B9E                                   # *
1374  00030B9E                                   # * NOTE: The double precision instructions are using Quad Word indexing.
1375  00030B9E                                   # ******************************************************************************/
1376  00030B9E                                   # pipe15_9() 
1377  00030B9E                                   # {
1378  00030B9E    13 026a                       	jbr 	L339
1379  00030BA1                                  L340:
1380  00030BA1                                   # 	asm("moval (r13),_pre_event_fp");	/* save the frame pointer   */ 
1381  00030BA1    ed 6d effffff478              moval (r13),_pre_event_fp
1382  00030BA8                                   # 	asm("moval (r14),_pre_event_sp");	/* save the stack pointer   */ 
1383  00030BA8    ed 6e effffff471              moval (r14),_pre_event_sp
1384  00030BAF                                   # 	force_loop = FALSE;			/* clear force_loop flag */
1385  00030BAF    4d effffff46b                 	clrl	_force_loop
1386  00030BB5                                   # 	index = 0;
1387  00030BB5    4d effffff465                 	clrl	_index
1388  00030BBB                                   # 	do 
1389  00030BBB                                  L343:
1390  00030BBB                                   # 	{
1391  00030BBB                                   # 	   sgl_value_1  = divd_1_data[index].op_1.m;  /* get op. #1's MSW   */
1392  00030BBB    5c 18 effffff45e 50           	mull3	$24,_index,r0
1393  00030BC3    0d e000000000 effffff452      	movl	_divd_1_data(r0),_sgl_value_1
1394  00030BCE                                   # 	   sgl_value_2  = divd_1_data[index].op_1.l;  /* get op. #1's LSW   */
1395  00030BCE    5c 18 effffff44b 50           	mull3	$24,_index,r0
1396  00030BD6    0d e000000004 effffff43f      	movl	_divd_1_data+4(r0),_sgl_value_2
1397  00030BE1                                   # 	   sgl_value_3  = divd_1_data[index].op_2.m;  /* get op. #2's MSW   */
1398  00030BE1    5c 18 effffff438 50           	mull3	$24,_index,r0
1399  00030BE9    0d e000000008 effffff42c      	movl	_divd_1_data+8(r0),_sgl_value_3
1400  00030BF4                                   # 	   sgl_value_4  = divd_1_data[index].op_2.l;  /* get op. #2's LSW   */
1401  00030BF4    5c 18 effffff425 50           	mull3	$24,_index,r0
1402  00030BFC    0d e00000000c effffff419      	movl	_divd_1_data+12(r0),_sgl_value_4
1403  00030C07                                   # 	   sgl_value_7  = 0x40800000;		      /* get the '1.0' data */
1404  00030C07    0d 8f40800000 effffff40e      	movl	$1082130432,_sgl_value_7
1405  00030C12                                   # 	   sgl_value_8  = 0;
1406  00030C12    4d effffff408                 	clrl	_sgl_value_8
1407  00030C18                                   # 	   dbl_expected = divd_1_data[index].exp;   /* get expected results  */
1408  00030C18    5c 18 effffff401 50           	mull3	$24,_index,r0
1409  00030C20    0c 8f00000010 50              	addl2	$_divd_1_data+16,r0
1410  00030C27    0d a004 effffff3f5            	movl	4(r0),_dbl_expected+4
1411  00030C2F    0d 60 effffff3ea              	movl	(r0),_dbl_expected
1412  00030C36                                   # /*
1413  00030C36                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1414  00030C36                                   #  * The force loop flag is set after the first error.
1415  00030C36                                   # */
1416  00030C36                                   # 	   asm("_pipe15_9_lp1:");
1417  00030C36                                  _pipe15_9_lp1:
1418  00030C36                                   # 	   asm("moval _pointer_data,_sgl_value_9");/* get store data's addr  */
1419  00030C36    ed effffff3e4 effffff3df      moval _pointer_data,_sgl_value_9
1420  00030C41                                   # 	   sgl_value_9 -= 8;
1421  00030C41    2c 08 effffff3d8              	subl2	$8,_sgl_value_9
1422  00030C48                                   # 	   asm("movl _sgl_value_2,*_sgl_value_9"); /* set operand #1's LSW   */
1423  00030C48    0d effffff3d2 fffffff3cd      movl _sgl_value_2,*_sgl_value_9
1424  00030C53                                   # 	   sgl_value_9 -= 4;
1425  00030C53    2c 04 effffff3c6              	subl2	$4,_sgl_value_9
1426  00030C5A                                   # 	   asm("movl _sgl_value_1,*_sgl_value_9"); /* set operand #1's MSW   */
1427  00030C5A    0d effffff3c0 fffffff3bb      movl _sgl_value_1,*_sgl_value_9
1428  00030C65                                   # 	   sgl_value_9 -= 4;
1429  00030C65    2c 04 effffff3b4              	subl2	$4,_sgl_value_9
1430  00030C6C                                   # 	   asm("movl _sgl_value_4,*_sgl_value_9"); /* set operand #2's LSW   */
1431  00030C6C    0d effffff3ae fffffff3a9      movl _sgl_value_4,*_sgl_value_9
1432  00030C77                                   # 	   sgl_value_9 -= 4;
1433  00030C77    2c 04 effffff3a2              	subl2	$4,_sgl_value_9
1434  00030C7E                                   # 	   asm("movl _sgl_value_3,*_sgl_value_9"); /* set operand #2's MSW   */
1435  00030C7E    0d effffff39c fffffff397      movl _sgl_value_3,*_sgl_value_9
1436  00030C89                                   # 	   sgl_value_9 -= 4;
1437  00030C89    2c 04 effffff390              	subl2	$4,_sgl_value_9
1438  00030C90                                   # 	   asm("movl _sgl_value_8,*_sgl_value_9"); /* set '1.0' data's LSW   */
1439  00030C90    0d effffff38a fffffff385      movl _sgl_value_8,*_sgl_value_9
1440  00030C9B                                   # 	   sgl_value_9 -= 4;
1441  00030C9B    2c 04 effffff37e              	subl2	$4,_sgl_value_9
1442  00030CA2                                   # 	   asm("movl _sgl_value_7,*_sgl_value_9"); /* set '1.0' data's MSW   */
1443  00030CA2    0d effffff378 fffffff373      movl _sgl_value_7,*_sgl_value_9
1444  00030CAD                                   # 	   sgl_value_9 -= 4;
1445  00030CAD    2c 04 effffff36c              	subl2	$4,_sgl_value_9
1446  00030CB4                                   # 	   asm("movl _sgl_value_8,*_sgl_value_9"); /* set '0.0' data's LSW   */
1447  00030CB4    0d effffff366 fffffff361      movl _sgl_value_8,*_sgl_value_9
1448  00030CBF                                   # 	   sgl_value_9 -= 4;
1449  00030CBF    2c 04 effffff35a              	subl2	$4,_sgl_value_9
1450  00030CC6                                   # 	   asm("movl _sgl_value_8,*_sgl_value_9"); /* set '0.0' data's MSW   */
1451  00030CC6    0d effffff354 fffffff34f      movl _sgl_value_8,*_sgl_value_9
1452  00030CD1                                   # 	   sgl_value_9 -= 8;			   /* get FRAME PTR's value  */
1453  00030CD1    2c 08 effffff348              	subl2	$8,_sgl_value_9
1454  00030CD8                                   # 	   asm("movl _sgl_value_9,r13");	   /* set the FRAME POINTER  */
1455  00030CD8    0d effffff342 5d              movl _sgl_value_9,r13
1456  00030CDF                                   # 	   asm("movl $1,r2");			/* r2 index = 1 quadwords    */
1457  00030CDF    0d 01 52                      movl $1,r2
1458  00030CE2                                   # 	   asm("movl $2,r3");			/* r3 index = 2 quadwords    */
1459  00030CE2    0d 02 53                      movl $2,r3
1460  00030CE5                                   # 	   asm("movl $3,r4");			/* r4 index = 3 quadwords    */
1461  00030CE5    0d 03 54                      movl $3,r4
1462  00030CE8                                   # 	   asm("movl $4,r5");			/* r5 index = 4 quadwords    */
1463  00030CE8    0d 04 55                      movl $4,r5
1464  00030CEB                                   # 	   asm("movl $5,r6");			/* r6 index = 5 quadwords    */
1465  00030CEB    0d 05 56                      movl $5,r6
1466  00030CEE                                   # 	   asm("ldd  (r13)[r3]");		/* load a '1.0'      (  0  ) */
1467  00030CEE    07 436d                       ldd  (r13)[r3]
1468  00030CF1                                   # 	   asm("muld (r13)[r5]");		/* mult by op. #1    ( op1 ) */
1469  00030CF1    e7 456d                       muld (r13)[r5]
1470  00030CF4                                   # 	   asm("divd (r13)[r4]");		/* divide by op. #2  ( exp ) */
1471  00030CF4    f7 446d                       divd (r13)[r4]
1472  00030CF7                                   # 	   asm("divd (r13)[r3]");		/* divide by '1.0'   ( exp ) */
1473  00030CF7    f7 436d                       divd (r13)[r3]
1474  00030CFA                                   # 	   asm("addd (r13)[r2]");		/* add '0.0'         ( exp ) */
1475  00030CFA    c7 426d                       addd (r13)[r2]
1476  00030CFD                                   # 	   asm("std  (r13)[r6]");		/* store the result  ( exp ) */
1477  00030CFD    27 466d                       std  (r13)[r6]
1478  00030D00                                   # 	   if( force_loop )
1479  00030D00    5d effffff31a                 	tstl	_force_loop
1480  00030D06    31 03                         	jeql	L344
1481  00030D08                                   # 	       asm("brw _pipe15_9_lp1");;	/* run the loop again      */
1482  00030D08    13 ff2b                       brw _pipe15_9_lp1
1483  00030D0B                                  L344:
1484  00030D0B                                   # /* 
1485  00030D0B                                   #  * verify the results
1486  00030D0B                                   # */
1487  00030D0B                                   # 	   asm("moval (r13),_sgl_value_10");	/* save the frame pointer  */
1488  00030D0B    ed 6d effffff30e              moval (r13),_sgl_value_10
1489  00030D12                                   # 	   asm("movl _pointer_data,_sgl_value_6"); /* save the LSW stored  */
1490  00030D12    0d effffff308 effffff303      movl _pointer_data,_sgl_value_6
1491  00030D1D                                   # 	   asm("movl _pointer_data-4,_sgl_value_5"); /*   and the MSW      */
1492  00030D1D    0d effffff2f9 effffff2f8      movl _pointer_data-4,_sgl_value_5
1493  00030D28                                   # 	   if( (sgl_value_5  != dbl_expected.m) || /* verify the result... */
1494  00030D28                                   # 	       (sgl_value_6  != dbl_expected.l) || /* verify the result... */
1495  00030D28                                   # 	       (sgl_value_10 != sgl_value_9) )	   /* ... and the final FP */
1496  00030D28    1d effffff2f2 effffff2ed      	cmpl	_sgl_value_5,_dbl_expected
1497  00030D33    21 1d                         	jneq	L9991
1498  00030D35    1d effffff2e5 effffff2e4      	cmpl	_sgl_value_6,_dbl_expected+4
1499  00030D40    21 10                         	jneq	L9991
1500  00030D42    1d effffff2d8 effffff2d3      	cmpl	_sgl_value_10,_sgl_value_9
1501  00030D4D    21 03 13 0091                 	jeql	L345
1502  00030D52                                  L9991:
1503  00030D52                                   # 	   {
1504  00030D52                                   # 	      asm("movl _pre_event_fp,r13");	/* restore frame pointer   */
1505  00030D52    0d effffff2c8 5d              movl _pre_event_fp,r13
1506  00030D59                                   # 	      asm("movl _pre_event_sp,r14");	/* restore stack pointer   */
1507  00030D59    0d effffff2c1 5e              movl _pre_event_sp,r14
1508  00030D60                                   # 	      errcnt++;				/* bump the error count    */
1509  00030D60    6d effffff2ba                 	incl	_errcnt
1510  00030D66                                   # 	      if ( prt_error ) {
1511  00030D66    5d effffff2b4                 	tstl	_prt_error
1512  00030D6C    31 4e                         	jeql	L346
1513  00030D6E                                   # 		 print_pipe15_er("indexed FP addressing.\n");
1514  00030D6E                                  	.data	1
1515  000010be *                                L347:
1516  000010be *  696E646578656420465020616     	.ascii	"indexed FP addressing.\12\0"
                  46472657373696E672E0A00
1517  000010d6 *                                	.text
1518  00030D6E    dd 8f000010be                 	pushl	$L347
1519  00030D74    fe 08 ef00000093              	callf	$8,_print_pipe15_er
1520  00030D7B                                   # 		 writes("final Frame Pointer = ");
1521  00030D7B                                  	.data	1
1522  000010d6 *                                L348:
1523  000010d6 *  66696E616C204672616D65205     	.ascii	"final Frame Pointer = \0"
                  06F696E746572203D2000
1524  000010ed *                                	.text
1525  00030D7B    dd 8f000010d6                 	pushl	$L348
1526  00030D81    fe 08 effffff298              	callf	$8,_writes
1527  00030D88                                   # 		 write32h( sgl_value_10 );
1528  00030D88    dd effffff292                 	pushl	_sgl_value_10
1529  00030D8E    fe 08 effffff28b              	callf	$8,_write32h
1530  00030D95                                   # 		 writes(",  expected FP = ");
1531  00030D95                                  	.data	1
1532  000010ed *                                L350:
1533  000010ed *  2C20206578706563746564204     	.ascii	",  expected FP = \0"
                  650203D2000
1534  000010ff *                                	.text
1535  00030D95    dd 8f000010ed                 	pushl	$L350
1536  00030D9B    fe 08 effffff27e              	callf	$8,_writes
1537  00030DA2                                   # 		 write32h( sgl_value_9 );
1538  00030DA2    dd effffff278                 	pushl	_sgl_value_9
1539  00030DA8    fe 08 effffff271              	callf	$8,_write32h
1540  00030DAF                                   # 		 writes(" \n");
1541  00030DAF                                  	.data	1
1542  000010ff *                                L351:
1543  000010ff *  200A00                        	.ascii	" \12\0"
1544  00001102 *                                	.text
1545  00030DAF    dd 8f000010ff                 	pushl	$L351
1546  00030DB5    fe 08 effffff264              	callf	$8,_writes
1547  00030DBC                                   # 	      }
1548  00030DBC                                   # 	      if ( halt_flg )
1549  00030DBC                                  L346:
1550  00030DBC    5d effffff25e                 	tstl	_halt_flg
1551  00030DC2    31 0d                         	jeql	L352
1552  00030DC4                                   # 		 pipe15_er_hlt( subtest );
1553  00030DC4    dd effffff256                 	pushl	_subtest
1554  00030DCA    fe 08 ef000001bb              	callf	$8,_pipe15_er_hlt
1555  00030DD1                                   # 	      if ( loop_on_err ) {
1556  00030DD1                                  L352:
1557  00030DD1    5d effffff249                 	tstl	_loop_on_err
1558  00030DD7    31 0a                         	jeql	L353
1559  00030DD9                                   # 		 force_loop = TRUE;		/* set the force loop flag */
1560  00030DD9    0d 01 effffff240              	movl	$1,_force_loop
1561  00030DE0                                   # 		 asm("brw _pipe15_9_lp1");	/* and loop                */
1562  00030DE0    13 fe53                       brw _pipe15_9_lp1
1563  00030DE3                                   # 	      }
1564  00030DE3                                   # 	   }   /* end of compare error */
1565  00030DE3                                  L353:
1566  00030DE3                                   # 	} while( index++ < max_divd_1_index );
1567  00030DE3                                  L345:
1568  00030DE3                                  L342:
1569  00030DE3    0d effffff237 50              	movl	_index,r0
1570  00030DEA    6d effffff230                 	incl	_index
1571  00030DF0    1d 50 effffff229              	cmpl	r0,_max_divd_1_index
1572  00030DF7    81 03 13 fdbf                 	jlss	L343
1573  00030DFC                                  L341:
1574  00030DFC                                   # 	asm("movl _pre_event_fp,r13");		/* restore the frame pointer */
1575  00030DFC    0d effffff21e 5d              movl _pre_event_fp,r13
1576  00030E03                                   # 	asm("movl _pre_event_sp,r14");		/* restore the stack pointer */
1577  00030E03    0d effffff217 5e              movl _pre_event_sp,r14
1578  00030E0A                                   # }  /* end of subtest 9 */
1579  00030E0A    40                            	ret#2
1580  00030E0B                                  	.set	L337,0x0
1581  00030E0B                                  L339:
1582  00030E0B    13 fd93                       	jbr 	L340
1583  00030E0E                                  	.data
1584  00001010 *                                	.text
1585  00030E0E                                  	.align	1
1586  00030E0E                                  	.globl	_print_pipe15_er
1587  00030E0E                                  _print_pipe15_er:
1588  00030E0E    0000                          	.word	L354
1589  00030E10                                   # 
1590  00030E10                                   # 
1591  00030E10                                   # /******************************************************************************
1592  00030E10                                   # *
1593  00030E10                                   # *			ERROR ROUTINE
1594  00030E10                                   # *
1595  00030E10                                   # *	print an error in the following form
1596  00030E10                                   # *
1597  00030E10                                   # *operand 1 = xxxxxxxx xxxxxxxx,    final Acc = xxxxxxxx xxxxxxxx,   index = dd
1598  00030E10                                   # *operand 2 = xxxxxxxx xxxxxxxx, expected Acc = xxxxxxxx xxxxxxxx
1599  00030E10                                   # *
1600  00030E10                                   # ******************************************************************************/
1601  00030E10                                   # print_pipe15_er(msg)
1602  00030E10                                   # char *msg;
1603  00030E10                                   # {
1604  00030E10    13 0175                       	jbr 	L356
1605  00030E13                                  L357:
1606  00030E13                                   # 	writes(" \n");		/* start a new print line   */
1607  00030E13                                  	.data	1
1608  00001102 *                                L358:
1609  00001102 *  200A00                        	.ascii	" \12\0"
1610  00001105 *                                	.text
1611  00030E13    dd 8f00001102                 	pushl	$L358
1612  00030E19    fe 08 effffff200              	callf	$8,_writes
1613  00030E20                                   # 	writes("cycle: ");
1614  00030E20                                  	.data	1
1615  00001105 *                                L359:
1616  00001105 *  6379636C653A2000              	.ascii	"cycle: \0"
1617  0000110d *                                	.text
1618  00030E20    dd 8f00001105                 	pushl	$L359
1619  00030E26    fe 08 effffff1f3              	callf	$8,_writes
1620  00030E2D                                   # 	writed( cycle );
1621  00030E2D    dd effffff1ed                 	pushl	_cycle
1622  00030E33    fe 08 effffff1e6              	callf	$8,_writed
1623  00030E3A                                   # 	writes(" test ");
1624  00030E3A                                  	.data	1
1625  0000110d *                                L361:
1626  0000110d *  20746573742000                	.ascii	" test \0"
1627  00001114 *                                	.text
1628  00030E3A    dd 8f0000110d                 	pushl	$L361
1629  00030E40    fe 08 effffff1d9              	callf	$8,_writes
1630  00030E47                                   # 	writed( test_no );
1631  00030E47    dd effffff1d3                 	pushl	_test_no
1632  00030E4D    fe 08 effffff1cc              	callf	$8,_writed
1633  00030E54                                   # 	writes("  (Pipe 15), subtest ");
1634  00030E54                                  	.data	1
1635  00001114 *                                L362:
1636  00001114 *  20202850697065203135292C2     	.ascii	"  (Pipe 15), subtest \0"
                  0737562746573742000
1637  0000112a *                                	.text
1638  00030E54    dd 8f00001114                 	pushl	$L362
1639  00030E5A    fe 08 effffff1bf              	callf	$8,_writes
1640  00030E61                                   # 	writed( subtest );
1641  00030E61    dd effffff1b9                 	pushl	_subtest
1642  00030E67    fe 08 effffff1b2              	callf	$8,_writed
1643  00030E6E                                   # 	writes(" error - ");
1644  00030E6E                                  	.data	1
1645  0000112a *                                L363:
1646  0000112a *  206572726F72202D2000          	.ascii	" error - \0"
1647  00001134 *                                	.text
1648  00030E6E    dd 8f0000112a                 	pushl	$L363
1649  00030E74    fe 08 effffff1a5              	callf	$8,_writes
1650  00030E7B                                   # 	writes( msg );
1651  00030E7B    dd ad04                       	pushl	4(fp)
1652  00030E7E    fe 08 effffff19b              	callf	$8,_writes
1653  00030E85                                   # 	writec('\n');
1654  00030E85    dd 0a                         	pushl	$10
1655  00030E87    fe 08 effffff192              	callf	$8,_writec
1656  00030E8E                                   # 	writes(" LDD(1.0)  MULD(op1)  DIVD(op2)  DIVD(1.0)  ADDD(0.0)  STD\n");
1657  00030E8E                                  	.data	1
1658  00001134 *                                L365:
1659  00001134 *  204C444428312E302920204D5     	.ascii	" LDD(1.0)  MULD(op1)  DIVD(op2)  DIVD(1.0)  ADDD(0.0)  STD\12\0"
                  54C44286F7031292020444956
                  44286F7032292020444956442
                  8312E30292020414444442830
                  2E302920205354440A00
1660  00001170 *                                	.text
1661  00030E8E    dd 8f00001134                 	pushl	$L365
1662  00030E94    fe 08 effffff185              	callf	$8,_writes
1663  00030E9B                                   # 	writes("operand 1 = ");
1664  00030E9B                                  	.data	1
1665  00001170 *                                L366:
1666  00001170 *  6F706572616E642031203D200     	.ascii	"operand 1 = \0"
                  0
1667  0000117d *                                	.text
1668  00030E9B    dd 8f00001170                 	pushl	$L366
1669  00030EA1    fe 08 effffff178              	callf	$8,_writes
1670  00030EA8                                   # 	write32h( sgl_value_1 );
1671  00030EA8    dd effffff172                 	pushl	_sgl_value_1
1672  00030EAE    fe 08 effffff16b              	callf	$8,_write32h
1673  00030EB5                                   # 	writec(' ');
1674  00030EB5    dd 20                         	pushl	$32
1675  00030EB7    fe 08 effffff162              	callf	$8,_writec
1676  00030EBE                                   # 	write32h( sgl_value_2 );
1677  00030EBE    dd effffff15c                 	pushl	_sgl_value_2
1678  00030EC4    fe 08 effffff155              	callf	$8,_write32h
1679  00030ECB                                   # 	writes(",    final Acc = ");
1680  00030ECB                                  	.data	1
1681  0000117d *                                L367:
1682  0000117d *  2C2020202066696E616C20416     	.ascii	",    final Acc = \0"
                  363203D2000
1683  0000118f *                                	.text
1684  00030ECB    dd 8f0000117d                 	pushl	$L367
1685  00030ED1    fe 08 effffff148              	callf	$8,_writes
1686  00030ED8                                   # 	write32h( dbl_st_acc.m );
1687  00030ED8    dd effffff142                 	pushl	_dbl_st_acc
1688  00030EDE    fe 08 effffff13b              	callf	$8,_write32h
1689  00030EE5                                   # 	writec(' ');
1690  00030EE5    dd 20                         	pushl	$32
1691  00030EE7    fe 08 effffff132              	callf	$8,_writec
1692  00030EEE                                   # 	write32h( dbl_st_acc.l );
1693  00030EEE    dd effffff130                 	pushl	_dbl_st_acc+4
1694  00030EF4    fe 08 effffff125              	callf	$8,_write32h
1695  00030EFB                                   # 	writes(",   index = ");
1696  00030EFB                                  	.data	1
1697  0000118f *                                L368:
1698  0000118f *  2C202020696E646578203D200     	.ascii	",   index = \0"
                  0
1699  0000119c *                                	.text
1700  00030EFB    dd 8f0000118f                 	pushl	$L368
1701  00030F01    fe 08 effffff118              	callf	$8,_writes
1702  00030F08                                   # 	writed( index );
1703  00030F08    dd effffff112                 	pushl	_index
1704  00030F0E    fe 08 effffff10b              	callf	$8,_writed
1705  00030F15                                   # 	writec('\n');
1706  00030F15    dd 0a                         	pushl	$10
1707  00030F17    fe 08 effffff102              	callf	$8,_writec
1708  00030F1E                                   # 	writes("operand 2 = ");
1709  00030F1E                                  	.data	1
1710  0000119c *                                L369:
1711  0000119c *  6F706572616E642032203D200     	.ascii	"operand 2 = \0"
                  0
1712  000011a9 *                                	.text
1713  00030F1E    dd 8f0000119c                 	pushl	$L369
1714  00030F24    fe 08 effffff0f5              	callf	$8,_writes
1715  00030F2B                                   # 	write32h( sgl_value_3 );
1716  00030F2B    dd effffff0ef                 	pushl	_sgl_value_3
1717  00030F31    fe 08 effffff0e8              	callf	$8,_write32h
1718  00030F38                                   # 	writec(' ');
1719  00030F38    dd 20                         	pushl	$32
1720  00030F3A    fe 08 effffff0df              	callf	$8,_writec
1721  00030F41                                   # 	write32h( sgl_value_4 );
1722  00030F41    dd effffff0d9                 	pushl	_sgl_value_4
1723  00030F47    fe 08 effffff0d2              	callf	$8,_write32h
1724  00030F4E                                   # 	writes(", expected Acc = ");
1725  00030F4E                                  	.data	1
1726  000011a9 *                                L370:
1727  000011a9 *  2C20657870656374656420416     	.ascii	", expected Acc = \0"
                  363203D2000
1728  000011bb *                                	.text
1729  00030F4E    dd 8f000011a9                 	pushl	$L370
1730  00030F54    fe 08 effffff0c5              	callf	$8,_writes
1731  00030F5B                                   # 	write32h( dbl_expected.m );
1732  00030F5B    dd effffff0bf                 	pushl	_dbl_expected
1733  00030F61    fe 08 effffff0b8              	callf	$8,_write32h
1734  00030F68                                   # 	writec(' ');
1735  00030F68    dd 20                         	pushl	$32
1736  00030F6A    fe 08 effffff0af              	callf	$8,_writec
1737  00030F71                                   # 	write32h( dbl_expected.l );
1738  00030F71    dd effffff0ad                 	pushl	_dbl_expected+4
1739  00030F77    fe 08 effffff0a2              	callf	$8,_write32h
1740  00030F7E                                   # 	writec('\n');
1741  00030F7E    dd 0a                         	pushl	$10
1742  00030F80    fe 08 effffff099              	callf	$8,_writec
1743  00030F87                                   # }
1744  00030F87    40                            	ret#2
1745  00030F88                                  	.set	L354,0x0
1746  00030F88                                  L356:
1747  00030F88    13 fe88                       	jbr 	L357
1748  00030F8B                                  	.data
1749  00001010 *                                	.text
1750  00030F8B    00                            	.align	1
1751  00030F8C                                  	.globl	_pipe15_er_hlt
1752  00030F8C                                  _pipe15_er_hlt:
1753  00030F8C    0000                          	.word	L371
1754  00030F8E                                   # 
1755  00030F8E                                   # 
1756  00030F8E                                   # 
1757  00030F8E                                   # 
1758  00030F8E                                   # 
1759  00030F8E                                   # /******************************************************************************
1760  00030F8E                                   # *
1761  00030F8E                                   # *			HALT ON ERROR ROUTINE
1762  00030F8E                                   # *
1763  00030F8E                                   # *  	halt with the necessary information saved in the registers
1764  00030F8E                                   # *
1765  00030F8E                                   # ******************************************************************************/
1766  00030F8E                                   # pipe15_er_hlt( subtest )
1767  00030F8E                                   # int subtest;
1768  00030F8E                                   # {
1769  00030F8E    13 0099                       	jbr 	L373
1770  00030F91                                  L374:
1771  00030F91                                   # 	sgl_value_5 = dbl_st_acc.m;
1772  00030F91    0d effffff089 effffff084      	movl	_dbl_st_acc,_sgl_value_5
1773  00030F9C                                   # 	sgl_value_6 = dbl_st_acc.l;
1774  00030F9C    0d effffff082 effffff079      	movl	_dbl_st_acc+4,_sgl_value_6
1775  00030FA7                                   # 	sgl_value_7 = dbl_expected.m;
1776  00030FA7    0d effffff073 effffff06e      	movl	_dbl_expected,_sgl_value_7
1777  00030FB2                                   # 	sgl_value_8 = dbl_expected.l;
1778  00030FB2    0d effffff06c effffff063      	movl	_dbl_expected+4,_sgl_value_8
1779  00030FBD                                   # 	asm("movl _test_no,r0");		/* r0 = test number        */
1780  00030FBD    0d effffff05d 50              movl _test_no,r0
1781  00030FC4                                   # 	asm("movl _subtest,r1");		/* r1 = subtest number     */
1782  00030FC4    0d effffff056 51              movl _subtest,r1
1783  00030FCB                                   # 	asm("movl $1,r2");			/* r2 = error code         */
1784  00030FCB    0d 01 52                      movl $1,r2
1785  00030FCE                                   # 	asm("movl _cycle,r3");			/* r3 = cycle count        */
1786  00030FCE    0d effffff04c 53              movl _cycle,r3
1787  00030FD5                                   # 	asm("movl _sgl_value_1,r4");		/* r4 = MSW operand one    */
1788  00030FD5    0d effffff045 54              movl _sgl_value_1,r4
1789  00030FDC                                   # 	asm("movl _sgl_value_2,r5");		/* r5 = LSW operand one    */
1790  00030FDC    0d effffff03e 55              movl _sgl_value_2,r5
1791  00030FE3                                   # 	asm("movl _sgl_value_3,r6");		/* r6 = MSW operand two    */
1792  00030FE3    0d effffff037 56              movl _sgl_value_3,r6
1793  00030FEA                                   # 	asm("movl _sgl_value_4,r7");		/* r7 = LSW operand two    */
1794  00030FEA    0d effffff030 57              movl _sgl_value_4,r7
1795  00030FF1                                   # 	asm("movl _sgl_value_5,r8");		/* r8 = MSW operand stored */
1796  00030FF1    0d effffff029 58              movl _sgl_value_5,r8
1797  00030FF8                                   # 	asm("movl _sgl_value_6,r9");		/* r9 = LSW operand stored */
1798  00030FF8    0d effffff022 59              movl _sgl_value_6,r9
1799  00030FFF                                   # 	asm("movl _sgl_value_7,r10");		/* r10 = MSW operand exp   */
1800  00030FFF    0d effffff01b 5a              movl _sgl_value_7,r10
1801  00031006                                   # 	asm("movl _sgl_value_8,r11");		/* r11 = LSW operand exp   */
1802  00031006    0d effffff014 5b              movl _sgl_value_8,r11
1803  0003100D                                   # 	asm("movl _index,r12");			/* r12 = data index        */
1804  0003100D    0d effffff00d 5c              movl _index,r12
1805  00031014                                   # 	if( subtest == 9 ) {
1806  00031014    1d ad04 09                    	cmpl	4(fp),$9
1807  00031018    21 0e                         	jneq	L375
1808  0003101A                                   # 		asm("movl _sgl_value_10,r13");	/* r13 = final FP value     */
1809  0003101A    0d effffff000 5d              movl _sgl_value_10,r13
1810  00031021                                   # 		asm("movl _sgl_value_9,r14");	/* r14 = expected FP value  */
1811  00031021    0d efffffeff9 5e              movl _sgl_value_9,r14
1812  00031028                                   # 	};
1813  00031028                                  L375:
1814  00031028                                   # 	asm(".globl _pipe15_1_hlt");
1815  00031028                                  .globl _pipe15_1_hlt
1816  00031028                                   # 	asm("_pipe15_1_hlt:");			/* PC after the halt       */
1817  00031028                                  _pipe15_1_hlt:
1818  00031028                                   # 	asm("halt");				/* HALT ...                */
1819  00031028    00                            halt
1820  00031029                                   # }  /* end of halt on error */
1821  00031029    40                            	ret#2
1822  0003102A                                  	.set	L371,0x0
1823  0003102A                                  L373:
1824  0003102A    13 ff64                       	jbr 	L374
1825  0003102D                                  	.data
1825  0006104D                                  	.data

unix.superglobalmegacorp.com

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