Lines Matching refs:lir
35 static void setMemRefType(ArmLIR *lir, bool isLoad, int memType) in setMemRefType() argument
39 assert(EncodingMap[lir->opcode].flags & (IS_LOAD | IS_STORE)); in setMemRefType()
41 maskPtr = &lir->useMask; in setMemRefType()
43 maskPtr = &lir->defMask; in setMemRefType()
61 assert(!(EncodingMap[lir->opcode].flags & IS_STORE)); in setMemRefType()
75 static void annotateDalvikRegAccess(ArmLIR *lir, int regId, bool isLoad) in annotateDalvikRegAccess() argument
77 setMemRefType(lir, isLoad, kDalvikReg); in annotateDalvikRegAccess()
83 lir->aliasInfo = regId; in annotateDalvikRegAccess()
84 if (DOUBLEREG(lir->operands[0])) { in annotateDalvikRegAccess()
85 lir->aliasInfo |= 0x80000000; in annotateDalvikRegAccess()
126 static void setupResourceMasks(ArmLIR *lir) in setupResourceMasks() argument
128 int opcode = lir->opcode; in setupResourceMasks()
132 lir->useMask = lir->defMask = 0; in setupResourceMasks()
136 flags = EncodingMap[lir->opcode].flags; in setupResourceMasks()
141 setMemRefType(lir, flags & IS_LOAD, kHeapRef); in setupResourceMasks()
149 lir->defMask = lir->useMask = ENCODE_ALL; in setupResourceMasks()
154 setupRegMask(&lir->defMask, lir->operands[0]); in setupResourceMasks()
158 setupRegMask(&lir->defMask, lir->operands[1]); in setupResourceMasks()
162 lir->defMask |= ENCODE_REG_SP; in setupResourceMasks()
166 lir->defMask |= ENCODE_REG_LR; in setupResourceMasks()
170 lir->defMask |= ENCODE_REG_LIST(lir->operands[0]); in setupResourceMasks()
174 lir->defMask |= ENCODE_REG_LIST(lir->operands[1]); in setupResourceMasks()
178 lir->defMask |= ENCODE_CCODE; in setupResourceMasks()
183 lir->defMask = ENCODE_ALL; in setupResourceMasks()
191 setupRegMask(&lir->useMask, lir->operands[i]); in setupResourceMasks()
197 lir->useMask |= ENCODE_REG_PC; in setupResourceMasks()
201 lir->useMask |= ENCODE_REG_SP; in setupResourceMasks()
205 lir->useMask |= ENCODE_REG_LIST(lir->operands[0]); in setupResourceMasks()
209 lir->useMask |= ENCODE_REG_LIST(lir->operands[1]); in setupResourceMasks()
213 lir->useMask |= ENCODE_CCODE; in setupResourceMasks()
219 if ((opcode == kThumbPush) && (lir->useMask & r8Mask)) { in setupResourceMasks()
220 lir->useMask &= ~r8Mask; in setupResourceMasks()
221 lir->useMask |= ENCODE_REG_LR; in setupResourceMasks()
222 } else if ((opcode == kThumbPop) && (lir->defMask & r8Mask)) { in setupResourceMasks()
223 lir->defMask &= ~r8Mask; in setupResourceMasks()
224 lir->defMask |= ENCODE_REG_PC; in setupResourceMasks()
232 static void relaxBranchMasks(ArmLIR *lir) in relaxBranchMasks() argument
234 int flags = EncodingMap[lir->opcode].flags; in relaxBranchMasks()
239 lir->useMask = lir->defMask = ENCODE_REG_PC; in relaxBranchMasks()
242 lir->defMask |= ENCODE_REG_LR; in relaxBranchMasks()
250 setupRegMask(&lir->useMask, lir->operands[i]); in relaxBranchMasks()
256 lir->useMask |= ENCODE_CCODE; in relaxBranchMasks()