Trailing-Edge
-
PDP-10 Archives
-
bb-jr93j-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