mips: Fix the global compare routines for mips
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>
Wed, 9 May 2012 12:10:30 +0000 (14:10 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 9 May 2012 13:32:10 +0000 (15:32 +0200)
The code got broken during the 3.10.1 upgrade. Registers a2 and a3
will hold the maps for a0 and a1. Use the right registers to fetch
the map fields.

Change-Id: I8678ddd1e6126cca6c80dc811b08a5c1b933cb35
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
src/3rdparty/v8/src/mips/code-stubs-mips.cc

index 381d193..4f67061 100644 (file)
@@ -7062,12 +7062,16 @@ void ICCompareStub::GenerateKnownObjects(MacroAssembler* masm) {
   __ JumpIfSmi(a2, &miss);
   __ lw(a2, FieldMemOperand(a0, HeapObject::kMapOffset));
   __ lw(a3, FieldMemOperand(a1, HeapObject::kMapOffset));
+
+  // Check object in a0
   __ Branch(&miss, ne, a2, Operand(known_map_));
-  __ lbu(a2, FieldMemOperand(a0, Map::kBitField2Offset));
+  __ lbu(a2, FieldMemOperand(a2, Map::kBitField2Offset));
   __ And(a2, a2, Operand(1 << Map::kUseUserObjectComparison));
   __ Branch(&miss, eq, a2, Operand(1 << Map::kUseUserObjectComparison));
+
+  // Check object in a1
   __ Branch(&miss, ne, a3, Operand(known_map_));
-  __ lbu(a3, FieldMemOperand(a1, Map::kBitField2Offset));
+  __ lbu(a3, FieldMemOperand(a3, Map::kBitField2Offset));
   __ And(a3, a3, Operand(1 << Map::kUseUserObjectComparison));
   __ Branch(&miss, eq, a3, Operand(1 << Map::kUseUserObjectComparison));