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 |