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]

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


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