diff options
author | Andrew Kaylor <andrew.kaylor@intel.com> | 2013-10-11 21:25:48 +0000 |
---|---|---|
committer | Andrew Kaylor <andrew.kaylor@intel.com> | 2013-10-11 21:25:48 +0000 |
commit | 7bb1344c67dd437a4324be90110c4e714a4b4de0 (patch) | |
tree | 3c1250198de7402b8cf3715bc05440e6937341c2 /llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp | |
parent | 71814b44658523f5fc747475ad8b40c9197565e2 (diff) | |
download | bcm5719-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.cpp | 11 |
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); |