diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-05 18:21:00 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-05 18:21:00 +0000 |
commit | b20fbb8b15881e1bc6167b5590e0d68d7b076598 (patch) | |
tree | cc91e8a2701ec407034ed9f2cd0cea9ba22be43a /llvm/lib | |
parent | 29e03929444e29822eb7cfe64609c6abc9c36b74 (diff) | |
download | bcm5719-llvm-b20fbb8b15881e1bc6167b5590e0d68d7b076598.tar.gz bcm5719-llvm-b20fbb8b15881e1bc6167b5590e0d68d7b076598.zip |
Refactor padding writing into a helper function.
llvm-svn: 239174
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 554c299cdb3..0765937d0ea 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -133,6 +133,8 @@ class ELFObjectWriter : public MCObjectWriter { return TargetObjectWriter->GetRelocType(Target, Fixup, IsPCRel); } + void align(unsigned Alignment); + public: ELFObjectWriter(MCELFObjectTargetWriter *MOTW, raw_pwrite_stream &OS, bool IsLittleEndian) @@ -231,6 +233,11 @@ class ELFObjectWriter : public MCObjectWriter { }; } +void ELFObjectWriter::align(unsigned Alignment) { + uint64_t Padding = OffsetToAlignment(OS.tell(), Alignment); + WriteZeros(Padding); +} + unsigned ELFObjectWriter::addToSectionTable(const MCSectionELF *Sec) { SectionTable.push_back(Sec); StrTabBuilder.add(Sec->getSectionName()); @@ -758,10 +765,7 @@ void ELFObjectWriter::computeSymbolTable( SymtabSection->setAlignment(is64Bit() ? 8 : 4); SymbolTableIndex = addToSectionTable(SymtabSection); - uint64_t Padding = - OffsetToAlignment(OS.tell(), SymtabSection->getAlignment()); - WriteZeros(Padding); - + align(SymtabSection->getAlignment()); uint64_t SecStart = OS.tell(); // The first entry is the undefined symbol entry. @@ -1196,8 +1200,7 @@ void ELFObjectWriter::writeObject(MCAssembler &Asm, for (MCSection &Sec : Asm) { MCSectionELF &Section = static_cast<MCSectionELF &>(Sec); - uint64_t Padding = OffsetToAlignment(OS.tell(), Section.getAlignment()); - WriteZeros(Padding); + align(Section.getAlignment()); // Remember the offset into the file for this section. uint64_t SecStart = OS.tell(); @@ -1234,8 +1237,7 @@ void ELFObjectWriter::writeObject(MCAssembler &Asm, } for (MCSectionELF *Group : Groups) { - uint64_t Padding = OffsetToAlignment(OS.tell(), Group->getAlignment()); - WriteZeros(Padding); + align(Group->getAlignment()); // Remember the offset into the file for this section. uint64_t SecStart = OS.tell(); @@ -1256,8 +1258,7 @@ void ELFObjectWriter::writeObject(MCAssembler &Asm, computeSymbolTable(Asm, Layout, SectionIndexMap, RevGroupMap, SectionOffsets); for (MCSectionELF *RelSection : Relocations) { - uint64_t Padding = OffsetToAlignment(OS.tell(), RelSection->getAlignment()); - WriteZeros(Padding); + align(RelSection->getAlignment()); // Remember the offset into the file for this section. uint64_t SecStart = OS.tell(); @@ -1276,8 +1277,7 @@ void ELFObjectWriter::writeObject(MCAssembler &Asm, } uint64_t NaturalAlignment = is64Bit() ? 8 : 4; - uint64_t Padding = OffsetToAlignment(OS.tell(), NaturalAlignment); - WriteZeros(Padding); + align(NaturalAlignment); const unsigned SectionHeaderOffset = OS.tell(); |