summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/Reader.cpp
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2013-02-03 10:49:57 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2013-02-03 10:49:57 +0000
commit7b7e8edb865616f11bf3217d8f0ba6f099acc715 (patch)
tree2440f566f7193f3e7e05b543db50c89e7931e9a1 /lld/lib/ReaderWriter/ELF/Reader.cpp
parent7e813242af81fee175842f5d19f6daf632c17796 (diff)
downloadbcm5719-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.cpp20
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
OpenPOWER on IntegriCloud