diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-18 21:08:35 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-18 21:08:35 +0000 |
commit | e265a6da77f2623966ed1a19d1ab6b809ec97fef (patch) | |
tree | 8e12ef5e22b0f9baabc992a10805a642c7d0bec6 /gcc/config/darwin.c | |
parent | 78d140c990f84aa03c72b5f074683bf3f7b6307f (diff) | |
download | gcc-e265a6da77f2623966ed1a19d1ab6b809ec97fef.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86207 138bc75d-0d04-0410-961f-82ee72b054a4
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 7b6a524db8d..579daf876fa 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 |