Skip to content
This repository was archived by the owner on Feb 8, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 4 additions & 22 deletions src/core/math.d
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,7 @@ real sin(real x) @safe pure nothrow; /* intrinsic */
*/
version (LDC)
{
// FIXME: stdc.llroundl not available under Windows
version (Windows) long rndtol(real x) @safe pure nothrow { assert(0); }
else long rndtol(real x) @safe pure nothrow { return stdc.llroundl(x); }
long rndtol(real x) @safe pure nothrow { return stdc.llroundl(x); }
}
else
long rndtol(real x) @safe pure nothrow; /* intrinsic */
Expand Down Expand Up @@ -108,9 +106,9 @@ extern (C) real rndtonl(real x);
{
version (LDC)
{
extern(D) float sqrt(float x) { return llvm_sqrt(x); }
extern(D) float sqrt(float x) { return llvm_sqrt(x); }
extern(D) double sqrt(double x) { return llvm_sqrt(x); }
extern(D) real sqrt(real x) { return llvm_sqrt(x); }
extern(D) real sqrt(real x) { return llvm_sqrt(x); }
}
else
{
Expand Down Expand Up @@ -172,21 +170,7 @@ unittest {
*/
version (LDC)
{
@trusted pure nothrow real fabs(real x)
{
version (D_InlineAsm_X86)
{
asm
{
fld x;
fabs;
}
}
else
{
return stdc.fabsl(x);
}
}
real fabs(real x) @safe pure nothrow { return llvm_fabs(x); }
}
else
real fabs(real x) @safe pure nothrow; /* intrinsic */
Expand All @@ -208,8 +192,6 @@ version (LDC)

version(HAS_INTRINSIC_RINT)
real rint(real x) @safe pure nothrow { return llvm_rint(x); }
else version (Windows) // FIXME: stdc.rintl not available under Windows
real rint(real x) @safe pure nothrow { assert(0); }
else
real rint(real x) @safe pure nothrow { return stdc.rintl(x); }
}
Expand Down
8 changes: 8 additions & 0 deletions src/core/stdc/fenv.d
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,16 @@ enum

version( Windows )
{
version( Win64 ) // requires MSVCRT >= 2013
{
private extern __gshared fenv_t _Fenv0;
fenv_t* FE_DFL_ENV = &_Fenv0;
}
else
{
private extern __gshared fenv_t _FE_DFL_ENV;
fenv_t* FE_DFL_ENV = &_FE_DFL_ENV;
}
}
else version( linux )
{
Expand Down
Loading