luaur-code-gen 0.1.0

Native (A64/X64) code generation for Luau (Rust).
Documentation
use crate::functions::get_op_length::get_op_length;
use crate::type_aliases::instruction_ir_builder::Instruction;
use luaur_common::enums::luau_opcode::LuauOpcode;
use luaur_common::macros::luau_insn_op::LUAU_INSN_OP;

pub fn get_instruction_count_instruction_size(insns: *const Instruction, size: u32) -> u32 {
    let mut count: u32 = 0;
    let mut i: u32 = 0;

    while i < size {
        unsafe {
            count += 1;
            let op = LUAU_INSN_OP(*insns.add(i as usize)) as u8;
            let op_enum = LuauOpcode::from(op);
            i += get_op_length(op_enum) as u32;
        }
    }

    count
}