Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / newrep.mima
1
2 <PACKAGE "NEWREP">
3
4 <ENTRY PROG-REP-GEN RETURN-GEN AGAIN-GEN ACTIV? MULTI-RETURN-GEN>
5
6 <USE "COMPDEC" "CODGEN" "CHKDCL" "MIMGEN" "ADVMESS" "NOTGEN">
7
8 " Generate code for a poor innocent PROG or REPEAT."
9
10 "\f"
11
12 #WORD *13702303173*
13                     <GFCN \1aPROG-REP-GEN ("VALUE" ANY NODE ANY "OPTIONAL" ANY ANY ANY) PNOD8 PWHERE9 NOTF10 BRANCH11 DIR12>
14                     <OPT-DISPATCH 2 %<> OPT4 OPT5 OPT6 OPT7>
15 OPT4
16                     <PUSH %<>>
17 OPT5
18                     <PUSH %<>>
19 OPT6
20                     <PUSH %<>>
21 OPT7
22                     <TEMP TEMP3:LBIND (TEMP36 %<>) DEST18 K19:LIST ORPNOD22 OFREE-TEMPS27 TEMP59 FOK30 TEMP77 TEMP95 EXIT15 TEMP120 TEMP121 MYFRAME89:TEMP BNDTMP24:TEMP>
23                     <INTGO>
24                     <GETS 'BIND = TEMP3 (TYPE LBIND)>
25                     <BBIND 'PNOD 'NODE %<> PNOD8>
26                     <DEAD PNOD8>
27                     <FIXBIND>
28                     <BBIND 'START-TAG 'ATOM 'FIX>
29                     <GEN-LVAL 'BASEF = TEMP36>
30                     <BBIND 'BASEF 'NODE 'FIX TEMP36>
31                     <DEAD TEMP36>
32                     <EQUAL? PWHERE9 'FLUSHED - PHRASE40>
33                     <SET DEST18 'FLUSHED (TYPE ATOM)>
34                     <JUMP + PHRASE43>
35 PHRASE40
36                     <EQUAL? PWHERE9 'DONT-CARE - PHRASE41>
37                     <FRAME '\1aGEN-TEMP>
38                     <PUSH %<>>
39                     <CALL '\1aGEN-TEMP 1 = DEST18>
40                     <JUMP + PHRASE43>
41 PHRASE41
42                     <SET DEST18 PWHERE9>
43 PHRASE43
44                     <NTHR 'PNOD 2 = TEMP36 (RECORD-TYPE ATOM) (TYPE LBIND)>
45                     <NTHR TEMP36 1 = TEMP36 (RECORD-TYPE LBIND)>
46                     <NTHUV TEMP36 5 = K19 (TYPE LIST)>
47                     <DEAD TEMP36>
48                     <BBIND 'SPECD 'ANY 'FIX>
49                     <GEN-ASSIGNED? 'RPNOD + TAG47>
50                     <SET TEMP36 %<> (TYPE FALSE)>
51                     <JUMP + BOOL46>
52 TAG47
53                     <GEN-LVAL 'RPNOD = TEMP36>
54 BOOL46
55                     <SET ORPNOD22 TEMP36>
56                     <DEAD TEMP36>
57                     <BBIND 'RPNOD 'NODE 'FIX>
58                     <GEN-LVAL 'FREE-TEMPS = OFREE-TEMPS27>
59                     <SET TEMP36 K19>
60                     <LOOP (TEMP36 VALUE)>
61 TAG58
62                     <RESTL TEMP36 1 = TEMP59 (TYPE LIST)>
63                     <EMPL? TEMP59 + TAG60>
64                     <SET TEMP36 TEMP59>
65                     <DEAD TEMP59>
66                     <JUMP + TAG58>
67 TAG60
68                     <NTHL TEMP36 1 = TEMP59>
69                     <DEAD TEMP36>
70                     <NTHUV TEMP59 3 = TEMP36>
71                     <DEAD TEMP59>
72                     <FRAME '\1aTYPE-OK?>
73                     <PUSH TEMP36>
74                     <PUSH 'FALSE>
75                     <CALL '\1aTYPE-OK? 2 = FOK30>
76                     <FRAME '\1aISTYPE?>
77                     <PUSH TEMP36>
78                     <DEAD TEMP36>
79                     <CALL '\1aISTYPE? 1 = TEMP59>
80                     <VEQUAL? TEMP59 'FALSE + TAG62>
81                     <DEAD TEMP59>
82                     <SET TEMP36 'T (TYPE ATOM)>
83                     <JUMP + TAG64>
84 TAG62
85                     <SET TEMP36 %<> (TYPE FALSE)>
86 TAG64
87                     <BBIND 'STK 'FIX 'FIX 0>
88                     <BBIND 'STK-CHARS7 'FIX 'FIX 0>
89                     <BBIND 'STK-CHARS8 'FIX 'FIX 0>
90                     <BBIND 'STKTMP 'ANY 'FIX>
91                     <NTHR 'PNOD 2 = TEMP59 (RECORD-TYPE ATOM) (TYPE LBIND)>
92                     <NTHR TEMP59 1 = TEMP59 (RECORD-TYPE LBIND)>
93                     <NTHUV TEMP59 12 = TEMP59>
94                     <TYPE? TEMP59 <TYPE-CODE FALSE> - BOOL68>
95                     <DEAD TEMP59>
96                     <FRAME '\1aACTIV?>
97                     <NTHR 'PNOD 2 = TEMP59 (RECORD-TYPE ATOM) (TYPE LBIND)>
98                     <NTHR TEMP59 1 = TEMP59 (RECORD-TYPE LBIND)>
99                     <NTHUV TEMP59 10 = STACK (TYPE LIST)>
100                     <DEAD TEMP59>
101                     <CALL '\1aACTIV? 1 = TEMP59>
102                     <VEQUAL? TEMP59 0 + PHRASE66>
103                     <DEAD TEMP59>
104 BOOL68
105                     <TYPE? DEST18 <TYPE-CODE TEMP> - PHRASE66>
106                     <FRAME '\1aUSE-TEMP>
107                     <PUSH DEST18>
108                     <CALL '\1aUSE-TEMP 1>
109 PHRASE66
110                     <GETS 'BIND = TEMP59 (TYPE LBIND)>
111                     <GEN-LVAL 'TMPS = TEMP77>
112                     <BBIND 'TMPS 'FORM 'FIX TEMP77>
113                     <DEAD TEMP77>
114                     <GEN-LVAL 'TMPS-NEXT = TEMP77>
115                     <BBIND 'TMPS-NEXT 'LIST 'FIX TEMP77>
116                     <DEAD TEMP77>
117                     <GEN-LVAL 'FREE-TEMPS = TEMP77>
118                     <BBIND 'FREE-TEMPS 'LIST 'FIX TEMP77>
119                     <DEAD TEMP77>
120                     <GEN-LVAL 'ALL-TEMPS-LIST = TEMP77>
121                     <BBIND 'ALL-TEMPS-LIST 'LIST 'FIX TEMP77>
122                     <DEAD TEMP77>
123                     <NTHR 'PNOD 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
124                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
125                     <NTHUV TEMP77 9 = TEMP77>
126                     <GVAL 'BIND = TEMP95>
127                     <EQUAL? TEMP77 TEMP95 + PHRASE92>
128                     <DEAD TEMP77 TEMP95>
129                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
130                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
131                     <NTHR 'RPNOD 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
132                     <PUTR TEMP77 1 TEMP95 (RECORD-TYPE LBIND)>
133                     <DEAD TEMP77 TEMP95>
134                     <JUMP + PHRASE100>
135 PHRASE92
136                     <TYPE? ORPNOD22 <TYPE-CODE FALSE> + PHRASE100>
137                     <NTHR 'RPNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
138                     <PUTR TEMP95 1 ORPNOD22 (RECORD-TYPE LBIND)>
139                     <DEAD TEMP95 ORPNOD22>
140 PHRASE100
141                     <SET ORPNOD22 DEST18>
142                     <FRAME '\1aMAKE-TAG>
143                     <PUSH "EXIT">
144                     <CALL '\1aMAKE-TAG 1 = EXIT15>
145                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
146                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
147                     <NTHUV TEMP95 12 = TEMP95>
148                     <TYPE? TEMP95 <TYPE-CODE FALSE> - BOOL106>
149                     <DEAD TEMP95>
150                     <FRAME '\1aACTIV?>
151                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
152                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
153                     <NTHUV TEMP95 10 = STACK (TYPE LIST)>
154                     <DEAD TEMP95>
155                     <CALL '\1aACTIV? 1 = TEMP95>
156                     <VEQUAL? TEMP95 0 + PHRASE145>
157                     <DEAD TEMP95>
158 BOOL106
159                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
160                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
161                     <PUTUV TEMP95 12 'T>
162                     <DEAD TEMP95>
163                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
164                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
165                     <NTHR 'BASEF 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
166                     <PUTR TEMP77 1 TEMP95 (RECORD-TYPE LBIND)>
167                     <DEAD TEMP77 TEMP95>
168                     <NTHR 'ALL-TEMPS-LIST 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
169                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
170                     <CONS %<> () = TEMP77>
171                     <NTHR 'FREE-TEMPS 2 = TEMP121 (RECORD-TYPE ATOM) (TYPE LBIND)>
172                     <NTHR TEMP121 1 = TEMP120 (RECORD-TYPE LBIND)>
173                     <DEAD TEMP121>
174                     <CONS TEMP120 TEMP77 = TEMP120>
175                     <DEAD TEMP77>
176                     <NTHR 'TMPS-NEXT 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
177                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
178                     <CONS TEMP77 TEMP120 = TEMP120>
179                     <DEAD TEMP77>
180                     <NTHR 'TMPS 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
181                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
182                     <CONS TEMP77 TEMP120 = TEMP120>
183                     <DEAD TEMP77>
184                     <CONS TEMP120 TEMP95 = TEMP120>
185                     <DEAD TEMP95>
186                     <NTHR 'ALL-TEMPS-LIST 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
187                     <PUTR TEMP95 1 TEMP120 (RECORD-TYPE LBIND)>
188                     <DEAD TEMP95 TEMP120>
189                     <EQUAL? DEST18 'FLUSHED - PHRASE131>
190                     <FRAME '\1aIEMIT>
191                     <PUSH '`ICALL>
192                     <PUSH EXIT15>
193                     <CALL '\1aIEMIT 2>
194                     <JUMP + PHRASE133>
195 PHRASE131
196                     <FRAME '\1aIEMIT>
197                     <PUSH '`ICALL>
198                     <PUSH EXIT15>
199                     <PUSH '=>
200                     <PUSH DEST18>
201                     <CALL '\1aIEMIT 4>
202 PHRASE133
203                     <FRAME '\1aMIM-TEMPS-HOLD>
204                     <CALL '\1aMIM-TEMPS-HOLD 0>
205                     <FRAME '\1aMIM-TEMPS-EMIT>
206                     <CALL '\1aMIM-TEMPS-EMIT 0>
207                     <NTHR 'FREE-TEMPS 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
208                     <PUTR TEMP120 1 () (RECORD-TYPE LBIND)>
209                     <DEAD TEMP120>
210                     <FRAME '\1aGEN-TEMP>
211                     <CALL '\1aGEN-TEMP 0 = MYFRAME89>
212                     <FRAME '\1aPREV-FRAME>
213                     <PUSH MYFRAME89>
214                     <CALL '\1aPREV-FRAME 1>
215                     <FRAME '\1aPUT>
216                     <NTHR 'ALL-TEMPS-LIST 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
217                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
218                     <NTHL TEMP120 1 = STACK>
219                     <DEAD TEMP120>
220                     <PUSH 4>
221                     <PUSH MYFRAME89>
222                     <CALL '\1aPUT 3>
223                     <EQUAL? PWHERE9 'FLUSHED + PHRASE145>
224                     <FRAME '\1aGEN-TEMP>
225                     <PUSH %<>>
226                     <CALL '\1aGEN-TEMP 1 = DEST18>
227 PHRASE145
228                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
229                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
230                     <NTHUV TEMP120 12 = TEMP120>
231                     <TYPE? TEMP120 <TYPE-CODE FALSE> + PHRASE148>
232                     <DEAD TEMP120>
233                     <FRAME '\1aBIND-CODE>
234                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
235                     <NTHR TEMP120 1 = STACK (RECORD-TYPE LBIND)>
236                     <DEAD TEMP120>
237                     <CALL '\1aBIND-CODE 1 = TEMP120>
238                     <JUMP + PHRASE154>
239 PHRASE148
240                     <FRAME '\1aBIND-CODE>
241                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
242                     <NTHR TEMP95 1 = STACK (RECORD-TYPE LBIND)>
243                     <DEAD TEMP95>
244                     <PUSH 'T>
245                     <FRAME '\1aGEN-TEMP>
246                     <PUSH %<>>
247                     <CALL '\1aGEN-TEMP 1 = BNDTMP24>
248                     <PUSH BNDTMP24>
249                     <CALL '\1aBIND-CODE 3 = TEMP120>
250 PHRASE154
251                     <NTHR 'SPECD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
252                     <PUTR TEMP95 1 TEMP120 (RECORD-TYPE LBIND)>
253                     <DEAD TEMP95 TEMP120>
254                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
255                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
256                     <NTHR 'BASEF 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
257                     <PUTR TEMP95 1 TEMP120 (RECORD-TYPE LBIND)>
258                     <DEAD TEMP95 TEMP120>
259                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
260                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
261                     <NTHUV TEMP120 9 = TEMP120>
262                     <GVAL 'REPEAT = TEMP95>
263                     <EQUAL? TEMP120 TEMP95 + BOOL167>
264                     <DEAD TEMP120 TEMP95>
265                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
266                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
267                     <NTHUV TEMP95 19 = TEMP95>
268                     <TYPE? TEMP95 <TYPE-CODE FALSE> + PHRASE166>
269                     <DEAD TEMP95>
270 BOOL167
271                     <FRAME '\1aIEMIT>
272                     <PUSH '`LOOP>
273                     <CALL '\1aIEMIT 1>
274 PHRASE166
275                     <FRAME '\1aLABEL-TAG>
276                     <FRAME '\1aMAKE-TAG>
277                     <PUSH "AGAIN">
278                     <CALL '\1aMAKE-TAG 1 = TEMP121>
279                     <PUSH TEMP121>
280                     <CALL '\1aLABEL-TAG 1>
281                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
282                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
283                     <NTHUV TEMP95 9 = TEMP95>
284                     <GVAL 'REPEAT = TEMP120>
285                     <EQUAL? TEMP95 TEMP120 + BOOL177>
286                     <DEAD TEMP95 TEMP120>
287                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
288                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
289                     <NTHUV TEMP120 19 = TEMP120>
290                     <TYPE? TEMP120 <TYPE-CODE FALSE> + PHRASE176>
291                     <DEAD TEMP120>
292 BOOL177
293                     <FRAME '\1aIEMIT>
294                     <PUSH '`INTGO>
295                     <CALL '\1aIEMIT 1>
296 PHRASE176
297                     <TYPE? NOTF10 <TYPE-CODE FALSE> + TAG186>
298                     <DEAD NOTF10>
299                     <TYPE? DIR12 <TYPE-CODE FALSE> - TAG185>
300                     <DEAD DIR12>
301                     <SET DIR12 'T (TYPE ATOM)>
302                     <JUMP + TAG186>
303 TAG185
304                     <SET DIR12 %<> (TYPE FALSE)>
305 TAG186
306                     <TYPE? BRANCH11 <TYPE-CODE FALSE> + PHRASE188>
307                     <CONS DIR12 () = TEMP120>
308                     <CONS BRANCH11 TEMP120 = TEMP120>
309                     <JUMP + PHRASE189>
310 PHRASE188
311                     <GVAL 'NO-DATUM = TEMP120>
312 PHRASE189
313                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
314                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
315                     <PUTUV TEMP95 15 TEMP120>
316                     <DEAD TEMP95 TEMP120>
317                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
318                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
319                     <PUTUV TEMP95 14 DEST18>
320                     <DEAD TEMP95>
321                     <NTHR 'SPECD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
322                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
323                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
324                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
325                     <PUTUV TEMP120 13 TEMP95>
326                     <DEAD TEMP120 TEMP95>
327                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
328                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
329                     <PUTUV TEMP120 16 TEMP121>
330                     <DEAD TEMP120>
331                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
332                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
333                     <PUTUV TEMP120 17 EXIT15>
334                     <DEAD TEMP120>
335                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
336                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
337                     <NTHUV TEMP120 9 = TEMP120>
338                     <GVAL 'REPEAT = TEMP95>
339                     <EQUAL? TEMP120 TEMP95 + BOOL204>
340                     <DEAD TEMP120 TEMP95>
341                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
342                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
343                     <NTHUV TEMP95 19 = TEMP95>
344                     <TYPE? TEMP95 <TYPE-CODE FALSE> + PHRASE203>
345                     <DEAD TEMP95>
346 BOOL204
347                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
348                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
349                     <NTHUV TEMP95 9 = TEMP95>
350                     <GVAL 'REPEAT = TEMP120>
351                     <EQUAL? TEMP95 TEMP120 - PHRASE210>
352                     <DEAD TEMP95 TEMP120>
353                     <FRAME '\1aSEQ-GEN>
354                     <PUSH K19>
355                     <DEAD K19>
356                     <PUSH 'FLUSHED>
357                     <CALL '\1aSEQ-GEN 2>
358                     <JUMP + PHRASE274>
359 PHRASE210
360                     <EQUAL? DEST18 'FLUSHED - PHRASE214>
361                     <TYPE? BRANCH11 <TYPE-CODE FALSE> + PHRASE216>
362                     <TYPE? FOK30 <TYPE-CODE FALSE> + PHRASE216>
363                     <VEQUAL? TEMP36 0 + PHRASE216>
364                     <FRAME '\1aPSEQ-GEN>
365                     <PUSH K19>
366                     <DEAD K19>
367                     <PUSH 'FLUSHED>
368                     <PUSH BRANCH11>
369                     <PUSH DIR12>
370                     <DEAD DIR12>
371                     <PUSH %<>>
372                     <CALL '\1aPSEQ-GEN 5>
373                     <JUMP + PHRASE274>
374 PHRASE216
375                     <TYPE? BRANCH11 <TYPE-CODE FALSE> + PHRASE219>
376                     <TYPE? DIR12 <TYPE-CODE FALSE> + PHRASE222>
377                     <DEAD DIR12>
378                     <VEQUAL? TEMP36 0 + PHRASE219>
379                     <DEAD TEMP36>
380                     <JUMP + PHRASE223>
381 PHRASE222
382                     <TYPE? FOK30 <TYPE-CODE FALSE> + PHRASE219>
383                     <DEAD FOK30>
384 PHRASE223
385                     <FRAME '\1aSEQ-GEN>
386                     <PUSH K19>
387                     <DEAD K19>
388                     <PUSH 'FLUSHED>
389                     <CALL '\1aSEQ-GEN 2>
390                     <FRAME '\1aBRANCH-TAG>
391                     <PUSH BRANCH11>
392                     <CALL '\1aBRANCH-TAG 1>
393                     <JUMP + PHRASE274>
394 PHRASE219
395                     <FRAME '\1aSEQ-GEN>
396                     <PUSH K19>
397                     <DEAD K19>
398                     <PUSH 'FLUSHED>
399                     <CALL '\1aSEQ-GEN 2>
400                     <JUMP + PHRASE274>
401 PHRASE214
402                     <FRAME '\1aSEQ-GEN>
403                     <PUSH K19>
404                     <DEAD K19>
405                     <PUSH DEST18>
406                     <CALL '\1aSEQ-GEN 2 = TEMP36>
407                     <SET FOK30 TEMP36>
408                     <GVAL 'NO-DATUM = TEMP120>
409                     <EQUAL? TEMP120 FOK30 - PHRASE231>
410                     <DEAD TEMP120 FOK30>
411                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
412                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
413                     <NTHUV TEMP120 15 = TEMP120>
414                     <EMPTY? TEMP120 + PHRASE274>
415                     <DEAD TEMP120>
416                     <JUMP + PHRASE274>
417 PHRASE231
418                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
419                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
420                     <NTHUV TEMP120 15 = TEMP120>
421                     <GVAL 'NO-DATUM = TEMP95>
422                     <EQUAL? TEMP120 TEMP95 - PHRASE274>
423                     <DEAD TEMP120 TEMP95>
424                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
425                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
426                     <PUTUV TEMP95 15 TEMP36>
427                     <DEAD TEMP95 TEMP36>
428                     <JUMP + PHRASE274>
429 PHRASE203
430                     <EQUAL? DEST18 'FLUSHED - PHRASE246>
431                     <TYPE? BRANCH11 <TYPE-CODE FALSE> + PHRASE248>
432                     <TYPE? FOK30 <TYPE-CODE FALSE> + PHRASE248>
433                     <VEQUAL? TEMP36 0 + PHRASE248>
434                     <FRAME '\1aPSEQ-GEN>
435                     <PUSH K19>
436                     <DEAD K19>
437                     <PUSH 'FLUSHED>
438                     <PUSH BRANCH11>
439                     <PUSH DIR12>
440                     <DEAD DIR12>
441                     <PUSH %<>>
442                     <CALL '\1aPSEQ-GEN 5>
443                     <JUMP + PHRASE274>
444 PHRASE248
445                     <TYPE? BRANCH11 <TYPE-CODE FALSE> + PHRASE251>
446                     <TYPE? DIR12 <TYPE-CODE FALSE> + PHRASE254>
447                     <DEAD DIR12>
448                     <VEQUAL? TEMP36 0 + PHRASE251>
449                     <DEAD TEMP36>
450                     <JUMP + PHRASE255>
451 PHRASE254
452                     <TYPE? FOK30 <TYPE-CODE FALSE> + PHRASE251>
453                     <DEAD FOK30>
454 PHRASE255
455                     <FRAME '\1aSEQ-GEN>
456                     <PUSH K19>
457                     <DEAD K19>
458                     <PUSH 'FLUSHED>
459                     <CALL '\1aSEQ-GEN 2>
460                     <FRAME '\1aBRANCH-TAG>
461                     <PUSH BRANCH11>
462                     <CALL '\1aBRANCH-TAG 1>
463                     <JUMP + PHRASE274>
464 PHRASE251
465                     <FRAME '\1aSEQ-GEN>
466                     <PUSH K19>
467                     <DEAD K19>
468                     <PUSH 'FLUSHED>
469                     <CALL '\1aSEQ-GEN 2>
470                     <JUMP + PHRASE274>
471 PHRASE246
472                     <FRAME '\1aSEQ-GEN>
473                     <PUSH K19>
474                     <DEAD K19>
475                     <PUSH DEST18>
476                     <PUSH 'T>
477                     <CALL '\1aSEQ-GEN 3 = TEMP36>
478                     <SET FOK30 TEMP36>
479                     <GVAL 'NO-DATUM = TEMP95>
480                     <EQUAL? TEMP95 FOK30 - PHRASE263>
481                     <DEAD TEMP95 FOK30>
482                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
483                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
484                     <NTHUV TEMP95 15 = TEMP95>
485                     <EMPTY? TEMP95 + PHRASE274>
486                     <DEAD TEMP95>
487                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
488                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
489                     <NTHUV TEMP95 15 = TEMP95>
490                     <GVAL 'NO-DATUM = TEMP120>
491                     <EQUAL? TEMP95 TEMP120 + PHRASE274>
492                     <DEAD TEMP95 TEMP120>
493                     <JUMP + PHRASE274>
494 PHRASE263
495                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
496                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
497                     <NTHUV TEMP120 15 = TEMP120>
498                     <GVAL 'NO-DATUM = TEMP95>
499                     <EQUAL? TEMP120 TEMP95 - PHRASE274>
500                     <DEAD TEMP120 TEMP95>
501                     <NTHR 'PNOD 2 = TEMP95 (RECORD-TYPE ATOM) (TYPE LBIND)>
502                     <NTHR TEMP95 1 = TEMP95 (RECORD-TYPE LBIND)>
503                     <PUTUV TEMP95 15 TEMP36>
504                     <DEAD TEMP95 TEMP36>
505 PHRASE274
506                     <GEN-ASSIGNED? 'NPRUNE + PHRASE280>
507                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
508                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
509                     <PUTUV TEMP120 5 () (TYPE LIST)>
510                     <DEAD TEMP120>
511 PHRASE280
512                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
513                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
514                     <NTHUV TEMP120 9 = TEMP120>
515                     <GVAL 'REPEAT = TEMP77>
516                     <EQUAL? TEMP120 TEMP77 + PHRASE285>
517                     <DEAD TEMP120 TEMP77>
518                     <NTHR 'PNOD 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
519                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
520                     <NTHUV TEMP77 12 = TEMP77>
521                     <TYPE? TEMP77 <TYPE-CODE FALSE> + PHRASE289>
522                     <DEAD TEMP77>
523                     <FRAME '\1aPROG-END>
524                     <PUSH DEST18>
525                     <DEAD DEST18>
526                     <CALL '\1aPROG-END 1>
527                     <FRAME '\1aFREE-TEMP>
528                     <PUSH MYFRAME89>
529                     <DEAD MYFRAME89>
530                     <CALL '\1aFREE-TEMP 1>
531                     <JUMP + PHRASE299>
532 PHRASE289
533                     <NTHR 'SPECD 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
534                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
535                     <TYPE? TEMP77 <TYPE-CODE FALSE> + PHRASE299>
536                     <DEAD TEMP77>
537                     <FRAME '\1aIEMIT>
538                     <PUSH '`UNBIND>
539                     <PUSH BNDTMP24>
540                     <CALL '\1aIEMIT 2>
541                     <FRAME '\1aFREE-TEMP>
542                     <PUSH BNDTMP24>
543                     <DEAD BNDTMP24>
544                     <CALL '\1aFREE-TEMP 1>
545                     <JUMP + PHRASE299>
546 PHRASE285
547                     <FRAME '\1aBRANCH-TAG>
548                     <PUSH TEMP121>
549                     <DEAD TEMP121>
550                     <CALL '\1aBRANCH-TAG 1>
551 PHRASE299
552                     <FRAME '\1aLABEL-TAG>
553                     <PUSH EXIT15>
554                     <DEAD EXIT15>
555                     <CALL '\1aLABEL-TAG 1>
556                     <NTHR 'STK-CHARS8 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
557                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
558                     <VEQUAL? TEMP77 0 + PHRASE303 (TYPE FIX)>
559                     <DEAD TEMP77>
560                     <NTHR 'STK-CHARS8 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
561                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
562                     <NTHR 'STK 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
563                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
564                     <ADD TEMP77 TEMP120 = TEMP77 (TYPE FIX)>
565                     <DEAD TEMP120>
566                     <NTHR 'STK-CHARS8 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
567                     <PUTR TEMP120 1 TEMP77 (RECORD-TYPE LBIND)>
568                     <DEAD TEMP120 TEMP77>
569                     <NTHR 'STK-CHARS7 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
570                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
571                     <NTHR 'STK 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
572                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
573                     <ADD TEMP77 TEMP120 = TEMP77 (TYPE FIX)>
574                     <DEAD TEMP120>
575                     <NTHR 'STK-CHARS7 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
576                     <PUTR TEMP120 1 TEMP77 (RECORD-TYPE LBIND)>
577                     <DEAD TEMP120 TEMP77>
578                     <NTHR 'STK 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
579                     <PUTR TEMP77 1 0 (RECORD-TYPE LBIND)>
580                     <DEAD TEMP77>
581 PHRASE303
582                     <NTHR 'PNOD 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
583                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
584                     <NTHUV TEMP77 12 = TEMP77>
585                     <TYPE? TEMP77 <TYPE-CODE FALSE> - PHRASE325>
586                     <DEAD TEMP77>
587                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
588                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
589                     <TYPE? TEMP77 <TYPE-CODE UNBOUND> + PHRASE327>
590                     <NTHR 'STK 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
591                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
592                     <VEQUAL? TEMP77 0 + PHRASE329 (TYPE FIX)>
593                     <FRAME '\1aIEMIT>
594                     <PUSH '`SUB>
595                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
596                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
597                     <NTHR 'STK 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
598                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
599                     <PUSH '=>
600                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
601                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
602                     <CONS 'FIX () = TEMP77>
603                     <CONS '`TYPE TEMP77 = STACK>
604                     <CALL '\1aIEMIT 6>
605                     <JUMP + PHRASE341>
606 PHRASE329
607                     <NTHR 'STK-CHARS7 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
608                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
609                     <VEQUAL? TEMP77 0 + PHRASE341 (TYPE FIX)>
610                     <FRAME '\1aIEMIT>
611                     <PUSH '`IFSYS>
612                     <PUSH "TOPS20">
613                     <CALL '\1aIEMIT 2>
614                     <FRAME '\1aIEMIT>
615                     <PUSH '`SUB>
616                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
617                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
618                     <NTHR 'STK-CHARS7 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
619                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
620                     <PUSH '=>
621                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
622                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
623                     <CALL '\1aIEMIT 5>
624                     <FRAME '\1aIEMIT>
625                     <PUSH '`ENDIF>
626                     <PUSH "TOPS20">
627                     <CALL '\1aIEMIT 2>
628                     <FRAME '\1aIEMIT>
629                     <PUSH '`IFSYS>
630                     <PUSH "UNIX">
631                     <CALL '\1aIEMIT 2>
632                     <FRAME '\1aIEMIT>
633                     <PUSH '`SUB>
634                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
635                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
636                     <NTHR 'STK-CHARS8 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
637                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
638                     <PUSH '=>
639                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
640                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
641                     <CALL '\1aIEMIT 5>
642                     <FRAME '\1aIEMIT>
643                     <PUSH '`ENDIF>
644                     <PUSH "UNIX">
645                     <CALL '\1aIEMIT 2>
646 PHRASE341
647                     <FRAME '\1aIEMIT>
648                     <PUSH '`ADJ>
649                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
650                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
651                     <CALL '\1aIEMIT 2>
652                     <FRAME '\1aFREE-TEMP>
653                     <NTHR 'STKTMP 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
654                     <NTHR TEMP77 1 = STACK (RECORD-TYPE LBIND)>
655                     <CALL '\1aFREE-TEMP 1>
656                     <JUMP + PHRASE378>
657 PHRASE327
658                     <NTHR 'STK 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
659                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
660                     <VEQUAL? TEMP77 0 + PHRASE370 (TYPE FIX)>
661                     <FRAME '\1aIEMIT>
662                     <PUSH '`ADJ>
663                     <NTHR 'STK 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
664                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
665                     <SUB 0 TEMP77 = STACK (TYPE FIX)>
666                     <CALL '\1aIEMIT 2>
667                     <JUMP + PHRASE378>
668 PHRASE370
669                     <NTHR 'STK-CHARS8 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
670                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
671                     <VEQUAL? TEMP77 0 + PHRASE378 (TYPE FIX)>
672                     <FRAME '\1aIEMIT>
673                     <PUSH '`IFSYS>
674                     <PUSH "TOPS20">
675                     <CALL '\1aIEMIT 2>
676                     <FRAME '\1aIEMIT>
677                     <PUSH '`ADJ>
678                     <NTHR 'STK-CHARS7 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
679                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
680                     <SUB 0 TEMP77 = STACK (TYPE FIX)>
681                     <CALL '\1aIEMIT 2>
682                     <FRAME '\1aIEMIT>
683                     <PUSH '`ENDIF>
684                     <PUSH "TOPS20">
685                     <CALL '\1aIEMIT 2>
686                     <FRAME '\1aIEMIT>
687                     <PUSH '`IFSYS>
688                     <PUSH "UNIX">
689                     <CALL '\1aIEMIT 2>
690                     <FRAME '\1aIEMIT>
691                     <PUSH '`ADJ>
692                     <NTHR 'STK-CHARS8 2 = TEMP77 (RECORD-TYPE ATOM) (TYPE LBIND)>
693                     <NTHR TEMP77 1 = TEMP77 (RECORD-TYPE LBIND)>
694                     <SUB 0 TEMP77 = STACK (TYPE FIX)>
695                     <CALL '\1aIEMIT 2>
696                     <FRAME '\1aIEMIT>
697                     <PUSH '`ENDIF>
698                     <PUSH "UNIX">
699                     <CALL '\1aIEMIT 2>
700 PHRASE378
701                     <NTHR 'FREE-TEMPS 2 = OFREE-TEMPS27 (RECORD-TYPE ATOM) (TYPE LBIND)>
702                     <NTHR OFREE-TEMPS27 1 = OFREE-TEMPS27 (RECORD-TYPE LBIND)>
703 PHRASE325
704                     <UNBIND TEMP59>
705                     <DEAD TEMP59>
706                     <ADJ -36>
707                     <GEN-SET 'FREE-TEMPS OFREE-TEMPS27>
708                     <DEAD OFREE-TEMPS27>
709                     <FRAME '\1aREST>
710                     <GEN-LVAL 'TMPS = STACK>
711                     <FRAME '\1aLENGTH>
712                     <GEN-LVAL 'TMPS = STACK>
713                     <CALL '\1aLENGTH 1 = TEMP120>
714                     <SUB TEMP120 1 = STACK (TYPE FIX)>
715                     <DEAD TEMP120>
716                     <CALL '\1aREST 2 = TEMP120>
717                     <GEN-SET 'TMPS-NEXT TEMP120>
718                     <DEAD TEMP120>
719                     <NTHR 'PNOD 2 = TEMP120 (RECORD-TYPE ATOM) (TYPE LBIND)>
720                     <NTHR TEMP120 1 = TEMP120 (RECORD-TYPE LBIND)>
721                     <NTHUV TEMP120 15 = TEMP120>
722                     <GVAL 'NO-DATUM = TEMP121>
723                     <EQUAL? TEMP120 TEMP121 + BOOL407>
724                     <DEAD TEMP120 TEMP121>
725                     <TYPE? BRANCH11 <TYPE-CODE FALSE> + PHRASE406>
726                     <DEAD BRANCH11>
727 BOOL407
728                     <NTHR 'PNOD 2 = TEMP121 (RECORD-TYPE ATOM) (TYPE LBIND)>
729                     <NTHR TEMP121 1 = TEMP121 (RECORD-TYPE LBIND)>
730                     <NTHUV TEMP121 12 = TEMP121>
731                     <TYPE? TEMP121 <TYPE-CODE FALSE> + PHRASE411>
732                     <DEAD TEMP121>
733                     <EQUAL? PWHERE9 'FLUSHED + PHRASE411>
734                     <FRAME '\1aMOVE-ARG>
735                     <PUSH ORPNOD22>
736                     <DEAD ORPNOD22>
737                     <PUSH PWHERE9>
738                     <DEAD PWHERE9>
739                     <CALL '\1aMOVE-ARG 2 = TEMP121>
740                     <JUMP + PHRASE417>
741 PHRASE411
742                     <GVAL 'NO-DATUM = TEMP121>
743                     <JUMP + PHRASE417>
744 PHRASE406
745                     <FRAME '\1aMOVE-ARG>
746                     <PUSH ORPNOD22>
747                     <DEAD ORPNOD22>
748                     <PUSH PWHERE9>
749                     <DEAD PWHERE9>
750                     <CALL '\1aMOVE-ARG 2 = TEMP121>
751 PHRASE417
752                     <UNBIND TEMP3>
753                     <DEAD TEMP3>
754                     <ADJ -81>
755                     <RETURN TEMP121>
756                     <DEAD TEMP121>
757                     <END \1aPROG-REP-GEN>
758
759 #WORD *6352630665*
760                     <GFCN \1aPROG-END ("VALUE" ATOM ANY) RESULT4>
761                     <TEMP TEMP8:ATOM>
762                     <INTGO>
763                     <EQUAL? RESULT4 'FLUSHED - PHRASE6>
764                     <FRAME '\1aMIM-RETURN>
765                     <PUSH 'T>
766                     <CALL '\1aMIM-RETURN 1 = TEMP8>
767                     <RETURN TEMP8>
768                     <DEAD TEMP8>
769 PHRASE6
770                     <FRAME '\1aMIM-RETURN>
771                     <PUSH RESULT4>
772                     <DEAD RESULT4>
773                     <CALL '\1aMIM-RETURN 1 = TEMP8>
774                     <RETURN TEMP8>
775                     <DEAD TEMP8>
776                     <END \1aPROG-END>
777
778 #WORD *6336051540*
779                     <GFCN \1aACTIV? ("VALUE" <OR ATOM !<FALSE>> <LIST [REST SYMTAB]>) BST4>
780                     <TEMP TEMP5>
781                     <INTGO>
782                     <LOOP>
783 AGAIN8
784                     <INTGO>
785                     <EMPL? BST4 - PHRASE10 (TYPE LIST)>
786                     <RETURN %<>>
787 PHRASE10
788                     <NTHL BST4 1 = TEMP5 (TYPE SYMTAB)>
789                     <NTHUV TEMP5 4 = TEMP5 (TYPE FIX)>
790                     <VEQUAL? TEMP5 1 - PHRASE12 (TYPE FIX)>
791                     <DEAD TEMP5>
792                     <NTHL BST4 1 = TEMP5 (TYPE SYMTAB)>
793                     <NTHUV TEMP5 11 = TEMP5>
794                     <TYPE? TEMP5 <TYPE-CODE FALSE> + BOOL17>
795                     <DEAD TEMP5>
796                     <NTHL BST4 1 = TEMP5 (TYPE SYMTAB)>
797                     <NTHUV TEMP5 3 = TEMP5>
798                     <TYPE? TEMP5 <TYPE-CODE FALSE> + PHRASE12>
799                     <DEAD TEMP5>
800 BOOL17
801                     <RETURN 'T>
802 PHRASE12
803                     <RESTL BST4 1 = BST4 (TYPE LIST)>
804                     <JUMP + AGAIN8>
805                     <END \1aACTIV?>
806
807 "\f"
808
809 " Generate code for a RETURN."
810
811 #WORD *12456413012*
812                     <GFCN \1aRETURN-GEN ("VALUE" ANY NODE ANY) NOD4 WHERE5>
813                     <TEMP (CD1-8 %<>) (NF10 0) (FOK13 %<>) TEMP25 RTA14 DEST9 LL11 RT12>
814                     <INTGO>
815                     <NTHUV NOD4 5 = CD1-8 (TYPE LIST)>
816                     <EMPL? CD1-8 + PHRASE20>
817                     <RESTL CD1-8 1 = CD1-8 (TYPE LIST)>
818                     <EMPL? CD1-8 - PHRASE20>
819                     <DEAD CD1-8>
820                     <GEN-LVAL 'RPNOD = NF10>
821                     <JUMP + PHRASE26>
822 PHRASE20
823                     <NTHUV NOD4 5 = TEMP25 (TYPE LIST)>
824                     <RESTL TEMP25 1 = TEMP25 (TYPE LIST)>
825                     <NTHL TEMP25 1 = TEMP25 (TYPE NODE)>
826                     <NTHUV TEMP25 4 = TEMP25 (TYPE SYMTAB)>
827                     <NTHUV TEMP25 11 = CD1-8>
828                     <DEAD TEMP25>
829                     <TYPE? CD1-8 <TYPE-CODE FALSE> + PHRASE24>
830                     <SET NF10 CD1-8>
831                     <DEAD CD1-8>
832                     <JUMP + PHRASE26>
833 PHRASE24
834                     <FRAME '\1aSUBR-GEN>
835                     <PUSH NOD4>
836                     <DEAD NOD4>
837                     <PUSH WHERE5>
838                     <DEAD WHERE5>
839                     <CALL '\1aSUBR-GEN 2 = CD1-8>
840                     <RETURN CD1-8>
841                     <DEAD CD1-8>
842 PHRASE26
843                     <NTHUV NF10 17 = RTA14>
844                     <NTHUV NF10 14 = DEST9>
845                     <EQUAL? DEST9 'FLUSHED - PHRASE29>
846                     <NTHUV NF10 15 = LL11>
847                     <TYPE? LL11 <TYPE-CODE LIST> - PHRASE31>
848                     <GVAL 'NO-DATUM = TEMP25>
849                     <EQUAL? TEMP25 LL11 + PHRASE31>
850                     <DEAD TEMP25>
851                     <FRAME '\1aTYPE-OK?>
852                     <NTHUV NOD4 5 = TEMP25 (TYPE LIST)>
853                     <DEAD NOD4>
854                     <NTHL TEMP25 1 = CD1-8 (TYPE NODE)>
855                     <DEAD TEMP25>
856                     <NTHUV CD1-8 3 = RT12>
857                     <PUSH RT12>
858                     <PUSH 'FALSE>
859                     <CALL '\1aTYPE-OK? 2 = TEMP25>
860                     <TYPE? TEMP25 <TYPE-CODE FALSE> + PHRASE34>
861                     <DEAD TEMP25>
862                     <SET FOK13 'T (TYPE ATOM)>
863                     <FRAME '\1aISTYPE?>
864                     <PUSH RT12>
865                     <DEAD RT12>
866                     <CALL '\1aISTYPE? 1 = TEMP25>
867                     <VEQUAL? TEMP25 'FALSE + PHRASE34>
868                     <DEAD TEMP25>
869                     <FRAME '\1aPRED-BRANCH-GEN>
870                     <NTHL LL11 1 = STACK>
871                     <PUSH CD1-8>
872                     <DEAD CD1-8>
873                     <RESTL LL11 1 = TEMP25 (TYPE LIST)>
874                     <DEAD LL11>
875                     <NTHL TEMP25 1 = STACK>
876                     <DEAD TEMP25>
877                     <PUSH 'FLUSHED>
878                     <PUSH %<>>
879                     <CALL '\1aPRED-BRANCH-GEN 5>
880                     <JUMP + PHRASE50>
881 PHRASE34
882                     <RESTL LL11 1 = TEMP25 (TYPE LIST)>
883                     <NTHL TEMP25 1 = TEMP25>
884                     <TYPE? TEMP25 <TYPE-CODE FALSE> + PHRASE41>
885                     <DEAD TEMP25>
886                     <VEQUAL? FOK13 0 - PHRASE39>
887                     <DEAD FOK13>
888                     <JUMP + PHRASE42>
889 PHRASE41
890                     <VEQUAL? FOK13 0 + PHRASE39>
891                     <DEAD FOK13>
892 PHRASE42
893                     <NTHUV CD1-8 1 = TEMP25 (TYPE FIX)>
894                     <VEQUAL? TEMP25 2 + PHRASE44 (TYPE FIX)>
895                     <DEAD TEMP25>
896                     <FRAME '\1aGEN>
897                     <PUSH CD1-8>
898                     <DEAD CD1-8>
899                     <PUSH 'FLUSHED>
900                     <CALL '\1aGEN 2>
901 PHRASE44
902                     <NTHL LL11 1 = RTA14>
903                     <DEAD LL11>
904                     <JUMP + PHRASE50>
905 PHRASE39
906                     <NTHUV CD1-8 1 = TEMP25 (TYPE FIX)>
907                     <VEQUAL? TEMP25 2 + PHRASE50 (TYPE FIX)>
908                     <DEAD TEMP25>
909                     <FRAME '\1aGEN>
910                     <PUSH CD1-8>
911                     <DEAD CD1-8>
912                     <PUSH 'FLUSHED>
913                     <CALL '\1aGEN 2>
914                     <JUMP + PHRASE50>
915 PHRASE31
916                     <FRAME '\1aGEN>
917                     <NTHUV NOD4 5 = TEMP25 (TYPE LIST)>
918                     <DEAD NOD4>
919                     <NTHL TEMP25 1 = STACK (TYPE NODE)>
920                     <DEAD TEMP25>
921                     <PUSH 'FLUSHED>
922                     <CALL '\1aGEN 2>
923                     <JUMP + PHRASE50>
924 PHRASE29
925                     <EQUAL? DEST9 'DONT-CARE - PHRASE52>
926                     <FRAME '\1aGEN-TEMP>
927                     <PUSH %<>>
928                     <CALL '\1aGEN-TEMP 1 = DEST9>
929 PHRASE52
930                     <FRAME '\1aGEN>
931                     <NTHUV NOD4 5 = TEMP25 (TYPE LIST)>
932                     <DEAD NOD4>
933                     <NTHL TEMP25 1 = STACK (TYPE NODE)>
934                     <DEAD TEMP25>
935                     <PUSH DEST9>
936                     <CALL '\1aGEN 2 = CD1-8>
937                     <NTHUV NF10 14 = TEMP25>
938                     <EQUAL? TEMP25 'DONT-CARE - PHRASE56>
939                     <DEAD TEMP25>
940                     <PUTUV NF10 14 CD1-8>
941 PHRASE56
942                     <NTHUV NF10 15 = TEMP25>
943                     <GVAL 'NO-DATUM = FOK13>
944                     <EQUAL? TEMP25 FOK13 + PHRASE58>
945                     <DEAD TEMP25 FOK13>
946                     <FRAME '\1aDEALLOCATE-TEMP>
947                     <PUSH CD1-8>
948                     <CALL '\1aDEALLOCATE-TEMP 1>
949 PHRASE58
950                     <PUTUV NF10 15 CD1-8>
951                     <DEAD CD1-8>
952 PHRASE50
953                     <NTHUV NF10 12 = FOK13>
954                     <TYPE? FOK13 <TYPE-CODE FALSE> + PHRASE62>
955                     <DEAD FOK13>
956                     <FRAME '\1aPROG-END>
957                     <PUSH DEST9>
958                     <DEAD DEST9>
959                     <CALL '\1aPROG-END 1>
960                     <JUMP + PHRASE64>
961 PHRASE62
962                     <NTHUV NF10 13 = FOK13>
963                     <TYPE? FOK13 <TYPE-CODE FALSE> + PHRASE66>
964                     <DEAD FOK13>
965                     <FRAME '\1aIEMIT>
966                     <PUSH '`UNBIND>
967                     <NTHUV NF10 13 = STACK>
968                     <DEAD NF10>
969                     <CALL '\1aIEMIT 2>
970 PHRASE66
971                     <FRAME '\1aBRANCH-TAG>
972                     <PUSH RTA14>
973                     <DEAD RTA14>
974                     <CALL '\1aBRANCH-TAG 1>
975 PHRASE64
976                     <GVAL 'NO-DATUM = CD1-8>
977                     <RETURN CD1-8>
978                     <DEAD CD1-8>
979                     <END \1aRETURN-GEN>
980
981 #WORD *20213406350*
982                     <GFCN \1aMULTI-RETURN-GEN ("VALUE" ANY NODE ANY) NOD4 WHERE5>
983                     <TEMP (K6 %<>) FTMP10 N11 (LOCAL12 %<>) SEGTMP14 (I15:FIX 0) TEMP22 FR13 TEMP45 N61:NODE TEMP89 RES92>
984                     <INTGO>
985                     <NTHUV NOD4 5 = K6 (TYPE LIST)>
986                     <NTHL K6 1 = N11 (TYPE NODE)>
987                     <NTHUV N11 1 = TEMP22 (TYPE FIX)>
988                     <VEQUAL? TEMP22 2 - PHRASE21 (TYPE FIX)>
989                     <DEAD TEMP22>
990                     <SET LOCAL12 'T (TYPE ATOM)>
991                     <GEN-LVAL 'RPNOD = N11>
992                     <GEN-ASSIGNED? 'SEGLABEL - PHRASE33>
993                     <GEN-LVAL 'COUNTMP = FTMP10>
994                     <JUMP + PHRASE33>
995 PHRASE21
996                     <NTHUV N11 1 = TEMP22 (TYPE FIX)>
997                     <VEQUAL? TEMP22 10 - PHRASE30 (TYPE FIX)>
998                     <DEAD TEMP22>
999                     <NTHUV N11 4 = TEMP22 (TYPE SYMTAB)>
1000                     <NTHUV TEMP22 11 = TEMP22>
1001                     <TYPE? TEMP22 <TYPE-CODE FALSE> + PHRASE30>
1002                     <SET N11 TEMP22>
1003                     <DEAD TEMP22>
1004                     <SET FR13 0 (TYPE FIX)>
1005                     <JUMP + PHRASE33>
1006 PHRASE30
1007                     <FRAME '\1aGEN>
1008                     <PUSH N11>
1009                     <PUSH 'DONT-CARE>
1010                     <CALL '\1aGEN 2 = FR13>
1011 PHRASE33
1012                     <RESTL K6 1 = TEMP45 (TYPE LIST)>
1013                     <LOOP>
1014 MAP36
1015                     <INTGO>
1016                     <EMPL? TEMP45 + MAPAP39>
1017                     <NTHL TEMP45 1 = TEMP22>
1018                     <NTHUV TEMP22 1 = TEMP22 (TYPE FIX)>
1019                     <VEQUAL? TEMP22 3 + PHRASE48 (TYPE FIX)>
1020                     <DEAD TEMP22>
1021                     <ADD I15 1 = I15 (TYPE FIX)>
1022 PHRASE48
1023                     <RESTL TEMP45 1 = TEMP45 (TYPE LIST)>
1024                     <JUMP + MAP36>
1025 MAPAP39
1026                     <RESTL K6 1 = TEMP22 (TYPE LIST)>
1027                     <DEAD K6>
1028                     <LOOP>
1029 MAP51
1030                     <INTGO>
1031                     <EMPL? TEMP22 + MAPAP54>
1032                     <NTHL TEMP22 1 = K6>
1033                     <NTHUV K6 1 = TEMP45 (TYPE FIX)>
1034                     <VEQUAL? TEMP45 3 - PHRASE64 (TYPE FIX)>
1035                     <DEAD TEMP45>
1036                     <TYPE? SEGTMP14 <TYPE-CODE UNBOUND> - PHRASE67>
1037                     <TYPE? FTMP10 <TYPE-CODE UNBOUND> + PHRASE69>
1038                     <VEQUAL? I15 0 + PHRASE75 (TYPE FIX)>
1039                     <FRAME '\1aIEMIT>
1040                     <PUSH '`ADD>
1041                     <PUSH FTMP10>
1042                     <PUSH I15>
1043                     <PUSH '=>
1044                     <PUSH FTMP10>
1045                     <CALL '\1aIEMIT 5>
1046                     <JUMP + PHRASE75>
1047 PHRASE69
1048                     <FRAME '\1aGEN-TEMP>
1049                     <CALL '\1aGEN-TEMP 0 = FTMP10>
1050                     <FRAME '\1aIEMIT>
1051                     <PUSH '`SET>
1052                     <PUSH FTMP10>
1053                     <PUSH I15>
1054                     <CALL '\1aIEMIT 3>
1055 PHRASE75
1056                     <FRAME '\1aGEN-TEMP>
1057                     <PUSH %<>>
1058                     <CALL '\1aGEN-TEMP 1 = SEGTMP14>
1059 PHRASE67
1060                     <FRAME '\1aSTRUCTYP-SEG>
1061                     <NTHUV K6 5 = TEMP45 (TYPE LIST)>
1062                     <DEAD K6>
1063                     <NTHL TEMP45 1 = N61 (TYPE NODE)>
1064                     <DEAD TEMP45>
1065                     <NTHUV N61 3 = STACK>
1066                     <CALL '\1aSTRUCTYP-SEG 1 = K6>
1067                     <VEQUAL? LOCAL12 0 + PHRASE81>
1068                     <FRAME '\1aGEN>
1069                     <PUSH N61>
1070                     <PUSH SEGTMP14>
1071                     <CALL '\1aGEN 2>
1072                     <FRAME '\1aSEGMENT-STACK>
1073                     <PUSH SEGTMP14>
1074                     <PUSH FTMP10>
1075                     <PUSH K6>
1076                     <DEAD K6>
1077                     <FRAME '\1aISTYPE?>
1078                     <NTHUV N61 3 = STACK>
1079                     <DEAD N61>
1080                     <CALL '\1aISTYPE? 1 = STACK>
1081                     <CALL '\1aSEGMENT-STACK 4>
1082                     <JUMP + PHRASE110>
1083 PHRASE81
1084                     <GETS 'BIND = TEMP45 (TYPE LBIND)>
1085                     <FRAME '\1aMAKE-TAG>
1086                     <CALL '\1aMAKE-TAG 0 = TEMP89>
1087                     <BBIND 'SEGLABEL 'ANY 'FIX TEMP89>
1088                     <DEAD TEMP89>
1089                     <BBIND 'COUNTMP 'ANY 'FIX FTMP10>
1090                     <BBIND 'SEGCALLED 'ANY 'FIX %<>>
1091                     <FRAME '\1aGEN>
1092                     <PUSH N61>
1093                     <PUSH SEGTMP14>
1094                     <CALL '\1aGEN 2 = RES92>
1095                     <GVAL 'NO-DATUM = TEMP89>
1096                     <EQUAL? TEMP89 RES92 - BOOL97>
1097                     <DEAD TEMP89 RES92>
1098                     <EQUAL? K6 'MULTI + PHRASE96>
1099 BOOL97
1100                     <FRAME '\1aSEGMENT-STACK>
1101                     <PUSH SEGTMP14>
1102                     <NTHR 'COUNTMP 2 = TEMP89 (RECORD-TYPE ATOM) (TYPE LBIND)>
1103                     <NTHR TEMP89 1 = STACK (RECORD-TYPE LBIND)>
1104                     <DEAD TEMP89>
1105                     <PUSH K6>
1106                     <DEAD K6>
1107                     <FRAME '\1aISTYPE?>
1108                     <NTHUV N61 3 = STACK>
1109                     <DEAD N61>
1110                     <CALL '\1aISTYPE? 1 = STACK>
1111                     <NTHR 'SEGLABEL 2 = TEMP89 (RECORD-TYPE ATOM) (TYPE LBIND)>
1112                     <NTHR TEMP89 1 = STACK (RECORD-TYPE LBIND)>
1113                     <DEAD TEMP89>
1114                     <CALL '\1aSEGMENT-STACK 5>
1115                     <JUMP + PHRASE104>
1116 PHRASE96
1117                     <NTHR 'SEGCALLED 2 = TEMP89 (RECORD-TYPE ATOM) (TYPE LBIND)>
1118                     <NTHR TEMP89 1 = TEMP89 (RECORD-TYPE LBIND)>
1119                     <TYPE? TEMP89 <TYPE-CODE FALSE> + PHRASE104>
1120                     <DEAD TEMP89>
1121                     <FRAME '\1aLABEL-TAG>
1122                     <NTHR 'SEGLABEL 2 = TEMP89 (RECORD-TYPE ATOM) (TYPE LBIND)>
1123                     <NTHR TEMP89 1 = STACK (RECORD-TYPE LBIND)>
1124                     <DEAD TEMP89>
1125                     <CALL '\1aLABEL-TAG 1>
1126 PHRASE104
1127                     <UNBIND TEMP45>
1128                     <DEAD TEMP45>
1129                     <ADJ -27>
1130                     <JUMP + PHRASE110>
1131 PHRASE64
1132                     <FRAME '\1aGEN>
1133                     <PUSH K6>
1134                     <DEAD K6>
1135                     <GVAL 'POP-STACK = STACK>
1136                     <CALL '\1aGEN 2>
1137 PHRASE110
1138                     <RESTL TEMP22 1 = TEMP22 (TYPE LIST)>
1139                     <JUMP + MAP51>
1140 MAPAP54
1141                     <VEQUAL? LOCAL12 0 + PHRASE113>
1142                     <NTHUV N11 14 = TEMP22>
1143                     <EQUAL? TEMP22 'FLUSHED + BOOL115>
1144                     <DEAD TEMP22>
1145                     <GEN-ASSIGNED? 'SEGLABEL + PHRASE113>
1146 BOOL115
1147                     <FRAME '\1aCOMPILE-ERROR>
1148                     <PUSH "MULTI-RETURN to nothing">
1149                     <PUSH NOD4>
1150                     <DEAD NOD4>
1151                     <CALL '\1aCOMPILE-ERROR 2>
1152                     <JUMP + PHRASE129>
1153 PHRASE113
1154                     <VEQUAL? LOCAL12 0 + PHRASE118>
1155                     <DEAD LOCAL12>
1156                     <GEN-ASSIGNED? 'SEGLABEL - PHRASE118>
1157                     <TYPE? SEGTMP14 <TYPE-CODE UNBOUND> - PHRASE121>
1158                     <DEAD SEGTMP14>
1159                     <FRAME '\1aIEMIT>
1160                     <PUSH '`SET>
1161                     <PUSH FTMP10>
1162                     <DEAD FTMP10>
1163                     <PUSH I15>
1164                     <DEAD I15>
1165                     <CALL '\1aIEMIT 3>
1166 PHRASE121
1167                     <NTHUV N11 13 = FTMP10>
1168                     <TYPE? FTMP10 <TYPE-CODE FALSE> + PHRASE124>
1169                     <DEAD FTMP10>
1170                     <FRAME '\1aIEMIT>
1171                     <PUSH '`UNBIND>
1172                     <NTHUV N11 13 = STACK>
1173                     <DEAD N11>
1174                     <CALL '\1aIEMIT 2>
1175 PHRASE124
1176                     <FRAME '\1aBRANCH-TAG>
1177                     <GEN-LVAL 'SEGLABEL = STACK>
1178                     <CALL '\1aBRANCH-TAG 1>
1179                     <JUMP + PHRASE129>
1180 PHRASE118
1181                     <FRAME '\1aIEMIT>
1182                     <PUSH '`MRETURN>
1183                     <TYPE? FTMP10 <TYPE-CODE UNBOUND> + PHRASE132>
1184                     <SET TEMP45 FTMP10>
1185                     <DEAD FTMP10>
1186                     <JUMP + PHRASE133>
1187 PHRASE132
1188                     <SET TEMP45 I15>
1189                     <DEAD I15>
1190 PHRASE133
1191                     <PUSH TEMP45>
1192                     <DEAD TEMP45>
1193                     <PUSH FR13>
1194                     <DEAD FR13>
1195                     <CALL '\1aIEMIT 3>
1196 PHRASE129
1197                     <GVAL 'NO-DATUM = FTMP10>
1198                     <RETURN FTMP10>
1199                     <DEAD FTMP10>
1200                     <END \1aMULTI-RETURN-GEN>
1201
1202 "\f"
1203
1204 " Generate code for an AGAIN."
1205
1206 #WORD *22677501762*
1207                     <GFCN \1aAGAIN-GEN ("VALUE" ANY NODE ANY) NOD4 WHERE5>
1208                     <TEMP TEMP14>
1209                     <INTGO>
1210                     <NTHUV NOD4 5 = TEMP14 (TYPE LIST)>
1211                     <EMPL? TEMP14 - PHRASE13 (TYPE LIST)>
1212                     <DEAD TEMP14>
1213                     <GEN-LVAL 'RPNOD = TEMP14>
1214                     <JUMP + PHRASE19>
1215 PHRASE13
1216                     <NTHUV NOD4 5 = TEMP14 (TYPE LIST)>
1217                     <NTHL TEMP14 1 = TEMP14 (TYPE NODE)>
1218                     <NTHUV TEMP14 4 = TEMP14 (TYPE SYMTAB)>
1219                     <NTHUV TEMP14 11 = TEMP14>
1220                     <TYPE? TEMP14 <TYPE-CODE FALSE> - PHRASE19>
1221                     <FRAME '\1aSUBR-GEN>
1222                     <PUSH NOD4>
1223                     <DEAD NOD4>
1224                     <PUSH WHERE5>
1225                     <DEAD WHERE5>
1226                     <CALL '\1aSUBR-GEN 2 = TEMP14>
1227                     <RETURN TEMP14>
1228                     <DEAD TEMP14>
1229 PHRASE19
1230                     <FRAME '\1aBRANCH-TAG>
1231                     <NTHUV TEMP14 16 = STACK>
1232                     <DEAD TEMP14>
1233                     <CALL '\1aBRANCH-TAG 1>
1234                     <GVAL 'NO-DATUM = TEMP14>
1235                     <RETURN TEMP14>
1236                     <DEAD TEMP14>
1237                     <END \1aAGAIN-GEN>
1238
1239 #WORD *652007507*
1240                     <GFCN \1aUNBIND-LOCS ("VALUE" ATOM)>
1241                     <TEMP>
1242                     <INTGO>
1243                     <RETURN 'T>
1244                     <END \1aUNBIND-LOCS>
1245
1246 <ENDPACKAGE>