Lines Matching defs:instr
487 static bool IsStringInit(const Instruction* instr, ArtMethod* caller)
489 if (instr->Opcode() == Instruction::INVOKE_DIRECT ||
490 instr->Opcode() == Instruction::INVOKE_DIRECT_RANGE) {
493 uint16_t callee_method_idx = (instr->Opcode() == Instruction::INVOKE_DIRECT_RANGE) ?
494 instr->VRegB_3rc() : instr->VRegB_35c();
510 static int16_t GetReceiverRegisterForStringInit(const Instruction* instr) {
511 DCHECK(instr->Opcode() == Instruction::INVOKE_DIRECT_RANGE ||
512 instr->Opcode() == Instruction::INVOKE_DIRECT);
513 return (instr->Opcode() == Instruction::INVOKE_DIRECT_RANGE) ?
514 instr->VRegC_3rc() : instr->VRegC_35c();
550 const Instruction* instr = Instruction::At(&code_item->insns_[dex_pc]);
551 if (instr->IsInvoke()) {
552 if (IsStringInit(instr, shadow_frame->GetMethod())) {
553 uint16_t this_obj_vreg = GetReceiverRegisterForStringInit(instr);
562 new_dex_pc = dex_pc + instr->SizeInCodeUnits();
563 } else if (instr->Opcode() == Instruction::NEW_INSTANCE) {
568 shadow_frame->SetVRegReference(instr->VRegA_21c(), value.GetL());
572 new_dex_pc = dex_pc + instr->SizeInCodeUnits();
577 instr->VRegB_21c(), shadow_frame->GetMethod());
581 CHECK(false) << "Unexpected instruction opcode " << instr->Opcode()