Hi Mohamed,


Why not ? Callee save registers are after all registers and the split
is in the ABI's head (so to speak). So GCC is well within its right to
use callee save registers. In fact if you were in a leaf function that
did not make any function calls the first preference would be to
allocate caller save registers and then to allocate callee save
registers - Instead of spilling a caller save register , GCC could
very well use a callee save register and the only extra cost would be
saving and restoring context of the callee save register in the
prologue and the epilogue respectively.


HTH.


cheers
Ramana

On Tue, Jul 15, 2008 at 7:50 AM, Mohamed Shafi <[EMAIL PROTECTED]> wrote:
>
> Hello all,
>
> I am not sure if this the right mailing list.
>
> I am involved in the porting of gcc 4.1.2 for a 16 bit target.
> In some cases i noticed that callee save registers were getting
> allocated in the body even though there isn't any function call. I
> believe that callee save registers will be allocated only if some
> variable values are required across a function call. So if there is no
> function call there shouldn't be any callee save registers used in a
> function body. So my question is will GCC allocate callee save
> registers for function even if the function doesn't call any other
> function?
> Or is this a gcc bug?
>
> Hope my question is clear.
>
> Regards,
> Shafi



--
Ramana Radhakrishnan

Reply via email to