Mercurial > hg > graal-compiler
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 } |