diff options
| author | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-02-03 10:49:57 +0000 |
|---|---|---|
| committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-02-03 10:49:57 +0000 |
| commit | 7b7e8edb865616f11bf3217d8f0ba6f099acc715 (patch) | |
| tree | 2440f566f7193f3e7e05b543db50c89e7931e9a1 /lld/lib/ReaderWriter/ELF/Reader.cpp | |
| parent | 7e813242af81fee175842f5d19f6daf632c17796 (diff) | |
| download | bcm5719-llvm-7b7e8edb865616f11bf3217d8f0ba6f099acc715.tar.gz bcm5719-llvm-7b7e8edb865616f11bf3217d8f0ba6f099acc715.zip | |
[ELF] Use LLVM_IS_UNALIGNED_ACCESS_FAST.
llvm-svn: 174276
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Reader.cpp')
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/Reader.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Reader.cpp b/lld/lib/ReaderWriter/ELF/Reader.cpp index 9ab57df6cef..8a95cede9b6 100644 --- a/lld/lib/ReaderWriter/ELF/Reader.cpp +++ b/lld/lib/ReaderWriter/ELF/Reader.cpp @@ -76,40 +76,52 @@ public: // already created during parser's life. if (Ident.first == llvm::ELF::ELFCLASS32 && Ident.second == llvm::ELF::ELFDATA2LSB) { +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 4) f.reset(new ELFFile<ELFType<llvm::support::little, 4, false> >( _elfTargetInfo, std::move(mb), ec)); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) f.reset(new ELFFile<ELFType<llvm::support::little, 2, false> >( _elfTargetInfo, std::move(mb), ec)); else llvm_unreachable("Invalid alignment for ELF file!"); } else if (Ident.first == llvm::ELF::ELFCLASS32 && Ident.second == llvm::ELF::ELFDATA2MSB) { +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 4) f.reset(new ELFFile<ELFType<llvm::support::big, 4, false> >( _elfTargetInfo, std::move(mb), ec)); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) f.reset(new ELFFile<ELFType<llvm::support::big, 2, false> >( _elfTargetInfo, std::move(mb), ec)); else llvm_unreachable("Invalid alignment for ELF file!"); } else if (Ident.first == llvm::ELF::ELFCLASS64 && Ident.second == llvm::ELF::ELFDATA2MSB) { +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 8) f.reset(new ELFFile<ELFType<llvm::support::big, 8, true> >( _elfTargetInfo, std::move(mb), ec)); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) f.reset(new ELFFile<ELFType<llvm::support::big, 2, true> >( _elfTargetInfo, std::move(mb), ec)); else llvm_unreachable("Invalid alignment for ELF file!"); } else if (Ident.first == llvm::ELF::ELFCLASS64 && Ident.second == llvm::ELF::ELFDATA2LSB) { +#if !LLVM_IS_UNALIGNED_ACCESS_FAST if (MaxAlignment >= 8) f.reset(new ELFFile<ELFType<llvm::support::little, 8, true> >( _elfTargetInfo, std::move(mb), ec)); - else if (MaxAlignment >= 2) + else +#endif + if (MaxAlignment >= 2) f.reset(new ELFFile<ELFType<llvm::support::little, 2, true> >( _elfTargetInfo, std::move(mb), ec)); else |

