Index: src/mips/code-stubs-mips.cc |
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc |
index 00d9c3c3f23234c9c0e6193f4d54a8a66e600969..b0b3272a19384499bf7287a1bf8c724ebe770e69 100644 |
--- a/src/mips/code-stubs-mips.cc |
+++ b/src/mips/code-stubs-mips.cc |
@@ -3856,12 +3856,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(t0, cell); |
__ lw(a2, FieldMemOperand(a0, HeapObject::kMapOffset)); |
__ lw(a3, FieldMemOperand(a1, HeapObject::kMapOffset)); |
- __ Branch(&miss, ne, a2, Operand(known_map_)); |
- __ Branch(&miss, ne, a3, Operand(known_map_)); |
+ __ Branch(&miss, ne, a2, Operand(t0)); |
+ __ Branch(&miss, ne, a3, Operand(t0)); |
__ Ret(USE_DELAY_SLOT); |
__ subu(v0, a0, a1); |