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" { if target_arch == "x86_64" {
sources.extend( sources.extend(
&[ &[
"x86_64/floatdisf.c",
"x86_64/floatdixf.c", "x86_64/floatdixf.c",
"x86_64/floatundidf.S", "x86_64/floatundidf.S",
"x86_64/floatundisf.S",
"x86_64/floatundixf.S", "x86_64/floatundixf.S",
], ],
); );

View File

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