src/share/vm/c1/c1_ValueType.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/c1/c1_ValueType.hpp Mon Feb 29 15:42:32 2016
--- new/src/share/vm/c1/c1_ValueType.hpp Mon Feb 29 15:42:32 2016
*** 43,52 ****
--- 43,53 ----
class DoubleConstant;
class ObjectType;
class ObjectConstant;
class ArrayType;
class ArrayConstant;
+ class StableArrayConstant;
class InstanceType;
class InstanceConstant;
class MetadataType;
class ClassType;
class ClassConstant;
*** 166,175 ****
--- 167,177 ----
virtual InstanceConstant* as_InstanceConstant(){ return NULL; }
virtual ClassConstant* as_ClassConstant() { return NULL; }
virtual MethodConstant* as_MethodConstant() { return NULL; }
virtual MethodDataConstant* as_MethodDataConstant() { return NULL; }
virtual ArrayConstant* as_ArrayConstant() { return NULL; }
+ virtual StableArrayConstant* as_StableArrayConstant() { return NULL; }
virtual AddressConstant* as_AddressConstant() { return NULL; }
// type operations
ValueType* meet(ValueType* y) const;
ValueType* join(ValueType* y) const;
*** 353,362 ****
--- 355,378 ----
virtual ArrayConstant* as_ArrayConstant() { return this; }
virtual ciObject* constant_value() const;
virtual ciType* exact_type() const;
};
+ class StableArrayConstant: public ArrayConstant {
+ private:
+ jint _dimension;
+
+ public:
+ StableArrayConstant(ciArray* value, jint dimension) : ArrayConstant(value) {
+ assert(dimension > 0, "not a stable array");
+ _dimension = dimension;
+ }
+
+ jint dimension() const { return _dimension; }
+
+ virtual StableArrayConstant* as_StableArrayConstant() { return this; }
+ };
class InstanceType: public ObjectType {
public:
virtual InstanceType* as_InstanceType() { return this; }
};
src/share/vm/c1/c1_ValueType.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File