changeset in /hg/icedtea: 2007-11-15 Gary Benson <gbenson at redh...

Gary Benson gbenson at redhat.com
Thu Nov 15 07:11:40 PST 2007


changeset 82970c9037aa in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=82970c9037aa
description:
	2007-11-15  Gary Benson  <gbenson at redhat.com>

		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
		(bcl): New instruction.
		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
		(set_last_Java_frame): Preserve the link stack.

diffstat:

4 files changed, 14 insertions(+), 4 deletions(-)
ChangeLog                                        |    8 ++++++++
ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp   |    4 ++++
ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp   |    1 +
ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp |    5 +----

diffs (55 lines):

diff -r 23ffcc32dd5a -r 82970c9037aa ChangeLog
--- a/ChangeLog	Thu Nov 15 09:43:38 2007 -0500
+++ b/ChangeLog	Thu Nov 15 10:11:36 2007 -0500
@@ -1,3 +1,11 @@ 2007-11-15  Gary Benson  <gbenson at redhat
+2007-11-15  Gary Benson  <gbenson at redhat.com>
+
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
+	(bcl): New instruction.
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
+	(set_last_Java_frame): Preserve the link stack.
+
 2007-11-15  Gary Benson  <gbenson at redhat.com>
 
 	* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.hpp
diff -r 23ffcc32dd5a -r 82970c9037aa ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp	Thu Nov 15 09:43:38 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp	Thu Nov 15 10:11:36 2007 -0500
@@ -240,6 +240,10 @@ void Assembler::bc(int bo, int bi, addre
 void Assembler::bc(int bo, int bi, address a)
 {
   emit_instruction(16, bo, bi, branch_target(pc(), a, 14), false, false);
+}
+void Assembler::bcl(int bo, int bi, address a)
+{
+  emit_instruction(16, bo, bi, branch_target(pc(), a, 14), false, true);
 }
 void Assembler::bclr(int bo, int bi)
 {
diff -r 23ffcc32dd5a -r 82970c9037aa ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
--- a/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp	Thu Nov 15 09:43:38 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp	Thu Nov 15 10:11:36 2007 -0500
@@ -114,6 +114,7 @@ class Assembler : public AbstractAssembl
   void andi_(Register dst, Register a, int b);
   void b(address a);
   void bc(int bo, int bi, address a);
+  void bcl(int bo, int bi, address a);
   void bclr(int bo, int bi);
   void bclrl(int bo, int bi);
   void bl(address a);
diff -r 23ffcc32dd5a -r 82970c9037aa ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp	Thu Nov 15 09:43:38 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp	Thu Nov 15 10:11:36 2007 -0500
@@ -34,10 +34,7 @@ REGISTER_DEFINITION(Register, Rstate);
 
 void InterpreterMacroAssembler::set_last_Java_frame()
 {
-  Label label;
-
-  bl(label);
-  bind(label);
+  bcl(31, 20, pc() + 4);  // magic branch that preserves the link stack
   mflr(r0);
   store(r0, Address(Rthread, JavaThread::last_Java_pc_offset()));
   store(r1, Address(Rthread, JavaThread::last_Java_sp_offset()));



More information about the distro-pkg-dev mailing list