luaur_code_gen/methods/
ir_builder_fallback_block.rs1use crate::enums::ir_block_kind::IrBlockKind;
2use crate::enums::ir_op_kind::IrOpKind;
3use crate::macros::codegen_assert::CODEGEN_ASSERT;
4use crate::records::ir_block::IrBlock;
5use crate::records::ir_builder::IrBuilder;
6use crate::records::ir_op::IrOp;
7
8impl IrBuilder {
9 pub fn fallback_block(&mut self, pcpos: u32) -> IrOp {
10 let index = self.function.blocks.len() as u32;
11 self.function.blocks.push(IrBlock {
12 kind: IrBlockKind::Fallback,
13 flags: 0,
14 use_count: 0,
15 start: !0u32,
16 finish: !0u32,
17 sortkey: 0,
18 chainkey: 0,
19 expected_next_block: !0u32,
20 startpc: pcpos,
21 label: crate::records::label::Label::default(),
22 });
23 CODEGEN_ASSERT!(index != 0);
24 IrOp::ir_op_ir_op_kind_u32(IrOpKind::Block, index)
25 }
26}