The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Macros | Enumerations | Variables
lopcodes.h File Reference
#include "llimits.h"
Include dependency graph for lopcodes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SIZE_C   9
 
#define SIZE_B   9
 
#define SIZE_Bx   (SIZE_C + SIZE_B)
 
#define SIZE_A   8
 
#define SIZE_Ax   (SIZE_C + SIZE_B + SIZE_A)
 
#define SIZE_OP   6
 
#define POS_OP   0
 
#define POS_A   (POS_OP + SIZE_OP)
 
#define POS_C   (POS_A + SIZE_A)
 
#define POS_B   (POS_C + SIZE_C)
 
#define POS_Bx   POS_C
 
#define POS_Ax   POS_A
 
#define MAXARG_Bx   MAX_INT
 
#define MAXARG_sBx   MAX_INT
 
#define MAXARG_Ax   MAX_INT
 
#define MAXARG_A   ((1<<SIZE_A)-1)
 
#define MAXARG_B   ((1<<SIZE_B)-1)
 
#define MAXARG_C   ((1<<SIZE_C)-1)
 
#define MASK1(n, p)   ((~((~(Instruction)0)<<(n)))<<(p))
 
#define MASK0(n, p)   (~MASK1(n,p))
 
#define GET_OPCODE(i)   (cast(OpCode, ((i)>>POS_OP) & MASK1(SIZE_OP,0)))
 
#define SET_OPCODE(i, o)
 
#define getarg(i, pos, size)   (cast(int, ((i)>>pos) & MASK1(size,0)))
 
#define setarg(i, v, pos, size)
 
#define GETARG_A(i)   getarg(i, POS_A, SIZE_A)
 
#define SETARG_A(i, v)   setarg(i, v, POS_A, SIZE_A)
 
#define GETARG_B(i)   getarg(i, POS_B, SIZE_B)
 
#define SETARG_B(i, v)   setarg(i, v, POS_B, SIZE_B)
 
#define GETARG_C(i)   getarg(i, POS_C, SIZE_C)
 
#define SETARG_C(i, v)   setarg(i, v, POS_C, SIZE_C)
 
#define GETARG_Bx(i)   getarg(i, POS_Bx, SIZE_Bx)
 
#define SETARG_Bx(i, v)   setarg(i, v, POS_Bx, SIZE_Bx)
 
#define GETARG_Ax(i)   getarg(i, POS_Ax, SIZE_Ax)
 
#define SETARG_Ax(i, v)   setarg(i, v, POS_Ax, SIZE_Ax)
 
#define GETARG_sBx(i)   (GETARG_Bx(i)-MAXARG_sBx)
 
#define SETARG_sBx(i, b)   SETARG_Bx((i),cast(unsigned int, (b)+MAXARG_sBx))
 
#define CREATE_ABC(o, a, b, c)
 
#define CREATE_ABx(o, a, bc)
 
#define CREATE_Ax(o, a)
 
#define BITRK   (1 << (SIZE_B - 1))
 
#define ISK(x)   ((x) & BITRK)
 
#define INDEXK(r)   ((int)(r) & ~BITRK)
 
#define MAXINDEXRK   (BITRK - 1)
 
#define RKASK(x)   ((x) | BITRK)
 
#define NO_REG   MAXARG_A
 
#define NUM_OPCODES   (cast(int, OP_EXTRAARG) + 1)
 
#define getOpMode(m)   (cast(enum OpMode, luaP_opmodes[m] & 3))
 
#define getBMode(m)   (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3))
 
#define getCMode(m)   (cast(enum OpArgMask, (luaP_opmodes[m] >> 2) & 3))
 
#define testAMode(m)   (luaP_opmodes[m] & (1 << 6))
 
#define testTMode(m)   (luaP_opmodes[m] & (1 << 7))
 
#define LFIELDS_PER_FLUSH   50
 

Enumerations

enum  OpMode { iABC, iABx, iAsBx, iAx }
 
enum  OpCode {
  OP_MOVE, OP_LOADK, OP_LOADKX, OP_LOADBOOL,
  OP_LOADNIL, OP_GETUPVAL, OP_GETTABUP, OP_GETTABLE,
  OP_SETTABUP, OP_SETUPVAL, OP_SETTABLE, OP_NEWTABLE,
  OP_SELF, OP_ADD, OP_SUB, OP_MUL,
  OP_DIV, OP_MOD, OP_POW, OP_UNM,
  OP_NOT, OP_LEN, OP_CONCAT, OP_JMP,
  OP_EQ, OP_LT, OP_LE, OP_TEST,
  OP_TESTSET, OP_CALL, OP_TAILCALL, OP_RETURN,
  OP_FORLOOP, OP_FORPREP, OP_TFORCALL, OP_TFORLOOP,
  OP_SETLIST, OP_CLOSURE, OP_VARARG, OP_EXTRAARG
}
 
enum  OpArgMask { OpArgN, OpArgU, OpArgR, OpArgK }
 

Variables

LUAI_DDEC const lu_byte luaP_opmodes [NUM_OPCODES]
 
LUAI_DDEC const char *const luaP_opnames [NUM_OPCODES+1]
 

Macro Definition Documentation

#define BITRK   (1 << (SIZE_B - 1))

Definition at line 133 of file lopcodes.h.

#define CREATE_ABC (   o,
  a,
  b,
  c 
)
Value:
const GLfloat * c
Definition: glew.h:12741
#define cast(t, exp)
Definition: llimits.h:92
#define POS_OP
Definition: lopcodes.h:45
GLdouble GLdouble GLdouble b
Definition: glew.h:6966
#define POS_C
Definition: lopcodes.h:47
#define POS_A
Definition: lopcodes.h:46
GLboolean GLboolean GLboolean GLboolean a
Definition: glew.h:7319
#define POS_B
Definition: lopcodes.h:48
lu_int32 Instruction
Definition: llimits.h:132

Definition at line 115 of file lopcodes.h.

Referenced by luaK_codeABC(), and patchtestreg().

#define CREATE_ABx (   o,
  a,
  bc 
)
Value:
| (cast(Instruction, bc)<<POS_Bx))
#define POS_Bx
Definition: lopcodes.h:49
#define cast(t, exp)
Definition: llimits.h:92
#define POS_OP
Definition: lopcodes.h:45
#define POS_A
Definition: lopcodes.h:46
GLboolean GLboolean GLboolean GLboolean a
Definition: glew.h:7319
lu_int32 Instruction
Definition: llimits.h:132

Definition at line 120 of file lopcodes.h.

Referenced by luaK_codeABx().

#define CREATE_Ax (   o,
  a 
)
Value:
#define POS_Ax
Definition: lopcodes.h:50
#define cast(t, exp)
Definition: llimits.h:92
#define POS_OP
Definition: lopcodes.h:45
GLboolean GLboolean GLboolean GLboolean a
Definition: glew.h:7319
lu_int32 Instruction
Definition: llimits.h:132

Definition at line 124 of file lopcodes.h.

Referenced by codeextraarg().

#define GET_OPCODE (   i)    (cast(OpCode, ((i)>>POS_OP) & MASK1(SIZE_OP,0)))
#define getarg (   i,
  pos,
  size 
)    (cast(int, ((i)>>pos) & MASK1(size,0)))

Definition at line 92 of file lopcodes.h.

#define GETARG_A (   i)    getarg(i, POS_A, SIZE_A)
#define GETARG_Ax (   i)    getarg(i, POS_Ax, SIZE_Ax)

Definition at line 108 of file lopcodes.h.

Referenced by getobjname(), luaV_execute(), and PrintCode().

#define GETARG_B (   i)    getarg(i, POS_B, SIZE_B)
#define GETARG_Bx (   i)    getarg(i, POS_Bx, SIZE_Bx)

Definition at line 105 of file lopcodes.h.

Referenced by getobjname(), luaV_execute(), and PrintCode().

#define GETARG_C (   i)    getarg(i, POS_C, SIZE_C)

Definition at line 102 of file lopcodes.h.

Referenced by getobjname(), luaV_execute(), luaV_finishOp(), patchtestreg(), and PrintCode().

#define GETARG_sBx (   i)    (GETARG_Bx(i)-MAXARG_sBx)

Definition at line 111 of file lopcodes.h.

Referenced by findsetreg(), getjump(), luaV_execute(), and PrintCode().

#define getBMode (   m)    (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3))

Definition at line 274 of file lopcodes.h.

Referenced by luaK_codeABC(), and PrintCode().

#define getCMode (   m)    (cast(enum OpArgMask, (luaP_opmodes[m] >> 2) & 3))

Definition at line 275 of file lopcodes.h.

Referenced by luaK_codeABC(), luaK_codeABx(), and PrintCode().

#define getOpMode (   m)    (cast(enum OpMode, luaP_opmodes[m] & 3))

Definition at line 273 of file lopcodes.h.

Referenced by luaK_codeABC(), luaK_codeABx(), and PrintCode().

#define INDEXK (   r)    ((int)(r) & ~BITRK)

Definition at line 139 of file lopcodes.h.

Referenced by kname(), and PrintCode().

#define ISK (   x)    ((x) & BITRK)

Definition at line 136 of file lopcodes.h.

Referenced by freereg(), kname(), luaV_finishOp(), and PrintCode().

#define LFIELDS_PER_FLUSH   50

Definition at line 284 of file lopcodes.h.

Referenced by closelistfield(), luaK_setlist(), and luaV_execute().

#define MASK0 (   n,
  p 
)    (~MASK1(n,p))

Definition at line 82 of file lopcodes.h.

#define MASK1 (   n,
  p 
)    ((~((~(Instruction)0)<<(n)))<<(p))

Definition at line 79 of file lopcodes.h.

#define MAXARG_A   ((1<<SIZE_A)-1)

Definition at line 73 of file lopcodes.h.

Referenced by luaK_codeABC(), and luaK_codeABx().

#define MAXARG_Ax   MAX_INT

Definition at line 69 of file lopcodes.h.

Referenced by addk(), codeextraarg(), and luaK_setlist().

#define MAXARG_B   ((1<<SIZE_B)-1)

Definition at line 74 of file lopcodes.h.

Referenced by luaK_codeABC().

#define MAXARG_Bx   MAX_INT

Definition at line 62 of file lopcodes.h.

Referenced by addprototype(), luaK_codeABx(), and luaK_codek().

#define MAXARG_C   ((1<<SIZE_C)-1)

Definition at line 75 of file lopcodes.h.

Referenced by luaK_codeABC(), and luaK_setlist().

#define MAXARG_sBx   MAX_INT

Definition at line 63 of file lopcodes.h.

Referenced by fixjump().

#define MAXINDEXRK   (BITRK - 1)

Definition at line 141 of file lopcodes.h.

Referenced by luaK_exp2RK().

#define NO_REG   MAXARG_A

Definition at line 150 of file lopcodes.h.

Referenced by dischargejpc(), jumponcond(), luaK_patchlist(), patchtestreg(), and removevalues().

#define NUM_OPCODES   (cast(int, OP_EXTRAARG) + 1)

Definition at line 227 of file lopcodes.h.

#define POS_A   (POS_OP + SIZE_OP)

Definition at line 46 of file lopcodes.h.

#define POS_Ax   POS_A

Definition at line 50 of file lopcodes.h.

#define POS_B   (POS_C + SIZE_C)

Definition at line 48 of file lopcodes.h.

#define POS_Bx   POS_C

Definition at line 49 of file lopcodes.h.

#define POS_C   (POS_A + SIZE_A)

Definition at line 47 of file lopcodes.h.

#define POS_OP   0

Definition at line 45 of file lopcodes.h.

#define RKASK (   x)    ((x) | BITRK)

Definition at line 144 of file lopcodes.h.

Referenced by luaK_exp2RK().

#define SET_OPCODE (   i,
 
)
Value:
((i) = (((i)&MASK0(SIZE_OP,POS_OP)) | \
#define SIZE_OP
Definition: lopcodes.h:43
#define MASK0(n, p)
Definition: lopcodes.h:82
#define cast(t, exp)
Definition: llimits.h:92
#define POS_OP
Definition: lopcodes.h:45
#define MASK1(n, p)
Definition: lopcodes.h:79
size_t i
Definition: function.cpp:1057
lu_int32 Instruction
Definition: llimits.h:132

Definition at line 89 of file lopcodes.h.

Referenced by retstat().

#define setarg (   i,
  v,
  pos,
  size 
)
Value:
((i) = (((i)&MASK0(size,pos)) | \
int pos
Definition: formula.cpp:800
#define MASK0(n, p)
Definition: lopcodes.h:82
#define cast(t, exp)
Definition: llimits.h:92
const GLdouble * v
Definition: glew.h:1359
#define MASK1(n, p)
Definition: lopcodes.h:79
size_t i
Definition: function.cpp:1057
GLsizeiptr size
Definition: glew.h:1649
lu_int32 Instruction
Definition: llimits.h:132

Definition at line 93 of file lopcodes.h.

#define SETARG_A (   i,
  v 
)    setarg(i, v, POS_A, SIZE_A)
#define SETARG_Ax (   i,
  v 
)    setarg(i, v, POS_Ax, SIZE_Ax)

Definition at line 109 of file lopcodes.h.

#define SETARG_B (   i,
  v 
)    setarg(i, v, POS_B, SIZE_B)

Definition at line 100 of file lopcodes.h.

Referenced by constructor(), luaK_nil(), luaK_posfix(), luaK_setoneret(), and luaK_setreturns().

#define SETARG_Bx (   i,
  v 
)    setarg(i, v, POS_Bx, SIZE_Bx)

Definition at line 106 of file lopcodes.h.

#define SETARG_C (   i,
  v 
)    setarg(i, v, POS_C, SIZE_C)

Definition at line 103 of file lopcodes.h.

Referenced by constructor(), exprstat(), and luaK_setreturns().

#define SETARG_sBx (   i,
  b 
)    SETARG_Bx((i),cast(unsigned int, (b)+MAXARG_sBx))

Definition at line 112 of file lopcodes.h.

Referenced by fixjump().

#define SIZE_A   8

Definition at line 40 of file lopcodes.h.

#define SIZE_Ax   (SIZE_C + SIZE_B + SIZE_A)

Definition at line 41 of file lopcodes.h.

#define SIZE_B   9

Definition at line 38 of file lopcodes.h.

#define SIZE_Bx   (SIZE_C + SIZE_B)

Definition at line 39 of file lopcodes.h.

#define SIZE_C   9

Definition at line 37 of file lopcodes.h.

#define SIZE_OP   6

Definition at line 43 of file lopcodes.h.

#define testAMode (   m)    (luaP_opmodes[m] & (1 << 6))

Definition at line 276 of file lopcodes.h.

Referenced by findsetreg().

#define testTMode (   m)    (luaP_opmodes[m] & (1 << 7))

Definition at line 277 of file lopcodes.h.

Referenced by getjumpcontrol(), and invertjump().

Enumeration Type Documentation

enum OpArgMask
Enumerator
OpArgN 
OpArgU 
OpArgR 
OpArgK 

Definition at line 264 of file lopcodes.h.

enum OpCode
Enumerator
OP_MOVE 
OP_LOADK 
OP_LOADKX 
OP_LOADBOOL 
OP_LOADNIL 
OP_GETUPVAL 
OP_GETTABUP 
OP_GETTABLE 
OP_SETTABUP 
OP_SETUPVAL 
OP_SETTABLE 
OP_NEWTABLE 
OP_SELF 
OP_ADD 
OP_SUB 
OP_MUL 
OP_DIV 
OP_MOD 
OP_POW 
OP_UNM 
OP_NOT 
OP_LEN 
OP_CONCAT 
OP_JMP 
OP_EQ 
OP_LT 
OP_LE 
OP_TEST 
OP_TESTSET 
OP_CALL 
OP_TAILCALL 
OP_RETURN 
OP_FORLOOP 
OP_FORPREP 
OP_TFORCALL 
OP_TFORLOOP 
OP_SETLIST 
OP_CLOSURE 
OP_VARARG 
OP_EXTRAARG 

Definition at line 164 of file lopcodes.h.

enum OpMode
Enumerator
iABC 
iABx 
iAsBx 
iAx 

Definition at line 31 of file lopcodes.h.

Variable Documentation

LUAI_DDEC const lu_byte luaP_opmodes[NUM_OPCODES]

Definition at line 271 of file lopcodes.h.

LUAI_DDEC const char* const luaP_opnames[NUM_OPCODES+1]

Definition at line 280 of file lopcodes.h.