summaryrefslogtreecommitdiff
path: root/rust/src/llil/instruction.rs
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2023-12-19 22:39:11 -0700
committerRusty Wagner <rusty.wagner@gmail.com>2024-01-04 11:02:14 -0700
commit0748dfe65398f17064ed744a3d198f144d0aa2c5 (patch)
treeadde2cf25a4b9812c8322ed326f361b23c1681e5 /rust/src/llil/instruction.rs
parente9e5c3e3568351e99c5034e49ae21f0b8d12a4c2 (diff)
Support intrinsics in Rust architecture plugins
Diffstat (limited to 'rust/src/llil/instruction.rs')
-rw-r--r--rust/src/llil/instruction.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/rust/src/llil/instruction.rs b/rust/src/llil/instruction.rs
index e5ae508b..c9817dbf 100644
--- a/rust/src/llil/instruction.rs
+++ b/rust/src/llil/instruction.rs
@@ -112,6 +112,7 @@ where
InstrInfo::Call(Operation::new(self.function, op))
}
LLIL_SYSCALL => InstrInfo::Syscall(Operation::new(self.function, op)),
+ LLIL_INTRINSIC => InstrInfo::Intrinsic(Operation::new(self.function, op)),
_ => {
common_info(self.function, op).unwrap_or({
// Hopefully this is a bare value. If it isn't (expression
@@ -149,6 +150,12 @@ where
}
Push(ref op) => visit!(fb, &op.operand()),
Call(ref op) => visit!(fb, &op.target()),
+ Intrinsic(ref _op) => {
+ // TODO: Use this when we support expression lists
+ // for expr in op.source_exprs() {
+ // visit!(fb, expr);
+ // }
+ }
_ => visit!(common_visit, &info, fb),
}
@@ -181,6 +188,7 @@ where
Goto(Operation<'func, A, M, F, operation::Goto>),
Syscall(Operation<'func, A, M, F, operation::Syscall>),
+ Intrinsic(Operation<'func, A, M, F, operation::Intrinsic>),
Bp(Operation<'func, A, M, F, operation::NoArgs>),
Trap(Operation<'func, A, M, F, operation::Trap>),
Undef(Operation<'func, A, M, F, operation::NoArgs>),