[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).
OK but this is another calling convention not usefull for most of
language becouse they don't allow multiple return value so these language
don't use some register.
And you must add a pointer to additional return if you want to return
more than 14 values.
>
>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...
ok but if you want to have the minimum of dependencies in your code you
need some temp reg.
I think it was difficult in the start of your code if you have only 2
temp reg...
--
Thomas Lavergne "Le vrai rêveur est celui qui rêve
de l'impossible." (Elsa Triolet)
thomas.lavergne@laposte.net
d-12@laposte.net ICQ:#137121910 http://assoc.wanadoo.fr/thallium/
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu in the body. http://f-cpu.seul.org/