|
||||||||||
| 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_ppc
| Nested Class Summary | |
(package private) static class |
CodeGenerator_ppc.PowerPCAttr
|
(package private) class |
CodeGenerator_ppc.RewrState
State label for rewriting engine. |
(package private) class |
CodeGenerator_ppc.State
State label for instruction selection engine. |
(package private) static class |
CodeGenerator_ppc.StructureScheduler
|
| Nested classes inherited from class coins.backend.gen.CodeGenerator |
CodeGenerator.FunctionAttr, CodeGenerator.LexpToString, CodeGenerator.Match |
| Field Summary | |
(package private) static int |
ADDR_TYPE
|
(package private) static int |
ARG_AREA_MIN_SIZE
|
(package private) static int |
CONDITION_REGISTER_STACK
|
(package private) static int |
EXTERNAL_CONSTANCE
|
(package private) static int |
EXTERNAL_FUNCTION
|
(package private) static int |
EXTERNAL_VALIABLE
|
(package private) static int |
F32
|
(package private) static int |
F64
|
(package private) static int |
FLOAT_REGISTER_COUNT
|
(package private) static int |
FLOAT_REGISTER_SIZE
|
(package private) static int |
FLOAT_START_REGISTER
|
(package private) java.util.ArrayList |
gAccessor
|
(package private) static int |
I128
|
(package private) static int |
I16
|
(package private) static int |
I32
|
(package private) static int |
I4
|
(package private) static int |
I8
|
(package private) static int |
INT_REGISTER_COUNT
|
(package private) static int |
INT_REGISTER_SIZE
|
(package private) static int |
INT_START_REGISTER
|
(package private) static int |
INTERNAL_CONSTANCE
|
(package private) static int |
INTERNAL_FUNCTION
|
(package private) static int |
INTERNAL_VALIABLE
|
(package private) static int |
LINK_AREA_SIZE
|
(package private) static int |
LINK_REGISTER_STACK
|
(package private) static boolean |
PPC_64
|
(package private) static int |
RED_ZONE_SIZE
|
(package private) static int |
REG_TYPE
|
(package private) ImList |
regCallClobbers
|
(package private) LirNode |
sConvertionFrame
|
(package private) boolean |
sSymbolEmitted
|
(package private) static int |
STACK_POINTER_STACK
|
(package private) CodeGenerator_ppc.State[] |
stateVec
State vector for labeling LIR nodes. |
(package private) int |
sTempFrameNumber
|
(package private) LirNode |
sVecConvertionFrame
|
(package private) static int |
VECTOR_REGISTER_SIZE
|
| Fields inherited from class 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 |
| Constructor Summary | |
CodeGenerator_ppc()
Create code generator engine. |
|
| Method Summary | |
(package private) boolean |
CheckMust32bit(long iValue,
boolean iIsSigned)
|
(package private) static ImList |
ComputeImidiate(java.lang.Object dest,
java.lang.Object src)
|
(package private) java.lang.String |
defaultRegsetForType(int type)
Return default register set for type. |
(package private) void |
emitAlign(java.io.PrintWriter out,
int align)
Emit data align |
(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 |
emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
Emit data common |
(package private) void |
emitData(java.io.PrintWriter out,
int type,
LirNode node)
Emit data |
(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 word)
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) boolean |
equalArg(LirNode x,
LirNode y)
Return true if variable x and y are same. |
(package private) java.lang.Object |
expandBuildMacro(ImList form)
Expand building-macro. |
(package private) LirNode |
GainConvertionFrame()
|
(package private) LirNode |
GainVecConvertionFrame()
|
(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) java.lang.String |
GetSymbolSourcePlace(java.lang.String iBase,
int iType)
|
(package private) void |
initLabeling(LirFactory lir)
Initialize for labeling. |
(package private) void |
initRewriteLabeling()
Initialization for rewriting. |
(package private) static int |
InOrderMask(LirNode iFirst,
LirNode iSecond,
LirNode iThird)
|
(package private) boolean |
isComplex(LirNode node)
Return true if node is a complex one. |
static boolean |
IsRotateMask(long iValue)
|
(package private) java.lang.Object |
jmac1(java.lang.Object dest,
java.lang.Object src)
|
(package private) java.lang.String |
jmac10(java.lang.String reg)
|
(package private) java.lang.String |
jmac11(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac12(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac13(java.lang.String out,
java.lang.String reg,
java.lang.String imi)
|
(package private) java.lang.String |
jmac14(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac15(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac16(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac17(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac18(java.lang.String x)
|
(package private) java.lang.String |
jmac19(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.Object |
jmac2(java.lang.Object dest_hi,
java.lang.Object dest_lo,
java.lang.Object src)
|
(package private) java.lang.String |
jmac20(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac21(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac22(java.lang.String x)
|
(package private) java.lang.String |
jmac23(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac24(java.lang.String lm,
java.lang.String ls,
java.lang.String rm,
java.lang.String rs)
|
(package private) java.lang.String |
jmac25(java.lang.String symbol_name)
|
(package private) java.lang.String |
jmac26(java.lang.Object f)
|
(package private) java.lang.String |
jmac27(java.lang.Object f,
java.lang.String rettype)
|
(package private) java.lang.String |
jmac28(java.lang.String x)
|
(package private) java.lang.String |
jmac29(java.lang.String x)
|
(package private) java.lang.Object |
jmac3(java.lang.Object dest,
java.lang.Object src1,
java.lang.Object src2,
java.lang.Object mask)
|
(package private) java.lang.String |
jmac30(java.lang.String x)
|
(package private) java.lang.String |
jmac31(java.lang.String x)
|
(package private) java.lang.String |
jmac32(java.lang.String x)
|
(package private) java.lang.String |
jmac33(java.lang.String x)
|
(package private) java.lang.String |
jmac34(java.lang.String x)
|
(package private) java.lang.String |
jmac35(java.lang.String x)
|
(package private) java.lang.String |
jmac36(java.lang.String x)
|
(package private) java.lang.String |
jmac37(java.lang.String y)
|
(package private) java.lang.Object |
jmac4(java.lang.Object dest)
|
(package private) java.lang.String |
jmac5(java.lang.String x,
java.lang.String y)
|
(package private) java.lang.String |
jmac6(java.lang.String cr,
java.lang.String type)
|
(package private) java.lang.String |
jmac7(java.lang.String reg)
|
(package private) java.lang.String |
jmac8(java.lang.String reg)
|
(package private) java.lang.String |
jmac9(java.lang.String reg)
|
(package private) void |
labelTree(LirNode t)
Label LIR tree t. |
(package private) java.lang.String |
makeAsmSymbol(java.lang.String symbol)
Make symbol in assembly language form. |
(package private) LirNode |
makeVaStart(LirNode arg)
Return offset for va_start position. |
(package private) CodeGenerator.FunctionAttr |
newFunctionAttr(Function func)
Prepare new function attribute information. |
(package private) LirNode |
NewTempInFrame(int iType,
int iBoundary)
|
(package private) int |
ObtainMask(int iValue)
|
(package private) static long |
ObtainValue(LirNode iNode)
|
(package private) LirNode |
orderForMask(LirNode iNode)
|
(package private) java.lang.Object |
quiltLir(LirNode node)
Expand building-macro, for LirNode |
(package private) LirNode |
Reg2Vector(LirNode iNode,
BiList pre)
|
(package private) LirNode |
regRightShiftSigned(LirNode iNode)
|
(package private) LirNode |
rewriteCall(LirNode node,
BiList pre,
BiList post)
Rewrite CALL. |
(package private) LirNode |
rewriteCONVF(LirNode base,
BiList pre,
boolean iSign)
|
(package private) LirNode |
rewriteCONVFI(LirNode base,
boolean iSigned,
BiList pre,
BiList post)
|
(package private) LirNode |
rewriteEpilogue(LirNode node,
BiList pre)
Rewrite EPILOGUE |
(package private) LirNode |
rewriteEvalImidiate32(LirNode base,
BiList pre)
|
(package private) LirNode |
rewriteFrame(LirNode node)
Rewrite FRAME node to target machine form. |
(package private) LirNode |
rewriteJUMPC(LirNode iNode,
BiList pre)
|
(package private) LirNode |
rewriteMask(LirNode iNode)
|
(package private) LirNode |
rewriteMOD(LirNode base,
BiList pre,
boolean iIsSigned)
|
(package private) LirNode |
rewritePrologue(LirNode node,
BiList pre,
BiList post)
|
(package private) LirNode |
rewriteRSHSMask(LirNode iNode)
|
(package private) LirNode |
rewriteSTATIC_1(LirNode iNode,
BiList pre)
|
(package private) LirNode |
rewriteSTATIC_2(LirNode iNode,
BiList pre)
|
(package private) LirNode |
rewriteSTATIC_Low(LirSymRef iSym,
BiList pre)
|
(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. |
(package private) LirNode |
swapLeftRight(LirNode iNode)
|
(package private) LirNode |
ToRegister(LirNode iReg,
BiList iOut)
|
(package private) LirNode |
transmissonAND(LirNode iNode)
|
(package private) LirNode |
Vector2Reg(LirNode iNode,
BiList pre)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
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
| Constructor Detail |
public CodeGenerator_ppc()
| 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 CodeGeneratorLirNode rewriteFrame(LirNode node)
CodeGenerator
rewriteFrame in class CodeGenerator
LirNode rewritePrologue(LirNode node,
BiList pre,
BiList post)
LirNode rewriteEpilogue(LirNode node,
BiList pre)
rewriteEpilogue in class CodeGeneratorboolean isComplex(LirNode node)
isComplex in class CodeGenerator
LirNode rewriteCall(LirNode node,
BiList pre,
BiList post)
CodeGenerator
rewriteCall in class CodeGeneratorLirNode makeVaStart(LirNode arg)
boolean equalArg(LirNode x,
LirNode y)
CodeGenerator
equalArg in class CodeGenerator
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
emitComment in class CodeGeneratorvoid emitBeginningOfModule(java.io.PrintWriter out)
void emitEndOfModule(java.io.PrintWriter out)
void emitBeginningOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator
emitBeginningOfSegment in class CodeGenerator
void emitEndOfSegment(java.io.PrintWriter out,
java.lang.String segment)
CodeGenerator
emitEndOfSegment 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 emitAlign(java.io.PrintWriter out,
int align)
emitAlign in class CodeGenerator
void emitCommon(java.io.PrintWriter out,
SymStatic symbol,
int bytes)
emitCommon in class CodeGenerator
void emitLinkage(java.io.PrintWriter out,
SymStatic symbol)
emitLinkage in class CodeGenerator
void emitZeros(java.io.PrintWriter out,
int bytes)
emitZeros in class CodeGenerator
void emitIdent(java.io.PrintWriter out,
java.lang.String word)
CodeGenerator
emitIdent in class CodeGenerator
void emitData(java.io.PrintWriter out,
int type,
LirNode node)
emitData in class CodeGeneratorjava.lang.String makeAsmSymbol(java.lang.String symbol)
CodeGenerator
makeAsmSymbol in class CodeGenerator
java.lang.String GetSymbolSourcePlace(java.lang.String iBase,
int iType)
static ImList ComputeImidiate(java.lang.Object dest,
java.lang.Object src)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||