diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2012-05-09 14:10:30 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-09 15:32:10 +0200 |
commit | b7a4c77c17d51ca7f3b87cbce506c26b71bd3b18 (patch) | |
tree | ea679fd638ae82924d17ba7a1ce8dff30d13ae5e | |
parent | 6bac66c6889974e6ce6f0bba2d069873f794c90c (diff) | |
download | qtjsbackend-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.cc | 8 |
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)); |