2 "CODE IS STORED IN A LIST OF UVECTORS. EACH INSTRUCTION IS A FIX. THE
3 INSTRUCTION CONTAINS THE INSTRUCTION BYTE (8 BITS) + INFORMATION TO FIX UP THE
4 INSTRUCTION. WHEN AN INSTRUCTION DOES NOT FIT INTO A SINGLE FIX IT IS
5 FOLLOWED BY ADDITIONAL FIXES. EVERY INSTRUCTION TAKES UP AN INTEGER NUMBER OF
6 FIXES EVEN THOUGH THE OUTPUT VERSION MAY BE DIFFERENT. THERE IS A TEMPORARY
7 FIXUP TABLE WHICH IS USED TO DETERMINE THE LOCATION OF THE TEMPORARIES AND
8 ALSO A LABEL FIXUP TABLE TO KEEP TRACK OF THE LABELS. THE SYSTEM ATTEMPTS
9 TO FIX UP LABELS IN PARTICULAR INTERVALS SO THAT IT DOESN'T HAVE TO KEEP
10 TRACK OF TOO MANY LABELS. ANY NON-LOOPING LABELS WILL BE FLUSHED AS SOON
11 AS THEY ARE FIXED UP. THERE IS ALSO A CONSTANT TABLE WHICH KEEPS TRACK OF
12 THE LOCATION OF ALL FULL-WORD CONSTANTS. THESE ARE FIXED UP LIKE LABELS. IN
13 GENERAL THE FIRST OCCURANCE OF A 32 BIT CONSTANT WILL BE OUTPUT AS AN
14 IMMEDIATE INSTRUCTION. ALL OTHER OCCURANCES WILL BE OUTPUT AS A REFERENCE
15 TO THAT CONSTANT IN PC-RELATIVE MODE (THIS WILL BE AN OPTION. WE MAY
16 EVENTUALLY GENERATE ALL CONSTANTS IMMEDIATE IF THAT PROVES TO GENERATE
20 <GFCN
\1aINIT-CODE ("VALUE" FIX)>
23 <UUBLOCK <TYPE-CODE UVECTOR> 1024 = TEMP4>
25 <LOOP (TEMP5 VALUE LENGTH)>
27 <EMPUU? TEMP5 + ISTRE7>
29 <RESTUU TEMP5 1 = TEMP5>
32 <SETG 'CURRENT-CODE TEMP4>
34 <GVAL 'CURRENT-CODE = TEMP4>
35 <CONS TEMP4 () = TEMP4>
36 <SETG 'CODE-LIST TEMP4>
43 <GFCN
\1aRESET-CODE ("VALUE" <LIST [REST FIX]>)>
46 <GVAL 'CODE-LIST = TEMP4>
47 <NTHL TEMP4 1 = TEMP4 (TYPE UVECTOR)>
48 <SETG 'CURRENT-CODE TEMP4>
51 <SETG 'SAVED-CODE-COUNT %<>>
52 <SETG 'SAVED-CODE-STACK ()>
57 <GFCN
\1aNTH-CODE ("VALUE" FIX FIX) NUM4>
60 <GVAL 'CODE-LIST = CL5>
65 <GRTR? PTR9 1024 + PHRASE12 (TYPE FIX)>
66 <NTHL CL5 1 = CL5 (TYPE UVECTOR)>
67 <NTHUU CL5 PTR9 = PTR9 (TYPE FIX)>
72 <RESTL CL5 1 = CL5 (TYPE LIST)>
73 <EMPL? CL5 - PHRASE15 (TYPE LIST)>
80 <SUB PTR9 1024 = PTR9 (TYPE FIX)>
85 <GFCN
\1aPUT-CODE ("VALUE" ATOM FIX FIX) NUM4 VAL5>
88 <GVAL 'CODE-LIST = CL6>
93 <GRTR? PTR10 1024 + PHRASE13 (TYPE FIX)>
94 <NTHL CL6 1 = CL6 (TYPE UVECTOR)>
95 <PUTUU CL6 PTR10 VAL5>
99 <RESTL CL6 1 = CL6 (TYPE LIST)>
100 <EMPL? CL6 - PHRASE16 (TYPE LIST)>
102 <PUSH 'OUT-OF-BOUNDS>
106 <SUB PTR10 1024 = PTR10 (TYPE FIX)>
111 <GFCN
\1aADD-WORD-TO-CODE ("VALUE" FIX FIX) WD4>
112 <TEMP CCODE6 COUNT7:FIX TEMP10 RLST5:LIST>
114 <GVAL 'CURRENT-CODE = CCODE6>
115 <GVAL 'CODE-COUNT = COUNT7>
116 <EMPUU? CCODE6 - PHRASE18 (TYPE UVECTOR)>
117 <GVAL 'CODE-LIST = TEMP10>
118 <SUB COUNT7 1 = CCODE6 (TYPE FIX)>
119 <DIV CCODE6 1024 = CCODE6 (TYPE FIX)>
120 <SUB CCODE6 1 = CCODE6 (TYPE FIX)>
121 <GRTR? CCODE6 0 - RESTL13 (TYPE FIX)>
122 <LOOP (TEMP10 VALUE) (CCODE6 VALUE)>
125 <RESTL TEMP10 1 = TEMP10 (TYPE LIST)>
126 <SUB CCODE6 1 = CCODE6 (TYPE FIX)>
127 <GRTR? CCODE6 0 + RESTL12 (TYPE FIX)>
131 <EMPL? RLST5 + PHRASE15>
132 <RESTL RLST5 1 = TEMP10 (TYPE LIST)>
133 <EMPL? TEMP10 - PHRASE15>
135 <UUBLOCK <TYPE-CODE UVECTOR> 1024 = CCODE6>
137 <LOOP (TEMP10 VALUE LENGTH)>
139 <EMPUU? TEMP10 + ISTRE17>
141 <RESTUU TEMP10 1 = TEMP10>
144 <CONS CCODE6 () = TEMP10>
145 <PUTREST RLST5 TEMP10>
149 <RESTL RLST5 1 = TEMP10 (TYPE LIST)>
151 <NTHL TEMP10 1 = CCODE6 (TYPE UVECTOR)>
156 <RESTUU CCODE6 1 = TEMP10 (TYPE UVECTOR)>
158 <SETG 'CURRENT-CODE TEMP10>
160 <ADD COUNT7 1 = CCODE6 (TYPE FIX)>
162 <SETG 'CODE-COUNT CCODE6>
165 <END
\1aADD-WORD-TO-CODE>
168 <GFCN
\1aPRINT-SPEC-LABEL ("VALUE" FIX SPEC-LABEL) X4>
171 <GEN-LVAL 'OUTCHAN = OUTCHAN5>
177 <CHTYPE X4 <TYPE-CODE FIX> = STACK>
181 <CALL '
\1aPRIN1 2 = OUTCHAN5>
184 <END
\1aPRINT-SPEC-LABEL>
186 <COND (<GASSIGNED? PRINT-SPEC-LABEL> <PRINTTYPE SPEC-LABEL ,PRINT-SPEC-LABEL>)>
189 <GFCN
\1aPRINT-LABEL-REF ("VALUE" <OR ATOM SPEC-LABEL> LABEL-REF) LREF4>
192 <GEN-LVAL 'OUTCHAN = OUTCHAN5>
198 <NTHUV LREF4 1 = STACK>
202 <CALL '
\1aPRIN1 2 = OUTCHAN5>
205 <END
\1aPRINT-LABEL-REF>
207 <COND (<GASSIGNED? PRINT-LABEL-REF> <PRINTTYPE LABEL-REF ,PRINT-LABEL-REF>)>
210 <GFCN
\1aINIT-LABEL-TABLE ("VALUE" FIX ANY) RESTART4>
211 <TEMP LAB6:LABEL-REF TMP5:VECTOR TEMP8>
213 <SETG 'LABEL-TABLE ()>
214 <FRAME '
\1aCREATE-LABEL-REF>
216 <CALL '
\1aCREATE-LABEL-REF 1 = LAB6>
217 <UUBLOCK <TYPE-CODE VECTOR> 128 = TMP5>
219 <LOOP (TEMP8 VALUE LENGTH) (LAB6 TYPE VALUE LENGTH)>
221 <EMPUV? TEMP8 + ISTRE10>
223 <RESTUV TEMP8 1 = TEMP8>
226 <LENUV TMP5 = TEMP8 (TYPE FIX)>
227 <RESTUV TMP5 TEMP8 = TEMP8 (TYPE VECTOR)>
229 <SETG 'OUTST-LABEL-TABLE TEMP8>
231 <TYPE? RESTART4 <TYPE-CODE FALSE> + BOOL11>
233 <SETG 'CURRENT-SLABEL 0>
235 <SETG 'PTNS-TABLE ()>
238 <END
\1aINIT-LABEL-TABLE>
241 <GFCN
\1aMAKE-LABEL ("VALUE" ANY "OPTIONAL" ANY) ATM?6>
242 <OPT-DISPATCH 0 %<> OPT4 OPT5>
246 <TEMP TEMP12 STR7:STRING>
248 <NTHR 'CURRENT-SLABEL 1 = TEMP12 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG11)>
249 <TYPE? TEMP12 <TYPE-CODE FALSE> + TAG11>
250 <NTHR TEMP12 1 = TEMP12 (RECORD-TYPE GBIND)>
251 <TYPE? TEMP12 <TYPE-CODE UNBOUND> - PHRASE10>
254 <SET TEMP12 0 (TYPE FIX)>
257 <GVAL 'CURRENT-SLABEL = TEMP12>
259 <ADD TEMP12 1 = TEMP12 (TYPE FIX)>
260 <SETG 'CURRENT-SLABEL TEMP12>
261 <TYPE? ATM?6 <TYPE-CODE FALSE> + PHRASE14>
262 <TYPE? ATM?6 <TYPE-CODE STRING> + PHRASE16>
263 <SET ATM?6 "ITAG" (TYPE STRING)>
270 <CALL '
\1aUNPARSE 1 = STACK>
271 <UBLOCK <TYPE-CODE STRING> 2 = STR7 (TYPE STRING)>
274 <GVAL 'VAR-OBLIST = STACK>
275 <CALL '
\1aLOOKUP 2 = TEMP12>
276 <TYPE? TEMP12 <TYPE-CODE FALSE> - COND13>
280 <GVAL 'VAR-OBLIST = STACK>
281 <CALL '
\1aINSERT 2 = TEMP12>
285 <CHTYPE TEMP12 <TYPE-CODE SPEC-LABEL> = TEMP12>
292 <GFCN
\1aCOPY-PSAVE ("VALUE" FIX PTN-SAVE CODEVEC) PSAVE4 NCODE5>
297 <NTHUV PSAVE4 2 = STACK (TYPE VARTBL)>
298 <NTHUV PSAVE4 3 = STACK (TYPE ATOM)>
299 <NTHUV PSAVE4 4 = STACK>
301 <UBLOCK <TYPE-CODE VECTOR> 5 = TEMP9 (TYPE VECTOR)>
302 <CHTYPE TEMP9 <TYPE-CODE PTN-SAVE> = RES6>
304 <NTHUV PSAVE4 5 = TEMP9 (TYPE LIST)>
305 <CONS RES6 TEMP9 = TEMP9>
306 <PUTUV PSAVE4 5 TEMP9 (TYPE LIST)>
308 <GVAL 'PTNS-TABLE = TEMP9>
309 <CONS RES6 TEMP9 = TEMP9>
311 <SETG 'PTNS-TABLE TEMP9>
313 <GVAL 'PTNS-COUNT = TEMP9>
314 <PUTBITS 90 16 0 TEMP9 = RES6>
316 <GVAL 'PTNS-COUNT = TEMP9>
317 <ADD TEMP9 1 = TEMP9 (TYPE FIX)>
318 <SETG 'PTNS-COUNT TEMP9>
325 <GFCN
\1aKILL-PSAVE ("VALUE" <OR FALSE PTN-SAVE> PTN-SAVE) PSAVE4>
326 <TEMP TEMP14 TEMP16:LIST>
329 <SET TEMP14 %<> (TYPE FALSE)>
330 <NTHUV PSAVE4 5 = TEMP16 (TYPE LIST)>
335 <EMPL? TEMP16 + MAPAP9>
336 <NTHL TEMP16 1 = TEMP14>
338 <RESTL TEMP16 1 = TEMP16 (TYPE LIST)>
346 <GFCN
\1aEMIT-POTENTIAL-STORE ("VALUE" <OR FALSE XREF-INFO> CODEVEC ATOM LINKVAR) CODE4 KIND5 LVAR6>
347 <TEMP TEMP9 PTN7:PTN-SAVE TEMP11 XREF22:XREF-INFO>
351 <NTHUV LVAR6 1 = STACK (TYPE VARTBL)>
356 <UBLOCK <TYPE-CODE VECTOR> 5 = TEMP9 (TYPE VECTOR)>
357 <CHTYPE TEMP9 <TYPE-CODE PTN-SAVE> = PTN7>
359 <GVAL 'PTNS-TABLE = TEMP9>
360 <CONS PTN7 TEMP9 = TEMP9>
361 <SETG 'PTNS-TABLE TEMP9>
363 <FRAME '
\1aADD-WORD-TO-CODE>
364 <LSH 90 24 = TEMP9 (TYPE FIX)>
365 <GVAL 'PTNS-COUNT = TEMP11>
366 <OR TEMP9 TEMP11 = STACK>
368 <CALL '
\1aADD-WORD-TO-CODE 1>
369 <GVAL 'PTNS-COUNT = TEMP11>
370 <ADD TEMP11 1 = TEMP11 (TYPE FIX)>
371 <SETG 'PTNS-COUNT TEMP11>
373 <SET TEMP9 %<> (TYPE FALSE)>
374 <NTHUV LVAR6 10 = TEMP11 (TYPE LIST)>
379 <EMPL? TEMP11 + MAPAP16>
380 <NTHL TEMP11 1 = XREF22>
381 <NTHUV XREF22 11 = TEMP9 (TYPE LIST)>
382 <CONS PTN7 TEMP9 = TEMP9>
383 <PUTUV XREF22 11 TEMP9 (TYPE LIST)>
387 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
392 <END
\1aEMIT-POTENTIAL-STORE>
395 <GFCN
\1aGET-PTNS ("VALUE" PTN-SAVE ANY) NUM4>
396 <TEMP TEMP5 TEMP6:FIX>
398 <GVAL 'PTNS-TABLE = TEMP5>
399 <GVAL 'PTNS-COUNT = TEMP6>
400 <SUB TEMP6 NUM4 = TEMP6 (TYPE FIX)>
402 <SUB TEMP6 1 = TEMP6 (TYPE FIX)>
403 <GRTR? TEMP6 0 - RESTL9 (TYPE FIX)>
404 <LOOP (TEMP5 VALUE) (TEMP6 VALUE)>
407 <RESTL TEMP5 1 = TEMP5 (TYPE LIST)>
408 <SUB TEMP6 1 = TEMP6 (TYPE FIX)>
409 <GRTR? TEMP6 0 + RESTL8 (TYPE FIX)>
411 <NTHL TEMP5 1 = TEMP5 (TYPE PTN-SAVE)>
417 <GFCN
\1aSAVE-XREF-AC-INFO ("VALUE" XREF-INFO XREF-INFO AC-STATE SLOAD-STATE) XREF4 SSTATE5 SLSTATE6>
420 <PUTUV XREF4 3 SSTATE5>
422 <PUTUV XREF4 10 SLSTATE6>
426 <END
\1aSAVE-XREF-AC-INFO>
429 <GFCN
\1aPRINT-XREF-INFO ("VALUE" FIX XREF-INFO) XREF4>
430 <TEMP OUTCHAN5 TEMP10>
432 <GEN-LVAL 'OUTCHAN = OUTCHAN5>
438 <NTHUV XREF4 1 = TEMP10 (TYPE LABEL-REF)>
439 <NTHUV TEMP10 1 = STACK>
448 <NTHUV XREF4 2 = STACK (TYPE FIX)>
452 <CALL '
\1aPRIN1 2 = TEMP10>
455 <END
\1aPRINT-XREF-INFO>
457 <COND (<GASSIGNED? PRINT-XREF-INFO> <PRINTTYPE XREF-INFO ,PRINT-XREF-INFO>)>
459 "UPDATE THE LABEL TABLES FOR A BRANCH"
462 <GFCN
\1aUPDLT-BRANCH ("VALUE" XREF-INFO <OR ATOM SPEC-LABEL> FIX ANY ANY BOOLEAN) LABEL4 CODEPTR5 STATUS?6 LILEN7 FORCEL?8>
465 <GVAL 'OUTST-LABEL-TABLE = OUTST10>
469 <CALL '
\1aGET-LREF 1 = OUTST10>
481 <CALL '
\1aADD-XREF 5 = OUTST10>
484 <END
\1aUPDLT-BRANCH>
487 <GFCN
\1aGET-LREF ("VALUE" LABEL-REF <OR ATOM SPEC-LABEL> "OPTIONAL" ANY) LABEL6 JUST-LOOKING?7>
488 <OPT-DISPATCH 1 %<> OPT4 OPT5>
492 <TEMP GL9 TEMP21:VECTOR LREF22:LABEL-REF>
494 <GVAL 'OUTST-LABEL-TABLE = TEMP21>
498 <EMPUV? TEMP21 + MAPAP14>
499 <NTHUV TEMP21 1 = LREF22>
500 <NTHUV LREF22 1 = GL9>
501 <EQUAL? GL9 LABEL6 - PHRASE24>
503 <TYPE? JUST-LOOKING?7 <TYPE-CODE FALSE> - PHRASE27>
504 <DEAD JUST-LOOKING?7>
510 <RESTUV TEMP21 1 = TEMP21 (TYPE VECTOR)>
513 <FRAME '
\1aCREATE-LABEL-REF>
516 <CALL '
\1aCREATE-LABEL-REF 1 = LREF22>
517 <PUTUV LREF22 9 JUST-LOOKING?7>
518 <DEAD JUST-LOOKING?7>
519 <FRAME '
\1aADD-OUTSTANDING-LABEL>
521 <CALL '
\1aADD-OUTSTANDING-LABEL 1>
527 <GFCN
\1aCREATE-LABEL-REF ("VALUE" LABEL-REF <OR ATOM SPEC-LABEL>) NAME4>
540 <UBLOCK <TYPE-CODE VECTOR> 9 = TEMP6>
541 <CHTYPE TEMP6 <TYPE-CODE LABEL-REF> = TEMP6>
544 <END
\1aCREATE-LABEL-REF>
547 <GFCN
\1aADD-OUTSTANDING-LABEL ("VALUE" <VECTOR [REST LABEL-REF]> LABEL-REF) LREF4>
548 <TEMP OUTST5 TEMP9 NOUTST6:VECTOR TEMP11>
550 <GVAL 'OUTST-LABEL-TABLE = OUTST5>
551 <TOPU OUTST5 = TEMP9>
552 <VEQUAL? TEMP9 OUTST5 - PHRASE8>
557 <CALL '
\1aVECGROW 2 = NOUTST6>
558 <RESTUV NOUTST6 127 = NOUTST6 (TYPE VECTOR)>
559 <PUTUV NOUTST6 1 LREF4>
561 <LENUV OUTST5 = TEMP9 (TYPE FIX)>
562 <RESTUV NOUTST6 1 = TEMP11 (TYPE VECTOR)>
563 <MOVE-WORDS OUTST5 TEMP11 TEMP9 (TYPE VECTOR) (DIRECTION %<>)>
564 <DEAD OUTST5 TEMP11 TEMP9>
565 <SETG 'OUTST-LABEL-TABLE NOUTST6>
569 <BACKU OUTST5 1 = OUTST5>
570 <PUTUV OUTST5 1 LREF4>
572 <SETG 'OUTST-LABEL-TABLE OUTST5>
575 <END
\1aADD-OUTSTANDING-LABEL>
577 "FINDS AND REMOVES A LABEL FROM THE OUTSTANDING LABEL TABLE. THE LABEL WILL
578 NOT BE REMOVED IF IT IS A LOOP LABEL"
581 <GFCN
\1aREMOVE-OUTSTANDING-LABEL ("VALUE" <OR FALSE LABEL-REF> <OR SPEC-LABEL ATOM>) LABEL4>
582 <TEMP OUTST5 PTR9 LEN11:FIX LREF10:LABEL-REF TEMP17>
584 <GVAL 'OUTST-LABEL-TABLE = OUTST5>
585 <SET PTR9 1 (TYPE FIX)>
586 <LENUV OUTST5 = LEN11 (TYPE FIX)>
590 <GRTR? PTR9 LEN11 - PHRASE14 (TYPE FIX)>
593 <NTHUV OUTST5 PTR9 = LREF10 (TYPE LABEL-REF)>
594 <NTHUV LREF10 1 = TEMP17>
595 <EQUAL? TEMP17 LABEL4 - PHRASE24>
597 <NTHUV LREF10 5 = TEMP17>
598 <TYPE? TEMP17 <TYPE-CODE FALSE> - BOOL20>
600 <NTHUV LREF10 9 = TEMP17>
601 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE19>
607 <VEQUAL? PTR9 1 - PHRASE21 (TYPE FIX)>
608 <RESTUV OUTST5 1 = TEMP17 (TYPE VECTOR)>
610 <SETG 'OUTST-LABEL-TABLE TEMP17>
615 <SUB PTR9 1 = TEMP17 (TYPE FIX)>
617 <RESTUV OUTST5 1 = PTR9 (TYPE VECTOR)>
618 <MOVE-WORDS OUTST5 PTR9 TEMP17 (TYPE VECTOR) (DIRECTION FORWARD)>
620 <RESTUV OUTST5 1 = PTR9 (TYPE VECTOR)>
622 <SETG 'OUTST-LABEL-TABLE PTR9>
627 <ADD PTR9 1 = PTR9 (TYPE FIX)>
629 <END
\1aREMOVE-OUTSTANDING-LABEL>
631 "UPDATE LABEL TABLES WHEN ENCOUNTERING AN ACTUAL LABEL"
634 <GFCN
\1aUPDLT-LABEL ("VALUE" LABEL-REF <OR ATOM SPEC-LABEL> FIX <OR FALSE AC-STATE ATOM>) LABEL4 CODEPTR5 LOOP?6>
635 <TEMP LTAB8 TEMP10 TABPTR9:FIX LREF7>
637 <GVAL 'LABEL-TABLE = LTAB8>
638 <LENL LTAB8 = TEMP10 (TYPE FIX)>
639 <ADD TEMP10 1 = TABPTR9 (TYPE FIX)>
641 <FRAME '
\1aREMOVE-OUTSTANDING-LABEL>
643 <CALL '
\1aREMOVE-OUTSTANDING-LABEL 1 = LREF7>
644 <TYPE? LREF7 <TYPE-CODE FALSE> - PHRASE13>
645 <FRAME '
\1aCREATE-LABEL-REF>
648 <CALL '
\1aCREATE-LABEL-REF 1 = LREF7>
649 <FRAME '
\1aADD-OUTSTANDING-LABEL>
651 <CALL '
\1aADD-OUTSTANDING-LABEL 1>
656 <PUTUV LREF7 4 CODEPTR5 (TYPE FIX)>
658 <PUTUV LREF7 5 LOOP?6>
660 <EMPL? LTAB8 - PHRASE17 (TYPE LIST)>
661 <CONS LREF7 () = TEMP10>
662 <SETG 'LABEL-TABLE TEMP10>
668 <LOOP (TEMP10 VALUE)>
670 <RESTL TEMP10 1 = LTAB8 (TYPE LIST)>
671 <EMPL? LTAB8 + TAG20>
676 <CONS LREF7 () = LTAB8>
677 <PUTREST TEMP10 LTAB8>
680 <FRAME '
\1aFIXUP-BRANCH-REFERENCES>
681 <NTHUV LREF7 2 = STACK (TYPE LIST)>
684 <CALL '
\1aFIXUP-BRANCH-REFERENCES 2>
685 <PUTUV LREF7 7 () (TYPE LIST)>
686 <PUTUV LREF7 8 () (TYPE LIST)>
692 <GFCN
\1aFIXUP-BRANCH-REFERENCES ("VALUE" <OR ATOM FALSE> <LIST [REST XREF-INFO]> FIX) XREFS4 TABPTR5>
693 <TEMP TEMP15 TEMP12:LIST TEMP21:FIX>
695 <SET TEMP15 %<> (TYPE FALSE)>
696 <SET TEMP12 XREFS4 (TYPE LIST)>
701 <EMPL? TEMP12 + MAPAP10>
702 <NTHL TEMP12 1 = TEMP15>
703 <NTHUV TEMP15 2 = TEMP15 (TYPE FIX)>
706 <CALL '
\1aNTH-CODE 1 = TEMP21>
707 <OR TEMP21 TABPTR5 = TEMP21>
713 <CALL '
\1aPUT-CODE 2 = TEMP15>
714 <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
719 <END
\1aFIXUP-BRANCH-REFERENCES>
722 <GFCN
\1aADD-XREF ("VALUE" XREF-INFO LABEL-REF FIX ANY FIX BOOLEAN) LREF4 CODPTR5 STATUS?6 LILEN7 FORCEL?8>
723 <TEMP TEMP11 XREF9:XREF-INFO>
736 <GVAL 'CODE-COUNT = STACK>
741 <UBLOCK <TYPE-CODE VECTOR> 12 = TEMP11 (TYPE VECTOR)>
742 <CHTYPE TEMP11 <TYPE-CODE XREF-INFO> = XREF9>
744 <NTHUV LREF4 2 = TEMP11 (TYPE LIST)>
745 <CONS XREF9 TEMP11 = TEMP11>
746 <PUTUV LREF4 2 TEMP11 (TYPE LIST)>
753 <GFCN
\1aEMIT-BRANCH ("VALUE" XREF-INFO FIX <OR ATOM SPEC-LABEL> ANY ANY "OPTIONAL" ANY BOOLEAN ANY) INST8 LABEL9 STATUS?10 LILEN11 ACNUM12 FORCEL?13 XT14>
754 <OPT-DISPATCH 4 %<> OPT4 OPT5 OPT6 OPT7>
762 <TEMP (CNT16:FIX 1) XREF15:XREF-INFO LREF17:LABEL-REF TEMP21 TREF35:LABEL-REF>
764 <LSH INST8 24 = INST8 (TYPE FIX)>
765 <FRAME '
\1aUPDLT-BRANCH>
768 <GVAL 'CODE-COUNT = STACK>
775 <CALL '
\1aUPDLT-BRANCH 5 = XREF15>
776 <NTHUV XREF15 1 = LREF17 (TYPE LABEL-REF)>
777 <NTHUV LREF17 4 = TEMP21 (TYPE FIX)>
778 <VEQUAL? TEMP21 0 + PHRASE20 (TYPE FIX)>
780 <GVAL 'LABEL-TABLE = TEMP21>
784 <EMPL? TEMP21 + MAPAP28>
785 <NTHL TEMP21 1 = TREF35>
786 <VEQUAL? TREF35 LREF17 + MAPAP28>
788 <ADD CNT16 1 = CNT16 (TYPE FIX)>
789 <RESTL TEMP21 1 = TEMP21 (TYPE LIST)>
792 <OR INST8 CNT16 = INST8>
795 <TYPE? ACNUM12 <TYPE-CODE FALSE> + PHRASE40>
796 <LSH ACNUM12 -8 = CNT16 (TYPE FIX)>
798 <OR INST8 CNT16 = INST8>
801 <FRAME '
\1aADD-WORD-TO-CODE>
804 <CALL '
\1aADD-WORD-TO-CODE 1>
805 <SETG 'LAST-INST-LENGTH 1>
811 <GFCN
\1aEMIT-LABEL ("VALUE" LABEL-REF <OR ATOM SPEC-LABEL> <OR FALSE AC-STATE ATOM>) LABEL4 LOOP?5>
812 <TEMP TEMP7:LABEL-REF>
814 <FRAME '
\1aUPDLT-LABEL>
817 <GVAL 'CODE-COUNT = STACK>
820 <CALL '
\1aUPDLT-LABEL 3 = TEMP7>
825 "THE CONSTANT TABLE CONSISTS OF CONSTANT ADDRESS PAIRS. THE ADDRESS MAY HAVE
826 3 STATES. IF IT IS NON-ZERO. THEN IT IS THE ADDRESS OF THE MOST RECENT
827 EMITTED VERSION OF A CONSTANT. IF IT IS ZERO THEN IT INDICATES THAT A VERSION
828 OF THE CONSTANT WILL BE EMITTED BY SOME INSTRUCTION IN THE CURRENT SUBROUTINE
829 -1 IS USED BY THE SCAN PASS TO INDICATE THAT THE CONSTANT WILL HAVE BEEN
830 BEEN EMITTED BY A PREVIOUS INSTRUCTION"
833 <GFCN
\1aINIT-CONSTANTS ("VALUE" <UVECTOR [REST FIX]>)>
836 <SETG 'CONSTANT-POINTER 1>
837 <UUBLOCK <TYPE-CODE UVECTOR> 1024 = TEMP4>
839 <LOOP (TEMP5 VALUE LENGTH)>
841 <EMPUU? TEMP5 + ISTRE7>
843 <RESTUU TEMP5 1 = TEMP5>
846 <SETG 'CONSTANT-TABLE TEMP4>
849 <END
\1aINIT-CONSTANTS>
852 <GFCN
\1aRESET-CONSTANTS ("VALUE" FIX)>
855 <SETG 'CONSTANT-POINTER 1>
857 <END
\1aRESET-CONSTANTS>
859 "WARNING: THIS ADDS AN ENTRY TO THE CONSTANT TABLE IF IT IS NOT
860 ALREADY THERE. THE INITIAL VERSION OF THIS ALGORITHM USES LINEAR
861 SEARCH. THIS MAY SLOW DOWN THE WORLD"
864 <GFCN
\1aAGEN-CONST ("VALUE" FIX FIX) NUM4>
865 <TEMP TAB5:UVECTOR PTR10:FIX TEMP14 NTAB6:UVECTOR TAB130:UVECTOR TAB231>
867 <GVAL 'CONSTANT-TABLE = TAB5>
868 <SET PTR10 1 (TYPE FIX)>
872 <GVAL 'CONSTANT-POINTER = TEMP14>
873 <VEQUAL? PTR10 TEMP14 - PHRASE13 (TYPE FIX)>
875 <LENUU TAB5 = TEMP14 (TYPE FIX)>
876 <GRTR? PTR10 TEMP14 - PHRASE16 (TYPE FIX)>
878 <LENUU TAB5 = TEMP14 (TYPE FIX)>
879 <ADD TEMP14 128 = TEMP14 (TYPE FIX)>
880 <UUBLOCK <TYPE-CODE UVECTOR> TEMP14 = NTAB6>
883 <LOOP (TEMP14 VALUE LENGTH)>
885 <EMPUU? TEMP14 + ISTRE18>
887 <RESTUU TEMP14 1 = TEMP14>
890 <SET TEMP14 TAB5 (TYPE UVECTOR)>
892 <SET TAB5 NTAB6 (TYPE UVECTOR)>
896 <EMPUU? TEMP14 + MAPAP23>
897 <EMPUU? TAB5 + MAPAP23>
900 <NTHUU TAB231 1 = TAB231 (TYPE FIX)>
901 <PUTUU TAB130 1 TAB231>
903 <RESTUU TEMP14 1 = TEMP14 (TYPE UVECTOR)>
904 <RESTUU TAB5 1 = TAB5 (TYPE UVECTOR)>
909 <SETG 'CONSTANT-TABLE TAB5>
912 <GVAL 'CONSTANT-TABLE = TAB5>
913 <PUTUU TAB5 PTR10 NUM4>
915 <ADD PTR10 1 = TAB231 (TYPE FIX)>
916 <GVAL 'CONSTANT-TABLE = TAB5>
917 <PUTUU TAB5 TAB231 0>
919 <GVAL 'CONSTANT-POINTER = TAB231>
920 <ADD TAB231 2 = TAB231 (TYPE FIX)>
921 <SETG 'CONSTANT-POINTER TAB231>
926 <NTHUU TAB5 PTR10 = TAB231 (TYPE FIX)>
927 <VEQUAL? NUM4 TAB231 - PHRASE33 (TYPE FIX)>
932 <ADD PTR10 2 = PTR10 (TYPE FIX)>
937 <GFCN
\1aINIT-PATCH-TABLE ("VALUE" FIX)>
940 <SETG 'PATCH-TABLE ()>
943 <END
\1aINIT-PATCH-TABLE>
946 <GFCN
\1aADD-PATCH ("VALUE" FIX ATOM) PATCHTYPE4>
947 <TEMP NUM7:FIX TEMP10 NPATCH5:PATCH>
949 <GVAL 'NUM-PATCH = NUM7>
950 <UBLOCK <TYPE-CODE UVECTOR> 0 = STACK>
953 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP10 (TYPE VECTOR)>
954 <CHTYPE TEMP10 <TYPE-CODE PATCH> = NPATCH5>
956 <GVAL 'PATCH-TABLE = TEMP10>
957 <CONS NPATCH5 TEMP10 = TEMP10>
959 <SETG 'PATCH-TABLE TEMP10>
961 <LSH 87 24 = TEMP10 (TYPE FIX)>
962 <OR TEMP10 NUM7 = TEMP10>
963 <FRAME '
\1aADD-WORD-TO-CODE>
966 <CALL '
\1aADD-WORD-TO-CODE 1>
967 <ADD NUM7 1 = TEMP10 (TYPE FIX)>
968 <SETG 'NUM-PATCH TEMP10>
975 <GFCN
\1aGET-PATCH ("VALUE" PATCH FIX) NUM4>
976 <TEMP TAB5:LIST TEMP6:FIX TEMP7>
978 <GVAL 'PATCH-TABLE = TAB5>
979 <LENL TAB5 = TEMP6 (TYPE FIX)>
980 <SUB NUM4 1 = TEMP7 (TYPE FIX)>
982 <SUB TEMP6 TEMP7 = TEMP6 (TYPE FIX)>
984 <SUB TEMP6 1 = TEMP6 (TYPE FIX)>
985 <GRTR? TEMP6 0 - RESTL10 (TYPE FIX)>
986 <LOOP (TAB5 VALUE) (TEMP6 VALUE)>
989 <RESTL TAB5 1 = TAB5 (TYPE LIST)>
990 <SUB TEMP6 1 = TEMP6 (TYPE FIX)>
991 <GRTR? TEMP6 0 + RESTL8 (TYPE FIX)>
993 <NTHL TAB5 1 = TEMP7 (TYPE PATCH)>
1000 <GFCN
\1aINSERT-PATCH ("VALUE" PATCH FIX CODEVEC) NUM4 CDV5>
1003 <FRAME '
\1aGET-PATCH>
1006 <CALL '
\1aGET-PATCH 1 = PATCH6>
1007 <PUTUV PATCH6 1 CDV5>
1011 <END
\1aINSERT-PATCH>
1014 <GFCN
\1aEMIT ("VALUE" <OR FALSE FIX> ANY "TUPLE" ANY) INST4>
1015 <MAKTUP FIELDS5:TUPLE TEMP11 TEMP12 = FIELDS5>
1017 <GVAL 'SPECIAL-OPS = TEMP11>
1018 <TYPE? INST4 <TYPE-CODE FIX> - PHRASE7>
1019 <EMPUU? TEMP11 + PHRASE7>
1020 <LOOP (INST4 VALUE) (TEMP11 LENGTH VALUE)>
1022 <NTHUU TEMP11 1 = TEMP12>
1023 <VEQUAL? TEMP12 INST4 + TAG8>
1025 <RESTUU TEMP11 1 = TEMP11 (TYPE UVECTOR)>
1026 <EMPUU? TEMP11 - TAG9>
1029 <FRAME '
\1aADD-WORD-TO-CODE>
1030 <LSH INST4 24 = TEMP11 (TYPE FIX)>
1031 <AND INST4 #WORD *7777* = TEMP12>
1033 <OR TEMP11 TEMP12 = STACK>
1034 <DEAD TEMP11 TEMP12>
1035 <CALL '
\1aADD-WORD-TO-CODE 1 = TEMP12>
1039 <FRAME '
\1aREAL-EMIT>
1045 <CALL '
\1aREAL-EMIT 3 = TEMP12>
1050 <GDECL (LAST-INST-LENGTH) FIX>
1053 <GFCN
\1aREAL-EMIT ("VALUE" <OR FALSE FIX> FIX TUPLE <OR FALSE FIX>) INST4 FIELDS5 WHERE6>
1054 <TEMP INST-INFO7:UVECTOR TEMP12 NUM-OPS8:FIX (SHFT9:FIX 16) (FNUM10:FIX 1) FLD25 NBYTES31 TEMP39 TEMP38 IMWRD32:FIX EAC27:FIX REG-OR-LIT26:FIX SIZC28:FIX>
1056 <FRAME '
\1aGET-INST-INFO>
1058 <CALL '
\1aGET-INST-INFO 1 = INST-INFO7>
1059 <NTHUU INST-INFO7 2 = TEMP12 (TYPE FIX)>
1060 <LSH TEMP12 -24 = NUM-OPS8 (TYPE FIX)>
1062 <LSH INST4 24 = INST4 (TYPE FIX)>
1063 <TYPE? WHERE6 <TYPE-CODE FALSE> - PHRASE14>
1064 <SETG 'LAST-INST-LENGTH 0>
1066 <CHTYPE FIELDS5 <TYPE-CODE VECTOR> = TEMP12>
1070 <EMPUV? TEMP12 + MAPAP19>
1071 <NTHUV TEMP12 1 = FLD25>
1072 <SET NBYTES31 0 (TYPE FIX)>
1073 <VEQUAL? NUM-OPS8 0 - PHRASE34 (TYPE FIX)>
1075 <PUSH 'TOO-MANY-OPERANDS!-ERRORS>
1077 <SET TEMP39 2 (TYPE FIX)>
1078 <SET TEMP38 FIELDS5>
1079 <LOOP (TEMP38 VALUE LENGTH) (TEMP39 VALUE)>
1082 <EMPUV? TEMP38 + TAG37>
1083 <NTHUV TEMP38 1 = STACK>
1084 <RESTUV TEMP38 1 = TEMP38 (TYPE VECTOR)>
1085 <ADD TEMP39 1 = TEMP39 (TYPE FIX)>
1088 <CALL '
\1aERROR TEMP39>
1091 <TYPE? FLD25 <TYPE-CODE EFF-ADDR> + PHRASE43>
1092 <TYPE? FLD25 <TYPE-CODE LADDR> + PHRASE43>
1094 <PUSH 'BAD-CALL-TO-EMIT!-ERRORS>
1096 <SET TEMP38 2 (TYPE FIX)>
1097 <SET TEMP39 FIELDS5>
1098 <LOOP (TEMP39 VALUE LENGTH) (TEMP38 VALUE)>
1101 <EMPUV? TEMP39 + TAG44>
1102 <NTHUV TEMP39 1 = STACK>
1103 <RESTUV TEMP39 1 = TEMP39 (TYPE VECTOR)>
1104 <ADD TEMP38 1 = TEMP38 (TYPE FIX)>
1107 <CALL '
\1aERROR TEMP38>
1110 <TYPE? FLD25 <TYPE-CODE LADDR> - PHRASE48>
1111 <RESTL FLD25 1 = TEMP38 (TYPE LIST)>
1112 <NTHL TEMP38 1 = TEMP38 (TYPE EFF-ADDR)>
1113 <CHTYPE TEMP38 <TYPE-CODE FIX> = IMWRD32>
1115 <NTHL FLD25 1 = TEMP38 (TYPE EFF-ADDR)>
1117 <LSH TEMP38 -24 = FLD25 (TYPE FIX)>
1121 <LSH FLD25 8 = IMWRD32 (TYPE FIX)>
1122 <LSH FLD25 -24 = FLD25 (TYPE FIX)>
1124 <AND FLD25 #WORD *360* = EAC27>
1125 <AND FLD25 #WORD *17* = REG-OR-LIT26>
1126 <VEQUAL? EAC27 64 + PHRASE51 (TYPE FIX)>
1127 <SUB NUM-OPS8 1 = NUM-OPS8 (TYPE FIX)>
1128 <FRAME '
\1aGET-OP-INFO>
1131 <CALL '
\1aGET-OP-INFO 2 = TEMP39>
1132 <AND TEMP39 #WORD *7* = SIZC28>
1133 <LSH TEMP39 -3 = TEMP39 (TYPE FIX)>
1134 <ADD FNUM10 1 = FNUM10 (TYPE FIX)>
1136 <LESS? EAC27 64 + PHRASE54 (TYPE FIX)>
1137 <GRTR? EAC27 112 + PHRASE54 (TYPE FIX)>
1138 <GVAL 'NAC-PC = TEMP38>
1139 <EQUAL? TEMP38 REG-OR-LIT26 - PHRASE54>
1142 <PUSH 'CANT-INDEX-PC!-ERRORS>
1144 <SET TEMP39 2 (TYPE FIX)>
1145 <SET TEMP38 FIELDS5>
1146 <LOOP (TEMP38 VALUE LENGTH) (TEMP39 VALUE)>
1149 <EMPUV? TEMP38 + TAG56>
1150 <NTHUV TEMP38 1 = STACK>
1151 <RESTUV TEMP38 1 = TEMP38 (TYPE VECTOR)>
1152 <ADD TEMP39 1 = TEMP39 (TYPE FIX)>
1155 <CALL '
\1aERROR TEMP39>
1159 <LESS? EAC27 128 + PHRASE59 (TYPE FIX)>
1160 <VEQUAL? EAC27 144 + BOOL66 (TYPE FIX)>
1161 <VEQUAL? EAC27 128 - BOOL63 (TYPE FIX)>
1162 <VEQUAL? SIZC28 2 + BOOL66 (TYPE FIX)>
1163 <VEQUAL? SIZC28 5 - BOOL63 (TYPE FIX)>
1165 <GVAL 'NAC-PC = TEMP39>
1166 <EQUAL? TEMP39 REG-OR-LIT26 + BOOL62>
1169 <VEQUAL? EAC27 224 + BOOL62 (TYPE FIX)>
1170 <VEQUAL? EAC27 240 - PHRASE61 (TYPE FIX)>
1172 <SET NBYTES31 4 (TYPE FIX)>
1175 <VEQUAL? EAC27 192 + BOOL68 (TYPE FIX)>
1176 <VEQUAL? EAC27 208 + BOOL68 (TYPE FIX)>
1177 <VEQUAL? EAC27 128 - PHRASE67 (TYPE FIX)>
1178 <VEQUAL? SIZC28 1 - PHRASE67 (TYPE FIX)>
1179 <GVAL 'NAC-PC = TEMP39>
1180 <EQUAL? TEMP39 REG-OR-LIT26 - PHRASE67>
1183 <SET NBYTES31 2 (TYPE FIX)>
1186 <VEQUAL? EAC27 160 + BOOL73 (TYPE FIX)>
1187 <VEQUAL? EAC27 176 + BOOL73 (TYPE FIX)>
1188 <VEQUAL? EAC27 128 - PHRASE72 (TYPE FIX)>
1189 <VEQUAL? SIZC28 0 - PHRASE72 (TYPE FIX)>
1190 <GVAL 'NAC-PC = TEMP39>
1191 <EQUAL? TEMP39 REG-OR-LIT26 - PHRASE72>
1194 <SET NBYTES31 1 (TYPE FIX)>
1197 <VEQUAL? EAC27 128 - PHRASE77 (TYPE FIX)>
1199 <GVAL 'NAC-PC = TEMP39>
1200 <EQUAL? TEMP39 REG-OR-LIT26 - PHRASE77>
1202 <VEQUAL? SIZC28 4 + BOOL81 (TYPE FIX)>
1203 <VEQUAL? SIZC28 6 - PHRASE80 (TYPE FIX)>
1205 <SET NBYTES31 8 (TYPE FIX)>
1208 <VEQUAL? SIZC28 3 - PHRASE82 (TYPE FIX)>
1209 <SET NBYTES31 16 (TYPE FIX)>
1217 <SET NBYTES31 0 (TYPE FIX)>
1220 <SET NBYTES31 0 (TYPE FIX)>
1222 <LSH FLD25 SHFT9 = TEMP39 (TYPE FIX)>
1224 <OR INST4 TEMP39 = INST4>
1226 <SUB SHFT9 8 = SHFT9 (TYPE FIX)>
1227 <LESS? SHFT9 0 - PHRASE88 (TYPE FIX)>
1228 <SET SHFT9 24 (TYPE FIX)>
1229 <TYPE? WHERE6 <TYPE-CODE FALSE> + PHRASE92>
1230 <FRAME '
\1aPUT-CODE>
1234 <CALL '
\1aPUT-CODE 2>
1235 <ADD WHERE6 1 = WHERE6 (TYPE FIX)>
1238 <FRAME '
\1aADD-WORD-TO-CODE>
1241 <CALL '
\1aADD-WORD-TO-CODE 1>
1242 <GVAL 'LAST-INST-LENGTH = TEMP39>
1243 <ADD TEMP39 1 = TEMP39 (TYPE FIX)>
1244 <SETG 'LAST-INST-LENGTH TEMP39>
1247 <SET INST4 0 (TYPE FIX)>
1252 <SUB NBYTES31 1 = NBYTES31 (TYPE FIX)>
1253 <LESS? NBYTES31 0 + EXIT96 (TYPE FIX)>
1254 <AND IMWRD32 #WORD *37700000000* = TEMP38>
1255 <SUB SHFT9 24 = EAC27 (TYPE FIX)>
1256 <LSH TEMP38 EAC27 = EAC27 (TYPE FIX)>
1258 <OR INST4 EAC27 = INST4>
1260 <LSH IMWRD32 8 = IMWRD32 (TYPE FIX)>
1261 <SUB SHFT9 8 = SHFT9 (TYPE FIX)>
1262 <LESS? SHFT9 0 - AGAIN97 (TYPE FIX)>
1263 <TYPE? WHERE6 <TYPE-CODE FALSE> + PHRASE108>
1264 <FRAME '
\1aPUT-CODE>
1268 <CALL '
\1aPUT-CODE 2>
1269 <ADD WHERE6 1 = WHERE6 (TYPE FIX)>
1272 <FRAME '
\1aADD-WORD-TO-CODE>
1275 <CALL '
\1aADD-WORD-TO-CODE 1>
1276 <GVAL 'LAST-INST-LENGTH = EAC27>
1277 <ADD EAC27 1 = EAC27 (TYPE FIX)>
1278 <SETG 'LAST-INST-LENGTH EAC27>
1281 <SET SHFT9 24 (TYPE FIX)>
1282 <SET INST4 0 (TYPE FIX)>
1285 <RESTUV TEMP12 1 = TEMP12 (TYPE VECTOR)>
1288 <VEQUAL? NUM-OPS8 0 + PHRASE113 (TYPE FIX)>
1291 <PUSH 'TOO-FEW-FIELDS!-ERRORS>
1293 <SET FLD25 2 (TYPE FIX)>
1294 <SET TEMP12 FIELDS5>
1296 <LOOP (TEMP12 VALUE LENGTH) (FLD25 VALUE)>
1299 <EMPUV? TEMP12 + TAG116>
1300 <NTHUV TEMP12 1 = STACK>
1301 <RESTUV TEMP12 1 = TEMP12 (TYPE VECTOR)>
1302 <ADD FLD25 1 = FLD25 (TYPE FIX)>
1305 <CALL '
\1aERROR FLD25>
1308 <VEQUAL? SHFT9 24 - TAG121 (TYPE FIX)>
1312 <TYPE? WHERE6 <TYPE-CODE FALSE> + PHRASE123>
1313 <FRAME '
\1aPUT-CODE>
1317 <CALL '
\1aPUT-CODE 2>
1318 <ADD WHERE6 1 = WHERE6 (TYPE FIX)>
1322 <FRAME '
\1aADD-WORD-TO-CODE>
1325 <CALL '
\1aADD-WORD-TO-CODE 1>
1326 <GVAL 'LAST-INST-LENGTH = NUM-OPS8>
1327 <ADD NUM-OPS8 1 = NUM-OPS8 (TYPE FIX)>
1328 <SETG 'LAST-INST-LENGTH NUM-OPS8>
1334 <GFCN
\1aEMIT-LABEL-WORD ("VALUE" XREF-INFO ATOM) LABEL4>
1335 <TEMP (INST7:FIX 0) (CNT8:FIX 1) XREF5:XREF-INFO LREF6:LABEL-REF TEMP12 TREF26:LABEL-REF>
1337 <FRAME '
\1aUPDLT-BRANCH>
1340 <GVAL 'CODE-COUNT = STACK>
1344 <CALL '
\1aUPDLT-BRANCH 5 = XREF5>
1345 <NTHUV XREF5 1 = LREF6 (TYPE LABEL-REF)>
1346 <NTHUV LREF6 4 = TEMP12 (TYPE FIX)>
1347 <VEQUAL? TEMP12 0 + PHRASE11 (TYPE FIX)>
1349 <GVAL 'LABEL-TABLE = TEMP12>
1353 <EMPL? TEMP12 + MAPAP19>
1354 <NTHL TEMP12 1 = TREF26>
1355 <VEQUAL? TREF26 LREF6 + MAPAP19>
1357 <ADD CNT8 1 = CNT8 (TYPE FIX)>
1358 <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
1361 <OR INST7 CNT8 = INST7>
1364 <FRAME '
\1aADD-WORD-TO-CODE>
1367 <CALL '
\1aADD-WORD-TO-CODE 1>
1368 <SETG 'LAST-INST-LENGTH 1>
1371 <END
\1aEMIT-LABEL-WORD>
1374 <GFCN
\1aBAD-MOVE ("VALUE" <OR FALSE FIX> ANY ANY ATOM "OPTIONAL" ANY) EA16 EA27 MSIZE8 EXTRA9>
1375 <OPT-DISPATCH 3 %<> OPT4 OPT5>
1379 <TEMP INST10 TEMP23>
1381 <VEQUAL? MSIZE8 'ZWL - PHRASE12>
1382 <SET INST10 60 (TYPE FIX)>
1385 <VEQUAL? MSIZE8 'LONG - PHRASE13>
1386 <SET INST10 208 (TYPE FIX)>
1389 <VEQUAL? MSIZE8 'WORD - PHRASE14>
1390 <SET INST10 176 (TYPE FIX)>
1393 <VEQUAL? MSIZE8 'BYTE - PHRASE15>
1394 <SET INST10 144 (TYPE FIX)>
1397 <VEQUAL? MSIZE8 'DOUBLE - PHRASE16>
1399 <SET INST10 125 (TYPE FIX)>
1401 <TYPE? EXTRA9 <TYPE-CODE UNBOUND> + PHRASE18>
1402 <TYPE? EXTRA9 <TYPE-CODE FALSE> + PHRASE18>
1403 <FRAME '
\1aPRIMTYPE>
1405 <CALL '
\1aPRIMTYPE 1 = TEMP23>
1406 <VEQUAL? TEMP23 'FIX + PHRASE21>
1413 <SET INST10 3 (TYPE FIX)>
1416 <LOOP (TEMP23 TYPE VALUE LENGTH) (INST10 VALUE)>
1419 <EMPTY? TEMP23 + TAG24>
1420 <NTH1 TEMP23 = STACK>
1421 <REST1 TEMP23 = TEMP23>
1422 <ADD INST10 1 = INST10 (TYPE FIX)>
1427 <CALL '
\1aEMIT INST10 = INST10>
1440 <CALL '
\1aEMIT 4 = INST10>
1451 <CALL '
\1aEMIT 3 = INST10>
1457 <GFCN
\1aRE-EMIT-MOVE ("VALUE" <OR FALSE FIX> FIX EFF-ADDR EFF-ADDR ATOM) PTR4 EA15 EA26 MSIZE7>
1464 <TUPLE 2 = X9 (TYPE TUPLE)>
1465 <SUB PTR4 2 = PTR4 (TYPE FIX)>
1466 <VEQUAL? MSIZE7 'LONG - PHRASE12>
1467 <SET INST8 208 (TYPE FIX)>
1470 <VEQUAL? MSIZE7 'WORD - PHRASE13>
1471 <SET INST8 176 (TYPE FIX)>
1474 <VEQUAL? MSIZE7 'BYTE - PHRASE14>
1475 <SET INST8 144 (TYPE FIX)>
1478 <VEQUAL? MSIZE7 'DOUBLE - PHRASE15>
1480 <SET INST8 125 (TYPE FIX)>
1482 <FRAME '
\1aREAL-EMIT>
1489 <CALL '
\1aREAL-EMIT 3 = X9>
1493 <END
\1aRE-EMIT-MOVE>
1495 "MAKE SURE CONSTANT IS CORRECT IF IMMEDIATE. IF LONG WORD OPERATION
1496 SHOULD USE CONSTANT TABLE"
1499 <GFCN
\1aIMM-CHECK ("VALUE" ANY EFF-ADDR ATOM) EA4 SIZE5>
1500 <TEMP TEMP11 MSK10:FIX RB12 SHFT13:FIX>
1502 <GVAL 'M$$R-BHWD = TEMP11>
1503 <SUB 0 TEMP11 = TEMP11 (TYPE FIX)>
1504 <LSH -1 TEMP11 = MSK10 (TYPE FIX)>
1506 <GVAL 'EA-FIELD = RB12>
1507 <AND RB12 MSK10 = SHFT13>
1508 <GVAL 'M$$R-BHWD = TEMP11>
1509 <SUB 0 TEMP11 = TEMP11 (TYPE FIX)>
1510 <LSH RB12 TEMP11 = TEMP11 (TYPE FIX)>
1512 <AND TEMP11 MSK10 = MSK10>
1514 <GETBITS EA4 MSK10 SHFT13 = MSK10>
1516 <VEQUAL? SIZE5 'LONG - PHRASE17>
1517 <GVAL 'ADDRESS-IMM-LONG = TEMP11>
1518 <EQUAL? TEMP11 MSK10 - PHRASE19>
1520 <GVAL 'M$$R-BHWD = TEMP11>
1521 <SUB 0 TEMP11 = TEMP11 (TYPE FIX)>
1522 <LSH -1 TEMP11 = MSK10 (TYPE FIX)>
1524 <GVAL 'EA-FIELD = RB12>
1525 <AND RB12 MSK10 = SHFT13>
1526 <GVAL 'M$$R-BHWD = TEMP11>
1527 <SUB 0 TEMP11 = TEMP11 (TYPE FIX)>
1528 <LSH RB12 TEMP11 = TEMP11 (TYPE FIX)>
1530 <AND TEMP11 MSK10 = MSK10>
1532 <GVAL 'ADDRESS-IMM = TEMP11>
1533 <PUTBITS EA4 MSK10 SHFT13 TEMP11 = TEMP11>
1534 <DEAD EA4 MSK10 SHFT13>
1535 <CHTYPE TEMP11 <TYPE-CODE EFF-ADDR> = TEMP11>
1539 <GVAL 'ADDRESS-IMM = TEMP11>
1540 <EQUAL? TEMP11 MSK10 - PHRASE28>
1543 <GETBITS EA4 16 16 = STACK>
1545 <CALL '
\1aEXTEND 1 = TEMP11>
1546 <FRAME '
\1aAGEN-CONST>
1549 <CALL '
\1aAGEN-CONST 1 = TEMP11>
1550 <PUTBITS MSK10 16 16 TEMP11 = TEMP11>
1552 <CHTYPE TEMP11 <TYPE-CODE EFF-ADDR> = TEMP11>
1559 <GVAL 'ADDRESS-IMM-LONG = TEMP11>
1560 <EQUAL? TEMP11 MSK10 - PHRASE31>
1563 <PUSH "CANT USE LONG CONSTANT">
1569 <CALL '
\1aERROR 4 = TEMP11>
1578 <GFCN
\1aSTART-CODE-INSERT ("VALUE" <OR FALSE FIX>)>
1581 <GVAL 'SAVED-CODE-COUNT = CNT4>
1582 <TYPE? CNT4 <TYPE-CODE FALSE> + PHRASE6>
1583 <GVAL 'SAVED-CODE-STACK = TEMP7>
1584 <CONS CNT4 TEMP7 = TEMP7>
1586 <SETG 'SAVED-CODE-STACK TEMP7>
1589 <GVAL 'CODE-COUNT = TEMP7>
1590 <SETG 'SAVED-CODE-COUNT TEMP7>
1593 <END
\1aSTART-CODE-INSERT>
1596 <GFCN
\1aEND-CODE-INSERT ("VALUE" <UVECTOR [REST FIX]>)>
1597 <TEMP CCOUNT4 START6 TEMP15 EL17:FIX>
1599 <GVAL 'CODE-COUNT = CCOUNT4>
1600 <GVAL 'SAVED-CODE-COUNT = START6>
1601 <SET TEMP15 0 (TYPE FIX)>
1605 <EQUAL? CCOUNT4 START6 + MAPAP11>
1606 <FRAME '
\1aNTH-CODE>
1608 <CALL '
\1aNTH-CODE 1 = EL17>
1609 <ADD START6 1 = START6 (TYPE FIX)>
1612 <ADD TEMP15 1 = TEMP15 (TYPE FIX)>
1615 <UBLOCK <TYPE-CODE UVECTOR> TEMP15 = START6 (TYPE UVECTOR)>
1617 <GVAL 'SAVED-CODE-COUNT = TEMP15>
1618 <SETG 'CODE-COUNT TEMP15>
1620 <GVAL 'CODE-COUNT = CCOUNT4>
1621 <GVAL 'CODE-LIST = TEMP15>
1625 <GRTR? CCOUNT4 1025 + PHRASE28 (TYPE FIX)>
1626 <NTHL TEMP15 1 = TEMP15 (TYPE UVECTOR)>
1627 <SUB CCOUNT4 1 = CCOUNT4 (TYPE FIX)>
1628 <RESTUU TEMP15 CCOUNT4 = TEMP15 (TYPE UVECTOR)>
1630 <SETG 'CURRENT-CODE TEMP15>
1634 <RESTL TEMP15 1 = TEMP15 (TYPE LIST)>
1635 <EMPL? TEMP15 - PHRASE31 (TYPE LIST)>
1637 <PUSH 'OUT-OF-BOUNDS>
1638 <PUSH 'END-CODE-INSERT>
1641 <SUB CCOUNT4 1024 = CCOUNT4 (TYPE FIX)>
1644 <GVAL 'SAVED-CODE-STACK = TEMP15>
1645 <EMPL? TEMP15 - PHRASE34 (TYPE LIST)>
1647 <SETG 'SAVED-CODE-COUNT %<>>
1651 <GVAL 'SAVED-CODE-STACK = TEMP15>
1652 <NTHL TEMP15 1 = CCOUNT4 (TYPE FIX)>
1654 <SETG 'SAVED-CODE-COUNT CCOUNT4>
1656 <GVAL 'SAVED-CODE-STACK = TEMP15>
1657 <RESTL TEMP15 1 = CCOUNT4 (TYPE LIST)>
1659 <SETG 'SAVED-CODE-STACK CCOUNT4>
1663 <END
\1aEND-CODE-INSERT>
1666 <GFCN
\1aEMIT-MOVE ("VALUE" <OR ATOM FALSE FIX> ANY ANY ANY "OPTIONAL" ANY) EA16 EA27 SZ8 EXTRA9>
1667 <OPT-DISPATCH 3 %<> OPT4 OPT5>
1671 <TEMP ISZ11 TEMP20 TMP10:FIX ABS12:FIX TB13>
1674 <TYPE? EXTRA9 <TYPE-CODE FALSE> - PHRASE17>
1675 <TYPE? EA16 <TYPE-CODE LADDR> - PHRASE17>
1676 <NTHL EA16 1 = ISZ11 (TYPE EFF-ADDR)>
1677 <GVAL 'AC-PC = TEMP20>
1678 <NTHUV TEMP20 2 = TEMP20 (TYPE FIX)>
1679 <OR TEMP20 #WORD *200* = TEMP20>
1680 <LSH TEMP20 24 = TEMP20 (TYPE FIX)>
1681 <CHTYPE TEMP20 <TYPE-CODE EFF-ADDR> = TEMP20>
1682 <VEQUAL? ISZ11 TEMP20 - PHRASE17>
1684 <EMPL? EA16 + PHRASE17>
1685 <RESTL EA16 1 = TEMP20 (TYPE LIST)>
1686 <EMPL? TEMP20 + PHRASE17>
1687 <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1688 <EMPL? TEMP20 - PHRASE17>
1690 <EQUAL? SZ8 'ZWL + PHRASE17>
1692 <RESTL EA16 1 = TEMP20 (TYPE LIST)>
1693 <NTHL TEMP20 1 = STACK (TYPE EFF-ADDR)>
1695 <CALL '
\1aLREV 1 = TMP10>
1697 <AND TMP10 #WORD *20000000000* = ISZ11>
1698 <VEQUAL? ISZ11 0 + PHRASE25 (TYPE FIX)>
1700 <PUTBITS TMP10 4 32 -1 = TMP10>
1704 <LESS? ABS12 0 - TAG28 (TYPE FIX)>
1705 <SUB 0 ABS12 = ABS12 (TYPE FIX)>
1707 <LESS? TMP10 256 - PHRASE30 (TYPE FIX)>
1708 <GRTR? TMP10 -128 - PHRASE30 (TYPE FIX)>
1709 <SET ISZ11 'BYTE (TYPE ATOM)>
1712 <LESS? TMP10 65536 - PHRASE32 (TYPE FIX)>
1713 <GRTR? TMP10 -32768 - PHRASE32 (TYPE FIX)>
1714 <SET ISZ11 'WORD (TYPE ATOM)>
1717 <SET ISZ11 'LONG (TYPE ATOM)>
1720 <TYPE? EA16 <TYPE-CODE EFF-ADDR> - PHRASE35>
1723 <CALL '
\1aLREV 1 = TMP10>
1724 <GRTR? TMP10 63 + PHRASE35 (TYPE FIX)>
1725 <LESS? TMP10 0 + PHRASE35 (TYPE FIX)>
1727 <SET ISZ11 'BYTE (TYPE ATOM)>
1730 <FRAME '
\1aBAD-MOVE>
1739 <CALL '
\1aBAD-MOVE 4>
1742 <VEQUAL? TMP10 0 - PHRASE43 (TYPE FIX)>
1743 <EQUAL? SZ8 'BYTE - PHRASE47>
1744 <SET ISZ11 148 (TYPE FIX)>
1747 <EQUAL? SZ8 'WORD - PHRASE48>
1748 <SET ISZ11 180 (TYPE FIX)>
1751 <EQUAL? SZ8 'LONG - PHRASE49>
1752 <SET ISZ11 212 (TYPE FIX)>
1755 <EQUAL? SZ8 'DOUBLE + TAG51>
1757 <SET ISZ11 %<> (TYPE FALSE)>
1760 <SET ISZ11 124 (TYPE FIX)>
1767 <CALL '
\1aEMIT 2 = ISZ11>
1770 <GRTR? ABS12 63 + PHRASE54 (TYPE FIX)>
1771 <LESS? ABS12 0 + PHRASE54 (TYPE FIX)>
1772 <AND ABS12 #WORD *77* = TEMP20>
1774 <LSH TEMP20 24 = TEMP20 (TYPE FIX)>
1775 <CHTYPE TEMP20 <TYPE-CODE EFF-ADDR> = EA16>
1777 <GRTR? TMP10 0 - PHRASE60 (TYPE FIX)>
1779 <FRAME '
\1aBAD-MOVE>
1788 <CALL '
\1aBAD-MOVE 4 = ISZ11>
1791 <EQUAL? SZ8 'BYTE - PHRASE66>
1792 <SET ISZ11 142 (TYPE FIX)>
1795 <EQUAL? SZ8 'WORD - PHRASE67>
1796 <SET ISZ11 174 (TYPE FIX)>
1799 <EQUAL? SZ8 'LONG + TAG69>
1801 <SET ISZ11 %<> (TYPE FALSE)>
1804 <SET ISZ11 206 (TYPE FIX)>
1813 <CALL '
\1aEMIT 3 = ISZ11>
1816 <EQUAL? SZ8 ISZ11 - PHRASE71>
1817 <FRAME '
\1aBAD-MOVE>
1826 <CALL '
\1aBAD-MOVE 4 = ISZ11>
1829 <VEQUAL? ISZ11 'BYTE - PHRASE75>
1830 <GVAL 'BYTE-TAB = TB13>
1833 <VEQUAL? ISZ11 'WORD - PHRASE76>
1834 <GVAL 'WORD-TAB = TB13>
1836 <LESS? TMP10 0 - PHRASE78 (TYPE FIX)>
1844 <CALL '
\1aNTH 2 = TB13>
1847 <EQUAL? SZ8 'WORD - PHRASE85>
1849 <NTH1 TB13 = TEMP20>
1857 <CALL '
\1aNTH 2 = TEMP20>
1861 <VEQUAL? ISZ11 'BYTE - PHRASE89>
1862 <GVAL 'AC-PC = TEMP20>
1863 <NTHUV TEMP20 2 = TEMP20 (TYPE FIX)>
1864 <OR TEMP20 #WORD *200* = TEMP20>
1865 <LSH TEMP20 24 = TEMP20 (TYPE FIX)>
1866 <AND TMP10 #WORD *377* = ISZ11>
1868 <LSH ISZ11 16 = ISZ11 (TYPE FIX)>
1869 <OR TEMP20 ISZ11 = TEMP20>
1871 <CHTYPE TEMP20 <TYPE-CODE EFF-ADDR> = TEMP20>
1874 <VEQUAL? ISZ11 'WORD - PHRASE91>
1875 <GVAL 'AC-PC = ISZ11>
1876 <NTHUV ISZ11 2 = ISZ11 (TYPE FIX)>
1877 <OR ISZ11 #WORD *200* = ISZ11>
1878 <LSH ISZ11 24 = ISZ11 (TYPE FIX)>
1879 <AND TMP10 #WORD *377* = ABS12>
1880 <LSH ABS12 16 = ABS12 (TYPE FIX)>
1881 <AND TMP10 #WORD *177400* = TEMP20>
1883 <OR ABS12 TEMP20 = TB13>
1885 <AND TB13 #WORD *77777400* = TB13>
1886 <OR ISZ11 TB13 = ISZ11>
1888 <CHTYPE ISZ11 <TYPE-CODE EFF-ADDR> = TEMP20>
1892 <VEQUAL? ISZ11 'LONG + TAG100>
1894 <SET TEMP20 %<> (TYPE FALSE)>
1897 <GVAL 'AC-PC = ISZ11>
1898 <NTHUV ISZ11 2 = TB13 (TYPE FIX)>
1900 <OR TB13 #WORD *200* = TB13>
1901 <LSH TB13 24 = TB13 (TYPE FIX)>
1902 <CHTYPE TB13 <TYPE-CODE EFF-ADDR> = TB13>
1903 <CONS TB13 () = TB13>
1907 <CALL '
\1aLREV 1 = TEMP20>
1908 <CHTYPE TEMP20 <TYPE-CODE EFF-ADDR> = TEMP20>
1909 <CONS TEMP20 () = TEMP20>
1910 <PUTREST TB13 TEMP20>
1912 <CHTYPE TB13 <TYPE-CODE LADDR> = TEMP20>
1919 <CALL '
\1aEMIT 3 = ISZ11>
1926 <GFCN
\1aEMIT-PUSH ("VALUE" <OR ATOM FALSE FIX> <OR EFF-ADDR LADDR> ATOM) EADDR4 SZ5>
1930 <FRAME '
\1aEMIT-MOVE>
1933 <GVAL 'AC-TP = ISZ7>
1934 <NTHUV ISZ7 2 = ISZ7 (TYPE FIX)>
1935 <OR ISZ7 #WORD *200* = ISZ7>
1936 <LSH ISZ7 24 = ISZ7 (TYPE FIX)>
1937 <CHTYPE ISZ7 <TYPE-CODE EFF-ADDR> = STACK>
1941 <CALL '
\1aEMIT-MOVE 3 = ISZ7>
1946 <SETG BYTE-TAB [[,INST-CVTBW ,INST-CVTWL] [,INST-MOVZBW ,INST-MOVZBL]]>
1948 <SETG WORD-TAB [[0 ,INST-CVTWL] [0 ,INST-MOVZWL]]>
1951 <GFCN
\1aEMIT-POP ("VALUE" <OR ATOM FALSE FIX> <OR AC EFF-ADDR> ATOM) EADDR4 SZ5>
1954 <TYPE? EADDR4 <TYPE-CODE EFF-ADDR> - PHRASE7>
1955 <FRAME '
\1aEMIT-MOVE>
1956 <GVAL 'AC-TP = TEMP9>
1957 <NTHUV TEMP9 2 = TEMP9 (TYPE FIX)>
1958 <OR TEMP9 #WORD *160* = TEMP9>
1959 <LSH TEMP9 24 = TEMP9 (TYPE FIX)>
1960 <CHTYPE TEMP9 <TYPE-CODE EFF-ADDR> = STACK>
1966 <CALL '
\1aEMIT-MOVE 3 = TEMP9>
1970 <FRAME '
\1aEMIT-MOVE>
1971 <GVAL 'AC-TP = TEMP9>
1972 <NTHUV TEMP9 2 = TEMP9 (TYPE FIX)>
1973 <OR TEMP9 #WORD *160* = TEMP9>
1974 <LSH TEMP9 24 = TEMP9 (TYPE FIX)>
1975 <CHTYPE TEMP9 <TYPE-CODE EFF-ADDR> = STACK>
1977 <NTHUV EADDR4 2 = TEMP9 (TYPE FIX)>
1979 <OR TEMP9 #WORD *120* = TEMP9>
1980 <LSH TEMP9 24 = TEMP9 (TYPE FIX)>
1981 <CHTYPE TEMP9 <TYPE-CODE EFF-ADDR> = STACK>
1985 <CALL '
\1aEMIT-MOVE 3 = TEMP9>
1991 <GFCN
\1aCLEAR-PUSH ("VALUE" <OR FALSE FIX> "OPTIONAL" ANY) LENGTH6>
1992 <OPT-DISPATCH 0 %<> OPT4 OPT5>
1999 <EQUAL? LENGTH6 'LONG - PHRASE9>
2000 <SET TEMP10 212 (TYPE FIX)>
2003 <EQUAL? LENGTH6 'WIRD - PHRASE11>
2004 <SET TEMP10 180 (TYPE FIX)>
2007 <EQUAL? LENGTH6 'BYTE - PHRASE12>
2008 <SET TEMP10 148 (TYPE FIX)>
2011 <EQUAL? LENGTH6 'DOUBLE - PHRASE13>
2013 <SET TEMP10 124 (TYPE FIX)>
2016 <GVAL 'INST-CLRO = TEMP10>
2020 <GVAL 'AC-TP = TEMP10>
2021 <NTHUV TEMP10 2 = TEMP10 (TYPE FIX)>
2022 <OR TEMP10 #WORD *200* = TEMP10>
2023 <LSH TEMP10 24 = TEMP10 (TYPE FIX)>
2024 <CHTYPE TEMP10 <TYPE-CODE EFF-ADDR> = STACK>
2026 <CALL '
\1aEMIT 2 = TEMP10>
2032 <GFCN
\1aFIND-CALL-ENTRY ("VALUE" <OR CALL-ENTRY FALSE> ATOM) NAME4>
2033 <TEMP TEMP14 TEMP16:LIST CE17:CALL-ENTRY>
2035 <SET TEMP14 %<> (TYPE FALSE)>
2036 <GVAL 'CALL-ENTRY-TABLE = TEMP16>
2040 <EMPL? TEMP16 + MAPAP9>
2041 <NTHL TEMP16 1 = CE17>
2042 <FRAME '
\1aSAME-NAME?>
2043 <NTHUV CE17 1 = STACK (TYPE ATOM)>
2045 <CALL '
\1aSAME-NAME? 2 = TEMP14>
2046 <TYPE? TEMP14 <TYPE-CODE FALSE> + PHRASE19>
2050 <RESTL TEMP16 1 = TEMP16 (TYPE LIST)>
2055 <END
\1aFIND-CALL-ENTRY>
2058 <GFCN
\1aFIND-CALL-POINT ("VALUE" <OR FALSE FIX> ATOM FIX) NAME4 NARGS5>
2061 <FRAME '
\1aFIND-CALL-ENTRY>
2064 <CALL '
\1aFIND-CALL-ENTRY 1 = CE6>
2066 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE8>
2067 <FRAME '
\1aFIND-ENTRY-LOC>
2072 <CALL '
\1aFIND-ENTRY-LOC 2 = TEMP9>
2076 <END
\1aFIND-CALL-POINT>
2079 <GFCN
\1aFIND-ENTRY-LOC ("VALUE" <OR FALSE FIX> CALL-ENTRY FIX) CE4 NARGS5>
2080 <TEMP CUV6:UVECTOR FINAL10 TEMP13:FIX>
2082 <NTHUV CE4 2 = CUV6 (TYPE UVECTOR)>
2084 <SET FINAL10 %<> (TYPE FALSE)>
2088 <NTHUU CUV6 1 = TEMP13 (TYPE FIX)>
2089 <VEQUAL? NARGS5 TEMP13 - BOOL12 (TYPE FIX)>
2091 <NTHUU CUV6 2 = FINAL10 (TYPE FIX)>
2096 <NTHUU CUV6 1 = TEMP13 (TYPE FIX)>
2097 <VEQUAL? TEMP13 -1 - BOOL14 (TYPE FIX)>
2099 <NTHUU CUV6 2 = FINAL10 (TYPE FIX)>
2101 <VEQUAL? NARGS5 -1 - PHRASE18 (TYPE FIX)>
2102 <TYPE? FINAL10 <TYPE-CODE FALSE> + PHRASE18>
2106 <LENUU CUV6 = TEMP13 (TYPE FIX)>
2107 <VEQUAL? TEMP13 2 - PHRASE22 (TYPE FIX)>
2109 <NTHUU CUV6 1 = TEMP13 (TYPE FIX)>
2110 <GRTR? NARGS5 TEMP13 - PHRASE22 (TYPE FIX)>
2112 <NTHUU CUV6 2 = FINAL10 (TYPE FIX)>
2117 <EMPUU? CUV6 - PHRASE24 (TYPE UVECTOR)>
2121 <RESTUU CUV6 2 = CUV6 (TYPE UVECTOR)>
2123 <END
\1aFIND-ENTRY-LOC>
2126 <GFCN
\1aINIT-INTERNAL-ENTRYS ("VALUE" <LIST [REST INT-ENTRY]>)>
2129 <SETG 'INTERNAL-ENTRY-TABLE ()>
2131 <END
\1aINIT-INTERNAL-ENTRYS>
2134 <GFCN
\1aINIT-CALL-ENTRYS ("VALUE" <LIST [REST CALL-ENTRY]>)>
2137 <SETG 'CALL-ENTRY-TABLE ()>
2139 <END
\1aINIT-CALL-ENTRYS>
2142 <GFCN
\1aADD-INTERNAL-ENTRY ("VALUE" <OR FALSE <LIST [REST INT-ENTRY]>> FIX <OR ATOM SPEC-LABEL>) NUMARGS4 LABEL5>
2143 <TEMP TEMP16 TEMP18:VECTOR LREF19>
2145 <SET TEMP16 %<> (TYPE FALSE)>
2146 <GVAL 'OUTST-LABEL-TABLE = TEMP18>
2150 <EMPUV? TEMP18 + MAPAP11>
2151 <NTHUV TEMP18 1 = LREF19>
2152 <NTHUV LREF19 1 = TEMP16>
2153 <EQUAL? TEMP16 LABEL5 + TAG22>
2155 <SET TEMP16 %<> (TYPE FALSE)>
2161 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP16 (TYPE VECTOR)>
2162 <CHTYPE TEMP16 <TYPE-CODE INT-ENTRY> = LREF19>
2164 <GVAL 'INTERNAL-ENTRY-TABLE = TEMP16>
2165 <CONS LREF19 TEMP16 = TEMP16>
2167 <SETG 'INTERNAL-ENTRY-TABLE TEMP16>
2169 <RESTUV TEMP18 1 = TEMP18 (TYPE VECTOR)>
2174 <END
\1aADD-INTERNAL-ENTRY>
2177 <GFCN
\1aUPDATE-CALL-ENTRY-TABLE ("VALUE" CALL-ENTRY ATOM) FNAME4>
2178 <TEMP TEMP18 TEMP16 IE19 NARGS20>
2180 <GVAL 'INTERNAL-ENTRY-TABLE = TEMP18>
2181 <SET TEMP16 0 (TYPE FIX)>
2185 <EMPL? TEMP18 + MAPAP11>
2186 <NTHL TEMP18 1 = IE19>
2187 <NTHUV IE19 1 = NARGS20 (TYPE FIX)>
2188 <NTHUV IE19 2 = IE19 (TYPE LABEL-REF)>
2191 <ADD TEMP16 1 = TEMP16 (TYPE FIX)>
2192 <NTHUV IE19 3 = STACK (TYPE FIX)>
2194 <ADD TEMP16 1 = TEMP16 (TYPE FIX)>
2195 <RESTL TEMP18 1 = TEMP18 (TYPE LIST)>
2198 <UBLOCK <TYPE-CODE UVECTOR> TEMP16 = NARGS20 (TYPE UVECTOR)>
2204 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP18 (TYPE VECTOR)>
2205 <CHTYPE TEMP18 <TYPE-CODE CALL-ENTRY> = TEMP16>
2207 <GVAL 'CALL-ENTRY-TABLE = TEMP18>
2208 <CONS TEMP16 TEMP18 = TEMP18>
2209 <SETG 'CALL-ENTRY-TABLE TEMP18>
2213 <END
\1aUPDATE-CALL-ENTRY-TABLE>
2215 <SETG CALL-TABLE <IVECTOR ,CT-NUMBER-CALLS <>>>
2218 <GFCN
\1aRESET-CALL-TABLE ("VALUE" <OR FALSE <VECTOR !<FALSE> [REST <OR FALSE UNRESOLVED-CALL>]>>)>
2219 <TEMP TEMP13 TEMP15:VECTOR>
2221 <SETG 'CALL-POINTER 1>
2222 <SET TEMP13 %<> (TYPE FALSE)>
2223 <GVAL 'CALL-TABLE = TEMP15>
2227 <EMPUV? TEMP15 + MAPAP8>
2229 <PUTUV TEMP13 1 %<>>
2230 <RESTUV TEMP15 1 = TEMP15 (TYPE VECTOR)>
2235 <END
\1aRESET-CALL-TABLE>
2238 <GFCN
\1aEMIT-CALL ("VALUE" ATOM ATOM FIX) FCN4 NUMARGS5>
2239 <TEMP CNT7:FIX TAB8:VECTOR TEMP11 UC6:UNRESOLVED-CALL>
2241 <GVAL 'CALL-POINTER = CNT7>
2242 <GVAL 'CALL-TABLE = TAB8>
2249 <UBLOCK <TYPE-CODE VECTOR> 4 = TEMP11 (TYPE VECTOR)>
2250 <CHTYPE TEMP11 <TYPE-CODE UNRESOLVED-CALL> = UC6>
2252 <LENUV TAB8 = TEMP11 (TYPE FIX)>
2254 <GRTR? CNT7 TEMP11 - PHRASE13 (TYPE FIX)>
2257 <GVAL 'CALL-TABLE = STACK>
2259 <CALL '
\1aVECGROW 2 = TEMP11>
2260 <SETG 'CALL-TABLE TEMP11>
2263 <GVAL 'CALL-TABLE = TEMP11>
2264 <PUTUV TEMP11 CNT7 UC6>
2266 <ADD CNT7 1 = TEMP11 (TYPE FIX)>
2267 <SETG 'CALL-POINTER TEMP11>
2269 <FRAME '
\1aADD-WORD-TO-CODE>
2270 <LSH 89 24 = TEMP11 (TYPE FIX)>
2271 <OR TEMP11 CNT7 = STACK>
2273 <CALL '
\1aADD-WORD-TO-CODE 1>
2278 <GFCN
\1aVECGROW ("VALUE" VECTOR VECTOR FIX) TAB4 INCR5>
2279 <TEMP TEMP7 NEWVEC6:VECTOR TEMP14:VECTOR OVEC19 NVEC20:VECTOR>
2281 <LENUV TAB4 = TEMP7 (TYPE FIX)>
2282 <ADD TEMP7 INCR5 = TEMP7 (TYPE FIX)>
2284 <UUBLOCK <TYPE-CODE VECTOR> TEMP7 = NEWVEC6 (TYPE VECTOR)>
2286 <SET TEMP7 TAB4 (TYPE VECTOR)>
2288 <SET TEMP14 NEWVEC6 (TYPE VECTOR)>
2292 <EMPUV? TEMP7 + MAPAP12>
2293 <EMPUV? TEMP14 + MAPAP12>
2296 <NTHUV OVEC19 1 = OVEC19>
2297 <PUTUV NVEC20 1 OVEC19>
2298 <DEAD NVEC20 OVEC19>
2299 <RESTUV TEMP7 1 = TEMP7 (TYPE VECTOR)>
2300 <RESTUV TEMP14 1 = TEMP14 (TYPE VECTOR)>
2307 <SETG PUSH-LABEL-TABLE <IVECTOR 100 <>>>
2310 <GFCN
\1aRESET-PUSH-LABEL-TABLE ("VALUE" FIX)>
2313 <SETG 'PUSH-LABEL-COUNT 1>
2315 <END
\1aRESET-PUSH-LABEL-TABLE>
2318 <GFCN
\1aEMIT-PUSH-LABEL ("VALUE" ATOM <OR ATOM SPEC-LABEL>) LABEL4>
2319 <TEMP CNT5:FIX TAB6:VECTOR NLREF8:LABEL-REF TEMP13>
2321 <GVAL 'PUSH-LABEL-COUNT = CNT5>
2322 <GVAL 'PUSH-LABEL-TABLE = TAB6>
2323 <FRAME '
\1aCREATE-LABEL-REF>
2326 <CALL '
\1aCREATE-LABEL-REF 1 = NLREF8>
2327 <FRAME '
\1aADD-OUTSTANDING-LABEL>
2329 <CALL '
\1aADD-OUTSTANDING-LABEL 1>
2330 <LENUV TAB6 = TEMP13 (TYPE FIX)>
2331 <GRTR? CNT5 TEMP13 - PHRASE12 (TYPE FIX)>
2337 <CALL '
\1aVECGROW 2 = TEMP13>
2338 <SETG 'PUSH-LABEL-TABLE TEMP13>
2341 <GVAL 'PUSH-LABEL-TABLE = TEMP13>
2342 <PUTUV TEMP13 CNT5 NLREF8>
2343 <DEAD TEMP13 NLREF8>
2344 <ADD CNT5 1 = TEMP13 (TYPE FIX)>
2345 <SETG 'PUSH-LABEL-COUNT TEMP13>
2347 <FRAME '
\1aADD-WORD-TO-CODE>
2348 <LSH 91 24 = TEMP13 (TYPE FIX)>
2349 <OR TEMP13 CNT5 = STACK>
2351 <CALL '
\1aADD-WORD-TO-CODE 1>
2353 <END
\1aEMIT-PUSH-LABEL>
2355 <SETG MOVE-LABEL-TABLE <IVECTOR 100 <>>>
2358 <GFCN
\1aRESET-MOVE-LABEL-TABLE ("VALUE" FIX)>
2361 <SETG 'MOVE-LABEL-COUNT 1>
2363 <END
\1aRESET-MOVE-LABEL-TABLE>
2366 <GFCN
\1aEMIT-MOVE-LABEL ("VALUE" ATOM <OR ATOM SPEC-LABEL> ANY) LABEL4 EA5>
2367 <TEMP CNT6:FIX TAB7 NLREF9:LABEL-REF TEMP14>
2369 <GVAL 'MOVE-LABEL-COUNT = CNT6>
2370 <GVAL 'MOVE-LABEL-TABLE = TAB7>
2371 <FRAME '
\1aCREATE-LABEL-REF>
2374 <CALL '
\1aCREATE-LABEL-REF 1 = NLREF9>
2375 <FRAME '
\1aADD-OUTSTANDING-LABEL>
2377 <CALL '
\1aADD-OUTSTANDING-LABEL 1>
2378 <LENUV TAB7 = TEMP14 (TYPE FIX)>
2379 <GRTR? CNT6 TEMP14 - PHRASE13 (TYPE FIX)>
2385 <CALL '
\1aVECGROW 2 = TEMP14>
2386 <SETG 'MOVE-LABEL-TABLE TEMP14>
2389 <GVAL 'MOVE-LABEL-TABLE = TEMP14>
2390 <PUTUV TEMP14 CNT6 NLREF9>
2391 <DEAD TEMP14 NLREF9>
2392 <ADD CNT6 1 = TEMP14 (TYPE FIX)>
2393 <SETG 'MOVE-LABEL-COUNT TEMP14>
2395 <FRAME '
\1aADD-WORD-TO-CODE>
2396 <LSH 119 24 = TEMP14 (TYPE FIX)>
2397 <AND EA5 #WORD *37700000000* = TAB7>
2399 <LSH TAB7 -8 = TAB7 (TYPE FIX)>
2400 <OR TEMP14 TAB7 = TEMP14>
2402 <OR TEMP14 CNT6 = STACK>
2404 <CALL '
\1aADD-WORD-TO-CODE 1>
2406 <END
\1aEMIT-MOVE-LABEL>