| Index: src/s390/macro-assembler-s390.cc
|
| diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc
|
| index 8cf345f658f21202f36f8edfb0c32927b84f51f8..7980559a5effca4a14c3f4457c6d74843ded4498 100644
|
| --- a/src/s390/macro-assembler-s390.cc
|
| +++ b/src/s390/macro-assembler-s390.cc
|
| @@ -1306,17 +1306,16 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected,
|
| }
|
| }
|
|
|
| -void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target,
|
| - const ParameterCount& expected,
|
| - const ParameterCount& actual) {
|
| - Label skip_flooding;
|
| - ExternalReference last_step_action =
|
| - ExternalReference::debug_last_step_action_address(isolate());
|
| - STATIC_ASSERT(StepFrame > StepIn);
|
| - mov(r6, Operand(last_step_action));
|
| +void MacroAssembler::CheckDebugHook(Register fun, Register new_target,
|
| + const ParameterCount& expected,
|
| + const ParameterCount& actual) {
|
| + Label skip_hook;
|
| + ExternalReference debug_hook_avtive =
|
| + ExternalReference::debug_hook_on_function_call_address(isolate());
|
| + mov(r6, Operand(debug_hook_avtive));
|
| LoadB(r6, MemOperand(r6));
|
| - CmpP(r6, Operand(StepIn));
|
| - blt(&skip_flooding);
|
| + CmpSmiLiteral(r6, Smi::kZero, r0);
|
| + beq(&skip_hook);
|
| {
|
| FrameScope frame(this,
|
| has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
|
| @@ -1332,7 +1331,7 @@ void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target,
|
| Push(new_target);
|
| }
|
| Push(fun, fun);
|
| - CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
|
| + CallRuntime(Runtime::kDebugOnFunctionCall);
|
| Pop(fun);
|
| if (new_target.is_valid()) {
|
| Pop(new_target);
|
| @@ -1346,7 +1345,7 @@ void MacroAssembler::FloodFunctionIfStepping(Register fun, Register new_target,
|
| SmiUntag(expected.reg());
|
| }
|
| }
|
| - bind(&skip_flooding);
|
| + bind(&skip_hook);
|
| }
|
|
|
| void MacroAssembler::InvokeFunctionCode(Register function, Register new_target,
|
| @@ -1360,8 +1359,8 @@ void MacroAssembler::InvokeFunctionCode(Register function, Register new_target,
|
| DCHECK(function.is(r3));
|
| DCHECK_IMPLIES(new_target.is_valid(), new_target.is(r5));
|
|
|
| - if (call_wrapper.NeedsDebugStepCheck()) {
|
| - FloodFunctionIfStepping(function, new_target, expected, actual);
|
| + if (call_wrapper.NeedsDebugHookCheck()) {
|
| + CheckDebugHook(function, new_target, expected, actual);
|
| }
|
|
|
| // Clear the new.target register if not given.
|
|
|