This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/13186] [PPC] Internal compiler error in reload.c
- From: "rsandifo at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Nov 2003 14:03:35 -0000
- Subject: [Bug target/13186] [PPC] Internal compiler error in reload.c
- References: <20031125093259.13186.loki@inf.u-szeged.hu>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rsandifo at gcc dot gnu dot org 2003-11-25 14:03 -------
I think this is a bug in the rs6000 backend, which seems to have
a combination of:
- movdi patterns which provide no constant->FPR alternatives.
- movdi expanders that do nothing with constant->FPR moves,
at least not if !TARGET_POWERPC64.
- a definition of secondary_reload_class which says that constants
can be moved directly into FPRs:
/* Constants, memory, and FP registers can go into FP registers. */
if ((regno == -1 || FP_REGNO_P (regno))
&& (class == FLOAT_REGS || class == NON_SPECIAL_REGS))
return NO_REGS;
I'm not sure what the intended behaviour is, but the attached patch
seems to get past the initial failure. Unfortunately, there's not much
chance of it being right. I guess this should really be handled in the
move expanders somehow.
Richard
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2003-11-25 14:03:34
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13186