summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-09-30 21:29:54 +0000
committerTim Northover <tnorthover@apple.com>2014-09-30 21:29:54 +0000
commitcf78d37fd65f273e3db55c585105e3f310cadf39 (patch)
tree5371262ceecd6743184306b9663c346ab52d5e3b /lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
parente1c79749ca96a704556c46a8e9140244a9bbdfed (diff)
downloadbcm5719-llvm-cf78d37fd65f273e3db55c585105e3f310cadf39.tar.gz
bcm5719-llvm-cf78d37fd65f273e3db55c585105e3f310cadf39.zip
[mach-o] create __unwind_info section on x86_64
This is a minimally useful pass to construct the __unwind_info section in a final object from the various __compact_unwind inputs. Currently it doesn't produce any compressed pages, only works for x86_64 and will fail if any function ends up without __compact_unwind. rdar://problem/18208653 llvm-svn: 218703
Diffstat (limited to 'lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp')
-rw-r--r--lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
index ebd0084b3cd..31021030dad 100644
--- a/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
+++ b/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
@@ -76,6 +76,17 @@ public:
bool isCallSite(const Reference &) override;
bool isPointer(const Reference &) override;
bool isPairedReloc(const normalized::Relocation &) override;
+
+ bool needsCompactUnwind() override {
+ return false;
+ }
+ Reference::KindValue imageOffsetKind() override {
+ return invalid;
+ }
+ Reference::KindValue imageOffsetKindIndirect() override {
+ return invalid;
+ }
+
std::error_code getReferenceInfo(const normalized::Relocation &reloc,
const DefinedAtom *inAtom,
uint32_t offsetInAtom,
@@ -103,6 +114,7 @@ public:
void generateAtomContent(const DefinedAtom &atom, bool relocatable,
FindAddressForAtom findAddress,
+ uint64_t imageBaseAddress,
uint8_t *atomContentBuffer) override;
void appendSectionRelocations(const DefinedAtom &atom,
@@ -440,6 +452,7 @@ std::error_code ArchHandler_arm64::getPairReferenceInfo(
void ArchHandler_arm64::generateAtomContent(const DefinedAtom &atom,
bool relocatable,
FindAddressForAtom findAddress,
+ uint64_t imageBaseAddress,
uint8_t *atomContentBuffer) {
// Copy raw bytes.
memcpy(atomContentBuffer, atom.rawContent().data(), atom.size());
OpenPOWER on IntegriCloud