changeset 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 51973e9ec004
children af0b79174c3d
files src/share/vm/runtime/sharedRuntime.cpp
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp	Thu May 02 15:12:52 2013 +0200
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Thu May 02 17:16:00 2013 +0200
@@ -493,6 +493,10 @@
     // native nmethods don't have exception handlers
     assert(!nm->is_native_method(), "no exception handler");
     assert(nm->header_begin() != nm->exception_begin(), "no exception handler");
+#ifdef GRAAL
+    // Graal's ExceptionHandlerStub expects the exception PC stored in the thread to be 0
+    thread->set_exception_pc(NULL);
+#endif
     if (nm->is_deopt_pc(return_address)) {
       return SharedRuntime::deopt_blob()->unpack_with_exception();
     } else {