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