The most correct way to refer to 32-bit and 64-bit versions of programs











up vote
2
down vote

favorite












This question is about terminology for 32-bit vs. 64-bit x86.



If I have 2 directories with source code of the same program - one for 32-bit Windows and another for 64-bit Windows, what will be the more correct names for these folders:





  • x86-64 and x64?

  • or IA-32 and x64?


I already have read some web resources, but can't understand. Just for the record:




  • https://superuser.com/questions/179919/x86-vs-x64-why-is-32-bit-called-x86

  • Difference between x86, x32, and x64 architectures?

  • https://en.wikipedia.org/wiki/X86

  • https://en.wikipedia.org/wiki/IA-32

  • https://en.wikipedia.org/wiki/X86-64










share|improve this question
























  • I removed the architecture tag because that refers to software architecture only.
    – Hadi Brais
    Nov 18 at 20:51















up vote
2
down vote

favorite












This question is about terminology for 32-bit vs. 64-bit x86.



If I have 2 directories with source code of the same program - one for 32-bit Windows and another for 64-bit Windows, what will be the more correct names for these folders:





  • x86-64 and x64?

  • or IA-32 and x64?


I already have read some web resources, but can't understand. Just for the record:




  • https://superuser.com/questions/179919/x86-vs-x64-why-is-32-bit-called-x86

  • Difference between x86, x32, and x64 architectures?

  • https://en.wikipedia.org/wiki/X86

  • https://en.wikipedia.org/wiki/IA-32

  • https://en.wikipedia.org/wiki/X86-64










share|improve this question
























  • I removed the architecture tag because that refers to software architecture only.
    – Hadi Brais
    Nov 18 at 20:51













up vote
2
down vote

favorite









up vote
2
down vote

favorite











This question is about terminology for 32-bit vs. 64-bit x86.



If I have 2 directories with source code of the same program - one for 32-bit Windows and another for 64-bit Windows, what will be the more correct names for these folders:





  • x86-64 and x64?

  • or IA-32 and x64?


I already have read some web resources, but can't understand. Just for the record:




  • https://superuser.com/questions/179919/x86-vs-x64-why-is-32-bit-called-x86

  • Difference between x86, x32, and x64 architectures?

  • https://en.wikipedia.org/wiki/X86

  • https://en.wikipedia.org/wiki/IA-32

  • https://en.wikipedia.org/wiki/X86-64










share|improve this question















This question is about terminology for 32-bit vs. 64-bit x86.



If I have 2 directories with source code of the same program - one for 32-bit Windows and another for 64-bit Windows, what will be the more correct names for these folders:





  • x86-64 and x64?

  • or IA-32 and x64?


I already have read some web resources, but can't understand. Just for the record:




  • https://superuser.com/questions/179919/x86-vs-x64-why-is-32-bit-called-x86

  • Difference between x86, x32, and x64 architectures?

  • https://en.wikipedia.org/wiki/X86

  • https://en.wikipedia.org/wiki/IA-32

  • https://en.wikipedia.org/wiki/X86-64







x86 64bit x86-64 terminology






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 18 at 20:51









Hadi Brais

8,92911737




8,92911737










asked Nov 18 at 18:46









john c. j.

633830




633830












  • I removed the architecture tag because that refers to software architecture only.
    – Hadi Brais
    Nov 18 at 20:51


















  • I removed the architecture tag because that refers to software architecture only.
    – Hadi Brais
    Nov 18 at 20:51
















I removed the architecture tag because that refers to software architecture only.
– Hadi Brais
Nov 18 at 20:51




I removed the architecture tag because that refers to software architecture only.
– Hadi Brais
Nov 18 at 20:51












2 Answers
2






active

oldest

votes

















up vote
3
down vote



accepted










x86 can be a broad term that covers all CPUs that are backwards-compatible with 8086, and all extensions to the architecture including x86-64.



Note that IA-64 is not x86 at all, it's Itanium (a 64-bit VLIW architecture with explicit speculation / parallelism). It was also designed by Intel, but is totally unrelated to x86 in terms of compatibility or design. (Early IA-64 CPUs also had an x86 core integrated, for compatibility. Intel was pushing IA-64 while AMD was pushing AMD64/x86-64)



Intel sometimes talks about their CPUs as having IA cores + the integrated GPU and the other logic outside of each IA core. (IA = Intel Architecture = x86).





32-bit x86 specifically (excluding 16-bit or 64-bit) can be called




  • IA-32 (used sometimes by Intel)

  • i386 or i686 (common on Linux)


  • (Windows only): x86. Yes really: in the Windows world, "x86" specifically means 32-bit. That's why you have a Program Files (x86) directory with that name. This choice causes potential terminology confusion for everyone, because "x86" is still by far the best way to refer to the architecture in general, as opposed to ARM or MIPS.

  • rarely: x86-32. This is not used officially by any hardware or software vendors I'm aware of, but it is a useful term that's unambiguous.


Never call it x32. x32 is an ILP32 variant of the x86-64 System V ABI: 32-bit pointers in 64-bit mode. https://en.wikipedia.org/wiki/X32_ABI





64-bit x86 is easier to refer to specifically (excluding 32 and 16-bit):




  • x86-64 or x86_64 (the dash vs. underscore is not at all significant. In text most people use a dash, but only _ can be part of function/variable names in most languages.)

  • AMD64 or amd64

  • (Windows only) x64

  • (Mostly only in Intel CPU-architecture documentation, these aren't popular and I haven't seen them in software directory names or config options) IA-32e or Intel64. The "e" stands for "extensions", apparently. https://en.wikipedia.org/wiki/X86-64#Intel_64 has a History section that mentions naming.


Not IA-64, that's a separate architecture.



Of course if you want to be pedantic, x86-64 CPUs are required to support legacy mode, so you can run a pure 32-bit OS on an x86-64 CPU, and it's still a 64-bit CPU.



With a 64-bit kernel running 32-bit user-space, the CPU is in "compatibility" mode, which is a lot like 32-bit protected mode except the page-table format has 52-bit physical addresses. (More than the 36-bit physical address width from PAE page tables, which the x86-64 page-table format is based on.) User-space would be hard pressed to tell the difference between running under a 32-bit kernel vs. a 64-bit kernel, except for OS-specific stuff like asking the kernel with a system call.





Software directory names



Many projects go with i386 vs. x86-64 or amd64. That would be my recommendation as the least ambiguous. (Or maybe i686 if you don't really care about compat with CPUs older than PPro.)



Some, like GMP (the GNU MultiPrecision library) which has hand-written asm for many architectures, uses "x86" and "x86_64". https://gmplib.org/repo/gmp/file/tip/mpn.



(GMP has multiple hand-tuned versions of the same function for different x86 CPUs. Within "x86", there are subdirectories with different versions of functions tuned for Pentum, Core 2, Haswell, and/or taking advantage of instruction-set extensions like BMI2. This is unusual; most projects don't get that specific. Some will maybe have some stuff to take advantage of AVX or AVX512, or SSE4.1 for example, but that's often just within source files.)






share|improve this answer






























    up vote
    2
    down vote














    • x86-32 versions are for Intel-compatible 32-bit processors.

    • x86-64 versions are for Intel-compatible 64-bit processors.

    • IA-64 versions are for specifically 64-bit Intel Itanium microprocessors.


    Sometimes referred as:




    • x86-32 sometimes referred as IA-32, i386 or i686, x86 (see note 1), x32 (see note 2).

    • x86-64 sometimes referred as AMD64, Intel 64, x64.


    Note 1: Strictly speaking, it's not correct, because




    x86 covers all CPUs that are backwards-compatible with 8086 and all extensions to the architecture including x86-32 and x86-64.




    Though, this shortening is often used in Windows world.



    Note 2: Should not be used to avoid confusion with x32 ABI.



    Sources:




    • https://social.msdn.microsoft.com/Forums/vstudio/en-US/3da8f2fd-1089-4000-8c3f-f9225f0635e3

    • https://stackoverflow.com/questions/53364320#53364541






    share|improve this answer























    • Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
      – Peter Cordes
      Nov 18 at 20:25











    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53364320%2fthe-most-correct-way-to-refer-to-32-bit-and-64-bit-versions-of-programs%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    3
    down vote



    accepted










    x86 can be a broad term that covers all CPUs that are backwards-compatible with 8086, and all extensions to the architecture including x86-64.



    Note that IA-64 is not x86 at all, it's Itanium (a 64-bit VLIW architecture with explicit speculation / parallelism). It was also designed by Intel, but is totally unrelated to x86 in terms of compatibility or design. (Early IA-64 CPUs also had an x86 core integrated, for compatibility. Intel was pushing IA-64 while AMD was pushing AMD64/x86-64)



    Intel sometimes talks about their CPUs as having IA cores + the integrated GPU and the other logic outside of each IA core. (IA = Intel Architecture = x86).





    32-bit x86 specifically (excluding 16-bit or 64-bit) can be called




    • IA-32 (used sometimes by Intel)

    • i386 or i686 (common on Linux)


    • (Windows only): x86. Yes really: in the Windows world, "x86" specifically means 32-bit. That's why you have a Program Files (x86) directory with that name. This choice causes potential terminology confusion for everyone, because "x86" is still by far the best way to refer to the architecture in general, as opposed to ARM or MIPS.

    • rarely: x86-32. This is not used officially by any hardware or software vendors I'm aware of, but it is a useful term that's unambiguous.


    Never call it x32. x32 is an ILP32 variant of the x86-64 System V ABI: 32-bit pointers in 64-bit mode. https://en.wikipedia.org/wiki/X32_ABI





    64-bit x86 is easier to refer to specifically (excluding 32 and 16-bit):




    • x86-64 or x86_64 (the dash vs. underscore is not at all significant. In text most people use a dash, but only _ can be part of function/variable names in most languages.)

    • AMD64 or amd64

    • (Windows only) x64

    • (Mostly only in Intel CPU-architecture documentation, these aren't popular and I haven't seen them in software directory names or config options) IA-32e or Intel64. The "e" stands for "extensions", apparently. https://en.wikipedia.org/wiki/X86-64#Intel_64 has a History section that mentions naming.


    Not IA-64, that's a separate architecture.



    Of course if you want to be pedantic, x86-64 CPUs are required to support legacy mode, so you can run a pure 32-bit OS on an x86-64 CPU, and it's still a 64-bit CPU.



    With a 64-bit kernel running 32-bit user-space, the CPU is in "compatibility" mode, which is a lot like 32-bit protected mode except the page-table format has 52-bit physical addresses. (More than the 36-bit physical address width from PAE page tables, which the x86-64 page-table format is based on.) User-space would be hard pressed to tell the difference between running under a 32-bit kernel vs. a 64-bit kernel, except for OS-specific stuff like asking the kernel with a system call.





    Software directory names



    Many projects go with i386 vs. x86-64 or amd64. That would be my recommendation as the least ambiguous. (Or maybe i686 if you don't really care about compat with CPUs older than PPro.)



    Some, like GMP (the GNU MultiPrecision library) which has hand-written asm for many architectures, uses "x86" and "x86_64". https://gmplib.org/repo/gmp/file/tip/mpn.



    (GMP has multiple hand-tuned versions of the same function for different x86 CPUs. Within "x86", there are subdirectories with different versions of functions tuned for Pentum, Core 2, Haswell, and/or taking advantage of instruction-set extensions like BMI2. This is unusual; most projects don't get that specific. Some will maybe have some stuff to take advantage of AVX or AVX512, or SSE4.1 for example, but that's often just within source files.)






    share|improve this answer



























      up vote
      3
      down vote



      accepted










      x86 can be a broad term that covers all CPUs that are backwards-compatible with 8086, and all extensions to the architecture including x86-64.



      Note that IA-64 is not x86 at all, it's Itanium (a 64-bit VLIW architecture with explicit speculation / parallelism). It was also designed by Intel, but is totally unrelated to x86 in terms of compatibility or design. (Early IA-64 CPUs also had an x86 core integrated, for compatibility. Intel was pushing IA-64 while AMD was pushing AMD64/x86-64)



      Intel sometimes talks about their CPUs as having IA cores + the integrated GPU and the other logic outside of each IA core. (IA = Intel Architecture = x86).





      32-bit x86 specifically (excluding 16-bit or 64-bit) can be called




      • IA-32 (used sometimes by Intel)

      • i386 or i686 (common on Linux)


      • (Windows only): x86. Yes really: in the Windows world, "x86" specifically means 32-bit. That's why you have a Program Files (x86) directory with that name. This choice causes potential terminology confusion for everyone, because "x86" is still by far the best way to refer to the architecture in general, as opposed to ARM or MIPS.

      • rarely: x86-32. This is not used officially by any hardware or software vendors I'm aware of, but it is a useful term that's unambiguous.


      Never call it x32. x32 is an ILP32 variant of the x86-64 System V ABI: 32-bit pointers in 64-bit mode. https://en.wikipedia.org/wiki/X32_ABI





      64-bit x86 is easier to refer to specifically (excluding 32 and 16-bit):




      • x86-64 or x86_64 (the dash vs. underscore is not at all significant. In text most people use a dash, but only _ can be part of function/variable names in most languages.)

      • AMD64 or amd64

      • (Windows only) x64

      • (Mostly only in Intel CPU-architecture documentation, these aren't popular and I haven't seen them in software directory names or config options) IA-32e or Intel64. The "e" stands for "extensions", apparently. https://en.wikipedia.org/wiki/X86-64#Intel_64 has a History section that mentions naming.


      Not IA-64, that's a separate architecture.



      Of course if you want to be pedantic, x86-64 CPUs are required to support legacy mode, so you can run a pure 32-bit OS on an x86-64 CPU, and it's still a 64-bit CPU.



      With a 64-bit kernel running 32-bit user-space, the CPU is in "compatibility" mode, which is a lot like 32-bit protected mode except the page-table format has 52-bit physical addresses. (More than the 36-bit physical address width from PAE page tables, which the x86-64 page-table format is based on.) User-space would be hard pressed to tell the difference between running under a 32-bit kernel vs. a 64-bit kernel, except for OS-specific stuff like asking the kernel with a system call.





      Software directory names



      Many projects go with i386 vs. x86-64 or amd64. That would be my recommendation as the least ambiguous. (Or maybe i686 if you don't really care about compat with CPUs older than PPro.)



      Some, like GMP (the GNU MultiPrecision library) which has hand-written asm for many architectures, uses "x86" and "x86_64". https://gmplib.org/repo/gmp/file/tip/mpn.



      (GMP has multiple hand-tuned versions of the same function for different x86 CPUs. Within "x86", there are subdirectories with different versions of functions tuned for Pentum, Core 2, Haswell, and/or taking advantage of instruction-set extensions like BMI2. This is unusual; most projects don't get that specific. Some will maybe have some stuff to take advantage of AVX or AVX512, or SSE4.1 for example, but that's often just within source files.)






      share|improve this answer

























        up vote
        3
        down vote



        accepted







        up vote
        3
        down vote



        accepted






        x86 can be a broad term that covers all CPUs that are backwards-compatible with 8086, and all extensions to the architecture including x86-64.



        Note that IA-64 is not x86 at all, it's Itanium (a 64-bit VLIW architecture with explicit speculation / parallelism). It was also designed by Intel, but is totally unrelated to x86 in terms of compatibility or design. (Early IA-64 CPUs also had an x86 core integrated, for compatibility. Intel was pushing IA-64 while AMD was pushing AMD64/x86-64)



        Intel sometimes talks about their CPUs as having IA cores + the integrated GPU and the other logic outside of each IA core. (IA = Intel Architecture = x86).





        32-bit x86 specifically (excluding 16-bit or 64-bit) can be called




        • IA-32 (used sometimes by Intel)

        • i386 or i686 (common on Linux)


        • (Windows only): x86. Yes really: in the Windows world, "x86" specifically means 32-bit. That's why you have a Program Files (x86) directory with that name. This choice causes potential terminology confusion for everyone, because "x86" is still by far the best way to refer to the architecture in general, as opposed to ARM or MIPS.

        • rarely: x86-32. This is not used officially by any hardware or software vendors I'm aware of, but it is a useful term that's unambiguous.


        Never call it x32. x32 is an ILP32 variant of the x86-64 System V ABI: 32-bit pointers in 64-bit mode. https://en.wikipedia.org/wiki/X32_ABI





        64-bit x86 is easier to refer to specifically (excluding 32 and 16-bit):




        • x86-64 or x86_64 (the dash vs. underscore is not at all significant. In text most people use a dash, but only _ can be part of function/variable names in most languages.)

        • AMD64 or amd64

        • (Windows only) x64

        • (Mostly only in Intel CPU-architecture documentation, these aren't popular and I haven't seen them in software directory names or config options) IA-32e or Intel64. The "e" stands for "extensions", apparently. https://en.wikipedia.org/wiki/X86-64#Intel_64 has a History section that mentions naming.


        Not IA-64, that's a separate architecture.



        Of course if you want to be pedantic, x86-64 CPUs are required to support legacy mode, so you can run a pure 32-bit OS on an x86-64 CPU, and it's still a 64-bit CPU.



        With a 64-bit kernel running 32-bit user-space, the CPU is in "compatibility" mode, which is a lot like 32-bit protected mode except the page-table format has 52-bit physical addresses. (More than the 36-bit physical address width from PAE page tables, which the x86-64 page-table format is based on.) User-space would be hard pressed to tell the difference between running under a 32-bit kernel vs. a 64-bit kernel, except for OS-specific stuff like asking the kernel with a system call.





        Software directory names



        Many projects go with i386 vs. x86-64 or amd64. That would be my recommendation as the least ambiguous. (Or maybe i686 if you don't really care about compat with CPUs older than PPro.)



        Some, like GMP (the GNU MultiPrecision library) which has hand-written asm for many architectures, uses "x86" and "x86_64". https://gmplib.org/repo/gmp/file/tip/mpn.



        (GMP has multiple hand-tuned versions of the same function for different x86 CPUs. Within "x86", there are subdirectories with different versions of functions tuned for Pentum, Core 2, Haswell, and/or taking advantage of instruction-set extensions like BMI2. This is unusual; most projects don't get that specific. Some will maybe have some stuff to take advantage of AVX or AVX512, or SSE4.1 for example, but that's often just within source files.)






        share|improve this answer














        x86 can be a broad term that covers all CPUs that are backwards-compatible with 8086, and all extensions to the architecture including x86-64.



        Note that IA-64 is not x86 at all, it's Itanium (a 64-bit VLIW architecture with explicit speculation / parallelism). It was also designed by Intel, but is totally unrelated to x86 in terms of compatibility or design. (Early IA-64 CPUs also had an x86 core integrated, for compatibility. Intel was pushing IA-64 while AMD was pushing AMD64/x86-64)



        Intel sometimes talks about their CPUs as having IA cores + the integrated GPU and the other logic outside of each IA core. (IA = Intel Architecture = x86).





        32-bit x86 specifically (excluding 16-bit or 64-bit) can be called




        • IA-32 (used sometimes by Intel)

        • i386 or i686 (common on Linux)


        • (Windows only): x86. Yes really: in the Windows world, "x86" specifically means 32-bit. That's why you have a Program Files (x86) directory with that name. This choice causes potential terminology confusion for everyone, because "x86" is still by far the best way to refer to the architecture in general, as opposed to ARM or MIPS.

        • rarely: x86-32. This is not used officially by any hardware or software vendors I'm aware of, but it is a useful term that's unambiguous.


        Never call it x32. x32 is an ILP32 variant of the x86-64 System V ABI: 32-bit pointers in 64-bit mode. https://en.wikipedia.org/wiki/X32_ABI





        64-bit x86 is easier to refer to specifically (excluding 32 and 16-bit):




        • x86-64 or x86_64 (the dash vs. underscore is not at all significant. In text most people use a dash, but only _ can be part of function/variable names in most languages.)

        • AMD64 or amd64

        • (Windows only) x64

        • (Mostly only in Intel CPU-architecture documentation, these aren't popular and I haven't seen them in software directory names or config options) IA-32e or Intel64. The "e" stands for "extensions", apparently. https://en.wikipedia.org/wiki/X86-64#Intel_64 has a History section that mentions naming.


        Not IA-64, that's a separate architecture.



        Of course if you want to be pedantic, x86-64 CPUs are required to support legacy mode, so you can run a pure 32-bit OS on an x86-64 CPU, and it's still a 64-bit CPU.



        With a 64-bit kernel running 32-bit user-space, the CPU is in "compatibility" mode, which is a lot like 32-bit protected mode except the page-table format has 52-bit physical addresses. (More than the 36-bit physical address width from PAE page tables, which the x86-64 page-table format is based on.) User-space would be hard pressed to tell the difference between running under a 32-bit kernel vs. a 64-bit kernel, except for OS-specific stuff like asking the kernel with a system call.





        Software directory names



        Many projects go with i386 vs. x86-64 or amd64. That would be my recommendation as the least ambiguous. (Or maybe i686 if you don't really care about compat with CPUs older than PPro.)



        Some, like GMP (the GNU MultiPrecision library) which has hand-written asm for many architectures, uses "x86" and "x86_64". https://gmplib.org/repo/gmp/file/tip/mpn.



        (GMP has multiple hand-tuned versions of the same function for different x86 CPUs. Within "x86", there are subdirectories with different versions of functions tuned for Pentum, Core 2, Haswell, and/or taking advantage of instruction-set extensions like BMI2. This is unusual; most projects don't get that specific. Some will maybe have some stuff to take advantage of AVX or AVX512, or SSE4.1 for example, but that's often just within source files.)







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 18 at 20:47









        Hadi Brais

        8,92911737




        8,92911737










        answered Nov 18 at 19:14









        Peter Cordes

        116k16176302




        116k16176302
























            up vote
            2
            down vote














            • x86-32 versions are for Intel-compatible 32-bit processors.

            • x86-64 versions are for Intel-compatible 64-bit processors.

            • IA-64 versions are for specifically 64-bit Intel Itanium microprocessors.


            Sometimes referred as:




            • x86-32 sometimes referred as IA-32, i386 or i686, x86 (see note 1), x32 (see note 2).

            • x86-64 sometimes referred as AMD64, Intel 64, x64.


            Note 1: Strictly speaking, it's not correct, because




            x86 covers all CPUs that are backwards-compatible with 8086 and all extensions to the architecture including x86-32 and x86-64.




            Though, this shortening is often used in Windows world.



            Note 2: Should not be used to avoid confusion with x32 ABI.



            Sources:




            • https://social.msdn.microsoft.com/Forums/vstudio/en-US/3da8f2fd-1089-4000-8c3f-f9225f0635e3

            • https://stackoverflow.com/questions/53364320#53364541






            share|improve this answer























            • Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
              – Peter Cordes
              Nov 18 at 20:25















            up vote
            2
            down vote














            • x86-32 versions are for Intel-compatible 32-bit processors.

            • x86-64 versions are for Intel-compatible 64-bit processors.

            • IA-64 versions are for specifically 64-bit Intel Itanium microprocessors.


            Sometimes referred as:




            • x86-32 sometimes referred as IA-32, i386 or i686, x86 (see note 1), x32 (see note 2).

            • x86-64 sometimes referred as AMD64, Intel 64, x64.


            Note 1: Strictly speaking, it's not correct, because




            x86 covers all CPUs that are backwards-compatible with 8086 and all extensions to the architecture including x86-32 and x86-64.




            Though, this shortening is often used in Windows world.



            Note 2: Should not be used to avoid confusion with x32 ABI.



            Sources:




            • https://social.msdn.microsoft.com/Forums/vstudio/en-US/3da8f2fd-1089-4000-8c3f-f9225f0635e3

            • https://stackoverflow.com/questions/53364320#53364541






            share|improve this answer























            • Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
              – Peter Cordes
              Nov 18 at 20:25













            up vote
            2
            down vote










            up vote
            2
            down vote










            • x86-32 versions are for Intel-compatible 32-bit processors.

            • x86-64 versions are for Intel-compatible 64-bit processors.

            • IA-64 versions are for specifically 64-bit Intel Itanium microprocessors.


            Sometimes referred as:




            • x86-32 sometimes referred as IA-32, i386 or i686, x86 (see note 1), x32 (see note 2).

            • x86-64 sometimes referred as AMD64, Intel 64, x64.


            Note 1: Strictly speaking, it's not correct, because




            x86 covers all CPUs that are backwards-compatible with 8086 and all extensions to the architecture including x86-32 and x86-64.




            Though, this shortening is often used in Windows world.



            Note 2: Should not be used to avoid confusion with x32 ABI.



            Sources:




            • https://social.msdn.microsoft.com/Forums/vstudio/en-US/3da8f2fd-1089-4000-8c3f-f9225f0635e3

            • https://stackoverflow.com/questions/53364320#53364541






            share|improve this answer















            • x86-32 versions are for Intel-compatible 32-bit processors.

            • x86-64 versions are for Intel-compatible 64-bit processors.

            • IA-64 versions are for specifically 64-bit Intel Itanium microprocessors.


            Sometimes referred as:




            • x86-32 sometimes referred as IA-32, i386 or i686, x86 (see note 1), x32 (see note 2).

            • x86-64 sometimes referred as AMD64, Intel 64, x64.


            Note 1: Strictly speaking, it's not correct, because




            x86 covers all CPUs that are backwards-compatible with 8086 and all extensions to the architecture including x86-32 and x86-64.




            Though, this shortening is often used in Windows world.



            Note 2: Should not be used to avoid confusion with x32 ABI.



            Sources:




            • https://social.msdn.microsoft.com/Forums/vstudio/en-US/3da8f2fd-1089-4000-8c3f-f9225f0635e3

            • https://stackoverflow.com/questions/53364320#53364541







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 18 at 21:26

























            answered Nov 18 at 20:07









            john c. j.

            633830




            633830












            • Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
              – Peter Cordes
              Nov 18 at 20:25


















            • Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
              – Peter Cordes
              Nov 18 at 20:25
















            Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
            – Peter Cordes
            Nov 18 at 20:25




            Oh right, x86-32 is sometimes used, but not in any vendor documentation. It is nicely unambiguous, though, and unlike i386 doesn't imply avoiding SSE2 or other x86 extensions from after 386.
            – Peter Cordes
            Nov 18 at 20:25


















             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53364320%2fthe-most-correct-way-to-refer-to-32-bit-and-64-bit-versions-of-programs%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

            Alcedinidae

            RAC Tourist Trophy