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]

a question about argument ARG_POINTER_REGNUM


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


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