Skip to main content

luaur_code_gen/methods/
assembly_builder_a_64_csel.rs

1use crate::enums::condition_a_64::ConditionA64;
2use crate::enums::kind_a_64::KindA64;
3use crate::macros::codegen_assert::CODEGEN_ASSERT;
4use crate::records::assembly_builder_a_64::AssemblyBuilderA64;
5use crate::records::register_a_64::RegisterA64;
6
7impl AssemblyBuilderA64 {
8    pub fn csel(
9        &mut self,
10        dst: RegisterA64,
11        src1: RegisterA64,
12        src2: RegisterA64,
13        cond: ConditionA64,
14    ) {
15        debug_assert!(dst.kind() == KindA64::x || dst.kind() == KindA64::w);
16
17        self.place_cs(
18            b"csel\0".as_ptr() as *const core::ffi::c_char,
19            dst,
20            src1,
21            src2,
22            cond,
23            0b11010100,
24            0b00,
25            0,
26        );
27    }
28}