X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FObject%2FELFObjectFile.cpp;h=85057fce167d3356c68e9b08aeba072496057f7f;hb=55804a089e7ac26d5a07a9ac38e5dcedad3f2754;hp=160053dabd87cd0b690fb9e7132243660e9cb74a;hpb=ac97f5ce486d1ca2967607028eacddd860aaddd0;p=oota-llvm.git diff --git a/lib/Object/ELFObjectFile.cpp b/lib/Object/ELFObjectFile.cpp index 160053dabd8..85057fce167 100644 --- a/lib/Object/ELFObjectFile.cpp +++ b/lib/Object/ELFObjectFile.cpp @@ -24,33 +24,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!");