Index: src/compiler/s390/code-generator-s390.cc |
diff --git a/src/compiler/s390/code-generator-s390.cc b/src/compiler/s390/code-generator-s390.cc |
index 3c2868c14e0f37fff558746310f10e2afbd070c2..e8915eafb493e67d4be492d7efae42fed7c34303 100644 |
--- a/src/compiler/s390/code-generator-s390.cc |
+++ b/src/compiler/s390/code-generator-s390.cc |
@@ -2256,6 +2256,9 @@ void CodeGenerator::AssembleConstructFrame() { |
__ LoadRR(fp, sp); |
} else if (descriptor->IsJSFunctionCall()) { |
__ Prologue(this->info()->GeneratePreagedPrologue(), ip); |
+ if (descriptor->PushArgumentCount()) { |
+ __ Push(kJavaScriptCallArgCountRegister); |
+ } |
} else { |
StackFrame::Type type = info()->GetOutputStackFrameType(); |
// TODO(mbrandy): Detect cases where ip is the entrypoint (for |
@@ -2264,7 +2267,8 @@ void CodeGenerator::AssembleConstructFrame() { |
} |
} |
- int shrink_slots = frame()->GetSpillSlotCount(); |
+ int shrink_slots = |
+ frame()->GetTotalFrameSlotCount() - descriptor->CalculateFixedFrameSize(); |
if (info()->is_osr()) { |
// TurboFan OSR-compiled functions cannot be entered directly. |
__ Abort(kShouldNotDirectlyEnterOsrFunction); |