4 <SETG INSTRUCTION ,FORM>
8 '<<PRIMTYPE VECTOR> NODE
47 "Offsets into pass 1 structure entities and functions to create same."
49 <SETG NODE-TYPE 1> ; "Code specifying the node type."
50 <SETG PARENT 2> ; "Pointer to parent node."
51 <SETG RESULT-TYPE 3> ; "Type expression for result returned by code
52 generated by this node."
53 <SETG NODE-NAME 4> ; "Usually name of SUBR associated with this node."
54 <SETG KIDS 5> ; "List of sub-nodes for this node."
55 <SETG STACKS 6> ; "Amount of stack needed by this node."
56 <SETG SEGS 7> ; "Predicate: any segments among kids?"
57 <SETG TYPE-INFO 8> ; "Points to transient type info for this node."
58 <SETG SIDE-EFFECTS 9> ; "General info about side effects (format not yet firm.)"
59 <SETG RSUBR-DECLS 10> ; "Function only: final rsubr decls."
60 <SETG BINDING-STRUCTURE 11>
61 ; "Partially compiled arg list."
62 <SETG SPECS-START 12> ; "Offset to 1st special."
63 <SETG SYMTAB 13> ; "Pointer to local symbol table."
64 <SETG SSLOTS 14> ; "Number of specials."
65 <SETG USLOTS 15> ; "Number of unspecials."
66 <SETG ACTIVATED 16> ; "Predicate: any named activation?"
67 <SETG TMPLS 17> ; "Offset to unamed temps."
68 <SETG PRE-ALLOC 18> ; "Variable slots allocated in advance."
69 <SETG STK-B 19> ; "Base of stack at entry."
70 <SETG BTP-B 20> ; "Base of stack after bindings."
71 <SETG SPCS-X 21> ; "Predicate: any specials bound?"
72 <SETG DST 22> ; "Destination spec for value of node."
73 <SETG CDST 23> ; "Current destination used."
74 <SETG ATAG 24> ; "Label for local againing."
75 <SETG RTAG 25> ; "Label for local Returning."
76 <SETG ASSUM 26> ; "Node type assumptions."
77 <SETG AGND 27> ; "Predicate: Again possible?"
78 <SETG ACS 28> ; "Predicate: AC call possible? (if not false
80 <SETG TOTARGS 29> ; "Total number of args (including optional)."
81 <SETG REQARGS 30> ; "Required arguemnts."
83 <SETG CLAUSES ,KIDS> ; "For COND clauses."
85 <SETG NODE-SUBR ,RSUBR-DECLS>
86 ; "For many nodes, the SUBR (not its name)."
88 <SETG PREDIC ,NODE-NAME>; "For cond clause nodes, the predicate."
90 <SETG ACCUM-TYPE ,DST> ; "Accumulated type from all returns etc."
91 <SETG DEAD-VARS ,CDST>
92 <SETG LIVE-VARS ,TYPE-INFO>
94 <SETG INIT-DECL-TYPE ,RTAG>
97 "Variables kept in acs thru loop."
99 <SETG AGAIN-STATES 32>
103 <SETG RETURN-STATES 33>
109 "Vars handled in this prog/repeat."
111 ;"Information used for merging states with prog-nodes"
114 "How a variable is used in a loop."
118 '<VECTOR <PRIMTYPE VECTOR>
130 <OR FALSE DATUM LIST>
138 <SETG NEXT-SYM 1> ; "Pointer to next symbol table entry."
139 <SETG NAME-SYM 2> ; "Name of variable."
140 <SETG SPEC-SYM 3> ; "Predicate: special?"
141 <SETG CODE-SYM 4> ; "Code specifying whether AUX, OPTIONAL etc."
142 <SETG ARGNUM-SYM 5> ; "If an argument, which one."
143 <SETG PURE-SYM 6> ; "Predicate: unchanged in function?"
144 <SETG DECL-SYM 7> ; "Decl for this variable."
145 <SETG ADDR-SYM 8> ; "Where do I live?"
146 <SETG INIT-SYM 9> ; "Predicate: initial value? if so what."
147 <SETG FRMNO 10> ; "ID of my frame."
148 <SETG RET-AGAIN-ONLY 11>; "Predicate: used only in AGAIN/RETURN?"
149 <SETG ASS? 12> ; "Predicate: used in ASSIGNED?"
150 <SETG INACS 13> ; "Predicate: currently in some AC?"
151 <SETG STORED 14> ; "Predicate: stored in slot?"
152 <SETG USED-AT-ALL 15>
154 <SETG CURRENT-TYPE 17>
155 <SETG COMPOSIT-TYPE 18>
156 <SETG PROG-AC ,CURRENT-TYPE>
158 <SETG NUM-SYM ,COMPOSIT-TYPE>
160 <SETG POTLV ,USED-AT-ALL>
163 <SETG GNEXT-SYM 1> ; "Next global symbol."
167 <PUT CHANNEL DECL '<CHANNEL [12 ANY] [4 FIX]>>
169 <PUT STRING DECL '<STRING [REST CHARACTER]>>
171 <PUT OBLIST DECL '<UVECTOR [REST <LIST [REST ATOM]>]>>
173 <PROG ((N 1)) <SETG CODVEC <MAPF ,UVECTOR <FUNCTION (ATM) <SETG .ATM .N> <SET N
174 <+ .N 1>> .ATM> ![FUNCTION-CODE QUOTE-CODE SEGMENT-CODE FORM-CODE PROG-CODE
175 SUBR-CODE COND-CODE BRANCH-CODE RSUBR-CODE LVAL-CODE SET-CODE OR-CODE AND-CODE
176 RETURN-CODE COPY-CODE GO-CODE AGAIN-CODE ARITH-CODE 0-TST-CODE NOT-CODE 1?-CODE
177 TEST-CODE EQ-CODE TY?-CODE LNTH-CODE MT-CODE NTH-CODE REST-CODE PUT-CODE
178 PUTR-CODE FLVAL-CODE FSET-CODE FGVAL-CODE FSETG-CODE MIN-MAX-CODE STACKFORM-CODE
179 CHTYPE-CODE ABS-CODE FIX-CODE FLOAT-CODE MOD-CODE ID-CODE ASSIGNED?-CODE
180 ISTRUC-CODE ISTRUC2-CODE BITS-CODE BITL-CODE GETBITS-CODE PUTBITS-CODE MAP-CODE
181 MFCN-CODE ISUBR-CODE READ-EOF-CODE READ-EOF2-CODE EOF-CODE GET-CODE GET2-CODE
182 IPUT-CODE IREMAS-CODE IRSUBR-CODE MARGS-CODE MPSBR-CODE MAPLEAVE-CODE
183 MAPRET-STOP-CODE UNWIND-CODE GVAL-CODE SETG-CODE SEG-CODE LENGTH?-CODE TAG-CODE
184 MFIRST-CODE PRINT-CODE MEMQ-CODE FORM-F-CODE INFO-CODE
185 OBLIST?-CODE AS-NXT-CODE AS-IT-IND-VAL-CODE
187 CASE-CODE SUBSTRUC-CODE BACK-CODE TOP-CODE COPY-LIST-CODE
188 PUT-SAME-CODE ROT-CODE LSH-CODE BIT-TEST-CODE SPARE1-CODE
191 SPARE4-CODE!]>> <SETG COMP-TYPES .N>>
193 <SETG PREDV <IUVECTOR ,COMP-TYPES 0>>
195 <MAPF <> <FUNCTION (N) <PUT ,PREDV .N 1>> ![,0-TST-CODE ,1?-CODE ,NOT-CODE ,
196 TEST-CODE ,EQ-CODE ,TY?-CODE ,MT-CODE ,OR-CODE ,AND-CODE ,ASSIGNED?-CODE ,
197 ISUBR-CODE ,NTH-CODE ,MEMQ-CODE ,LENGTH?-CODE ,OBLIST?-CODE ,AS-NXT-CODE!]>
199 <GDECL (REGS ATIME) FIX (ALLACS) <UVECTOR [5 AC] [REST AC]>
200 (ACO AC-A AC-B AC-C AC-D AC-E AC-F AC-G AC-H LAST-AC LAST-AC-1) AC>
202 <SETG COMMON-DATUM 5>
204 <MANIFEST TMPFRM TMPNO THOME TUSERS DATTYP DATVAL ADDRSYM ACSYM ACLINK ACAGE
205 ACNUM ACPROT AC1SYM ACRESIDUE ACPREF ACINUSE TMPAC COMMON-DATUM
208 <MAPF <> ,MANIFEST ,CODVEC>
210 <MANIFEST TOT-MODES RESTS RMODES COMP-TYPES
211 GDECL-SYM GNAME-SYM GNEXT-SYM FRMNO INIT-SYM ADDR-SYM TOTARGS REQARGS
212 DECL-SYM PURE-SYM ARGNUM-SYM CODE-SYM SPEC-SYM NAME-SYM NEXT-SYM PREDIC
213 NODE-SUBR CLAUSES ACS TMPLS ACTIVATED USLOTS SSLOTS SYMTAB SPECS-START
214 BINDING-STRUCTURE RSUBR-DECLS SEGS STACKS KIDS NODE-NAME RESULT-TYPE PARENT
215 NODE-TYPE SIDE-EFFECTS RET-AGAIN-ONLY ASS? INACS STORED DST CDST ACCUM-TYPE
216 INIT-DECL-TYPE VSPCD AGND ASSUM RTAG ATAG SPCS-X BTP-B STK-B PRE-ALLOC
217 USED-AT-ALL CURRENT-TYPE DEATH-LIST COMPOSIT-TYPE AGAIN-STATES RETURN-STATES
218 PROG-VARS LOOP-VARS PROG-AC NUM-SYM TYPE-INFO USAGE-SYM LIVE-VARS
221 <GDECL (DOITS) <UVECTOR [9 ANY]> (RDOIT SDOIT) <UVECTOR [7 ANY]>
222 (BANALS) <UVECTOR [13 ANY]> (ANALYZERS) VECTOR
223 (BINDERS) UVECTOR (GENERATORS) VECTOR>
235 <NEWTYPE TEMP VECTOR '<VECTOR SCL FIX>>
241 <OR FALSE <LIST [REST SYMTAB]>>
242 [REST <LIST SYMTAB ANY>]>]>>
274 '<VECTOR <PRIMTYPE WORD>
276 <OR <LIST [REST DATUM]> FALSE>
286 <NEWTYPE DATUM LIST '<<PRIMTYPE LIST>
287 <OR ATOM <PRIMTYPE LIST> <PRIMTYPE VECTOR>>
288 <OR ATOM <PRIMTYPE LIST> <PRIMTYPE VECTOR>>>>
290 <NEWTYPE OFFPTR LIST '<LIST FIX DATUM ATOM>>
292 <NEWTYPE ADDRESS:PAIR LIST>
296 <FUNCTION (N1 N2 N N+1 NAME)
297 <SETG .NAME <CHTYPE [.N1 .N2 <> 0 .N <> .N+1 <> <> <>] AC>>>
299 ![`A* `B* `C* `D* `E*!]
301 ![`B* `C* `D* `E* `PVP*!]
302 ![AC-A AC-B AC-C AC-D AC-E!]>>
304 <COND (<NOT <GASSIGNED? DATUM>>
305 <SETG DATUM <RSUBR [#CODE ![] DATUM #DECL ("VALUE" DATUM ANY ANY)]>>)>
307 <COND (<NOT <GASSIGNED? GEN>>
308 <SETG GEN <RSUBR [#CODE ![] GEN #DECL ("VALUE" DATUM NODE <OR ATOM DATUM>)]>>)>
310 <COND (<NOT <GASSIGNED? GETREG>>
311 <SETG GETREG <RSUBR [#CODE ![] GETREG #DECL ("VALUE" AC ANY)]>>)>
313 <COND (<NOT <GASSIGNED? SGETREG>>
314 <SETG SGETREG <RSUBR [#CODE ![] SGETREG #DECL ("VALUE" AC AC ANY)]>>)>
316 <COND (<NOT <GASSIGNED? MINL>>
317 <SETG MINL <RSUBR [#CODE ![] MINL #DECL ("VALUE"FIX ANY)]>>)>
319 <COND (<NOT <GASSIGNED? TOACV>>
320 <SETG TOACV <RSUBR [#CODE ![] TOACV #DECL ("VALUE" DATUM DATUM)]>>)>
322 <COND (<NOT <GASSIGNED? TOACT>>
323 <SETG TOACT <RSUBR [#CODE ![] TOACT #DECL ("VALUE" DATUM DATUM)]>>)>
325 <GDECL (INS1) UVECTOR
326 (ASTATE) <UVECTOR [REST <UVECTOR [REST FIX]>]> (SNODES SNODES1) <UVECTOR [REST FIX]>
327 (CMSUBRS 0SUBRS) <UVECTOR ATOM [REST ATOM]>
328 (SKIPS) <UVECTOR [REST <LIST [REST <PRIMTYPE WORD>]>]>
329 (0JMPS) <UVECTOR [REST <PRIMTYPE WORD>]>>