Index: src/crankshaft/arm64/lithium-codegen-arm64.cc |
diff --git a/src/crankshaft/arm64/lithium-codegen-arm64.cc b/src/crankshaft/arm64/lithium-codegen-arm64.cc |
index 4cc34aaa48dcadd97757dd1a8d60e9fc0d16ad28..a80afcefecc4ee1c6606868688197ce70578b222 100644 |
--- a/src/crankshaft/arm64/lithium-codegen-arm64.cc |
+++ b/src/crankshaft/arm64/lithium-codegen-arm64.cc |
@@ -594,14 +594,12 @@ void LCodeGen::DoPrologue(LPrologue* instr) { |
__ Push(x1, x10); |
__ CallRuntime(Runtime::kNewScriptContext); |
deopt_mode = Safepoint::kLazyDeopt; |
- } else if (slots <= FastNewFunctionContextStub::kMaximumSlots) { |
- FastNewFunctionContextStub stub(isolate(), slots); |
+ } else { |
+ FastNewFunctionContextStub stub(isolate()); |
+ __ Mov(FastNewFunctionContextDescriptor::SlotsRegister(), slots); |
__ CallStub(&stub); |
// Result of FastNewFunctionContextStub is always in new space. |
need_write_barrier = false; |
- } else { |
- __ Push(x1); |
- __ CallRuntime(Runtime::kNewFunctionContext); |
} |
RecordSafepoint(deopt_mode); |
// Context is returned in x0. It replaces the context passed to us. It's |