changeset 18404:03c63fd2f714

Backout 810222d74f7c
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 18 Nov 2014 10:55:59 +0100
parents b9f2356c3a69
children 4a1b4400bb1f
files src/share/vm/runtime/deoptimization.hpp src/share/vm/runtime/sharedRuntime.cpp
diffstat 2 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/runtime/deoptimization.hpp	Mon Nov 17 21:18:29 2014 +0100
+++ b/src/share/vm/runtime/deoptimization.hpp	Tue Nov 18 10:55:59 2014 +0100
@@ -127,13 +127,13 @@
   static void deoptimize(JavaThread* thread, frame fr, RegisterMap *reg_map);
   static void deoptimize(JavaThread* thread, frame fr, RegisterMap *reg_map, DeoptReason reason);
 
+  private:
+  // Does the actual work for deoptimizing a single frame
+  static void deoptimize_single_frame(JavaThread* thread, frame fr, DeoptReason reason);
+
   // Helper function to revoke biases of all monitors in frame if UseBiasedLocking
   // is enabled
   static void revoke_biases_of_monitors(JavaThread* thread, frame fr, RegisterMap* map);
-
-  private:
-  // Does the actual work for deoptimizing a single frame
-  static void deoptimize_single_frame(JavaThread* thread, frame fr, DeoptReason reason);
   // Helper function to revoke biases of all monitors in frames
   // executing in a particular CodeBlob if UseBiasedLocking is enabled
   static void revoke_biases_of_monitors(CodeBlob* cb);
--- a/src/share/vm/runtime/sharedRuntime.cpp	Mon Nov 17 21:18:29 2014 +0100
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Tue Nov 18 10:55:59 2014 +0100
@@ -663,9 +663,7 @@
       RegisterMap reg_map(thread);
       frame runtime_frame = thread->last_frame();
       frame caller_frame = runtime_frame.sender(&reg_map);
-      assert(caller_frame.is_compiled_frame() && !caller_frame.is_deoptimized_frame(),"should be called by compiled frame");
-      Deoptimization::revoke_biases_of_monitors(thread, caller_frame, &reg_map);
-
+      Deoptimization::deoptimize_frame(thread, caller_frame.id(), Deoptimization::Reason_not_compiled_exception_handler);
       return SharedRuntime::deopt_blob()->unpack_with_exception_in_tls();
     }
   }