Use more intrinsics on msvc
This commit is contained in:
parent
8abb0ab826
commit
47ff81325c
|
@ -71,7 +71,7 @@ impl Mulo for i64 {}
|
||||||
impl Mulo for i128 {}
|
impl Mulo for i128 {}
|
||||||
|
|
||||||
intrinsics! {
|
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 {
|
pub extern "C" fn __muldi3(a: u64, b: u64) -> u64 {
|
||||||
a.mul(b)
|
a.mul(b)
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ intrinsics! {
|
||||||
a.div(b)
|
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 {
|
pub extern "C" fn __divdi3(a: i64, b: i64) -> i64 {
|
||||||
a.div(b)
|
a.div(b)
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ intrinsics! {
|
||||||
a.mod_(b)
|
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 {
|
pub extern "C" fn __moddi3(a: i64, b: i64) -> i64 {
|
||||||
a.mod_(b)
|
a.mod_(b)
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ impl Lshr for u64 {}
|
||||||
impl Lshr for u128 {}
|
impl Lshr for u128 {}
|
||||||
|
|
||||||
intrinsics! {
|
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 {
|
pub extern "C" fn __ashldi3(a: u64, b: u32) -> u64 {
|
||||||
a.ashl(b)
|
a.ashl(b)
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ intrinsics! {
|
||||||
a.ashl(b)
|
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 {
|
pub extern "C" fn __ashrdi3(a: i64, b: u32) -> i64 {
|
||||||
a.ashr(b)
|
a.ashr(b)
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ intrinsics! {
|
||||||
a.ashr(b)
|
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 {
|
pub extern "C" fn __lshrdi3(a: u64, b: u32) -> u64 {
|
||||||
a.lshr(b)
|
a.lshr(b)
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,13 +227,13 @@ intrinsics! {
|
||||||
q
|
q
|
||||||
}
|
}
|
||||||
|
|
||||||
#[use_c_shim_if(target_arch = "x86")]
|
#[use_c_shim_if(all(target_arch = "x86", not(target_env = "msvc")))]
|
||||||
/// Returns `n / d`
|
/// Returns `n / d`
|
||||||
pub extern "C" fn __udivdi3(n: u64, d: u64) -> u64 {
|
pub extern "C" fn __udivdi3(n: u64, d: u64) -> u64 {
|
||||||
__udivmoddi4(n, d, None)
|
__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`
|
/// Returns `n % d`
|
||||||
pub extern "C" fn __umoddi3(n: u64, d: u64) -> u64 {
|
pub extern "C" fn __umoddi3(n: u64, d: u64) -> u64 {
|
||||||
let mut rem = 0;
|
let mut rem = 0;
|
||||||
|
|
Loading…
Reference in New Issue