Lines Matching refs:Alignment
172 size_t Alignment, in getRequiredBackingSize() argument
174 assert(isPowerOfTwo(Alignment) && "Alignment must be a power of two!"); in getRequiredBackingSize()
175 assert(Alignment != 0 && "Alignment should be non-zero"); in getRequiredBackingSize()
178 if (Alignment <= PageSize) in getRequiredBackingSize()
181 return Size + Alignment - PageSize; in getRequiredBackingSize()
184 uintptr_t GuardedPoolAllocator::alignUp(uintptr_t Ptr, size_t Alignment) { in alignUp() argument
185 assert(isPowerOfTwo(Alignment) && "Alignment must be a power of two!"); in alignUp()
186 assert(Alignment != 0 && "Alignment should be non-zero"); in alignUp()
187 if ((Ptr & (Alignment - 1)) == 0) in alignUp()
190 Ptr += Alignment - (Ptr & (Alignment - 1)); in alignUp()
194 uintptr_t GuardedPoolAllocator::alignDown(uintptr_t Ptr, size_t Alignment) { in alignDown() argument
195 assert(isPowerOfTwo(Alignment) && "Alignment must be a power of two!"); in alignDown()
196 assert(Alignment != 0 && "Alignment should be non-zero"); in alignDown()
197 if ((Ptr & (Alignment - 1)) == 0) in alignDown()
200 Ptr -= Ptr & (Alignment - 1); in alignDown()
204 void *GuardedPoolAllocator::allocate(size_t Size, size_t Alignment) { in allocate() argument
216 if (Alignment == 0) in allocate()
217 Alignment = alignof(max_align_t); in allocate()
219 if (!isPowerOfTwo(Alignment) || Alignment > State.maximumAllocationSize() || in allocate()
223 size_t BackingSize = getRequiredBackingSize(Size, Alignment, State.PageSize); in allocate()
248 UserPtr = alignUp(SlotStart, Alignment); in allocate()
250 UserPtr = alignDown(SlotEnd - Size, Alignment); in allocate()