diff options
| author | Mark Rowe <mark@vector35.com> | 2025-07-30 09:34:54 -0700 |
|---|---|---|
| committer | Mark Rowe <mark@vector35.com> | 2025-07-30 16:43:46 -0700 |
| commit | 3e9f6433c838cad88f0d97b3ac9f2aa402b83720 (patch) | |
| tree | 0d689f4ef79e84511c5ab34745e9a3345ad12863 /arch/arm64/il.cpp | |
| parent | 3697935fd23dc9c7d9943b9eda6742de8ff6d795 (diff) | |
[ARM64] Fix lifting of tbz / tbnz for bits >= 32
Diffstat (limited to 'arch/arm64/il.cpp')
| -rw-r--r-- | arch/arm64/il.cpp | 4 |
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, |
