Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0078/comp/trace.mac
There are 14 other files named trace.mac in the archive. Click here to see a list.
COMMENT;::::::::::::::::::::::::::::::::::::::::::::::::::
AUTHOR: CLAES WIHLBORG
KIM WALDEN
UPDATE: 1
PURPOSE:TRACE PERFORMS THE TRACE FUNCTION OF THE COMPILER.
IT IS LOADED IN EVERY PASS.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SEARCH SIMMAC
SALL
CTITLE TRACE
MACINIT
TWOSEG
RELOC 400K
INTERN TRACE
EXTERN YPASSNO,YTRSAV,YTRLC,YTRJLC,YTRINS,YTRLOW,YTRHGH,YTRTP
EXTERN YTRPAS,YTRACC,YTRSIM,YTRTAB,.JBUUO,.JB41
DEFINE X(F,L,T)<
IFB<L>,<<IX'T-IXCT>B8+I'T>
IFNB<L>,<REPEAT L+1-F,<<IX'T-IXCT>B8+I'T>>
>
TAB:
X 0,0,SKIP
X 1,37,UUO
X 40,46,SKIP
X 47,47,CALLI
X 50,107,SKIP
X 110,251,ORD
X 252,255,JUMP
X 256,,XCT
X 257,,ORD
X 260,,PUSHJ
X 261,262,ORD
X 263,,POPJ
X 264,,JSR
X 265,,JSP
X 266,,JSA
X 267,,JRA
X 270,277,ORD
X 300,317,SKIP
X 320,327,JUMP
X 330,337,SKIP
X 340,347,JUMP
X 350,357,SKIP
X 360,367,JUMP
X 370,377,SKIP
X 400,577,ORD
X 600,677,SKIP
X 700,777,SKIP
TRACE:
L 1,YPASSNO
SKIPN YTRPAS(1)
BRANCH @16
OPEN QCHTRC,[16
SIXBIT/DSK/
0]
HALT .
LD 2,[SIXBIT/TRACE0/
SIXBIT/BIN/]
SETZB 4,5
OR 2,YPASSNO
IF LOOKUP QCHTRC,2
GOTO FALSE
THEN LD 6,[IOWD 37003,YTRACC
0]
INPUT QCHTRC,6
CLOSE QCHTRC,
ELSE
SETZM YTRACC
L 1,[XWD YTRACC,YTRACC+1]
BLT 1,YTRSIM+37000
LD [XWD 331100,400010
XWD 331100,437000]
STD YTRLOW
FI
RELEASE QCHTRC,
L [XWD 1,YTRTAB-400010]
ST YTRTP
HRLI 16,331100
ST 16,YTRLC
L 1,16
GOTO NEXTIA
IXORD:
IORD: L 1,YTRSAV+1
XCT @YTRLC
NEXTI: ST 1,YTRSAV+1
NEXTIS: AOS 1,YTRLC
NEXTIA: AOS YTRACC
IF
CAMGE 1,YTRLOW
GOTO FALSE
CAMG 1,YTRHGH
THEN AOS @YTRTP
FI
L 1,YTRSAV+1
LDB 1,YTRLC
GOTO @TAB(1)
IXSKIP:
ISKIP: L 1,YTRSAV+1
XCT @YTRLC
GOTO NEXTI
AOS YTRLC
GOTO NEXTI
IJUMP:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXJUMP: L 1,YTRSAV+1
LI 1,@YTRINS
ST 1,YTRJLC
L 1,YTRINS
HRRI 1,IJUMPA
TLZ 1,37
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
ST 1,YTRSAV+1
GOTO NEXTIS
IJUMPA: ST 1,YTRSAV+1
L 1,YTRJLC
HRRM 1,YTRLC
HRLI 1,331100
GOTO NEXTIA
IPUSHJ:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXPUSH: L 1,YTRSAV+1
LI 1,@YTRINS
ST 1,YTRJLC
L 1,YTRINS
AOS YTRLC
TDZ 1,[777037,,-1]
ADD 1,[PUSH YTRLC]
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
ST 1,YTRSAV+1
L 1,YTRJLC
HRRM 1,YTRLC
HRLI 1,331100
GOTO NEXTIA
IPOPJ:
L 1,YTRSAV+1
L 1,@YTRLC
IPOPJX: TLZ 1,1037
HRRI 1,YTRJLC
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
ST 1,YTRSAV+1
L 1,YTRJLC
HRRM 1,YTRLC
GOTO NEXTIA
IJSP:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXJSP: L 1,YTRSAV+1
LI 1,@YTRINS
ST 1,YTRJLC
L 1,YTRINS
TDZ 1,[777037,,-1]
ADD 1,[L YTRLC]
AOS YTRLC
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
ST 1,YTRSAV+1
L 1,YTRJLC
HRRM 1,YTRLC
HRLI 331100
GOTO NEXTIA
IJRA:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXJRA: L 1,YTRSAV+1
LI 1,@YTRINS
ST 1,YTRJLC
AOS YTRLC
L 1,YTRINS
TDZ 1,[777037,,-1]
ADD 1,[L YTRLC]
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
ST 1,YTRSAV+1
L 1,YTRJLC
HRRM 1,YTRLC
HRLI 331100
GOTO NEXTIA
IXCT:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXXCT: L 1,YTRSAV+1
L 1,@YTRINS
ST 1,YTRINS
LSH 1,-33
HLRE 1,TAB(1)
ASH 1,-11
GOTO IXCT(1)
IXPOPJ: L 1,YTRINS
GOTO IPOPJX
ICALLI:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXCALL: HRRZ 1,YTRINS
CAIN 1,12
GOTO FIN
CAIE 1,11
GOTO ISKIP
HRR 1,YTRLC
TRNE 1,400K
GOTO ISKIP
PROC
FIN: SAVE <2,3,4,5,6,7>
L 1,[XWD 331100,YTRTAB]
L 2,YTRLOW
OPC: SKIPN 0(1)
GOTO CONT
LDB 2
DPB 1
CONT: ADDI 1,1
ADDI 2,1
CAMG 2,YTRHGH
GOTO OPC
HRREI 1,-377
SEEK: SKIPE YTRSIM+377(1)
AOJL 1,SEEK
L YELSRC##
ST YTRSIM+377(1)
OPEN QCHTRC,[16
SIXBIT/DSK/
0]
HALT .
LD 2,[SIXBIT/TRACE0/
SIXBIT/BIN/]
SETZB 4,5
OR 2,YPASSNO
ENTER QCHTRC,2
HALT .
LD 6,[IOWD 37003,YTRACC
0]
OUTPUT QCHTRC,6
CLOSE QCHTRC,
RELEASE QCHTRC,
STPTRC: L 1,YTRSAV+1
RESTORE
GOTO @YTRLC
EPROC
IUUO: L 1,@YTRLC
ST 1,YTRINS
IXUUO: L 1,YTRSAV+1
LI 1,@YTRINS
HLL 1,YTRINS
ST 1,.JBUUO
L 1,[XCT .JB41]
ST 1,YTRINS
GOTO IXXCT
IJSR:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXJSR: LI 1,@YTRINS
ST 1,YTRJLC
ST 0,YTRSAV
L 0,YTRLC
ADDI 0,1
L 1,YTRSAV+1
ST 0,@YTRJLC
SKIPE YTRJLC
L 0,YTRSAV
ST 1,YTRSAV+1
AOS 1,YTRJLC
HRRM 1,YTRLC
HRLI 331100
GOTO NEXTIA
IJSA:
L 1,YTRSAV+1
L 1,@YTRLC
ST 1,YTRINS
IXJSA: L 1,YTRSAV+1
LI 1,@YTRINS
ST 1,YTRJLC
L 1,YTRINS
TLZ 1,777000
ADD 1,[ST]
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
ST 1,YTRSAV+1
AOS 1,YTRLC
HRL 1,YTRJLC
HLRM 1,YTRLC
ST 1,YTRJLC
L 1,YTRINS
TDZ 1,[777037,,-1]
ADD 1,[L YTRJLC]
ST 1,YTRINS
L 1,YTRSAV+1
XCT YTRINS
GOTO NEXTI
LIT
END