This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: libffi: add MIPS O32 DWARF-2 unwind info


>>>>> "Casey" == Casey Marshall <csm@gnu.org> writes:

I discovered a buglet in ffi_call_O32 that prevented long values from
being returned by methods called through Method.invoke (the top half
of the returned value was never stored anywhere).

The attached patch fixes four FAILs for me in the libjava test suite
(all four are from InvokeReturn). I think it's correct, at least for
little-endian machines. I don't think big-endian would be different,
but am not sure.

This is, again, only tested on my patched 3.3.3 tree, but the MIPS
libffi part hasn't changed terribly much since then.

-- 
Casey Marshall || csm@gnu.org
Index: src/mips/o32.S
===================================================================
RCS file: /cvsroot/gcc/gcc/libffi/src/mips/o32.S,v
retrieving revision 1.3
diff -u -r1.3 o32.S
--- src/mips/o32.S	21 Oct 2003 19:01:56 -0000	1.3
+++ src/mips/o32.S	27 Jun 2004 02:50:21 -0000
@@ -139,6 +139,7 @@
 	bne     t2, FFI_TYPE_INT, retfloat
 	jal	t9
 	REG_L	t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
+	REG_S	v1, 4(t0)
 	REG_S	v0, 0(t0)
 	b	epilogue
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]