summaryrefslogtreecommitdiff
path: root/arch/arm64/il.cpp
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-07-30 09:34:54 -0700
committerMark Rowe <mark@vector35.com>2025-07-30 16:43:46 -0700
commit3e9f6433c838cad88f0d97b3ac9f2aa402b83720 (patch)
tree0d689f4ef79e84511c5ab34745e9a3345ad12863 /arch/arm64/il.cpp
parent3697935fd23dc9c7d9943b9eda6742de8ff6d795 (diff)
[ARM64] Fix lifting of tbz / tbnz for bits >= 32
Diffstat (limited to 'arch/arm64/il.cpp')
-rw-r--r--arch/arm64/il.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm64/il.cpp b/arch/arm64/il.cpp
index 6dd1afe1..2d3cb8bc 100644
--- a/arch/arm64/il.cpp
+++ b/arch/arm64/il.cpp
@@ -1159,13 +1159,13 @@ static ExprId ExtractBits(
LowLevelILFunction& il, InstructionOperand& reg, size_t nbits, size_t rightMostBit)
{
// Get N set bits at offset O
-#define BITMASK(N, O) (((1LL << nbits) - 1) << O)
+#define BITMASK(N, O) (((UINT64_C(1) << nbits) - 1) << O)
return il.And(REGSZ_O(reg), ILREG_O(reg), il.Const(REGSZ_O(reg), BITMASK(nbits, rightMostBit)));
}
static ExprId ExtractBit(LowLevelILFunction& il, InstructionOperand& reg, size_t bit)
{
- return il.And(REGSZ_O(reg), ILREG_O(reg), il.Const(REGSZ_O(reg), (1 << bit)));
+ return il.And(REGSZ_O(reg), ILREG_O(reg), il.Const(REGSZ_O(reg), (UINT64_C(1) << bit)));
}
static void ConditionalJump(Architecture* arch, LowLevelILFunction& il, size_t cond,