|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.common.Machine scale.backend.trips2.Trips2Machine
public final class Trips2Machine
This is the base class for all Trips specific information.
$Id: Trips2Machine.java,v 1.49 2007-11-01 16:52:29 burrill Exp $
Copyright 2007 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
When an instance of this class is instantiated, it initializes a set of (key, value) items that describe the particular Trips architectural parameters to be used. The Trips architectural parameters are found by looking for the following files
./tcconfig.h
/projects/trips/toolchain/config/tcconfig.h
.h
file.
If one of these files is not found, defaults are used. Only lines from the description file of the form
#define name integerare processed. All other lines are ignored.
Field Summary | |
---|---|
static int |
ENTER
The different types of enter instructions. |
static int |
ENTERA
|
static int |
ENTERB
|
static int[] |
enterSizes
Number of instructions required to expand an enter, entera, enterb. |
static int |
maxBlockSize
Maximum number of instructions in a block. |
static int |
maxBranches
Maximum number of branches in a block. |
static int |
maxImmediate
Maximum size of an immediate field |
static int |
maxLSQEntries
Maximum number of load/store queue entries |
static int |
maxSignedConst
Maximum size of a signed Constant |
static int |
maxUnsignedConst
Maximum size of a unsigned Constant |
static int |
minImmediate
Minimum size of an immediate field |
static int |
minSignedConst
Minimum size of a signed Constatn |
static boolean |
nullifyWrites
If writes should be nullified. |
static boolean |
softwareFDIV
If true, use a library routine to do floating point division. |
static java.lang.String |
tcconfigPath
Default path to the tcconfig file. |
static int |
tilVersion
Version of TIL to be generated. |
Constructor Summary | |
---|---|
Trips2Machine()
Create a Machine instance for an trips. |
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 |
getAsmFileExtension()
Return the file extension to use for an assembler source file. |
int |
getConfigValue(java.lang.String key)
Return the intger value for the specified key. |
java.lang.String |
getGenericArchitectureName()
Return the name of the generic target architecture. |
ICEstimator |
getInstructionCountEstimator()
Return the proper instruction count estimator for the target architecture. |
int |
getMaxBlockSize()
For architectures that block instructions, this is the maximum number of instructions that can be in a block. |
static boolean |
isImmediate(long value)
Return true if the value is a valid value for an immediate field. |
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. |
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 int tilVersion
public static int maxImmediate
public static int minImmediate
public static int maxUnsignedConst
public static int maxSignedConst
public static int minSignedConst
public static int maxLSQEntries
public static int maxBlockSize
public static int maxBranches
public static int[] enterSizes
public static boolean softwareFDIV
public static final int ENTER
public static final int ENTERA
public static final int ENTERB
public static boolean nullifyWrites
public static java.lang.String tcconfigPath
Constructor Detail |
---|
public Trips2Machine()
Method Detail |
---|
public java.lang.String getGenericArchitectureName()
getGenericArchitectureName
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 understoodprotected 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 getArchitectureName()
getArchitectureName
in class Machine
public java.lang.String getAsmFileExtension()
getAsmFileExtension
in class Machine
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 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 int generalAlignment()
generalAlignment
in class Machine
public final int stackAlignment(Type type)
stackAlignment
in class Machine
public boolean littleEndian()
littleEndian
in class Machine
public int getConfigValue(java.lang.String key)
key
- is the String that specifies the parameter and case sensitivepublic static boolean isImmediate(long value)
public boolean keepTypeInRegister(Type type, boolean temporary)
keepTypeInRegister
in class Machine
type
- is the typetemporary
- is true if the duration will be shortpublic ICEstimator getInstructionCountEstimator()
getInstructionCountEstimator
in class Machine
public int getMaxBlockSize()
getMaxBlockSize
in class Machine
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |