| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index 8eb93a6b3332b3a2aa853146759b6e1d967d6daf..8ced794daad548e7a170acbc7e76d79169b85b7a 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -1286,13 +1286,16 @@ int MacroAssembler::LeaveFrame(StackFrame::Type type) {
|
| return frame_ends;
|
| }
|
|
|
| +void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space,
|
| + StackFrame::Type frame_type) {
|
| + DCHECK(frame_type == StackFrame::EXIT ||
|
| + frame_type == StackFrame::BUILTIN_EXIT);
|
|
|
| -void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) {
|
| // Set up the frame structure on the stack.
|
| DCHECK_EQ(2 * kPointerSize, ExitFrameConstants::kCallerSPDisplacement);
|
| DCHECK_EQ(1 * kPointerSize, ExitFrameConstants::kCallerPCOffset);
|
| DCHECK_EQ(0 * kPointerSize, ExitFrameConstants::kCallerFPOffset);
|
| - mov(ip, Operand(Smi::FromInt(StackFrame::EXIT)));
|
| + mov(ip, Operand(Smi::FromInt(frame_type)));
|
| PushCommonFrame(ip);
|
| // Reserve room for saved entry sp and code object.
|
| sub(sp, fp, Operand(ExitFrameConstants::kFixedFrameSizeFromFp));
|
| @@ -2852,18 +2855,18 @@ void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) {
|
| JumpToExternalReference(ExternalReference(fid, isolate()));
|
| }
|
|
|
| -
|
| -void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin) {
|
| +void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin,
|
| + bool builtin_exit_frame) {
|
| #if defined(__thumb__)
|
| // Thumb mode builtin.
|
| DCHECK((reinterpret_cast<intptr_t>(builtin.address()) & 1) == 1);
|
| #endif
|
| mov(r1, Operand(builtin));
|
| - CEntryStub stub(isolate(), 1);
|
| + CEntryStub stub(isolate(), 1, kDontSaveFPRegs, kArgvOnStack,
|
| + builtin_exit_frame);
|
| Jump(stub.GetCode(), RelocInfo::CODE_TARGET);
|
| }
|
|
|
| -
|
| void MacroAssembler::SetCounter(StatsCounter* counter, int value,
|
| Register scratch1, Register scratch2) {
|
| if (FLAG_native_code_counters && counter->Enabled()) {
|
|
|