Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/js/math.js

Issue 1852553003: [builtins] Migrate Math.clz32 to a TurboFan builtin. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/crankshaft/hydrogen.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 (function(global, utils) { 5 (function(global, utils) {
6 "use strict"; 6 "use strict";
7 7
8 %CheckIsBootstrapping(); 8 %CheckIsBootstrapping();
9 9
10 // ------------------------------------------------------------------- 10 // -------------------------------------------------------------------
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 for (var i = 0; i < length; i++) { 136 for (var i = 0; i < length; i++) {
137 var n = arguments[i] / max; 137 var n = arguments[i] / max;
138 var summand = n * n - compensation; 138 var summand = n * n - compensation;
139 var preliminary = sum + summand; 139 var preliminary = sum + summand;
140 compensation = (preliminary - sum) - summand; 140 compensation = (preliminary - sum) - summand;
141 sum = preliminary; 141 sum = preliminary;
142 } 142 }
143 return %math_sqrt(sum) * max; 143 return %math_sqrt(sum) * max;
144 } 144 }
145 145
146 // ES6 draft 07-18-14, section 20.2.2.11
147 function MathClz32JS(x) {
148 return %_MathClz32(x >>> 0);
149 }
150
151 // ES6 draft 09-27-13, section 20.2.2.9. 146 // ES6 draft 09-27-13, section 20.2.2.9.
152 // Cube root approximation, refer to: http://metamerist.com/cbrt/cbrt.htm 147 // Cube root approximation, refer to: http://metamerist.com/cbrt/cbrt.htm
153 // Using initial approximation adapted from Kahan's cbrt and 4 iterations 148 // Using initial approximation adapted from Kahan's cbrt and 4 iterations
154 // of Newton's method. 149 // of Newton's method.
155 function MathCbrt(x) { 150 function MathCbrt(x) {
156 x = TO_NUMBER(x); 151 x = TO_NUMBER(x);
157 if (x == 0 || !NUMBER_IS_FINITE(x)) return x; 152 if (x == 0 || !NUMBER_IS_FINITE(x)) return x;
158 return x >= 0 ? CubeRoot(x) : -CubeRoot(-x); 153 return x >= 0 ? CubeRoot(x) : -CubeRoot(-x);
159 } 154 }
160 155
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 "abs", MathAbs, 197 "abs", MathAbs,
203 "exp", MathExp, 198 "exp", MathExp,
204 "log", MathLog, 199 "log", MathLog,
205 "atan2", MathAtan2JS, 200 "atan2", MathAtan2JS,
206 "pow", MathPowJS, 201 "pow", MathPowJS,
207 "sign", MathSign, 202 "sign", MathSign,
208 "asinh", MathAsinh, 203 "asinh", MathAsinh,
209 "acosh", MathAcosh, 204 "acosh", MathAcosh,
210 "atanh", MathAtanh, 205 "atanh", MathAtanh,
211 "hypot", MathHypot, 206 "hypot", MathHypot,
212 "clz32", MathClz32JS,
213 "cbrt", MathCbrt 207 "cbrt", MathCbrt
214 ]); 208 ]);
215 209
216 %SetForceInlineFlag(MathAbs); 210 %SetForceInlineFlag(MathAbs);
217 %SetForceInlineFlag(MathAtan2JS); 211 %SetForceInlineFlag(MathAtan2JS);
218 %SetForceInlineFlag(MathClz32JS);
219 %SetForceInlineFlag(MathRandom); 212 %SetForceInlineFlag(MathRandom);
220 %SetForceInlineFlag(MathSign); 213 %SetForceInlineFlag(MathSign);
221 214
222 // ------------------------------------------------------------------- 215 // -------------------------------------------------------------------
223 // Exports 216 // Exports
224 217
225 utils.Export(function(to) { 218 utils.Export(function(to) {
226 to.MathAbs = MathAbs; 219 to.MathAbs = MathAbs;
227 to.MathExp = MathExp; 220 to.MathExp = MathExp;
228 to.IntRandom = MathRandomRaw; 221 to.IntRandom = MathRandomRaw;
229 }); 222 });
230 223
231 }) 224 })
OLDNEW
« no previous file with comments | « src/crankshaft/hydrogen.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698