mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-30 02:25:19 +00:00
For some targets, it's not possible to place GVs in the same memory buffer as the MachineCodeEmitter allocated memory. Code and data has different read / write / execution privilege requirements.
This is a short term workaround. The current solution is for the JIT memory manager to manage code and data memory separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58688 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -65,6 +65,17 @@ namespace llvm {
|
||||
/// pool address resolution is handled by the target.
|
||||
virtual bool hasCustomConstantPool() const { return true; }
|
||||
|
||||
/// allocateSeparateGVMemory - If true, globals should be placed in
|
||||
/// separately allocated heap memory rather than in the same
|
||||
/// code memory allocated by MachineCodeEmitter.
|
||||
virtual bool allocateSeparateGVMemory() const {
|
||||
#ifdef __APPLE__
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// Initialize - Initialize internal stage. Get the list of constant pool
|
||||
/// Resize constant pool ids to CONSTPOOL_ENTRY addresses map.
|
||||
void Initialize(const std::vector<MachineConstantPoolEntry> *mcpes) {
|
||||
|
Reference in New Issue
Block a user