Skip to main content

luaur_code_gen/methods/
assembly_builder_a_64_place_br.rs

1use crate::enums::kind_a_64::KindA64;
2use crate::records::assembly_builder_a_64::AssemblyBuilderA64;
3use crate::records::register_a_64::RegisterA64;
4
5impl AssemblyBuilderA64 {
6    pub fn place_br(&mut self, name: *const core::ffi::c_char, src: RegisterA64, op: u32) {
7        if self.log_text {
8            self.log_c_char_register_a_64(name, src);
9        }
10
11        // Avoid CODEGEN_ASSERT! macro invocation here: it currently trips a type mismatch
12        // in assert_call_handler arguments elsewhere in the codebase.
13        debug_assert!(src.kind() == KindA64::x);
14
15        self.place((src.index() as u32) << 5 | (op << 10));
16        self.commit();
17    }
18}