uses compiler.h now instead of doing everything itself
[swftools.git] / lib / as3 / opcodes.h
1 #ifndef __opcodes_h__
2 #define __opcodes_h__
3 #include "abc.h"
4 #include "pool.h"
5 #include "code.h"
6 code_t* abc_add(code_t*prev);
7 #define add(method) (method->code = abc_add(method->code))
8 #define OPCODE_ADD 0xa0
9 code_t* abc_add_i(code_t*prev);
10 #define add_i(method) (method->code = abc_add_i(method->code))
11 #define OPCODE_ADD_I 0xc5
12 code_t* abc_astype(code_t*prev, char* name);
13 #define astype(method,name) (method->code = abc_astype(method->code,name))
14 #define OPCODE_ASTYPE 0x86
15 code_t* abc_astype2(code_t*prev, multiname_t* name);
16 #define astype2(method,name) (method->code = abc_astype2(method->code,name))
17 #define OPCODE_ASTYPE2 0x86
18 code_t* abc_astypelate(code_t*prev);
19 #define astypelate(method) (method->code = abc_astypelate(method->code))
20 #define OPCODE_ASTYPELATE 0x87
21 code_t* abc_bitand(code_t*prev);
22 #define bitand(method) (method->code = abc_bitand(method->code))
23 #define OPCODE_BITAND 0xA8
24 code_t* abc_bitnot(code_t*prev);
25 #define bitnot(method) (method->code = abc_bitnot(method->code))
26 #define OPCODE_BITNOT 0x97
27 code_t* abc_bitor(code_t*prev);
28 #define bitor(method) (method->code = abc_bitor(method->code))
29 #define OPCODE_BITOR 0xa9
30 code_t* abc_bitxor(code_t*prev);
31 #define bitxor(method) (method->code = abc_bitxor(method->code))
32 #define OPCODE_BITXOR 0xaa
33 code_t* abc_call(code_t*prev, int v);
34 #define call(method,v) (method->code = abc_call(method->code,v))
35 #define OPCODE_CALL 0x41
36 code_t* abc_callmethod(code_t*prev, abc_method_t* m, int v);
37 #define callmethod(method,m,v) (method->code = abc_callmethod(method->code,m,v))
38 #define OPCODE_CALLMETHOD 0x43
39 code_t* abc_callproplex(code_t*prev, char* name, int v);
40 #define callproplex(method,name,v) (method->code = abc_callproplex(method->code,name,v))
41 #define OPCODE_CALLPROPLEX 0x4c
42 code_t* abc_callproplex2(code_t*prev, multiname_t* name, int v);
43 #define callproplex2(method,name,v) (method->code = abc_callproplex2(method->code,name,v))
44 #define OPCODE_CALLPROPLEX2 0x4c
45 code_t* abc_callproperty(code_t*prev, char* name, int v);
46 #define callproperty(method,name,v) (method->code = abc_callproperty(method->code,name,v))
47 #define OPCODE_CALLPROPERTY 0x46
48 code_t* abc_callproperty2(code_t*prev, multiname_t* name, int v);
49 #define callproperty2(method,name,v) (method->code = abc_callproperty2(method->code,name,v))
50 #define OPCODE_CALLPROPERTY2 0x46
51 code_t* abc_callpropvoid(code_t*prev, char* name, int v);
52 #define callpropvoid(method,name,v) (method->code = abc_callpropvoid(method->code,name,v))
53 #define OPCODE_CALLPROPVOID 0x4f
54 code_t* abc_callpropvoid2(code_t*prev, multiname_t* name, int v);
55 #define callpropvoid2(method,name,v) (method->code = abc_callpropvoid2(method->code,name,v))
56 #define OPCODE_CALLPROPVOID2 0x4f
57 code_t* abc_callstatic(code_t*prev, abc_method_body_t* m, int v);
58 #define callstatic(method,m,v) (method->code = abc_callstatic(method->code,m,v))
59 #define OPCODE_CALLSTATIC 0x44
60 code_t* abc_callsuper(code_t*prev, char* name, int v);
61 #define callsuper(method,name,v) (method->code = abc_callsuper(method->code,name,v))
62 #define OPCODE_CALLSUPER 0x45
63 code_t* abc_callsuper2(code_t*prev, multiname_t* name, int v);
64 #define callsuper2(method,name,v) (method->code = abc_callsuper2(method->code,name,v))
65 #define OPCODE_CALLSUPER2 0x45
66 code_t* abc_callsupervoid(code_t*prev, char* name, int v);
67 #define callsupervoid(method,name,v) (method->code = abc_callsupervoid(method->code,name,v))
68 #define OPCODE_CALLSUPERVOID 0x4e
69 code_t* abc_callsupervoid2(code_t*prev, multiname_t* name, int v);
70 #define callsupervoid2(method,name,v) (method->code = abc_callsupervoid2(method->code,name,v))
71 #define OPCODE_CALLSUPERVOID2 0x4e
72 code_t* abc_checkfilter(code_t*prev);
73 #define checkfilter(method) (method->code = abc_checkfilter(method->code))
74 #define OPCODE_CHECKFILTER 0x78
75 code_t* abc_coerce(code_t*prev, char* name);
76 #define coerce(method,name) (method->code = abc_coerce(method->code,name))
77 #define OPCODE_COERCE 0x80
78 code_t* abc_coerce2(code_t*prev, multiname_t* name);
79 #define coerce2(method,name) (method->code = abc_coerce2(method->code,name))
80 #define OPCODE_COERCE2 0x80
81 code_t* abc_coerce_a(code_t*prev);
82 #define coerce_a(method) (method->code = abc_coerce_a(method->code))
83 #define OPCODE_COERCE_A 0x82
84 code_t* abc_coerce_s(code_t*prev);
85 #define coerce_s(method) (method->code = abc_coerce_s(method->code))
86 #define OPCODE_COERCE_S 0x85
87 code_t* abc_construct(code_t*prev, int v);
88 #define construct(method,v) (method->code = abc_construct(method->code,v))
89 #define OPCODE_CONSTRUCT 0x42
90 code_t* abc_constructprop(code_t*prev, char* name, int v);
91 #define constructprop(method,name,v) (method->code = abc_constructprop(method->code,name,v))
92 #define OPCODE_CONSTRUCTPROP 0x4a
93 code_t* abc_constructprop2(code_t*prev, multiname_t* name, int v);
94 #define constructprop2(method,name,v) (method->code = abc_constructprop2(method->code,name,v))
95 #define OPCODE_CONSTRUCTPROP2 0x4a
96 code_t* abc_constructsuper(code_t*prev, int v);
97 #define constructsuper(method,v) (method->code = abc_constructsuper(method->code,v))
98 #define OPCODE_CONSTRUCTSUPER 0x49
99 code_t* abc_convert_b(code_t*prev);
100 #define convert_b(method) (method->code = abc_convert_b(method->code))
101 #define OPCODE_CONVERT_B 0x76
102 code_t* abc_convert_i(code_t*prev);
103 #define convert_i(method) (method->code = abc_convert_i(method->code))
104 #define OPCODE_CONVERT_I 0x73
105 code_t* abc_convert_d(code_t*prev);
106 #define convert_d(method) (method->code = abc_convert_d(method->code))
107 #define OPCODE_CONVERT_D 0x75
108 code_t* abc_convert_o(code_t*prev);
109 #define convert_o(method) (method->code = abc_convert_o(method->code))
110 #define OPCODE_CONVERT_O 0x77
111 code_t* abc_convert_u(code_t*prev);
112 #define convert_u(method) (method->code = abc_convert_u(method->code))
113 #define OPCODE_CONVERT_U 0x74
114 code_t* abc_convert_s(code_t*prev);
115 #define convert_s(method) (method->code = abc_convert_s(method->code))
116 #define OPCODE_CONVERT_S 0x70
117 code_t* abc_debug(code_t*prev, void* debuginfo);
118 #define debug(method,debuginfo) (method->code = abc_debug(method->code,debuginfo))
119 #define OPCODE_DEBUG 0xef
120 code_t* abc_debugfile(code_t*prev, char* name);
121 #define debugfile(method,name) (method->code = abc_debugfile(method->code,name))
122 #define OPCODE_DEBUGFILE 0xf1
123 code_t* abc_debugfile2(code_t*prev, string_t* s);
124 #define debugfile2(method,s) (method->code = abc_debugfile2(method->code,s))
125 #define OPCODE_DEBUGFILE2 0xf1
126 code_t* abc_debugline(code_t*prev, int v);
127 #define debugline(method,v) (method->code = abc_debugline(method->code,v))
128 #define OPCODE_DEBUGLINE 0xf0
129 code_t* abc_declocal(code_t*prev, int reg);
130 #define declocal(method,reg) (method->code = abc_declocal(method->code,reg))
131 #define OPCODE_DECLOCAL 0x94
132 code_t* abc_declocal_i(code_t*prev, int reg);
133 #define declocal_i(method,reg) (method->code = abc_declocal_i(method->code,reg))
134 #define OPCODE_DECLOCAL_I 0xc3
135 code_t* abc_decrement(code_t*prev);
136 #define decrement(method) (method->code = abc_decrement(method->code))
137 #define OPCODE_DECREMENT 0x93
138 code_t* abc_decrement_i(code_t*prev);
139 #define decrement_i(method) (method->code = abc_decrement_i(method->code))
140 #define OPCODE_DECREMENT_I 0xc1
141 code_t* abc_deleteproperty(code_t*prev, char* name);
142 #define deleteproperty(method,name) (method->code = abc_deleteproperty(method->code,name))
143 #define OPCODE_DELETEPROPERTY 0x6a
144 code_t* abc_deleteproperty2(code_t*prev, multiname_t* name);
145 #define deleteproperty2(method,name) (method->code = abc_deleteproperty2(method->code,name))
146 #define OPCODE_DELETEPROPERTY2 0x6a
147 code_t* abc_divide(code_t*prev);
148 #define divide(method) (method->code = abc_divide(method->code))
149 #define OPCODE_DIVIDE 0xa3
150 code_t* abc_dup(code_t*prev);
151 #define dup(method) (method->code = abc_dup(method->code))
152 #define OPCODE_DUP 0x2a
153 code_t* abc_dxns(code_t*prev, char* name);
154 #define dxns(method,name) (method->code = abc_dxns(method->code,name))
155 #define OPCODE_DXNS 0x06
156 code_t* abc_dxns2(code_t*prev, string_t* s);
157 #define dxns2(method,s) (method->code = abc_dxns2(method->code,s))
158 #define OPCODE_DXNS2 0x06
159 code_t* abc_dxnslate(code_t*prev);
160 #define dxnslate(method) (method->code = abc_dxnslate(method->code))
161 #define OPCODE_DXNSLATE 0x07
162 code_t* abc_equals(code_t*prev);
163 #define equals(method) (method->code = abc_equals(method->code))
164 #define OPCODE_EQUALS 0xab
165 code_t* abc_esc_xattr(code_t*prev);
166 #define esc_xattr(method) (method->code = abc_esc_xattr(method->code))
167 #define OPCODE_ESC_XATTR 0x72
168 code_t* abc_esc_xelem(code_t*prev);
169 #define esc_xelem(method) (method->code = abc_esc_xelem(method->code))
170 #define OPCODE_ESC_XELEM 0x71
171 code_t* abc_findproperty(code_t*prev, char* name);
172 #define findproperty(method,name) (method->code = abc_findproperty(method->code,name))
173 #define OPCODE_FINDPROPERTY 0x5e
174 code_t* abc_findproperty2(code_t*prev, multiname_t* name);
175 #define findproperty2(method,name) (method->code = abc_findproperty2(method->code,name))
176 #define OPCODE_FINDPROPERTY2 0x5e
177 code_t* abc_findpropstrict(code_t*prev, char* name);
178 #define findpropstrict(method,name) (method->code = abc_findpropstrict(method->code,name))
179 #define OPCODE_FINDPROPSTRICT 0x5d
180 code_t* abc_findpropstrict2(code_t*prev, multiname_t* name);
181 #define findpropstrict2(method,name) (method->code = abc_findpropstrict2(method->code,name))
182 #define OPCODE_FINDPROPSTRICT2 0x5d
183 code_t* abc_getdescendants(code_t*prev, char* name);
184 #define getdescendants(method,name) (method->code = abc_getdescendants(method->code,name))
185 #define OPCODE_GETDESCENDANTS 0x59
186 code_t* abc_getdescendants2(code_t*prev, multiname_t* name);
187 #define getdescendants2(method,name) (method->code = abc_getdescendants2(method->code,name))
188 #define OPCODE_GETDESCENDANTS2 0x59
189 code_t* abc_getglobalscope(code_t*prev);
190 #define getglobalscope(method) (method->code = abc_getglobalscope(method->code))
191 #define OPCODE_GETGLOBALSCOPE 0x64
192 code_t* abc_getglobalslot(code_t*prev, int v);
193 #define getglobalslot(method,v) (method->code = abc_getglobalslot(method->code,v))
194 #define OPCODE_GETGLOBALSLOT 0x6e
195 code_t* abc_getlex(code_t*prev, char* name);
196 #define getlex(method,name) (method->code = abc_getlex(method->code,name))
197 #define OPCODE_GETLEX 0x60
198 code_t* abc_getlex2(code_t*prev, multiname_t* name);
199 #define getlex2(method,name) (method->code = abc_getlex2(method->code,name))
200 #define OPCODE_GETLEX2 0x60
201 code_t* abc_getlocal(code_t*prev, int reg);
202 #define getlocal(method,reg) (method->code = abc_getlocal(method->code,reg))
203 #define OPCODE_GETLOCAL 0x62
204 code_t* abc_getlocal_0(code_t*prev);
205 #define getlocal_0(method) (method->code = abc_getlocal_0(method->code))
206 #define OPCODE_GETLOCAL_0 0xd0
207 code_t* abc_getlocal_1(code_t*prev);
208 #define getlocal_1(method) (method->code = abc_getlocal_1(method->code))
209 #define OPCODE_GETLOCAL_1 0xd1
210 code_t* abc_getlocal_2(code_t*prev);
211 #define getlocal_2(method) (method->code = abc_getlocal_2(method->code))
212 #define OPCODE_GETLOCAL_2 0xd2
213 code_t* abc_getlocal_3(code_t*prev);
214 #define getlocal_3(method) (method->code = abc_getlocal_3(method->code))
215 #define OPCODE_GETLOCAL_3 0xd3
216 code_t* abc_getproperty(code_t*prev, char* name);
217 #define getproperty(method,name) (method->code = abc_getproperty(method->code,name))
218 #define OPCODE_GETPROPERTY 0x66
219 code_t* abc_getproperty2(code_t*prev, multiname_t* name);
220 #define getproperty2(method,name) (method->code = abc_getproperty2(method->code,name))
221 #define OPCODE_GETPROPERTY2 0x66
222 code_t* abc_getscopeobject(code_t*prev, int v);
223 #define getscopeobject(method,v) (method->code = abc_getscopeobject(method->code,v))
224 #define OPCODE_GETSCOPEOBJECT 0x65
225 code_t* abc_getslot(code_t*prev, int v);
226 #define getslot(method,v) (method->code = abc_getslot(method->code,v))
227 #define OPCODE_GETSLOT 0x6c
228 code_t* abc_getsuper(code_t*prev, char* name);
229 #define getsuper(method,name) (method->code = abc_getsuper(method->code,name))
230 #define OPCODE_GETSUPER 0x04
231 code_t* abc_getsuper2(code_t*prev, multiname_t* name);
232 #define getsuper2(method,name) (method->code = abc_getsuper2(method->code,name))
233 #define OPCODE_GETSUPER2 0x04
234 code_t* abc_greaterthan(code_t*prev);
235 #define greaterthan(method) (method->code = abc_greaterthan(method->code))
236 #define OPCODE_GREATERTHAN 0xaf
237 code_t* abc_greaterequals(code_t*prev);
238 #define greaterequals(method) (method->code = abc_greaterequals(method->code))
239 #define OPCODE_GREATEREQUALS 0xb0
240 code_t* abc_hasnext(code_t*prev);
241 #define hasnext(method) (method->code = abc_hasnext(method->code))
242 #define OPCODE_HASNEXT 0x1f
243 code_t* abc_hasnext2(code_t*prev, int reg, int reg2);
244 #define hasnext2(method,reg,reg2) (method->code = abc_hasnext2(method->code,reg,reg2))
245 #define OPCODE_HASNEXT2 0x32
246 code_t* abc_ifeq(code_t*prev, code_t* label);
247 #define ifeq(method,label) (method->code = abc_ifeq(method->code,label))
248 #define OPCODE_IFEQ 0x13
249 code_t* abc_iffalse(code_t*prev, code_t* label);
250 #define iffalse(method,label) (method->code = abc_iffalse(method->code,label))
251 #define OPCODE_IFFALSE 0x12
252 code_t* abc_ifge(code_t*prev, code_t* label);
253 #define ifge(method,label) (method->code = abc_ifge(method->code,label))
254 #define OPCODE_IFGE 0x18
255 code_t* abc_ifgt(code_t*prev, code_t* label);
256 #define ifgt(method,label) (method->code = abc_ifgt(method->code,label))
257 #define OPCODE_IFGT 0x17
258 code_t* abc_ifle(code_t*prev, code_t* label);
259 #define ifle(method,label) (method->code = abc_ifle(method->code,label))
260 #define OPCODE_IFLE 0x16
261 code_t* abc_iflt(code_t*prev, code_t* label);
262 #define iflt(method,label) (method->code = abc_iflt(method->code,label))
263 #define OPCODE_IFLT 0x15
264 code_t* abc_ifnge(code_t*prev, code_t* label);
265 #define ifnge(method,label) (method->code = abc_ifnge(method->code,label))
266 #define OPCODE_IFNGE 0x0f
267 code_t* abc_ifngt(code_t*prev, code_t* label);
268 #define ifngt(method,label) (method->code = abc_ifngt(method->code,label))
269 #define OPCODE_IFNGT 0x0e
270 code_t* abc_ifnle(code_t*prev, code_t* label);
271 #define ifnle(method,label) (method->code = abc_ifnle(method->code,label))
272 #define OPCODE_IFNLE 0x0d
273 code_t* abc_ifnlt(code_t*prev, code_t* label);
274 #define ifnlt(method,label) (method->code = abc_ifnlt(method->code,label))
275 #define OPCODE_IFNLT 0x0c
276 code_t* abc_ifne(code_t*prev, code_t* label);
277 #define ifne(method,label) (method->code = abc_ifne(method->code,label))
278 #define OPCODE_IFNE 0x14
279 code_t* abc_ifstricteq(code_t*prev, code_t* label);
280 #define ifstricteq(method,label) (method->code = abc_ifstricteq(method->code,label))
281 #define OPCODE_IFSTRICTEQ 0x19
282 code_t* abc_ifstrictne(code_t*prev, code_t* label);
283 #define ifstrictne(method,label) (method->code = abc_ifstrictne(method->code,label))
284 #define OPCODE_IFSTRICTNE 0x1a
285 code_t* abc_iftrue(code_t*prev, code_t* label);
286 #define iftrue(method,label) (method->code = abc_iftrue(method->code,label))
287 #define OPCODE_IFTRUE 0x11
288 code_t* abc_in(code_t*prev);
289 #define in(method) (method->code = abc_in(method->code))
290 #define OPCODE_IN 0xb4
291 code_t* abc_inclocal(code_t*prev, int reg);
292 #define inclocal(method,reg) (method->code = abc_inclocal(method->code,reg))
293 #define OPCODE_INCLOCAL 0x92
294 code_t* abc_inclocal_i(code_t*prev, int reg);
295 #define inclocal_i(method,reg) (method->code = abc_inclocal_i(method->code,reg))
296 #define OPCODE_INCLOCAL_I 0xc2
297 code_t* abc_increment(code_t*prev);
298 #define increment(method) (method->code = abc_increment(method->code))
299 #define OPCODE_INCREMENT 0x91
300 code_t* abc_increment_i(code_t*prev);
301 #define increment_i(method) (method->code = abc_increment_i(method->code))
302 #define OPCODE_INCREMENT_I 0xc0
303 code_t* abc_initproperty(code_t*prev, char* name);
304 #define initproperty(method,name) (method->code = abc_initproperty(method->code,name))
305 #define OPCODE_INITPROPERTY 0x68
306 code_t* abc_initproperty2(code_t*prev, multiname_t* name);
307 #define initproperty2(method,name) (method->code = abc_initproperty2(method->code,name))
308 #define OPCODE_INITPROPERTY2 0x68
309 code_t* abc_instanceof(code_t*prev);
310 #define instanceof(method) (method->code = abc_instanceof(method->code))
311 #define OPCODE_INSTANCEOF 0xb1
312 code_t* abc_istype(code_t*prev, char* name);
313 #define istype(method,name) (method->code = abc_istype(method->code,name))
314 #define OPCODE_ISTYPE 0xb2
315 code_t* abc_istype2(code_t*prev, multiname_t* name);
316 #define istype2(method,name) (method->code = abc_istype2(method->code,name))
317 #define OPCODE_ISTYPE2 0xb2
318 code_t* abc_istypelate(code_t*prev);
319 #define istypelate(method) (method->code = abc_istypelate(method->code))
320 #define OPCODE_ISTYPELATE 0xb3
321 code_t* abc_jump(code_t*prev, code_t* label);
322 #define jump(method,label) (method->code = abc_jump(method->code,label))
323 #define OPCODE_JUMP 0x10
324 code_t* abc_kill(code_t*prev, int reg);
325 #define kill(method,reg) (method->code = abc_kill(method->code,reg))
326 #define OPCODE_KILL 0x08
327 code_t* abc_label(code_t*prev);
328 #define label(method) (method->code = abc_label(method->code))
329 #define OPCODE_LABEL 0x09
330 code_t* abc_lessequals(code_t*prev);
331 #define lessequals(method) (method->code = abc_lessequals(method->code))
332 #define OPCODE_LESSEQUALS 0xae
333 code_t* abc_lessthan(code_t*prev);
334 #define lessthan(method) (method->code = abc_lessthan(method->code))
335 #define OPCODE_LESSTHAN 0xad
336 code_t* abc_lookupswitch(code_t*prev, lookupswitch_t* l);
337 #define lookupswitch(method,l) (method->code = abc_lookupswitch(method->code,l))
338 #define OPCODE_LOOKUPSWITCH 0x1b
339 code_t* abc_lshift(code_t*prev);
340 #define lshift(method) (method->code = abc_lshift(method->code))
341 #define OPCODE_LSHIFT 0xa5
342 code_t* abc_modulo(code_t*prev);
343 #define modulo(method) (method->code = abc_modulo(method->code))
344 #define OPCODE_MODULO 0xa4
345 code_t* abc_multiply(code_t*prev);
346 #define multiply(method) (method->code = abc_multiply(method->code))
347 #define OPCODE_MULTIPLY 0xa2
348 code_t* abc_multiply_i(code_t*prev);
349 #define multiply_i(method) (method->code = abc_multiply_i(method->code))
350 #define OPCODE_MULTIPLY_I 0xc7
351 code_t* abc_negate(code_t*prev);
352 #define negate(method) (method->code = abc_negate(method->code))
353 #define OPCODE_NEGATE 0x90
354 code_t* abc_negate_i(code_t*prev);
355 #define negate_i(method) (method->code = abc_negate_i(method->code))
356 #define OPCODE_NEGATE_I 0xc4
357 code_t* abc_newactivation(code_t*prev);
358 #define newactivation(method) (method->code = abc_newactivation(method->code))
359 #define OPCODE_NEWACTIVATION 0x57
360 code_t* abc_newarray(code_t*prev, int v);
361 #define newarray(method,v) (method->code = abc_newarray(method->code,v))
362 #define OPCODE_NEWARRAY 0x56
363 code_t* abc_newcatch(code_t*prev, int v);
364 #define newcatch(method,v) (method->code = abc_newcatch(method->code,v))
365 #define OPCODE_NEWCATCH 0x5a
366 code_t* abc_newclass(code_t*prev, abc_class_t* m);
367 #define newclass(method,m) (method->code = abc_newclass(method->code,m))
368 #define OPCODE_NEWCLASS 0x58
369 code_t* abc_newfunction(code_t*prev, abc_method_t* m);
370 #define newfunction(method,m) (method->code = abc_newfunction(method->code,m))
371 #define OPCODE_NEWFUNCTION 0x40
372 code_t* abc_newobject(code_t*prev, int v);
373 #define newobject(method,v) (method->code = abc_newobject(method->code,v))
374 #define OPCODE_NEWOBJECT 0x55
375 code_t* abc_nextname(code_t*prev);
376 #define nextname(method) (method->code = abc_nextname(method->code))
377 #define OPCODE_NEXTNAME 0x1e
378 code_t* abc_nextvalue(code_t*prev);
379 #define nextvalue(method) (method->code = abc_nextvalue(method->code))
380 #define OPCODE_NEXTVALUE 0x23
381 code_t* abc_nop(code_t*prev);
382 #define nop(method) (method->code = abc_nop(method->code))
383 #define OPCODE_NOP 0x02
384 code_t* abc_not(code_t*prev);
385 #define not(method) (method->code = abc_not(method->code))
386 #define OPCODE_NOT 0x96
387 code_t* abc_pop(code_t*prev);
388 #define pop(method) (method->code = abc_pop(method->code))
389 #define OPCODE_POP 0x29
390 code_t* abc_popscope(code_t*prev);
391 #define popscope(method) (method->code = abc_popscope(method->code))
392 #define OPCODE_POPSCOPE 0x1d
393 code_t* abc_pushbyte(code_t*prev, int v);
394 #define pushbyte(method,v) (method->code = abc_pushbyte(method->code,v))
395 #define OPCODE_PUSHBYTE 0x24
396 code_t* abc_pushdouble(code_t*prev, double f);
397 #define pushdouble(method,f) (method->code = abc_pushdouble(method->code,f))
398 #define OPCODE_PUSHDOUBLE 0x2f
399 code_t* abc_pushfalse(code_t*prev);
400 #define pushfalse(method) (method->code = abc_pushfalse(method->code))
401 #define OPCODE_PUSHFALSE 0x27
402 code_t* abc_pushint(code_t*prev, int i);
403 #define pushint(method,i) (method->code = abc_pushint(method->code,i))
404 #define OPCODE_PUSHINT 0x2d
405 code_t* abc_pushnamespace(code_t*prev, int v);
406 #define pushnamespace(method,v) (method->code = abc_pushnamespace(method->code,v))
407 #define OPCODE_PUSHNAMESPACE 0x31
408 code_t* abc_pushnan(code_t*prev);
409 #define pushnan(method) (method->code = abc_pushnan(method->code))
410 #define OPCODE_PUSHNAN 0x28
411 code_t* abc_pushnull(code_t*prev);
412 #define pushnull(method) (method->code = abc_pushnull(method->code))
413 #define OPCODE_PUSHNULL 0x20
414 code_t* abc_pushscope(code_t*prev);
415 #define pushscope(method) (method->code = abc_pushscope(method->code))
416 #define OPCODE_PUSHSCOPE 0x30
417 code_t* abc_pushshort(code_t*prev, int v);
418 #define pushshort(method,v) (method->code = abc_pushshort(method->code,v))
419 #define OPCODE_PUSHSHORT 0x25
420 code_t* abc_pushstring(code_t*prev, char* name);
421 #define pushstring(method,name) (method->code = abc_pushstring(method->code,name))
422 #define OPCODE_PUSHSTRING 0x2c
423 code_t* abc_pushstring2(code_t*prev, string_t* s);
424 #define pushstring2(method,s) (method->code = abc_pushstring2(method->code,s))
425 #define OPCODE_PUSHSTRING2 0x2c
426 code_t* abc_pushtrue(code_t*prev);
427 #define pushtrue(method) (method->code = abc_pushtrue(method->code))
428 #define OPCODE_PUSHTRUE 0x26
429 code_t* abc_pushuint(code_t*prev, unsigned int u);
430 #define pushuint(method,u) (method->code = abc_pushuint(method->code,u))
431 #define OPCODE_PUSHUINT 0x2e
432 code_t* abc_pushundefined(code_t*prev);
433 #define pushundefined(method) (method->code = abc_pushundefined(method->code))
434 #define OPCODE_PUSHUNDEFINED 0x21
435 code_t* abc_pushwith(code_t*prev);
436 #define pushwith(method) (method->code = abc_pushwith(method->code))
437 #define OPCODE_PUSHWITH 0x1c
438 code_t* abc_returnvalue(code_t*prev);
439 #define returnvalue(method) (method->code = abc_returnvalue(method->code))
440 #define OPCODE_RETURNVALUE 0x48
441 code_t* abc_returnvoid(code_t*prev);
442 #define returnvoid(method) (method->code = abc_returnvoid(method->code))
443 #define OPCODE_RETURNVOID 0x47
444 code_t* abc_rshift(code_t*prev);
445 #define rshift(method) (method->code = abc_rshift(method->code))
446 #define OPCODE_RSHIFT 0xa6
447 code_t* abc_setlocal(code_t*prev, int reg);
448 #define setlocal(method,reg) (method->code = abc_setlocal(method->code,reg))
449 #define OPCODE_SETLOCAL 0x63
450 code_t* abc_setlocal_0(code_t*prev);
451 #define setlocal_0(method) (method->code = abc_setlocal_0(method->code))
452 #define OPCODE_SETLOCAL_0 0xd4
453 code_t* abc_setlocal_1(code_t*prev);
454 #define setlocal_1(method) (method->code = abc_setlocal_1(method->code))
455 #define OPCODE_SETLOCAL_1 0xd5
456 code_t* abc_setlocal_2(code_t*prev);
457 #define setlocal_2(method) (method->code = abc_setlocal_2(method->code))
458 #define OPCODE_SETLOCAL_2 0xd6
459 code_t* abc_setlocal_3(code_t*prev);
460 #define setlocal_3(method) (method->code = abc_setlocal_3(method->code))
461 #define OPCODE_SETLOCAL_3 0xd7
462 code_t* abc_setglobalslot(code_t*prev, int v);
463 #define setglobalslot(method,v) (method->code = abc_setglobalslot(method->code,v))
464 #define OPCODE_SETGLOBALSLOT 0x6f
465 code_t* abc_setproperty(code_t*prev, char* name);
466 #define setproperty(method,name) (method->code = abc_setproperty(method->code,name))
467 #define OPCODE_SETPROPERTY 0x61
468 code_t* abc_setproperty2(code_t*prev, multiname_t* name);
469 #define setproperty2(method,name) (method->code = abc_setproperty2(method->code,name))
470 #define OPCODE_SETPROPERTY2 0x61
471 code_t* abc_setslot(code_t*prev, int v);
472 #define setslot(method,v) (method->code = abc_setslot(method->code,v))
473 #define OPCODE_SETSLOT 0x6d
474 code_t* abc_setsuper(code_t*prev, char* name);
475 #define setsuper(method,name) (method->code = abc_setsuper(method->code,name))
476 #define OPCODE_SETSUPER 0x05
477 code_t* abc_setsuper2(code_t*prev, multiname_t* name);
478 #define setsuper2(method,name) (method->code = abc_setsuper2(method->code,name))
479 #define OPCODE_SETSUPER2 0x05
480 code_t* abc_strictequals(code_t*prev);
481 #define strictequals(method) (method->code = abc_strictequals(method->code))
482 #define OPCODE_STRICTEQUALS 0xac
483 code_t* abc_subtract(code_t*prev);
484 #define subtract(method) (method->code = abc_subtract(method->code))
485 #define OPCODE_SUBTRACT 0xa1
486 code_t* abc_subtract_i(code_t*prev);
487 #define subtract_i(method) (method->code = abc_subtract_i(method->code))
488 #define OPCODE_SUBTRACT_I 0xc6
489 code_t* abc_swap(code_t*prev);
490 #define swap(method) (method->code = abc_swap(method->code))
491 #define OPCODE_SWAP 0x2b
492 code_t* abc_throw(code_t*prev);
493 #define throw(method) (method->code = abc_throw(method->code))
494 #define OPCODE_THROW 0x03
495 code_t* abc_typeof(code_t*prev);
496 #define typeof(method) (method->code = abc_typeof(method->code))
497 #define OPCODE_TYPEOF 0x95
498 code_t* abc_urshift(code_t*prev);
499 #define urshift(method) (method->code = abc_urshift(method->code))
500 #define OPCODE_URSHIFT 0xa7
501 code_t* abc_applytype(code_t*prev, int v);
502 #define applytype(method,v) (method->code = abc_applytype(method->code,v))
503 #define OPCODE_APPLYTYPE 0x53
504 code_t* abc___rethrow__(code_t*prev);
505 #define __rethrow__(method) (method->code = abc___rethrow__(method->code))
506 #define OPCODE___RETHROW__ 0xfc
507 code_t* abc___fallthrough__(code_t*prev, char* name);
508 #define __fallthrough__(method,name) (method->code = abc___fallthrough__(method->code,name))
509 #define OPCODE___FALLTHROUGH__ 0xfd
510 code_t* abc___fallthrough__2(code_t*prev, string_t* s);
511 #define __fallthrough__2(method,s) (method->code = abc___fallthrough__2(method->code,s))
512 #define OPCODE___FALLTHROUGH__2 0xfd
513 code_t* abc___continue__(code_t*prev, char* name);
514 #define __continue__(method,name) (method->code = abc___continue__(method->code,name))
515 #define OPCODE___CONTINUE__ 0xfe
516 code_t* abc___continue__2(code_t*prev, string_t* s);
517 #define __continue__2(method,s) (method->code = abc___continue__2(method->code,s))
518 #define OPCODE___CONTINUE__2 0xfe
519 code_t* abc___break__(code_t*prev, char* name);
520 #define __break__(method,name) (method->code = abc___break__(method->code,name))
521 #define OPCODE___BREAK__ 0xff
522 code_t* abc___break__2(code_t*prev, string_t* s);
523 #define __break__2(method,s) (method->code = abc___break__2(method->code,s))
524 #define OPCODE___BREAK__2 0xff
525 #endif