forum GNU Linux PowerPC Notebook

Software => Fine tuning/Optimization of applications/libraries for PowerPC => Topic started by: jjSuper1 on December 28, 2014, 10:07:07 PM

Title: ppc64le and endianness
Post by: jjSuper1 on December 28, 2014, 10:07:07 PM
ppc64 is an identifier commonly used within the Linux and GCC open source software communities to refer to the target architecture for applications optimized for 64-bit PowerPC- and Power Architecture processors, frequently used when compiling source code.

ppc64le is a pure little endian mode introduced with the POWER8 - the Motorola/FreeScale e6500 chip seems to support this mode.
    ppc64le was implemented with the new POWER8 design to make it easier for x86 based users to compile software for use on ppc64,
and for ppc64 based machines to use x86 specific binaries (i.e. installing from a package, not compiling from source).  This mode is switchable at run-time.  PCI functions in little-endian mode exclusively, as does x86.  Therefore it is necessary to allow PowerPC chips to masquerade in either eindian state to share memory.

From Wikipedia: An interesting side effect of this implementation is that a program can store a 64-bit value (the longest operand format) to memory while in one endian mode, switch modes, and read back the same 64-bit value without seeing a change of byte order. This will not be the case if the motherboard is switched at the same time.

Both forms of endianness are common.  The Intel x86 processor represents a common little-endian architecture, and IBM mainframes are all big-endian.  Big-endian is the most common convention in networking (including IPv6), and little-endian is popular among microprocessors in part due to Intel's significant historical influence on microprocessor designs.  There are also some bi-endian processors which can operate either in little-endian or big-endian mode.

There is, as I see it little reason to worry about which mode our system will run in at this time, but this provides some insight into future choices.
Title: Re: ppc64le and endianness
Post by: matevz.langus on December 31, 2014, 06:41:29 AM
Freescale chips do not support x86 execution. Only latest IBM Power do.
Title: Re: ppc64le and endianness
Post by: jeeptrail on December 31, 2014, 10:32:51 PM
If I remember reading correct Ibm's power 8 dose the x86 translation via virtualization built in to the core.I may be wrong.Ive been busy playing with freescales 7448MP dual core processors.
Title: Re: ppc64le and endianness
Post by: markos on January 06, 2015, 01:56:30 PM
there is a catch with e6500 little endian mode, Altivec unit does not support LE, so we would be left with a cpu without Altivec. And e6500's altivec is a revamped Altivec + extra instructions but quite different than IBM's VSX -which can run in both big and little endian mode.

Given the cpu choice, and since I wouldn't want to lose the Altivec unit, I'd go for big endian and on my part work on the ppc64 port in Debian, rather than try to use the ppc64le one -which probably wouldn't need lots of extra work anyway.