New grow and skid sounds from remaxim
[supertux.git] / src / squirrel / squirrel / sqopcodes.h
index dbb7d0c..a05788b 100644 (file)
@@ -3,11 +3,11 @@
 #define _SQOPCODES_H_
 
 #define MAX_FUNC_STACKSIZE 0xFF
-#define MAX_LITERALS 0xFFFFFFFF
+#define MAX_LITERALS ((SQInteger)0x7FFFFFFF)
 
 enum BitWiseOP {
        BW_AND = 0,
-       BW_OR = 2,      //like ADD
+       BW_OR = 2,      
        BW_XOR = 3,
        BW_SHIFTL = 4,
        BW_SHIFTR = 5,
@@ -16,70 +16,75 @@ enum BitWiseOP {
 
 enum CmpOP {
        CMP_G = 0,
-       CMP_GE = 2,     //like ADD
+       CMP_GE = 2,     
        CMP_L = 3,
        CMP_LE = 4
 };
 enum SQOpcode
 {
        _OP_LINE=                               0x00,   
-       _OP_LOAD=                               0x01,   
-       _OP_TAILCALL=                   0x02,   
-       _OP_CALL=                               0x03,   
-       _OP_PREPCALL=                   0x04,   
-       _OP_PREPCALLK=                  0x05,   
-       _OP_GETK=                               0x06,   
-       _OP_MOVE=                               0x07,   
-       _OP_NEWSLOT=                    0x08,   
-       _OP_DELETE=                             0x09,   
-       _OP_SET=                                0x0A,   
-       _OP_GET=                                0x0B,
-       _OP_EQ=                                 0x0C,
-       _OP_NE=                                 0x0D,
-       _OP_ARITH=                              0x0E,
-       _OP_BITW=                               0x0F,
-       _OP_RETURN=                             0x10,   
-       _OP_LOADNULLS=                  0x11,   
-       _OP_LOADROOTTABLE=              0x12,   
-       _OP_DMOVE=                              0x13,   
-       _OP_JMP=                                0x14,   
-       _OP_JNZ=                                0x15,   
-       _OP_JZ=                                 0x16,   
-       _OP_LOADFREEVAR=                0x17,   
-       _OP_VARGC=                              0x18,   
-       _OP_GETVARGV=                   0x19,   
-       _OP_NEWTABLE=                   0x1A,   
-       _OP_NEWARRAY=                   0x1B,   
-       _OP_APPENDARRAY=                0x1C,   
-       _OP_GETPARENT=                  0x1D,   
-       _OP_COMPARITH=                  0x1E,   
-       _OP_COMPARITHL=                 0x1F,   
-       _OP_INC=                                0x20,   
-       _OP_INCL=                               0x21,   
-       _OP_PINC=                               0x22,   
-       _OP_PINCL=                              0x23,   
-       _OP_CMP=                                0x24,
-       _OP_EXISTS=                             0x25,   
-       _OP_INSTANCEOF=                 0x26,
-       _OP_AND=                                0x27,
-       _OP_OR=                                 0x28,
-       _OP_NEG=                                0x29,
-       _OP_NOT=                                0x2A,
-       _OP_BWNOT=                              0x2B,   
-       _OP_CLOSURE=                    0x2C,   
-       _OP_YIELD=                              0x2D,   
-       _OP_RESUME=                             0x2E,
-       _OP_FOREACH=                    0x2F,
-       _OP_DELEGATE=                   0x30,
-       _OP_CLONE=                              0x31,
-       _OP_TYPEOF=                             0x32,
-       _OP_PUSHTRAP=                   0x33,
-       _OP_POPTRAP=                    0x34,
-       _OP_THROW=                              0x35,
-       _OP_CLASS=                              0x36,
-       _OP_NEWSLOTA=                   0x37,
-       _OP_LOADBOOL=                   0x38
+       _OP_LOAD=                               0x01,
+       _OP_LOADINT=                    0x02,
+       _OP_LOADFLOAT=                  0x03,
+       _OP_DLOAD=                              0x04,
+       _OP_TAILCALL=                   0x05,   
+       _OP_CALL=                               0x06,   
+       _OP_PREPCALL=                   0x07,   
+       _OP_PREPCALLK=                  0x08,   
+       _OP_GETK=                               0x09,   
+       _OP_MOVE=                               0x0A,   
+       _OP_NEWSLOT=                    0x0B,   
+       _OP_DELETE=                             0x0C,   
+       _OP_SET=                                0x0D,   
+       _OP_GET=                                0x0E,
+       _OP_EQ=                                 0x0F,
+       _OP_NE=                                 0x10,
+       _OP_ARITH=                              0x11,
+       _OP_BITW=                               0x12,
+       _OP_RETURN=                             0x13,   
+       _OP_LOADNULLS=                  0x14,   
+       _OP_LOADROOTTABLE=              0x15,
+       _OP_LOADBOOL=                   0x16,
+       _OP_DMOVE=                              0x17,   
+       _OP_JMP=                                0x18,   
+       _OP_JNZ=                                0x19,   
+       _OP_JZ=                                 0x1A,   
+       _OP_LOADFREEVAR=                0x1B,   
+       _OP_VARGC=                              0x1C,   
+       _OP_GETVARGV=                   0x1D,   
+       _OP_NEWTABLE=                   0x1E,   
+       _OP_NEWARRAY=                   0x1F,   
+       _OP_APPENDARRAY=                0x20,   
+       _OP_GETPARENT=                  0x21,   
+       _OP_COMPARITH=                  0x22,   
+       _OP_COMPARITHL=                 0x23,   
+       _OP_INC=                                0x24,   
+       _OP_INCL=                               0x25,   
+       _OP_PINC=                               0x26,   
+       _OP_PINCL=                              0x27,   
+       _OP_CMP=                                0x28,
+       _OP_EXISTS=                             0x29,   
+       _OP_INSTANCEOF=                 0x2A,
+       _OP_AND=                                0x2B,
+       _OP_OR=                                 0x2C,
+       _OP_NEG=                                0x2D,
+       _OP_NOT=                                0x2E,
+       _OP_BWNOT=                              0x2F,   
+       _OP_CLOSURE=                    0x30,   
+       _OP_YIELD=                              0x31,   
+       _OP_RESUME=                             0x32,
+       _OP_FOREACH=                    0x33,
+       _OP_POSTFOREACH=                0x34,
+       _OP_DELEGATE=                   0x35,
+       _OP_CLONE=                              0x36,
+       _OP_TYPEOF=                             0x37,
+       _OP_PUSHTRAP=                   0x38,
+       _OP_POPTRAP=                    0x39,
+       _OP_THROW=                              0x3A,
+       _OP_CLASS=                              0x3B,
+       _OP_NEWSLOTA=                   0x3C,
 };                                                       
+
 struct SQInstructionDesc {       
        const SQChar *name;               
 };                                                       
@@ -87,14 +92,14 @@ struct SQInstructionDesc {
 struct SQInstruction 
 {
        SQInstruction(){};
-       SQInstruction(SQOpcode _op,int a0=0,int a1=0,int a2=0,int a3=0)
+       SQInstruction(SQOpcode _op,SQInteger a0=0,SQInteger a1=0,SQInteger a2=0,SQInteger a3=0)
        {       op = _op;
-               _arg0 = a0;_arg1 = a1;
-               _arg2 = a2;_arg3 = a3;
+               _arg0 = (unsigned char)a0;_arg1 = (SQInt32)a1;
+               _arg2 = (unsigned char)a2;_arg3 = (unsigned char)a3;
        }
     
        
-       unsigned int _arg1;
+       SQInt32 _arg1;
        unsigned char op;
        unsigned char _arg0;
        unsigned char _arg2;
@@ -104,4 +109,7 @@ struct SQInstruction
 #include "squtils.h"
 typedef sqvector<SQInstruction> SQInstructionVec;
 
+#define NEW_SLOT_ATTRIBUTES_FLAG       0x01
+#define NEW_SLOT_STATIC_FLAG           0x02
+
 #endif // _SQOPCODES_H_