diff options
| author | Mark Rowe <mrowe@bdash.net.nz> | 2025-05-27 15:14:22 -0700 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-05-30 19:17:10 -0400 |
| commit | 1e3b9e54fb7947d5b4b46ed01d1dd8a16e7537af (patch) | |
| tree | 81d566f004c3d9f2879e7ee74f3dcf5fe073e3e7 /rust/src/low_level_il/expression.rs | |
| parent | 6e8116614b43097800f0e7b493260c4aaadd7c29 (diff) | |
[Rust] Add support for LLIL_SEPARATE_PARAM_LIST_SSA
Diffstat (limited to 'rust/src/low_level_il/expression.rs')
| -rw-r--r-- | rust/src/low_level_il/expression.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/rust/src/low_level_il/expression.rs b/rust/src/low_level_il/expression.rs index ce9d5bba..902d3b30 100644 --- a/rust/src/low_level_il/expression.rs +++ b/rust/src/low_level_il/expression.rs @@ -326,6 +326,8 @@ where FcmpO(Operation<'func, M, F, operation::Condition>), FcmpUO(Operation<'func, M, F, operation::Condition>), + SeparateParamListSsa(Operation<'func, M, F, operation::SeparateParamListSsa>), + // TODO ADD_OVERFLOW Unimpl(Operation<'func, M, F, operation::NoArgs>), UnimplMem(Operation<'func, M, F, operation::UnimplMem>), @@ -474,6 +476,10 @@ where LLIL_FCMP_O => LowLevelILExpressionKind::FcmpO(Operation::new(function, op, index)), LLIL_FCMP_UO => LowLevelILExpressionKind::FcmpUO(Operation::new(function, op, index)), + LLIL_SEPARATE_PARAM_LIST_SSA => { + LowLevelILExpressionKind::SeparateParamListSsa(Operation::new(function, op, index)) + } + LLIL_UNIMPL => LowLevelILExpressionKind::Unimpl(Operation::new(function, op, index)), LLIL_UNIMPL_MEM => { LowLevelILExpressionKind::UnimplMem(Operation::new(function, op, index)) @@ -644,6 +650,11 @@ where visit!(param_expr); } } + SeparateParamListSsa(ref op) => { + for param_expr in op.param_exprs() { + visit!(param_expr); + } + } // Do not have any sub expressions. Pop(_) | Reg(_) | RegSsa(_) | RegPartialSsa(_) | RegSplit(_) | RegSplitSsa(_) | Const(_) | ConstPtr(_) | Flag(_) | FlagBit(_) | ExternPtr(_) | FlagCond(_) @@ -714,6 +725,8 @@ where | FloatToInt(ref op) | IntToFloat(ref op) | FloatConv(ref op) | RoundToInt(ref op) | Floor(ref op) | Ceil(ref op) | Ftrunc(ref op) => &op.op, + SeparateParamListSsa(ref op) => &op.op, + UnimplMem(ref op) => &op.op, //TestBit(Operation<'func, M, F, operation::TestBit>), // TODO } @@ -784,6 +797,8 @@ impl LowLevelILExpressionKind<'_, Mutable, NonSSA> { | FloatToInt(ref op) | IntToFloat(ref op) | FloatConv(ref op) | RoundToInt(ref op) | Floor(ref op) | Ceil(ref op) | Ftrunc(ref op) => op.flag_write(), + SeparateParamListSsa(ref op) => op.flag_write(), + UnimplMem(ref op) => op.flag_write(), //TestBit(Operation<'func, M, F, operation::TestBit>), // TODO } |
