|
||||||||||
| 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_alpha
| Nested Class Summary | |
(package private) static class |
CodeGenerator_alpha.AlphaAttr
|
(package private) class |
CodeGenerator_alpha.RewrState
State label for rewriting engine. |
(package private) class |
CodeGenerator_alpha.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 |
FirstArgument
|
(package private) static int |
NumRegArgument
|
(package private) ImList |
regCallClobbers
|
(package private) static int |
Regsize
|
(package private) CodeGenerator_alpha.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_alpha()
Create code generator engine. |
|
| Method Summary | |
(package private) java.lang.String |
_getRegsetOf(Symbol sym)
|
(package private) void |
_setRegsetOf(Symbol sym,
java.lang.String regset)
|
int |
alignForType(int type)
Return the alignment bytes for specified 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 |
emitBeginningOfModule(java.io.PrintWriter out)
|
(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 |
emitData(java.io.PrintWriter out,
int type,
LirNode node)
Emit data for big endian machine. |
(package private) void |
emitDataLabel(java.io.PrintWriter out,
java.lang.String label)
Emit label for data |
(package private) void |
emitEndOfModule(java.io.PrintWriter out)
|
(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 str)
Print .ident in assembly language. |
(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 |
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(LirNode x)
|
(package private) java.lang.String |
jmac10(java.lang.String dest,
java.lang.String src)
|
(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 |
jmac14(java.lang.String x)
|
(package private) java.lang.Object |
jmac2(java.lang.Object name)
|
(package private) java.lang.String |
jmac3(java.lang.Object f)
|
(package private) java.lang.String |
jmac4(java.lang.Object f,
java.lang.String rettype)
|
(package private) java.lang.String |
jmac5(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac6(java.lang.String x,
java.lang.String y)
|
(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,
java.lang.String y)
|
(package private) void |
labelTree(LirNode t)
Label LIR tree t. |
Transformer[] |
lateRewritingSequence()
Return late time pre-rewriting sequence. |
(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 |
returnReg(int type)
|
(package private) LirNode |
rewriteCall(LirNode node,
BiList pre,
BiList post)
Rewrite CALL. |
(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_alpha.State[] stateVec
ImList regCallClobbers
static final int Regsize
static final int FirstArgument
static final int NumRegArgument
| Constructor Detail |
public CodeGenerator_alpha()
| 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 CodeGeneratorLirNode rewriteFrame(LirNode node)
CodeGenerator
rewriteFrame in class CodeGeneratorpublic Transformer[] earlyRewritingSequence()
CodeGenerator
earlyRewritingSequence in class CodeGeneratorpublic Transformer[] lateRewritingSequence()
CodeGenerator
lateRewritingSequence in class CodeGenerator
void _setRegsetOf(Symbol sym,
java.lang.String regset)
java.lang.String _getRegsetOf(Symbol sym)
LirNode rewritePrologue(LirNode node,
BiList post)
CodeGenerator
rewritePrologue in class CodeGeneratorLirNode returnReg(int type)
LirNode rewriteEpilogue(LirNode node,
BiList pre)
CodeGenerator
rewriteEpilogue in class CodeGeneratorboolean isComplex(LirNode node)
CodeGenerator
isComplex in class CodeGenerator
LirNode rewriteCall(LirNode node,
BiList pre,
BiList post)
CodeGenerator
rewriteCall in class CodeGeneratorjava.lang.String segmentForConst()
CodeGenerator
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 CodeGeneratorvoid emitBeginningOfModule(java.io.PrintWriter out)
void emitEndOfModule(java.io.PrintWriter out)
void emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator
emitEndOfSegment in class CodeGeneratorCodeGenerator.FunctionAttr newFunctionAttr(Function func)
CodeGenerator
newFunctionAttr in class CodeGenerator
void emitBeginningOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator
emitBeginningOfSegment 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 emitLinkage(java.io.PrintWriter out,
SymStatic symbol)
CodeGenerator
emitLinkage in class CodeGenerator
void emitZeros(java.io.PrintWriter out,
int bytes)
CodeGenerator
emitZeros in class CodeGenerator
void emitData(java.io.PrintWriter out,
int type,
LirNode node)
CodeGenerator
emitData in class CodeGeneratorjava.lang.Object jmac1(LirNode x)
java.lang.Object jmac2(java.lang.Object name)
void emitIdent(java.io.PrintWriter out,
java.lang.String str)
CodeGenerator
emitIdent in class CodeGeneratorjava.lang.String jmac3(java.lang.Object f)
java.lang.String jmac4(java.lang.Object f,
java.lang.String rettype)
java.lang.String jmac5(java.lang.String x,
java.lang.String y)
java.lang.String jmac6(java.lang.String x,
java.lang.String y)
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 y)
java.lang.String jmac10(java.lang.String dest,
java.lang.String src)
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 jmac14(java.lang.String x)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||