Index: src/ic/mips64/ic-compiler-mips64.cc |
diff --git a/src/ic/mips64/ic-compiler-mips64.cc b/src/ic/mips64/ic-compiler-mips64.cc |
index 3c6eecc270d4754549d4501637dc7e72a7385747..796ed87f7e53ee902a46d9ab6d7d35c24db12846 100644 |
--- a/src/ic/mips64/ic-compiler-mips64.cc |
+++ b/src/ic/mips64/ic-compiler-mips64.cc |
@@ -27,7 +27,11 @@ Handle<Code> PropertyICCompiler::CompilePolymorphic(TypeHandleList* types, |
// In case we are compiling an IC for dictionary loads and stores, just |
// check whether the name is unique. |
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) { |
- __ JumpIfNotUniqueName(this->name(), &miss); |
+ Register tmp = scratch1(); |
+ __ JumpIfSmi(this->name(), &miss); |
+ __ ld(tmp, FieldMemOperand(this->name(), HeapObject::kMapOffset)); |
+ __ lbu(tmp, FieldMemOperand(tmp, Map::kInstanceTypeOffset)); |
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss); |
} else { |
__ Branch(&miss, ne, this->name(), Operand(name)); |
} |