| Index: src/arm64/macro-assembler-arm64.cc
 | 
| diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
 | 
| index a53090aa2e799b8d513919936831e48f9419dfc7..bc7a2817fa87a3075eee79024ba9926d1aba4e7b 100644
 | 
| --- a/src/arm64/macro-assembler-arm64.cc
 | 
| +++ b/src/arm64/macro-assembler-arm64.cc
 | 
| @@ -1532,11 +1532,12 @@ void MacroAssembler::TestJSArrayForAllocationMemento(Register receiver,
 | 
|    ExternalReference new_space_allocation_top_adr =
 | 
|        ExternalReference::new_space_allocation_top_address(isolate());
 | 
|    const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
 | 
| -  const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
 | 
| +  const int kMementoLastWordOffset =
 | 
| +      kMementoMapOffset + AllocationMemento::kSize - kPointerSize;
 | 
|  
 | 
|    // Bail out if the object is not in new space.
 | 
|    JumpIfNotInNewSpace(receiver, no_memento_found);
 | 
| -  Add(scratch1, receiver, kMementoEndOffset);
 | 
| +  Add(scratch1, receiver, kMementoLastWordOffset);
 | 
|    // If the object is in new space, we need to check whether it is on the same
 | 
|    // page as the current top.
 | 
|    Mov(scratch2, new_space_allocation_top_adr);
 | 
| @@ -1558,7 +1559,7 @@ void MacroAssembler::TestJSArrayForAllocationMemento(Register receiver,
 | 
|    Mov(scratch2, new_space_allocation_top_adr);
 | 
|    Ldr(scratch2, MemOperand(scratch2));
 | 
|    Cmp(scratch1, scratch2);
 | 
| -  B(gt, no_memento_found);
 | 
| +  B(ge, no_memento_found);
 | 
|    // Memento map check.
 | 
|    bind(&map_check);
 | 
|    Ldr(scratch1, MemOperand(receiver, kMementoMapOffset));
 | 
| 
 |