mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-13 19:33:13 +01:00
185 lines
3.1 KiB
Diff
185 lines
3.1 KiB
Diff
Index: tango/tango/math/Math.d
|
|
===================================================================
|
|
--- tango/tango/math/Math.d (revision 4388)
|
|
+++ tango/tango/math/Math.d (working copy)
|
|
@@ -80,13 +80,9 @@
|
|
} else version(D_InlineAsm_X86) {
|
|
version = Naked_D_InlineAsm_X86;
|
|
}
|
|
-else version(LDC)
|
|
+version(LDC)
|
|
{
|
|
import ldc.intrinsics;
|
|
- version(X86)
|
|
- {
|
|
- version = LDC_X86;
|
|
- }
|
|
}
|
|
|
|
/*
|
|
@@ -312,28 +308,14 @@
|
|
* Results are undefined if |x| >= $(POWER 2,64).
|
|
*/
|
|
|
|
-version(LDC)
|
|
+real cos(real x) /* intrinsic */
|
|
{
|
|
- alias llvm_cos_f32 cos;
|
|
- alias llvm_cos_f64 cos;
|
|
- version(X86)
|
|
+ version(LDC)
|
|
{
|
|
- alias llvm_cos_f80 cos;
|
|
+ return llvm_cos(x);
|
|
}
|
|
- else
|
|
+ else version(D_InlineAsm_X86)
|
|
{
|
|
- real cos(real x)
|
|
- {
|
|
- return tango.stdc.math.cosl(x);
|
|
- }
|
|
- }
|
|
-}
|
|
-else
|
|
-{
|
|
-real cos(real x) /* intrinsic */
|
|
-{
|
|
- version(D_InlineAsm_X86)
|
|
- {
|
|
asm
|
|
{
|
|
fld x;
|
|
@@ -345,7 +327,6 @@
|
|
return tango.stdc.math.cosl(x);
|
|
}
|
|
}
|
|
-}
|
|
|
|
debug(UnitTest) {
|
|
unittest {
|
|
@@ -366,28 +347,14 @@
|
|
* Bugs:
|
|
* Results are undefined if |x| >= $(POWER 2,64).
|
|
*/
|
|
-version(LDC)
|
|
+real sin(real x) /* intrinsic */
|
|
{
|
|
- alias llvm_sin_f32 sin;
|
|
- alias llvm_sin_f64 sin;
|
|
- version(X86)
|
|
+ version(LDC)
|
|
{
|
|
- alias llvm_sin_f80 sin;
|
|
+ return llvm_sin(x);
|
|
}
|
|
- else
|
|
+ else version(D_InlineAsm_X86)
|
|
{
|
|
- real sin(real x)
|
|
- {
|
|
- return tango.stdc.math.sinl(x);
|
|
- }
|
|
- }
|
|
-}
|
|
-else
|
|
-{
|
|
-real sin(real x) /* intrinsic */
|
|
-{
|
|
- version(D_InlineAsm_X86)
|
|
- {
|
|
asm
|
|
{
|
|
fld x;
|
|
@@ -399,7 +366,6 @@
|
|
return tango.stdc.math.sinl(x);
|
|
}
|
|
}
|
|
-}
|
|
|
|
debug(UnitTest) {
|
|
unittest {
|
|
@@ -999,29 +965,14 @@
|
|
* $(TR $(TD +$(INFIN)) $(TD +$(INFIN)) $(TD no))
|
|
* )
|
|
*/
|
|
-version(LDC)
|
|
+float sqrt(float x) /* intrinsic */
|
|
{
|
|
- alias llvm_sqrt_f32 sqrt;
|
|
- alias llvm_sqrt_f64 sqrt;
|
|
- version(X86)
|
|
+ version(LDC)
|
|
{
|
|
- alias llvm_sqrt_f80 sqrt;
|
|
+ return llvm_sqrt(x);
|
|
}
|
|
- else
|
|
+ else version(D_InlineAsm_X86)
|
|
{
|
|
- real sqrt(real x)
|
|
- {
|
|
- return tango.stdc.math.sqrtl(x);
|
|
- }
|
|
- }
|
|
-}
|
|
-else
|
|
-{
|
|
-
|
|
-float sqrt(float x) /* intrinsic */
|
|
-{
|
|
- version(D_InlineAsm_X86)
|
|
- {
|
|
asm
|
|
{
|
|
fld x;
|
|
@@ -1036,8 +987,12 @@
|
|
|
|
double sqrt(double x) /* intrinsic */ /// ditto
|
|
{
|
|
- version(D_InlineAsm_X86)
|
|
+ version(LDC)
|
|
{
|
|
+ return llvm_sqrt(x);
|
|
+ }
|
|
+ else version(D_InlineAsm_X86)
|
|
+ {
|
|
asm
|
|
{
|
|
fld x;
|
|
@@ -1052,8 +1007,12 @@
|
|
|
|
real sqrt(real x) /* intrinsic */ /// ditto
|
|
{
|
|
- version(D_InlineAsm_X86)
|
|
+ version(LDC)
|
|
{
|
|
+ return llvm_sqrt(x);
|
|
+ }
|
|
+ else version(D_InlineAsm_X86)
|
|
+ {
|
|
asm
|
|
{
|
|
fld x;
|
|
@@ -1066,8 +1025,6 @@
|
|
}
|
|
}
|
|
|
|
-}
|
|
-
|
|
/** ditto */
|
|
creal sqrt(creal z)
|
|
{
|
|
@@ -1714,9 +1671,9 @@
|
|
}
|
|
}
|
|
}
|
|
- version(LDC_X86)
|
|
+ version(LDC)
|
|
{
|
|
- return llvm_pow_f80(x, y);
|
|
+ return llvm_pow(x, y);
|
|
}
|
|
else
|
|
{
|