luaur-code-gen 0.1.3

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::enums::ir_block_kind::IrBlockKind;
use crate::enums::ir_op_kind::IrOpKind;
use crate::records::ir_builder::IrBuilder;
use crate::records::ir_op::IrOp;

impl IrBuilder {
    pub fn block_at_inst(&mut self, index: u32) -> IrOp {
        let block_index = self.inst_index_to_block[index as usize];
        if block_index != u32::MAX {
            return IrOp::ir_op_ir_op_kind_u32(IrOpKind::Block, block_index);
        }

        let result = self.block(IrBlockKind::Internal);
        self.function.block_op(result).startpc = index;
        result
    }
}