new way to code RK values
This commit is contained in:
10
lcode.c
10
lcode.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: lcode.c,v 2.2 2004/04/30 20:13:38 roberto Exp roberto $
|
||||
** $Id: lcode.c,v 2.3 2004/05/31 18:51:50 roberto Exp roberto $
|
||||
** Code generator for Lua
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@@ -418,16 +418,16 @@ int luaK_exp2RK (FuncState *fs, expdesc *e) {
|
||||
luaK_exp2val(fs, e);
|
||||
switch (e->k) {
|
||||
case VNIL: {
|
||||
if (fs->nk + MAXSTACK <= MAXARG_C) { /* constant fit in argC? */
|
||||
if (fs->nk <= MAXINDEXRK) { /* constant fit in RK operand? */
|
||||
e->info = nil_constant(fs);
|
||||
e->k = VK;
|
||||
return e->info + MAXSTACK;
|
||||
return RKASK(e->info);
|
||||
}
|
||||
else break;
|
||||
}
|
||||
case VK: {
|
||||
if (e->info + MAXSTACK <= MAXARG_C) /* constant fit in argC? */
|
||||
return e->info + MAXSTACK;
|
||||
if (e->info <= MAXINDEXRK) /* constant fit in argC? */
|
||||
return RKASK(e->info);
|
||||
else break;
|
||||
}
|
||||
default: break;
|
||||
|
||||
Reference in New Issue
Block a user