building a unix 32bit vm for amd64 (yet again)

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

building a unix 32bit vm for amd64 (yet again)

Martin Kuball

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))
        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.