| 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/cctest/wasm/test-signatures.h" | 9 #include "test/cctest/wasm/test-signatures.h" |
| 10 | 10 |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 } | 300 } |
| 301 | 301 |
| 302 byte code3[] = {kExprGetLocal, 0, 0}; // [expr] [opcode] | 302 byte code3[] = {kExprGetLocal, 0, 0}; // [expr] [opcode] |
| 303 for (size_t i = 0; i < arraysize(kInt32BinopOpcodes); i++) { | 303 for (size_t i = 0; i < arraysize(kInt32BinopOpcodes); i++) { |
| 304 code3[2] = kInt32BinopOpcodes[i]; | 304 code3[2] = kInt32BinopOpcodes[i]; |
| 305 EXPECT_FAILURE(sigs.i_i(), code3); | 305 EXPECT_FAILURE(sigs.i_i(), code3); |
| 306 } | 306 } |
| 307 | 307 |
| 308 byte code4[] = {kExprGetLocal, 0, 0, 0}; // [expr] [opcode] [opcode] | 308 byte code4[] = {kExprGetLocal, 0, 0, 0}; // [expr] [opcode] [opcode] |
| 309 for (size_t i = 0; i < arraysize(kInt32BinopOpcodes); i++) { | 309 for (size_t i = 0; i < arraysize(kInt32BinopOpcodes); i++) { |
| 310 code4[1] = kInt32BinopOpcodes[i]; | 310 code4[2] = kInt32BinopOpcodes[i]; |
| 311 code4[3] = kInt32BinopOpcodes[i]; | 311 code4[3] = kInt32BinopOpcodes[i]; |
| 312 EXPECT_FAILURE(sigs.i_i(), code4); | 312 EXPECT_FAILURE(sigs.i_i(), code4); |
| 313 } | 313 } |
| 314 } | 314 } |
| 315 | 315 |
| 316 TEST_F(AstDecoderTest, BinopsAcrossBlock1) { |
| 317 static const byte code[] = {WASM_ZERO, kExprBlock, WASM_ZERO, kExprI32Add, |
| 318 kExprEnd}; |
| 319 EXPECT_FAILURE(sigs.i_i(), code); |
| 320 } |
| 316 | 321 |
| 317 //=================================================================== | 322 TEST_F(AstDecoderTest, BinopsAcrossBlock2) { |
| 318 //== Statements | 323 static const byte code[] = {WASM_ZERO, WASM_ZERO, kExprBlock, kExprI32Add, |
| 319 //=================================================================== | 324 kExprEnd}; |
| 325 EXPECT_FAILURE(sigs.i_i(), code); |
| 326 } |
| 327 |
| 328 TEST_F(AstDecoderTest, BinopsAcrossBlock3) { |
| 329 static const byte code[] = {WASM_ZERO, WASM_ZERO, kExprIf, kExprI32Add, |
| 330 kExprElse, kExprI32Add, kExprEnd}; |
| 331 EXPECT_FAILURE(sigs.i_i(), code); |
| 332 } |
| 333 |
| 320 TEST_F(AstDecoderTest, Nop) { | 334 TEST_F(AstDecoderTest, Nop) { |
| 321 static const byte code[] = {kExprNop}; | 335 static const byte code[] = {kExprNop}; |
| 322 EXPECT_VERIFIES(sigs.v_v(), code); | 336 EXPECT_VERIFIES(sigs.v_v(), code); |
| 323 } | 337 } |
| 324 | 338 |
| 325 TEST_F(AstDecoderTest, SetLocal0_param) { | 339 TEST_F(AstDecoderTest, SetLocal0_param) { |
| 326 EXPECT_VERIFIES(sigs.i_i(), kCodeSetLocal0); | 340 EXPECT_VERIFIES(sigs.i_i(), kCodeSetLocal0); |
| 327 EXPECT_FAILURE(sigs.f_ff(), kCodeSetLocal0); | 341 EXPECT_FAILURE(sigs.f_ff(), kCodeSetLocal0); |
| 328 EXPECT_FAILURE(sigs.d_dd(), kCodeSetLocal0); | 342 EXPECT_FAILURE(sigs.d_dd(), kCodeSetLocal0); |
| 329 } | 343 } |
| (...skipping 2092 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2422 size_t pos = 0; | 2436 size_t pos = 0; |
| 2423 pos = ExpectRun(map, pos, kAstF32, 5); | 2437 pos = ExpectRun(map, pos, kAstF32, 5); |
| 2424 pos = ExpectRun(map, pos, kAstI32, 1337); | 2438 pos = ExpectRun(map, pos, kAstI32, 1337); |
| 2425 pos = ExpectRun(map, pos, kAstI64, 212); | 2439 pos = ExpectRun(map, pos, kAstI64, 212); |
| 2426 delete[] data; | 2440 delete[] data; |
| 2427 } | 2441 } |
| 2428 | 2442 |
| 2429 } // namespace wasm | 2443 } // namespace wasm |
| 2430 } // namespace internal | 2444 } // namespace internal |
| 2431 } // namespace v8 | 2445 } // namespace v8 |
| OLD | NEW |