luaur_code_gen/methods/
assembly_builder_a_64_place_fcmp.rs1use crate::records::assembly_builder_a_64::AssemblyBuilderA64;
2use crate::records::register_a_64::RegisterA64;
3
4impl AssemblyBuilderA64 {
5 pub fn assembly_builder_a_64_place_fcmp(
6 &mut self,
7 name: *const core::ffi::c_char,
8 src1: RegisterA64,
9 src2: RegisterA64,
10 op: u8,
11 opc: u8,
12 ) {
13 if self.log_text {
14 if opc != 0 {
15 self.log_c_char_register_a_64_i32_i32(name, src1, 0, 0);
17 } else {
18 self.log_c_char_register_a_64_register_a_64(name, src1, src2);
19 }
20 }
21
22 assert!(src1.kind() == src2.kind());
23
24 self.place(
25 ((opc as u32) << 3)
26 | ((src1.index() as u32) << 5)
27 | ((0b1000u32) << 10)
28 | ((src2.index() as u32) << 16)
29 | ((op as u32) << 21),
30 );
31 self.commit();
32 }
33}