diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2019-09-28 19:32:31 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2019-09-28 19:32:31 +0000 |
commit | 23cb6f8e0c0b462c13fbc01d5d6777d6b49bfaa7 (patch) | |
tree | 06f769200357c1179cb4e34c6e04e0a1430012ad /gcc/config/darwin.c | |
parent | 60674b3f8aca8f2b41580ce06b44117a9e6ab52e (diff) | |
download | gcc-23cb6f8e0c0b462c13fbc01d5d6777d6b49bfaa7.zip gcc-23cb6f8e0c0b462c13fbc01d5d6777d6b49bfaa7.tar.gz gcc-23cb6f8e0c0b462c13fbc01d5d6777d6b49bfaa7.tar.bz2 |
[Darwin, PPC, Mode Iterators 4/n] Update macho_high.
Drop the expander and use a mode iterator on the define_insn
for @macho_high_<mode> instead.
gcc/ChangeLog:
2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (gen_macho_high): Amend to include the mode
argument.
(machopic_indirect_data_reference): Amend gen_macho_high call
to include mode argument.
(machopic_legitimize_pic_address): Likewise.
* config/rs6000/rs6000.c (rs6000_legitimize_address):
* config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
the macho_high expander and two define_insn entries.
From-SVN: r276256
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r-- | gcc/config/darwin.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 3e4bbff..1f72c07 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see #include "toplev.h" #include "lto-section-names.h" #include "intl.h" +#include "optabs.h" /* Darwin supports a feature called fix-and-continue, which is used for rapid turn around debugging. When code is compiled with the @@ -108,7 +109,7 @@ section * darwin_sections[NUM_DARWIN_SECTIONS]; /* While we transition to using in-tests instead of ifdef'd code. */ #if !HAVE_lo_sum -#define gen_macho_high(a,b) (a) +#define gen_macho_high(m,a,b) (a) #define gen_macho_low(a,b,c) (a) #endif @@ -654,7 +655,7 @@ machopic_indirect_data_reference (rtx orig, rtx reg) { /* Create a new register for CSE opportunities. */ rtx hi_reg = (!can_create_pseudo_p () ? reg : gen_reg_rtx (Pmode)); - emit_insn (gen_macho_high (hi_reg, orig)); + emit_insn (gen_macho_high (Pmode, hi_reg, orig)); emit_insn (gen_macho_low (reg, hi_reg, orig)); return reg; } @@ -858,7 +859,7 @@ machopic_legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) rtx asym = XEXP (orig, 0); rtx mem; - emit_insn (gen_macho_high (temp_reg, asym)); + emit_insn (gen_macho_high (Pmode, temp_reg, asym)); mem = gen_const_mem (GET_MODE (orig), gen_rtx_LO_SUM (Pmode, temp_reg, copy_rtx (asym))); |