[Vm-dev] building a unix 32bit vm for amd64 (yet again)

Martin Kuball martinkuball at web.de
Sat Aug 5 12:17:44 UTC 2006


Hi!

Today I started new attempt to compile a working 32bit vm. Determined 
to not give up before success I eventually found the culprit. Among 
other things I compared the file sqMemoryAccess.h from an old version 
(that did work on amd64) with the new one. I should have done this 
right away because two things imediately stroke me:

* the old version only has inline functions while the new one has 
macros in addition
* the macro version of oopForPointer is different from the inline 
function version:

        # define oopForPointer(ptr)  ((sqInt)(ptr))
vs
        static inline sqInt oopForPointer(char *ptr)
                 { return (sqInt)(ptr - sqMemoryBase); }

From here on it was easy to verify that the macro 
USE_INLINE_MEMORY_ACCESSORS is not defined anywhere and that forcing 
the use of the inline version results in a working vm.

Now the big question is: should I use the inline versions or the 
macros (after fixing them). I'm using gcc 4.1.2 by the way.

Martin


More information about the Vm-dev mailing list