Developing for x86 and x64 os



  • hi ,

    what is the main fact that shoud i consider to devolope a cross application whish work in x86 and x64 opérating system (pointer allocation , interger allocation size ... )

    thanks


  • Moderators

    What do you mean?

    You need to judge yourself, whether you need x64 extensions or not. x64 means things are bigger (more RAM), but allow some things that are cumbersome on 32 bit.

    32 bit app will work on 64 bit OS, the reverse will not.



  • Thanks :-)

    [quote author="sierdzio" date="1363166623"]What do you mean? You need to judge yourself, whether you need x64 extensions or not. x64 means things are bigger (more RAM), but allow some things that are cumbersome on 32 bit. 32 bit app will work on 64 bit OS, the reverse will not.[/quote]



  • Hi

    For a start, not all 64bit platforms are equal. On most platforms the model is LP64, i.e. longs and pointers are 64bit. On Windows the model is LLP64 (or just P64) - pointers are 64 bits but longs are 32bit. long longs are 64bit on just about all platforms.

    Not all 32bit platforms are incapable of running 64bit executables. Older versions of Mac OS X default boot to 32bit but can run 64bit executables (AFAIK 10.8 now only boots to 64bit).

    In favour of 64bit: larger address space, more registers available, default floating point is SSE rather than x87.

    In favour of 32bit: smaller machine code so better cache hit rate.

    A+
    Paul



  • Thanks pau very interesting informations

    [quote author="paulf" date="1363188444"]Hi For a start, not all 64bit platforms are equal. On most platforms the model is LP64, i.e. longs and pointers are 64bit. On Windows the model is LLP64 (or just P64) - pointers are 64 bits but longs are 32bit. long longs are 64bit on just about all platforms. Not all 32bit platforms are incapable of running 64bit executables. Older versions of Mac OS X default boot to 32bit but can run 64bit executables (AFAIK 10.8 now only boots to 64bit). In favour of 64bit: larger address space, more registers available, default floating point is SSE rather than x87. In favour of 32bit: smaller machine code so better cache hit rate. A+ Paul [/quote]


  • Moderators

    A sometimes overlooked problem I had encountered is when an app stores it's data in a binary file. The reader/writer was using things like sizeof(long) to read/write chunks of data which obviously led to horrible horrible bugs when the data was shared between different versions.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.