|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.backend.RegisterSet scale.backend.ppc.PPCRegisterSet scale.backend.ppc.PPCG4RegisterSet
public class PPCG4RegisterSet
This class describes the register set of the G4 PowerPC.
$Id: PPCG4RegisterSet.java,v 1.12 2007-10-04 19:57:55 burrill Exp $
Copyright 2007 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
The PPC has 67 programmable registers. The first 32 registers are used for integer values and addresses. This includes the stack pointer and other housekeeping registers. Registers 32 through 62 are used for floating point values.
Field Summary | |
---|---|
static short[] |
actualRegisters
The types of real registers on the PPC. |
static short[] |
calleeSavesLinux
The registers that a callee must save and restore if they are used by the callee. |
static short[] |
calleeSavesMacosx
The registers that a callee must save and restore if they are used by the callee. |
static short[] |
calleeUsesLinux
The registers that a callee can use without saving and restoring. |
static short[] |
calleeUsesMacosx
The registers that a callee can use without saving and restoring. |
static int |
FREG_SIZE
Size in bytes of integer register. |
static int |
IREG_SIZE
Size in bytes of integer register. |
static short[] |
preferredOrder
The preferred order in which registers should be allocated. |
Fields inherited from class scale.backend.ppc.PPCRegisterSet |
---|
FFA_REG, FIA_REG, FR_REG, IR_REG, LFA_REG_LINUX, LFA_REG_MACOSX, LIA_REG, SP_REG, TOC_REG |
Fields inherited from class scale.backend.RegisterSet |
---|
ADRREG, AFIREG, AIREG, checkMask, CNTREG, DBLEREG, FIREG, FLTREG, INTREG, nextRegister, PAIRREG, QUADREG, RDREG, registers, sizeMask, SPCREG, typeMask |
Constructor Summary | |
---|---|
PPCG4RegisterSet(boolean macosx)
|
Method Summary | |
---|---|
int |
actualRegister(int reg)
For architecture where a pseudo register are mapped onto actual registers, return the actual register. |
short[] |
getCalleeSaves()
Return the callee saves registers. |
short[] |
getCalleeUses()
Return the callee uses registers. |
short[] |
getPreferredOrder()
Return a mapping from an order index to a real register number. |
int |
rangeBegin(int reg)
Return the first real register that is affected when this register is modified. |
int |
rangeEnd(int reg)
Return the last real register that is affected when this register is modified. |
java.lang.String |
registerName(int reg)
Convert a register number into its assembly language form. |
int |
tempRegisterType(int type,
int bs)
Return the type with the size information added. |
int |
tempRegisterType(Type type,
long bs)
Return the register type with the size information added. |
Methods inherited from class scale.backend.ppc.PPCRegisterSet |
---|
numAllocatableRegisters, registerSize |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int IREG_SIZE
public static final int FREG_SIZE
public static final short[] actualRegisters
public static final short[] preferredOrder
public static final short[] calleeUsesLinux
public static final short[] calleeUsesMacosx
public static final short[] calleeSavesMacosx
public static final short[] calleeSavesLinux
Constructor Detail |
---|
public PPCG4RegisterSet(boolean macosx)
Method Detail |
---|
public java.lang.String registerName(int reg)
registerName
in class RegisterSet
public short[] getPreferredOrder()
getPreferredOrder
in class RegisterSet
public short[] getCalleeSaves()
getCalleeSaves
in class RegisterSet
public short[] getCalleeUses()
getCalleeUses
in class RegisterSet
public final int rangeBegin(int reg)
rangeBegin
in class RegisterSet
public final int rangeEnd(int reg)
rangeEnd
in class RegisterSet
public int actualRegister(int reg)
SparcV8RegisterSet
where a 64-bit long long
register
is mapped onto a set of two 32-bit registers.
actualRegister
in class RegisterSet
public int tempRegisterType(Type type, long bs)
tempRegisterType
in class RegisterSet
type
- is the type requiredbs
- is the size requiredpublic int tempRegisterType(int type, int bs)
tempRegisterType
in class RegisterSet
type
- is the type requiredbs
- is the size required
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |