[virtmach] switch vs dispatch table (was Your VM)

MickaŽl Pointier virtmach@iecc.com
Tue, 29 May 2001 12:01:08 +0200

> > > Many compilers will generate an indirect jump through a
> > > table of pointers for a dense switch.  Generally, the
> > > compiler can generate better code for this internally
> > > than can be written in source code, so the switch version
> > > is likely to be faster.
> >
> > Most compilers will generate a range check before the jump, where as a
> > coded jump table can assume that the data is in range.  Of course, its
> > hard to say, as we haven't even mentioned what language this VM might be
> > implemented in...
> >
> Personally I was thinking about C and gcc when I asked the question...

You may want to take a look at this page:


Toward the end there are some interesting considerations about the various
way to implement the so called "threaded code".

    Mickael Pointier