#define lopcodes_c
#define LUA_CORE
#include "lprefix.h"
#include "lopcodes.h"
#define opmode(mm,ot,it,t,a,m) \
(((mm) << 7) | ((ot) << 6) | ((it) << 5) | ((t) << 4) | ((a) << 3) | (m))
LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = {
opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iAsBx)
,opmode(0, 0, 0, 0, 1, iAsBx)
,opmode(0, 0, 0, 0, 1, iABx)
,opmode(0, 0, 0, 0, 1, iABx)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 1, ivABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(1, 0, 0, 0, 0, iABC)
,opmode(1, 0, 0, 0, 0, iABC)
,opmode(1, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, isJ)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 0, iABC)
,opmode(0, 0, 0, 1, 1, iABC)
,opmode(0, 1, 1, 0, 1, iABC)
,opmode(0, 1, 1, 0, 1, iABC)
,opmode(0, 0, 1, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 1, iABx)
,opmode(0, 0, 0, 0, 1, iABx)
,opmode(0, 0, 0, 0, 0, iABx)
,opmode(0, 0, 0, 0, 0, iABC)
,opmode(0, 0, 0, 0, 1, iABx)
,opmode(0, 0, 1, 0, 0, ivABC)
,opmode(0, 0, 0, 0, 1, iABx)
,opmode(0, 1, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 1, iABC)
,opmode(0, 0, 0, 0, 0, iABx)
,opmode(0, 0, 1, 0, 1, iABC)
,opmode(0, 0, 0, 0, 0, iAx)
};
int luaP_isOT (Instruction i) {
OpCode op = GET_OPCODE(i);
switch (op) {
case OP_TAILCALL: return 1;
default:
return testOTMode(op) && GETARG_C(i) == 0;
}
}
int luaP_isIT (Instruction i) {
OpCode op = GET_OPCODE(i);
switch (op) {
case OP_SETLIST:
return testITMode(GET_OPCODE(i)) && GETARG_vB(i) == 0;
default:
return testITMode(GET_OPCODE(i)) && GETARG_B(i) == 0;
}
}