1 | use crate::float::Float; |
2 | |
3 | intrinsics! { |
4 | #[arm_aeabi_alias = __aeabi_fsub] |
5 | pub extern "C" fn __subsf3(a: f32, b: f32) -> f32 { |
6 | crate::float::add::__addsf3(a, f32::from_bits(b.to_bits() ^ f32::SIGN_MASK)) |
7 | } |
8 | |
9 | #[arm_aeabi_alias = __aeabi_dsub] |
10 | pub extern "C" fn __subdf3(a: f64, b: f64) -> f64 { |
11 | crate::float::add::__adddf3(a, f64::from_bits(b.to_bits() ^ f64::SIGN_MASK)) |
12 | } |
13 | |
14 | #[ppc_alias = __subkf3] |
15 | #[cfg (f128_enabled)] |
16 | pub extern "C" fn __subtf3(a: f128, b: f128) -> f128 { |
17 | #[cfg (any(target_arch = "powerpc" , target_arch = "powerpc64" ))] |
18 | use crate::float::add::__addkf3 as __addtf3; |
19 | #[cfg (not(any(target_arch = "powerpc" , target_arch = "powerpc64" )))] |
20 | use crate::float::add::__addtf3; |
21 | |
22 | __addtf3(a, f128::from_bits(b.to_bits() ^ f128::SIGN_MASK)) |
23 | } |
24 | } |
25 | |