luaur-code-gen 0.1.3

Native (A64/X64) code generation for Luau (Rust).
Documentation
use crate::enums::ir_value_kind::IrValueKind;
use luaur_common::macros::luau_unreachable::LUAU_UNREACHABLE;

pub fn get_reload_offset(kind: IrValueKind) -> i32 {
    match kind {
        IrValueKind::Unknown | IrValueKind::None | IrValueKind::Float | IrValueKind::Count => {
            debug_assert!(false, "Invalid operand restore value kind");
        }
        IrValueKind::Tag => {
            return 8;
        }
        IrValueKind::Int | IrValueKind::Int64 | IrValueKind::Pointer | IrValueKind::Double => {
            return 0;
        }
        IrValueKind::Tvalue => {
            return 0;
        }
    }

    debug_assert!(false, "Invalid operand restore value kind");
    LUAU_UNREACHABLE!();
}