luaur-code-gen 0.1.3

Native (A64/X64) code generation for Luau (Rust).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use crate::enums::size_x_64::SizeX64;
use crate::macros::codegen_assert::CODEGEN_ASSERT;
use crate::records::operand_x_64::OperandX64;
use crate::records::register_x_64::RegisterX64;

pub fn operator_deref(reg: RegisterX64, scale: u8) -> OperandX64 {
    if scale == 1 {
        return OperandX64::reg(reg);
    }

    CODEGEN_ASSERT!(scale == 1 || scale == 2 || scale == 4 || scale == 8);
    CODEGEN_ASSERT!(reg.index() != 0b100);

    OperandX64::mem(SizeX64::none, reg, scale, RegisterX64::noreg, 0)
}