Go to the documentation of this file.
37 #define hasjumps(e) ((e)->t != (e)->f)
118 return &fs->
f->
code[fs->
pc - 1];
131 int l = from + n - 1;
135 int pl = pfrom +
GETARG_B(*previous);
136 if ((pfrom <= from && from <= pl + 1) ||
137 (from <= pfrom && pfrom <= l + 1)) {
138 if (pfrom < from) from = pfrom;
158 return (pc+1)+offset;
168 int offset =
dest - (pc + 1);
318 #define LIMLINEDIFF 0x80
341 f->lineinfo[pc] = linedif;
386 f->code[fs->
pc++] = i;
466 int newstack = fs->
freereg + n;
470 "function or expression needs too many registers");
563 while (oldsize < f->sizek)
setnilvalue(&
f->k[oldsize++]);
577 return addk(fs, &o, &o);
591 return addk(fs, &k, &o);
600 return addk(fs, &o, &o);
610 return addk(fs, &o, &o);
620 return addk(fs, &o, &o);
632 return addk(fs, &k, &v);
843 if (reg != e->
u.
info)
990 case VK: info = e->
u.
info;
break;
1193 {
int temp = e->
f; e->
f = e->
t; e->
t = temp; }
1305 return (
nvalue(v2) != 0);
1357 OpCode op,
int v2,
int flip,
int line,
1418 expdesc temp = *e1; *e1 = *e2; *e2 = temp;
1430 int v2 = e2->
u.
info;
1735 int extra = asize / (
MAXARG_C + 1);
1737 int k = (extra > 0);
1757 int extra = nelems / (
MAXARG_C + 1);
1789 for (i = 0; i < fs->
pc; i++) {
int luaK_exp2anyreg(FuncState *fs, expdesc *e)
int luaK_codeABCk(FuncState *fs, OpCode o, int a, int b, int c, int k)
int luaO_rawarith(lua_State *L, int op, const TValue *p1, const TValue *p2, TValue *res)
void luaK_goiffalse(FuncState *fs, expdesc *e)
auto first(const T &value, const Tail &...) -> const T &
void luaK_fixline(FuncState *fs, int line)
static Instruction * previousinstruction(FuncState *fs)
static int patchtestreg(FuncState *fs, int node, int reg)
static int validop(int op, TValue *v1, TValue *v2)
static int tonumeral(const expdesc *e, TValue *v)
static int isSCint(expdesc *e)
static void freeregs(FuncState *fs, int r1, int r2)
void luaK_patchlist(FuncState *fs, int list, int target)
void luaK_setlist(FuncState *fs, int base, int nelems, int tostore)
#define setsvalue(L, obj, x)
static int cond(LexState *ls)
static void discharge2anyreg(FuncState *fs, expdesc *e)
static int codeextraarg(FuncState *fs, int a)
#define CREATE_sJ(o, j, k)
static int need_value(FuncState *fs, int list)
struct expdesc::@7::@9 var
static int code_loadbool(FuncState *fs, int A, OpCode op)
static void freeexps(FuncState *fs, expdesc *e1, expdesc *e2)
#define sethvalue(L, obj, x)
#define CREATE_ABx(o, a, bc)
static int luaK_exp2K(FuncState *fs, expdesc *e)
#define CREATE_ABCk(o, a, b, c, k)
void luaK_infix(FuncState *fs, BinOpr op, expdesc *v)
void luaK_posfix(FuncState *fs, BinOpr opr, expdesc *e1, expdesc *e2, int line)
static void str2K(FuncState *fs, expdesc *e)
static void swapexps(expdesc *e1, expdesc *e2)
#define LFIELDS_PER_FLUSH
static void codeorder(FuncState *fs, OpCode op, expdesc *e1, expdesc *e2)
static int constfolding(FuncState *fs, int op, expdesc *e1, const expdesc *e2)
int luaK_exp2RK(FuncState *fs, expdesc *e)
static Instruction * getjumpcontrol(FuncState *fs, int pc)
#define luaV_rawequalobj(t1, t2)
static void freeexp(FuncState *fs, expdesc *e)
int luaK_code(FuncState *fs, Instruction i)
static int jumponcond(FuncState *fs, expdesc *e, int cond)
static void codebini(FuncState *fs, OpCode op, expdesc *e1, expdesc *e2, int flip, int line, TMS event)
static void codebitwise(FuncState *fs, BinOpr opr, expdesc *e1, expdesc *e2, int line)
constexpr auto count() -> size_t
static int luaK_intK(FuncState *fs, lua_Integer n)
static int nilK(FuncState *fs)
int luaK_jump(FuncState *fs)
static void codeABRK(FuncState *fs, OpCode o, int a, int b, expdesc *ec)
int luaK_codeAsBx(FuncState *fs, OpCode o, int a, int bc)
void luaK_exp2anyregup(FuncState *fs, expdesc *e)
struct expdesc::@7::@8 ind
void luaK_patchtohere(FuncState *fs, int list)
static void codeconcat(FuncState *fs, expdesc *e1, expdesc *e2, int line)
l_noret luaX_syntaxerror(LexState *ls, const char *msg)
void luaK_int(FuncState *fs, int reg, lua_Integer i)
void luaK_storevar(FuncState *fs, expdesc *var, expdesc *ex)
int luaO_ceillog2(unsigned int x)
const TValue * luaH_get(Table *t, const TValue *key)
#define setpvalue(obj, x)
int luaV_flttointeger(lua_Number n, lua_Integer *p, F2Imod mode)
#define setobj(L, obj1, obj2)
static void const2exp(TValue *v, expdesc *e)
void luaK_ret(FuncState *fs, int first, int nret)
void luaK_settablesize(FuncState *fs, int pc, int ra, int asize, int hsize)
static int finaltarget(Instruction *code, int i)
static void discharge2reg(FuncState *fs, expdesc *e, int reg)
static void finishbinexpval(FuncState *fs, expdesc *e1, expdesc *e2, OpCode op, int v2, int flip, int line, OpCode mmop, TMS event)
void luaK_exp2val(FuncState *fs, expdesc *e)
void luaK_nil(FuncState *fs, int from, int n)
static int boolT(FuncState *fs)
static int boolF(FuncState *fs)
int luaK_getlabel(FuncState *fs)
static int codesJ(FuncState *fs, OpCode o, int sj, int k)
#define luaM_growvector(L, v, nelems, size, t, limit, e)
static void codeeq(FuncState *fs, BinOpr opr, expdesc *e1, expdesc *e2)
static int getjump(FuncState *fs, int pc)
static void negatecondition(FuncState *fs, expdesc *e)
static void codecommutative(FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2, int line)
void luaK_checkstack(FuncState *fs, int n)
static void luaK_float(FuncState *fs, int reg, lua_Number f)
static int luaK_numberK(FuncState *fs, lua_Number r)
#define setivalue(obj, x)
void luaK_prefix(FuncState *fs, UnOpr op, expdesc *e, int line)
static void exp2reg(FuncState *fs, expdesc *e, int reg)
static int condjump(FuncState *fs, OpCode op, int A, int B, int C, int k)
void luaK_setoneret(FuncState *fs, expdesc *e)
int luaK_exp2const(FuncState *fs, const expdesc *e, TValue *v)
static int isKstr(FuncState *fs, expdesc *e)
static int addk(FuncState *fs, TValue *key, TValue *v)
static int luaK_codek(FuncState *fs, int reg, int k)
int luaY_nvarstack(FuncState *fs)
int luaV_tointegerns(const TValue *obj, lua_Integer *p, F2Imod mode)
int luaK_isKint(expdesc *e)
static void removevalues(FuncState *fs, int list)
void luaK_indexed(FuncState *fs, expdesc *t, expdesc *k)
void luaK_setreturns(FuncState *fs, expdesc *e, int nresults)
static void codebinexpval(FuncState *fs, OpCode op, expdesc *e1, expdesc *e2, int line)
static int isSCnumber(expdesc *e, int *pi, int *isfloat)
static void removelastlineinfo(FuncState *fs)
static int isCint(expdesc *e)
static void freereg(FuncState *fs, int reg)
void luaK_finish(FuncState *fs)
void luaK_dischargevars(FuncState *fs, expdesc *e)
void luaK_concat(FuncState *fs, int *l1, int l2)
static int fitsC(lua_Integer i)
static TValue * const2val(FuncState *fs, const expdesc *e)
#define setfltvalue(obj, x)
void luaK_goiftrue(FuncState *fs, expdesc *e)
static void codenot(FuncState *fs, expdesc *e)
static int fitsBx(lua_Integer i)
static int finishbinexpneg(FuncState *fs, expdesc *e1, expdesc *e2, OpCode op, int line, TMS event)
l_noret luaK_semerror(LexState *ls, const char *msg)
static void codearith(FuncState *fs, BinOpr opr, expdesc *e1, expdesc *e2, int flip, int line)
#define luaK_codeABC(fs, o, a, b, c)
void luaK_reserveregs(FuncState *fs, int n)
int luaK_codeABx(FuncState *fs, OpCode o, int a, unsigned int bc)
void luaK_self(FuncState *fs, expdesc *e, expdesc *key)
void luaH_finishset(lua_State *L, Table *t, const TValue *key, const TValue *slot, TValue *value)
static void fixjump(FuncState *fs, int pc, int dest)
static void removelastinstruction(FuncState *fs)
static void savelineinfo(FuncState *fs, Proto *f, int line)
#define luaC_barrier(L, p, v)
#define getinstruction(fs, e)
static void patchlistaux(FuncState *fs, int list, int vtarget, int reg, int dtarget)
static void codeunexpval(FuncState *fs, OpCode op, expdesc *e, int line)
static int stringK(FuncState *fs, TString *s)
void luaK_exp2nextreg(FuncState *fs, expdesc *e)
struct Dyndata::@11 actvar
plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Nov 11 2024 03:23:44