Commit a15900b5 by Daniel Jacobowitz Committed by Daniel Jacobowitz

linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.

	* 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
parent 09e7f686
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> 2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
PR bootstrap/21481 PR bootstrap/21481
......
...@@ -861,8 +861,14 @@ extern int arm_structure_size_boundary; ...@@ -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. 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 APCS says that the frame pointer does not need to be pushed in leaf
functions, or simple tail call functions. */ functions, or simple tail call functions. */
#ifndef SUBTARGET_FRAME_POINTER_REQUIRED
#define SUBTARGET_FRAME_POINTER_REQUIRED 0
#endif
#define FRAME_POINTER_REQUIRED \ #define FRAME_POINTER_REQUIRED \
(current_function_has_nonlocal_label \ (current_function_has_nonlocal_label \
|| SUBTARGET_FRAME_POINTER_REQUIRED \
|| (TARGET_ARM && TARGET_APCS_FRAME && ! leaf_function_p ())) || (TARGET_ARM && TARGET_APCS_FRAME && ! leaf_function_p ()))
/* Return number of consecutive hard regs needed starting at reg REGNO /* Return number of consecutive hard regs needed starting at reg REGNO
......
...@@ -128,11 +128,14 @@ ...@@ -128,11 +128,14 @@
(TARGET_ARM && NEED_PLT_RELOC) ? "(PLT)" : ""); \ (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. */ prologue knows to save it. */
#define PROFILE_HOOK(X) \ #define PROFILE_HOOK(X) \
emit_insn (gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, LR_REGNUM))) 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 #undef CC1_SPEC
#define CC1_SPEC "%{profile:-p}" #define CC1_SPEC "%{profile:-p}"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment