mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
DynASM/ARM64: Support ldp/stp of q registers.
Thanks to Peter Cawley. #1096
This commit is contained in:
parent
d2a5487fd7
commit
656ecbcf8f
@ -549,7 +549,7 @@ end
|
|||||||
local function parse_load_pair(params, nparams, n, op)
|
local function parse_load_pair(params, nparams, n, op)
|
||||||
if params[n+2] then werror("too many operands") end
|
if params[n+2] then werror("too many operands") end
|
||||||
local pn, p2 = params[n], params[n+1]
|
local pn, p2 = params[n], params[n+1]
|
||||||
local scale = shr(op, 30) == 0 and 2 or 3
|
local scale = 2 + shr(op, 31 - band(shr(op, 26), 1))
|
||||||
local p1, wb = match(pn, "^%[%s*(.-)%s*%](!?)$")
|
local p1, wb = match(pn, "^%[%s*(.-)%s*%](!?)$")
|
||||||
if not p1 then
|
if not p1 then
|
||||||
if not p2 then
|
if not p2 then
|
||||||
@ -806,8 +806,8 @@ map_op = {
|
|||||||
["ldrsw_*"] = "98000000DxB|b8800000DxL",
|
["ldrsw_*"] = "98000000DxB|b8800000DxL",
|
||||||
-- NOTE: ldur etc. are handled by ldr et al.
|
-- NOTE: ldur etc. are handled by ldr et al.
|
||||||
|
|
||||||
["stp_*"] = "28000000DAwP|a8000000DAxP|2c000000DAsP|6c000000DAdP",
|
["stp_*"] = "28000000DAwP|a8000000DAxP|2c000000DAsP|6c000000DAdP|ac000000DAqP",
|
||||||
["ldp_*"] = "28400000DAwP|a8400000DAxP|2c400000DAsP|6c400000DAdP",
|
["ldp_*"] = "28400000DAwP|a8400000DAxP|2c400000DAsP|6c400000DAdP|ac400000DAqP",
|
||||||
["ldpsw_*"] = "68400000DAxP",
|
["ldpsw_*"] = "68400000DAxP",
|
||||||
|
|
||||||
-- Branches.
|
-- Branches.
|
||||||
@ -942,7 +942,7 @@ local function parse_template(params, template, nparams, pos)
|
|||||||
werror("bad register type")
|
werror("bad register type")
|
||||||
end
|
end
|
||||||
parse_reg_type = false
|
parse_reg_type = false
|
||||||
elseif p == "x" or p == "w" or p == "d" or p == "s" then
|
elseif p == "x" or p == "w" or p == "d" or p == "s" or p == "q" then
|
||||||
if parse_reg_type ~= p then
|
if parse_reg_type ~= p then
|
||||||
werror("register size mismatch")
|
werror("register size mismatch")
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user