This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: libffi and powerpc sys V struct passing problem


> Date: Fri, 10 Jan 2003 19:24:13 +0100
> From: Andreas Tobler <toa@pop.agri.ch>
> User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.3a) Gecko/20021212
> X-Accept-Language: en-us, en
> Cc: GCC <gcc@gcc.gnu.org>
> X-OriginalArrivalTime: 10 Jan 2003 18:24:16.0659 (UTC) FILETIME=[7BEED630:01C2B8D5]
> 
> Hi,
> 
> is this still true?
> 
> from the libffi README:
> ---
> EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a
> inconsistency with the SysV ABI: When a procedure is called with many
> floating-point arguments, some of them get put on the stack.  They are
> all supposed to be stored in double-precision format, even if they are
> only single-precision, but EGCS stores single-precision arguments as
> single-precision anyway.  This causes one test to fail (the `many
> arguments' test).
> ---
> I run a test in libffi which should test many args.
> 
> The ffitest mentions many arg tests failed! This is a gcc bug.
> 
> In my test I pass the following:
> typedef int (*closure_test_type2)(double, double, double, double, 
> signed 			short, double, double, int, double, int, float, 				int, 
> float, int, int);
> 
> On darwin it works but on ppc linux not. So I wonder if I have a bug in 
> libffi or if it is this thing mentioned above.

This is the thing mentioned above.

-- 
- Geoffrey Keating <geoffk@geoffk.org>


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