Package | Description |
---|---|
org.jikesrvm.compilers.opt.regalloc |
Modifier and Type | Field and Description |
---|---|
protected ArrayList<GenericStackManager.ScratchRegister> |
GenericStackManager.scratchInUse
For each physical register, holds a ScratchRegister which records
the current scratch assignment for the physical register.
|
Modifier and Type | Method and Description |
---|---|
private GenericStackManager.ScratchRegister |
GenericStackManager.createScratchBefore(RegisterAllocatorState regAllocState,
Instruction s,
Register r,
Register symb)
Make physicals register r available to be used as a scratch register
before instruction s.
|
private GenericStackManager.ScratchRegister |
GenericStackManager.getCurrentScratchRegister(Register r,
Instruction s)
If there is a scratch register available which currently holds the
value of symbolic register r, then return that scratch register.
|
private GenericStackManager.ScratchRegister |
GenericStackManager.getFirstAvailableScratchRegister(Register r,
Instruction s)
Finds the first available register which can serve as a scratch
register for symbolic register r in instruction s.
|
private GenericStackManager.ScratchRegister |
GenericStackManager.getPhysicalScratchRegister(Register r) |
private GenericStackManager.ScratchRegister |
GenericStackManager.getScratchRegister(Register symb,
Instruction s,
boolean beCheap)
Gets a scratch register to hold symbolic register symb in instruction
s.
|
private GenericStackManager.ScratchRegister |
GenericStackManager.getScratchRegisterUsingIntervals(Register r,
Instruction s)
Finds a register which can serve as a scratch
register for symbolic register r in instruction s.
|
private GenericStackManager.ScratchRegister |
GenericStackManager.holdInScratchAfter(Instruction s,
Register symb,
boolean beCheap)
Inserts code as needed so that after instruction s, the value of
a symbolic register will be held in a particular scratch physical
register.
|
private GenericStackManager.ScratchRegister |
GenericStackManager.moveToScratchBefore(Instruction s,
Register symb,
boolean beCheap)
Assigns symbolic register symb to a physical register, and inserts code
before instruction s to load the register from the appropriate stack
location.
|
Modifier and Type | Method and Description |
---|---|
protected void |
GenericStackManager.reloadScratchRegisterBefore(Instruction s,
GenericStackManager.ScratchRegister scratch)
Restores the contents of a scratch register before instruction s if
necessary.
|
protected void |
GenericStackManager.unloadScratchRegisterBefore(Instruction s,
GenericStackManager.ScratchRegister scratch)
Spills the contents of a scratch register to memory before
instruction s.
|