4 <ENTRY HASH EXPAND-FLAG>
22 <SETG ONE-IN-LH <LSH 1 16>>
24 <MANIFEST PFIX PLIST PRECORD PBYTES PSTRING PUVECTOR PVECTOR ONE-IN-LH>
27 <GFCN
\1aHASH ("VALUE" FIX ANY "OPTIONAL" FIX) OBJ6 POS7>
28 <OPT-DISPATCH 1 %<> OPT4 OPT5>
32 <TEMP TEMP13 FTYP9:FIX PREHASH10 EXP-MACROS12 ATM11 HASH8:FIX>
35 <AND TEMP13 #WORD *7* = FTYP9>
37 <GVAL 'EXPAND-FLAG = EXP-MACROS12>
38 <TYPE? OBJ6 <TYPE-CODE FORM> - PHRASE24>
39 <TYPE? EXP-MACROS12 <TYPE-CODE FALSE> + PHRASE24>
40 <EMPL? OBJ6 + PHRASE24 (TYPE FORM)>
42 <TYPE? ATM11 <TYPE-CODE ATOM> - PHRASE24 (DEAD-JUMP ATM11)>
43 <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE24) (DEAD-JUMP ATM11 TEMP13)>
44 <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE24 (DEAD-JUMP ATM11 TEMP13)>
45 <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE GBIND)>
46 <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE24 (DEAD-JUMP ATM11)>
48 <VEQUAL? ATM11 'GVAL + BOOL20>
49 <VEQUAL? ATM11 'LVAL - PHRASE18>
51 <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
52 <CHTYPE TEMP13 <TYPE-CODE LIST> = TEMP13>
53 <EMPL? TEMP13 + PHRASE18 (TYPE LIST)>
55 <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
56 <NTHL TEMP13 1 = TEMP13>
57 <TYPE? TEMP13 <TYPE-CODE ATOM> - PHRASE18 (DEAD-FALL FTYP9)>
60 <RESTL OBJ6 1 = TEMP13 (TYPE LIST)>
62 <NTHL TEMP13 1 = STACK (TYPE ATOM)>
66 <CALL '
\1aCHTYPE 2 = OBJ6>
67 <SET FTYP9 2 (TYPE FIX)>
70 <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM)>
71 <NTHR TEMP13 3 = TEMP13 (RECORD-TYPE GBIND)>
72 <VEQUAL? TEMP13 'MANIFEST - PHRASE22 (DEAD-FALL PREHASH10)>
81 <TYPE? TEMP13 <TYPE-CODE MACRO> - PHRASE24 (DEAD-FALL PREHASH10)>
86 <CALL '
\1aEXPAND 1 = STACK>
88 <ADD POS7 65536 = STACK (TYPE FIX)>
89 <CALL '
\1aHASH 2 = PREHASH10>
91 <DISPATCH FTYP9 0 CASE29 CASE31 CASE32 CASEDF27 CASE33 CASE30 CASE35 CASE34 (DEAD-FALL EXP-MACROS12)>
95 <PUSH 'UNKNOWN-PRIMTYPE!-ERRORS>
98 <CALL '
\1aPRIMTYPE 1 = STACK>
103 <CHTYPE OBJ6 <TYPE-CODE FIX> = HASH8>
106 <FRAME '
\1aHASH-STRING>
107 <CHTYPE OBJ6 <TYPE-CODE STRING> = STACK>
108 <ADD POS7 65536 = STACK (TYPE FIX)>
109 <CALL '
\1aHASH-STRING 2 = HASH8>
112 <FRAME '
\1aHASH-LIST>
113 <CHTYPE OBJ6 <TYPE-CODE LIST> = STACK>
114 <ADD POS7 65536 = STACK (TYPE FIX)>
115 <CALL '
\1aHASH-LIST 2 = HASH8>
118 <TYPE? EXP-MACROS12 <TYPE-CODE FALSE> + PHRASE41>
120 <TYPE? OBJ6 <TYPE-CODE GVAL> - PHRASE41>
121 <CHTYPE OBJ6 <TYPE-CODE ATOM> = ATM11>
122 <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE41) (DEAD-JUMP ATM11 TEMP13)>
123 <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE41 (DEAD-JUMP ATM11 TEMP13)>
124 <NTHR TEMP13 1 = TEMP13 (RECORD-TYPE GBIND)>
125 <TYPE? TEMP13 <TYPE-CODE UNBOUND> + PHRASE41 (DEAD-JUMP ATM11)>
127 <NTHR ATM11 1 = TEMP13 (RECORD-TYPE ATOM)>
128 <NTHR TEMP13 3 = TEMP13 (RECORD-TYPE GBIND)>
129 <VEQUAL? TEMP13 'MANIFEST - PHRASE41 (DEAD-JUMP ATM11) (DEAD-FALL HASH8)>
134 <ADD POS7 65536 = STACK (TYPE FIX)>
135 <CALL '
\1aHASH 2 = HASH8>
138 <TYPE? OBJ6 <TYPE-CODE ATOM> + BOOL45 (DEAD-JUMP HASH8)>
139 <TYPE? OBJ6 <TYPE-CODE LVAL> + BOOL45 (DEAD-JUMP HASH8)>
140 <TYPE? OBJ6 <TYPE-CODE GVAL> + BOOL45 (DEAD-JUMP HASH8)>
143 <CALL '
\1aPRIMTYPE 1 = TEMP13>
144 <VEQUAL? TEMP13 'ATOM - CASEND28 (DEAD-FALL HASH8)>
147 <FRAME '
\1aHASH-ATOM>
148 <CHTYPE OBJ6 <TYPE-CODE ATOM> = STACK>
149 <ADD POS7 65536 = STACK (TYPE FIX)>
150 <CALL '
\1aHASH-ATOM 2 = HASH8>
153 <FRAME '
\1aHASH-BYTES>
154 <CHTYPE OBJ6 <TYPE-CODE BYTES> = STACK>
155 <ADD POS7 65536 = STACK (TYPE FIX)>
156 <CALL '
\1aHASH-BYTES 2 = HASH8>
159 <FRAME '
\1aHASH-VECTOR>
160 <CHTYPE OBJ6 <TYPE-CODE VECTOR> = STACK>
161 <ADD POS7 65536 = STACK (TYPE FIX)>
162 <CALL '
\1aHASH-VECTOR 2 = HASH8>
165 <FRAME '
\1aHASH-UVECTOR>
166 <CHTYPE OBJ6 <TYPE-CODE UVECTOR> = STACK>
167 <ADD POS7 65536 = STACK (TYPE FIX)>
168 <CALL '
\1aHASH-UVECTOR 2 = HASH8>
172 <CALL '
\1aNEWTYPE? 1 = TEMP13>
173 <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE52>
178 <CALL '
\1aPRIMTYPE 1 = TEMP13>
179 <NTHR TEMP13 5 = TEMP13 (RECORD-TYPE ATOM) (TYPE TYPE-C)>
180 <CHTYPE TEMP13 <TYPE-CODE FIX> = FTYP9>
182 <LSH FTYP9 13 = TEMP13 (TYPE FIX)>
183 <AND FTYP9 #WORD *37777777777* = FTYP9>
184 <LSH FTYP9 -19 = FTYP9 (TYPE FIX)>
185 <OR TEMP13 FTYP9 = TEMP13>
187 <AND TEMP13 #WORD *37777777777* = TEMP13>
192 <CALL '
\1aPRIMTYPE 1 = TEMP13>
193 <NTHR TEMP13 5 = TEMP13 (RECORD-TYPE ATOM) (TYPE TYPE-C)>
194 <ROT TEMP13 13 = TEMP13 (TYPE FIX)>
196 <FRAME '
\1aHASH-ATOM>
200 <CALL '
\1aTYPE 1 = STACK>
201 <ADD POS7 65536 = STACK (TYPE FIX)>
202 <CALL '
\1aHASH-ATOM 2 = FTYP9>
203 <XOR TEMP13 FTYP9 = TEMP13>
206 <LSH HASH8 17 = EXP-MACROS12 (TYPE FIX)>
207 <AND HASH8 #WORD *37777777777* = FTYP9>
209 <LSH FTYP9 -15 = FTYP9 (TYPE FIX)>
210 <OR EXP-MACROS12 FTYP9 = EXP-MACROS12>
212 <AND EXP-MACROS12 #WORD *37777777777* = FTYP9>
216 <ROT HASH8 17 = FTYP9 (TYPE FIX)>
219 <XOR TEMP13 FTYP9 = HASH8>
224 <LSH HASH8 17 = EXP-MACROS12 (TYPE FIX)>
225 <AND HASH8 #WORD *37777777777* = FTYP9>
227 <LSH FTYP9 -15 = FTYP9 (TYPE FIX)>
228 <OR EXP-MACROS12 FTYP9 = EXP-MACROS12>
230 <AND EXP-MACROS12 #WORD *37777777777* = FTYP9>
234 <ROT HASH8 17 = FTYP9 (TYPE FIX)>
237 <TYPE OBJ6 = EXP-MACROS12>
239 <XOR FTYP9 EXP-MACROS12 = HASH8>
240 <DEAD FTYP9 EXP-MACROS12>
242 <TYPE? PREHASH10 <TYPE-CODE UNBOUND> + PHRASE75 (DEAD-JUMP PREHASH10)>
244 <LSH HASH8 17 = FTYP9 (TYPE FIX)>
245 <AND HASH8 #WORD *37777777777* = HASH8>
246 <LSH HASH8 -15 = HASH8 (TYPE FIX)>
247 <OR FTYP9 HASH8 = FTYP9>
249 <AND FTYP9 #WORD *37777777777* = EXP-MACROS12>
253 <ROT HASH8 17 = EXP-MACROS12 (TYPE FIX)>
256 <XOR EXP-MACROS12 PREHASH10 = HASH8>
257 <DEAD EXP-MACROS12 PREHASH10>
259 <XOR HASH8 POS7 = EXP-MACROS12>
261 <RETURN EXP-MACROS12>
266 <GFCN
\1aHASH-ATOM ("VALUE" FIX ATOM FIX) ATM4 POS5>
267 <TEMP TEMP8:FIX TEMP19>
269 <VEQUAL? ATM4 'ROOT - PHRASE7 (DEAD-FALL ATM4)>
270 <XOR POS5 #WORD *122* = TEMP8>
276 <FRAME '
\1aHASH-STRING>
277 <NTHR ATM4 3 = STACK (RECORD-TYPE ATOM)>
278 <ADD POS5 65536 = STACK (TYPE FIX)>
279 <CALL '
\1aHASH-STRING 2 = TEMP8>
280 <LSH TEMP8 17 = TEMP19 (TYPE FIX)>
281 <AND TEMP8 #WORD *37777777777* = TEMP8>
282 <LSH TEMP8 -15 = TEMP8 (TYPE FIX)>
283 <OR TEMP19 TEMP8 = TEMP19>
285 <AND TEMP19 #WORD *37777777777* = TEMP8>
289 <FRAME '
\1aHASH-STRING>
290 <NTHR ATM4 3 = STACK (RECORD-TYPE ATOM)>
291 <ADD POS5 65536 = STACK (TYPE FIX)>
292 <CALL '
\1aHASH-STRING 2 = TEMP19>
293 <ROT TEMP19 17 = TEMP8 (TYPE FIX)>
297 <NTHR ATM4 4 = STACK (RECORD-TYPE ATOM)>
299 <ADD POS5 65536 = STACK (TYPE FIX)>
301 <CALL '
\1aHASH 2 = TEMP19>
302 <XOR TEMP8 TEMP19 = TEMP8>
309 <GFCN
\1aHASH-STRING ("VALUE" FIX STRING FIX) STR4 POS5>
310 <TEMP (HASH6:FIX 0) TEMP13:STRING CH18:CHARACTER TEMP23:FIX>
312 <SET TEMP13 STR4 (TYPE STRING)>
317 <EMPUS? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
318 <NTHUS TEMP13 1 = CH18>
320 <LSH HASH6 17 = TEMP23 (TYPE FIX)>
321 <AND HASH6 #WORD *37777777777* = HASH6>
322 <LSH HASH6 -15 = HASH6 (TYPE FIX)>
323 <OR TEMP23 HASH6 = TEMP23>
325 <AND TEMP23 #WORD *37777777777* = HASH6>
329 <ROT HASH6 17 = HASH6 (TYPE FIX)>
331 <XOR HASH6 POS5 = HASH6>
332 <XOR HASH6 CH18 = HASH6>
334 <ADD POS5 1 = POS5 (TYPE FIX)>
335 <RESTUS TEMP13 1 = TEMP13 (TYPE STRING)>
343 <GFCN
\1aHASH-LIST ("VALUE" FIX LIST FIX) LIST4 POS5>
344 <TEMP (HASH6:FIX 0) TEMP13:LIST ELEM18 TEMP23>
346 <SET TEMP13 LIST4 (TYPE LIST)>
351 <EMPL? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
352 <NTHL TEMP13 1 = ELEM18>
354 <LSH HASH6 17 = TEMP23 (TYPE FIX)>
355 <AND HASH6 #WORD *37777777777* = HASH6>
356 <LSH HASH6 -15 = HASH6 (TYPE FIX)>
357 <OR TEMP23 HASH6 = TEMP23>
359 <AND TEMP23 #WORD *37777777777* = HASH6>
363 <ROT HASH6 17 = HASH6 (TYPE FIX)>
368 <ADD POS5 65536 = STACK (TYPE FIX)>
369 <CALL '
\1aHASH 2 = TEMP23>
370 <XOR HASH6 TEMP23 = HASH6>
372 <XOR HASH6 POS5 = HASH6>
373 <ADD POS5 1 = POS5 (TYPE FIX)>
374 <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
382 <GFCN
\1aHASH-VECTOR ("VALUE" FIX VECTOR FIX) VEC4 POS5>
383 <TEMP (HASH6:FIX 0) TEMP13:VECTOR ELEM18 TEMP23>
385 <SET TEMP13 VEC4 (TYPE VECTOR)>
390 <EMPUV? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
391 <NTHUV TEMP13 1 = ELEM18>
393 <LSH HASH6 17 = TEMP23 (TYPE FIX)>
394 <AND HASH6 #WORD *37777777777* = HASH6>
395 <LSH HASH6 -15 = HASH6 (TYPE FIX)>
396 <OR TEMP23 HASH6 = TEMP23>
398 <AND TEMP23 #WORD *37777777777* = HASH6>
402 <ROT HASH6 17 = HASH6 (TYPE FIX)>
407 <ADD POS5 65536 = STACK (TYPE FIX)>
408 <CALL '
\1aHASH 2 = TEMP23>
409 <XOR HASH6 TEMP23 = HASH6>
411 <XOR HASH6 POS5 = HASH6>
412 <ADD POS5 1 = POS5 (TYPE FIX)>
413 <RESTUV TEMP13 1 = TEMP13 (TYPE VECTOR)>
421 <GFCN
\1aHASH-UVECTOR ("VALUE" FIX UVECTOR FIX) UVEC4 POS5>
422 <TEMP (HASH6:FIX 0) TEMP13:UVECTOR ELEM18:FIX TEMP23:FIX>
424 <SET TEMP13 UVEC4 (TYPE UVECTOR)>
429 <EMPUU? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
430 <NTHUU TEMP13 1 = ELEM18>
432 <LSH HASH6 17 = TEMP23 (TYPE FIX)>
433 <AND HASH6 #WORD *37777777777* = HASH6>
434 <LSH HASH6 -15 = HASH6 (TYPE FIX)>
435 <OR TEMP23 HASH6 = TEMP23>
437 <AND TEMP23 #WORD *37777777777* = HASH6>
441 <ROT HASH6 17 = HASH6 (TYPE FIX)>
443 <XOR HASH6 ELEM18 = HASH6>
445 <XOR HASH6 POS5 = HASH6>
446 <ADD POS5 1 = POS5 (TYPE FIX)>
447 <RESTUU TEMP13 1 = TEMP13 (TYPE UVECTOR)>
452 <END
\1aHASH-UVECTOR>
455 <GFCN
\1aHASH-BYTES ("VALUE" FIX BYTES FIX) BYT4 POS5>
456 <TEMP (HASH6:FIX 0) TEMP13:BYTES ELEM18:FIX TEMP23:FIX>
458 <SET TEMP13 BYT4 (TYPE BYTES)>
463 <EMPUB? TEMP13 + MAPAP11 (DEAD-JUMP POS5 TEMP13)>
464 <NTHUB TEMP13 1 = ELEM18>
466 <LSH HASH6 17 = TEMP23 (TYPE FIX)>
467 <AND HASH6 #WORD *37777777777* = HASH6>
468 <LSH HASH6 -15 = HASH6 (TYPE FIX)>
469 <OR TEMP23 HASH6 = TEMP23>
471 <AND TEMP23 #WORD *37777777777* = HASH6>
475 <ROT HASH6 17 = HASH6 (TYPE FIX)>
477 <XOR HASH6 ELEM18 = HASH6>
479 <XOR HASH6 POS5 = HASH6>
480 <ADD POS5 1 = POS5 (TYPE FIX)>
481 <RESTUB TEMP13 1 = TEMP13 (TYPE BYTES)>
489 <GFCN
\1aNEWTYPE? ("VALUE" <OR ATOM FALSE> ANY) OBJ4>
495 <LSH TEMP6 -6 = STACK (TYPE FIX)>
497 <GVAL 'OLD-TYPES = STACK>
498 <CALL '
\1aG? 2 = TEMP6>