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