From d592ed6dafbb134553bf3a0b8ee70ff7f2049aba Mon Sep 17 00:00:00 2001 From: Mark Rowe Date: Wed, 3 Jun 2026 21:25:55 -0700 Subject: Add bswap, popcnt, clz, ctz, cls, and rbit instructions --- lowlevelilinstruction.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'lowlevelilinstruction.cpp') diff --git a/lowlevelilinstruction.cpp b/lowlevelilinstruction.cpp index 228e8328..5a100080 100644 --- a/lowlevelilinstruction.cpp +++ b/lowlevelilinstruction.cpp @@ -332,6 +332,12 @@ static constexpr std::array s_instructionOperandUsage = { OperandUsage{LLIL_REG_STACK_PHI, {DestSSARegisterStackLowLevelOperandUsage, SourceSSARegisterStacksLowLevelOperandUsage}}, OperandUsage{LLIL_FLAG_PHI, {DestSSAFlagLowLevelOperandUsage, SourceSSAFlagsLowLevelOperandUsage}}, OperandUsage{LLIL_MEM_PHI, {DestMemoryVersionLowLevelOperandUsage, SourceMemoryVersionsLowLevelOperandUsage}}, + OperandUsage{LLIL_BSWAP, {SourceExprLowLevelOperandUsage}}, + OperandUsage{LLIL_POPCNT, {SourceExprLowLevelOperandUsage}}, + OperandUsage{LLIL_CLZ, {SourceExprLowLevelOperandUsage}}, + OperandUsage{LLIL_CTZ, {SourceExprLowLevelOperandUsage}}, + OperandUsage{LLIL_RBIT, {SourceExprLowLevelOperandUsage}}, + OperandUsage{LLIL_CLS, {SourceExprLowLevelOperandUsage}}, }; @@ -1984,6 +1990,12 @@ void LowLevelILInstruction::VisitExprs(bn::base::function_ref