Hi! As discussed before, here is a series to split powerpcspe from the rs6000 port. This series does not yet make any real changes to either port: it is a copy of rs6000/ to powerpcspe/, with some renames and some necessary changes to the port file, and slightly more involved changes to config.gcc .
This was tested on powerpc64-linux {-m32,-m64}, and it was build-tested on powerpc-linux-gnuspe (and the resulting compiler was tested to be functional: it can build various Linux defconfigs for SPE systems). I have tried to see how much the powerpcspe port can be simplified after this, and found it can lose 80% of the code without big problems. You may however not want all that, for example, I removed all 64-bit support in that test. Getting rid of all VMX/VSX support is a big part of it already, as is removing "classic" floating point (and paired single, and xilinx fpu, and all newer ISA features, etc.) For the rs6000 port the low-hanging fruits are much more modest, only 5% or a bit more; but in pretty gnarly code. For example, some current pain points are the SPE ABI (for separate shrink-wrapping), and how isel is handled. This won't be the final series... I have a few questions: -- This uses powerpc-*-rtems*spe*; do we want powerpcspe-*-rtems* instead? Or both? -- This uses powerpc-wrs-vxworksspe; do we want powerpcspe-wrs-vxworks instead? Both? What about the ae and mils variants? -- Does powerpc*-*-freebsd*spe* exist? -- Does powerpc-*-netbsd*spe* exist? -- Does powerpc-*-eabisim*spe* exist? -- Does powerpcle-*-*spe* exist? Also, testing is needed :-) You can get better testing by removing the rs6000/ directories completely, btw.; otherwise files from rs6000/ can accidentally be picked up instead of the corresponfing file from powerpcspe/, which will currently work because there are no big differences yet, but things will diverge later (and then break). Segher