aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Pall <mike>2011-09-05 18:27:05 +0200
committerMike Pall <mike>2011-09-05 18:27:05 +0200
commita5b5f4112abd2c6aefaeb4c048064f847f4be7af (patch)
tree92de51eb62ce555f15b2e46e10f95740ee1843fc /lib
parente2b89de92d8bf581bc68843f5c789ec261349d33 (diff)
downloadluajit-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.lua14
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