Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/doCall.cpp @ 3901:aa67216400d3
7085404: JSR 292: VolatileCallSites should have push notification too
Reviewed-by: never, kvn
author | twisti |
---|---|
date | Fri, 02 Sep 2011 00:36:18 -0700 |
parents | fdb992d83a87 |
children | a04a201f0f5a |
comparison
equal
deleted
inserted
replaced
3900:a32de5085326 | 3901:aa67216400d3 |
---|---|
134 ciMethod* caller_method = jvms->method(); | 134 ciMethod* caller_method = jvms->method(); |
135 ciBytecodeStream str(caller_method); | 135 ciBytecodeStream str(caller_method); |
136 str.force_bci(jvms->bci()); // Set the stream to the invokedynamic bci. | 136 str.force_bci(jvms->bci()); // Set the stream to the invokedynamic bci. |
137 ciCallSite* call_site = str.get_call_site(); | 137 ciCallSite* call_site = str.get_call_site(); |
138 | 138 |
139 // Inline constant and mutable call sites. We don't inline | 139 CallGenerator* cg = CallGenerator::for_invokedynamic_inline(call_site, jvms, caller, call_method, profile); |
140 // volatile call sites optimistically since they are specified | 140 if (cg != NULL) { |
141 // to change their value often and that would result in a lot of | 141 return cg; |
142 // deoptimizations and recompiles. | |
143 if (call_site->is_constant_call_site() || call_site->is_mutable_call_site()) { | |
144 CallGenerator* cg = CallGenerator::for_invokedynamic_inline(call_site, jvms, caller, call_method, profile); | |
145 if (cg != NULL) { | |
146 return cg; | |
147 } | |
148 } | 142 } |
149 // If something failed, generate a normal dynamic call. | 143 // If something failed, generate a normal dynamic call. |
150 return CallGenerator::for_dynamic_call(call_method); | 144 return CallGenerator::for_dynamic_call(call_method); |
151 } | 145 } |
152 } | 146 } |