[RFC Patch], PowerPC memory support pre-gcc9, patch #2

Segher Boessenkool segher@kernel.crashing.org
Tue Mar 20 13:32:00 GMT 2018


On Thu, Mar 15, 2018 at 01:04:30PM -0400, Michael Meissner wrote:
> This is patch #2 of my series for improving the PowerPC internal memory
> support.  It assumes patch #1 has been applied.
> 
> This patch moves the rs6000_move_128bit function from rs6000.c to a new file,
> rs6000-output.c.
> 
> The third patch will create a rs6000_move_64bit function and change both 32-bit
> and 64-bit movdi to call it, instead of having all of the instructions be
> literals.  I will also likely add improvements to setting the reg_addr address
> masks for offsetable addresses.
> 
> The fourth patch will like move movdd and movdf to call rs6000_move_64bit as
> well.
> 
> I tested this on a little endian power8 system and there were no regressions.
> 
> 2018-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
> 
> 	* config.gcc (powerpc*-*-*): Add rs6000-output.o to extra_objs.
> 	* config/rs6000/t-rs6000 (rs6000-output.o): Add build rule.
> 	* config/rs6000/rs6000.c (rs6000_output_move_128bit): Move to
> 	rs6000-output.c.

I am not happy at all with this new file, and it won't even work as far
as I see (for multi-alternative define_insn's; splitting the strings to
a different file than the constraints and attributes is asking for
trouble, better keep it all together).

Files should bundle together code that conceptually belongs together,
not some arbitrary split ("these routine return strings that are
eventually output from the compiler as instructions").


Segher



More information about the Gcc-patches mailing list