Lines Matching refs:Instruction
77 void CompileReturnVoid(Instruction* inst, uint32_t dex_pc);
82 Instruction* CompileCheckCast(Instruction* inst, uint32_t dex_pc);
90 void CompileInstanceFieldAccess(Instruction* inst, uint32_t dex_pc,
91 Instruction::Code new_opcode, bool is_put);
99 void CompileInvokeVirtual(Instruction* inst, uint32_t dex_pc,
100 Instruction::Code new_opcode, bool is_range);
106 uint16_t GetIndexForInstruction(const Instruction* inst, uint32_t index);
195 uint16_t DexToDexCompiler::CompilationState::GetIndexForInstruction(const Instruction* inst, in GetIndexForInstruction()
216 Instruction* inst = const_cast<Instruction*>(&it.Inst()); in Compile()
223 case Instruction::RETURN_VOID: in Compile()
227 case Instruction::CHECK_CAST: in Compile()
229 if (inst->Opcode() == Instruction::NOP) { in Compile()
236 case Instruction::IGET: in Compile()
237 case Instruction::IGET_QUICK: in Compile()
238 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_QUICK, false); in Compile()
241 case Instruction::IGET_WIDE: in Compile()
242 case Instruction::IGET_WIDE_QUICK: in Compile()
243 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_WIDE_QUICK, false); in Compile()
246 case Instruction::IGET_OBJECT: in Compile()
247 case Instruction::IGET_OBJECT_QUICK: in Compile()
248 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_OBJECT_QUICK, false); in Compile()
251 case Instruction::IGET_BOOLEAN: in Compile()
252 case Instruction::IGET_BOOLEAN_QUICK: in Compile()
253 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_BOOLEAN_QUICK, false); in Compile()
256 case Instruction::IGET_BYTE: in Compile()
257 case Instruction::IGET_BYTE_QUICK: in Compile()
258 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_BYTE_QUICK, false); in Compile()
261 case Instruction::IGET_CHAR: in Compile()
262 case Instruction::IGET_CHAR_QUICK: in Compile()
263 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_CHAR_QUICK, false); in Compile()
266 case Instruction::IGET_SHORT: in Compile()
267 case Instruction::IGET_SHORT_QUICK: in Compile()
268 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IGET_SHORT_QUICK, false); in Compile()
271 case Instruction::IPUT: in Compile()
272 case Instruction::IPUT_QUICK: in Compile()
273 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_QUICK, true); in Compile()
276 case Instruction::IPUT_BOOLEAN: in Compile()
277 case Instruction::IPUT_BOOLEAN_QUICK: in Compile()
278 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_BOOLEAN_QUICK, true); in Compile()
281 case Instruction::IPUT_BYTE: in Compile()
282 case Instruction::IPUT_BYTE_QUICK: in Compile()
283 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_BYTE_QUICK, true); in Compile()
286 case Instruction::IPUT_CHAR: in Compile()
287 case Instruction::IPUT_CHAR_QUICK: in Compile()
288 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_CHAR_QUICK, true); in Compile()
291 case Instruction::IPUT_SHORT: in Compile()
292 case Instruction::IPUT_SHORT_QUICK: in Compile()
293 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_SHORT_QUICK, true); in Compile()
296 case Instruction::IPUT_WIDE: in Compile()
297 case Instruction::IPUT_WIDE_QUICK: in Compile()
298 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_WIDE_QUICK, true); in Compile()
301 case Instruction::IPUT_OBJECT: in Compile()
302 case Instruction::IPUT_OBJECT_QUICK: in Compile()
303 CompileInstanceFieldAccess(inst, dex_pc, Instruction::IPUT_OBJECT_QUICK, true); in Compile()
306 case Instruction::INVOKE_VIRTUAL: in Compile()
307 case Instruction::INVOKE_VIRTUAL_QUICK: in Compile()
308 CompileInvokeVirtual(inst, dex_pc, Instruction::INVOKE_VIRTUAL_QUICK, false); in Compile()
311 case Instruction::INVOKE_VIRTUAL_RANGE: in Compile()
312 case Instruction::INVOKE_VIRTUAL_RANGE_QUICK: in Compile()
313 CompileInvokeVirtual(inst, dex_pc, Instruction::INVOKE_VIRTUAL_RANGE_QUICK, true); in Compile()
316 case Instruction::NOP: in Compile()
367 const Instruction& inst = instructions.InstructionAt(info.dex_pc); in Compile()
375 void DexToDexCompiler::CompilationState::CompileReturnVoid(Instruction* inst, uint32_t dex_pc) { in CompileReturnVoid()
376 DCHECK_EQ(inst->Opcode(), Instruction::RETURN_VOID); in CompileReturnVoid()
384 VLOG(compiler) << "Replacing " << Instruction::Name(inst->Opcode()) in CompileReturnVoid()
385 << " by " << Instruction::Name(Instruction::RETURN_VOID_NO_BARRIER) in CompileReturnVoid()
388 inst->SetOpcode(Instruction::RETURN_VOID_NO_BARRIER); in CompileReturnVoid()
392 Instruction* DexToDexCompiler::CompilationState::CompileCheckCast(Instruction* inst, in CompileCheckCast()
406 VLOG(compiler) << "Removing " << Instruction::Name(inst->Opcode()) in CompileCheckCast()
415 inst->SetOpcode(Instruction::NOP); in CompileCheckCast()
419 inst = const_cast<Instruction*>(inst->Next()); in CompileCheckCast()
420 inst->SetOpcode(Instruction::NOP); in CompileCheckCast()
426 void DexToDexCompiler::CompilationState::CompileInstanceFieldAccess(Instruction* inst, in CompileInstanceFieldAccess()
428 Instruction::Code new_opcode, in CompileInstanceFieldAccess()
439 VLOG(compiler) << "Quickening " << Instruction::Name(inst->Opcode()) in CompileInstanceFieldAccess()
440 << " to " << Instruction::Name(new_opcode) in CompileInstanceFieldAccess()
459 void DexToDexCompiler::CompilationState::CompileInvokeVirtual(Instruction* inst, in CompileInvokeVirtual()
461 Instruction::Code new_opcode, in CompileInvokeVirtual()
487 VLOG(compiler) << "Quickening " << Instruction::Name(inst->Opcode()) in CompileInvokeVirtual()
489 << " to " << Instruction::Name(new_opcode) in CompileInvokeVirtual()