David Edelsohn wrote: > On Fri, Mar 25, 2011 at 11:09 AM, Alan Modra <amo...@gmail.com> wrote: > > > Much of the following patch is based on Michael Meissner's support for > > vector reloads. =A0The predicates.md change teaches the predicate used > > by the "Y" constraint to check cmodel medium addresses in case such > > addresses should ever be generated with invalid offsets. > > Bootstrapped and regression tested powerpc64-linux. OK mainline? > > > > =A0 =A0 =A0 =A0* config/rs6000/predicates.md (word_offset_memref_op): Han= > dle > > =A0 =A0 =A0 =A0cmodel medium addresses. > > =A0 =A0 =A0 =A0* config/rs6000/rs6000.c (rs6000_secondary_reload): Handle= > misaligned > > =A0 =A0 =A0 =A064-bit gpr loads and stores. > > =A0 =A0 =A0 =A0(rs6000_secondary_reload_ppc64): New function. > > =A0 =A0 =A0 =A0* config/rs6000/rs6000-protos.h: Declare it. > > =A0 =A0 =A0 =A0* config/rs6000/rs6000.md (reload_di_store, reload_di_load= > ): New. > > Okay with me. > > Want to give Uli a heads up in case he has any additional comments.
Looks good to me, except ... + mem = change_address (mem, VOIDmode, scratch_or_premodify); Maybe replace_equiv_address instead, to avoid losing the memory attribute information (alignment, alias set, ...)? Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com