[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Lightning] Re: Argument Management
From: |
Sandro Magi |
Subject: |
[Lightning] Re: Argument Management |
Date: |
Wed, 20 Feb 2008 10:55:23 -0500 |
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.
> The way I worked around it in GNU Smalltalk was to run the whole
> interpreter in "continuation-passing style". Which is, in fact, a
> different calling convention than the standard one.
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.
Sandro