Lines Matching refs:work_line_
1588 work_line_.reset(RegisterLine::Create(registers_size, allocator_, GetRegTypeCache())); in VerifyCodeFlow()
1867 work_line_->CopyFromLine(reg_table_.GetLine(insn_idx)); in CodeFlowVerifyMethod()
1875 if (work_line_->CompareLine(register_line) != 0) { in CodeFlowVerifyMethod()
1880 << " work_line=" << work_line_->Dump(this) << "\n" in CodeFlowVerifyMethod()
2009 work_line_->IterateRegToLockDepths(collector); in CodeFlowVerifyInstruction()
2014 work_line_->GetMonitorEnterDexPc(pair.second.dex_pc); in CodeFlowVerifyInstruction()
2045 << work_line_->Dump(this); in CodeFlowVerifyInstruction()
2056 saved_line_->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2082 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2085 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2088 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategory1nr); in CodeFlowVerifyInstruction()
2091 work_line_->CopyRegister2(this, inst->VRegA_12x(), inst->VRegB_12x()); in CodeFlowVerifyInstruction()
2094 work_line_->CopyRegister2(this, inst->VRegA_22x(), inst->VRegB_22x()); in CodeFlowVerifyInstruction()
2097 work_line_->CopyRegister2(this, inst->VRegA_32x(), inst->VRegB_32x()); in CodeFlowVerifyInstruction()
2100 work_line_->CopyRegister1(this, inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2103 work_line_->CopyRegister1(this, inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2106 work_line_->CopyRegister1(this, inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategoryRef); in CodeFlowVerifyInstruction()
2121 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), false); in CodeFlowVerifyInstruction()
2124 work_line_->CopyResultRegister2(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2127 work_line_->CopyResultRegister1(this, inst->VRegA_11x(), true); in CodeFlowVerifyInstruction()
2142 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_11x(), res_type); in CodeFlowVerifyInstruction()
2146 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2153 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2163 const RegType& src_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
2170 work_line_->VerifyRegisterType(this, vregA, use_src ? src_type : return_type); in CodeFlowVerifyInstruction()
2178 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2186 bool success = work_line_->VerifyRegisterType(this, vregA, return_type); in CodeFlowVerifyInstruction()
2194 if (!IsInstanceConstructor() || work_line_->CheckConstructorReturn(this)) { in CodeFlowVerifyInstruction()
2203 const RegType& reg_type = work_line_->GetRegisterType(this, vregA); in CodeFlowVerifyInstruction()
2246 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2252 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2258 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2264 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2273 work_line_->SetRegisterTypeWide(this, inst->VRegA_21s(), lo, hi); in CodeFlowVerifyInstruction()
2280 work_line_->SetRegisterTypeWide(this, inst->VRegA_31i(), lo, hi); in CodeFlowVerifyInstruction()
2287 work_line_->SetRegisterTypeWide(this, inst->VRegA_51l(), lo, hi); in CodeFlowVerifyInstruction()
2294 work_line_->SetRegisterTypeWide(this, inst->VRegA_21h(), lo, hi); in CodeFlowVerifyInstruction()
2298 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2302 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2310 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2316 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2320 work_line_->SetRegisterType<LockOp::kClear>( in CodeFlowVerifyInstruction()
2324 work_line_->PushMonitor(this, inst->VRegA_11x(), work_insn_idx_); in CodeFlowVerifyInstruction()
2340 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2373 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2378 work_line_->CopyRegister1(this, in CodeFlowVerifyInstruction()
2413 work_line_->PopMonitor(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2440 work_line_->SetRegisterType<LockOp::kClear>(this, in CodeFlowVerifyInstruction()
2448 const RegType& orig_type = work_line_->GetRegisterType(this, orig_type_reg); in CodeFlowVerifyInstruction()
2471 work_line_->SetRegisterType<LockOp::kKeep>(this, inst->VRegA_21c(), res_type); in CodeFlowVerifyInstruction()
2473 work_line_->SetRegisterType<LockOp::kClear>(this, in CodeFlowVerifyInstruction()
2481 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegB_12x()); in CodeFlowVerifyInstruction()
2487 work_line_->SetRegisterType<LockOp::kClear>(this, in CodeFlowVerifyInstruction()
2512 work_line_->MarkUninitRefsAsInvalid(this, uninit_type); in CodeFlowVerifyInstruction()
2514 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_21c(), uninit_type); in CodeFlowVerifyInstruction()
2530 if (!work_line_->VerifyRegisterType(this, inst->VRegB_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2533 if (!work_line_->VerifyRegisterType(this, inst->VRegC_23x(), reg_types_.Float())) { in CodeFlowVerifyInstruction()
2536 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2540 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2544 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.DoubleLo(), in CodeFlowVerifyInstruction()
2548 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2551 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegB_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2555 if (!work_line_->VerifyRegisterTypeWide(this, inst->VRegC_23x(), reg_types_.LongLo(), in CodeFlowVerifyInstruction()
2559 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2562 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegA_11x()); in CodeFlowVerifyInstruction()
2584 work_line_->VerifyRegisterType(this, inst->VRegA_31t(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
2589 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegA_31t()); in CodeFlowVerifyInstruction()
2629 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2630 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2649 const RegType& reg_type1 = work_line_->GetRegisterType(this, inst->VRegA_22t()); in CodeFlowVerifyInstruction()
2650 const RegType& reg_type2 = work_line_->GetRegisterType(this, inst->VRegB_22t()); in CodeFlowVerifyInstruction()
2659 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2709 const RegType& orig_type = work_line_->GetRegisterType(this, instance_of_inst.VRegB_22c()); in CodeFlowVerifyInstruction()
2728 update_line->CopyFromLine(work_line_.get()); in CodeFlowVerifyInstruction()
2779 const RegType& reg_type = work_line_->GetRegisterType(this, inst->VRegA_21t()); in CodeFlowVerifyInstruction()
2972 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
2974 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3016 const RegType& this_type = work_line_->GetInvocationThis(this, inst); in CodeFlowVerifyInstruction()
3046 work_line_->MarkRefsAsInitialized(this, this_type); in CodeFlowVerifyInstruction()
3054 work_line_->SetResultRegisterType(this, *return_type); in CodeFlowVerifyInstruction()
3056 work_line_->SetResultRegisterTypeWide(*return_type, return_type->HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3079 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3081 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3101 const RegType& this_type = work_line_->GetInvocationThis(this, inst); in CodeFlowVerifyInstruction()
3136 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3138 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3169 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3171 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3202 work_line_->SetResultRegisterType(this, return_type); in CodeFlowVerifyInstruction()
3204 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(®_types_)); in CodeFlowVerifyInstruction()
3211 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3215 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3219 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Float()); in CodeFlowVerifyInstruction()
3222 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3226 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3230 work_line_->CheckUnaryOp(this, inst, reg_types_.Float(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3233 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3237 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
3241 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
3245 work_line_->CheckUnaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3249 work_line_->CheckUnaryOp(this, inst, reg_types_.Integer(), reg_types_.Float()); in CodeFlowVerifyInstruction()
3252 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3256 work_line_->CheckUnaryOpToWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3260 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Integer(), in CodeFlowVerifyInstruction()
3264 work_line_->CheckUnaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3268 work_line_->CheckUnaryOpFromWide(this, inst, reg_types_.Float(), in CodeFlowVerifyInstruction()
3272 work_line_->CheckUnaryOp(this, inst, reg_types_.Byte(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3275 work_line_->CheckUnaryOp(this, inst, reg_types_.Char(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3278 work_line_->CheckUnaryOp(this, inst, reg_types_.Short(), reg_types_.Integer()); in CodeFlowVerifyInstruction()
3289 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3295 work_line_->CheckBinaryOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3306 work_line_->CheckBinaryOpWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3314 work_line_->CheckBinaryOpWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3322 work_line_->CheckBinaryOp(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
3330 work_line_->CheckBinaryOpWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3341 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3347 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3351 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Integer(), reg_types_.Integer(), in CodeFlowVerifyInstruction()
3362 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3369 work_line_->CheckBinaryOp2addrWideShift(this, inst, reg_types_.LongLo(), reg_types_.LongHi(), in CodeFlowVerifyInstruction()
3377 work_line_->CheckBinaryOp2addr(this, inst, reg_types_.Float(), reg_types_.Float(), in CodeFlowVerifyInstruction()
3385 work_line_->CheckBinaryOp2addrWide(this, inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(), in CodeFlowVerifyInstruction()
3394 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
3400 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
3411 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), false, in CodeFlowVerifyInstruction()
3417 work_line_->CheckLiteralOp(this, inst, reg_types_.Integer(), reg_types_.Integer(), true, in CodeFlowVerifyInstruction()
3498 work_line_->SetResultTypeToUnknown(GetRegTypeCache()); in CodeFlowVerifyInstruction()
3531 if (!UpdateRegisters(work_insn_idx_ + branch_target, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3571 if (!UpdateRegisters(abs_offset, work_line_.get(), false)) { in CodeFlowVerifyInstruction()
3626 if (work_line_->MonitorStackDepth() > 0 && !has_catch_all_handler) { in CodeFlowVerifyInstruction()
3632 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) { in CodeFlowVerifyInstruction()
3659 work_line_->CopyFromLine(fallthrough_line.get()); in CodeFlowVerifyInstruction()
3664 AdjustReturnLine(this, ret_inst, work_line_.get()); in CodeFlowVerifyInstruction()
3671 if (!UpdateRegisters(next_insn_idx, work_line_.get(), true)) { in CodeFlowVerifyInstruction()
3685 work_line_->VerifyMonitorStackEmpty(this); in CodeFlowVerifyInstruction()
3994 const RegType& actual_arg_type = work_line_->GetInvocationThis(this, inst); in VerifyInvocationArgsFromIterator()
4078 const RegType& src_type = work_line_->GetRegisterType(this, get_reg); in VerifyInvocationArgsFromIterator()
4085 if (!work_line_->VerifyRegisterType(this, get_reg, reg_type)) { in VerifyInvocationArgsFromIterator()
4343 const RegType& this_type = work_line_->GetInvocationThis(this, inst); in CheckSignaturePolymorphicReceiver()
4434 work_line_->VerifyRegisterType(this, inst->VRegB_22c(), reg_types_.Integer()); in VerifyNewArray()
4437 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_22c(), precise_type); in VerifyNewArray()
4450 if (!work_line_->VerifyRegisterType(this, get_reg, expected_type)) { in VerifyNewArray()
4451 work_line_->SetResultRegisterType(this, reg_types_.Conflict()); in VerifyNewArray()
4457 work_line_->SetResultRegisterType(this, precise_type); in VerifyNewArray()
4466 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAGet()
4470 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAGet()
4475 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), reg_types_.Null()); in VerifyAGet()
4479 work_line_->SetRegisterType<LockOp::kClear>( in VerifyAGet()
4484 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), insn_type); in VerifyAGet()
4487 work_line_->SetRegisterTypeWide(this, inst->VRegA_23x(), in VerifyAGet()
4502 work_line_->SetRegisterType<LockOp::kClear>(this, in VerifyAGet()
4525 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_23x(), component_type); in VerifyAGet()
4527 work_line_->SetRegisterTypeWide(this, inst->VRegA_23x(), component_type, in VerifyAGet()
4542 const RegType& value_type = work_line_->GetRegisterType(this, vregA); in VerifyPrimitivePut()
4553 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
4554 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
4563 if (instruction_compatible && work_line_->NumRegs() > vregA + 1) { in VerifyPrimitivePut()
4564 const RegType& value_type_hi = work_line_->GetRegisterType(this, vregA + 1); in VerifyPrimitivePut()
4592 const RegType& index_type = work_line_->GetRegisterType(this, inst->VRegC_23x()); in VerifyAPut()
4596 const RegType& array_type = work_line_->GetRegisterType(this, inst->VRegB_23x()); in VerifyAPut()
4606 const RegType& value_type = work_line_->GetRegisterType(this, inst->VRegA_23x()); in VerifyAPut()
4617 work_line_->VerifyRegisterType(this, inst->VRegA_23x(), *modified_reg_type); in VerifyAPut()
4642 work_line_->VerifyRegisterType(this, vregA, insn_type); in VerifyAPut()
4797 const RegType& object_type = work_line_->GetRegisterType(this, inst->VRegB_22c()); in VerifyISFieldAccess()
4899 work_line_->VerifyRegisterType(this, vregA, *field_type); in VerifyISFieldAccess()
4930 work_line_->SetRegisterType<LockOp::kClear>(this, vregA, reg_types_.Conflict()); in VerifyISFieldAccess()
4936 work_line_->SetRegisterType<LockOp::kClear>(this, vregA, *field_type); in VerifyISFieldAccess()
4938 work_line_->SetRegisterTypeWide(this, vregA, *field_type, field_type->HighHalf(®_types_)); in VerifyISFieldAccess()
5478 saved_line_->CopyFromLine(work_line_.get()); in Fail()