public abstract class AbstractAssembler extends Object
This class has been created to work around a bug whereby the system seems to have gotten confused by the relationship between:
ForwardReference -> ForwardReference.ShortBranch -> Assembler.ShortBranch, and Assembler
This problem does not exist under IA32 since there is no need for Assembler.ShortBranch.Constructor and Description |
---|
AbstractAssembler() |
Modifier and Type | Method and Description |
---|---|
abstract void |
baselineEmitLoadTIB(MachineRegister dest,
MachineRegister object)
The following method will emit code that moves a reference to an
object's TIB into a destination register.
|
abstract int |
getMachineCodeIndex() |
abstract CodeArray |
getMachineCodes() |
void |
noteBranchBytecode(int biStart,
String bcode,
int off,
int bt) |
abstract void |
noteBytecode(int biStart,
String msg) |
void |
noteBytecode(int biStart,
String bcode,
int x) |
void |
noteBytecode(int biStart,
String bcode,
int x,
int y) |
void |
noteBytecode(int biStart,
String bcode,
long x) |
void |
noteBytecode(int biStart,
String bcode,
Object o) |
void |
noteLookupswitchBytecode(int biStart,
int n,
int d) |
void |
noteTableswitchBytecode(int biStart,
int l,
int h,
int d) |
abstract void |
patchConditionalBranch(int sourceMachinecodeIndex) |
abstract void |
patchLoadReturnAddress(int sourceMachinecodeIndex) |
abstract void |
patchShortBranch(int sourceMachinecodeIndex) |
abstract void |
patchSwitchCase(int sourceMachinecodeIndex) |
abstract void |
patchUnconditionalBranch(int sourceMachinecodeIndex) |
abstract void |
resolveForwardReferences(int biStart) |
public AbstractAssembler()
public abstract void patchShortBranch(int sourceMachinecodeIndex)
public abstract void patchUnconditionalBranch(int sourceMachinecodeIndex)
public abstract void patchConditionalBranch(int sourceMachinecodeIndex)
public abstract void patchSwitchCase(int sourceMachinecodeIndex)
public abstract void patchLoadReturnAddress(int sourceMachinecodeIndex)
public abstract int getMachineCodeIndex()
public abstract CodeArray getMachineCodes()
public abstract void resolveForwardReferences(int biStart)
public abstract void noteBytecode(int biStart, String msg)
public final void noteBytecode(int biStart, String bcode, int x)
public final void noteBytecode(int biStart, String bcode, long x)
public final void noteBytecode(int biStart, String bcode, Object o)
public final void noteBytecode(int biStart, String bcode, int x, int y)
public final void noteBranchBytecode(int biStart, String bcode, int off, int bt)
public final void noteTableswitchBytecode(int biStart, int l, int h, int d)
public final void noteLookupswitchBytecode(int biStart, int n, int d)
public abstract void baselineEmitLoadTIB(MachineRegister dest, MachineRegister object)
dest
- the number of the destination registerobject
- the number of the register holding the object reference