Hi! On Sat, Mar 28, 2020 at 09:27:09AM +1030, Alan Modra wrote: > The only difference > besides mode between call_local32 and call_local64, dating back to > 1998 commit a260abc996, is that call_local64 has TARGET_64BIT in the > predicate. That alone doesn't seem reason enough to need separate > patterns; The P mode iterator selects DI on TARGET_64BIT anyway.
Yes, these patterns could be merged before this patch, already. This patch would have been much easier to read / check if it had been a short series, btw (with those independent cleanups done first). But it looks fine. Okay for trunk. Thanks! Segher > * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern. > (rs6000_indirect_call_template_1): Adjust to suit. > * config/rs6000/rs6000.md (call_local): Merge call_local32, > call_local64, and call_local_aix. > (call_value_local): Simlarly. > (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit, > and disable pattern when CALL_LONG. > (call_indirect_aix, call_value_indirect_aix): Adjust rtl. > (call_indirect_elfv2, call_indirect_pcrel): Likewise. > (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise.