[lld] r182427 - [lld][ELF] Inline header files into the one file using it

Shankar Easwaran shankare at codeaurora.org
Tue May 21 14:47:33 PDT 2013


Author: shankare
Date: Tue May 21 16:47:33 2013
New Revision: 182427

URL: http://llvm.org/viewvc/llvm-project?rev=182427&view=rev
Log:
[lld][ELF] Inline header files into the one file using it

Removed:
    lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicAtoms.h
    lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicAtoms.h
Modified:
    lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
    lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetInfo.cpp

Removed: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicAtoms.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicAtoms.h?rev=182426&view=auto
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicAtoms.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicAtoms.h (removed)
@@ -1,107 +0,0 @@
-//===- lib/ReaderWriter/ELF/Hexagon/HexagonDynamicAtoms.h -----------------===//
-//
-//                             The LLVM Linker
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLD_READER_WRITER_ELF_HEXAGON_DYNAMIC_ATOMS_H
-#define LLD_READER_WRITER_ELF_HEXAGON_DYNAMIC_ATOMS_H
-
-#include "Atoms.h"
-#include "HexagonTargetInfo.h"
-
-/// \brief Specify various atom contents that are used by Hexagon dynamic
-/// linking
-namespace {
-// .got atom
-const uint8_t hexagonGotAtomContent[4] = { 0 };
-// .got.plt atom (entry 0)
-const uint8_t hexagonGotPlt0AtomContent[16] = { 0 };
-// .got.plt atom (all other entries)
-const uint8_t hexagonGotPltAtomContent[4] = { 0 };
-// .plt (entry 0)
-const uint8_t hexagonPlt0AtomContent[28] = {
-  0x00, 0x40, 0x00, 0x00, // { immext (#0)
-  0x1c, 0xc0, 0x49, 0x6a, //   r28 = add (pc, ##GOT0 at PCREL) } # address of GOT0
-  0x0e, 0x42, 0x9c, 0xe2, // { r14 -= add (r28, #16)  # offset of GOTn from GOTa
-  0x4f, 0x40, 0x9c, 0x91, //   r15 = memw (r28 + #8)  # object ID at GOT2
-  0x3c, 0xc0, 0x9c, 0x91, //   r28 = memw (r28 + #4) }# dynamic link at GOT1
-  0x0e, 0x42, 0x0e, 0x8c, // { r14 = asr (r14, #2)    # index of PLTn
-  0x00, 0xc0, 0x9c, 0x52, //   jumpr r28 }            # call dynamic linker
-};
-
-// .plt (other entries)
-const uint8_t hexagonPltAtomContent[16] = {
-  0x00, 0x40, 0x00, 0x00, // { immext (#0)
-  0x0e, 0xc0, 0x49, 0x6a, //   r14 = add (pc, ##GOTn at PCREL) } # address of GOTn
-  0x1c, 0xc0, 0x8e, 0x91, // r28 = memw (r14)                 # contents of GOTn
-  0x00, 0xc0, 0x9c, 0x52, // jumpr r28                        # call it
-};
-}
-
-namespace lld {
-namespace elf {
-
-class HexagonGOTAtom : public GOTAtom {
-public:
-  HexagonGOTAtom(const File &f) : GOTAtom(f, ".got") {}
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(hexagonGotAtomContent, 4);
-  }
-
-  virtual Alignment alignment() const { return Alignment(2); }
-};
-
-class HexagonGOTPLTAtom : public GOTAtom {
-public:
-  HexagonGOTPLTAtom(const File &f) : GOTAtom(f, ".got.plt") {}
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(hexagonGotPltAtomContent, 4);
-  }
-
-  virtual Alignment alignment() const { return Alignment(2); }
-};
-
-class HexagonGOTPLT0Atom : public GOTAtom {
-public:
-  HexagonGOTPLT0Atom(const File &f) : GOTAtom(f, ".got.plt") {}
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(hexagonGotPlt0AtomContent, 16);
-  }
-
-  virtual Alignment alignment() const { return Alignment(3); }
-};
-
-class HexagonPLT0Atom : public PLT0Atom {
-public:
-  HexagonPLT0Atom(const File &f) : PLT0Atom(f) {
-#ifndef NDEBUG
-    _name = ".PLT0";
-#endif
-  }
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(hexagonPlt0AtomContent, 28);
-  }
-};
-
-class HexagonPLTAtom : public PLTAtom {
-
-public:
-  HexagonPLTAtom(const File &f, StringRef secName) : PLTAtom(f, secName) {}
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(hexagonPltAtomContent, 16);
-  }
-};
-
-} // elf
-} // lld
-
-#endif // LLD_READER_WRITER_ELF_HEXAGON_DYNAMIC_ATOMS_H

Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp?rev=182427&r1=182426&r2=182427&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp Tue May 21 16:47:33 2013
@@ -7,7 +7,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "HexagonDynamicAtoms.h"
 #include "HexagonTargetHandler.h"
 #include "HexagonTargetInfo.h"
 
@@ -25,6 +24,87 @@ namespace {
 
 using namespace llvm::ELF;
 
+// .got atom
+const uint8_t hexagonGotAtomContent[4] = { 0 };
+// .got.plt atom (entry 0)
+const uint8_t hexagonGotPlt0AtomContent[16] = { 0 };
+// .got.plt atom (all other entries)
+const uint8_t hexagonGotPltAtomContent[4] = { 0 };
+// .plt (entry 0)
+const uint8_t hexagonPlt0AtomContent[28] = {
+  0x00, 0x40, 0x00, 0x00, // { immext (#0)
+  0x1c, 0xc0, 0x49, 0x6a, //   r28 = add (pc, ##GOT0 at PCREL) } # address of GOT0
+  0x0e, 0x42, 0x9c, 0xe2, // { r14 -= add (r28, #16)  # offset of GOTn from GOTa
+  0x4f, 0x40, 0x9c, 0x91, //   r15 = memw (r28 + #8)  # object ID at GOT2
+  0x3c, 0xc0, 0x9c, 0x91, //   r28 = memw (r28 + #4) }# dynamic link at GOT1
+  0x0e, 0x42, 0x0e, 0x8c, // { r14 = asr (r14, #2)    # index of PLTn
+  0x00, 0xc0, 0x9c, 0x52, //   jumpr r28 }            # call dynamic linker
+};
+
+// .plt (other entries)
+const uint8_t hexagonPltAtomContent[16] = {
+  0x00, 0x40, 0x00, 0x00, // { immext (#0)
+  0x0e, 0xc0, 0x49, 0x6a, //   r14 = add (pc, ##GOTn at PCREL) } # address of GOTn
+  0x1c, 0xc0, 0x8e, 0x91, // r28 = memw (r14)                 # contents of GOTn
+  0x00, 0xc0, 0x9c, 0x52, // jumpr r28                        # call it
+};
+
+class HexagonGOTAtom : public GOTAtom {
+public:
+  HexagonGOTAtom(const File &f) : GOTAtom(f, ".got") {}
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(hexagonGotAtomContent, 4);
+  }
+
+  virtual Alignment alignment() const { return Alignment(2); }
+};
+
+class HexagonGOTPLTAtom : public GOTAtom {
+public:
+  HexagonGOTPLTAtom(const File &f) : GOTAtom(f, ".got.plt") {}
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(hexagonGotPltAtomContent, 4);
+  }
+
+  virtual Alignment alignment() const { return Alignment(2); }
+};
+
+class HexagonGOTPLT0Atom : public GOTAtom {
+public:
+  HexagonGOTPLT0Atom(const File &f) : GOTAtom(f, ".got.plt") {}
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(hexagonGotPlt0AtomContent, 16);
+  }
+
+  virtual Alignment alignment() const { return Alignment(3); }
+};
+
+class HexagonPLT0Atom : public PLT0Atom {
+public:
+  HexagonPLT0Atom(const File &f) : PLT0Atom(f) {
+#ifndef NDEBUG
+    _name = ".PLT0";
+#endif
+  }
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(hexagonPlt0AtomContent, 28);
+  }
+};
+
+class HexagonPLTAtom : public PLTAtom {
+
+public:
+  HexagonPLTAtom(const File &f, StringRef secName) : PLTAtom(f, secName) {}
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(hexagonPltAtomContent, 16);
+  }
+};
+
 class ELFPassFile : public SimpleFile {
 public:
   ELFPassFile(const ELFTargetInfo &eti) : SimpleFile(eti, "ELFPassFile") {}

Removed: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicAtoms.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicAtoms.h?rev=182426&view=auto
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicAtoms.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicAtoms.h (removed)
@@ -1,73 +0,0 @@
-//===- lib/ReaderWriter/ELF/X86_64/X86_64DynamicAtoms.h -------------------===//
-//
-//                             The LLVM Linker
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef X86_64_DYNAMIC_ATOMS_H
-#define X86_64_DYNAMIC_ATOMS_H
-
-#include "Atoms.h"
-#include "X86_64TargetInfo.h"
-
-/// \brief Specify various atom contents that are used by X86_64 dynamic
-/// linking
-namespace {
-// .got values
-const uint8_t x86_64GotAtomContent[8] = { 0 };
-
-// .plt value (entry 0)
-const uint8_t x86_64Plt0AtomContent[16] = {
-  0xff, 0x35, 0x00, 0x00, 0x00, 0x00, // pushq GOT+8(%rip)
-  0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // jmp *GOT+16(%rip)
-  0x90, 0x90, 0x90, 0x90              // nopnopnop
-};
-
-// .plt values (other entries)
-const uint8_t x86_64PltAtomContent[16] = {
-  0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // jmpq *gotatom(%rip)
-  0x68, 0x00, 0x00, 0x00, 0x00,       // pushq reloc-index
-  0xe9, 0x00, 0x00, 0x00, 0x00        // jmpq plt[-1]
-};
-}
-
-namespace lld {
-namespace elf {
-
-class X86_64GOTAtom : public GOTAtom {
-public:
-  X86_64GOTAtom(const File &f, StringRef secName) : GOTAtom(f, secName) {}
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(x86_64GotAtomContent, 8);
-  }
-};
-
-class X86_64PLT0Atom : public PLT0Atom {
-public:
-  X86_64PLT0Atom(const File &f) : PLT0Atom(f) {
-#ifndef NDEBUG
-    _name = ".PLT0";
-#endif
-  }
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(x86_64Plt0AtomContent, 16);
-  }
-};
-
-class X86_64PLTAtom : public PLTAtom {
-public:
-  X86_64PLTAtom(const File &f, StringRef secName) : PLTAtom(f, secName) {}
-
-  virtual ArrayRef<uint8_t> rawContent() const {
-    return ArrayRef<uint8_t>(x86_64PltAtomContent, 16);
-  }
-};
-
-} // elf
-} // lld
-
-#endif

Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetInfo.cpp?rev=182427&r1=182426&r2=182427&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetInfo.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetInfo.cpp Tue May 21 16:47:33 2013
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "X86_64DynamicAtoms.h"
+#include "Atoms.h"
 #include "X86_64TargetInfo.h"
 
 #include "lld/Core/File.h"
@@ -25,6 +25,54 @@ using namespace lld::elf;
 namespace {
 using namespace llvm::ELF;
 
+// .got values
+const uint8_t x86_64GotAtomContent[8] = { 0 };
+
+// .plt value (entry 0)
+const uint8_t x86_64Plt0AtomContent[16] = {
+  0xff, 0x35, 0x00, 0x00, 0x00, 0x00, // pushq GOT+8(%rip)
+  0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // jmp *GOT+16(%rip)
+  0x90, 0x90, 0x90, 0x90              // nopnopnop
+};
+
+// .plt values (other entries)
+const uint8_t x86_64PltAtomContent[16] = {
+  0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // jmpq *gotatom(%rip)
+  0x68, 0x00, 0x00, 0x00, 0x00,       // pushq reloc-index
+  0xe9, 0x00, 0x00, 0x00, 0x00        // jmpq plt[-1]
+};
+
+/// \brief Atoms that are used by X86_64 dynamic linking
+class X86_64GOTAtom : public GOTAtom {
+public:
+  X86_64GOTAtom(const File &f, StringRef secName) : GOTAtom(f, secName) {}
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(x86_64GotAtomContent, 8);
+  }
+};
+
+class X86_64PLT0Atom : public PLT0Atom {
+public:
+  X86_64PLT0Atom(const File &f) : PLT0Atom(f) {
+#ifndef NDEBUG
+    _name = ".PLT0";
+#endif
+  }
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(x86_64Plt0AtomContent, 16);
+  }
+};
+
+class X86_64PLTAtom : public PLTAtom {
+public:
+  X86_64PLTAtom(const File &f, StringRef secName) : PLTAtom(f, secName) {}
+
+  virtual ArrayRef<uint8_t> rawContent() const {
+    return ArrayRef<uint8_t>(x86_64PltAtomContent, 16);
+  }
+};
+
 class ELFPassFile : public SimpleFile {
 public:
   ELFPassFile(const ELFTargetInfo &eti) : SimpleFile(eti, "ELFPassFile") {}





More information about the llvm-commits mailing list