diff options
| author | Mason Reed <mason@vector35.com> | 2025-05-11 21:00:55 -0400 |
|---|---|---|
| committer | Mason Reed <35282038+emesare@users.noreply.github.com> | 2025-05-12 17:45:24 -0400 |
| commit | 3b14d1605cf9ea638a0d058911a8c1e233a9f70d (patch) | |
| tree | 578fde48ea785a21072ba0e2c5c93061e4ba5a72 /rust/src/medium_level_il/lift.rs | |
| parent | e2fac46543527d27eab2fc77cf19a4f715438857 (diff) | |
[Rust] Add missing instruction types to MLIL
Diffstat (limited to 'rust/src/medium_level_il/lift.rs')
| -rw-r--r-- | rust/src/medium_level_il/lift.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/rust/src/medium_level_il/lift.rs b/rust/src/medium_level_il/lift.rs index f5ee45b3..399bda78 100644 --- a/rust/src/medium_level_il/lift.rs +++ b/rust/src/medium_level_il/lift.rs @@ -129,10 +129,16 @@ pub enum MediumLevelILLiftedInstructionKind { Rlc(LiftedBinaryOpCarry), Rrc(LiftedBinaryOpCarry), Call(LiftedCall), + CallOutput(LiftedCallOutput), + CallParam(LiftedCallParam), + CallOutputSsa(LiftedCallOutputSsa), + CallParamSsa(LiftedCallParamSsa), Tailcall(LiftedCall), Intrinsic(LiftedIntrinsic), Syscall(LiftedSyscallCall), IntrinsicSsa(LiftedIntrinsicSsa), + MemoryIntrinsicSsa(LiftedMemoryIntrinsicSsa), + MemoryIntrinsicOutputSsa(LiftedMemoryIntrinsicOutputSsa), CallSsa(LiftedCallSsa), TailcallSsa(LiftedCallSsa), CallUntypedSsa(LiftedCallUntypedSsa), @@ -269,10 +275,16 @@ impl MediumLevelILLiftedInstruction { Rlc(_) => "Rlc", Rrc(_) => "Rrc", Call(_) => "Call", + CallOutput(_) => "CallOutput", + CallParam(_) => "CallParam", + CallOutputSsa(_) => "CallOutputSsa", + CallParamSsa(_) => "CallParamSsa", Tailcall(_) => "Tailcall", Syscall(_) => "Syscall", Intrinsic(_) => "Intrinsic", IntrinsicSsa(_) => "IntrinsicSsa", + MemoryIntrinsicSsa(_) => "MemoryIntrinsicSsa", + MemoryIntrinsicOutputSsa(_) => "MemoryIntrinsicOutputSsa", CallSsa(_) => "CallSsa", TailcallSsa(_) => "TailcallSsa", CallUntypedSsa(_) => "CallUntypedSsa", @@ -441,6 +453,16 @@ impl MediumLevelILLiftedInstruction { ("dest", Operand::Expr(*op.dest.clone())), ("params", Operand::ExprList(op.params.clone())), ], + CallOutput(op) => vec![("output", Operand::VarList(op.output.clone()))], + CallParam(op) => vec![("params", Operand::ExprList(op.params.clone()))], + CallOutputSsa(op) => vec![ + ("output", Operand::VarSsaList(op.output.clone())), + ("dest_memory", Operand::Int(op.dest_memory)), + ], + CallParamSsa(op) => vec![ + ("params", Operand::ExprList(op.params.clone())), + ("src_memory", Operand::Int(op.src_memory)), + ], Syscall(op) => vec![ ("output", Operand::VarList(op.output.clone())), ("params", Operand::ExprList(op.params.clone())), @@ -455,6 +477,16 @@ impl MediumLevelILLiftedInstruction { ("intrinsic", Operand::Intrinsic(op.intrinsic)), ("params", Operand::ExprList(op.params.clone())), ], + MemoryIntrinsicSsa(op) => vec![ + ("output", Operand::Expr(*op.output.clone())), + ("intrinsic", Operand::Intrinsic(op.intrinsic)), + ("params", Operand::ExprList(op.params.clone())), + ("src_memory", Operand::Int(op.src_memory)), + ], + MemoryIntrinsicOutputSsa(op) => vec![ + ("dest_memory", Operand::Int(op.dest_memory)), + ("output", Operand::VarSsaList(op.output.clone())), + ], CallSsa(op) | TailcallSsa(op) => vec