diff --git a/std/math/exponential.d b/std/math/exponential.d index aa8e887a32c..b7ed71847be 100644 --- a/std/math/exponential.d +++ b/std/math/exponential.d @@ -37,7 +37,19 @@ import std.traits : isFloatingPoint, isIntegral, isSigned, isUnsigned, Largest, static import core.math; static import core.stdc.math; -version (DigitalMars) +version (LDC) +{ + version (CRuntime_Microsoft) version = LDC_MSVCRT; + + version (LDC_MSVCRT) {} + else version (Android) {} + else + { + version (X86) version = INLINE_YL2X; + version (X86_64) version = INLINE_YL2X; + } +} +else version (DigitalMars) { version = INLINE_YL2X; // x87 has opcodes for these } @@ -45,7 +57,9 @@ version (DigitalMars) version (D_InlineAsm_X86) version = InlineAsm_X86_Any; version (D_InlineAsm_X86_64) version = InlineAsm_X86_Any; -version (InlineAsm_X86_Any) version = InlineAsm_X87; +version (LDC_MSVCRT) {} +else version (Android) {} +else version (InlineAsm_X86_Any) version = InlineAsm_X87; version (InlineAsm_X87) { static assert(real.mant_dig == 64); diff --git a/std/math/rounding.d b/std/math/rounding.d index a00759baa7d..01fd2d2b64e 100644 --- a/std/math/rounding.d +++ b/std/math/rounding.d @@ -25,10 +25,17 @@ static import core.stdc.math; import std.traits : isFloatingPoint, isIntegral, Unqual; +version (LDC) +{ + version (CRuntime_Microsoft) version = LDC_MSVCRT; +} + version (D_InlineAsm_X86) version = InlineAsm_X86_Any; version (D_InlineAsm_X86_64) version = InlineAsm_X86_Any; -version (InlineAsm_X86_Any) version = InlineAsm_X87; +version (LDC_MSVCRT) {} +else version (Android) {} +else version (InlineAsm_X86_Any) version = InlineAsm_X87; version (InlineAsm_X87) { static assert(real.mant_dig == 64); diff --git a/std/math/trigonometry.d b/std/math/trigonometry.d index 06a7cb10b35..52c28687aab 100644 --- a/std/math/trigonometry.d +++ b/std/math/trigonometry.d @@ -42,10 +42,17 @@ module std.math.trigonometry; static import core.math; +version (LDC) +{ + version (CRuntime_Microsoft) version = LDC_MSVCRT; +} + version (D_InlineAsm_X86) version = InlineAsm_X86_Any; version (D_InlineAsm_X86_64) version = InlineAsm_X86_Any; -version (InlineAsm_X86_Any) version = InlineAsm_X87; +version (LDC_MSVCRT) {} +else version (Android) {} +else version (InlineAsm_X86_Any) version = InlineAsm_X87; version (InlineAsm_X87) { static assert(real.mant_dig == 64);