File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / fpevent / test_inst.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  00000998 *                                	.text
   4  00000000                                  	.align	1
   5  00000000                                  	.globl	_test_inst
   6  00000000                                  _test_inst:
   7  0000E610    0000                          	.word	L382
   8  0000E612                                   # #include "evt_defs.h"
   9  0000E612                                   # 
  10  0000E612                                   # /**************************************************************************
  11  0000E612                                   # *
  12  0000E612                                   # *    		Test the current instruction
  13  0000E612                                   # *
  14  0000E612                                   # *   10-Apr-85 - changed the test to just check a couple of addr. modes
  15  0000E612                                   # *   30-May-85 - added pipeline tests for A-loaded and B-loaded entries.
  16  0000E612                                   # *   20-Jul-85 - added 3 operands for MULL3 integer overflow
  17  0000E612                                   # **************************************************************************/
  18  0000E612                                   # test_inst()
  19  0000E612                                   # {
  20  0000E612    13 00a8                       	jbr 	L384
  21  0000E615                                  L385:
  22  0000E615                                   # 	*adr_op1_ptr = (int) adr_op1;	/* set word offset ptr #1 */
  23  0000E615    0d effffffff5 fffffffff0      	movl	_adr_op1,*_adr_op1_ptr
  24  0000E620                                   # 	*adr_op2_ptr = (int) adr_op2;	/* set word offset ptr #2 */
  25  0000E620    0d efffffffea ffffffffe5      	movl	_adr_op2,*_adr_op2_ptr
  26  0000E62B                                   # 	*adr_op3_ptr = (int) adr_op3;	/* set word offset ptr #3 */
  27  0000E62B    0d efffffffdf ffffffffda      	movl	_adr_op3,*_adr_op3_ptr
  28  0000E636                                   # 	asm("moval (sp),_monitor_sp");	/* save the stack pointer */
  29  0000E636    ed 6e efffffffd3              moval (sp),_monitor_sp
  30  0000E63D                                   # 	asm("moval (fp),_monitor_fp");	/* save the frame pointer */
  31  0000E63D    ed 6d efffffffcc              moval (fp),_monitor_fp
  32  0000E644                                   # 	asm("movab _test_inst_ret,_unexp_event_ret");
  33  0000E644    e9 ef00000064 efffffffc1      movab _test_inst_ret,_unexp_event_ret
  34  0000E64F                                   # 	error = FALSE;			/* clear error flag       */
  35  0000E64F    4d efffffffbb                 	clrl	_error
  36  0000E655                                   # 	set_load_flag();		/* set the LOAD ACC. flag */
  37  0000E655    fe 04 ef00000906              	callf	$4,_set_load_flag
  38  0000E65C                                   # 	if( !no_ops )
  39  0000E65C    5d efffffffae                 	tstl	_no_ops
  40  0000E662    21 09                         	jneq	L387
  41  0000E664                                   # 	     test_0_ops();	/* test inst w/ no operands */
  42  0000E664    fe 04 efffffffa5              	callf	$4,_test_0_ops
  43  0000E66B                                   # 	else {
  44  0000E66B    11 41                         	jbr 	L389
  45  0000E66D                                  L387:
  46  0000E66D                                   # 	     tst_l();		/* longword displacement relative   */
  47  0000E66D    fe 04 ef0000004c              	callf	$4,_tst_l
  48  0000E674                                   # 	     tst_r();		/* direct register                  */
  49  0000E674    fe 04 ef0000010b              	callf	$4,_tst_r
  50  0000E67B                                   # 	     tst_r_d();		/* register deferred                */
  51  0000E67B    fe 04 ef0000022a              	callf	$4,_tst_r_d
  52  0000E682                                   # 	     tst_r_ld();	/* register + longword displacement */
  53  0000E682    fe 04 ef000002ef              	callf	$4,_tst_r_ld
  54  0000E689                                   # 	     tst_x_fpd();	/* FP deferred + longword index     */
  55  0000E689    fe 04 ef000003e4              	callf	$4,_tst_x_fpd
  56  0000E690                                   # 	     tst_p1();		/* pipeline test #1,  LDx <op.>     */
  57  0000E690    fe 04 ef000004fd              	callf	$4,_tst_p1
  58  0000E697                                   # 	     if( (!load_type_inst) && (!no_fpp_wcs) )
  59  0000E697    5d efffffff73                 	tstl	_load_type_inst
  60  0000E69D    21 0f                         	jneq	L396
  61  0000E69F    5d efffffff6b                 	tstl	_no_fpp_wcs
  62  0000E6A5    21 07                         	jneq	L396
  63  0000E6A7                                   # 	          tst_p2();	/* pipeline test #2,  ADDx <op.>    */
  64  0000E6A7    fe 04 ef0000064a              	callf	$4,_tst_p2
  65  0000E6AE                                   # 	}
  66  0000E6AE                                  L396:
  67  0000E6AE                                  L389:
  68  0000E6AE                                   # 	asm(".globl _test_inst_ret");
  69  0000E6AE                                  .globl _test_inst_ret
  70  0000E6AE                                   # 	asm("_test_inst_ret:");
  71  0000E6AE                                  _test_inst_ret:
  72  0000E6AE                                   # 	asm("movl _monitor_sp,sp");	/* restore the stack ptr.   */
  73  0000E6AE    0d efffffff5c 5e              movl _monitor_sp,sp
  74  0000E6B5                                   # 	asm("movl _monitor_fp,fp");	/* restore the frame ptr.   */
  75  0000E6B5    0d efffffff55 5d              movl _monitor_fp,fp
  76  0000E6BC                                   # }
  77  0000E6BC    40                            	ret#2
  78  0000E6BD                                  	.set	L382,0x0
  79  0000E6BD                                  L384:
  80  0000E6BD    13 ff55                       	jbr 	L385
  81  0000E6C0                                  	.data
  82  00000998 *                                	.text
  83  0000E6C0                                  	.align	1
  84  0000E6C0                                  	.globl	_tst_l
  85  0000E6C0                                  _tst_l:
  86  0000E6C0    0000                          	.word	L398
  87  0000E6C2                                   # 
  88  0000E6C2                                   # 
  89  0000E6C2                                   # 
  90  0000E6C2                                   # 
  91  0000E6C2                                   # 
  92  0000E6C2                                   # 
  93  0000E6C2                                   # /*******************************************************************
  94  0000E6C2                                   # * LONGWORD DISPLACEMENT RELATIVE ADDRESSING:
  95  0000E6C2                                   # *  instruction =  <op-code> <ef> <offset to dmp_op_1>
  96  0000E6C2                                   # *                         { <ef> <offset to dmp_op_2> }
  97  0000E6C2                                   # *                         { <ef> <offset to dmp_op_3> }
  98  0000E6C2                                   # *******************************************************************/
  99  0000E6C2                                   # tst_l()
 100  0000E6C2                                   # {
 101  0000E6C2    13 00bd                       	jbr 	L400
 102  0000E6C5                                  L401:
 103  0000E6C5                                   # 	pipe_test = FALSE;
 104  0000E6C5    4d efffffff45                 	clrl	_pipe_test
 105  0000E6CB                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 106  0000E6CB    dd 8f00000000                 	pushl	$_load_regs
 107  0000E6D1    fe 08 efffffff38              	callf	$8,_fill_reg_buf
 108  0000E6D8                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 109  0000E6D8    dd 8f00000000                 	pushl	$_exp_regs
 110  0000E6DE    fe 08 efffffff2b              	callf	$8,_fill_reg_buf
 111  0000E6E5                                   # 	addr_mode = ADR_L_DSP;
 112  0000E6E5    0d 08 efffffff24              	movl	$8,_addr_mode
 113  0000E6EC                                   # 	addr_code = addr_code2 = addr_code3 = 0xef;
 114  0000E6EC    0d 8900ef efffffff1b          	movl	$239,_addr_code3
 115  0000E6F5    0d efffffff15 50              	movl	_addr_code3,r0
 116  0000E6FC    0d 50 efffffff0d              	movl	r0,_addr_code2
 117  0000E703    0d efffffff07 50              	movl	_addr_code2,r0
 118  0000E70A    0d 50 effffffeff              	movl	r0,_addr_code
 119  0000E711                                   # 	addr_size = 4;			/* longword (4 byte) ops. */
 120  0000E711    0d 04 effffffef8              	movl	$4,_addr_size
 121  0000E718                                   # 	addr_1 = os_op1 + 14;		/* offset to the data      */
 122  0000E718    1c 0e effffffef1 50           	addl3	$14,_os_op1,r0
 123  0000E720    0d 50 effffffee9              	movl	r0,_addr_1
 124  0000E727                                   # 	addr_2 = os_op2 + 9;
 125  0000E727    1c 09 effffffee2 50           	addl3	$9,_os_op2,r0
 126  0000E72F    0d 50 effffffeda              	movl	r0,_addr_2
 127  0000E736                                   # 	addr_3 = os_op3 + 4;
 128  0000E736    1c 04 effffffed3 50           	addl3	$4,_os_op3,r0
 129  0000E73E    0d 50 effffffecb              	movl	r0,_addr_3
 130  0000E745                                   # 	pack_inst();			/* pack the instr. code   */
 131  0000E745    fe 04 effffffec4              	callf	$4,_pack_inst
 132  0000E74C                                   # 	for( index = 0; index <= max_index; index++ ) {
 133  0000E74C    4d effffffebe                 	clrl	_index
 134  0000E752                                  L406:
 135  0000E752    1d effffffeb8 effffffeb3      	cmpl	_index,_max_index
 136  0000E75D    41 22                         	jgtr	L405
 137  0000E75F                                   # 	     get_current_data( adr_op1, adr_op2 );
 138  0000E75F    dd effffffeab                 	pushl	_adr_op2
 139  0000E765    dd effffffea5                 	pushl	_adr_op1
 140  0000E76B    fe 0c ef000006ee              	callf	$12,_get_current_data
 141  0000E772                                   # 	     run_code();		/* execute the instruction */
 142  0000E772    fe 04 effffffe97              	callf	$4,_run_code
 143  0000E779                                   # 	}
 144  0000E779                                  L404:
 145  0000E779    6d effffffe91                 	incl	_index
 146  0000E77F    11 d1                         	jbr 	L406
 147  0000E781                                  L405:
 148  0000E781                                   # }
 149  0000E781    40                            	ret#2
 150  0000E782                                  	.set	L398,0x0
 151  0000E782                                  L400:
 152  0000E782    13 ff40                       	jbr 	L401
 153  0000E785                                  	.data
 154  00000998 *                                	.text
 155  0000E785    00                            	.align	1
 156  0000E786                                  	.globl	_tst_r
 157  0000E786                                  _tst_r:
 158  0000E786    0000                          	.word	L409
 159  0000E788                                   # 
 160  0000E788                                   # 
 161  0000E788                                   # 
 162  0000E788                                   # /*******************************************************************
 163  0000E788                                   # * DIRECT REGISTER ADDRESSING:
 164  0000E788                                   # *  instruction =  <op-code> <50> { <54> <56> }
 165  0000E788                                   # *******************************************************************/
 166  0000E788                                   # tst_r()
 167  0000E788                                   # {
 168  0000E788    13 011e                       	jbr 	L411
 169  0000E78B                                  L412:
 170  0000E78B                                   # 	pipe_test = FALSE;
 171  0000E78B    4d effffffe7f                 	clrl	_pipe_test
 172  0000E791                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 173  0000E791    dd 8f00000000                 	pushl	$_load_regs
 174  0000E797    fe 08 effffffe72              	callf	$8,_fill_reg_buf
 175  0000E79E                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 176  0000E79E    dd 8f00000000                 	pushl	$_exp_regs
 177  0000E7A4    fe 08 effffffe65              	callf	$8,_fill_reg_buf
 178  0000E7AB                                   # 	if( op_code == MULL3_OP_CODE )
 179  0000E7AB    1d effffffe5f 885c            	cmpl	_op_code,$92
 180  0000E7B3    21 06                         	jneq	L413
 181  0000E7B5                                   # 	      exp_regs[6] = 0;		/* final op #3 should = 0 */
 182  0000E7B5    4d effffffe6d                 	clrl	_exp_regs+24
 183  0000E7BB                                   # 	addr_mode = ADR_REG;
 184  0000E7BB                                  L413:
 185  0000E7BB    0d 0c effffffe4e              	movl	$12,_addr_mode
 186  0000E7C2                                   # 	addr_code  = 0x50;		/* 1st op in registers 0/1 */
 187  0000E7C2    0d 8850 effffffe46            	movl	$80,_addr_code
 188  0000E7CA                                   # 	addr_code2 = 0x54;		/* 2nd op in registers 4/5 */
 189  0000E7CA    0d 8854 effffffe3e            	movl	$84,_addr_code2
 190  0000E7D2                                   # 	addr_code3 = 0x56;		/* 3rd op in registers 6   */
 191  0000E7D2    0d 8856 effffffe36            	movl	$86,_addr_code3
 192  0000E7DA                                   # 	addr_size = 0;			/* no addressing bytes    */
 193  0000E7DA    4d effffffe30                 	clrl	_addr_size
 194  0000E7E0                                   # 	pack_inst();			/* pack the instr. code   */
 195  0000E7E0    fe 04 effffffe29              	callf	$4,_pack_inst
 196  0000E7E7                                   # 	for( index = 0; index <= max_index; index++ ) {
 197  0000E7E7    4d effffffe23                 	clrl	_index
 198  0000E7ED                                  L416:
 199  0000E7ED    1d effffffe1d effffffe18      	cmpl	_index,_max_index
 200  0000E7F8    51 03 13 00ab                 	jgtr	L415
 201  0000E7FD                                   # 	          get_current_data( adr_op1, adr_op2 ); /* addr's not used */
 202  0000E7FD    dd effffffe0d                 	pushl	_adr_op2
 203  0000E803    dd effffffe07                 	pushl	_adr_op1
 204  0000E809    fe 0c ef00000650              	callf	$12,_get_current_data
 205  0000E810                                   # 	          load_regs[0] = dbl_value_1.m; /* set the data       */
 206  0000E810    0d effffffdfa effffffdf5      	movl	_dbl_value_1,_load_regs
 207  0000E81B                                   # 	          load_regs[1] = dbl_value_1.l;
 208  0000E81B    0d effffffdf3 effffffdee      	movl	_dbl_value_1+4,_load_regs+4
 209  0000E826                                   # 	          load_regs[4] = dbl_value_2.m;
 210  0000E826    0d effffffde4 effffffdef      	movl	_dbl_value_2,_load_regs+16
 211  0000E831                                   # 	          load_regs[5] = dbl_value_2.l;
 212  0000E831    0d effffffddd effffffde8      	movl	_dbl_value_2+4,_load_regs+20
 213  0000E83C                                   # 	          if( op_code == MULL2_OP_CODE )
 214  0000E83C    1d effffffdce 884c            	cmpl	_op_code,$76
 215  0000E844    21 08                         	jneq	L417
 216  0000E846                                   # 	               exp_regs[4] = 0;		/* final op #2 should = 0 */
 217  0000E846    4d effffffdd4                 	clrl	_exp_regs+16
 218  0000E84C                                   # 	          else  			/* op #2 shouldn't change */
 219  0000E84C    11 0b                         	jbr 	L418
 220  0000E84E                                  L417:
 221  0000E84E                                   # 	               exp_regs[4]  = dbl_value_2.m;
 222  0000E84E    0d effffffdbc effffffdc7      	movl	_dbl_value_2,_exp_regs+16
 223  0000E859                                  L418:
 224  0000E859                                   # 	          exp_regs[5]  = dbl_value_2.l;
 225  0000E859    0d effffffdb5 effffffdc0      	movl	_dbl_value_2+4,_exp_regs+20
 226  0000E864                                   # 	          exp_regs[1]  = dbl_value_1.l;	/* op #1's LSW won't change */
 227  0000E864    0d effffffdaa effffffda5      	movl	_dbl_value_1+4,_exp_regs+4
 228  0000E86F                                   # 	          if( (op_code == CVFL_OP_CODE) || /* correct for sgl store */
 229  0000E86F                                   # 	              (op_code == CVDL_OP_CODE) )
 230  0000E86F    1d effffffd9b 890086          	cmpl	_op_code,$134
 231  0000E878    31 0b                         	jeql	L9999
 232  0000E87A    1d effffffd90 890087          	cmpl	_op_code,$135
 233  0000E883    21 08                         	jneq	L419
 234  0000E885                                  L9999:
 235  0000E885                                   # 	               exp_regs[0] = 0;		/* ovfl results are cleared */
 236  0000E885    4d effffffd85                 	clrl	_exp_regs
 237  0000E88B                                   # 	          else
 238  0000E88B    11 0b                         	jbr 	L420
 239  0000E88D                                  L419:
 240  0000E88D                                   # 		       exp_regs[0] = dbl_value_1.m;
 241  0000E88D    0d effffffd7d effffffd78      	movl	_dbl_value_1,_exp_regs
 242  0000E898                                  L420:
 243  0000E898                                   # 	          run_code();			/* execute the instruction  */
 244  0000E898    fe 04 effffffd71              	callf	$4,_run_code
 245  0000E89F                                   # 	}
 246  0000E89F                                  L414:
 247  0000E89F    6d effffffd6b                 	incl	_index
 248  0000E8A5    13 ff45                       	jbr 	L416
 249  0000E8A8                                  L415:
 250  0000E8A8                                   # }
 251  0000E8A8    40                            	ret#2
 252  0000E8A9                                  	.set	L409,0x0
 253  0000E8A9                                  L411:
 254  0000E8A9    13 fedf                       	jbr 	L412
 255  0000E8AC                                  	.data
 256  00000998 *                                	.text
 257  0000E8AC                                  	.align	1
 258  0000E8AC                                  	.globl	_tst_r_d
 259  0000E8AC                                  _tst_r_d:
 260  0000E8AC    0000                          	.word	L421
 261  0000E8AE                                   # 
 262  0000E8AE                                   # 
 263  0000E8AE                                   # 
 264  0000E8AE                                   # /*******************************************************************
 265  0000E8AE                                   # * REGISTER DEFERRED ADDRESSING:
 266  0000E8AE                                   # *  instruction =  <op-code> <60> { <61> <62> }
 267  0000E8AE                                   # *******************************************************************/
 268  0000E8AE                                   # tst_r_d()
 269  0000E8AE                                   # {
 270  0000E8AE    13 00c4                       	jbr 	L423
 271  0000E8B1                                  L424:
 272  0000E8B1                                   # 	pipe_test = FALSE;
 273  0000E8B1    4d effffffd59                 	clrl	_pipe_test
 274  0000E8B7                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 275  0000E8B7    dd 8f00000000                 	pushl	$_load_regs
 276  0000E8BD    fe 08 effffffd4c              	callf	$8,_fill_reg_buf
 277  0000E8C4                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 278  0000E8C4    dd 8f00000000                 	pushl	$_exp_regs
 279  0000E8CA    fe 08 effffffd3f              	callf	$8,_fill_reg_buf
 280  0000E8D1                                   # 	addr_mode  = ADR_REG_DEF;
 281  0000E8D1    0d 0d effffffd38              	movl	$13,_addr_mode
 282  0000E8D8                                   # 	addr_code  = 0x60;
 283  0000E8D8    0d 8860 effffffd30            	movl	$96,_addr_code
 284  0000E8E0                                   # 	addr_code2 = 0x61;
 285  0000E8E0    0d 8861 effffffd28            	movl	$97,_addr_code2
 286  0000E8E8                                   # 	addr_code3 = 0x62;
 287  0000E8E8    0d 8862 effffffd20            	movl	$98,_addr_code3
 288  0000E8F0                                   # 	addr_size  = 0;			/* no address byte(s)   */
 289  0000E8F0    4d effffffd1a                 	clrl	_addr_size
 290  0000E8F6                                   # 	load_regs[0] = (int) adr_op1;	/* get addr of op. 1    */
 291  0000E8F6    0d effffffd14 effffffd0f      	movl	_adr_op1,_load_regs
 292  0000E901                                   # 	load_regs[1] = (int) adr_op2;	/* get addr of op. 2    */
 293  0000E901    0d effffffd09 effffffd08      	movl	_adr_op2,_load_regs+4
 294  0000E90C                                   # 	load_regs[2] = (int) adr_op3;	/* get addr of op. 3    */
 295  0000E90C    0d effffffcfe effffffd01      	movl	_adr_op3,_load_regs+8
 296  0000E917                                   # 	exp_regs[0] = load_regs[0];
 297  0000E917    0d effffffcf3 effffffcee      	movl	_load_regs,_exp_regs
 298  0000E922                                   # 	exp_regs[1] = load_regs[1];
 299  0000E922    0d effffffcec effffffce7      	movl	_load_regs+4,_exp_regs+4
 300  0000E92D                                   # 	exp_regs[2] = load_regs[2];
 301  0000E92D    0d effffffce5 effffffce0      	movl	_load_regs+8,_exp_regs+8
 302  0000E938                                   # 	pack_inst();			/* pack the instr. code */
 303  0000E938    fe 04 effffffcd1              	callf	$4,_pack_inst
 304  0000E93F                                   # 	for( index = 0; index <= max_index; index++ ) {
 305  0000E93F    4d effffffccb                 	clrl	_index
 306  0000E945                                  L427:
 307  0000E945    1d effffffcc5 effffffcc0      	cmpl	_index,_max_index
 308  0000E950    41 22                         	jgtr	L426
 309  0000E952                                   # 	          get_current_data( adr_op1, adr_op2 );
 310  0000E952    dd effffffcb8                 	pushl	_adr_op2
 311  0000E958    dd effffffcb2                 	pushl	_adr_op1
 312  0000E95E    fe 0c ef000004fb              	callf	$12,_get_current_data
 313  0000E965                                   # 	          run_code();		     /* execute the instruction */
 314  0000E965    fe 04 effffffca4              	callf	$4,_run_code
 315  0000E96C                                   # 	}
 316  0000E96C                                  L425:
 317  0000E96C    6d effffffc9e                 	incl	_index
 318  0000E972    11 d1                         	jbr 	L427
 319  0000E974                                  L426:
 320  0000E974                                   # }
 321  0000E974    40                            	ret#2
 322  0000E975                                  	.set	L421,0x0
 323  0000E975                                  L423:
 324  0000E975    13 ff39                       	jbr 	L424
 325  0000E978                                  	.data
 326  00000998 *                                	.text
 327  0000E978                                  	.align	1
 328  0000E978                                  	.globl	_tst_r_ld
 329  0000E978                                  _tst_r_ld:
 330  0000E978    0000                          	.word	L428
 331  0000E97A                                   # 
 332  0000E97A                                   # 
 333  0000E97A                                   # 
 334  0000E97A                                   # 
 335  0000E97A                                   # /*******************************************************************
 336  0000E97A                                   # * REGISTER + LONGWORD DISPLACEMENT DEFERRED ADDRESSING:
 337  0000E97A                                   # *  instruction =  <op-code> <f4> <(longword &ptr_to_op_1 -r4)>
 338  0000E97A                                   # *                         { <f5> <(longword &ptr_to_op_2 -r5)> }
 339  0000E97A                                   # *                         { <f6> <(longword &ptr_to_op_3 -r6)> }
 340  0000E97A                                   # *******************************************************************/
 341  0000E97A                                   # tst_r_ld()
 342  0000E97A                                   # {
 343  0000E97A    13 00f3                       	jbr 	L430
 344  0000E97D                                  L431:
 345  0000E97D                                   # 	pipe_test = FALSE;
 346  0000E97D    4d effffffc8d                 	clrl	_pipe_test
 347  0000E983                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 348  0000E983    dd 8f00000000                 	pushl	$_load_regs
 349  0000E989    fe 08 effffffc80              	callf	$8,_fill_reg_buf
 350  0000E990                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 351  0000E990    dd 8f00000000                 	pushl	$_exp_regs
 352  0000E996    fe 08 effffffc73              	callf	$8,_fill_reg_buf
 353  0000E99D                                   # 	addr_mode    = ADR_REG_L_DEF;
 354  0000E99D    0d 18 effffffc6c              	movl	$24,_addr_mode
 355  0000E9A4                                   # 	addr_code    = 0xf4;		/* addr 1 is offset by r4 */
 356  0000E9A4    0d 8900f4 effffffc63          	movl	$244,_addr_code
 357  0000E9AD                                   # 	addr_code2   = 0xf5;		/* addr 2 is offset by r5 */
 358  0000E9AD    0d 8900f5 effffffc5a          	movl	$245,_addr_code2
 359  0000E9B6                                   # 	addr_code3   = 0xf6;		/* addr 3 is offset by r6 */
 360  0000E9B6    0d 8900f6 effffffc51          	movl	$246,_addr_code3
 361  0000E9BF                                   # 	addr_size    = 4;		/* longword (4 byte) op.  */
 362  0000E9BF    0d 04 effffffc4a              	movl	$4,_addr_size
 363  0000E9C6                                   # 	addr_1 = (int) adr_op1_ptr - 123;	/* set the 1st offset */
 364  0000E9C6    3c 887b effffffc42 50         	subl3	$123,_adr_op1_ptr,r0
 365  0000E9CF    0d 50 effffffc3a              	movl	r0,_addr_1
 366  0000E9D6                                   # 	addr_2 = (int) adr_op2_ptr - 212;	/* set the 2nd offset */
 367  0000E9D6    3c 8900d4 effffffc31 50       	subl3	$212,_adr_op2_ptr,r0
 368  0000E9E0    0d 50 effffffc29              	movl	r0,_addr_2
 369  0000E9E7                                   # 	addr_3 = (int) adr_op3_ptr - 256;	/* set the 3rd offset */
 370  0000E9E7    3c 890100 effffffc20 50       	subl3	$256,_adr_op3_ptr,r0
 371  0000E9F1    0d 50 effffffc18              	movl	r0,_addr_3
 372  0000E9F8                                   # 	pack_inst();			/* pack the instr. code    */
 373  0000E9F8    fe 04 effffffc11              	callf	$4,_pack_inst
 374  0000E9FF                                   # 	load_regs[4] = 123;		/* reg 4 = 123             */
 375  0000E9FF    0d 887b effffffc19            	movl	$123,_load_regs+16
 376  0000EA07                                   # 	load_regs[5] = 212;		/* reg 5 = 212             */
 377  0000EA07    0d 8900d4 effffffc14          	movl	$212,_load_regs+20
 378  0000EA10                                   # 	load_regs[6] = 256;		/* reg 5 = 212             */
 379  0000EA10    0d 890100 effffffc0f          	movl	$256,_load_regs+24
 380  0000EA19                                   # 	exp_regs[4]  = load_regs[4];
 381  0000EA19    0d effffffc01 effffffbfc      	movl	_load_regs+16,_exp_regs+16
 382  0000EA24                                   # 	exp_regs[5]  = load_regs[5];
 383  0000EA24    0d effffffbfa effffffbf5      	movl	_load_regs+20,_exp_regs+20
 384  0000EA2F                                   # 	exp_regs[6]  = load_regs[6];
 385  0000EA2F    0d effffffbf3 effffffbee      	movl	_load_regs+24,_exp_regs+24
 386  0000EA3A                                   # 	for( index = 0; index <= max_index; index++ ) {
 387  0000EA3A    4d effffffbd0                 	clrl	_index
 388  0000EA40                                  L434:
 389  0000EA40    1d effffffbca effffffbc5      	cmpl	_index,_max_index
 390  0000EA4B    41 22                         	jgtr	L433
 391  0000EA4D                                   # 	     get_current_data( adr_op1, adr_op2 );
 392  0000EA4D    dd effffffbbd                 	pushl	_adr_op2
 393  0000EA53    dd effffffbb7                 	pushl	_adr_op1
 394  0000EA59    fe 0c ef00000400              	callf	$12,_get_current_data
 395  0000EA60                                   # 	     run_code();		/* execute the instruction */
 396  0000EA60    fe 04 effffffba9              	callf	$4,_run_code
 397  0000EA67                                   # 	}
 398  0000EA67                                  L432:
 399  0000EA67    6d effffffba3                 	incl	_index
 400  0000EA6D    11 d1                         	jbr 	L434
 401  0000EA6F                                  L433:
 402  0000EA6F                                   # }
 403  0000EA6F    40                            	ret#2
 404  0000EA70                                  	.set	L428,0x0
 405  0000EA70                                  L430:
 406  0000EA70    13 ff0a                       	jbr 	L431
 407  0000EA73                                  	.data
 408  00000998 *                                	.text
 409  0000EA73    00                            	.align	1
 410  0000EA74                                  	.globl	_tst_x_fpd
 411  0000EA74                                  _tst_x_fpd:
 412  0000EA74    0000                          	.word	L435
 413  0000EA76                                   # 
 414  0000EA76                                   # 
 415  0000EA76                                   # 
 416  0000EA76                                   # /*******************************************************************
 417  0000EA76                                   # * FRAME POINTER DEFERRED + LONGWORD INDEX ADDRESSING:
 418  0000EA76                                   # *  instruction =  <op-code> <44> <6d> { <45> <6d>   <46> <6d> }
 419  0000EA76                                   # * 
 420  0000EA76                                   # *  The indeces used will be either quadword indeces ( for DBL operands )
 421  0000EA76                                   # *  of longword indeces ( for SGL operands ).
 422  0000EA76                                   # *
 423  0000EA76                                   # * NOTE: 
 424  0000EA76                                   # *  dmp_op_2 is exactly 4 pages away from dmp_op_1. (200 hex quadwords)
 425  0000EA76                                   # *   IF THIS RELATIVE DISPLACEMENT IS CHANGED THEN THE R5 INDEX MUST
 426  0000EA76                                   # *   BE CHANGED IN THIS CODE!!! ( used by CMPF2, CMPD2, MULL2, MULL3 )
 427  0000EA76                                   # *  dmp_op_3 is exactly 5 pages and 4 bytes away from dmp_op_1 (501 hex
 428  0000EA76                                   # *   longwords). This is needed for MULL3.
 429  0000EA76                                   # *******************************************************************/
 430  0000EA76                                   # tst_x_fpd()
 431  0000EA76                                   # {
 432  0000EA76    13 0118                       	jbr 	L437
 433  0000EA79                                  L438:
 434  0000EA79                                   # 	pipe_test = FALSE;
 435  0000EA79    4d effffffb91                 	clrl	_pipe_test
 436  0000EA7F                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 437  0000EA7F    dd 8f00000000                 	pushl	$_load_regs
 438  0000EA85    fe 08 effffffb84              	callf	$8,_fill_reg_buf
 439  0000EA8C                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 440  0000EA8C    dd 8f00000000                 	pushl	$_exp_regs
 441  0000EA92    fe 08 effffffb77              	callf	$8,_fill_reg_buf
 442  0000EA99                                   # 	addr_mode  = ADR_I_FP_DEF;
 443  0000EA99    0d 19 effffffb70              	movl	$25,_addr_mode
 444  0000EAA0                                   # 	addr_code  = 0x44;		/* code for reg. 4 index  */
 445  0000EAA0    0d 8844 effffffb68            	movl	$68,_addr_code
 446  0000EAA8                                   # 	addr_code2 = 0x45;		/* code for reg. 5 index  */
 447  0000EAA8    0d 8845 effffffb60            	movl	$69,_addr_code2
 448  0000EAB0                                   # 	addr_code3 = 0x46;		/* code for reg. 6 index  */
 449  0000EAB0    0d 8846 effffffb58            	movl	$70,_addr_code3
 450  0000EAB8                                   # 	addr_codeB = 0x6d;		/* code for FP deferred   */
 451  0000EAB8    0d 886d effffffb50            	movl	$109,_addr_codeB
 452  0000EAC0                                   # 	addr_size = 0;			/* no addr. field per se  */
 453  0000EAC0    4d effffffb4a                 	clrl	_addr_size
 454  0000EAC6                                   # 	pack_inst();			/* pack the instr. code   */
 455  0000EAC6    fe 04 effffffb43              	callf	$4,_pack_inst
 456  0000EACD                                   # /*
 457  0000EACD                                   #  * set the frame pointer to '&operand_1 - 16 bytes' (2 quad-words)
 458  0000EACD                                   # */
 459  0000EACD                                   # 	sgl_dummy1 = (int) adr_op1;	/* get the addr of op #1  */
 460  0000EACD    0d effffffb3d effffffb38      	movl	_adr_op1,_sgl_dummy1
 461  0000EAD8                                   # 	load_regs[13] = sgl_dummy1-16;	/* FP = op 1's addr - 16  */
 462  0000EAD8    3c 10 effffffb31 50           	subl3	$16,_sgl_dummy1,r0
 463  0000EAE0    0d 50 effffffb5d              	movl	r0,_load_regs+52
 464  0000EAE7                                   # 	exp_regs[13] = load_regs[13];
 465  0000EAE7    0d effffffb57 effffffb52      	movl	_load_regs+52,_exp_regs+52
 466  0000EAF2                                   # 	if( (sgl_op) || 		/* Should we use a longword */
 467  0000EAF2                                   # 	    (op_code == LDFD_OP_CODE) ||    /* or a quadword index? */
 468  0000EAF2                                   # 	    (op_code == CVLD_OP_CODE) ) {
 469  0000EAF2    5d effffffb18                 	tstl	_sgl_op
 470  0000EAF8    21 15                         	jneq	L9998
 471  0000EAFA    1d effffffb10 890097          	cmpl	_op_code,$151
 472  0000EB03    31 0a                         	jeql	L9998
 473  0000EB05    1d effffffb05 8877            	cmpl	_op_code,$119
 474  0000EB0D    21 1b                         	jneq	L439
 475  0000EB0F                                  L9998:
 476  0000EB0F                                   # 	    load_regs[4] = 4;		/* FP to op_1 (longwords) */
 477  0000EB0F    0d 04 effffffb0a              	movl	$4,_load_regs+16
 478  0000EB16                                   # 	    load_regs[5] = 0x404;	/* FP to op_2 (longwords) */
 479  0000EB16    0d 890404 effffffb05          	movl	$1028,_load_regs+20
 480  0000EB1F                                   # 	    load_regs[6] = 0x505;	/* FP to op_3 (longwords) */
 481  0000EB1F    0d 890505 effffffb00          	movl	$1285,_load_regs+24
 482  0000EB28                                   # 	} else {
 483  0000EB28    11 10                         	jbr 	L440
 484  0000EB2A                                  L439:
 485  0000EB2A                                   # 	    load_regs[4] = 2;		/* FP to op_1 (quadwords) */
 486  0000EB2A    0d 02 effffffaef              	movl	$2,_load_regs+16
 487  0000EB31                                   # 	    load_regs[5] = 0x202;	/* FP to op_2 (quadwords) */
 488  0000EB31    0d 890202 effffffaea          	movl	$514,_load_regs+20
 489  0000EB3A                                   # 	}
 490  0000EB3A                                  L440:
 491  0000EB3A                                   # 	exp_regs[4] = load_regs[4];
 492  0000EB3A    0d effffffae0 effffffadb      	movl	_load_regs+16,_exp_regs+16
 493  0000EB45                                   # 	exp_regs[5] = load_regs[5];
 494  0000EB45    0d effffffad9 effffffad4      	movl	_load_regs+20,_exp_regs+20
 495  0000EB50                                   # 	exp_regs[6] = load_regs[6];
 496  0000EB50    0d effffffad2 effffffacd      	movl	_load_regs+24,_exp_regs+24
 497  0000EB5B                                   # 	for( index = 0; index <= max_index; index++ ) {
 498  0000EB5B    4d effffffaaf                 	clrl	_index
 499  0000EB61                                  L443:
 500  0000EB61    1d effffffaa9 effffffaa4      	cmpl	_index,_max_index
 501  0000EB6C    41 22                         	jgtr	L442
 502  0000EB6E                                   # 	     get_current_data( adr_op1, adr_op2 );
 503  0000EB6E    dd effffffa9c                 	pushl	_adr_op2
 504  0000EB74    dd effffffa96                 	pushl	_adr_op1
 505  0000EB7A    fe 0c ef000002df              	callf	$12,_get_current_data
 506  0000EB81                                   # 	     run_code();		/* execute the instruction */
 507  0000EB81    fe 04 effffffa88              	callf	$4,_run_code
 508  0000EB88                                   # 	}
 509  0000EB88                                  L441:
 510  0000EB88    6d effffffa82                 	incl	_index
 511  0000EB8E    11 d1                         	jbr 	L443
 512  0000EB90                                  L442:
 513  0000EB90                                   # }
 514  0000EB90    40                            	ret#2
 515  0000EB91                                  	.set	L435,0x0
 516  0000EB91                                  L437:
 517  0000EB91    13 fee5                       	jbr 	L438
 518  0000EB94                                  	.data
 519  00000998 *                                	.text
 520  0000EB94                                  	.align	1
 521  0000EB94                                  	.globl	_tst_p1
 522  0000EB94                                  _tst_p1:
 523  0000EB94    0000                          	.word	L444
 524  0000EB96                                   # 
 525  0000EB96                                   # 
 526  0000EB96                                   # 
 527  0000EB96                                   # 
 528  0000EB96                                   # /*******************************************************************
 529  0000EB96                                   # * PIPELINE TEST #1 -LOAD THE ACCUMULATOR JUST BEFORE THE OPERATION
 530  0000EB96                                   # *  instruction =  <ldx> <62> <op-code> <50> { <54> <56> }
 531  0000EB96                                   # *******************************************************************/
 532  0000EB96                                   # tst_p1()
 533  0000EB96                                   # {
 534  0000EB96    13 015c                       	jbr 	L446
 535  0000EB99                                  L447:
 536  0000EB99                                   # 	pipe_test = 1;			/* pipeline test #1       */
 537  0000EB99    0d 01 effffffa70              	movl	$1,_pipe_test
 538  0000EBA0                                   # 	if( acc_ld_size == DBL )
 539  0000EBA0    1d effffffa6a 02              	cmpl	_acc_ld_size,$2
 540  0000EBA7    21 09                         	jneq	L448
 541  0000EBA9                                   # 	     pipe_inst1 = LDD_OP_CODE;
 542  0000EBA9    0d 07 effffffa60              	movl	$7,_pipe_inst1
 543  0000EBB0                                   # 	else
 544  0000EBB0    11 07                         	jbr 	L449
 545  0000EBB2                                  L448:
 546  0000EBB2                                   # 	     pipe_inst1 = LDF_OP_CODE;
 547  0000EBB2    0d 06 effffffa57              	movl	$6,_pipe_inst1
 548  0000EBB9                                  L449:
 549  0000EBB9                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 550  0000EBB9    dd 8f00000000                 	pushl	$_load_regs
 551  0000EBBF    fe 08 effffffa4a              	callf	$8,_fill_reg_buf
 552  0000EBC6                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 553  0000EBC6    dd 8f00000000                 	pushl	$_exp_regs
 554  0000EBCC    fe 08 effffffa3d              	callf	$8,_fill_reg_buf
 555  0000EBD3                                   # 	if( op_code == MULL3_OP_CODE )
 556  0000EBD3    1d effffffa37 885c            	cmpl	_op_code,$92
 557  0000EBDB    21 06                         	jneq	L450
 558  0000EBDD                                   # 	     exp_regs[6]  = 0;		/* op 3 s/b = 0 if MULL3 */
 559  0000EBDD    4d effffffa45                 	clrl	_exp_regs+24
 560  0000EBE3                                   # 	addr_code_p1 = 0x62;		/* piped load is via reg 2 */
 561  0000EBE3                                  L450:
 562  0000EBE3    0d 8862 effffffa25            	movl	$98,_addr_code_p1
 563  0000EBEB                                   # 	load_regs[2] = (int)&dbl_ld_acc; /* point R2 to the load data */
 564  0000EBEB    0d 8f00000000 effffffa22      	movl	$_dbl_ld_acc,_load_regs+8
 565  0000EBF6                                   # 	exp_regs[2] =  (int)&dbl_ld_acc;
 566  0000EBF6    0d 8f00000000 effffffa17      	movl	$_dbl_ld_acc,_exp_regs+8
 567  0000EC01                                   # 	addr_mode = ADR_REG;
 568  0000EC01    0d 0c effffffa08              	movl	$12,_addr_mode
 569  0000EC08                                   # 	addr_code  = 0x50;		/* 1st op in registers 0/1 */
 570  0000EC08    0d 8850 effffffa00            	movl	$80,_addr_code
 571  0000EC10                                   # 	addr_code2 = 0x54;		/* 2nd op in registers 4/5 */
 572  0000EC10    0d 8854 effffff9f8            	movl	$84,_addr_code2
 573  0000EC18                                   # 	addr_code3 = 0x56;		/* 3rd op in register  6   */
 574  0000EC18    0d 8856 effffff9f0            	movl	$86,_addr_code3
 575  0000EC20                                   # 	addr_size = 0;			/* no addressing bytes    */
 576  0000EC20    4d effffff9ea                 	clrl	_addr_size
 577  0000EC26                                   # 	pack_inst();			/* pack the instr. code   */
 578  0000EC26    fe 04 effffff9e3              	callf	$4,_pack_inst
 579  0000EC2D                                   # 	for( index = 0; index <= max_index; index++ ) {
 580  0000EC2D    4d effffff9dd                 	clrl	_index
 581  0000EC33                                  L453:
 582  0000EC33    1d effffff9d7 effffff9d2      	cmpl	_index,_max_index
 583  0000EC3E    51 03 13 00ab                 	jgtr	L452
 584  0000EC43                                   # 	          get_current_data( adr_op1, adr_op2 ); /* addr's not used */
 585  0000EC43    dd effffff9c7                 	pushl	_adr_op2
 586  0000EC49    dd effffff9c1                 	pushl	_adr_op1
 587  0000EC4F    fe 0c ef0000020a              	callf	$12,_get_current_data
 588  0000EC56                                   # 	          load_regs[0] = dbl_value_1.m; /* set the data       */
 589  0000EC56    0d effffff9b4 effffff9af      	movl	_dbl_value_1,_load_regs
 590  0000EC61                                   # 	          load_regs[1] = dbl_value_1.l;
 591  0000EC61    0d effffff9ad effffff9a8      	movl	_dbl_value_1+4,_load_regs+4
 592  0000EC6C                                   # 	          load_regs[4] = dbl_value_2.m;
 593  0000EC6C    0d effffff99e effffff9a9      	movl	_dbl_value_2,_load_regs+16
 594  0000EC77                                   # 	          load_regs[5] = dbl_value_2.l;
 595  0000EC77    0d effffff997 effffff9a2      	movl	_dbl_value_2+4,_load_regs+20
 596  0000EC82                                   # 		  if( op_code == MULL2_OP_CODE )
 597  0000EC82    1d effffff988 884c            	cmpl	_op_code,$76
 598  0000EC8A    21 08                         	jneq	L454
 599  0000EC8C                                   # 	  	       exp_regs[4] = 0;		/* op 2 s/b = 0 if MULL2 */
 600  0000EC8C    4d effffff98e                 	clrl	_exp_regs+16
 601  0000EC92                                   # 	          else
 602  0000EC92    11 0b                         	jbr 	L455
 603  0000EC94                                  L454:
 604  0000EC94                                   # 		       exp_regs[4] = dbl_value_2.m;
 605  0000EC94    0d effffff976 effffff981      	movl	_dbl_value_2,_exp_regs+16
 606  0000EC9F                                  L455:
 607  0000EC9F                                   # 	          exp_regs[5]  = dbl_value_2.l;
 608  0000EC9F    0d effffff96f effffff97a      	movl	_dbl_value_2+4,_exp_regs+20
 609  0000ECAA                                   # 	          exp_regs[1]  = dbl_value_1.l;	/* op #1's LSW won't change */
 610  0000ECAA    0d effffff964 effffff95f      	movl	_dbl_value_1+4,_exp_regs+4
 611  0000ECB5                                   # 	          if( (op_code == CVFL_OP_CODE) || /* correct for sgl store */
 612  0000ECB5                                   # 	              (op_code == CVDL_OP_CODE) )
 613  0000ECB5    1d effffff955 890086          	cmpl	_op_code,$134
 614  0000ECBE    31 0b                         	jeql	L9997
 615  0000ECC0    1d effffff94a 890087          	cmpl	_op_code,$135
 616  0000ECC9    21 08                         	jneq	L456
 617  0000ECCB                                  L9997:
 618  0000ECCB                                   # 	               exp_regs[0] = 0;		/* fault results are cleared */
 619  0000ECCB    4d effffff93f                 	clrl	_exp_regs
 620  0000ECD1                                   # 	          else
 621  0000ECD1    11 0b                         	jbr 	L457
 622  0000ECD3                                  L456:
 623  0000ECD3                                   # 		       exp_regs[0] = dbl_value_1.m;
 624  0000ECD3    0d effffff937 effffff932      	movl	_dbl_value_1,_exp_regs
 625  0000ECDE                                  L457:
 626  0000ECDE                                   # 	          run_code();			/* execute the instruction  */
 627  0000ECDE    fe 04 effffff92b              	callf	$4,_run_code
 628  0000ECE5                                   # 	}
 629  0000ECE5                                  L451:
 630  0000ECE5    6d effffff925                 	incl	_index
 631  0000ECEB    13 ff45                       	jbr 	L453
 632  0000ECEE                                  L452:
 633  0000ECEE                                   # 	pipe_test = FALSE;
 634  0000ECEE    4d effffff91c                 	clrl	_pipe_test
 635  0000ECF4                                   # }
 636  0000ECF4    40                            	ret#2
 637  0000ECF5                                  	.set	L444,0x0
 638  0000ECF5                                  L446:
 639  0000ECF5    13 fea1                       	jbr 	L447
 640  0000ECF8                                  	.data
 641  00000998 *                                	.text
 642  0000ECF8                                  	.align	1
 643  0000ECF8                                  	.globl	_tst_p2
 644  0000ECF8                                  _tst_p2:
 645  0000ECF8    0000                          	.word	L458
 646  0000ECFA                                   # 
 647  0000ECFA                                   # 
 648  0000ECFA                                   # 
 649  0000ECFA                                   # 
 650  0000ECFA                                   # 
 651  0000ECFA                                   # /*******************************************************************
 652  0000ECFA                                   # * PIPELINE TEST #2 -ADD TO THE ACCUMULATOR JUST BEFORE THE OPERATION
 653  0000ECFA                                   # *  instruction =  <addx> <62> <op-code> <50> { <54> <56> }
 654  0000ECFA                                   # *******************************************************************/
 655  0000ECFA                                   # tst_p2()
 656  0000ECFA                                   # {
 657  0000ECFA    13 0160                       	jbr 	L460
 658  0000ECFD                                  L461:
 659  0000ECFD                                   # 	pipe_test = 2;			/* pipeline test #2       */
 660  0000ECFD    0d 02 effffff90c              	movl	$2,_pipe_test
 661  0000ED04                                   # 	if( acc_ld_size == DBL )
 662  0000ED04    1d effffff906 02              	cmpl	_acc_ld_size,$2
 663  0000ED0B    21 0b                         	jneq	L462
 664  0000ED0D                                   # 	     pipe_inst1 = ADDD_OP_CODE;
 665  0000ED0D    0d 8900c7 effffff8fa          	movl	$199,_pipe_inst1
 666  0000ED16                                   # 	else
 667  0000ED16    11 09                         	jbr 	L463
 668  0000ED18                                  L462:
 669  0000ED18                                   # 	     pipe_inst1 = ADDF_OP_CODE;
 670  0000ED18    0d 8900c6 effffff8ef          	movl	$198,_pipe_inst1
 671  0000ED21                                  L463:
 672  0000ED21                                   # 	fill_reg_buf( load_regs );	/* set data for registers */
 673  0000ED21    dd 8f00000000                 	pushl	$_load_regs
 674  0000ED27    fe 08 effffff8e2              	callf	$8,_fill_reg_buf
 675  0000ED2E                                   # 	fill_reg_buf( exp_regs );	/* set data for registers */
 676  0000ED2E    dd 8f00000000                 	pushl	$_exp_regs
 677  0000ED34    fe 08 effffff8d5              	callf	$8,_fill_reg_buf
 678  0000ED3B                                   # 	addr_code_p1 = 0x62;		/* piped load is via reg 2 */
 679  0000ED3B    0d 8862 effffff8cd            	movl	$98,_addr_code_p1
 680  0000ED43                                   # 	load_regs[2] = (int)&dbl_ld_acc; /* point R2 to the load data */
 681  0000ED43    0d 8f00000000 effffff8ca      	movl	$_dbl_ld_acc,_load_regs+8
 682  0000ED4E                                   # 	exp_regs[2] =  (int)&dbl_ld_acc;
 683  0000ED4E    0d 8f00000000 effffff8bf      	movl	$_dbl_ld_acc,_exp_regs+8
 684  0000ED59                                   # 	if( op_code == MULL3_OP_CODE )
 685  0000ED59    1d effffff8b1 885c            	cmpl	_op_code,$92
 686  0000ED61    21 06                         	jneq	L464
 687  0000ED63                                   # 	     exp_regs[6] = 0;		/* op 3 s/b = 0 */
 688  0000ED63    4d effffff8bf                 	clrl	_exp_regs+24
 689  0000ED69                                   # 	addr_mode = ADR_REG;
 690  0000ED69                                  L464:
 691  0000ED69    0d 0c effffff8a0              	movl	$12,_addr_mode
 692  0000ED70                                   # 	addr_code  = 0x50;		/* 1st op in registers 0/1 */
 693  0000ED70    0d 8850 effffff898            	movl	$80,_addr_code
 694  0000ED78                                   # 	addr_code2 = 0x54;		/* 2nd op in registers 4/5 */
 695  0000ED78    0d 8854 effffff890            	movl	$84,_addr_code2
 696  0000ED80                                   # 	addr_code3 = 0x56;		/* 3rd op in register  6   */
 697  0000ED80    0d 8856 effffff888            	movl	$86,_addr_code3
 698  0000ED88                                   # 	addr_size = 0;			/* no addressing bytes    */
 699  0000ED88    4d effffff882                 	clrl	_addr_size
 700  0000ED8E                                   # 	pack_inst();			/* pack the instr. code   */
 701  0000ED8E    fe 04 effffff87b              	callf	$4,_pack_inst
 702  0000ED95                                   # 	for( index = 0; index <= max_index; index++ ) {
 703  0000ED95    4d effffff875                 	clrl	_index
 704  0000ED9B                                  L467:
 705  0000ED9B    1d effffff86f effffff86a      	cmpl	_index,_max_index
 706  0000EDA6    51 03 13 00ab                 	jgtr	L466
 707  0000EDAB                                   # 	          get_current_data( adr_op1, adr_op2 ); /* addr's not used */
 708  0000EDAB    dd effffff85f                 	pushl	_adr_op2
 709  0000EDB1    dd effffff859                 	pushl	_adr_op1
 710  0000EDB7    fe 0c ef000000a2              	callf	$12,_get_current_data
 711  0000EDBE                                   # 	          load_regs[0] = dbl_value_1.m; /* set the data       */
 712  0000EDBE    0d effffff84c effffff847      	movl	_dbl_value_1,_load_regs
 713  0000EDC9                                   # 	          load_regs[1] = dbl_value_1.l;
 714  0000EDC9    0d effffff845 effffff840      	movl	_dbl_value_1+4,_load_regs+4
 715  0000EDD4                                   # 	          load_regs[4] = dbl_value_2.m;
 716  0000EDD4    0d effffff836 effffff841      	movl	_dbl_value_2,_load_regs+16
 717  0000EDDF                                   # 	          load_regs[5] = dbl_value_2.l;
 718  0000EDDF    0d effffff82f effffff83a      	movl	_dbl_value_2+4,_load_regs+20
 719  0000EDEA                                   # 		  if( op_code == MULL2_OP_CODE )
 720  0000EDEA    1d effffff820 884c            	cmpl	_op_code,$76
 721  0000EDF2    21 08                         	jneq	L468
 722  0000EDF4                                   # 	               exp_regs[4] = 0;		/* op 2 s/b = 0 */
 723  0000EDF4    4d effffff826                 	clrl	_exp_regs+16
 724  0000EDFA                                   # 		  else
 725  0000EDFA    11 0b                         	jbr 	L469
 726  0000EDFC                                  L468:
 727  0000EDFC                                   # 	               exp_regs[4] = dbl_value_2.m;  /* op #2 s/n change */
 728  0000EDFC    0d effffff80e effffff819      	movl	_dbl_value_2,_exp_regs+16
 729  0000EE07                                  L469:
 730  0000EE07                                   # 	          exp_regs[5]  = dbl_value_2.l;
 731  0000EE07    0d effffff807 effffff812      	movl	_dbl_value_2+4,_exp_regs+20
 732  0000EE12                                   # 	          exp_regs[1]  = dbl_value_1.l;	/* op #1's LSW won't change */
 733  0000EE12    0d effffff7fc effffff7f7      	movl	_dbl_value_1+4,_exp_regs+4
 734  0000EE1D                                   # 	          if( (op_code == CVFL_OP_CODE) || /* correct for sgl store */
 735  0000EE1D                                   # 	              (op_code == CVDL_OP_CODE) )
 736  0000EE1D    1d effffff7ed 890086          	cmpl	_op_code,$134
 737  0000EE26    31 0b                         	jeql	L9996
 738  0000EE28    1d effffff7e2 890087          	cmpl	_op_code,$135
 739  0000EE31    21 08                         	jneq	L470
 740  0000EE33                                  L9996:
 741  0000EE33                                   # 	               exp_regs[0] = 0;		/* fault results are cleared */
 742  0000EE33    4d effffff7d7                 	clrl	_exp_regs
 743  0000EE39                                   # 	          else
 744  0000EE39    11 0b                         	jbr 	L471
 745  0000EE3B                                  L470:
 746  0000EE3B                                   # 		       exp_regs[0] = dbl_value_1.m;
 747  0000EE3B    0d effffff7cf effffff7ca      	movl	_dbl_value_1,_exp_regs
 748  0000EE46                                  L471:
 749  0000EE46                                   # 	          run_code();			/* execute the instruction  */
 750  0000EE46    fe 04 effffff7c3              	callf	$4,_run_code
 751  0000EE4D                                   # 	}
 752  0000EE4D                                  L465:
 753  0000EE4D    6d effffff7bd                 	incl	_index
 754  0000EE53    13 ff45                       	jbr 	L467
 755  0000EE56                                  L466:
 756  0000EE56                                   # 	pipe_test = FALSE;
 757  0000EE56    4d effffff7b4                 	clrl	_pipe_test
 758  0000EE5C                                   # }
 759  0000EE5C    40                            	ret#2
 760  0000EE5D                                  	.set	L458,0x0
 761  0000EE5D                                  L460:
 762  0000EE5D    13 fe9d                       	jbr 	L461
 763  0000EE60                                  	.data
 764  00000998 *                                	.text
 765  0000EE60                                  	.align	1
 766  0000EE60                                  	.globl	_get_current_data
 767  0000EE60                                  _get_current_data:
 768  0000EE60    0000                          	.word	L472
 769  0000EE62                                   # 
 770  0000EE62                                   # 
 771  0000EE62                                   # 
 772  0000EE62                                   # 
 773  0000EE62                                   # 
 774  0000EE62                                   # 
 775  0000EE62                                   # 
 776  0000EE62                                   # /***************************************************************************
 777  0000EE62                                   # *		Get the Current Data Values
 778  0000EE62                                   # *
 779  0000EE62                                   # * In most cases the first operand is loaded into the accumulator.
 780  0000EE62                                   # * If we're testing Reserved Operands then, unless it's LOGF, we'd better not
 781  0000EE62                                   # * load the Accumulator with the Resop before executing the instruction.
 782  0000EE62                                   # * Ergo and towit, we'll use a dummy Acc. for those cases. 
 783  0000EE62                                   # * The 4 instructions currently tested that have 2 or more operands are:
 784  0000EE62                                   # * CMPF2, CMPD2, MULL2, MULL3. None of these accesses the accumulator so we'll 
 785  0000EE62                                   # * use dummy accumulator data for these too.
 786  0000EE62                                   # ***************************************************************************/
 787  0000EE62                                   # get_current_data( dptr_1, dptr_2 )
 788  0000EE62                                   # struct u64 *dptr_1;				/* pointer to 1st operand */
 789  0000EE62                                   # struct u64 *dptr_2;				/* pointer to 2nd operand */
 790  0000EE62                                   # {
 791  0000EE62    13 00fa                       	jbr 	L474
 792  0000EE65                                  L475:
 793  0000EE65                                   # 	if( (no_ops >= 2) ||
 794  0000EE65                                   # 	    ((test_event == RESOP_CODE) && (op_code != LOGF_OP_CODE)) ) {
 795  0000EE65    1d effffff7a5 02              	cmpl	_no_ops,$2
 796  0000EE6C    81 12                         	jgeq	L9995
 797  0000EE6E    1d effffff79c 2d              	cmpl	_test_event,$45
 798  0000EE75    21 6a                         	jneq	L476
 799  0000EE77    1d effffff793 35              	cmpl	_op_code,$53
 800  0000EE7E    31 61                         	jeql	L476
 801  0000EE80                                  L9995:
 802  0000EE80                                   # 	     dbl_ld_acc   = acc_data[ index ];
 803  0000EE80    48 03 effffff789 50           	shll	$3,_index,r0
 804  0000EE88    0c 8f00000000 50              	addl2	$_acc_data,r0
 805  0000EE8F    0d a004 effffff77d            	movl	4(r0),_dbl_ld_acc+4
 806  0000EE97    0d 60 effffff772              	movl	(r0),_dbl_ld_acc
 807  0000EE9E                                   # 	     dbl_value_1  = data_ptr[ index ].op_1;
 808  0000EE9E    48 04 effffff76b 50           	shll	$4,_index,r0
 809  0000EEA6    1c 50 effffff763 50           	addl3	r0,_data_ptr,r0
 810  0000EEAE    0d a004 effffff75e            	movl	4(r0),_dbl_value_1+4
 811  0000EEB6    0d 60 effffff753              	movl	(r0),_dbl_value_1
 812  0000EEBD                                   # 	     dbl_value_2  = data_ptr[ index ].op_2;
 813  0000EEBD    48 04 effffff74c 50           	shll	$4,_index,r0
 814  0000EEC5    1c 50 effffff744 50           	addl3	r0,_data_ptr,r0
 815  0000EECD    0c 08 50                      	addl2	$8,r0
 816  0000EED0    0d a004 effffff73c            	movl	4(r0),_dbl_value_2+4
 817  0000EED8    0d 60 effffff731              	movl	(r0),_dbl_value_2
 818  0000EEDF                                   # 	} else {
 819  0000EEDF    11 57                         	jbr 	L477
 820  0000EEE1                                  L476:
 821  0000EEE1                                   # 	     dbl_ld_acc   = data_ptr[ index ].op_1;
 822  0000EEE1    48 04 effffff728 50           	shll	$4,_index,r0
 823  0000EEE9    1c 50 effffff720 50           	addl3	r0,_data_ptr,r0
 824  0000EEF1    0d a004 effffff71b            	movl	4(r0),_dbl_ld_acc+4
 825  0000EEF9    0d 60 effffff710              	movl	(r0),_dbl_ld_acc
 826  0000EF00                                   # 	     dbl_value_1  = data_ptr[ index ].op_2;
 827  0000EF00    48 04 effffff709 50           	shll	$4,_index,r0
 828  0000EF08    1c 50 effffff701 50           	addl3	r0,_data_ptr,r0
 829  0000EF10    0c 08 50                      	addl2	$8,r0
 830  0000EF13    0d a004 effffff6f9            	movl	4(r0),_dbl_value_1+4
 831  0000EF1B    0d 60 effffff6ee              	movl	(r0),_dbl_value_1
 832  0000EF22                                   # 	     dbl_value_2  = dbl_value_1;
 833  0000EF22    0d effffff6ec effffff6e7      	movl	_dbl_value_1+4,_dbl_value_2+4
 834  0000EF2D    0d effffff6dd effffff6d8      	movl	_dbl_value_1,_dbl_value_2
 835  0000EF38                                   # 	}
 836  0000EF38                                  L477:
 837  0000EF38                                   # 	*dptr_1 = dbl_value_1;			/* set 1st operand */
 838  0000EF38    0d 8f00000000 50              	movl	$_dbl_value_1,r0
 839  0000EF3F    0d ad04 51                    	movl	4(fp),r1
 840  0000EF43    0d a004 a104                  	movl	4(r0),4(r1)
 841  0000EF48    0d 60 61                      	movl	(r0),(r1)
 842  0000EF4B                                   # 	*dptr_2 = dbl_value_2;			/* set 2nd operand */
 843  0000EF4B    0d 8f00000000 50              	movl	$_dbl_value_2,r0
 844  0000EF52    0d ad08 51                    	movl	8(fp),r1
 845  0000EF56    0d a004 a104                  	movl	4(r0),4(r1)
 846  0000EF5B    0d 60 61                      	movl	(r0),(r1)
 847  0000EF5E                                   # }
 848  0000EF5E    40                            	ret#2
 849  0000EF5F                                  	.set	L472,0x0
 850  0000EF5F                                  L474:
 851  0000EF5F    13 ff03                       	jbr 	L475
 852  0000EF62                                  	.data
 853  00000998 *                                	.text
 854  0000EF62                                  	.align	1
 855  0000EF62                                  	.globl	_set_load_flag
 856  0000EF62                                  _set_load_flag:
 857  0000EF62    0000                          	.word	L478
 858  0000EF64                                   # 
 859  0000EF64                                   # 
 860  0000EF64                                   # 
 861  0000EF64                                   # 
 862  0000EF64                                   # /*
 863  0000EF64                                   #  ***************************************************************************
 864  0000EF64                                   #  *
 865  0000EF64                                   #  *	Set or reset the LOAD_ACCUMULATOR flag
 866  0000EF64                                   #  *
 867  0000EF64                                   #  *  If the current instruction loads the accumulator then set the flag.
 868  0000EF64                                   #  ***************************************************************************
 869  0000EF64                                   # */
 870  0000EF64                                   # set_load_flag()
 871  0000EF64                                   # {
 872  0000EF64    11 3f                         	jbr 	L480
 873  0000EF66                                  L481:
 874  0000EF66                                   # 	if( (op_code == LDF_OP_CODE)  ||	/* load SGL Acc. */
 875  0000EF66                                   # 	    (op_code == LNF_OP_CODE)  ||	/* load / negate SGL Acc. */
 876  0000EF66                                   # 	    (op_code == LDD_OP_CODE)  ||	/* load SGL Acc. */
 877  0000EF66                                   # 	    (op_code == LND_OP_CODE)  ||	/* load / negate SGL Acc. */
 878  0000EF66                                   # 	    (op_code == LDFD_OP_CODE) )		/* load SGL to DBL Acc. */
 879  0000EF66    1d effffff6a4 06              	cmpl	_op_code,$6
 880  0000EF6D    31 26                         	jeql	L9994
 881  0000EF6F    1d effffff69b 16              	cmpl	_op_code,$22
 882  0000EF76    31 1d                         	jeql	L9994
 883  0000EF78    1d effffff692 07              	cmpl	_op_code,$7
 884  0000EF7F    31 14                         	jeql	L9994
 885  0000EF81    1d effffff689 17              	cmpl	_op_code,$23
 886  0000EF88    31 0b                         	jeql	L9994
 887  0000EF8A    1d effffff680 890097          	cmpl	_op_code,$151
 888  0000EF93    21 09                         	jneq	L482
 889  0000EF95                                  L9994:
 890  0000EF95                                   # 	     load_type_inst = TRUE;
 891  0000EF95    0d 01 effffff674              	movl	$1,_load_type_inst
 892  0000EF9C                                   # 	else
 893  0000EF9C    11 06                         	jbr 	L483
 894  0000EF9E                                  L482:
 895  0000EF9E                                   # 	     load_type_inst = FALSE;
 896  0000EF9E    4d effffff66c                 	clrl	_load_type_inst
 897  0000EFA4                                  L483:
 898  0000EFA4                                   # }
 899  0000EFA4    40                            	ret#2
 900  0000EFA5                                  	.set	L478,0x0
 901  0000EFA5                                  L480:
 902  0000EFA5    11 bf                         	jbr 	L481
 903  0000EFA7                                  	.data
 904  00000998 *                                 # 
 904  00000998 *                                 # 

unix.superglobalmegacorp.com

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