changeset 6432:3638582c26eb

Merge.
author Doug Simon <doug.simon@oracle.com>
date Tue, 25 Sep 2012 09:10:40 +0200
parents 2e376f8ea4e2 (current diff) 6278ac5829ce (diff)
children 4bd8711d824a
files
diffstat 2 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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);
 }
--- 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(&reg_map);
   // Make sure the calling nmethod is not getting deoptimized and removed