Why is there no arg_pointer_needed?
Øyvind Harboe
oyvind.harboe@zylin.com
Sun Jan 30 00:24:00 GMT 2005
I'm trying to understand what ensures that the frame pointer will not be
eliminated in the case that the frame pointer is not needed, but the
argument pointer relies on the frame pointer because the argument
pointer failed to be eliminated to the stack pointer.
This could potentially be a problem in an elimination scheme where
FRAME/ARG_POINTER_REGNUM are two fake registers that either get
eliminated to the stack or frame pointer.
#define ELIMINABLE_REGS { \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM} \
}
#define CAN_ELIMINATE(FROM, TO) 1
Here is a thread that is somewhat related:
http://gcc.gnu.org/ml/gcc/2002-04/msg00009.html
--
Øyvind Harboe
http://www.zylin.com
More information about the Gcc
mailing list