summaryrefslogtreecommitdiff
path: root/rust/src/low_level_il
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-08-11 10:42:07 -0700
committerMark Rowe <mark@vector35.com>2025-08-27 15:59:48 -0700
commitb302d7ba796f41b1102ee61feed8b8e212299997 (patch)
tree722583a526fa821d7592e38efabb79cb9853e8a9 /rust/src/low_level_il
parent28ff277a2a7693d5a9ab1929bc459049c2e52b27 (diff)
[Rust] Fix a couple of oversights in the API
1. Some SSA-specific functions are now implemented on `LowLevelILFunction<M, SSA>` rather than `Ref<LowLevelILFunction<M, SSA>>`. 2. A lifting helper for `LLIL_TAILCALL` is added to `LowLevelILFunction`. 3. `PossibleValueSet::ImportedAddressValue` now holds the value.
Diffstat (limited to 'rust/src/low_level_il')
-rw-r--r--rust/src/low_level_il/function.rs2
-rw-r--r--rust/src/low_level_il/lifting.rs1
2 files changed, 2 insertions, 1 deletions
diff --git a/rust/src/low_level_il/function.rs b/rust/src/low_level_il/function.rs
index 177b2a1a..65c3536a 100644
--- a/rust/src/low_level_il/function.rs
+++ b/rust/src/low_level_il/function.rs
@@ -249,7 +249,7 @@ impl Ref<LowLevelILFunction<Mutable, NonSSA>> {
}
}
-impl<M: FunctionMutability> Ref<LowLevelILFunction<M, SSA>> {
+impl<M: FunctionMutability> LowLevelILFunction<M, SSA> {
/// Return a vector of all instructions that use the given SSA register.
#[must_use]
pub fn get_ssa_register_uses<R: ArchReg>(
diff --git a/rust/src/low_level_il/lifting.rs b/rust/src/low_level_il/lifting.rs
index f2850776..a51cd3d5 100644
--- a/rust/src/low_level_il/lifting.rs
+++ b/rust/src/low_level_il/lifting.rs
@@ -1048,6 +1048,7 @@ impl LowLevelILMutableFunction {
no_arg_lifter!(bp, LLIL_BP, VoidExpr);
unsized_unary_op_lifter!(call, LLIL_CALL, VoidExpr);
+ unsized_unary_op_lifter!(tailcall, LLIL_TAILCALL, VoidExpr);
unsized_unary_op_lifter!(ret, LLIL_RET, VoidExpr);
unsized_unary_op_lifter!(jump, LLIL_JUMP, VoidExpr);
// TODO: LLIL_JUMP_TO