diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-03 11:52:38 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-03 11:52:38 +0000 |
commit | 1a860023ea53c8cadddfadbcdf35bd440d2e2164 (patch) | |
tree | dc3bbe7405a10d42294c4caae5ec270171109bcf /gcc/config/rs6000/rs6000.c | |
parent | 3efe00adc6f0716ab5f8ba1d4107fcad03899c48 (diff) | |
download | gcc-1a860023ea53c8cadddfadbcdf35bd440d2e2164.tar.gz |
* gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
* genemit.c (gen_exp): Handle RETURN.
* emit-rtl.c (verify_rtx_sharing): Likewise.
(init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
* rtl.c (copy_rtx): RETURN is shared.
* rtl.h (enum global_rtl_index): Add GR_RETURN.
(ret_rtx): New.
* jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
* config/s390/s390.c (s390_emit_epilogue): Likewise.
* config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
* config/cris/cris.c (cris_expand_return): Likewise.
* config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
* config/rs6000/rs6000.c (rs6000_make_savres_rtx,
rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
* config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
* config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
Likewise.
* config/v850/v850.c (expand_epilogue): Likewise.
* config/bfin/bfin.c (bfin_expand_call): Likewise.
* config/arm/arm.md (epilogue): Likewise.
* config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
* config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
variable to ret_reg.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173300 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/rs6000.c')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 899699f8aa1..1bf717c6cf7 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -20358,7 +20358,7 @@ rs6000_make_savres_rtx (rs6000_stack_t *info, p = rtvec_alloc ((lr ? 4 : 3) + n_regs); if (!savep && lr) - RTVEC_ELT (p, offset++) = gen_rtx_RETURN (VOIDmode); + RTVEC_ELT (p, offset++) = ret_rtx; RTVEC_ELT (p, offset++) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 65)); @@ -21350,7 +21350,7 @@ rs6000_emit_epilogue (int sibcall) alloc_rname = ggc_strdup (rname); j = 0; - RTVEC_ELT (p, j++) = gen_rtx_RETURN (VOIDmode); + RTVEC_ELT (p, j++) = ret_rtx; RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode, gen_rtx_REG (Pmode, LR_REGNO)); @@ -21966,7 +21966,7 @@ rs6000_emit_epilogue (int sibcall) else p = rtvec_alloc (2); - RTVEC_ELT (p, 0) = gen_rtx_RETURN (VOIDmode); + RTVEC_ELT (p, 0) = ret_rtx; RTVEC_ELT (p, 1) = ((restoring_FPRs_inline || !lr) ? gen_rtx_USE (VOIDmode, gen_rtx_REG (Pmode, 65)) : gen_rtx_CLOBBER (VOIDmode, @@ -22405,7 +22405,7 @@ rs6000_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, gen_rtx_USE (VOIDmode, gen_rtx_REG (SImode, LR_REGNO)), - gen_rtx_RETURN (VOIDmode)))); + ret_rtx))); SIBLING_CALL_P (insn) = 1; emit_barrier (); |