__arm__ | - | Always defined for the ARM compiler,
even when you specify the --thumb option. See
also __ARMCC_VERSION. |
__ARMCC_VERSION | ver | Always defined. It is a decimal number,
and is guaranteed to increase between releases. The format is PVVbbbb where: NoteUse this macro to distinguish between ARM Compiler 4.1 or
later, and other tools that define __arm__. |
__APCS_INTERWORK | - | When you specify the --apcs /interwork option
or set the CPU architecture to ARMv5T or later. |
__APCS_ROPI | - | When you specify the --apcs /ropi option. |
__APCS_RWPI | - | When you specify the --apcs /rwpi option. |
__APCS_FPIC | - | When you specify the --apcs /fpic option. |
__ARRAY_OPERATORS | - | In C++ compiler mode, to specify that array
new and delete are enabled. |
__BASE_FILE__ | name | Always defined. Similar to __FILE__,
but indicates the primary source file rather than the current one
(that is, when the current file is an included file). |
__BIG_ENDIAN | - | If compiling for a big-endian target. |
_BOOL | - | In C++ compiler mode, to specify that bool is
a keyword. |
__cplusplus | - | In C++ compiler mode. |
__CC_ARM | 1 | Always set to 1 for the ARM compiler,
even when you specify the --thumb option. |
__DATE__ | date | Always defined. |
__EDG__ | - | Always defined. |
__EDG_IMPLICIT_USING_STD | - | In C++ mode when you specify the --using_std option. |
__EDG_VERSION__ | - | Always set to an integer value that represents
the version number of the Edison Design Group (EDG)
front-end. For example, version 3.8 is represented as 308. The
version number of the EDG front-end does not necessarily match the
version number of the ARM compiler toolchain. |
__EXCEPTIONS | 1 | In C++ mode when you specify the --exceptions option. |
__FEATURE_SIGNED_CHAR | - | When you specify the --signed_chars option
(used by CHAR_MIN and CHAR_MAX). |
__FILE__ | name | Always defined as a string literal. |
__FP_FAST | - | When you specify the --fpmode=fast option. |
__FP_FENV_EXCEPTIONS | - | When you specify the --fpmode=ieee_full or --fpmode=ieee_fixed options. |
__FP_FENV_ROUNDING | - | When you specify the --fpmode=ieee_full option. |
__FP_IEEE | - | When you specify the --fpmode=ieee_full, --fpmode=ieee_fixed,
or --fpmode=ieee_no_fenv options. |
__FP_INEXACT_EXCEPTION | - | When you specify the --fpmode=ieee_full option. |
__IMPLICIT_INCLUDE | - | When you specify the --implicit_include option. |
__LINE__ | num | Always set. It is the source line number of
the line of code containing this macro. |
__MODULE__ | mod | Contains the filename part of the value
of __FILE__. |
__MULTIFILE | - | When you explicitly or implicitly use the --multifile option.[] |
__OPTIMISE_LEVEL | num | Always set to 2 by default, unless you
change the optimization level using the -Onum option.[] |
__OPTIMISE_SPACE | - | When you specify the -Ospace option. |
__OPTIMISE_TIME | - | When you specify the -Otime option. |
__PLACEMENT_DELETE | - | In C++ mode to specify that placement delete
(that is, an operator delete corresponding to a placement
operator new, to be called if the constructor throws
an exception) is enabled. This is only relevant when using exceptions. |
__RTTI | - | In C++ mode when RTTI is enabled. |
__sizeof_int | 4 | For sizeof(int), but
available in preprocessor expressions. |
__sizeof_long | 4 | For sizeof(long),
but available in preprocessor expressions. |
__sizeof_ptr | 4 | For sizeof(void *),
but available in preprocessor expressions. |
__SOFTFP__ | - | If compiling to use the software floating-point
calling standard and library. Set when you specify the --fpu=softvfp option
for ARM or Thumb, or when you specify --fpu=softvfp+vfpv2 for
Thumb. |
__STDC__ | - | In all compiler modes. |
__STDC_VERSION__ | - | Standard version information. |
__STRICT_ANSI__ | - | When you specify the --strict option. |
__SUPPORT_SNAN__ | - | Support for signalling NaNs when you specify --fpmode=ieee_fixed or --fpmode=ieee_full. |
__TARGET_ARCH_ARM | num | The number of the ARM base architecture of
the target CPU irrespective of whether the compiler is compiling
for ARM or Thumb. For possible values of __TARGET_ARCH_ARM in
relation to the ARM architecture versions, see Table 29. |
__TARGET_ARCH_THUMB | num | The number of the Thumb base architecture
of the target CPU irrespective of whether the compiler is compiling
for ARM or Thumb. The value is defined as zero if the target does
not support Thumb. For possible values of __TARGET_ARCH_THUMB in
relation to the ARM architecture versions, see Table 29. |
__TARGET_ARCH_XX | - | XX represents
the target architecture and its value depends on the target architecture.
For example, if you specify the compiler options --cpu=4T or --cpu=ARM7TDMI then __TARGET_ARCH_4T is
defined.
|
__TARGET_CPU_XX | - | XX represents
the target CPU. The value of XX is
derived from the --cpu compiler option, or the
default if none is specified. For example, if you specify the compiler
option --cpu=ARM7TM then __TARGET_CPU_ARM7TM is defined
and no other symbol starting with __TARGET_CPU_ is
defined.
If you specify the target architecture, then __TARGET_CPU_generic is defined. If
the CPU name specified with --cpu is in lowercase,
it is converted to uppercase. For example, --cpu=Cortex-R4 results
in __TARGET_CPU_CORTEX_R4 being defined (rather
than __TARGET_CPU_Cortex_R4). If
the processor name contains hyphen (-) characters, these are mapped to
an underscore (_). For example, --cpu=ARM1136JF-S is
mapped to __TARGET_CPU_ARM1136JF_S. |
__TARGET_FEATURE_DOUBLEWORD | - | ARMv5T and above. |
__TARGET_FEATURE_DSPMUL | - | If the DSP-enhanced multiplier is available,
for example ARMv5TE. |
__TARGET_FEATURE_MULTIPLY | - | If the target architecture supports the
long multiply instructions MULL and MULAL. |
__TARGET_FEATURE_DIVIDE | - | If the target architecture supports the
hardware divide instruction (that is, ARMv7-M or ARMv7-R). |
__TARGET_FEATURE_THUMB | - | If the target architecture supports Thumb,
ARMv4T or later. |
__TARGET_FPU_xx | - | One of the following is set to indicate
the FPU usage: __TARGET_FPU_NONE
__TARGET_FPU_VFP
__TARGET_FPU_SOFTVFP
In
addition, if compiling with one of the following --fpu options,
the corresponding target name is set: --fpu=softvfp+vfpv2, __TARGET_FPU_SOFTVFP_VFPV2
--fpu=softvfp+vfpv3, __TARGET_FPU_SOFTVFP_VFPV3
--fpu=softvfp+vfpv3_fp16, __TARGET_FPU_SOFTVFP_VFPV3_FP16
--fpu=softvfp+vfpv3_d16, __TARGET_FPU_SOFTVFP_VFPV3_D16
--fpu=softvfp+vfpv3_d16_fp16, __TARGET_FPU_SOFTVFP_VFPV3_D16_FP16
--fpu=vfpv2, __TARGET_FPU_VFPV2
--fpu=vfpv3, __TARGET_FPU_VFPV3
--fpu=vfpv3_fp16, __TARGET_FPU_VFPV3_FP16
--fpu=vfpv3_d16, __TARGET_FPU_VFPV3_D16
--fpu=vfpv3_d16_fp16, __TARGET_FPU_VFPV3_D16_FP16
--fpu=vfpv4, __TARGET_FPU_VFPV4
--fpu=vfpv4_d16, __TARGET_FPU_VFPV4_D16
See --fpu=name for more information. |
__TARGET_PROFILE_R | | When you specify the --cpu=7-R option. |
__TARGET_PROFILE_M | | When you specify any of the following
options: --cpu=6-M
--cpu=6S-M
--cpu=7-M
|
__thumb__ | - | When the compiler is in Thumb state.
That is, you have either specified the --thumb option
on the command-line or #pragma thumb in your source
code. NoteThe compiler might generate
some ARM code even if it is compiling for Thumb. __thumb and __thumb__ become
defined or undefined when using #pragma thumb or #pragma
arm, but do not change in cases where Thumb functions
are generated as ARM code for other reasons (for example, a function
specified as __irq).
|
__TIME__ | time | Always defined. |
_WCHAR_T | - | In C++ mode, to specify that wchar_t is
a keyword. |