Reviewers: danno, Paul Lind,

Description:
MIPS: Fixed wrong register usage in
StringDictionaryLookupStub::GenerateNegativeLookup.

This fixes a lot of test failures triggered by r9834, for example
mjsunit/const-redecl.js.

BUG=
TEST=


Please review this at http://codereview.chromium.org/8417050/

Affected files:
  M src/mips/code-stubs-mips.cc


Index: src/mips/code-stubs-mips.cc
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
index 16461ec7d7f6726efeddad9587ceab9bc5f36d18..02e1cc7c075062dd95f40c426715098821dfc015 100644
--- a/src/mips/code-stubs-mips.cc
+++ b/src/mips/code-stubs-mips.cc
@@ -6979,8 +6979,8 @@ void StringDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm,
     // Having undefined at this place means the name is not contained.
     ASSERT_EQ(kSmiTagSize, 1);
     Register tmp = properties;
-    __ sll(tmp, index, 1);
-    __ Addu(tmp, properties, tmp);
+    __ sll(scratch0, index, 1);
+    __ Addu(tmp, properties, scratch0);
     __ lw(entity_name, FieldMemOperand(tmp, kElementsStartOffset));

     ASSERT(!tmp.is(entity_name));
@@ -6995,8 +6995,8 @@ void StringDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm, __ lw(entity_name, FieldMemOperand(entity_name, HeapObject::kMapOffset));
       __ lbu(entity_name,
              FieldMemOperand(entity_name, Map::kInstanceTypeOffset));
-      __ And(tmp, entity_name, Operand(kIsSymbolMask));
-      __ Branch(miss, eq, tmp, Operand(zero_reg));
+      __ And(scratch0, entity_name, Operand(kIsSymbolMask));
+      __ Branch(miss, eq, scratch0, Operand(zero_reg));

       // Restore the properties.
       __ lw(properties,


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to