luaur_code_gen/methods/
assembly_builder_a_64_fabs.rs1use 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 fabs(&mut self, dst: RegisterA64, src: RegisterA64) {
7 debug_assert!(dst.kind() == src.kind());
8 debug_assert!(
9 dst.kind() == KindA64::d || dst.kind() == KindA64::s || dst.kind() == KindA64::q
10 );
11
12 if dst.kind() == KindA64::q {
13 self.place_r_1(
14 b"fabs\0".as_ptr() as *const core::ffi::c_char,
15 dst,
16 src,
17 0b010_01110_10_1_0000_01111_10,
18 );
19 } else if dst.kind() == KindA64::d {
20 self.place_r_1(
21 b"fabs\0".as_ptr() as *const core::ffi::c_char,
22 dst,
23 src,
24 0b000_11110_01_1_0000_01_10000,
25 );
26 } else {
27 self.place_r_1(
28 b"fabs\0".as_ptr() as *const core::ffi::c_char,
29 dst,
30 src,
31 0b000_11110_00_1_0000_01_10000,
32 );
33 }
34 }
35}