On Tue, Mar 20, 2018 at 08:30:57AM -0500, Segher Boessenkool wrote: > 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 <meiss...@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").
I was eventually planning to move the other functions that split insns and output the strings there. But I can keep it in rs6000.c if desired. I was just trying to keep the mechanical changes down, rather than move everything all at once. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797