ARM64: Fix disassembly of ldp/stp offsets.

Thanks to Peter Cawley. #1113
This commit is contained in:
Mike Pall 2023-11-06 23:14:22 +01:00
parent 07b3cd3cf9
commit ce2cd61739

View File

@ -985,8 +985,7 @@ local function disass_ins(ctx)
x = x.."]" x = x.."]"
end end
elseif p == "P" then elseif p == "P" then
local opcv, sh = rshift(op, 26), 2 local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1))
if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end
local imm7 = lshift(arshift(lshift(op, 10), 25), sh) local imm7 = lshift(arshift(lshift(op, 10), 25), sh)
local rn = map_regs.x[band(rshift(op, 5), 31)] local rn = map_regs.x[band(rshift(op, 5), 31)]
local ind = band(rshift(op, 23), 3) local ind = band(rshift(op, 23), 3)