diff src/share/vm/runtime/sharedRuntime.cpp @ 8337:37977d1dcedc

Transmit deoptimization reason in thread local.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 18 Mar 2013 00:20:07 +0100
parents b8f261ba79c6
children e41c32a4d573
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp	Mon Mar 18 00:12:00 2013 +0100
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Mon Mar 18 00:20:07 2013 +0100
@@ -774,7 +774,7 @@
 address SharedRuntime::deoptimize_for_implicit_exception(JavaThread* thread, address pc, nmethod* nm, int deopt_reason) {
   assert(deopt_reason > Deoptimization::Reason_none && deopt_reason < Deoptimization::Reason_LIMIT, "invalid deopt reason");
   thread->_ScratchA = (intptr_t)pc;
-  thread->_ScratchB = Deoptimization::make_trap_request((Deoptimization::DeoptReason)deopt_reason, Deoptimization::Action_reinterpret);
+  thread->set_pending_deoptimization(Deoptimization::make_trap_request((Deoptimization::DeoptReason)deopt_reason, Deoptimization::Action_reinterpret));
   return (SharedRuntime::deopt_blob()->implicit_exception_uncommon_trap());
 }
 #endif