thedqs wrote:Another nice thing about 64-bit is that you can use all those nice new assembly operators that you haven't been able to because you do not know what processor generation the end user is using. (Thus all 32-bit programs were basically using the 386 or 486 opcodes which resulted in a very bloated app).
And yes you could compile it to be processor specific but the default output of most programs was the 386/486 opcode set.
If I am informed correctly by my friends who still work on CPU design at a very large semiconductor manufacturer, the AMD64 instruction set is a whole new instruction set, leaving behind essentially all of the mess that resulting from modern the X86 32-bit instruction set being stepwise assembly source backward compatible to the 8008 from around 1973-4. I'm told AMD64 is actually a rather clean ISA.
However, 64-bit code and RAM footprint will likely be larger than with 32-bit for a few reasons. First, pointers are wider. Second, the byte-granularity X86-32 instructions are very compact, while more modern instruction encodings are less worried about code density so they sacrifice code density for decoding and execution speed.
By the way, AMD64 (alias X86-64 alias EMT-64...) is not the only 64-bit instruction set architecture. Others include Alpha, Sparc, Power, perhaps MIPS, and perhaps others.