|
||||||||||
| 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_mips
| Nested Class Summary | |
(package private) class |
CodeGenerator_mips.mipsAggregateByReference
Convert aggregate parameter passing from by-value to by-reference. |
(package private) class |
CodeGenerator_mips.mipsArgumentPassingUtil
Processing of Save-and-Restore(SR), as utility class. |
(package private) static class |
CodeGenerator_mips.mipsAttr
mips's function attribute |
(package private) class |
CodeGenerator_mips.mipsSRR
Processing of Save-and-Restore Registers(SRR) |
(package private) class |
CodeGenerator_mips.RewrState
State label for rewriting engine. |
(package private) class |
CodeGenerator_mips.State
State label for instruction selection engine. |
| Nested classes inherited from class coins.backend.gen.CodeGenerator |
CodeGenerator.FunctionAttr, CodeGenerator.LexpToString, CodeGenerator.Match |
| Field Summary | |
CodeGenerator_mips.mipsAggregateByReference |
mipsAggregateByReferenceTrig
|
CodeGenerator_mips.mipsArgumentPassingUtil |
mipsArgumentPassing
|
CodeGenerator_mips.mipsSRR |
mipsSRRTrig
|
(package private) CodeGenerator_mips.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_mips()
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 |
emitAlign(java.io.PrintWriter out,
int align)
Emit data align |
(package private) void |
emitBeginningOfSegment(java.io.PrintWriter out,
java.lang.String segment)
Emit beginning of segment |
(package private) void |
emitCodeLabel(java.io.PrintWriter out,
java.lang.String label)
Emit label for code |
(package private) void |
emitComment(java.io.PrintWriter out,
java.lang.String comment)
print comment in assembly language. |
(package private) void |
emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
Emit data common |
(package private) void |
emitData(java.io.PrintWriter out,
int type,
LirNode node)
Emit data |
(package private) void |
emitDataLabel(java.io.PrintWriter out,
java.lang.String label)
Emit label for data |
(package private) void |
emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
Emit end of segment |
(package private) void |
emitIdent(java.io.PrintWriter out,
java.lang.String word)
Emit ident |
(package private) void |
emitLinkage(java.io.PrintWriter out,
SymStatic symbol)
Emit linkage information of symbol |
(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) void |
emitZeros(java.io.PrintWriter out,
int bytes)
Emit data zeros |
(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) void |
initializeMachineDep()
Do Machine-dependent initialization (subclass may override this). |
(package private) void |
initLabeling(LirFactory lir)
Initialize for labeling. |
(package private) void |
initRewriteLabeling()
Initialization for rewriting. |
(package private) java.lang.Object |
jmac1(LirNode x)
|
(package private) java.lang.String |
jmac10(java.lang.Object f,
java.lang.String rettype)
|
(package private) java.lang.String |
jmac11(java.lang.String x)
|
(package private) java.lang.String |
jmac12(java.lang.String x)
|
(package private) java.lang.String |
jmac13(java.lang.String x)
|
(package private) java.lang.String |
jmac2(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac3(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac4(java.lang.String x)
|
(package private) java.lang.String |
jmac5(java.lang.String x)
|
(package private) java.lang.String |
jmac6(java.lang.String x)
|
(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.Object f)
|
(package private) void |
labelTree(LirNode t)
Label LIR tree t. |
(package private) CodeGenerator.FunctionAttr |
newFunctionAttr(Function func)
Prepare new function attribute information(override for mips). |
(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 |
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_mips.State[] stateVec
public final CodeGenerator_mips.mipsSRR mipsSRRTrig
public final CodeGenerator_mips.mipsArgumentPassingUtil mipsArgumentPassing
public final CodeGenerator_mips.mipsAggregateByReference mipsAggregateByReferenceTrig
| Constructor Detail |
public CodeGenerator_mips()
| 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 CodeGeneratorvoid initializeMachineDep()
CodeGenerator
initializeMachineDep in class CodeGeneratorCodeGenerator.FunctionAttr newFunctionAttr(Function func)
newFunctionAttr in class CodeGeneratorLirNode rewriteFrame(LirNode node)
rewriteFrame in class CodeGeneratorpublic Transformer[] earlyRewritingSequence()
earlyRewritingSequence in class CodeGenerator
LirNode rewriteCONVUF(LirNode node,
BiList pre)
rewriteCONVUF in class CodeGenerator
LirNode rewriteCONVFU(LirNode node,
BiList pre)
rewriteCONVFU in class CodeGenerator
LirNode rewritePrologue(LirNode node,
BiList post)
rewritePrologue in class CodeGenerator
LirNode rewriteEpilogue(LirNode node,
BiList pre)
rewriteEpilogue in class CodeGenerator
LirNode rewriteCall(LirNode node,
BiList pre,
BiList post)
rewriteCall in class CodeGeneratorjava.lang.Object jmac1(LirNode x)
java.lang.String jmac2(java.lang.String x,
java.lang.String y)
java.lang.String jmac3(java.lang.String x,
java.lang.String y)
java.lang.String jmac4(java.lang.String x)
java.lang.String jmac5(java.lang.String x)
java.lang.String jmac6(java.lang.String x)
java.lang.String jmac7(java.lang.String x)
java.lang.String jmac8(java.lang.String x)
java.lang.String jmac9(java.lang.Object f)
java.lang.String jmac10(java.lang.Object f,
java.lang.String rettype)
java.lang.String jmac11(java.lang.String x)
java.lang.String jmac12(java.lang.String x)
java.lang.String jmac13(java.lang.String x)
java.lang.String segmentForConst()
segmentForConst in class CodeGeneratorpublic int alignForType(int type)
alignForType in class CodeGenerator
void emitComment(java.io.PrintWriter out,
java.lang.String comment)
CodeGenerator
emitComment in class CodeGenerator
void emitBeginningOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator
emitBeginningOfSegment in class CodeGenerator
void emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator
emitEndOfSegment in class CodeGenerator
void emitDataLabel(java.io.PrintWriter out,
java.lang.String label)
CodeGenerator
emitDataLabel in class CodeGenerator
void emitCodeLabel(java.io.PrintWriter out,
java.lang.String label)
CodeGenerator
emitCodeLabel in class CodeGenerator
void emitAlign(java.io.PrintWriter out,
int align)
emitAlign in class CodeGenerator
void emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
emitCommon in class CodeGenerator
void emitLinkage(java.io.PrintWriter out,
SymStatic symbol)
emitLinkage in class CodeGenerator
void emitZeros(java.io.PrintWriter out,
int bytes)
emitZeros in class CodeGenerator
void emitIdent(java.io.PrintWriter out,
java.lang.String word)
emitIdent in class CodeGenerator
void emitData(java.io.PrintWriter out,
int type,
LirNode node)
emitData in class CodeGenerator
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||