changeset in /hg/icedtea: 2007-11-13 Gary Benson <gbenson at redh...
Gary Benson
gbenson at redhat.com
Wed Jan 16 07:09:23 PST 2008
changeset 336d429edc67 in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=336d429edc67
description:
2007-11-13 Gary Benson <gbenson at redhat.com>
* ports/hotspot/src/cpu/ppc/vm/interpreterRT_ppc.cpp
(SlowSignatureHandler::pass_int): Implemented.
(SlowSignatureHandler::pass_object): Likewise.
diffstat:
2 files changed, 33 insertions(+), 2 deletions(-)
ChangeLog | 6 ++++
ports/hotspot/src/cpu/ppc/vm/interpreterRT_ppc.cpp | 29 ++++++++++++++++++--
diffs (59 lines):
diff -r 5cce9860e9d8 -r 336d429edc67 ChangeLog
--- a/ChangeLog Tue Nov 13 06:50:47 2007 -0500
+++ b/ChangeLog Tue Nov 13 10:20:57 2007 -0500
@@ -1,3 +1,9 @@ 2007-11-13 Gary Benson <gbenson at redhat
+2007-11-13 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/ppc/vm/interpreterRT_ppc.cpp
+ (SlowSignatureHandler::pass_int): Implemented.
+ (SlowSignatureHandler::pass_object): Likewise.
+
2007-11-13 Gary Benson <gbenson at redhat.com>
* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
diff -r 5cce9860e9d8 -r 336d429edc67 ports/hotspot/src/cpu/ppc/vm/interpreterRT_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/interpreterRT_ppc.cpp Tue Nov 13 06:50:47 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/interpreterRT_ppc.cpp Tue Nov 13 10:20:57 2007 -0500
@@ -246,7 +246,18 @@ void InterpreterRuntime::SignatureHandle
void InterpreterRuntime::SlowSignatureHandler::pass_int()
{
- Unimplemented();
+ jint src = *(jint *)
+ (_from + Interpreter::local_offset_in_bytes(offset()));
+
+ if (_gp_regs <= _gp_reg_max) {
+ *(jint *)(_gp_regs++) = src;
+#ifdef PPC64
+ _st_args++;
+#endif
+ }
+ else {
+ *(jint *)(_st_args++) = src;
+ }
}
void InterpreterRuntime::SlowSignatureHandler::pass_long()
@@ -293,7 +304,21 @@ void InterpreterRuntime::SlowSignatureHa
void InterpreterRuntime::SlowSignatureHandler::pass_object()
{
- Unimplemented();
+ intptr_t *src = (intptr_t *)
+ (_from + Interpreter::local_offset_in_bytes(offset()));
+
+ if (*src == 0)
+ src = NULL;
+
+ if (_gp_regs <= _gp_reg_max) {
+ *(intptr_t **)(_gp_regs++) = src;
+#ifdef PPC64
+ _st_args++;
+#endif
+ }
+ else {
+ *(intptr_t **)(_st_args++) = src;
+ }
}
IRT_ENTRY(address,
More information about the distro-pkg-dev
mailing list