luaur_code_gen/methods/
ir_builder_block_at_inst.rs1use 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}