diff options
author | Rui Ueyama <ruiu@google.com> | 2014-02-26 02:38:40 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2014-02-26 02:38:40 +0000 |
commit | aaf2816d59b4d36d99706a5086ed998ed073e73c (patch) | |
tree | 41eccf8f59c6aa344f092626be9c248c81ec655f | |
parent | 3bb8b56a5d90c535e7dc466f924d00ce798c28e0 (diff) | |
download | bcm5719-llvm-aaf2816d59b4d36d99706a5086ed998ed073e73c.tar.gz bcm5719-llvm-aaf2816d59b4d36d99706a5086ed998ed073e73c.zip |
[PECOFF] Add a utility function to add DIR32 relocation.
llvm-svn: 202217
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/Pass.cpp | 17 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/Pass.h | 3 |
2 files changed, 16 insertions, 4 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/Pass.cpp b/lld/lib/ReaderWriter/PECOFF/Pass.cpp index da6aa51544a..ed4880e4f4b 100644 --- a/lld/lib/ReaderWriter/PECOFF/Pass.cpp +++ b/lld/lib/ReaderWriter/PECOFF/Pass.cpp @@ -16,13 +16,22 @@ namespace lld { namespace pecoff { +static void addReloc(COFFBaseDefinedAtom *atom, const Atom *target, + size_t offsetInAtom, Reference::KindValue relType) { + std::unique_ptr<COFFReference> ref( + new COFFReference(target, offsetInAtom, relType)); + atom->addReference(std::move(ref)); +} + +void addDir32Reloc(COFFBaseDefinedAtom *atom, const Atom *target, + size_t offsetInAtom) { + addReloc(atom, target, offsetInAtom, llvm::COFF::IMAGE_REL_I386_DIR32); +} + void addDir32NBReloc(COFFBaseDefinedAtom *atom, const Atom *target, size_t offsetInAtom) { - std::unique_ptr<COFFReference> ref(new COFFReference( - target, offsetInAtom, llvm::COFF::IMAGE_REL_I386_DIR32NB)); - atom->addReference(std::move(ref)); + addReloc(atom, target, offsetInAtom, llvm::COFF::IMAGE_REL_I386_DIR32NB); } } // end namespace pecoff } // end namespace lld - diff --git a/lld/lib/ReaderWriter/PECOFF/Pass.h b/lld/lib/ReaderWriter/PECOFF/Pass.h index 348a73ed268..b75c9e9837f 100644 --- a/lld/lib/ReaderWriter/PECOFF/Pass.h +++ b/lld/lib/ReaderWriter/PECOFF/Pass.h @@ -15,6 +15,9 @@ namespace lld { namespace pecoff { +void addDir32Reloc(COFFBaseDefinedAtom *atom, const Atom *target, + size_t offsetInAtom = 0); + void addDir32NBReloc(COFFBaseDefinedAtom *atom, const Atom *target, size_t offsetInAtom = 0); |