rs6000, update Darwin call handling to latest scheme.
authorIain Sandoe <iain@sandoe.co.uk>
Wed, 12 Dec 2018 08:47:16 +0000 (08:47 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Wed, 12 Dec 2018 08:47:16 +0000 (08:47 +0000)
commitaa3a2eca42d9bcebdaa2441e050df8b5bc24e4fa
tree335db18cac33323d402d0de8b75c469160970324
parent13de99bc7d085125e614ffdb75d486e9a7a8a48f
rs6000, update Darwin call handling to latest scheme.

This patch mormalises Darwin's call handling to match the scheme
recently introduced and gives it target-specific call expanders.

2018-12-12  Iain Sandoe  <iain@sandoe.co.uk>

* config/rs6000/rs6000-protos.h (rs6000_call_darwin): New.
(rs6000_sibcall_darwin): New. (macho_call_template): Remove.
* config/rs6000/rs6000.c (get_prev_label): Forward declaration.
(rs6000_call_template_1): Handle Darwin.
(macho_call_template): Remove.
(rs6000_call_sysv): Remove handling for Darwin.
(rs6000_call_darwin_1, rs6000_call_darwin): New
(rs6000_sibcall_darwin): New.
* config/rs6000/rs6000.md (define_expand “call”): Handle Darwin
with its own expander. (define_expand “call_value”): Likewise.
(define_expand “sibcall”): Likewise.
(define_expand “sibcall_value”): Likewise.
(call_nonlocal_sysv): Remove Darwin special-casing.
(call_value_nonlocal_sysv): Likewise.

From-SVN: r267048
gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md