luaur_code_gen/methods/
assembly_builder_a_64_faddp.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 faddp(&mut self, dst: RegisterA64, src: RegisterA64) {
8 CODEGEN_ASSERT!(dst.kind() == KindA64::d || dst.kind() == KindA64::s);
9 CODEGEN_ASSERT!(dst.kind() == src.kind());
10
11 let is_d = if dst.kind() == KindA64::d { 1 } else { 0 };
12 let op = 0b011_11110_0_0_11000_01101_10 | (is_d << 12);
13
14 self.place_r_1(
15 b"faddp\0".as_ptr() as *const core::ffi::c_char,
16 dst,
17 src,
18 op,
19 );
20 }
21}