diff options
-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) |