diff options
| author | Pete Cooper <peter_cooper@apple.com> | 2016-02-02 00:02:50 +0000 |
|---|---|---|
| committer | Pete Cooper <peter_cooper@apple.com> | 2016-02-02 00:02:50 +0000 |
| commit | 1a6098b86bd251d678a20e13bbf6d95072e72b3d (patch) | |
| tree | 988021e3ed2db21bb953308cfb643d6e5eb7ff77 | |
| parent | ab010737659e37fded8238f22665e24022628b8d (diff) | |
| download | bcm5719-llvm-1a6098b86bd251d678a20e13bbf6d95072e72b3d.tar.gz bcm5719-llvm-1a6098b86bd251d678a20e13bbf6d95072e72b3d.zip | |
Add pointerKind() method to the MachO ArchHandler's. NFC.
The ObjCPass is going to need to create pointer sized relocations in
the ObjC sections. This method will be used to give us a target independent
way of getting the correct kind for the refererence.
llvm-svn: 259441
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ArchHandler.h | 4 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp | 4 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp | 4 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp | 4 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp | 4 |
5 files changed, 20 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler.h b/lld/lib/ReaderWriter/MachO/ArchHandler.h index 120f5dfd4cd..712da7c281d 100644 --- a/lld/lib/ReaderWriter/MachO/ArchHandler.h +++ b/lld/lib/ReaderWriter/MachO/ArchHandler.h @@ -92,6 +92,10 @@ public: /// __eh_frame. virtual Reference::KindValue unwindRefToEhFrameKind() = 0; + /// Returns a pointer sized reference kind. On 64-bit targets this will + /// likely be something like pointer64, and pointer32 on 32-bit targets. + virtual Reference::KindValue pointerKind() = 0; + virtual const Atom *fdeTargetFunction(const DefinedAtom *fde); /// Used by normalizedFromAtoms() to know where to generated rebasing and diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp index 38f36096539..2ffaee35bb3 100644 --- a/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp +++ b/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp @@ -63,6 +63,10 @@ public: return invalid; } + Reference::KindValue pointerKind() override { + return invalid; + } + uint32_t dwarfCompactUnwindType() override { // FIXME return -1; diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp index 778f6f4add7..634a5ceff79 100644 --- a/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp +++ b/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp @@ -120,6 +120,10 @@ public: return unwindInfoToEhFrame; } + Reference::KindValue pointerKind() override { + return pointer64; + } + uint32_t dwarfCompactUnwindType() override { return 0x03000000; } diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp index 7aac2584d07..0fba555e3e6 100644 --- a/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp +++ b/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp @@ -70,6 +70,10 @@ public: return invalid; } + Reference::KindValue pointerKind() override { + return invalid; + } + uint32_t dwarfCompactUnwindType() override { return 0x04000000U; } diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp index 8b4d1cf38cb..c89989e6277 100644 --- a/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp +++ b/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp @@ -116,6 +116,10 @@ public: return unwindInfoToEhFrame; } + Reference::KindValue pointerKind() override { + return pointer64; + } + uint32_t dwarfCompactUnwindType() override { return 0x04000000U; } |

