| Index: src/code-stub-assembler.cc
|
| diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
|
| index 8838bc55870cd262573b304aeb951428cd0bda08..02e6a347acce8b0dc1a6bbe9841955f2493f858b 100644
|
| --- a/src/code-stub-assembler.cc
|
| +++ b/src/code-stub-assembler.cc
|
| @@ -6887,23 +6887,23 @@ void CodeStubAssembler::TrapAllocationMemento(Node* object,
|
|
|
| Node* new_space_top_address = ExternalConstant(
|
| ExternalReference::new_space_allocation_top_address(isolate()));
|
| - const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
|
| + const int kMementoMapOffset = JSArray::kSize;
|
| const int kMementoLastWordOffset =
|
| kMementoMapOffset + AllocationMemento::kSize - kPointerSize;
|
|
|
| // Bail out if the object is not in new space.
|
| Node* object_page = PageFromAddress(object);
|
| {
|
| - const int mask =
|
| - (1 << MemoryChunk::IN_FROM_SPACE) | (1 << MemoryChunk::IN_TO_SPACE);
|
| - Node* page_flags = Load(MachineType::IntPtr(), object_page);
|
| - GotoIf(
|
| - WordEqual(WordAnd(page_flags, IntPtrConstant(mask)), IntPtrConstant(0)),
|
| - &no_memento_found);
|
| + Node* page_flags = Load(MachineType::IntPtr(), object_page,
|
| + IntPtrConstant(Page::kFlagsOffset));
|
| + GotoIf(WordEqual(WordAnd(page_flags,
|
| + IntPtrConstant(MemoryChunk::kIsInNewSpaceMask)),
|
| + IntPtrConstant(0)),
|
| + &no_memento_found);
|
| }
|
|
|
| - Node* memento_last_word =
|
| - IntPtrAdd(object, IntPtrConstant(kMementoLastWordOffset));
|
| + Node* memento_last_word = IntPtrAdd(
|
| + object, IntPtrConstant(kMementoLastWordOffset - kHeapObjectTag));
|
| Node* memento_last_word_page = PageFromAddress(memento_last_word);
|
|
|
| Node* new_space_top = Load(MachineType::Pointer(), new_space_top_address);
|
|
|