Index: src/mips64/full-codegen-mips64.cc |
diff --git a/src/mips64/full-codegen-mips64.cc b/src/mips64/full-codegen-mips64.cc |
index 0aae037325bf757817bb46785556cfb6ee93f110..73572b1637265f912cd1e38e73eaf00152bd6655 100644 |
--- a/src/mips64/full-codegen-mips64.cc |
+++ b/src/mips64/full-codegen-mips64.cc |
@@ -2918,13 +2918,16 @@ void FullCodeGenerator::EmitCall(Call* expr, CallICState::CallType call_type) { |
void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) { |
- // a6: copy of the first argument or undefined if it doesn't exist. |
+ // a7: copy of the first argument or undefined if it doesn't exist. |
if (arg_count > 0) { |
- __ ld(a6, MemOperand(sp, arg_count * kPointerSize)); |
+ __ ld(a7, MemOperand(sp, arg_count * kPointerSize)); |
} else { |
- __ LoadRoot(a6, Heap::kUndefinedValueRootIndex); |
+ __ LoadRoot(a7, Heap::kUndefinedValueRootIndex); |
} |
+ // a6: the receiver of the enclosing function. |
+ __ ld(a6, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
+ |
// a5: the receiver of the enclosing function. |
int receiver_offset = 2 + info_->scope()->num_parameters(); |
__ ld(a5, MemOperand(fp, receiver_offset * kPointerSize)); |
@@ -2936,8 +2939,9 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) { |
__ li(a1, Operand(Smi::FromInt(scope()->start_position()))); |
// Do the runtime call. |
+ __ Push(a7); |
__ Push(a6, a5, a4, a1); |
- __ CallRuntime(Runtime::kResolvePossiblyDirectEval, 5); |
+ __ CallRuntime(Runtime::kResolvePossiblyDirectEval, 6); |
} |