X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FObject%2FELFObjectFile.cpp;h=15bc6be0b46e7971dc3b7b60ac2f98010cbdf3a3;hb=daa4c91647ae5abfc55bd1425ecf146680ca7bd1;hp=160053dabd87cd0b690fb9e7132243660e9cb74a;hpb=ac97f5ce486d1ca2967607028eacddd860aaddd0;p=oota-llvm.git diff --git a/lib/Object/ELFObjectFile.cpp b/lib/Object/ELFObjectFile.cpp index 160053dabd8..15bc6be0b46 100644 --- a/lib/Object/ELFObjectFile.cpp +++ b/lib/Object/ELFObjectFile.cpp @@ -11,11 +11,10 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Object/ELF.h" +#include "llvm/Object/ELFObjectFile.h" #include "llvm/Support/MathExtras.h" namespace llvm { - using namespace object; // Creates an in-memory object-file by default: createELFObjectFile(Buffer) @@ -24,33 +23,45 @@ ObjectFile *ObjectFile::createELFObjectFile(MemoryBuffer *Object) { error_code ec; std::size_t MaxAlignment = - 1ULL << CountTrailingZeros_64(uintptr_t(Object->getBufferStart())); + 1ULL << countTrailingZeros(uintptr_t(Object->getBufferStart())); if (Ident.first == ELF::ELFCLASS32 && Ident.second == ELF::ELFDATA2LSB) +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 4) return new ELFObjectFile >(Object, ec); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) return new ELFObjectFile >(Object, ec); else llvm_unreachable("Invalid alignment for ELF file!"); else if (Ident.first == ELF::ELFCLASS32 && Ident.second == ELF::ELFDATA2MSB) +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 4) return new ELFObjectFile >(Object, ec); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) return new ELFObjectFile >(Object, ec); else llvm_unreachable("Invalid alignment for ELF file!"); else if (Ident.first == ELF::ELFCLASS64 && Ident.second == ELF::ELFDATA2MSB) +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 8) return new ELFObjectFile >(Object, ec); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) return new ELFObjectFile >(Object, ec); else llvm_unreachable("Invalid alignment for ELF file!"); else if (Ident.first == ELF::ELFCLASS64 && Ident.second == ELF::ELFDATA2LSB) { +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 8) return new ELFObjectFile >(Object, ec); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) return new ELFObjectFile >(Object, ec); else llvm_unreachable("Invalid alignment for ELF file!");