|
||||||||||
| 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_mb
| Nested Class Summary | |
(package private) class |
CodeGenerator_mb.CallContext
|
(package private) static class |
CodeGenerator_mb.MicroBlazeAttr
MicroBlaze's function attribute |
(package private) class |
CodeGenerator_mb.RewrState
State label for rewriting engine. |
(package private) class |
CodeGenerator_mb.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) boolean |
isSimulate
|
(package private) boolean |
noUseBs
|
(package private) boolean |
noUseDiv
|
(package private) boolean |
noUseGp
|
(package private) boolean |
noUseMul
|
(package private) ImList |
regCallClobbers
|
(package private) static int |
REGWIDTH
|
(package private) boolean |
softFloat
|
(package private) CodeGenerator_mb.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_mb()
Create code generator engine. |
|
| Method Summary | |
(package private) LirNode |
castToInt(LirNode src)
|
(package private) java.lang.String |
defaultRegsetForType(int type)
Return default register set for type. |
(package private) void |
emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
Emit data common |
(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 |
eqReg(java.lang.String reg,
LirNode node)
|
(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) boolean |
isMemNode(LirNode arg)
|
(package private) java.lang.Object |
jmac1(LirNode x)
|
(package private) java.lang.String |
jmac10(java.lang.String x)
|
(package private) java.lang.String |
jmac11(java.lang.Object f)
|
(package private) java.lang.String |
jmac12(java.lang.Object f,
java.lang.String rettype)
|
(package private) java.lang.Object |
jmac2(LirNode x)
|
(package private) java.lang.String |
jmac3(java.lang.String x)
|
(package private) java.lang.String |
jmac4(java.lang.String format,
java.lang.Object args)
|
(package private) java.lang.String |
jmac5()
|
(package private) java.lang.String |
jmac6(java.lang.String reg1,
java.lang.String reg2)
|
(package private) java.lang.String |
jmac7(java.lang.String c1,
java.lang.String c2)
|
(package private) java.lang.String |
jmac8(java.lang.String c1,
java.lang.String c2)
|
(package private) java.lang.String |
jmac9(java.lang.String x)
|
(package private) void |
labelTree(LirNode t)
Label LIR tree t. |
(package private) boolean |
needTempArea(LirNode src)
|
(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,
boolean dry)
|
(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 |
rewriteJumpc(LirNode node,
BiList pre,
java.lang.String rtl,
int n)
|
(package private) boolean |
rewriteMul(LirNode node)
|
(package private) LirNode |
rewritePrologue(LirNode node,
BiList post)
Rewrite PROLOGUE |
(package private) LirNode |
rewriteRtlCall(LirNode node,
BiList pre,
java.lang.String rtl,
int n)
|
(package private) LirNode |
rewriteTree(LirNode tree,
java.lang.String phase,
BiList pre,
BiList post)
Rewrite L-expression. |
(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_mb.State[] stateVec
boolean softFloat
boolean noUseGp
boolean noUseBs
boolean noUseMul
boolean noUseDiv
boolean isSimulate
ImList regCallClobbers
static final int REGWIDTH
| Constructor Detail |
public CodeGenerator_mb()
| 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 CodeGeneratorvoid initializeMachineDep()
CodeGenerator
initializeMachineDep in class CodeGeneratorjava.lang.Object jmac1(LirNode x)
java.lang.Object jmac2(LirNode x)
java.lang.String jmac3(java.lang.String x)
java.lang.String jmac4(java.lang.String format,
java.lang.Object args)
java.lang.String jmac5()
java.lang.String jmac6(java.lang.String reg1,
java.lang.String reg2)
java.lang.String jmac7(java.lang.String c1,
java.lang.String c2)
java.lang.String jmac8(java.lang.String c1,
java.lang.String c2)
java.lang.String jmac9(java.lang.String x)
java.lang.String jmac10(java.lang.String x)
java.lang.String jmac11(java.lang.Object f)
java.lang.String jmac12(java.lang.Object f,
java.lang.String rettype)
void emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
CodeGenerator
emitCommon in class CodeGenerator
boolean eqReg(java.lang.String reg,
LirNode node)
boolean rewriteMul(LirNode node)
LirNode castToInt(LirNode src)
boolean needTempArea(LirNode src)
boolean isMemNode(LirNode arg)
LirNode rewriteCall(LirNode node,
BiList pre,
BiList post,
boolean dry)
LirNode rewritePrologue(LirNode node,
BiList post)
CodeGenerator
rewritePrologue in class CodeGenerator
LirNode rewriteEpilogue(LirNode node,
BiList pre)
CodeGenerator
rewriteEpilogue in class CodeGeneratorLirNode rewriteFrame(LirNode node)
CodeGenerator
rewriteFrame in class CodeGenerator
LirNode rewriteRtlCall(LirNode node,
BiList pre,
java.lang.String rtl,
int n)
LirNode rewriteJumpc(LirNode node,
BiList pre,
java.lang.String rtl,
int n)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||