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:
parent
09e7f68631
commit
a15900b51c
3 changed files with 17 additions and 1 deletions
|
@ -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>
|
2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
PR bootstrap/21481
|
PR bootstrap/21481
|
||||||
|
|
|
@ -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 @@
|
||||||
(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}"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue