mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
parent
dbd363ca25
commit
c525bcb902
@ -627,7 +627,11 @@ local function wputmrmsib(t, imark, s, vsreg, psz, sk)
|
|||||||
werror("NYI: rip-relative displacement followed by immediate")
|
werror("NYI: rip-relative displacement followed by immediate")
|
||||||
end
|
end
|
||||||
-- The previous byte in the action buffer cannot be 0xe9 or 0x80-0x8f.
|
-- The previous byte in the action buffer cannot be 0xe9 or 0x80-0x8f.
|
||||||
wputlabel("REL_", disp[1], 2)
|
if disp[2] == "iPJ" then
|
||||||
|
waction("REL_A", disp[1])
|
||||||
|
else
|
||||||
|
wputlabel("REL_", disp[1], 2)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
wputdarg(disp)
|
wputdarg(disp)
|
||||||
end
|
end
|
||||||
@ -744,9 +748,9 @@ local function dispexpr(expr)
|
|||||||
return imm*map_opsizenum[ops]
|
return imm*map_opsizenum[ops]
|
||||||
end
|
end
|
||||||
local mode, iexpr = immexpr(dispt)
|
local mode, iexpr = immexpr(dispt)
|
||||||
if mode == "iJ" then
|
if mode == "iJ" or mode == "iPJ" then
|
||||||
if c == "-" then werror("cannot invert label reference") end
|
if c == "-" then werror("cannot invert label reference") end
|
||||||
return { iexpr }
|
return { iexpr, mode }
|
||||||
end
|
end
|
||||||
return expr -- Need to return original signed expression.
|
return expr -- Need to return original signed expression.
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user