mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-27 14:07:32 +00:00
Convert the Emitter to use the lib/System "Memory" interface instead of the
old SystemUtils.h interface to allocate RWX blocks of memory. llvm-svn: 16286
This commit is contained in:
parent
637724f156
commit
b1df891777
@ -22,7 +22,8 @@
|
||||
#include "llvm/Target/TargetData.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/ADT/Statistic.h"
|
||||
#include "llvm/Support/SystemUtils.h"
|
||||
#include "llvm/System/Memory.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
@ -37,6 +38,7 @@ namespace {
|
||||
/// are emitting is. This never bothers to release the memory, because when
|
||||
/// we are ready to destroy the JIT, the program exits.
|
||||
class JITMemoryManager {
|
||||
sys::Memory MemBlock; // Virtual memory block allocated RWX
|
||||
unsigned char *MemBase; // Base of block of memory, start of stub mem
|
||||
unsigned char *FunctionBase; // Start of the function body area
|
||||
unsigned char *CurStubPtr, *CurFunctionPtr;
|
||||
@ -51,7 +53,8 @@ namespace {
|
||||
|
||||
JITMemoryManager::JITMemoryManager() {
|
||||
// Allocate a 16M block of memory...
|
||||
MemBase = (unsigned char*)AllocateRWXMemory(16 << 20);
|
||||
sys::Memory::AllocateRWX(MemBlock,(16 << 20));
|
||||
MemBase = reinterpret_cast<unsigned char*>(MemBlock.base());
|
||||
FunctionBase = MemBase + 512*1024; // Use 512k for stubs
|
||||
|
||||
// Allocate stubs backwards from the function base, allocate functions forward
|
||||
|
Loading…
Reference in New Issue
Block a user