Google
 

Trailing-Edge - PDP-10 Archives - bb-kl11c-bm_tops20_v6_1_atpch1_16 - autopatch/expgen.c08
There are 2 other files named expgen.c08 in the archive. Click here to see a list.
 INS 1/1	;08C1
	; UPD ID= 1577 on 5/4/84 at 10:57 AM by MCARLETON                       

 INS 25/1	;08C2
	;JEH	26-APR-84	[1522] Clean up EOP stack if error w/ ref. modifiers
	;JEH	19-DEC-83	[1511] Test for need of float. point correction factor
	;				before generating rounding statements
 DEL 129/3	;08C3
		MOVE	TC,OPERND
		MOVE	TC,1(TC)
		TLNE	TC,GNROUN
		JRST	[PUSHJ	PP,ROUND	;[762] ROUNDING REQUIRED
			JRST	CEND1C]		;[762]
 REP 143/3	;08C4
	CEND1C:	SETZM	EMULSZ		;SET "SINGLE RESULT" INDICATOR
 WIT
	CEND1C:	HRRZ	TC,OPERND	;[1511] Destination operand address
		MOVE	TC,1(TC)	;[1511] second word of operand pair
		TLNE	TC,GNROUN	;[1511] test on rounding bit
		PUSHJ	PP,ROUND##	;[1511] generate rounding code
		SETZM	EMULSZ		;SET "SINGLE RESULT" INDICATOR
 DEL 31/5	;08C5

 INS 36/5	;08C6
		MOVE	CH,EOPNXT	;[1522]
		MOVEM	CH,CUREOP	;[1522]
 REP 28/20	;08C7
		TLNE	W1,GNFIGC	;Make sure it's not FG of low-value
		JRST	GTOPN4		;It is
 WIT
		TLNN	W1,GNFIGC	;[1522] Make sure it's not FC of low-values
		JRST	GTOPN5		;[1522] It's not

 INS 49/20	;08C8
		TSWF	FERROR		;[1522] Error set in REFMOD?
		JRST	GTOPN7		;[1522] Yes, get rid of modifiers
		SETZM	RMFLAG##	;
		TXNE	W1,RFMLEN	;[1522] have we done the length?
		POPJ	PP,		;yes, exit
 REP 52/20	;08C9
		SETZM	RMFLAG##	;
		TXNN	W1,RFMLEN	;have we done the length?
		JRST	GTOPN4		;no, do it now
		POPJ	PP,		;yes, exit

	GTOPN7:	MOVE	TA,EOPNXT	;
		SKIPA			;
	GTOPN8:	SOS	TA		;continue through rest of EOP stack
		MOVE	TB,0(TA)	; searching for operands
		JUMPGE	TB,GTOPN8	; until finding the one 
 WIT
		JRST	GTOPN4		;do length now

	GTOPN7:	MOVE	TA,EOPNXT	;
		TXNE	W1,RFMLEN	;[1522] Was error on length?
		POPJ	PP,		;[1522] Yes, default to rest of field
	GTOPN8:	POP	TA,TB		;[1522] continue through rest of EOP stack
		JUMPGE	TB,GTOPN8	; searching for operands until finding the one 
 REP 67/20	;08C10
		MOVEM	TB,0(TA)	;put it back w/ ref mod flag off
 WIT
		PUSH	TA,TB		;[1522] put it back w/ ref mod flag off
 REP 71/20	;08C11
		AOS	TA		;
		ADD	TA,TB		;
		MOVEM	TA,EOPNXT	;
 WIT
		AOBJP	TA,KILL##	;[1522]
		LSH	TB,1		;[1522]
		HRLS	TB		;[1522]
		ADD	TA,TB		;
		MOVEM	TA,EOPNXT	;
		TSWTZ	FERROR		;[1522] If on, error reported
 SUM 178392