| Index: src/arm64/macro-assembler-arm64.cc
|
| diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
|
| index 5f1e5c3795948bc5c8e17974f0998d35d7c0b932..ac7d799fddf6f118100dc703703b8485404a7c0a 100644
|
| --- a/src/arm64/macro-assembler-arm64.cc
|
| +++ b/src/arm64/macro-assembler-arm64.cc
|
| @@ -1759,14 +1759,14 @@ void MacroAssembler::CallExternalReference(const ExternalReference& ext,
|
| CallStub(&stub);
|
| }
|
|
|
| -
|
| -void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin) {
|
| +void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin,
|
| + bool builtin_exit_frame) {
|
| Mov(x1, builtin);
|
| - CEntryStub stub(isolate(), 1);
|
| + CEntryStub stub(isolate(), 1, kDontSaveFPRegs, kArgvOnStack,
|
| + builtin_exit_frame);
|
| Jump(stub.GetCode(), RelocInfo::CODE_TARGET);
|
| }
|
|
|
| -
|
| void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) {
|
| const Runtime::Function* function = Runtime::FunctionForId(fid);
|
| DCHECK_EQ(1, function->result_size);
|
| @@ -2823,16 +2823,17 @@ void MacroAssembler::ExitFrameRestoreFPRegs() {
|
| }
|
| }
|
|
|
| -
|
| -void MacroAssembler::EnterExitFrame(bool save_doubles,
|
| - const Register& scratch,
|
| - int extra_space) {
|
| +void MacroAssembler::EnterExitFrame(bool save_doubles, const Register& scratch,
|
| + int extra_space,
|
| + StackFrame::Type frame_type) {
|
| DCHECK(jssp.Is(StackPointer()));
|
| + DCHECK(frame_type == StackFrame::EXIT ||
|
| + frame_type == StackFrame::BUILTIN_EXIT);
|
|
|
| // Set up the new stack frame.
|
| Push(lr, fp);
|
| Mov(fp, StackPointer());
|
| - Mov(scratch, Smi::FromInt(StackFrame::EXIT));
|
| + Mov(scratch, Smi::FromInt(frame_type));
|
| Push(scratch);
|
| Push(xzr);
|
| Mov(scratch, Operand(CodeObject()));
|
|
|