luaur_code_gen/functions/
get_reload_offset.rs1use crate::enums::ir_value_kind::IrValueKind;
2use luaur_common::macros::luau_unreachable::LUAU_UNREACHABLE;
3
4pub fn get_reload_offset(kind: IrValueKind) -> i32 {
5 match kind {
6 IrValueKind::Unknown | IrValueKind::None | IrValueKind::Float | IrValueKind::Count => {
7 debug_assert!(false, "Invalid operand restore value kind");
8 }
9 IrValueKind::Tag => {
10 return 8;
11 }
12 IrValueKind::Int | IrValueKind::Int64 | IrValueKind::Pointer | IrValueKind::Double => {
13 return 0;
14 }
15 IrValueKind::Tvalue => {
16 return 0;
17 }
18 }
19
20 debug_assert!(false, "Invalid operand restore value kind");
21 LUAU_UNREACHABLE!();
22}