Mercurial > hg > truffle
comparison src/share/vm/opto/library_call.cpp @ 4902:f174909614bd
Merge
author | bpittore |
---|---|
date | Fri, 10 Feb 2012 10:55:15 -0500 |
parents | b9bc6cae88f2 a79cb7c55012 |
children | b40ac3579043 |
comparison
equal
deleted
inserted
replaced
4896:2f985b6ce7ff | 4902:f174909614bd |
---|---|
2151 // The compile time filters did not reject base_oop/offset so | 2151 // The compile time filters did not reject base_oop/offset so |
2152 // we need to generate the following runtime filters | 2152 // we need to generate the following runtime filters |
2153 // | 2153 // |
2154 // if (offset == java_lang_ref_Reference::_reference_offset) { | 2154 // if (offset == java_lang_ref_Reference::_reference_offset) { |
2155 // if (base != null) { | 2155 // if (base != null) { |
2156 // if (klass(base)->reference_type() != REF_NONE)) { | 2156 // if (instance_of(base, java.lang.ref.Reference)) { |
2157 // pre_barrier(_, pre_val, ...); | 2157 // pre_barrier(_, pre_val, ...); |
2158 // } | 2158 // } |
2159 // } | 2159 // } |
2160 // } | 2160 // } |
2161 | 2161 |
2162 float likely = PROB_LIKELY(0.999); | 2162 float likely = PROB_LIKELY(0.999); |
2163 float unlikely = PROB_UNLIKELY(0.999); | 2163 float unlikely = PROB_UNLIKELY(0.999); |
2164 | 2164 |
2165 IdealKit ideal(this); | 2165 IdealKit ideal(this); |
2166 #define __ ideal. | 2166 #define __ ideal. |
2167 | |
2168 const int reference_type_offset = in_bytes(instanceKlass::reference_type_offset()); | |
2169 | 2167 |
2170 Node* referent_off = __ ConX(java_lang_ref_Reference::referent_offset); | 2168 Node* referent_off = __ ConX(java_lang_ref_Reference::referent_offset); |
2171 | 2169 |
2172 __ if_then(offset, BoolTest::eq, referent_off, unlikely); { | 2170 __ if_then(offset, BoolTest::eq, referent_off, unlikely); { |
2173 __ if_then(base_oop, BoolTest::ne, null(), likely); { | 2171 __ if_then(base_oop, BoolTest::ne, null(), likely); { |