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