diff options
author | Anatoly Sokolov <aesok@post.ru> | 2009-06-30 02:51:04 +0400 |
---|---|---|
committer | Anatoly Sokolov <aesok@gcc.gnu.org> | 2009-06-30 02:51:04 +0400 |
commit | b52b1749191efa8f23067b86acddd4450ddbd543 (patch) | |
tree | 0f2937085f496ccc9d16a12f644463d2113bf657 /gcc/config/mips | |
parent | 78bf7bd0fc9a82aff98874e0ff3e12a329f920ab (diff) | |
download | gcc-b52b1749191efa8f23067b86acddd4450ddbd543.zip gcc-b52b1749191efa8f23067b86acddd4450ddbd543.tar.gz gcc-b52b1749191efa8f23067b86acddd4450ddbd543.tar.bz2 |
target.h (struct gcc_target): Add frame_pointer_required field.
* target.h (struct gcc_target): Add frame_pointer_required field.
* target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
(TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
* ira.c (setup_eliminable_regset): Use frame_pointer_required target
hook.
* reload1.c (update_eliminables): (Ditto.).
* gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
* doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
(INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
* config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
(arm_frame_pointer_required): New function.
* config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(avr_frame_pointer_required_p): Declare as static.
* config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
* config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
(bfin_frame_pointer_required): Make as static, change return type
to bool.
* config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
* config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(cris_frame_pointer_required): New function.
* config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(fr30_frame_pointer_required): New function.
* config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
(frv_frame_pointer_required): Make as static, change return type
to bool.
* config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
* config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(ix86_frame_pointer_required): Make as static, change return type to
bool.
* config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
* config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
* config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(mips_frame_pointer_required): Make as static.
* config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(mmix_frame_pointer_required): Mew function.
* config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
* config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/sh/sh.h (CAN_ELIMINATE): Remove macro.
* config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
(CAN_ELIMINATE): Redefine.
* config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
(sparc_frame_pointer_required): New function.
(sparc_can_eliminate): New function.
* config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
* config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
* config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
* config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
(xtensa_frame_pointer_required): Make as static, change return type
to bool.
* config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
Remove.
From-SVN: r149065
Diffstat (limited to 'gcc/config/mips')
-rw-r--r-- | gcc/config/mips/mips-protos.h | 3 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 7 | ||||
-rw-r--r-- | gcc/config/mips/mips.h | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/gcc/config/mips/mips-protos.h b/gcc/config/mips/mips-protos.h index bbae18a..d5d6eee 100644 --- a/gcc/config/mips/mips-protos.h +++ b/gcc/config/mips/mips-protos.h @@ -1,6 +1,6 @@ /* Prototypes of target machine for GNU compiler. MIPS version. Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2001, 2002, 2003, 2004, 2005, 2007, 2008 + 1999, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. Contributed by A. Lichnewsky (lich@inria.inria.fr). Changed by Michael Meissner (meissner@osf.org). @@ -272,7 +272,6 @@ extern void mips_finish_declare_object (FILE *, tree, int, int); extern bool mips_small_data_pattern_p (rtx); extern rtx mips_rewrite_small_data (rtx); -extern bool mips_frame_pointer_required (void); extern HOST_WIDE_INT mips_initial_elimination_offset (int, int); extern rtx mips_return_addr (int, rtx); extern enum mips_loadgp_style mips_current_loadgp_style (void); diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 62753a3..3615892 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -8918,9 +8918,9 @@ mips_current_loadgp_style (void) return TARGET_NEWABI ? LOADGP_NEWABI : LOADGP_OLDABI; } -/* Implement FRAME_POINTER_REQUIRED. */ +/* Implement TARGET_FRAME_POINTER_REQUIRED. */ -bool +static bool mips_frame_pointer_required (void) { /* If the function contains dynamic stack allocations, we need to @@ -14931,6 +14931,9 @@ mips_final_postscan_insn (FILE *file, rtx insn, rtx *opvec, int noperands) #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P mips_legitimate_address_p +#undef TARGET_FRAME_POINTER_REQUIRED +#define TARGET_FRAME_POINTER_REQUIRED mips_frame_pointer_required + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-mips.h" diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 3d2fcac..c8ea605 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -1767,8 +1767,6 @@ enum mips_code_readable_setting { #define HARD_FRAME_POINTER_REGNUM \ (TARGET_MIPS16 ? GP_REG_FIRST + 17 : GP_REG_FIRST + 30) -#define FRAME_POINTER_REQUIRED (mips_frame_pointer_required ()) - /* Register in which static-chain is passed to a function. */ #define STATIC_CHAIN_REGNUM (GP_REG_FIRST + 15) |