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 }