| Index: test/unittests/wasm/ast-decoder-unittest.cc
|
| diff --git a/test/unittests/wasm/ast-decoder-unittest.cc b/test/unittests/wasm/ast-decoder-unittest.cc
|
| index 05a0e95f6a73e5c87a644d1a1f2a5c88eebc497e..357387e6b5725543cd04a30cfb6624ac691246ad 100644
|
| --- a/test/unittests/wasm/ast-decoder-unittest.cc
|
| +++ b/test/unittests/wasm/ast-decoder-unittest.cc
|
| @@ -469,12 +469,12 @@ TEST_F(AstDecoderTest, Block5) {
|
| sigs.v_i(), B3(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
|
|
|
| EXPECT_VERIFIES_INLINE(sigs.v_i(),
|
| - WASM_BLOCK(4, WASM_GET_LOCAL(0), WASM_GET_LOCAL(0),
|
| + WASM_BLOCK(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0),
|
| WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
|
|
|
| EXPECT_VERIFIES_INLINE(
|
| sigs.v_i(),
|
| - WASM_BLOCK(5, WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_GET_LOCAL(0),
|
| + WASM_BLOCK(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_GET_LOCAL(0),
|
| WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
|
| }
|
|
|
| @@ -683,33 +683,33 @@ TEST_F(AstDecoderTest, Loop0) {
|
| }
|
|
|
| TEST_F(AstDecoderTest, Loop1) {
|
| - static const byte code[] = {WASM_LOOP(1, WASM_SET_LOCAL(0, WASM_ZERO))};
|
| + static const byte code[] = {WASM_LOOP(WASM_SET_LOCAL(0, WASM_ZERO))};
|
| EXPECT_VERIFIES(sigs.v_i(), code);
|
| EXPECT_FAILURE(sigs.v_v(), code);
|
| EXPECT_FAILURE(sigs.f_ff(), code);
|
| }
|
|
|
| TEST_F(AstDecoderTest, Loop2) {
|
| - EXPECT_VERIFIES_INLINE(sigs.v_i(), WASM_LOOP(2, WASM_SET_LOCAL(0, WASM_ZERO),
|
| + EXPECT_VERIFIES_INLINE(sigs.v_i(), WASM_LOOP(WASM_SET_LOCAL(0, WASM_ZERO),
|
| WASM_SET_LOCAL(0, WASM_ZERO)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, Loop1_continue) {
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(0)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BR(0)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, Loop1_break) {
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(1)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BR(1)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, Loop2_continue) {
|
| - EXPECT_VERIFIES_INLINE(
|
| - sigs.v_i(), WASM_LOOP(2, WASM_SET_LOCAL(0, WASM_ZERO), WASM_BR(0)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_i(),
|
| + WASM_LOOP(WASM_SET_LOCAL(0, WASM_ZERO), WASM_BR(0)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, Loop2_break) {
|
| - EXPECT_VERIFIES_INLINE(
|
| - sigs.v_i(), WASM_LOOP(2, WASM_SET_LOCAL(0, WASM_ZERO), WASM_BR(1)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_i(),
|
| + WASM_LOOP(WASM_SET_LOCAL(0, WASM_ZERO), WASM_BR(1)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, ExprLoop0) {
|
| @@ -718,16 +718,16 @@ TEST_F(AstDecoderTest, ExprLoop0) {
|
| }
|
|
|
| TEST_F(AstDecoderTest, ExprLoop1a) {
|
| - EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(1, WASM_BRV(0, WASM_ZERO)));
|
| + EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(WASM_BRV(0, WASM_ZERO)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, ExprLoop1b) {
|
| - EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(1, WASM_BRV(1, WASM_ZERO)));
|
| - EXPECT_FAILURE_INLINE(sigs.f_ff(), WASM_LOOP(1, WASM_BRV(1, WASM_ZERO)));
|
| + EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(WASM_BRV(1, WASM_ZERO)));
|
| + EXPECT_FAILURE_INLINE(sigs.f_ff(), WASM_LOOP(WASM_BRV(1, WASM_ZERO)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, ExprLoop2_unreachable) {
|
| - EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(2, WASM_BR(0), WASM_NOP));
|
| + EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(WASM_BR(0), WASM_NOP));
|
| }
|
|
|
| TEST_F(AstDecoderTest, ReturnVoid1) {
|
| @@ -759,8 +759,8 @@ TEST_F(AstDecoderTest, Unreachable1) {
|
| EXPECT_VERIFIES_INLINE(sigs.v_v(), kExprUnreachable, kExprUnreachable);
|
| EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_UNREACHABLE, WASM_ZERO));
|
| EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_BR(0), WASM_ZERO));
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(2, WASM_UNREACHABLE, WASM_ZERO));
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(2, WASM_BR(0), WASM_ZERO));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_UNREACHABLE, WASM_ZERO));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BR(0), WASM_ZERO));
|
| }
|
|
|
| TEST_F(AstDecoderTest, Unreachable_binop) {
|
| @@ -914,32 +914,29 @@ TEST_F(AstDecoderTest, MacrosStmt) {
|
| VERIFY(WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_NOP));
|
| VERIFY(WASM_NOP);
|
| VERIFY(B1(WASM_NOP));
|
| - VERIFY(WASM_LOOP(1, WASM_NOP));
|
| - VERIFY(WASM_LOOP(1, WASM_BREAK(0)));
|
| - VERIFY(WASM_LOOP(1, WASM_CONTINUE(0)));
|
| + VERIFY(WASM_LOOP(WASM_NOP));
|
| + VERIFY(WASM_LOOP(WASM_BREAK(0)));
|
| + VERIFY(WASM_LOOP(WASM_CONTINUE(0)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, MacrosBreak) {
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BREAK(0)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BREAK(0)));
|
|
|
| - EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(1, WASM_BREAKV(0, WASM_ZERO)));
|
| - EXPECT_VERIFIES_INLINE(sigs.l_l(),
|
| - WASM_LOOP(1, WASM_BREAKV(0, WASM_I64V_1(0))));
|
| - EXPECT_VERIFIES_INLINE(sigs.f_ff(),
|
| - WASM_LOOP(1, WASM_BREAKV(0, WASM_F32(0.0))));
|
| - EXPECT_VERIFIES_INLINE(sigs.d_dd(),
|
| - WASM_LOOP(1, WASM_BREAKV(0, WASM_F64(0.0))));
|
| + EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(WASM_BREAKV(0, WASM_ZERO)));
|
| + EXPECT_VERIFIES_INLINE(sigs.l_l(), WASM_LOOP(WASM_BREAKV(0, WASM_I64V_1(0))));
|
| + EXPECT_VERIFIES_INLINE(sigs.f_ff(), WASM_LOOP(WASM_BREAKV(0, WASM_F32(0.0))));
|
| + EXPECT_VERIFIES_INLINE(sigs.d_dd(), WASM_LOOP(WASM_BREAKV(0, WASM_F64(0.0))));
|
| }
|
|
|
| TEST_F(AstDecoderTest, MacrosContinue) {
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_CONTINUE(0)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_CONTINUE(0)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, MacrosVariadic) {
|
| VERIFY(B2(WASM_NOP, WASM_NOP));
|
| VERIFY(B3(WASM_NOP, WASM_NOP, WASM_NOP));
|
| - VERIFY(WASM_LOOP(2, WASM_NOP, WASM_NOP));
|
| - VERIFY(WASM_LOOP(3, WASM_NOP, WASM_NOP, WASM_NOP));
|
| + VERIFY(WASM_LOOP(WASM_NOP, WASM_NOP));
|
| + VERIFY(WASM_LOOP(WASM_NOP, WASM_NOP, WASM_NOP));
|
| }
|
|
|
| TEST_F(AstDecoderTest, MacrosNestedBlocks) {
|
| @@ -1473,21 +1470,19 @@ TEST_F(AstDecoderTest, BreakEnd) {
|
|
|
| TEST_F(AstDecoderTest, BreakIfBinop) {
|
| EXPECT_FAILURE_INLINE(
|
| - sigs.i_i(),
|
| - WASM_BLOCK(
|
| - 1, WASM_I32_ADD(WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO), WASM_ZERO)));
|
| - EXPECT_FAILURE_INLINE(
|
| - sigs.i_i(),
|
| - WASM_BLOCK(
|
| - 1, WASM_I32_ADD(WASM_ZERO, WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO))));
|
| + sigs.i_i(), WASM_BLOCK(WASM_I32_ADD(WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO),
|
| + WASM_ZERO)));
|
| + EXPECT_FAILURE_INLINE(sigs.i_i(),
|
| + WASM_BLOCK(WASM_I32_ADD(
|
| + WASM_ZERO, WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO))));
|
| }
|
|
|
| TEST_F(AstDecoderTest, BreakNesting1) {
|
| for (int i = 0; i < 5; i++) {
|
| // (block[2] (loop[2] (if (get p) break[N]) (set p 1)) p)
|
| byte code[] = {WASM_BLOCK(
|
| - 2, WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(i + 1, WASM_ZERO)),
|
| - WASM_SET_LOCAL(0, WASM_I8(1))),
|
| + WASM_LOOP(WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(i + 1, WASM_ZERO)),
|
| + WASM_SET_LOCAL(0, WASM_I8(1))),
|
| WASM_GET_LOCAL(0))};
|
| if (i < 3) {
|
| EXPECT_VERIFIES(sigs.i_i(), code);
|
| @@ -1501,7 +1496,7 @@ TEST_F(AstDecoderTest, BreakNesting2) {
|
| AddLocals(kAstI32, 1);
|
| for (int i = 0; i < 5; i++) {
|
| // (block[2] (loop[2] (if 0 break[N]) (set p 1)) (return p)) (11)
|
| - byte code[] = {B1(WASM_LOOP(2, WASM_IF(WASM_ZERO, WASM_BREAK(i + 1)),
|
| + byte code[] = {B1(WASM_LOOP(WASM_IF(WASM_ZERO, WASM_BREAK(i + 1)),
|
| WASM_SET_LOCAL(0, WASM_I8(1)))),
|
| WASM_I8(11)};
|
| if (i < 2) {
|
| @@ -1516,7 +1511,7 @@ TEST_F(AstDecoderTest, BreakNesting3) {
|
| for (int i = 0; i < 5; i++) {
|
| // (block[1] (loop[1] (block[1] (if 0 break[N])
|
| byte code[] = {
|
| - WASM_BLOCK(1, WASM_LOOP(1, B1(WASM_IF(WASM_ZERO, WASM_BREAK(i + 1)))))};
|
| + WASM_BLOCK(WASM_LOOP(B1(WASM_IF(WASM_ZERO, WASM_BREAK(i + 1)))))};
|
| if (i < 3) {
|
| EXPECT_VERIFIES(sigs.v_v(), code);
|
| } else {
|
| @@ -1597,8 +1592,7 @@ TEST_F(AstDecoderTest, ExprBreak_TypeCheck) {
|
| }
|
|
|
| TEST_F(AstDecoderTest, ExprBreak_TypeCheckAll) {
|
| - byte code1[] = {WASM_BLOCK(2,
|
| - WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))),
|
| + byte code1[] = {WASM_BLOCK(WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))),
|
| WASM_GET_LOCAL(1))};
|
| byte code2[] = {B2(WASM_IF(WASM_ZERO, WASM_BRV_IF_ZERO(0, WASM_GET_LOCAL(0))),
|
| WASM_GET_LOCAL(1))};
|
| @@ -1629,7 +1623,7 @@ TEST_F(AstDecoderTest, ExprBr_Unify) {
|
| byte code1[] = {B2(WASM_IF(WASM_ZERO, WASM_BRV(1, WASM_GET_LOCAL(which))),
|
| WASM_GET_LOCAL(which ^ 1))};
|
| byte code2[] = {
|
| - WASM_LOOP(2, WASM_IF(WASM_ZERO, WASM_BRV(2, WASM_GET_LOCAL(which))),
|
| + WASM_LOOP(WASM_IF(WASM_ZERO, WASM_BRV(2, WASM_GET_LOCAL(which))),
|
| WASM_GET_LOCAL(which ^ 1))};
|
|
|
| if (type == kAstI32) {
|
| @@ -1686,7 +1680,7 @@ TEST_F(AstDecoderTest, ExprBrIf_Unify) {
|
|
|
| byte code1[] = {B2(WASM_BRV_IF_ZERO(0, WASM_GET_LOCAL(which)),
|
| WASM_GET_LOCAL(which ^ 1))};
|
| - byte code2[] = {WASM_LOOP(2, WASM_BRV_IF_ZERO(1, WASM_GET_LOCAL(which)),
|
| + byte code2[] = {WASM_LOOP(WASM_BRV_IF_ZERO(1, WASM_GET_LOCAL(which)),
|
| WASM_GET_LOCAL(which ^ 1))};
|
|
|
| if (type == kAstI32) {
|
| @@ -1738,8 +1732,7 @@ TEST_F(AstDecoderTest, BrTable2a) {
|
|
|
| TEST_F(AstDecoderTest, BrTable2b) {
|
| static byte code[] = {WASM_BLOCK(
|
| - 1, WASM_BLOCK(
|
| - 1, WASM_BR_TABLE(WASM_I8(67), 1, BR_TARGET(0), BR_TARGET(1))))};
|
| + WASM_BLOCK(WASM_BR_TABLE(WASM_I8(67), 1, BR_TARGET(0), BR_TARGET(1))))};
|
| EXPECT_VERIFIES(sigs.v_v(), code);
|
| }
|
|
|
| @@ -1764,7 +1757,7 @@ TEST_F(AstDecoderTest, BrTable_invalid_br1) {
|
| TEST_F(AstDecoderTest, BrTable_invalid_br2) {
|
| for (int depth = 0; depth < 4; depth++) {
|
| byte code[] = {
|
| - WASM_LOOP(1, WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(depth)))};
|
| + WASM_LOOP(WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(depth)))};
|
| if (depth <= 1) {
|
| EXPECT_VERIFIES(sigs.v_i(), code);
|
| } else {
|
| @@ -1779,14 +1772,14 @@ TEST_F(AstDecoderTest, ExprBreakNesting1) {
|
| EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO)));
|
| EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BR_IF(0, WASM_ZERO)));
|
|
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BRV(0, WASM_ZERO)));
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(0)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BRV(0, WASM_ZERO)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BR(0)));
|
| EXPECT_VERIFIES_INLINE(sigs.v_v(),
|
| - WASM_LOOP(1, WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO)));
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR_IF(0, WASM_ZERO)));
|
| + WASM_LOOP(WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BR_IF(0, WASM_ZERO)));
|
|
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BRV(1, WASM_ZERO)));
|
| - EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(1)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BRV(1, WASM_ZERO)));
|
| + EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(WASM_BR(1)));
|
| }
|
|
|
| TEST_F(AstDecoderTest, Select) {
|
|
|