Commit 265a000d by Iain Sandoe

fix libobjc ppc64 abi for darwin.

libobjc:

	* encoding.c: Add TARGET_ALIGN_NATURAL definition for m64 powerpc darwin.
	Add a comment as to why, update FIXME comments.

testsuite:

	* objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c:
	Update XFAILs.

From-SVN: r163906
parent 324d3f45
2010-09-06 Iain Sandoe <iains@gcc.gnu.org>
* objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c:
Update XFAILs.
2010-09-06 Alexander Monakov <amonakov@ispras.ru> 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/44919 PR rtl-optimization/44919
......
...@@ -236,7 +236,7 @@ switchfiles (int fields) ...@@ -236,7 +236,7 @@ switchfiles (int fields)
|| filecnt == 22) || filecnt == 22)
{ {
fprintf (outfile, "\ fprintf (outfile, "\
/* { dg-do run { xfail powerpc*-*-darwin* powerpc*-*-aix* } } */\n\ /* { dg-do run { xfail { { \"powerpc*-*-darwin*\" && { ! lp64 } } || { \"powerpc*-*-aix*\" } } } } */\n\
/* { dg-options \"-w -I%s -fgnu-runtime\" } */\n", srcdir); /* { dg-options \"-w -I%s -fgnu-runtime\" } */\n", srcdir);
} }
/* FIXME: these should not be xfailed but they are because /* FIXME: these should not be xfailed but they are because
......
2010-09-06 Iain Sandoe <iains@gcc.gnu.org>
* encoding.c: Add TARGET_ALIGN_NATURAL definition for m64 powerpc darwin.
Add a comment as to why, update FIXME comments.
2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com> 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
* makefile.dos: Obsolete file removed. * makefile.dos: Obsolete file removed.
......
...@@ -105,13 +105,24 @@ static int __attribute__ ((__unused__)) not_target_flags = 0; ...@@ -105,13 +105,24 @@ static int __attribute__ ((__unused__)) not_target_flags = 0;
#undef ALTIVEC_VECTOR_MODE #undef ALTIVEC_VECTOR_MODE
#define ALTIVEC_VECTOR_MODE(MODE) (0) #define ALTIVEC_VECTOR_MODE(MODE) (0)
/* Furthermore, some (powerpc) targets also use TARGET_ALIGN_NATURAL
in their alignment macros. Currently[4.5/6], rs6000.h points this
to a static variable, initialized by target overrides. This is reset
in linux64.h but not in darwin64.h. The macro is not used by *86*. */
#if __MACH__ && __LP64__
# undef TARGET_ALIGN_NATURAL
# define TARGET_ALIGN_NATURAL 1
#endif
/* FIXME: while this file has no business including tm.h, this /* FIXME: while this file has no business including tm.h, this
definitely has no business defining this macro but it definitely has no business defining this macro but it
is only way around without really rewritting this file, is only way around without really rewritting this file,
should look after the branch of 3.4 to fix this. */ should look after the branch of 3.4 to fix this.
FIXME1: It's also out of date, darwin no longer has the same alignment
'special' as aix - this is probably the origin of the m32 breakage. */
#define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED) \ #define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED) \
({ const char *_fields = TYPE_FIELDS (STRUCT); \ ({ const char *_fields = TYPE_FIELDS (STRUCT); \
((_fields != 0 \ ((_fields != 0 \
&& TYPE_MODE (strip_array_types (TREE_TYPE (_fields))) == DFmode) \ && TYPE_MODE (strip_array_types (TREE_TYPE (_fields))) == DFmode) \
? MAX (MAX (COMPUTED, SPECIFIED), 64) \ ? MAX (MAX (COMPUTED, SPECIFIED), 64) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment