| Index: src/heap/heap.cc
|
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc
|
| index ff9cc5b46b4cf1be4cb8eb636021ef1b00922d64..9e684927a86b862372c3d9a47b6c48bdfee11a02 100644
|
| --- a/src/heap/heap.cc
|
| +++ b/src/heap/heap.cc
|
| @@ -1995,6 +1995,8 @@ int Heap::GetMaximumFillToAlign(AllocationAlignment alignment) {
|
| case kDoubleAligned:
|
| case kDoubleUnaligned:
|
| return kDoubleSize - kPointerSize;
|
| + case kSimd128Unaligned:
|
| + return kSimd128Size - kPointerSize;
|
| default:
|
| UNREACHABLE();
|
| }
|
| @@ -2008,6 +2010,10 @@ int Heap::GetFillToAlign(Address address, AllocationAlignment alignment) {
|
| return kPointerSize;
|
| if (alignment == kDoubleUnaligned && (offset & kDoubleAlignmentMask) == 0)
|
| return kDoubleSize - kPointerSize; // No fill if double is always aligned.
|
| + if (alignment == kSimd128Unaligned) {
|
| + return (kSimd128Size - (static_cast<int>(offset) + kPointerSize)) &
|
| + kSimd128AlignmentMask;
|
| + }
|
| return 0;
|
| }
|
|
|
|
|