Mercurial > hg > truffle
diff src/share/vm/runtime/sharedRuntime.cpp @ 3055:fecdb0a65fb2
runtime profiles exceptions at the call site
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 21 Jun 2011 11:13:52 +0200 |
parents | 5ee0f57bb18c |
children | be4ca325525a |
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp Mon Jun 20 11:47:57 2011 +0200 +++ b/src/share/vm/runtime/sharedRuntime.cpp Tue Jun 21 11:13:52 2011 +0200 @@ -636,8 +636,15 @@ #ifdef COMPILER1 if (t == NULL && nm->is_compiled_by_c1()) { - assert(nm->unwind_handler_begin() != NULL, ""); - return nm->unwind_handler_begin(); + if (UseGraal) { + nm->make_not_entrant(); + JavaThread::current()->set_exception_pc(ret_pc); + JavaThread::current()->set_exception_oop(exception()); + return SharedRuntime::deopt_blob()->unpack_with_exception_in_tls(); + } else { + assert(nm->unwind_handler_begin() != NULL, ""); + return nm->unwind_handler_begin(); + } } #endif