2 <DEFINE RPUTBITS (L "AUX" (WD <1 .L>) (WL <2 .L>) (SHL <3 .L>) (NEW <4 .L>)
3 (DST <6 .L>) (TAC? <>) (AC? <>) AN BP (OL <>) (AC <>)
4 (W 0) (SH 0) IX (VT <>) (WAS-TYPED <>))
5 #DECL ((L) LIST (OL) <OR FALSE LIST>)
6 <COND (<TYPE? .WL FIX> <SET W .WL>)>
7 <COND (<TYPE? .SHL FIX> <SET SH .SHL>)>
8 <COND (<TYPE? .WD ATOM>
9 <SET OL <OBJ-LOC .WD 1>>
10 <SET TAC? <IN-AC? .WD BOTH>>
11 <SET AC? <IN-AC? .WD VALUE>>
12 <SET VT <VAR-TYPED? .WD>>)>
13 <SET BP <CHTYPE <ORB <LSH .SH 30> <LSH .W 24>> FIX>>
14 <COND (<OR <N==? .WD .DST> <AND <NOT .VT> <NOT .AC?>>>
15 <SET TAC? <LOAD-AC .WD BOTH>>
16 <SET AC? <NEXT-AC .TAC?>>
17 <COND (<AND <N==? .WD .DST>
18 <NOT <WILL-DIE? .WD>>>
19 <FLUSH-AC .TAC? T>)>)>
20 <COND (<N==? .WD .DST>
22 <SET WAS-TYPED <AC-TYPE <GET-AC .TAC?>>>
24 (.AC? <MUNGED-AC .AC?>)>)>
25 <COND (.AC? <SET AN <2 <CHTYPE <MEMQ .AC? ,ACS> VECTOR>>>)>
26 <COND (.AC? <SET BP <CHTYPE <ORB .BP .AN> CONSTANT>>)
30 <+ <CHTYPE <LSH <2 <MEMQ <1 <CHTYPE <3 .OL> LIST>>
35 .BP>) CONST-W-LOCAL>>)>
36 <COND (<AND <TYPE? .WL FIX> <TYPE? .SHL FIX>>
37 <COND (<OR <NOT <TYPE? .NEW ATOM>>
39 <NOT <SET AC <IN-AC? .NEW VALUE>>>>>
40 <GET-INTO-ACS .NEW VALUE <SET AC T*>>)
42 <SET AC <NEXT-AC <LOAD-AC .NEW BOTH>>>)>
44 <OCEMIT DPB .AC !<OBJ-VAL .BP>>)
46 <COND (.AC? <OCEMIT MOVEI O* .AC?>)
49 <OCEMIT MOVE O* !<OBJ-VAL .BP>>)>
50 <COND (<NOT <TYPE? .SHL FIX>>
51 <OCEMIT DPB <COND (<IN-AC? .SHL VALUE>)
52 (ELSE <NEXT-AC <LOAD-AC .SHL BOTH>>)>
53 !<OBJ-VAL <SET BP <CHTYPE *360600000000*
55 <CONST-LOC .BP VALUE>)>
56 <COND (<NOT <TYPE? .WL FIX>>
57 <OCEMIT DPB <COND (<IN-AC? .WL VALUE>)
58 (ELSE <NEXT-AC <LOAD-AC .WL BOTH>>)>
59 !<OBJ-VAL <SET BP <CHTYPE *300600000000*
61 <CONST-LOC .BP VALUE>)>
63 <AC-TIME <GET-AC .AC?>
64 <SETG AC-STAMP <+ ,AC-STAMP 1>>>
65 <COND (.TAC? <AC-TIME <GET-AC .TAC?> ,AC-STAMP>)>)>
66 <SET AC <LOAD-AC .NEW BOTH>>
67 <OCEMIT DPB <NEXT-AC .AC> O*>)>
68 <COND (<==? .DST STACK>
69 <OCEMIT PUSH TP* !<TYPE-WORD FIX>>
70 <OCEMIT PUSH TP* .AC?>
71 <COND (,WINNING-VICTIM <SETG STACK-DEPTH <+ ,STACK-DEPTH 2>>)>)
74 <AC-UPDATE <AC-ITEM <AC-CODE <GET-AC .TAC?> TYPE>
76 <COND (.WAS-TYPED <AC-TYPE <GET-AC .TAC?> FIX>)>
80 <AC-UPDATE <GET-AC <SET AC .AC?>> T> .DST> <>> VALUE>)
83 <SET TAC? <GETPROP .AC? AC-PAIR>>
84 <AC-UPDATE <AC-ITEM <AC-CODE <GET-AC .TAC?> TYPE>
86 <AC-UPDATE <GET-AC .AC?> T>
87 <COND (<NOT .VT> <AC-TYPE <GET-AC .TAC?> FIX>)>)>>