PPC: Disassemble y-bit instead of at-bits for conditional branches.

This commit is contained in:
Mike Pall 2011-09-05 18:27:05 +02:00
parent e2b89de92d
commit a5b5f4112a

View File

@ -464,23 +464,13 @@ local function disass_ins(ctx)
cn = band(bo, 2) == 0 and "dnz" or "dz" cn = band(bo, 2) == 0 and "dnz" or "dz"
if band(bo, 0x10) == 0 then if band(bo, 0x10) == 0 then
cn = cn..(band(bo, 8) == 0 and "f" or "t") cn = cn..(band(bo, 8) == 0 and "f" or "t")
if band(bo, 1) ~= 0 then
name = name..(band(op, 0x8000) ~= 0 and "-" or "+")
end
elseif band(bo, 8) ~= 0 then
name = name..(band(bo, 1) == 0 and "-" or "+")
elseif band(bo, 1) ~= 0 then
name = name..(band(op, 0x8000) ~= 0 and "-" or "+")
end end
if band(bo, 0x10) == 0 then x = condfmt(cond) end if band(bo, 0x10) == 0 then x = condfmt(cond) end
name = name..(band(bo, 1) == band(rshift(op, 15), 1) and "-" or "+")
elseif band(bo, 0x10) == 0 then elseif band(bo, 0x10) == 0 then
cn = map_cond[band(cond, 3) + (band(bo, 8) == 0 and 4 or 0)] cn = map_cond[band(cond, 3) + (band(bo, 8) == 0 and 4 or 0)]
if band(bo, 2) ~= 0 then
name = name..(band(bo, 1) == 0 and "-" or "+")
elseif band(bo, 1) ~= 0 then
name = name..(band(op, 0x8000) ~= 0 and "-" or "+")
end
if cond > 3 then x = "cr"..rshift(cond, 2) end if cond > 3 then x = "cr"..rshift(cond, 2) end
name = name..(band(bo, 1) == band(rshift(op, 15), 1) and "-" or "+")
end end
name = gsub(name, "_", cn) name = gsub(name, "_", cn)
elseif p == "J" then elseif p == "J" then