This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
a question about argument ARG_POINTER_REGNUM
- From: Ivan Shcherbakov <shcherbakov at eit dot uni-kl dot de>
- To: gcc at gcc dot gnu dot org
- Date: Mon, 14 Dec 2009 10:15:12 +0100
- Subject: a question about argument ARG_POINTER_REGNUM
- Reply-to: Ivan Shcherbakov <shcherbakov at eit dot uni-kl dot de>
Hi, All,
I have noticed that the latest ports of GCC (e.g. i386) use a
pseudo-register (argp in i386) defined as fixed in FIXED_REGISTERS.
When I implement it similarly in msp430 port (instead of hardware
register r5, add a pseudo-register marked as fixed), GCC perfectly
works in -O2 mode, however, crashes in -O0 mode by trying to generate
instruction setting the pseudo-register (argp) explicitly from SP.
My question is whether there is a way of telling GCC that a certain
register is a pseudo-register and should always be eliminated to
either SP or FP. The ELIMINABLE_REGS macro is set accordingly,
however, the actual elimination happens only with optimization turned
on.
If there is an article describing register elimination vs
pseudo-registers, I would appreciate a link.
--
Best Regards,
Ivan Shcherbakov mailto:shcherbakov@eit.uni-kl.de
TU Kaiserslautern, Germany
Department of Real-Time Systems