[Top][All Lists]

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

Re: [DotGNU]Internet C++

From: Rhys Weatherley
Subject: Re: [DotGNU]Internet C++
Date: Mon, 13 Aug 2001 09:58:15 +1000

Scott Lanham wrote:

> > One thing I was wondering, couldn't we take an architecture, remove any
> > restrictions that are placed on it because it's implemented in hardware,
> > and use that?  The changes to gcc would be smaller.
> >
> > For example, choosing the SPARC processor which is open, and partially
> > stack based anyway (i.e. rolling stack frame of registers), give each
> > thread of execution in the VM its own register stack, and remove the
> > architected maximum of 32 frames (make it infinite) and use this?
> How easy is it to take, for example, code compiled for the SPARC architecture
> and run it on an x86 machine?

I think Keith is referring to using an existing gcc backend
as a base, rather than trying to run one type of code on
another CPU.  i.e. take the SPARC port, rip out all the bits
that are specific to its instruction set, and put in IL instead.
Because SPARC is already semi stack-based, this will
give the resulting port the "right shape" to service IL.
That's the theory anyway.

A better port to look at than SPARC is probably the
Transputer port (see the Portable.NET FAQ for the URL).
The Transputer is fully stack based, whereas the SPARC
is only sort of stack based (it is still really a register
machine at heart).  I've looked at the Transputer code,
and I think we may be able to use it to solve the
"register vs stack" problem.

However, it doesn't solve another problem that RTL has.
RTL assumes that any word in memory can hold any kind
of value.  Integers, pointers, floats, etc, are all the same
in the RTL world.  IL uses memory locations that are
strongly typed.  Solving this will be damn hard I fear.



reply via email to

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