Intel x86


[Home] Home > Programming > Preprocessor > Architectures >
Intel x86

Description

The x86 architecture as defined by Intel.


Macros

Type Macro Format Description
Identification i386
__i386
__i386__
Defined by GNU C
Version __i386__
__i486__
__i586__
__i686__
Defined by GNU C
Identification __i386 Defined by Sun Studio
Identification __i386
__IA32__
Defined by Stratus VOS C
Identification _M_I86 Only defined for 16-bits architectures

Defined by Visual Studio, Digital Mars, and Watcom C/C++ (see note below)
Identification _M_IX86 Only defined for 32-bits architectures

Defined by Visual Studio, Intel C/C++, Digital Mars, and Watcom C/C++
Version _M_IX86 V00 V = Version
Identification __X86__ Defined by Watcom C/C++
Identification _X86_ Defined by MinGW32
Identification __THW_INTEL__ Defined by XL C/C++
Identification __I86__ Defined by Digital Mars
Version __I86__ V V = Version
Identification __INTEL__ Defined by CodeWarrior
Identification __386 Defined by Diab

Examples

CPU _M_IX86 __I86__
80386 300 3
80486 400 4
Pentium 500 5
Pentium Pro/II 600 6

Notes

Notice that Watcom C/C++ defines _M_IX86 for both 16-bits and 32-bits architectures. Use __386__ or _M_I386 to detect 32-bits architectures in this case.

Notice that the Stratus VOS is big-endian on IA32, so these macros cannot be used to detect endianness if __VOS__ is set.


Copyright © 2010-2024 Paul Ward.
License Information