coins.backend.gen
クラス CodeGenerator_mb

java.lang.Object
  |
  +--coins.backend.gen.CodeGenerator
        |
        +--coins.backend.gen.CodeGenerator_mb

public class CodeGenerator_mb
extends CodeGenerator


入れ子クラスの概要
(パッケージプライベート)  class CodeGenerator_mb.CallContext
           
(パッケージプライベート) static class CodeGenerator_mb.MicroBlazeAttr
          MicroBlaze's function attribute
(パッケージプライベート)  class CodeGenerator_mb.RewrState
          State label for rewriting engine.
(パッケージプライベート)  class CodeGenerator_mb.State
          State label for instruction selection engine.
 
クラス coins.backend.gen.CodeGenerator から継承した入れ子クラス
CodeGenerator.LexpToString, CodeGenerator.Match
 
フィールドの概要
(パッケージプライベート)  boolean isSimulate
           
(パッケージプライベート)  boolean noUseBs
           
(パッケージプライベート)  boolean noUseDiv
           
(パッケージプライベート)  boolean noUseGp
           
(パッケージプライベート)  boolean noUseMul
           
(パッケージプライベート)  ImList regCallClobbers
           
(パッケージプライベート) static int REGWIDTH
           
(パッケージプライベート)  boolean softFloat
           
(パッケージプライベート)  CodeGenerator_mb.State[] stateVec
          State vector for labeling LIR nodes.
 
クラス 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
 
コンストラクタの概要
CodeGenerator_mb()
          Create code generator engine.
 
メソッドの概要
(パッケージプライベート)  LirNode castToInt(LirNode src)
           
(パッケージプライベート)  java.lang.String defaultRegsetForType(int type)
          Return default register set for type.
(パッケージプライベート)  void emitCommon(java.io.PrintWriter out, SymStatic symbol, int bytes)
          Emit data common
(パッケージプライベート)  java.lang.String emitLir(LirNode node)
          Expand emit-macro for LirNode.
(パッケージプライベート)  java.lang.String emitList(ImList form, boolean topLevel)
          Expand emit-macro for list form.
(パッケージプライベート)  boolean eqReg(java.lang.String reg, LirNode node)
           
(パッケージプライベート)  java.lang.Object expandBuildMacro(ImList form)
          Expand building-macro.
(パッケージプライベート)  int getCost1(LirNode t, int goal)
          Return the cost for LIR node t and goal nonterminal goal.
(パッケージプライベート)  int getCost2(LirNode t, int goal)
           
(パッケージプライベート)  Rule getRule(LirNode t, int goal)
          Return the chosen rule for LIR node t and goal nonterminal goal.
(パッケージプライベート)  void initializeMachineDep()
          Do Machine-dependent initialization (subclass may override this).
(パッケージプライベート)  void initLabeling(LirFactory lir)
          Initialize for labeling.
(パッケージプライベート)  void initRewriteLabeling()
          Initialization for rewriting.
(パッケージプライベート)  boolean isMemNode(LirNode arg)
           
(パッケージプライベート)  java.lang.Object jmac1(LirNode 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)
           
(パッケージプライベート)  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)
           
(パッケージプライベート)  void labelTree(LirNode t)
          Label LIR tree t.
(パッケージプライベート)  boolean needTempArea(LirNode src)
           
(パッケージプライベート)  CodeGenerator.FunctionAttr newFunctionAttr(Function func)
          Prepare new function attribute information.
(パッケージプライベート)  java.lang.Object quiltLir(LirNode node)
          Expand building-macro, for LirNode
(パッケージプライベート)  LirNode rewriteCall(LirNode node, BiList pre, BiList post, boolean dry)
           
(パッケージプライベート)  LirNode rewriteEpilogue(LirNode node, BiList pre)
          Rewrite EPILOGUE
(パッケージプライベート)  LirNode rewriteFrame(LirNode node)
          Rewrite FRAME node to target machine form.
(パッケージプライベート)  LirNode rewriteJumpc(LirNode node, BiList pre, java.lang.String rtl, int n)
           
(パッケージプライベート)  boolean rewriteMul(LirNode node)
           
(パッケージプライベート)  LirNode rewritePrologue(LirNode node, BiList post)
          Rewrite PROLOGUE
(パッケージプライベート)  LirNode rewriteRtlCall(LirNode node, BiList pre, java.lang.String rtl, int n)
           
(パッケージプライベート)  LirNode rewriteTree(LirNode tree, java.lang.String phase, BiList pre, BiList post)
          Rewrite L-expression.
(パッケージプライベート)  java.lang.String showLabel(LirNode t)
          Return label state
(パッケージプライベート)  int startNT()
          Return start nonterminal symbol.
 
クラス coins.backend.gen.CodeGenerator から継承したメソッド
alignForType, buildCode, clcvnClobbers, clcvnParamMem, clcvnParamOffset, clcvnParamReg, clcvnParamWord, clcvnPartialWord, clcvnPassFloatRegMem, clcvnRegLimit, clcvnReturnValue, clcvnSetPartialWord, clcvnStructReturnAsFirst, clcvnStructReturnPtr, close, codeInfo, convToAsm, dropRegToFrame, earlyRewritingSequence, emitAlign, emitAsmCode, emitBeginningOfModule, emitBeginningOfSegment, emitCode, emitCodeLabel, emitComment, emitData, emitDataLabel, emitEndOfModule, emitEndOfSegment, emitIdent, emitLinkage, emitLirDefault, emitListDefault, emitNamedConst, emitObject, emitObjectX, emitSegment, emitTop, emitZeros, equalArg, frameIsEmpty, frameSize, genHeader, genTrailer, getFunctionAttr, getMachineParams, initialize, insertPostProcessor, instructionSelection, isComplex, isSimple, lateRewritingSequence, makeAsmSymbol, makeLabelDef, mapRegToFrame, nActualOperands, noRescan, notifyEndToPostProcessor, paramOffset, paramToBeSaved, peepHoleOpt, phyReg, prepareCodeInfo, prerewrite, printLabel, quiltLirDefault, reduce, reserveFrame, rewriteAggregateCopy, rewriteAsm, rewriteCall, rewriteCONVFU, rewriteCONVUF, rewriteJumpn, segmentForConst, setAsmStream
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

stateVec

CodeGenerator_mb.State[] stateVec
State vector for labeling LIR nodes. Suffix is a LirNode's id.


softFloat

boolean softFloat

noUseGp

boolean noUseGp

noUseBs

boolean noUseBs

noUseMul

boolean noUseMul

noUseDiv

boolean noUseDiv

isSimulate

boolean isSimulate

regCallClobbers

ImList regCallClobbers

REGWIDTH

static final int REGWIDTH
関連項目:
定数フィールド値
コンストラクタの詳細

CodeGenerator_mb

public CodeGenerator_mb()
Create code generator engine.

メソッドの詳細

initRewriteLabeling

void initRewriteLabeling()
クラス CodeGenerator の記述:
Initialization for rewriting.

定義:
クラス CodeGenerator 内の initRewriteLabeling

rewriteTree

LirNode rewriteTree(LirNode tree,
                    java.lang.String phase,
                    BiList pre,
                    BiList post)
Rewrite L-expression.

定義:
クラス CodeGenerator 内の rewriteTree

defaultRegsetForType

java.lang.String defaultRegsetForType(int type)
Return default register set for type.

定義:
クラス CodeGenerator 内の defaultRegsetForType

initLabeling

void initLabeling(LirFactory lir)
クラス CodeGenerator の記述:
Initialize for labeling.

定義:
クラス CodeGenerator 内の initLabeling

showLabel

java.lang.String showLabel(LirNode t)
クラス CodeGenerator の記述:
Return label state

定義:
クラス CodeGenerator 内の showLabel

labelTree

void labelTree(LirNode t)
クラス CodeGenerator の記述:
Label LIR tree t.

定義:
クラス CodeGenerator 内の labelTree

getRule

Rule getRule(LirNode t,
             int goal)
クラス CodeGenerator の記述:
Return the chosen rule for LIR node t and goal nonterminal goal.

定義:
クラス CodeGenerator 内の getRule

getCost1

int getCost1(LirNode t,
             int goal)
クラス CodeGenerator の記述:
Return the cost for LIR node t and goal nonterminal goal.

定義:
クラス CodeGenerator 内の getCost1

getCost2

int getCost2(LirNode t,
             int goal)
定義:
クラス CodeGenerator 内の getCost2

startNT

int startNT()
クラス CodeGenerator の記述:
Return start nonterminal symbol.

定義:
クラス CodeGenerator 内の startNT

expandBuildMacro

java.lang.Object expandBuildMacro(ImList form)
Expand building-macro.

定義:
クラス CodeGenerator 内の expandBuildMacro

quiltLir

java.lang.Object quiltLir(LirNode node)
Expand building-macro, for LirNode

定義:
クラス CodeGenerator 内の quiltLir

emitList

java.lang.String emitList(ImList form,
                          boolean topLevel)
Expand emit-macro for list form.

定義:
クラス CodeGenerator 内の emitList

emitLir

java.lang.String emitLir(LirNode node)
Expand emit-macro for LirNode.

定義:
クラス CodeGenerator 内の emitLir

newFunctionAttr

CodeGenerator.FunctionAttr newFunctionAttr(Function func)
クラス CodeGenerator の記述:
Prepare new function attribute information.

オーバーライド:
クラス CodeGenerator 内の newFunctionAttr

initializeMachineDep

void initializeMachineDep()
クラス CodeGenerator の記述:
Do Machine-dependent initialization (subclass may override this).

オーバーライド:
クラス CodeGenerator 内の initializeMachineDep

jmac1

java.lang.Object jmac1(LirNode x)

jmac2

java.lang.Object jmac2(LirNode x)

jmac3

java.lang.String jmac3(java.lang.String x)

jmac4

java.lang.String jmac4(java.lang.String format,
                       java.lang.Object args)

jmac5

java.lang.String jmac5()

jmac6

java.lang.String jmac6(java.lang.String reg1,
                       java.lang.String reg2)

jmac7

java.lang.String jmac7(java.lang.String c1,
                       java.lang.String c2)

jmac8

java.lang.String jmac8(java.lang.String c1,
                       java.lang.String c2)

jmac9

java.lang.String jmac9(java.lang.String x)

jmac10

java.lang.String jmac10(java.lang.String x)

jmac11

java.lang.String jmac11(java.lang.Object f)

jmac12

java.lang.String jmac12(java.lang.Object f,
                        java.lang.String rettype)

emitCommon

void emitCommon(java.io.PrintWriter out,
                SymStatic symbol,
                int bytes)
クラス CodeGenerator の記述:
Emit data common

オーバーライド:
クラス CodeGenerator 内の emitCommon

eqReg

boolean eqReg(java.lang.String reg,
              LirNode node)

rewriteMul

boolean rewriteMul(LirNode node)

castToInt

LirNode castToInt(LirNode src)

needTempArea

boolean needTempArea(LirNode src)

isMemNode

boolean isMemNode(LirNode arg)

rewriteCall

LirNode rewriteCall(LirNode node,
                    BiList pre,
                    BiList post,
                    boolean dry)

rewritePrologue

LirNode rewritePrologue(LirNode node,
                        BiList post)
クラス CodeGenerator の記述:
Rewrite PROLOGUE

オーバーライド:
クラス CodeGenerator 内の rewritePrologue

rewriteEpilogue

LirNode rewriteEpilogue(LirNode node,
                        BiList pre)
クラス CodeGenerator の記述:
Rewrite EPILOGUE

オーバーライド:
クラス CodeGenerator 内の rewriteEpilogue

rewriteFrame

LirNode rewriteFrame(LirNode node)
クラス CodeGenerator の記述:
Rewrite FRAME node to target machine form.

オーバーライド:
クラス CodeGenerator 内の rewriteFrame

rewriteRtlCall

LirNode rewriteRtlCall(LirNode node,
                       BiList pre,
                       java.lang.String rtl,
                       int n)

rewriteJumpc

LirNode rewriteJumpc(LirNode node,
                     BiList pre,
                     java.lang.String rtl,
                     int n)