summaryrefslogtreecommitdiff
path: root/external/mit/lua/dist/src/lcode.c
diff options
context:
space:
mode:
Diffstat (limited to 'external/mit/lua/dist/src/lcode.c')
-rw-r--r--external/mit/lua/dist/src/lcode.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/external/mit/lua/dist/src/lcode.c b/external/mit/lua/dist/src/lcode.c
index 9715231a761..06a014ac9dc 100644
--- a/external/mit/lua/dist/src/lcode.c
+++ b/external/mit/lua/dist/src/lcode.c
@@ -1,7 +1,7 @@
-/* $NetBSD: lcode.c,v 1.3 2015/02/02 14:03:05 lneto Exp $ */
+/* $NetBSD: lcode.c,v 1.4 2015/10/08 13:21:00 mbalmer Exp $ */
/*
-** Id: lcode.c,v 2.99 2014/12/29 16:49:25 roberto Exp
+** Id: lcode.c,v 2.101 2015/04/29 18:24:11 roberto Exp
** Code generator for Lua
** See Copyright Notice in lua.h
*/
@@ -33,8 +33,8 @@
#include "lvm.h"
-/* Maximum number of registers in a Lua function */
-#define MAXREGS 250
+/* Maximum number of registers in a Lua function (must fit in 8 bits) */
+#define MAXREGS 255
#define hasjumps(e) ((e)->t != (e)->f)
@@ -285,7 +285,8 @@ void luaK_checkstack (FuncState *fs, int n) {
int newstack = fs->freereg + n;
if (newstack > fs->f->maxstacksize) {
if (newstack >= MAXREGS)
- luaX_syntaxerror(fs->ls, "function or expression too complex");
+ luaX_syntaxerror(fs->ls,
+ "function or expression needs too many registers");
fs->f->maxstacksize = cast_byte(newstack);
}
}
@@ -584,9 +585,9 @@ int luaK_exp2RK (FuncState *fs, expdesc *e) {
case VKFLT: {
e->u.info = luaK_numberK(fs, e->u.nval);
e->k = VK;
- /* go through */
}
#endif
+ /* FALLTHROUGH */
case VK: {
vk:
if (e->u.info <= MAXINDEXRK) /* constant fits in 'argC'? */
@@ -821,7 +822,7 @@ static int constfolding (FuncState *fs, int op, expdesc *e1, expdesc *e2) {
static void codeexpval (FuncState *fs, OpCode op,
expdesc *e1, expdesc *e2, int line) {
lua_assert(op >= OP_ADD);
- if (op <= OP_BNOT && constfolding(fs, op - OP_ADD + LUA_OPADD, e1, e2))
+ if (op <= OP_BNOT && constfolding(fs, (op - OP_ADD) + LUA_OPADD, e1, e2))
return; /* result has been folded */
else {
int o1, o2;
@@ -958,11 +959,11 @@ void luaK_posfix (FuncState *fs, BinOpr op,
break;
}
case OPR_EQ: case OPR_LT: case OPR_LE: {
- codecomp(fs, cast(OpCode, op - OPR_EQ + OP_EQ), 1, e1, e2);
+ codecomp(fs, cast(OpCode, (op - OPR_EQ) + OP_EQ), 1, e1, e2);
break;
}
case OPR_NE: case OPR_GT: case OPR_GE: {
- codecomp(fs, cast(OpCode, op - OPR_NE + OP_EQ), 0, e1, e2);
+ codecomp(fs, cast(OpCode, (op - OPR_NE) + OP_EQ), 0, e1, e2);
break;
}
default: lua_assert(0);