mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
PPC: Distinguish slwi, srwi and rlwinm in disassembly.
This commit is contained in:
parent
270de2d6cc
commit
e5f310eefa
@ -35,6 +35,23 @@ local map_crops = {
|
|||||||
[150] = "isync",
|
[150] = "isync",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local map_rlwinm = setmetatable({
|
||||||
|
shift = 0, mask = -1,
|
||||||
|
},
|
||||||
|
{ __index = function(t, x)
|
||||||
|
local rot = band(rshift(x, 11), 31)
|
||||||
|
local mb = band(rshift(x, 6), 31)
|
||||||
|
local me = band(rshift(x, 1), 31)
|
||||||
|
if mb == 0 and me == 31-rot then
|
||||||
|
return "slwiRR~A."
|
||||||
|
elseif me == 31 and mb == 32-rot then
|
||||||
|
return "srwiRR~-A."
|
||||||
|
else
|
||||||
|
return "rlwinmRR~AAA."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
local map_rld = {
|
local map_rld = {
|
||||||
shift = 2, mask = 7,
|
shift = 2, mask = 7,
|
||||||
[0] = "rldiclRR~HM.", "rldicrRR~HM.", "rldicRR~HM.", "rldimiRR~HM.",
|
[0] = "rldiclRR~HM.", "rldicrRR~HM.", "rldicRR~HM.", "rldimiRR~HM.",
|
||||||
@ -342,7 +359,7 @@ local map_pri = {
|
|||||||
"subficRRI", false, "cmpl_iYLRU", "cmp_iYLRI",
|
"subficRRI", false, "cmpl_iYLRU", "cmp_iYLRI",
|
||||||
"addicRRI", "addic.RRI", "addi|liRR0I", "addis|lisRR0I",
|
"addicRRI", "addic.RRI", "addi|liRR0I", "addis|lisRR0I",
|
||||||
"b_KBJ", "sc", "bKJ", map_crops,
|
"b_KBJ", "sc", "bKJ", map_crops,
|
||||||
"rlwimiRR~AAA.", "rlwinmRR~AAA.", false, "rlwnmRR~RAA.",
|
"rlwimiRR~AAA.", map_rlwinm, false, "rlwnmRR~RAA.",
|
||||||
"oriNRR~U", "orisRR~U", "xoriRR~U", "xorisRR~U",
|
"oriNRR~U", "orisRR~U", "xoriRR~U", "xorisRR~U",
|
||||||
"andi.RR~U", "andis.RR~U", map_rld, map_ext,
|
"andi.RR~U", "andis.RR~U", map_rld, map_ext,
|
||||||
"lwzRRD", "lwzuRRD", "lbzRRD", "lbzuRRD",
|
"lwzRRD", "lwzuRRD", "lbzRRD", "lbzuRRD",
|
||||||
|
Loading…
Reference in New Issue
Block a user