Index: test/cctest/wasm/wasm-run-utils.h |
diff --git a/test/cctest/wasm/wasm-run-utils.h b/test/cctest/wasm/wasm-run-utils.h |
index e76b463a6cb364d64796014a82e65d4278c64d60..3ff802f7e5ea0f486df58eaf5c6a7ce3d4574fb5 100644 |
--- a/test/cctest/wasm/wasm-run-utils.h |
+++ b/test/cctest/wasm/wasm-run-utils.h |
@@ -243,7 +243,7 @@ inline void TestBuildingGraph(Zone* zone, JSGraph* jsgraph, FunctionEnv* env, |
str << ", msg = " << result.error_msg.get(); |
FATAL(str.str().c_str()); |
} |
- builder.Int64LoweringForTesting(); |
+ builder.Int64LoweringForTesting(env->sig); |
if (FLAG_trace_turbo_graph) { |
OFStream os(stdout); |
os << AsRPO(*jsgraph->graph()); |
@@ -267,7 +267,8 @@ class WasmFunctionWrapper : public HandleAndZoneScope, |
signature_ = sig_builder.Build(); |
} |
- void Init(CallDescriptor* descriptor, MachineType p0 = MachineType::None(), |
+ void Init(const CallDescriptor* descriptor, |
+ MachineType p0 = MachineType::None(), |
MachineType p1 = MachineType::None(), |
MachineType p2 = MachineType::None(), |
MachineType p3 = MachineType::None()) { |
@@ -348,6 +349,19 @@ class WasmFunctionWrapper : public HandleAndZoneScope, |
CallDescriptor* descriptor = |
Linkage::GetSimplifiedCDescriptor(zone(), signature_, true); |
+#if !WASM_64 |
+ |
+ Signature<MachineRepresentation>::Builder rep_builder(zone(), 1, 4); |
+ |
+ rep_builder.AddReturn(MachineRepresentation::kWord32); |
+ for (int i = 0; i < 4; i++) { |
+ rep_builder.AddParam(MachineRepresentation::kWord32); |
+ } |
+ Int64Lowering r(graph(), machine(), common(), zone(), |
+ rep_builder.Build()); |
+ r.LowerGraph(); |
+#endif |
+ |
CompilationInfo info("testing", isolate, graph()->zone()); |
code_ = |
Pipeline::GenerateCodeForTesting(&info, descriptor, graph(), nullptr); |
@@ -387,7 +401,7 @@ class WasmFunctionCompiler : public HandleAndZoneScope, |
JSGraph jsgraph; |
FunctionEnv env; |
// The call descriptor is initialized when the function is compiled. |
- CallDescriptor* descriptor_; |
+ const CallDescriptor* descriptor_; |
Isolate* isolate() { return main_isolate(); } |
Graph* graph() const { return main_graph_; } |
@@ -399,7 +413,7 @@ class WasmFunctionCompiler : public HandleAndZoneScope, |
descriptor_ = env.module->GetWasmCallDescriptor(main_zone(), env.sig); |
} |
} |
- CallDescriptor* descriptor() { return descriptor_; } |
+ const CallDescriptor* descriptor() { return descriptor_; } |
void Build(const byte* start, const byte* end) { |
TestBuildingGraph(main_zone(), &jsgraph, &env, start, end); |
@@ -415,9 +429,13 @@ class WasmFunctionCompiler : public HandleAndZoneScope, |
Handle<Code> Compile(ModuleEnv* module) { |
InitializeDescriptor(); |
+ const CallDescriptor* desc = descriptor_; |
+#if !WASM_64 |
+ desc = module->GetI32WasmCallDescriptor(this->zone(), desc); |
+#endif |
CompilationInfo info("wasm compile", this->isolate(), this->zone()); |
Handle<Code> result = |
- Pipeline::GenerateCodeForTesting(&info, descriptor_, this->graph()); |
+ Pipeline::GenerateCodeForTesting(&info, desc, this->graph()); |
#ifdef ENABLE_DISASSEMBLER |
if (!result.is_null() && FLAG_print_opt_code) { |
OFStream os(stdout); |