Commit 3358bb04 authored by Zhao Jiazhong's avatar Zhao Jiazhong Committed by Commit Bot

[mips] [codegen] Better load of receiver in CheckDebugHook

Port 1e4bb087 https://crrev.com/c/1826728

Change-Id: If977914ef55eb65228f92fecd1c9e9d0f625fa2b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886716Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64628}
parent 1c219e5a
...@@ -198,6 +198,7 @@ Yannic Bonenberger <contact@yannic-bonenberger.com> ...@@ -198,6 +198,7 @@ Yannic Bonenberger <contact@yannic-bonenberger.com>
Yong Wang <ccyongwang@tencent.com> Yong Wang <ccyongwang@tencent.com>
Yu Yin <xwafish@gmail.com> Yu Yin <xwafish@gmail.com>
Zac Hansen <xaxxon@gmail.com> Zac Hansen <xaxxon@gmail.com>
Zhao Jiazhong <kyslie3100@gmail.com>
Zhongping Wang <kewpie.w.zp@gmail.com> Zhongping Wang <kewpie.w.zp@gmail.com>
柳荣一 <admin@web-tinker.com> 柳荣一 <admin@web-tinker.com>
Yanbo Li <lybvinci@gmail.com> Yanbo Li <lybvinci@gmail.com>
...@@ -4400,12 +4400,11 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target, ...@@ -4400,12 +4400,11 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target,
{ {
// Load receiver to pass it later to DebugOnFunctionCall hook. // Load receiver to pass it later to DebugOnFunctionCall hook.
if (actual.is_reg()) { if (actual.is_reg()) {
mov(t0, actual.reg()); Lsa(at, sp, actual.reg(), kPointerSizeLog2);
lw(t0, MemOperand(at));
} else { } else {
li(t0, actual.immediate()); lw(t0, MemOperand(sp, actual.immediate() << kPointerSizeLog2));
} }
Lsa(at, sp, t0, kPointerSizeLog2);
lw(t0, MemOperand(at));
FrameScope frame(this, FrameScope frame(this,
has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
if (expected.is_reg()) { if (expected.is_reg()) {
......
...@@ -4714,12 +4714,11 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target, ...@@ -4714,12 +4714,11 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target,
{ {
// Load receiver to pass it later to DebugOnFunctionCall hook. // Load receiver to pass it later to DebugOnFunctionCall hook.
if (actual.is_reg()) { if (actual.is_reg()) {
mov(t0, actual.reg()); Dlsa(t0, sp, actual.reg(), kPointerSizeLog2);
Ld(t0, MemOperand(t0));
} else { } else {
li(t0, actual.immediate()); Ld(t0, MemOperand(sp, actual.immediate() << kPointerSizeLog2));
} }
Dlsa(t0, sp, t0, kPointerSizeLog2);
Ld(t0, MemOperand(t0));
FrameScope frame(this, FrameScope frame(this,
has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
if (expected.is_reg()) { if (expected.is_reg()) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment