Fix some `use_c_shim_if` directives

This was an accidental regression introduced in #252 by removing compilation of
C files without adjusting the `#[use_c_shim_if]` directives. This restores the
compilation of the assembly files and updates the `#[use_c_shim_if]` directives.
master
Alex Crichton 2018-09-04 10:19:55 -07:00
parent 5a88717b46
commit 0703bfa725
2 changed files with 14 additions and 7 deletions

View File

@ -267,8 +267,10 @@ mod c {
if target_arch == "x86_64" {
sources.extend(
&[
"x86_64/floatdisf.c",
"x86_64/floatdixf.c",
"x86_64/floatundidf.S",
"x86_64/floatundisf.S",
"x86_64/floatundixf.S",
],
);

View File

@ -80,7 +80,10 @@ intrinsics! {
int_to_float!(i, i32, f64)
}
#[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))]
#[use_c_shim_if(any(
all(target_arch = "x86", not(target_env = "msvc")),
all(target_arch = "x86_64", not(windows)),
))]
#[arm_aeabi_alias = __aeabi_l2f]
pub extern "C" fn __floatdisf(i: i64) -> f32 {
// On x86_64 LLVM will use native instructions for this conversion, we
@ -124,17 +127,19 @@ intrinsics! {
int_to_float!(i, u32, f64)
}
#[use_c_shim_if(all(not(target_env = "msvc"),
any(target_arch = "x86",
all(not(windows), target_arch = "x86_64"))))]
#[use_c_shim_if(any(
all(target_arch = "x86", not(target_env = "msvc")),
all(target_arch = "x86_64", not(windows)),
))]
#[arm_aeabi_alias = __aeabi_ul2f]
pub extern "C" fn __floatundisf(i: u64) -> f32 {
int_to_float!(i, u64, f32)
}
#[use_c_shim_if(all(not(target_env = "msvc"),
any(target_arch = "x86",
all(not(windows), target_arch = "x86_64"))))]
#[use_c_shim_if(any(
all(target_arch = "x86", not(target_env = "msvc")),
all(target_arch = "x86_64", not(windows)),
))]
#[arm_aeabi_alias = __aeabi_ul2d]
pub extern "C" fn __floatundidf(i: u64) -> f64 {
int_to_float!(i, u64, f64)