| 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 "test/unittests/test-utils.h" | 5 #include "test/unittests/test-utils.h" |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "test/common/wasm/test-signatures.h" | 9 #include "test/common/wasm/test-signatures.h" |
| 10 | 10 |
| (...skipping 1166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1177 {kExprI64LoadMem16U, 1}, // -- | 1177 {kExprI64LoadMem16U, 1}, // -- |
| 1178 {kExprI64LoadMem16S, 1}, // -- | 1178 {kExprI64LoadMem16S, 1}, // -- |
| 1179 {kExprI64LoadMem32U, 2}, // -- | 1179 {kExprI64LoadMem32U, 2}, // -- |
| 1180 {kExprI64LoadMem32S, 2}, // -- | 1180 {kExprI64LoadMem32S, 2}, // -- |
| 1181 {kExprI32LoadMem, 2}, // -- | 1181 {kExprI32LoadMem, 2}, // -- |
| 1182 {kExprI64LoadMem, 3}, // -- | 1182 {kExprI64LoadMem, 3}, // -- |
| 1183 {kExprF32LoadMem, 2}, // -- | 1183 {kExprF32LoadMem, 2}, // -- |
| 1184 {kExprF64LoadMem, 3}, // -- | 1184 {kExprF64LoadMem, 3}, // -- |
| 1185 }; | 1185 }; |
| 1186 | 1186 |
| 1187 for (int i = 0; i < arraysize(values); i++) { | 1187 for (size_t i = 0; i < arraysize(values); i++) { |
| 1188 for (byte alignment = 0; alignment <= 4; alignment++) { | 1188 for (byte alignment = 0; alignment <= 4; alignment++) { |
| 1189 byte code[] = {WASM_ZERO, static_cast<byte>(values[i].instruction), | 1189 byte code[] = {WASM_ZERO, static_cast<byte>(values[i].instruction), |
| 1190 alignment, ZERO_OFFSET, WASM_DROP}; | 1190 alignment, ZERO_OFFSET, WASM_DROP}; |
| 1191 if (static_cast<uint32_t>(alignment) <= values[i].maximum_aligment) { | 1191 if (static_cast<uint32_t>(alignment) <= values[i].maximum_aligment) { |
| 1192 EXPECT_VERIFIES_C(v_i, code); | 1192 EXPECT_VERIFIES_C(v_i, code); |
| 1193 } else { | 1193 } else { |
| 1194 EXPECT_FAILURE_C(v_i, code); | 1194 EXPECT_FAILURE_C(v_i, code); |
| 1195 } | 1195 } |
| 1196 } | 1196 } |
| 1197 } | 1197 } |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1690 {kExprI32AsmjsStoreMem16, sigs.i_ii()}, | 1690 {kExprI32AsmjsStoreMem16, sigs.i_ii()}, |
| 1691 {kExprI32AsmjsStoreMem, sigs.i_ii()}, | 1691 {kExprI32AsmjsStoreMem, sigs.i_ii()}, |
| 1692 {kExprF32AsmjsStoreMem, &sig_f_if}, | 1692 {kExprF32AsmjsStoreMem, &sig_f_if}, |
| 1693 {kExprF64AsmjsStoreMem, &sig_d_id}, | 1693 {kExprF64AsmjsStoreMem, &sig_d_id}, |
| 1694 }; | 1694 }; |
| 1695 | 1695 |
| 1696 { | 1696 { |
| 1697 TestModuleEnv module_env; | 1697 TestModuleEnv module_env; |
| 1698 module = &module_env; | 1698 module = &module_env; |
| 1699 module->origin = kAsmJsOrigin; | 1699 module->origin = kAsmJsOrigin; |
| 1700 for (int i = 0; i < arraysize(AsmJsBinOps); i++) { | 1700 for (size_t i = 0; i < arraysize(AsmJsBinOps); i++) { |
| 1701 TestBinop(AsmJsBinOps[i].op, AsmJsBinOps[i].sig); | 1701 TestBinop(AsmJsBinOps[i].op, AsmJsBinOps[i].sig); |
| 1702 } | 1702 } |
| 1703 } | 1703 } |
| 1704 | 1704 |
| 1705 { | 1705 { |
| 1706 TestModuleEnv module_env; | 1706 TestModuleEnv module_env; |
| 1707 module = &module_env; | 1707 module = &module_env; |
| 1708 module->origin = kWasmOrigin; | 1708 module->origin = kWasmOrigin; |
| 1709 for (int i = 0; i < arraysize(AsmJsBinOps); i++) { | 1709 for (size_t i = 0; i < arraysize(AsmJsBinOps); i++) { |
| 1710 byte code[] = { | 1710 byte code[] = { |
| 1711 WASM_BINOP(AsmJsBinOps[i].op, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))}; | 1711 WASM_BINOP(AsmJsBinOps[i].op, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))}; |
| 1712 EXPECT_FAILURE_SC(AsmJsBinOps[i].sig, code); | 1712 EXPECT_FAILURE_SC(AsmJsBinOps[i].sig, code); |
| 1713 } | 1713 } |
| 1714 } | 1714 } |
| 1715 } | 1715 } |
| 1716 | 1716 |
| 1717 TEST_F(AstDecoderTest, AsmJsUnOpsCheckOrigin) { | 1717 TEST_F(AstDecoderTest, AsmJsUnOpsCheckOrigin) { |
| 1718 LocalType float32int32[] = {kAstF32, kAstI32}; | 1718 LocalType float32int32[] = {kAstF32, kAstI32}; |
| 1719 FunctionSig sig_f_i(1, 1, float32int32); | 1719 FunctionSig sig_f_i(1, 1, float32int32); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1738 {kExprF32AsmjsLoadMem, &sig_f_i}, | 1738 {kExprF32AsmjsLoadMem, &sig_f_i}, |
| 1739 {kExprF64AsmjsLoadMem, &sig_d_i}, | 1739 {kExprF64AsmjsLoadMem, &sig_d_i}, |
| 1740 {kExprI32AsmjsSConvertF32, sigs.i_f()}, | 1740 {kExprI32AsmjsSConvertF32, sigs.i_f()}, |
| 1741 {kExprI32AsmjsUConvertF32, sigs.i_f()}, | 1741 {kExprI32AsmjsUConvertF32, sigs.i_f()}, |
| 1742 {kExprI32AsmjsSConvertF64, sigs.i_d()}, | 1742 {kExprI32AsmjsSConvertF64, sigs.i_d()}, |
| 1743 {kExprI32AsmjsUConvertF64, sigs.i_d()}}; | 1743 {kExprI32AsmjsUConvertF64, sigs.i_d()}}; |
| 1744 { | 1744 { |
| 1745 TestModuleEnv module_env; | 1745 TestModuleEnv module_env; |
| 1746 module = &module_env; | 1746 module = &module_env; |
| 1747 module->origin = kAsmJsOrigin; | 1747 module->origin = kAsmJsOrigin; |
| 1748 for (int i = 0; i < arraysize(AsmJsUnOps); i++) { | 1748 for (size_t i = 0; i < arraysize(AsmJsUnOps); i++) { |
| 1749 TestUnop(AsmJsUnOps[i].op, AsmJsUnOps[i].sig); | 1749 TestUnop(AsmJsUnOps[i].op, AsmJsUnOps[i].sig); |
| 1750 } | 1750 } |
| 1751 } | 1751 } |
| 1752 | 1752 |
| 1753 { | 1753 { |
| 1754 TestModuleEnv module_env; | 1754 TestModuleEnv module_env; |
| 1755 module = &module_env; | 1755 module = &module_env; |
| 1756 module->origin = kWasmOrigin; | 1756 module->origin = kWasmOrigin; |
| 1757 for (int i = 0; i < arraysize(AsmJsUnOps); i++) { | 1757 for (size_t i = 0; i < arraysize(AsmJsUnOps); i++) { |
| 1758 byte code[] = {WASM_UNOP(AsmJsUnOps[i].op, WASM_GET_LOCAL(0))}; | 1758 byte code[] = {WASM_UNOP(AsmJsUnOps[i].op, WASM_GET_LOCAL(0))}; |
| 1759 EXPECT_FAILURE_SC(AsmJsUnOps[i].sig, code); | 1759 EXPECT_FAILURE_SC(AsmJsUnOps[i].sig, code); |
| 1760 } | 1760 } |
| 1761 } | 1761 } |
| 1762 } | 1762 } |
| 1763 | 1763 |
| 1764 TEST_F(AstDecoderTest, BreakEnd) { | 1764 TEST_F(AstDecoderTest, BreakEnd) { |
| 1765 EXPECT_VERIFIES( | 1765 EXPECT_VERIFIES( |
| 1766 i_i, WASM_BLOCK_I(WASM_I32_ADD(WASM_BRV(0, WASM_ZERO), WASM_ZERO))); | 1766 i_i, WASM_BLOCK_I(WASM_I32_ADD(WASM_BRV(0, WASM_ZERO), WASM_ZERO))); |
| 1767 EXPECT_VERIFIES( | 1767 EXPECT_VERIFIES( |
| (...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2706 iter.next(); | 2706 iter.next(); |
| 2707 EXPECT_TRUE(iter.has_next()); | 2707 EXPECT_TRUE(iter.has_next()); |
| 2708 EXPECT_EQ(kExprI8Const, iter.current()); | 2708 EXPECT_EQ(kExprI8Const, iter.current()); |
| 2709 iter.next(); | 2709 iter.next(); |
| 2710 EXPECT_FALSE(iter.has_next()); | 2710 EXPECT_FALSE(iter.has_next()); |
| 2711 } | 2711 } |
| 2712 | 2712 |
| 2713 } // namespace wasm | 2713 } // namespace wasm |
| 2714 } // namespace internal | 2714 } // namespace internal |
| 2715 } // namespace v8 | 2715 } // namespace v8 |
| OLD | NEW |