| Index: src/x64/code-stubs-x64.cc
|
| diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc
|
| index ae2d92158dd75cfc89366a37afd9f57c750725aa..da1d740ed5a1bd88900007db93a30512134f976c 100644
|
| --- a/src/x64/code-stubs-x64.cc
|
| +++ b/src/x64/code-stubs-x64.cc
|
| @@ -3718,14 +3718,16 @@ void CompareICStub::GenerateObjects(MacroAssembler* masm) {
|
|
|
| void CompareICStub::GenerateKnownObjects(MacroAssembler* masm) {
|
| Label miss;
|
| + Handle<WeakCell> cell = Map::WeakCellForMap(known_map_);
|
| Condition either_smi = masm->CheckEitherSmi(rdx, rax);
|
| __ j(either_smi, &miss, Label::kNear);
|
|
|
| + __ GetWeakValue(rdi, cell);
|
| __ movp(rcx, FieldOperand(rax, HeapObject::kMapOffset));
|
| __ movp(rbx, FieldOperand(rdx, HeapObject::kMapOffset));
|
| - __ Cmp(rcx, known_map_);
|
| + __ cmpp(rcx, rdi);
|
| __ j(not_equal, &miss, Label::kNear);
|
| - __ Cmp(rbx, known_map_);
|
| + __ cmpp(rbx, rdi);
|
| __ j(not_equal, &miss, Label::kNear);
|
|
|
| __ subp(rax, rdx);
|
|
|