emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation to native


From: Matthew Mundell
Subject: Re: Compilation to native
Date: 16 Apr 2004 15:21:37 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

(nobody) writes:

> Miles Bader <address@hidden> writes:
>
> > On Tue, Apr 13, 2004 at 01:32:37PM -0400, Stefan Monnier wrote:
> > > You mean you added two byteops: one to read the Nth word on the stack
> > > (counting from the top) and the other to set that word?  I expect you
> > > called them something like `sset' and `sref'?
> > > Sounds generally useful (something similar is used in the `lexical' branch
> > > of Miles, you might want to check that out).
> >
> > Yes; here are the new  byte codes in the lexical-binding branch:
> >
> >    #define Bstack_ref 0
> >    #define Bstack_set  0262
> >    #define Bstack_set2 0263
> >    #define Bvec_ref    0264
> >    #define Bvec_set    0265
> >    #define BdiscardN   0266
> >
> > stack_ref is a `1 byte with embedded constant' opcode; stack_set2 uses a
> > following 2-byte constant,
> > the rest use a following 1-byte constant (as they
> > have lisp-level equivalents, unusually large offsets can be handled by
> > calling an out-of-line function).  discardN uses a hack that allows the TOS
> > to optionally be preserved.

Do the 1 and 2 byte constants for stack_ref, stack_set and stack_set2
cater for the maximum size of the stack?  Fbyte_code's maxdepth
parameter is a Lisp_Int, which suggests that the stack can be at least
as large as can be held in 29 bits.  Is there perhaps some other
restriction on the stack size?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]