Index: src/crankshaft/mips64/lithium-codegen-mips64.cc |
diff --git a/src/crankshaft/mips64/lithium-codegen-mips64.cc b/src/crankshaft/mips64/lithium-codegen-mips64.cc |
index daa7367f87fd4ee23b3783b0f995daeedfe0bd9a..ea3a062e3561d9eff67c4edde31d456ebe2e3714 100644 |
--- a/src/crankshaft/mips64/lithium-codegen-mips64.cc |
+++ b/src/crankshaft/mips64/lithium-codegen-mips64.cc |
@@ -3165,7 +3165,7 @@ void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) { |
if (instr->hydrogen()->from_inlined()) { |
__ Dsubu(result, sp, 2 * kPointerSize); |
- } else { |
+ } else if (instr->hydrogen()->arguments_adaptor()) { |
// Check if the calling frame is an arguments adaptor frame. |
Label done, adapted; |
__ ld(scratch, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |
@@ -3177,6 +3177,8 @@ void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) { |
// frame below the adaptor frame if adapted. |
__ Movn(result, fp, temp); // Move only if temp is not equal to zero (ne). |
__ Movz(result, scratch, temp); // Move only if temp is equal to zero (eq). |
+ } else { |
+ __ mov(result, fp); |
} |
} |