| Index: src/mips/stub-cache-mips.cc
|
| diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc
|
| index f8cf9704b1049d4efe812cc8f4036c016d3e366b..af2437af9a5815ad96693e19efebf8537ae2874a 100644
|
| --- a/src/mips/stub-cache-mips.cc
|
| +++ b/src/mips/stub-cache-mips.cc
|
| @@ -3695,7 +3695,7 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray(
|
| __ li(t0, 0x7ff);
|
| __ Xor(t1, t5, Operand(0xFF));
|
| __ Movz(t5, t0, t1); // Set t5 to 0x7ff only if t5 is equal to 0xff.
|
| - __ Branch(&exponent_rebiased, eq, t0, Operand(0xff));
|
| + __ Branch(&exponent_rebiased, eq, t1, Operand(zero_reg));
|
|
|
| // Rebias exponent.
|
| __ Addu(t5,
|
| @@ -3995,7 +3995,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
|
| __ xor_(t1, t6, t5);
|
| __ li(t2, kBinary32ExponentMask);
|
| __ Movz(t6, t2, t1); // Only if t6 is equal to t5.
|
| - __ Branch(&nan_or_infinity_or_zero, eq, t6, Operand(t5));
|
| + __ Branch(&nan_or_infinity_or_zero, eq, t1, Operand(zero_reg));
|
|
|
| // Rebias exponent.
|
| __ srl(t6, t6, HeapNumber::kExponentShift);
|
| @@ -4026,7 +4026,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
|
|
|
| __ bind(&done);
|
| __ sll(t9, key, 1);
|
| - __ addu(t9, a2, t9);
|
| + __ addu(t9, a3, t9);
|
| __ sw(t3, MemOperand(t9, 0));
|
|
|
| // Entry registers are intact, a0 holds the value which is the return
|
| @@ -4044,7 +4044,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
|
| __ or_(t3, t6, t4);
|
| __ Branch(&done);
|
| } else if (elements_kind == EXTERNAL_DOUBLE_ELEMENTS) {
|
| - __ sll(t8, t0, 3);
|
| + __ sll(t8, key, 2);
|
| __ addu(t8, a3, t8);
|
| // t8: effective address of destination element.
|
| __ sw(t4, MemOperand(t8, 0));
|
|
|