2017-02-08 23:10:40 +08:00
|
|
|
use float::Float;
|
2018-02-10 03:35:55 +08:00
|
|
|
use float::add::__addsf3;
|
|
|
|
use float::add::__adddf3;
|
2017-02-08 23:10:40 +08:00
|
|
|
|
2017-06-24 02:05:25 +08:00
|
|
|
intrinsics! {
|
2017-06-24 06:16:07 +08:00
|
|
|
#[arm_aeabi_alias = __aeabi_fsub]
|
2017-06-24 02:05:25 +08:00
|
|
|
pub extern "C" fn __subsf3(a: f32, b: f32) -> f32 {
|
2018-02-10 03:35:55 +08:00
|
|
|
__addsf3(a, f32::from_repr(b.repr() ^ f32::SIGN_MASK))
|
2017-02-08 23:10:40 +08:00
|
|
|
}
|
|
|
|
|
2017-06-24 06:16:07 +08:00
|
|
|
#[arm_aeabi_alias = __aeabi_dsub]
|
2017-06-24 02:05:25 +08:00
|
|
|
pub extern "C" fn __subdf3(a: f64, b: f64) -> f64 {
|
2018-02-10 03:35:55 +08:00
|
|
|
__adddf3(a, f64::from_repr(b.repr() ^ f64::SIGN_MASK))
|
2017-06-24 02:05:25 +08:00
|
|
|
}
|
2018-02-05 01:34:31 +08:00
|
|
|
|
|
|
|
#[cfg(target_arch = "arm")]
|
|
|
|
pub extern "C" fn __subsf3vfp(a: f32, b: f32) -> f32 {
|
|
|
|
a - b
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(target_arch = "arm")]
|
|
|
|
pub extern "C" fn __subdf3vfp(a: f64, b: f64) -> f64 {
|
|
|
|
a - b
|
|
|
|
}
|
2017-06-24 02:05:25 +08:00
|
|
|
}
|