/hg/release/icedtea6-1.11: Pass stackdepth to Thumb2_Safepoint.

aph at icedtea.classpath.org aph at icedtea.classpath.org
Thu Jan 19 07:32:35 PST 2012


changeset 8c63d311e066 in /hg/release/icedtea6-1.11
details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=8c63d311e066
author: aph
date: Thu Jan 19 07:16:03 2012 -0500

	Pass stackdepth to Thumb2_Safepoint. 2012-01-19 Andrew Haley
	<aph at redhat.com>

	 * openjdk-ecj/hotspot/src/cpu/zero/vm/thumb2.cpp
	(Thumb2_Safepoint): Add comment. (Thumb2_Return): Pass
	stackdepth to Thumb2_Safepoint. (Thumb2_codegen): Pass
	stackdepth to Thumb2_Return.


diffstat:

 ChangeLog                                   |   7 +++++++
 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp |  14 +++++++++-----
 2 files changed, 16 insertions(+), 5 deletions(-)

diffs (59 lines):

diff -r 5104f8a08015 -r 8c63d311e066 ChangeLog
--- a/ChangeLog	Wed Jan 18 15:38:07 2012 +0000
+++ b/ChangeLog	Thu Jan 19 07:16:03 2012 -0500
@@ -1,3 +1,10 @@
+2012-01-19  Andrew Haley  <aph at redhat.com>
+
+	* openjdk-ecj/hotspot/src/cpu/zero/vm/thumb2.cpp
+	(Thumb2_Safepoint): Add comment.
+	(Thumb2_Return): Pass stackdepth to Thumb2_Safepoint.
+	(Thumb2_codegen): Pass stackdepth to Thumb2_Return.
+
 2012-01-18  Xerxes RÃ¥nby  <xerxes at zafena.se>
 
 	* openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S
diff -r 5104f8a08015 -r 8c63d311e066 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp
--- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp	Wed Jan 18 15:38:07 2012 +0000
+++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp	Thu Jan 19 07:16:03 2012 -0500
@@ -4354,6 +4354,10 @@
   ldr_imm(jinfo->codebuf, r_tmp, r_tmp, 0, 0, 0);
   cmp_imm(jinfo->codebuf, r_tmp, SafepointSynchronize::_synchronizing);
   {
+    // FIXME: If we are at a return instruction there is no point
+    // saving and restoring locals: no-one cares about them any more
+    // and we could safely ignore them.  However, this generic
+    // safepoint code also handles branches within a method.
     unsigned loc = forward_16(jinfo->codebuf);
   Thumb2_save_locals(jinfo, stackdepth);
     mov_imm(jinfo->codebuf, ARM_R1, bci+CONSTMETHOD_CODEOFFSET);
@@ -4402,9 +4406,9 @@
     return -1;
 }
 
-void Thumb2_Return(Thumb2_Info *jinfo, unsigned opcode, int bci)
-{
-  Thumb2_Safepoint(jinfo, 0, bci);
+void Thumb2_Return(Thumb2_Info *jinfo, unsigned opcode, int bci, int stackdepth)
+{
+  Thumb2_Safepoint(jinfo, stackdepth, bci);
 
   Reg r_lo, r;
   Thumb2_Stack *jstack = jinfo->jstack;
@@ -6358,7 +6362,7 @@
       case opc_ireturn:
       case opc_freturn:
       case opc_areturn:
-	Thumb2_Return(jinfo, opcode, bci);
+	Thumb2_Return(jinfo, opcode, bci, stackdepth);
 	if (!jinfo->compiled_return) jinfo->compiled_return = bci;
 	break;
 
@@ -6393,7 +6397,7 @@
 	it(jinfo->codebuf, COND_NE, IT_MASK_T);
 	bl(jinfo->codebuf, handlers[H_HANDLE_EXCEPTION]);
 	bcc_patch(jinfo->codebuf, COND_EQ, loc_eq);
-	Thumb2_Return(jinfo, opc_return, bci);
+	Thumb2_Return(jinfo, opc_return, bci, stackdepth);
 	break;
       }
 



More information about the distro-pkg-dev mailing list