public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* fix va-arg-22 and 931104-12 on powerpc-darwin
@ 2004-10-25  2:27 Geoffrey Keating
  2004-10-25  3:40 ` Andrew Pinski
  2004-10-25  8:49 ` Andreas Tobler
  0 siblings, 2 replies; 3+ messages in thread
From: Geoffrey Keating @ 2004-10-25  2:27 UTC (permalink / raw)
  To: gcc-patches


The varargs routines were doing the right thing, and the right value
was on the stack, but the wrong value was in register.

This does change the ABI on Darwin!  (It changes it back to what GCC
3.3 used to do.)

Bootstrapped & tested on powerpc-darwin.

===File ~/patches/gcc-darwin-varargpadding.patch============
2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>

	* config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.

Index: config/rs6000/darwin.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/darwin.h,v
retrieving revision 1.65
diff -u -p -r1.65 darwin.h
--- config/rs6000/darwin.h	14 Oct 2004 22:30:42 -0000	1.65
+++ config/rs6000/darwin.h	24 Oct 2004 22:25:43 -0000
@@ -352,6 +352,12 @@ do {									\
    ? MAX (MAX ((COMPUTED), (SPECIFIED)), 128)          			 \
    : MAX ((COMPUTED), (SPECIFIED)))
 
+/* Specify padding for the last element of a block move between
+   registers and memory.  FIRST is nonzero if this is the only
+   element.  */
+#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
+  (!(FIRST) ? upward : FUNCTION_ARG_PADDING (MODE, TYPE))
+
 /* XXX: Darwin supports neither .quad, or .llong, but it also doesn't
    support 64 bit PowerPC either, so this just keeps things happy.  */
 #define DOUBLE_INT_ASM_OP "\t.quad\t"
============================================================

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: fix va-arg-22 and 931104-12 on powerpc-darwin
  2004-10-25  2:27 fix va-arg-22 and 931104-12 on powerpc-darwin Geoffrey Keating
@ 2004-10-25  3:40 ` Andrew Pinski
  2004-10-25  8:49 ` Andreas Tobler
  1 sibling, 0 replies; 3+ messages in thread
From: Andrew Pinski @ 2004-10-25  3:40 UTC (permalink / raw)
  To: geoffk; +Cc: gcc-patches


On Oct 24, 2004, at 10:01 PM, Geoffrey Keating wrote:

>
> The varargs routines were doing the right thing, and the right value
> was on the stack, but the wrong value was in register.
>
> This does change the ABI on Darwin!  (It changes it back to what GCC
> 3.3 used to do.)
>
> Bootstrapped & tested on powerpc-darwin.

Thanks for fixing this, I see that we now have only one testsuite
regression still left, that is not xfailed "debug/dwarf2/dwarf-die7.c".
This was not noticed on powerpc-darwin until after darwin enabled 
dwarf-2
debugging support so it will not show up on the regression tester at 
all.

Thanks,
Andrew Pinski

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: fix va-arg-22 and 931104-12 on powerpc-darwin
  2004-10-25  2:27 fix va-arg-22 and 931104-12 on powerpc-darwin Geoffrey Keating
  2004-10-25  3:40 ` Andrew Pinski
@ 2004-10-25  8:49 ` Andreas Tobler
  1 sibling, 0 replies; 3+ messages in thread
From: Andreas Tobler @ 2004-10-25  8:49 UTC (permalink / raw)
  To: geoffk; +Cc: gcc-patches

Geoffrey Keating wrote:

> The varargs routines were doing the right thing, and the right value
> was on the stack, but the wrong value was in register.
> 
> This does change the ABI on Darwin!  (It changes it back to what GCC
> 3.3 used to do.)

Thanks, I can confirm that libffi is down to zero failures.

Andreas

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-10-25  8:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-25  2:27 fix va-arg-22 and 931104-12 on powerpc-darwin Geoffrey Keating
2004-10-25  3:40 ` Andrew Pinski
2004-10-25  8:49 ` Andreas Tobler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).