mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
Show names of IR calls in disassembler output.
This commit is contained in:
parent
8dc76ee327
commit
77267bc538
@ -59,8 +59,8 @@ local jutil = require("jit.util")
|
||||
local vmdef = require("jit.vmdef")
|
||||
local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc
|
||||
local traceinfo, traceir, tracek = jutil.traceinfo, jutil.traceir, jutil.tracek
|
||||
local tracemc, traceexitstub = jutil.tracemc, jutil.traceexitstub
|
||||
local tracesnap = jutil.tracesnap
|
||||
local tracemc, tracesnap = jutil.tracemc, jutil.tracesnap
|
||||
local traceexitstub, ircalladdr = jutil.traceexitstub, jutil.ircalladdr
|
||||
local bit = require("bit")
|
||||
local band, shl, shr = bit.band, bit.lshift, bit.rshift
|
||||
local sub, gsub, format = string.sub, string.gsub, string.format
|
||||
@ -82,6 +82,10 @@ local nexitsym = 0
|
||||
-- Fill symbol table with trace exit addresses.
|
||||
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
|
||||
end
|
||||
if nexit > nexitsym then
|
||||
for i=nexitsym,nexit-1 do t[traceexitstub(i)] = tostring(i) end
|
||||
nexitsym = nexit
|
||||
|
@ -370,7 +370,18 @@ LJLIB_CF(jit_util_traceexitstub)
|
||||
ExitNo exitno = (ExitNo)lj_lib_checkint(L, 1);
|
||||
jit_State *J = L2J(L);
|
||||
if (exitno < EXITSTUBS_PER_GROUP*LJ_MAX_EXITSTUBGR) {
|
||||
setnumV(L->top-1, cast_num((intptr_t)exitstub_addr(J, exitno)));
|
||||
setnumV(L->top-1, cast_num((uintptr_t)exitstub_addr(J, exitno)));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* local addr = jit.util.ircalladdr(idx) */
|
||||
LJLIB_CF(jit_util_ircalladdr)
|
||||
{
|
||||
uint32_t idx = (uint32_t)lj_lib_checkint(L, 1);
|
||||
if (idx < IRCALL__MAX) {
|
||||
setnumV(L->top-1, cast_num((uintptr_t)(void *)lj_ir_callinfo[idx].func));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@ -389,6 +400,7 @@ static int trace_nojit(lua_State *L)
|
||||
#define lj_cf_jit_util_tracesnap trace_nojit
|
||||
#define lj_cf_jit_util_tracemc trace_nojit
|
||||
#define lj_cf_jit_util_traceexitstub trace_nojit
|
||||
#define lj_cf_jit_util_ircalladdr trace_nojit
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user