| Index: test/unittests/wasm/loop-assignment-analysis-unittest.cc
|
| diff --git a/test/unittests/wasm/loop-assignment-analysis-unittest.cc b/test/unittests/wasm/loop-assignment-analysis-unittest.cc
|
| index 9c89d5df586fb13ea1936f4ad44affcb8b3e3b94..f4e4be5fb2f636eeb3d992a0ad60769b3c5e804f 100644
|
| --- a/test/unittests/wasm/loop-assignment-analysis-unittest.cc
|
| +++ b/test/unittests/wasm/loop-assignment-analysis-unittest.cc
|
| @@ -39,7 +39,7 @@ TEST_F(WasmLoopAssignmentAnalyzerTest, Empty0) {
|
| }
|
|
|
| TEST_F(WasmLoopAssignmentAnalyzerTest, Empty1) {
|
| - byte code[] = {kExprLoop, 0};
|
| + byte code[] = {kExprLoop, kLocalVoid, 0};
|
| for (int i = 0; i < 5; i++) {
|
| BitVector* assigned = Analyze(code, code + arraysize(code));
|
| for (int j = 0; j < assigned->length(); j++) {
|
| @@ -60,6 +60,17 @@ TEST_F(WasmLoopAssignmentAnalyzerTest, One) {
|
| }
|
| }
|
|
|
| +TEST_F(WasmLoopAssignmentAnalyzerTest, TeeOne) {
|
| + num_locals = 5;
|
| + for (int i = 0; i < 5; i++) {
|
| + byte code[] = {WASM_LOOP(WASM_TEE_LOCAL(i, WASM_ZERO))};
|
| + BitVector* assigned = Analyze(code, code + arraysize(code));
|
| + for (int j = 0; j < assigned->length(); j++) {
|
| + CHECK_EQ(j == i, assigned->Contains(j));
|
| + }
|
| + }
|
| +}
|
| +
|
| TEST_F(WasmLoopAssignmentAnalyzerTest, OneBeyond) {
|
| num_locals = 5;
|
| for (int i = 0; i < 5; i++) {
|
| @@ -98,24 +109,10 @@ TEST_F(WasmLoopAssignmentAnalyzerTest, NestedIf) {
|
| }
|
| }
|
|
|
| -static byte LEBByte(uint32_t val, byte which) {
|
| - byte b = (val >> (which * 7)) & 0x7F;
|
| - if (val >> ((which + 1) * 7)) b |= 0x80;
|
| - return b;
|
| -}
|
| -
|
| TEST_F(WasmLoopAssignmentAnalyzerTest, BigLocal) {
|
| num_locals = 65000;
|
| for (int i = 13; i < 65000; i = static_cast<int>(i * 1.5)) {
|
| - byte code[] = {kExprLoop,
|
| - 1,
|
| - kExprSetLocal,
|
| - LEBByte(i, 0),
|
| - LEBByte(i, 1),
|
| - LEBByte(i, 2),
|
| - 11,
|
| - 12,
|
| - 13};
|
| + byte code[] = {WASM_LOOP(WASM_I8(11), kExprSetLocal, U32V_3(i))};
|
|
|
| BitVector* assigned = Analyze(code, code + arraysize(code));
|
| for (int j = 0; j < assigned->length(); j++) {
|
| @@ -172,7 +169,7 @@ TEST_F(WasmLoopAssignmentAnalyzerTest, Loop2) {
|
| WASM_STORE_MEM(MachineType::Float32(), WASM_ZERO, WASM_GET_LOCAL(kSum)),
|
| WASM_GET_LOCAL(kIter))};
|
|
|
| - BitVector* assigned = Analyze(code + 1, code + arraysize(code));
|
| + BitVector* assigned = Analyze(code + 2, code + arraysize(code));
|
| for (int j = 0; j < assigned->length(); j++) {
|
| bool expected = j == kIter || j == kSum;
|
| CHECK_EQ(expected, assigned->Contains(j));
|
| @@ -180,9 +177,9 @@ TEST_F(WasmLoopAssignmentAnalyzerTest, Loop2) {
|
| }
|
|
|
| TEST_F(WasmLoopAssignmentAnalyzerTest, Malformed) {
|
| - byte code[] = {kExprLoop, kExprF32Neg, kExprBrTable, 0x0e, 'h', 'e',
|
| - 'l', 'l', 'o', ',', ' ', 'w',
|
| - 'o', 'r', 'l', 'd', '!'};
|
| + byte code[] = {kExprLoop, kLocalVoid, kExprF32Neg, kExprBrTable, 0x0e, 'h',
|
| + 'e', 'l', 'l', 'o', ',', ' ',
|
| + 'w', 'o', 'r', 'l', 'd', '!'};
|
| BitVector* assigned = Analyze(code, code + arraysize(code));
|
| CHECK_NULL(assigned);
|
| }
|
|
|