|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.backend.gen.CodeGenerator
coins.backend.gen.CodeGenerator_sparc
| Nested Class Summary | |
(package private) class |
CodeGenerator_sparc.RewrState
State label for rewriting engine. |
(package private) static class |
CodeGenerator_sparc.SparcAttr
Sparc's function attribute |
(package private) class |
CodeGenerator_sparc.State
State label for instruction selection engine. |
| Nested classes inherited from class coins.backend.gen.CodeGenerator |
CodeGenerator.FunctionAttr, CodeGenerator.LexpToString, CodeGenerator.Match |
| Field Summary | |
(package private) static int |
MAXREGPARAM
|
(package private) ImList |
regCallClobbers
|
(package private) LocalTransformer |
replaceConstTrig
Replace unresolved constants. |
(package private) CodeGenerator_sparc.State[] |
stateVec
State vector for labeling LIR nodes. |
| Fields inherited from class coins.backend.gen.CodeGenerator |
addrType, asmWriter, convention, debOut, disableRewrite, F128, F32, F64, func, funcAttrTbl, I16, I32, I64, I8, INLINECOPYUNIT, lexpConv, lir, localEarlyRewritingTrig, localLateRewritingTrig, machineName, machineParams, module, optSpeed, ProcessFramesTrig, root, typeParamWord |
| Constructor Summary | |
CodeGenerator_sparc()
Create code generator engine. |
|
| Method Summary | |
int |
alignForType(int type)
Return alignment for type. |
(package private) java.lang.String |
defaultRegsetForType(int type)
Return default register set for type. |
Transformer[] |
earlyRewritingSequence()
Return early time pre-rewriting sequence. |
(package private) void |
emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
Emit data common (.lcomm directive not available on SPARC) |
(package private) void |
emitData(java.io.PrintWriter out,
int type,
LirNode node)
Emit data |
(package private) java.lang.String |
emitLir(LirNode node)
Expand emit-macro for LirNode. |
(package private) java.lang.String |
emitList(ImList form,
boolean topLevel)
Expand emit-macro for list form. |
(package private) boolean |
equalArg(LirNode x,
LirNode y)
Return true if variable x and y are same. |
(package private) java.lang.Object |
expandBuildMacro(ImList form)
Expand building-macro. |
(package private) int |
getCost1(LirNode t,
int goal)
Return the cost for LIR node t and goal nonterminal goal. |
(package private) int |
getCost2(LirNode t,
int goal)
|
(package private) Rule |
getRule(LirNode t,
int goal)
Return the chosen rule for LIR node t and goal nonterminal goal. |
(package private) LirNode |
highword(LirNode exp)
Return higher 32bit of 64bit operand. |
(package private) void |
initializeMachineDep()
initialize |
(package private) void |
initLabeling(LirFactory lir)
Initialize for labeling. |
(package private) void |
initRewriteLabeling()
Initialization for rewriting. |
(package private) boolean |
isComplex(LirNode node)
Return true if node is a complex one. |
(package private) java.lang.Object |
jmac1(java.lang.Object x)
Return aggregate size & 0xfff. |
(package private) java.lang.String |
jmac10(java.lang.String x)
Return lower 32bit of memory/register/constant operand. |
(package private) java.lang.String |
jmac11(java.lang.String x)
Return upper 32bit of memory/register/constant operand. |
(package private) java.lang.String |
jmac12(java.lang.Object f)
|
(package private) java.lang.String |
jmac13(java.lang.Object f,
java.lang.String rettype)
|
(package private) java.lang.String |
jmac14(java.lang.String x)
|
(package private) java.lang.String |
jmac15()
|
(package private) java.lang.Object |
jmac2(java.lang.Object x,
java.lang.Object y)
Expand _set macro s.t. |
(package private) java.lang.Object |
jmac3(LirNode x)
|
(package private) java.lang.String |
jmac4(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac5(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac6(java.lang.String con)
|
(package private) java.lang.String |
jmac7(java.lang.String x)
|
(package private) java.lang.String |
jmac8(java.lang.String x)
|
(package private) java.lang.String |
jmac9(java.lang.String x)
|
(package private) void |
labelTree(LirNode t)
Label LIR tree t. |
Transformer[] |
lateRewritingSequence()
Return late time pre-rewriting sequence. |
(package private) LirNode |
lowword(LirNode exp)
Return lower 32bit of 64bit operand. |
(package private) int |
makeVaStart(LirNode arg)
Return offset for va_start position. |
(package private) CodeGenerator.FunctionAttr |
newFunctionAttr(Function func)
Prepare new function attribute information. |
(package private) java.lang.Object |
quiltLir(LirNode node)
Expand building-macro, for LirNode |
(package private) LirNode |
rewriteCall(LirNode node,
BiList pre,
BiList post)
Rewrite CALL node. |
(package private) LirNode |
rewriteCONVFU(LirNode node,
BiList pre)
Rewrite CONVFU(x) to: if (x < 2147483648) CONVFS(x) else CONVFS(x - 2147483648) + 214748648 |
(package private) LirNode |
rewriteCONVUF(LirNode node,
BiList pre)
Rewrite CONVUF |
(package private) LirNode |
rewriteDIVStoShift(LirNode node,
BiList pre)
|
(package private) LirNode |
rewriteEpilogue(LirNode node,
BiList pre)
Rewrite EPILOGUE |
(package private) LirNode |
rewriteFrame(LirNode node)
Rewrite FRAME node to target machine form. |
(package private) LirNode |
rewritePrologue(LirNode node,
BiList post)
Rewrite PROLOGUE |
(package private) LirNode |
rewriteTree(LirNode tree,
java.lang.String phase,
BiList pre,
BiList post)
Rewrite L-expression. |
(package private) java.lang.String |
segmentForConst()
Return segment for read-only constant. |
(package private) java.lang.String |
showLabel(LirNode t)
Return label state |
(package private) int |
startNT()
Return start nonterminal symbol. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
CodeGenerator_sparc.State[] stateVec
ImList regCallClobbers
final LocalTransformer replaceConstTrig
static final int MAXREGPARAM
| Constructor Detail |
public CodeGenerator_sparc()
| Method Detail |
void initRewriteLabeling()
CodeGenerator
initRewriteLabeling in class CodeGenerator
LirNode rewriteTree(LirNode tree,
java.lang.String phase,
BiList pre,
BiList post)
rewriteTree in class CodeGeneratorjava.lang.String defaultRegsetForType(int type)
defaultRegsetForType in class CodeGeneratorvoid initLabeling(LirFactory lir)
CodeGenerator
initLabeling in class CodeGeneratorjava.lang.String showLabel(LirNode t)
CodeGenerator
showLabel in class CodeGeneratorvoid labelTree(LirNode t)
CodeGenerator
labelTree in class CodeGenerator
Rule getRule(LirNode t,
int goal)
CodeGenerator
getRule in class CodeGenerator
int getCost1(LirNode t,
int goal)
CodeGenerator
getCost1 in class CodeGenerator
int getCost2(LirNode t,
int goal)
getCost2 in class CodeGeneratorint startNT()
CodeGenerator
startNT in class CodeGeneratorjava.lang.Object expandBuildMacro(ImList form)
expandBuildMacro in class CodeGeneratorjava.lang.Object quiltLir(LirNode node)
quiltLir in class CodeGenerator
java.lang.String emitList(ImList form,
boolean topLevel)
emitList in class CodeGeneratorjava.lang.String emitLir(LirNode node)
emitLir in class CodeGeneratorCodeGenerator.FunctionAttr newFunctionAttr(Function func)
CodeGenerator
newFunctionAttr in class CodeGeneratorint makeVaStart(LirNode arg)
boolean equalArg(LirNode x,
LirNode y)
CodeGenerator
equalArg in class CodeGenerator
LirNode rewriteDIVStoShift(LirNode node,
BiList pre)
LirNode rewriteCONVUF(LirNode node,
BiList pre)
rewriteCONVUF in class CodeGenerator
LirNode rewriteCONVFU(LirNode node,
BiList pre)
rewriteCONVFU in class CodeGeneratorLirNode rewriteFrame(LirNode node)
rewriteFrame in class CodeGeneratorpublic Transformer[] earlyRewritingSequence()
earlyRewritingSequence in class CodeGeneratorpublic Transformer[] lateRewritingSequence()
lateRewritingSequence in class CodeGenerator
LirNode rewritePrologue(LirNode node,
BiList post)
rewritePrologue in class CodeGenerator
LirNode rewriteEpilogue(LirNode node,
BiList pre)
rewriteEpilogue in class CodeGeneratorboolean isComplex(LirNode node)
isComplex in class CodeGenerator
LirNode rewriteCall(LirNode node,
BiList pre,
BiList post)
rewriteCall in class CodeGeneratorLirNode highword(LirNode exp)
LirNode lowword(LirNode exp)
java.lang.Object jmac1(java.lang.Object x)
java.lang.Object jmac2(java.lang.Object x,
java.lang.Object y)
java.lang.Object jmac3(LirNode x)
java.lang.String jmac4(java.lang.String x,
java.lang.String y)
java.lang.String jmac5(java.lang.String x,
java.lang.String y)
java.lang.String jmac6(java.lang.String con)
java.lang.String jmac7(java.lang.String x)
java.lang.String jmac8(java.lang.String x)
java.lang.String jmac9(java.lang.String x)
java.lang.String jmac10(java.lang.String x)
java.lang.String jmac11(java.lang.String x)
java.lang.String jmac12(java.lang.Object f)
java.lang.String jmac13(java.lang.Object f,
java.lang.String rettype)
java.lang.String jmac14(java.lang.String x)
java.lang.String jmac15()
public int alignForType(int type)
CodeGenerator
alignForType in class CodeGeneratorjava.lang.String segmentForConst()
CodeGenerator
segmentForConst in class CodeGenerator
void emitData(java.io.PrintWriter out,
int type,
LirNode node)
emitData in class CodeGenerator
void emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
emitCommon in class CodeGeneratorvoid initializeMachineDep()
initializeMachineDep in class CodeGenerator
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||