|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.common.Machine
scale.backend.sparc.SparcMachine
public class SparcMachine
This is the base class for all Sparc specific information.
$Id: SparcMachine.java,v 1.29 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 |
V8
Specifies the Sparc V8 architecture and the 32-bit ABI. |
static int |
V8PLUS
Specifies the Sparc V9 architecture and the 32-bit ABI. |
static int |
V8PLUSA
Specifies the Sparc V9 architecture with the Visual Instruction Set and the 32-bit ABI. |
static int |
V8PLUSB
Specifies the Sparc V9 architecture with the Visual Instruction Set (Version 2) and the 32-bit ABI. |
static int |
V9
Specifies the Sparc V9 architecture and the 64-bit ABI. |
static int |
V9A
Specifies the Sparc V9 architecture with the Visual Instruction Set and the 64-bit ABI. |
static int |
V9B
Specifies the Sparc V9 architecture with the Visual Instruction Set (Version 2) and the 64-bit ABI. |
| Constructor Summary | |
|---|---|
SparcMachine()
Create a Machine instance for an sparc. |
|
| 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. |
java.lang.String |
getGenericArchitectureName()
Return the name of the generic target architecture. |
int |
getISA()
Return the specific instruction set architecture. |
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. |
protected void |
setLongDoubleType()
Set the type to be used for the C long double type. |
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 final int V8
public static final int V8PLUS
public static final int V8PLUSA
public static final int V8PLUSB
public static final int V9
public static final int V9A
public static final int V9B
| Constructor Detail |
|---|
public SparcMachine()
| 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 Machinepublic java.lang.String getGenericArchitectureName()
getGenericArchitectureName in class Machinepublic 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 Machinearchitecture - specifies the target architectureextension - specifies an extension to the a target architecture
java.lang.Exception - if the extension is not understoodpublic final int getISA()
public int alignData(int dataSize)
(0 == address % alignment)
for the data size specified.
alignData in class MachinedataSize - is the size of the data in addressable units.public int addressableMemoryUnits(int bitSize)
addressableMemoryUnits in class MachinebitSize - is the number of bits required for the datapublic int executionCostEstimate(long value)
executionCostEstimate in class Machinepublic int executionCostEstimate(double value)
executionCostEstimate in class Machinepublic void addCPPFlags(Vector<java.lang.String> v)
addCPPFlags in class Machinepublic final int generalAlignment()
generalAlignment in class Machinepublic final int stackAlignment(Type type)
stackAlignment in class Machinepublic boolean littleEndian()
littleEndian in class Machinepublic java.lang.String getAssemblerCommand(int backendFeatures)
getAssemblerCommand in class MachinebackendFeatures - specifies code generation flags such as -g
public boolean keepTypeInRegister(Type type,
boolean temporary)
keepTypeInRegister in class Machinetype - is the typetemporary - is true if the duration will be shortprotected void setLongDoubleType()
long double type.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||