org.jikesrvm
Class MachineSpecific

java.lang.Object
  extended by org.jikesrvm.MachineSpecific
Direct Known Subclasses:
MachineSpecificIA

public abstract class MachineSpecific
extends Object

Wrappers around machine specific code


Constructor Summary
MachineSpecific()
           
 
Method Summary
 void adjustESP(ArchitectureSpecific.Registers registers, Offset delta, boolean traceAdjustments)
          A thread's stack has been moved or resized.
abstract  void baselineEmitLoadTIB(ArchitectureSpecific.Assembler asm, int dest, int object, Offset tibOffset)
          The following method will emit code that moves a reference to an object's TIB into a destination register.
abstract  void initializeStack(ArchitectureSpecific.Registers contextRegisters, Address ip, Address sp)
          The following method initializes a thread stack as if "startoff" method had been called by an empty baseline-compiled "sentinel" frame with one local variable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MachineSpecific

public MachineSpecific()
Method Detail

baselineEmitLoadTIB

public abstract void baselineEmitLoadTIB(ArchitectureSpecific.Assembler asm,
                                         int dest,
                                         int object,
                                         Offset tibOffset)
The following method will emit code that moves a reference to an object's TIB into a destination register.

Parameters:
asm - the assembler object to emit code with
dest - the number of the destination register
object - the number of the register holding the object reference
tibOffset - the offset of the TIB from the object header

initializeStack

public abstract void initializeStack(ArchitectureSpecific.Registers contextRegisters,
                                     Address ip,
                                     Address sp)
The following method initializes a thread stack as if "startoff" method had been called by an empty baseline-compiled "sentinel" frame with one local variable.

Parameters:
contextRegisters - The context registers for this thread
ip - The instruction pointer for the "startoff" method
sp - The base of the stack

adjustESP

public void adjustESP(ArchitectureSpecific.Registers registers,
                      Offset delta,
                      boolean traceAdjustments)
A thread's stack has been moved or resized. Adjust the ESP register to reflect new position.

Parameters:
registers - The registers for this thread
delta - The displacement to be applied
traceAdjustments - Log all adjustments to stderr if true