CMP_G = 0,\r
CMP_GE = 2, \r
CMP_L = 3,\r
- CMP_LE = 4\r
+ CMP_LE = 4,\r
+ CMP_3W = 5\r
};\r
+\r
+enum NewObjectType {\r
+ NOT_TABLE = 0,\r
+ NOT_ARRAY = 1,\r
+ NOT_CLASS = 2\r
+};\r
+\r
+enum AppendArrayType {\r
+ AAT_STACK = 0,\r
+ AAT_LITERAL = 1,\r
+ AAT_INT = 2,\r
+ AAT_FLOAT = 3,\r
+ AAT_BOOL = 4\r
+};\r
+\r
enum SQOpcode\r
{\r
_OP_LINE= 0x00, \r
_OP_GET= 0x0E,\r
_OP_EQ= 0x0F,\r
_OP_NE= 0x10,\r
- _OP_ARITH= 0x11,\r
- _OP_BITW= 0x12,\r
- _OP_RETURN= 0x13, \r
- _OP_LOADNULLS= 0x14, \r
- _OP_LOADROOTTABLE= 0x15,\r
- _OP_LOADBOOL= 0x16,\r
- _OP_DMOVE= 0x17, \r
- _OP_JMP= 0x18, \r
- _OP_JNZ= 0x19, \r
- _OP_JZ= 0x1A, \r
- _OP_LOADFREEVAR= 0x1B, \r
- _OP_VARGC= 0x1C, \r
- _OP_GETVARGV= 0x1D, \r
- _OP_NEWTABLE= 0x1E, \r
- _OP_NEWARRAY= 0x1F, \r
- _OP_APPENDARRAY= 0x20, \r
- _OP_GETPARENT= 0x21, \r
- _OP_COMPARITH= 0x22, \r
- _OP_COMPARITHL= 0x23, \r
+ _OP_ADD= 0x11,\r
+ _OP_SUB= 0x12,\r
+ _OP_MUL= 0x13,\r
+ _OP_DIV= 0x14,\r
+ _OP_MOD= 0x15,\r
+ _OP_BITW= 0x16,\r
+ _OP_RETURN= 0x17, \r
+ _OP_LOADNULLS= 0x18, \r
+ _OP_LOADROOT= 0x19,\r
+ _OP_LOADBOOL= 0x1A,\r
+ _OP_DMOVE= 0x1B, \r
+ _OP_JMP= 0x1C, \r
+ //_OP_JNZ= 0x1D,\r
+ _OP_JCMP= 0x1D,\r
+ _OP_JZ= 0x1E, \r
+ _OP_SETOUTER= 0x1F, \r
+ _OP_GETOUTER= 0x20, \r
+ _OP_NEWOBJ= 0x21,\r
+ _OP_APPENDARRAY= 0x22, \r
+ _OP_COMPARITH= 0x23, \r
_OP_INC= 0x24, \r
_OP_INCL= 0x25, \r
_OP_PINC= 0x26, \r
_OP_RESUME= 0x32,\r
_OP_FOREACH= 0x33,\r
_OP_POSTFOREACH= 0x34,\r
- _OP_DELEGATE= 0x35,\r
- _OP_CLONE= 0x36,\r
- _OP_TYPEOF= 0x37,\r
- _OP_PUSHTRAP= 0x38,\r
- _OP_POPTRAP= 0x39,\r
- _OP_THROW= 0x3A,\r
- _OP_CLASS= 0x3B,\r
- _OP_NEWSLOTA= 0x3C,\r
+ _OP_CLONE= 0x35,\r
+ _OP_TYPEOF= 0x36,\r
+ _OP_PUSHTRAP= 0x37,\r
+ _OP_POPTRAP= 0x38,\r
+ _OP_THROW= 0x39,\r
+ _OP_NEWSLOTA= 0x3A,\r
+ _OP_GETBASE= 0x3B,\r
+ _OP_CLOSE= 0x3C,\r
}; \r
\r
struct SQInstructionDesc { \r