diff options
author | Mike Pall <mike> | 2011-09-05 18:27:05 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-09-05 18:27:05 +0200 |
commit | a5b5f4112abd2c6aefaeb4c048064f847f4be7af (patch) | |
tree | 92de51eb62ce555f15b2e46e10f95740ee1843fc /lib | |
parent | e2b89de92d8bf581bc68843f5c789ec261349d33 (diff) | |
download | luajit-a5b5f4112abd2c6aefaeb4c048064f847f4be7af.tar.gz luajit-a5b5f4112abd2c6aefaeb4c048064f847f4be7af.tar.bz2 luajit-a5b5f4112abd2c6aefaeb4c048064f847f4be7af.zip |
PPC: Disassemble y-bit instead of at-bits for conditional branches.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/dis_ppc.lua | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/lib/dis_ppc.lua b/lib/dis_ppc.lua index 13d87c70..b061a26e 100644 --- a/lib/dis_ppc.lua +++ b/lib/dis_ppc.lua | |||
@@ -464,23 +464,13 @@ local function disass_ins(ctx) | |||
464 | cn = band(bo, 2) == 0 and "dnz" or "dz" | 464 | cn = band(bo, 2) == 0 and "dnz" or "dz" |
465 | if band(bo, 0x10) == 0 then | 465 | if band(bo, 0x10) == 0 then |
466 | cn = cn..(band(bo, 8) == 0 and "f" or "t") | 466 | cn = cn..(band(bo, 8) == 0 and "f" or "t") |
467 | if band(bo, 1) ~= 0 then | ||
468 | name = name..(band(op, 0x8000) ~= 0 and "-" or "+") | ||
469 | end | ||
470 | elseif band(bo, 8) ~= 0 then | ||
471 | name = name..(band(bo, 1) == 0 and "-" or "+") | ||
472 | elseif band(bo, 1) ~= 0 then | ||
473 | name = name..(band(op, 0x8000) ~= 0 and "-" or "+") | ||
474 | end | 467 | end |
475 | if band(bo, 0x10) == 0 then x = condfmt(cond) end | 468 | if band(bo, 0x10) == 0 then x = condfmt(cond) end |
469 | name = name..(band(bo, 1) == band(rshift(op, 15), 1) and "-" or "+") | ||
476 | elseif band(bo, 0x10) == 0 then | 470 | elseif band(bo, 0x10) == 0 then |
477 | cn = map_cond[band(cond, 3) + (band(bo, 8) == 0 and 4 or 0)] | 471 | cn = map_cond[band(cond, 3) + (band(bo, 8) == 0 and 4 or 0)] |
478 | if band(bo, 2) ~= 0 then | ||
479 | name = name..(band(bo, 1) == 0 and "-" or "+") | ||
480 | elseif band(bo, 1) ~= 0 then | ||
481 | name = name..(band(op, 0x8000) ~= 0 and "-" or "+") | ||
482 | end | ||
483 | if cond > 3 then x = "cr"..rshift(cond, 2) end | 472 | if cond > 3 then x = "cr"..rshift(cond, 2) end |
473 | name = name..(band(bo, 1) == band(rshift(op, 15), 1) and "-" or "+") | ||
484 | end | 474 | end |
485 | name = gsub(name, "_", cn) | 475 | name = gsub(name, "_", cn) |
486 | elseif p == "J" then | 476 | elseif p == "J" then |