I'd have to agree with Andrew. With only 32 registers of each type in Parrot (the last time I checked) using most of them for function arguments would cause much needless register copying within each function. Surely 8 registers of each type would be more than sufficient for function parameters, and the rest could be local scratch registers for each function to use as it pleased without saving.
It might be beneficial to look at the code in register rich CPU architectures in GCC to see what calling conventions are used for such chips. This Google thread discusses this topic: http://groups.google.com/groups?hl=en&selm=85hhsi%24lkj%241%40nnrp1.deja.com On Mon, 29 Apr 2002 09:50:12 +1000 Andrew J Bromage wrote: >On Sun, Apr 28, 2002 at 11:44:04AM -0400, Dan Sugalski wrote: > >> We're going caller-save. I think I made this declaration before, but >> now it's backed up with pure PDD goodness. :) > >The first thing to realise is that this violates the principle of >"callee does everything important to it". :-) > >More seriously, this is the opposite extreme, and IMO it's also not >a good idea. __________________________________________________ Do You Yahoo!? Yahoo! Health - your guide to health and wellness http://health.yahoo.com