src/share/vm/opto/library_call.cpp

Print this page

        

*** 2151,2161 **** // The compile time filters did not reject base_oop/offset so // we need to generate the following runtime filters // // if (offset == java_lang_ref_Reference::_reference_offset) { // if (base != null) { ! // if (klass(base)->reference_type() != REF_NONE)) { // pre_barrier(_, pre_val, ...); // } // } // } --- 2151,2161 ---- // The compile time filters did not reject base_oop/offset so // we need to generate the following runtime filters // // if (offset == java_lang_ref_Reference::_reference_offset) { // if (base != null) { ! // if (instance_of(base, java.lang.ref.Reference)) { // pre_barrier(_, pre_val, ...); // } // } // }
*** 2163,2174 **** float unlikely = PROB_UNLIKELY(0.999); IdealKit ideal(this); #define __ ideal. - const int reference_type_offset = in_bytes(instanceKlass::reference_type_offset()); - Node* referent_off = __ ConX(java_lang_ref_Reference::referent_offset); __ if_then(offset, BoolTest::eq, referent_off, unlikely); { __ if_then(base_oop, BoolTest::ne, null(), likely); { --- 2163,2172 ----