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)); |