This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]