Bug in egcs-1.1 (reduced testcase included)(PPC)

David Edelsohn dje@watson.ibm.com
Sun Aug 16 22:40:00 GMT 1998


	I think that LIMIT_RELOAD_CLASS is the right approach.  rs6000.h
already uses PREFERRED_RELOAD_CLASS but has not yet definied
LIMIT_RELOAD_CLASS.  I would suggest something like:

#define LIMIT_RELOAD_CLASS(MODE,CLASS) \
  (TARGET_ELF && (MODE) == SImode \
   && ((CLASS) == ALL_REGS || (CLASS) == GENERAL_REGS \
       || (CLASS) == NON_SPECIAL_REGS || (CLASS) == SPEC_OR_GEN_REGS \
       || (CLASS) == NON_FLOAT_REGS) \
   ? BASE_REGS : (CLASS))

if I understand this macro correctly.

	Setting up SECONDARY_RELOADS for this case is a mistake, IMO.  It
is unfortunate that GCC cannot go back and figure out that reload's choice
of registers was bad for the constraint so that we don't need to restrict
r0 throughou, but thems are the breaks.

David




More information about the Gcc-patches mailing list