summaryrefslogtreecommitdiff
path: root/gcc/config/d30v
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-22 17:38:20 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-22 17:38:20 +0000
commit01d088335cf0543b46b2517eb9e458489d3aff5e (patch)
treeaa3cca8c99ec42939790c778ddf000a1210b5983 /gcc/config/d30v
parent17a8121649b62d1893a5c942bdf0719e766894ed (diff)
downloadgcc-01d088335cf0543b46b2517eb9e458489d3aff5e.tar.gz
* config/arm/arm.h (struct machine_function): Remove ra_rtx.
* config/arm/arm.c (arm_mark_machine_status): Remove ra_rtx. (arm_return_addr): Use get_hard_reg_initial_val et al. * config/d30v/d30v.h (struct machine_function): Remove ra_rtx. * config/d30v/d30v.c (d30v_mark_machine_status): Remove ra_rtx. (d30v_return_addr): Use get_hard_reg_initial_val et al. * config/rs6000/rs6000.h (struct machine_function): Remove ra_rtx. * config/rs6000/rs6000.c (rs6000_override_options): Don't set mark_machine_status. (rs6000_mark_machine_status): Remove. (rs6000_return_addr): Use get_hard_reg_initial_val. (rs6000_ra_ever_killed): Use has_hard_reg_initial_val. * config/v850/v850.h (INIT_EXPANDERS): Delete. * config/v850/v850.c (struct machine_function): Delete. (v850_init_machine_status): Delete. (v850_mark_machine_status): Delete. (v850_free_machine_status): Delete. (v850_return_addr): Use get_hard_reg_initial_val. (v850_init_expanders): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43507 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/d30v')
-rw-r--r--gcc/config/d30v/d30v.c19
-rw-r--r--gcc/config/d30v/d30v.h2
2 files changed, 1 insertions, 20 deletions
diff --git a/gcc/config/d30v/d30v.c b/gcc/config/d30v/d30v.c
index b8f30aa7c5f..8f8f6d20280 100644
--- a/gcc/config/d30v/d30v.c
+++ b/gcc/config/d30v/d30v.c
@@ -3617,7 +3617,6 @@ d30v_mark_machine_status (p)
if (p->machine == NULL)
return;
- ggc_mark_rtx (p->machine->ra_rtx);
ggc_mark_rtx (p->machine->eh_epilogue_sp_ofs);
}
@@ -3655,23 +3654,7 @@ d30v_init_expanders ()
rtx
d30v_return_addr ()
{
- rtx ret;
-
- ret = cfun->machine->ra_rtx;
-
- if (ret == NULL)
- {
- rtx init;
-
- cfun->machine->ra_rtx = ret = gen_reg_rtx (Pmode);
-
- init = gen_rtx (SET, VOIDmode, ret, gen_rtx (REG, Pmode, GPR_LINK));
- push_topmost_sequence ();
- emit_insn_after (init, get_insns ());
- pop_topmost_sequence ();
- }
-
- return ret;
+ return get_hard_reg_initial_val (Pmode, GPR_LINK);
}
/* Called to register all of our global variables with the garbage
diff --git a/gcc/config/d30v/d30v.h b/gcc/config/d30v/d30v.h
index 7ac16e654c1..ca015b6f4d1 100644
--- a/gcc/config/d30v/d30v.h
+++ b/gcc/config/d30v/d30v.h
@@ -2870,8 +2870,6 @@ typedef struct machine_function
{
/* Additionsl stack adjustment in __builtin_eh_throw. */
struct rtx_def * eh_epilogue_sp_ofs;
- /* Records __builtin_return address. */
- struct rtx_def * ra_rtx;
} machine_function;