summaryrefslogtreecommitdiff
path: root/arch/arm64/il.cpp
diff options
context:
space:
mode:
authorGalen Williamson <galen@vector35.com>2024-05-28 20:41:04 -0400
committerGalen Williamson <galen@vector35.com>2024-05-29 13:23:04 -0400
commit309e4b3d84987bba9d8ad0990c8cbec781f90b7a (patch)
tree8829da9b97608654015f5bf46f9cb8bb694e4345 /arch/arm64/il.cpp
parente9f5102a28d8abfe565dc2f1c56fb237c33e05e7 (diff)
improve lifting of arm64 CSET instruction per Vector35/binaryninja-api#5134
Diffstat (limited to 'arch/arm64/il.cpp')
-rw-r--r--arch/arm64/il.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm64/il.cpp b/arch/arm64/il.cpp
index d3c3e943..13ff0d2a 100644
--- a/arch/arm64/il.cpp
+++ b/arch/arm64/il.cpp
@@ -1447,9 +1447,9 @@ bool GetLowLevelILForInstruction(
ILSETREG_O(operand1, il.Neg(REGSZ_O(operand1), ILREG_O(operand3))));
break;
case ARM64_CSET:
- GenIfElse(il, GetCondition(il, operand2.cond),
- ILSETREG_O(operand1, il.Const(REGSZ_O(operand1), 1)),
- ILSETREG_O(operand1, il.Const(REGSZ_O(operand1), 0)));
+ il.AddInstruction(
+ ILSETREG_O(operand1,
+ il.BoolToInt(REGSZ_O(operand1), GetCondition(il, operand2.cond))));
break;
case ARM64_CSETM:
GenIfElse(il, GetCondition(il, operand2.cond),