summaryrefslogtreecommitdiffstats
path: root/squirrel_3_0_1_stable/squirrel/sqopcodes.h
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-11-08 02:25:01 +0100
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-11-08 02:25:01 +0100
commit8285a11a26d78784f26b76e6bcdfa479f6c1a345 (patch)
tree6d567d22754b2d65258b1557e18ea8b590c2c709 /squirrel_3_0_1_stable/squirrel/sqopcodes.h
parentFixed bug in cChunk.cpp not calculating RedstoneCircuits at the correct positions. Also, forgot to mention you can now place colored wool. (diff)
downloadcuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.tar
cuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.tar.gz
cuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.tar.bz2
cuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.tar.lz
cuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.tar.xz
cuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.tar.zst
cuberite-8285a11a26d78784f26b76e6bcdfa479f6c1a345.zip
Diffstat (limited to 'squirrel_3_0_1_stable/squirrel/sqopcodes.h')
-rw-r--r--squirrel_3_0_1_stable/squirrel/sqopcodes.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/squirrel_3_0_1_stable/squirrel/sqopcodes.h b/squirrel_3_0_1_stable/squirrel/sqopcodes.h
new file mode 100644
index 000000000..4d179812f
--- /dev/null
+++ b/squirrel_3_0_1_stable/squirrel/sqopcodes.h
@@ -0,0 +1,132 @@
+/* see copyright notice in squirrel.h */
+#ifndef _SQOPCODES_H_
+#define _SQOPCODES_H_
+
+#define MAX_FUNC_STACKSIZE 0xFF
+#define MAX_LITERALS ((SQInteger)0x7FFFFFFF)
+
+enum BitWiseOP {
+ BW_AND = 0,
+ BW_OR = 2,
+ BW_XOR = 3,
+ BW_SHIFTL = 4,
+ BW_SHIFTR = 5,
+ BW_USHIFTR = 6
+};
+
+enum CmpOP {
+ CMP_G = 0,
+ CMP_GE = 2,
+ CMP_L = 3,
+ CMP_LE = 4,
+ CMP_3W = 5
+};
+
+enum NewObjectType {
+ NOT_TABLE = 0,
+ NOT_ARRAY = 1,
+ NOT_CLASS = 2
+};
+
+enum AppendArrayType {
+ AAT_STACK = 0,
+ AAT_LITERAL = 1,
+ AAT_INT = 2,
+ AAT_FLOAT = 3,
+ AAT_BOOL = 4
+};
+
+enum SQOpcode
+{
+ _OP_LINE= 0x00,
+ _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_ADD= 0x11,
+ _OP_SUB= 0x12,
+ _OP_MUL= 0x13,
+ _OP_DIV= 0x14,
+ _OP_MOD= 0x15,
+ _OP_BITW= 0x16,
+ _OP_RETURN= 0x17,
+ _OP_LOADNULLS= 0x18,
+ _OP_LOADROOT= 0x19,
+ _OP_LOADBOOL= 0x1A,
+ _OP_DMOVE= 0x1B,
+ _OP_JMP= 0x1C,
+ //_OP_JNZ= 0x1D,
+ _OP_JCMP= 0x1D,
+ _OP_JZ= 0x1E,
+ _OP_SETOUTER= 0x1F,
+ _OP_GETOUTER= 0x20,
+ _OP_NEWOBJ= 0x21,
+ _OP_APPENDARRAY= 0x22,
+ _OP_COMPARITH= 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_CLONE= 0x35,
+ _OP_TYPEOF= 0x36,
+ _OP_PUSHTRAP= 0x37,
+ _OP_POPTRAP= 0x38,
+ _OP_THROW= 0x39,
+ _OP_NEWSLOTA= 0x3A,
+ _OP_GETBASE= 0x3B,
+ _OP_CLOSE= 0x3C,
+};
+
+struct SQInstructionDesc {
+ const SQChar *name;
+};
+
+struct SQInstruction
+{
+ SQInstruction(){};
+ SQInstruction(SQOpcode _op,SQInteger a0=0,SQInteger a1=0,SQInteger a2=0,SQInteger a3=0)
+ { op = _op;
+ _arg0 = (unsigned char)a0;_arg1 = (SQInt32)a1;
+ _arg2 = (unsigned char)a2;_arg3 = (unsigned char)a3;
+ }
+
+
+ SQInt32 _arg1;
+ unsigned char op;
+ unsigned char _arg0;
+ unsigned char _arg2;
+ unsigned char _arg3;
+};
+
+#include "squtils.h"
+typedef sqvector<SQInstruction> SQInstructionVec;
+
+#define NEW_SLOT_ATTRIBUTES_FLAG 0x01
+#define NEW_SLOT_STATIC_FLAG 0x02
+
+#endif // _SQOPCODES_H_