* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
default definition.
(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99581
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
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
(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}"