Google
 

Trailing-Edge - PDP-10 Archives - bb-kl11i-bm_tops20_v7_0_atpch_1-22 - autopatch/ifgen.c22
There are 3 other files named ifgen.c22 in the archive. Click here to see a list.
 REP 1/1	;22C1
	; UPD ID= 1459 on 12/14/83 at 12:59 PM by HOFFMAN                       
 WIT
	; UPD ID= 1955 on 2/1/89 at 2:39 PM by KSTEVENS
 INS 28/1	;22C2
	;KWS	01-Feb-89	[1651] Fix Code generation so that CMPxx always gen 3
	;;				words.
 REP 6/3	;22C3
	IFGEN:	
 WIT
	IFGEN:
 REP 3/13	;22C4
	IFGENZ:	
 WIT
	IFGENZ:
 REP 156/33	;22C5
	GOTBPB:	PUSHJ	PP,DEPCKK	;IF ANY DEPENDING ITEMS,
		  SKIPA	TA,[XTNLIT,,1]	;NO, OCTAL LITERAL
		PJRST	USE3EX		;YES, USE THE EXTEND WITH THE FILLER CHAR
		PUSHJ	PP,STASHP	; (FOR CMPXX EXTEND CODE)
		LDB	TE,CONDIT	;WHICH CONDITION TO TEST?
		HLLZ	TA,CMXTB(TE)
		PUSHJ	PP,POOLIT

		PUSHJ	PP,PUTASA##	;EXTEND IS IN 2ND SET OF OPCODES
		MOVSI	CH,XTND.+AC4
		PUSHJ	PP,PUT.LD##	;OUTPUT "EXTEND AC4,<CURRENT LITERAL>"
		SKIPN	PLITPC
		AOS	ELITPC
		SETZM	USENBT##	;CLEAR FLAG

 WIT
	GOTBPB:	PUSHJ	PP,DEPCKK	;CHECK ANY DEPENDING ITEMS
		  JFCL			;[1651]don't care what it returns
	USE2EX:				;[1651]USE2EX and USE3EX should be the same
	USE3EX:				;[1651]
		MOVE	TA,[XTNLIT,,1]	;[1651]
		PUSHJ	PP,STASHP	;[1651] (FOR CMPXX EXTEND CODE)
		LDB	TE,CONDIT	;[1651]WHICH CONDITION TO TEST?
		HLLZ	TA,CMXTB(TE)	;[1651]
		PUSHJ	PP,STASHQ	;[1651]
		AOS	ELITPC		;[1651]GET LITERAL PC RIGHT FOR POOL
		MOVE	TA,[OCTLIT,,2]	;[1651]
		PUSHJ	PP,STASHP	;[1651]
		HRRZ	TE,EMODEA	;[1651]
		HRRZ	TA,IFSPCS(TE)	;[1651]GET A SPACE
		PUSHJ	PP,STASHQ	;[1651]E0+1
		HRRZ	TE,EMODEB	;[1651]
		HRRZ	TA,IFSPCS(TE)	;[1651]GET A SPACE
		PUSHJ	PP,POOLIT	;[1651]FINISH LITERAL BLOCK FOR EXTEND
		SOS	ELITPC		;[1651]
		PUSHJ	PP,PUTASA##	;[1651]EXTEND IS IN 2ND SET OF OPCODES
		MOVSI	CH,XTND.+AC4	;[1651]
		PUSHJ	PP,PUT.LD##	;[1651]OUTPUT "EXTEND AC4,<CURRENT LITERAL>"
		SETZM	USENBT##	;[1651]CLEAR FLAG
		SKIPE	PLITPC		;[1651]
		  POPJ	PP,		;[1651]
		MOVEI	TE,3		;[1651]
		ADDM	TE,ELITPC	;[1651]
 DEL 200/33	;22C6
	;GENERATE THE LITERAL STUFF, WITH FILLER CHARACTER IN E0+1

	USE2EX:	MOVE	TA,[XTNLIT,,1]
		PUSHJ	PP,STASHP	;FIRST IS TYPE OF EXTEND
		LDB	TE,CONDIT
		HLLZ	TA,CMXTB(TE)
		PUSHJ	PP,STASHQ
		AOS	ELITPC		;GET LITERAL PC RIGHT FOR POOL
		MOVE	TA,[OCTLIT,,1]
		PUSHJ	PP,STASHP
		HRRZ	TE,EMODEA
		HRRZ	TA,IFSPCS(TE)	;GET A SPACE
		PUSHJ	PP,POOLIT	;FINISH LITERAL BLOCK FOR EXTEND
		SOS	ELITPC

		PUSHJ	PP,PUTASA##	;READY FOR EXTEND
		MOVSI	CH,XTND.+AC4
		PUSHJ	PP,PUT.LD##

		SKIPE	PLITPC
		 POPJ	PP,		;RETURN
		MOVEI	TE,2		;UPDATE ELITPC IF WE DIDN'T POOL
		ADDM	TE,ELITPC
		POPJ	PP,		;RETURN

	;GENERATE THE LITERAL STUFF, WITH FILLER CHARACTER IN E0+1 AND E0+2
	;SINCE WE DON'T KNOW WHICH STRING WILL BE THE SHORTER

	USE3EX:	MOVE	TA,[XTNLIT,,1]
		PUSHJ	PP,STASHP	;FIRST IS TYPE OF EXTEND
		LDB	TE,CONDIT
		HLLZ	TA,CMXTB(TE)
		PUSHJ	PP,STASHQ
		AOS	ELITPC		;GET LITERAL PC RIGHT FOR POOL
		MOVE	TA,[OCTLIT,,2]
		PUSHJ	PP,STASHP
		HRRZ	TE,EMODEA
		HRRZ	TA,IFSPCS(TE)	;GET A SPACE
		PUSHJ	PP,STASHQ	;E0+1
		HRRZ	TE,EMODEB
		HRRZ	TA,IFSPCS(TE)	;GET A SPACE
		PUSHJ	PP,POOLIT	;FINISH LITERAL BLOCK FOR EXTEND
		SOS	ELITPC

		PUSHJ	PP,PUTASA##	;READY FOR EXTEND
		MOVSI	CH,XTND.+AC4
		PUSHJ	PP,PUT.LD##

		SKIPE	PLITPC
		 POPJ	PP,		;RETURN
		MOVEI	TE,3		;UPDATE ELITPC IF WE DIDN'T POOL
		ADDM	TE,ELITPC
		POPJ	PP,		;RETURN

 REP 292/33	;22C7
		ADD	CH,TE	
 WIT
		ADD	CH,TE
 REP 94/36	;22C8
		POPJ	PP,		;FAILED 
 WIT
		POPJ	PP,		;FAILED
 REP 10/42	;22C9
		SETZM	EDEPFT		;[605] 
 WIT
		SETZM	EDEPFT		;[605]
 REP 6/75	;22C10
		
 WIT

 REP 34/76	;22C11
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT 
 WIT
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT
 REP 40/76	;22C12
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT 
 WIT
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT
 SUM 229398