| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #include <stdint.h> | 5 #include <stdint.h> |
| 6 #include <stdlib.h> | 6 #include <stdlib.h> |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "src/base/platform/elapsed-timer.h" | 9 #include "src/base/platform/elapsed-timer.h" |
| 10 #include "src/utils.h" | 10 #include "src/utils.h" |
| (...skipping 1751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1762 /* */ kExprGetLocal, 0, // -- | 1762 /* */ kExprGetLocal, 0, // -- |
| 1763 /* */ kExprI8Const, 4, // -- | 1763 /* */ kExprI8Const, 4, // -- |
| 1764 /* */ kExprI32Sub, // -- | 1764 /* */ kExprI32Sub, // -- |
| 1765 /* */ kExprTeeLocal, 0, // -- | 1765 /* */ kExprTeeLocal, 0, // -- |
| 1766 /* */ kExprBr, DEPTH_0, // -- | 1766 /* */ kExprBr, DEPTH_0, // -- |
| 1767 /* */ kExprEnd, // -- | 1767 /* */ kExprEnd, // -- |
| 1768 /**/ kExprEnd, // -- | 1768 /**/ kExprEnd, // -- |
| 1769 /**/ kExprI8Const, 0); // -- | 1769 /**/ kExprI8Const, 0); // -- |
| 1770 | 1770 |
| 1771 module.BlankMemory(); | 1771 module.BlankMemory(); |
| 1772 CHECK_EQ(0, r.Call((kNumElems - 1) * 4)); | 1772 CHECK_EQ(0u, r.Call((kNumElems - 1) * 4)); |
| 1773 } | 1773 } |
| 1774 | 1774 |
| 1775 WASM_EXEC_TEST(MemF32_Sum) { | 1775 WASM_EXEC_TEST(MemF32_Sum) { |
| 1776 const int kSize = 5; | 1776 const int kSize = 5; |
| 1777 TestingModule module(execution_mode); | 1777 TestingModule module(execution_mode); |
| 1778 module.AddMemoryElems<float>(kSize); | 1778 module.AddMemoryElems<float>(kSize); |
| 1779 float* buffer = module.raw_mem_start<float>(); | 1779 float* buffer = module.raw_mem_start<float>(); |
| 1780 module.WriteMemory(&buffer[0], -99.25f); | 1780 module.WriteMemory(&buffer[0], -99.25f); |
| 1781 module.WriteMemory(&buffer[1], -888.25f); | 1781 module.WriteMemory(&buffer[1], -888.25f); |
| 1782 module.WriteMemory(&buffer[2], -77.25f); | 1782 module.WriteMemory(&buffer[2], -77.25f); |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1937 MachineOperatorBuilder::kAllOptionalOps); | 1937 MachineOperatorBuilder::kAllOptionalOps); |
| 1938 Graph graph(&zone); | 1938 Graph graph(&zone); |
| 1939 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine); | 1939 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine); |
| 1940 FunctionSig* sig = WasmOpcodes::Signature(opcode); | 1940 FunctionSig* sig = WasmOpcodes::Signature(opcode); |
| 1941 | 1941 |
| 1942 if (sig->parameter_count() == 1) { | 1942 if (sig->parameter_count() == 1) { |
| 1943 byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, static_cast<byte>(opcode)}; | 1943 byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, static_cast<byte>(opcode)}; |
| 1944 TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code, | 1944 TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code, |
| 1945 code + arraysize(code)); | 1945 code + arraysize(code)); |
| 1946 } else { | 1946 } else { |
| 1947 CHECK_EQ(2, sig->parameter_count()); | 1947 CHECK_EQ(2u, sig->parameter_count()); |
| 1948 byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, kExprGetLocal, 1, | 1948 byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, kExprGetLocal, 1, |
| 1949 static_cast<byte>(opcode)}; | 1949 static_cast<byte>(opcode)}; |
| 1950 TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code, | 1950 TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code, |
| 1951 code + arraysize(code)); | 1951 code + arraysize(code)); |
| 1952 } | 1952 } |
| 1953 } | 1953 } |
| 1954 | 1954 |
| 1955 TEST(Build_Wasm_SimpleExprs) { | 1955 TEST(Build_Wasm_SimpleExprs) { |
| 1956 // Test that the decoder can build a graph for all supported simple expressions. | 1956 // Test that the decoder can build a graph for all supported simple expressions. |
| 1957 #define GRAPH_BUILD_TEST(name, opcode, sig) \ | 1957 #define GRAPH_BUILD_TEST(name, opcode, sig) \ |
| (...skipping 1027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2985 BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_DROP, | 2985 BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_DROP, |
| 2986 WASM_ZERO); | 2986 WASM_ZERO); |
| 2987 const int32_t kMin = std::numeric_limits<int32_t>::min(); | 2987 const int32_t kMin = std::numeric_limits<int32_t>::min(); |
| 2988 CHECK_EQ(0, r.Call(133, 100)); | 2988 CHECK_EQ(0, r.Call(133, 100)); |
| 2989 CHECK_EQ(0, r.Call(kMin, -1)); | 2989 CHECK_EQ(0, r.Call(kMin, -1)); |
| 2990 CHECK_EQ(0, r.Call(0, 1)); | 2990 CHECK_EQ(0, r.Call(0, 1)); |
| 2991 CHECK_TRAP(r.Call(100, 0)); | 2991 CHECK_TRAP(r.Call(100, 0)); |
| 2992 CHECK_TRAP(r.Call(-1001, 0)); | 2992 CHECK_TRAP(r.Call(-1001, 0)); |
| 2993 CHECK_TRAP(r.Call(kMin, 0)); | 2993 CHECK_TRAP(r.Call(kMin, 0)); |
| 2994 } | 2994 } |
| OLD | NEW |