renamed abc_code_t into code_t
authorkramm <kramm>
Mon, 24 Nov 2008 16:14:37 +0000 (16:14 +0000)
committerkramm <kramm>
Mon, 24 Nov 2008 16:14:37 +0000 (16:14 +0000)
lib/as3/mkabc.py
lib/as3/opcodes.c
lib/as3/opcodes.h

index ff5dfd4..6de1e7b 100644 (file)
@@ -41,9 +41,9 @@ for line in fi.readlines():
             elif c == "c":
                 type,pname="abc_class_t*","m"
             elif c == "j":
-                type,pname="abc_code_t*","label"
+                type,pname="code_t*","label"
             elif c == "S":
-                type,pname="void*","labels"
+                type,pname="lookupswitch_t*","l"
             elif c == "D":
                 type,pname="void*","debuginfo"
             elif c == "r":
@@ -60,15 +60,15 @@ for line in fi.readlines():
             paramstr += pname
             names += [pname]
 
-        foh.write("abc_code_t* abc_%s(abc_code_t*prev%s);\n" % (name, paramstr))
+        foh.write("code_t* abc_%s(code_t*prev%s);\n" % (name, paramstr))
 
-        foc.write("abc_code_t* abc_%s(abc_code_t*prev%s)\n" % (name, paramstr))
+        foc.write("code_t* abc_%s(code_t*prev%s)\n" % (name, paramstr))
         foc.write("{\n")
-        foc.write("    abc_code_t*self = add_opcode(prev, %s);\n" % op)
+        foc.write("    code_t*self = add_opcode(prev, %s);\n" % op)
         i = 0
         for pname,c in zip(names,params):
             if(c == "2"):
-                foc.write("    self->data[%d] = %s;\n" % (i,pname));
+                foc.write("    self->data[%d] = multiname_fromstring(%s); // FIXME\n" % (i,pname));
             elif(c in "nur"):
                 foc.write("    self->data[%d] = (void*)(ptroff_t)%s;\n" % (i,pname))
             elif(c == "b"):
@@ -82,9 +82,10 @@ for line in fi.readlines():
             elif(c == "i"):
                 foc.write("    self->data[%d] = %s;\n" % (i,pname))
             elif(c == "j"):
-                foc.write("    self->data[%d] = %s;\n" % (i,pname))
+                foc.write("    self->data[%d] = 0; //placeholder\n" % i)
+                foc.write("    self->branch = %s;\n" % pname)
             elif(c == "S"):
-                foc.write("    /* FIXME: write labels %s */\n" % pname)
+                foc.write("    self->data[%d] = %s;\n" % (i,pname))
             elif(c == "D"):
                 foc.write("    /* FIXME: write debuginfo %s */\n" % pname)
             else:
@@ -95,9 +96,9 @@ for line in fi.readlines():
 
         foh.write("#define "+name+"(")
         foh.write(",".join(["method"]+names))
-        foh.write(") {method->code = abc_"+name+"(")
+        foh.write(") (method->code = abc_"+name+"(")
         foh.write(",".join(["method->code"]+names))
-        foh.write(");}\n")
+        foh.write("))\n")
 
 foh.write("#endif\n")
 
index 775a396..ee43758 100644 (file)
 #include "opcodes.h"
-abc_code_t* abc_add(abc_code_t*prev)
+code_t* abc_add(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa0);
+    code_t*self = add_opcode(prev, 0xa0);
     return self;
 }
-abc_code_t* abc_add_i(abc_code_t*prev)
+code_t* abc_add_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xc5);
+    code_t*self = add_opcode(prev, 0xc5);
     return self;
 }
-abc_code_t* abc_astype(abc_code_t*prev, char* name)
+code_t* abc_astype(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x86);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x86);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_astypelate(abc_code_t*prev)
+code_t* abc_astypelate(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x87);
+    code_t*self = add_opcode(prev, 0x87);
     return self;
 }
-abc_code_t* abc_bitand(abc_code_t*prev)
+code_t* abc_bitand(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xA8);
+    code_t*self = add_opcode(prev, 0xA8);
     return self;
 }
-abc_code_t* abc_bitnot(abc_code_t*prev)
+code_t* abc_bitnot(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x97);
+    code_t*self = add_opcode(prev, 0x97);
     return self;
 }
-abc_code_t* abc_bitor(abc_code_t*prev)
+code_t* abc_bitor(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa9);
+    code_t*self = add_opcode(prev, 0xa9);
     return self;
 }
-abc_code_t* abc_bitxor(abc_code_t*prev)
+code_t* abc_bitxor(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xaa);
+    code_t*self = add_opcode(prev, 0xaa);
     return self;
 }
-abc_code_t* abc_call(abc_code_t*prev, int v)
+code_t* abc_call(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x41);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x41);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callmethod(abc_code_t*prev, abc_method_body_t* m, int v)
+code_t* abc_callmethod(code_t*prev, abc_method_body_t* m, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x43);
-    self->params[0] = m;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x43);
+    self->data[0] = m;
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callproplex(abc_code_t*prev, char* name, int v)
+code_t* abc_callproplex(code_t*prev, char* name, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x4c);
-    self->params[0] = name;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x4c);
+    self->data[0] = multiname_fromstring(name); // FIXME
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callproperty(abc_code_t*prev, char* name, int v)
+code_t* abc_callproperty(code_t*prev, char* name, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x46);
-    self->params[0] = name;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x46);
+    self->data[0] = multiname_fromstring(name); // FIXME
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callpropvoid(abc_code_t*prev, char* name, int v)
+code_t* abc_callpropvoid(code_t*prev, char* name, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x4f);
-    self->params[0] = name;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x4f);
+    self->data[0] = multiname_fromstring(name); // FIXME
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callstatic(abc_code_t*prev, abc_method_t* m, int v)
+code_t* abc_callstatic(code_t*prev, abc_method_t* m, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x44);
-    self->params[0] = m;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x44);
+    self->data[0] = m;
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callsuper(abc_code_t*prev, char* name, int v)
+code_t* abc_callsuper(code_t*prev, char* name, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x45);
-    self->params[0] = name;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x45);
+    self->data[0] = multiname_fromstring(name); // FIXME
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_callsupervoid(abc_code_t*prev, char* name, int v)
+code_t* abc_callsupervoid(code_t*prev, char* name, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x4e);
-    self->params[0] = name;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x4e);
+    self->data[0] = multiname_fromstring(name); // FIXME
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_checkfilter(abc_code_t*prev)
+code_t* abc_checkfilter(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x78);
+    code_t*self = add_opcode(prev, 0x78);
     return self;
 }
-abc_code_t* abc_coerce(abc_code_t*prev, char* name)
+code_t* abc_coerce(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x80);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x80);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_coerce_a(abc_code_t*prev)
+code_t* abc_coerce_a(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x82);
+    code_t*self = add_opcode(prev, 0x82);
     return self;
 }
-abc_code_t* abc_coerce_s(abc_code_t*prev)
+code_t* abc_coerce_s(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x85);
+    code_t*self = add_opcode(prev, 0x85);
     return self;
 }
-abc_code_t* abc_construct(abc_code_t*prev, int v)
+code_t* abc_construct(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x42);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x42);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_constructprop(abc_code_t*prev, char* name, int v)
+code_t* abc_constructprop(code_t*prev, char* name, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x4a);
-    self->params[0] = name;
-    self->params[1] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x4a);
+    self->data[0] = multiname_fromstring(name); // FIXME
+    self->data[1] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_constructsuper(abc_code_t*prev, int v)
+code_t* abc_constructsuper(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x49);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x49);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_convert_b(abc_code_t*prev)
+code_t* abc_convert_b(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x76);
+    code_t*self = add_opcode(prev, 0x76);
     return self;
 }
-abc_code_t* abc_convert_i(abc_code_t*prev)
+code_t* abc_convert_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x73);
+    code_t*self = add_opcode(prev, 0x73);
     return self;
 }
-abc_code_t* abc_convert_d(abc_code_t*prev)
+code_t* abc_convert_d(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x75);
+    code_t*self = add_opcode(prev, 0x75);
     return self;
 }
-abc_code_t* abc_convert_o(abc_code_t*prev)
+code_t* abc_convert_o(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x77);
+    code_t*self = add_opcode(prev, 0x77);
     return self;
 }
-abc_code_t* abc_convert_u(abc_code_t*prev)
+code_t* abc_convert_u(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x74);
+    code_t*self = add_opcode(prev, 0x74);
     return self;
 }
-abc_code_t* abc_convert_s(abc_code_t*prev)
+code_t* abc_convert_s(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x70);
+    code_t*self = add_opcode(prev, 0x70);
     return self;
 }
-abc_code_t* abc_debug(abc_code_t*prev, void* debuginfo)
+code_t* abc_debug(code_t*prev, void* debuginfo)
 {
-    abc_code_t*self = add_opcode(prev, 0xef);
+    code_t*self = add_opcode(prev, 0xef);
     /* FIXME: write debuginfo debuginfo */
     return self;
 }
-abc_code_t* abc_debugfile(abc_code_t*prev, char* s)
+code_t* abc_debugfile(code_t*prev, char* s)
 {
-    abc_code_t*self = add_opcode(prev, 0xf1);
-    self->params[0] = strdup(s);
+    code_t*self = add_opcode(prev, 0xf1);
+    self->data[0] = strdup(s);
     return self;
 }
-abc_code_t* abc_debugline(abc_code_t*prev, int v)
+code_t* abc_debugline(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0xf0);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0xf0);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_declocal(abc_code_t*prev, int reg)
+code_t* abc_declocal(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0x94);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0x94);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_declocal_i(abc_code_t*prev, int reg)
+code_t* abc_declocal_i(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0xc3);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0xc3);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_decrement(abc_code_t*prev)
+code_t* abc_decrement(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x93);
+    code_t*self = add_opcode(prev, 0x93);
     return self;
 }
-abc_code_t* abc_decrement_i(abc_code_t*prev)
+code_t* abc_decrement_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xc1);
+    code_t*self = add_opcode(prev, 0xc1);
     return self;
 }
-abc_code_t* abc_deleteproperty(abc_code_t*prev, char* name)
+code_t* abc_deleteproperty(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x6a);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x6a);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_divide(abc_code_t*prev)
+code_t* abc_divide(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa3);
+    code_t*self = add_opcode(prev, 0xa3);
     return self;
 }
-abc_code_t* abc_dup(abc_code_t*prev)
+code_t* abc_dup(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x2a);
+    code_t*self = add_opcode(prev, 0x2a);
     return self;
 }
-abc_code_t* abc_dxns(abc_code_t*prev, char* s)
+code_t* abc_dxns(code_t*prev, char* s)
 {
-    abc_code_t*self = add_opcode(prev, 0x06);
-    self->params[0] = strdup(s);
+    code_t*self = add_opcode(prev, 0x06);
+    self->data[0] = strdup(s);
     return self;
 }
-abc_code_t* abc_dxnslate(abc_code_t*prev)
+code_t* abc_dxnslate(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x07);
+    code_t*self = add_opcode(prev, 0x07);
     return self;
 }
-abc_code_t* abc_equals(abc_code_t*prev)
+code_t* abc_equals(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xab);
+    code_t*self = add_opcode(prev, 0xab);
     return self;
 }
-abc_code_t* abc_esc_xattr(abc_code_t*prev)
+code_t* abc_esc_xattr(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x72);
+    code_t*self = add_opcode(prev, 0x72);
     return self;
 }
-abc_code_t* abc_esc_xelem(abc_code_t*prev)
+code_t* abc_esc_xelem(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x71);
+    code_t*self = add_opcode(prev, 0x71);
     return self;
 }
-abc_code_t* abc_findproperty(abc_code_t*prev, char* name)
+code_t* abc_findproperty(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x5e);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x5e);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_findpropstrict(abc_code_t*prev, char* name)
+code_t* abc_findpropstrict(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x5d);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x5d);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_getdescendants(abc_code_t*prev, char* name)
+code_t* abc_getdescendants(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x59);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x59);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_getglobalscope(abc_code_t*prev)
+code_t* abc_getglobalscope(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x64);
+    code_t*self = add_opcode(prev, 0x64);
     return self;
 }
-abc_code_t* abc_getglobalslot(abc_code_t*prev, int v)
+code_t* abc_getglobalslot(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x6e);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x6e);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_getlex(abc_code_t*prev, char* name)
+code_t* abc_getlex(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x60);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x60);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_getlocal(abc_code_t*prev, int reg)
+code_t* abc_getlocal(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0x62);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0x62);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_getlocal_0(abc_code_t*prev)
+code_t* abc_getlocal_0(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd0);
+    code_t*self = add_opcode(prev, 0xd0);
     return self;
 }
-abc_code_t* abc_getlocal_1(abc_code_t*prev)
+code_t* abc_getlocal_1(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd1);
+    code_t*self = add_opcode(prev, 0xd1);
     return self;
 }
-abc_code_t* abc_getlocal_2(abc_code_t*prev)
+code_t* abc_getlocal_2(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd2);
+    code_t*self = add_opcode(prev, 0xd2);
     return self;
 }
-abc_code_t* abc_getlocal_3(abc_code_t*prev)
+code_t* abc_getlocal_3(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd3);
+    code_t*self = add_opcode(prev, 0xd3);
     return self;
 }
-abc_code_t* abc_getproperty(abc_code_t*prev, char* name)
+code_t* abc_getproperty(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x66);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x66);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_getscopeobject(abc_code_t*prev, int v)
+code_t* abc_getscopeobject(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x65);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x65);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_getslot(abc_code_t*prev, int v)
+code_t* abc_getslot(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x6c);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x6c);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_getsuper(abc_code_t*prev, char* name)
+code_t* abc_getsuper(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x04);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x04);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_greaterequals(abc_code_t*prev)
+code_t* abc_greaterequals(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xaf);
+    code_t*self = add_opcode(prev, 0xaf);
     return self;
 }
-abc_code_t* abc_hasnext(abc_code_t*prev)
+code_t* abc_hasnext(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x1f);
+    code_t*self = add_opcode(prev, 0x1f);
     return self;
 }
-abc_code_t* abc_hasnext2(abc_code_t*prev, int reg, int reg2)
+code_t* abc_hasnext2(code_t*prev, int reg, int reg2)
 {
-    abc_code_t*self = add_opcode(prev, 0x32);
-    self->params[0] = (void*)(ptroff_t)reg;
-    self->params[1] = (void*)(ptroff_t)reg2;
+    code_t*self = add_opcode(prev, 0x32);
+    self->data[0] = (void*)(ptroff_t)reg;
+    self->data[1] = (void*)(ptroff_t)reg2;
     return self;
 }
-abc_code_t* abc_ifeq(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifeq(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x13);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x13);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_iffalse(abc_code_t*prev, abc_code_t* label)
+code_t* abc_iffalse(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x12);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x12);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifge(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifge(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x18);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x18);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifgt(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifgt(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x17);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x17);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifle(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifle(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x16);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x16);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_iflt(abc_code_t*prev, abc_code_t* label)
+code_t* abc_iflt(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x15);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x15);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifnge(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifnge(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x0f);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x0f);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifngt(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifngt(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x0e);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x0e);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifnle(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifnle(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x0d);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x0d);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifnlt(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifnlt(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x0c);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x0c);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifne(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifne(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x14);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x14);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifstricteq(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifstricteq(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x19);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x19);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_ifstrictne(abc_code_t*prev, abc_code_t* label)
+code_t* abc_ifstrictne(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x1a);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x1a);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_iftrue(abc_code_t*prev, abc_code_t* label)
+code_t* abc_iftrue(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x11);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x11);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_in(abc_code_t*prev)
+code_t* abc_in(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xb4);
+    code_t*self = add_opcode(prev, 0xb4);
     return self;
 }
-abc_code_t* abc_inclocal(abc_code_t*prev, int reg)
+code_t* abc_inclocal(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0x92);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0x92);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_inclocal_i(abc_code_t*prev, int reg)
+code_t* abc_inclocal_i(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0xc2);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0xc2);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_increment(abc_code_t*prev)
+code_t* abc_increment(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x91);
+    code_t*self = add_opcode(prev, 0x91);
     return self;
 }
-abc_code_t* abc_increment_i(abc_code_t*prev)
+code_t* abc_increment_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xc0);
+    code_t*self = add_opcode(prev, 0xc0);
     return self;
 }
-abc_code_t* abc_initproperty(abc_code_t*prev, char* name)
+code_t* abc_initproperty(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x68);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x68);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_instanceof(abc_code_t*prev)
+code_t* abc_instanceof(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xb1);
+    code_t*self = add_opcode(prev, 0xb1);
     return self;
 }
-abc_code_t* abc_istype(abc_code_t*prev, char* name)
+code_t* abc_istype(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0xb2);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0xb2);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_istypelate(abc_code_t*prev)
+code_t* abc_istypelate(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xb3);
+    code_t*self = add_opcode(prev, 0xb3);
     return self;
 }
-abc_code_t* abc_jump(abc_code_t*prev, abc_code_t* label)
+code_t* abc_jump(code_t*prev, code_t* label)
 {
-    abc_code_t*self = add_opcode(prev, 0x10);
-    self->params[0] = label;
+    code_t*self = add_opcode(prev, 0x10);
+    self->data[0] = 0; //placeholder
+    self->branch = label;
     return self;
 }
-abc_code_t* abc_kill(abc_code_t*prev, int reg)
+code_t* abc_kill(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0x08);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0x08);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_label(abc_code_t*prev)
+code_t* abc_label(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x09);
+    code_t*self = add_opcode(prev, 0x09);
     return self;
 }
-abc_code_t* abc_lessequals(abc_code_t*prev)
+code_t* abc_lessequals(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xae);
+    code_t*self = add_opcode(prev, 0xae);
     return self;
 }
-abc_code_t* abc_lessthan(abc_code_t*prev)
+code_t* abc_lessthan(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xad);
+    code_t*self = add_opcode(prev, 0xad);
     return self;
 }
-abc_code_t* abc_lookupswitch(abc_code_t*prev, void* labels)
+code_t* abc_lookupswitch(code_t*prev, void* labels)
 {
-    abc_code_t*self = add_opcode(prev, 0x1b);
+    code_t*self = add_opcode(prev, 0x1b);
     /* FIXME: write labels labels */
     return self;
 }
-abc_code_t* abc_lshift(abc_code_t*prev)
+code_t* abc_lshift(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa5);
+    code_t*self = add_opcode(prev, 0xa5);
     return self;
 }
-abc_code_t* abc_modulo(abc_code_t*prev)
+code_t* abc_modulo(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa4);
+    code_t*self = add_opcode(prev, 0xa4);
     return self;
 }
-abc_code_t* abc_multiply(abc_code_t*prev)
+code_t* abc_multiply(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa2);
+    code_t*self = add_opcode(prev, 0xa2);
     return self;
 }
-abc_code_t* abc_multiply_i(abc_code_t*prev)
+code_t* abc_multiply_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xc7);
+    code_t*self = add_opcode(prev, 0xc7);
     return self;
 }
-abc_code_t* abc_negate(abc_code_t*prev)
+code_t* abc_negate(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x90);
+    code_t*self = add_opcode(prev, 0x90);
     return self;
 }
-abc_code_t* abc_negate_i(abc_code_t*prev)
+code_t* abc_negate_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xc4);
+    code_t*self = add_opcode(prev, 0xc4);
     return self;
 }
-abc_code_t* abc_newactivation(abc_code_t*prev)
+code_t* abc_newactivation(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x57);
+    code_t*self = add_opcode(prev, 0x57);
     return self;
 }
-abc_code_t* abc_newarray(abc_code_t*prev, int v)
+code_t* abc_newarray(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x56);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x56);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_newcatch(abc_code_t*prev, int v)
+code_t* abc_newcatch(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x5a);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x5a);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_newclass(abc_code_t*prev, abc_class_t* m)
+code_t* abc_newclass(code_t*prev, abc_class_t* m)
 {
-    abc_code_t*self = add_opcode(prev, 0x58);
-    self->params[0] = m;
+    code_t*self = add_opcode(prev, 0x58);
+    self->data[0] = m;
     return self;
 }
-abc_code_t* abc_newfunction(abc_code_t*prev, abc_method_body_t* m)
+code_t* abc_newfunction(code_t*prev, abc_method_body_t* m)
 {
-    abc_code_t*self = add_opcode(prev, 0x40);
-    self->params[0] = m;
+    code_t*self = add_opcode(prev, 0x40);
+    self->data[0] = m;
     return self;
 }
-abc_code_t* abc_newobject(abc_code_t*prev, int v)
+code_t* abc_newobject(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x55);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x55);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_nextname(abc_code_t*prev)
+code_t* abc_nextname(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x1e);
+    code_t*self = add_opcode(prev, 0x1e);
     return self;
 }
-abc_code_t* abc_nextvalue(abc_code_t*prev)
+code_t* abc_nextvalue(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x23);
+    code_t*self = add_opcode(prev, 0x23);
     return self;
 }
-abc_code_t* abc_nop(abc_code_t*prev)
+code_t* abc_nop(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x02);
+    code_t*self = add_opcode(prev, 0x02);
     return self;
 }
-abc_code_t* abc_not(abc_code_t*prev)
+code_t* abc_not(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x96);
+    code_t*self = add_opcode(prev, 0x96);
     return self;
 }
-abc_code_t* abc_pop(abc_code_t*prev)
+code_t* abc_pop(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x29);
+    code_t*self = add_opcode(prev, 0x29);
     return self;
 }
-abc_code_t* abc_popscope(abc_code_t*prev)
+code_t* abc_popscope(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x1d);
+    code_t*self = add_opcode(prev, 0x1d);
     return self;
 }
-abc_code_t* abc_pushbyte(abc_code_t*prev, int v)
+code_t* abc_pushbyte(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x24);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x24);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_pushdouble(abc_code_t*prev, int v)
+code_t* abc_pushdouble(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x2f);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x2f);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_pushfalse(abc_code_t*prev)
+code_t* abc_pushfalse(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x27);
+    code_t*self = add_opcode(prev, 0x27);
     return self;
 }
-abc_code_t* abc_pushint(abc_code_t*prev, int v)
+code_t* abc_pushint(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x2d);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x2d);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_pushnamespace(abc_code_t*prev, int v)
+code_t* abc_pushnamespace(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x31);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x31);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_pushnan(abc_code_t*prev)
+code_t* abc_pushnan(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x28);
+    code_t*self = add_opcode(prev, 0x28);
     return self;
 }
-abc_code_t* abc_pushnull(abc_code_t*prev)
+code_t* abc_pushnull(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x20);
+    code_t*self = add_opcode(prev, 0x20);
     return self;
 }
-abc_code_t* abc_pushscope(abc_code_t*prev)
+code_t* abc_pushscope(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x30);
+    code_t*self = add_opcode(prev, 0x30);
     return self;
 }
-abc_code_t* abc_pushshort(abc_code_t*prev, int v)
+code_t* abc_pushshort(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x25);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x25);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_pushstring(abc_code_t*prev, char* s)
+code_t* abc_pushstring(code_t*prev, char* s)
 {
-    abc_code_t*self = add_opcode(prev, 0x2c);
-    self->params[0] = strdup(s);
+    code_t*self = add_opcode(prev, 0x2c);
+    self->data[0] = strdup(s);
     return self;
 }
-abc_code_t* abc_pushtrue(abc_code_t*prev)
+code_t* abc_pushtrue(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x26);
+    code_t*self = add_opcode(prev, 0x26);
     return self;
 }
-abc_code_t* abc_pushuint(abc_code_t*prev, int v)
+code_t* abc_pushuint(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x2e);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x2e);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_pushundefined(abc_code_t*prev)
+code_t* abc_pushundefined(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x21);
+    code_t*self = add_opcode(prev, 0x21);
     return self;
 }
-abc_code_t* abc_pushwith(abc_code_t*prev)
+code_t* abc_pushwith(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x1c);
+    code_t*self = add_opcode(prev, 0x1c);
     return self;
 }
-abc_code_t* abc_returnvalue(abc_code_t*prev)
+code_t* abc_returnvalue(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x48);
+    code_t*self = add_opcode(prev, 0x48);
     return self;
 }
-abc_code_t* abc_returnvoid(abc_code_t*prev)
+code_t* abc_returnvoid(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x47);
+    code_t*self = add_opcode(prev, 0x47);
     return self;
 }
-abc_code_t* abc_rshift(abc_code_t*prev)
+code_t* abc_rshift(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa6);
+    code_t*self = add_opcode(prev, 0xa6);
     return self;
 }
-abc_code_t* abc_setlocal(abc_code_t*prev, int reg)
+code_t* abc_setlocal(code_t*prev, int reg)
 {
-    abc_code_t*self = add_opcode(prev, 0x63);
-    self->params[0] = (void*)(ptroff_t)reg;
+    code_t*self = add_opcode(prev, 0x63);
+    self->data[0] = (void*)(ptroff_t)reg;
     return self;
 }
-abc_code_t* abc_setlocal_0(abc_code_t*prev)
+code_t* abc_setlocal_0(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd4);
+    code_t*self = add_opcode(prev, 0xd4);
     return self;
 }
-abc_code_t* abc_setlocal_1(abc_code_t*prev)
+code_t* abc_setlocal_1(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd5);
+    code_t*self = add_opcode(prev, 0xd5);
     return self;
 }
-abc_code_t* abc_setlocal_2(abc_code_t*prev)
+code_t* abc_setlocal_2(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd6);
+    code_t*self = add_opcode(prev, 0xd6);
     return self;
 }
-abc_code_t* abc_setlocal_3(abc_code_t*prev)
+code_t* abc_setlocal_3(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xd7);
+    code_t*self = add_opcode(prev, 0xd7);
     return self;
 }
-abc_code_t* abc_setglobalslot(abc_code_t*prev, int v)
+code_t* abc_setglobalslot(code_t*prev, int v)
 {
-    abc_code_t*self = add_opcode(prev, 0x6f);
-    self->params[0] = (void*)(ptroff_t)v;
+    code_t*self = add_opcode(prev, 0x6f);
+    self->data[0] = (void*)(ptroff_t)v;
     return self;
 }
-abc_code_t* abc_setproperty(abc_code_t*prev, char* name)
+code_t* abc_setproperty(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x61);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x61);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_setslot(abc_code_t*prev, char* name)
+code_t* abc_setslot(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x6d);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x6d);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_setsuper(abc_code_t*prev, char* name)
+code_t* abc_setsuper(code_t*prev, char* name)
 {
-    abc_code_t*self = add_opcode(prev, 0x05);
-    self->params[0] = name;
+    code_t*self = add_opcode(prev, 0x05);
+    self->data[0] = multiname_fromstring(name); // FIXME
     return self;
 }
-abc_code_t* abc_strictequals(abc_code_t*prev)
+code_t* abc_strictequals(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xac);
+    code_t*self = add_opcode(prev, 0xac);
     return self;
 }
-abc_code_t* abc_subtract(abc_code_t*prev)
+code_t* abc_subtract(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa1);
+    code_t*self = add_opcode(prev, 0xa1);
     return self;
 }
-abc_code_t* abc_subtract_i(abc_code_t*prev)
+code_t* abc_subtract_i(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xc6);
+    code_t*self = add_opcode(prev, 0xc6);
     return self;
 }
-abc_code_t* abc_swap(abc_code_t*prev)
+code_t* abc_swap(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x2b);
+    code_t*self = add_opcode(prev, 0x2b);
     return self;
 }
-abc_code_t* abc_throw(abc_code_t*prev)
+code_t* abc_throw(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x03);
+    code_t*self = add_opcode(prev, 0x03);
     return self;
 }
-abc_code_t* abc_typeof(abc_code_t*prev)
+code_t* abc_typeof(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0x95);
+    code_t*self = add_opcode(prev, 0x95);
     return self;
 }
-abc_code_t* abc_urshift(abc_code_t*prev)
+code_t* abc_urshift(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xa7);
+    code_t*self = add_opcode(prev, 0xa7);
     return self;
 }
-abc_code_t* abc_xxx(abc_code_t*prev)
+code_t* abc_xxx(code_t*prev)
 {
-    abc_code_t*self = add_opcode(prev, 0xb0);
+    code_t*self = add_opcode(prev, 0xb0);
     return self;
 }
index fda4dda..e71b0b0 100644 (file)
 #include "abc.h"
 #include "pool.h"
 #include "code.h"
-abc_code_t* abc_add(abc_code_t*prev);
-#define add(method) {method->code = abc_add(method->code);}
-abc_code_t* abc_add_i(abc_code_t*prev);
-#define add_i(method) {method->code = abc_add_i(method->code);}
-abc_code_t* abc_astype(abc_code_t*prev, char* name);
-#define astype(method,name) {method->code = abc_astype(method->code,name);}
-abc_code_t* abc_astypelate(abc_code_t*prev);
-#define astypelate(method) {method->code = abc_astypelate(method->code);}
-abc_code_t* abc_bitand(abc_code_t*prev);
-#define bitand(method) {method->code = abc_bitand(method->code);}
-abc_code_t* abc_bitnot(abc_code_t*prev);
-#define bitnot(method) {method->code = abc_bitnot(method->code);}
-abc_code_t* abc_bitor(abc_code_t*prev);
-#define bitor(method) {method->code = abc_bitor(method->code);}
-abc_code_t* abc_bitxor(abc_code_t*prev);
-#define bitxor(method) {method->code = abc_bitxor(method->code);}
-abc_code_t* abc_call(abc_code_t*prev, int v);
-#define call(method,v) {method->code = abc_call(method->code,v);}
-abc_code_t* abc_callmethod(abc_code_t*prev, abc_method_body_t* m, int v);
-#define callmethod(method,m,v) {method->code = abc_callmethod(method->code,m,v);}
-abc_code_t* abc_callproplex(abc_code_t*prev, char* name, int v);
-#define callproplex(method,name,v) {method->code = abc_callproplex(method->code,name,v);}
-abc_code_t* abc_callproperty(abc_code_t*prev, char* name, int v);
-#define callproperty(method,name,v) {method->code = abc_callproperty(method->code,name,v);}
-abc_code_t* abc_callpropvoid(abc_code_t*prev, char* name, int v);
-#define callpropvoid(method,name,v) {method->code = abc_callpropvoid(method->code,name,v);}
-abc_code_t* abc_callstatic(abc_code_t*prev, abc_method_t* m, int v);
-#define callstatic(method,m,v) {method->code = abc_callstatic(method->code,m,v);}
-abc_code_t* abc_callsuper(abc_code_t*prev, char* name, int v);
-#define callsuper(method,name,v) {method->code = abc_callsuper(method->code,name,v);}
-abc_code_t* abc_callsupervoid(abc_code_t*prev, char* name, int v);
-#define callsupervoid(method,name,v) {method->code = abc_callsupervoid(method->code,name,v);}
-abc_code_t* abc_checkfilter(abc_code_t*prev);
-#define checkfilter(method) {method->code = abc_checkfilter(method->code);}
-abc_code_t* abc_coerce(abc_code_t*prev, char* name);
-#define coerce(method,name) {method->code = abc_coerce(method->code,name);}
-abc_code_t* abc_coerce_a(abc_code_t*prev);
-#define coerce_a(method) {method->code = abc_coerce_a(method->code);}
-abc_code_t* abc_coerce_s(abc_code_t*prev);
-#define coerce_s(method) {method->code = abc_coerce_s(method->code);}
-abc_code_t* abc_construct(abc_code_t*prev, int v);
-#define construct(method,v) {method->code = abc_construct(method->code,v);}
-abc_code_t* abc_constructprop(abc_code_t*prev, char* name, int v);
-#define constructprop(method,name,v) {method->code = abc_constructprop(method->code,name,v);}
-abc_code_t* abc_constructsuper(abc_code_t*prev, int v);
-#define constructsuper(method,v) {method->code = abc_constructsuper(method->code,v);}
-abc_code_t* abc_convert_b(abc_code_t*prev);
-#define convert_b(method) {method->code = abc_convert_b(method->code);}
-abc_code_t* abc_convert_i(abc_code_t*prev);
-#define convert_i(method) {method->code = abc_convert_i(method->code);}
-abc_code_t* abc_convert_d(abc_code_t*prev);
-#define convert_d(method) {method->code = abc_convert_d(method->code);}
-abc_code_t* abc_convert_o(abc_code_t*prev);
-#define convert_o(method) {method->code = abc_convert_o(method->code);}
-abc_code_t* abc_convert_u(abc_code_t*prev);
-#define convert_u(method) {method->code = abc_convert_u(method->code);}
-abc_code_t* abc_convert_s(abc_code_t*prev);
-#define convert_s(method) {method->code = abc_convert_s(method->code);}
-abc_code_t* abc_debug(abc_code_t*prev, void* debuginfo);
-#define debug(method,debuginfo) {method->code = abc_debug(method->code,debuginfo);}
-abc_code_t* abc_debugfile(abc_code_t*prev, char* s);
-#define debugfile(method,s) {method->code = abc_debugfile(method->code,s);}
-abc_code_t* abc_debugline(abc_code_t*prev, int v);
-#define debugline(method,v) {method->code = abc_debugline(method->code,v);}
-abc_code_t* abc_declocal(abc_code_t*prev, int reg);
-#define declocal(method,reg) {method->code = abc_declocal(method->code,reg);}
-abc_code_t* abc_declocal_i(abc_code_t*prev, int reg);
-#define declocal_i(method,reg) {method->code = abc_declocal_i(method->code,reg);}
-abc_code_t* abc_decrement(abc_code_t*prev);
-#define decrement(method) {method->code = abc_decrement(method->code);}
-abc_code_t* abc_decrement_i(abc_code_t*prev);
-#define decrement_i(method) {method->code = abc_decrement_i(method->code);}
-abc_code_t* abc_deleteproperty(abc_code_t*prev, char* name);
-#define deleteproperty(method,name) {method->code = abc_deleteproperty(method->code,name);}
-abc_code_t* abc_divide(abc_code_t*prev);
-#define divide(method) {method->code = abc_divide(method->code);}
-abc_code_t* abc_dup(abc_code_t*prev);
-#define dup(method) {method->code = abc_dup(method->code);}
-abc_code_t* abc_dxns(abc_code_t*prev, char* s);
-#define dxns(method,s) {method->code = abc_dxns(method->code,s);}
-abc_code_t* abc_dxnslate(abc_code_t*prev);
-#define dxnslate(method) {method->code = abc_dxnslate(method->code);}
-abc_code_t* abc_equals(abc_code_t*prev);
-#define equals(method) {method->code = abc_equals(method->code);}
-abc_code_t* abc_esc_xattr(abc_code_t*prev);
-#define esc_xattr(method) {method->code = abc_esc_xattr(method->code);}
-abc_code_t* abc_esc_xelem(abc_code_t*prev);
-#define esc_xelem(method) {method->code = abc_esc_xelem(method->code);}
-abc_code_t* abc_findproperty(abc_code_t*prev, char* name);
-#define findproperty(method,name) {method->code = abc_findproperty(method->code,name);}
-abc_code_t* abc_findpropstrict(abc_code_t*prev, char* name);
-#define findpropstrict(method,name) {method->code = abc_findpropstrict(method->code,name);}
-abc_code_t* abc_getdescendants(abc_code_t*prev, char* name);
-#define getdescendants(method,name) {method->code = abc_getdescendants(method->code,name);}
-abc_code_t* abc_getglobalscope(abc_code_t*prev);
-#define getglobalscope(method) {method->code = abc_getglobalscope(method->code);}
-abc_code_t* abc_getglobalslot(abc_code_t*prev, int v);
-#define getglobalslot(method,v) {method->code = abc_getglobalslot(method->code,v);}
-abc_code_t* abc_getlex(abc_code_t*prev, char* name);
-#define getlex(method,name) {method->code = abc_getlex(method->code,name);}
-abc_code_t* abc_getlocal(abc_code_t*prev, int reg);
-#define getlocal(method,reg) {method->code = abc_getlocal(method->code,reg);}
-abc_code_t* abc_getlocal_0(abc_code_t*prev);
-#define getlocal_0(method) {method->code = abc_getlocal_0(method->code);}
-abc_code_t* abc_getlocal_1(abc_code_t*prev);
-#define getlocal_1(method) {method->code = abc_getlocal_1(method->code);}
-abc_code_t* abc_getlocal_2(abc_code_t*prev);
-#define getlocal_2(method) {method->code = abc_getlocal_2(method->code);}
-abc_code_t* abc_getlocal_3(abc_code_t*prev);
-#define getlocal_3(method) {method->code = abc_getlocal_3(method->code);}
-abc_code_t* abc_getproperty(abc_code_t*prev, char* name);
-#define getproperty(method,name) {method->code = abc_getproperty(method->code,name);}
-abc_code_t* abc_getscopeobject(abc_code_t*prev, int v);
-#define getscopeobject(method,v) {method->code = abc_getscopeobject(method->code,v);}
-abc_code_t* abc_getslot(abc_code_t*prev, int v);
-#define getslot(method,v) {method->code = abc_getslot(method->code,v);}
-abc_code_t* abc_getsuper(abc_code_t*prev, char* name);
-#define getsuper(method,name) {method->code = abc_getsuper(method->code,name);}
-abc_code_t* abc_greaterequals(abc_code_t*prev);
-#define greaterequals(method) {method->code = abc_greaterequals(method->code);}
-abc_code_t* abc_hasnext(abc_code_t*prev);
-#define hasnext(method) {method->code = abc_hasnext(method->code);}
-abc_code_t* abc_hasnext2(abc_code_t*prev, int reg, int reg2);
-#define hasnext2(method,reg,reg2) {method->code = abc_hasnext2(method->code,reg,reg2);}
-abc_code_t* abc_ifeq(abc_code_t*prev, abc_code_t* label);
-#define ifeq(method,label) {method->code = abc_ifeq(method->code,label);}
-abc_code_t* abc_iffalse(abc_code_t*prev, abc_code_t* label);
-#define iffalse(method,label) {method->code = abc_iffalse(method->code,label);}
-abc_code_t* abc_ifge(abc_code_t*prev, abc_code_t* label);
-#define ifge(method,label) {method->code = abc_ifge(method->code,label);}
-abc_code_t* abc_ifgt(abc_code_t*prev, abc_code_t* label);
-#define ifgt(method,label) {method->code = abc_ifgt(method->code,label);}
-abc_code_t* abc_ifle(abc_code_t*prev, abc_code_t* label);
-#define ifle(method,label) {method->code = abc_ifle(method->code,label);}
-abc_code_t* abc_iflt(abc_code_t*prev, abc_code_t* label);
-#define iflt(method,label) {method->code = abc_iflt(method->code,label);}
-abc_code_t* abc_ifnge(abc_code_t*prev, abc_code_t* label);
-#define ifnge(method,label) {method->code = abc_ifnge(method->code,label);}
-abc_code_t* abc_ifngt(abc_code_t*prev, abc_code_t* label);
-#define ifngt(method,label) {method->code = abc_ifngt(method->code,label);}
-abc_code_t* abc_ifnle(abc_code_t*prev, abc_code_t* label);
-#define ifnle(method,label) {method->code = abc_ifnle(method->code,label);}
-abc_code_t* abc_ifnlt(abc_code_t*prev, abc_code_t* label);
-#define ifnlt(method,label) {method->code = abc_ifnlt(method->code,label);}
-abc_code_t* abc_ifne(abc_code_t*prev, abc_code_t* label);
-#define ifne(method,label) {method->code = abc_ifne(method->code,label);}
-abc_code_t* abc_ifstricteq(abc_code_t*prev, abc_code_t* label);
-#define ifstricteq(method,label) {method->code = abc_ifstricteq(method->code,label);}
-abc_code_t* abc_ifstrictne(abc_code_t*prev, abc_code_t* label);
-#define ifstrictne(method,label) {method->code = abc_ifstrictne(method->code,label);}
-abc_code_t* abc_iftrue(abc_code_t*prev, abc_code_t* label);
-#define iftrue(method,label) {method->code = abc_iftrue(method->code,label);}
-abc_code_t* abc_in(abc_code_t*prev);
-#define in(method) {method->code = abc_in(method->code);}
-abc_code_t* abc_inclocal(abc_code_t*prev, int reg);
-#define inclocal(method,reg) {method->code = abc_inclocal(method->code,reg);}
-abc_code_t* abc_inclocal_i(abc_code_t*prev, int reg);
-#define inclocal_i(method,reg) {method->code = abc_inclocal_i(method->code,reg);}
-abc_code_t* abc_increment(abc_code_t*prev);
-#define increment(method) {method->code = abc_increment(method->code);}
-abc_code_t* abc_increment_i(abc_code_t*prev);
-#define increment_i(method) {method->code = abc_increment_i(method->code);}
-abc_code_t* abc_initproperty(abc_code_t*prev, char* name);
-#define initproperty(method,name) {method->code = abc_initproperty(method->code,name);}
-abc_code_t* abc_instanceof(abc_code_t*prev);
-#define instanceof(method) {method->code = abc_instanceof(method->code);}
-abc_code_t* abc_istype(abc_code_t*prev, char* name);
-#define istype(method,name) {method->code = abc_istype(method->code,name);}
-abc_code_t* abc_istypelate(abc_code_t*prev);
-#define istypelate(method) {method->code = abc_istypelate(method->code);}
-abc_code_t* abc_jump(abc_code_t*prev, abc_code_t* label);
-#define jump(method,label) {method->code = abc_jump(method->code,label);}
-abc_code_t* abc_kill(abc_code_t*prev, int reg);
-#define kill(method,reg) {method->code = abc_kill(method->code,reg);}
-abc_code_t* abc_label(abc_code_t*prev);
-#define label(method) {method->code = abc_label(method->code);}
-abc_code_t* abc_lessequals(abc_code_t*prev);
-#define lessequals(method) {method->code = abc_lessequals(method->code);}
-abc_code_t* abc_lessthan(abc_code_t*prev);
-#define lessthan(method) {method->code = abc_lessthan(method->code);}
-abc_code_t* abc_lookupswitch(abc_code_t*prev, void* labels);
-#define lookupswitch(method,labels) {method->code = abc_lookupswitch(method->code,labels);}
-abc_code_t* abc_lshift(abc_code_t*prev);
-#define lshift(method) {method->code = abc_lshift(method->code);}
-abc_code_t* abc_modulo(abc_code_t*prev);
-#define modulo(method) {method->code = abc_modulo(method->code);}
-abc_code_t* abc_multiply(abc_code_t*prev);
-#define multiply(method) {method->code = abc_multiply(method->code);}
-abc_code_t* abc_multiply_i(abc_code_t*prev);
-#define multiply_i(method) {method->code = abc_multiply_i(method->code);}
-abc_code_t* abc_negate(abc_code_t*prev);
-#define negate(method) {method->code = abc_negate(method->code);}
-abc_code_t* abc_negate_i(abc_code_t*prev);
-#define negate_i(method) {method->code = abc_negate_i(method->code);}
-abc_code_t* abc_newactivation(abc_code_t*prev);
-#define newactivation(method) {method->code = abc_newactivation(method->code);}
-abc_code_t* abc_newarray(abc_code_t*prev, int v);
-#define newarray(method,v) {method->code = abc_newarray(method->code,v);}
-abc_code_t* abc_newcatch(abc_code_t*prev, int v);
-#define newcatch(method,v) {method->code = abc_newcatch(method->code,v);}
-abc_code_t* abc_newclass(abc_code_t*prev, abc_class_t* m);
-#define newclass(method,m) {method->code = abc_newclass(method->code,m);}
-abc_code_t* abc_newfunction(abc_code_t*prev, abc_method_body_t* m);
-#define newfunction(method,m) {method->code = abc_newfunction(method->code,m);}
-abc_code_t* abc_newobject(abc_code_t*prev, int v);
-#define newobject(method,v) {method->code = abc_newobject(method->code,v);}
-abc_code_t* abc_nextname(abc_code_t*prev);
-#define nextname(method) {method->code = abc_nextname(method->code);}
-abc_code_t* abc_nextvalue(abc_code_t*prev);
-#define nextvalue(method) {method->code = abc_nextvalue(method->code);}
-abc_code_t* abc_nop(abc_code_t*prev);
-#define nop(method) {method->code = abc_nop(method->code);}
-abc_code_t* abc_not(abc_code_t*prev);
-#define not(method) {method->code = abc_not(method->code);}
-abc_code_t* abc_pop(abc_code_t*prev);
-#define pop(method) {method->code = abc_pop(method->code);}
-abc_code_t* abc_popscope(abc_code_t*prev);
-#define popscope(method) {method->code = abc_popscope(method->code);}
-abc_code_t* abc_pushbyte(abc_code_t*prev, int v);
-#define pushbyte(method,v) {method->code = abc_pushbyte(method->code,v);}
-abc_code_t* abc_pushdouble(abc_code_t*prev, int v);
-#define pushdouble(method,v) {method->code = abc_pushdouble(method->code,v);}
-abc_code_t* abc_pushfalse(abc_code_t*prev);
-#define pushfalse(method) {method->code = abc_pushfalse(method->code);}
-abc_code_t* abc_pushint(abc_code_t*prev, int v);
-#define pushint(method,v) {method->code = abc_pushint(method->code,v);}
-abc_code_t* abc_pushnamespace(abc_code_t*prev, int v);
-#define pushnamespace(method,v) {method->code = abc_pushnamespace(method->code,v);}
-abc_code_t* abc_pushnan(abc_code_t*prev);
-#define pushnan(method) {method->code = abc_pushnan(method->code);}
-abc_code_t* abc_pushnull(abc_code_t*prev);
-#define pushnull(method) {method->code = abc_pushnull(method->code);}
-abc_code_t* abc_pushscope(abc_code_t*prev);
-#define pushscope(method) {method->code = abc_pushscope(method->code);}
-abc_code_t* abc_pushshort(abc_code_t*prev, int v);
-#define pushshort(method,v) {method->code = abc_pushshort(method->code,v);}
-abc_code_t* abc_pushstring(abc_code_t*prev, char* s);
-#define pushstring(method,s) {method->code = abc_pushstring(method->code,s);}
-abc_code_t* abc_pushtrue(abc_code_t*prev);
-#define pushtrue(method) {method->code = abc_pushtrue(method->code);}
-abc_code_t* abc_pushuint(abc_code_t*prev, int v);
-#define pushuint(method,v) {method->code = abc_pushuint(method->code,v);}
-abc_code_t* abc_pushundefined(abc_code_t*prev);
-#define pushundefined(method) {method->code = abc_pushundefined(method->code);}
-abc_code_t* abc_pushwith(abc_code_t*prev);
-#define pushwith(method) {method->code = abc_pushwith(method->code);}
-abc_code_t* abc_returnvalue(abc_code_t*prev);
-#define returnvalue(method) {method->code = abc_returnvalue(method->code);}
-abc_code_t* abc_returnvoid(abc_code_t*prev);
-#define returnvoid(method) {method->code = abc_returnvoid(method->code);}
-abc_code_t* abc_rshift(abc_code_t*prev);
-#define rshift(method) {method->code = abc_rshift(method->code);}
-abc_code_t* abc_setlocal(abc_code_t*prev, int reg);
-#define setlocal(method,reg) {method->code = abc_setlocal(method->code,reg);}
-abc_code_t* abc_setlocal_0(abc_code_t*prev);
-#define setlocal_0(method) {method->code = abc_setlocal_0(method->code);}
-abc_code_t* abc_setlocal_1(abc_code_t*prev);
-#define setlocal_1(method) {method->code = abc_setlocal_1(method->code);}
-abc_code_t* abc_setlocal_2(abc_code_t*prev);
-#define setlocal_2(method) {method->code = abc_setlocal_2(method->code);}
-abc_code_t* abc_setlocal_3(abc_code_t*prev);
-#define setlocal_3(method) {method->code = abc_setlocal_3(method->code);}
-abc_code_t* abc_setglobalslot(abc_code_t*prev, int v);
-#define setglobalslot(method,v) {method->code = abc_setglobalslot(method->code,v);}
-abc_code_t* abc_setproperty(abc_code_t*prev, char* name);
-#define setproperty(method,name) {method->code = abc_setproperty(method->code,name);}
-abc_code_t* abc_setslot(abc_code_t*prev, char* name);
-#define setslot(method,name) {method->code = abc_setslot(method->code,name);}
-abc_code_t* abc_setsuper(abc_code_t*prev, char* name);
-#define setsuper(method,name) {method->code = abc_setsuper(method->code,name);}
-abc_code_t* abc_strictequals(abc_code_t*prev);
-#define strictequals(method) {method->code = abc_strictequals(method->code);}
-abc_code_t* abc_subtract(abc_code_t*prev);
-#define subtract(method) {method->code = abc_subtract(method->code);}
-abc_code_t* abc_subtract_i(abc_code_t*prev);
-#define subtract_i(method) {method->code = abc_subtract_i(method->code);}
-abc_code_t* abc_swap(abc_code_t*prev);
-#define swap(method) {method->code = abc_swap(method->code);}
-abc_code_t* abc_throw(abc_code_t*prev);
-#define throw(method) {method->code = abc_throw(method->code);}
-abc_code_t* abc_typeof(abc_code_t*prev);
-#define typeof(method) {method->code = abc_typeof(method->code);}
-abc_code_t* abc_urshift(abc_code_t*prev);
-#define urshift(method) {method->code = abc_urshift(method->code);}
-abc_code_t* abc_xxx(abc_code_t*prev);
-#define xxx(method) {method->code = abc_xxx(method->code);}
+code_t* abc_add(code_t*prev);
+#define add(method) (method->code = abc_add(method->code))
+code_t* abc_add_i(code_t*prev);
+#define add_i(method) (method->code = abc_add_i(method->code))
+code_t* abc_astype(code_t*prev, char* name);
+#define astype(method,name) (method->code = abc_astype(method->code,name))
+code_t* abc_astypelate(code_t*prev);
+#define astypelate(method) (method->code = abc_astypelate(method->code))
+code_t* abc_bitand(code_t*prev);
+#define bitand(method) (method->code = abc_bitand(method->code))
+code_t* abc_bitnot(code_t*prev);
+#define bitnot(method) (method->code = abc_bitnot(method->code))
+code_t* abc_bitor(code_t*prev);
+#define bitor(method) (method->code = abc_bitor(method->code))
+code_t* abc_bitxor(code_t*prev);
+#define bitxor(method) (method->code = abc_bitxor(method->code))
+code_t* abc_call(code_t*prev, int v);
+#define call(method,v) (method->code = abc_call(method->code,v))
+code_t* abc_callmethod(code_t*prev, abc_method_body_t* m, int v);
+#define callmethod(method,m,v) (method->code = abc_callmethod(method->code,m,v))
+code_t* abc_callproplex(code_t*prev, char* name, int v);
+#define callproplex(method,name,v) (method->code = abc_callproplex(method->code,name,v))
+code_t* abc_callproperty(code_t*prev, char* name, int v);
+#define callproperty(method,name,v) (method->code = abc_callproperty(method->code,name,v))
+code_t* abc_callpropvoid(code_t*prev, char* name, int v);
+#define callpropvoid(method,name,v) (method->code = abc_callpropvoid(method->code,name,v))
+code_t* abc_callstatic(code_t*prev, abc_method_t* m, int v);
+#define callstatic(method,m,v) (method->code = abc_callstatic(method->code,m,v))
+code_t* abc_callsuper(code_t*prev, char* name, int v);
+#define callsuper(method,name,v) (method->code = abc_callsuper(method->code,name,v))
+code_t* abc_callsupervoid(code_t*prev, char* name, int v);
+#define callsupervoid(method,name,v) (method->code = abc_callsupervoid(method->code,name,v))
+code_t* abc_checkfilter(code_t*prev);
+#define checkfilter(method) (method->code = abc_checkfilter(method->code))
+code_t* abc_coerce(code_t*prev, char* name);
+#define coerce(method,name) (method->code = abc_coerce(method->code,name))
+code_t* abc_coerce_a(code_t*prev);
+#define coerce_a(method) (method->code = abc_coerce_a(method->code))
+code_t* abc_coerce_s(code_t*prev);
+#define coerce_s(method) (method->code = abc_coerce_s(method->code))
+code_t* abc_construct(code_t*prev, int v);
+#define construct(method,v) (method->code = abc_construct(method->code,v))
+code_t* abc_constructprop(code_t*prev, char* name, int v);
+#define constructprop(method,name,v) (method->code = abc_constructprop(method->code,name,v))
+code_t* abc_constructsuper(code_t*prev, int v);
+#define constructsuper(method,v) (method->code = abc_constructsuper(method->code,v))
+code_t* abc_convert_b(code_t*prev);
+#define convert_b(method) (method->code = abc_convert_b(method->code))
+code_t* abc_convert_i(code_t*prev);
+#define convert_i(method) (method->code = abc_convert_i(method->code))
+code_t* abc_convert_d(code_t*prev);
+#define convert_d(method) (method->code = abc_convert_d(method->code))
+code_t* abc_convert_o(code_t*prev);
+#define convert_o(method) (method->code = abc_convert_o(method->code))
+code_t* abc_convert_u(code_t*prev);
+#define convert_u(method) (method->code = abc_convert_u(method->code))
+code_t* abc_convert_s(code_t*prev);
+#define convert_s(method) (method->code = abc_convert_s(method->code))
+code_t* abc_debug(code_t*prev, void* debuginfo);
+#define debug(method,debuginfo) (method->code = abc_debug(method->code,debuginfo))
+code_t* abc_debugfile(code_t*prev, char* s);
+#define debugfile(method,s) (method->code = abc_debugfile(method->code,s))
+code_t* abc_debugline(code_t*prev, int v);
+#define debugline(method,v) (method->code = abc_debugline(method->code,v))
+code_t* abc_declocal(code_t*prev, int reg);
+#define declocal(method,reg) (method->code = abc_declocal(method->code,reg))
+code_t* abc_declocal_i(code_t*prev, int reg);
+#define declocal_i(method,reg) (method->code = abc_declocal_i(method->code,reg))
+code_t* abc_decrement(code_t*prev);
+#define decrement(method) (method->code = abc_decrement(method->code))
+code_t* abc_decrement_i(code_t*prev);
+#define decrement_i(method) (method->code = abc_decrement_i(method->code))
+code_t* abc_deleteproperty(code_t*prev, char* name);
+#define deleteproperty(method,name) (method->code = abc_deleteproperty(method->code,name))
+code_t* abc_divide(code_t*prev);
+#define divide(method) (method->code = abc_divide(method->code))
+code_t* abc_dup(code_t*prev);
+#define dup(method) (method->code = abc_dup(method->code))
+code_t* abc_dxns(code_t*prev, char* s);
+#define dxns(method,s) (method->code = abc_dxns(method->code,s))
+code_t* abc_dxnslate(code_t*prev);
+#define dxnslate(method) (method->code = abc_dxnslate(method->code))
+code_t* abc_equals(code_t*prev);
+#define equals(method) (method->code = abc_equals(method->code))
+code_t* abc_esc_xattr(code_t*prev);
+#define esc_xattr(method) (method->code = abc_esc_xattr(method->code))
+code_t* abc_esc_xelem(code_t*prev);
+#define esc_xelem(method) (method->code = abc_esc_xelem(method->code))
+code_t* abc_findproperty(code_t*prev, char* name);
+#define findproperty(method,name) (method->code = abc_findproperty(method->code,name))
+code_t* abc_findpropstrict(code_t*prev, char* name);
+#define findpropstrict(method,name) (method->code = abc_findpropstrict(method->code,name))
+code_t* abc_getdescendants(code_t*prev, char* name);
+#define getdescendants(method,name) (method->code = abc_getdescendants(method->code,name))
+code_t* abc_getglobalscope(code_t*prev);
+#define getglobalscope(method) (method->code = abc_getglobalscope(method->code))
+code_t* abc_getglobalslot(code_t*prev, int v);
+#define getglobalslot(method,v) (method->code = abc_getglobalslot(method->code,v))
+code_t* abc_getlex(code_t*prev, char* name);
+#define getlex(method,name) (method->code = abc_getlex(method->code,name))
+code_t* abc_getlocal(code_t*prev, int reg);
+#define getlocal(method,reg) (method->code = abc_getlocal(method->code,reg))
+code_t* abc_getlocal_0(code_t*prev);
+#define getlocal_0(method) (method->code = abc_getlocal_0(method->code))
+code_t* abc_getlocal_1(code_t*prev);
+#define getlocal_1(method) (method->code = abc_getlocal_1(method->code))
+code_t* abc_getlocal_2(code_t*prev);
+#define getlocal_2(method) (method->code = abc_getlocal_2(method->code))
+code_t* abc_getlocal_3(code_t*prev);
+#define getlocal_3(method) (method->code = abc_getlocal_3(method->code))
+code_t* abc_getproperty(code_t*prev, char* name);
+#define getproperty(method,name) (method->code = abc_getproperty(method->code,name))
+code_t* abc_getscopeobject(code_t*prev, int v);
+#define getscopeobject(method,v) (method->code = abc_getscopeobject(method->code,v))
+code_t* abc_getslot(code_t*prev, int v);
+#define getslot(method,v) (method->code = abc_getslot(method->code,v))
+code_t* abc_getsuper(code_t*prev, char* name);
+#define getsuper(method,name) (method->code = abc_getsuper(method->code,name))
+code_t* abc_greaterequals(code_t*prev);
+#define greaterequals(method) (method->code = abc_greaterequals(method->code))
+code_t* abc_hasnext(code_t*prev);
+#define hasnext(method) (method->code = abc_hasnext(method->code))
+code_t* abc_hasnext2(code_t*prev, int reg, int reg2);
+#define hasnext2(method,reg,reg2) (method->code = abc_hasnext2(method->code,reg,reg2))
+code_t* abc_ifeq(code_t*prev, code_t* label);
+#define ifeq(method,label) (method->code = abc_ifeq(method->code,label))
+code_t* abc_iffalse(code_t*prev, code_t* label);
+#define iffalse(method,label) (method->code = abc_iffalse(method->code,label))
+code_t* abc_ifge(code_t*prev, code_t* label);
+#define ifge(method,label) (method->code = abc_ifge(method->code,label))
+code_t* abc_ifgt(code_t*prev, code_t* label);
+#define ifgt(method,label) (method->code = abc_ifgt(method->code,label))
+code_t* abc_ifle(code_t*prev, code_t* label);
+#define ifle(method,label) (method->code = abc_ifle(method->code,label))
+code_t* abc_iflt(code_t*prev, code_t* label);
+#define iflt(method,label) (method->code = abc_iflt(method->code,label))
+code_t* abc_ifnge(code_t*prev, code_t* label);
+#define ifnge(method,label) (method->code = abc_ifnge(method->code,label))
+code_t* abc_ifngt(code_t*prev, code_t* label);
+#define ifngt(method,label) (method->code = abc_ifngt(method->code,label))
+code_t* abc_ifnle(code_t*prev, code_t* label);
+#define ifnle(method,label) (method->code = abc_ifnle(method->code,label))
+code_t* abc_ifnlt(code_t*prev, code_t* label);
+#define ifnlt(method,label) (method->code = abc_ifnlt(method->code,label))
+code_t* abc_ifne(code_t*prev, code_t* label);
+#define ifne(method,label) (method->code = abc_ifne(method->code,label))
+code_t* abc_ifstricteq(code_t*prev, code_t* label);
+#define ifstricteq(method,label) (method->code = abc_ifstricteq(method->code,label))
+code_t* abc_ifstrictne(code_t*prev, code_t* label);
+#define ifstrictne(method,label) (method->code = abc_ifstrictne(method->code,label))
+code_t* abc_iftrue(code_t*prev, code_t* label);
+#define iftrue(method,label) (method->code = abc_iftrue(method->code,label))
+code_t* abc_in(code_t*prev);
+#define in(method) (method->code = abc_in(method->code))
+code_t* abc_inclocal(code_t*prev, int reg);
+#define inclocal(method,reg) (method->code = abc_inclocal(method->code,reg))
+code_t* abc_inclocal_i(code_t*prev, int reg);
+#define inclocal_i(method,reg) (method->code = abc_inclocal_i(method->code,reg))
+code_t* abc_increment(code_t*prev);
+#define increment(method) (method->code = abc_increment(method->code))
+code_t* abc_increment_i(code_t*prev);
+#define increment_i(method) (method->code = abc_increment_i(method->code))
+code_t* abc_initproperty(code_t*prev, char* name);
+#define initproperty(method,name) (method->code = abc_initproperty(method->code,name))
+code_t* abc_instanceof(code_t*prev);
+#define instanceof(method) (method->code = abc_instanceof(method->code))
+code_t* abc_istype(code_t*prev, char* name);
+#define istype(method,name) (method->code = abc_istype(method->code,name))
+code_t* abc_istypelate(code_t*prev);
+#define istypelate(method) (method->code = abc_istypelate(method->code))
+code_t* abc_jump(code_t*prev, code_t* label);
+#define jump(method,label) (method->code = abc_jump(method->code,label))
+code_t* abc_kill(code_t*prev, int reg);
+#define kill(method,reg) (method->code = abc_kill(method->code,reg))
+code_t* abc_label(code_t*prev);
+#define label(method) (method->code = abc_label(method->code))
+code_t* abc_lessequals(code_t*prev);
+#define lessequals(method) (method->code = abc_lessequals(method->code))
+code_t* abc_lessthan(code_t*prev);
+#define lessthan(method) (method->code = abc_lessthan(method->code))
+code_t* abc_lookupswitch(code_t*prev, void* labels);
+#define lookupswitch(method,labels) (method->code = abc_lookupswitch(method->code,labels))
+code_t* abc_lshift(code_t*prev);
+#define lshift(method) (method->code = abc_lshift(method->code))
+code_t* abc_modulo(code_t*prev);
+#define modulo(method) (method->code = abc_modulo(method->code))
+code_t* abc_multiply(code_t*prev);
+#define multiply(method) (method->code = abc_multiply(method->code))
+code_t* abc_multiply_i(code_t*prev);
+#define multiply_i(method) (method->code = abc_multiply_i(method->code))
+code_t* abc_negate(code_t*prev);
+#define negate(method) (method->code = abc_negate(method->code))
+code_t* abc_negate_i(code_t*prev);
+#define negate_i(method) (method->code = abc_negate_i(method->code))
+code_t* abc_newactivation(code_t*prev);
+#define newactivation(method) (method->code = abc_newactivation(method->code))
+code_t* abc_newarray(code_t*prev, int v);
+#define newarray(method,v) (method->code = abc_newarray(method->code,v))
+code_t* abc_newcatch(code_t*prev, int v);
+#define newcatch(method,v) (method->code = abc_newcatch(method->code,v))
+code_t* abc_newclass(code_t*prev, abc_class_t* m);
+#define newclass(method,m) (method->code = abc_newclass(method->code,m))
+code_t* abc_newfunction(code_t*prev, abc_method_body_t* m);
+#define newfunction(method,m) (method->code = abc_newfunction(method->code,m))
+code_t* abc_newobject(code_t*prev, int v);
+#define newobject(method,v) (method->code = abc_newobject(method->code,v))
+code_t* abc_nextname(code_t*prev);
+#define nextname(method) (method->code = abc_nextname(method->code))
+code_t* abc_nextvalue(code_t*prev);
+#define nextvalue(method) (method->code = abc_nextvalue(method->code))
+code_t* abc_nop(code_t*prev);
+#define nop(method) (method->code = abc_nop(method->code))
+code_t* abc_not(code_t*prev);
+#define not(method) (method->code = abc_not(method->code))
+code_t* abc_pop(code_t*prev);
+#define pop(method) (method->code = abc_pop(method->code))
+code_t* abc_popscope(code_t*prev);
+#define popscope(method) (method->code = abc_popscope(method->code))
+code_t* abc_pushbyte(code_t*prev, int v);
+#define pushbyte(method,v) (method->code = abc_pushbyte(method->code,v))
+code_t* abc_pushdouble(code_t*prev, int v);
+#define pushdouble(method,v) (method->code = abc_pushdouble(method->code,v))
+code_t* abc_pushfalse(code_t*prev);
+#define pushfalse(method) (method->code = abc_pushfalse(method->code))
+code_t* abc_pushint(code_t*prev, int v);
+#define pushint(method,v) (method->code = abc_pushint(method->code,v))
+code_t* abc_pushnamespace(code_t*prev, int v);
+#define pushnamespace(method,v) (method->code = abc_pushnamespace(method->code,v))
+code_t* abc_pushnan(code_t*prev);
+#define pushnan(method) (method->code = abc_pushnan(method->code))
+code_t* abc_pushnull(code_t*prev);
+#define pushnull(method) (method->code = abc_pushnull(method->code))
+code_t* abc_pushscope(code_t*prev);
+#define pushscope(method) (method->code = abc_pushscope(method->code))
+code_t* abc_pushshort(code_t*prev, int v);
+#define pushshort(method,v) (method->code = abc_pushshort(method->code,v))
+code_t* abc_pushstring(code_t*prev, char* s);
+#define pushstring(method,s) (method->code = abc_pushstring(method->code,s))
+code_t* abc_pushtrue(code_t*prev);
+#define pushtrue(method) (method->code = abc_pushtrue(method->code))
+code_t* abc_pushuint(code_t*prev, int v);
+#define pushuint(method,v) (method->code = abc_pushuint(method->code,v))
+code_t* abc_pushundefined(code_t*prev);
+#define pushundefined(method) (method->code = abc_pushundefined(method->code))
+code_t* abc_pushwith(code_t*prev);
+#define pushwith(method) (method->code = abc_pushwith(method->code))
+code_t* abc_returnvalue(code_t*prev);
+#define returnvalue(method) (method->code = abc_returnvalue(method->code))
+code_t* abc_returnvoid(code_t*prev);
+#define returnvoid(method) (method->code = abc_returnvoid(method->code))
+code_t* abc_rshift(code_t*prev);
+#define rshift(method) (method->code = abc_rshift(method->code))
+code_t* abc_setlocal(code_t*prev, int reg);
+#define setlocal(method,reg) (method->code = abc_setlocal(method->code,reg))
+code_t* abc_setlocal_0(code_t*prev);
+#define setlocal_0(method) (method->code = abc_setlocal_0(method->code))
+code_t* abc_setlocal_1(code_t*prev);
+#define setlocal_1(method) (method->code = abc_setlocal_1(method->code))
+code_t* abc_setlocal_2(code_t*prev);
+#define setlocal_2(method) (method->code = abc_setlocal_2(method->code))
+code_t* abc_setlocal_3(code_t*prev);
+#define setlocal_3(method) (method->code = abc_setlocal_3(method->code))
+code_t* abc_setglobalslot(code_t*prev, int v);
+#define setglobalslot(method,v) (method->code = abc_setglobalslot(method->code,v))
+code_t* abc_setproperty(code_t*prev, char* name);
+#define setproperty(method,name) (method->code = abc_setproperty(method->code,name))
+code_t* abc_setslot(code_t*prev, char* name);
+#define setslot(method,name) (method->code = abc_setslot(method->code,name))
+code_t* abc_setsuper(code_t*prev, char* name);
+#define setsuper(method,name) (method->code = abc_setsuper(method->code,name))
+code_t* abc_strictequals(code_t*prev);
+#define strictequals(method) (method->code = abc_strictequals(method->code))
+code_t* abc_subtract(code_t*prev);
+#define subtract(method) (method->code = abc_subtract(method->code))
+code_t* abc_subtract_i(code_t*prev);
+#define subtract_i(method) (method->code = abc_subtract_i(method->code))
+code_t* abc_swap(code_t*prev);
+#define swap(method) (method->code = abc_swap(method->code))
+code_t* abc_throw(code_t*prev);
+#define throw(method) (method->code = abc_throw(method->code))
+code_t* abc_typeof(code_t*prev);
+#define typeof(method) (method->code = abc_typeof(method->code))
+code_t* abc_urshift(code_t*prev);
+#define urshift(method) (method->code = abc_urshift(method->code))
+code_t* abc_xxx(code_t*prev);
+#define xxx(method) (method->code = abc_xxx(method->code))
 #endif