how can RETURN_ADDR_RTX possibly do its work?
Nathan Sidwell
nathan@codesourcery.com
Tue May 25 13:40:00 GMT 2004
Dave Korn wrote:
Is there some better solution to this problem that I'm overlooking? The
rs6000 solution of setting a flag to force the epilog generator to save the
link register whether it thinks it needs to or not seems like the most
robust to me, and I guess it's only a very tiny pessimisation in only those
leaf functions that call __builtin_return_address, but it still seems
inelegant to me.
I found that,
XXX.c
/* The return address of the current function. */
rtx
XXX_return_addr (void)
{
return get_hard_reg_initial_val (Pmode, LINK_REGNUM);
}
XXX.h
#define RETURN_ADDR_RTX(count,frame) \
((count) ? NULL_RTX : XXX_return_addr ())
did the trick. I stole it from one of the other config files, but I forget
which.
nathan
--
Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery LLC
nathan@codesourcery.com :: http://www.planetfall.pwp.blueyonder.co.uk
More information about the Gcc
mailing list