Lines Matching refs:work_line_

1568   work_line_.reset(RegisterLine::Create(registers_size, allocator_, GetRegTypeCache()));  in VerifyCodeFlow()
1863 work_line_->CopyFromLine(reg_table_.GetLine(insn_idx)); in CodeFlowVerifyMethod()
1871 if (work_line_->CompareLine(register_line) != 0) { in CodeFlowVerifyMethod()
1876 << " work_line=" << work_line_->Dump(this) << "\n" in CodeFlowVerifyMethod()
1887 HandleMonitorDexPcsWorkLine(monitor_enter_dex_pcs_, work_line_.get()); in CodeFlowVerifyMethod()
2012 << work_line_->Dump(this); in CodeFlowVerifyInstruction()
2024 saved_line_->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2052 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2055 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2058 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2061 work_line_->CopyRegister2(this, inst->VRegA_12x(), inst->VRegB_12x()); in CodeFlowVerifyInstruction()
2064 work_line_->CopyRegister2(this, inst->VRegA_22x(), inst->VRegB_22x()); in CodeFlowVerifyInstruction()
2067 work_line_->CopyRegister2(this, inst->VRegA_32x(), inst->VRegB_32x()); in CodeFlowVerifyInstruction()
2070 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2073 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2076 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2091 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), false); in CodeFlowVerifyInstruction()
2094 work_line_->CopyResultRegister2(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2097 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), true); in CodeFlowVerifyInstruction()
2107 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2114 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2124 const RegType& src_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
2131 work_line_->VerifyRegisterType(this, vregA, use_src ? src_type : return_type); in CodeFlowVerifyInstruction()
2139 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2147 bool success = work_line_->VerifyRegisterType(this, vregA, return_type); in CodeFlowVerifyInstruction()
2155 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2164 const RegType& reg_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
2194 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_11n(), DetermineCat1Constant(val)); in CodeFlowVerifyInstruction()
2199 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_21s(), DetermineCat1Constant(val)); in CodeFlowVerifyInstruction()
2204 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_31i(), DetermineCat1Constant(val)); in CodeFlowVerifyInstruction()
2209 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_21h(), DetermineCat1Constant(val)); in CodeFlowVerifyInstruction()
2217 work_line_->SetRegisterTypeWide(inst->VRegA_21s(), lo, hi); in CodeFlowVerifyInstruction()
2224 work_line_->SetRegisterTypeWide(inst->VRegA_31i(), lo, hi); in CodeFlowVerifyInstruction()
2231 work_line_->SetRegisterTypeWide(inst->VRegA_51l(), lo, hi); in CodeFlowVerifyInstruction()
2238 work_line_->SetRegisterTypeWide(inst->VRegA_21h(), lo, hi); in CodeFlowVerifyInstruction()
2242 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_21c(), reg_types_.JavaLangString()); in CodeFlowVerifyInstruction()
2245 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_31c(), reg_types_.JavaLangString()); in CodeFlowVerifyInstruction()
2252 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2258 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2262 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2266 work_line_->PushMonitor(this, inst->VRegA_11x(), work_insn_idx_); in CodeFlowVerifyInstruction()
2282 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2315 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2320 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2355 work_line_->PopMonitor(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2382 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_22c(), reg_types_.Boolean()); in CodeFlowVerifyInstruction()
2388 const RegType& orig_type = work_line_->GetRegisterType(this, orig_type_reg); in CodeFlowVerifyInstruction()
2411 work_line_->SetRegisterType<LockOp::kKeep>(inst->VRegA_21c(), res_type); in CodeFlowVerifyInstruction()
2413 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_22c(), reg_types_.Boolean()); in CodeFlowVerifyInstruction()
2419 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegB_12x()); in CodeFlowVerifyInstruction()
2425 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_12x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2448 work_line_->MarkUninitRefsAsInvalid(this, uninit_type); in CodeFlowVerifyInstruction()
2450 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_21c(), uninit_type); in CodeFlowVerifyInstruction()
2466 if (!work_line_->VerifyRegisterType(this, inst->VRegB_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2469 if (!work_line_->VerifyRegisterType(this, inst->VRegC_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2472 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2476 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2480 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2484 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2487 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2491 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2495 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2498 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2521 work_line_->VerifyRegisterType(this, inst->VRegA_31t(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2526 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegA_31t()); in CodeFlowVerifyInstruction()
2565 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2566 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2585 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2586 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2595 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2643 const RegType& orig_type = work_line_->GetRegisterType(this, instance_of_inst.VRegB_22c()); in CodeFlowVerifyInstruction()
2662 update_line->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2707 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2883 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2885 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2927 const RegType& this_type = work_line_->GetInvocationThis(this, inst); in CodeFlowVerifyInstruction()
2957 work_line_->MarkRefsAsInitialized(this, this_type); in CodeFlowVerifyInstruction()
2963 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2965 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
2986 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
2988 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
3008 const RegType& this_type = work_line_->GetInvocationThis(this, inst); in CodeFlowVerifyInstruction()
3041 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3043 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
3074 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3076 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
3107 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3109 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_)); in CodeFlowVerifyInstruction()
3116 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3120 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3124 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Float()); in CodeFlowVerifyInstruction()
3127 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3131 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3135 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3138 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3142 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
3146 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
3150 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3154 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Float()); in CodeFlowVerifyInstruction()
3157 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3161 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3165 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
3169 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3173 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
3177 work_line_->CheckUnaryOp(this, inst, reg_types_.Byte(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3180 work_line_->CheckUnaryOp(this, inst, reg_types_.Char(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3183 work_line_->CheckUnaryOp(this, inst, reg_types_.Short(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3194 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3200 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3211 work_line_->CheckBinaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3219 work_line_->CheckBinaryOpWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3227 work_line_->CheckBinaryOp(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
3235 work_line_->CheckBinaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3246 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3252 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3256 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3267 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3274 work_line_->CheckBinaryOp2addrWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3282 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
3290 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3299 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
3305 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
3316 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
3322 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
3372 work_line_->SetResultTypeToUnknown(GetRegTypeCache()); in CodeFlowVerifyInstruction()
3405 if (!UpdateRegisters(work_insn_idx_ + branch_target, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3445 if (!UpdateRegisters(abs_offset, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3500 if (work_line_->MonitorStackDepth() > 0 && !has_catch_all_handler) { in CodeFlowVerifyInstruction()
3506 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) { in CodeFlowVerifyInstruction()
3533 work_line_->CopyFromLine(fallthrough_line.get()); in CodeFlowVerifyInstruction()
3538 AdjustReturnLine(this, ret_inst, work_line_.get()); in CodeFlowVerifyInstruction()
3545 if (!UpdateRegisters(next_insn_idx, work_line_.get(), true)) { in CodeFlowVerifyInstruction()
3559 work_line_->VerifyMonitorStackEmpty(this); in CodeFlowVerifyInstruction()
3730 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_11x(), *result.second); in HandleMoveException()
3899 const RegType& actual_arg_type = work_line_->GetInvocationThis(this, inst); in VerifyInvocationArgsFromIterator()
3979 const RegType& src_type = work_line_->GetRegisterType(this, get_reg); in VerifyInvocationArgsFromIterator()
3986 if (!work_line_->VerifyRegisterType(this, get_reg, reg_type)) { in VerifyInvocationArgsFromIterator()
4241 const RegType& this_type = work_line_->GetInvocationThis(this, inst); in CheckSignaturePolymorphicReceiver()
4297 work_line_->VerifyRegisterType(this, inst->VRegB_22c(), reg_types_.Integer()); in VerifyNewArray()
4300 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_22c(), precise_type); in VerifyNewArray()
4313 work_line_->VerifyRegisterType(this, get_reg, expected_type); in VerifyNewArray()
4317 work_line_->SetResultRegisterType(this, precise_type); in VerifyNewArray()
4326 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAGet()
4330 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAGet()
4335 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), reg_types_.Null()); in VerifyAGet()
4339 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), DetermineCat1Constant(1)); in VerifyAGet()
4343 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), insn_type); in VerifyAGet()
4346 work_line_->SetRegisterTypeWide(inst->VRegA_23x(), in VerifyAGet()
4361 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), in VerifyAGet()
4383 work_line_->SetRegisterType<LockOp::kClear>(inst->VRegA_23x(), component_type); in VerifyAGet()
4385 work_line_->SetRegisterTypeWide(inst->VRegA_23x(), component_type, in VerifyAGet()
4400 const RegType& value_type = work_line_->GetRegisterType(this, vregA); in VerifyPrimitivePut()
4411 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
4412 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
4421 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
4422 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
4450 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAPut()
4454 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAPut()
4464 const RegType& value_type = work_line_->GetRegisterType(this, inst->VRegA_23x()); in VerifyAPut()
4475 work_line_->VerifyRegisterType(this, inst->VRegA_23x(), *modified_reg_type); in VerifyAPut()
4500 work_line_->VerifyRegisterType(this, vregA, insn_type); in VerifyAPut()
4650 const RegType& object_type = work_line_->GetRegisterType(this, inst->VRegB_22c()); in VerifyISFieldAccess()
4763 work_line_->VerifyRegisterType(this, vregA, *field_type); in VerifyISFieldAccess()
4794 work_line_->SetRegisterType<LockOp::kClear>(vregA, *field_type); in VerifyISFieldAccess()
4796 work_line_->SetRegisterTypeWide(vregA, *field_type, field_type->HighHalf(&reg_types_)); in VerifyISFieldAccess()
4922 saved_line_->CopyFromLine(work_line_.get()); in PotentiallyMarkRuntimeThrow()