From ff85991e11886873555223c8a189a875004ad8bd Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Fri, 29 Jun 2018 21:20:02 +0200 Subject: [PATCH] [DEV] continue integration --- lutin_rabbit-core.py | 11 ------- rabbit/Array.hpp | 4 +++ rabbit/Class.hpp | 2 +- rabbit/Closure.cpp | 51 ++++++++++++++++++++++++++++++-- rabbit/Closure.hpp | 61 +++++++++++---------------------------- rabbit/Compiler.cpp | 4 +-- rabbit/ExceptionTrap.cpp | 16 ++++++++++ rabbit/ExceptionTrap.hpp | 29 +++++++------------ rabbit/FuncState.cpp | 2 +- rabbit/FuncState.hpp | 2 +- rabbit/FunctionProto.hpp | 6 ++-- rabbit/Generator.hpp | 14 ++++----- rabbit/Instance.hpp | 2 +- rabbit/Instruction.hpp | 20 +++++++++++++ rabbit/NativeClosure.hpp | 4 +-- rabbit/ObjectPtr.cpp | 2 +- rabbit/ObjectValue.hpp | 12 ++++---- rabbit/Outer.hpp | 2 +- rabbit/StringTable.cpp | 2 +- rabbit/VirtualMachine.cpp | 2 +- rabbit/VirtualMachine.hpp | 4 ++- rabbit/sqapi.cpp | 2 +- rabbit/sqbaselib.cpp | 2 +- rabbit/sqconfig.hpp | 26 +++++++++-------- rabbit/sqdebug.cpp | 2 +- rabbit/sqmem.cpp | 2 +- rabbit/sqopcodes.hpp | 24 --------------- 27 files changed, 165 insertions(+), 145 deletions(-) diff --git a/lutin_rabbit-core.py b/lutin_rabbit-core.py index fdac9cf..22d60b4 100644 --- a/lutin_rabbit-core.py +++ b/lutin_rabbit-core.py @@ -66,12 +66,8 @@ def configure(target, my_module): 'rabbit/WeakRef.cpp', 'rabbit/sqapi.cpp', 'rabbit/sqbaselib.cpp', - 'rabbit/sqcompiler.cpp', 'rabbit/sqdebug.cpp', - 'rabbit/sqfuncstate.cpp', - 'rabbit/sqlexer.cpp', 'rabbit/sqmem.cpp', - 'rabbit/sqobject.cpp', ]) my_module.compile_version("c++", 2011) my_module.add_depend([ @@ -120,15 +116,8 @@ def configure(target, my_module): 'rabbit/VirtualMachine.hpp', 'rabbit/WeakRef.hpp', 'rabbit/rabbit.hpp', - 'rabbit/sqclosure.hpp', - 'rabbit/sqcompiler.hpp', 'rabbit/sqconfig.hpp', - 'rabbit/sqfuncproto.hpp', - 'rabbit/sqfuncstate.hpp', - 'rabbit/sqlexer.hpp', - 'rabbit/sqobject.hpp', 'rabbit/sqopcodes.hpp', - 'rabbit/sqpcheader.hpp', 'rabbit/squtils.hpp', ]) diff --git a/rabbit/Array.hpp b/rabbit/Array.hpp index 2219f6d..00aa1be 100644 --- a/rabbit/Array.hpp +++ b/rabbit/Array.hpp @@ -7,7 +7,11 @@ */ #pragma once +#include +#include + namespace rabbit { + class SharedState; class Array : public rabbit::RefCounted { private: diff --git a/rabbit/Class.hpp b/rabbit/Class.hpp index 31f4572..6ba61c1 100644 --- a/rabbit/Class.hpp +++ b/rabbit/Class.hpp @@ -8,7 +8,7 @@ #pragma once #include -#include + #include #include diff --git a/rabbit/Closure.cpp b/rabbit/Closure.cpp index 4168418..cee8122 100644 --- a/rabbit/Closure.cpp +++ b/rabbit/Closure.cpp @@ -127,9 +127,56 @@ bool rabbit::Closure::load(rabbit::VirtualMachine *v,rabbit::UserPointer up,SQRE return true; } -rabbit::Closure::~Closure() -{ +rabbit::Closure::~Closure() { __Objrelease(_root); __Objrelease(_env); __Objrelease(_base); } + +rabbit::Closure::Closure(rabbit::SharedState *ss,rabbit::FunctionProto *func){ + _function = func; + __ObjaddRef(_function); _base = NULL; + _env = NULL; + _root=NULL; +} +rabbit::Closure *rabbit::Closure::create(rabbit::SharedState *ss,rabbit::FunctionProto *func,rabbit::WeakRef *root){ + int64_t size = _CALC_CLOSURE_SIZE(func); + rabbit::Closure *nc=(rabbit::Closure*)SQ_MALLOC(size); + new (nc) rabbit::Closure(ss,func); + nc->_outervalues = (rabbit::ObjectPtr *)(nc + 1); + nc->_defaultparams = &nc->_outervalues[func->_noutervalues]; + nc->_root = root; + __ObjaddRef(nc->_root); + _CONSTRUCT_VECTOR(rabbit::ObjectPtr,func->_noutervalues,nc->_outervalues); + _CONSTRUCT_VECTOR(rabbit::ObjectPtr,func->_ndefaultparams,nc->_defaultparams); + return nc; +} + +void rabbit::Closure::release(){ + rabbit::FunctionProto *f = _function; + int64_t size = _CALC_CLOSURE_SIZE(f); + _DESTRUCT_VECTOR(ObjectPtr,f->_noutervalues,_outervalues); + _DESTRUCT_VECTOR(ObjectPtr,f->_ndefaultparams,_defaultparams); + __Objrelease(_function); + this->~Closure(); + sq_vm_free(this,size); +} + +void rabbit::Closure::setRoot(rabbit::WeakRef *r) { + __Objrelease(_root); + _root = r; + __ObjaddRef(_root); +} + +Closure* rabbit::Closure::clone() { + rabbit::FunctionProto *f = _function; + rabbit::Closure * ret = rabbit::Closure::create(NULL,f,_root); + ret->_env = _env; + if(ret->_env) { + __ObjaddRef(ret->_env); + } + _COPY_VECTOR(ret->_outervalues,_outervalues,f->_noutervalues); + _COPY_VECTOR(ret->_defaultparams,_defaultparams,f->_ndefaultparams); + return ret; +} + diff --git a/rabbit/Closure.hpp b/rabbit/Closure.hpp index f614d0a..d4c6b2c 100644 --- a/rabbit/Closure.hpp +++ b/rabbit/Closure.hpp @@ -7,57 +7,30 @@ */ #pragma once +#include +#include +#include + namespace rabbit { + class SharedState; + class FunctionProto; + class VirtualMachine; + class WeakRef; + class ObjectPtr; + class Class; + #define _CALC_CLOSURE_SIZE(func) (sizeof(rabbit::Closure) + (func->_noutervalues*sizeof(rabbit::ObjectPtr)) + (func->_ndefaultparams*sizeof(rabbit::ObjectPtr))) class Closure : public rabbit::RefCounted { private: - Closure(rabbit::SharedState *ss,rabbit::FunctionProto *func){ - _function = func; - __ObjaddRef(_function); _base = NULL; - _env = NULL; - _root=NULL; - } + Closure(rabbit::SharedState *ss,rabbit::FunctionProto *func); public: - static rabbit::Closure *create(rabbit::SharedState *ss,rabbit::FunctionProto *func,rabbit::WeakRef *root){ - int64_t size = _CALC_CLOSURE_SIZE(func); - rabbit::Closure *nc=(rabbit::Closure*)SQ_MALLOC(size); - new (nc) rabbit::Closure(ss,func); - nc->_outervalues = (rabbit::ObjectPtr *)(nc + 1); - nc->_defaultparams = &nc->_outervalues[func->_noutervalues]; - nc->_root = root; - __ObjaddRef(nc->_root); - _CONSTRUCT_VECTOR(rabbit::ObjectPtr,func->_noutervalues,nc->_outervalues); - _CONSTRUCT_VECTOR(rabbit::ObjectPtr,func->_ndefaultparams,nc->_defaultparams); - return nc; - } - void release(){ - rabbit::FunctionProto *f = _function; - int64_t size = _CALC_CLOSURE_SIZE(f); - _DESTRUCT_VECTOR(ObjectPtr,f->_noutervalues,_outervalues); - _DESTRUCT_VECTOR(ObjectPtr,f->_ndefaultparams,_defaultparams); - __Objrelease(_function); - this->~rabbit::Closure(); - sq_vm_free(this,size); - } - void setRoot(rabbit::WeakRef *r) - { - __Objrelease(_root); - _root = r; - __ObjaddRef(_root); - } - rabbit::Closure *clone() - { - rabbit::FunctionProto *f = _function; - rabbit::Closure * ret = rabbit::Closure::create(NULL,f,_root); - ret->_env = _env; - if(ret->_env) __ObjaddRef(ret->_env); - _COPY_VECTOR(ret->_outervalues,_outervalues,f->_noutervalues); - _COPY_VECTOR(ret->_defaultparams,_defaultparams,f->_ndefaultparams); - return ret; - } - ~rabbit::Closure(); + static Closure *create(rabbit::SharedState *ss,rabbit::FunctionProto *func,rabbit::WeakRef *root); + void release(); + void setRoot(rabbit::WeakRef *r); + Closure *clone(); + ~Closure(); bool save(rabbit::VirtualMachine *v,rabbit::UserPointer up,SQWRITEFUNC write); static bool load(rabbit::VirtualMachine *v,rabbit::UserPointer up,SQREADFUNC read,rabbit::ObjectPtr &ret); diff --git a/rabbit/Compiler.cpp b/rabbit/Compiler.cpp index 220549c..6fd1e2b 100644 --- a/rabbit/Compiler.cpp +++ b/rabbit/Compiler.cpp @@ -7,7 +7,7 @@ */ #include -#include + #ifndef NO_COMPILER #include #include @@ -1162,7 +1162,7 @@ public: _fs->snoozeOpt(); int64_t expend = _fs->getCurrentPos(); int64_t expsize = (expend - expstart) + 1; - rabbit::InstructionVec exp; + etk::Vector exp; if(expsize > 0) { for(int64_t i = 0; i < expsize; i++) exp.pushBack(_fs->getInstruction(expstart + i)); diff --git a/rabbit/ExceptionTrap.cpp b/rabbit/ExceptionTrap.cpp index bb6ef32..3b0090a 100644 --- a/rabbit/ExceptionTrap.cpp +++ b/rabbit/ExceptionTrap.cpp @@ -7,3 +7,19 @@ */ #include +#include + + +rabbit::ExceptionTrap::ExceptionTrap(int64_t ss, + int64_t stackbase, + rabbit::Instruction *ip, + int64_t ex_target) { + _stacksize = ss; + _stackbase = stackbase; + _ip = ip; + _extarget = ex_target; +} + +rabbit::ExceptionTrap::ExceptionTrap(const rabbit::ExceptionTrap &et) { + (*this) = et; +} \ No newline at end of file diff --git a/rabbit/ExceptionTrap.hpp b/rabbit/ExceptionTrap.hpp index a4617c3..6b89cc8 100644 --- a/rabbit/ExceptionTrap.hpp +++ b/rabbit/ExceptionTrap.hpp @@ -10,29 +10,20 @@ #include #include -struct rabbit::Instruction; namespace rabbit { + class Instruction; class ExceptionTrap { public: - ExceptionTrap() { - - } + ExceptionTrap() = default; ExceptionTrap(int64_t ss, - int64_t stackbase, - rabbit::Instruction *ip, - int64_t ex_target) { - _stacksize = ss; - _stackbase = stackbase; - _ip = ip; - _extarget = ex_target; - } - ExceptionTrap(const rabbit::ExceptionTrap &et) { - (*this) = et; - } + int64_t stackbase, + rabbit::Instruction *ip, + int64_t ex_target); + ExceptionTrap(const rabbit::ExceptionTrap &et); - int64_t _stackbase; - int64_t _stacksize; - rabbit::Instruction *_ip; - int64_t _extarget; + int64_t _stackbase = 0; + int64_t _stacksize = 0; + rabbit::Instruction *_ip = nullptr; + int64_t _extarget = 0; }; } diff --git a/rabbit/FuncState.cpp b/rabbit/FuncState.cpp index bb16f3e..b55f677 100644 --- a/rabbit/FuncState.cpp +++ b/rabbit/FuncState.cpp @@ -647,7 +647,7 @@ void FuncState::popChildState() _childstates.popBack(); } -FuncState::~rabbit::FuncState() +FuncState::~FuncState() { while(_childstates.size() > 0) { diff --git a/rabbit/FuncState.hpp b/rabbit/FuncState.hpp index 08ce6ca..857085d 100644 --- a/rabbit/FuncState.hpp +++ b/rabbit/FuncState.hpp @@ -64,7 +64,7 @@ namespace rabbit { etk::Vector _functions; etk::Vector _parameters; etk::Vector _outervalues; - rabbit::InstructionVec _instructions; + etk::Vector _instructions; etk::Vector _localvarinfos; rabbit::ObjectPtr _literals; rabbit::ObjectPtr _strings; diff --git a/rabbit/FunctionProto.hpp b/rabbit/FunctionProto.hpp index e52bbc4..afd2b55 100644 --- a/rabbit/FunctionProto.hpp +++ b/rabbit/FunctionProto.hpp @@ -22,7 +22,7 @@ namespace rabbit { ~FunctionProto(); public: - static rabbit::FunctionProto *create(rabbit::SharedState *ss,int64_t ninstructions, + FunctionProto *create(rabbit::SharedState *ss,int64_t ninstructions, int64_t nliterals,int64_t nparameters, int64_t nfunctions,int64_t noutervalues, int64_t nlineinfos,int64_t nlocalvarinfos,int64_t ndefaultparams) @@ -30,7 +30,7 @@ namespace rabbit { rabbit::FunctionProto *f; //I compact the whole class and members in a single memory allocation f = (rabbit::FunctionProto *)sq_vm_malloc(_FUNC_SIZE(ninstructions,nliterals,nparameters,nfunctions,noutervalues,nlineinfos,nlocalvarinfos,ndefaultparams)); - new (f) rabbit::FunctionProto(ss); + new ((char*)f) rabbit::FunctionProto(ss); f->_ninstructions = ninstructions; f->_literals = (rabbit::ObjectPtr*)&f->_instructions[ninstructions]; f->_nliterals = nliterals; @@ -63,7 +63,7 @@ namespace rabbit { //_DESTRUCT_VECTOR(rabbit::LineInfo,_nlineinfos,_lineinfos); //not required are 2 integers _DESTRUCT_VECTOR(rabbit::LocalVarInfo,_nlocalvarinfos,_localvarinfos); int64_t size = _FUNC_SIZE(_ninstructions,_nliterals,_nparameters,_nfunctions,_noutervalues,_nlineinfos,_nlocalvarinfos,_ndefaultparams); - this->~rabbit::FunctionProto(); + this->~FunctionProto(); sq_vm_free(this,size); } diff --git a/rabbit/Generator.hpp b/rabbit/Generator.hpp index 1a17d61..d2e204f 100644 --- a/rabbit/Generator.hpp +++ b/rabbit/Generator.hpp @@ -12,18 +12,18 @@ namespace rabbit { public: enum rabbit::GeneratorState{eRunning,eSuspended,eDead}; private: - rabbit::Generator(rabbit::SharedState *ss,rabbit::Closure *closure){ - _closure=closure; - _state=eRunning; - _ci._generator=NULL; + Generator(rabbit::SharedState *ss,rabbit::Closure *closure){ + _closure = closure; + _state = eRunning; + _ci._generator = NULL; } public: - static rabbit::Generator *create(rabbit::SharedState *ss,rabbit::Closure *closure){ + static Generator *create(rabbit::SharedState *ss,rabbit::Closure *closure){ rabbit::Generator *nc=(rabbit::Generator*)SQ_MALLOC(sizeof(rabbit::Generator)); - new (nc) rabbit::Generator(ss,closure); + new ((char*)nc) rabbit::Generator(ss,closure); return nc; } - ~rabbit::Generator() + ~Generator() { } diff --git a/rabbit/Instance.hpp b/rabbit/Instance.hpp index 70ef93f..80f2ad3 100644 --- a/rabbit/Instance.hpp +++ b/rabbit/Instance.hpp @@ -8,7 +8,7 @@ #pragma once #include -#include + #include diff --git a/rabbit/Instruction.hpp b/rabbit/Instruction.hpp index b403036..7b81059 100644 --- a/rabbit/Instruction.hpp +++ b/rabbit/Instruction.hpp @@ -9,4 +9,24 @@ namespace rabbit { + class InstructionDesc { + public: + const rabbit::Char *name; + }; + + class Instruction { + Instruction(){}; + Instruction(SQOpcode _op,int64_t a0=0,int64_t a1=0,int64_t a2=0,int64_t a3=0) { + op = (unsigned char)_op; + _arg0 = (unsigned char)a0;_arg1 = (int32_t)a1; + _arg2 = (unsigned char)a2;_arg3 = (unsigned char)a3; + } + + int32_t _arg1; + unsigned char op; + unsigned char _arg0; + unsigned char _arg2; + unsigned char _arg3; + }; + } diff --git a/rabbit/NativeClosure.hpp b/rabbit/NativeClosure.hpp index c2564db..f2aea80 100644 --- a/rabbit/NativeClosure.hpp +++ b/rabbit/NativeClosure.hpp @@ -39,14 +39,14 @@ namespace rabbit { ret->_nparamscheck = _nparamscheck; return ret; } - ~rabbit::NativeClosure() + ~NativeClosure() { __Objrelease(_env); } void release(){ int64_t size = _CALC_NATVIVECLOSURE_SIZE(_noutervalues); _DESTRUCT_VECTOR(ObjectPtr,_noutervalues,_outervalues); - this->~rabbit::NativeClosure(); + this->~NativeClosure(); sq_free(this,size); } diff --git a/rabbit/ObjectPtr.cpp b/rabbit/ObjectPtr.cpp index 0e163fa..86992b9 100644 --- a/rabbit/ObjectPtr.cpp +++ b/rabbit/ObjectPtr.cpp @@ -133,7 +133,7 @@ void rabbit::ObjectPtr::Null() { rabbit::ObjectType tOldType = _type; rabbit::ObjectValue unOldVal = _unVal; _type = rabbit::OT_NULL; - _unVal.raw = (SQRawObjectVal)NULL; + _unVal.raw = (rabbit::RawObjectVal)NULL; __release(tOldType ,unOldVal); } diff --git a/rabbit/ObjectValue.hpp b/rabbit/ObjectValue.hpp index 26ce522..4de1dad 100644 --- a/rabbit/ObjectValue.hpp +++ b/rabbit/ObjectValue.hpp @@ -13,14 +13,14 @@ namespace rabbit { union ObjectValue { - struct rabbit::Closure *pClosure; - struct rabbit::Outer *pOuter; - struct rabbit::Generator *pGenerator; - struct rabbit::NativeClosure *pNativeClosure; int64_t nInteger; float_t fFloat; - struct rabbit::FunctionProto *pFunctionProto; + rabbit::FunctionProto *pFunctionProto; + rabbit::Closure *pClosure; + rabbit::Outer *pOuter; + rabbit::Generator *pGenerator; + rabbit::NativeClosure *pNativeClosure; rabbit::Table* pTable; rabbit::String* pString; rabbit::Class* pClass; @@ -33,7 +33,7 @@ namespace rabbit { rabbit::Array* pArray; rabbit::UserData* pUserData; - SQRawObjectVal raw; + rabbit::RawObjectVal raw; }; } diff --git a/rabbit/Outer.hpp b/rabbit/Outer.hpp index fc2cb60..7fab5b9 100644 --- a/rabbit/Outer.hpp +++ b/rabbit/Outer.hpp @@ -25,7 +25,7 @@ namespace rabbit { } void release() { - this->~rabbit::Outer(); + this->~Outer(); sq_vm_free(this,sizeof(rabbit::Outer)); } rabbit::ObjectPtr *_valptr; /* pointer to value on stack, or _value below */ diff --git a/rabbit/StringTable.cpp b/rabbit/StringTable.cpp index d4edab9..ace8b64 100644 --- a/rabbit/StringTable.cpp +++ b/rabbit/StringTable.cpp @@ -91,7 +91,7 @@ void rabbit::StringTable::remove(rabbit::String *bs) _strings[h] = s->_next; _slotused--; int64_t slen = s->_len; - s->~rabbit::String(); + s->~String(); SQ_FREE(s,sizeof(rabbit::String) + sq_rsl(slen)); return; } diff --git a/rabbit/VirtualMachine.cpp b/rabbit/VirtualMachine.cpp index 4108a64..0823676 100644 --- a/rabbit/VirtualMachine.cpp +++ b/rabbit/VirtualMachine.cpp @@ -5,7 +5,7 @@ * @copyright 2003-2017, Alberto DEMICHELIS, all right reserved * @license MPL-2 (see license file) */ -#include + #include #include #include diff --git a/rabbit/VirtualMachine.hpp b/rabbit/VirtualMachine.hpp index 56111c8..d586c37 100644 --- a/rabbit/VirtualMachine.hpp +++ b/rabbit/VirtualMachine.hpp @@ -7,13 +7,15 @@ */ #pragma once +#include #include -#include + #include #include #include #include #include +#include #define MAX_NATIVE_CALLS 100 diff --git a/rabbit/sqapi.cpp b/rabbit/sqapi.cpp index 5744f49..d844f8a 100644 --- a/rabbit/sqapi.cpp +++ b/rabbit/sqapi.cpp @@ -5,7 +5,7 @@ * @copyright 2003-2017, Alberto DEMICHELIS, all right reserved * @license MPL-2 (see license file) */ -#include + #include diff --git a/rabbit/sqbaselib.cpp b/rabbit/sqbaselib.cpp index 1b5ca2b..d65f424 100644 --- a/rabbit/sqbaselib.cpp +++ b/rabbit/sqbaselib.cpp @@ -5,7 +5,7 @@ * @copyright 2003-2017, Alberto DEMICHELIS, all right reserved * @license MPL-2 (see license file) */ -#include + #include diff --git a/rabbit/sqconfig.hpp b/rabbit/sqconfig.hpp index b735126..64cfaf9 100644 --- a/rabbit/sqconfig.hpp +++ b/rabbit/sqconfig.hpp @@ -15,13 +15,15 @@ typedef double float_t; typedef float float_t; #endif -#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) -typedef uint64_t SQRawObjectVal; //must be 64bits -#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; } -#else -typedef uint64_t SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise -#define SQ_OBJECT_RAWINIT() -#endif +namespace rabbit { + #if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) + using RawObjectVal = uint64_t; //must be 64bits + #define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; } + #else + using RawObjectVal = uint64_t; //is 32 bits on 32 bits builds and 64 bits otherwise + #define SQ_OBJECT_RAWINIT() + #endif +} #ifndef SQ_ALIGNMENT #define SQ_ALIGNMENT 8 @@ -134,11 +136,6 @@ namespace rabbit { -struct rabbit::Closure; -struct rabbit::Generator; -struct rabbit::NativeClosure; -struct rabbit::FunctionProto; -struct rabbit::Outer; namespace rabbit { class UserData; class Array; @@ -154,4 +151,9 @@ namespace rabbit { class Table; class String; class SharedState; + class Closure; + class Generator; + class NativeClosure; + class FunctionProto; + class Outer; } \ No newline at end of file diff --git a/rabbit/sqdebug.cpp b/rabbit/sqdebug.cpp index e6b29ba..6123a06 100644 --- a/rabbit/sqdebug.cpp +++ b/rabbit/sqdebug.cpp @@ -6,7 +6,7 @@ * @license MPL-2 (see license file) */ -#include + #include #include #include diff --git a/rabbit/sqmem.cpp b/rabbit/sqmem.cpp index 814d50e..ab064a0 100644 --- a/rabbit/sqmem.cpp +++ b/rabbit/sqmem.cpp @@ -6,7 +6,7 @@ * @license MPL-2 (see license file) */ -#include + #ifndef SQ_EXCLUDE_DEFAULT_MEMFUNCTIONS void *sq_vm_malloc(uint64_t size){ return malloc(size); } diff --git a/rabbit/sqopcodes.hpp b/rabbit/sqopcodes.hpp index 20bb61c..db075ad 100644 --- a/rabbit/sqopcodes.hpp +++ b/rabbit/sqopcodes.hpp @@ -107,30 +107,6 @@ enum SQOpcode _OP_CLOSE= 0x3C }; -struct rabbit::InstructionDesc { - const rabbit::Char *name; -}; - -struct rabbit::Instruction -{ - rabbit::Instruction(){}; - rabbit::Instruction(SQOpcode _op,int64_t a0=0,int64_t a1=0,int64_t a2=0,int64_t a3=0) - { op = (unsigned char)_op; - _arg0 = (unsigned char)a0;_arg1 = (int32_t)a1; - _arg2 = (unsigned char)a2;_arg3 = (unsigned char)a3; - } - - - int32_t _arg1; - unsigned char op; - unsigned char _arg0; - unsigned char _arg2; - unsigned char _arg3; -}; - -#include -typedef etk::Vector rabbit::InstructionVec; - #define NEW_SLOT_ATTRIBUTES_FLAG 0x01 #define NEW_SLOT_STATIC_FLAG 0x02