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

Side by Side Diff: test/mjsunit/wasm/asm-wasm-f64.js

Issue 2377903002: [wasm] [asm.js] Fix various asm.js issues. (Closed)
Patch Set: Created 4 years, 2 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
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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 // Flags: --validate-asm --allow-natives-syntax 5 // Flags: --validate-asm --allow-natives-syntax
6 6
7 function WrapInAsmModule(func) { 7 function WrapInAsmModule(func) {
8 function MODULE_NAME(stdlib) { 8 function MODULE_NAME(stdlib) {
9 "use asm"; 9 "use asm";
10 var Math_ceil = stdlib.Math.ceil; 10 var Math_ceil = stdlib.Math.ceil;
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 function f64_sin(a) { 198 function f64_sin(a) {
199 a = +a; 199 a = +a;
200 return +Math_sin(+a); 200 return +Math_sin(+a);
201 } 201 }
202 202
203 function f64_tan(a) { 203 function f64_tan(a) {
204 a = +a; 204 a = +a;
205 return +Math_tan(+a); 205 return +Math_tan(+a);
206 } 206 }
207 207
208 function f64_exp(a, b) { 208 function f64_exp(a) {
209 a = +a;
210 return +Math_exp(+a);
211 }
212
213 function f64_log(a) {
214 a = +a;
215 return +Math_log(+a);
216 }
217
218 function f64_atan2(a, b) {
209 a = +a; 219 a = +a;
210 b = +b; 220 b = +b;
211 return +Math_exp(+a, +b); 221 return +Math_atan2(+a, +b);
212 } 222 }
213 223
214 function f64_log(a, b) { 224 function f64_neg(a) {
215 a = +a; 225 a = +a;
216 b = +b; 226 return +(-a);
217 return +Math_log(+a, +b);
218 }
219
220 function f64_atan2(a) {
221 a = +a;
222 return +Math_atan2(+a);
223 } 227 }
224 228
225 229
226 var inputs = [ 230 var inputs = [
227 0, 1, 2, 3, 4, 231 0, 1, 2, 3, 4,
228 NaN, 232 NaN,
229 Infinity, 233 Infinity,
230 -Infinity, 234 -Infinity,
231 10, 20, 30, 31, 32, 33, 100, 2000, 235 10, 20, 30, 31, 32, 33, 100, 2000,
232 30000, 400000, 5000000, 236 30000, 400000, 5000000,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 f64_eq, 269 f64_eq,
266 f64_ne, 270 f64_ne,
267 f64_lt, 271 f64_lt,
268 f64_lteq, 272 f64_lteq,
269 f64_gt, 273 f64_gt,
270 f64_gteq, 274 f64_gteq,
271 f64_ceil, 275 f64_ceil,
272 f64_floor, 276 f64_floor,
273 // TODO(bradnelson) f64_sqrt, 277 // TODO(bradnelson) f64_sqrt,
274 f64_abs, 278 f64_abs,
279 f64_neg,
275 // TODO(bradnelson) f64_min is wrong for -0 280 // TODO(bradnelson) f64_min is wrong for -0
276 // TODO(bradnelson) f64_max is wrong for -0 281 // TODO(bradnelson) f64_max is wrong for -0
277 // TODO(bradnelson) f64_acos, 282 f64_acos,
278 // TODO(bradnelson) f64_asin, 283 f64_asin,
279 // TODO(bradnelson) f64_atan, 284 f64_atan,
280 // TODO(bradnelson) f64_cos, 285 f64_cos,
281 // TODO(bradnelson) f64_sin, 286 f64_sin,
282 // TODO(bradnelson) f64_tan, 287 f64_tan,
283 // TODO(bradnelson) f64_exp, 288 f64_exp,
284 // TODO(bradnelson) f64_log, 289 f64_log,
285 // TODO(bradnelson) f64_atan2, 290 f64_atan2,
286 ]; 291 ];
287 292
288 (function () { 293 (function () {
289 for (func of funcs) { 294 for (func of funcs) {
290 RunAsmJsTest(WrapInAsmModule(func), function (module) { 295 RunAsmJsTest(WrapInAsmModule(func), function (module) {
291 if (func.length == 1) { 296 if (func.length == 1) {
292 for (a of inputs) { 297 for (a of inputs) {
293 assertEquals(func(a), module.main(a)); 298 assertEquals(func(a), module.main(a));
294 assertEquals(func(a / 10), module.main(a / 10)); 299 assertEquals(func(a / 10), module.main(a / 10));
295 assertEquals(func(a / 440.9), module.main(a / 440.9)); 300 assertEquals(func(a / 440.9), module.main(a / 440.9));
296 assertEquals(func(a / -33.1), module.main(a / -33.1)); 301 assertEquals(func(a / -33.1), module.main(a / -33.1));
297 } 302 }
298 } else { 303 } else {
299 for (a of inputs) { 304 for (a of inputs) {
300 for (b of inputs) { 305 for (b of inputs) {
301 assertEquals(func(a, b), module.main(a, b)); 306 assertEquals(func(a, b), module.main(a, b));
302 assertEquals(func(a / 10, b), module.main(a / 10, b)); 307 assertEquals(func(a / 10, b), module.main(a / 10, b));
303 assertEquals(func(a, b / 440.9), module.main(a, b / 440.9)); 308 assertEquals(func(a, b / 440.9), module.main(a, b / 440.9));
304 assertEquals(func(a / -33.1, b), module.main(a / -33.1, b)); 309 assertEquals(func(a / -33.1, b), module.main(a / -33.1, b));
305 } 310 }
306 } 311 }
307 } 312 }
308 }); 313 });
309 } 314 }
310 })(); 315 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698