Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - expgen.c05
There are 2 other files named expgen.c05 in the archive. Click here to see a list.
 INS 18/1	;05C1

	;JEH	07-DEC-82	[1441] Fix edit 1402 and 1430 for non-BIS compilers
	;JEH	05-NOV-82	[1430] STORE INTERMEDIARY RESULT IN 2 WORDS IF DP 
	;				FLOATING POINT MODE
	;JEH	30-SEP-82	[1402] FORCE FLOATING POINT DIVIDE, BUT
	;				CONVERT BACK TO INTEGER ARITH. WHEN DONE
	;RLF	14-APR-82	[1352] FIX DP FLOATING POINT SUBTRACT
 REP 45/2	;05C2
		LDB	TD,DA.USG##	;[637] GET USAGE OF TARGET
		CAIN	TD,%US.C1	;[637] IF IT IS COMP-1
		SETOM	FLTDIV		;[637] SET FLAG 
 WIT
	;[1402]	LDB	TD,DA.USG##	;[637] GET USAGE OF TARGET
	;[1402]	CAIN	TD,%US.C1	;[637] IF IT IS COMP-1
	;[1402]	SETOM	FLTDIV		;[637] SET FLAG 
 INS 23/8	;05C3
	IFN BIS,<
		CAIE	TE,F2MODE	;[1352] CHECK FOR FLOATING POINT
	>
 REP 9/10	;05C4
		  JRST	CDIV3
 WIT
		  JRST	CDIV4		;[1402] SEE IF "A" IS FLOATING POINT
 REP 37/10	;05C5
		JRST	CMUL4
 WIT
		SETZM	FLTDIV		;[1402]
		JRST	CMUL4

	CDIV4:	MOVE	TE,EMODEA	;[1402] GET MODE OF OPERAND IN AC'S

	IFE BIS<CAIN	TE,FPMODE>	;[1402] IF FIELD IN AC'S
	IFN BIS<CAIN	TE,F2MODE>	;[1402]  IS ALREADY FLOATING POINT,
		JRST	CDIV3		;[1402] GENERATE THE DIVIDE
		HRRZ	TA,EBYTEB	;[1402] ELSE, FIRST MAKE B OP'S
		HRRZ	TB,VALLOC	;[1402]  BYTEPOINTER RELATIVE
		SUB	TA,TB		;[1402]  (IF IT IS A BYTE POINTER)
		SKIPL	TA		;[1402]  IN CASE OF TABLE 
		HRRM	TA,EBYTEB	;[1402]  EXPANSION
	IFE BIS<PUSHJ	PP,CCXFP.>	;[1441] [1402] CONVERT FIELD IN AC'S
	IFN BIS<PUSHJ	PP,CCXF2.>	;[1402]	 TO FP
		HRRZ	TA,VALLOC	;[1402] MAKE B OP'S POINTER
		HRRZ	TB,EBYTEB	;[1402]  ABSOLUTE AGAIN
		SKIPE	TB		;[1402]
		ADDM	TA,EBYTEB	;[1402]  

		JRST	CDIV3		;[1402] GENERATE DIVIDE CODE
 DEL 8/18	;05C6

 INS 34/18	;05C7
	IFN BIS,<
		CAIN	TD,F2MODE	;[1430] IS IT DP FLOATING POINT?
		MOVEI	TE,2		;[1430] YES
	> ;BIS - [1441]
 INS 19/23	;05C8

 SUM 76658