Home
last modified time | relevance | path

Searched refs:mir (Results 1 – 25 of 36) sorted by relevance

12

/dalvik/vm/compiler/codegen/arm/armv7-a-neon/
DMethodCodegenDriver.cpp40 static void genMethodInflateAndPunt(CompilationUnit *cUnit, MIR *mir,
69 loadConstant(cUnit, currentPC, (int) (cUnit->method->insns + mir->offset));
98 genPuntToInterp(cUnit, mir->offset);
108 static bool handleMethodFmt10t_Fmt20t_Fmt30t(CompilationUnit *cUnit, MIR *mir,
112 bool backwardBranch = (bb->taken->startOffset <= mir->offset);
115 genSuspendPoll(cUnit, mir);
123 static bool handleMethodFmt10x(CompilationUnit *cUnit, MIR *mir)
125 Opcode dalvikOpcode = mir->dalvikInsn.opcode;
130 return handleFmt10x(cUnit, mir);
134 static bool handleMethodFmt11n_Fmt31i(CompilationUnit *cUnit, MIR *mir)
[all …]
/dalvik/vm/compiler/codegen/arm/
DCodegenDriver.cpp47 static bool genConversionCall(CompilationUnit *cUnit, MIR *mir, void *funct, in genConversionCall() argument
58 rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); in genConversionCall()
61 rlSrc = dvmCompilerGetSrcWide(cUnit, mir, 0, 1); in genConversionCall()
69 rlDest = dvmCompilerGetDest(cUnit, mir, 0); in genConversionCall()
74 rlDest = dvmCompilerGetDestWide(cUnit, mir, 0, 1); in genConversionCall()
81 static bool genArithOpFloatPortable(CompilationUnit *cUnit, MIR *mir, in genArithOpFloatPortable() argument
88 switch (mir->dalvikInsn.opcode) { in genArithOpFloatPortable()
127 static bool genArithOpDoublePortable(CompilationUnit *cUnit, MIR *mir, in genArithOpDoublePortable() argument
134 switch (mir->dalvikInsn.opcode) { in genArithOpDoublePortable()
176 static bool genConversionPortable(CompilationUnit *cUnit, MIR *mir) in genConversionPortable() argument
[all …]
DCodegen.h38 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);
DCodegenCommon.cpp341 static RegLocation inlinedTarget(CompilationUnit *cUnit, MIR *mir, in inlinedTarget() argument
344 if (mir->next && in inlinedTarget()
345 ((mir->next->dalvikInsn.opcode == OP_MOVE_RESULT) || in inlinedTarget()
346 (mir->next->dalvikInsn.opcode == OP_MOVE_RESULT_OBJECT))) { in inlinedTarget()
347 mir->next->dalvikInsn.opcode = OP_NOP; in inlinedTarget()
348 return dvmCompilerGetDest(cUnit, mir->next, 0); in inlinedTarget()
395 static RegLocation inlinedTargetWide(CompilationUnit *cUnit, MIR *mir, in inlinedTargetWide() argument
398 if (mir->next && in inlinedTargetWide()
399 (mir->next->dalvikInsn.opcode == OP_MOVE_RESULT_WIDE)) { in inlinedTargetWide()
400 mir->next->dalvikInsn.opcode = OP_NOP; in inlinedTargetWide()
[all …]
/dalvik/vm/compiler/codegen/mips/
DCodegenDriver.cpp47 static bool genConversionCall(CompilationUnit *cUnit, MIR *mir, void *funct, in genConversionCall() argument
85 rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); in genConversionCall()
88 rlSrc = dvmCompilerGetSrcWide(cUnit, mir, 0, 1); in genConversionCall()
97 rlDest = dvmCompilerGetDest(cUnit, mir, 0); in genConversionCall()
109 rlDest = dvmCompilerGetDestWide(cUnit, mir, 0, 1); in genConversionCall()
124 static bool genArithOpFloatPortable(CompilationUnit *cUnit, MIR *mir, in genArithOpFloatPortable() argument
131 switch (mir->dalvikInsn.opcode) { in genArithOpFloatPortable()
181 static bool genArithOpDoublePortable(CompilationUnit *cUnit, MIR *mir, in genArithOpDoublePortable() argument
188 switch (mir->dalvikInsn.opcode) { in genArithOpDoublePortable()
240 static bool genConversionPortable(CompilationUnit *cUnit, MIR *mir) in genConversionPortable() argument
[all …]
DCodegen.h38 static bool genArithOpFloatPortable(CompilationUnit *cUnit, MIR *mir,
42 static bool genArithOpDoublePortable(CompilationUnit *cUnit, MIR *mir,
46 static bool genConversionPortable(CompilationUnit *cUnit, MIR *mir);
48 static void genMonitorPortable(CompilationUnit *cUnit, MIR *mir);
50 static void genInterpSingleStep(CompilationUnit *cUnit, MIR *mir);
DRalloc.h77 static inline int dvmCompilerSSASrc(MIR *mir, int num) in dvmCompilerSSASrc() argument
79 assert(mir->ssaRep->numUses > num); in dvmCompilerSSASrc()
80 return mir->ssaRep->uses[num]; in dvmCompilerSSASrc()
129 extern RegLocation dvmCompilerGetSrcWide(CompilationUnit *cUnit, MIR *mir,
132 extern RegLocation dvmCompilerGetDestWide(CompilationUnit *cUnit, MIR *mir,
135 extern RegLocation dvmCompilerGetSrc(CompilationUnit *cUnit, MIR *mir, int num);
138 extern RegLocation dvmCompilerGetDest(CompilationUnit *cUnit, MIR *mir,
DCodegenCommon.cpp347 static RegLocation inlinedTarget(CompilationUnit *cUnit, MIR *mir, in inlinedTarget() argument
350 if (mir->next && in inlinedTarget()
351 ((mir->next->dalvikInsn.opcode == OP_MOVE_RESULT) || in inlinedTarget()
352 (mir->next->dalvikInsn.opcode == OP_MOVE_RESULT_OBJECT))) { in inlinedTarget()
353 mir->next->dalvikInsn.opcode = OP_NOP; in inlinedTarget()
354 return dvmCompilerGetDest(cUnit, mir->next, 0); in inlinedTarget()
385 static RegLocation inlinedTargetWide(CompilationUnit *cUnit, MIR *mir, in inlinedTargetWide() argument
388 if (mir->next && in inlinedTargetWide()
389 (mir->next->dalvikInsn.opcode == OP_MOVE_RESULT_WIDE)) { in inlinedTargetWide()
390 mir->next->dalvikInsn.opcode = OP_NOP; in inlinedTargetWide()
[all …]
DRallocUtil.cpp901 static inline int getDestSSAName(MIR *mir, int num) in getDestSSAName() argument
903 assert(mir->ssaRep->numDefs > num); in getDestSSAName()
904 return mir->ssaRep->defs[num]; in getDestSSAName()
908 extern RegLocation dvmCompilerGetSrc(CompilationUnit *cUnit, MIR *mir, int num) in dvmCompilerGetSrc() argument
911 SREG(cUnit, dvmCompilerSSASrc(mir, num))]; in dvmCompilerGetSrc()
912 loc.fp = cUnit->regLocation[dvmCompilerSSASrc(mir, num)].fp; in dvmCompilerGetSrc()
918 extern RegLocation dvmCompilerGetDest(CompilationUnit *cUnit, MIR *mir, in dvmCompilerGetDest() argument
921 RegLocation loc = cUnit->regLocation[SREG(cUnit, getDestSSAName(mir, num))]; in dvmCompilerGetDest()
922 loc.fp = cUnit->regLocation[getDestSSAName(mir, num)].fp; in dvmCompilerGetDest()
927 static RegLocation getLocWide(CompilationUnit *cUnit, MIR *mir, in getLocWide() argument
[all …]
/dalvik/vm/compiler/codegen/arm/FP/
DThumbPortableFP.cpp18 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 …]
DThumbVFP.cpp45 static bool genInlineSqrt(CompilationUnit *cUnit, MIR *mir) in genInlineSqrt() argument
47 RegLocation rlSrc = dvmCompilerGetSrcWide(cUnit, mir, 0, 1); in genInlineSqrt()
64 static bool genArithOpFloat(CompilationUnit *cUnit, MIR *mir, in genArithOpFloat() argument
74 switch (mir->dalvikInsn.opcode) { in genArithOpFloat()
94 return genArithOpFloatPortable(cUnit, mir, rlDest, rlSrc1, rlSrc2); in genArithOpFloat()
110 static bool genArithOpDouble(CompilationUnit *cUnit, MIR *mir, in genArithOpDouble() argument
116 switch (mir->dalvikInsn.opcode) { in genArithOpDouble()
136 return genArithOpDoublePortable(cUnit, mir, rlDest, rlSrc1, in genArithOpDouble()
154 static bool genConversion(CompilationUnit *cUnit, MIR *mir) in genConversion() argument
156 Opcode opcode = mir->dalvikInsn.opcode; in genConversion()
[all …]
DThumb2VFP.cpp17 static bool genArithOpFloat(CompilationUnit *cUnit, MIR *mir, in genArithOpFloat() argument
28 switch (mir->dalvikInsn.opcode) { in genArithOpFloat()
48 return genArithOpFloatPortable(cUnit, mir, rlDest, rlSrc1, in genArithOpFloat()
63 static bool genArithOpDouble(CompilationUnit *cUnit, MIR *mir, in genArithOpDouble() argument
70 switch (mir->dalvikInsn.opcode) { in genArithOpDouble()
90 return genArithOpDoublePortable(cUnit, mir, rlDest, rlSrc1, in genArithOpDouble()
111 static bool genConversion(CompilationUnit *cUnit, MIR *mir) in genConversion() argument
113 Opcode opcode = mir->dalvikInsn.opcode; in genConversion()
157 return genConversionPortable(cUnit, mir); in genConversion()
162 rlSrc = dvmCompilerGetSrcWide(cUnit, mir, 0, 1); in genConversion()
[all …]
/dalvik/vm/compiler/
DIntermediateRep.cpp32 void dvmCompilerAppendMIR(BasicBlock *bb, MIR *mir) in dvmCompilerAppendMIR() argument
36 bb->lastMIRInsn = bb->firstMIRInsn = mir; in dvmCompilerAppendMIR()
37 mir->prev = mir->next = NULL; in dvmCompilerAppendMIR()
39 bb->lastMIRInsn->next = mir; in dvmCompilerAppendMIR()
40 mir->prev = bb->lastMIRInsn; in dvmCompilerAppendMIR()
41 mir->next = NULL; in dvmCompilerAppendMIR()
42 bb->lastMIRInsn = mir; in dvmCompilerAppendMIR()
47 void dvmCompilerPrependMIR(BasicBlock *bb, MIR *mir) in dvmCompilerPrependMIR() argument
51 bb->lastMIRInsn = bb->firstMIRInsn = mir; in dvmCompilerPrependMIR()
52 mir->prev = mir->next = NULL; in dvmCompilerPrependMIR()
[all …]
DDataflow.cpp922 const MIR *mir) in dvmCompilerFullDisassembler() argument
926 const DecodedInstruction *insn = &mir->dalvikInsn; in dvmCompilerFullDisassembler()
937 getSSAName(cUnit, mir->ssaRep->defs[0], operand0), in dvmCompilerFullDisassembler()
938 getSSAName(cUnit, mir->ssaRep->uses[0], operand1)); in dvmCompilerFullDisassembler()
940 for (i = 1; i < mir->ssaRep->numUses; i++) { in dvmCompilerFullDisassembler()
942 getSSAName(cUnit, mir->ssaRep->uses[i], operand0)); in dvmCompilerFullDisassembler()
962 getSSAName(cUnit, mir->ssaRep->uses[0], operand0)); in dvmCompilerFullDisassembler()
967 getSSAName(cUnit, mir->ssaRep->uses[0], operand0), in dvmCompilerFullDisassembler()
968 getSSAName(cUnit, mir->ssaRep->uses[1], operand1)); in dvmCompilerFullDisassembler()
982 mir->offset + delta); in dvmCompilerFullDisassembler()
[all …]
DRalloc.cpp29 MIR *mir; in inferTypes() local
33 for (mir = bb->firstMIRInsn; mir; mir = mir->next) { in inferTypes()
34 SSARepresentation *ssaRep = mir->ssaRep; in inferTypes()
DSSATransformation.cpp506 MIR *mir; in insertPhiNodeOperands() local
509 for (mir = bb->firstMIRInsn; mir; mir = mir->next) { in insertPhiNodeOperands()
510 if (mir->dalvikInsn.opcode != (Opcode)kMirOpPhi) in insertPhiNodeOperands()
512 int ssaReg = mir->ssaRep->defs[0]; in insertPhiNodeOperands()
534 mir->ssaRep->numUses = numUses; in insertPhiNodeOperands()
535 mir->ssaRep->uses = in insertPhiNodeOperands()
537 mir->ssaRep->fpUse = in insertPhiNodeOperands()
543 int *usePtr = mir->ssaRep->uses; in insertPhiNodeOperands()
DLoop.cpp346 MIR *mir; in doLoopBodyCodeMotion() local
349 for (mir = loopBody->firstMIRInsn; mir; mir = mir->next) { in doLoopBodyCodeMotion()
350 DecodedInstruction *dInsn = &mir->dalvikInsn; in doLoopBodyCodeMotion()
352 dvmCompilerDataFlowAttributes[mir->dalvikInsn.opcode]; in doLoopBodyCodeMotion()
400 dvmConvertSSARegToDalvik(cUnit, mir->ssaRep->uses[refIdx]); in doLoopBodyCodeMotion()
417 mir->ssaRep->uses[useIdx])) { in doLoopBodyCodeMotion()
418 mir->OptimizationFlags |= in doLoopBodyCodeMotion()
420 updateRangeCheckInfo(cUnit, mir->ssaRep->uses[refIdx], in doLoopBodyCodeMotion()
421 mir->ssaRep->uses[useIdx]); in doLoopBodyCodeMotion()
/dalvik/vm/compiler/codegen/mips/FP/
DMipsFP.cpp44 static bool genInlineSqrt(CompilationUnit *cUnit, MIR *mir) in genInlineSqrt() argument
46 RegLocation rlSrc = dvmCompilerGetSrcWide(cUnit, mir, 0, 1); in genInlineSqrt()
67 static bool genArithOpFloat(CompilationUnit *cUnit, MIR *mir, in genArithOpFloat() argument
79 switch (mir->dalvikInsn.opcode) { in genArithOpFloat()
99 return genArithOpFloatPortable(cUnit, mir, rlDest, rlSrc1, rlSrc2); in genArithOpFloat()
118 switch (mir->dalvikInsn.opcode) { in genArithOpFloat()
138 return genArithOpFloatPortable(cUnit, mir, rlDest, rlSrc1, rlSrc2); in genArithOpFloat()
157 static bool genArithOpDouble(CompilationUnit *cUnit, MIR *mir, in genArithOpDouble() argument
165 switch (mir->dalvikInsn.opcode) { in genArithOpDouble()
185 return genArithOpDoublePortable(cUnit, mir, rlDest, rlSrc1, rlSrc2); in genArithOpDouble()
[all …]
/dalvik/tests/040-miranda/src/
DMain.java8 MirandaClass mir = new MirandaClass(); in main() local
10 System.out.println(" inInterface: " + mir.inInterface()); in main()
11 System.out.println(" inInterface2: " + mir.inInterface2()); in main()
12 System.out.println(" inAbstract: " + mir.inAbstract()); in main()
15 MirandaAbstract mira = mir; in main()
/dalvik/vm/compiler/codegen/arm/Thumb2/
DGen.cpp125 static void genLong3Addr(CompilationUnit *cUnit, MIR *mir, OpKind firstOp, in genLong3Addr() argument
198 static ArmLIR *genExportPC(CompilationUnit *cUnit, MIR *mir) in genExportPC() argument
203 res = loadConstant(cUnit, rDPC, (int) (cUnit->method->insns + mir->offset)); in genExportPC()
237 static void genMonitorEnter(CompilationUnit *cUnit, MIR *mir) in genMonitorEnter() argument
239 RegLocation rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); in genMonitorEnter()
249 genNullCheck(cUnit, rlSrc.sRegLow, r1, mir->offset, NULL); in genMonitorEnter()
268 loadConstant(cUnit, r3, (int) (cUnit->method->insns + mir->offset)); in genMonitorEnter()
271 loadConstant(cUnit, r4PC, (int)(cUnit->method->insns + mir->offset + in genMonitorEnter()
292 static void genMonitorExit(CompilationUnit *cUnit, MIR *mir) in genMonitorExit() argument
294 RegLocation rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); in genMonitorExit()
[all …]
/dalvik/vm/compiler/codegen/
DRalloc.h73 static inline int dvmCompilerSSASrc(MIR *mir, int num) in dvmCompilerSSASrc() argument
75 assert(mir->ssaRep->numUses > num); in dvmCompilerSSASrc()
76 return mir->ssaRep->uses[num]; in dvmCompilerSSASrc()
125 extern RegLocation dvmCompilerGetSrcWide(CompilationUnit *cUnit, MIR *mir,
128 extern RegLocation dvmCompilerGetDestWide(CompilationUnit *cUnit, MIR *mir,
131 extern RegLocation dvmCompilerGetSrc(CompilationUnit *cUnit, MIR *mir, int num);
134 extern RegLocation dvmCompilerGetDest(CompilationUnit *cUnit, MIR *mir,
DRallocUtil.cpp829 static inline int getDestSSAName(MIR *mir, int num) in getDestSSAName() argument
831 assert(mir->ssaRep->numDefs > num); in getDestSSAName()
832 return mir->ssaRep->defs[num]; in getDestSSAName()
836 extern RegLocation dvmCompilerGetSrc(CompilationUnit *cUnit, MIR *mir, int num) in dvmCompilerGetSrc() argument
839 SREG(cUnit, dvmCompilerSSASrc(mir, num))]; in dvmCompilerGetSrc()
840 loc.fp = cUnit->regLocation[dvmCompilerSSASrc(mir, num)].fp; in dvmCompilerGetSrc()
846 extern RegLocation dvmCompilerGetDest(CompilationUnit *cUnit, MIR *mir, in dvmCompilerGetDest() argument
849 RegLocation loc = cUnit->regLocation[SREG(cUnit, getDestSSAName(mir, num))]; in dvmCompilerGetDest()
850 loc.fp = cUnit->regLocation[getDestSSAName(mir, num)].fp; in dvmCompilerGetDest()
855 static RegLocation getLocWide(CompilationUnit *cUnit, MIR *mir, in getLocWide() argument
[all …]
/dalvik/vm/compiler/codegen/arm/Thumb/
DGen.cpp124 static void genLong3Addr(CompilationUnit *cUnit, MIR *mir, OpKind firstOp, in genLong3Addr() argument
133 genInterpSingleStep(cUnit, mir); in genLong3Addr()
186 static ArmLIR *genExportPC(CompilationUnit *cUnit, MIR *mir) in genExportPC() argument
192 res = loadConstant(cUnit, rDPC, (int) (cUnit->method->insns + mir->offset)); in genExportPC()
199 static void genMonitor(CompilationUnit *cUnit, MIR *mir) in genMonitor() argument
201 genMonitorPortable(cUnit, mir); in genMonitor()
204 static void genCmpLong(CompilationUnit *cUnit, MIR *mir, RegLocation rlDest, in genCmpLong() argument
215 static bool genInlinedAbsFloat(CompilationUnit *cUnit, MIR *mir) in genInlinedAbsFloat() argument
218 RegLocation rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); in genInlinedAbsFloat()
230 static bool genInlinedAbsDouble(CompilationUnit *cUnit, MIR *mir) in genInlinedAbsDouble() argument
[all …]
/dalvik/vm/compiler/codegen/x86/
DCodegenInterface.cpp773 static void genHoistedChecksForCountUpLoop(CompilationUnit *cUnit, MIR *mir) in genHoistedChecksForCountUpLoop() argument
781 DecodedInstruction *dInsn = &mir->dalvikInsn; in genHoistedChecksForCountUpLoop()
785 get_virtual_reg(mir->dalvikInsn.vA, OpndSize_32, P_GPR_1, true); in genHoistedChecksForCountUpLoop()
787 get_virtual_reg(mir->dalvikInsn.vC, OpndSize_32, P_GPR_2, true); in genHoistedChecksForCountUpLoop()
818 static void genHoistedChecksForCountDownLoop(CompilationUnit *cUnit, MIR *mir) in genHoistedChecksForCountDownLoop() argument
820 DecodedInstruction *dInsn = &mir->dalvikInsn; in genHoistedChecksForCountDownLoop()
824 get_virtual_reg(mir->dalvikInsn.vA, OpndSize_32, P_GPR_1, true); in genHoistedChecksForCountDownLoop()
826 get_virtual_reg(mir->dalvikInsn.vB, OpndSize_32, P_GPR_2, true); in genHoistedChecksForCountDownLoop()
849 static void genHoistedLowerBoundCheck(CompilationUnit *cUnit, MIR *mir) in genHoistedLowerBoundCheck() argument
851 DecodedInstruction *dInsn = &mir->dalvikInsn; in genHoistedLowerBoundCheck()
[all …]
/dalvik/vm/compiler/codegen/mips/Mips32/
DGen.cpp132 static void genLong3Addr(CompilationUnit *cUnit, MIR *mir, OpKind firstOp, in genLong3Addr() argument
143 genInterpSingleStep(cUnit, mir); in genLong3Addr()
218 static MipsLIR *genExportPC(CompilationUnit *cUnit, MIR *mir) in genExportPC() argument
224 res = loadConstant(cUnit, rDPC, (int) (cUnit->method->insns + mir->offset)); in genExportPC()
230 static void genMonitor(CompilationUnit *cUnit, MIR *mir) in genMonitor() argument
232 genMonitorPortable(cUnit, mir); in genMonitor()
235 static void genCmpLong(CompilationUnit *cUnit, MIR *mir, RegLocation rlDest, in genCmpLong() argument
246 static bool genInlinedAbsFloat(CompilationUnit *cUnit, MIR *mir) in genInlinedAbsFloat() argument
249 RegLocation rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); in genInlinedAbsFloat()
263 static bool genInlinedAbsDouble(CompilationUnit *cUnit, MIR *mir) in genInlinedAbsDouble() argument
[all …]

12