Trailing-Edge
-
PDP-10 Archives
-
dec-10-omona-u-mc9
-
lnk572.pco
There are no other files named lnk572.pco in the archive.
Digital Equipment Corporation 26-JAN-77 Page 1
PCO Log Report
*********************
*PCO #:10-LINK -194*
*********************
[Program Data] System: LINK-1
Component:LINK
[Validity] 3A(560)
[Date Entered] 20-SEP-76
[Programmer] GILBERT
[Routines] LNKOLD LNKLOD
[Key Words] POLISH BAD CORE I SYMBOL FIX
[Source Before Edit] %3B (000571)
[Source After Edit] %3B (000572)
[Test File Data] : [ ]
[Miscellaneous] DOC changes: N
SER/SPR Number:10-NONE
Critical: N
************************************************************************
[Notes]
Digital Equipment Corporation 26-JAN-77 Page 2
PCO Log Report
[PCO Write-up]
**********
[SYMPTOM]
Random words of the loaded core image can be incorrect
when LINK is loading a program in a restricted amount of
core. If the program is being loaded with symbols, then the
errors will appear in pairs. The value field of some
symbols will be incorrect (usually zero), and the value of
the symbol will have been deposited in some other random
word in memory.
**********
[DIAGNOSIS]
When a POLISH string which defines a symbol is
evaluated, an attempt is made to store the value of the
now-defined symbol in the local symbol table. This attempt
is made without properly checking whether or not the address
in the local symbol table to be modified has been paged out
to disk. If it has, the store will go to a random location
in memory, and the local symbol table will never get fixed
up.
**********
[CURE]
Delete the code to handle symbol definitions in the
POLISH processor, and instead call the common code which
handles non-POLISH symbol fixups and already makes all the
right checks. Note that this edit deletes a routine to
which a patch was made by edit 567.
Digital Equipment Corporation 26-JAN-77 Page 4
PCO Log Report
[FILCOM]
File 1) DSK:LNKHST.571 created: 1607 20-SEPT-1976
File 2) DSK:LNKHST.MAC created: 1607 20-SEPT-1976
1)1 ;SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE 19-Sep-76
1) ;***COPYRIGHT (C) 1973, 1974, 1975, 1976 DIGITAL EQUIPMENT CORP
., MAYNARD, MASS.***
****
2)1 ;SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE 20-Sep-76
2) ;***COPYRIGHT (C) 1973, 1974, 1975, 1976 DIGITAL EQUIPMENT CORP
., MAYNARD, MASS.***
**************
1)1 DECEVR==571 ;DEC EDIT VERSION
1) LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1 DECEVR==572 ;DEC EDIT VERSION
2) LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
2)4 ;572 JNG 20-Sep-76 QAR EVS
2)4 ; Make sure LS addr in core before doing POLISH symbol fix
up.
2)4 ; Routines: LNKLOD,LNKOLD
Digital Equipment Corporation 26-JAN-77 Page 5
PCO Log Report
[FILCOM]
File 1) DSK:LNKLOD.561 created: 1540 20-SEPT-1976
File 2) DSK:LNKLOD.MAC created: 1606 20-SEPT-1976
1)1 SUBTTL D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE 19-Jul-76
1) ;***COPYRIGHT 1973, 1974, 1975, 1976 DIGITAL EQUIPMENT CORP., M
AYNARD, MASS.***
****
2)1 SUBTTL D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE 20-Sep-76
2) ;***COPYRIGHT 1973, 1974, 1975, 1976 DIGITAL EQUIPMENT CORP., M
AYNARD, MASS.***
**************
1)1 DECEVR==561 ;DEC EDIT VERSION
1) VERSION
****
2)1 DECEVR==572 ;DEC EDIT VERSION
2) VERSION
**************
1)5 SUBTTL LOAD CONTROL
****
2)4 ;572 Make sure LS addr in core before doing fixups
2)5 SUBTTL LOAD CONTROL
**************
1)34 HRRZ W3,2(P1) ;[543] AND FIXUP VALUE
1) PUSHJ P,SY.AST ;[543] SET 2(T1) TO REAL VALUE
****
2)34 ;**;[572] Change @ SYSTF3+1P3L JNG 20-Sep-76
2) MOVE W3,2(P1) ;[572] AND FIXUP VALUE
2) PUSHJ P,SY.AST ;[543] SET 2(T1) TO REAL VALUE
**************
1)35 SKIPE T1 ;[543] ANY LS TRIPLET?
1) IORM T4,0(T1) ;[543] YES, SET MULTIPLY DEFINED
****
2)35 ;**;[572] Replace @ SYSTFL+8L JNG 20-Sep-76
2) HRRZ T2,W3 ;[572] GET RELATIVE LS ADDRESS
2) JUMPE T2,CPOPJ ;[572] GIVE UP IF NONE
2) CAML T2,LW.LS ;[572] IS IT STILL IN CORE?
2) IORM T4,0(T1) ;[543] YES, SET MULTIPLY DEFINED
**************
1)35 MOVE T1,T2 ;[543] STORE FOR SKIPE ON RETURN
1) JUMPE T2,CPOPJ ;[543] FORGET IT IF NOT IN LOCAL
TABLE
****
2)35 ;**;[572] Delete @ SYSTF4+1L JNG 20-Sep-76
2) JUMPE T2,CPOPJ ;[543] FORGET IT IF NOT IN LOCAL
TABLE
**************
1)35 HRRZ W3,2(P1) ;[543] W3 IS ADDITIVE DEFINITION
1) PJRST SY.AST ;[543] GO FIXUP LS TRIPLET
****
2)35 ;**;[572] Change @ SYSTF4+15L JNG 20-Sep-76
Digital Equipment Corporation 26-JAN-77 Page 6
PCO Log Report
2) MOVE W3,2(P1) ;[572] W3 IS ADDITIVE DEFINITION
2) PJRST SY.AST ;[543] GO FIXUP LS TRIPLET
**************
Digital Equipment Corporation 26-JAN-77 Page 7
PCO Log Report
[FILCOM]
File 1) DSK:LNKOLD.571 created: 1544 20-SEPT-1976
File 2) DSK:LNKOLD.MAC created: 1545 20-SEPT-1976
1)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE 19-Sep-76
1) ;***COPYRIGHT 1973, 1974, 1975, 1976 DIGITAL EQUIPMENT CORP., M
AYNARD, MASS.***
****
2)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE 20-Sep-76
2) ;***COPYRIGHT 1973, 1974, 1975, 1976 DIGITAL EQUIPMENT CORP., M
AYNARD, MASS.***
**************
1)1 DECEVR==571 ;DEC EDIT VERSION
1) ;LOCAL ACC DEFINITIONS
****
2)1 DECEVR==572 ;DEC EDIT VERSION
2) ;LOCAL ACC DEFINITIONS
**************
1)5 COMMENT \
****
2)4 ;572 Make sure LS addr in core before doing POLISH symbol fix
up
2)5 COMMENT \
**************
1)78 HRRZ T2,(W3) ;GET THE VALUE TYPE
1) CAIGE W1,-3 ;SYMBOL TABLE FIXUP?
1) PUSHJ P,T11STF ;YES, DO ALL WORK TO MAKE FIXUPS
APPEAR
1) ILDB T2,W2 ;GET THE ADDRESS (IF NOT SYMBOL
FIXUP)
1) MOVE W3,-1(W3) ;GET THE VALUE AFTER IGNORING TH
E FLAG
****
2)78 ;**;[572] Delete @ T.11ST+3L JNG 20-Sep-76
2) ILDB T2,W2 ;[572] GET CORE ADDR OR GS POIN
TER
2) MOVE W3,-1(W3) ;GET THE VALUE AFTER IGNORING TH
E FLAG
**************
1)79 ;T1 = ADDRESS OF SYMBOL IN LOCAL TABLE
1) ;T2 = ADDRESS OF SYMBOL IN GLOBAL TABLE
****
2)79 ;T2 = ADDRESS OF SYMBOL IN GLOBAL TABLE
**************
1)79 ;T3 = FLAGS
1) ;W1 = FIXUP FLAGS
1) T11SYR: MOVX T3,PS.UDR ;[445]
1) MOVX W1,FS.FXR ;[445]
1) JRST SY.ASP ;[445] AND DO FIXUP
1) T11SYL: MOVX T3,PS.UDL ;[445]
1) MOVX W1,FS.FXL ;[445]
Digital Equipment Corporation 26-JAN-77 Page 8
PCO Log Report
1) JRST SY.ASP ;[445]
1) T11SYF: MOVX T3,PS.UDF ;[445]
1) MOVX W1,FS.FXF ;[445]
1) JRST SY.ASP ;[445]
1) T11PSF: .ERR. (MS,,V%L,L%W,S%W,PSF,<Polish symbol fixups not y
et implemented>)
****
2)79 ;W1 = FIXUP FLAGS
2) ;**;[572] Delete @ T11SYR JNG 20-Sep-76
2) T11SYR: MOVX W1,FS.FXR ;[445]
2) JRST SY.ASP ;[445] AND DO FIXUP
2) T11SYL: MOVX W1,FS.FXL ;[445]
2) JRST SY.ASP ;[445]
2) T11SYF: MOVX W1,FS.FXF ;[445]
2) ; JRST SY.ASP ;[445]
2) ;HERE TO STORE SYMBOL TABLE FIXUP
2) SY.ASP: ILDB T1,W2 ;[572] PICK UP LOCAL POINTER
2) HRL T1,T2 ;[572] FORM STANDARD GLOBAL,,LOC
AL
2) PUSH P,T1 ;[572] SAVE OVER GS.GET
2) MOVEI T2,.L ;[572] SET UP FAKE DEFINING TRIP
LET
2) PUSHJ P,GS.GET## ;[572] IN GS AREA SO CAN USE S
Y.STF
2) MOVE P1,T1 ;[572] P1=ADDR OF FAKE DEFINING
TRIPLET
2) MOVX T1,PT.SGN!PT.SYM!PS.GLB ;[572] SOME GOOD FLAGS
2) MOVEM T1,0(P1) ;[572] SET IN TRIPLET
2) ;[572] LEAVE NAME BLANK TO CATCH
ERRORS
2) MOVEM W3,2(P1) ;[572] STORE POLISH RESULT AS VA
LUE
2) POP P,W3 ;[572] W1=FLAGS, W3=PTR, P1=DEF.
TRPLET
2) PUSHJ P,SY.STF## ;[572] DO ALL NECESSARY SYMBOL F
IXUPS
2) MOVE T1,P1 ;[572] NOW RETURN FAKE BLOCK
2) MOVEI T2,.L ;[572] T1=ADDR, T2=LENGTH
2) PJRST GS.RET## ;[572] FREE IT UP AND RETURN
2) T11PSF: .ERR. (MS,,V%L,L%W,S%W,PSF,<Polish symbol fixups not y
et implemented>)
**************
1)79 T11STF: ILDB T2,W2 ;[445] GET GLOBAL POINTER
1) ILDB T1,W2 ;[445] GET LOCAL POINTER
1) JUMPE T1,.+3 ;[445] LEAVE 0 ALONE (SHOULD NOT
HAPPEN)
1) ADD T1,LS.LB ;[445] RELOCATE
1) SUB T1,LW.LS ;[445] IN WINDOW
1) SKIPE T2 ;[445] LEAVE 0 ALONE
Digital Equipment Corporation 26-JAN-77 Page 9
PCO Log Report
1) ADD T2,NAMLOC ;[445] RELOCATE
1) JRST CPOPJ1 ;AND ALWAYS SKIP RETURN
1)80 REPEAT 0,< ;WAITING FOR A DEVELOPMENT RELEASE
****
2)79 ;**;[572] Delete T11STF routine JNG 20-Sep-76
2)80 REPEAT 0,< ;WAITING FOR A DEVELOPMENT RELEASE
**************
1)81 ;HERE FOR POLISH SYMBOL TABLE FIXUP
1) SY.ASP: JUMPE T1,SYASP0 ;[445] CLEAR LOCAL UNLESS NOT TH
ERE
1) ANDCAM T3,0(T1) ;[445] CLEAR FLAG IN MEMORY, SET
IN ACC
1) SYASP0: JUMPE T2,SYASP1 ;[445] SAME FOR GLOBAL TABLE
1) ;**;[567] Delete @ SYASP0+1L JNG 21-Jul-76
1) ANDCAM T3,0(T2) ;[445] IF SET
1) SYASP1: JUMPE T1,SYASPG ;[445] NO LOCAL, ONLY GLOBAL
1) PUSH P,W1 ;[445] SAVE FIXUP FLAGS
1) PUSH P,T2 ;[445] SAVE T2
1) MOVE T2,W1 ;[445] PUT FLAGS IN T2
1) PUSHJ P,SY.AST## ;[445] FIXUP EITHER RH OR LH OF
SYMBOL IN T1
1) POP P,T2 ;[445] RESTORE IT
1) POP P,W1 ;[445] AND FIXUP FLAGS
1) SYASPG: JUMPE T2,CPOPJ ;[445] NOT GLOBAL, RETURN
1) PUSH P,W1 ;[445] STORE FLAGS UNTIL P1/P2 S
ETUP
1) DMOVE W1,0(T2) ;[445] FLAGS & SYMBOL
1) TXNN W1,PT.EXT ;[445] EXTENDED SYMBOL?
1) JRST SYASPS ;[445] NO
1) MOVE T1,.L(T2) ;[445] YES, BUT WE ONLY CARE ABO
UT LONG NAMES HERE
1) TXNE T1,S.SYM ;[445]
1) TXNN T1,S.NAM ;[445] SO IGNORE COMMON, ETC
1) JRST [TXZ W1,PT.EXT ;[445] NOT EXTENDED NAME
1) JRST SYADSS] ;[445] SO REMOVE FLAG
1) IFE .EXSYM,<
1) .ERR. (MS,,V%L,L%F,S%F,ESN)>
1) HRRZ W3,T2 ;[445] POINT TO SYMBOL
1) SYASPS: PUSHJ P,TRYSYM## ;[445] SETUP P1 & P2
1) HALT ;[445] MUST BE DEFINED
1) JFCL ;[445]
1) MOVE T1,P1 ;[445] POINT TO SYMBOL TRIPLET
1) POP P,T2 ;[445] FIXUP FLAGS
1) PJRST SY.AS0## ;[445] GO DO THE VALUE FIXUP
1) ;[445] AND ANY CHAINING DEPENDIN
G UPON THIS SYMBOL
1)82 ;HERE IF FAIL INNER BLOCK LABELED LITERALS
****
2)81 ;**;[572] Delete SY.ASP routine JNG 20-Sep-76
Digital Equipment Corporation 26-JAN-77 Page 10
PCO Log Report
2) ;HERE IF FAIL INNER BLOCK LABELED LITERALS
**************
[End PCO Write-up]