[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
Hi,
This problem has already been posted in january 2005.
I wanted to know what's the status on this? Has anyone finally a working
port?
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
overrated:
- 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.
Thanks,
Tanguy
More information about the ODE
mailing list