This is the mail archive of the
mailing list for the GCC project.
Re: Porting GCC troubles : about register window
- From: chen haibo <chbchb1130 at yahoo dot com dot cn>
- To: Hans-Peter Nilsson <hp at bitrange dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 30 Sep 2003 11:19:55 +0800 (CST)
- Subject: Re: Porting GCC troubles : about register window
--- Hans-Peter Nilsson <firstname.lastname@example.org> 的正文：> On
Sun, 28 Sep 2003, [gb2312] chen haibo wrote:
> > I plan to port GCC for a new processor which
> has 16
> > sets of registers(8 in each set).Since only one
> > set is visible at any time so that I can omit the
> > register protection if the depth the call is not
> > exceed 16.
> Sounds like register windows, like sparc.
Yes,But sparc only has one uniform set of registers.
> > But the call depth did exceed 16, then I
> > should reserve all the registers to memory or each
> > per time,and in my porting,I must each time to
> > judge if the call depth exceeds 16.
> I presume the register set pointer is a hidden
> register, not
> accessible from a program.
Yes,the register set pointer is part of a special
register,say psw,and I can set it through some special
> >I think it is a
> > very trouble thing,I wonder if the GCC porting
> > mechanics has any interface to deal with it or if
> > one know how to solve the problem.Wait for
> help,Thanks all!
> Nothing other than the obvious: pass the call depth
> as one of
> the function parameters.
But I don't think it pratical to force programmer to
write a function with its call depth as a parameter
and when we encounter a recursive function,we can not
even know the exactly what the call depth is.
I have seen that the INCOMING_REGNO,OUTGOING_REGNO and
LOCAL_REGNO macro is used for register window,but I
don't find it rather useful for my situation.
waiting for your help!
> brgds, H-P
Do You Yahoo!?