luaur_code_gen/functions/
get_instruction_count_code_gen_assembly.rs1use crate::functions::get_op_length::get_op_length;
2use crate::type_aliases::instruction_ir_builder::Instruction;
3use luaur_common::enums::luau_opcode::LuauOpcode;
4use luaur_common::macros::luau_insn_op::LUAU_INSN_OP;
5
6pub fn get_instruction_count_instruction_size(insns: *const Instruction, size: u32) -> u32 {
7 let mut count: u32 = 0;
8 let mut i: u32 = 0;
9
10 while i < size {
11 unsafe {
12 count += 1;
13 let op = LUAU_INSN_OP(*insns.add(i as usize)) as u8;
14 let op_enum = LuauOpcode::from(op);
15 i += get_op_length(op_enum) as u32;
16 }
17 }
18
19 count
20}