re PR target/23404 (gij trashes args of functions with more than 8 fp args)
PR target/23404 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack homed fp args. (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same. From-SVN: r103462
This commit is contained in:
parent
91432782c4
commit
2d9c5743d6
@ -1,3 +1,10 @@
|
||||
2005-08-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR target/23404
|
||||
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
|
||||
homed fp args.
|
||||
(ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
|
||||
|
||||
2005-08-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
|
||||
|
@ -155,7 +155,8 @@ void ffi_prep_args_SYSV(extended_cif *ecif, unsigned *const stack)
|
||||
|
||||
if (fparg_count >= NUM_FPR_ARG_REGISTERS)
|
||||
{
|
||||
if (intarg_count%2 != 0)
|
||||
if (intarg_count >= NUM_GPR_ARG_REGISTERS
|
||||
&& intarg_count % 2 != 0)
|
||||
{
|
||||
intarg_count++;
|
||||
next_arg++;
|
||||
@ -575,7 +576,8 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
|
||||
/* If this FP arg is going on the stack, it must be
|
||||
8-byte-aligned. */
|
||||
if (fparg_count > NUM_FPR_ARG_REGISTERS
|
||||
&& intarg_count%2 != 0)
|
||||
&& intarg_count >= NUM_GPR_ARG_REGISTERS
|
||||
&& intarg_count % 2 != 0)
|
||||
intarg_count++;
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user