< prev index next >
src/hotspot/share/c1/c1_Instruction.hpp
Print this page
*** 1500,1513 ****
int profiled_bci() const { return _profiled_bci; }
};
LEAF(CheckCast, TypeCheck)
public:
// creation
! CheckCast(ciKlass* klass, Value obj, ValueStack* state_before)
! : TypeCheck(klass, obj, objectType, state_before) {}
void set_incompatible_class_change_check() {
set_flag(ThrowIncompatibleClassChangeErrorFlag, true);
}
bool is_incompatible_class_change_check() const {
--- 1500,1514 ----
int profiled_bci() const { return _profiled_bci; }
};
LEAF(CheckCast, TypeCheck)
+ bool _is_never_null;
public:
// creation
! CheckCast(ciKlass* klass, Value obj, ValueStack* state_before, bool never_null = false)
! : TypeCheck(klass, obj, objectType, state_before), _is_never_null(never_null) {}
void set_incompatible_class_change_check() {
set_flag(ThrowIncompatibleClassChangeErrorFlag, true);
}
bool is_incompatible_class_change_check() const {
*** 1517,1526 ****
--- 1518,1530 ----
set_flag(InvokeSpecialReceiverCheckFlag, true);
}
bool is_invokespecial_receiver_check() const {
return check_flag(InvokeSpecialReceiverCheckFlag);
}
+ bool is_never_null() const {
+ return _is_never_null;
+ }
virtual bool needs_exception_state() const {
return !is_invokespecial_receiver_check();
}
< prev index next >