| Index: src/x64/macro-assembler-x64.cc
|
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
|
| index b35ef3b07a12f80783258adca72b9e90fcf0a7cd..d620fa9c6c60da3c5887b5a4611d7bd59455941c 100644
|
| --- a/src/x64/macro-assembler-x64.cc
|
| +++ b/src/x64/macro-assembler-x64.cc
|
| @@ -4081,7 +4081,6 @@ void MacroAssembler::DecrementCounter(StatsCounter* counter, int value) {
|
| }
|
| }
|
|
|
| -
|
| void MacroAssembler::DebugBreak() {
|
| Set(rax, 0); // No arguments.
|
| LoadAddress(rbx,
|
| @@ -4091,6 +4090,15 @@ void MacroAssembler::DebugBreak() {
|
| Call(ces.GetCode(), RelocInfo::DEBUGGER_STATEMENT);
|
| }
|
|
|
| +void MacroAssembler::MaybeDropFrames() {
|
| + // Check whether we need to drop frames to restart a function on the stack.
|
| + ExternalReference new_fp = ExternalReference::debug_new_fp_address(isolate());
|
| + Load(rbx, new_fp);
|
| + testp(rbx, rbx);
|
| + j(not_zero, isolate()->builtins()->FrameDropperTrampoline(),
|
| + RelocInfo::CODE_TARGET);
|
| +}
|
| +
|
| void MacroAssembler::PrepareForTailCall(const ParameterCount& callee_args_count,
|
| Register caller_args_count_reg,
|
| Register scratch0, Register scratch1,
|
| @@ -4290,6 +4298,7 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected,
|
| DCHECK(actual.reg().is(rax));
|
| DCHECK(expected.reg().is(rbx));
|
| } else {
|
| + definitely_matches = true;
|
| Move(rax, actual.reg());
|
| }
|
| }
|
|
|