/dalvik/vm/compiler/codegen/arm/armv7-a-neon/ |
D | MethodCodegenDriver.cpp | 38 static void genMethodInflateAndPunt(CompilationUnit *cUnit, MIR *mir, in genMethodInflateAndPunt() argument 56 dvmCompilerFlushAllRegs(cUnit); in genMethodInflateAndPunt() 59 opRegRegImm(cUnit, kOpAdd, oldStackSave, r5FP, in genMethodInflateAndPunt() 60 cUnit->method->registersSize * 4); in genMethodInflateAndPunt() 62 opRegRegImm(cUnit, kOpAdd, oldFP, oldStackSave, sizeof(StackSaveArea)); in genMethodInflateAndPunt() 64 opRegRegImm(cUnit, kOpSub, newStackSave, r5FP, sizeof(StackSaveArea)); in genMethodInflateAndPunt() 66 loadWordDisp(cUnit, r13sp, 0, savedPC); in genMethodInflateAndPunt() 67 loadConstant(cUnit, currentPC, (int) (cUnit->method->insns + mir->offset)); in genMethodInflateAndPunt() 68 loadConstant(cUnit, method, (int) cUnit->method); in genMethodInflateAndPunt() 69 loadConstant(cUnit, pDvmDex, (int) cUnit->method->clazz->pDvmDex); in genMethodInflateAndPunt() [all …]
|
/dalvik/vm/compiler/codegen/arm/ |
D | ArmRallocUtil.cpp | 52 extern void dvmCompilerClobberCallRegs(CompilationUnit *cUnit) in dvmCompilerClobberCallRegs() argument 54 dvmCompilerClobber(cUnit, r0); in dvmCompilerClobberCallRegs() 55 dvmCompilerClobber(cUnit, r1); in dvmCompilerClobberCallRegs() 56 dvmCompilerClobber(cUnit, r2); in dvmCompilerClobberCallRegs() 57 dvmCompilerClobber(cUnit, r3); in dvmCompilerClobberCallRegs() 58 dvmCompilerClobber(cUnit, r9); // Need to do this?, be conservative in dvmCompilerClobberCallRegs() 59 dvmCompilerClobber(cUnit, r11); in dvmCompilerClobberCallRegs() 60 dvmCompilerClobber(cUnit, r12); in dvmCompilerClobberCallRegs() 61 dvmCompilerClobber(cUnit, r14lr); in dvmCompilerClobberCallRegs() 65 extern void dvmCompilerClobberHandlerRegs(CompilationUnit *cUnit) in dvmCompilerClobberHandlerRegs() argument [all …]
|
D | CodegenDriver.cpp | 30 static void markCard(CompilationUnit *cUnit, int valReg, int tgtAddrReg) in markCard() argument 32 int regCardBase = dvmCompilerAllocTemp(cUnit); in markCard() 33 int regCardNo = dvmCompilerAllocTemp(cUnit); in markCard() 34 ArmLIR *branchOver = genCmpImmBranch(cUnit, kArmCondEq, valReg, 0); in markCard() 35 loadWordDisp(cUnit, r6SELF, offsetof(Thread, cardTable), in markCard() 37 opRegRegImm(cUnit, kOpLsr, regCardNo, tgtAddrReg, GC_CARD_SHIFT); in markCard() 38 storeBaseIndexed(cUnit, regCardBase, regCardNo, regCardBase, 0, in markCard() 40 ArmLIR *target = newLIR0(cUnit, kArmPseudoTargetLabel); in markCard() 43 dvmCompilerFreeTemp(cUnit, regCardBase); in markCard() 44 dvmCompilerFreeTemp(cUnit, regCardNo); in markCard() [all …]
|
D | ArchFactory.cpp | 29 static TGT_LIR *genRegImmCheck(CompilationUnit *cUnit, in genRegImmCheck() argument 34 TGT_LIR *branch = genCmpImmBranch(cUnit, cond, reg, checkValue); in genRegImmCheck() 35 if (cUnit->jitMode == kJitMethod) { in genRegImmCheck() 36 BasicBlock *bb = cUnit->curBlock; in genRegImmCheck() 38 ArmLIR *exceptionLabel = (ArmLIR *) cUnit->blockLabelList; in genRegImmCheck() 48 return genCheckCommon(cUnit, dOffset, branch, pcrLabel); in genRegImmCheck() 57 static TGT_LIR *genNullCheck(CompilationUnit *cUnit, int sReg, int mReg, in genNullCheck() argument 61 if (dvmIsBitSet(cUnit->regPool->nullCheckedRegs, sReg)) { in genNullCheck() 64 dvmSetBit(cUnit->regPool->nullCheckedRegs, sReg); in genNullCheck() 65 return genRegImmCheck(cUnit, kArmCondEq, mReg, 0, dOffset, pcrLabel); in genNullCheck() [all …]
|
D | Codegen.h | 32 static ArmLIR *opRegImm(CompilationUnit *cUnit, OpKind op, int rDestSrc1, 34 static ArmLIR *opRegReg(CompilationUnit *cUnit, OpKind op, int rDestSrc1, 38 static bool genArithOpFloatPortable(CompilationUnit *cUnit, MIR *mir, 42 static bool genArithOpDoublePortable(CompilationUnit *cUnit, MIR *mir, 46 static bool genConversionPortable(CompilationUnit *cUnit, MIR *mir); 49 static void genMonitorPortable(CompilationUnit *cUnit, MIR *mir); 52 static void genInterpSingleStep(CompilationUnit *cUnit, MIR *mir); 64 extern ArmLIR* dvmCompilerRegCopyNoInsert(CompilationUnit *cUnit, int rDest,
|
D | GlobalOptimizations.cpp | 25 static void applyRedundantBranchElimination(CompilationUnit *cUnit) in applyRedundantBranchElimination() argument 29 for (thisLIR = (ArmLIR *) cUnit->firstLIRInsn; in applyRedundantBranchElimination() 30 thisLIR != (ArmLIR *) cUnit->lastLIRInsn; in applyRedundantBranchElimination() 55 (nextLIR = (ArmLIR *) cUnit->lastLIRInsn)) in applyRedundantBranchElimination() 62 void dvmCompilerApplyGlobalOptimizations(CompilationUnit *cUnit) in dvmCompilerApplyGlobalOptimizations() argument 64 applyRedundantBranchElimination(cUnit); in dvmCompilerApplyGlobalOptimizations()
|
/dalvik/vm/compiler/codegen/arm/Thumb2/ |
D | Gen.cpp | 47 static int genTraceProfileEntry(CompilationUnit *cUnit) in genTraceProfileEntry() argument 51 newLIR1(cUnit, kArm16BitData, addr & 0xffff); in genTraceProfileEntry() 52 newLIR1(cUnit, kArm16BitData, (addr >> 16) & 0xffff); in genTraceProfileEntry() 53 cUnit->chainCellOffsetLIR = in genTraceProfileEntry() 54 (LIR *) newLIR1(cUnit, kArm16BitData, CHAIN_CELL_OFFSET_TAG); in genTraceProfileEntry() 55 cUnit->headerSize = 6; in genTraceProfileEntry() 59 newLIR2(cUnit, kThumb2LdrPcReln12, r0, 8); in genTraceProfileEntry() 60 newLIR3(cUnit, kThumbLdrRRI5, r1, r0, 0); in genTraceProfileEntry() 61 newLIR2(cUnit, kThumbAddRI8, r1, 1); in genTraceProfileEntry() 62 newLIR3(cUnit, kThumbStrRRI5, r1, r0, 0); in genTraceProfileEntry() [all …]
|
D | Factory.cpp | 51 static ArmLIR *loadFPConstantValue(CompilationUnit *cUnit, int rDest, in loadFPConstantValue() argument 57 return newLIR2(cUnit, kThumb2Vmovs_IMM8, rDest, encodedImm); in loadFPConstantValue() 59 ArmLIR *dataTarget = scanLiteralPool(cUnit->literalList, value, 0); in loadFPConstantValue() 61 dataTarget = addWordData(cUnit, &cUnit->literalList, value); in loadFPConstantValue() 71 dvmCompilerAppendLIR(cUnit, (LIR *) loadPcRel); in loadFPConstantValue() 136 static ArmLIR *loadConstantNoClobber(CompilationUnit *cUnit, int rDest, in loadConstantNoClobber() argument 143 return loadFPConstantValue(cUnit, rDest, value); in loadConstantNoClobber() 148 return newLIR2(cUnit, kThumbMovImm, rDest, value); in loadConstantNoClobber() 153 res = newLIR2(cUnit, kThumb2MovImmShift, rDest, modImm); in loadConstantNoClobber() 158 res = newLIR2(cUnit, kThumb2MvnImmShift, rDest, modImm); in loadConstantNoClobber() [all …]
|
D | Ralloc.cpp | 32 int dvmCompilerAllocTypedTempPair(CompilationUnit *cUnit, in dvmCompilerAllocTypedTempPair() argument 44 lowReg = dvmCompilerAllocTempDouble(cUnit); in dvmCompilerAllocTypedTempPair() 47 lowReg = dvmCompilerAllocTemp(cUnit); in dvmCompilerAllocTypedTempPair() 48 highReg = dvmCompilerAllocTemp(cUnit); in dvmCompilerAllocTypedTempPair() 54 int dvmCompilerAllocTypedTemp(CompilationUnit *cUnit, bool fpHint, in dvmCompilerAllocTypedTemp() argument 61 return dvmCompilerAllocTempFloat(cUnit); in dvmCompilerAllocTypedTemp() 62 return dvmCompilerAllocTemp(cUnit); in dvmCompilerAllocTypedTemp()
|
/dalvik/vm/compiler/codegen/ |
D | Ralloc.h | 40 static inline int dvmCompilerS2VReg(CompilationUnit *cUnit, int sReg) in dvmCompilerS2VReg() argument 43 return DECODE_REG(dvmConvertSSARegToDalvik(cUnit, sReg)); in dvmCompilerS2VReg() 47 static inline void dvmCompilerResetNullCheck(CompilationUnit *cUnit) in dvmCompilerResetNullCheck() argument 49 dvmClearAllBits(cUnit->regPool->nullCheckedRegs); in dvmCompilerResetNullCheck() 67 static inline bool dvmCompilerLiveOut(CompilationUnit *cUnit, int sReg) in dvmCompilerLiveOut() argument 79 extern RegLocation dvmCompilerEvalLoc(CompilationUnit *cUnit, RegLocation loc, 82 extern void dvmCompilerClobber(CompilationUnit *cUnit, int reg); 84 extern RegLocation dvmCompilerUpdateLoc(CompilationUnit *cUnit, 88 extern RegLocation dvmCompilerUpdateLocWide(CompilationUnit *cUnit, 92 extern void dvmCompilerClobberHandlerRegs(CompilationUnit *cUnit); [all …]
|
D | CodegenFactory.cpp | 35 static TGT_LIR *loadWordDisp(CompilationUnit *cUnit, int rBase, in loadWordDisp() argument 38 return loadBaseDisp(cUnit, NULL, rBase, displacement, rDest, kWord, in loadWordDisp() 42 static TGT_LIR *storeWordDisp(CompilationUnit *cUnit, int rBase, in storeWordDisp() argument 45 return storeBaseDisp(cUnit, rBase, displacement, rSrc, kWord); in storeWordDisp() 53 static void loadValueDirect(CompilationUnit *cUnit, RegLocation rlSrc, in loadValueDirect() argument 56 rlSrc = dvmCompilerUpdateLoc(cUnit, rlSrc); in loadValueDirect() 58 genRegCopy(cUnit, reg1, rlSrc.lowReg); in loadValueDirect() 60 loadWordDisp(cUnit, rSELF, offsetof(Thread, interpSave.retval), reg1); in loadValueDirect() 63 loadWordDisp(cUnit, rFP, dvmCompilerS2VReg(cUnit, rlSrc.sRegLow) << 2, in loadValueDirect() 73 static void loadValueDirectFixed(CompilationUnit *cUnit, RegLocation rlSrc, in loadValueDirectFixed() argument [all …]
|
D | RallocUtil.cpp | 46 extern void dvmCompilerResetRegPool(CompilationUnit *cUnit) in dvmCompilerResetRegPool() argument 49 for (i=0; i < cUnit->regPool->numCoreTemps; i++) { in dvmCompilerResetRegPool() 50 cUnit->regPool->coreTemps[i].inUse = false; in dvmCompilerResetRegPool() 52 for (i=0; i < cUnit->regPool->numFPTemps; i++) { in dvmCompilerResetRegPool() 53 cUnit->regPool->FPTemps[i].inUse = false; in dvmCompilerResetRegPool() 83 static RegisterInfo *getRegInfo(CompilationUnit *cUnit, int reg) in getRegInfo() argument 85 int numTemps = cUnit->regPool->numCoreTemps; in getRegInfo() 86 RegisterInfo *p = cUnit->regPool->coreTemps; in getRegInfo() 93 p = cUnit->regPool->FPTemps; in getRegInfo() 94 numTemps = cUnit->regPool->numFPTemps; in getRegInfo() [all …]
|
D | CompilerCodegen.h | 29 void dvmCompilerMIR2LIR(CompilationUnit *cUnit); 32 void dvmCompilerMethodMIR2LIR(CompilationUnit *cUnit); 35 void dvmCompilerAssembleLIR(CompilationUnit *cUnit, JitTranslationInfo *info); 41 void dvmJitInstallClassObjectPointers(CompilationUnit *cUnit, 48 void dvmCompilerCodegenDump(CompilationUnit *cUnit); 54 void dvmCompilerLocalRegAlloc(CompilationUnit *cUnit); 57 void dvmCompilerInitializeRegAlloc(CompilationUnit *cUnit); 72 void dvmCompilerGenMemBarrier(CompilationUnit *cUnit, int barrierKind);
|
/dalvik/vm/compiler/codegen/arm/Thumb/ |
D | Gen.cpp | 50 static int genTraceProfileEntry(CompilationUnit *cUnit) in genTraceProfileEntry() argument 54 newLIR1(cUnit, kArm16BitData, addr & 0xffff); in genTraceProfileEntry() 55 newLIR1(cUnit, kArm16BitData, (addr >> 16) & 0xffff); in genTraceProfileEntry() 56 cUnit->chainCellOffsetLIR = in genTraceProfileEntry() 57 (LIR *) newLIR1(cUnit, kArm16BitData, CHAIN_CELL_OFFSET_TAG); in genTraceProfileEntry() 58 cUnit->headerSize = 6; in genTraceProfileEntry() 62 newLIR2(cUnit, kThumbMovRR_H2L, r0, r15pc); in genTraceProfileEntry() 63 newLIR2(cUnit, kThumbSubRI8, r0, 10); in genTraceProfileEntry() 64 newLIR3(cUnit, kThumbLdrRRI5, r0, r0, 0); in genTraceProfileEntry() 65 newLIR3(cUnit, kThumbLdrRRI5, r1, r0, 0); in genTraceProfileEntry() [all …]
|
D | Factory.cpp | 27 static void storePair(CompilationUnit *cUnit, int base, int lowReg, 29 static void loadPair(CompilationUnit *cUnit, int base, int lowReg, int highReg); 30 static ArmLIR *loadWordDisp(CompilationUnit *cUnit, int rBase, int displacement, 32 static ArmLIR *storeWordDisp(CompilationUnit *cUnit, int rBase, 34 static ArmLIR *genRegRegCheck(CompilationUnit *cUnit, 49 static ArmLIR *loadConstantNoClobber(CompilationUnit *cUnit, int rDest, in loadConstantNoClobber() argument 53 int tDest = LOWREG(rDest) ? rDest : dvmCompilerAllocTemp(cUnit); in loadConstantNoClobber() 56 res = newLIR2(cUnit, kThumbMovImm, tDest, value); in loadConstantNoClobber() 58 opRegReg(cUnit, kOpMov, rDest, tDest); in loadConstantNoClobber() 59 dvmCompilerFreeTemp(cUnit, tDest); in loadConstantNoClobber() [all …]
|
D | Ralloc.cpp | 29 int dvmCompilerAllocTypedTempPair(CompilationUnit *cUnit, bool fpHint, in dvmCompilerAllocTypedTempPair() argument 35 lowReg = dvmCompilerAllocTemp(cUnit); in dvmCompilerAllocTypedTempPair() 36 highReg = dvmCompilerAllocTemp(cUnit); in dvmCompilerAllocTypedTempPair() 41 int dvmCompilerAllocTypedTemp(CompilationUnit *cUnit, bool fpHint, int regClass) in dvmCompilerAllocTypedTemp() argument 43 return dvmCompilerAllocTemp(cUnit); in dvmCompilerAllocTypedTemp()
|
/dalvik/vm/compiler/codegen/arm/FP/ |
D | ThumbPortableFP.cpp | 18 static bool genArithOpFloatPortable(CompilationUnit *cUnit, MIR *mir, 22 static bool genArithOpDoublePortable(CompilationUnit *cUnit, MIR *mir, 26 static bool genConversionPortable(CompilationUnit *cUnit, MIR *mir); 28 static bool handleExecuteInlineC(CompilationUnit *cUnit, MIR *mir); 30 static bool genConversion(CompilationUnit *cUnit, MIR *mir) in genConversion() argument 32 return genConversionPortable(cUnit, mir); in genConversion() 35 static bool genArithOpFloat(CompilationUnit *cUnit, MIR *mir, in genArithOpFloat() argument 39 return genArithOpFloatPortable(cUnit, mir, rlDest, rlSrc1, rlSrc2); in genArithOpFloat() 42 static bool genArithOpDouble(CompilationUnit *cUnit, MIR *mir, in genArithOpDouble() argument 46 return genArithOpDoublePortable(cUnit, mir, rlDest, rlSrc1, rlSrc2); in genArithOpDouble() [all …]
|
D | ThumbVFP.cpp | 27 static void loadValueAddressDirect(CompilationUnit *cUnit, RegLocation rlSrc, in loadValueAddressDirect() argument 30 rlSrc = rlSrc.wide ? dvmCompilerUpdateLocWide(cUnit, rlSrc) : in loadValueAddressDirect() 31 dvmCompilerUpdateLoc(cUnit, rlSrc); in loadValueAddressDirect() 34 dvmCompilerFlushRegWide(cUnit, rlSrc.lowReg, rlSrc.highReg); in loadValueAddressDirect() 36 dvmCompilerFlushReg(cUnit, rlSrc.lowReg); in loadValueAddressDirect() 39 dvmCompilerClobber(cUnit, rDest); in loadValueAddressDirect() 40 dvmCompilerLockTemp(cUnit, rDest); in loadValueAddressDirect() 41 opRegRegImm(cUnit, kOpAdd, rDest, r5FP, in loadValueAddressDirect() 42 dvmCompilerS2VReg(cUnit, rlSrc.sRegLow) << 2); in loadValueAddressDirect() 45 static bool genInlineSqrt(CompilationUnit *cUnit, MIR *mir) in genInlineSqrt() argument [all …]
|
D | Thumb2VFP.cpp | 17 static bool genArithOpFloat(CompilationUnit *cUnit, MIR *mir, in genArithOpFloat() argument 48 return genArithOpFloatPortable(cUnit, mir, rlDest, rlSrc1, in genArithOpFloat() 54 rlSrc1 = loadValue(cUnit, rlSrc1, kFPReg); in genArithOpFloat() 55 rlSrc2 = loadValue(cUnit, rlSrc2, kFPReg); in genArithOpFloat() 56 rlResult = dvmCompilerEvalLoc(cUnit, rlDest, kFPReg, true); in genArithOpFloat() 57 newLIR3(cUnit, (ArmOpcode)op, rlResult.lowReg, rlSrc1.lowReg, in genArithOpFloat() 59 storeValue(cUnit, rlDest, rlResult); in genArithOpFloat() 63 static bool genArithOpDouble(CompilationUnit *cUnit, MIR *mir, in genArithOpDouble() argument 90 return genArithOpDoublePortable(cUnit, mir, rlDest, rlSrc1, in genArithOpDouble() 97 rlSrc1 = loadValueWide(cUnit, rlSrc1, kFPReg); in genArithOpDouble() [all …]
|
/dalvik/vm/compiler/ |
D | SSATransformation.cpp | 23 static void recordDFSPreOrder(CompilationUnit *cUnit, BasicBlock *block) in recordDFSPreOrder() argument 30 dvmInsertGrowableList(&cUnit->dfsOrder, block->id); in recordDFSPreOrder() 32 if (block->fallThrough) recordDFSPreOrder(cUnit, block->fallThrough); in recordDFSPreOrder() 33 if (block->taken) recordDFSPreOrder(cUnit, block->taken); in recordDFSPreOrder() 43 recordDFSPreOrder(cUnit, succBB); in recordDFSPreOrder() 50 static void computeDFSOrder(CompilationUnit *cUnit) in computeDFSOrder() argument 53 if (cUnit->dfsOrder.elemList == NULL) { in computeDFSOrder() 54 dvmInitGrowableList(&cUnit->dfsOrder, cUnit->numBlocks); in computeDFSOrder() 57 cUnit->dfsOrder.numUsed = 0; in computeDFSOrder() 60 dvmCompilerDataFlowAnalysisDispatcher(cUnit, dvmCompilerClearVisitedFlag, in computeDFSOrder() [all …]
|
D | Loop.cpp | 26 static void dumpConstants(CompilationUnit *cUnit) 29 LOGE("LOOP starting offset: %x", cUnit->entryBlock->startOffset); 30 for (i = 0; i < cUnit->numSSARegs; i++) { 31 if (dvmIsBitSet(cUnit->isConstantV, i)) { 32 int subNReg = dvmConvertSSARegToDalvik(cUnit, i); 35 cUnit->constantValues[i]); 40 static void dumpIVList(CompilationUnit *cUnit) 43 GrowableList *ivList = cUnit->loopAnalysis->ivList; 48 int iv = dvmConvertSSARegToDalvik(cUnit, ivInfo->ssaReg); 57 int biv = dvmConvertSSARegToDalvik(cUnit, ivInfo->basicSSAReg); [all …]
|
D | Frontend.cpp | 537 static BasicBlock *splitBlock(CompilationUnit *cUnit, in splitBlock() argument 551 cUnit->numBlocks++); in splitBlock() 552 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bottomBlock); in splitBlock() 608 static BasicBlock *findBlock(CompilationUnit *cUnit, in findBlock() argument 612 GrowableList *blockList = &cUnit->blockList; in findBlock() 624 BasicBlock *newBB = splitBlock(cUnit, codeOffset, bb); in findBlock() 629 bb = dvmCompilerNewBB(kDalvikByteCode, cUnit->numBlocks++); in findBlock() 630 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bb); in findBlock() 638 void dvmDumpCFG(CompilationUnit *cUnit, const char *dirPrefix) in dvmDumpCFG() argument 640 const Method *method = cUnit->method; in dvmDumpCFG() [all …]
|
D | Ralloc.cpp | 27 static void inferTypes(CompilationUnit *cUnit, BasicBlock *bb) in inferTypes() argument 39 cUnit->regLocation[ssaRep->uses[i]].fp = true; in inferTypes() 43 cUnit->regLocation[ssaRep->defs[i]].fp = true; in inferTypes() 57 void dvmCompilerLocalRegAlloc(CompilationUnit *cUnit) in dvmCompilerLocalRegAlloc() argument 63 loc = (RegLocation*)dvmCompilerNew(cUnit->numSSARegs * sizeof(*loc), true); in dvmCompilerLocalRegAlloc() 64 for (i=0; i< cUnit->numSSARegs; i++) { in dvmCompilerLocalRegAlloc() 68 cUnit->regLocation = loc; in dvmCompilerLocalRegAlloc() 72 dvmGrowableListIteratorInit(&cUnit->blockList, &iterator); in dvmCompilerLocalRegAlloc() 77 inferTypes(cUnit, bb); in dvmCompilerLocalRegAlloc() 81 for (i=0; i < cUnit->numSSARegs; i++) { in dvmCompilerLocalRegAlloc() [all …]
|
D | Compiler.h | 207 void dvmCompilerInlineMIR(struct CompilationUnit *cUnit, 209 void dvmInitializeSSAConversion(struct CompilationUnit *cUnit); 210 int dvmConvertSSARegToDalvik(const struct CompilationUnit *cUnit, int ssaReg); 211 bool dvmCompilerLoopOpt(struct CompilationUnit *cUnit); 212 void dvmCompilerInsertBackwardChaining(struct CompilationUnit *cUnit); 213 void dvmCompilerNonLoopAnalysis(struct CompilationUnit *cUnit); 214 bool dvmCompilerFindLocalLiveIn(struct CompilationUnit *cUnit, 216 bool dvmCompilerDoSSAConversion(struct CompilationUnit *cUnit, 218 bool dvmCompilerDoConstantPropagation(struct CompilationUnit *cUnit, 220 bool dvmCompilerFindInductionVariables(struct CompilationUnit *cUnit, [all …]
|
/dalvik/vm/compiler/codegen/x86/ |
D | CodegenDriver.cpp | 27 extern X86LIR *loadConstant(CompilationUnit *cUnit, int rDest, int value); 28 extern X86LIR *loadWordDisp(CompilationUnit *cUnit, int rBase, 30 extern void dvmCompilerFlushAllRegs(CompilationUnit *cUnit); 31 extern void storeWordDisp(CompilationUnit *cUnit, int rBase, 33 extern X86LIR *opReg(CompilationUnit *cUnit, OpKind op, int rDestSrc); 43 static void genPuntToInterp(CompilationUnit *cUnit, unsigned int offset) 45 dvmCompilerFlushAllRegs(cUnit); 46 loadConstant(cUnit, rPC, (int)(cUnit->method->insns + offset)); 47 loadWordDisp(cUnit, rEBP, 0, rECX); // Get glue 48 loadWordDisp(cUnit, rECX, [all …]
|