comparison src/share/vm/runtime/sharedRuntime.cpp @ 9518:f491f51e96b5

exception PC stored in thread is cleared before entering ExceptionHandlerStub
author Doug Simon <doug.simon@oracle.com>
date Thu, 02 May 2013 17:16:00 +0200
parents ff5a32117e02
children f64a3fec4e42
comparison
equal deleted inserted replaced
9517:51973e9ec004 9518:f491f51e96b5
491 // Set flag if return address is a method handle call site. 491 // Set flag if return address is a method handle call site.
492 thread->set_is_method_handle_return(nm->is_method_handle_return(return_address)); 492 thread->set_is_method_handle_return(nm->is_method_handle_return(return_address));
493 // native nmethods don't have exception handlers 493 // native nmethods don't have exception handlers
494 assert(!nm->is_native_method(), "no exception handler"); 494 assert(!nm->is_native_method(), "no exception handler");
495 assert(nm->header_begin() != nm->exception_begin(), "no exception handler"); 495 assert(nm->header_begin() != nm->exception_begin(), "no exception handler");
496 #ifdef GRAAL
497 // Graal's ExceptionHandlerStub expects the exception PC stored in the thread to be 0
498 thread->set_exception_pc(NULL);
499 #endif
496 if (nm->is_deopt_pc(return_address)) { 500 if (nm->is_deopt_pc(return_address)) {
497 return SharedRuntime::deopt_blob()->unpack_with_exception(); 501 return SharedRuntime::deopt_blob()->unpack_with_exception();
498 } else { 502 } else {
499 return nm->exception_begin(); 503 return nm->exception_begin();
500 } 504 }