From 8d621c51b2797fda7b1dc22243dde611cfc04f68 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 23 Dec 2025 13:12:02 -0700 Subject: Refactor calling conventions to support correct representation of structures --- rust/src/high_level_il/instruction.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'rust/src/high_level_il/instruction.rs') diff --git a/rust/src/high_level_il/instruction.rs b/rust/src/high_level_il/instruction.rs index 80be2a16..98839cae 100644 --- a/rust/src/high_level_il/instruction.rs +++ b/rust/src/high_level_il/instruction.rs @@ -400,6 +400,12 @@ impl HighLevelILInstruction { HLIL_ADDRESS_OF => Op::AddressOf(UnaryOp { src: HighLevelExpressionIndex::from(op.operands[0]), }), + HLIL_PASS_BY_REF => Op::PassByRef(UnaryOp { + src: HighLevelExpressionIndex::from(op.operands[0]), + }), + HLIL_RETURN_BY_REF => Op::ReturnByRef(UnaryOp { + src: HighLevelExpressionIndex::from(op.operands[0]), + }), HLIL_NEG => Op::Neg(UnaryOp { src: HighLevelExpressionIndex::from(op.operands[0]), }), @@ -784,6 +790,8 @@ impl HighLevelILInstruction { Deref(op) => Lifted::Deref(self.lift_unary_op(op)), AddressOf(op) => Lifted::AddressOf(self.lift_unary_op(op)), + PassByRef(op) => Lifted::PassByRef(self.lift_unary_op(op)), + ReturnByRef(op) => Lifted::ReturnByRef(self.lift_unary_op(op)), Neg(op) => Lifted::Neg(self.lift_unary_op(op)), Not(op) => Lifted::Not(self.lift_unary_op(op)), Sx(op) => Lifted::Sx(self.lift_unary_op(op)), @@ -1161,6 +1169,8 @@ pub enum HighLevelILInstructionKind { ConstData(ConstData), Deref(UnaryOp), AddressOf(UnaryOp), + PassByRef(UnaryOp), + ReturnByRef(UnaryOp), Neg(UnaryOp), Not(UnaryOp), Sx(UnaryOp), -- cgit v1.3.1