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

Side by Side Diff: test/cctest/wasm/test-run-wasm-64.cc

Issue 2345593003: [wasm] Master CL for Binary 0xC changes. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix test failures and TSAN races. 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
« no previous file with comments | « test/cctest/wasm/test-run-wasm.cc ('k') | test/cctest/wasm/test-run-wasm-interpreter.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stdint.h> 5 #include <stdint.h>
6 #include <stdlib.h> 6 #include <stdlib.h>
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/wasm/wasm-macro-gen.h" 10 #include "src/wasm/wasm-macro-gen.h"
(...skipping 14 matching lines...) Expand all
25 CHECK_EQ(0xdeadbeef, (bit_cast<uint32_t>(x)) & 0xFFFFFFFF) 25 CHECK_EQ(0xdeadbeef, (bit_cast<uint32_t>(x)) & 0xFFFFFFFF)
26 #define CHECK_TRAP64(x) \ 26 #define CHECK_TRAP64(x) \
27 CHECK_EQ(0xdeadbeefdeadbeef, (bit_cast<uint64_t>(x)) & 0xFFFFFFFFFFFFFFFF) 27 CHECK_EQ(0xdeadbeefdeadbeef, (bit_cast<uint64_t>(x)) & 0xFFFFFFFFFFFFFFFF)
28 #define CHECK_TRAP(x) CHECK_TRAP32(x) 28 #define CHECK_TRAP(x) CHECK_TRAP32(x)
29 29
30 #define asi64(x) static_cast<int64_t>(x) 30 #define asi64(x) static_cast<int64_t>(x)
31 31
32 #define asu64(x) static_cast<uint64_t>(x) 32 #define asu64(x) static_cast<uint64_t>(x)
33 33
34 #define B2(a, b) kExprBlock, a, b, kExprEnd 34 #define B2(a, b) kExprBlock, a, b, kExprEnd
35 #define B1(a) kExprBlock, a, kExprEnd
36 35
37 // Can't bridge macro land with nested macros. 36 // Can't bridge macro land with nested macros.
38 #if V8_TARGET_ARCH_MIPS 37 #if V8_TARGET_ARCH_MIPS
39 #define MIPS true 38 #define MIPS true
40 #else 39 #else
41 #define MIPS false 40 #define MIPS false
42 #endif 41 #endif
43 42
44 #define FOREACH_I64_OPERATOR(V) \ 43 #define FOREACH_I64_OPERATOR(V) \
45 V(DepthFirst, true) \ 44 V(DepthFirst, true) \
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 continue; 827 continue;
829 } else { 828 } else {
830 BUILD(t, WASM_GET_LOCAL(i)); 829 BUILD(t, WASM_GET_LOCAL(i));
831 } 830 }
832 uint32_t index = t.CompileAndAdd(); 831 uint32_t index = t.CompileAndAdd();
833 832
834 // Build the calling function. 833 // Build the calling function.
835 WasmRunner<int32_t> r(&module); 834 WasmRunner<int32_t> r(&module);
836 BUILD( 835 BUILD(
837 r, 836 r,
838 WASM_I32_CONVERT_I64(WASM_CALL_FUNCTIONN( 837 WASM_I32_CONVERT_I64(WASM_CALL_FUNCTION(
839 19, index, WASM_I64V_9(0xbcd12340000000b), 838 index, WASM_I64V_9(0xbcd12340000000b),
840 WASM_I64V_9(0xbcd12340000000c), WASM_I32V_1(0xd), 839 WASM_I64V_9(0xbcd12340000000c), WASM_I32V_1(0xd),
841 WASM_I32_CONVERT_I64(WASM_I64V_9(0xbcd12340000000e)), 840 WASM_I32_CONVERT_I64(WASM_I64V_9(0xbcd12340000000e)),
842 WASM_I64V_9(0xbcd12340000000f), WASM_I64V_10(0xbcd1234000000010), 841 WASM_I64V_9(0xbcd12340000000f), WASM_I64V_10(0xbcd1234000000010),
843 WASM_I64V_10(0xbcd1234000000011), WASM_I64V_10(0xbcd1234000000012), 842 WASM_I64V_10(0xbcd1234000000011), WASM_I64V_10(0xbcd1234000000012),
844 WASM_I64V_10(0xbcd1234000000013), WASM_I64V_10(0xbcd1234000000014), 843 WASM_I64V_10(0xbcd1234000000013), WASM_I64V_10(0xbcd1234000000014),
845 WASM_I64V_10(0xbcd1234000000015), WASM_I64V_10(0xbcd1234000000016), 844 WASM_I64V_10(0xbcd1234000000015), WASM_I64V_10(0xbcd1234000000016),
846 WASM_I64V_10(0xbcd1234000000017), WASM_I64V_10(0xbcd1234000000018), 845 WASM_I64V_10(0xbcd1234000000017), WASM_I64V_10(0xbcd1234000000018),
847 WASM_I64V_10(0xbcd1234000000019), WASM_I64V_10(0xbcd123400000001a), 846 WASM_I64V_10(0xbcd1234000000019), WASM_I64V_10(0xbcd123400000001a),
848 WASM_I64V_10(0xbcd123400000001b), WASM_I64V_10(0xbcd123400000001c), 847 WASM_I64V_10(0xbcd123400000001b), WASM_I64V_10(0xbcd123400000001c),
849 WASM_I64V_10(0xbcd123400000001d)))); 848 WASM_I64V_10(0xbcd123400000001d))));
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 REQUIRE(I64Sub); 1111 REQUIRE(I64Sub);
1113 // Build the target function. 1112 // Build the target function.
1114 TestSignatures sigs; 1113 TestSignatures sigs;
1115 TestingModule module(execution_mode); 1114 TestingModule module(execution_mode);
1116 WasmFunctionCompiler t(sigs.l_ll(), &module); 1115 WasmFunctionCompiler t(sigs.l_ll(), &module);
1117 BUILD(t, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); 1116 BUILD(t, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
1118 uint32_t index = t.CompileAndAdd(); 1117 uint32_t index = t.CompileAndAdd();
1119 1118
1120 // Build the caller function. 1119 // Build the caller function.
1121 WasmRunner<int64_t> r(&module, MachineType::Int64(), MachineType::Int64()); 1120 WasmRunner<int64_t> r(&module, MachineType::Int64(), MachineType::Int64());
1122 BUILD(r, WASM_CALL_FUNCTION2(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); 1121 BUILD(r, WASM_CALL_FUNCTION(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
1123 1122
1124 FOR_INT32_INPUTS(i) { 1123 FOR_INT32_INPUTS(i) {
1125 FOR_INT32_INPUTS(j) { 1124 FOR_INT32_INPUTS(j) {
1126 int64_t a = static_cast<int64_t>(*i) << 32 | 1125 int64_t a = static_cast<int64_t>(*i) << 32 |
1127 (static_cast<int64_t>(*j) | 0xFFFFFFFF); 1126 (static_cast<int64_t>(*j) | 0xFFFFFFFF);
1128 int64_t b = static_cast<int64_t>(*j) << 32 | 1127 int64_t b = static_cast<int64_t>(*j) << 32 |
1129 (static_cast<int64_t>(*i) | 0xFFFFFFFF); 1128 (static_cast<int64_t>(*i) | 0xFFFFFFFF);
1130 1129
1131 int64_t expected = static_cast<int64_t>(static_cast<uint64_t>(a) - 1130 int64_t expected = static_cast<int64_t>(static_cast<uint64_t>(a) -
1132 static_cast<uint64_t>(b)); 1131 static_cast<uint64_t>(b));
(...skipping 14 matching lines...) Expand all
1147 WasmRunner<int64_t> r(&module); 1146 WasmRunner<int64_t> r(&module);
1148 1147
1149 byte code[] = { 1148 byte code[] = {
1150 kExprI8Const, 8, // -- 1149 kExprI8Const, 8, // --
1151 kExprI8Const, 0, // -- 1150 kExprI8Const, 0, // --
1152 loads[m], // -- 1151 loads[m], // --
1153 ZERO_ALIGNMENT, // -- 1152 ZERO_ALIGNMENT, // --
1154 ZERO_OFFSET, // -- 1153 ZERO_OFFSET, // --
1155 kExprI64StoreMem, // -- 1154 kExprI64StoreMem, // --
1156 ZERO_ALIGNMENT, // -- 1155 ZERO_ALIGNMENT, // --
1157 ZERO_OFFSET // -- 1156 ZERO_OFFSET, // --
1157 kExprI8Const, 0, // --
1158 loads[m], // --
1159 ZERO_ALIGNMENT, // --
1160 ZERO_OFFSET, // --
1158 }; 1161 };
1159 1162
1160 r.Build(code, code + arraysize(code)); 1163 r.Build(code, code + arraysize(code));
1161 1164
1162 // Try a bunch of different negative values. 1165 // Try a bunch of different negative values.
1163 for (int i = -1; i >= -128; i -= 11) { 1166 for (int i = -1; i >= -128; i -= 11) {
1164 int size = 1 << m; 1167 int size = 1 << m;
1165 module.BlankMemory(); 1168 module.BlankMemory();
1166 memory[size - 1] = static_cast<byte>(i); // set the high order byte. 1169 memory[size - 1] = static_cast<byte>(i); // set the high order byte.
1167 1170
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 CHECK_EQ(expected, r.Call()); 1252 CHECK_EQ(expected, r.Call());
1250 } 1253 }
1251 } 1254 }
1252 1255
1253 WASM_EXEC_TEST(F64ReinterpretI64) { 1256 WASM_EXEC_TEST(F64ReinterpretI64) {
1254 REQUIRE(F64ReinterpretI64); 1257 REQUIRE(F64ReinterpretI64);
1255 TestingModule module(execution_mode); 1258 TestingModule module(execution_mode);
1256 int64_t* memory = module.AddMemoryElems<int64_t>(8); 1259 int64_t* memory = module.AddMemoryElems<int64_t>(8);
1257 WasmRunner<int64_t> r(&module, MachineType::Int64()); 1260 WasmRunner<int64_t> r(&module, MachineType::Int64());
1258 1261
1259 BUILD(r, 1262 BUILD(r, WASM_STORE_MEM(MachineType::Float64(), WASM_ZERO,
1260 WASM_BLOCK(WASM_STORE_MEM(MachineType::Float64(), WASM_ZERO, 1263 WASM_F64_REINTERPRET_I64(WASM_GET_LOCAL(0))),
1261 WASM_F64_REINTERPRET_I64(WASM_GET_LOCAL(0))), 1264 WASM_GET_LOCAL(0));
1262 WASM_GET_LOCAL(0)));
1263 1265
1264 FOR_INT32_INPUTS(i) { 1266 FOR_INT32_INPUTS(i) {
1265 int64_t expected = static_cast<int64_t>(*i) * 0x300010001; 1267 int64_t expected = static_cast<int64_t>(*i) * 0x300010001;
1266 CHECK_EQ(expected, r.Call(expected)); 1268 CHECK_EQ(expected, r.Call(expected));
1267 CHECK_EQ(expected, module.ReadMemory<int64_t>(&memory[0])); 1269 CHECK_EQ(expected, module.ReadMemory<int64_t>(&memory[0]));
1268 } 1270 }
1269 } 1271 }
1270 1272
1271 WASM_EXEC_TEST(LoadMemI64) { 1273 WASM_EXEC_TEST(LoadMemI64) {
1272 REQUIRE(I64LoadStore); 1274 REQUIRE(I64LoadStore);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 REQUIRE(I64LoadStore); 1315 REQUIRE(I64LoadStore);
1314 REQUIRE(I64Add); 1316 REQUIRE(I64Add);
1315 REQUIRE(I64Sub); 1317 REQUIRE(I64Sub);
1316 REQUIRE(I64Phi); 1318 REQUIRE(I64Phi);
1317 const int kNumElems = 20; 1319 const int kNumElems = 20;
1318 TestingModule module(execution_mode); 1320 TestingModule module(execution_mode);
1319 uint64_t* memory = module.AddMemoryElems<uint64_t>(kNumElems); 1321 uint64_t* memory = module.AddMemoryElems<uint64_t>(kNumElems);
1320 WasmRunner<uint64_t> r(&module, MachineType::Int32()); 1322 WasmRunner<uint64_t> r(&module, MachineType::Int32());
1321 const byte kSum = r.AllocateLocal(kAstI64); 1323 const byte kSum = r.AllocateLocal(kAstI64);
1322 1324
1323 BUILD(r, 1325 BUILD(
1324 WASM_BLOCK( 1326 r,
1325 WASM_WHILE( 1327 WASM_WHILE(
1326 WASM_GET_LOCAL(0), 1328 WASM_GET_LOCAL(0),
1327 WASM_BLOCK( 1329 WASM_BLOCK(
1328 WASM_SET_LOCAL( 1330 WASM_SET_LOCAL(kSum,
1329 kSum, WASM_I64_ADD(WASM_GET_LOCAL(kSum), 1331 WASM_I64_ADD(WASM_GET_LOCAL(kSum),
1330 WASM_LOAD_MEM(MachineType::Int64(), 1332 WASM_LOAD_MEM(MachineType::Int64(),
1331 WASM_GET_LOCAL(0)))), 1333 WASM_GET_LOCAL(0)))),
1332 WASM_SET_LOCAL( 1334 WASM_SET_LOCAL(0, WASM_I32_SUB(WASM_GET_LOCAL(0), WASM_I8(8))))),
1333 0, WASM_I32_SUB(WASM_GET_LOCAL(0), WASM_I8(8))))), 1335 WASM_GET_LOCAL(1));
1334 WASM_GET_LOCAL(1)));
1335 1336
1336 // Run 4 trials. 1337 // Run 4 trials.
1337 for (int i = 0; i < 3; i++) { 1338 for (int i = 0; i < 3; i++) {
1338 module.RandomizeMemory(i * 33); 1339 module.RandomizeMemory(i * 33);
1339 uint64_t expected = 0; 1340 uint64_t expected = 0;
1340 for (size_t j = kNumElems - 1; j > 0; j--) { 1341 for (size_t j = kNumElems - 1; j > 0; j--) {
1341 expected += module.ReadMemory(&memory[j]); 1342 expected += module.ReadMemory(&memory[j]);
1342 } 1343 }
1343 uint64_t result = r.Call(8 * (kNumElems - 1)); 1344 uint64_t result = r.Call(8 * (kNumElems - 1));
1344 CHECK_EQ(expected, result); 1345 CHECK_EQ(expected, result);
1345 } 1346 }
1346 } 1347 }
1347 1348
1348 WASM_EXEC_TEST(StoreMemI64_alignment) { 1349 WASM_EXEC_TEST(StoreMemI64_alignment) {
1349 TestingModule module(execution_mode); 1350 TestingModule module(execution_mode);
1350 int64_t* memory = module.AddMemoryElems<int64_t>(4); 1351 int64_t* memory = module.AddMemoryElems<int64_t>(4);
1351 const int64_t kWritten = 0x12345678abcd0011ll; 1352 const int64_t kWritten = 0x12345678abcd0011ll;
1352 1353
1353 for (byte i = 0; i <= 3; i++) { 1354 for (byte i = 0; i <= 3; i++) {
1354 WasmRunner<int64_t> r(&module, MachineType::Int64()); 1355 WasmRunner<int64_t> r(&module, MachineType::Int64());
1355 BUILD(r, WASM_STORE_MEM_ALIGNMENT(MachineType::Int64(), WASM_ZERO, i, 1356 BUILD(r, WASM_STORE_MEM_ALIGNMENT(MachineType::Int64(), WASM_ZERO, i,
1356 WASM_GET_LOCAL(0))); 1357 WASM_GET_LOCAL(0)),
1358 WASM_GET_LOCAL(0));
1357 module.RandomizeMemory(1111); 1359 module.RandomizeMemory(1111);
1358 module.WriteMemory<int64_t>(&memory[0], 0); 1360 module.WriteMemory<int64_t>(&memory[0], 0);
1359 1361
1360 CHECK_EQ(kWritten, r.Call(kWritten)); 1362 CHECK_EQ(kWritten, r.Call(kWritten));
1361 CHECK_EQ(kWritten, module.ReadMemory(&memory[0])); 1363 CHECK_EQ(kWritten, module.ReadMemory(&memory[0]));
1362 } 1364 }
1363 } 1365 }
1364 1366
1365 WASM_EXEC_TEST(I64Global) { 1367 WASM_EXEC_TEST(I64Global) {
1366 REQUIRE(I64LoadStore); 1368 REQUIRE(I64LoadStore);
1367 REQUIRE(I64SConvertI32); 1369 REQUIRE(I64SConvertI32);
1368 REQUIRE(I64And); 1370 REQUIRE(I64And);
1369 REQUIRE(DepthFirst); 1371 REQUIRE(DepthFirst);
1370 TestingModule module(execution_mode); 1372 TestingModule module(execution_mode);
1371 int64_t* global = module.AddGlobal<int64_t>(kAstI64); 1373 int64_t* global = module.AddGlobal<int64_t>(kAstI64);
1372 WasmRunner<int32_t> r(&module, MachineType::Int32()); 1374 WasmRunner<int32_t> r(&module, MachineType::Int32());
1373 // global = global + p0 1375 // global = global + p0
1374 BUILD(r, B2(WASM_SET_GLOBAL( 1376 BUILD(r, WASM_SET_GLOBAL(
1375 0, WASM_I64_AND(WASM_GET_GLOBAL(0), 1377 0, WASM_I64_AND(WASM_GET_GLOBAL(0),
1376 WASM_I64_SCONVERT_I32(WASM_GET_LOCAL(0)))), 1378 WASM_I64_SCONVERT_I32(WASM_GET_LOCAL(0)))),
1377 WASM_ZERO)); 1379 WASM_ZERO);
1378 1380
1379 module.WriteMemory<int64_t>(global, 0xFFFFFFFFFFFFFFFFLL); 1381 module.WriteMemory<int64_t>(global, 0xFFFFFFFFFFFFFFFFLL);
1380 for (int i = 9; i < 444444; i += 111111) { 1382 for (int i = 9; i < 444444; i += 111111) {
1381 int64_t expected = *global & i; 1383 int64_t expected = *global & i;
1382 r.Call(i); 1384 r.Call(i);
1383 CHECK_EQ(expected, *global); 1385 CHECK_EQ(expected, *global);
1384 } 1386 }
1385 } 1387 }
1386 1388
1387 WASM_EXEC_TEST(I64Eqz) { 1389 WASM_EXEC_TEST(I64Eqz) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1470 TestingModule module(kExecuteCompiled); 1472 TestingModule module(kExecuteCompiled);
1471 FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params); 1473 FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params);
1472 1474
1473 module.AddSignature(sig); 1475 module.AddSignature(sig);
1474 module.AddSignature(sig); 1476 module.AddSignature(sig);
1475 module.AddIndirectFunctionTable(nullptr, 0); 1477 module.AddIndirectFunctionTable(nullptr, 0);
1476 1478
1477 WasmFunctionCompiler t(sig, &module); 1479 WasmFunctionCompiler t(sig, &module);
1478 1480
1479 std::vector<byte> code; 1481 std::vector<byte> code;
1480 ADD_CODE(code, kExprI8Const, 0);
1481 for (byte p = 0; p < num_params; p++) { 1482 for (byte p = 0; p < num_params; p++) {
1482 ADD_CODE(code, kExprGetLocal, p); 1483 ADD_CODE(code, kExprGetLocal, p);
1483 } 1484 }
1484 ADD_CODE(code, kExprCallIndirect, static_cast<byte>(num_params), 1); 1485 ADD_CODE(code, kExprI8Const, 0);
1486 ADD_CODE(code, kExprCallIndirect, 1);
1485 1487
1486 t.Build(&code[0], &code[0] + code.size()); 1488 t.Build(&code[0], &code[0] + code.size());
1487 t.Compile(); 1489 t.Compile();
1488 } 1490 }
1489 } 1491 }
1490 1492
1491 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } 1493 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); }
1492 1494
1493 static void Run_WasmMixedCall_N(WasmExecutionMode execution_mode, int start) { 1495 static void Run_WasmMixedCall_N(WasmExecutionMode execution_mode, int start) {
1494 const int kExpected = 6333; 1496 const int kExpected = 6333;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 // Load the offset for the store. 1535 // Load the offset for the store.
1534 ADD_CODE(code, WASM_ZERO); 1536 ADD_CODE(code, WASM_ZERO);
1535 1537
1536 // Load the arguments. 1538 // Load the arguments.
1537 for (int i = 0; i < num_params; i++) { 1539 for (int i = 0; i < num_params; i++) {
1538 int offset = (i + 1) * kElemSize; 1540 int offset = (i + 1) * kElemSize;
1539 ADD_CODE(code, WASM_LOAD_MEM(memtypes[i], WASM_I8(offset))); 1541 ADD_CODE(code, WASM_LOAD_MEM(memtypes[i], WASM_I8(offset)));
1540 } 1542 }
1541 1543
1542 // Call the selector function. 1544 // Call the selector function.
1543 ADD_CODE(code, kExprCallFunction, static_cast<byte>(num_params), 1545 ADD_CODE(code, kExprCallFunction, static_cast<byte>(index));
1544 static_cast<byte>(index));
1545 1546
1546 // Store the result in memory. 1547 // Store the result in memory.
1547 ADD_CODE(code, 1548 ADD_CODE(code,
1548 static_cast<byte>(WasmOpcodes::LoadStoreOpcodeOf(result, true)), 1549 static_cast<byte>(WasmOpcodes::LoadStoreOpcodeOf(result, true)),
1549 ZERO_ALIGNMENT, ZERO_OFFSET); 1550 ZERO_ALIGNMENT, ZERO_OFFSET);
1550 1551
1551 // Return the expected value. 1552 // Return the expected value.
1552 ADD_CODE(code, WASM_I32V_2(kExpected)); 1553 ADD_CODE(code, WASM_I32V_2(kExpected));
1553 1554
1554 r.Build(&code[0], &code[0] + code.size()); 1555 r.Build(&code[0], &code[0] + code.size());
(...skipping 11 matching lines...) Expand all
1566 CHECK_EQ(expected, result); 1567 CHECK_EQ(expected, result);
1567 } 1568 }
1568 } 1569 }
1569 } 1570 }
1570 } 1571 }
1571 1572
1572 WASM_EXEC_TEST(MixedCall_i64_0) { Run_WasmMixedCall_N(execution_mode, 0); } 1573 WASM_EXEC_TEST(MixedCall_i64_0) { Run_WasmMixedCall_N(execution_mode, 0); }
1573 WASM_EXEC_TEST(MixedCall_i64_1) { Run_WasmMixedCall_N(execution_mode, 1); } 1574 WASM_EXEC_TEST(MixedCall_i64_1) { Run_WasmMixedCall_N(execution_mode, 1); }
1574 WASM_EXEC_TEST(MixedCall_i64_2) { Run_WasmMixedCall_N(execution_mode, 2); } 1575 WASM_EXEC_TEST(MixedCall_i64_2) { Run_WasmMixedCall_N(execution_mode, 2); }
1575 WASM_EXEC_TEST(MixedCall_i64_3) { Run_WasmMixedCall_N(execution_mode, 3); } 1576 WASM_EXEC_TEST(MixedCall_i64_3) { Run_WasmMixedCall_N(execution_mode, 3); }
OLDNEW
« no previous file with comments | « test/cctest/wasm/test-run-wasm.cc ('k') | test/cctest/wasm/test-run-wasm-interpreter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698