Add __ledf2vfp and __lesf2vfp

Now that `73884ae` is in some nightly release We can add ledf2vfp/leds2vfp
and so these two functions be aliased to aeabi_fcmple/aeabi_dcmple on soft-float targets.
This commit is contained in:
Paolo Teti 2018-02-25 17:50:56 +01:00
parent cfecfa2918
commit 28c57e7212
3 changed files with 24 additions and 2 deletions

View File

@ -115,8 +115,8 @@ features = ["c"]
- [x] arm/gesf2vfp.S - [x] arm/gesf2vfp.S
- [x] arm/gtdf2vfp.S - [x] arm/gtdf2vfp.S
- [x] arm/gtsf2vfp.S - [x] arm/gtsf2vfp.S
- [ ] arm/ledf2vfp.S - [x] arm/ledf2vfp.S
- [ ] arm/lesf2vfp.S - [x] arm/lesf2vfp.S
- [x] arm/ltdf2vfp.S - [x] arm/ltdf2vfp.S
- [x] arm/ltsf2vfp.S - [x] arm/ltsf2vfp.S
- [ ] arm/modsi3.S (generic version is done) - [ ] arm/modsi3.S (generic version is done)

View File

@ -240,6 +240,14 @@ intrinsics! {
(a < b) as i32 (a < b) as i32
} }
pub extern "C" fn __lesf2vfp(a: f32, b: f32) -> i32 {
(a <= b) as i32
}
pub extern "C" fn __ledf2vfp(a: f64, b: f64) -> i32 {
(a <= b) as i32
}
pub extern "C" fn __nesf2vfp(a: f32, b: f32) -> i32 { pub extern "C" fn __nesf2vfp(a: f32, b: f32) -> i32 {
(a != b) as i32 (a != b) as i32
} }

View File

@ -276,6 +276,20 @@ fn main() {
Some((a.0 < b.0) as i32) Some((a.0 < b.0) as i32)
}, },
"compiler_builtins::float::cmp::__ltdf2vfp(a, b)"); "compiler_builtins::float::cmp::__ltdf2vfp(a, b)");
gen(|(a, b): (LargeF32, LargeF32)| {
if a.0.is_nan() || b.0.is_nan() {
return None;
}
Some((a.0 <= b.0) as i32)
},
"compiler_builtins::float::cmp::__lesf2vfp(a, b)");
gen(|(a, b): (MyF64, MyF64)| {
if a.0.is_nan() || b.0.is_nan() {
return None;
}
Some((a.0 <= b.0) as i32)
},
"compiler_builtins::float::cmp::__ledf2vfp(a, b)");
gen(|(a, b): (LargeF32, LargeF32)| { gen(|(a, b): (LargeF32, LargeF32)| {
if a.0.is_nan() || b.0.is_nan() { if a.0.is_nan() || b.0.is_nan() {
return None; return None;