Index: test/unittests/compiler/instruction-selector-unittest.h |
diff --git a/test/unittests/compiler/instruction-selector-unittest.h b/test/unittests/compiler/instruction-selector-unittest.h |
index fc7c144939292c251d6a3171552a6e6ca8333bcc..f1397faa06157161275b80fd51f02395e20978de 100644 |
--- a/test/unittests/compiler/instruction-selector-unittest.h |
+++ b/test/unittests/compiler/instruction-selector-unittest.h |
@@ -92,7 +92,7 @@ class InstructionSelectorTest : public TestWithContext, |
CallDescriptor* MakeCallDescriptor(Zone* zone, MachineType return_type) { |
MachineSignature::Builder builder(zone, 1, 0); |
builder.AddReturn(return_type); |
- return Linkage::GetSimplifiedCDescriptor(zone, builder.Build()); |
+ return MakeSimpleCallDescriptor(zone, builder.Build()); |
} |
CallDescriptor* MakeCallDescriptor(Zone* zone, MachineType return_type, |
@@ -100,7 +100,7 @@ class InstructionSelectorTest : public TestWithContext, |
MachineSignature::Builder builder(zone, 1, 1); |
builder.AddReturn(return_type); |
builder.AddParam(parameter0_type); |
- return Linkage::GetSimplifiedCDescriptor(zone, builder.Build()); |
+ return MakeSimpleCallDescriptor(zone, builder.Build()); |
} |
CallDescriptor* MakeCallDescriptor(Zone* zone, MachineType return_type, |
@@ -110,7 +110,7 @@ class InstructionSelectorTest : public TestWithContext, |
builder.AddReturn(return_type); |
builder.AddParam(parameter0_type); |
builder.AddParam(parameter1_type); |
- return Linkage::GetSimplifiedCDescriptor(zone, builder.Build()); |
+ return MakeSimpleCallDescriptor(zone, builder.Build()); |
} |
CallDescriptor* MakeCallDescriptor(Zone* zone, MachineType return_type, |
@@ -122,11 +122,48 @@ class InstructionSelectorTest : public TestWithContext, |
builder.AddParam(parameter0_type); |
builder.AddParam(parameter1_type); |
builder.AddParam(parameter2_type); |
- return Linkage::GetSimplifiedCDescriptor(zone, builder.Build()); |
+ return MakeSimpleCallDescriptor(zone, builder.Build()); |
} |
private: |
InstructionSelectorTest* test_; |
+ |
+ // Create a simple call descriptor for testing. |
+ CallDescriptor* MakeSimpleCallDescriptor(Zone* zone, |
+ MachineSignature* msig) { |
+ LocationSignature::Builder locations(zone, msig->return_count(), |
+ msig->parameter_count()); |
+ |
+ // Add return location(s). |
+ const int return_count = static_cast<int>(msig->return_count()); |
+ for (int i = 0; i < return_count; i++) { |
+ locations.AddReturn(LinkageLocation::ForCallerFrameSlot(-1 - i)); |
+ } |
+ |
+ // Just put all parameters on the stack. |
+ const int parameter_count = static_cast<int>(msig->parameter_count()); |
+ for (int i = 0; i < parameter_count; i++) { |
+ locations.AddParam(LinkageLocation::ForCallerFrameSlot(-1 - i)); |
+ } |
+ |
+ const RegList kCalleeSaveRegisters = 0; |
+ const RegList kCalleeSaveFPRegisters = 0; |
+ |
+ MachineType target_type = MachineType::Pointer(); |
+ LinkageLocation target_loc = LinkageLocation::ForAnyRegister(); |
+ return new (zone) CallDescriptor( // -- |
+ CallDescriptor::kCallAddress, // kind |
+ target_type, // target MachineType |
+ target_loc, // target location |
+ msig, // machine_sig |
+ locations.Build(), // location_sig |
+ 0, // stack_parameter_count |
+ Operator::kNoProperties, // properties |
+ kCalleeSaveRegisters, // callee-saved registers |
+ kCalleeSaveFPRegisters, // callee-saved fp regs |
+ CallDescriptor::kNoFlags, // flags |
+ "iselect-test-call"); |
+ } |
}; |
class Stream final { |