From ce2cd617398412984c52ca90f833b30ae3dbd08b Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 6 Nov 2023 23:14:22 +0100 Subject: [PATCH] ARM64: Fix disassembly of ldp/stp offsets. Thanks to Peter Cawley. #1113 --- src/jit/dis_arm64.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/jit/dis_arm64.lua b/src/jit/dis_arm64.lua index a7a29494..84677666 100644 --- a/src/jit/dis_arm64.lua +++ b/src/jit/dis_arm64.lua @@ -985,8 +985,7 @@ local function disass_ins(ctx) x = x.."]" end elseif p == "P" then - local opcv, sh = rshift(op, 26), 2 - if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end + local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1)) local imm7 = lshift(arshift(lshift(op, 10), 25), sh) local rn = map_regs.x[band(rshift(op, 5), 31)] local ind = band(rshift(op, 23), 3)