aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-11-29 15:13:21 +1030
committerAlan Modra <amodra@gcc.gnu.org>2018-11-29 15:13:21 +1030
commitce83eeda066824074e56fbecdfcc5dd23fac6486 (patch)
tree8707ec139df15a2a40d15143b861c4d580e5109d /gcc/alias.c
parent75a0b80599ca4326da8a203e042cb9db6c27ab08 (diff)
downloadgcc-ce83eeda066824074e56fbecdfcc5dd23fac6486.zip
gcc-ce83eeda066824074e56fbecdfcc5dd23fac6486.tar.gz
gcc-ce83eeda066824074e56fbecdfcc5dd23fac6486.tar.bz2
[RS6000] rs6000_indirect_call_template
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. * 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. From-SVN: r266601
Diffstat (limited to 'gcc/alias.c')
0 files changed, 0 insertions, 0 deletions