1use crate::float::add::__adddf3;
2use crate::float::add::__addsf3;
3use crate::float::Float;
4
5intrinsics! {
6 #[avr_skip]
7 #[arm_aeabi_alias = __aeabi_fsub]
8 pub extern "C" fn __subsf3(a: f32, b: f32) -> f32 {
9 __addsf3(a, f32::from_repr(b.repr() ^ f32::SIGN_MASK))
10 }
11
12 #[avr_skip]
13 #[arm_aeabi_alias = __aeabi_dsub]
14 pub extern "C" fn __subdf3(a: f64, b: f64) -> f64 {
15 __adddf3(a, f64::from_repr(b.repr() ^ f64::SIGN_MASK))
16 }
17
18 #[cfg(target_arch = "arm")]
19 pub extern "C" fn __subsf3vfp(a: f32, b: f32) -> f32 {
20 a - b
21 }
22
23 #[cfg(target_arch = "arm")]
24 pub extern "C" fn __subdf3vfp(a: f64, b: f64) -> f64 {
25 a - b
26 }
27}
28