This is the mail archive of the gcc-patches@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]

Re: [RFA] PowerPC e500mc core support


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


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