Skip to main content

luaur_code_gen/methods/
operand_x_64_operator_index.rs

1use crate::enums::category_x_64::CategoryX64;
2use crate::enums::size_x_64::SizeX64;
3use crate::macros::codegen_assert::CODEGEN_ASSERT;
4use crate::records::operand_x_64::OperandX64;
5use crate::records::register_x_64::RegisterX64;
6
7impl OperandX64 {
8    pub fn operand_x_64_operator_index(&self, mut addr: OperandX64) -> OperandX64 {
9        CODEGEN_ASSERT!(self.cat == CategoryX64::mem);
10        CODEGEN_ASSERT!(
11            self.index == RegisterX64::noreg
12                && self.scale == 1
13                && self.base == RegisterX64::noreg
14                && self.imm == 0
15        );
16        CODEGEN_ASSERT!(addr.memSize == SizeX64::none);
17
18        addr.cat = CategoryX64::mem;
19        addr.memSize = self.memSize;
20        addr
21    }
22}