Home | History | Annotate | Download | only in verifier

Lines Matching refs:work_line_

1037   work_line_.reset(new RegisterLine(registers_size, this));
1307 work_line_->CopyFromLine(reg_table_.GetLine(insn_idx));
1316 if (work_line_->CompareLine(register_line) != 0) {
1321 << " work_line=" << *work_line_ << "\n"
1393 for (size_t i = 0; i < work_line_->GetMonitorEnterCount(); ++i) {
1394 monitor_enter_dex_pcs_->push_back(work_line_->GetMonitorEnterDexPc(i));
1425 << *work_line_.get() << "\n";
1436 saved_line_->CopyFromLine(work_line_.get());
1463 work_line_->CopyRegister1(inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategory1nr);
1466 work_line_->CopyRegister1(inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategory1nr);
1469 work_line_->CopyRegister1(inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategory1nr);
1472 work_line_->CopyRegister2(inst->VRegA_12x(), inst->VRegB_12x());
1475 work_line_->CopyRegister2(inst->VRegA_22x(), inst->VRegB_22x());
1478 work_line_->CopyRegister2(inst->VRegA_32x(), inst->VRegB_32x());
1481 work_line_->CopyRegister1(inst->VRegA_12x(), inst->VRegB_12x(), kTypeCategoryRef);
1484 work_line_->CopyRegister1(inst->VRegA_22x(), inst->VRegB_22x(), kTypeCategoryRef);
1487 work_line_->CopyRegister1(inst->VRegA_32x(), inst->VRegB_32x(), kTypeCategoryRef);
1502 work_line_->CopyResultRegister1(inst->VRegA_11x(), false);
1505 work_line_->CopyResultRegister2(inst->VRegA_11x());
1508 work_line_->CopyResultRegister1(inst->VRegA_11x(), true);
1517 work_line_->SetRegisterType(inst->VRegA_11x(), res_type);
1521 if (!IsConstructor() || work_line_->CheckConstructorReturn()) {
1528 if (!IsConstructor() || work_line_->CheckConstructorReturn()) {
1538 const RegType& src_type = work_line_->GetRegisterType(vregA);
1545 work_line_->VerifyRegisterType(vregA, use_src ? src_type : return_type);
1553 if (!IsConstructor() || work_line_->CheckConstructorReturn()) {
1561 bool success = work_line_->VerifyRegisterType(vregA, return_type);
1569 if (!IsConstructor() || work_line_->CheckConstructorReturn()) {
1578 const RegType& reg_type = work_line_->GetRegisterType(vregA);
1600 work_line_->SetRegisterType(inst->VRegA_11n(), reg_types_.FromCat1Const(val, true));
1605 work_line_
1609 work_line_->SetRegisterType(inst->VRegA_31i(),
1613 work_line_->SetRegisterType(inst->VRegA_21h(),
1621 work_line_->SetRegisterTypeWide(inst->VRegA_21s(), lo, hi);
1628 work_line_->SetRegisterTypeWide(inst->VRegA_31i(), lo, hi);
1635 work_line_->SetRegisterTypeWide(inst->VRegA_51l(), lo, hi);
1642 work_line_->SetRegisterTypeWide(inst->VRegA_21h(), lo, hi);
1646 work_line_->SetRegisterType(inst->VRegA_21c(), reg_types_.JavaLangString());
1649 work_line_->SetRegisterType(inst->VRegA_31c(), reg_types_.JavaLangString());
1656 work_line_->SetRegisterType(inst->VRegA_21c(),
1662 work_line_->PushMonitor(inst->VRegA_11x(), work_insn_idx_);
1686 work_line_->PopMonitor(inst->VRegA_11x());
1704 work_line_->SetRegisterType(inst->VRegA_22c(), reg_types_.Boolean());
1710 const RegType& orig_type = work_line_->GetRegisterType(orig_type_reg);
1725 work_line_->SetRegisterType(inst->VRegA_21c(), res_type);
1727 work_line_->SetRegisterType(inst->VRegA_22c(), reg_types_.Boolean());
1733 const RegType& res_type = work_line_->GetRegisterType(inst->VRegB_12x());
1738 work_line_->SetRegisterType(inst->VRegA_12x(), reg_types_.Integer());
1759 work_line_->MarkUninitRefsAsInvalid(uninit_type);
1761 work_line_->SetRegisterType(inst->VRegA_21c(), uninit_type);
1777 if (!work_line_->VerifyRegisterType(inst->VRegB_23x(), reg_types_.Float())) {
1780 if (!work_line_->VerifyRegisterType(inst->VRegC_23x(), reg_types_.Float())) {
1783 work_line_->SetRegisterType(inst->VRegA_23x(), reg_types_.Integer());
1787 if (!work_line_->VerifyRegisterTypeWide(inst->VRegB_23x(), reg_types_.DoubleLo(),
1791 if (!work_line_->VerifyRegisterTypeWide(inst->VRegC_23x(), reg_types_.DoubleLo(),
1795 work_line_->SetRegisterType(inst->VRegA_23x(), reg_types_.Integer());
1798 if (!work_line_->VerifyRegisterTypeWide(inst->VRegB_23x(), reg_types_.LongLo(),
1802 if (!work_line_->VerifyRegisterTypeWide(inst->VRegC_23x(), reg_types_.LongLo(),
1806 work_line_->SetRegisterType(inst->VRegA_23x(), reg_types_.Integer());
1809 const RegType& res_type = work_line_->GetRegisterType(inst->VRegA_11x());
1825 work_line_->VerifyRegisterType(inst->VRegA_31t(), reg_types_.Integer());
1830 const RegType& array_type = work_line_->GetRegisterType(inst->VRegA_31t());
1864 const RegType& reg_type1 = work_line_->GetRegisterType(inst->VRegA_22t());
1865 const RegType& reg_type2 = work_line_->GetRegisterType(inst->VRegB_22t());
1884 const RegType& reg_type1 = work_line_->GetRegisterType(inst->VRegA_22t());
1885 const RegType& reg_type2 = work_line_->GetRegisterType(inst->VRegB_22t());
1894 const RegType& reg_type = work_line_->GetRegisterType(inst->VRegA_21t());
1933 const RegType& orig_type = work_line_->GetRegisterType(instance_of_inst->VRegB_22c());
1944 update_line->CopyFromLine(work_line_.get());
1985 const RegType& reg_type = work_line_->GetRegisterType(inst->VRegA_21t());
2145 work_line_->SetResultRegisterType(return_type);
2147 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_));
2177 const RegType& this_type = work_line_->GetInvocationThis(inst, is_range);
2207 work_line_->MarkRefsAsInitialized(this_type);
2212 work_line_->SetResultRegisterType(return_type);
2214 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_));
2237 work_line_->SetResultRegisterType(return_type);
2239 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_));
2262 const RegType& this_type = work_line_->GetInvocationThis(inst, is_range);
2294 work_line_->SetResultRegisterType(return_type);
2296 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_));
2303 work_line_->CheckUnaryOp(inst, reg_types_.Integer(), reg_types_.Integer());
2307 work_line_->CheckUnaryOpWide(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2311 work_line_->CheckUnaryOp(inst, reg_types_.Float(), reg_types_.Float());
2314 work_line_->CheckUnaryOpWide(inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(),
2318 work_line_->CheckUnaryOpToWide(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2322 work_line_->CheckUnaryOp(inst, reg_types_.Float(), reg_types_.Integer());
2325 work_line_->CheckUnaryOpToWide(inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(),
2329 work_line_->CheckUnaryOpFromWide(inst, reg_types_.Integer(),
2333 work_line_->CheckUnaryOpFromWide(inst, reg_types_.Float(),
2337 work_line_->CheckUnaryOpWide(inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(),
2341 work_line_->CheckUnaryOp(inst, reg_types_.Integer(), reg_types_.Float());
2344 work_line_->CheckUnaryOpToWide(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2348 work_line_->CheckUnaryOpToWide(inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(),
2352 work_line_->CheckUnaryOpFromWide(inst, reg_types_.Integer(),
2356 work_line_->CheckUnaryOpWide(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2360 work_line_->CheckUnaryOpFromWide(inst, reg_types_.Float(),
2364 work_line_->CheckUnaryOp(inst, reg_types_.Byte(), reg_types_.Integer());
2367 work_line_->CheckUnaryOp(inst, reg_types_.Char(), reg_types_.Integer());
2370 work_line_->CheckUnaryOp(inst, reg_types_.Short(), reg_types_.Integer());
2381 work_line_->CheckBinaryOp(inst, reg_types_.Integer(), reg_types_.Integer(),
2387 work_line_->CheckBinaryOp(inst, reg_types_.Integer(), reg_types_.Integer(),
2398 work_line_->CheckBinaryOpWide(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2406 work_line_->CheckBinaryOpWideShift(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2414 work_line_->CheckBinaryOp(inst,
2425 work_line_->CheckBinaryOpWide(inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(),
2436 work_line_->CheckBinaryOp2addr(inst,
2445 work_line_->CheckBinaryOp2addr(inst,
2452 work_line_->CheckBinaryOp2addr(inst,
2466 work_line_->CheckBinaryOp2addrWide(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2473 work_line_->CheckBinaryOp2addrWideShift(inst, reg_types_.LongLo(), reg_types_.LongHi(),
2481 work_line_->CheckBinaryOp2addr(inst,
2492 work_line_->CheckBinaryOp2addrWide(inst, reg_types_.DoubleLo(), reg_types_.DoubleHi(),
2501 work_line_->CheckLiteralOp(inst, reg_types_.Integer(), reg_types_.Integer(), false, true);
2506 work_line_->CheckLiteralOp(inst, reg_types_.Integer(), reg_types_.Integer(), true, true);
2516 work_line_->CheckLiteralOp(inst, reg_types_.Integer(), reg_types_.Integer(), false, false);
2521 work_line_->CheckLiteralOp(inst, reg_types_.Integer(), reg_types_.Integer(), true, false);
2560 work_line_->SetResultRegisterType(return_type);
2562 work_line_->SetResultRegisterTypeWide(return_type, return_type.HighHalf(&reg_types_));
2626 work_line_->SetResultTypeToUnknown();
2660 if (!UpdateRegisters(work_insn_idx_ + branch_target, work_line_.get())) {
2700 if (!UpdateRegisters(abs_offset, work_line_.get()))
2731 if (work_line_->MonitorStackDepth() > 0 && !within_catch_all) {
2737 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) {
2747 * because it changes work_line_ when performing peephole optimization
2763 work_line_->CopyFromLine(fallthrough_line.get());
2770 work_line_->MarkAllRegistersAsConflicts();
2773 work_line_->MarkAllRegistersAsConflictsExceptWide(ret_inst->VRegA_11x());
2775 work_line_->MarkAllRegistersAsConflictsExcept(ret_inst->VRegA_11x());
2783 if (!UpdateRegisters(next_insn_idx, work_line_.get())) {
2797 if (!work_line_->VerifyMonitorStackEmpty()) {
3039 const RegType& actual_arg_type = work_line_->GetInvocationThis(inst, is_range);
3089 const RegType& src_type = work_line_->GetRegisterType(get_reg);
3095 } else if (!work_line_->VerifyRegisterType(get_reg, reg_type)) {
3146 mirror::ArtMethod* res_method = GetQuickInvokedMethod(inst, work_line_.get(),
3157 const RegType& actual_arg_type = work_line_->GetInvocationThis(inst, is_range);
3220 if (!work_line_->VerifyRegisterType(get_reg, reg_type)) {
3255 work_line_->VerifyRegisterType(inst->VRegB_22c(), reg_types_.Integer());
3258 work_line_->SetRegisterType(inst->VRegA_22c(), precise_type);
3270 if (!work_line_->VerifyRegisterType(get_reg, expected_type)) {
3271 work_line_->SetResultRegisterType(reg_types_.Conflict());
3277 work_line_->SetResultRegisterType(precise_type);
3284 const RegType& index_type = work_line_->GetRegisterType(inst->VRegC_23x());
3288 const RegType& array_type = work_line_->GetRegisterType(inst->VRegB_23x());
3294 work_line_->SetRegisterType(inst->VRegA_23x(), reg_types_.Zero());
3297 work_line_->SetRegisterTypeWide(inst->VRegA_23x(), reg_types_.FromCat2ConstLo(0, false),
3321 work_line_->SetRegisterType(inst->VRegA_23x(), component_type);
3323 work_line_->SetRegisterTypeWide(inst->VRegA_23x(), component_type,
3336 const RegType& value_type = work_line_->GetRegisterType(vregA);
3370 const RegType& index_type = work_line_->GetRegisterType(inst->VRegC_23x());
3374 const RegType& array_type = work_line_->GetRegisterType(inst->VRegB_23x());
3393 work_line_->VerifyRegisterType(vregA, insn_type);
3507 const RegType& object_type = work_line_->GetRegisterType(inst->VRegB_22c());
3543 work_line_->SetRegisterType(vregA, reg_types_.Conflict());
3548 work_line_->SetRegisterType(vregA, field_type);
3550 work_line_->SetRegisterTypeWide(vregA, field_type, field_type.HighHalf(&reg_types_));
3561 const RegType& object_type = work_line_->GetRegisterType(inst->VRegB_22c());
3593 work_line_->VerifyRegisterType(vregA, field_type);
3656 mirror::ArtField* field = GetQuickFieldAccess(inst, work_line_.get());
3686 work_line_->SetRegisterType(vregA, reg_types_.Conflict());
3691 work_line_->SetRegisterType(vregA, field_type);
3693 work_line_->SetRegisterTypeWide(vregA, field_type, field_type.HighHalf(&reg_types_));
3700 mirror::ArtField* field = GetQuickFieldAccess(inst, work_line_.get());
3720 const RegType& value_type = work_line_->GetRegisterType(vregA);
3762 work_line_->VerifyRegisterType(vregA, field_type);