Skip to main content

luaur_code_gen/methods/
ir_builder_block_at_inst.rs

1use crate::enums::ir_block_kind::IrBlockKind;
2use crate::enums::ir_op_kind::IrOpKind;
3use crate::records::ir_builder::IrBuilder;
4use crate::records::ir_op::IrOp;
5
6impl IrBuilder {
7    pub fn block_at_inst(&mut self, index: u32) -> IrOp {
8        let block_index = self.inst_index_to_block[index as usize];
9        if block_index != u32::MAX {
10            return IrOp::ir_op_ir_op_kind_u32(IrOpKind::Block, block_index);
11        }
12
13        let result = self.block(IrBlockKind::Internal);
14        self.function.block_op(result).startpc = index;
15        result
16    }
17}