|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object
|
+--coins.backend.gen.CodeGenerator
|
+--coins.backend.gen.CodeGenerator_arm
| 入れ子クラスの概要 | |
(パッケージプライベート) class |
CodeGenerator_arm.Arm
|
(パッケージプライベート) static class |
CodeGenerator_arm.ArmAttr
Arm's function attribute |
(パッケージプライベート) class |
CodeGenerator_arm.ArmConst
Arm constant |
(パッケージプライベート) class |
CodeGenerator_arm.JumpcEntry
|
(パッケージプライベート) class |
CodeGenerator_arm.JumpcKey
|
(パッケージプライベート) class |
CodeGenerator_arm.PeepHoleOp
|
(パッケージプライベート) class |
CodeGenerator_arm.RewrState
State label for rewriting engine. |
(パッケージプライベート) class |
CodeGenerator_arm.State
State label for instruction selection engine. |
| クラス coins.backend.gen.CodeGenerator から継承した入れ子クラス |
CodeGenerator.LexpToString, CodeGenerator.Match |
| フィールドの概要 | |
(パッケージプライベート) static int |
CALLEE_SAVE
|
(パッケージプライベート) java.util.Map |
conditionalExec
|
(パッケージプライベート) CodeGenerator_arm.PeepHoleOp |
decompAdd
|
(パッケージプライベート) CodeGenerator_arm.PeepHoleOp |
decompBic
|
(パッケージプライベート) int |
decompMax
|
(パッケージプライベート) CodeGenerator_arm.PeepHoleOp |
decompMov
|
(パッケージプライベート) CodeGenerator_arm.PeepHoleOp |
decompOr
|
(パッケージプライベート) static int |
F32
|
(パッケージプライベート) static int |
F64
|
(パッケージプライベート) static java.util.Map |
flipCc
|
(パッケージプライベート) static int |
I16
|
(パッケージプライベート) static int |
I32
|
(パッケージプライベート) static int |
I64
|
(パッケージプライベート) static int |
I8
|
(パッケージプライベート) boolean |
isSimulate
|
(パッケージプライベート) java.util.Map |
jumpcInfo
|
(パッケージプライベート) static int |
MAXREGPARAM
|
(パッケージプライベート) static java.lang.String |
NEED_OFFSET_REWRITE
|
(パッケージプライベート) static java.lang.String[] |
paramRegv
|
(パッケージプライベート) ImList |
regCallClobbers
|
(パッケージプライベート) static int |
REGWIDTH
|
(パッケージプライベート) CodeGenerator_arm.State[] |
stateVec
State vector for labeling LIR nodes. |
(パッケージプライベート) LocalTransformer |
testJumpcTrig
Examine conditional jump |
(パッケージプライベート) int |
tmpCnt
|
(パッケージプライベート) CodeGenerator_arm.ArmConst |
ximm
decompose immediate |
| クラス coins.backend.gen.CodeGenerator から継承したフィールド |
addrType, asmWriter, convention, debOut, disableRewrite, F128, func, funcAttrTbl, INLINECOPYUNIT, lexpConv, lir, localEarlyRewritingTrig, localLateRewritingTrig, machineName, machineParams, module, optSpeed, ProcessFramesTrig, root, typeParamWord |
| コンストラクタの概要 | |
CodeGenerator_arm()
Create code generator engine. |
|
| メソッドの概要 | |
(パッケージプライベート) ImList |
addCc(java.lang.Object cc,
ImList inst)
|
(パッケージプライベート) boolean |
checkBody(BasicBlk bb)
|
(パッケージプライベート) boolean |
checkPred(BiLink q,
BasicBlk bb)
|
(パッケージプライベート) boolean |
checkSucc(BiLink p,
BasicBlk bb)
|
(パッケージプライベート) boolean |
checkTarget(Label lab,
BiLink q)
|
(パッケージプライベート) ImList |
clcvnClobbers()
Return clobber list |
(パッケージプライベート) LirNode |
clcvnParamMem(int type,
int location,
boolean caller)
Return parameter memory |
(パッケージプライベート) int |
clcvnParamOffset(int location)
Return offset of parameter (callee side) |
(パッケージプライベート) LirNode |
clcvnParamReg(int type,
int location,
boolean caller)
Return parameter register |
(パッケージプライベート) LirNode |
clcvnParamWord(int type,
int location,
boolean caller)
Return parameter word |
(パッケージプライベート) LirNode |
clcvnPartialWord(LirNode exp,
int part)
Return partial word of integer object |
(パッケージプライベート) void |
clcvnPassFloatRegMem(int location,
LirNode arg,
BiLink memp,
BiLink regp,
BiList alist)
Pass floating point number to register/ register and memory. |
(パッケージプライベート) int |
clcvnRegLimit()
Return number of registers multiply word-size. |
(パッケージプライベート) LirNode |
clcvnReturnValue(int type)
Return return register |
(パッケージプライベート) LirNode |
clcvnSetPartialWord(LirNode lhs,
int part,
LirNode rhs)
Set partial word of integer object |
(パッケージプライベート) boolean |
clcvnStructReturnAsFirst()
Return true if struct return address |
(パッケージプライベート) java.lang.String |
defaultRegsetForType(int type)
Return default register set for type. |
(パッケージプライベート) void |
emitAlign(java.io.PrintWriter out,
int align)
Emit data align |
(パッケージプライベート) java.lang.String |
emitAsmCode(java.lang.String format,
ImList args)
Emit asm instruction. |
(パッケージプライベート) void |
emitBeginningOfSegment(java.io.PrintWriter out,
java.lang.String segment)
Emit beginning of segment |
(パッケージプライベート) void |
emitCodeLabel(java.io.PrintWriter out,
java.lang.String label)
Emit label for code |
(パッケージプライベート) void |
emitComment(java.io.PrintWriter out,
java.lang.String comment)
print comment in assembly language. |
(パッケージプライベート) void |
emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
Emit data common |
(パッケージプライベート) void |
emitData(java.io.PrintWriter out,
int type,
LirNode node)
Emit data |
(パッケージプライベート) void |
emitDataLabel(java.io.PrintWriter out,
java.lang.String label)
Emit label for data |
(パッケージプライベート) void |
emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
Emit end of segment |
(パッケージプライベート) void |
emitLinkage(java.io.PrintWriter out,
SymStatic symbol)
Emit linkage information of symbol |
(パッケージプライベート) 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. |
(パッケージプライベート) void |
emitZeros(java.io.PrintWriter out,
int bytes)
Emit data zeros |
(パッケージプライベート) boolean |
equalArg(LirNode x,
LirNode y)
Return true if variable x and y are same. |
(パッケージプライベート) void |
examineJUMPC(BiLink p,
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. |
(パッケージプライベート) java.io.OutputStream |
insertPostProcessor(java.io.OutputStream out)
Run Literal and Branch post processor after generating assembly code. |
(パッケージプライベート) boolean |
isConv(int op)
|
(パッケージプライベート) boolean |
isImm8r(long val)
|
(パッケージプライベート) boolean |
isOp(java.lang.String op,
ImList inst)
|
(パッケージプライベート) boolean |
isVirtual(LirNode node)
|
(パッケージプライベート) boolean |
isXimm(long val)
|
(パッケージプライベート) java.lang.String |
jmac1(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac10(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac11(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac12(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac13(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac14(java.lang.String x)
|
(パッケージプライベート) java.lang.Object |
jmac15(java.lang.Object x)
|
(パッケージプライベート) java.lang.Object |
jmac16(java.lang.Object x)
|
(パッケージプライベート) java.lang.Object |
jmac17(java.lang.Object x)
|
(パッケージプライベート) java.lang.Object |
jmac18(java.lang.Object x)
|
(パッケージプライベート) java.lang.String |
jmac19(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac2(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac20(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac21(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac22(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac23(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac24(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac25(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac26(java.lang.String x)
Return lower half register name. |
(パッケージプライベート) java.lang.String |
jmac27(java.lang.String x)
Return lowest byte register name. |
(パッケージプライベート) java.lang.String |
jmac28(java.lang.Object f)
Generate prologue sequence. |
(パッケージプライベート) java.lang.String |
jmac29(java.lang.Object f,
java.lang.String rettype)
Generate epilogue sequence. |
(パッケージプライベート) java.lang.String |
jmac3(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac30(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac31(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac32(java.lang.String format,
java.lang.Object args)
|
(パッケージプライベート) 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 y)
|
(パッケージプライベート) java.lang.String |
jmac9(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) void |
labelTree(LirNode t)
Label LIR tree t. |
Transformer[] |
lateRewritingSequence()
Return late time pre-rewriting sequence. |
(パッケージプライベート) void |
logop(ImList inst,
BiLink l,
boolean cpl)
|
(パッケージプライベート) int |
makeVaStart(LirNode arg)
Return offset for va_start position. |
(パッケージプライベート) CodeGenerator.FunctionAttr |
newFunctionAttr(Function func)
Prepare new function attribute information. |
(パッケージプライベート) int |
nofBytes(long val)
|
(パッケージプライベート) void |
notifyEndToPostProcessor()
Notify end of assembly to post-processor. |
(パッケージプライベート) java.lang.Object |
nth(ImList l,
int n)
|
(パッケージプライベート) java.lang.String |
op2cc(int op)
|
(パッケージプライベート) void |
peepHoleOpt(BiList list)
Peep-hole optimizer. |
(パッケージプライベート) java.lang.Object |
quiltLir(LirNode node)
Expand building-macro, for LirNode |
(パッケージプライベート) boolean |
rewriteCondExec(BiLink p)
|
(パッケージプライベート) LirNode |
rewriteFrame(LirNode node)
Rewrite FRAME node to target machine form. |
(パッケージプライベート) 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. |
(パッケージプライベート) ImList |
toComment(java.lang.String prefix,
ImList inst)
|
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
CodeGenerator_arm.State[] stateVec
boolean isSimulate
final LocalTransformer testJumpcTrig
ImList regCallClobbers
int decompMax
int tmpCnt
java.util.Map conditionalExec
java.util.Map jumpcInfo
static final int I64
static final int I32
static final int I16
static final int I8
static final int F64
static final int F32
static final int MAXREGPARAM
static final int REGWIDTH
static final int CALLEE_SAVE
static final java.lang.String NEED_OFFSET_REWRITE
static final java.lang.String[] paramRegv
static final java.util.Map flipCc
CodeGenerator_arm.ArmConst ximm
CodeGenerator_arm.PeepHoleOp decompMov
CodeGenerator_arm.PeepHoleOp decompAdd
CodeGenerator_arm.PeepHoleOp decompOr
CodeGenerator_arm.PeepHoleOp decompBic
| コンストラクタの詳細 |
public CodeGenerator_arm()
| メソッドの詳細 |
void initRewriteLabeling()
CodeGenerator の記述:
CodeGenerator 内の initRewriteLabeling
LirNode rewriteTree(LirNode tree,
java.lang.String phase,
BiList pre,
BiList post)
CodeGenerator 内の rewriteTreejava.lang.String defaultRegsetForType(int type)
CodeGenerator 内の defaultRegsetForTypevoid initLabeling(LirFactory lir)
CodeGenerator の記述:
CodeGenerator 内の initLabelingjava.lang.String showLabel(LirNode t)
CodeGenerator の記述:
CodeGenerator 内の showLabelvoid labelTree(LirNode t)
CodeGenerator の記述:
CodeGenerator 内の labelTree
Rule getRule(LirNode t,
int goal)
CodeGenerator の記述:
CodeGenerator 内の getRule
int getCost1(LirNode t,
int goal)
CodeGenerator の記述:
CodeGenerator 内の getCost1
int getCost2(LirNode t,
int goal)
CodeGenerator 内の getCost2int startNT()
CodeGenerator の記述:
CodeGenerator 内の startNTjava.lang.Object expandBuildMacro(ImList form)
CodeGenerator 内の expandBuildMacrojava.lang.Object quiltLir(LirNode node)
CodeGenerator 内の quiltLir
java.lang.String emitList(ImList form,
boolean topLevel)
CodeGenerator 内の emitListjava.lang.String emitLir(LirNode node)
CodeGenerator 内の emitLirvoid initializeMachineDep()
CodeGenerator の記述:
CodeGenerator 内の initializeMachineDeppublic Transformer[] lateRewritingSequence()
CodeGenerator 内の lateRewritingSequence
boolean checkPred(BiLink q,
BasicBlk bb)
boolean checkTarget(Label lab,
BiLink q)
boolean checkSucc(BiLink p,
BasicBlk bb)
boolean checkBody(BasicBlk bb)
void examineJUMPC(BiLink p,
LirNode node)
java.io.OutputStream insertPostProcessor(java.io.OutputStream out)
CodeGenerator 内の insertPostProcessorvoid notifyEndToPostProcessor()
CodeGenerator の記述:
CodeGenerator 内の notifyEndToPostProcessorCodeGenerator.FunctionAttr newFunctionAttr(Function func)
CodeGenerator の記述:
CodeGenerator 内の newFunctionAttrboolean isImm8r(long val)
boolean isXimm(long val)
int nofBytes(long val)
boolean isConv(int op)
boolean equalArg(LirNode x,
LirNode y)
CodeGenerator の記述:
CodeGenerator 内の equalArgint makeVaStart(LirNode arg)
int clcvnRegLimit()
CodeGenerator 内の clcvnRegLimit
LirNode clcvnParamWord(int type,
int location,
boolean caller)
CodeGenerator 内の clcvnParamWord
LirNode clcvnParamReg(int type,
int location,
boolean caller)
CodeGenerator 内の clcvnParamReg
LirNode clcvnParamMem(int type,
int location,
boolean caller)
CodeGenerator 内の clcvnParamMemint clcvnParamOffset(int location)
CodeGenerator 内の clcvnParamOffset
void clcvnPassFloatRegMem(int location,
LirNode arg,
BiLink memp,
BiLink regp,
BiList alist)
CodeGenerator 内の clcvnPassFloatRegMemLirNode clcvnReturnValue(int type)
CodeGenerator 内の clcvnReturnValue
LirNode clcvnPartialWord(LirNode exp,
int part)
CodeGenerator 内の clcvnPartialWord
LirNode clcvnSetPartialWord(LirNode lhs,
int part,
LirNode rhs)
CodeGenerator 内の clcvnSetPartialWordImList clcvnClobbers()
CodeGenerator 内の clcvnClobbersboolean clcvnStructReturnAsFirst()
CodeGenerator 内の clcvnStructReturnAsFirstLirNode rewriteFrame(LirNode node)
CodeGenerator 内の rewriteFramejava.lang.String op2cc(int op)
java.lang.String jmac1(java.lang.String x)
java.lang.String jmac2(java.lang.String x)
java.lang.String jmac3(java.lang.String x)
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 y)
java.lang.String jmac9(java.lang.String x,
java.lang.String y)
java.lang.String jmac10(java.lang.String x,
java.lang.String y)
java.lang.String jmac11(java.lang.String x,
java.lang.String y)
java.lang.String jmac12(java.lang.String x,
java.lang.String y)
java.lang.String jmac13(java.lang.String x)
java.lang.String jmac14(java.lang.String x)
java.lang.Object jmac15(java.lang.Object x)
java.lang.Object jmac16(java.lang.Object x)
java.lang.Object jmac17(java.lang.Object x)
java.lang.Object jmac18(java.lang.Object x)
java.lang.String jmac19(java.lang.String x)
java.lang.String jmac20(java.lang.String x)
java.lang.String jmac21(java.lang.String x)
java.lang.String jmac22(java.lang.String x)
java.lang.String jmac23(java.lang.String x,
java.lang.String y)
java.lang.String jmac24(java.lang.String x,
java.lang.String y)
java.lang.String jmac25(java.lang.String x)
java.lang.String jmac26(java.lang.String x)
java.lang.String jmac27(java.lang.String x)
java.lang.String jmac28(java.lang.Object f)
java.lang.String jmac29(java.lang.Object f,
java.lang.String rettype)
java.lang.String jmac30(java.lang.String x)
java.lang.String jmac31(java.lang.String x)
java.lang.String jmac32(java.lang.String format,
java.lang.Object args)
void emitComment(java.io.PrintWriter out,
java.lang.String comment)
CodeGenerator の記述:
CodeGenerator 内の emitComment
void emitBeginningOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator の記述:
CodeGenerator 内の emitBeginningOfSegment
void emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator の記述:
CodeGenerator 内の emitEndOfSegment
void emitDataLabel(java.io.PrintWriter out,
java.lang.String label)
CodeGenerator の記述:
CodeGenerator 内の emitDataLabel
void emitCodeLabel(java.io.PrintWriter out,
java.lang.String label)
CodeGenerator の記述:
CodeGenerator 内の emitCodeLabel
void emitAlign(java.io.PrintWriter out,
int align)
CodeGenerator 内の emitAlign
void emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
CodeGenerator 内の emitCommon
void emitLinkage(java.io.PrintWriter out,
SymStatic symbol)
CodeGenerator 内の emitLinkage
void emitZeros(java.io.PrintWriter out,
int bytes)
CodeGenerator 内の emitZeros
void emitData(java.io.PrintWriter out,
int type,
LirNode node)
CodeGenerator 内の emitData
java.lang.String emitAsmCode(java.lang.String format,
ImList args)
CodeGenerator 内の emitAsmCode
ImList addCc(java.lang.Object cc,
ImList inst)
ImList toComment(java.lang.String prefix,
ImList inst)
boolean isOp(java.lang.String op,
ImList inst)
boolean rewriteCondExec(BiLink p)
java.lang.Object nth(ImList l,
int n)
void logop(ImList inst,
BiLink l,
boolean cpl)
void peepHoleOpt(BiList list)
CodeGenerator の記述:
CodeGenerator 内の peepHoleOptboolean isVirtual(LirNode node)
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||