diff options
| author | Mason Reed <mason@vector35.com> | 2025-01-31 13:02:22 -0500 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-01-31 16:17:30 -0500 |
| commit | f5b7f5b2779b1b29e14856efd2a2e56a7c3b0113 (patch) | |
| tree | b1722f62166390c0d4b245a6695e359652ec6cf5 /rust/src/low_level_il/expression.rs | |
| parent | c00727ed11624018b286f57215a677b1140de2ff (diff) | |
Add LLIL_REG_STACK_POP and LLIL_REG_STACK_PUSH to Rust API
These were unhandled and x87 register stack LLIL would emit a bunch of warnings
Diffstat (limited to 'rust/src/low_level_il/expression.rs')
| -rw-r--r-- | rust/src/low_level_il/expression.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/rust/src/low_level_il/expression.rs b/rust/src/low_level_il/expression.rs index 2fc9f93d..7bae22c1 100644 --- a/rust/src/low_level_il/expression.rs +++ b/rust/src/low_level_il/expression.rs @@ -236,6 +236,8 @@ where FlagBit(Operation<'func, A, M, F, operation::FlagBit>), ExternPtr(Operation<'func, A, M, F, operation::Extern>), + RegStackPop(Operation<'func, A, M, F, operation::RegStackPop>), + Add(Operation<'func, A, M, F, operation::BinaryOp>), Adc(Operation<'func, A, M, F, operation::BinaryOpCarry>), Sub(Operation<'func, A, M, F, operation::BinaryOp>), @@ -357,6 +359,10 @@ where } LLIL_EXTERN_PTR => LowLevelILExpressionKind::ExternPtr(Operation::new(function, op)), + LLIL_REG_STACK_POP => { + LowLevelILExpressionKind::RegStackPop(Operation::new(function, op)) + } + LLIL_ADD => LowLevelILExpressionKind::Add(Operation::new(function, op)), LLIL_ADC => LowLevelILExpressionKind::Adc(Operation::new(function, op)), LLIL_SUB => LowLevelILExpressionKind::Sub(Operation::new(function, op)), @@ -597,7 +603,8 @@ where } // Do not have any sub expressions. Pop(_) | Reg(_) | RegSplit(_) | Const(_) | ConstPtr(_) | Flag(_) | FlagBit(_) - | ExternPtr(_) | FlagCond(_) | FlagGroup(_) | Unimpl(_) | Undef(_) => {} + | ExternPtr(_) | FlagCond(_) | FlagGroup(_) | Unimpl(_) | Undef(_) | RegStackPop(_) => { + } } VisitorAction::Sibling @@ -635,6 +642,8 @@ where ExternPtr(ref op) => &op.op, + RegStackPop(ref op) => &op.op, + Adc(ref op) | Sbb(ref op) | Rlc(ref op) | Rrc(ref op) => &op.op, Add(ref op) | Sub(ref op) | And(ref op) | Or(ref op) | Xor(ref op) | Lsl(ref op) @@ -692,6 +701,8 @@ where ExternPtr(ref op) => op.flag_write(), + RegStackPop(ref op) => op.flag_write(), + Adc(ref op) | Sbb(ref op) | Rlc(ref op) | Rrc(ref op) => op.flag_write(), Add(ref op) | Sub(ref op) | And(ref op) | Or(ref op) | Xor(ref op) | Lsl(ref op) |
