[ODE] Re: ODE (and mainly OPCODE) for 64bits

Pierre Terdiman pierre.terdiman at novodex.com
Thu Jan 20 10:02:00 MST 2005


Hi,

> Well, I don't know, but it misses a typedef inside ICE:
> for pointers...
>
> Actually in the code, pointers may be casted into udword, which are
4bytes.
> In a 64bits AMD64 architecture, pointers are 8 bytes...
> So, the warnings we see at compile time.
>
> I have no time to investigate more, and to add the pointer typedef (and I
even
> don't know if it is possible to make it fit into actual sctuctures)
>
> If Pierre wants, I can cooperate with him for that port... (if it is not
> longer than 2 or 3 evenings...)

As far as I'm concerned, storing an 8-bytes pointer within the Opcode
structures is just not an option. The whole point was to save some memory, I
obviously don't want to waste it now, especially to store useless data.

So, porting Opcode to 64-bits isn't as simple as changing the pointer size.
To do that correctly you have to replace all the pointers with (32 bit)
indices, and give the collision code access to the base pointer (64 bit) so
that it can recreate the correct addresses at runtime (which might be a
small performance hit).

Well, feel free to do it but I don't have time for this.

- Pierre




More information about the ODE mailing list