Hi Alan,

On Tue, Nov 13, 2018 at 11:19:03PM +1030, Alan Modra wrote:
> Like the last patch for external calls, now handle most assembly code
> for indirect calls in one place.  The patch also merges some insns,
> correcting some !rs6000_speculate_indirect_jumps cases branching to
> LR, which don't require a speculation barrier.

Okay for trunk.  Thanks!


Segher


>       * config/rs6000/rs6000-protos.h (rs6000_indirect_call_template),
>       (rs6000_indirect_sibcall_template): Declare.
>       * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
>       (rs6000_indirect_call_template, rs6000_indirect_sibcall_template):
>       New functions.
>       * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv),
>       (call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv),
>       (call_indirect_aix, call_value_indirect_aix): Use
>       rs6000_indirect_call_template and rs6000_indirect_sibcall_template.
>       call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and
>       handle both speculation and non-speculation cases.
>       (call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete.
>       (call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete.

Reply via email to