Skip to main content

luaur_code_gen/methods/
assembly_builder_a_64_fcmp.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 fcmp(&mut self, src1: RegisterA64, src2: RegisterA64) {
7        debug_assert!(src1.kind() == src2.kind());
8        debug_assert!(src1.kind() == KindA64::d || src1.kind() == KindA64::s);
9
10        if src1.kind() == KindA64::d {
11            self.assembly_builder_a_64_place_fcmp(c"fcmp".as_ptr(), src1, src2, 0b11110_01_1, 0b00);
12        } else {
13            self.assembly_builder_a_64_place_fcmp(c"fcmp".as_ptr(), src1, src2, 0b11110_00_1, 0b00);
14        }
15    }
16}