ok i'm trying to understand which calling convention we should have, and tail calls, etc.
i've read two things:
- ppl say you should have callee cleanup if you have tail calls
- but this seems inefficient to me, because it prevents the same buffer from being reused by the caller to pass arguments to multiple callees over time, doesn't it? Maybe if things are always passed on the stack rather than in a 'buffer' it's not as much of a problem...
- ppl say you should have pascal order of arguments (i assume this means left-to-right) instead of C order (right-to-left). need to see why they say that [1]