diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-10 15:33:44 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-10 15:33:44 +0000 |
commit | 641c9bcfd53837e80c942d44e99f57756d54de8e (patch) | |
tree | e1f0d7166549d75525ef0747f0a1c096945b18ca /llvm/lib/Object/MachOObjectFile.cpp | |
parent | 6cd7cc7e303ec727237f798f29b5a5970da3b8c8 (diff) | |
download | bcm5719-llvm-641c9bcfd53837e80c942d44e99f57756d54de8e.tar.gz bcm5719-llvm-641c9bcfd53837e80c942d44e99f57756d54de8e.zip |
Template MachOObjectFile over endianness too.
llvm-svn: 179179
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/MachOObjectFile.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 33c63b0f896..f4df8e012cf 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -35,7 +35,7 @@ MachOObjectFileBase::MachOObjectFileBase(MemoryBuffer *Object, bool Is64bits, } bool MachOObjectFileBase::is64Bit() const { - return isa<MachOObjectFile<true> >(this); + return isa<MachOObjectFile64Le>(this); } const MachOObjectFileBase::LoadCommand * @@ -86,9 +86,9 @@ ObjectFile *ObjectFile::createMachOObjectFile(MemoryBuffer *Buffer) { bool Is64Bits = Magic == "\xFE\xED\xFA\xCF" || Magic == "\xCF\xFA\xED\xFE"; ObjectFile *Ret; if (Is64Bits) - Ret = new MachOObjectFile<true>(Buffer, ec); + Ret = new MachOObjectFile64Le(Buffer, ec); else - Ret = new MachOObjectFile<false>(Buffer, ec); + Ret = new MachOObjectFile32Le(Buffer, ec); if (ec) return NULL; return Ret; @@ -127,8 +127,8 @@ MachOObjectFileBase::getSymbolTableEntryBase(DataRefImpl DRI, unsigned Index = DRI.d.b; unsigned SymbolTableEntrySize = is64Bit() ? - sizeof(MachOObjectFile<true>::SymbolTableEntry) : - sizeof(MachOObjectFile<false>::SymbolTableEntry); + sizeof(MachOObjectFile64Le::SymbolTableEntry) : + sizeof(MachOObjectFile32Le::SymbolTableEntry); uint64_t Offset = SymbolTableOffset + Index * SymbolTableEntrySize; StringRef Data = getData(Offset, SymbolTableEntrySize); @@ -314,10 +314,10 @@ MachOObjectFileBase::getSectionBase(DataRefImpl DRI) const { bool Is64 = is64Bit(); unsigned SegmentLoadSize = - Is64 ? sizeof(MachOObjectFile<true>::SegmentLoadCommand) : - sizeof(MachOObjectFile<false>::SegmentLoadCommand); - unsigned SectionSize = Is64 ? sizeof(MachOObjectFile<true>::Section) : - sizeof(MachOObjectFile<false>::Section); + Is64 ? sizeof(MachOObjectFile64Le::SegmentLoadCommand) : + sizeof(MachOObjectFile32Le::SegmentLoadCommand); + unsigned SectionSize = Is64 ? sizeof(MachOObjectFile64Le::Section) : + sizeof(MachOObjectFile32Le::Section); uintptr_t SectionAddr = CommandAddr + SegmentLoadSize + DRI.d.b * SectionSize; return reinterpret_cast<const SectionBase*>(SectionAddr); |