[lld] r174276 - [ELF] Use LLVM_IS_UNALIGNED_ACCESS_FAST.

Michael J. Spencer bigcheesegs at gmail.com
Sun Feb 3 02:49:57 PST 2013


Author: mspencer
Date: Sun Feb  3 04:49:57 2013
New Revision: 174276

URL: http://llvm.org/viewvc/llvm-project?rev=174276&view=rev
Log:
[ELF] Use LLVM_IS_UNALIGNED_ACCESS_FAST.

Modified:
    lld/trunk/lib/ReaderWriter/ELF/Reader.cpp

Modified: lld/trunk/lib/ReaderWriter/ELF/Reader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Reader.cpp?rev=174276&r1=174275&r2=174276&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Reader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Reader.cpp Sun Feb  3 04:49:57 2013
@@ -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





More information about the llvm-commits mailing list