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