diff options
| author | Richard Henderson <rth@redhat.com> | 2004-08-18 14:08:35 -0700 |
|---|---|---|
| committer | Richard Henderson <rth@gcc.gnu.org> | 2004-08-18 14:08:35 -0700 |
| commit | 542a8afa8a40e0714720ce168046a3880a44d311 (patch) | |
| tree | 8e12ef5e22b0f9baabc992a10805a642c7d0bec6 /gcc/config/darwin.c | |
| parent | 0516f6fe82641daf7c1ac8812998049ac591201e (diff) | |
| download | gcc-542a8afa8a40e0714720ce168046a3880a44d311.zip gcc-542a8afa8a40e0714720ce168046a3880a44d311.tar.gz gcc-542a8afa8a40e0714720ce168046a3880a44d311.tar.bz2 | |
emit-rtl.c (gen_const_mem): New.
* emit-rtl.c (gen_const_mem): New.
* rtl.h (gen_const_mem): Declare.
* expr.c (do_tablejump): Use it.
* varasm.c (force_const_mem): Likewise.
* config/darwin.c (machopic_indirect_data_reference): Likewise.
(machopic_legitimize_pic_address): Likewise.
* config/arm/arm.c (legitimize_pic_address): Likewise.
* config/i386/i386.c (legitimize_pic_address): Likewise.
(legitimize_tls_address): Likewise.
* config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
* config/ia64/ia64.md (load_fptr): Likewise.
* config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
* config/pa/pa.c (legitimize_pic_address): Likewise.
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
(rs6000_emit_move): Likewise.
* config/s390/s390.c (legitimize_pic_address): Likewise.
(legitimize_tls_address): Likewise.
* config/s390/s390.md (casesi): Likewise.
* config/sh/sh.c (sh_reorg): Likewise.
* config/sparc/sparc.c (legitimize_pic_address): Likewise.
* config/v850/v850.md (casesi): Likewise.
* config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
* config/sh/sh.c (prepare_move_operands): Remove incorrect
use of MEM_READONLY_P.
From-SVN: r86207
Diffstat (limited to 'gcc/config/darwin.c')
| -rw-r--r-- | gcc/config/darwin.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 7b6a524..579daf8 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -386,10 +386,9 @@ machopic_indirect_data_reference (rtx orig, rtx reg) (Pmode, machopic_indirection_name (orig, /*stub_p=*/false))); - SYMBOL_REF_DECL (ptr_ref) = SYMBOL_REF_DECL (orig); + SYMBOL_REF_DECL (ptr_ref) = SYMBOL_REF_DECL (orig); - ptr_ref = gen_rtx_MEM (Pmode, ptr_ref); - MEM_READONLY_P (ptr_ref) = 1; + ptr_ref = gen_const_mem (Pmode, ptr_ref); return ptr_ref; } @@ -474,6 +473,7 @@ machopic_indirect_call_target (rtx target) XEXP (target, 0) = gen_rtx_SYMBOL_REF (mode, stub_name); SYMBOL_REF_DECL (XEXP (target, 0)) = decl; MEM_READONLY_P (target) = 1; + MEM_NOTRAP_P (target) = 1; } return target; @@ -536,9 +536,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) emit_insn (mode == DImode ? gen_macho_high_di (temp_reg, asym) : gen_macho_high (temp_reg, asym)); - mem = gen_rtx_MEM (GET_MODE (orig), - gen_rtx_LO_SUM (Pmode, temp_reg, asym)); - MEM_READONLY_P (mem) = 1; + mem = gen_const_mem (GET_MODE (orig), + gen_rtx_LO_SUM (Pmode, temp_reg, asym)); emit_insn (gen_rtx_SET (VOIDmode, reg, mem)); #else /* Some other CPU -- WriteMe! but right now there are no other platform that can use dynamic-no-pic */ @@ -568,10 +567,9 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) emit_insn (gen_rtx_SET (Pmode, hi_sum_reg, sum)); - mem = gen_rtx_MEM (GET_MODE (orig), - gen_rtx_LO_SUM (Pmode, - hi_sum_reg, offset)); - MEM_READONLY_P (mem) = 1; + mem = gen_const_mem (GET_MODE (orig), + gen_rtx_LO_SUM (Pmode, + hi_sum_reg, offset)); insn = emit_insn (gen_rtx_SET (VOIDmode, reg, mem)); REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, pic_ref, REG_NOTES (insn)); @@ -618,8 +616,7 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) #if !defined (TARGET_TOC) emit_move_insn (reg, pic_ref); - pic_ref = gen_rtx_MEM (GET_MODE (orig), reg); - MEM_READONLY_P (pic_ref) = 1; + pic_ref = gen_const_mem (GET_MODE (orig), reg); #endif } else |
