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
This commit is contained in:
Daniel Jacobowitz 2005-05-11 14:59:09 +00:00 committed by Daniel Jacobowitz
parent 09e7f68631
commit a15900b51c
3 changed files with 17 additions and 1 deletions

View 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

View 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

View file

@ -128,11 +128,14 @@
(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}"