luaur-code-gen 0.1.0

Native (A64/X64) code generation for Luau (Rust).
Documentation
impl crate::records::const_prop_state::ConstPropState {
    pub fn invalidate_register_range(&mut self, first_reg: i32, count: i32) {
        if count == -1 {
            self.invalidate_registers_from(first_reg);
        } else {
            let max_reg = self.max_reg;
            for i in first_reg..(first_reg + count).min(max_reg + 1) {
                let idx = i as usize;

                // Avoid borrowing `self` (and `self.regs[idx]`) mutably more than once:
                // - take a raw pointer to the register slot
                // - perform the invalidation call using the raw pointer as a mutable ref
                let reg_ptr: *mut crate::records::register_info::RegisterInfo = &mut self.regs[idx];
                unsafe {
                    self.invalidate_register_info_bool_bool(&mut *reg_ptr, true, true);
                }
            }
        }
    }
}