Lines Matching refs:lir

114 void Mir2Lir::UnlinkLIR(LIR* lir) {  in UnlinkLIR()  argument
115 if (UNLIKELY(lir == first_lir_insn_)) { in UnlinkLIR()
116 first_lir_insn_ = lir->next; in UnlinkLIR()
117 if (lir->next != nullptr) { in UnlinkLIR()
118 lir->next->prev = nullptr; in UnlinkLIR()
120 DCHECK(lir->next == nullptr); in UnlinkLIR()
121 DCHECK(lir == last_lir_insn_); in UnlinkLIR()
124 } else if (lir == last_lir_insn_) { in UnlinkLIR()
125 last_lir_insn_ = lir->prev; in UnlinkLIR()
126 lir->prev->next = nullptr; in UnlinkLIR()
127 } else if ((lir->prev != nullptr) && (lir->next != nullptr)) { in UnlinkLIR()
128 lir->prev->next = lir->next; in UnlinkLIR()
129 lir->next->prev = lir->prev; in UnlinkLIR()
134 void Mir2Lir::NopLIR(LIR* lir) { in NopLIR() argument
135 lir->flags.is_nop = true; in NopLIR()
137 UnlinkLIR(lir); in NopLIR()
141 void Mir2Lir::SetMemRefType(LIR* lir, bool is_load, int mem_type) { in SetMemRefType() argument
142 DCHECK(GetTargetInstFlags(lir->opcode) & (IS_LOAD | IS_STORE)); in SetMemRefType()
143 DCHECK(!lir->flags.use_def_invalid); in SetMemRefType()
148 mask_ptr = &lir->u.m.use_mask; in SetMemRefType()
150 mask_ptr = &lir->u.m.def_mask; in SetMemRefType()
169 DCHECK(!(GetTargetInstFlags(lir->opcode) & IS_STORE)); in SetMemRefType()
181 void Mir2Lir::AnnotateDalvikRegAccess(LIR* lir, int reg_id, bool is_load, in AnnotateDalvikRegAccess() argument
183 DCHECK((is_load ? lir->u.m.use_mask : lir->u.m.def_mask)->Intersection(kEncodeMem).Equals( in AnnotateDalvikRegAccess()
190 lir->flags.alias_info = ENCODE_ALIAS_INFO(reg_id, is64bit); in AnnotateDalvikRegAccess()
199 void Mir2Lir::DumpLIRInsn(LIR* lir, unsigned char* base_addr) { in DumpLIRInsn() argument
200 int offset = lir->offset; in DumpLIRInsn()
201 int dest = lir->operands[0]; in DumpLIRInsn()
205 switch (lir->opcode) { in DumpLIRInsn()
225 if (lir->operands[0] == 0) { in DumpLIRInsn()
227 lir->operands[0] = WrapPointer(ArenaStrdup("No instruction string")); in DumpLIRInsn()
230 << lir->dalvik_offset << " @ " in DumpLIRInsn()
231 << UnwrapPointer<char>(lir->operands[0]); in DumpLIRInsn()
245 LOG(INFO) << "L" << reinterpret_cast<void*>(lir) << ":"; in DumpLIRInsn()
248 LOG(INFO) << "LT" << reinterpret_cast<void*>(lir) << ":"; in DumpLIRInsn()
251 LOG(INFO) << "IR" << reinterpret_cast<void*>(lir) << ":"; in DumpLIRInsn()
254 LOG(INFO) << "LS" << reinterpret_cast<void*>(lir) << ":"; in DumpLIRInsn()
257 LOG(INFO) << "LsafepointPC_0x" << std::hex << lir->offset << "_" << lir->dalvik_offset << ":"; in DumpLIRInsn()
260 LOG(INFO) << "LexportedPC_0x" << std::hex << lir->offset << "_" << lir->dalvik_offset << ":"; in DumpLIRInsn()
263 LOG(INFO) << "LC" << reinterpret_cast<void*>(lir) << ": Case target 0x" in DumpLIRInsn()
264 << std::hex << lir->operands[0] << "|" << std::dec << in DumpLIRInsn()
265 lir->operands[0]; in DumpLIRInsn()
268 if (lir->flags.is_nop && !dump_nop) { in DumpLIRInsn()
271 std::string op_name(BuildInsnString(GetTargetInstName(lir->opcode), in DumpLIRInsn()
272 lir, base_addr)); in DumpLIRInsn()
273 std::string op_operands(BuildInsnString(GetTargetInstFmt(lir->opcode), in DumpLIRInsn()
274 lir, base_addr)); in DumpLIRInsn()
277 lir->dalvik_offset, in DumpLIRInsn()
279 lir->flags.is_nop ? "(nop)" : ""); in DumpLIRInsn()
284 if (lir->u.m.use_mask && (!lir->flags.is_nop || dump_nop)) { in DumpLIRInsn()
285 DUMP_RESOURCE_MASK(DumpResourceMask(lir, *lir->u.m.use_mask, "use")); in DumpLIRInsn()
287 if (lir->u.m.def_mask && (!lir->flags.is_nop || dump_nop)) { in DumpLIRInsn()
288 DUMP_RESOURCE_MASK(DumpResourceMask(lir, *lir->u.m.def_mask, "def")); in DumpLIRInsn()
322 for (LIR* lir = first_lir_insn_; lir != nullptr; lir = lir->next) { in UpdateLIROffsets() local
323 lir->offset = offset; in UpdateLIROffsets()
324 if (!lir->flags.is_nop && !IsPseudoLirOp(lir->opcode)) { in UpdateLIROffsets()
325 offset += GetInsnSize(lir); in UpdateLIROffsets()
326 } else if (lir->opcode == kPseudoPseudoAlign4) { in UpdateLIROffsets()
618 static int AssignLiteralOffsetCommon(LIR* lir, CodeOffset offset) { in AssignLiteralOffsetCommon() argument
619 for (; lir != nullptr; lir = lir->next) { in AssignLiteralOffsetCommon()
620 lir->offset = offset; in AssignLiteralOffsetCommon()
626 static int AssignLiteralPointerOffsetCommon(LIR* lir, CodeOffset offset, in AssignLiteralPointerOffsetCommon() argument
630 for (; lir != nullptr; lir = lir->next) { in AssignLiteralPointerOffsetCommon()
631 lir->offset = offset; in AssignLiteralPointerOffsetCommon()
1203 void Mir2Lir::AppendLIR(LIR* lir) { in AppendLIR() argument
1206 last_lir_insn_ = first_lir_insn_ = lir; in AppendLIR()
1207 lir->prev = lir->next = nullptr; in AppendLIR()
1209 last_lir_insn_->next = lir; in AppendLIR()
1210 lir->prev = last_lir_insn_; in AppendLIR()
1211 lir->next = nullptr; in AppendLIR()
1212 last_lir_insn_ = lir; in AppendLIR()