diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2015-05-26 08:48:33 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2015-05-26 08:48:33 +0000 |
commit | b48abf5dac71cb5e782fd5058f61d28e26cced81 (patch) | |
tree | 7716757cf4c07fe577b70499b5739fe258add98b | |
parent | 9af978195458682d681901a952c9a87a8646fa68 (diff) | |
download | bcm5719-llvm-b48abf5dac71cb5e782fd5058f61d28e26cced81.tar.gz bcm5719-llvm-b48abf5dac71cb5e782fd5058f61d28e26cced81.zip |
[Mips] Use structures declared in the llvm/Object/ELFTypes.h
No functional changes.
llvm-svn: 238189
-rw-r--r-- | lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h | 9 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/ELF/Mips/MipsReginfo.h | 41 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h | 16 |
3 files changed, 13 insertions, 53 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h b/lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h index 46850c4da16..eb37c8eee51 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h @@ -159,7 +159,7 @@ private: _dtpOff = sec->sh_addr + DTP_OFFSET; } - typedef llvm::object::Elf_RegInfo<ELFT> Elf_RegInfo; + typedef llvm::object::Elf_Mips_RegInfo<ELFT> Elf_Mips_RegInfo; typedef llvm::object::Elf_Mips_Options<ELFT> Elf_Mips_Options; auto &ctx = static_cast<MipsLinkingContext &>(this->_ctx); @@ -178,7 +178,7 @@ private: const auto *opt = reinterpret_cast<const Elf_Mips_Options *>(raw.data()); if (opt->kind == ODK_REGINFO) { - const Elf_RegInfo ®Info = opt->getRegInfoDesc(); + const Elf_Mips_RegInfo ®Info = opt->getRegInfo(); ctx.mergeReginfoMask(regInfo); _gp0 = regInfo.ri_gp_value; break; @@ -191,11 +191,12 @@ private: return ec; ArrayRef<uint8_t> raw = contents.get(); - if (raw.size() != sizeof(Elf_RegInfo)) + if (raw.size() != sizeof(Elf_Mips_RegInfo)) return make_dynamic_error_code( StringRef("Invalid size of MIPS_REGINFO section")); - const auto *regInfo = reinterpret_cast<const Elf_RegInfo *>(raw.data()); + const auto *regInfo = + reinterpret_cast<const Elf_Mips_RegInfo *>(raw.data()); ctx.mergeReginfoMask(*regInfo); _gp0 = regInfo->ri_gp_value; } diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsReginfo.h b/lld/lib/ReaderWriter/ELF/Mips/MipsReginfo.h index dd0cf3c0ebd..83d8bd306c4 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsReginfo.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsReginfo.h @@ -11,47 +11,6 @@ #include "llvm/Object/ELFTypes.h" -namespace llvm { -namespace object { - -template <class ELFT> -struct Elf_RegInfo; - -template <llvm::support::endianness TargetEndianness, std::size_t MaxAlign> -struct Elf_RegInfo<ELFType<TargetEndianness, MaxAlign, false>> { - LLVM_ELF_IMPORT_TYPES(TargetEndianness, MaxAlign, false) - Elf_Word ri_gprmask; // bit-mask of used general registers - Elf_Word ri_cprmask[4]; // bit-mask of used co-processor registers - Elf_Addr ri_gp_value; // gp register value -}; - -template <llvm::support::endianness TargetEndianness, std::size_t MaxAlign> -struct Elf_RegInfo<ELFType<TargetEndianness, MaxAlign, true>> { - LLVM_ELF_IMPORT_TYPES(TargetEndianness, MaxAlign, true) - Elf_Word ri_gprmask; // bit-mask of used general registers - Elf_Word ri_pad; // unused padding field - Elf_Word ri_cprmask[4]; // bit-mask of used co-processor registers - Elf_Addr ri_gp_value; // gp register value -}; - -template <class ELFT> struct Elf_Mips_Options { - LLVM_ELF_IMPORT_TYPES_ELFT(ELFT) - uint8_t kind; // Determines interpretation of variable part of descriptor - uint8_t size; // Byte size of descriptor, including this header - Elf_Half section; // Section header index of section affected, - // or 0 for global options - Elf_Word info; // Kind-specific information - - const Elf_RegInfo<ELFT> &getRegInfoDesc() const { - assert(kind == llvm::ELF::ODK_REGINFO); - return *reinterpret_cast<const Elf_RegInfo<ELFT> *>( - (const uint8_t *)this + sizeof(Elf_Mips_Options)); - } -}; - -} // end namespace object. -} // end namespace llvm. - namespace lld { namespace elf { diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h b/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h index 3b5134511ef..d0bdcb68520 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h @@ -27,9 +27,9 @@ public: : Section<ELFT>(ctx, ".reginfo", "MipsReginfo"), _targetLayout(targetLayout) { this->setOrder(MipsTargetLayout<ELFT>::ORDER_MIPS_REGINFO); - this->_entSize = sizeof(Elf_RegInfo); - this->_fsize = sizeof(Elf_RegInfo); - this->_msize = sizeof(Elf_RegInfo); + this->_entSize = sizeof(Elf_Mips_RegInfo); + this->_fsize = sizeof(Elf_Mips_RegInfo); + this->_msize = sizeof(Elf_Mips_RegInfo); this->_alignment = 4; this->_type = SHT_MIPS_REGINFO; this->_flags = SHF_ALLOC; @@ -60,9 +60,9 @@ public: } private: - typedef llvm::object::Elf_RegInfo<ELFT> Elf_RegInfo; + typedef llvm::object::Elf_Mips_RegInfo<ELFT> Elf_Mips_RegInfo; - Elf_RegInfo _reginfo; + Elf_Mips_RegInfo _reginfo; MipsTargetLayout<ELFT> &_targetLayout; }; @@ -80,7 +80,7 @@ public: this->_entSize = 1; this->_alignment = 8; this->_fsize = llvm::RoundUpToAlignment( - sizeof(Elf_Mips_Options) + sizeof(Elf_RegInfo), this->_alignment); + sizeof(Elf_Mips_Options) + sizeof(Elf_Mips_RegInfo), this->_alignment); this->_msize = this->_fsize; this->_type = SHT_MIPS_OPTIONS; this->_flags = SHF_ALLOC | SHF_MIPS_NOSTRIP; @@ -117,10 +117,10 @@ public: private: typedef llvm::object::Elf_Mips_Options<ELFT> Elf_Mips_Options; - typedef llvm::object::Elf_RegInfo<ELFT> Elf_RegInfo; + typedef llvm::object::Elf_Mips_RegInfo<ELFT> Elf_Mips_RegInfo; Elf_Mips_Options _header; - Elf_RegInfo _reginfo; + Elf_Mips_RegInfo _reginfo; MipsTargetLayout<ELFT> &_targetLayout; }; |