mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix DynASM x64 encoding for qword-only instructions.
This commit is contained in:
parent
8bb38bd93b
commit
da65e0dfed
@ -922,8 +922,9 @@ local map_op = {
|
|||||||
-- 3F: *aas
|
-- 3F: *aas
|
||||||
inc_1 = x64 and "m:FF0m" or "rdw:40r|m:FF0m",
|
inc_1 = x64 and "m:FF0m" or "rdw:40r|m:FF0m",
|
||||||
dec_1 = x64 and "m:FF1m" or "rdw:48r|m:FF1m",
|
dec_1 = x64 and "m:FF1m" or "rdw:48r|m:FF1m",
|
||||||
push_1 = (x64 and "rqw:50r|mqw:FF6m" or "rdw:50r|mdw:FF6m").."|S.:6AS|ib:n6Ai|i.:68i",
|
push_1 = (x64 and "rq:n50r|rw:50r|mq:nFF6m|mw:FF6m" or
|
||||||
pop_1 = x64 and "rqw:58r|mqw:8F0m" or "rdw:58r|mdw:8F0m",
|
"rdw:50r|mdw:FF6m").."|S.:6AS|ib:n6Ai|i.:68i",
|
||||||
|
pop_1 = x64 and "rq:n58r|rw:58r|mq:n8F0m|mw:8F0m" or "rdw:58r|mdw:8F0m",
|
||||||
-- 60: *pusha, *pushad, *pushaw
|
-- 60: *pusha, *pushad, *pushaw
|
||||||
-- 61: *popa, *popad, *popaw
|
-- 61: *popa, *popad, *popaw
|
||||||
-- 62: *bound rdw,x
|
-- 62: *bound rdw,x
|
||||||
@ -970,11 +971,11 @@ local map_op = {
|
|||||||
wait_0 = "9B",
|
wait_0 = "9B",
|
||||||
fwait_0 = "9B",
|
fwait_0 = "9B",
|
||||||
pushf_0 = "9C",
|
pushf_0 = "9C",
|
||||||
pushfw_0 = "669C",
|
pushfd_0 = not x64 and "9C",
|
||||||
pushfd_0 = "9C",
|
pushfq_0 = x64 and "9C",
|
||||||
popf_0 = "9D",
|
popf_0 = "9D",
|
||||||
popfw_0 = "669D",
|
popfd_0 = not x64 and "9D",
|
||||||
popfd_0 = "9D",
|
popfq_0 = x64 and "9D",
|
||||||
sahf_0 = "9E",
|
sahf_0 = "9E",
|
||||||
lahf_0 = "9F",
|
lahf_0 = "9F",
|
||||||
mov_2 = "OR:A3o|RO:A1O|mr:89Rm|rm:8BrM|rib:nB0ri|ridw:B8ri|mi:C70mi",
|
mov_2 = "OR:A3o|RO:A1O|mr:89Rm|rm:8BrM|rib:nB0ri|ridw:B8ri|mi:C70mi",
|
||||||
@ -1030,8 +1031,8 @@ local map_op = {
|
|||||||
-- E5: *in Rdw,ib
|
-- E5: *in Rdw,ib
|
||||||
-- E6: *out ib,Rb
|
-- E6: *out ib,Rb
|
||||||
-- E7: *out ib,Rdw
|
-- E7: *out ib,Rdw
|
||||||
call_1 = x64 and "mq:FF2m|J.:E8J" or "md:FF2m|J.:E8J",
|
call_1 = x64 and "mq:nFF2m|J.:E8nJ" or "md:FF2m|J.:E8J",
|
||||||
jmp_1 = x64 and "mq:FF4m|J.:E9J" or "md:FF4m|J.:E9J", -- short: EB
|
jmp_1 = x64 and "mq:nFF4m|J.:E9nJ" or "md:FF4m|J.:E9J", -- short: EB
|
||||||
-- EA: *jmp iw:idw
|
-- EA: *jmp iw:idw
|
||||||
-- EB: jmp ib
|
-- EB: jmp ib
|
||||||
-- EC: *in Rb,dx
|
-- EC: *in Rb,dx
|
||||||
@ -1423,7 +1424,7 @@ end
|
|||||||
|
|
||||||
-- Conditional ops.
|
-- Conditional ops.
|
||||||
for cc,n in pairs(map_cc) do
|
for cc,n in pairs(map_cc) do
|
||||||
map_op["j"..cc.."_1"] = format("J.:0F8%XJ", n) -- short: 7%X
|
map_op["j"..cc.."_1"] = format("J.:n0F8%XJ", n) -- short: 7%X
|
||||||
map_op["set"..cc.."_1"] = format("mb:n0F9%X2m", n)
|
map_op["set"..cc.."_1"] = format("mb:n0F9%X2m", n)
|
||||||
map_op["cmov"..cc.."_2"] = format("rmqdw:0F4%XrM", n) -- P6+
|
map_op["cmov"..cc.."_2"] = format("rmqdw:0F4%XrM", n) -- P6+
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user