mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-08 07:34:07 +00:00
Adapt -jdump to unified string.format("%x", -1) behavior.
This commit is contained in:
parent
2369f5d00a
commit
2ef2c34d84
@ -28,6 +28,8 @@ local type = type
|
|||||||
local sub, byte, format = string.sub, string.byte, string.format
|
local sub, byte, format = string.sub, string.byte, string.format
|
||||||
local match, gmatch, gsub = string.match, string.gmatch, string.gsub
|
local match, gmatch, gsub = string.match, string.gmatch, string.gsub
|
||||||
local lower, rep = string.lower, string.rep
|
local lower, rep = string.lower, string.rep
|
||||||
|
local bit = require("bit")
|
||||||
|
local tohex = bit.tohex
|
||||||
|
|
||||||
-- Map for 1st opcode byte in 32 bit mode. Ugly? Well ... read on.
|
-- Map for 1st opcode byte in 32 bit mode. Ugly? Well ... read on.
|
||||||
local map_opc1_32 = {
|
local map_opc1_32 = {
|
||||||
@ -532,7 +534,7 @@ local function putpat(ctx, name, pat)
|
|||||||
local lo = imm % 0x1000000
|
local lo = imm % 0x1000000
|
||||||
x = format("0x%02x%06x", (imm-lo) / 0x1000000, lo)
|
x = format("0x%02x%06x", (imm-lo) / 0x1000000, lo)
|
||||||
else
|
else
|
||||||
x = format("0x%08x", imm)
|
x = "0x"..tohex(imm)
|
||||||
end
|
end
|
||||||
elseif p == "R" then
|
elseif p == "R" then
|
||||||
local r = byte(code, pos-1, pos-1)%8
|
local r = byte(code, pos-1, pos-1)%8
|
||||||
|
@ -62,7 +62,7 @@ local traceinfo, traceir, tracek = jutil.traceinfo, jutil.traceir, jutil.tracek
|
|||||||
local tracemc, tracesnap = jutil.tracemc, jutil.tracesnap
|
local tracemc, tracesnap = jutil.tracemc, jutil.tracesnap
|
||||||
local traceexitstub, ircalladdr = jutil.traceexitstub, jutil.ircalladdr
|
local traceexitstub, ircalladdr = jutil.traceexitstub, jutil.ircalladdr
|
||||||
local bit = require("bit")
|
local bit = require("bit")
|
||||||
local band, shl, shr = bit.band, bit.lshift, bit.rshift
|
local band, shl, shr, tohex = bit.band, bit.lshift, bit.rshift, bit.tohex
|
||||||
local sub, gsub, format = string.sub, string.gsub, string.format
|
local sub, gsub, format = string.sub, string.gsub, string.format
|
||||||
local byte, char, rep = string.byte, string.char, string.rep
|
local byte, char, rep = string.byte, string.char, string.rep
|
||||||
local type, tostring = type, tostring
|
local type, tostring = type, tostring
|
||||||
@ -135,6 +135,7 @@ local function dump_mcode(tr)
|
|||||||
local mcode, addr, loop = tracemc(tr)
|
local mcode, addr, loop = tracemc(tr)
|
||||||
if not mcode then return end
|
if not mcode then return end
|
||||||
if not disass then disass = require("jit.dis_"..jit.arch) end
|
if not disass then disass = require("jit.dis_"..jit.arch) end
|
||||||
|
if addr < 0 then addr = addr + 2^32 end
|
||||||
out:write("---- TRACE ", tr, " mcode ", #mcode, "\n")
|
out:write("---- TRACE ", tr, " mcode ", #mcode, "\n")
|
||||||
local ctx = disass.create(mcode, addr, dumpwrite)
|
local ctx = disass.create(mcode, addr, dumpwrite)
|
||||||
ctx.hexdump = 0
|
ctx.hexdump = 0
|
||||||
@ -609,7 +610,7 @@ local function dump_texit(tr, ex, ngpr, nfpr, ...)
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
for i=1,ngpr do
|
for i=1,ngpr do
|
||||||
out:write(format(" %08x", regs[i]))
|
out:write(" ", tohex(regs[i]))
|
||||||
if i % 8 == 0 then out:write("\n") end
|
if i % 8 == 0 then out:write("\n") end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user