This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
TARGET_STRING problem on ppc
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: GCC Mailinglist <gcc at gcc dot gnu dot org>
- Date: Tue, 11 Mar 2003 12:22:50 -0800
- Subject: TARGET_STRING problem on ppc
Hi David.
Your patch of:
2002-12-25 David Edelsohn <edelsohn at gnu dot org>
* config/rs6000/rs6000.c (rs6000_override_options): Convert to
tartet_flags_explicit.
* config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET):
Delete.
Compact target_flags bits.
(TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete.
(TARGET_SWITCHES): Delete references to *_SET flags.
is breaking -Os tests on PPC e500 when passing structures as arguments.
There are at least 50 regressions.
The culprit is:
/* If we are optimizing big endian systems for space, use the
load/store
multiple and string instructions. */
if (BYTES_BIG_ENDIAN && optimize_size)
target_flags |= MASK_MULTIPLE | MASK_STRING;
The e500 doesn't have string load/store instructions (though it does
have load/store multiple instructions). Before I kludge a special case
for the e500, is there a reason why MASK_STRING is set regardless of if
the CPU has that capability?
Aldy