summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp
diff options
context:
space:
mode:
authorAndrew Kaylor <andrew.kaylor@intel.com>2013-10-11 21:25:48 +0000
committerAndrew Kaylor <andrew.kaylor@intel.com>2013-10-11 21:25:48 +0000
commit7bb1344c67dd437a4324be90110c4e714a4b4de0 (patch)
tree3c1250198de7402b8cf3715bc05440e6937341c2 /llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp
parent71814b44658523f5fc747475ad8b40c9197565e2 (diff)
downloadbcm5719-llvm-7bb1344c67dd437a4324be90110c4e714a4b4de0.tar.gz
bcm5719-llvm-7bb1344c67dd437a4324be90110c4e714a4b4de0.zip
Adding multiple object support to MCJIT EH frame handling
llvm-svn: 192504
Diffstat (limited to 'llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp b/llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp
index de38b38d64b..99265760be1 100644
--- a/llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp
+++ b/llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp
@@ -54,10 +54,15 @@ static const char *processFDE(const char *Entry) {
}
#endif
-void RTDyldMemoryManager::registerEHFrames(StringRef SectionData) {
+// This implementation handles frame registration for local targets.
+// Memory managers for remote targets should re-implement this function
+// and use the LoadAddr parameter.
+void RTDyldMemoryManager::registerEHFrames(uint8_t *Addr,
+ uint64_t LoadAddr,
+ size_t Size) {
#if HAVE_EHTABLE_SUPPORT
- const char *P = SectionData.data();
- const char *End = SectionData.data() + SectionData.size();
+ const char *P = (const char *)Addr;
+ const char *End = P + Size;
do {
P = processFDE(P);
} while(P != End);
OpenPOWER on IntegriCloud