annotate tango.patch @ 1079:4e388d9d0e25

Intrinsics overhaul: - More error checking for pragma(intrinsic) - Properly handle templating for real (use actual nr of bits, not .sizeof * 8) - Template all .i* and .f* intrinsics - The old names are deprecated aliases now I also added a preliminary patch to make tango.math.Math use the new versions. (I think it looks a lot nicer now)
author Frits van Bommel <fvbommel wxs.nl>
date Tue, 10 Mar 2009 04:45:32 +0100
parents
children 5710440ea420
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1079
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
1 Index: tango/tango/math/Math.d
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
2 ===================================================================
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
3 --- tango/tango/math/Math.d (revision 4388)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
4 +++ tango/tango/math/Math.d (working copy)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
5 @@ -80,13 +80,9 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
6 } else version(D_InlineAsm_X86) {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
7 version = Naked_D_InlineAsm_X86;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
8 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
9 -else version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
10 +version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
11 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
12 import ldc.intrinsics;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
13 - version(X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
14 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
15 - version = LDC_X86;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
16 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
17 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
18
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
19 /*
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
20 @@ -312,26 +308,12 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
21 * Results are undefined if |x| >= $(POWER 2,64).
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
22 */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
23
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
24 -version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
25 +real cos(real x) /* intrinsic */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
26 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
27 - alias llvm_cos_f32 cos;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
28 - alias llvm_cos_f64 cos;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
29 - version(X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
30 + version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
31 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
32 - alias llvm_cos_f80 cos;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
33 + return llvm_cos(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
34 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
35 - else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
36 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
37 - real cos(real x)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
38 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
39 - return tango.stdc.math.cosl(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
40 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
41 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
42 -}
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
43 -else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
44 -{
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
45 -real cos(real x) /* intrinsic */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
46 -{
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
47 version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
48 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
49 asm
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
50 @@ -345,7 +327,6 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
51 return tango.stdc.math.cosl(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
52 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
53 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
54 -}
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
55
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
56 debug(UnitTest) {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
57 unittest {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
58 @@ -366,26 +347,12 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
59 * Bugs:
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
60 * Results are undefined if |x| >= $(POWER 2,64).
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
61 */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
62 -version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
63 +real sin(real x) /* intrinsic */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
64 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
65 - alias llvm_sin_f32 sin;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
66 - alias llvm_sin_f64 sin;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
67 - version(X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
68 + version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
69 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
70 - alias llvm_sin_f80 sin;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
71 + return llvm_sin(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
72 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
73 - else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
74 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
75 - real sin(real x)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
76 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
77 - return tango.stdc.math.sinl(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
78 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
79 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
80 -}
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
81 -else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
82 -{
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
83 -real sin(real x) /* intrinsic */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
84 -{
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
85 version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
86 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
87 asm
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
88 @@ -399,7 +366,6 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
89 return tango.stdc.math.sinl(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
90 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
91 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
92 -}
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
93
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
94 debug(UnitTest) {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
95 unittest {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
96 @@ -999,29 +965,14 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
97 * $(TR $(TD +$(INFIN)) $(TD +$(INFIN)) $(TD no))
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
98 * )
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
99 */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
100 -version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
101 +float sqrt(float x) /* intrinsic */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
102 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
103 - alias llvm_sqrt_f32 sqrt;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
104 - alias llvm_sqrt_f64 sqrt;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
105 - version(X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
106 + version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
107 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
108 - alias llvm_sqrt_f80 sqrt;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
109 + return llvm_sqrt(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
110 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
111 - else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
112 + else version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
113 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
114 - real sqrt(real x)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
115 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
116 - return tango.stdc.math.sqrtl(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
117 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
118 - }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
119 -}
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
120 -else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
121 -{
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
122 -
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
123 -float sqrt(float x) /* intrinsic */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
124 -{
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
125 - version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
126 - {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
127 asm
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
128 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
129 fld x;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
130 @@ -1036,8 +987,12 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
131
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
132 double sqrt(double x) /* intrinsic */ /// ditto
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
133 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
134 - version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
135 + version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
136 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
137 + return llvm_sqrt(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
138 + }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
139 + else version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
140 + {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
141 asm
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
142 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
143 fld x;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
144 @@ -1052,8 +1007,12 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
145
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
146 real sqrt(real x) /* intrinsic */ /// ditto
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
147 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
148 - version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
149 + version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
150 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
151 + return llvm_sqrt(x);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
152 + }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
153 + else version(D_InlineAsm_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
154 + {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
155 asm
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
156 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
157 fld x;
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
158 @@ -1066,8 +1025,6 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
159 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
160 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
161
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
162 -}
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
163 -
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
164 /** ditto */
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
165 creal sqrt(creal z)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
166 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
167 @@ -1714,9 +1671,9 @@
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
168 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
169 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
170 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
171 - version(LDC_X86)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
172 + version(LDC)
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
173 {
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
174 - return llvm_pow_f80(x, y);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
175 + return llvm_pow(x, y);
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
176 }
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
177 else
4e388d9d0e25 Intrinsics overhaul:
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
178 {