On Wed, Feb 20, 2008 at 1:50 AM, Paolo Bonzini <address@hidden> wrote:
> Does this mean that I can't write a VM which performs interprocedural
> register allocation using GNU Lightning? Or is this statement intended
> to apply only when using the C call convention?
It's mostly because of the SPARC, which uses register windows. If you
don't care about it, you can pass parameters using GPR.
I don't want to break compatibility unnecessarily. I'll read up on Sparc:
http://www.sics.se/~psm/sparcstack.html
Perhaps an additional macro to be defined by each arch is warranted.
Something like: JIT_NEEDS_PROLOG. If false, I can use a different
calling convention.
I've considered CPS, particularly in conjunction with the Cheney on
the MTA-style GC. Unfortunately, CPS just kills the pipeline due to
the indirect function calls. Given how deep pipelines are nowadays,
and the fact that they're getting deeper, I'm reluctant to go this
way.