Lines Matching refs:work_line_

611             saved_line_->CopyFromLine(work_line_.get());  in Fail()
1233 work_line_.reset(RegisterLine::Create(registers_size, this)); in VerifyCodeFlow()
1501 work_line_->CopyFromLine(reg_table_.GetLine(insn_idx)); in CodeFlowVerifyMethod()
1509 if (work_line_->CompareLine(register_line) != 0) { in CodeFlowVerifyMethod()
1514 << " work_line=" << work_line_->Dump(this) << "\n" in CodeFlowVerifyMethod()
1607 for (size_t i = 0; i < work_line_->GetMonitorEnterCount(); ++i) { in CodeFlowVerifyInstruction()
1608 monitor_enter_dex_pcs_->push_back(work_line_->GetMonitorEnterDexPc(i)); in CodeFlowVerifyInstruction()
1639 << work_line_->Dump(this) << "\n"; in CodeFlowVerifyInstruction()
1650 saved_line_->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
1676 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
1679 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
1682 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
1685 work_line_->CopyRegister2(this, inst->VRegA_12x(), inst->VRegB_12x()); in CodeFlowVerifyInstruction()
1688 work_line_->CopyRegister2(this, inst->VRegA_22x(), inst->VRegB_22x()); in CodeFlowVerifyInstruction()
1691 work_line_->CopyRegister2(this, inst->VRegA_32x(), inst->VRegB_32x()); in CodeFlowVerifyInstruction()
1694 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
1697 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
1700 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
1715 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), false); in CodeFlowVerifyInstruction()
1718 work_line_->CopyResultRegister2(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
1721 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), true); in CodeFlowVerifyInstruction()
1736 work_line_->SetRegisterType(this, inst->VRegA_11x(), res_type); in CodeFlowVerifyInstruction()
1740 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
1747 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
1757 const RegType& src_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
1764 work_line_->VerifyRegisterType(this, vregA, use_src ? src_type : return_type); in CodeFlowVerifyInstruction()
1772 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
1780 bool success = work_line_->VerifyRegisterType(this, vregA, return_type); in CodeFlowVerifyInstruction()
1788 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
1797 const RegType& reg_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
1832 work_line_->SetRegisterType(this, inst->VRegA_11n(), in CodeFlowVerifyInstruction()
1838 work_line_->SetRegisterType(this, inst->VRegA_21s(), in CodeFlowVerifyInstruction()
1844 work_line_->SetRegisterType(this, inst->VRegA_31i(), in CodeFlowVerifyInstruction()
1850 work_line_->SetRegisterType(this, inst->VRegA_21h(), in CodeFlowVerifyInstruction()
1859 work_line_->SetRegisterTypeWide(this, inst->VRegA_21s(), lo, hi); in CodeFlowVerifyInstruction()
1866 work_line_->SetRegisterTypeWide(this, inst->VRegA_31i(), lo, hi); in CodeFlowVerifyInstruction()
1873 work_line_->SetRegisterTypeWide(this, inst->VRegA_51l(), lo, hi); in CodeFlowVerifyInstruction()
1880 work_line_->SetRegisterTypeWide(this, inst->VRegA_21h(), lo, hi); in CodeFlowVerifyInstruction()
1884 work_line_->SetRegisterType(this, inst->VRegA_21c(), reg_types_.JavaLangString()); in CodeFlowVerifyInstruction()
1887 work_line_->SetRegisterType(this, inst->VRegA_31c(), reg_types_.JavaLangString()); in CodeFlowVerifyInstruction()
1894 work_line_->SetRegisterType(this, inst->VRegA_21c(), in CodeFlowVerifyInstruction()
1900 work_line_->PushMonitor(this, inst->VRegA_11x(), work_insn_idx_); in CodeFlowVerifyInstruction()
1924 work_line_->PopMonitor(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
1951 work_line_->SetRegisterType(this, inst->VRegA_22c(), reg_types_.Boolean()); in CodeFlowVerifyInstruction()
1957 const RegType& orig_type = work_line_->GetRegisterType(this, orig_type_reg); in CodeFlowVerifyInstruction()
1972 work_line_->SetRegisterType(this, inst->VRegA_21c(), res_type); in CodeFlowVerifyInstruction()
1974 work_line_->SetRegisterType(this, inst->VRegA_22c(), reg_types_.Boolean()); in CodeFlowVerifyInstruction()
1980 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegB_12x()); in CodeFlowVerifyInstruction()
1985 work_line_->SetRegisterType(this, inst->VRegA_12x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2008 work_line_->MarkUninitRefsAsInvalid(this, uninit_type); in CodeFlowVerifyInstruction()
2010 work_line_->SetRegisterType(this, inst->VRegA_21c(), uninit_type); in CodeFlowVerifyInstruction()
2026 if (!work_line_->VerifyRegisterType(this, inst->VRegB_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2029 if (!work_line_->VerifyRegisterType(this, inst->VRegC_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2032 work_line_->SetRegisterType(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2036 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2040 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2044 work_line_->SetRegisterType(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2047 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2051 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2055 work_line_->SetRegisterType(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2058 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2074 work_line_->VerifyRegisterType(this, inst->VRegA_31t(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2079 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegA_31t()); in CodeFlowVerifyInstruction()
2113 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2114 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2133 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2134 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2143 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2193 const RegType& orig_type = work_line_->GetRegisterType(this, instance_of_inst->VRegB_22c()); in CodeFlowVerifyInstruction()
2208 update_line->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2253 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2426 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2428 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2471 const RegType& this_type = work_line_->GetInvocationThis(this, inst, is_range); in CodeFlowVerifyInstruction()
2502 work_line_->MarkRefsAsInitialized(this, this_type, this_reg, work_insn_idx_); in CodeFlowVerifyInstruction()
2509 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2511 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2534 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
2536 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2559 const RegType& this_type = work_line_->GetInvocationThis(this, inst, is_range); in CodeFlowVerifyInstruction()
2591 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
2593 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2600 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2604 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2608 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Float()); in CodeFlowVerifyInstruction()
2611 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
2615 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2619 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2622 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
2626 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
2630 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
2634 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
2638 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Float()); in CodeFlowVerifyInstruction()
2641 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2645 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
2649 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
2653 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2657 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
2661 work_line_->CheckUnaryOp(this, inst, reg_types_.Byte(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2664 work_line_->CheckUnaryOp(this, inst, reg_types_.Char(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2667 work_line_->CheckUnaryOp(this, inst, reg_types_.Short(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2678 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
2684 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
2695 work_line_->CheckBinaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2703 work_line_->CheckBinaryOpWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2711 work_line_->CheckBinaryOp(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
2719 work_line_->CheckBinaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
2730 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
2736 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
2740 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
2751 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2758 work_line_->CheckBinaryOp2addrWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
2766 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
2774 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
2783 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
2789 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
2800 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
2806 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
2888 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
2890 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2942 work_line_->SetResultTypeToUnknown(this); in CodeFlowVerifyInstruction()
2976 if (!UpdateRegisters(work_insn_idx_ + branch_target, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3016 if (!UpdateRegisters(abs_offset, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3065 if (work_line_->MonitorStackDepth() > 0 && !has_catch_all_handler) { in CodeFlowVerifyInstruction()
3071 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) { in CodeFlowVerifyInstruction()
3098 work_line_->CopyFromLine(fallthrough_line.get()); in CodeFlowVerifyInstruction()
3105 SafelyMarkAllRegistersAsConflicts(this, work_line_.get()); in CodeFlowVerifyInstruction()
3108 work_line_->MarkAllRegistersAsConflictsExceptWide(this, ret_inst->VRegA_11x()); in CodeFlowVerifyInstruction()
3110 work_line_->MarkAllRegistersAsConflictsExcept(this, ret_inst->VRegA_11x()); in CodeFlowVerifyInstruction()
3119 if (!UpdateRegisters(next_insn_idx, work_line_.get(), true)) { in CodeFlowVerifyInstruction()
3133 if (!work_line_->VerifyMonitorStackEmpty(this)) { in CodeFlowVerifyInstruction()
3354 const RegType& actual_arg_type = work_line_->GetInvocationThis(this, inst, is_range); in VerifyInvocationArgsFromIterator()
3421 const RegType& src_type = work_line_->GetRegisterType(this, get_reg); in VerifyInvocationArgsFromIterator()
3427 } else if (!work_line_->VerifyRegisterType(this, get_reg, reg_type)) { in VerifyInvocationArgsFromIterator()
3578 ArtMethod* res_method = GetQuickInvokedMethod(inst, work_line_.get(), is_range, false); in VerifyInvokeVirtualQuickArgs()
3595 const RegType& actual_arg_type = work_line_->GetInvocationThis(this, inst, is_range); in VerifyInvokeVirtualQuickArgs()
3657 if (!work_line_->VerifyRegisterType(this, get_reg, reg_type)) { in VerifyInvokeVirtualQuickArgs()
3692 work_line_->VerifyRegisterType(this, inst->VRegB_22c(), reg_types_.Integer()); in VerifyNewArray()
3695 work_line_->SetRegisterType(this, inst->VRegA_22c(), precise_type); in VerifyNewArray()
3707 if (!work_line_->VerifyRegisterType(this, get_reg, expected_type)) { in VerifyNewArray()
3708 work_line_->SetResultRegisterType(this, reg_types_.Conflict()); in VerifyNewArray()
3714 work_line_->SetResultRegisterType(this, precise_type); in VerifyNewArray()
3721 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAGet()
3725 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAGet()
3732 work_line_->SetRegisterType(this, inst->VRegA_23x(), reg_types_.Zero()); in VerifyAGet()
3735 work_line_->SetRegisterTypeWide(this, inst->VRegA_23x(), in VerifyAGet()
3760 work_line_->SetRegisterType(this, inst->VRegA_23x(), component_type); in VerifyAGet()
3762 work_line_->SetRegisterTypeWide(this, inst->VRegA_23x(), component_type, in VerifyAGet()
3775 const RegType& value_type = work_line_->GetRegisterType(this, vregA); in VerifyPrimitivePut()
3786 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
3787 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
3796 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
3797 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
3823 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAPut()
3827 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAPut()
3837 const RegType& value_type = work_line_->GetRegisterType(this, inst->VRegA_23x()); in VerifyAPut()
3848 work_line_->VerifyRegisterType(this, inst->VRegA_23x(), *modified_reg_type); in VerifyAPut()
3864 work_line_->VerifyRegisterType(this, vregA, insn_type); in VerifyAPut()
3981 const RegType& object_type = work_line_->GetRegisterType(this, inst->VRegB_22c()); in VerifyISFieldAccess()
4033 work_line_->VerifyRegisterType(this, vregA, *field_type); in VerifyISFieldAccess()
4064 work_line_->SetRegisterType(this, vregA, reg_types_.Conflict()); in VerifyISFieldAccess()
4070 work_line_->SetRegisterType(this, vregA, *field_type); in VerifyISFieldAccess()
4072 work_line_->SetRegisterTypeWide(this, vregA, *field_type, field_type->HighHalf(&reg_types_)); in VerifyISFieldAccess()
4102 ArtField* field = GetQuickFieldAccess(inst, work_line_.get()); in VerifyQuickFieldAccess()
4147 const RegType& value_type = work_line_->GetRegisterType(this, vregA); in VerifyQuickFieldAccess()
4189 work_line_->VerifyRegisterType(this, vregA, *field_type); in VerifyQuickFieldAccess()
4213 work_line_->SetRegisterType(this, vregA, reg_types_.Conflict()); in VerifyQuickFieldAccess()
4218 work_line_->SetRegisterType(this, vregA, *field_type); in VerifyQuickFieldAccess()
4220 work_line_->SetRegisterTypeWide(this, vregA, *field_type, field_type->HighHalf(&reg_types_)); in VerifyQuickFieldAccess()