Lines Matching refs:rDest
36 int rDest);
43 static MipsLIR *loadConstant(CompilationUnit *cUnit, int rDest, int value);
46 static MipsLIR *fpRegCopy(CompilationUnit *cUnit, int rDest, int rSrc) in fpRegCopy() argument
49 res->operands[0] = rDest; in fpRegCopy()
51 if (rDest == rSrc) { in fpRegCopy()
55 assert(DOUBLEREG(rDest) == DOUBLEREG(rSrc)); in fpRegCopy()
56 if (DOUBLEREG(rDest)) { in fpRegCopy()
59 if (SINGLEREG(rDest)) { in fpRegCopy()
66 res->operands[1] = rDest; in fpRegCopy()
88 static MipsLIR *loadConstantNoClobber(CompilationUnit *cUnit, int rDest, in loadConstantNoClobber() argument
94 int rDestSave = rDest; in loadConstantNoClobber()
95 int isFpReg = FPREG(rDest); in loadConstantNoClobber()
97 assert(SINGLEREG(rDest)); in loadConstantNoClobber()
98 rDest = dvmCompilerAllocTemp(cUnit); in loadConstantNoClobber()
104 res = newLIR2(cUnit, kMipsMove, rDest, r_ZERO); in loadConstantNoClobber()
106 res = newLIR3(cUnit, kMipsOri, rDest, r_ZERO, value); in loadConstantNoClobber()
108 res = newLIR3(cUnit, kMipsAddiu, rDest, r_ZERO, value); in loadConstantNoClobber()
110 res = newLIR2(cUnit, kMipsLui, rDest, value>>16); in loadConstantNoClobber()
112 newLIR3(cUnit, kMipsOri, rDest, rDest, value); in loadConstantNoClobber()
117 newLIR2(cUnit, kMipsMtc1, rDest, rDestSave); in loadConstantNoClobber()
118 dvmCompilerFreeTemp(cUnit, rDest); in loadConstantNoClobber()
129 static MipsLIR *loadConstant(CompilationUnit *cUnit, int rDest, int value) in loadConstant() argument
131 if (dvmCompilerIsTemp(cUnit, rDest)) { in loadConstant()
132 dvmCompilerClobber(cUnit, rDest); in loadConstant()
133 dvmCompilerMarkInUse(cUnit, rDest); in loadConstant()
135 return loadConstantNoClobber(cUnit, rDest, value); in loadConstant()
142 static MipsLIR *loadClassPointer(CompilationUnit *cUnit, int rDest, int value) in loadClassPointer() argument
145 if (dvmCompilerIsTemp(cUnit, rDest)) { in loadClassPointer()
146 dvmCompilerClobber(cUnit, rDest); in loadClassPointer()
147 dvmCompilerMarkInUse(cUnit, rDest); in loadClassPointer()
149 res = newLIR2(cUnit, kMipsLui, rDest, value>>16); in loadClassPointer()
151 newLIR3(cUnit, kMipsOri, rDest, rDest, value); in loadClassPointer()
199 static MipsLIR *opRegRegImm(CompilationUnit *cUnit, OpKind op, int rDest,
234 static MipsLIR *opRegRegReg(CompilationUnit *cUnit, OpKind op, int rDest, in opRegRegReg() argument
271 return newLIR3(cUnit, opcode, rDest, rSrc1, rSrc2); in opRegRegReg()
274 static MipsLIR *opRegRegImm(CompilationUnit *cUnit, OpKind op, int rDest, in opRegRegImm() argument
351 res = newLIR3(cUnit, opcode, rDest, rSrc1, value); in opRegRegImm()
353 if (rDest != rSrc1) { in opRegRegImm()
354 res = loadConstant(cUnit, rDest, value); in opRegRegImm()
355 newLIR3(cUnit, opcode, rDest, rSrc1, rDest); in opRegRegImm()
359 newLIR3(cUnit, opcode, rDest, rSrc1, rScratch); in opRegRegImm()
422 int rIndex, int rDest, int scale, OpSize size) in loadBaseIndexed() argument
430 if (FPREG(rDest)) { in loadBaseIndexed()
431 assert(SINGLEREG(rDest)); in loadBaseIndexed()
473 res = newLIR3(cUnit, opcode, rDest, 0, tReg); in loadBaseIndexed()
593 int displacement, int rDest, int rDestHi, in loadBaseDispBody() argument
617 if (FPREG(rDest)) { in loadBaseDispBody()
619 if (DOUBLEREG(rDest)) { in loadBaseDispBody()
620 rDest = rDest - FP_DOUBLE; in loadBaseDispBody()
623 assert(rDest == (rDestHi - 1)); in loadBaseDispBody()
625 rDestHi = rDest + 1; in loadBaseDispBody()
635 if (FPREG(rDest)) { in loadBaseDispBody()
637 assert(SINGLEREG(rDest)); in loadBaseDispBody()
663 load = res = newLIR3(cUnit, opcode, rDest, displacement, rBase); in loadBaseDispBody()
665 load = res = newLIR3(cUnit, opcode, rDest, displacement + LOWORD_OFFSET, rBase); in loadBaseDispBody()
672 load = newLIR3(cUnit, opcode, rDest, LOWORD_OFFSET, rTmp); in loadBaseDispBody()
676 int rTmp = (rBase == rDest) ? dvmCompilerAllocFreeTemp(cUnit) in loadBaseDispBody()
677 : rDest; in loadBaseDispBody()
679 load = newLIR3(cUnit, opcode, rDest, rBase, rTmp); in loadBaseDispBody()
680 if (rTmp != rDest) in loadBaseDispBody()
703 int displacement, int rDest, OpSize size, in loadBaseDisp() argument
706 return loadBaseDispBody(cUnit, mir, rBase, displacement, rDest, -1, in loadBaseDisp()
835 static MipsLIR* genRegCopyNoInsert(CompilationUnit *cUnit, int rDest, int rSrc) in genRegCopyNoInsert() argument
840 if (FPREG(rDest) || FPREG(rSrc)) in genRegCopyNoInsert()
841 return fpRegCopy(cUnit, rDest, rSrc); in genRegCopyNoInsert()
845 assert(LOWREG(rDest) && LOWREG(rSrc)); in genRegCopyNoInsert()
846 res->operands[0] = rDest; in genRegCopyNoInsert()
850 if (rDest == rSrc) { in genRegCopyNoInsert()
856 static MipsLIR* genRegCopy(CompilationUnit *cUnit, int rDest, int rSrc) in genRegCopy() argument
858 MipsLIR *res = genRegCopyNoInsert(cUnit, rDest, rSrc); in genRegCopy()