luaur-code-gen 0.1.0

Native (A64/X64) code generation for Luau (Rust).
Documentation
use crate::functions::align_position::align_position;
use crate::functions::writeu_32::writeu_32;
use crate::records::unwind_builder_dwarf_2::UnwindBuilderDwarf2;

impl UnwindBuilderDwarf2 {
    pub fn finish_function(&mut self, begin_offset: u32, end_offset: u32) {
        if let Some(last_func) = self.unwind_functions.last_mut() {
            last_func.begin_offset = begin_offset;
            last_func.end_offset = end_offset;
        }

        luaur_common::LUAU_ASSERT!(self.fde_entry_start != core::ptr::null_mut());

        unsafe {
            self.pos = align_position(self.fde_entry_start, self.pos);
            let length = (self.pos as usize - self.fde_entry_start as usize - 4) as u32;
            writeu_32(self.fde_entry_start, length);
        }
    }
}