Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0078/comp/cgpa.mac
There are 2 other files named cgpa.mac in the archive. Click here to see a list.
00100 SUBTTL Parameter handling on calling side
00200 sall
00300 comment;
00400 Author: Lars Enderin 2-aug-73
00500
00600 Version: 4 [7,24,31,34,47,64,73,111,212,340]
00700
00800 Purpose: Code generation
00900
01000 Contents: Generators for nodes in expression tree:
01100
01200 ZNS nodes %BEGPB, %NEW, %PCALL
01300 ;
01400 SEARCH SIMMAC,SIMMC2,SIMMCR,SIMRPA
01500 CTITLE CGPA
01600
01700 EXTERN CAUS,CGAD,CGCA,CGCC,CGCO,CGVA,CGLO,CGLO1,CAUSTD
01800 EXTERN YOPST
01900 EXTERN CGRA,CGPD
02000
02100 EXTERN CADS,CAUD
02200 EXTERN CGAS,CGG2,CGG3,CGG4,CGR2,CGR3,CGR4,CGSY
02300 EXTERN O2AD,O2AF,O2GI
02400 EXTERN CGIM,CGIM1,CGMO,CGMO1
02500 EXTERN O2CF,O2DF,O2GA,O2GF,O2GR,O2GW,O2GWD,O2IV
02600 EXTERN YCGFX1,YACTAB,YCGFX2,YLXIAC,YO2ADI,YO2ADF,YOPCOD
02700 EXTERN YOPSTB,YOPSTP,YORFOR,YQRELR,YQRELT,YRELPT,YZHET,YRELCD
02800 EXTERN YCGINS,YORACT,YORFX,YTAC,YZHBXC
02900 EXTERN YGETAC,YRELAC ;[7]
03000
03100 EXTERN CABSTU,CGAC,CGRD,CGRN,CGCCCH
03200 EXTERN YACTAB,YCGACT
03300 EXTERN YCGPAF ;Switches only in left half
03400 EXTERN YCGDBL,YPAFIX
03500
03600 ; COMPILE OPDEFS
03700 ; ==============
03800 OPDEF ALFIX [PUSHJ XPDP,O2AF] ;Allocate any free fixup no
03900 OPDEF IFLR [CAIE X6,QLREAL] ;Skip if X6 = type code for long real
04000 OPDEF LR [CAIN X6,QLREAL] ;Converse of IFLR
04100 OPDEF OPAC [OP (XL1)] ;Modify val of index field by XL1
04200 OPDEF OPZAC [OPZ (XL1)] ;Modify val of index field by XL1
04300 OPDEF GENRLD [PUSHJ XPDP,CGRD]
04400
04500 ; MACROS
04600 DEFINE FIRSTOP=<LF XP1,ZNSZNO(XCUR)>
04700 MACINIT
04800 CGINIT
04900 TWOSEG
05000 RELOC 400K
05100
05200 INTERN .BEGPB,.NEW,.PCALL,CGACSA
05300
05400 ;SWITCHES
05500 ;--------
05600 DSW STHUNK,YCGPAF,1,0 ;On if any thunk for current parameter list
05700 DSW SNOFML,YCGPAF,0,0 ;On if formals not known
05800 DSW SQUICK,YCGPAF,2,0 ;[7] On for QUICK procedure
05900
06000 ;Local field definitions
06100 DF CALLID,YCGPAF,12,17 ;[7] Id no of called QUICK procedure
06200
06300 OPDEF RH [POINT 18,0,35]
06400 RH==RH
06500 DEFINE RIGHTHALF(A)<
06600 IFN <RH-<<$'A>&<777777B17>>>,
06700 <CFAIL A IS NOT IN RH>>
06800
06900 ;Local register designations
07000 XK=X4 ;(FORMAL) KIND
07100 XM=X5 ;(FORMAL) MODE
07200 XT=X6 ;(FORMAL) TYPE