http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49854
Summary: Clean up SPE/e500 option handling Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: js...@gcc.gnu.org Target: powerpc*-*-* As described at <http://gcc.gnu.org/ml/gcc-patches/2010-08/msg01667.html>, the handling of SPE/e500 options should be cleaned up as follows: * Enable rs6000_spe, rs6000_spe_abi, rs6000_float_gprs based on information in the processor_target_table used to enable other features based on the CPU, or failing that based on direct comparisons with PROCESSOR_PPC8540 and PROCESSOR_PPC8548 as done for various other processor peculiarities in rs6000_override_options. Don't limit this to vxworks.h; do it for all targets. * If rs6000_spe is set while TARGET_SPE is 0, or similarly for the other settings, give an error that the options given are not supported in this compiler configuration (it's been built without e500 support). (You should do it in rs6000_option_override_internal after things have been defaulted from the CPU.) * Remove various special settings of defaults in eabispe.h and linuxspe.h and e500-double.h, and the "For the powerpc-eabispe configuration, we set all these by default" code in rs6000_override_options. Instead, config.gcc should enable --with-cpu=8540 / --with-cpu=8548 given one of the *spe targets, selecting which of those options to enable based on whether --enable-e500-double is passed - as well as ensuring e500.h is in tm_file so the e500 support is built into the compiler, of course. Then the logic to default things from the CPU would do the rest. * Remove the TARGET_E500 macro. Everything using it should check either features or specific PROCESSOR_* settings.