| Index: test/unittests/compiler/linkage-tail-call-unittest.cc
|
| diff --git a/test/unittests/compiler/linkage-tail-call-unittest.cc b/test/unittests/compiler/linkage-tail-call-unittest.cc
|
| index cd9ba00d7428154bf35657b100180b66488b0f8f..2a08db822ff867ee47a9cd816c5a93b17a88fcf9 100644
|
| --- a/test/unittests/compiler/linkage-tail-call-unittest.cc
|
| +++ b/test/unittests/compiler/linkage-tail-call-unittest.cc
|
| @@ -51,7 +51,11 @@ TEST_F(LinkageTailCall, EmptyToEmpty) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_TRUE(desc->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -67,7 +71,11 @@ TEST_F(LinkageTailCall, SameReturn) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc2);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_TRUE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -85,7 +93,11 @@ TEST_F(LinkageTailCall, DifferingReturn) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc2);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_FALSE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_FALSE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -104,7 +116,11 @@ TEST_F(LinkageTailCall, MoreRegisterParametersCallee) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc2);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_TRUE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -123,7 +139,11 @@ TEST_F(LinkageTailCall, MoreRegisterParametersCaller) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc2);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_TRUE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -142,7 +162,11 @@ TEST_F(LinkageTailCall, MoreRegisterAndStackParametersCallee) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc2);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_FALSE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -161,7 +185,11 @@ TEST_F(LinkageTailCall, MoreRegisterAndStackParametersCaller) {
|
| CommonOperatorBuilder common(zone());
|
| const Operator* op = common.Call(desc2);
|
| Node* const node = Node::New(zone(), 1, op, 0, nullptr, false);
|
| - EXPECT_FALSE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -185,7 +213,11 @@ TEST_F(LinkageTailCall, MatchingStackParameters) {
|
| const Operator* op = common.Call(desc2);
|
| Node* const node =
|
| Node::New(zone(), 1, op, arraysize(parameters), parameters, false);
|
| - EXPECT_TRUE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -209,7 +241,11 @@ TEST_F(LinkageTailCall, NonMatchingStackParameters) {
|
| const Operator* op = common.Call(desc2);
|
| Node* const node =
|
| Node::New(zone(), 1, op, arraysize(parameters), parameters, false);
|
| - EXPECT_FALSE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -234,7 +270,11 @@ TEST_F(LinkageTailCall, MatchingStackParametersExtraCallerRegisters) {
|
| const Operator* op = common.Call(desc2);
|
| Node* const node =
|
| Node::New(zone(), 1, op, arraysize(parameters), parameters, false);
|
| - EXPECT_TRUE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| @@ -260,15 +300,19 @@ TEST_F(LinkageTailCall, MatchingStackParametersExtraCalleeRegisters) {
|
| const Operator* op = common.Call(desc2);
|
| Node* const node =
|
| Node::New(zone(), 1, op, arraysize(parameters), parameters, false);
|
| - EXPECT_TRUE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| TEST_F(LinkageTailCall, MatchingStackParametersExtraCallerRegistersAndStack) {
|
| // Caller
|
| - LinkageLocation location_array[] = {RegisterLocation(0), StackLocation(3),
|
| - StackLocation(2), StackLocation(1),
|
| - RegisterLocation(0), StackLocation(4)};
|
| + LinkageLocation location_array[] = {RegisterLocation(0), StackLocation(4),
|
| + StackLocation(3), StackLocation(2),
|
| + RegisterLocation(0), StackLocation(1)};
|
| LocationSignature locations1(1, 5, location_array);
|
| CallDescriptor* desc1 = NewStandardCallDescriptor(&locations1);
|
|
|
| @@ -286,20 +330,27 @@ TEST_F(LinkageTailCall, MatchingStackParametersExtraCallerRegistersAndStack) {
|
| const Operator* op = common.Call(desc2);
|
| Node* const node =
|
| Node::New(zone(), 1, op, arraysize(parameters), parameters, false);
|
| - EXPECT_FALSE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
|
|
| TEST_F(LinkageTailCall, MatchingStackParametersExtraCalleeRegistersAndStack) {
|
| // Caller
|
| - LinkageLocation location_array[] = {RegisterLocation(0), StackLocation(3),
|
| - StackLocation(2), RegisterLocation(0),
|
| - RegisterLocation(1), StackLocation(4)};
|
| - LocationSignature locations1(1, 3, location_array);
|
| + LinkageLocation location_array1[] = {RegisterLocation(0), StackLocation(2),
|
| + StackLocation(1), RegisterLocation(0),
|
| + RegisterLocation(1)};
|
| + LocationSignature locations1(1, 3, location_array1);
|
| CallDescriptor* desc1 = NewStandardCallDescriptor(&locations1);
|
|
|
| // Caller
|
| - LocationSignature locations2(1, 5, location_array);
|
| + LinkageLocation location_array2[] = {RegisterLocation(0), StackLocation(3),
|
| + StackLocation(2), RegisterLocation(0),
|
| + RegisterLocation(1), StackLocation(1)};
|
| + LocationSignature locations2(1, 5, location_array2);
|
| CallDescriptor* desc2 = NewStandardCallDescriptor(&locations2);
|
|
|
| CommonOperatorBuilder common(zone());
|
| @@ -312,7 +363,11 @@ TEST_F(LinkageTailCall, MatchingStackParametersExtraCalleeRegistersAndStack) {
|
| const Operator* op = common.Call(desc2);
|
| Node* const node =
|
| Node::New(zone(), 1, op, arraysize(parameters), parameters, false);
|
| - EXPECT_FALSE(desc1->CanTailCall(node));
|
| + size_t in = 0;
|
| + size_t out = 0;
|
| + size_t preserved = 0;
|
| + size_t registers = 0;
|
| + EXPECT_TRUE(desc1->CanTailCall(node, &in, &preserved, &out, ®isters));
|
| }
|
|
|
| } // namespace compiler
|
|
|