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