On Fri, 2006-05-19 at 10:29 -0400, Jerry Feldman wrote:
Again, the binaries built by the compiler use a flat 64-bit model.
From the programmer's standpoint, but not the object code from what I've seen. Or let me re-phrase that, there is no guarantee that the object code that runs on 52-bit PAE will work on future AMD/Intel "flat 64-bit" platforms.
Remember, that the binaries are built for virtual memory and they have a full 64-bit memory model.
Again, from the programmer's standpoint -- Application Programmer Interface (API). I'm not talking about programmer, I'm talking about Application Binary Interface (ABI) compatibility. Whole different ballgame! And you've really over-simplified the compatibility here. It is _not_ easy to create a 52-bit PAE to 32-bit/36-bit PAE translation so object code of each can link against the other.
The general purpose register set contains 16 64-bit registers that are used for both data and for addresses.
Because you can fit a 52-bit address into a 64-bit register. ;->
The VM provides the appropriate mapping between the virtual address and the physical address.
The model _is_ 52-bit PAE, using *48-bit* addressing -- _not_ 64-bit! That's the object code last time I checked!
If a binary is explicitly built for features of a specific chip, it probably will not be compatible. This has always been an issue. In general, when building an application (or an OS) you build it for the target deployment. In the case of x86-64 Linux distros, you build for the generic x86-64, not to include specific AMD or Intel extensions.
But x86-64 is _not_ "64-bit flat" in object code.
This is true. The programmer does not concern himself with the specific memory models. The system programmer may be concerned with the underlying hardware. The application programmer sees a full 64-bit virtual environment, especially if he/she is using a high level language (including C).
But C _becomes_ object code. C is API. Object code is ABI. _Huge_ difference! -- Bryan J. Smith Professional, technical annoyance mailto:b.j.smith@ieee.org http://thebs413.blogspot.com ----------------------------------------------------------- Americans don't get upset because citizens in some foreign nations can burn the American flag -- Americans get upset because citizens in those same nations can't burn their own