Google
 

Trailing-Edge - PDP-10 Archives - bb-jr93i-bb - 7,6/ap022/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= 3515 on 5/5/81 at 4:06 PM by NIXON                            
 WIT
	; UPD ID= 113 on 2/1/89 at 2:51 PM by KSTEVENS                         
	; UPD ID= 3515 on 5/5/81 at 4:06 PM by NIXON
 REP 30/1	;22C2
	;[1353] If literal generated by call to LITD. too large, FERROR set to force 
 WIT
	;[1353] If literal generated by call to LITD. too large, FERROR set to force
 REP 63/28	;22C3
		ADDI	TE,1		;[1317] 
 WIT
		ADDI	TE,1		;[1317]
 REP 168/31	;22C4
	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 212/31	;22C5
	;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 304/31	;22C6
		ADD	CH,TE	
 WIT
		ADD	CH,TE
 REP 99/34	;22C7
		POPJ	PP,		;FAILED 
 WIT
		POPJ	PP,		;FAILED
 REP 8/39	;22C8
		HRRI	TB,EINTO##	;[1351]  TO A FIXED LOCATION 
		MOVEI	TC,EINTO	;[1351]  BECAUSE TABLE EXPANSION
		ADDI	TC,OPNSIZ+OPNMAX;[1351]  IS CLOBBERING CUREOP'S PTR
		BLT	TB,-1(TC)	;[1351] 
 WIT
		HRRI	TB,EINTO##	;[1351]  TO A FIXED LOCATION
		MOVEI	TC,EINTO	;[1351]  BECAUSE TABLE EXPANSION
		ADDI	TC,OPNSIZ+OPNMAX;[1351]  IS CLOBBERING CUREOP'S PTR
		BLT	TB,-1(TC)	;[1351]
 REP 10/40	;22C9
		SETZM	EDEPFT		;[605] 
 WIT
		SETZM	EDEPFT		;[605]
 REP 17/49	;22C10
		MOVE	CH,[SOJG.+AC7+ASINC,,AS.MS2##]	;[1034] NO 
		PUSHJ	PP,PUTASY	;[1034] 
		MOVEI	CH,AS.DOT+3	;[1034] 
 WIT
		MOVE	CH,[SOJG.+AC7+ASINC,,AS.MS2##]	;[1034] NO
		PUSHJ	PP,PUTASY	;[1034]
		MOVEI	CH,AS.DOT+3	;[1034]
 REP 27/56	;22C11
					; THE AC'S WHEN WE GO TO MOVE IT THERE 
 WIT
					; THE AC'S WHEN WE GO TO MOVE IT THERE
 REP 6/72	;22C12
		
 WIT

 REP 37/73	;22C13
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT 
 WIT
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT
 REP 43/73	;22C14
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT 
 WIT
		JUMPN	TE,MNXAC.##	; [413] NEGATE IT
 SUM 37163