Explorar o código

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.
Alex Crichton %!s(int64=6) %!d(string=hai) anos
pai
achega
0703bfa725
Modificáronse 2 ficheiros con 14 adicións e 7 borrados
  1. 2 0
      build.rs
  2. 12 7
      src/float/conv.rs

+ 2 - 0
build.rs

@@ -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",
                         ],
                     );

+ 12 - 7
src/float/conv.rs

@@ -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)