Split up FP IR instructions with SPLIT pass for soft-float targets.

This commit is contained in:
Mike Pall
2011-05-22 17:41:59 +02:00
parent d0115c65f5
commit 138f54352a
13 changed files with 479 additions and 72 deletions

View File

@@ -147,6 +147,7 @@ local irtype_text = {
"u32",
"i64",
"u64",
"sfp",
}
local colortype_ansi = {
@@ -173,6 +174,7 @@ local colortype_ansi = {
"\027[35m%s\027[m",
"\027[35m%s\027[m",
"\027[35m%s\027[m",
"\027[35m%s\027[m",
}
local function colorize_text(s, t)
@@ -318,11 +320,11 @@ local function printsnap(tr, snap)
if ref < 0 then
out:write(formatk(tr, ref))
else
local m, ot, op1, op2 = traceir(tr, ref)
out:write(colorize(format("%04d", ref), band(ot, 31)))
if band(sn, 0x80000) ~= 0 then -- SNAP_SOFTFPNUM
local m, ot, op1, op2 = traceir(tr, ref+1)
out:write(colorize(format("/%04d", ref+1), band(ot, 31)))
out:write(colorize(format("%04d/%04d", ref, ref+1), 14))
else
local m, ot, op1, op2 = traceir(tr, ref)
out:write(colorize(format("%04d", ref), band(ot, 31)))
end
end
out:write(band(sn, 0x10000) == 0 and " " or "|") -- SNAP_FRAME