On 11/06/2017 07:53 AM, Richard Sandiford wrote: >>> 2017-09-18 Richard Sandiford <richard.sandif...@linaro.org> >>> Alan Hayward <alan.hayw...@arm.com> >>> David Sherwood <david.sherw...@arm.com> >>> >>> gcc/ >>> * doc/rtl.texi: Rewrite the subreg rules so that they partition >>> the inner register into REGMODE_NATURAL_SIZE bytes rather than >>> UNITS_PER_WORD bytes. >>> * emit-rtl.c (validate_subreg): Divide subregs into blocks >>> based on REGMODE_NATURAL_SIZE of the inner mode. >>> (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and >>> !SCALAR_FLOAT_MODE_P cases. Use REGMODE_NATURAL_SIZE for the latter. >>> * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test >>> whether something is likely to occupy more than one register. >> OK. Though I must admit, I expected a larger change after reading the >> intro. > > Heh. As it turned out I did find one more place that needed to change > (lowpart_bit_field_p). Maybe there'll be more -- e.g. it'd probably > make sense to make lower-subreg.c split based on this instead of > UNITS_PER_WORD. > > How about this? Tested as before. > > Thanks, > Richard > > > 2017-11-06 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > gcc/ > * doc/rtl.texi: Rewrite the subreg rules so that they partition > the inner register into REGMODE_NATURAL_SIZE bytes rather than > UNITS_PER_WORD bytes. > * emit-rtl.c (validate_subreg): Divide subregs into blocks > based on REGMODE_NATURAL_SIZE of the inner mode. > (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and > !SCALAR_FLOAT_MODE_P cases. Use REGMODE_NATURAL_SIZE for the latter. > * expmed.c (lowpart_bit_field_p): Divide the value up into > chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD. > * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test > whether something is likely to occupy more than one register. OK. I still expect more fallout though :-)
Jeff