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; |
} |