summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/MachO/ArchHandler_arm.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_arm.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_arm.cpp')
-rw-r--r--lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp
index 531189f4861..7b73ff1975b 100644
--- a/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp
+++ b/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp
@@ -36,6 +36,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,
@@ -59,6 +70,7 @@ public:
void generateAtomContent(const DefinedAtom &atom, bool relocatable,
FindAddressForAtom findAddress,
+ uint64_t imageBaseAddress,
uint8_t *atomContentBuffer) override;
void appendSectionRelocations(const DefinedAtom &atom,
@@ -904,9 +916,10 @@ void ArchHandler_arm::applyFixupFinal(const Reference &ref, uint8_t *location,
}
void ArchHandler_arm::generateAtomContent(const DefinedAtom &atom,
- bool relocatable,
- FindAddressForAtom findAddress,
- uint8_t *atomContentBuffer) {
+ bool relocatable,
+ FindAddressForAtom findAddress,
+ uint64_t imageBaseAddress,
+ uint8_t *atomContentBuffer) {
// Copy raw bytes.
memcpy(atomContentBuffer, atom.rawContent().data(), atom.size());
// Apply fix-ups.
OpenPOWER on IntegriCloud