35 #define DEBUG_NAME "compiler2/CodeMemory"
37 #define MCODEINITSIZE (1<<15)
45 return s4(from.idx) -
s4(to.idx);
57 LOG2(
"LinkMeLater: " << MI <<
nl);
58 linklist.push_back(std::make_pair(MI,CF));
64 struct LinkMeClass : std::unary_function<void, CodeMemory::ResolvePointTy&> {
68 LOG2(
"LinkMe " << MI <<
nl);
CodeFragment get_CodeFragment(std::size_t size)
get a code fragment
CodeFragment get_aligned_CodeFragment(std::size_t size)
get an aligned code fragment
void link()
Link instructions.
static const std::size_t alignment
std::size_t size() const
get size
JNIEnv jthread jobject jclass jlong size
std::pair< const MachineInstruction *, CodeFragment > ResolvePointTy
void require_linking(const MachineInstruction *, CodeFragment CF)
Add a MachineInstruction that require linking.
s4 get_offset(CodeSegment::IdxTy to, CodeSegment::IdxTy from) const
virtual void link(CodeFragment &CF) const
link machine code
CodeSegment cseg
code segment
Proxy to encode explicit and implicit successors.
LinkListTy linklist
instructions that require linking
Ref get_Ref(std::size_t t)
get a new reference to the segment
DataSegment dseg
data segment