diff options
author | Mike Pall <mike> | 2023-11-06 23:14:22 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2023-11-06 23:14:22 +0100 |
commit | ce2cd617398412984c52ca90f833b30ae3dbd08b (patch) | |
tree | 265c22a759da0e67b814ebe6c0436374c6278151 /src/jit | |
parent | 07b3cd3cf9b57a3801a1ebc48144767e31671f21 (diff) | |
download | luajit-ce2cd617398412984c52ca90f833b30ae3dbd08b.tar.gz luajit-ce2cd617398412984c52ca90f833b30ae3dbd08b.tar.bz2 luajit-ce2cd617398412984c52ca90f833b30ae3dbd08b.zip |
ARM64: Fix disassembly of ldp/stp offsets.
Thanks to Peter Cawley. #1113
Diffstat (limited to 'src/jit')
-rw-r--r-- | src/jit/dis_arm64.lua | 3 |
1 files changed, 1 insertions, 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) | |||
985 | x = x.."]" | 985 | x = x.."]" |
986 | end | 986 | end |
987 | elseif p == "P" then | 987 | elseif p == "P" then |
988 | local opcv, sh = rshift(op, 26), 2 | 988 | local sh = 2 + rshift(op, 31 - band(rshift(op, 26), 1)) |
989 | if opcv >= 0x2a then sh = 4 elseif opcv >= 0x1b then sh = 3 end | ||
990 | local imm7 = lshift(arshift(lshift(op, 10), 25), sh) | 989 | local imm7 = lshift(arshift(lshift(op, 10), 25), sh) |
991 | local rn = map_regs.x[band(rshift(op, 5), 31)] | 990 | local rn = map_regs.x[band(rshift(op, 5), 31)] |
992 | local ind = band(rshift(op, 23), 3) | 991 | local ind = band(rshift(op, 23), 3) |