Skip to main content

luaur_code_gen/functions/
append_label_regset.rs

1use crate::functions::append_register_set::append_register_set;
2use crate::records::ir_to_string_context::IrToStringContext;
3use crate::records::register_set::RegisterSet;
4
5pub fn append_label_regset(
6    ctx: &mut IrToStringContext,
7    reg_sets: &[RegisterSet],
8    block_idx: usize,
9    name: &str,
10) {
11    if block_idx < reg_sets.len() {
12        let rs = &reg_sets[block_idx];
13
14        if rs.regs.iter().any(|&r| r != 0) || rs.vararg_seq {
15            crate::functions::append::append(&mut ctx.result, format_args!("|{{{}|", name));
16            append_register_set(ctx, rs, c"|".as_ptr());
17            crate::functions::append::append(&mut ctx.result, format_args!("}}"));
18        }
19    }
20}