|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.common.Machine scale.backend.alpha.AlphaMachine
public class AlphaMachine
This is the base class for all Alpha specific information.
$Id: AlphaMachine.java,v 1.40 2007-11-01 16:52:28 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Field Summary | |
---|---|
static int |
FU_BRANCH
|
static int |
FU_FPALU
|
static int |
FU_INTALU
|
static int |
FU_LDST
|
static int |
FU_NONE
|
Constructor Summary | |
---|---|
AlphaMachine()
Create a Machine instance for an alpha. |
Method Summary | |
---|---|
void |
addCPPFlags(Vector<java.lang.String> v)
Add the flags necessary for the C preprocessor. |
int |
addressableMemoryUnits(int bitSize)
Return the number of addressable units required |
int |
alignData(int dataSize)
Return the integer value alignmentthat satisfies (0 == address % alignment)
for the data size specified. |
java.lang.String |
determineArchitecture(java.lang.String architecture,
java.lang.String extension)
Determine the architecture sub-type. |
int |
executionCostEstimate(double value)
Return an estimate of the execution cost to provide this value. |
int |
executionCostEstimate(long value)
Return an estimate of the execution cost to provide this value. |
int |
generalAlignment()
Return the most general purpose alignment in memory units. |
java.lang.String |
getArchitectureName()
Return the name of the specific target architecture. |
java.lang.String |
getAssemblerCommand(int backendFeatures)
Return the assembler command appropriate to the architecture. |
byte[] |
getFunctionalUnitDescriptions()
Return the functional unit information. |
java.lang.String |
getGenericArchitectureName()
Return the name of the generic target architecture. |
boolean |
hasBWX()
Return true if processor has the BWX extensions. |
boolean |
hasCIX()
Return true if processor has the CIX extensions. |
boolean |
hasFIX()
Return true if processor has the FIX extensions. |
boolean |
hasMVI()
Return true if processor has the MVI extensions. |
boolean |
keepTypeInRegister(Type type,
boolean temporary)
Return true if a value of the type should be allocated to a register. |
boolean |
littleEndian()
Return true if the machine is little-endian. |
int |
maxBitFieldSize()
Return the maximum bit field size (64) in bits. |
protected void |
setup()
Setup this instance of the machine. |
boolean |
simpleInteger(long value)
Return true if it is faster to generate the integer value than to load it. |
int |
stackAlignment(Type type)
Return the alignment of things stored on the stack. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int FU_NONE
public static final int FU_LDST
public static final int FU_INTALU
public static final int FU_FPALU
public static final int FU_BRANCH
Constructor Detail |
---|
public AlphaMachine()
Method Detail |
---|
protected void setup()
Machine
protected void setup() { super.setup(); // Initialize type, etc that are not set here. // Specify the types that are different. PointerType.setMinBitSize(64); intCalcType = scale.clef.type.SignedIntegerType.create(64); .... }
setup
in class Machine
public java.lang.String getGenericArchitectureName()
getGenericArchitectureName
in class Machine
public java.lang.String getArchitectureName()
getArchitectureName
in class Machine
public java.lang.String determineArchitecture(java.lang.String architecture, java.lang.String extension) throws java.lang.Exception
determineArchitecture
in class Machine
architecture
- specifies the target architectureextension
- specifies an extension to the a target architecture
java.lang.Exception
- if the extension is not understoodpublic final boolean hasBWX()
public final boolean hasFIX()
public final boolean hasCIX()
public final boolean hasMVI()
public int alignData(int dataSize)
(0 == address % alignment)
for the data size specified.
alignData
in class Machine
dataSize
- is the size of the data in addressable units.public int addressableMemoryUnits(int bitSize)
addressableMemoryUnits
in class Machine
bitSize
- is the number of bits required for the datapublic boolean simpleInteger(long value)
public int executionCostEstimate(long value)
executionCostEstimate
in class Machine
public int executionCostEstimate(double value)
executionCostEstimate
in class Machine
public int maxBitFieldSize()
maxBitFieldSize
in class Machine
public void addCPPFlags(Vector<java.lang.String> v)
addCPPFlags
in class Machine
public final int generalAlignment()
generalAlignment
in class Machine
public final int stackAlignment(Type type)
stackAlignment
in class Machine
public boolean littleEndian()
littleEndian
in class Machine
public java.lang.String getAssemblerCommand(int backendFeatures)
getAssemblerCommand
in class Machine
backendFeatures
- specifies code generation flags such as -gpublic boolean keepTypeInRegister(Type type, boolean temporary)
keepTypeInRegister
in class Machine
type
- is the typetemporary
- is true if the duration will be shortpublic byte[] getFunctionalUnitDescriptions()
getFunctionalUnitDescriptions
in class Machine
Instruction.getFunctionalUnit()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |