Commit 8557840b authored by Zhao Jiazhong's avatar Zhao Jiazhong Committed by Commit Bot

[mips64][builtins] Fix removing all arguments from the stack

The sp register's value should be modified to drop all the args
from the stack.

Change-Id: I7410d325523427d765eb0640e14acede5589284f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2479222Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70563}
parent cdc8d9a5
......@@ -1614,6 +1614,7 @@ void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
__ Dsubu(scratch, scratch, Operand(1));
__ Movz(arg_array, undefined_value, scratch); // if argc == 1
__ Ld(receiver, MemOperand(sp));
__ Dlsa(sp, sp, argc, kSystemPointerSizeLog2);
__ Sd(this_arg, MemOperand(sp));
}
......@@ -1709,6 +1710,7 @@ void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
__ Dsubu(scratch, scratch, Operand(1));
__ Movz(arguments_list, undefined_value, scratch); // if argc == 2
__ Dlsa(sp, sp, argc, kSystemPointerSizeLog2);
__ Sd(this_argument, MemOperand(sp, 0)); // Overwrite receiver
}
......@@ -1767,6 +1769,7 @@ void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
__ Dsubu(scratch, scratch, Operand(1));
__ Movz(new_target, target, scratch); // if argc == 2
__ Dlsa(sp, sp, argc, kSystemPointerSizeLog2);
__ Sd(undefined_value, MemOperand(sp, 0)); // Overwrite receiver
}
......
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