| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index d8b65663e854cd0228e7b321fda9928057f3e098..1667ee4ddc6b739f8e1cdfc7e8ad88fcb8e43985 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -1563,19 +1563,27 @@ void MacroAssembler::Branch(Label* L, Condition cond, Register rs,
|
| if (is_near(L)) {
|
| BranchShort(L, cond, rs, rt, bdslot);
|
| } else {
|
| - Label skip;
|
| - Condition neg_cond = NegateCondition(cond);
|
| - BranchShort(&skip, neg_cond, rs, rt);
|
| - Jr(L, bdslot);
|
| - bind(&skip);
|
| + if (cond != cc_always) {
|
| + Label skip;
|
| + Condition neg_cond = NegateCondition(cond);
|
| + BranchShort(&skip, neg_cond, rs, rt);
|
| + Jr(L, bdslot);
|
| + bind(&skip);
|
| + } else {
|
| + Jr(L, bdslot);
|
| + }
|
| }
|
| } else {
|
| if (is_trampoline_emitted()) {
|
| - Label skip;
|
| - Condition neg_cond = NegateCondition(cond);
|
| - BranchShort(&skip, neg_cond, rs, rt);
|
| - Jr(L, bdslot);
|
| - bind(&skip);
|
| + if (cond != cc_always) {
|
| + Label skip;
|
| + Condition neg_cond = NegateCondition(cond);
|
| + BranchShort(&skip, neg_cond, rs, rt);
|
| + Jr(L, bdslot);
|
| + bind(&skip);
|
| + } else {
|
| + Jr(L, bdslot);
|
| + }
|
| } else {
|
| BranchShort(L, cond, rs, rt, bdslot);
|
| }
|
| @@ -3431,10 +3439,9 @@ void MacroAssembler::StoreNumberToDoubleElements(Register value_reg,
|
| Branch(&have_double_value, eq, mantissa_reg, Operand(zero_reg));
|
| bind(&is_nan);
|
| // Load canonical NaN for storing into the double array.
|
| - uint64_t nan_int64 = BitCast<uint64_t>(
|
| - FixedDoubleArray::canonical_not_the_hole_nan_as_double());
|
| - li(mantissa_reg, Operand(static_cast<uint32_t>(nan_int64)));
|
| - li(exponent_reg, Operand(static_cast<uint32_t>(nan_int64 >> 32)));
|
| + LoadRoot(at, Heap::kNanValueRootIndex);
|
| + lw(mantissa_reg, FieldMemOperand(at, HeapNumber::kMantissaOffset));
|
| + lw(exponent_reg, FieldMemOperand(at, HeapNumber::kExponentOffset));
|
| jmp(&have_double_value);
|
|
|
| bind(&smi_value);
|
|
|