| Index: test/mjsunit/wasm/asm-wasm-expr.js
|
| diff --git a/test/mjsunit/wasm/asm-wasm-expr.js b/test/mjsunit/wasm/asm-wasm-expr.js
|
| deleted file mode 100644
|
| index 3b20826fe74e9a07446f24a2a55a791cdaabdf97..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/wasm/asm-wasm-expr.js
|
| +++ /dev/null
|
| @@ -1,151 +0,0 @@
|
| -// Copyright 2016 the V8 project authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Flags: --validate-asm --allow-natives-syntax
|
| -
|
| -var selectedTest = undefined;
|
| -//selectedTest = 16;
|
| -
|
| -function skip(a) {
|
| - return selectedTest != undefined ? a != selectedTest : false;
|
| -}
|
| -
|
| -const assign_in_stmt = [
|
| - "if (E) =",
|
| - "if (=) E",
|
| - "if (E) E; else =",
|
| - "for (=; E; S) S",
|
| - "for (E; =; S) S",
|
| - "for (E; E; =) E",
|
| - "for (E; E; E) =",
|
| - "do { = } while(E)",
|
| - "do { S } while (=)",
|
| -];
|
| -const assign_in_expr = [
|
| - "i32_func(=)",
|
| - "(=) ? E : E",
|
| - "E ? (=) : E",
|
| - "E ? E : (=)",
|
| - "(=) + E",
|
| - "E + (=)",
|
| - "imul(=, E)",
|
| - "imul(E, =)",
|
| - "~(=)",
|
| - "(=) | 0",
|
| - "(=), E",
|
| - "E, (=)",
|
| - "E, E, (=)",
|
| - "E, (=), E",
|
| - "(=), E, E",
|
| -];
|
| -
|
| -const stdlib = {
|
| - Math: Math,
|
| - Int8Array: Int8Array,
|
| - Int16Array: Int16Array,
|
| - Int32Array: Int32Array,
|
| - Uint8Array: Uint8Array,
|
| - Uint16Array: Uint16Array,
|
| - Uint32Array: Uint32Array,
|
| - Float32Array: Float32Array,
|
| - Float64Array: Float64Array,
|
| -};
|
| -
|
| -const buffer = new ArrayBuffer(65536);
|
| -
|
| -// Template for a module.
|
| -function MODULE_TEMPLATE(stdlib, foreign, buffer) {
|
| - "use asm";
|
| - var imul = stdlib.Math.imul;
|
| - var fround = stdlib.Math.fround;
|
| - var M = new stdlib.Int32Array(buffer);
|
| - var G = 0;
|
| -
|
| - function void_func() {}
|
| - function i32_func(a) {
|
| - a = a | 0;
|
| - return a | 0;
|
| - }
|
| -
|
| - FUNC_DECL
|
| - return {main: main};
|
| -}
|
| -
|
| -// Template for main function.
|
| -{
|
| - function main(i32, f32, f64) {
|
| - i32 = i32 | 0;
|
| - f32 = fround(f32);
|
| - f64 = +f64;
|
| - FUNC_BODY
|
| - }
|
| -}
|
| -
|
| -function RunAsmJsTest(asmfunc, expect) {
|
| - var asm_source = asmfunc.toString();
|
| - var nonasm_source = asm_source.replace(new RegExp("use asm"), "");
|
| -
|
| - print("Testing " + asmfunc.name + " (js)...");
|
| - var js_module = eval("(" + nonasm_source + ")")(stdlib, {}, buffer);
|
| - expect(js_module);
|
| -
|
| - print("Testing " + asmfunc.name + " (asm.js)...");
|
| - var asm_module = asmfunc(stdlib, {}, buffer);
|
| - assertTrue(%IsAsmWasmCode(asmfunc));
|
| - expect(asm_module);
|
| -}
|
| -
|
| -var test = 0;
|
| -
|
| -function DoTheTests(expr, assign, stmt) {
|
| - // ==== Expression assignment tests ========================================
|
| - for (let e of assign_in_expr) {
|
| - if (skip(++test)) continue;
|
| - var orig = e;
|
| - e = e.replace(/=/g, assign);
|
| - e = e.replace(/E/g, expr);
|
| - e = e.replace(/S/g, stmt);
|
| - var str = main.toString().replace("FUNC_BODY", "return (" + e + ") | 0;");
|
| - var asm_source = MODULE_TEMPLATE.toString().replace("FUNC_DECL", str);
|
| - // TODO(titzer): a verbosity API for these kinds of tests?
|
| - // print(asm_source);
|
| -
|
| - doTest(asm_source, "(" + test + ") " + e);
|
| - }
|
| -
|
| - // ==== Statement assignment tests =========================================
|
| - for (let e of assign_in_stmt) {
|
| - if (skip(++test)) continue;
|
| - var orig = e;
|
| - e = e.replace(/=/g, assign);
|
| - e = e.replace(/E/g, expr);
|
| - e = e.replace(/S/g, stmt);
|
| - var str = main.toString().replace("FUNC_BODY", e + "; return 0;");
|
| - var asm_source = MODULE_TEMPLATE.toString().replace("FUNC_DECL", str);
|
| -// print(asm_source);
|
| -
|
| - doTest(asm_source, "(" + test + ") " + e);
|
| - }
|
| -
|
| - function doTest(asm_source, orig) {
|
| - var nonasm_source = asm_source.replace(new RegExp("use asm"), "");
|
| - print("Testing JS: " + orig);
|
| - var js_module = eval("(" + nonasm_source + ")")(stdlib, {}, buffer);
|
| - expect(js_module);
|
| -
|
| - var asmfunc = eval("(" + asm_source + ")");
|
| -
|
| - print("Testing ASMJS: " + orig);
|
| - var asm_module = asmfunc(stdlib, {}, buffer);
|
| - assertTrue(%IsAsmWasmCode(asmfunc));
|
| - expect(asm_module);
|
| - }
|
| -
|
| - function expect(module) { module.main(0, 0, 0); print(" ok"); return true; }
|
| -}
|
| -
|
| -DoTheTests("(i32 | 0)", "i32 = 0", "void_func()");
|
| -DoTheTests("G", "G = 0", "void_func()");
|
| -DoTheTests("G", "G = 0", "G");
|
| -DoTheTests("(M[0] | 0)", "M[0] = 0", "void_func()");
|
|
|