summaryrefslogtreecommitdiff
path: root/rust/src/low_level_il/instruction.rs
diff options
context:
space:
mode:
authorMark Rowe <mrowe@bdash.net.nz>2025-05-27 15:11:43 -0700
committerMason Reed <mason@vector35.com>2025-05-30 19:17:10 -0400
commit6e8116614b43097800f0e7b493260c4aaadd7c29 (patch)
treefe4e8252604362b702aadb285d076f8316f1304f /rust/src/low_level_il/instruction.rs
parentabc355d98467bc1fce4368d4a7e1aff0e12cc3c3 (diff)
[Rust] Add support for LLIL_REG_PHI / LLIL_MEM_PHI / LLIL_FLAG_PHI
Diffstat (limited to 'rust/src/low_level_il/instruction.rs')
-rw-r--r--rust/src/low_level_il/instruction.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/rust/src/low_level_il/instruction.rs b/rust/src/low_level_il/instruction.rs
index 652706ea..04a1d2d5 100644
--- a/rust/src/low_level_il/instruction.rs
+++ b/rust/src/low_level_il/instruction.rs
@@ -254,6 +254,10 @@ where
ForceVersion(Operation<'func, M, F, operation::ForceVersion>),
ForceVersionSsa(Operation<'func, M, F, operation::ForceVersionSsa>),
+ RegPhi(Operation<'func, M, F, operation::RegPhi>),
+ FlagPhi(Operation<'func, M, F, operation::FlagPhi>),
+ MemPhi(Operation<'func, M, F, operation::MemPhi>),
+
/// The instruction is an expression.
Value(LowLevelILExpression<'func, M, F, ValueExpr>),
}
@@ -357,6 +361,16 @@ where
LLIL_FORCE_VER_SSA => {
LowLevelILInstructionKind::ForceVersionSsa(Operation::new(function, op, expr_index))
}
+ LLIL_REG_PHI => {
+ LowLevelILInstructionKind::RegPhi(Operation::new(function, op, expr_index))
+ }
+ LLIL_MEM_PHI => {
+ LowLevelILInstructionKind::MemPhi(Operation::new(function, op, expr_index))
+ }
+ LLIL_FLAG_PHI => {
+ LowLevelILInstructionKind::FlagPhi(Operation::new(function, op, expr_index))
+ }
+
_ => LowLevelILInstructionKind::Value(LowLevelILExpression::new(function, expr_index)),
}
}
@@ -410,7 +424,8 @@ where
Value(e) => visit!(e),
// Do not have any sub expressions.
Nop(_) | NoRet(_) | Goto(_) | Syscall(_) | Bp(_) | Trap(_) | Undef(_) | Assert(_)
- | AssertSsa(_) | ForceVersion(_) | ForceVersionSsa(_) => {}
+ | AssertSsa(_) | ForceVersion(_) | ForceVersionSsa(_) | RegPhi(_) | FlagPhi(_)
+ | MemPhi(_) => {}
}
VisitorAction::Sibling