public final class Register extends Object
RegisterOperand
,
GenericRegisterPool
Modifier and Type | Field and Description |
---|---|
private static int |
ADDRESS |
static int |
ADDRESS_TYPE |
private static int |
ALLOCATED |
private static int |
CONDITION |
static int |
CONDITION_TYPE |
RegisterOperand |
defList
Used to store register lists.
|
private static int |
DOUBLE |
static int |
DOUBLE_TYPE |
private static int |
EXCLUDE_LIVEANAL |
private int |
flags
Encoding of register properties & scratch bits
|
private static int |
FLOAT |
static int |
FLOAT_TYPE |
private static int |
INTEGER |
static int |
INTEGER_TYPE |
private static int |
LOCAL |
private static int |
LONG |
static int |
LONG_TYPE |
Register |
mapsToRegister |
(package private) Register |
next |
private static int |
NON_VOLATILE |
int |
number
Index number relative to register pool.
|
private static int |
PHYSICAL |
private static int |
PINNED |
(package private) Register |
prev |
private static int |
SEEN_USE |
private static int |
SPAN_BASIC_BLOCK |
private static int |
SPILLED |
private static int |
SSA |
private static int |
TOUCHED |
private static int |
TYPE_MASK |
private static int |
TYPE_SHIFT |
int |
useCount
The number of uses; used by flow-insensitive optimizations
|
RegisterOperand |
useList
Used to store register lists.
|
private static int |
VALIDATION |
static int |
VALIDATION_TYPE |
private static int |
VOLATILE |
Constructor and Description |
---|
Register(int Number) |
public final int number
private int flags
private static final int LOCAL
private static final int SPAN_BASIC_BLOCK
private static final int SSA
private static final int SEEN_USE
private static final int PHYSICAL
private static final int TYPE_SHIFT
private static final int ADDRESS
private static final int INTEGER
private static final int FLOAT
private static final int DOUBLE
private static final int CONDITION
private static final int LONG
private static final int VALIDATION
private static final int VOLATILE
private static final int NON_VOLATILE
private static final int EXCLUDE_LIVEANAL
private static final int SPILLED
private static final int TOUCHED
private static final int ALLOCATED
private static final int PINNED
private static final int TYPE_MASK
public static final int ADDRESS_TYPE
public static final int INTEGER_TYPE
public static final int FLOAT_TYPE
public static final int DOUBLE_TYPE
public static final int CONDITION_TYPE
public static final int LONG_TYPE
public static final int VALIDATION_TYPE
public RegisterOperand defList
public RegisterOperand useList
public int useCount
public Register mapsToRegister
public Register(int Number)
public boolean isTemp()
public boolean isLocal()
public boolean spansBasicBlock()
public boolean isSSA()
public boolean seenUse()
public boolean isPhysical()
public boolean isSymbolic()
public boolean isAddress()
public boolean isInteger()
public boolean isLong()
public boolean isNatural()
public boolean isFloat()
public boolean isDouble()
public boolean isFloatingPoint()
public boolean isCondition()
public boolean isValidation()
public boolean isExcludedLiveA()
public int getType()
public boolean isVolatile()
public boolean isNonVolatile()
public void setLocal()
public void setSpansBasicBlock()
public void setSSA()
public void setSeenUse()
public void setPhysical()
public void setAddress()
public void setInteger()
public void setFloat()
public void setDouble()
public void setLong()
public void setCondition()
public void setValidation()
public void setExcludedLiveA()
public void setVolatile()
public void setNonVolatile()
public void putSSA(boolean a)
public void putSpansBasicBlock(boolean a)
public void clearLocal()
public void clearSpansBasicBlock()
public void clearSSA()
public void clearSeenUse()
public void clearPhysical()
public void clearAddress()
public void clearInteger()
public void clearFloat()
public void clearDouble()
public void clearLong()
public void clearCondition()
public void clearType()
public void clearValidation()
public Instruction getFirstDef()
null
if
no def list is availablepublic int getNumber()
public void clearAllocationFlags()
public void pinRegister()
public void reserveRegister()
public void touchRegister()
public void allocateRegister()
public void allocateRegister(Register reg)
public void allocateToRegister(Register reg)
public void deallocateRegister()
public void freeRegister()
public void spillRegister()
public void clearSpill()
public void unpinRegister()
public boolean isTouched()
public boolean isAllocated()
public boolean isSpilled()
public boolean isPinned()
public boolean isAvailable()
public Register getRegisterAllocated()
public void linkWithNext(Register Next)