From df86eca3c386ad2afaeb277f43f84fea6cecd2c0 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Fri, 6 Aug 2010 14:47:00 +0000 Subject: [PATCH] Improve luajc bytecode generation. --- src/jse/org/luaj/vm2/luajc/BasicBlock.java | 3 +++ src/jse/org/luaj/vm2/luajc/LuaJC.java | 2 +- src/jse/org/luaj/vm2/luajc/ProtoInfo.java | 21 +++++++++++++-------- src/jse/org/luaj/vm2/luajc/UpvalInfo.java | 11 +++++++---- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/jse/org/luaj/vm2/luajc/BasicBlock.java b/src/jse/org/luaj/vm2/luajc/BasicBlock.java index ab2cbe05..2aec9efa 100644 --- a/src/jse/org/luaj/vm2/luajc/BasicBlock.java +++ b/src/jse/org/luaj/vm2/luajc/BasicBlock.java @@ -128,6 +128,9 @@ public class BasicBlock { case Lua.OP_LOADBOOL: if ( Lua.GETARG_C(ins) == 0 ) break; + if ( Lua.GET_OPCODE(code[i+1]) == Lua.OP_JMP ) + throw new IllegalArgumentException("OP_LOADBOOL followed by jump at "+i); + break; case Lua.OP_EQ: case Lua.OP_LT: case Lua.OP_LE: diff --git a/src/jse/org/luaj/vm2/luajc/LuaJC.java b/src/jse/org/luaj/vm2/luajc/LuaJC.java index 205ae5dd..0a9a49ee 100644 --- a/src/jse/org/luaj/vm2/luajc/LuaJC.java +++ b/src/jse/org/luaj/vm2/luajc/LuaJC.java @@ -65,7 +65,7 @@ public class LuaJC implements LuaCompiler { private void insert(Hashtable h, JavaGen gen) { h.put(gen.classname, gen.bytecode); - for ( int i=0; i