Home | History | Annotate | Download | only in arm

Lines Matching refs:LIR

35 static void setMemRefType(ArmLIR *lir, bool isLoad, int memType)
39 assert(EncodingMap[lir->opcode].flags & (IS_LOAD | IS_STORE));
41 maskPtr = &lir->useMask;
43 maskPtr = &lir->defMask;
61 assert(!(EncodingMap[lir->opcode].flags & IS_STORE));
75 static void annotateDalvikRegAccess(ArmLIR *lir, int regId, bool isLoad)
77 setMemRefType(lir, isLoad, kDalvikReg);
83 lir->aliasInfo = regId;
84 if (DOUBLEREG(lir->operands[0])) {
85 lir->aliasInfo |= 0x80000000;
126 static void setupResourceMasks(ArmLIR *lir)
128 int opcode = lir->opcode;
132 lir->useMask = lir->defMask = 0;
136 flags = EncodingMap[lir->opcode].flags;
141 setMemRefType(lir, flags & IS_LOAD, kHeapRef);
149 lir->defMask = lir->useMask = ENCODE_ALL;
154 setupRegMask(&lir->defMask, lir->operands[0]);
158 setupRegMask(&lir->defMask, lir->operands[1]);
162 lir->defMask |= ENCODE_REG_SP;
166 lir->defMask |= ENCODE_REG_LR;
170 lir->defMask |= ENCODE_REG_LIST(lir->operands[0]);
174 lir->defMask |= ENCODE_REG_LIST(lir->operands[1]);
178 lir->defMask |= ENCODE_CCODE;
183 lir->defMask = ENCODE_ALL;
191 setupRegMask(&lir->useMask, lir->operands[i]);
197 lir->useMask |= ENCODE_REG_PC;
201 lir->useMask |= ENCODE_REG_SP;
205 lir->useMask |= ENCODE_REG_LIST(lir->operands[0]);
209 lir->useMask |= ENCODE_REG_LIST(lir->operands[1]);
213 lir->useMask |= ENCODE_CCODE;
219 if ((opcode == kThumbPush) && (lir->useMask & r8Mask)) {
220 lir->useMask &= ~r8Mask;
221 lir->useMask |= ENCODE_REG_LR;
222 } else if ((opcode == kThumbPop) && (lir->defMask & r8Mask)) {
223 lir->defMask &= ~r8Mask;
224 lir->defMask |= ENCODE_REG_PC;
232 static void relaxBranchMasks(ArmLIR *lir)
234 int flags = EncodingMap[lir->opcode].flags;
239 lir->useMask = lir->defMask = ENCODE_REG_PC;
242 lir->defMask |= ENCODE_REG_LR;
250 setupRegMask(&lir->useMask, lir->operands[i]);
256 lir->useMask |= ENCODE_CCODE;
270 dvmCompilerAppendLIR(cUnit, (LIR *) insn);
282 dvmCompilerAppendLIR(cUnit, (LIR *) insn);
296 dvmCompilerAppendLIR(cUnit, (LIR *) insn);
314 dvmCompilerAppendLIR(cUnit, (LIR *) insn);
331 dvmCompilerAppendLIR(cUnit, (LIR *) insn);
360 static ArmLIR *scanLiteralPool(LIR *dataTarget, int value, unsigned int delta)
372 ArmLIR* scanLiteralPoolWide(LIR* dataTarget, int valLo, int valHi)
396 static ArmLIR *addWordData(CompilationUnit *cUnit, LIR **constantListP,
404 *constantListP = (LIR *) newValue;
415 ArmLIR* addWideData(CompilationUnit* cUnit, LIR** constantListP,
468 branch->generic.target = (LIR *) pcrLabel;