]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
authorDaniel Jacobowitz <dan@codesourcery.com>
Wed, 11 May 2005 14:59:09 +0000 (14:59 +0000)
committerDaniel Jacobowitz <drow@gcc.gnu.org>
Wed, 11 May 2005 14:59:09 +0000 (14:59 +0000)
* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
default definition.
(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.

From-SVN: r99581

gcc/ChangeLog
gcc/config/arm/arm.h
gcc/config/arm/linux-elf.h

index 46ac68c7929d78433df2bd81f55875c062dd7710..c026bf36ce7f060e1d7f59b23f16d7315c62845f 100644 (file)
@@ -1,3 +1,10 @@
+2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
+       * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
+       default definition.
+       (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
+
 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
 
        PR bootstrap/21481
index 1e5a972b40f7260fc3a96d5c5d26efa85e83c300..b75d89a64fe66451f1151b5a8e38c6cf33375a13 100644 (file)
@@ -861,8 +861,14 @@ extern int arm_structure_size_boundary;
    If we have to have a frame pointer we might as well make use of it.
    APCS says that the frame pointer does not need to be pushed in leaf
    functions, or simple tail call functions.  */
+
+#ifndef SUBTARGET_FRAME_POINTER_REQUIRED
+#define SUBTARGET_FRAME_POINTER_REQUIRED 0
+#endif
+
 #define FRAME_POINTER_REQUIRED                                 \
   (current_function_has_nonlocal_label                         \
+   || SUBTARGET_FRAME_POINTER_REQUIRED                         \
    || (TARGET_ARM && TARGET_APCS_FRAME && ! leaf_function_p ()))
 
 /* Return number of consecutive hard regs needed starting at reg REGNO
index 48b0f0164014593b597e222a19cbe3b3f5182390..b609a813a7c65c03c1469725e3873fb55ccfc214 100644 (file)
           (TARGET_ARM && NEED_PLT_RELOC) ? "(PLT)" : "");              \
 }
 
-/* The linux profiler clobbers the link register.  Make sure the
+/* The GNU/Linux profiler clobbers the link register.  Make sure the
    prologue knows to save it.  */
 #define PROFILE_HOOK(X)                                                \
   emit_insn (gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, LR_REGNUM)))
 
+/* The GNU/Linux profiler needs a frame pointer.  */
+#define SUBTARGET_FRAME_POINTER_REQUIRED current_function_profile
+
 #undef  CC1_SPEC
 #define CC1_SPEC "%{profile:-p}"