This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA] PowerPC e500mc core support
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Edmar Wienskoski-RA8797 <edmar at freescale dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 5 May 2008 19:07:35 +0000 (UTC)
- Subject: Re: [RFA] PowerPC e500mc core support
- References: <481F5668.70304@freescale.com>
On Mon, 5 May 2008, Edmar Wienskoski-RA8797 wrote:
> Freescale would like to contribute this patch to gcc. It creates a scheduler
> and proper default flags for the e500mc core.
Could you describe how this has been tested?
You're adding a processor with both ISEL and FPRs, a new combination. If
you're not using a configuration that uses the e500.h header, TARGET_ISEL
is just defined to be 0, so the enabling of ISEL is ineffective. If you
are using this header in your testing, you get the error from
CHECK_E500_OPTIONS that this combination isn't supported. The only reason
not to get that error would be that after you set rs6000_isel there is
code that does
if (TARGET_E500)
{
...
}
else if (rs6000_select[1].string != NULL)
{
...
if (!rs6000_explicit_options.isel)
rs6000_isel = 0;
}
and so rs6000_isel would be reset again - and this comes before the
CHECK_E500_OPTIONS. (The new processor doesn't fall within the existing
TARGET_E500 definition; whether it should depends on how it relates to the
few uses of this macro for the presence of such things as string
instructions and lwsync.)
So you need to make sure you test for a configuration where ISEL is
supported at all (one using e500.h); remove the error for the ISEL, FPRs
combination; remove the disabling of ISEL for explicit use of this
processor; and fix any ICEs arising from the combination. (The error was
added because of very simple code producing an ICE with the combination in
the past, when the combination arose through user error.)
--
Joseph S. Myers
joseph@codesourcery.com