New X32 abi:64-bit mode with 32-bit pointers
The $ bits mode of x86 CPUs enlarges the CPU registers to the bit, allowing to address larger (>4GB) amounts of memory. This is widening, however, has a drawback. Because memory addresses are 64-bit wide, pointers occupy-bits of space, the double of spaces used in-bits mode, so B Inaries compiled for the 64-bit mode are bigger, and while these programs run they with more RAM. And since they are bigger they can cause a performance loss, because with bigger memory addresses, less CPU instructions W Ill fit in the CPU caches.
Some programs have workloads CPU and pointer intensive enough to care about this performance, but with memory Ents not the enough to care about 64-bit memory addressing. They can avoid the 64-bit pointer overhead by just using the-bits mode:processors still to run allow 32-bit Systems, or run 32-bit programs on the top of 64-bit kernels. But This choice also has problems. When a program runs in 32-bit mode, it loses all features of the 64-bit mode:larger number of CPU registers, being Tter floating-point performance, faster PIC (Position-independent code) shared libraries, function parameters passed via R Egisters, faster syscall instruction ...
So a new X32 kernel ABI has been created. A program compiled to this new ABI can-run in the 64-bit mode, with all its features, but it uses bits pointers and 32 -bit long C type. So applications who need it can enjoy the performance of the 64-bit mode, but with the memory requirements of a bits AB I. Code: (COMMIT)
Recommended LWN article:the x32 system call ABI
Slides from the Developers:link
Official X32 Coordination Site:http://sites.google.com/site/x32abi