1:
2:
3: #include <gauche.h>
4: #if defined(__CYGWIN__) || defined(GAUCHE_WINDOWS)
5: #define SCM_CGEN_CONST
6: #else
7: #define SCM_CGEN_CONST const
8: #endif
9: #ifdef DEFINSN
10: DEFINSN(SCM_VM_NOP, "NOP", 0, NONE)
11: DEFINSN(SCM_VM_CONST, "CONST", 0, OBJ)
12: DEFINSN(SCM_VM_CONSTI, "CONSTI", 1, NONE)
13: DEFINSN(SCM_VM_CONSTN, "CONSTN", 0, NONE)
14: DEFINSN(SCM_VM_CONSTF, "CONSTF", 0, NONE)
15: DEFINSN(SCM_VM_CONSTU, "CONSTU", 0, NONE)
16: DEFINSN(SCM_VM_CONST_PUSH, "CONST-PUSH", 0, OBJ)
17: DEFINSN(SCM_VM_CONSTI_PUSH, "CONSTI-PUSH", 1, NONE)
18: DEFINSN(SCM_VM_CONSTN_PUSH, "CONSTN-PUSH", 0, NONE)
19: DEFINSN(SCM_VM_CONSTF_PUSH, "CONSTF-PUSH", 0, NONE)
20: DEFINSN(SCM_VM_CONST_RET, "CONST-RET", 0, OBJ)
21: DEFINSN(SCM_VM_CONSTF_RET, "CONSTF-RET", 0, NONE)
22: DEFINSN(SCM_VM_CONSTU_RET, "CONSTU-RET", 0, NONE)
23: DEFINSN(SCM_VM_PUSH, "PUSH", 0, NONE)
24: DEFINSN(SCM_VM_PRE_CALL, "PRE-CALL", 1, ADDR)
25: DEFINSN(SCM_VM_PUSH_PRE_CALL, "PUSH-PRE-CALL", 1, ADDR)
26: DEFINSN(SCM_VM_CHECK_STACK, "CHECK-STACK", 1, NONE)
27: DEFINSN(SCM_VM_CALL, "CALL", 1, NONE)
28: DEFINSN(SCM_VM_TAIL_CALL, "TAIL-CALL", 1, NONE)
29: DEFINSN(SCM_VM_JUMP, "JUMP", 0, ADDR)
30: DEFINSN(SCM_VM_RET, "RET", 0, NONE)
31: DEFINSN(SCM_VM_DEFINE, "DEFINE", 1, OBJ)
32: DEFINSN(SCM_VM_CLOSURE, "CLOSURE", 0, CODE)
33: DEFINSN(SCM_VM_LOCAL_ENV, "LOCAL-ENV", 1, NONE)
34: DEFINSN(SCM_VM_PUSH_LOCAL_ENV, "PUSH-LOCAL-ENV", 1, NONE)
35: DEFINSN(SCM_VM_LOCAL_ENV_CLOSURES, "LOCAL-ENV-CLOSURES", 1, CODES)
36: DEFINSN(SCM_VM_POP_LOCAL_ENV, "POP-LOCAL-ENV", 0, NONE)
37: DEFINSN(SCM_VM_LOCAL_ENV_JUMP, "LOCAL-ENV-JUMP", 1, ADDR)
38: DEFINSN(SCM_VM_LOCAL_ENV_CALL, "LOCAL-ENV-CALL", 1, NONE)
39: DEFINSN(SCM_VM_LOCAL_ENV_TAIL_CALL, "LOCAL-ENV-TAIL-CALL", 1, NONE)
40: DEFINSN(SCM_VM_BF, "BF", 0, ADDR)
41: DEFINSN(SCM_VM_BT, "BT", 0, ADDR)
42: DEFINSN(SCM_VM_BNEQ, "BNEQ", 0, ADDR)
43: DEFINSN(SCM_VM_BNEQV, "BNEQV", 0, ADDR)
44: DEFINSN(SCM_VM_BNNULL, "BNNULL", 0, ADDR)
45: DEFINSN(SCM_VM_BNUMNE, "BNUMNE", 0, ADDR)
46: DEFINSN(SCM_VM_BNLT, "BNLT", 0, ADDR)
47: DEFINSN(SCM_VM_BNLE, "BNLE", 0, ADDR)
48: DEFINSN(SCM_VM_BNGT, "BNGT", 0, ADDR)
49: DEFINSN(SCM_VM_BNGE, "BNGE", 0, ADDR)
50: DEFINSN(SCM_VM_BNUMNEI, "BNUMNEI", 1, ADDR)
51: DEFINSN(SCM_VM_BNEQC, "BNEQC", 0, OBJ_ADDR)
52: DEFINSN(SCM_VM_BNEQVC, "BNEQVC", 0, OBJ_ADDR)
53: DEFINSN(SCM_VM_RF, "RF", 0, NONE)
54: DEFINSN(SCM_VM_RT, "RT", 0, NONE)
55: DEFINSN(SCM_VM_RNEQ, "RNEQ", 0, NONE)
56: DEFINSN(SCM_VM_RNEQV, "RNEQV", 0, NONE)
57: DEFINSN(SCM_VM_RNNULL, "RNNULL", 0, NONE)
58: DEFINSN(SCM_VM_RECEIVE, "RECEIVE", 2, ADDR)
59: DEFINSN(SCM_VM_TAIL_RECEIVE, "TAIL-RECEIVE", 2, NONE)
60: DEFINSN(SCM_VM_LSET, "LSET", 2, NONE)
61: DEFINSN(SCM_VM_LSET0, "LSET0", 0, NONE)
62: DEFINSN(SCM_VM_LSET1, "LSET1", 0, NONE)
63: DEFINSN(SCM_VM_LSET2, "LSET2", 0, NONE)
64: DEFINSN(SCM_VM_LSET3, "LSET3", 0, NONE)
65: DEFINSN(SCM_VM_LSET4, "LSET4", 0, NONE)
66: DEFINSN(SCM_VM_GSET, "GSET", 0, OBJ)
67: DEFINSN(SCM_VM_LREF, "LREF", 2, NONE)
68: DEFINSN(SCM_VM_LREF0, "LREF0", 0, NONE)
69: DEFINSN(SCM_VM_LREF1, "LREF1", 0, NONE)
70: DEFINSN(SCM_VM_LREF2, "LREF2", 0, NONE)
71: DEFINSN(SCM_VM_LREF3, "LREF3", 0, NONE)
72: DEFINSN(SCM_VM_LREF10, "LREF10", 0, NONE)
73: DEFINSN(SCM_VM_LREF11, "LREF11", 0, NONE)
74: DEFINSN(SCM_VM_LREF12, "LREF12", 0, NONE)
75: DEFINSN(SCM_VM_LREF20, "LREF20", 0, NONE)
76: DEFINSN(SCM_VM_LREF21, "LREF21", 0, NONE)
77: DEFINSN(SCM_VM_LREF30, "LREF30", 0, NONE)
78: DEFINSN(SCM_VM_LREF4, "LREF4", 0, NONE)
79: DEFINSN(SCM_VM_LREF13, "LREF13", 0, NONE)
80: DEFINSN(SCM_VM_LREF14, "LREF14", 0, NONE)
81: DEFINSN(SCM_VM_LREF_PUSH, "LREF-PUSH", 2, NONE)
82: DEFINSN(SCM_VM_LREF0_PUSH, "LREF0-PUSH", 0, NONE)
83: DEFINSN(SCM_VM_LREF1_PUSH, "LREF1-PUSH", 0, NONE)
84: DEFINSN(SCM_VM_LREF2_PUSH, "LREF2-PUSH", 0, NONE)
85: DEFINSN(SCM_VM_LREF3_PUSH, "LREF3-PUSH", 0, NONE)
86: DEFINSN(SCM_VM_LREF10_PUSH, "LREF10-PUSH", 0, NONE)
87: DEFINSN(SCM_VM_LREF11_PUSH, "LREF11-PUSH", 0, NONE)
88: DEFINSN(SCM_VM_LREF12_PUSH, "LREF12-PUSH", 0, NONE)
89: DEFINSN(SCM_VM_LREF20_PUSH, "LREF20-PUSH", 0, NONE)
90: DEFINSN(SCM_VM_LREF21_PUSH, "LREF21-PUSH", 0, NONE)
91: DEFINSN(SCM_VM_LREF30_PUSH, "LREF30-PUSH", 0, NONE)
92: DEFINSN(SCM_VM_LREF4_PUSH, "LREF4-PUSH", 0, NONE)
93: DEFINSN(SCM_VM_LREF13_PUSH, "LREF13-PUSH", 0, NONE)
94: DEFINSN(SCM_VM_LREF14_PUSH, "LREF14-PUSH", 0, NONE)
95: DEFINSN(SCM_VM_GREF, "GREF", 0, OBJ)
96: DEFINSN(SCM_VM_GREF_PUSH, "GREF-PUSH", 0, OBJ)
97: DEFINSN(SCM_VM_GREF_CALL, "GREF-CALL", 1, OBJ)
98: DEFINSN(SCM_VM_GREF_TAIL_CALL, "GREF-TAIL-CALL", 1, OBJ)
99: DEFINSN(SCM_VM_PUSH_GREF, "PUSH-GREF", 0, OBJ)
100: DEFINSN(SCM_VM_PUSH_GREF_CALL, "PUSH-GREF-CALL", 1, OBJ)
101: DEFINSN(SCM_VM_PUSH_GREF_TAIL_CALL, "PUSH-GREF-TAIL-CALL", 1, OBJ)
102: DEFINSN(SCM_VM_LREF0_PUSH_GREF, "LREF0-PUSH-GREF", 0, OBJ)
103: DEFINSN(SCM_VM_LREF0_PUSH_GREF_CALL, "LREF0-PUSH-GREF-CALL", 1, OBJ)
104: DEFINSN(SCM_VM_LREF0_PUSH_GREF_TAIL_CALL, "LREF0-PUSH-GREF-TAIL-CALL", 1, OBJ)
105: DEFINSN(SCM_VM_PROMISE, "PROMISE", 0, NONE)
106: DEFINSN(SCM_VM_CONST_APPLY, "CONST-APPLY", 1, OBJ)
107: DEFINSN(SCM_VM_CONS, "CONS", 0, NONE)
108: DEFINSN(SCM_VM_CONS_PUSH, "CONS-PUSH", 0, NONE)
109: DEFINSN(SCM_VM_CAR, "CAR", 0, NONE)
110: DEFINSN(SCM_VM_CAR_PUSH, "CAR-PUSH", 0, NONE)
111: DEFINSN(SCM_VM_CDR, "CDR", 0, NONE)
112: DEFINSN(SCM_VM_CDR_PUSH, "CDR-PUSH", 0, NONE)
113: DEFINSN(SCM_VM_CAAR, "CAAR", 0, NONE)
114: DEFINSN(SCM_VM_CAAR_PUSH, "CAAR-PUSH", 0, NONE)
115: DEFINSN(SCM_VM_CADR, "CADR", 0, NONE)
116: DEFINSN(SCM_VM_CADR_PUSH, "CADR-PUSH", 0, NONE)
117: DEFINSN(SCM_VM_CDAR, "CDAR", 0, NONE)
118: DEFINSN(SCM_VM_CDAR_PUSH, "CDAR-PUSH", 0, NONE)
119: DEFINSN(SCM_VM_CDDR, "CDDR", 0, NONE)
120: DEFINSN(SCM_VM_CDDR_PUSH, "CDDR-PUSH", 0, NONE)
121: DEFINSN(SCM_VM_LIST, "LIST", 1, NONE)
122: DEFINSN(SCM_VM_LIST_STAR, "LIST-STAR", 1, NONE)
123: DEFINSN(SCM_VM_LENGTH, "LENGTH", 0, NONE)
124: DEFINSN(SCM_VM_MEMQ, "MEMQ", 0, NONE)
125: DEFINSN(SCM_VM_MEMV, "MEMV", 0, NONE)
126: DEFINSN(SCM_VM_ASSQ, "ASSQ", 0, NONE)
127: DEFINSN(SCM_VM_ASSV, "ASSV", 0, NONE)
128: DEFINSN(SCM_VM_EQ, "EQ", 0, NONE)
129: DEFINSN(SCM_VM_EQV, "EQV", 0, NONE)
130: DEFINSN(SCM_VM_APPEND, "APPEND", 1, NONE)
131: DEFINSN(SCM_VM_NOT, "NOT", 0, NONE)
132: DEFINSN(SCM_VM_REVERSE, "REVERSE", 0, NONE)
133: DEFINSN(SCM_VM_APPLY, "APPLY", 1, NONE)
134: DEFINSN(SCM_VM_TAIL_APPLY, "TAIL-APPLY", 1, NONE)
135: DEFINSN(SCM_VM_IS_A, "IS-A", 0, NONE)
136: DEFINSN(SCM_VM_NULLP, "NULLP", 0, NONE)
137: DEFINSN(SCM_VM_PAIRP, "PAIRP", 0, NONE)
138: DEFINSN(SCM_VM_CHARP, "CHARP", 0, NONE)
139: DEFINSN(SCM_VM_EOFP, "EOFP", 0, NONE)
140: DEFINSN(SCM_VM_STRINGP, "STRINGP", 0, NONE)
141: DEFINSN(SCM_VM_SYMBOLP, "SYMBOLP", 0, NONE)
142: DEFINSN(SCM_VM_VECTORP, "VECTORP", 0, NONE)
143: DEFINSN(SCM_VM_IDENTIFIERP, "IDENTIFIERP", 0, NONE)
144: DEFINSN(SCM_VM_SETTER, "SETTER", 0, NONE)
145: DEFINSN(SCM_VM_VALUES, "VALUES", 1, NONE)
146: DEFINSN(SCM_VM_VEC, "VEC", 1, NONE)
147: DEFINSN(SCM_VM_LIST2VEC, "LIST2VEC", 0, NONE)
148: DEFINSN(SCM_VM_APP_VEC, "APP-VEC", 1, NONE)
149: DEFINSN(SCM_VM_VEC_LEN, "VEC-LEN", 0, NONE)
150: DEFINSN(SCM_VM_VEC_REF, "VEC-REF", 0, NONE)
151: DEFINSN(SCM_VM_VEC_SET, "VEC-SET", 0, NONE)
152: DEFINSN(SCM_VM_VEC_REFI, "VEC-REFI", 1, NONE)
153: DEFINSN(SCM_VM_VEC_SETI, "VEC-SETI", 1, NONE)
154: DEFINSN(SCM_VM_NUMEQ2, "NUMEQ2", 0, NONE)
155: DEFINSN(SCM_VM_NUMLT2, "NUMLT2", 0, NONE)
156: DEFINSN(SCM_VM_NUMLE2, "NUMLE2", 0, NONE)
157: DEFINSN(SCM_VM_NUMGT2, "NUMGT2", 0, NONE)
158: DEFINSN(SCM_VM_NUMGE2, "NUMGE2", 0, NONE)
159: DEFINSN(SCM_VM_NUMADD2, "NUMADD2", 0, NONE)
160: DEFINSN(SCM_VM_NUMSUB2, "NUMSUB2", 0, NONE)
161: DEFINSN(SCM_VM_NUMMUL2, "NUMMUL2", 0, NONE)
162: DEFINSN(SCM_VM_NUMDIV2, "NUMDIV2", 0, NONE)
163: DEFINSN(SCM_VM_NEGATE, "NEGATE", 0, NONE)
164: DEFINSN(SCM_VM_NUMIADD2, "NUMIADD2", 0, NONE)
165: DEFINSN(SCM_VM_NUMISUB2, "NUMISUB2", 0, NONE)
166: DEFINSN(SCM_VM_NUMIMUL2, "NUMIMUL2", 0, NONE)
167: DEFINSN(SCM_VM_NUMIDIV2, "NUMIDIV2", 0, NONE)
168: DEFINSN(SCM_VM_NUMADDI, "NUMADDI", 1, NONE)
169: DEFINSN(SCM_VM_NUMSUBI, "NUMSUBI", 1, NONE)
170: DEFINSN(SCM_VM_READ_CHAR, "READ-CHAR", 1, NONE)
171: DEFINSN(SCM_VM_PEEK_CHAR, "PEEK-CHAR", 1, NONE)
172: DEFINSN(SCM_VM_WRITE_CHAR, "WRITE-CHAR", 1, NONE)
173: DEFINSN(SCM_VM_CURIN, "CURIN", 0, NONE)
174: DEFINSN(SCM_VM_CUROUT, "CUROUT", 0, NONE)
175: DEFINSN(SCM_VM_CURERR, "CURERR", 0, NONE)
176: DEFINSN(SCM_VM_SLOT_REF, "SLOT-REF", 0, NONE)
177: DEFINSN(SCM_VM_SLOT_SET, "SLOT-SET", 0, NONE)
178: DEFINSN(SCM_VM_SLOT_REFC, "SLOT-REFC", 0, OBJ)
179: DEFINSN(SCM_VM_SLOT_SETC, "SLOT-SETC", 0, OBJ)
180: DEFINSN(SCM_VM_RECEIVE_ALL, "RECEIVE-ALL", 0, ADDR)
181: DEFINSN(SCM_VM_TAIL_RECEIVE_ALL, "TAIL-RECEIVE-ALL", 0, NONE)
182: DEFINSN(SCM_VM_VALUES_N, "VALUES-N", 0, NONE)
183: DEFINSN(SCM_VM_PUSH_HANDLERS, "PUSH-HANDLERS", 0, NONE)
184: DEFINSN(SCM_VM_POP_HANDLERS, "POP-HANDLERS", 0, NONE)
185: #endif
186: #ifdef STATE_TABLE
187:
188: { SCM_VM_NOP, EMIT, SCM_VM_NOP },
189: { SCM_VM_CONST, NEXT, 236 },
190: { SCM_VM_CONSTI, NEXT, 234 },
191: { SCM_VM_CONSTN, NEXT, 232 },
192: { SCM_VM_CONSTF, NEXT, 229 },
193: { SCM_VM_CONSTU, NEXT, 227 },
194: { SCM_VM_CONST_PUSH, EMIT, SCM_VM_CONST_PUSH },
195: { SCM_VM_CONSTI_PUSH, EMIT, SCM_VM_CONSTI_PUSH },
196: { SCM_VM_CONSTN_PUSH, EMIT, SCM_VM_CONSTN_PUSH },
197: { SCM_VM_CONSTF_PUSH, EMIT, SCM_VM_CONSTF_PUSH },
198: { SCM_VM_CONST_RET, EMIT, SCM_VM_CONST_RET },
199: { SCM_VM_CONSTF_RET, EMIT, SCM_VM_CONSTF_RET },
200: { SCM_VM_CONSTU_RET, EMIT, SCM_VM_CONSTU_RET },
201: { SCM_VM_PUSH, NEXT, 220 },
202: { SCM_VM_PRE_CALL, EMIT, SCM_VM_PRE_CALL },
203: { SCM_VM_PUSH_PRE_CALL, EMIT, SCM_VM_PUSH_PRE_CALL },
204: { SCM_VM_CHECK_STACK, EMIT, SCM_VM_CHECK_STACK },
205: { SCM_VM_CALL, EMIT, SCM_VM_CALL },
206: { SCM_VM_TAIL_CALL, EMIT, SCM_VM_TAIL_CALL },
207: { SCM_VM_JUMP, EMIT, SCM_VM_JUMP },
208: { SCM_VM_RET, EMIT, SCM_VM_RET },
209: { SCM_VM_DEFINE, EMIT, SCM_VM_DEFINE },
210: { SCM_VM_CLOSURE, EMIT, SCM_VM_CLOSURE },
211: { SCM_VM_LOCAL_ENV, EMIT, SCM_VM_LOCAL_ENV },
212: { SCM_VM_PUSH_LOCAL_ENV, EMIT, SCM_VM_PUSH_LOCAL_ENV },
213: { SCM_VM_LOCAL_ENV_CLOSURES, EMIT, SCM_VM_LOCAL_ENV_CLOSURES },
214: { SCM_VM_POP_LOCAL_ENV, EMIT, SCM_VM_POP_LOCAL_ENV },
215: { SCM_VM_LOCAL_ENV_JUMP, EMIT, SCM_VM_LOCAL_ENV_JUMP },
216: { SCM_VM_LOCAL_ENV_CALL, EMIT, SCM_VM_LOCAL_ENV_CALL },
217: { SCM_VM_LOCAL_ENV_TAIL_CALL, EMIT, SCM_VM_LOCAL_ENV_TAIL_CALL },
218: { SCM_VM_BF, EMIT, SCM_VM_BF },
219: { SCM_VM_BT, EMIT, SCM_VM_BT },
220: { SCM_VM_BNEQ, EMIT, SCM_VM_BNEQ },
221: { SCM_VM_BNEQV, EMIT, SCM_VM_BNEQV },
222: { SCM_VM_BNNULL, EMIT, SCM_VM_BNNULL },
223: { SCM_VM_BNUMNE, EMIT, SCM_VM_BNUMNE },
224: { SCM_VM_BNLT, EMIT, SCM_VM_BNLT },
225: { SCM_VM_BNLE, EMIT, SCM_VM_BNLE },
226: { SCM_VM_BNGT, EMIT, SCM_VM_BNGT },
227: { SCM_VM_BNGE, EMIT, SCM_VM_BNGE },
228: { SCM_VM_BNUMNEI, EMIT, SCM_VM_BNUMNEI },
229: { SCM_VM_BNEQC, EMIT, SCM_VM_BNEQC },
230: { SCM_VM_BNEQVC, EMIT, SCM_VM_BNEQVC },
231: { SCM_VM_RF, EMIT, SCM_VM_RF },
232: { SCM_VM_RT, EMIT, SCM_VM_RT },
233: { SCM_VM_RNEQ, EMIT, SCM_VM_RNEQ },
234: { SCM_VM_RNEQV, EMIT, SCM_VM_RNEQV },
235: { SCM_VM_RNNULL, EMIT, SCM_VM_RNNULL },
236: { SCM_VM_RECEIVE, EMIT, SCM_VM_RECEIVE },
237: { SCM_VM_TAIL_RECEIVE, EMIT, SCM_VM_TAIL_RECEIVE },
238: { SCM_VM_LSET, EMIT, SCM_VM_LSET },
239: { SCM_VM_LSET0, EMIT, SCM_VM_LSET0 },
240: { SCM_VM_LSET1, EMIT, SCM_VM_LSET1 },
241: { SCM_VM_LSET2, EMIT, SCM_VM_LSET2 },
242: { SCM_VM_LSET3, EMIT, SCM_VM_LSET3 },
243: { SCM_VM_LSET4, EMIT, SCM_VM_LSET4 },
244: { SCM_VM_GSET, EMIT, SCM_VM_GSET },
245: { SCM_VM_LREF, NEXT, 218 },
246: { SCM_VM_LREF0, NEXT, 211 },
247: { SCM_VM_LREF1, NEXT, 209 },
248: { SCM_VM_LREF2, NEXT, 207 },
249: { SCM_VM_LREF3, NEXT, 205 },
250: { SCM_VM_LREF10, NEXT, 203 },
251: { SCM_VM_LREF11, NEXT, 201 },
252: { SCM_VM_LREF12, NEXT, 199 },
253: { SCM_VM_LREF20, NEXT, 197 },
254: { SCM_VM_LREF21, NEXT, 195 },
255: { SCM_VM_LREF30, NEXT, 193 },
256: { SCM_VM_LREF4, EMIT, SCM_VM_LREF4 },
257: { SCM_VM_LREF13, EMIT, SCM_VM_LREF13 },
258: { SCM_VM_LREF14, EMIT, SCM_VM_LREF14 },
259: { SCM_VM_LREF_PUSH, EMIT, SCM_VM_LREF_PUSH },
260: { SCM_VM_LREF0_PUSH, EMIT, SCM_VM_LREF0_PUSH },
261: { SCM_VM_LREF1_PUSH, EMIT, SCM_VM_LREF1_PUSH },
262: { SCM_VM_LREF2_PUSH, EMIT, SCM_VM_LREF2_PUSH },
263: { SCM_VM_LREF3_PUSH, EMIT, SCM_VM_LREF3_PUSH },
264: { SCM_VM_LREF10_PUSH, EMIT, SCM_VM_LREF10_PUSH },
265: { SCM_VM_LREF11_PUSH, EMIT, SCM_VM_LREF11_PUSH },
266: { SCM_VM_LREF12_PUSH, EMIT, SCM_VM_LREF12_PUSH },
267: { SCM_VM_LREF20_PUSH, EMIT, SCM_VM_LREF20_PUSH },
268: { SCM_VM_LREF21_PUSH, EMIT, SCM_VM_LREF21_PUSH },
269: { SCM_VM_LREF30_PUSH, EMIT, SCM_VM_LREF30_PUSH },
270: { SCM_VM_LREF4_PUSH, EMIT, SCM_VM_LREF4_PUSH },
271: { SCM_VM_LREF13_PUSH, EMIT, SCM_VM_LREF13_PUSH },
272: { SCM_VM_LREF14_PUSH, EMIT, SCM_VM_LREF14_PUSH },
273: { SCM_VM_GREF, NEXT, 189 },
274: { SCM_VM_GREF_PUSH, EMIT, SCM_VM_GREF_PUSH },
275: { SCM_VM_GREF_CALL, EMIT, SCM_VM_GREF_CALL },
276: { SCM_VM_GREF_TAIL_CALL, EMIT, SCM_VM_GREF_TAIL_CALL },
277: { SCM_VM_PUSH_GREF, EMIT, SCM_VM_PUSH_GREF },
278: { SCM_VM_PUSH_GREF_CALL, EMIT, SCM_VM_PUSH_GREF_CALL },
279: { SCM_VM_PUSH_GREF_TAIL_CALL, EMIT, SCM_VM_PUSH_GREF_TAIL_CALL },
280: { SCM_VM_LREF0_PUSH_GREF, EMIT, SCM_VM_LREF0_PUSH_GREF },
281: { SCM_VM_LREF0_PUSH_GREF_CALL, EMIT, SCM_VM_LREF0_PUSH_GREF_CALL },
282: { SCM_VM_LREF0_PUSH_GREF_TAIL_CALL, EMIT, SCM_VM_LREF0_PUSH_GREF_TAIL_CALL },
283: { SCM_VM_PROMISE, EMIT, SCM_VM_PROMISE },
284: { SCM_VM_CONST_APPLY, EMIT, SCM_VM_CONST_APPLY },
285: { SCM_VM_CONS, NEXT, 187 },
286: { SCM_VM_CONS_PUSH, EMIT, SCM_VM_CONS_PUSH },
287: { SCM_VM_CAR, NEXT, 185 },
288: { SCM_VM_CAR_PUSH, EMIT, SCM_VM_CAR_PUSH },
289: { SCM_VM_CDR, NEXT, 183 },
290: { SCM_VM_CDR_PUSH, EMIT, SCM_VM_CDR_PUSH },
291: { SCM_VM_CAAR, NEXT, 181 },
292: { SCM_VM_CAAR_PUSH, EMIT, SCM_VM_CAAR_PUSH },
293: { SCM_VM_CADR, NEXT, 179 },
294: { SCM_VM_CADR_PUSH, EMIT, SCM_VM_CADR_PUSH },
295: { SCM_VM_CDAR, NEXT, 177 },
296: { SCM_VM_CDAR_PUSH, EMIT, SCM_VM_CDAR_PUSH },
297: { SCM_VM_CDDR, NEXT, 175 },
298: { SCM_VM_CDDR_PUSH, EMIT, SCM_VM_CDDR_PUSH },
299: { SCM_VM_LIST, EMIT, SCM_VM_LIST },
300: { SCM_VM_LIST_STAR, EMIT, SCM_VM_LIST_STAR },
301: { SCM_VM_LENGTH, EMIT, SCM_VM_LENGTH },
302: { SCM_VM_MEMQ, EMIT, SCM_VM_MEMQ },
303: { SCM_VM_MEMV, EMIT, SCM_VM_MEMV },
304: { SCM_VM_ASSQ, EMIT, SCM_VM_ASSQ },
305: { SCM_VM_ASSV, EMIT, SCM_VM_ASSV },
306: { SCM_VM_EQ, EMIT, SCM_VM_EQ },
307: { SCM_VM_EQV, EMIT, SCM_VM_EQV },
308: { SCM_VM_APPEND, EMIT, SCM_VM_APPEND },
309: { SCM_VM_NOT, EMIT, SCM_VM_NOT },
310: { SCM_VM_REVERSE, EMIT, SCM_VM_REVERSE },
311: { SCM_VM_APPLY, EMIT, SCM_VM_APPLY },
312: { SCM_VM_TAIL_APPLY, EMIT, SCM_VM_TAIL_APPLY },
313: { SCM_VM_IS_A, EMIT, SCM_VM_IS_A },
314: { SCM_VM_NULLP, EMIT, SCM_VM_NULLP },
315: { SCM_VM_PAIRP, EMIT, SCM_VM_PAIRP },
316: { SCM_VM_CHARP, EMIT, SCM_VM_CHARP },
317: { SCM_VM_EOFP, EMIT, SCM_VM_EOFP },
318: { SCM_VM_STRINGP, EMIT, SCM_VM_STRINGP },
319: { SCM_VM_SYMBOLP, EMIT, SCM_VM_SYMBOLP },
320: { SCM_VM_VECTORP, EMIT, SCM_VM_VECTORP },
321: { SCM_VM_IDENTIFIERP, EMIT, SCM_VM_IDENTIFIERP },
322: { SCM_VM_SETTER, EMIT, SCM_VM_SETTER },
323: { SCM_VM_VALUES, EMIT, SCM_VM_VALUES },
324: { SCM_VM_VEC, EMIT, SCM_VM_VEC },
325: { SCM_VM_LIST2VEC, EMIT, SCM_VM_LIST2VEC },
326: { SCM_VM_APP_VEC, EMIT, SCM_VM_APP_VEC },
327: { SCM_VM_VEC_LEN, EMIT, SCM_VM_VEC_LEN },
328: { SCM_VM_VEC_REF, EMIT, SCM_VM_VEC_REF },
329: { SCM_VM_VEC_SET, EMIT, SCM_VM_VEC_SET },
330: { SCM_VM_VEC_REFI, EMIT, SCM_VM_VEC_REFI },
331: { SCM_VM_VEC_SETI, EMIT, SCM_VM_VEC_SETI },
332: { SCM_VM_NUMEQ2, EMIT, SCM_VM_NUMEQ2 },
333: { SCM_VM_NUMLT2, EMIT, SCM_VM_NUMLT2 },
334: { SCM_VM_NUMLE2, EMIT, SCM_VM_NUMLE2 },
335: { SCM_VM_NUMGT2, EMIT, SCM_VM_NUMGT2 },
336: { SCM_VM_NUMGE2, EMIT, SCM_VM_NUMGE2 },
337: { SCM_VM_NUMADD2, EMIT, SCM_VM_NUMADD2 },
338: { SCM_VM_NUMSUB2, EMIT, SCM_VM_NUMSUB2 },
339: { SCM_VM_NUMMUL2, EMIT, SCM_VM_NUMMUL2 },
340: { SCM_VM_NUMDIV2, EMIT, SCM_VM_NUMDIV2 },
341: { SCM_VM_NEGATE, EMIT, SCM_VM_NEGATE },
342: { SCM_VM_NUMIADD2, EMIT, SCM_VM_NUMIADD2 },
343: { SCM_VM_NUMISUB2, EMIT, SCM_VM_NUMISUB2 },
344: { SCM_VM_NUMIMUL2, EMIT, SCM_VM_NUMIMUL2 },
345: { SCM_VM_NUMIDIV2, EMIT, SCM_VM_NUMIDIV2 },
346: { SCM_VM_NUMADDI, EMIT, SCM_VM_NUMADDI },
347: { SCM_VM_NUMSUBI, EMIT, SCM_VM_NUMSUBI },
348: { SCM_VM_READ_CHAR, EMIT, SCM_VM_READ_CHAR },
349: { SCM_VM_PEEK_CHAR, EMIT, SCM_VM_PEEK_CHAR },
350: { SCM_VM_WRITE_CHAR, EMIT, SCM_VM_WRITE_CHAR },
351: { SCM_VM_CURIN, EMIT, SCM_VM_CURIN },
352: { SCM_VM_CUROUT, EMIT, SCM_VM_CUROUT },
353: { SCM_VM_CURERR, EMIT, SCM_VM_CURERR },
354: { SCM_VM_SLOT_REF, EMIT, SCM_VM_SLOT_REF },
355: { SCM_VM_SLOT_SET, EMIT, SCM_VM_SLOT_SET },
356: { SCM_VM_SLOT_REFC, EMIT, SCM_VM_SLOT_REFC },
357: { SCM_VM_SLOT_SETC, EMIT, SCM_VM_SLOT_SETC },
358: { SCM_VM_RECEIVE_ALL, EMIT, SCM_VM_RECEIVE_ALL },
359: { SCM_VM_TAIL_RECEIVE_ALL, EMIT, SCM_VM_TAIL_RECEIVE_ALL },
360: { SCM_VM_VALUES_N, EMIT, SCM_VM_VALUES_N },
361: { SCM_VM_PUSH_HANDLERS, EMIT, SCM_VM_PUSH_HANDLERS },
362: { SCM_VM_POP_HANDLERS, EMIT, SCM_VM_POP_HANDLERS },
363:
364: { SCM_VM_PUSH, EMIT, SCM_VM_CDDR_PUSH },
365: { -1, KEEP, SCM_VM_CDDR },
366:
367: { SCM_VM_PUSH, EMIT, SCM_VM_CDAR_PUSH },
368: { -1, KEEP, SCM_VM_CDAR },
369:
370: { SCM_VM_PUSH, EMIT, SCM_VM_CADR_PUSH },
371: { -1, KEEP, SCM_VM_CADR },
372:
373: { SCM_VM_PUSH, EMIT, SCM_VM_CAAR_PUSH },
374: { -1, KEEP, SCM_VM_CAAR },
375:
376: { SCM_VM_PUSH, EMIT, SCM_VM_CDR_PUSH },
377: { -1, KEEP, SCM_VM_CDR },
378:
379: { SCM_VM_PUSH, EMIT, SCM_VM_CAR_PUSH },
380: { -1, KEEP, SCM_VM_CAR },
381:
382: { SCM_VM_PUSH, EMIT, SCM_VM_CONS_PUSH },
383: { -1, KEEP, SCM_VM_CONS },
384:
385: { SCM_VM_PUSH, EMIT, SCM_VM_GREF_PUSH },
386: { SCM_VM_CALL, EMIT, SCM_VM_GREF_CALL },
387: { SCM_VM_TAIL_CALL, EMIT, SCM_VM_GREF_TAIL_CALL },
388: { -1, KEEP, SCM_VM_GREF },
389:
390: { SCM_VM_PUSH, EMIT, SCM_VM_LREF30_PUSH },
391: { -1, KEEP, SCM_VM_LREF30 },
392:
393: { SCM_VM_PUSH, EMIT, SCM_VM_LREF21_PUSH },
394: { -1, KEEP, SCM_VM_LREF21 },
395:
396: { SCM_VM_PUSH, EMIT, SCM_VM_LREF20_PUSH },
397: { -1, KEEP, SCM_VM_LREF20 },
398:
399: { SCM_VM_PUSH, EMIT, SCM_VM_LREF12_PUSH },
400: { -1, KEEP, SCM_VM_LREF12 },
401:
402: { SCM_VM_PUSH, EMIT, SCM_VM_LREF11_PUSH },
403: { -1, KEEP, SCM_VM_LREF11 },
404:
405: { SCM_VM_PUSH, EMIT, SCM_VM_LREF10_PUSH },
406: { -1, KEEP, SCM_VM_LREF10 },
407:
408: { SCM_VM_PUSH, EMIT, SCM_VM_LREF3_PUSH },
409: { -1, KEEP, SCM_VM_LREF3 },
410:
411: { SCM_VM_PUSH, EMIT, SCM_VM_LREF2_PUSH },
412: { -1, KEEP, SCM_VM_LREF2 },
413:
414: { SCM_VM_PUSH, EMIT, SCM_VM_LREF1_PUSH },
415: { -1, KEEP, SCM_VM_LREF1 },
416:
417: { SCM_VM_PUSH, NEXT, 213 },
418: { -1, KEEP, SCM_VM_LREF0 },
419:
420: { SCM_VM_GREF, NEXT, 215 },
421: { -1, KEEP, SCM_VM_LREF0_PUSH },
422:
423: { SCM_VM_CALL, EMIT, SCM_VM_LREF0_PUSH_GREF_CALL },
424: { SCM_VM_TAIL_CALL, EMIT, SCM_VM_LREF0_PUSH_GREF_TAIL_CALL },
425: { -1, KEEP, SCM_VM_LREF0_PUSH_GREF },
426:
427: { SCM_VM_PUSH, EMIT, SCM_VM_LREF_PUSH },
428: { -1, KEEP, SCM_VM_LREF },
429:
430: { SCM_VM_PRE_CALL, EMIT, SCM_VM_PUSH_PRE_CALL },
431: { SCM_VM_LOCAL_ENV, EMIT, SCM_VM_PUSH_LOCAL_ENV },
432: { SCM_VM_GREF, NEXT, 224 },
433: { -1, KEEP, SCM_VM_PUSH },
434:
435: { SCM_VM_CALL, EMIT, SCM_VM_PUSH_GREF_CALL },
436: { SCM_VM_TAIL_CALL, EMIT, SCM_VM_PUSH_GREF_TAIL_CALL },
437: { -1, KEEP, SCM_VM_PUSH_GREF },