On Thu, Feb 12, 2009 at 11:24 AM, Andreas Raab <andreas.raab@gmx.de> wrote:

Eliot Miranda wrote:
So I don't see how this allows one to have a 64-bit VM that can run true 64-bit images.  What am I missing?

You are mostly confused about the various combinations ;-) Let's start from first principles: You can run 32bit images on top of 64 bit VMs. This is achieved by using oopForPointer/pointerForOop.

In order to run 64 bit images you need a 64 bit image to begin with. The 64 bit VM doesn't auto-magically convert your 32bit image into a 64 bit one. This is done by SystemTracer and friends.

Does that help?

No.  Read my description of how I think oopForPointer/pointerForOop has to work and point out to me how one has code that can do both 64-bit and 32-bit oops and I'll be happy.  AFAICT the only way to run 32-bit images above 64-bit VMs is to swizzle and I don;t see swizzling code in the VMs but do know there is a swizzling SystemTracer.  So yes, I see that one can start with a 32-bit image and derive a 64-bit one
 (been  there, done that) and see how (but not why) one would swizzle a 32-bit image to a 64-bit image on start-up (its a slow load).  But I don;t see how (efficiently) onecreates a 64-bit VM that will run 32-bit and 64-bit images without swizzling.

There's a dearth of comment from Dan and Ian and David who ave actually worked with the 64-bit VM.  I'm going to keep quiet on this topic from now on.  I've clearly antagonized more than enough people this a.m.

Apologies for the noise.


Cheers,
 - Andreas