Home | History | Annotate | Download | only in armv7-a-neon

Lines Matching full:cunit

38 static void genMethodInflateAndPunt(CompilationUnit *cUnit, MIR *mir,
56 dvmCompilerFlushAllRegs(cUnit);
59 opRegRegImm(cUnit, kOpAdd, oldStackSave, r5FP,
60 cUnit->method->registersSize * 4);
62 opRegRegImm(cUnit, kOpAdd, oldFP, oldStackSave, sizeof(StackSaveArea));
64 opRegRegImm(cUnit, kOpSub, newStackSave, r5FP, sizeof(StackSaveArea));
66 loadWordDisp(cUnit, r13sp, 0, savedPC);
67 loadConstant(cUnit, currentPC, (int) (cUnit->method->insns + mir->offset));
68 loadConstant(cUnit, method, (int) cUnit->method);
69 loadConstant(cUnit, pDvmDex, (int) cUnit->method->clazz->pDvmDex);
72 storeWordDisp(cUnit, newStackSave, offsetof(StackSaveArea, prevSave),
76 storeWordDisp(cUnit, newStackSave, offsetof(StackSaveArea, prevFrame),
79 storeWordDisp(cUnit, newStackSave, offsetof(StackSaveArea, savedPc),
82 loadConstant(cUnit, returnAddr, 0);
83 storeWordDisp(cUnit, newStackSave, offsetof(StackSaveArea, returnAddr),
86 storeWordDisp(cUnit, newStackSave, offsetof(StackSaveArea, method), method);
88 storeWordDisp(cUnit, r6SELF, offsetof(InterpSaveState, method), method);
90 storeWordDisp(cUnit, r6SELF, offsetof(Thread, interpSave.curFrame), r5FP);
92 storeWordDisp(cUnit, r6SELF, offsetof(InterpSaveState, methodClassDex),
95 opRegImm(cUnit, kOpAdd, r13sp, 16);
96 genPuntToInterp(cUnit, mir->offset);
106 static bool handleMethodFmt10t_Fmt20t_Fmt30t(CompilationUnit *cUnit, MIR *mir,
113 genSuspendPoll(cUnit, mir);
117 genUnconditionalBranch(cUnit, &labelList[bb->taken->id]);
121 static bool handleMethodFmt10x(CompilationUnit *cUnit, MIR *mir)
128 return handleFmt10x(cUnit, mir);
132 static bool handleMethodFmt11n_Fmt31i(CompilationUnit *cUnit, MIR *mir)
134 return handleFmt11n_Fmt31i(cUnit, mir);
137 static bool handleMethodFmt11x(CompilationUnit *cUnit, MIR *mir, BasicBlock *bb,
143 genMethodInflateAndPunt(cUnit, mir, bb);
146 return handleFmt11x(cUnit, mir);
150 static bool handleMethodFmt12x(CompilationUnit *cUnit, MIR *mir)
152 return handleFmt12x(cUnit, mir);
155 static bool handleMethodFmt20bc(CompilationUnit *cUnit, MIR *mir)
157 return handleFmt20bc(cUnit, mir);
160 static bool handleMethodFmt21c_Fmt31c(CompilationUnit *cUnit, MIR *mir)
162 return handleFmt21c_Fmt31c(cUnit, mir);
165 static bool handleMethodFmt21h(CompilationUnit *cUnit, MIR *mir)
167 return handleFmt21h(cUnit, mir);
170 static bool handleMethodFmt21s(CompilationUnit *cUnit, MIR *mir)
172 return handleFmt21s(cUnit, mir);
175 static bool handleMethodFmt21t(CompilationUnit *cUnit, MIR *mir, BasicBlock *bb,
178 return handleFmt21t(cUnit, mir, bb, labelList);
181 static bool handleMethodFmt22b_Fmt22s(CompilationUnit *cUnit, MIR *mir)
183 return handleFmt22b_Fmt22s(cUnit, mir);
186 static bool handleMethodFmt22c(CompilationUnit *cUnit, MIR *mir)
188 return handleFmt22c(cUnit, mir);
191 static bool handleMethodFmt22cs(CompilationUnit *cUnit, MIR *mir)
193 return handleFmt22cs(cUnit, mir);
196 static bool handleMethodFmt22t(CompilationUnit *cUnit, MIR *mir, BasicBlock *bb,
199 return handleFmt22t(cUnit, mir, bb, labelList);
202 static bool handleMethodFmt22x_Fmt32x(CompilationUnit *cUnit, MIR *mir)
204 return handleFmt22x_Fmt32x(cUnit, mir);
207 static bool handleMethodFmt23x(CompilationUnit *cUnit, MIR *mir)
209 return handleFmt23x(cUnit, mir);
212 static bool handleMethodFmt31t(CompilationUnit *cUnit, MIR *mir)
214 return handleFmt31t(cUnit, mir);
217 static bool handleMethodFmt35c_3rc(CompilationUnit *cUnit, MIR *mir,
220 return handleFmt35c_3rc(cUnit, mir, bb, labelList);
223 static bool handleMethodFmt35ms_3rms(CompilationUnit *cUnit, MIR *mir,
226 return handleFmt35ms_3rms(cUnit, mir, bb, labelList);
229 static bool handleMethodExecuteInline(CompilationUnit *cUnit, MIR *mir)
231 return handleExecuteInline(cUnit, mir);
234 static bool handleMethodFmt51l(CompilationUnit *cUnit, MIR *mir)
236 return handleFmt51l(cUnit, mir);
240 static bool methodBlockCodeGen(CompilationUnit *cUnit, BasicBlock *bb)
243 ArmLIR *labelList = (ArmLIR *) cUnit->blockLabelList;
246 cUnit->curBlock = bb;
251 dvmCompilerAppendLIR(cUnit, (LIR *) &labelList[blockId]);
253 dvmCompilerClobberAllRegs(cUnit);
254 dvmCompilerResetNullCheck(cUnit);
260 opImm(cUnit, kOpPush, (1 << r0 | 1 << r1 | 1 << r5FP | 1 << r14lr));
261 opRegImm(cUnit, kOpSub, r5FP,
262 sizeof(StackSaveArea) + cUnit->method->registersSize * 4);
266 opRegImm(cUnit, kOpAdd, r13sp, 8);
267 opImm(cUnit, kOpPop, (1 << r5FP | 1 << r15pc));
272 dvmCompilerResetRegPool(cUnit);
274 dvmCompilerClobberAllRegs(cUnit);
278 dvmCompilerResetDefTracking(cUnit);
291 if (headLIR == NULL || cUnit->printMe == true) {
293 newLIR2(cUnit, kArmPseudoDalvikByteCodeBoundary,
306 if (cUnit->printMe && mir->ssaRep) {
307 char *ssaString = dvmCompilerGetSSAString(cUnit, mir->ssaRep);
308 newLIR1(cUnit, kArmPseudoSSARep, (int) ssaString);
316 notHandled = handleMethodFmt10t_Fmt20t_Fmt30t(cUnit, mir, bb,
320 notHandled = handleMethodFmt10x(cUnit, mir);
324 notHandled = handleMethodFmt11n_Fmt31i(cUnit, mir);
327 notHandled = handleMethodFmt11x(cUnit, mir, bb, labelList);
330 notHandled = handleMethodFmt12x(cUnit, mir);
333 notHandled = handleMethodFmt20bc(cUnit, mir);
337 notHandled = handleMethodFmt21c_Fmt31c(cUnit, mir);
340 notHandled = handleMethodFmt21h(cUnit, mir);
343 notHandled = handleMethodFmt21s(cUnit, mir);
346 notHandled = handleMethodFmt21t(cUnit, mir, bb, labelList);
350 notHandled = handleMethodFmt22b_Fmt22s(cUnit, mir);
353 notHandled = handleMethodFmt22c(cUnit, mir);
356 notHandled = handleMethodFmt22cs(cUnit, mir);
359 notHandled = handleMethodFmt22t(cUnit, mir, bb, labelList);
363 notHandled = handleMethodFmt22x_Fmt32x(cUnit, mir);
366 notHandled = handleMethodFmt23x(cUnit, mir);
369 notHandled = handleMethodFmt31t(cUnit, mir);
373 notHandled = handleMethodFmt35c_3rc(cUnit, mir, bb, labelList);
377 notHandled = handleMethodFmt35ms_3rms(cUnit, mir, bb,
382 notHandled = handleMethodExecuteInline(cUnit, mir);
385 notHandled = handleMethodFmt51l(cUnit, mir);
402 dvmCompilerAbort(cUnit);
412 dvmCompilerApplyLocalOptimizations(cUnit, (LIR *) headLIR,
413 cUnit->lastLIRInsn);
419 genUnconditionalBranch(cUnit,
426 void dvmCompilerMethodMIR2LIR(CompilationUnit *cUnit)
429 if (strcmp(cUnit->method->name, "add")) return;
432 cUnit->blockLabelList =
433 (void *) dvmCompilerNew(sizeof(ArmLIR) * cUnit->numBlocks, true);
435 dvmCompilerDataFlowAnalysisDispatcher(cUnit, methodBlockCodeGen,
439 dvmCompilerApplyGlobalOptimizations(cUnit);
442 cUnit->printMe = true;
445 selfVerificationBranchInsertPass(cUnit);