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