summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/PECOFF/Pass.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2014-02-26 02:38:40 +0000
committerRui Ueyama <ruiu@google.com>2014-02-26 02:38:40 +0000
commitaaf2816d59b4d36d99706a5086ed998ed073e73c (patch)
tree41eccf8f59c6aa344f092626be9c248c81ec655f /lld/lib/ReaderWriter/PECOFF/Pass.cpp
parent3bb8b56a5d90c535e7dc466f924d00ce798c28e0 (diff)
downloadbcm5719-llvm-aaf2816d59b4d36d99706a5086ed998ed073e73c.tar.gz
bcm5719-llvm-aaf2816d59b4d36d99706a5086ed998ed073e73c.zip
[PECOFF] Add a utility function to add DIR32 relocation.
llvm-svn: 202217
Diffstat (limited to 'lld/lib/ReaderWriter/PECOFF/Pass.cpp')
-rw-r--r--lld/lib/ReaderWriter/PECOFF/Pass.cpp17
1 files changed, 13 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
-
OpenPOWER on IntegriCloud