--- old/src/share/vm/opto/type.hpp 2014-01-30 13:51:40.485910871 +0100 +++ new/src/share/vm/opto/type.hpp 2014-01-30 13:51:40.381910874 +0100 @@ -458,6 +458,7 @@ class TypeD : public Type { TypeD( double d ) : Type(DoubleCon), _d(d) {}; public: + typedef jint native_type_t; virtual bool eq( const Type *t ) const; virtual int hash() const; // Type specific hashing virtual bool singleton(void) const; // TRUE if type is a singleton @@ -531,6 +532,8 @@ static const TypeInt *POS1; static const TypeInt *INT; static const TypeInt *SYMINT; // symmetric range [-max_jint..max_jint] + + static const Type *top() { return TypeInt::INT; } #ifndef PRODUCT virtual void dump2( Dict &d, uint depth, outputStream *st ) const; #endif @@ -546,6 +549,7 @@ // Do not kill _widen bits. virtual const Type *filter_helper(const Type *kills, bool include_speculative) const; public: + typedef jlong native_type_t; virtual bool eq( const Type *t ) const; virtual int hash() const; // Type specific hashing virtual bool singleton(void) const; // TRUE if type is a singleton @@ -580,6 +584,7 @@ static const TypeLong *LONG; static const TypeLong *INT; // 32-bit subrange [min_jint..max_jint] static const TypeLong *UINT; // 32-bit unsigned [0..max_juint] + static const Type *top() { return TypeLong::LONG; } #ifndef PRODUCT virtual void dump2( Dict &d, uint, outputStream *st ) const;// Specialized per-Type dumping #endif