changeset 349:55e5e7e59cb7

2007-11-13 Gary Benson <gbenson@redhat.com> * ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp (generate_normal_entry, generate_native_entry): Reload the method pointer after potential safepoints.
author Gary Benson <gbenson@redhat.com>
date Tue, 13 Nov 2007 06:50:47 -0500
parents be4f18fe7da6
children 914992a3ebba
files ChangeLog ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Nov 13 06:48:38 2007 -0500
+++ b/ChangeLog	Tue Nov 13 06:50:47 2007 -0500
@@ -1,3 +1,9 @@
+2007-11-13  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
+	(generate_normal_entry, generate_native_entry):
+	Reload the method pointer after potential safepoints.
+
 2007-11-13  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp	Tue Nov 13 06:48:38 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp	Tue Nov 13 06:50:47 2007 -0500
@@ -635,6 +635,9 @@
        JavaThread::check_special_condition_for_native_trans));
   __ bind (no_block);
 
+  // The method pointer may have changed if there was a safepoint
+  __ load (Rmethod, STATE(_method));
+
   // Change the thread state
   __ load (r0, _thread_in_Java);
   __ stw (r0, thread_state_addr);
@@ -803,6 +806,9 @@
   __ mr (r3, Rstate);
   __ call (interpreter);
 
+  // The method pointer may have changed if there was a safepoint
+  __ load (Rmethod, STATE(_method));
+
   // Clear the frame anchor
   __ reset_last_Java_frame ();