| Index: src/compiler/linkage.cc
|
| diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc
|
| index 9d64cebbf7da9c9025a03f815b8ad7eda25bb238..2c2082bcd20b096e925cd1783edbb040ec444957 100644
|
| --- a/src/compiler/linkage.cc
|
| +++ b/src/compiler/linkage.cc
|
| @@ -323,20 +323,22 @@ CallDescriptor* Linkage::GetJSCallDescriptor(Zone* zone, bool is_osr,
|
| MachineType target_type = MachineType::AnyTagged();
|
| // When entering into an OSR function from unoptimized code the JSFunction
|
| // is not in a register, but it is on the stack in the marker spill slot.
|
| - LinkageLocation target_loc = is_osr ? LinkageLocation::ForSavedCallerMarker()
|
| - : regloc(kJSFunctionRegister);
|
| - return new (zone) CallDescriptor( // --
|
| - CallDescriptor::kCallJSFunction, // kind
|
| - target_type, // target MachineType
|
| - target_loc, // target location
|
| - types.Build(), // machine_sig
|
| - locations.Build(), // location_sig
|
| - js_parameter_count, // stack_parameter_count
|
| - Operator::kNoProperties, // properties
|
| - kNoCalleeSaved, // callee-saved
|
| - kNoCalleeSaved, // callee-saved fp
|
| - CallDescriptor::kCanUseRoots | // flags
|
| - flags, // flags
|
| + LinkageLocation target_loc = is_osr
|
| + ? LinkageLocation::ForSavedCallerFunction()
|
| + : regloc(kJSFunctionRegister);
|
| + return new (zone) CallDescriptor( // --
|
| + CallDescriptor::kCallJSFunction, // kind
|
| + target_type, // target MachineType
|
| + target_loc, // target location
|
| + types.Build(), // machine_sig
|
| + locations.Build(), // location_sig
|
| + js_parameter_count, // stack_parameter_count
|
| + Operator::kNoProperties, // properties
|
| + kNoCalleeSaved, // callee-saved
|
| + kNoCalleeSaved, // callee-saved fp
|
| + CallDescriptor::kCanUseRoots | // flags
|
| + CallDescriptor::kHasStandardFrameHeader | // flags
|
| + flags, // flags
|
| "js-call");
|
| }
|
|
|
| @@ -436,6 +438,9 @@ LinkageLocation Linkage::GetOsrValueLocation(int index) const {
|
|
|
|
|
| bool Linkage::ParameterHasSecondaryLocation(int index) const {
|
| + if (incoming_->flags() & CallDescriptor::kHasStandardFrameHeader) {
|
| + return false;
|
| + }
|
| if (incoming_->kind() != CallDescriptor::kCallJSFunction) return false;
|
| LinkageLocation loc = GetParameterLocation(index);
|
| return (loc == regloc(kJSFunctionRegister) ||
|
|
|