Message ID | 4ED8FB5F.7070909@oarcorp.com |
---|---|
State | New |
Headers | show |
On Fri, 2 Dec 2011, Joel Sherrill wrote: > 2011-12-02 Joel Sherrill <joel.sherrill@oarcorp.com> > > * config/rs6000/rtems.h: Switch to using global_options_set > in SUBSUBTARGET_OVERRIDE_OPTIONS. Is it deliberate that you are removing the first part of each "if" condition (thus, no longer checking TARGET_HARD_FLOAT before setting rs6000_float_gprs, no longer checking rs6000_float_gprs before setting rs6000_spe, etc.)?
On 12/02/2011 10:38 AM, Joseph S. Myers wrote: > On Fri, 2 Dec 2011, Joel Sherrill wrote: > >> 2011-12-02 Joel Sherrill<joel.sherrill@oarcorp.com> >> >> * config/rs6000/rtems.h: Switch to using global_options_set >> in SUBSUBTARGET_OVERRIDE_OPTIONS. > Is it deliberate that you are removing the first part of each "if" > condition (thus, no longer checking TARGET_HARD_FLOAT before setting > rs6000_float_gprs, no longer checking rs6000_float_gprs before setting > rs6000_spe, etc.)? > I patterned this after what was in other files. It is done this way everywhere it is referenced. Should all of them be changed? $ grep global_options_set.x_rs6000_float_gprs * e500-double.h: if (!global_options_set.x_rs6000_float_gprs) \ eabispe.h: if (!global_options_set.x_rs6000_float_gprs) \ linuxspe.h: if (!global_options_set.x_rs6000_float_gprs) \ rs6000.c: if (!global_options_set.x_rs6000_float_gprs) rtems.h: if (!global_options_set.x_rs6000_float_gprs) \
On Fri, 2 Dec 2011, Joel Sherrill wrote: > On 12/02/2011 10:38 AM, Joseph S. Myers wrote: > > On Fri, 2 Dec 2011, Joel Sherrill wrote: > > > > > 2011-12-02 Joel Sherrill<joel.sherrill@oarcorp.com> > > > > > > * config/rs6000/rtems.h: Switch to using global_options_set > > > in SUBSUBTARGET_OVERRIDE_OPTIONS. > > Is it deliberate that you are removing the first part of each "if" > > condition (thus, no longer checking TARGET_HARD_FLOAT before setting > > rs6000_float_gprs, no longer checking rs6000_float_gprs before setting > > rs6000_spe, etc.)? > > > I patterned this after what was in other files. > It is done this way everywhere it is referenced. > > Should all of them be changed? Not necessarily. I described how I think this sort of logic should work in <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49854>. I think that means something closer to the other headers than to rtems.h - but I don't think a semantic change should be mixed with a change that's just supposed to get things to build again.
Index: gcc/config/rs6000/rtems.h =================================================================== --- gcc/config/rs6000/rtems.h (revision 181924) +++ gcc/config/rs6000/rtems.h (working copy) @@ -57,15 +57,15 @@ { "cpp_os_rtems", CPP_OS_RTEMS_SPEC } #undef SUBSUBTARGET_OVERRIDE_OPTIONS -#define SUBSUBTARGET_OVERRIDE_OPTIONS \ - do { \ - if (TARGET_E500) \ - { \ - if (TARGET_HARD_FLOAT && !rs6000_explicit_options.float_gprs) \ - rs6000_float_gprs = 1; \ - if (rs6000_float_gprs != 0 && !rs6000_explicit_options.spe) \ - rs6000_spe = 1; \ - if (rs6000_spe && !rs6000_explicit_options.spe_abi) \ - rs6000_spe_abi = 1; \ - } \ +#define SUBSUBTARGET_OVERRIDE_OPTIONS \ + do { \ + if (TARGET_E500) \ + { \ + if (!global_options_set.x_rs6000_float_gprs) \ + rs6000_float_gprs = 1; \ + if (!global_options_set.x_rs6000_spe) \ + rs6000_spe = 1; \ + if (!global_options_set.x_rs6000_spe_abi) \ + rs6000_spe_abi = 1; \ + } \ } while(0)