mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 21:24:00 +00:00
Adding multiple object support to MCJIT EH frame handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192504 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -53,7 +53,12 @@ public:
|
||||
StringRef SectionName, bool IsReadOnly) = 0;
|
||||
|
||||
/// Register the EH frames with the runtime so that c++ exceptions work.
|
||||
virtual void registerEHFrames(StringRef SectionData);
|
||||
///
|
||||
/// \p Addr parameter provides the local address of the EH frame section
|
||||
/// data, while \p LoadAddr provides the address of the data in the target
|
||||
/// address space. If the section has not been remapped (which will usually
|
||||
/// be the case for local execution) these two values will be the same.
|
||||
virtual void registerEHFrames(uint8_t *Addr, uint64_t LoadAddr, size_t Size);
|
||||
|
||||
/// This method returns the address of the specified function or variable.
|
||||
/// It is used to resolve symbols during module linking.
|
||||
|
@ -64,9 +64,14 @@ public:
|
||||
/// This is the address which will be used for relocation resolution.
|
||||
void mapSectionAddress(const void *LocalAddress, uint64_t TargetAddress);
|
||||
|
||||
StringRef getErrorString();
|
||||
/// Register any EH frame sections that have been loaded but not previously
|
||||
/// registered with the memory manager. Note, RuntimeDyld is responsible
|
||||
/// for identifying the EH frame and calling the memory manager with the
|
||||
/// EH frame section data. However, the memory manager itself will handle
|
||||
/// the actual target-specific EH frame registration.
|
||||
void registerEHFrames();
|
||||
|
||||
StringRef getEHFrameSection();
|
||||
StringRef getErrorString();
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
Reference in New Issue
Block a user