diff options
Diffstat (limited to 'lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp')
-rw-r--r-- | lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp b/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp index 26d715cf2953..dc45efc390fd 100644 --- a/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp +++ b/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp @@ -14,15 +14,26 @@ #include "llvm/Support/ErrorOr.h" using namespace lld; +using namespace lld::elf; std::unique_ptr<ELFLinkingContext> -elf::X86LinkingContext::create(llvm::Triple triple) { +elf::createX86LinkingContext(llvm::Triple triple) { if (triple.getArch() == llvm::Triple::x86) - return std::unique_ptr<ELFLinkingContext>( - new elf::X86LinkingContext(triple)); + return llvm::make_unique<X86LinkingContext>(triple); return nullptr; } -elf::X86LinkingContext::X86LinkingContext(llvm::Triple triple) - : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>( - new X86TargetHandler(*this))) {} +X86LinkingContext::X86LinkingContext(llvm::Triple triple) + : ELFLinkingContext(triple, llvm::make_unique<X86TargetHandler>(*this)) {} + +static const Registry::KindStrings kindStrings[] = { +#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name), +#include "llvm/Support/ELFRelocs/i386.def" +#undef ELF_RELOC + LLD_KIND_STRING_END +}; + +void X86LinkingContext::registerRelocationNames(Registry ®istry) { + registry.addKindTable(Reference::KindNamespace::ELF, Reference::KindArch::x86, + kindStrings); +} |