Index: src/mips64/builtins-mips64.cc |
diff --git a/src/mips64/builtins-mips64.cc b/src/mips64/builtins-mips64.cc |
index 0fb0e6d3a54f7e06b6ae5388006709cd02d85d09..24d4a800e5e6f6cb2149297b2a174be7f8e287da 100644 |
--- a/src/mips64/builtins-mips64.cc |
+++ b/src/mips64/builtins-mips64.cc |
@@ -1440,6 +1440,7 @@ static void Generate_ApplyHelper(MacroAssembler* masm, bool targetIsArgument) { |
__ InvokeBuiltin(Builtins::APPLY_PREPARE, CALL_FUNCTION); |
} |
+ // Returns the result in v0. |
Generate_CheckStackOverflow(masm, kFunctionOffset); |
// Push current limit and index. |
@@ -1544,7 +1545,7 @@ static void Generate_ConstructHelper(MacroAssembler* masm) { |
const int kStackSize = kFormalParameters + 1; |
{ |
- FrameAndConstantPoolScope frame_scope(masm, StackFrame::INTERNAL); |
+ FrameScope frame_scope(masm, StackFrame::INTERNAL); |
const int kNewTargetOffset = kFPOnStackSize + kPCOnStackSize; |
const int kArgumentsOffset = kNewTargetOffset + kPointerSize; |
const int kFunctionOffset = kArgumentsOffset + kPointerSize; |
@@ -1565,8 +1566,10 @@ static void Generate_ConstructHelper(MacroAssembler* masm) { |
__ push(a0); |
__ ld(a0, MemOperand(fp, kNewTargetOffset)); // get the new.target |
__ push(a0); |
+ // Returns argument count in v0. |
__ InvokeBuiltin(Builtins::REFLECT_CONSTRUCT_PREPARE, CALL_FUNCTION); |
+ // Returns result in v0. |
Generate_CheckStackOverflow(masm, kFunctionOffset); |
// Push current limit and index. |
@@ -1599,8 +1602,8 @@ static void Generate_ConstructHelper(MacroAssembler* masm) { |
// Leave internal frame. |
} |
- __ Daddu(sp, sp, Operand(kStackSize * kPointerSize)); |
- __ Jump(ra); |
+ __ jr(ra); |
+ __ Daddu(sp, sp, Operand(kStackSize * kPointerSize)); // In delay slot. |
} |