< prev index next >

src/share/vm/c1/c1_Instruction.hpp

Print this page

        

@@ -910,27 +910,30 @@
 BASE(AccessIndexed, AccessArray)
  private:
   Value     _index;
   Value     _length;
   BasicType _elt_type;
+  bool      _mismatched;
 
  public:
   // creation
-  AccessIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before)
+  AccessIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before, bool mismatched)
   : AccessArray(as_ValueType(elt_type), array, state_before)
   , _index(index)
   , _length(length)
   , _elt_type(elt_type)
+  , _mismatched(mismatched)
   {
     set_flag(Instruction::NeedsRangeCheckFlag, true);
     ASSERT_VALUES
   }
 
   // accessors
   Value index() const                            { return _index; }
   Value length() const                           { return _length; }
   BasicType elt_type() const                     { return _elt_type; }
+  bool mismatched() const                        { return _mismatched; }
 
   void clear_length()                            { _length = NULL; }
   // perform elimination of range checks involving constants
   bool compute_needs_range_check();
 

@@ -943,12 +946,12 @@
  private:
   NullCheck*  _explicit_null_check;              // For explicit null check elimination
 
  public:
   // creation
-  LoadIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before)
-  : AccessIndexed(array, index, length, elt_type, state_before)
+  LoadIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before, bool mismatched = false)
+  : AccessIndexed(array, index, length, elt_type, state_before, mismatched)
   , _explicit_null_check(NULL) {}
 
   // accessors
   NullCheck* explicit_null_check() const         { return _explicit_null_check; }
 

@@ -972,12 +975,13 @@
   int       _profiled_bci;
   bool      _check_boolean;
 
  public:
   // creation
-  StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before, bool check_boolean)
-  : AccessIndexed(array, index, length, elt_type, state_before)
+  StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before,
+               bool check_boolean, bool mismatched = false)
+  : AccessIndexed(array, index, length, elt_type, state_before, mismatched)
   , _value(value), _profiled_method(NULL), _profiled_bci(0), _check_boolean(check_boolean)
   {
     set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object()));
     set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object()));
     ASSERT_VALUES
< prev index next >