diff options
Diffstat (limited to 'lld/lib/ReaderWriter/ELF')
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h | 2 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h | 2 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp | 4 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/SegmentChunks.cpp | 29 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/TargetLayout.cpp | 2 |
5 files changed, 18 insertions, 21 deletions
diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h b/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h index c0ecbfa9e44..4f28972bd81 100644 --- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h +++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h @@ -40,7 +40,7 @@ public: std::call_once(_tpOffOnce, [this]() { for (const auto &phdr : *_programHeader) { if (phdr->p_type == llvm::ELF::PT_TLS) { - _tpOff = llvm::RoundUpToAlignment(TCB_SIZE, phdr->p_align); + _tpOff = llvm::alignTo(TCB_SIZE, phdr->p_align); break; } } diff --git a/lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h b/lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h index 0352e81a1f6..32caaf9b961 100644 --- a/lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h +++ b/lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h @@ -122,7 +122,7 @@ public: std::call_once(_tpOffOnce, [this]() { for (const auto &phdr : *_programHeader) { if (phdr->p_type == llvm::ELF::PT_TLS) { - _tpOff = llvm::RoundUpToAlignment(TCB_SIZE, phdr->p_align); + _tpOff = llvm::alignTo(TCB_SIZE, phdr->p_align); break; } } diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp b/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp index 98cc059787e..8f494256ac2 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp @@ -58,7 +58,7 @@ MipsOptionsSection<ELFT>::MipsOptionsSection( this->setOrder(MipsTargetLayout<ELFT>::ORDER_MIPS_OPTIONS); this->_entSize = 1; this->_alignment = 8; - this->_fsize = llvm::RoundUpToAlignment( + this->_fsize = llvm::alignTo( sizeof(Elf_Mips_Options) + sizeof(Elf_Mips_RegInfo), this->_alignment); this->_msize = this->_fsize; this->_type = SHT_MIPS_OPTIONS; @@ -100,7 +100,7 @@ MipsAbiFlagsSection<ELFT>::MipsAbiFlagsSection( _targetLayout(targetLayout) { this->setOrder(MipsTargetLayout<ELFT>::ORDER_MIPS_ABI_FLAGS); this->_alignment = 8; - this->_fsize = llvm::RoundUpToAlignment(sizeof(_abiFlags), this->_alignment); + this->_fsize = llvm::alignTo(sizeof(_abiFlags), this->_alignment); this->_msize = this->_fsize; this->_entSize = this->_fsize; this->_type = SHT_MIPS_ABIFLAGS; diff --git a/lld/lib/ReaderWriter/ELF/SegmentChunks.cpp b/lld/lib/ReaderWriter/ELF/SegmentChunks.cpp index 99449f7d45a..36a39b2f1f9 100644 --- a/lld/lib/ReaderWriter/ELF/SegmentChunks.cpp +++ b/lld/lib/ReaderWriter/ELF/SegmentChunks.cpp @@ -156,7 +156,7 @@ void Segment<ELFT>::assignFileOffsets(uint64_t startOffset) { fileOffset = newOffset; } // Align fileoffset to the alignment of the section. - fileOffset = llvm::RoundUpToAlignment(fileOffset, section->alignment()); + fileOffset = llvm::alignTo(fileOffset, section->alignment()); // If the linker outputmagic is set to OutputMagic::NMAGIC, align the Data // to a page boundary if (isFirstSection && @@ -165,18 +165,17 @@ void Segment<ELFT>::assignFileOffsets(uint64_t startOffset) { // Align to a page only if the output is not // OutputMagic::NMAGIC/OutputMagic::OMAGIC if (alignSegments) - fileOffset = llvm::RoundUpToAlignment(fileOffset, p_align); + fileOffset = llvm::alignTo(fileOffset, p_align); // Align according to ELF spec. // in p75, http://www.sco.com/developers/devspecs/gabi41.pdf uint64_t virtualAddress = slice->virtualAddr(); Section<ELFT> *sect = dyn_cast<Section<ELFT>>(section); if (sect && sect->isLoadableSection() && ((virtualAddress & (p_align - 1)) != (fileOffset & (p_align - 1)))) - fileOffset = llvm::RoundUpToAlignment(fileOffset, p_align) + - (virtualAddress % p_align); + fileOffset = + llvm::alignTo(fileOffset, p_align) + (virtualAddress % p_align); } else if (!isDataPageAlignedForNMagic && needAlign(section)) { - fileOffset = - llvm::RoundUpToAlignment(fileOffset, this->_ctx.getPageSize()); + fileOffset = llvm::alignTo(fileOffset, this->_ctx.getPageSize()); isDataPageAlignedForNMagic = true; } if (isFirstSection) { @@ -228,15 +227,15 @@ template <class ELFT> void Segment<ELFT>::assignVirtualAddress(uint64_t addr) { _outputMagic != ELFLinkingContext::OutputMagic::OMAGIC) { // Align to a page only if the output is not // OutputMagic::NMAGIC/OutputMagic::OMAGIC - startAddr = llvm::RoundUpToAlignment(startAddr, this->_ctx.getPageSize()); + startAddr = llvm::alignTo(startAddr, this->_ctx.getPageSize()); } else if (needAlign(*si)) { // If the linker outputmagic is set to OutputMagic::NMAGIC, align the // Data to a page boundary. - startAddr = llvm::RoundUpToAlignment(startAddr, this->_ctx.getPageSize()); + startAddr = llvm::alignTo(startAddr, this->_ctx.getPageSize()); isDataPageAlignedForNMagic = true; } // align the startOffset to the section alignment - uint64_t newAddr = llvm::RoundUpToAlignment(startAddr, (*si)->alignment()); + uint64_t newAddr = llvm::alignTo(startAddr, (*si)->alignment()); // Handle linker script expressions, which *may update newAddr* if the // expression assigns to "." if (auto expr = dyn_cast<ExpressionChunk<ELFT>>(*si)) @@ -248,8 +247,7 @@ template <class ELFT> void Segment<ELFT>::assignVirtualAddress(uint64_t addr) { // Handle TLS. if (auto section = dyn_cast<Section<ELFT>>(*si)) { if (section->getSegmentType() == llvm::ELF::PT_TLS) { - tlsStartAddr = - llvm::RoundUpToAlignment(tlsStartAddr, (*si)->alignment()); + tlsStartAddr = llvm::alignTo(tlsStartAddr, (*si)->alignment()); section->assignVirtualAddress(tlsStartAddr); tlsStartAddr += (*si)->memSize(); } else { @@ -278,11 +276,11 @@ template <class ELFT> void Segment<ELFT>::assignVirtualAddress(uint64_t addr) { // If the linker outputmagic is set to OutputMagic::NMAGIC, align the // Data // to a page boundary - curAddr = llvm::RoundUpToAlignment(curAddr, this->_ctx.getPageSize()); + curAddr = llvm::alignTo(curAddr, this->_ctx.getPageSize()); isDataPageAlignedForNMagic = true; } - uint64_t newAddr = llvm::RoundUpToAlignment( - forceScriptAddr ? scriptAddr : curAddr, (*si)->alignment()); + uint64_t newAddr = llvm::alignTo(forceScriptAddr ? scriptAddr : curAddr, + (*si)->alignment()); forceScriptAddr = false; // Handle linker script expressions, which may force an address change if @@ -347,8 +345,7 @@ template <class ELFT> void Segment<ELFT>::assignVirtualAddress(uint64_t addr) { // Handle TLS. if (auto section = dyn_cast<Section<ELFT>>(*si)) { if (section->getSegmentType() == llvm::ELF::PT_TLS) { - tlsStartAddr = - llvm::RoundUpToAlignment(tlsStartAddr, (*si)->alignment()); + tlsStartAddr = llvm::alignTo(tlsStartAddr, (*si)->alignment()); section->assignVirtualAddress(tlsStartAddr); tlsStartAddr += (*si)->memSize(); } else { diff --git a/lld/lib/ReaderWriter/ELF/TargetLayout.cpp b/lld/lib/ReaderWriter/ELF/TargetLayout.cpp index 09c49f62d64..9fb46bc599c 100644 --- a/lld/lib/ReaderWriter/ELF/TargetLayout.cpp +++ b/lld/lib/ReaderWriter/ELF/TargetLayout.cpp @@ -616,7 +616,7 @@ void TargetLayout<ELFT>::assignFileOffsetsForMiscSections() { section = dyn_cast<Section<ELFT>>(si); if (section && TargetLayout<ELFT>::hasOutputSegment(section)) continue; - fileoffset = llvm::RoundUpToAlignment(fileoffset, si->alignment()); + fileoffset = llvm::alignTo(fileoffset, si->alignment()); si->setFileOffset(fileoffset); si->setVirtualAddr(0); fileoffset += si->fileSize(); |

