summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp
diff options
context:
space:
mode:
authorSid Manning <sidneym@codeaurora.org>2012-10-25 17:53:04 +0000
committerSid Manning <sidneym@codeaurora.org>2012-10-25 17:53:04 +0000
commit823e8bb7beff0296ad6b1cb1df76f8cbcbbb175e (patch)
treec9d20dc178a2d0ee0225365e6e90ebad25327642 /lld/lib/ReaderWriter/ELF/ReferenceKinds.cpp
parent8fe3a6bda46d5f36a409d5203f05ea8e99602eee (diff)
downloadbcm5719-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.cpp56
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
OpenPOWER on IntegriCloud