Skip to main content

luaur_code_gen/records/
call_argument.rs

1use crate::enums::size_x_64::SizeX64;
2use crate::records::ir_op::IrOp;
3use crate::records::operand_x_64::OperandX64;
4
5#[derive(Debug, Clone)]
6#[repr(C)]
7pub struct CallArgument {
8    pub target_size: SizeX64,
9    pub source: OperandX64,
10    pub source_op: IrOp,
11    pub target: OperandX64,
12    pub candidate: bool,
13}
14
15impl Default for CallArgument {
16    fn default() -> Self {
17        Self {
18            target_size: SizeX64::none,
19            source: OperandX64 {
20                cat: crate::enums::category_x_64::CategoryX64::reg,
21                index: crate::records::register_x_64::RegisterX64::noreg,
22                base: crate::records::register_x_64::RegisterX64::noreg,
23                memSize: SizeX64::none,
24                scale: 1,
25                imm: 0,
26            },
27            source_op: IrOp::default(),
28            target: OperandX64 {
29                cat: crate::enums::category_x_64::CategoryX64::reg,
30                index: crate::records::register_x_64::RegisterX64::noreg,
31                base: crate::records::register_x_64::RegisterX64::noreg,
32                memSize: SizeX64::none,
33                scale: 1,
34                imm: 0,
35            },
36            candidate: true,
37        }
38    }
39}