summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2014-05-22 22:30:13 +0000
committerLang Hames <lhames@gmail.com>2014-05-22 22:30:13 +0000
commit7f9fc2b339fa26b279135007a6b5568624c5a2ef (patch)
tree5477971b471c4e82f64ff92292fb27cf2daa40bd /llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
parent0a0d6b4bb123e833df89cbb287e467f811324882 (diff)
downloadbcm5719-llvm-7f9fc2b339fa26b279135007a6b5568624c5a2ef.tar.gz
bcm5719-llvm-7f9fc2b339fa26b279135007a6b5568624c5a2ef.zip
[RuntimeDyld] Teach RuntimeDyldMachO how to handle scattered VANILLA relocs on
i386. This fixes two more MCJIT regression tests on i386: ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll The implementation of processScatteredVANILLA is tasteless (*ba-dum-ching*), but I'm working on a substantial tidy-up of RuntimeDyldMachO that should improve things. This patch also fixes a type-o in RuntimeDyldMachO::processSECTDIFFRelocation, and teaches that method to skip over the PAIR reloc following the SECTDIFF. <rdar://problem/16961886> llvm-svn: 209478
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h')
-rw-r--r--llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
index 138c59b95ce..6911f2f07aa 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
@@ -71,6 +71,12 @@ private:
ObjectImage &ObjImg,
ObjSectionToIDMap &ObjSectionToID);
+ relocation_iterator processI386ScatteredVANILLA(
+ unsigned SectionID,
+ relocation_iterator RelI,
+ ObjectImage &ObjImg,
+ ObjSectionToIDMap &ObjSectionToID);
+
struct EHFrameRelatedSections {
EHFrameRelatedSections()
: EHFrameSID(RTDYLD_INVALID_SECTION_ID),
OpenPOWER on IntegriCloud