|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.backend.Assembler scale.backend.sparc.SparcAssembler
public final class SparcAssembler
This class generates Sparc assembly language from a list of Sparc instructions.
$Id: SparcAssembler.java,v 1.41 2007-10-04 19:57:57 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 |
---|
Fields inherited from class scale.backend.Assembler |
---|
gen, hex, oneItemPerLine, repsAllowedInAL, source |
Constructor Summary | |
---|---|
SparcAssembler(Generator gen,
java.lang.String source)
|
Method Summary | |
---|---|
void |
assembleComment(java.lang.String comment,
Emit emit)
Insert the assembler representation of the comment into the output stream. |
long |
assembleData(Emit emit,
SpaceAllocation sa,
long location)
Called for each allocation in a named area. |
void |
assembleDataAreaHeader(Emit emit,
int kind)
Generate assembler directives for the start of a data area. |
void |
assembleDataEnd(Emit emit,
SpaceAllocation sa,
long location)
Called when a named area is ended. |
void |
assembleEpilog(Emit emit)
Called at the very end of generating assembly code. |
void |
assembleLabel(Label label,
Emit emit)
Generate a label in the assembly output. |
void |
assembleProlog(Emit emit)
Called at the very beginning of generating assembly code. |
java.lang.String |
assembleRegister(int reg)
Convert a register number into its assembly language form. |
protected void |
genAsciiText(Emit emit,
java.lang.String str)
Generate the assembly directive required to generate an ASCII text string. |
protected long |
genData(Emit emit,
int dt,
double[] data,
int reps,
boolean aligned)
Generate the assembly representation of an array of double values. |
protected long |
genData(Emit emit,
int dt,
double data,
int reps,
boolean aligned)
Generate the assembly representation of double floating point value. |
protected long |
genData(Emit emit,
int dt,
Label lab,
int reps,
boolean aligned)
Generate the data representation for address of the label. |
protected long |
genData(Emit emit,
int dt,
long[] data,
int reps,
boolean aligned)
Generate the assembly representation of an array of long values. |
protected long |
genData(Emit emit,
int dt,
long data,
int reps,
boolean aligned)
Generate the assembly representation of long integer value. |
protected void |
genDirective(Emit emit,
int dt)
Generate the assembly directive required for the type. |
protected void |
genZeroFill(Emit emit,
long size)
Generate the assembly directive required to generate a zero-filled area. |
protected int |
getDirectiveSize(int dt)
Return the number of addressable units required for one value of the specified type. |
java.lang.String |
getLabelString(Label label)
Return the String representing the label. |
Methods inherited from class scale.backend.Assembler |
---|
assemble, assembleDataBegin, assembleInstructions, genBytes, genData, genData, genData, genData, genData, genData, getDisplayString, getName, getSourceLanguage, getSpaceAllocation, isFortran |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SparcAssembler(Generator gen, java.lang.String source)
gen
- is the instruction generator used to generate the
instructions.source
- specifies the source programMethod Detail |
---|
public void assembleProlog(Emit emit)
assembleProlog
in class Assembler
public void assembleEpilog(Emit emit)
assembleEpilog
in class Assembler
public java.lang.String getLabelString(Label label)
getLabelString
in class Assembler
public void assembleLabel(Label label, Emit emit)
assembleLabel
in class Assembler
public void assembleComment(java.lang.String comment, Emit emit)
assembleComment
in class Assembler
public java.lang.String assembleRegister(int reg)
assembleRegister
in class Assembler
public void assembleDataAreaHeader(Emit emit, int kind)
assembleDataAreaHeader
in class Assembler
emit
- is the sink for the generated assembly codekind
- specifies the area kindprotected void genDirective(Emit emit, int dt)
genDirective
in class Assembler
dt
- - the data typeemit
- specifies where to put the directive.SpaceAllocation
protected int getDirectiveSize(int dt)
getDirectiveSize
in class Assembler
dt
- - the data typeSpaceAllocation
protected void genZeroFill(Emit emit, long size)
genZeroFill
in class Assembler
emit
- specifies where to put the directive.size
- is the number of bytes of zeros requiredSpaceAllocation
protected void genAsciiText(Emit emit, java.lang.String str)
genAsciiText
in class Assembler
emit
- specifies where to put the directive.str
- is the stringpublic long assembleData(Emit emit, SpaceAllocation sa, long location)
assembleData
in class Assembler
emit
- is the output sinksa
- is the data spacelocation
- is the current locationpublic void assembleDataEnd(Emit emit, SpaceAllocation sa, long location)
assembleDataEnd
in class Assembler
emit
- is the output sinksa
- is the data spacelocation
- is the current locationprotected long genData(Emit emit, int dt, long data, int reps, boolean aligned)
long
integer value.
genData
in class Assembler
emit
- specifies where to generate the datadt
- specifies the data typedata
- specifies the valuereps
- specifies how many times to generate the representationaligned
- specifies whether the data will be aligned
SpaceAllocation
protected long genData(Emit emit, int dt, double data, int reps, boolean aligned)
double
floating point value.
genData
in class Assembler
emit
- specifies where to generate the datadt
- specifies the data typedata
- specifies the valuereps
- specifies how many times to generate the representationaligned
- specifies whether the data will be aligned
SpaceAllocation
protected long genData(Emit emit, int dt, long[] data, int reps, boolean aligned)
genData
in class Assembler
emit
- specifies where to generate the datadt
- specifies the data typedata
- specifies the valuesreps
- specifies how many times to generate the representationaligned
- specifies whether the data will be aligned
SpaceAllocation
protected long genData(Emit emit, int dt, double[] data, int reps, boolean aligned)
genData
in class Assembler
emit
- specifies where to generate the datadt
- specifies the data typedata
- specifies the valuesreps
- specifies how many times to generate the representationaligned
- specifies whether the data will be aligned
SpaceAllocation
protected long genData(Emit emit, int dt, Label lab, int reps, boolean aligned)
genData
in class Assembler
emit
- specifies where to generate the datadt
- specifies the data typelab
- is the labelreps
- specifies how many times to generate the representationaligned
- specifies whether the data will be aligned
SpaceAllocation
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |