On 27/07/2007, at 11:30 PM, Joe Nathan wrote:

It's for the very simple reason: 64bit machines have 64bit address!
What is address! It's pointers if you are familiar with C, Pointers
are 64bit integers. Pointer arithmetics will deal with 64bit addressed
data. Arithmetic operations on 64bit takes app. twice long as 32bits.
As this is used very many in compiled binaries pointer arithmetics,
you should expect 64bit machines will give you slower performance,
for cpu bound applications. Note that hardware clocking time also
slower than 32 machines.

You may find this interesting...

quoting from wikipedia... http://en.wikipedia.org/wiki/X86-64


Full support for 64-bit integers: All general-purpose registers (GPRs) are expanded from 32 bits to 64 bits, and all arithmetic and logical operations, memory-to-register and register-to-memory operations, etc., are now directly supported for 64-bit integers. Pushes and pops on the stack are always in eight-byte strides, and pointers are eight bytes wide.


Additional registers: In addition to increasing the size of the general-purpose registers, the number of named general-purpose registers is increased from eight (i.e. eax,ebx,ecx,edx,ebp,esp,esi,edi) in x86-32 to 16. It is therefore possible to keep more local variables in registers rather than on the stack, and to let registers hold frequently accessed constants; arguments for small and fast subroutines may also be passed in registers to a greater extent. However, more registers also involves more saving and restoring of register contents, and AMD64 still has fewer registers than many common RISC processors (which typically have 31–64 registers) or VLIW-like machines such as the IA-64 (which has 128 registers).


Cheers

Adrew

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to