public abstract class TemplateCompilerFramework extends Object
Modifier and Type | Class and Description |
---|---|
static class |
TemplateCompilerFramework.BranchCondition |
static class |
TemplateCompilerFramework.MachineCode |
Modifier and Type | Field and Description |
---|---|
protected BytecodeStream |
bcodes
The bytecodes of the method being compiled
|
protected int |
biStart
bi at the start of a bytecode
|
protected int[] |
bytecodeMap
Mapping from bytecodes to machine code offsets
|
protected CompiledMethod |
compiledMethod
The compiledMethod assigned to this compilation of method
|
protected boolean |
doesCheckStore
Does this method do checkstore?
|
protected boolean |
isInterruptible
Is the method currently being compiled interruptible?
|
protected boolean |
isUninterruptible
Is the method currently being compiled uninterruptible?
|
protected boolean |
isUnpreemptible
Is the method currently being compiled unpreemptible?
|
protected RVMClass |
klass
The declaring class of the method being compiled
|
protected int |
lockOffset
machine code offset at which the lock is acquired in the prologue of a synchronized method.
|
protected NormalMethod |
method
The method being compiled
|
private int |
pendingCMID |
private int |
pendingIdx |
private ForwardReference |
pendingRef |
protected boolean |
shouldPrint
Should we print the machine code we generate?
|
protected int[] |
stackHeights
The height of the expression stack at the start of each bytecode.
|
Modifier | Constructor and Description |
---|---|
protected |
TemplateCompilerFramework(CompiledMethod cm) |
Modifier and Type | Method and Description |
---|---|
protected void |
checkTarget(RVMMethod target,
int bci)
Ensure that the callee method is safe to invoke from uninterruptible code
|
private void |
do_if_icmp(int biStart,
TemplateCompilerFramework.BranchCondition bc)
Handle if_icmp.. bytecodes
|
private void |
do_if(int biStart,
TemplateCompilerFramework.BranchCondition bc)
Handle if.. bytecodes
|
protected abstract void |
emit_aaload()
Emit code to load from a reference array
|
protected abstract void |
emit_aastore()
Emit code to store to a reference array
|
protected abstract void |
emit_aconst_null()
Emit code to load the null constant.
|
protected abstract void |
emit_aload(int index)
Emit code to load a reference local variable
|
protected abstract void |
emit_areturn()
Emit code to implement the areturn bytecode
|
protected abstract void |
emit_arraylength()
Emit code to implement the arraylength bytecode
|
protected abstract void |
emit_astore(int index)
Emit code to store a reference to a local variable
|
protected abstract void |
emit_athrow()
Emit code to implement the athrow bytecode
|
protected abstract void |
emit_baload()
Emit code to load from a byte/boolean array
|
protected abstract void |
emit_bastore()
Emit code to store to a byte/boolean array
|
protected abstract void |
emit_caload()
Emit code to load from a char array
|
protected abstract void |
emit_castore()
Emit code to store to a char array
|
protected abstract void |
emit_checkcast_final(RVMType type)
Emit code to implement the checkcast bytecode
|
protected abstract void |
emit_checkcast_resolvedClass(RVMClass type)
Emit code to implement the checkcast bytecode
|
protected abstract void |
emit_checkcast_resolvedInterface(RVMClass type)
Emit code to implement the checkcast bytecode
|
protected abstract void |
emit_checkcast(TypeReference typeRef)
Emit code to implement the checkcast bytecode
|
protected abstract void |
emit_d2f()
Emit code to implement the d2f bytecode
|
protected abstract void |
emit_d2i()
Emit code to implement the d2i bytecode
|
protected abstract void |
emit_d2l()
Emit code to implement the d2l bytecode
|
protected abstract void |
emit_dadd()
Emit code to implement the dadd bytecode
|
protected abstract void |
emit_daload()
Emit code to load from a double array
|
protected abstract void |
emit_dastore()
Emit code to store to a double array
|
protected abstract void |
emit_dconst_0()
Emit code to load 0.0d
|
protected abstract void |
emit_dconst_1()
Emit code to load 1.0d
|
protected abstract void |
emit_ddiv()
Emit code to implement the ddiv bytecode
|
protected abstract void |
emit_deferred_prologue() |
protected abstract void |
emit_DFcmpGL(boolean single,
boolean unorderedGT)
Emits code to handle all [df]cmp[gl] cases
|
protected abstract void |
emit_dload(int index)
Emit code to load a double local variable
|
protected abstract void |
emit_dmul()
Emit code to implement the dmul bytecode
|
protected abstract void |
emit_dneg()
Emit code to implement the dneg bytecode
|
protected abstract void |
emit_drem()
Emit code to implement the drem bytecode
|
protected abstract void |
emit_dreturn()
Emit code to implement the dreturn bytecode
|
protected abstract void |
emit_dstore(int index)
Emit code to store an double to a local variable
|
protected abstract void |
emit_dsub()
Emit code to implement the dsub bytecode
|
protected abstract void |
emit_dup_x1()
Emit code to implement the dup_x1 bytecode
|
protected abstract void |
emit_dup_x2()
Emit code to implement the dup_x2 bytecode
|
protected abstract void |
emit_dup()
Emit code to implement the dup bytecode
|
protected abstract void |
emit_dup2_x1()
Emit code to implement the dup2_x1 bytecode
|
protected abstract void |
emit_dup2_x2()
Emit code to implement the dup2_x2 bytecode
|
protected abstract void |
emit_dup2()
Emit code to implement the dup2 bytecode
|
protected abstract void |
emit_f2d()
Emit code to implement the f2d bytecode
|
protected abstract void |
emit_f2i()
Emit code to implement the f2i bytecode
|
protected abstract void |
emit_f2l()
Emit code to implement the f2l bytecode
|
protected abstract void |
emit_fadd()
Emit code to implement the fadd bytecode
|
protected abstract void |
emit_faload()
Emit code to load from a float array
|
protected abstract void |
emit_fastore()
Emit code to store to a float array
|
protected abstract void |
emit_fconst_0()
Emit code to load 0.0f
|
protected abstract void |
emit_fconst_1()
Emit code to load 1.0f
|
protected abstract void |
emit_fconst_2()
Emit code to load 2.0f
|
protected abstract void |
emit_fdiv()
Emit code to implement the fdiv bytecode
|
protected abstract void |
emit_fload(int index)
Emit code to local a float local variable
|
protected abstract void |
emit_fmul()
Emit code to implement the fmul bytecode
|
protected abstract void |
emit_fneg()
Emit code to implement the fneg bytecode
|
protected abstract void |
emit_frem()
Emit code to implement the frem bytecode
|
protected abstract void |
emit_freturn()
Emit code to implement the freturn bytecode
|
protected abstract void |
emit_fstore(int index)
Emit code to store a float to a local variable
|
protected abstract void |
emit_fsub()
Emit code to implement the fsub bytecode
|
protected abstract void |
emit_goto(int bTarget)
Emit code to implement the goto and gotow bytecodes
|
protected abstract void |
emit_i2b()
Emit code to implement the i2b bytecode
|
protected abstract void |
emit_i2c()
Emit code to implement the i2c bytecode
|
protected abstract void |
emit_i2d()
Emit code to implement the i2d bytecode
|
protected abstract void |
emit_i2f()
Emit code to implement the i2f bytecode
|
protected abstract void |
emit_i2l()
Emit code to implement the i2l bytecode
|
protected abstract void |
emit_i2s()
Emit code to implement the i2s bytecode
|
protected abstract void |
emit_iadd()
Emit code to implement the iadd bytecode
|
protected abstract void |
emit_iaload()
Emit code to load from an int array
|
protected abstract void |
emit_iand()
Emit code to implement the iand bytecode
|
protected abstract void |
emit_iastore()
Emit code to store to an int array
|
protected abstract void |
emit_iconst(int val)
Emit code to load an int constant.
|
protected abstract void |
emit_idiv()
Emit code to implement the idiv bytecode
|
protected abstract void |
emit_if_acmpeq(int bTarget)
Emit code to implement the if_acmpeq bytecode
|
protected abstract void |
emit_if_acmpne(int bTarget)
Emit code to implement the if_acmpne bytecode
|
protected abstract void |
emit_if_icmp(int bTarget,
TemplateCompilerFramework.BranchCondition bc)
Emits code to implement the if_icmp.. bytecode
|
protected abstract void |
emit_if(int bTarget,
TemplateCompilerFramework.BranchCondition bc)
Emits code to implement the if.. bytecode
|
protected abstract void |
emit_ifnonnull(int bTarget)
Emit code to implement the ifnonnull bytecode
|
protected abstract void |
emit_ifnull(int bTarget)
Emit code to implement the ifnull bytecode
|
protected abstract void |
emit_iinc(int index,
int val)
Emit code to implement the iinc bytecode
|
protected abstract void |
emit_iload(int index)
Emit code to load an int local variable
|
protected abstract void |
emit_imul()
Emit code to implement the imul bytecode
|
protected abstract void |
emit_ineg()
Emit code to implement the ineg bytecode
|
protected abstract void |
emit_instanceof_final(RVMType type)
Emit code to implement the instanceof bytecode
|
protected abstract void |
emit_instanceof_resolvedClass(RVMClass type)
Emit code to implement the instanceof bytecode
|
protected abstract void |
emit_instanceof_resolvedInterface(RVMClass type)
Emit code to implement the instanceof bytecode
|
protected abstract void |
emit_instanceof(TypeReference typeRef)
Emit code to implement the instanceof bytecode
|
protected abstract void |
emit_invoke_compiledmethod(CompiledMethod cm) |
protected abstract void |
emit_invokeinterface(MethodReference methodRef)
Emit code to implement the invokeinterface bytecode
|
protected abstract void |
emit_ior()
Emit code to implement the ior bytecode
|
protected abstract void |
emit_irem()
Emit code to implement the irem bytecode
|
protected abstract void |
emit_ireturn()
Emit code to implement the ireturn bytecode
|
protected abstract void |
emit_ishl()
Emit code to implement the ishl bytecode
|
protected abstract void |
emit_ishr()
Emit code to implement the ishr bytecode
|
protected abstract void |
emit_istore(int index)
Emit code to store an int to a local variable
|
protected abstract void |
emit_isub()
Emit code to implement the isub bytecode
|
protected abstract void |
emit_iushr()
Emit code to implement the iushr bytecode
|
protected abstract void |
emit_ixor()
Emit code to implement the ixor bytecode
|
protected abstract void |
emit_jsr(int bTarget)
Emit code to implement the jsr and jsrw bytecode
|
protected abstract void |
emit_l2d()
Emit code to implement the l2d bytecode
|
protected abstract void |
emit_l2f()
Emit code to implement the l2f bytecode
|
protected abstract void |
emit_l2i()
Emit code to implement the l2i bytecode
|
protected abstract void |
emit_ladd()
Emit code to implement the ladd bytecode
|
protected abstract void |
emit_laload()
Emit code to load from a long array
|
protected abstract void |
emit_land()
Emit code to implement the land bytecode
|
protected abstract void |
emit_lastore()
Emit code to store to a long array
|
protected abstract void |
emit_lcmp()
Emit code to implement the lcmp bytecode
|
protected abstract void |
emit_lconst(int val)
Emit code to load a long constant
|
protected abstract void |
emit_ldc(Offset offset,
byte type)
Emit code to load a 32 bit constant
|
protected abstract void |
emit_ldc2(Offset offset,
byte type)
Emit code to load a 64 bit constant
|
protected abstract void |
emit_ldiv()
Emit code to implement the ldiv bytecode
|
protected abstract void |
emit_lload(int index)
Emit code to load a long local variable
|
protected abstract void |
emit_lmul()
Emit code to implement the lmul bytecode
|
protected abstract void |
emit_lneg()
Emit code to implement the lneg bytecode
|
protected abstract void |
emit_loadretaddrconst(int bcIndex) |
protected abstract void |
emit_lookupswitch(int defaultval,
int npairs)
Emit code to implement the lookupswitch bytecode
|
protected abstract void |
emit_lor()
Emit code to implement the lor bytecode
|
protected abstract void |
emit_lrem()
Emit code to implement the lrem bytecode
|
protected abstract void |
emit_lreturn()
Emit code to implement the lreturn bytecode
|
protected abstract void |
emit_lshl()
Emit code to implement the lshsl bytecode
|
protected abstract void |
emit_lshr()
Emit code to implement the lshr bytecode
|
protected abstract void |
emit_lstore(int index)
Emit code to store a long to a local variable
|
protected abstract void |
emit_lsub()
Emit code to implement the lsub bytecode
|
protected abstract void |
emit_lushr()
Emit code to implement the lushr bytecode
|
protected abstract void |
emit_lxor()
Emit code to implement the lxor bytecode
|
protected abstract boolean |
emit_Magic(MethodReference magicMethod)
Emits the code to implement the spcified magic.
|
protected abstract void |
emit_monitorenter()
Emit code to implement the monitorenter bytecode
|
protected abstract void |
emit_monitorexit()
Emit code to implement the monitorexit bytecode
|
protected abstract void |
emit_multianewarray(TypeReference typeRef,
int dimensions)
Emit code to allocate a multi-dimensional array
|
protected abstract ForwardReference |
emit_pending_goto(int origidx) |
protected abstract void |
emit_pop()
Emit code to implement the pop bytecode
|
protected abstract void |
emit_pop2()
Emit code to implement the pop2 bytecode
|
protected abstract void |
emit_prologue()
Emit the prologue for the method
|
protected abstract void |
emit_resolved_getfield(FieldReference fieldRef)
Emit code to implement a getfield
|
protected abstract void |
emit_resolved_getstatic(FieldReference fieldRef)
Emit code to implement a getstatic
|
protected abstract void |
emit_resolved_invokespecial(MethodReference methodRef,
RVMMethod target)
Emit code to implement a dynamically linked invokespecial
|
protected abstract void |
emit_resolved_invokestatic(MethodReference methodRef)
Emit code to implement invokestatic
|
protected abstract void |
emit_resolved_invokevirtual(MethodReference methodRef)
Emit code to implement invokevirtual
|
protected abstract void |
emit_resolved_new(RVMClass typeRef)
Emit code to allocate a scalar object
|
protected abstract void |
emit_resolved_newarray(RVMArray array)
Emit code to allocate an array
|
protected abstract void |
emit_resolved_putfield(FieldReference fieldRef)
Emit code to implement a putfield
|
protected abstract void |
emit_resolved_putstatic(FieldReference fieldRef)
Emit code to implement a putstatic
|
protected abstract void |
emit_ret(int index)
Emit code to implement the ret bytecode
|
protected abstract void |
emit_return()
Emit code to implement the return bytecode
|
protected abstract void |
emit_saload()
Emit code to load from a short array
|
protected abstract void |
emit_sastore()
Emit code to store to a short array
|
protected abstract void |
emit_swap()
Emit code to implement the swap bytecode
|
protected abstract void |
emit_tableswitch(int defaultval,
int low,
int high)
Emit code to implement the tableswitch bytecode
|
protected abstract void |
emit_threadSwitchTest(int whereFrom)
Emit the code for a threadswitch tests (aka a yieldpoint).
|
protected abstract void |
emit_unresolved_getfield(FieldReference fieldRef)
Emit code to implement a dynamically linked getfield
|
protected abstract void |
emit_unresolved_getstatic(FieldReference fieldRef)
Emit code to implement a dynamically linked getstatic
|
protected abstract void |
emit_unresolved_invokespecial(MethodReference methodRef)
Emit code to implement invokespecial
|
protected abstract void |
emit_unresolved_invokestatic(MethodReference methodRef)
Emit code to implement a dynamically linked invokestatic
|
protected abstract void |
emit_unresolved_invokevirtual(MethodReference methodRef)
Emit code to implement a dynamically linked invokevirtual
|
protected abstract void |
emit_unresolved_new(TypeReference typeRef)
Emit code to dynamically link and allocate a scalar object
|
protected abstract void |
emit_unresolved_newarray(TypeReference typeRef)
Emit code to dynamically link the element class and allocate an array
|
protected abstract void |
emit_unresolved_putfield(FieldReference fieldRef)
Emit code to implement a dynamically linked putfield
|
protected abstract void |
emit_unresolved_putstatic(FieldReference fieldRef)
Emit code to implement a dynamically linked putstatic
|
protected void |
ending_bytecode()
Notify BaselineCompilerImpl that we are ending code gen for the bytecode biStart
|
protected void |
forbiddenBytecode(String msg,
int bci)
Print a warning message whan we compile a bytecode that is forbidden in
Uninterruptible code.
|
protected void |
forbiddenBytecode(String msg,
Object obj,
int bci)
Print a warning message whan we compile a bytecode that is forbidden in
Uninterruptible code.
|
protected TemplateCompilerFramework.MachineCode |
genCode()
Main code generation loop.
|
protected abstract AbstractAssembler |
getAssembler() |
(package private) int[] |
getBytecodeMap() |
protected abstract String |
getCompilerName() |
protected void |
printEndHeader(RVMMethod method)
Print a message to mark the end of machine code printing for a method
|
protected void |
printMethodMessage()
Print a message of a method name
|
protected void |
printStartHeader(RVMMethod method)
Print a message to mark the start of machine code printing for a method
|
static int |
stackHeightForEmptyBasicBlock(NormalMethod method) |
protected abstract void |
starting_bytecode()
Notify BaselineCompilerImpl that we are starting code gen for the bytecode biStart
|
protected final NormalMethod method
protected final BytecodeStream bcodes
protected final int[] bytecodeMap
protected int biStart
protected final CompiledMethod compiledMethod
protected int[] stackHeights
protected int lockOffset
protected boolean shouldPrint
protected final boolean isInterruptible
protected final boolean doesCheckStore
protected final boolean isUninterruptible
protected final boolean isUnpreemptible
private int pendingCMID
private int pendingIdx
private ForwardReference pendingRef
protected TemplateCompilerFramework(CompiledMethod cm)
public static final int stackHeightForEmptyBasicBlock(NormalMethod method)
method
- the method that contains the bytecode that produces an
empty basic blockprotected abstract AbstractAssembler getAssembler()
final int[] getBytecodeMap()
protected final void printStartHeader(RVMMethod method)
method
- the method that will be compiledprotected final void printEndHeader(RVMMethod method)
method
- the method that was compiledprotected final void printMethodMessage()
protected final TemplateCompilerFramework.MachineCode genCode()
private void do_if(int biStart, TemplateCompilerFramework.BranchCondition bc)
biStart
- offset of bytecodebc
- branch conditionprivate void do_if_icmp(int biStart, TemplateCompilerFramework.BranchCondition bc)
biStart
- offset of bytecodebc
- branch conditionprotected final void forbiddenBytecode(String msg, Object obj, int bci)
msg
- description of bytecode that is violating the invariantobj
- object that provides further informationbci
- the index of the current bytecodeprotected final void forbiddenBytecode(String msg, int bci)
msg
- description of bytecode that is violating the invariantbci
- the index of the current bytecodeprotected final void checkTarget(RVMMethod target, int bci)
target
- the target methodRefbci
- the index of the current bytecodeprotected abstract void starting_bytecode()
protected void ending_bytecode()
protected abstract void emit_prologue()
protected abstract void emit_threadSwitchTest(int whereFrom)
whereFrom
- is this thread switch from a PROLOGUE, BACKEDGE, or EPILOGUE?protected abstract void emit_deferred_prologue()
protected abstract boolean emit_Magic(MethodReference magicMethod)
magicMethod
- desired magictrue
if code was emittedprotected abstract void emit_aconst_null()
protected abstract void emit_iconst(int val)
val
- the int constant to loadprotected abstract void emit_lconst(int val)
val
- the lower 32 bits of long constant (upper32 are 0).protected abstract void emit_fconst_0()
protected abstract void emit_fconst_1()
protected abstract void emit_fconst_2()
protected abstract void emit_dconst_0()
protected abstract void emit_dconst_1()
protected abstract void emit_ldc(Offset offset, byte type)
offset
- JTOC offset of the constanttype
- the type of the constantprotected abstract void emit_ldc2(Offset offset, byte type)
offset
- JTOC offset of the constanttype
- the type of the constantprotected abstract void emit_iload(int index)
index
- the local index to loadprotected abstract void emit_lload(int index)
index
- the local index to loadprotected abstract void emit_fload(int index)
index
- the local index to loadprotected abstract void emit_dload(int index)
index
- the local index to loadprotected abstract void emit_aload(int index)
index
- the local index to loadprotected abstract void emit_istore(int index)
index
- the local index to loadprotected abstract void emit_lstore(int index)
index
- the local index to loadprotected abstract void emit_fstore(int index)
index
- the local index to loadprotected abstract void emit_dstore(int index)
index
- the local index to loadprotected abstract void emit_astore(int index)
index
- the local index to loadprotected abstract void emit_iaload()
protected abstract void emit_laload()
protected abstract void emit_faload()
protected abstract void emit_daload()
protected abstract void emit_aaload()
protected abstract void emit_baload()
protected abstract void emit_caload()
protected abstract void emit_saload()
protected abstract void emit_iastore()
protected abstract void emit_lastore()
protected abstract void emit_fastore()
protected abstract void emit_dastore()
protected abstract void emit_aastore()
protected abstract void emit_bastore()
protected abstract void emit_castore()
protected abstract void emit_sastore()
protected abstract void emit_pop()
protected abstract void emit_pop2()
protected abstract void emit_dup()
protected abstract void emit_dup_x1()
protected abstract void emit_dup_x2()
protected abstract void emit_dup2()
protected abstract void emit_dup2_x1()
protected abstract void emit_dup2_x2()
protected abstract void emit_swap()
protected abstract void emit_iadd()
protected abstract void emit_isub()
protected abstract void emit_imul()
protected abstract void emit_idiv()
protected abstract void emit_irem()
protected abstract void emit_ineg()
protected abstract void emit_ishl()
protected abstract void emit_ishr()
protected abstract void emit_iushr()
protected abstract void emit_iand()
protected abstract void emit_ior()
protected abstract void emit_ixor()
protected abstract void emit_iinc(int index, int val)
index
- index of localval
- value to increment it byprotected abstract void emit_ladd()
protected abstract void emit_lsub()
protected abstract void emit_lmul()
protected abstract void emit_ldiv()
protected abstract void emit_lrem()
protected abstract void emit_lneg()
protected abstract void emit_lshl()
protected abstract void emit_lshr()
protected abstract void emit_lushr()
protected abstract void emit_land()
protected abstract void emit_lor()
protected abstract void emit_lxor()
protected abstract void emit_fadd()
protected abstract void emit_fsub()
protected abstract void emit_fmul()
protected abstract void emit_fdiv()
protected abstract void emit_frem()
protected abstract void emit_fneg()
protected abstract void emit_dadd()
protected abstract void emit_dsub()
protected abstract void emit_dmul()
protected abstract void emit_ddiv()
protected abstract void emit_drem()
protected abstract void emit_dneg()
protected abstract void emit_i2l()
protected abstract void emit_i2f()
protected abstract void emit_i2d()
protected abstract void emit_l2i()
protected abstract void emit_l2f()
protected abstract void emit_l2d()
protected abstract void emit_f2i()
protected abstract void emit_f2l()
protected abstract void emit_f2d()
protected abstract void emit_d2i()
protected abstract void emit_d2l()
protected abstract void emit_d2f()
protected abstract void emit_i2b()
protected abstract void emit_i2c()
protected abstract void emit_i2s()
protected abstract void emit_lcmp()
protected abstract void emit_DFcmpGL(boolean single, boolean unorderedGT)
single
- true
for float [f], false
for double [d]unorderedGT
- true
for [g], false
for [l]protected abstract void emit_if(int bTarget, TemplateCompilerFramework.BranchCondition bc)
bTarget
- target bytecode of the branchbc
- branch conditionprotected abstract void emit_if_icmp(int bTarget, TemplateCompilerFramework.BranchCondition bc)
bTarget
- target bytecode of the branchbc
- branch conditionprotected abstract void emit_if_acmpeq(int bTarget)
bTarget
- target bytecode of the branchprotected abstract void emit_if_acmpne(int bTarget)
bTarget
- target bytecode of the branchprotected abstract void emit_ifnull(int bTarget)
bTarget
- target bytecode of the branchprotected abstract void emit_ifnonnull(int bTarget)
bTarget
- target bytecode of the branchprotected abstract void emit_goto(int bTarget)
bTarget
- target bytecode of the branchprotected abstract void emit_jsr(int bTarget)
bTarget
- target bytecode of the jsrprotected abstract void emit_ret(int index)
index
- local variable containing the return addressprotected abstract void emit_tableswitch(int defaultval, int low, int high)
defaultval
- bcIndex of the default targetlow
- low value of switchhigh
- high value of switchprotected abstract void emit_lookupswitch(int defaultval, int npairs)
defaultval
- bcIndex of the default targetnpairs
- number of pairs in the lookup switchprotected abstract void emit_ireturn()
protected abstract void emit_lreturn()
protected abstract void emit_freturn()
protected abstract void emit_dreturn()
protected abstract void emit_areturn()
protected abstract void emit_return()
protected abstract void emit_unresolved_getstatic(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_resolved_getstatic(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_unresolved_putstatic(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_resolved_putstatic(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_unresolved_getfield(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_resolved_getfield(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_unresolved_putfield(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_resolved_putfield(FieldReference fieldRef)
fieldRef
- the referenced fieldprotected abstract void emit_unresolved_invokevirtual(MethodReference methodRef)
methodRef
- the referenced methodprotected abstract void emit_resolved_invokevirtual(MethodReference methodRef)
methodRef
- the referenced methodprotected abstract void emit_resolved_invokespecial(MethodReference methodRef, RVMMethod target)
methodRef
- the referenced methodtarget
- the method to invokeprotected abstract void emit_unresolved_invokespecial(MethodReference methodRef)
methodRef
- the referenced methodprotected abstract void emit_unresolved_invokestatic(MethodReference methodRef)
methodRef
- the referenced methodprotected abstract void emit_resolved_invokestatic(MethodReference methodRef)
methodRef
- the referenced methodprotected abstract void emit_invoke_compiledmethod(CompiledMethod cm)
protected abstract ForwardReference emit_pending_goto(int origidx)
protected abstract void emit_invokeinterface(MethodReference methodRef)
methodRef
- the referenced methodprotected abstract void emit_resolved_new(RVMClass typeRef)
typeRef
- The RVMClass
to instantiateprotected abstract void emit_unresolved_new(TypeReference typeRef)
typeRef
- TypeReference
to dynamically link & instantiateprotected abstract void emit_resolved_newarray(RVMArray array)
array
- the RVMArray
to instantiateprotected abstract void emit_unresolved_newarray(TypeReference typeRef)
typeRef
- typeReference to dynamically link & instantiateprotected abstract void emit_multianewarray(TypeReference typeRef, int dimensions)
typeRef
- typeReference to dynamically link & instantiatedimensions
- the number of dimensionsprotected abstract void emit_arraylength()
protected abstract void emit_athrow()
protected abstract void emit_checkcast(TypeReference typeRef)
typeRef
- the LHS typeprotected abstract void emit_checkcast_resolvedInterface(RVMClass type)
type
- the LHS typeprotected abstract void emit_checkcast_resolvedClass(RVMClass type)
type
- the LHS typeprotected abstract void emit_checkcast_final(RVMType type)
type
- the LHS typeprotected abstract void emit_instanceof(TypeReference typeRef)
typeRef
- the LHS typeprotected abstract void emit_instanceof_resolvedInterface(RVMClass type)
type
- the LHS typeprotected abstract void emit_instanceof_resolvedClass(RVMClass type)
type
- the LHS typeprotected abstract void emit_instanceof_final(RVMType type)
type
- the LHS typeprotected abstract void emit_monitorenter()
protected abstract void emit_monitorexit()
protected abstract void emit_loadretaddrconst(int bcIndex)
protected abstract String getCompilerName()