src/share/vm/opto/type.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8031320_8u Sdiff src/share/vm/opto

src/share/vm/opto/type.cpp

Print this page
rev 5968 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed


4357   case NarrowKlass:
4358   case Bottom:                  // Ye Olde Default
4359     return Type::BOTTOM;
4360   case Top:
4361     return this;
4362 
4363   default:                      // All else is a mistake
4364     typerr(t);
4365 
4366   case AnyPtr: {
4367     // Found an AnyPtr type vs self-OopPtr type
4368     const TypePtr *tp = t->is_ptr();
4369     int offset = meet_offset(tp->offset());
4370     PTR ptr = meet_ptr(tp->ptr());
4371     switch (tp->ptr()) {
4372     case Null:
4373       if (ptr == Null)  return TypePtr::make(AnyPtr, ptr, offset);
4374       // else fall through:
4375     case TopPTR:
4376     case AnyNull: {
4377       return make(ptr, NULL, offset);
4378     }
4379     case BotPTR:
4380     case NotNull:
4381       return TypePtr::make(AnyPtr, ptr, offset);
4382     default: typerr(t);
4383     }
4384   }
4385 
4386   case RawPtr:
4387   case KlassPtr:
4388   case OopPtr:
4389   case InstPtr:
4390   case AryPtr:
4391     return TypePtr::BOTTOM;     // Oop meet raw is not well defined
4392 
4393   case MetadataPtr: {
4394     const TypeMetadataPtr *tp = t->is_metadataptr();
4395     int offset = meet_offset(tp->offset());
4396     PTR tptr = tp->ptr();
4397     PTR ptr = meet_ptr(tptr);




4357   case NarrowKlass:
4358   case Bottom:                  // Ye Olde Default
4359     return Type::BOTTOM;
4360   case Top:
4361     return this;
4362 
4363   default:                      // All else is a mistake
4364     typerr(t);
4365 
4366   case AnyPtr: {
4367     // Found an AnyPtr type vs self-OopPtr type
4368     const TypePtr *tp = t->is_ptr();
4369     int offset = meet_offset(tp->offset());
4370     PTR ptr = meet_ptr(tp->ptr());
4371     switch (tp->ptr()) {
4372     case Null:
4373       if (ptr == Null)  return TypePtr::make(AnyPtr, ptr, offset);
4374       // else fall through:
4375     case TopPTR:
4376     case AnyNull: {
4377       return make(ptr, _metadata, offset);
4378     }
4379     case BotPTR:
4380     case NotNull:
4381       return TypePtr::make(AnyPtr, ptr, offset);
4382     default: typerr(t);
4383     }
4384   }
4385 
4386   case RawPtr:
4387   case KlassPtr:
4388   case OopPtr:
4389   case InstPtr:
4390   case AryPtr:
4391     return TypePtr::BOTTOM;     // Oop meet raw is not well defined
4392 
4393   case MetadataPtr: {
4394     const TypeMetadataPtr *tp = t->is_metadataptr();
4395     int offset = meet_offset(tp->offset());
4396     PTR tptr = tp->ptr();
4397     PTR ptr = meet_ptr(tptr);


src/share/vm/opto/type.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File