This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Why is there no arg_pointer_needed?
- From: Øyvind Harboe <oyvind dot harboe at zylin dot com>
- To: gcc at gcc dot gnu dot org
- Date: Sat, 29 Jan 2005 21:49:08 +0100
- Subject: Why is there no arg_pointer_needed?
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