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