File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / fpevent / pipe15.lst
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:30:17 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  0000050c *                                	.text
   4  00000000                                  	.align	1
   5  00000000                                  	.globl	_pipe15
   6  00000000                                  _pipe15:
   7  00013EF4    0000                          	.word	L381
   8  00013EF6                                   # 
   9  00013EF6                                   # #include "evt_defs.h"
  10  00013EF6                                   # 
  11  00013EF6                                   # /*
  12  00013EF6                                   #  *********************************************************************
  13  00013EF6                                   #  *	FPP PIPELINED EVENTS TEST #15
  14  00013EF6                                   #  *
  15  00013EF6                                   #  *  This test will execute the following code: "LDF MULF STF"
  16  00013EF6                                   #  * with an overflow fault on the MULF. We will make sure that:
  17  00013EF6                                   #  * 1. The fault is detected, 
  18  00013EF6                                   #  * 2. the accumulator is cleared, and
  19  00013EF6                                   #  * 3. a floating '0' is stored if anything.
  20  00013EF6                                   #  *********************************************************************
  21  00013EF6                                   # */
  22  00013EF6                                   # pipe15()
  23  00013EF6                                   # {
  24  00013EF6    13 014b                       	jbr 	L383
  25  00013EF9                                  L384:
  26  00013EF9                                   # #define PIPE15_PAT 0x12341234
  27  00013EF9                                   # 	asm("moval (r13),_pre_event_fp");	/* save the frame pointer */
  28  00013EF9    ed 6d effffffff4              moval (r13),_pre_event_fp
  29  00013F00                                   # 	asm("moval (r14),_pre_event_sp");	/* save the stack pointer */
  30  00013F00    ed 6e efffffffed              moval (r14),_pre_event_sp
  31  00013F07                                   # 	precision  = SGL;
  32  00013F07    0d 01 efffffffe6              	movl	$1,_precision
  33  00013F0E                                   # 	test_event = ARITH_CODE;		/* expect an arithmetic fault */
  34  00013F0E    0d 34 efffffffdf              	movl	$52,_test_event
  35  00013F15                                   # 	exp_code   = FLT_OVFL_CODE;		/*  - specificly overflow    */
  36  00013F15    0d 04 efffffffd8              	movl	$4,_exp_code
  37  00013F1C                                   # 	exp_event  = FALSE;			/* ... but not yet           */
  38  00013F1C    4d efffffffd2                 	clrl	_exp_event
  39  00013F22                                   # 	asm("movab _pipe15_ret,_event_return"); /* set event return address  */
  40  00013F22    e9 ef000000b9 efffffffc7      movab _pipe15_ret,_event_return
  41  00013F2D                                   # 	max_index = muf_ov_cnt;			/* set max operand index     */
  42  00013F2D    0d efffffffc1 efffffffbc      	movl	_muf_ov_cnt,_max_index
  43  00013F38                                   # 	for( index = 0; index < max_index; index++ ) {
  44  00013F38    4d efffffffb6                 	clrl	_index
  45  00013F3E                                  L387:
  46  00013F3E    1d efffffffb0 efffffffab      	cmpl	_index,_max_index
  47  00013F49    91 03 13 00f5                 	jgeq	L386
  48  00013F4E                                   # 	     dbl_ld_acc  = muf_ov_dat[index].op_1;	/* get the Acc data  */
  49  00013F4E    48 04 efffffff9f 50           	shll	$4,_index,r0
  50  00013F56    0c 8f00000000 50              	addl2	$_muf_ov_dat,r0
  51  00013F5D    0d a004 efffffff93            	movl	4(r0),_dbl_ld_acc+4
  52  00013F65    0d 60 efffffff88              	movl	(r0),_dbl_ld_acc
  53  00013F6C                                   # 	     dbl_value_1 = muf_ov_dat[index].op_2;	/* get the '0' data  */
  54  00013F6C    48 04 efffffff81 50           	shll	$4,_index,r0
  55  00013F74    0c 8f00000008 50              	addl2	$_muf_ov_dat+8,r0
  56  00013F7B    0d a004 efffffff75            	movl	4(r0),_dbl_value_1+4
  57  00013F83    0d 60 efffffff6a              	movl	(r0),_dbl_value_1
  58  00013F8A                                   # 	     dbl_value_2.m = PIPE15_PAT;		/* background for STF*/
  59  00013F8A    0d 8f12341234 efffffff5f      	movl	$305402420,_dbl_value_2
  60  00013F95                                   # 	     asm(".globl _pipe15_lp1");
  61  00013F95                                  .globl _pipe15_lp1
  62  00013F95                                   # 	     asm("_pipe15_lp1:");
  63  00013F95                                  _pipe15_lp1:
  64  00013F95                                   # 	     asm("bispsw $0x60");		/* enable ovfl & undfl events*/
  65  00013F95    8b 8860                       bispsw $0x60
  66  00013F98                                   # 	     asm("ldf _dbl_ld_acc");		/* load the Acc.             */
  67  00013F98    06 efffffff56                 ldf _dbl_ld_acc
  68  00013F9E                                   # 	     exp_event = test_event;		/* set the expect event flag */
  69  00013F9E    0d efffffff50 efffffff4b      	movl	_test_event,_exp_event
  70  00013FA9                                   # 	     asm("mulf _dbl_value_1");		/* trigger the event         */
  71  00013FA9    e6 efffffff45                 mulf _dbl_value_1
  72  00013FAF                                   # 	     asm("stf _dbl_value_2");		/* FPP stores before the evt.*/
  73  00013FAF    26 efffffff3f                 stf _dbl_value_2
  74  00013FB5                                   # /*
  75  00013FB5                                   #  * If we got to here then there was no event
  76  00013FB5                                   # */
  77  00013FB5                                   # 	     if( force_loop )
  78  00013FB5    5d efffffff39                 	tstl	_force_loop
  79  00013FBB    31 06                         	jeql	L388
  80  00013FBD                                   # 		  asm("jmp _pipe15_lp1");;	/* loop on the error         */
  81  00013FBD    71 efffffffd2                 jmp _pipe15_lp1
  82  00013FC3                                  L388:
  83  00013FC3                                   # 	     exp_event = FALSE;			/* reset event expected flag */
  84  00013FC3    4d efffffff2b                 	clrl	_exp_event
  85  00013FC9                                   # 	     asm("movl _pre_event_fp,fp");	/* restore the frame pointer */
  86  00013FC9    0d efffffff25 5d              movl _pre_event_fp,fp
  87  00013FD0                                   # 	     asm("movl _pre_event_sp,sp");	/* restore the stack pointer */
  88  00013FD0    0d efffffff1e 5e              movl _pre_event_sp,sp
  89  00013FD7                                   # 	     asm("bicpsw $0x60");		/* disable ovfl & undfl evts */
  90  00013FD7    9b 8860                       bicpsw $0x60
  91  00013FDA                                   # 	     no_pipe15_evt();;			/* report the error          */
  92  00013FDA    fe 04 ef00000067              	callf	$4,_no_pipe15_evt
  93  00013FE1                                   # /*
  94  00013FE1                                   #  * Come here after the event
  95  00013FE1                                   # */
  96  00013FE1                                   # 	     asm(".globl _pipe15_ret");
  97  00013FE1                                  .globl _pipe15_ret
  98  00013FE1                                   # 	     asm("_pipe15_ret:");
  99  00013FE1                                  _pipe15_ret:
 100  00013FE1                                   # 	     asm("movl _pre_event_fp,fp");	/* restore the frame pointer */
 101  00013FE1    0d efffffff0d 5d              movl _pre_event_fp,fp
 102  00013FE8                                   # 	     asm("movl _pre_event_sp,sp");	/* restore the stack pointer */
 103  00013FE8    0d efffffff06 5e              movl _pre_event_sp,sp
 104  00013FEF                                   # 	     if( force_loop )
 105  00013FEF    5d effffffeff                 	tstl	_force_loop
 106  00013FF5    31 06                         	jeql	L390
 107  00013FF7                                   # 		  asm("jmp _pipe15_lp1");;	/* loop on the error         */
 108  00013FF7    71 efffffff98                 jmp _pipe15_lp1
 109  00013FFD                                  L390:
 110  00013FFD                                   # 	     asm("bicpsw $0x60");		/* disable ovfl & undfl evts */
 111  00013FFD    9b 8860                       bicpsw $0x60
 112  00014000                                   # 	     if( post_evt_acc.m )		/* was the Acc cleared?      */
 113  00014000    5d effffffeee                 	tstl	_post_evt_acc
 114  00014006    31 09                         	jeql	L391
 115  00014008                                   # 		  bad_pipe15_result();		/* incorrect result error    */
 116  00014008    fe 04 ef000000f5              	callf	$4,_bad_pipe15_result
 117  0001400F                                   # 	     else if( (dbl_value_2.m ) && 	/* either a ZERO s/b stored, */
 118  0001400F    11 29                         	jbr 	L393
 119  00014011                                  L391:
 120  00014011                                   # 		      (dbl_value_2.m != 0x80000000) && /* or a RESERVED OP,  */
 121  00014011                                   # 		      (dbl_value_2.m != PIPE15_PAT) )  /* or no store at all */
 122  00014011    5d effffffedd                 	tstl	_dbl_value_2
 123  00014017    31 21                         	jeql	L394
 124  00014019    1d effffffed5 8f80000000      	cmpl	_dbl_value_2,$-2147483648
 125  00014024    31 14                         	jeql	L394
 126  00014026    1d effffffec8 8f12341234      	cmpl	_dbl_value_2,$305402420
 127  00014031    31 07                         	jeql	L394
 128  00014033                                   # 		  bad_pipe15_store();		/* incorrect store error     */
 129  00014033    fe 04 ef000001b8              	callf	$4,_bad_pipe15_store
 130  0001403A                                   # 	}
 131  0001403A                                  L394:
 132  0001403A                                  L393:
 133  0001403A                                  L385:
 134  0001403A    6d effffffeb4                 	incl	_index
 135  00014040    13 fefb                       	jbr 	L387
 136  00014043                                  L386:
 137  00014043                                   # }
 138  00014043    40                            	ret#2
 139  00014044                                  	.set	L381,0x0
 140  00014044                                  L383:
 141  00014044    13 feb2                       	jbr 	L384
 142  00014047                                  	.data
 143  0000050c *                                	.text
 144  00014047    00                            	.align	1
 145  00014048                                  	.globl	_no_pipe15_evt
 146  00014048                                  _no_pipe15_evt:
 147  00014048    0000                          	.word	L396
 148  0001404A                                   # 
 149  0001404A                                   # 
 150  0001404A                                   # 
 151  0001404A                                   # /****************************************************************************
 152  0001404A                                   # *		Report an "EVENT NOT DETECTED" error
 153  0001404A                                   # *
 154  0001404A                                   # * Cycle: xx. EVT test xx. subtest xx. No overflow fault seen. index = xx
 155  0001404A                                   # * inst = LDF op1, MULF op2, STF op3    (overflow fault on the MULF)
 156  0001404A                                   # * op1 = xxxxxxxx,  op2 = xxxxxxxx,  init op3 = xxxxxxxx,  final op3 = xxxxxxxx
 157  0001404A                                   # ****************************************************************************/
 158  0001404A                                   # no_pipe15_evt()
 159  0001404A                                   # {
 160  0001404A    13 00b3                       	jbr 	L398
 161  0001404D                                  L399:
 162  0001404D                                   # 	errcnt++;				/* bump the error count    */
 163  0001404D    6d effffffea1                 	incl	_errcnt
 164  00014053                                   # 	if ( prt_error ) 
 165  00014053    5d effffffe9b                 	tstl	_prt_error
 166  00014059    31 7e                         	jeql	L400
 167  0001405B                                   # 	{
 168  0001405B                                   # 	     print_pipe15_er( ". No overflow fault seen" );
 169  0001405B                                  	.data	1
 170  0000050c *                                L402:
 171  0000050c *  2E204E6F206F766572666C6F7     	.ascii	". No overflow fault seen\0"
                  7206661756C74207365656E00
 172  00000525 *                                	.text
 173  0001405B    dd 8f0000050c                 	pushl	$L402
 174  00014061    fe 08 ef00000266              	callf	$8,_print_pipe15_er
 175  00014068                                   # 	     writes("op1 = ");
 176  00014068                                  	.data	1
 177  00000525 *                                L404:
 178  00000525 *  6F7031203D2000                	.ascii	"op1 = \0"
 179  0000052c *                                	.text
 180  00014068    dd 8f00000525                 	pushl	$L404
 181  0001406E    fe 08 effffffe7f              	callf	$8,_writes
 182  00014075                                   # 	     write32h( dbl_ld_acc.m );
 183  00014075    dd effffffe79                 	pushl	_dbl_ld_acc
 184  0001407B    fe 08 effffffe72              	callf	$8,_write32h
 185  00014082                                   # 	     writes(",  op2 = ");
 186  00014082                                  	.data	1
 187  0000052c *                                L406:
 188  0000052c *  2C20206F7032203D2000          	.ascii	",  op2 = \0"
 189  00000536 *                                	.text
 190  00014082    dd 8f0000052c                 	pushl	$L406
 191  00014088    fe 08 effffffe65              	callf	$8,_writes
 192  0001408F                                   # 	     write32h( dbl_value_1.m );
 193  0001408F    dd effffffe5f                 	pushl	_dbl_value_1
 194  00014095    fe 08 effffffe58              	callf	$8,_write32h
 195  0001409C                                   # 	     writes(",  init op3 = ");
 196  0001409C                                  	.data	1
 197  00000536 *                                L407:
 198  00000536 *  2C2020696E6974206F7033203     	.ascii	",  init op3 = \0"
                  D2000
 199  00000545 *                                	.text
 200  0001409C    dd 8f00000536                 	pushl	$L407
 201  000140A2    fe 08 effffffe4b              	callf	$8,_writes
 202  000140A9                                   # 	     write32h( PIPE15_PAT );
 203  000140A9    dd 8f12341234                 	pushl	$305402420
 204  000140AF    fe 08 effffffe3e              	callf	$8,_write32h
 205  000140B6                                   # 	     writes(",  final op3 = ");
 206  000140B6                                  	.data	1
 207  00000545 *                                L408:
 208  00000545 *  2C202066696E616C206F70332     	.ascii	",  final op3 = \0"
                  03D2000
 209  00000555 *                                	.text
 210  000140B6    dd 8f00000545                 	pushl	$L408
 211  000140BC    fe 08 effffffe31              	callf	$8,_writes
 212  000140C3                                   # 	     write32h( dbl_value_2.m );
 213  000140C3    dd effffffe2b                 	pushl	_dbl_value_2
 214  000140C9    fe 08 effffffe24              	callf	$8,_write32h
 215  000140D0                                   # 	     writec('\n');
 216  000140D0    dd 0a                         	pushl	$10
 217  000140D2    fe 08 effffffe1b              	callf	$8,_writec
 218  000140D9                                   # 	}
 219  000140D9                                   # 	if ( halt_flg ) 			/* halt on error?          */
 220  000140D9                                  L400:
 221  000140D9    5d effffffe15                 	tstl	_halt_flg
 222  000140DF    31 09                         	jeql	L410
 223  000140E1                                   # 	     pipe15_halt( 1 );			/* halt with a code of 1   */
 224  000140E1    dd 01                         	pushl	$1
 225  000140E3    fe 08 ef00000282              	callf	$8,_pipe15_halt
 226  000140EA                                   # 	if ( loop_on_err ) 
 227  000140EA                                  L410:
 228  000140EA    5d effffffe04                 	tstl	_loop_on_err
 229  000140F0    31 0d                         	jeql	L412
 230  000140F2                                   # 	{
 231  000140F2                                   # 	     force_loop = TRUE;			/* set the force loop flag */
 232  000140F2    0d 01 effffffdfb              	movl	$1,_force_loop
 233  000140F9                                   # 	     asm("jmp _pipe15_lp1");		/* and loop                */
 234  000140F9    71 effffffe96                 jmp _pipe15_lp1
 235  000140FF                                   # 	};
 236  000140FF                                  L412:
 237  000140FF                                   # }
 238  000140FF    40                            	ret#2
 239  00014100                                  	.set	L396,0x0
 240  00014100                                  L398:
 241  00014100    13 ff4a                       	jbr 	L399
 242  00014103                                  	.data
 243  0000050c *                                	.text
 244  00014103    00                            	.align	1
 245  00014104                                  	.globl	_bad_pipe15_result
 246  00014104                                  _bad_pipe15_result:
 247  00014104    0000                          	.word	L413
 248  00014106                                   # 
 249  00014106                                   # 
 250  00014106                                   # 
 251  00014106                                   # 
 252  00014106                                   # /****************************************************************************
 253  00014106                                   # *		Report an "BAD ACCUMULATOR AFTER THE EVENT" error
 254  00014106                                   # *
 255  00014106                                   # * Cycle: xx. EVT test xx. subtest xx. Bad final Accumulator. index = xx
 256  00014106                                   # * inst = LDF op1, MULF op2, STF op3    (overflow fault on the MULF)
 257  00014106                                   # * op1 = xxxxxxxx, final Acc. = xxxxxxxx,   initial op3 = xxxxxxxx
 258  00014106                                   # * op2 = xxxxxxxx,   expected = xxxxxxxx,     final op3 = xxxxxxxx
 259  00014106                                   # ****************************************************************************/
 260  00014106                                   # bad_pipe15_result()
 261  00014106                                   # {
 262  00014106    13 00e6                       	jbr 	L415
 263  00014109                                  L416:
 264  00014109                                   # 	errcnt++;				/* bump the error count    */
 265  00014109    6d effffffde5                 	incl	_errcnt
 266  0001410F                                   # 	if ( prt_error ) 
 267  0001410F    5d effffffddf                 	tstl	_prt_error
 268  00014115    21 03 13 00ae                 	jeql	L417
 269  0001411A                                   # 	{
 270  0001411A                                   # 	     print_pipe15_er( ". Bad final Accumulator" );
 271  0001411A                                  	.data	1
 272  00000555 *                                L418:
 273  00000555 *  2E204261642066696E616C204     	.ascii	". Bad final Accumulator\0"
                  16363756D756C61746F7200
 274  0000056d *                                	.text
 275  0001411A    dd 8f00000555                 	pushl	$L418
 276  00014120    fe 08 ef000001a7              	callf	$8,_print_pipe15_er
 277  00014127                                   # 	     writes("op1 = ");
 278  00014127                                  	.data	1
 279  0000056d *                                L419:
 280  0000056d *  6F7031203D2000                	.ascii	"op1 = \0"
 281  00000574 *                                	.text
 282  00014127    dd 8f0000056d                 	pushl	$L419
 283  0001412D    fe 08 effffffdc0              	callf	$8,_writes
 284  00014134                                   # 	     write32h( dbl_ld_acc.m );
 285  00014134    dd effffffdba                 	pushl	_dbl_ld_acc
 286  0001413A    fe 08 effffffdb3              	callf	$8,_write32h
 287  00014141                                   # 	     writes(",   final Acc. = ");
 288  00014141                                  	.data	1
 289  00000574 *                                L420:
 290  00000574 *  2C20202066696E616C2041636     	.ascii	",   final Acc. = \0"
                  32E203D2000
 291  00000586 *                                	.text
 292  00014141    dd 8f00000574                 	pushl	$L420
 293  00014147    fe 08 effffffda6              	callf	$8,_writes
 294  0001414E                                   # 	     write32h( post_evt_acc.m );
 295  0001414E    dd effffffda0                 	pushl	_post_evt_acc
 296  00014154    fe 08 effffffd99              	callf	$8,_write32h
 297  0001415B                                   # 	     writes(",   initial op3  = ");
 298  0001415B                                  	.data	1
 299  00000586 *                                L421:
 300  00000586 *  2C202020696E697469616C206     	.ascii	",   initial op3  = \0"
                  F703320203D2000
 301  0000059a *                                	.text
 302  0001415B    dd 8f00000586                 	pushl	$L421
 303  00014161    fe 08 effffffd8c              	callf	$8,_writes
 304  00014168                                   # 	     write32h( PIPE15_PAT );
 305  00014168    dd 8f12341234                 	pushl	$305402420
 306  0001416E    fe 08 effffffd7f              	callf	$8,_write32h
 307  00014175                                   # 	     writes("\nop2 = ");
 308  00014175                                  	.data	1
 309  0000059a *                                L422:
 310  0000059a *  0A6F7032203D2000              	.ascii	"\12op2 = \0"
 311  000005a2 *                                	.text
 312  00014175    dd 8f0000059a                 	pushl	$L422
 313  0001417B    fe 08 effffffd72              	callf	$8,_writes
 314  00014182                                   # 	     write32h( dbl_value_1.m );
 315  00014182    dd effffffd6c                 	pushl	_dbl_value_1
 316  00014188    fe 08 effffffd65              	callf	$8,_write32h
 317  0001418F                                   # 	     writes(",     expected = ");
 318  0001418F                                  	.data	1
 319  000005a2 *                                L423:
 320  000005a2 *  2C20202020206578706563746     	.ascii	",     expected = \0"
                  564203D2000
 321  000005b4 *                                	.text
 322  0001418F    dd 8f000005a2                 	pushl	$L423
 323  00014195    fe 08 effffffd58              	callf	$8,_writes
 324  0001419C                                   # 	     write32h( 0 );			/* the expected result = 0 */
 325  0001419C    dd 00                         	pushl	$0
 326  0001419E    fe 08 effffffd4f              	callf	$8,_write32h
 327  000141A5                                   # 	     writes(",     final op3  = ");
 328  000141A5                                  	.data	1
 329  000005b4 *                                L424:
 330  000005b4 *  2C202020202066696E616C206     	.ascii	",     final op3  = \0"
                  F703320203D2000
 331  000005c8 *                                	.text
 332  000141A5    dd 8f000005b4                 	pushl	$L424
 333  000141AB    fe 08 effffffd42              	callf	$8,_writes
 334  000141B2                                   # 	     write32h( dbl_value_2.m );
 335  000141B2    dd effffffd3c                 	pushl	_dbl_value_2
 336  000141B8    fe 08 effffffd35              	callf	$8,_write32h
 337  000141BF                                   # 	     writec('\n');
 338  000141BF    dd 0a                         	pushl	$10
 339  000141C1    fe 08 effffffd2c              	callf	$8,_writec
 340  000141C8                                   # 	}
 341  000141C8                                   # 	if ( halt_flg ) 			/* halt on error?           */
 342  000141C8                                  L417:
 343  000141C8    5d effffffd26                 	tstl	_halt_flg
 344  000141CE    31 09                         	jeql	L425
 345  000141D0                                   # 	     pipe15_halt( 2 );			/* halt with a code of 2    */
 346  000141D0    dd 02                         	pushl	$2
 347  000141D2    fe 08 ef00000193              	callf	$8,_pipe15_halt
 348  000141D9                                   # 	if ( loop_on_err ) 
 349  000141D9                                  L425:
 350  000141D9    5d effffffd15                 	tstl	_loop_on_err
 351  000141DF    31 0d                         	jeql	L426
 352  000141E1                                   # 	{
 353  000141E1                                   # 	     force_loop = TRUE;			/* set the force loop flag */
 354  000141E1    0d 01 effffffd0c              	movl	$1,_force_loop
 355  000141E8                                   # 	     asm("jmp _pipe15_lp1");		/* and loop                */
 356  000141E8    71 effffffda7                 jmp _pipe15_lp1
 357  000141EE                                   # 	};
 358  000141EE                                  L426:
 359  000141EE                                   # }
 360  000141EE    40                            	ret#2
 361  000141EF                                  	.set	L413,0x0
 362  000141EF                                  L415:
 363  000141EF    13 ff17                       	jbr 	L416
 364  000141F2                                  	.data
 365  0000050c *                                	.text
 366  000141F2                                  	.align	1
 367  000141F2                                  	.globl	_bad_pipe15_store
 368  000141F2                                  _bad_pipe15_store:
 369  000141F2    0000                          	.word	L427
 370  000141F4                                   # 
 371  000141F4                                   # 
 372  000141F4                                   # 
 373  000141F4                                   # 
 374  000141F4                                   # /****************************************************************************
 375  000141F4                                   # *		Report a "BAD RESULT STORED AFTER THE EVENT" error
 376  000141F4                                   # *
 377  000141F4                                   # * Cycle: xx. EVT test xx. subtest xx. Bad STF OP3 result. index = xx
 378  000141F4                                   # * inst = LDF op1, MULF op2, STF op3    (overflow fault on the MULF)
 379  000141F4                                   # * op1 = xxxxxxxx,  initial op3 = xxxxxxxx,    final Acc. = xxxxxxxx
 380  000141F4                                   # * op2 = xxxxxxxx,    final op3 = xxxxxxxx,  op3 expected = xxxxxxxx
 381  000141F4                                   # ****************************************************************************/
 382  000141F4                                   # bad_pipe15_store()
 383  000141F4                                   # {
 384  000141F4    13 00d4                       	jbr 	L429
 385  000141F7                                  L430:
 386  000141F7                                   # 	errcnt++;				/* bump the error count    */
 387  000141F7    6d effffffcf7                 	incl	_errcnt
 388  000141FD                                   # 	if ( prt_error ) 
 389  000141FD    5d effffffcf1                 	tstl	_prt_error
 390  00014203    21 03 13 009c                 	jeql	L431
 391  00014208                                   # 	{
 392  00014208                                   # 	     print_pipe15_er( ". Bad STF OP3 result" );
 393  00014208                                  	.data	1
 394  000005c8 *                                L432:
 395  000005c8 *  2E2042616420535446204F503     	.ascii	". Bad STF OP3 result\0"
                  320726573756C7400
 396  000005dd *                                	.text
 397  00014208    dd 8f000005c8                 	pushl	$L432
 398  0001420E    fe 08 ef000000b9              	callf	$8,_print_pipe15_er
 399  00014215                                   # 	     writes("op1 = ");
 400  00014215                                  	.data	1
 401  000005dd *                                L433:
 402  000005dd *  6F7031203D2000                	.ascii	"op1 = \0"
 403  000005e4 *                                	.text
 404  00014215    dd 8f000005dd                 	pushl	$L433
 405  0001421B    fe 08 effffffcd2              	callf	$8,_writes
 406  00014222                                   # 	     write32h( dbl_ld_acc.m );
 407  00014222    dd effffffccc                 	pushl	_dbl_ld_acc
 408  00014228    fe 08 effffffcc5              	callf	$8,_write32h
 409  0001422F                                   # 	     writes(",  initial op3  = ");
 410  0001422F                                  	.data	1
 411  000005e4 *                                L434:
 412  000005e4 *  2C2020696E697469616C206F7     	.ascii	",  initial op3  = \0"
                  03320203D2000
 413  000005f7 *                                	.text
 414  0001422F    dd 8f000005e4                 	pushl	$L434
 415  00014235    fe 08 effffffcb8              	callf	$8,_writes
 416  0001423C                                   # 	     write32h( PIPE15_PAT );
 417  0001423C    dd 8f12341234                 	pushl	$305402420
 418  00014242    fe 08 effffffcab              	callf	$8,_write32h
 419  00014249                                   # 	     writes(",    final Acc. = ");
 420  00014249                                  	.data	1
 421  000005f7 *                                L435:
 422  000005f7 *  2C2020202066696E616C20416     	.ascii	",    final Acc. = \0"
                  3632E203D2000
 423  0000060a *                                	.text
 424  00014249    dd 8f000005f7                 	pushl	$L435
 425  0001424F    fe 08 effffffc9e              	callf	$8,_writes
 426  00014256                                   # 	     write32h( post_evt_acc.m );
 427  00014256    dd effffffc98                 	pushl	_post_evt_acc
 428  0001425C    fe 08 effffffc91              	callf	$8,_write32h
 429  00014263                                   # 	     writes("\nop2 = ");
 430  00014263                                  	.data	1
 431  0000060a *                                L436:
 432  0000060a *  0A6F7032203D2000              	.ascii	"\12op2 = \0"
 433  00000612 *                                	.text
 434  00014263    dd 8f0000060a                 	pushl	$L436
 435  00014269    fe 08 effffffc84              	callf	$8,_writes
 436  00014270                                   # 	     write32h( dbl_value_1.m );
 437  00014270    dd effffffc7e                 	pushl	_dbl_value_1
 438  00014276    fe 08 effffffc77              	callf	$8,_write32h
 439  0001427D                                   # 	     writes(",    final op3  = ");
 440  0001427D                                  	.data	1
 441  00000612 *                                L437:
 442  00000612 *  2C2020202066696E616C206F7     	.ascii	",    final op3  = \0"
                  03320203D2000
 443  00000625 *                                	.text
 444  0001427D    dd 8f00000612                 	pushl	$L437
 445  00014283    fe 08 effffffc6a              	callf	$8,_writes
 446  0001428A                                   # 	     write32h( dbl_value_2.m );
 447  0001428A    dd effffffc64                 	pushl	_dbl_value_2
 448  00014290    fe 08 effffffc5d              	callf	$8,_write32h
 449  00014297                                   # 	     writes(",  op3 expected = 80000000\n");	/* exp = Reserved Op */
 450  00014297                                  	.data	1
 451  00000625 *                                L438:
 452  00000625 *  2C20206F70332065787065637     	.ascii	",  op3 expected = 80000000\12\0"
                  46564203D2038303030303030
                  300A00
 453  00000641 *                                	.text
 454  00014297    dd 8f00000625                 	pushl	$L438
 455  0001429D    fe 08 effffffc50              	callf	$8,_writes
 456  000142A4                                   # 	}
 457  000142A4                                   # 	if ( halt_flg ) 			/* halt on error?           */
 458  000142A4                                  L431:
 459  000142A4    5d effffffc4a                 	tstl	_halt_flg
 460  000142AA    31 09                         	jeql	L439
 461  000142AC                                   # 	     pipe15_halt( 3 );			/* halt with a code of 2    */
 462  000142AC    dd 03                         	pushl	$3
 463  000142AE    fe 08 ef000000b7              	callf	$8,_pipe15_halt
 464  000142B5                                   # 	if ( loop_on_err ) 
 465  000142B5                                  L439:
 466  000142B5    5d effffffc39                 	tstl	_loop_on_err
 467  000142BB    31 0d                         	jeql	L440
 468  000142BD                                   # 	{
 469  000142BD                                   # 	     force_loop = TRUE;			/* set the force loop flag */
 470  000142BD    0d 01 effffffc30              	movl	$1,_force_loop
 471  000142C4                                   # 	     asm("jmp _pipe15_lp1");		/* and loop                */
 472  000142C4    71 effffffccb                 jmp _pipe15_lp1
 473  000142CA                                   # 	};
 474  000142CA                                  L440:
 475  000142CA                                   # }
 476  000142CA    40                            	ret#2
 477  000142CB                                  	.set	L427,0x0
 478  000142CB                                  L429:
 479  000142CB    13 ff29                       	jbr 	L430
 480  000142CE                                  	.data
 481  0000050c *                                	.text
 482  000142CE                                  	.align	1
 483  000142CE                                  	.globl	_print_pipe15_er
 484  000142CE                                  _print_pipe15_er:
 485  000142CE    0000                          	.word	L441
 486  000142D0                                   # 
 487  000142D0                                   # 
 488  000142D0                                   # 
 489  000142D0                                   # 
 490  000142D0                                   # 
 491  000142D0                                   # 
 492  000142D0                                   # /****************************************************************************
 493  000142D0                                   # *		Report an error message of the form:
 494  000142D0                                   # *
 495  000142D0                                   # * Cycle: xx. EVT test xx. subtest xx. <your message here>. index = xx
 496  000142D0                                   # * inst = LDF op1, MULF op2, STF op3    (overflow fault on the MULF)
 497  000142D0                                   # ****************************************************************************/
 498  000142D0                                   # print_pipe15_er( msg )
 499  000142D0                                   # char *msg;					/* error message to print   */
 500  000142D0                                   # {
 501  000142D0    13 0096                       	jbr 	L443
 502  000142D3                                  L444:
 503  000142D3                                   # 	     if( errcnt == 1 )			/* 1st error?               */
 504  000142D3    1d effffffc1b 01              	cmpl	_errcnt,$1
 505  000142DA    21 0d                         	jneq	L445
 506  000142DC                                   # 		  writes(" \n");		/* start a new print line   */
 507  000142DC                                  	.data	1
 508  00000641 *                                L446:
 509  00000641 *  200A00                        	.ascii	" \12\0"
 510  00000644 *                                	.text
 511  000142DC    dd 8f00000641                 	pushl	$L446
 512  000142E2    fe 08 effffffc0b              	callf	$8,_writes
 513  000142E9                                   # 	     writes("Cycle: ");
 514  000142E9                                  L445:
 515  000142E9                                  	.data	1
 516  00000644 *                                L447:
 517  00000644 *  4379636C653A2000              	.ascii	"Cycle: \0"
 518  0000064c *                                	.text
 519  000142E9    dd 8f00000644                 	pushl	$L447
 520  000142EF    fe 08 effffffbfe              	callf	$8,_writes
 521  000142F6                                   # 	     writed( cycle );
 522  000142F6    dd effffffbf8                 	pushl	_cycle
 523  000142FC    fe 08 effffffbf1              	callf	$8,_writed
 524  00014303                                   # 	     writes("  EVT test ");
 525  00014303                                  	.data	1
 526  0000064c *                                L449:
 527  0000064c *  202045565420746573742000      	.ascii	"  EVT test \0"
 528  00000658 *                                	.text
 529  00014303    dd 8f0000064c                 	pushl	$L449
 530  00014309    fe 08 effffffbe4              	callf	$8,_writes
 531  00014310                                   # 	     writed( test_no );
 532  00014310    dd effffffbde                 	pushl	_test_no
 533  00014316    fe 08 effffffbd7              	callf	$8,_writed
 534  0001431D                                   # 	     writes(". subtest ");
 535  0001431D                                  	.data	1
 536  00000658 *                                L450:
 537  00000658 *  2E20737562746573742000        	.ascii	". subtest \0"
 538  00000663 *                                	.text
 539  0001431D    dd 8f00000658                 	pushl	$L450
 540  00014323    fe 08 effffffbca              	callf	$8,_writes
 541  0001432A                                   # 	     writed( subtest );
 542  0001432A    dd effffffbc4                 	pushl	_subtest
 543  00014330    fe 08 effffffbbd              	callf	$8,_writed
 544  00014337                                   # 	     writes( msg );			/* print the message */
 545  00014337    dd ad04                       	pushl	4(fp)
 546  0001433A    fe 08 effffffbb3              	callf	$8,_writes
 547  00014341                                   # 	     writes(". index = ");
 548  00014341                                  	.data	1
 549  00000663 *                                L451:
 550  00000663 *  2E20696E646578203D2000        	.ascii	". index = \0"
 551  0000066e *                                	.text
 552  00014341    dd 8f00000663                 	pushl	$L451
 553  00014347    fe 08 effffffba6              	callf	$8,_writes
 554  0001434E                                   # 	     writed( index );
 555  0001434E    dd effffffba0                 	pushl	_index
 556  00014354    fe 08 effffffb99              	callf	$8,_writed
 557  0001435B                                   # 	     writes(
 558  0001435B                                   #      "\ninst = LDF op1, MULF op2, STF op3    (overflow fault on the MULF)\n");
 559  0001435B                                  	.data	1
 560  0000066e *                                L452:
 561  0000066e *  0A696E7374203D204C4446206     	.ascii	"\12inst = LDF op1, MULF op2, STF op3    (overflow fault on the MUL"
                  F70312C204D554C46206F7032
                  2C20535446206F70332020202
                  0286F766572666C6F77206661
                  756C74206F6E20746865204D5
                  54C
 562  000006ae *  46290A00                      	.ascii	"F)\12\0"
 563  000006b2 *                                	.text
 564  0001435B    dd 8f0000066e                 	pushl	$L452
 565  00014361    fe 08 effffffb8c              	callf	$8,_writes
 566  00014368                                   # }
 567  00014368    40                            	ret#2
 568  00014369                                  	.set	L441,0x0
 569  00014369                                  L443:
 570  00014369    13 ff67                       	jbr 	L444
 571  0001436C                                  	.data
 572  0000050c *                                	.text
 573  0001436C                                  	.align	1
 574  0001436C                                  	.globl	_pipe15_halt
 575  0001436C                                  _pipe15_halt:
 576  0001436C    0000                          	.word	L453
 577  0001436E                                   # 
 578  0001436E                                   # 
 579  0001436E                                   # 
 580  0001436E                                   # /****************************************************************************
 581  0001436E                                   # *		halt on error routine
 582  0001436E                                   # ****************************************************************************/
 583  0001436E                                   # pipe15_halt( code )
 584  0001436E                                   # int code;				/* error code to halt with */
 585  0001436E                                   # {
 586  0001436E    13 008b                       	jbr 	L455
 587  00014371                                  L456:
 588  00014371                                   # 	err_code = code;
 589  00014371    0d ad04 effffffb7b            	movl	4(fp),_err_code
 590  00014379                                   # 	sgl_value_1 = dbl_ld_acc.m;
 591  00014379    0d effffffb75 effffffb70      	movl	_dbl_ld_acc,_sgl_value_1
 592  00014384                                   # 	sgl_value_2 = dbl_value_1.m;
 593  00014384    0d effffffb6a effffffb65      	movl	_dbl_value_1,_sgl_value_2
 594  0001438F                                   # 	sgl_value_3 = post_evt_acc.m;
 595  0001438F    0d effffffb5f effffffb5a      	movl	_post_evt_acc,_sgl_value_3
 596  0001439A                                   # 	sgl_value_4 = PIPE15_PAT;
 597  0001439A    0d 8f12341234 effffffb4f      	movl	$305402420,_sgl_value_4
 598  000143A5                                   # 	sgl_value_5 = dbl_value_2.m;
 599  000143A5    0d effffffb49 effffffb44      	movl	_dbl_value_2,_sgl_value_5
 600  000143B0                                   # 	asm("movl _test_no,r0");		/* r0  = test number        */
 601  000143B0    0d effffffb3e 50              movl _test_no,r0
 602  000143B7                                   # 	asm("movl _subtest,r1");		/* r1  = subtest number     */
 603  000143B7    0d effffffb37 51              movl _subtest,r1
 604  000143BE                                   # 	asm("movl _err_code,r2");		/* r2  = error code         */
 605  000143BE    0d effffffb30 52              movl _err_code,r2
 606  000143C5                                   # 	asm("movl _cycle,r3");			/* r3  = cycle count        */
 607  000143C5    0d effffffb29 53              movl _cycle,r3
 608  000143CC                                   # 	asm("movl _sgl_value_1,r4");		/* r4  = initial acc.       */
 609  000143CC    0d effffffb22 54              movl _sgl_value_1,r4
 610  000143D3                                   # 	asm("movl _sgl_value_2,r5");		/* r5  = MULF operand       */
 611  000143D3    0d effffffb1b 55              movl _sgl_value_2,r5
 612  000143DA                                   # 	asm("movl _sgl_value_3,r6");		/* r6  = final acc.         */
 613  000143DA    0d effffffb14 56              movl _sgl_value_3,r6
 614  000143E1                                   # 	asm("clrl r7");				/* r7  = expected acc.      */
 615  000143E1    4d 57                         clrl r7
 616  000143E3                                   # 	asm("movl _sgl_value_4,r8");		/* r8  = initial op3 value  */
 617  000143E3    0d effffffb0b 58              movl _sgl_value_4,r8
 618  000143EA                                   # 	asm("movl _sgl_value_5,r9");		/* r9  = final op3 value    */
 619  000143EA    0d effffffb04 59              movl _sgl_value_5,r9
 620  000143F1                                   # 	asm("clrl r10");			/* r10 = expected op3 value */
 621  000143F1    4d 5a                         clrl r10
 622  000143F3                                   # 	asm("movl _index,r11");			/* r11 = data index         */
 623  000143F3    0d effffffafb 5b              movl _index,r11
 624  000143FA                                   # 	asm("halt");				/* HALT ...                 */
 625  000143FA    00                            halt
 626  000143FB                                   # }
 627  000143FB    40                            	ret#2
 628  000143FC                                  	.set	L453,0x0
 629  000143FC                                  L455:
 630  000143FC    13 ff72                       	jbr 	L456
 631  000143FF                                  	.data
 631  000282F3                                  	.data

unix.superglobalmegacorp.com

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