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

Side by Side Diff: test/unittests/wasm/ast-decoder-unittest.cc

Issue 2440953002: [wasm] Binary 0xD: update encoding of opcodes, types, and add immediates. (Closed)
Patch Set: Created 4 years, 2 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 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 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 TestBinop(kExpr##name, sig); \ 1142 TestBinop(kExpr##name, sig); \
1143 } \ 1143 } \
1144 } 1144 }
1145 1145
1146 FOREACH_SIMPLE_OPCODE(DECODE_TEST); 1146 FOREACH_SIMPLE_OPCODE(DECODE_TEST);
1147 1147
1148 #undef DECODE_TEST 1148 #undef DECODE_TEST
1149 } 1149 }
1150 1150
1151 TEST_F(AstDecoderTest, MemorySize) { 1151 TEST_F(AstDecoderTest, MemorySize) {
1152 byte code[] = {kExprMemorySize}; 1152 byte code[] = {kExprMemorySize, 0};
1153 EXPECT_VERIFIES_C(i_i, code); 1153 EXPECT_VERIFIES_C(i_i, code);
1154 EXPECT_FAILURE_C(f_ff, code); 1154 EXPECT_FAILURE_C(f_ff, code);
1155 } 1155 }
1156 1156
1157 TEST_F(AstDecoderTest, LoadMemOffset) { 1157 TEST_F(AstDecoderTest, LoadMemOffset) {
1158 for (int offset = 0; offset < 128; offset += 7) { 1158 for (int offset = 0; offset < 128; offset += 7) {
1159 byte code[] = {kExprI8Const, 0, kExprI32LoadMem, ZERO_ALIGNMENT, 1159 byte code[] = {kExprI8Const, 0, kExprI32LoadMem, ZERO_ALIGNMENT,
1160 static_cast<byte>(offset)}; 1160 static_cast<byte>(offset)};
1161 EXPECT_VERIFIES_C(i_i, code); 1161 EXPECT_VERIFIES_C(i_i, code);
1162 } 1162 }
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
1625 } 1625 }
1626 } 1626 }
1627 } 1627 }
1628 } 1628 }
1629 1629
1630 TEST_F(AstDecoderTest, WasmGrowMemory) { 1630 TEST_F(AstDecoderTest, WasmGrowMemory) {
1631 TestModuleEnv module_env; 1631 TestModuleEnv module_env;
1632 module = &module_env; 1632 module = &module_env;
1633 module->origin = kWasmOrigin; 1633 module->origin = kWasmOrigin;
1634 1634
1635 byte code[] = {WASM_UNOP(kExprGrowMemory, WASM_GET_LOCAL(0))}; 1635 byte code[] = {WASM_GET_LOCAL(0), kExprGrowMemory, 0};
1636 EXPECT_VERIFIES_C(i_i, code); 1636 EXPECT_VERIFIES_C(i_i, code);
1637 EXPECT_FAILURE_C(i_d, code); 1637 EXPECT_FAILURE_C(i_d, code);
1638 } 1638 }
1639 1639
1640 TEST_F(AstDecoderTest, AsmJsGrowMemory) { 1640 TEST_F(AstDecoderTest, AsmJsGrowMemory) {
1641 TestModuleEnv module_env; 1641 TestModuleEnv module_env;
1642 module = &module_env; 1642 module = &module_env;
1643 module->origin = kAsmJsOrigin; 1643 module->origin = kAsmJsOrigin;
1644 1644
1645 byte code[] = {WASM_UNOP(kExprGrowMemory, WASM_GET_LOCAL(0))}; 1645 byte code[] = {WASM_GET_LOCAL(0), kExprGrowMemory, 0};
1646 EXPECT_FAILURE_C(i_i, code); 1646 EXPECT_FAILURE_C(i_i, code);
1647 } 1647 }
1648 1648
1649 TEST_F(AstDecoderTest, AsmJsBinOpsCheckOrigin) { 1649 TEST_F(AstDecoderTest, AsmJsBinOpsCheckOrigin) {
1650 LocalType float32int32float32[] = {kAstF32, kAstI32, kAstF32}; 1650 LocalType float32int32float32[] = {kAstF32, kAstI32, kAstF32};
1651 FunctionSig sig_f_if(1, 2, float32int32float32); 1651 FunctionSig sig_f_if(1, 2, float32int32float32);
1652 LocalType float64int32float64[] = {kAstF64, kAstI32, kAstF64}; 1652 LocalType float64int32float64[] = {kAstF64, kAstI32, kAstF64};
1653 FunctionSig sig_d_id(1, 2, float64int32float64); 1653 FunctionSig sig_d_id(1, 2, float64int32float64);
1654 struct { 1654 struct {
1655 WasmOpcode op; 1655 WasmOpcode op;
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
2309 2309
2310 TEST_F(WasmOpcodeLengthTest, MiscExpressions) { 2310 TEST_F(WasmOpcodeLengthTest, MiscExpressions) {
2311 EXPECT_LENGTH(2, kExprI8Const); 2311 EXPECT_LENGTH(2, kExprI8Const);
2312 EXPECT_LENGTH(5, kExprF32Const); 2312 EXPECT_LENGTH(5, kExprF32Const);
2313 EXPECT_LENGTH(9, kExprF64Const); 2313 EXPECT_LENGTH(9, kExprF64Const);
2314 EXPECT_LENGTH(2, kExprGetLocal); 2314 EXPECT_LENGTH(2, kExprGetLocal);
2315 EXPECT_LENGTH(2, kExprSetLocal); 2315 EXPECT_LENGTH(2, kExprSetLocal);
2316 EXPECT_LENGTH(2, kExprGetGlobal); 2316 EXPECT_LENGTH(2, kExprGetGlobal);
2317 EXPECT_LENGTH(2, kExprSetGlobal); 2317 EXPECT_LENGTH(2, kExprSetGlobal);
2318 EXPECT_LENGTH(2, kExprCallFunction); 2318 EXPECT_LENGTH(2, kExprCallFunction);
2319 EXPECT_LENGTH(2, kExprCallIndirect); 2319 EXPECT_LENGTH(3, kExprCallIndirect);
2320 } 2320 }
2321 2321
2322 TEST_F(WasmOpcodeLengthTest, I32Const) { 2322 TEST_F(WasmOpcodeLengthTest, I32Const) {
2323 EXPECT_LENGTH_N(2, kExprI32Const, U32V_1(1)); 2323 EXPECT_LENGTH_N(2, kExprI32Const, U32V_1(1));
2324 EXPECT_LENGTH_N(3, kExprI32Const, U32V_2(999)); 2324 EXPECT_LENGTH_N(3, kExprI32Const, U32V_2(999));
2325 EXPECT_LENGTH_N(4, kExprI32Const, U32V_3(9999)); 2325 EXPECT_LENGTH_N(4, kExprI32Const, U32V_3(9999));
2326 EXPECT_LENGTH_N(5, kExprI32Const, U32V_4(999999)); 2326 EXPECT_LENGTH_N(5, kExprI32Const, U32V_4(999999));
2327 EXPECT_LENGTH_N(6, kExprI32Const, U32V_5(99999999)); 2327 EXPECT_LENGTH_N(6, kExprI32Const, U32V_5(99999999));
2328 } 2328 }
2329 2329
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2368 EXPECT_LENGTH(3, kExprI32StoreMem); 2368 EXPECT_LENGTH(3, kExprI32StoreMem);
2369 EXPECT_LENGTH(3, kExprI64StoreMem8); 2369 EXPECT_LENGTH(3, kExprI64StoreMem8);
2370 EXPECT_LENGTH(3, kExprI64StoreMem16); 2370 EXPECT_LENGTH(3, kExprI64StoreMem16);
2371 EXPECT_LENGTH(3, kExprI64StoreMem32); 2371 EXPECT_LENGTH(3, kExprI64StoreMem32);
2372 EXPECT_LENGTH(3, kExprI64StoreMem); 2372 EXPECT_LENGTH(3, kExprI64StoreMem);
2373 EXPECT_LENGTH(3, kExprF32StoreMem); 2373 EXPECT_LENGTH(3, kExprF32StoreMem);
2374 EXPECT_LENGTH(3, kExprF64StoreMem); 2374 EXPECT_LENGTH(3, kExprF64StoreMem);
2375 } 2375 }
2376 2376
2377 TEST_F(WasmOpcodeLengthTest, MiscMemExpressions) { 2377 TEST_F(WasmOpcodeLengthTest, MiscMemExpressions) {
2378 EXPECT_LENGTH(1, kExprMemorySize); 2378 EXPECT_LENGTH(2, kExprMemorySize);
2379 EXPECT_LENGTH(1, kExprGrowMemory); 2379 EXPECT_LENGTH(2, kExprGrowMemory);
2380 } 2380 }
2381 2381
2382 TEST_F(WasmOpcodeLengthTest, SimpleExpressions) { 2382 TEST_F(WasmOpcodeLengthTest, SimpleExpressions) {
2383 EXPECT_LENGTH(1, kExprI32Add); 2383 EXPECT_LENGTH(1, kExprI32Add);
2384 EXPECT_LENGTH(1, kExprI32Sub); 2384 EXPECT_LENGTH(1, kExprI32Sub);
2385 EXPECT_LENGTH(1, kExprI32Mul); 2385 EXPECT_LENGTH(1, kExprI32Mul);
2386 EXPECT_LENGTH(1, kExprI32DivS); 2386 EXPECT_LENGTH(1, kExprI32DivS);
2387 EXPECT_LENGTH(1, kExprI32DivU); 2387 EXPECT_LENGTH(1, kExprI32DivU);
2388 EXPECT_LENGTH(1, kExprI32RemS); 2388 EXPECT_LENGTH(1, kExprI32RemS);
2389 EXPECT_LENGTH(1, kExprI32RemU); 2389 EXPECT_LENGTH(1, kExprI32RemU);
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
2669 iter.next(); 2669 iter.next();
2670 EXPECT_TRUE(iter.has_next()); 2670 EXPECT_TRUE(iter.has_next());
2671 EXPECT_EQ(kExprI8Const, iter.current()); 2671 EXPECT_EQ(kExprI8Const, iter.current());
2672 iter.next(); 2672 iter.next();
2673 EXPECT_FALSE(iter.has_next()); 2673 EXPECT_FALSE(iter.has_next());
2674 } 2674 }
2675 2675
2676 } // namespace wasm 2676 } // namespace wasm
2677 } // namespace internal 2677 } // namespace internal
2678 } // namespace v8 2678 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698