43 #include "as_config.h" 45 #ifndef AS_NO_COMPILER 47 #include "as_memory.h" 51 #define BYTECODE_SIZE 4 52 #define MAX_DATA_SIZE 8 53 #define MAX_INSTR_SIZE (BYTECODE_SIZE+MAX_DATA_SIZE) 71 void OptimizeLocally(
const asCArray<int> &tempVariableOffsets);
72 void ExtractLineNumbers();
75 int ResolveJumpAddresses();
80 void Output(asDWORD *array);
90 int RemoveLastInstr();
91 asDWORD GetLastInstrValueDW();
95 bool IsVarUsed(
int offset);
96 void ExchangeVar(
int oldOffset,
int newOffset);
97 bool IsSimpleExpression();
99 void Label(
short label);
100 void Line(
int line,
int column,
int scriptIdx);
101 void ObjInfo(
int offset,
int info);
102 void Block(
bool start);
103 void TryBlock(
short catchLabel);
105 void VarDecl(
int varDeclIdx);
106 void Call(asEBCInstr bc,
int funcID,
int pop);
107 void CallPtr(asEBCInstr bc,
int funcPtrVar,
int pop);
108 void Alloc(asEBCInstr bc,
void *objID,
int funcID,
int pop);
110 void JmpP(
int var, asDWORD max);
112 int InsertFirstInstrDWORD(asEBCInstr bc, asDWORD param);
113 int InsertFirstInstrQWORD(asEBCInstr bc, asQWORD param);
114 int Instr(asEBCInstr bc);
115 int InstrQWORD(asEBCInstr bc, asQWORD param);
116 int InstrDOUBLE(asEBCInstr bc,
double param);
117 int InstrPTR(asEBCInstr bc,
void *param);
118 int InstrDWORD(asEBCInstr bc, asDWORD param);
119 int InstrWORD(asEBCInstr bc, asWORD param);
120 int InstrSHORT(asEBCInstr bc,
short param);
121 int InstrFLOAT(asEBCInstr bc,
float param);
122 int InstrINT(asEBCInstr bc,
int param);
123 int InstrW_W_W(asEBCInstr bc,
int a,
int b,
int c);
124 int InstrSHORT_B(asEBCInstr bc,
short a, asBYTE b);
125 int InstrSHORT_W(asEBCInstr bc,
short a, asWORD b);
126 int InstrSHORT_DW(asEBCInstr bc,
short a, asDWORD b);
127 int InstrSHORT_QW(asEBCInstr bc,
short a, asQWORD b);
128 int InstrW_DW(asEBCInstr bc, asWORD a, asDWORD b);
129 int InstrW_QW(asEBCInstr bc, asWORD a, asQWORD b);
130 int InstrW_PTR(asEBCInstr bc,
short a,
void *param);
131 int InstrW_FLOAT(asEBCInstr bc, asWORD a,
float b);
132 int InstrW_W(asEBCInstr bc,
int w,
int b);
133 int InstrSHORT_DW_DW(asEBCInstr bc,
short a, asDWORD b, asDWORD c);
141 int largestStackUsed;
157 bool IsTemporary(
int offset);
165 int AddInstruction();
166 int AddInstructionFirst();
185 int GetStackIncrease();
203 #endif // AS_NO_COMPILER Definition: as_bytecode.h:59
Definition: as_scriptfunction.h:146
Definition: as_bytecode.h:176
Definition: as_scriptengine.h:64