CACAO
Public Types | Public Member Functions | Private Types | Private Attributes
cacao::jit::compiler2::CodeMemory Class Reference

CodeMemory. More...

Inheritance diagram for cacao::jit::compiler2::CodeMemory:
cacao::jit::compiler2::memory::ManagerMixin< CodeMemory >

Public Types

typedef std::pair< const
MachineInstruction
*, CodeFragment
ResolvePointTy
 

Public Member Functions

 CodeMemory ()
 constructor More...
 
const CodeSegmentget_CodeSegment () const
 get CodeSegment More...
 
CodeSegmentget_CodeSegment ()
 get CodeSegment More...
 
const DataSegmentget_DataSegment () const
 get DataSegment More...
 
DataSegmentget_DataSegment ()
 get DataSegment More...
 
s4 get_offset (CodeSegment::IdxTy to, CodeSegment::IdxTy from) const
 
s4 get_offset (CodeSegment::IdxTy to, CodeFragment &CF) const
 
s4 get_offset (CodeSegment::IdxTy to) const
 
s4 get_offset (DataSegment::IdxTy to, CodeSegment::IdxTy from) const
 
s4 get_offset (DataSegment::IdxTy to, CodeFragment &CF) const
 
void require_linking (const MachineInstruction *, CodeFragment CF)
 Add a MachineInstruction that require linking. More...
 
void link ()
 Link instructions. More...
 
CodeFragment get_CodeFragment (std::size_t size)
 get a code fragment More...
 
CodeFragment get_aligned_CodeFragment (std::size_t size)
 get an aligned code fragment More...
 

Private Types

typedef alloc::list
< ResolvePointTy >::type 
LinkListTy
 

Private Attributes

LinkListTy linklist
 instructions that require linking More...
 
CodeSegment cseg
 code segment More...
 
DataSegment dseg
 data segment More...
 

Additional Inherited Members

- Static Public Member Functions inherited from cacao::jit::compiler2::memory::ManagerMixin< CodeMemory >
static voidoperator new (std::size_t size) throw (std::bad_alloc)
 normal new More...
 
static voidoperator new (std::size_t size, void *ptr) throw ()
 placement new More...
 
static voidoperator new (std::size_t size, const std::nothrow_t &nt) throw ()
 nothrow new More...
 
static void operator delete (void *pMemory) throw ()
 normal delete More...
 
static void operator delete (void *pMemory, void *ptr) throw ()
 placement delete More...
 
static void operator delete (void *pMemory, const std::nothrow_t &) throw ()
 nothrow delete More...
 
static voidoperator new[] (std::size_t size) throw (std::bad_alloc)
 normal new[] More...
 
static voidoperator new[] (std::size_t size, void *ptr) throw ()
 placement new[] More...
 
static voidoperator new[] (std::size_t size, const std::nothrow_t &nt) throw ()
 nothrow new[] More...
 
static void operator delete[] (void *pMemory) throw ()
 normal delete[] More...
 
static void operator delete[] (void *pMemory, void *ptr) throw ()
 placement delete[] More...
 
static void operator delete[] (void *pMemory, const std::nothrow_t &) throw ()
 nothrow delete[] More...
 

Detailed Description

CodeMemory.

Definition at line 49 of file CodeMemory.hpp.

Member Typedef Documentation

Definition at line 53 of file CodeMemory.hpp.

Definition at line 51 of file CodeMemory.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::CodeMemory::CodeMemory ( )
inline

constructor

Definition at line 62 of file CodeMemory.hpp.

Member Function Documentation

CodeFragment cacao::jit::compiler2::CodeMemory::get_aligned_CodeFragment ( std::size_t  size)

get an aligned code fragment

Returns
A CodeFragment aligend to Target::alignment.

Definition at line 83 of file CodeMemory.cpp.

CodeFragment cacao::jit::compiler2::CodeMemory::get_CodeFragment ( std::size_t  size)

get a code fragment

Definition at line 79 of file CodeMemory.cpp.

const CodeSegment& cacao::jit::compiler2::CodeMemory::get_CodeSegment ( ) const
inline

get CodeSegment

Definition at line 65 of file CodeMemory.hpp.

CodeSegment& cacao::jit::compiler2::CodeMemory::get_CodeSegment ( )
inline

get CodeSegment

Definition at line 67 of file CodeMemory.hpp.

const DataSegment& cacao::jit::compiler2::CodeMemory::get_DataSegment ( ) const
inline

get DataSegment

Definition at line 69 of file CodeMemory.hpp.

DataSegment& cacao::jit::compiler2::CodeMemory::get_DataSegment ( )
inline

get DataSegment

Definition at line 71 of file CodeMemory.hpp.

s4 cacao::jit::compiler2::CodeMemory::get_offset ( CodeSegment::IdxTy  to,
CodeSegment::IdxTy  from 
) const

Definition at line 43 of file CodeMemory.cpp.

s4 cacao::jit::compiler2::CodeMemory::get_offset ( CodeSegment::IdxTy  to,
CodeFragment CF 
) const
inline

Definition at line 74 of file CodeMemory.hpp.

s4 cacao::jit::compiler2::CodeMemory::get_offset ( CodeSegment::IdxTy  to) const
inline

Definition at line 77 of file CodeMemory.hpp.

s4 cacao::jit::compiler2::CodeMemory::get_offset ( DataSegment::IdxTy  to,
CodeSegment::IdxTy  from 
) const
Deprecated:
this should be moved to FixedCodeMemory or so

Definition at line 48 of file CodeMemory.cpp.

s4 cacao::jit::compiler2::CodeMemory::get_offset ( DataSegment::IdxTy  to,
CodeFragment CF 
) const
inline

Definition at line 84 of file CodeMemory.hpp.

void cacao::jit::compiler2::CodeMemory::link ( )

Link instructions.

Deprecated:
this should be moved to FixedCodeMemory or so

Definition at line 75 of file CodeMemory.cpp.

void cacao::jit::compiler2::CodeMemory::require_linking ( const MachineInstruction MI,
CodeFragment  CF 
)

Add a MachineInstruction that require linking.

Definition at line 56 of file CodeMemory.cpp.

Field Documentation

CodeSegment cacao::jit::compiler2::CodeMemory::cseg
private

code segment

Definition at line 57 of file CodeMemory.hpp.

DataSegment cacao::jit::compiler2::CodeMemory::dseg
private

data segment

Definition at line 58 of file CodeMemory.hpp.

LinkListTy cacao::jit::compiler2::CodeMemory::linklist
private

instructions that require linking

Definition at line 55 of file CodeMemory.hpp.


The documentation for this class was generated from the following files: