Lines Matching refs:Alignment
161 size_t Alignment, in getRequiredBackingSize() argument
163 assert(isPowerOfTwo(Alignment) && "Alignment must be a power of two!"); in getRequiredBackingSize()
164 assert(Alignment != 0 && "Alignment should be non-zero"); in getRequiredBackingSize()
167 if (Alignment <= PageSize) in getRequiredBackingSize()
170 return Size + Alignment - PageSize; in getRequiredBackingSize()
173 uintptr_t GuardedPoolAllocator::alignUp(uintptr_t Ptr, size_t Alignment) { in alignUp() argument
174 assert(isPowerOfTwo(Alignment) && "Alignment must be a power of two!"); in alignUp()
175 assert(Alignment != 0 && "Alignment should be non-zero"); in alignUp()
176 if ((Ptr & (Alignment - 1)) == 0) in alignUp()
179 Ptr += Alignment - (Ptr & (Alignment - 1)); in alignUp()
183 uintptr_t GuardedPoolAllocator::alignDown(uintptr_t Ptr, size_t Alignment) { in alignDown() argument
184 assert(isPowerOfTwo(Alignment) && "Alignment must be a power of two!"); in alignDown()
185 assert(Alignment != 0 && "Alignment should be non-zero"); in alignDown()
186 if ((Ptr & (Alignment - 1)) == 0) in alignDown()
189 Ptr -= Ptr & (Alignment - 1); in alignDown()
193 void *GuardedPoolAllocator::allocate(size_t Size, size_t Alignment) { in allocate() argument
205 if (Alignment == 0) in allocate()
206 Alignment = alignof(max_align_t); in allocate()
208 if (!isPowerOfTwo(Alignment) || Alignment > State.maximumAllocationSize() || in allocate()
212 size_t BackingSize = getRequiredBackingSize(Size, Alignment, State.PageSize); in allocate()
237 UserPtr = alignUp(SlotStart, Alignment); in allocate()
239 UserPtr = alignDown(SlotEnd - Size, Alignment); in allocate()