Ciaran,

>such as a heap of extra general purpose registers, which makes up for
>the 64 bit code penalty

Only if the compiler's register allocator makes use of them, which gcc
does.

>In an ideal world, your amd64 box would run a pure 64 bit kernel and a
>64 bit int / 32 bit pointer userland, and still have access to the
>extra registers. Unfortunately, amd64 can't do this (unlike, say,
>MIPS).

I've been spending a lot of time in asm on my AMD64 and I _know_ that
the AMD64 ABI specifies 32 bit integers regardless of the operating
mode.

>what I just said was wrong and that "64 bit is just plain faster".

To reiterate, Ciaran is right and the marketing droids are wrong.

>but because of limitations in amd64 you're still better going
>for 64 bit userland and kernel.

There are instructions that will flip the AMD64 back and forth between
32/64 bit modes.  You can't push anything except a 64bit value onto the
stack while in 64bit mode and in 32bit mode you can push 8/16/32 bit
values and various other similar issues.  Now the OS can set up for
32bit mode prior to executing a program but as you and many others have
pointed out in this list the real problem is that portage does not yet
keep (and distinguish between) copies of both 32 & 64 bit libraries in
the same tree.  That is why OpenOffice.Org, Flash, etc. are precompiled
and linked binaries and they still run with a 64 bit kernel.

I got an AMD64 because I wanted to explore these issues.  If they scare
off the original poster then he should at least compare a regular
Athalon to a Pentium and then go with whatever 32bit version he decides.

Cheers,
-- 
Tres

-- 
gentoo-user@gentoo.org mailing list

Reply via email to