|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.backend.gen.CodeGenerator | +--coins.backend.gen.CodeGenerator_ppc
入れ子クラスの概要 | |
(パッケージプライベート) static class |
CodeGenerator_ppc.PowerPCAttr
|
(パッケージプライベート) class |
CodeGenerator_ppc.RewrState
State label for rewriting engine. |
(パッケージプライベート) class |
CodeGenerator_ppc.State
State label for instruction selection engine. |
(パッケージプライベート) static class |
CodeGenerator_ppc.StructureScheduler
|
クラス coins.backend.gen.CodeGenerator から継承した入れ子クラス |
CodeGenerator.LexpToString, CodeGenerator.Match |
フィールドの概要 | |
(パッケージプライベート) static int |
ADDR_TYPE
|
(パッケージプライベート) static int |
ARG_AREA_MIN_SIZE
|
(パッケージプライベート) static int |
CONDITION_REGISTER_STACK
|
(パッケージプライベート) static int |
EXTERNAL_CONSTANCE
|
(パッケージプライベート) static int |
EXTERNAL_FUNCTION
|
(パッケージプライベート) static int |
EXTERNAL_VALIABLE
|
(パッケージプライベート) static int |
F32
|
(パッケージプライベート) static int |
F64
|
(パッケージプライベート) static int |
FLOAT_REGISTER_COUNT
|
(パッケージプライベート) static int |
FLOAT_REGISTER_SIZE
|
(パッケージプライベート) static int |
FLOAT_START_REGISTER
|
(パッケージプライベート) java.util.ArrayList |
gAccessor
|
(パッケージプライベート) static int |
I128
|
(パッケージプライベート) static int |
I16
|
(パッケージプライベート) static int |
I32
|
(パッケージプライベート) static int |
I4
|
(パッケージプライベート) static int |
I8
|
(パッケージプライベート) static int |
INT_REGISTER_COUNT
|
(パッケージプライベート) static int |
INT_REGISTER_SIZE
|
(パッケージプライベート) static int |
INT_START_REGISTER
|
(パッケージプライベート) static int |
INTERNAL_CONSTANCE
|
(パッケージプライベート) static int |
INTERNAL_FUNCTION
|
(パッケージプライベート) static int |
INTERNAL_VALIABLE
|
(パッケージプライベート) static int |
LINK_AREA_SIZE
|
(パッケージプライベート) static int |
LINK_REGISTER_STACK
|
(パッケージプライベート) static boolean |
PPC_64
|
(パッケージプライベート) static int |
RED_ZONE_SIZE
|
(パッケージプライベート) static int |
REG_TYPE
|
(パッケージプライベート) ImList |
regCallClobbers
|
(パッケージプライベート) LirNode |
sConvertionFrame
|
(パッケージプライベート) boolean |
sSymbolEmitted
|
(パッケージプライベート) static int |
STACK_POINTER_STACK
|
(パッケージプライベート) CodeGenerator_ppc.State[] |
stateVec
State vector for labeling LIR nodes. |
(パッケージプライベート) int |
sTempFrameNumber
|
(パッケージプライベート) LirNode |
sVecConvertionFrame
|
(パッケージプライベート) static int |
VECTOR_REGISTER_SIZE
|
クラス coins.backend.gen.CodeGenerator から継承したフィールド |
addrType, asmWriter, convention, debOut, disableRewrite, F128, func, funcAttrTbl, I64, INLINECOPYUNIT, lexpConv, lir, localEarlyRewritingTrig, localLateRewritingTrig, machineName, machineParams, module, optSpeed, ProcessFramesTrig, root, typeParamWord |
コンストラクタの概要 | |
CodeGenerator_ppc()
Create code generator engine. |
メソッドの概要 | |
(パッケージプライベート) boolean |
CheckMust32bit(long iValue,
boolean iIsSigned)
|
(パッケージプライベート) static ImList |
ComputeImidiate(java.lang.Object dest,
java.lang.Object src)
|
(パッケージプライベート) java.lang.String |
defaultRegsetForType(int type)
Return default register set for type. |
(パッケージプライベート) void |
emitAlign(java.io.PrintWriter out,
int align)
Emit data align |
(パッケージプライベート) void |
emitBeginningOfModule(java.io.PrintWriter out)
|
(パッケージプライベート) 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 |
emitEndOfModule(java.io.PrintWriter out)
|
(パッケージプライベート) void |
emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
Emit end of segment |
(パッケージプライベート) void |
emitIdent(java.io.PrintWriter out,
java.lang.String word)
Print .ident in assembly language. |
(パッケージプライベート) 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. |
(パッケージプライベート) java.lang.Object |
expandBuildMacro(ImList form)
Expand building-macro. |
(パッケージプライベート) LirNode |
GainConvertionFrame()
|
(パッケージプライベート) LirNode |
GainVecConvertionFrame()
|
(パッケージプライベート) 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. |
(パッケージプライベート) java.lang.String |
GetSymbolSourcePlace(java.lang.String iBase,
int iType)
|
(パッケージプライベート) void |
initLabeling(LirFactory lir)
Initialize for labeling. |
(パッケージプライベート) void |
initRewriteLabeling()
Initialization for rewriting. |
(パッケージプライベート) static int |
InOrderMask(LirNode iFirst,
LirNode iSecond,
LirNode iThird)
|
(パッケージプライベート) boolean |
isComplex(LirNode node)
Return true if node is a complex one. |
static boolean |
IsRotateMask(long iValue)
|
(パッケージプライベート) java.lang.Object |
jmac1(java.lang.Object dest,
java.lang.Object src)
|
(パッケージプライベート) java.lang.String |
jmac10(java.lang.String reg)
|
(パッケージプライベート) 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 out,
java.lang.String reg,
java.lang.String imi)
|
(パッケージプライベート) java.lang.String |
jmac14(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac15(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac16(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac17(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac18(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac19(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.Object |
jmac2(java.lang.Object dest_hi,
java.lang.Object dest_lo,
java.lang.Object src)
|
(パッケージプライベート) java.lang.String |
jmac20(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac21(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) 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 lm,
java.lang.String ls,
java.lang.String rm,
java.lang.String rs)
|
(パッケージプライベート) java.lang.String |
jmac25(java.lang.String symbol_name)
|
(パッケージプライベート) java.lang.String |
jmac26(java.lang.Object f)
|
(パッケージプライベート) java.lang.String |
jmac27(java.lang.Object f,
java.lang.String rettype)
|
(パッケージプライベート) java.lang.String |
jmac28(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac29(java.lang.String x)
|
(パッケージプライベート) java.lang.Object |
jmac3(java.lang.Object dest,
java.lang.Object src1,
java.lang.Object src2,
java.lang.Object mask)
|
(パッケージプライベート) java.lang.String |
jmac30(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac31(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac32(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac33(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac34(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac35(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac36(java.lang.String x)
|
(パッケージプライベート) java.lang.String |
jmac37(java.lang.String y)
|
(パッケージプライベート) java.lang.Object |
jmac4(java.lang.Object dest)
|
(パッケージプライベート) java.lang.String |
jmac5(java.lang.String x,
java.lang.String y)
|
(パッケージプライベート) java.lang.String |
jmac6(java.lang.String cr,
java.lang.String type)
|
(パッケージプライベート) java.lang.String |
jmac7(java.lang.String reg)
|
(パッケージプライベート) java.lang.String |
jmac8(java.lang.String reg)
|
(パッケージプライベート) java.lang.String |
jmac9(java.lang.String reg)
|
(パッケージプライベート) void |
labelTree(LirNode t)
Label LIR tree t. |
(パッケージプライベート) java.lang.String |
makeAsmSymbol(java.lang.String symbol)
Make symbol in assembly language form. |
(パッケージプライベート) LirNode |
makeVaStart(LirNode arg)
Return offset for va_start position. |
(パッケージプライベート) CodeGenerator.FunctionAttr |
newFunctionAttr(Function func)
Prepare new function attribute information. |
(パッケージプライベート) LirNode |
NewTempInFrame(int iType,
int iBoundary)
|
(パッケージプライベート) int |
ObtainMask(int iValue)
|
(パッケージプライベート) static long |
ObtainValue(LirNode iNode)
|
(パッケージプライベート) LirNode |
orderForMask(LirNode iNode)
|
(パッケージプライベート) java.lang.Object |
quiltLir(LirNode node)
Expand building-macro, for LirNode |
(パッケージプライベート) LirNode |
Reg2Vector(LirNode iNode,
BiList pre)
|
(パッケージプライベート) LirNode |
regRightShiftSigned(LirNode iNode)
|
(パッケージプライベート) LirNode |
rewriteCall(LirNode node,
BiList pre,
BiList post)
Rewrite CALL. |
(パッケージプライベート) LirNode |
rewriteCONVF(LirNode base,
BiList pre,
boolean iSign)
|
(パッケージプライベート) LirNode |
rewriteCONVFI(LirNode base,
boolean iSigned,
BiList pre,
BiList post)
|
(パッケージプライベート) LirNode |
rewriteEpilogue(LirNode node,
BiList pre)
Rewrite EPILOGUE |
(パッケージプライベート) LirNode |
rewriteEvalImidiate32(LirNode base,
BiList pre)
|
(パッケージプライベート) LirNode |
rewriteFrame(LirNode node)
Rewrite FRAME node to target machine form. |
(パッケージプライベート) LirNode |
rewriteJUMPC(LirNode iNode,
BiList pre)
|
(パッケージプライベート) LirNode |
rewriteMask(LirNode iNode)
|
(パッケージプライベート) LirNode |
rewriteMOD(LirNode base,
BiList pre,
boolean iIsSigned)
|
(パッケージプライベート) LirNode |
rewritePrologue(LirNode node,
BiList pre,
BiList post)
|
(パッケージプライベート) LirNode |
rewriteRSHSMask(LirNode iNode)
|
(パッケージプライベート) LirNode |
rewriteSTATIC_1(LirNode iNode,
BiList pre)
|
(パッケージプライベート) LirNode |
rewriteSTATIC_2(LirNode iNode,
BiList pre)
|
(パッケージプライベート) LirNode |
rewriteSTATIC_Low(LirSymRef iSym,
BiList pre)
|
(パッケージプライベート) 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. |
(パッケージプライベート) LirNode |
swapLeftRight(LirNode iNode)
|
(パッケージプライベート) LirNode |
ToRegister(LirNode iReg,
BiList iOut)
|
(パッケージプライベート) LirNode |
transmissonAND(LirNode iNode)
|
(パッケージプライベート) LirNode |
Vector2Reg(LirNode iNode,
BiList pre)
|
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
CodeGenerator_ppc.State[] stateVec
ImList regCallClobbers
static final int I32
static final int I16
static final int I8
static final int I4
static final int F64
static final int F32
static final int I128
static final int REG_TYPE
static final int ADDR_TYPE
static final int INT_REGISTER_SIZE
static final int FLOAT_REGISTER_SIZE
static final int VECTOR_REGISTER_SIZE
static final boolean PPC_64
static final int STACK_POINTER_STACK
static final int LINK_REGISTER_STACK
static final int CONDITION_REGISTER_STACK
static final int INT_REGISTER_COUNT
static final int INT_START_REGISTER
static final int FLOAT_REGISTER_COUNT
static final int FLOAT_START_REGISTER
static final int ARG_AREA_MIN_SIZE
static final int LINK_AREA_SIZE
static final int RED_ZONE_SIZE
java.util.ArrayList gAccessor
static final int EXTERNAL_FUNCTION
static final int INTERNAL_FUNCTION
static final int EXTERNAL_VALIABLE
static final int INTERNAL_VALIABLE
static final int EXTERNAL_CONSTANCE
static final int INTERNAL_CONSTANCE
LirNode sConvertionFrame
LirNode sVecConvertionFrame
int sTempFrameNumber
boolean sSymbolEmitted
コンストラクタの詳細 |
public CodeGenerator_ppc()
メソッドの詳細 |
void initRewriteLabeling()
CodeGenerator
の記述:
CodeGenerator
内の initRewriteLabeling
LirNode rewriteTree(LirNode tree, java.lang.String phase, BiList pre, BiList post)
CodeGenerator
内の rewriteTree
java.lang.String defaultRegsetForType(int type)
CodeGenerator
内の defaultRegsetForType
void initLabeling(LirFactory lir)
CodeGenerator
の記述:
CodeGenerator
内の initLabeling
java.lang.String showLabel(LirNode t)
CodeGenerator
の記述:
CodeGenerator
内の showLabel
void 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
内の getCost2
int startNT()
CodeGenerator
の記述:
CodeGenerator
内の startNT
java.lang.Object expandBuildMacro(ImList form)
CodeGenerator
内の expandBuildMacro
java.lang.Object quiltLir(LirNode node)
CodeGenerator
内の quiltLir
java.lang.String emitList(ImList form, boolean topLevel)
CodeGenerator
内の emitList
java.lang.String emitLir(LirNode node)
CodeGenerator
内の emitLir
CodeGenerator.FunctionAttr newFunctionAttr(Function func)
CodeGenerator
の記述:
CodeGenerator
内の newFunctionAttr
LirNode rewriteFrame(LirNode node)
CodeGenerator
の記述:
CodeGenerator
内の rewriteFrame
LirNode rewritePrologue(LirNode node, BiList pre, BiList post)
LirNode rewriteEpilogue(LirNode node, BiList pre)
CodeGenerator
内の rewriteEpilogue
boolean isComplex(LirNode node)
CodeGenerator
内の isComplex
LirNode rewriteCall(LirNode node, BiList pre, BiList post)
CodeGenerator
の記述:
CodeGenerator
内の rewriteCall
LirNode makeVaStart(LirNode arg)
boolean equalArg(LirNode x, LirNode y)
CodeGenerator
の記述:
CodeGenerator
内の equalArg
LirNode rewriteSTATIC_1(LirNode iNode, BiList pre)
LirNode rewriteSTATIC_2(LirNode iNode, BiList pre)
LirNode rewriteMOD(LirNode base, BiList pre, boolean iIsSigned)
LirNode rewriteEvalImidiate32(LirNode base, BiList pre)
LirNode rewriteCONVFI(LirNode base, boolean iSigned, BiList pre, BiList post)
LirNode rewriteCONVF(LirNode base, BiList pre, boolean iSign)
LirNode rewriteJUMPC(LirNode iNode, BiList pre)
LirNode rewriteMask(LirNode iNode)
LirNode rewriteRSHSMask(LirNode iNode)
LirNode swapLeftRight(LirNode iNode)
LirNode orderForMask(LirNode iNode)
LirNode transmissonAND(LirNode iNode)
LirNode regRightShiftSigned(LirNode iNode)
LirNode Reg2Vector(LirNode iNode, BiList pre)
LirNode Vector2Reg(LirNode iNode, BiList pre)
public static boolean IsRotateMask(long iValue)
static int InOrderMask(LirNode iFirst, LirNode iSecond, LirNode iThird)
static long ObtainValue(LirNode iNode)
LirNode rewriteSTATIC_Low(LirSymRef iSym, BiList pre)
boolean CheckMust32bit(long iValue, boolean iIsSigned)
int ObtainMask(int iValue)
LirNode ToRegister(LirNode iReg, BiList iOut)
LirNode GainConvertionFrame()
LirNode GainVecConvertionFrame()
LirNode NewTempInFrame(int iType, int iBoundary)
java.lang.Object jmac1(java.lang.Object dest, java.lang.Object src)
java.lang.Object jmac2(java.lang.Object dest_hi, java.lang.Object dest_lo, java.lang.Object src)
java.lang.Object jmac3(java.lang.Object dest, java.lang.Object src1, java.lang.Object src2, java.lang.Object mask)
java.lang.Object jmac4(java.lang.Object dest)
java.lang.String jmac5(java.lang.String x, java.lang.String y)
java.lang.String jmac6(java.lang.String cr, java.lang.String type)
java.lang.String jmac7(java.lang.String reg)
java.lang.String jmac8(java.lang.String reg)
java.lang.String jmac9(java.lang.String reg)
java.lang.String jmac10(java.lang.String reg)
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 out, java.lang.String reg, java.lang.String imi)
java.lang.String jmac14(java.lang.String x, java.lang.String y)
java.lang.String jmac15(java.lang.String x, java.lang.String y)
java.lang.String jmac16(java.lang.String x, java.lang.String y)
java.lang.String jmac17(java.lang.String x, java.lang.String y)
java.lang.String jmac18(java.lang.String x)
java.lang.String jmac19(java.lang.String x, java.lang.String y)
java.lang.String jmac20(java.lang.String x, java.lang.String y)
java.lang.String jmac21(java.lang.String x, java.lang.String y)
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 lm, java.lang.String ls, java.lang.String rm, java.lang.String rs)
java.lang.String jmac25(java.lang.String symbol_name)
java.lang.String jmac26(java.lang.Object f)
java.lang.String jmac27(java.lang.Object f, java.lang.String rettype)
java.lang.String jmac28(java.lang.String x)
java.lang.String jmac29(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 x)
java.lang.String jmac33(java.lang.String x)
java.lang.String jmac34(java.lang.String x)
java.lang.String jmac35(java.lang.String x)
java.lang.String jmac36(java.lang.String x)
java.lang.String jmac37(java.lang.String y)
void emitComment(java.io.PrintWriter out, java.lang.String comment)
CodeGenerator
の記述:
CodeGenerator
内の emitComment
void emitBeginningOfModule(java.io.PrintWriter out)
void emitEndOfModule(java.io.PrintWriter out)
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 emitIdent(java.io.PrintWriter out, java.lang.String word)
CodeGenerator
の記述:
CodeGenerator
内の emitIdent
void emitData(java.io.PrintWriter out, int type, LirNode node)
CodeGenerator
内の emitData
java.lang.String makeAsmSymbol(java.lang.String symbol)
CodeGenerator
の記述:
CodeGenerator
内の makeAsmSymbol
java.lang.String GetSymbolSourcePlace(java.lang.String iBase, int iType)
static ImList ComputeImidiate(java.lang.Object dest, java.lang.Object src)
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |