< prev index next >

src/hotspot/share/opto/type.hpp

Print this page

        

*** 1316,1342 **** }; //------------------------------TypeValueTypePtr------------------------------------- // Class of value type pointers class TypeValueTypePtr : public TypeOopPtr { ! TypeValueTypePtr(const TypeValueType* vt, PTR ptr, ciObject* o, Offset offset, int instance_id, const TypePtr* speculative, int inline_depth) ! : TypeOopPtr(ValueTypePtr, ptr, vt->value_klass(), true, o, offset, Offset::bottom, instance_id, speculative, inline_depth) { ! _vt = vt; } - const TypeValueType* _vt; // Value type we point to - public: // Make a pointer to a value type ! static const TypeValueTypePtr* make(const TypeValueType* vt, PTR ptr = TypePtr::BotPTR, ciObject* o = NULL, Offset offset = Offset(0), int instance_id = InstanceBot, const TypePtr* speculative = NULL, int inline_depth = InlineDepthBottom, bool narrow = false); - // Make a pointer to a value type - static const TypeValueTypePtr* make(PTR ptr, ciValueKlass* vk, ciObject* o = NULL) { return make(TypeValueType::make(vk), ptr, o); } // Make a pointer to a constant value type static const TypeValueTypePtr* make(ciObject* o) { return make(TypePtr::Constant, o->klass()->as_value_klass(), o); } ! const TypeValueType* value_type() const { return _vt; } virtual const TypePtr* add_offset(intptr_t offset) const; virtual const Type* cast_to_ptr_type(PTR ptr) const; virtual const TypeOopPtr* cast_to_instance_id(int instance_id) const; --- 1316,1337 ---- }; //------------------------------TypeValueTypePtr------------------------------------- // Class of value type pointers class TypeValueTypePtr : public TypeOopPtr { ! TypeValueTypePtr(PTR ptr, ciValueKlass* vk, ciObject* o, Offset offset, int instance_id, const TypePtr* speculative, int inline_depth) ! : TypeOopPtr(ValueTypePtr, ptr, vk, true, o, offset, Offset::bottom, instance_id, speculative, inline_depth) { } public: // Make a pointer to a value type ! static const TypeValueTypePtr* make(PTR ptr, ciValueKlass* vk, ciObject* o = NULL, Offset offset = Offset(0), int instance_id = InstanceBot, const TypePtr* speculative = NULL, int inline_depth = InlineDepthBottom, bool narrow = false); // Make a pointer to a constant value type static const TypeValueTypePtr* make(ciObject* o) { return make(TypePtr::Constant, o->klass()->as_value_klass(), o); } ! ciValueKlass* value_klass() const { return klass()->as_value_klass(); } virtual const TypePtr* add_offset(intptr_t offset) const; virtual const Type* cast_to_ptr_type(PTR ptr) const; virtual const TypeOopPtr* cast_to_instance_id(int instance_id) const;
< prev index next >