# HG changeset patch # User Doug Simon # Date 1348557040 -7200 # Node ID 3638582c26ebfeaac815ddf38e62da2ae4d9b9e6 # Parent 2e376f8ea4e2b43b665855cfa0b26b58d32b285a# Parent 6278ac5829ce719627d29ac98cdd51feedfda690 Merge. diff -r 2e376f8ea4e2 -r 3638582c26eb src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Tue Sep 25 09:09:19 2012 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Tue Sep 25 09:10:40 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); } diff -r 2e376f8ea4e2 -r 3638582c26eb src/share/vm/runtime/deoptimization.cpp --- a/src/share/vm/runtime/deoptimization.cpp Tue Sep 25 09:09:19 2012 +0200 +++ b/src/share/vm/runtime/deoptimization.cpp Tue Sep 25 09:10:40 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