[Vm-dev] 64-bit compilation beneath a 32-bit image...

Eliot Miranda eliot.miranda at gmail.com
Wed Oct 13 02:21:25 UTC 2010

Hi David, John, All,

    I'm working on integrating callbacks into the FFI and have the old
version of callbacks working.  In integrating with Cog I've realised some
cleanliness can come from a slightly different approach, the details of
which are irrelevant to my question, which is, when we're running a 32-bit
image above a 32-bit VM compiled in 64-bit mode, is there any way from the
image we can ask the VM if it is 64-bit or 32-bit?  Am I to understand
correctly that you, John, have arranged that when we're compiling the iOS VM
on a 64-bit Mac OS X, sizeof(long) = 8, and everything still works?  If not,
the question is moot.  If so, how from the image can I ask whether the VM is
64-bit, e.g. by asking what sizeof(long) or sizeof(void *) is?

If there isn't a way, I propose we add vmParameterAt: 70 to answer the VM's
underlying word size.  Tis is different to vmParameterAt: 40, which is the
image's underlying word size.

I need the answer to this so that when a callback tries to answer e.g. an
integer result it can tell whether it should use some Alien signedLongAt: N
or Alien signedLongLongAt: N to answer the result, and what machine code
(x86 vs x86-64) to use for the callback thunk.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101012/708ca903/attachment.htm

More information about the Vm-dev mailing list