summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2013-08-06 22:31:59 +0000
committerRui Ueyama <ruiu@google.com>2013-08-06 22:31:59 +0000
commit0ca149fce901456eca05ac5244a816303974db03 (patch)
treed10916d0f49f34b6533c73c11e9b52b91ab98b68 /lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp
parent6fea779c2965b233425c9d4a6e7ff745ddd62b4e (diff)
downloadbcm5719-llvm-0ca149fce901456eca05ac5244a816303974db03.tar.gz
bcm5719-llvm-0ca149fce901456eca05ac5244a816303974db03.zip
Rename TargetInfo -> LinkingContext.
Also change some local variable names: "ti" -> "context" and "_targetInfo" -> "_context". Differential Revision: http://llvm-reviews.chandlerc.com/D1301 llvm-svn: 187823
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp')
-rw-r--r--lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp b/lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp
new file mode 100644
index 00000000000..4700cf80f08
--- /dev/null
+++ b/lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp
@@ -0,0 +1,36 @@
+#include "X86LinkingContext.h"
+
+#include "lld/Core/LLVM.h"
+
+#include "llvm/ADT/StringSwitch.h"
+#include "llvm/Support/ErrorOr.h"
+
+using namespace lld;
+
+#define LLD_CASE(name) .Case(#name, llvm::ELF::name)
+
+ErrorOr<Reference::Kind>
+elf::X86LinkingContext::relocKindFromString(StringRef str) const {
+ int32_t ret = llvm::StringSwitch<int32_t>(str) LLD_CASE(R_386_NONE)
+ LLD_CASE(R_386_PC32).Default(-1);
+
+ if (ret == -1)
+ return make_error_code(yaml_reader_error::illegal_value);
+ return ret;
+}
+
+#undef LLD_CASE
+
+#define LLD_CASE(name) \
+ case llvm::ELF::name: \
+ return std::string(#name);
+
+ErrorOr<std::string>
+elf::X86LinkingContext::stringFromRelocKind(Reference::Kind kind) const {
+ switch (kind) {
+ LLD_CASE(R_386_NONE)
+ LLD_CASE(R_386_PC32)
+ }
+
+ return make_error_code(yaml_reader_error::illegal_value);
+}
OpenPOWER on IntegriCloud