hotspot/src/share/vm/runtime/sharedRuntime.cpp
changeset 46998 efb404beeefb
parent 46968 9119841280f4
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp	Mon Aug 28 14:07:07 2017 +0000
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp	Mon Aug 28 15:21:47 2017 +0000
@@ -638,20 +638,7 @@
     if (t != NULL) {
       return cm->code_begin() + t->pco();
     } else {
-      // there is no exception handler for this pc => deoptimize
-      cm->make_not_entrant();
-
-      // Use Deoptimization::deoptimize for all of its side-effects:
-      // revoking biases of monitors, gathering traps statistics, logging...
-      // it also patches the return pc but we do not care about that
-      // since we return a continuation to the deopt_blob below.
-      JavaThread* thread = JavaThread::current();
-      RegisterMap reg_map(thread, UseBiasedLocking);
-      frame runtime_frame = thread->last_frame();
-      frame caller_frame = runtime_frame.sender(&reg_map);
-      Deoptimization::deoptimize(thread, caller_frame, &reg_map, Deoptimization::Reason_not_compiled_exception_handler);
-
-      return SharedRuntime::deopt_blob()->unpack_with_exception_in_tls();
+      return Deoptimization::deoptimize_for_missing_exception_handler(cm);
     }
   }
 #endif // INCLUDE_JVMCI