Index: src/mips64/code-stubs-mips64.cc |
diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc |
index 567e0933d963f6eadecb72d96d0e129c0f136432..c251fc297f1a5c7617f4b540d3dadd1b5081dae4 100644 |
--- a/src/mips64/code-stubs-mips64.cc |
+++ b/src/mips64/code-stubs-mips64.cc |
@@ -1961,10 +1961,13 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { |
__ bind(&adaptor_frame); |
__ ld(a1, MemOperand(a2, ArgumentsAdaptorFrameConstants::kLengthOffset)); |
if (has_new_target()) { |
+ Label skip_decrement; |
+ __ Branch(&skip_decrement, eq, a1, Operand(Smi::FromInt(0))); |
// Subtract 1 from smi-tagged arguments count. |
__ SmiUntag(a1); |
__ Daddu(a1, a1, Operand(-1)); |
__ SmiTag(a1); |
+ __ bind(&skip_decrement); |
} |
__ sd(a1, MemOperand(sp, 0)); |
__ SmiScale(at, a1, kPointerSizeLog2); |