Mercurial > hg > graal-compiler
changeset 6428:6278ac5829ce
fix for deopt issue with -XX:-UseBiasedLocking (plus a cosmetic fix in graalCodeInstaller.cpp)
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Mon, 24 Sep 2012 18:51:23 +0200 |
parents | 7d6f44854ee3 |
children | 3638582c26eb |
files | src/share/vm/graal/graalCodeInstaller.cpp src/share/vm/runtime/deoptimization.cpp |
diffstat | 2 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp Mon Sep 24 11:00:35 2012 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Mon Sep 24 18:51:23 2012 +0200 @@ -510,10 +510,7 @@ DebugToken* expressions_token = _debug_recorder->create_scope_values(expressions); DebugToken* monitors_token = _debug_recorder->create_monitor_values(monitors); - bool throw_exception = false; - if (BytecodeFrame::rethrowException(frame)) { - throw_exception = true; - } + bool throw_exception = BytecodeFrame::rethrowException(frame); _debug_recorder->describe_scope(pc_offset, method, NULL, bci, reexecute, throw_exception, false, false, locals_token, expressions_token, monitors_token); }
--- a/src/share/vm/runtime/deoptimization.cpp Mon Sep 24 11:00:35 2012 +0200 +++ b/src/share/vm/runtime/deoptimization.cpp Mon Sep 24 18:51:23 2012 +0200 @@ -1261,7 +1261,12 @@ thread->inc_in_deopt_handler(); // We need to update the map if we have biased locking. +#ifdef GRAAL + // (lstadler) Graal might need to get an exception from the stack, which in turn requires the register map to be valid + RegisterMap reg_map(thread, true); +#else RegisterMap reg_map(thread, UseBiasedLocking); +#endif frame stub_frame = thread->last_frame(); frame fr = stub_frame.sender(®_map); // Make sure the calling nmethod is not getting deoptimized and removed