Home | History | Annotate | Download | only in verifier

Lines Matching refs:precise

32 static bool MatchingPrecisionForClass(RegType* entry, bool precise)
34 if (entry->IsPreciseReference() == precise) {
35 // We were or weren't looking for a precise reference and we found what we need.
38 if (!precise && entry->GetClass()->CannotBeAssignedFromOtherTypes()) {
39 // We weren't looking for a precise reference, as we're looking up based on a descriptor, but
40 // we found a matching entry based on the descriptor. Return the precise entry in that case.
69 bool precise) {
94 return From(loader, descriptor, precise);
125 bool RegTypeCache::MatchDescriptor(size_t idx, const StringPiece& descriptor, bool precise) {
131 return MatchingPrecisionForClass(entry, precise);
133 // There is no notion of precise unresolved references, the precise information is just dropped
160 bool precise) {
165 if (MatchDescriptor(i, descriptor_sp, precise)) {
176 // instantiable or an interface with the precise type set to false.
177 DCHECK(!precise || klass->IsInstantiable());
178 // Create a precise type if:
179 // 1- Class is final and NOT an interface. a precise interface is meaningless !!
180 // 2- Precise Flag passed as true.
182 // Create an imprecise type if we can't tell for a fact that it is precise.
183 if (klass->CannotBeAssignedFromOtherTypes() || precise) {
213 RegType& RegTypeCache::FromClass(const char* descriptor, mirror::Class* klass, bool precise) {
216 // Note: precise isn't used for primitive classes. A char is assignable to an int. All
223 if (cur_entry->klass_.Read() == klass && MatchingPrecisionForClass(cur_entry, precise)) {
229 if (precise) {
416 // For uninitialized "this reference" look for reference types that are not precise.
425 // We're uninitialized because of allocation, look or create a precise type as allocations
505 ConstantType& RegTypeCache::FromCat1NonSmallConstant(int32_t value, bool precise) {
509 cur_entry->IsPreciseConstant() == precise &&
515 if (precise) {
524 ConstantType& RegTypeCache::FromCat2ConstLo(int32_t value, bool precise) {
527 if (cur_entry->IsConstantLo() && (cur_entry->IsPrecise() == precise) &&
533 if (precise) {
542 ConstantType& RegTypeCache::FromCat2ConstHi(int32_t value, bool precise) {
545 if (cur_entry->IsConstantHi() && (cur_entry->IsPrecise() == precise) &&
551 if (precise) {