On Mon, Jul 22, 2019 at 03:56:26PM -0500, Segher Boessenkool wrote: > That still needs an explanation: why is this a good thing, why do you > want that change? Sometimes that is obvious of course, but here it is > not. It would be a lot more obvious if there was more context.
The trouble is to get that much context really relies on about several additional patches to get to the functions in particular that should be split out. As I implement stuff, I find myself neeting/wanting to access the stuff in reg_addr in other files (predicates.md, and the new file rs6000-prefix.c). In patch #9 in particular, I added yet another data stucture that was parallel to the information in reg_addr (originally called rs6000_offset_format, but based on your comments is now rs6000_insn_form for instruction format). Then I needed functions that given were a hard register and the move insn and it determined what instruction format (D/DS/DQ) was used so that we can decide whether the instruction is traditional or prefixed. I originally wrote with a lot of code to do that mapping, but once I added the DS_OFFSET mask and about 10 lines of code to setup DS_OFFSET, it became much simpler. But for now, I think I will just not worry about making rs6000.c smaller, and instead do the main work there rather than trying to split it out. I was hoping the split would be quick, and it doesn't seem to be. Splitting it out is somewhat of a side issue to me, and it looks like it is impeding getting the rest of the patches submitted. But it would be nice to have that information available to the other .c files as well as the .md files. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797