Index: src/mips64/code-stubs-mips64.cc |
diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc |
index 05bf5f152618ee315de6ff246c8654da3e650d55..efb1fd17df696cb387dac989639de554d209e561 100644 |
--- a/src/mips64/code-stubs-mips64.cc |
+++ b/src/mips64/code-stubs-mips64.cc |
@@ -3895,12 +3895,14 @@ void CompareICStub::GenerateObjects(MacroAssembler* masm) { |
void CompareICStub::GenerateKnownObjects(MacroAssembler* masm) { |
Label miss; |
+ Handle<WeakCell> cell = Map::WeakCellForMap(known_map_); |
__ And(a2, a1, a0); |
__ JumpIfSmi(a2, &miss); |
+ __ GetWeakValue(a4, cell); |
__ ld(a2, FieldMemOperand(a0, HeapObject::kMapOffset)); |
__ ld(a3, FieldMemOperand(a1, HeapObject::kMapOffset)); |
- __ Branch(&miss, ne, a2, Operand(known_map_)); |
- __ Branch(&miss, ne, a3, Operand(known_map_)); |
+ __ Branch(&miss, ne, a2, Operand(a4)); |
+ __ Branch(&miss, ne, a3, Operand(a4)); |
__ Ret(USE_DELAY_SLOT); |
__ dsubu(v0, a0, a1); |