hotspot/src/share/vm/opto/doCall.cpp
changeset 14132 3c1437abcefd
parent 13895 f6dfe4123709
child 14478 1c4a20806af7
--- a/hotspot/src/share/vm/opto/doCall.cpp	Tue Oct 23 13:06:37 2012 -0700
+++ b/hotspot/src/share/vm/opto/doCall.cpp	Wed Oct 24 14:33:22 2012 -0700
@@ -107,7 +107,17 @@
   // intrinsics handle strict f.p. correctly.
   if (allow_inline && allow_intrinsics) {
     CallGenerator* cg = find_intrinsic(callee, call_is_virtual);
-    if (cg != NULL)  return cg;
+    if (cg != NULL) {
+      if (cg->is_predicted()) {
+        // Code without intrinsic but, hopefully, inlined.
+        CallGenerator* inline_cg = this->call_generator(callee,
+              vtable_index, call_is_virtual, jvms, allow_inline, prof_factor, false);
+        if (inline_cg != NULL) {
+          cg = CallGenerator::for_predicted_intrinsic(cg, inline_cg);
+        }
+      }
+      return cg;
+    }
   }
 
   // Do method handle calls.