luaur_code_gen/methods/
assembly_builder_a_64_fcmpz.rs1use crate::enums::kind_a_64::KindA64;
2use crate::macros::codegen_assert::CODEGEN_ASSERT;
3use crate::records::assembly_builder_a_64::AssemblyBuilderA64;
4use crate::records::register_a_64::RegisterA64;
5
6impl AssemblyBuilderA64 {
7 pub fn fcmpz(&mut self, src: RegisterA64) {
8 CODEGEN_ASSERT!(src.kind() == KindA64::d || src.kind() == KindA64::s);
9
10 let zero_reg = RegisterA64 {
11 bits: src.kind() as u8,
12 };
13
14 if src.kind() == KindA64::d {
15 self.assembly_builder_a_64_place_fcmp(
16 c"fcmp".as_ptr(),
17 src,
18 zero_reg,
19 0b11110_01_1,
20 0b01,
21 );
22 } else {
23 self.assembly_builder_a_64_place_fcmp(
24 c"fcmp".as_ptr(),
25 src,
26 zero_reg,
27 0b11110_00_1,
28 0b01,
29 );
30 }
31 }
32}