summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2012-05-09 14:10:30 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-09 15:32:10 +0200
commitb7a4c77c17d51ca7f3b87cbce506c26b71bd3b18 (patch)
treeea679fd638ae82924d17ba7a1ce8dff30d13ae5e
parent6bac66c6889974e6ce6f0bba2d069873f794c90c (diff)
downloadqtjsbackend-b7a4c77c17d51ca7f3b87cbce506c26b71bd3b18.tar.gz
mips: Fix the global compare routines for mips
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>
-rw-r--r--src/3rdparty/v8/src/mips/code-stubs-mips.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/3rdparty/v8/src/mips/code-stubs-mips.cc b/src/3rdparty/v8/src/mips/code-stubs-mips.cc
index 381d193..4f67061 100644
--- a/src/3rdparty/v8/src/mips/code-stubs-mips.cc
+++ b/src/3rdparty/v8/src/mips/code-stubs-mips.cc
@@ -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));