diff options
| author | Sid Manning <sidneym@codeaurora.org> | 2012-10-25 17:53:04 +0000 |
|---|---|---|
| committer | Sid Manning <sidneym@codeaurora.org> | 2012-10-25 17:53:04 +0000 |
| commit | 823e8bb7beff0296ad6b1cb1df76f8cbcbbb175e (patch) | |
| tree | c9d20dc178a2d0ee0225365e6e90ebad25327642 /lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp | |
| parent | 8fe3a6bda46d5f36a409d5203f05ea8e99602eee (diff) | |
| download | bcm5719-llvm-823e8bb7beff0296ad6b1cb1df76f8cbcbbb175e.tar.gz bcm5719-llvm-823e8bb7beff0296ad6b1cb1df76f8cbcbbb175e.zip | |
This patch changes the following:
* Use conventional naming for KindHandlers.
* Add X86 relocation routines.
* Use std::function instead of function pointers in _fixupHandler map.
* Change _fixupHandler map from std::map to llvm::DenseMap.
* Add simple testcase for x86 relocations.
llvm-svn: 166700
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp')
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp | 56 |
1 files changed, 3 insertions, 53 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp b/lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp index 06d97325e54..175c43aceb6 100644 --- a/lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp +++ b/lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp @@ -32,66 +32,16 @@ std::unique_ptr<KindHandler> KindHandler::makeHandler(uint16_t arch, llvm::support::endianness endian) { switch(arch) { case llvm::ELF::EM_HEXAGON: - return std::unique_ptr<KindHandler>(new KindHandler_hexagon()); + return std::unique_ptr<KindHandler>(new HexagonKindHandler()); case llvm::ELF::EM_386: - return std::unique_ptr<KindHandler>(new KindHandler_x86()); + return std::unique_ptr<KindHandler>(new X86KindHandler()); case llvm::ELF::EM_PPC: - return std::unique_ptr<KindHandler>(new KindHandler_ppc(endian)); + return std::unique_ptr<KindHandler>(new PPCKindHandler(endian)); default: llvm_unreachable("arch not supported"); } } -//===----------------------------------------------------------------------===// -// KindHandler_x86 -// TODO: more to do here -//===----------------------------------------------------------------------===// - -KindHandler_x86::~KindHandler_x86() {} - -Reference::Kind KindHandler_x86::stringToKind(StringRef str) { - return llvm::StringSwitch<Reference::Kind>(str) - .Case("none", none) - .Default(invalid); -} - -StringRef KindHandler_x86::kindToString(Reference::Kind kind) { - switch ( (Kinds)kind ) { - case invalid: - return "invalid"; - case none: - return "none"; - } - llvm_unreachable("invalid x86 Reference kind"); -} - -bool KindHandler_x86::isCallSite(Kind kind) { - llvm_unreachable("Unimplemented: KindHandler_x86::isCallSite"); - return false; -} - -bool KindHandler_x86::isPointer(Kind kind) { - llvm_unreachable("Unimplemented: KindHandler_x86::isPointer"); - return false; -} - -bool KindHandler_x86::isLazyImmediate(Kind kind) { - llvm_unreachable("Unimplemented: KindHandler_x86::isLazyImmediate"); - return false; -} - -bool KindHandler_x86::isLazyTarget(Kind kind) { - llvm_unreachable("Unimplemented: KindHandler_x86::isLazyTarget"); - return false; -} - -void KindHandler_x86::applyFixup(int32_t reloc, uint64_t addend, - uint8_t *location, uint64_t fixupAddress, - uint64_t targetAddress) { -// TODO: Add reloc funcs for X86 - return; -} - } // namespace elf } // namespace lld |

