or1k: Add return address argument to _mcount call
This fixes an issue in the glibc port I am working on where the build fails due to the warning: error: calling ‘__builtin_return_address’ with a nonzero argument is unsafe [-Werror=frame-address] This is due to how the current implementation of _mcount in glibc uses __builtin_return_address with a count argument of 1. Fix that by passing the value of LR_REGNUM to the _mcount function, effectivtly providing the value _mcount is after. This is an ABI change, but I think it's OK because the glibc port for or1k is not yet upstreamed. Also, I think just adding an argument should not break anything anyway. gcc/ChangeLog: * config/or1k/or1k.h (PROFILE_HOOK): Add return address argument to _mcount.
This commit is contained in:
parent
6123b998b1
commit
308531d148
1 changed files with 3 additions and 2 deletions
|
@ -394,9 +394,10 @@ do { \
|
|||
profiling a function entry. */
|
||||
#define PROFILE_HOOK(LABEL) \
|
||||
{ \
|
||||
rtx fun; \
|
||||
rtx fun, ra; \
|
||||
ra = get_hard_reg_initial_val (Pmode, LR_REGNUM); \
|
||||
fun = gen_rtx_SYMBOL_REF (Pmode, "_mcount"); \
|
||||
emit_library_call (fun, LCT_NORMAL, VOIDmode); \
|
||||
emit_library_call (fun, LCT_NORMAL, VOIDmode, ra, Pmode); \
|
||||
}
|
||||
|
||||
/* All the work is done in PROFILE_HOOK, but this is still required. */
|
||||
|
|
Loading…
Add table
Reference in a new issue