Lines Matching refs:mir
82 void ArmMir2Lir::LockLiveArgs(MIR* mir) { in LockLiveArgs() argument
85 for (int i = 0; i < mir->ssa_rep->num_uses; i++) { in LockLiveArgs()
86 int v_reg = mir_graph_->SRegToVReg(mir->ssa_rep->uses[i]); in LockLiveArgs()
96 MIR* ArmMir2Lir::GetNextMir(BasicBlock** p_bb, MIR* mir) { in GetNextMir() argument
98 MIR* orig_mir = mir; in GetNextMir()
100 if (mir != NULL) { in GetNextMir()
101 mir = mir->next; in GetNextMir()
103 if (mir != NULL) { in GetNextMir()
104 return mir; in GetNextMir()
109 mir = bb->first_mir_insn; in GetNextMir()
110 if (mir != NULL) { in GetNextMir()
111 return mir; in GetNextMir()
121 void ArmMir2Lir::GenPrintLabel(MIR* mir) { in GenPrintLabel() argument
124 mir_graph_->GetDalvikDisassembly(mir) : NULL; in GenPrintLabel()
125 MarkBoundary(mir->offset, inst_str); in GenPrintLabel()
128 MIR* ArmMir2Lir::SpecialIGet(BasicBlock** bb, MIR* mir, in SpecialIGet() argument
132 uint32_t field_idx = mir->dalvikInsn.vC; in SpecialIGet()
134 if (!fast_path || !(mir->optimization_flags & MIR_IGNORE_NULL_CHECK)) { in SpecialIGet()
137 RegLocation rl_obj = mir_graph_->GetSrc(mir, 0); in SpecialIGet()
138 LockLiveArgs(mir); in SpecialIGet()
147 ArmMir2Lir::GenPrintLabel(mir); in SpecialIGet()
149 GenIGet(field_idx, mir->optimization_flags, size, rl_dest, rl_obj, long_or_double, is_object); in SpecialIGet()
150 return GetNextMir(bb, mir); in SpecialIGet()
153 MIR* ArmMir2Lir::SpecialIPut(BasicBlock** bb, MIR* mir, in SpecialIPut() argument
157 uint32_t field_idx = mir->dalvikInsn.vC; in SpecialIPut()
159 if (!fast_path || !(mir->optimization_flags & MIR_IGNORE_NULL_CHECK)) { in SpecialIPut()
164 LockLiveArgs(mir); in SpecialIPut()
166 rl_src = mir_graph_->GetSrcWide(mir, 0); in SpecialIPut()
167 rl_obj = mir_graph_->GetSrc(mir, 2); in SpecialIPut()
169 rl_src = mir_graph_->GetSrc(mir, 0); in SpecialIPut()
170 rl_obj = mir_graph_->GetSrc(mir, 1); in SpecialIPut()
180 ArmMir2Lir::GenPrintLabel(mir); in SpecialIPut()
183 GenIPut(field_idx, mir->optimization_flags, size, rl_src, rl_obj, long_or_double, is_object); in SpecialIPut()
184 return GetNextMir(bb, mir); in SpecialIPut()
187 MIR* ArmMir2Lir::SpecialIdentity(MIR* mir) { in SpecialIdentity() argument
190 bool wide = (mir->ssa_rep->num_uses == 2); in SpecialIdentity()
192 rl_src = mir_graph_->GetSrcWide(mir, 0); in SpecialIdentity()
195 rl_src = mir_graph_->GetSrc(mir, 0); in SpecialIdentity()
198 LockLiveArgs(mir); in SpecialIdentity()
205 ArmMir2Lir::GenPrintLabel(mir); in SpecialIdentity()
212 return mir; in SpecialIdentity()
218 void ArmMir2Lir::GenSpecialCase(BasicBlock* bb, MIR* mir, in GenSpecialCase() argument
220 current_dalvik_offset_ = mir->offset; in GenSpecialCase()
224 DCHECK(mir->dalvikInsn.opcode == Instruction::RETURN_VOID); in GenSpecialCase()
225 next_mir = mir; in GenSpecialCase()
228 ArmMir2Lir::GenPrintLabel(mir); in GenSpecialCase()
229 LoadConstant(rARM_RET0, mir->dalvikInsn.vB); in GenSpecialCase()
230 next_mir = GetNextMir(&bb, mir); in GenSpecialCase()
233 next_mir = SpecialIGet(&bb, mir, kWord, false, false); in GenSpecialCase()
237 next_mir = SpecialIGet(&bb, mir, kUnsignedByte, false, false); in GenSpecialCase()
240 next_mir = SpecialIGet(&bb, mir, kWord, false, true); in GenSpecialCase()
243 next_mir = SpecialIGet(&bb, mir, kUnsignedHalf, false, false); in GenSpecialCase()
246 next_mir = SpecialIGet(&bb, mir, kSignedHalf, false, false); in GenSpecialCase()
249 next_mir = SpecialIGet(&bb, mir, kLong, true, false); in GenSpecialCase()
252 next_mir = SpecialIPut(&bb, mir, kWord, false, false); in GenSpecialCase()
256 next_mir = SpecialIPut(&bb, mir, kUnsignedByte, false, false); in GenSpecialCase()
259 next_mir = SpecialIPut(&bb, mir, kWord, false, true); in GenSpecialCase()
262 next_mir = SpecialIPut(&bb, mir, kUnsignedHalf, false, false); in GenSpecialCase()
265 next_mir = SpecialIPut(&bb, mir, kSignedHalf, false, false); in GenSpecialCase()
268 next_mir = SpecialIPut(&bb, mir, kLong, true, false); in GenSpecialCase()
271 next_mir = SpecialIdentity(mir); in GenSpecialCase()
311 void ArmMir2Lir::GenSparseSwitch(MIR* mir, uint32_t table_offset, in GenSparseSwitch() argument
359 void ArmMir2Lir::GenPackedSwitch(MIR* mir, uint32_t table_offset, in GenPackedSwitch() argument