comparison 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
comparison
equal deleted inserted replaced
8336:38be33a1c28d 8337:37977d1dcedc
772 772
773 #ifdef GRAAL 773 #ifdef GRAAL
774 address SharedRuntime::deoptimize_for_implicit_exception(JavaThread* thread, address pc, nmethod* nm, int deopt_reason) { 774 address SharedRuntime::deoptimize_for_implicit_exception(JavaThread* thread, address pc, nmethod* nm, int deopt_reason) {
775 assert(deopt_reason > Deoptimization::Reason_none && deopt_reason < Deoptimization::Reason_LIMIT, "invalid deopt reason"); 775 assert(deopt_reason > Deoptimization::Reason_none && deopt_reason < Deoptimization::Reason_LIMIT, "invalid deopt reason");
776 thread->_ScratchA = (intptr_t)pc; 776 thread->_ScratchA = (intptr_t)pc;
777 thread->_ScratchB = Deoptimization::make_trap_request((Deoptimization::DeoptReason)deopt_reason, Deoptimization::Action_reinterpret); 777 thread->set_pending_deoptimization(Deoptimization::make_trap_request((Deoptimization::DeoptReason)deopt_reason, Deoptimization::Action_reinterpret));
778 return (SharedRuntime::deopt_blob()->implicit_exception_uncommon_trap()); 778 return (SharedRuntime::deopt_blob()->implicit_exception_uncommon_trap());
779 } 779 }
780 #endif 780 #endif
781 781
782 address SharedRuntime::continuation_for_implicit_exception(JavaThread* thread, 782 address SharedRuntime::continuation_for_implicit_exception(JavaThread* thread,