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);
|