luaur-code-gen 0.1.2

Native (A64/X64) code generation for Luau (Rust).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::functions::kill_ir_utils::kill_ir_function_ir_inst;
use crate::macros::codegen_assert::CODEGEN_ASSERT;
use crate::records::ir_function::IrFunction;
use crate::records::ir_inst::IrInst;

pub fn remove_inst_use(function: &mut IrFunction, inst_idx: u32) {
    let inst: *mut IrInst = &mut function.instructions[inst_idx as usize];

    CODEGEN_ASSERT!(unsafe { (*inst).use_count } != 0);
    unsafe {
        (*inst).use_count -= 1;
    }

    if unsafe { (*inst).use_count } == 0 {
        kill_ir_function_ir_inst(function, unsafe { &mut *inst });
    }
}