[ODE] AMD64: OPCODE cast from 64 bits pointer to 32 bits integer

Tanguy Fautre tanguy.fautre at spaceapplications.com
Wed Feb 23 14:28:35 MST 2005


This problem has already been posted in january 2005.
I wanted to know what's the status on this? Has anyone finally a working 

I must admit that I'm a bit shocked by the discussion about the "bad" 
and the "good" solution.

(reminder: bad = using 64 bits integers, good = using a 64 bits offset + 
a 32 bits integer)

While I agree that using 64 bits integers instead of 32 bits one would 
increases the memory usage, I think that the effect of this is a bit 

- CPU cache on 64 bits CPU are generally bigger and meant to work with 
64 bits values (on x86-64: 1 MB L2 cache at least, 2 MB is soon to be 
common); collision models have to be pretty big before it becomes an issue;
- from a programming point of view, the bad solution is a lot more elegant.

What I want to mean is that we don't know if the bad solution is going 
to be slower. In fact, because of the offset system, the good solution 
may be actually the slowest!!!

IMHO, OPCODE should be patched to provide the "bad" solution. The most 
important issue here is to have something working on 64 bits systems.
For the "good" solution, optimizations should be tried after... As I 
said, we don't even know if it's even worth it.

As it stands, OPCODE is just as good as nothing in 64 bits.



More information about the ODE mailing list