[Bf-committers] 64 bits Blender

Giuseppe Ghibò ghibo at mandriva.com
Sat Jan 20 17:06:53 CET 2007

Hans Lambermont wrote:

> Now you get me curious, as I do not remember these issues. If I remember
> well we had 3 64-bit platforms in 2001 : Linux on Alpha, Solaris on
> UltraSparc and Irix on Mips.

Note that not all the 64bits are using the same model datatype.
Actually according to where the 64bit type is, we can have 3 models
(keep in mind I=int, L=long, LL=long long, P=pointer):

LP64: int   at 32bit
      long  at 64bit
      long long at 64bit
      pointer at 64bit

LLP64: int  at 32bit
       long at 32bit
       long long at 64bit
       pointer at 64bit

ILP64: int at 64bit
       long at 32bit
       long long at 64bit
       pointer at 64bit

As you can see the common in each model is that pointers are at 64bits.
And for each model you can have endianess little or big (or middle, but
very old, so don't care). While the choice of one model or the other, it's usually
of the operating system, the endianess depends on the CPU
(unless the CPU don't support both [bi-endianess], but in that case the OS chooses
one). For instance:

1) X86_64 Linux on AMD Athlon64/Opteron as well as Intel Core2
uses LP64 (endianess: little endian)

2) X86_64 Windows64 on Athlon64/Opteron/Core2 uses LLP64 and
(endianess: little endian).

3) Alpha Linux uses LP64 model (endianess: little endian, tough alpha supports
   big endian as well). It's not uncommon that some OS with Alpha was using ILP64
   model (e.g. on Cray).

4) UltraSparc Solaris and Linux Sparc uses LP64 (endianess: big endian)

5) Itanium IA-64 Linux uses LP64 (endianess: little endian, though IA-64 supports bi-endianess)

6) Itanium IA-64 HP/UX uses LP64 (endianess: big endian).

6) MIPS Irix uses LP64 (endianess: big endian, though MIPS supports bi-endianess)

7) ...

from the above list LP64 (except Windows64) is the most common and most widespread here.

Some useful links:



More information about the Bf-committers mailing list