summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-05-03 11:52:38 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-05-03 11:52:38 +0000
commit1a860023ea53c8cadddfadbcdf35bd440d2e2164 (patch)
treedc3bbe7405a10d42294c4caae5ec270171109bcf /gcc/emit-rtl.c
parent3efe00adc6f0716ab5f8ba1d4107fcad03899c48 (diff)
downloadgcc-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/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 9b57aeab47a..2e073b5da1f 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2450,6 +2450,7 @@ verify_rtx_sharing (rtx orig, rtx insn)
case CODE_LABEL:
case PC:
case CC0:
+ case RETURN:
case SCRATCH:
return;
/* SCRATCH must be shared because they represent distinct values. */
@@ -5416,8 +5417,9 @@ init_emit_regs (void)
init_reg_modes_target ();
/* Assign register numbers to the globally defined register rtx. */
- pc_rtx = gen_rtx_PC (VOIDmode);
- cc0_rtx = gen_rtx_CC0 (VOIDmode);
+ pc_rtx = gen_rtx_fmt_ (PC, VOIDmode);
+ ret_rtx = gen_rtx_fmt_ (RETURN, VOIDmode);
+ cc0_rtx = gen_rtx_fmt_ (CC0, VOIDmode);
stack_pointer_rtx = gen_raw_REG (Pmode, STACK_POINTER_REGNUM);
frame_pointer_rtx = gen_raw_REG (Pmode, FRAME_POINTER_REGNUM);
hard_frame_pointer_rtx = gen_raw_REG (Pmode, HARD_FRAME_POINTER_REGNUM);