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

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

Issue 2264913002: [wasm] asm.js - Remove Wasm.instantiateModuleFromAsm, use asm.js directly. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 4 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: --expose-wasm 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 imul = stdlib.Math.imul; 10 var imul = stdlib.Math.imul;
11 11
12 FUNC_BODY 12 FUNC_BODY
13 return {main: FUNC_NAME}; 13 return {main: FUNC_NAME};
14 } 14 }
15 15
16 var source = MODULE_NAME.toString() 16 var source = MODULE_NAME.toString()
17 .replace(/MODULE_NAME/g, func.name + "_module") 17 .replace(/MODULE_NAME/g, func.name + "_module")
18 .replace(/FUNC_BODY/g, func.toString()) 18 .replace(/FUNC_BODY/g, func.toString())
19 .replace(/FUNC_NAME/g, func.name); 19 .replace(/FUNC_NAME/g, func.name);
20 return eval("(" + source + ")"); 20 return eval("(" + source + ")");
21 } 21 }
22 22
23 function RunThreeWayTest(asmfunc, expect) { 23 function RunAsmJsTest(asmfunc, expect) {
24 var asm_source = asmfunc.toString(); 24 var asm_source = asmfunc.toString();
25 var nonasm_source = asm_source.replace(new RegExp("use asm"), ""); 25 var nonasm_source = asm_source.replace(new RegExp("use asm"), "");
26 var stdlib = {Math: Math}; 26 var stdlib = {Math: Math};
27 27
28 print("Testing " + asmfunc.name + " (js)...");
28 var js_module = eval("(" + nonasm_source + ")")(stdlib); 29 var js_module = eval("(" + nonasm_source + ")")(stdlib);
29 print("Testing " + asmfunc.name + " (js)...");
30 expect(js_module); 30 expect(js_module);
31 31
32 print("Testing " + asmfunc.name + " (asm.js)..."); 32 print("Testing " + asmfunc.name + " (asm.js)...");
33 var asm_module = asmfunc(stdlib); 33 var asm_module = asmfunc(stdlib);
34 assertTrue(%IsAsmWasmCode(asmfunc) ||
35 %GetOptimizationStatus(asmfunc) === 3);
34 expect(asm_module); 36 expect(asm_module);
35
36 print("Testing " + asmfunc.name + " (wasm)...");
37 var wasm_module = Wasm.instantiateModuleFromAsm(asm_source, stdlib);
38 expect(wasm_module);
39 } 37 }
40 38
41 const imul = Math.imul; 39 const imul = Math.imul;
42 40
43 function u32_add(a, b) { 41 function u32_add(a, b) {
44 a = a | 0; 42 a = a | 0;
45 b = b | 0; 43 b = b | 0;
46 return +(((a >>> 0) + (b >>> 0)) >>> 0); 44 return +(((a >>> 0) + (b >>> 0)) >>> 0);
47 } 45 }
48 46
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 u32_lteq, 203 u32_lteq,
206 u32_gt, 204 u32_gt,
207 u32_gteq, 205 u32_gteq,
208 // TODO(titzer): u32_min 206 // TODO(titzer): u32_min
209 // TODO(titzer): u32_max 207 // TODO(titzer): u32_max
210 // TODO(titzer): u32_abs 208 // TODO(titzer): u32_abs
211 ]; 209 ];
212 210
213 (function () { 211 (function () {
214 for (func of funcs) { 212 for (func of funcs) {
215 RunThreeWayTest(WrapInAsmModule(func), function (module) { 213 RunAsmJsTest(WrapInAsmModule(func), function (module) {
216 for (a of inputs) { 214 for (a of inputs) {
217 for (b of inputs) { 215 for (b of inputs) {
218 var expected = func(a, b); 216 var expected = func(a, b);
219 assertEquals(expected, module.main(a, b)); 217 assertEquals(expected, module.main(a, b));
220 } 218 }
221 } 219 }
222 }); 220 });
223 } 221 }
224 222
225 })(); 223 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698