On Mon, 2007-10-22 at 12:20 -0400, Jesse Keating wrote:
On those arches, running 64bit code comes at a penalty. In fact,
even
on x86_64 there is a penalty. Larger memory overhead. However on
x86_64 the extra CPU registers gained by running in x86_64 mode
outweigh the memory overhead.
Not to mention with x86_64, you can assume the presence of cmov, MMX and
SSE2. Whereas on i386, we're still for the most part compiling for 386s.
In fact I've written patches for OpenJPEG that are specifically designed
to take advantage of gcc's ability to perform if conversions with cmovs,
to eliminate branching. Fedora's i386 misses out on this. :)
Passing function arguments, including structures, in registers is part
of the x86_64 ABI.
x86_64 also has an instruction pointer relative addressing mode,
allowing it to support position independent code without a speed hit.
<3 <3 <3 x86_64