Index: test/cctest/wasm/test-run-wasm.cc |
diff --git a/test/cctest/wasm/test-run-wasm.cc b/test/cctest/wasm/test-run-wasm.cc |
index f48e44d4eb5c258f67fd3452510affe2c47eeb79..fd743df1a0536879182776d6f046764253011a31 100644 |
--- a/test/cctest/wasm/test-run-wasm.cc |
+++ b/test/cctest/wasm/test-run-wasm.cc |
@@ -930,7 +930,7 @@ WASM_EXEC_TEST(BrTable4) { |
WASM_I8(75)}; |
WasmRunner<int32_t> r(execution_mode, MachineType::Int32()); |
- r.Build(code, code + arraysize(code)); |
+ r.Build(code, code + arraysize(code), false); |
for (int x = -3; x < 50; ++x) { |
int index = (x > 3 || x < 0) ? 3 : x; |
@@ -960,7 +960,7 @@ WASM_EXEC_TEST(BrTable4x4) { |
WASM_I8(55)}; |
WasmRunner<int32_t> r(execution_mode, MachineType::Int32()); |
- r.Build(code, code + arraysize(code)); |
+ r.Build(code, code + arraysize(code), false); |
for (int x = -6; x < 47; ++x) { |
int index = (x > 3 || x < 0) ? 3 : x; |
@@ -986,7 +986,7 @@ WASM_EXEC_TEST(BrTable4_fallthru) { |
WasmRunner<int32_t> r(execution_mode, MachineType::Int32(), |
MachineType::Int32()); |
- r.Build(code, code + arraysize(code)); |
+ r.Build(code, code + arraysize(code), false); |
CHECK_EQ(15, r.Call(0, 0)); |
CHECK_EQ(14, r.Call(1, 0)); |
@@ -1778,13 +1778,13 @@ static void TestBuildGraphForSimpleExpression(WasmOpcode opcode) { |
if (sig->parameter_count() == 1) { |
byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, static_cast<byte>(opcode)}; |
TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code, |
- code + arraysize(code)); |
+ code + arraysize(code), false); |
} else { |
CHECK_EQ(2, sig->parameter_count()); |
byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, kExprGetLocal, 1, |
static_cast<byte>(opcode)}; |
TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code, |
- code + arraysize(code)); |
+ code + arraysize(code), false); |
} |
} |
@@ -2200,7 +2200,7 @@ static void Run_WasmMixedCall_N(WasmExecutionMode execution_mode, int start) { |
// Return the expected value. |
ADD_CODE(code, WASM_I32V_2(kExpected)); |
- r.Build(&code[0], &code[0] + code.size()); |
+ r.Build(&code[0], &code[0] + code.size(), false); |
// Run the code. |
for (int t = 0; t < 10; ++t) { |
@@ -2401,18 +2401,19 @@ WASM_EXEC_TEST(SimpleCallIndirect) { |
// Signature table. |
module.AddSignature(sigs.f_ff()); |
- module.AddSignature(sigs.i_ii()); |
+ byte index = module.AddSignature(sigs.i_ii()); |
module.AddSignature(sigs.d_dd()); |
// Function table. |
uint16_t indirect_function_table[] = {0, 1}; |
- module.AddIndirectFunctionTable(indirect_function_table, |
+ module.AddIndirectFunctionTable(sigs.i_ii(), index, indirect_function_table, |
arraysize(indirect_function_table)); |
module.PopulateIndirectFunctionTable(); |
// Builder the caller function. |
WasmRunner<int32_t> r(&module, MachineType::Int32()); |
- BUILD(r, WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22))); |
+ BUILD(r, |
+ WASM_CALL_INDIRECT2(1, 0, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22))); |
CHECK_EQ(88, r.Call(0)); |
CHECK_EQ(44, r.Call(1)); |
@@ -2433,12 +2434,12 @@ WASM_EXEC_TEST(MultipleCallIndirect) { |
// Signature table. |
module.AddSignature(sigs.f_ff()); |
- module.AddSignature(sigs.i_ii()); |
+ byte index = module.AddSignature(sigs.i_ii()); |
module.AddSignature(sigs.d_dd()); |
// Function table. |
uint16_t indirect_function_table[] = {0, 1}; |
- module.AddIndirectFunctionTable(indirect_function_table, |
+ module.AddIndirectFunctionTable(sigs.i_ii(), index, indirect_function_table, |
arraysize(indirect_function_table)); |
module.PopulateIndirectFunctionTable(); |
@@ -2446,9 +2447,9 @@ WASM_EXEC_TEST(MultipleCallIndirect) { |
WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32(), |
MachineType::Int32()); |
BUILD(r, WASM_I32_ADD( |
- WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1), |
+ WASM_CALL_INDIRECT2(1, 0, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1), |
WASM_GET_LOCAL(2)), |
- WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(1), WASM_GET_LOCAL(2), |
+ WASM_CALL_INDIRECT2(1, 0, WASM_GET_LOCAL(1), WASM_GET_LOCAL(2), |
WASM_GET_LOCAL(0)))); |
CHECK_EQ(5, r.Call(0, 1, 2)); |
@@ -2477,11 +2478,8 @@ WASM_EXEC_TEST(CallIndirect_NoTable) { |
// Builder the caller function. |
WasmRunner<int32_t> r(&module, MachineType::Int32()); |
- BUILD(r, WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22))); |
- |
- CHECK_TRAP(r.Call(0)); |
- CHECK_TRAP(r.Call(1)); |
- CHECK_TRAP(r.Call(2)); |
+ BUILD_FAIL(r, WASM_CALL_INDIRECT2(1, 0, WASM_GET_LOCAL(0), WASM_I8(66), |
+ WASM_I8(22))); |
} |
WASM_EXEC_TEST(F32Floor) { |
@@ -2740,9 +2738,8 @@ static void CompileCallIndirectMany(LocalType param) { |
TestingModule module(kExecuteCompiled); |
FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params); |
- module.AddSignature(sig); |
- module.AddSignature(sig); |
- module.AddIndirectFunctionTable(nullptr, 0); |
+ byte index = module.AddSignature(sig); |
+ module.AddIndirectFunctionTable(sig, index, nullptr, 0); |
WasmFunctionCompiler t(sig, &module); |
@@ -2751,9 +2748,9 @@ static void CompileCallIndirectMany(LocalType param) { |
for (byte p = 0; p < num_params; ++p) { |
ADD_CODE(code, kExprGetLocal, p); |
} |
- ADD_CODE(code, kExprCallIndirect, static_cast<byte>(num_params), 1); |
+ ADD_CODE(code, kExprCallIndirect, static_cast<byte>(num_params), index, 0); |
- t.Build(&code[0], &code[0] + code.size()); |
+ t.Build(&code[0], &code[0] + code.size(), false); |
t.Compile(); |
} |
} |