diff --git a/src/int/mul.rs b/src/int/mul.rs index 4b0831d..cb3fbd6 100644 --- a/src/int/mul.rs +++ b/src/int/mul.rs @@ -71,7 +71,7 @@ impl Mulo for i64 {} impl Mulo for i128 {} intrinsics! { - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] pub extern "C" fn __muldi3(a: u64, b: u64) -> u64 { a.mul(b) } diff --git a/src/int/sdiv.rs b/src/int/sdiv.rs index 310eb9f..8d85630 100644 --- a/src/int/sdiv.rs +++ b/src/int/sdiv.rs @@ -64,7 +64,7 @@ intrinsics! { a.div(b) } - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] pub extern "C" fn __divdi3(a: i64, b: i64) -> i64 { a.div(b) } @@ -79,7 +79,7 @@ intrinsics! { a.mod_(b) } - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] pub extern "C" fn __moddi3(a: i64, b: i64) -> i64 { a.mod_(b) } diff --git a/src/int/shift.rs b/src/int/shift.rs index 746d02d..b0103ce 100644 --- a/src/int/shift.rs +++ b/src/int/shift.rs @@ -65,7 +65,7 @@ impl Lshr for u64 {} impl Lshr for u128 {} intrinsics! { - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] pub extern "C" fn __ashldi3(a: u64, b: u32) -> u64 { a.ashl(b) } @@ -74,7 +74,7 @@ intrinsics! { a.ashl(b) } - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] pub extern "C" fn __ashrdi3(a: i64, b: u32) -> i64 { a.ashr(b) } @@ -83,7 +83,7 @@ intrinsics! { a.ashr(b) } - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] pub extern "C" fn __lshrdi3(a: u64, b: u32) -> u64 { a.lshr(b) } diff --git a/src/int/udiv.rs b/src/int/udiv.rs index 5ef46de..77e9c3f 100644 --- a/src/int/udiv.rs +++ b/src/int/udiv.rs @@ -227,13 +227,13 @@ intrinsics! { q } - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] /// Returns `n / d` pub extern "C" fn __udivdi3(n: u64, d: u64) -> u64 { __udivmoddi4(n, d, None) } - #[use_c_shim_if(target_arch = "x86")] + #[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))] /// Returns `n % d` pub extern "C" fn __umoddi3(n: u64, d: u64) -> u64 { let mut rem = 0;