From 2ef2c34d84d3e027e828e4726cc90fd55935bd18 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 13 May 2013 19:39:34 +0200 Subject: [PATCH] Adapt -jdump to unified string.format("%x", -1) behavior. --- src/jit/dis_x86.lua | 4 +++- src/jit/dump.lua | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/jit/dis_x86.lua b/src/jit/dis_x86.lua index c442a176..49101efe 100644 --- a/src/jit/dis_x86.lua +++ b/src/jit/dis_x86.lua @@ -28,6 +28,8 @@ local type = type local sub, byte, format = string.sub, string.byte, string.format local match, gmatch, gsub = string.match, string.gmatch, string.gsub 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. local map_opc1_32 = { @@ -532,7 +534,7 @@ local function putpat(ctx, name, pat) local lo = imm % 0x1000000 x = format("0x%02x%06x", (imm-lo) / 0x1000000, lo) else - x = format("0x%08x", imm) + x = "0x"..tohex(imm) end elseif p == "R" then local r = byte(code, pos-1, pos-1)%8 diff --git a/src/jit/dump.lua b/src/jit/dump.lua index 2a7d64e4..e6c9d5b6 100644 --- a/src/jit/dump.lua +++ b/src/jit/dump.lua @@ -62,7 +62,7 @@ local traceinfo, traceir, tracek = jutil.traceinfo, jutil.traceir, jutil.tracek 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 band, shl, shr, tohex = bit.band, bit.lshift, bit.rshift, bit.tohex local sub, gsub, format = string.sub, string.gsub, string.format local byte, char, rep = string.byte, string.char, string.rep local type, tostring = type, tostring @@ -135,6 +135,7 @@ local function dump_mcode(tr) local mcode, addr, loop = tracemc(tr) if not mcode then return 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") local ctx = disass.create(mcode, addr, dumpwrite) ctx.hexdump = 0 @@ -609,7 +610,7 @@ local function dump_texit(tr, ex, ngpr, nfpr, ...) end else 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 end end