From c5e75e7893b511cb109dec3be111e115fdb01d7c Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Tue, 20 Sep 2011 21:15:05 +0200 Subject: [PATCH] Generate a portable vmdef.lua. --- lib/dump.lua | 5 +- src/buildvm.c | 2 +- src/lj_ir.c | 4 +- src/lj_ircall.h | 205 ++++++++++++++++++++++++------------------------ 4 files changed, 111 insertions(+), 105 deletions(-) diff --git a/lib/dump.lua b/lib/dump.lua index 7ddc9c07..bb8aa1ce 100644 --- a/lib/dump.lua +++ b/lib/dump.lua @@ -84,7 +84,10 @@ local function fillsymtab(nexit) local t = symtab if nexitsym == 0 then local ircall = vmdef.ircall - for i=0,#ircall do t[ircalladdr(i)] = ircall[i] end + for i=0,#ircall do + local addr = ircalladdr(i) + if addr ~= 0 then t[addr] = ircall[i] end + end end if nexit > nexitsym then for i=nexitsym,nexit-1 do diff --git a/src/buildvm.c b/src/buildvm.c index 122e1262..72c2dd83 100644 --- a/src/buildvm.c +++ b/src/buildvm.c @@ -271,7 +271,7 @@ IRFLDEF(FLNAME) }; const char *const ircall_names[] = { -#define IRCALLNAME(name, nargs, kind, type, flags) #name, +#define IRCALLNAME(cond, name, nargs, kind, type, flags) #name, IRCALLDEF(IRCALLNAME) #undef IRCALLNAME NULL diff --git a/src/lj_ir.c b/src/lj_ir.c index 8f22e085..457d9187 100644 --- a/src/lj_ir.c +++ b/src/lj_ir.c @@ -47,8 +47,8 @@ IRDEF(IRMODE) /* C call info for CALL* instructions. */ LJ_DATADEF const CCallInfo lj_ir_callinfo[] = { -#define IRCALLCI(name, nargs, kind, type, flags) \ - { (ASMFunction)name, \ +#define IRCALLCI(cond, name, nargs, kind, type, flags) \ + { (ASMFunction)IRCALLCOND_##cond(name), \ (nargs)|(CCI_CALL_##kind)|(IRT_##type<