[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [f-cpu] calling conventions



> Another proposal :
>
> r0            : zero
> r1            : pointer to variable or additional function arguments
> (call-clobbered)
> r2-r15     : function return values or arguments (call-clobbered)
> r16-r31   : temporary registers (call-clobbered)
> r32-r47   : local registers (callee-saver)
> r48-r63   : global or special registers
>
> that way we could handle pair of registers much smarter
> (r2-r3,r3-r4,...,r14,r15).
>
> personally, I'm wondering if it is really necessary to limit function
argument
> to r15 instead of r31 or r29 (to be sure to have at least a pair of temporary
> registers), in so far as we can consider that all function arguments not used
> by a function may be used as temporary registers by this function...

Just a precision, the life of a temporary register in a function lasts between
the time it assigned and the time a call of a function is done therein or the
function exits, unlike local registers which would last between the start and
the end of the function where it is used.


*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/