Lines Matching refs:work_line_
894 saved_line_->CopyFromLine(work_line_.get()); in Fail()
1567 work_line_.reset(RegisterLine::Create(registers_size, this)); in VerifyCodeFlow()
1840 work_line_->CopyFromLine(reg_table_.GetLine(insn_idx)); in CodeFlowVerifyMethod()
1848 if (work_line_->CompareLine(register_line) != 0) { in CodeFlowVerifyMethod()
1853 << " work_line=" << work_line_->Dump(this) << "\n" in CodeFlowVerifyMethod()
1973 for (size_t i = 0; i < work_line_->GetMonitorEnterCount(); ++i) { in CodeFlowVerifyInstruction()
1974 monitor_enter_dex_pcs_->push_back(work_line_->GetMonitorEnterDexPc(i)); in CodeFlowVerifyInstruction()
2005 << work_line_->Dump(this) << "\n"; in CodeFlowVerifyInstruction()
2016 saved_line_->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2042 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2045 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2048 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2051 work_line_->CopyRegister2(this, inst->VRegA_12x(), inst->VRegB_12x()); in CodeFlowVerifyInstruction()
2054 work_line_->CopyRegister2(this, inst->VRegA_22x(), inst->VRegB_22x()); in CodeFlowVerifyInstruction()
2057 work_line_->CopyRegister2(this, inst->VRegA_32x(), inst->VRegB_32x()); in CodeFlowVerifyInstruction()
2060 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2063 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2066 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2081 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), false); in CodeFlowVerifyInstruction()
2084 work_line_->CopyResultRegister2(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2087 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), true); in CodeFlowVerifyInstruction()
2102 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_11x(), res_type); in CodeFlowVerifyInstruction()
2106 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2113 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2123 const RegType& src_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
2130 work_line_->VerifyRegisterType(this, vregA, use_src ? src_type : return_type); in CodeFlowVerifyInstruction()
2138 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2146 bool success = work_line_->VerifyRegisterType(this, vregA, return_type); in CodeFlowVerifyInstruction()
2154 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2163 const RegType& reg_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
2206 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2212 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2218 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2224 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2233 work_line_->SetRegisterTypeWide(this, inst->VRegA_21s(), lo, hi); in CodeFlowVerifyInstruction()
2240 work_line_->SetRegisterTypeWide(this, inst->VRegA_31i(), lo, hi); in CodeFlowVerifyInstruction()
2247 work_line_->SetRegisterTypeWide(this, inst->VRegA_51l(), lo, hi); in CodeFlowVerifyInstruction()
2254 work_line_->SetRegisterTypeWide(this, inst->VRegA_21h(), lo, hi); in CodeFlowVerifyInstruction()
2258 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2262 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2270 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2276 work_line_->PushMonitor(this, inst->VRegA_11x(), work_insn_idx_); in CodeFlowVerifyInstruction()
2292 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2326 work_line_->PopMonitor(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2352 work_line_->SetRegisterType<LockOp::kClear>(this, in CodeFlowVerifyInstruction()
2360 const RegType& orig_type = work_line_->GetRegisterType(this, orig_type_reg); in CodeFlowVerifyInstruction()
2383 work_line_->SetRegisterType<LockOp::kKeep>(this, inst->VRegA_21c(), res_type); in CodeFlowVerifyInstruction()
2385 work_line_->SetRegisterType<LockOp::kClear>(this, in CodeFlowVerifyInstruction()
2393 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegB_12x()); in CodeFlowVerifyInstruction()
2398 work_line_->SetRegisterType<LockOp::kClear>(this, in CodeFlowVerifyInstruction()
2423 work_line_->MarkUninitRefsAsInvalid(this, uninit_type); in CodeFlowVerifyInstruction()
2425 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_21c(), uninit_type); in CodeFlowVerifyInstruction()
2441 if (!work_line_->VerifyRegisterType(this, inst->VRegB_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2444 if (!work_line_->VerifyRegisterType(this, inst->VRegC_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2447 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2451 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2455 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2459 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2462 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2466 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2470 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2473 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2495 work_line_->VerifyRegisterType(this, inst->VRegA_31t(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2500 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegA_31t()); in CodeFlowVerifyInstruction()
2539 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2540 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2559 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2560 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2569 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2619 const RegType& orig_type = work_line_->GetRegisterType(this, instance_of_inst->VRegB_22c()); in CodeFlowVerifyInstruction()
2634 update_line->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2687 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2862 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2864 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(®_types_)); in CodeFlowVerifyInstruction()
2905 const RegType& this_type = work_line_->GetInvocationThis(this, inst, is_range); in CodeFlowVerifyInstruction()
2935 work_line_->MarkRefsAsInitialized(this, this_type); in CodeFlowVerifyInstruction()
2941 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2943 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(®_types_)); in CodeFlowVerifyInstruction()
2963 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
2965 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
2985 const RegType& this_type = work_line_->GetInvocationThis(this, inst, is_range); in CodeFlowVerifyInstruction()
3017 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3019 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3026 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3030 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3034 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Float()); in CodeFlowVerifyInstruction()
3037 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3041 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3045 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3048 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3052 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
3056 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
3060 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3064 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Float()); in CodeFlowVerifyInstruction()
3067 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3071 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3075 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
3079 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3083 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
3087 work_line_->CheckUnaryOp(this, inst, reg_types_.Byte(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3090 work_line_->CheckUnaryOp(this, inst, reg_types_.Char(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3093 work_line_->CheckUnaryOp(this, inst, reg_types_.Short(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3104 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3110 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3121 work_line_->CheckBinaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3129 work_line_->CheckBinaryOpWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3137 work_line_->CheckBinaryOp(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
3145 work_line_->CheckBinaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3156 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3162 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3166 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3177 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3184 work_line_->CheckBinaryOp2addrWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3192 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
3200 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3209 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
3215 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
3226 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
3232 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
3321 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3323 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3375 work_line_->SetRegisterType<LockOp::kClear>(this, vreg_target_object, reg_type); in CodeFlowVerifyInstruction()
3431 work_line_->SetResultTypeToUnknown(this); in CodeFlowVerifyInstruction()
3465 if (!UpdateRegisters(work_insn_idx_ + branch_target, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3505 if (!UpdateRegisters(abs_offset, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3554 if (work_line_->MonitorStackDepth() > 0 && !has_catch_all_handler) { in CodeFlowVerifyInstruction()
3560 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) { in CodeFlowVerifyInstruction()
3587 work_line_->CopyFromLine(fallthrough_line.get()); in CodeFlowVerifyInstruction()
3592 AdjustReturnLine(this, ret_inst, work_line_.get()); in CodeFlowVerifyInstruction()
3599 if (!UpdateRegisters(next_insn_idx, work_line_.get(), true)) { in CodeFlowVerifyInstruction()
3613 work_line_->VerifyMonitorStackEmpty(this); in CodeFlowVerifyInstruction()
3896 const RegType& actual_arg_type = work_line_->GetInvocationThis(this, inst, is_range); in VerifyInvocationArgsFromIterator()
3974 const RegType& src_type = work_line_->GetRegisterType(this, get_reg); in VerifyInvocationArgsFromIterator()
3981 if (!work_line_->VerifyRegisterType(this, get_reg, reg_type)) { in VerifyInvocationArgsFromIterator()
4174 ArtMethod* res_method = GetQuickInvokedMethod(inst, work_line_.get(), is_range, false); in VerifyInvokeVirtualQuickArgs()
4191 const RegType& actual_arg_type = work_line_->GetInvocationThis(this, inst, is_range); in VerifyInvokeVirtualQuickArgs()
4257 if (!work_line_->VerifyRegisterType(this, get_reg, reg_type)) { in VerifyInvokeVirtualQuickArgs()
4292 work_line_->VerifyRegisterType(this, inst->VRegB_22c(), reg_types_.Integer()); in VerifyNewArray()
4295 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_22c(), precise_type); in VerifyNewArray()
4308 if (!work_line_->VerifyRegisterType(this, get_reg, expected_type)) { in VerifyNewArray()
4309 work_line_->SetResultRegisterType(this, reg_types_.Conflict()); in VerifyNewArray()
4315 work_line_->SetResultRegisterType(this, precise_type); in VerifyNewArray()
4322 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAGet()
4326 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAGet()
4333 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Zero()); in VerifyAGet()
4336 work_line_->SetRegisterTypeWide(this, inst->VRegA_23x(), in VerifyAGet()
4351 work_line_->SetRegisterType<LockOp::kClear>(this, in VerifyAGet()
4374 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), component_type); in VerifyAGet()
4376 work_line_->SetRegisterTypeWide(this, inst->VRegA_23x(), component_type, in VerifyAGet()
4389 const RegType& value_type = work_line_->GetRegisterType(this, vregA); in VerifyPrimitivePut()
4400 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
4401 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
4410 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
4411 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
4437 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAPut()
4441 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAPut()
4451 const RegType& value_type = work_line_->GetRegisterType(this, inst->VRegA_23x()); in VerifyAPut()
4462 work_line_->VerifyRegisterType(this, inst->VRegA_23x(), *modified_reg_type); in VerifyAPut()
4487 work_line_->VerifyRegisterType(this, vregA, insn_type); in VerifyAPut()
4619 const RegType& object_type = work_line_->GetRegisterType(this, inst->VRegB_22c()); in VerifyISFieldAccess()
4695 work_line_->VerifyRegisterType(this, vregA, *field_type); in VerifyISFieldAccess()
4726 work_line_->SetRegisterType<LockOp::kClear>(this, vregA, reg_types_.Conflict()); in VerifyISFieldAccess()
4732 work_line_->SetRegisterType<LockOp::kClear>(this, vregA, *field_type); in VerifyISFieldAccess()
4734 work_line_->SetRegisterTypeWide(this, vregA, *field_type, field_type->HighHalf(®_types_)); in VerifyISFieldAccess()
4764 ArtField* field = GetQuickFieldAccess(inst, work_line_.get()); in VerifyQuickFieldAccess()
4811 const RegType& value_type = work_line_->GetRegisterType(this, vregA); in VerifyQuickFieldAccess()
4853 work_line_->VerifyRegisterType(this, vregA, *field_type); in VerifyQuickFieldAccess()
4877 work_line_->SetRegisterType<LockOp::kClear>(this, vregA, reg_types_.Conflict()); in VerifyQuickFieldAccess()
4882 work_line_->SetRegisterType<LockOp::kClear>(this, vregA, *field_type); in VerifyQuickFieldAccess()
4884 work_line_->SetRegisterTypeWide(this, vregA, *field_type, field_type->HighHalf(®_types_)); in VerifyQuickFieldAccess()