Compiler Identification | |
#define | YEP_MICROSOFT_COMPILER |
Defined only when Microsoft C/C++ compiler (cl.exe) is used for compilation. | |
#define | YEP_GNU_COMPILER |
Defined only when GNU C/C++ compiler (gcc/g++) is used for compilation. | |
#define | YEP_INTEL_COMPILER |
Defined only when Intel C/C++ compiler is used for compilation. | |
#define | YEP_INTEL_COMPILER_FOR_WINDOWS |
Defined only when Intel C/C++ compiler for Windows (icl.exe) is used for compilation. | |
#define | YEP_INTEL_COMPILER_FOR_UNIX |
Defined only when Intel C/C++ compiler for Linux, or Mac OS X (icc/icpc) is used for compilation. | |
#define | YEP_CLANG_COMPILER |
Defined only when Clang compiler (clang/clang++) is used for compilation. | |
#define | YEP_ARM_COMPILER |
Defined only when ARM compiler (armcc) is used for compilation. | |
#define | YEP_NVIDIA_COMPILER |
Defined only when nVidia CUDA compiler (nvcc) is used for compilation of GPU-specific code. | |
#define | YEP_MSVC_COMPATIBLE_COMPILER |
Defined only when Visual Studio-compatible compiler is used for compilation. More... | |
#define | YEP_GCC_COMPATIBLE_COMPILER |
Defined only when GCC-compatible compiler is used for compilation. More... | |
Target Architecture Identification | |
#define | YEP_X86_CPU |
Defined only when the target architecture is x86. More... | |
#define | YEP_X64_CPU |
Defined only when the target architecture is x86-64. More... | |
#define | YEP_IA64_CPU |
Defined only when the target architecture is IA64. More... | |
#define | YEP_ARM_CPU |
Defined only when the target architecture is ARM. More... | |
#define | YEP_MIPS_CPU |
Defined only when the target architecture is MIPS. More... | |
#define | YEP_SPARC_CPU |
Defined only when the target architecture is SPARC. More... | |
#define | YEP_POWERPC_CPU |
Defined only when the target architecture is PowerPC. More... | |
#define | YEP_CUDA_GPU |
Defined only when the target architecture is a CUDA-enabled GPU. | |
Common Target ISA Feature Identification | |
#define | YEP_PROCESSOR_SUPPORTS_MISALIGNED_MEMORY_ACCESS |
Defined only when the target processor (either CPU or GPU) supports misaligned memory access. More... | |
#define | YEP_PROCESSOR_SUPPORTS_FMA_EXTENSION |
Defined only when the target processor (either CPU or GPU) supports fused multiply-add instruction. | |
x86/x86-64 Target ISA Feature Identification | |
#define | YEP_CPU_SUPPORTS_X86_MMX_EXTENSION |
Defined only when the target processor supports x86/x86-64 MMX instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_MMXPLUS_EXTENSION |
Defined only when the target processor supports x86/x86-64 MMX+ instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_3DNOW_EXTENSION |
Defined only when the target processor supports x86/x86-64 3dnow! instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_3DNOWPLUS_EXTENSION |
Defined only when the target processor supports x86/x86-64 3dnow!+ instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSE_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSE2_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE2 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSE3_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE3 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSSE3_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSSE3 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSE4A_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE4a instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSE4_1_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE4.1 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_SSE4_2_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE4.2 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_AVX_EXTENSION |
Defined only when the target processor supports x86/x86-64 AVX instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_AVX2_EXTENSION |
Defined only when the target processor supports x86/x86-64 AVX2 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_F16C_EXTENSION |
Defined only when the target processor supports x86/x86-64 F16C instructions. More... | |
#define | YEP_CPU_SUPPORTS_X86_FMA4_EXTENSION |
Defined only when the target processor supports x86/x86-64 FMA4 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_FMA3_EXTENSION |
Defined only when the target processor supports x86/x86-64 FMA3 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_XOP_EXTENSION |
Defined only when the target processor supports x86/x86-64 XOP instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_LZCNT_EXTENSION |
Defined only when the target processor supports x86/x86-64 LZCNT instruction. More... | |
#define | YEP_CPU_SUPPORTS_X86_POPCNT_EXTENSION |
Defined only when the target processor supports x86/x86-64 POPCNT instruction. More... | |
#define | YEP_CPU_SUPPORTS_X86_TBM_EXTENSION |
Defined only when the target processor supports x86/x86-64 TBM instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_BMI_EXTENSION |
Defined only when the target processor supports x86/x86-64 BMI instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_BMI2_EXTENSION |
Defined only when the target processor supports x86/x86-64 BMI2 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_X86_KNC_EXTENSION |
Defined only when the target processor supports x86/x86-64 KNC instruction set. More... | |
ARM Target ISA Feature Identification | |
#define | YEP_CPU_SUPPORTS_ARM_V4_INSTRUCTIONS |
Defined only when the target processor supports ARMv4 or higher instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_V5_INSTRUCTIONS |
Defined only when the target processor supports ARMv5 or higher instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_V5E_INSTRUCTIONS |
Defined only when the target processor supports ARMv5 DSP instructions. More... | |
#define | YEP_CPU_SUPPORTS_ARM_V6_INSTRUCTIONS |
Defined only when the target processor supports ARMv6 or higher instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_V6K_INSTRUCTIONS |
Defined only when the target processor supports ARMv6 multiprocessing extension. More... | |
#define | YEP_CPU_SUPPORTS_ARM_V7_INSTRUCTIONS |
Defined only when the target processor supports ARMv7 or higher instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_XSCALE_EXTENSION |
Defined only when the target processor supports ARM XScale instructions. More... | |
#define | YEP_CPU_SUPPORTS_ARM_WMMX_EXTENSION |
Defined only when the target processor supports ARM Wireless MMX instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_NEON_EXTENSION |
Defined only when the target processor supports ARM NEON instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_VFP_EXTENSION |
Defined only when the target processor supports ARM VFP instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_VFP2_EXTENSION |
Defined only when the target processor supports ARM VFPv2 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_VFP3_EXTENSION |
Defined only when the target processor supports ARM VFPv3 instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_VFP3_D32_EXTENSION |
Defined only when the target processor supports 32 double-precision registers in ARM VFPv3 (or higher) instruction set. More... | |
#define | YEP_CPU_SUPPORTS_ARM_DIV_EXTENSION |
Defined only when the target processor supports ARM SDIV/UDIV instructions. More... | |
Compiler Support Identification for x86/x86-64 Intrinsics | |
#define | YEP_COMPILER_SUPPORTS_X86_MMX_EXTENSION |
Defined only when the compiler supports x86/x86-64 MMX intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_MMXPLUS_EXTENSION |
Defined only when the compiler supports x86/x86-64 MMX+ intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_3DNOW_EXTENSION |
Defined only when the compiler supports x86/x86-64 3dnow! intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_3DNOWPLUS_EXTENSION |
Defined only when the compiler supports x86/x86-64 3dnow!+ intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSE_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSE2_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE2 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSE3_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE3 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSSE3_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSSE3 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSE4A_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE4a intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSE4_1_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE4.1 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_SSE4_2_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE4.2 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_AVX_EXTENSION |
Defined only when the compiler supports x86/x86-64 AVX intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_AVX2_EXTENSION |
Defined only when the compiler supports x86/x86-64 AVX2 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_F16C_EXTENSION |
Defined only when the compiler supports x86/x86-64 F16C intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_FMA4_EXTENSION |
Defined only when the compiler supports x86/x86-64 FMA4 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_FMA3_EXTENSION |
Defined only when the compiler supports x86/x86-64 FMA3 intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_XOP_EXTENSION |
Defined only when the compiler supports x86/x86-64 XOP intrinsics for this compilation. More... | |
#define | YEP_COMPILER_SUPPORTS_X86_KNC_EXTENSION |
Defined only when the compiler supports x86/x86-64 KNC intrinsics for this compilation. More... | |
Target ABI Identification | |
#define | YEP_LITTLE_ENDIAN_BYTE_ORDER |
Defined only when the target ABI byte order is little endian. | |
#define | YEP_BIG_ENDIAN_BYTE_ORDER |
Defined only when the target ABI byte order is big endian. | |
#define | YEP_X86_ABI |
Defined only when the target ABI is x86 ABI. | |
#define | YEP_X64_ABI |
Defined only when the target ABI is an x86-64 ABI. More... | |
#define | YEP_MICROSOFT_X64_ABI |
Defined only when the target ABI is Microsoft x86-64 ABI. More... | |
#define | YEP_SYSTEMV_X64_ABI |
Defined only when the target ABI is System V x86-64 ABI. More... | |
#define | YEP_K1OM_X64_ABI |
Defined only when the target ABI is Xeon Phi ABI. More... | |
Miscellaneous | |
#define | YEP_COMPILER_SUPPORTS_HEXADECIMAL_FLOATING_POINT_CONSTANTS |
Defined only when the compiler supports hexadecimal floating-point constants. | |
#define | YEP_NULL_POINTER compiler-specific-nullptr |
Expands to compiler-specific null pointer. | |
#define | YEP_RESTRICT compiler-specific-restrict-qualifier |
Expands to compiler-specific analog of C99 restrict qualifier. More... | |
#define | YEP_NOINLINE compiler-specific-noinline-attribute |
Expands to compiler-specific attribute which indicated that the function should not be inlined. More... | |
#define | YEP_INLINE compiler-specific-inline-attribute |
Expands to compiler-specific attribute which indicated that the function should be inlined. More... | |
#define | YEP_NORETURN compiler-specific-noreturn-attribute |
Expands to compiler-specific attribute which indicated that the function never returns. More... | |
#define | YEP_NATIVE_FUNCTION |
Marks the function as a device function in CUDA. Has no effect in C and C++. More... | |
#define | YEP_LIKELY(condition) (condition) |
Hints the compiler that the condition in the argument is likely to be true. Returns the condition result. | |
#define | YEP_UNLIKELY(condition) (condition) |
Hints the compiler that the condition in the argument is likely to be false. Returns the condition result. | |
#define | YEP_PIC |
Defined only when position-independent code (PIC) generation is enabled. | |
#define | YEP_CUSTOM_RUNTIME |
Defined only when a program is compiled by Visual Studio-compatible compiler without default runtime. More... | |
#define | YEP_COUNT_OF(x) (sizeof(x) / sizeof(x[0])) |
Returns the number of elements in an array. The size of the array must be known at compile time. | |
#define YEP_MSVC_COMPATIBLE_COMPILER |
Defined only when Visual Studio-compatible compiler is used for compilation.
Visual Studio-compatible compilers currently include only Microsoft C/C++ compiler and Intel C/C++ compiler for Windows.
#define YEP_GCC_COMPATIBLE_COMPILER |
Defined only when GCC-compatible compiler is used for compilation.
GCC-compatible compilers currently include only GNU C/C++ compiler, Clang compiler and Intel C/C++ compiler for Linux and Mac OS X.
#define YEP_X86_CPU |
Defined only when the target architecture is x86.
#define YEP_X64_CPU |
Defined only when the target architecture is x86-64.
#define YEP_IA64_CPU |
Defined only when the target architecture is IA64.
#define YEP_ARM_CPU |
Defined only when the target architecture is ARM.
#define YEP_MIPS_CPU |
Defined only when the target architecture is MIPS.
#define YEP_SPARC_CPU |
Defined only when the target architecture is SPARC.
#define YEP_POWERPC_CPU |
Defined only when the target architecture is PowerPC.
#define YEP_PROCESSOR_SUPPORTS_MISALIGNED_MEMORY_ACCESS |
Defined only when the target processor (either CPU or GPU) supports misaligned memory access.
#define YEP_CPU_SUPPORTS_X86_MMX_EXTENSION |
Defined only when the target processor supports x86/x86-64 MMX instruction set.
#define YEP_CPU_SUPPORTS_X86_MMXPLUS_EXTENSION |
Defined only when the target processor supports x86/x86-64 MMX+ instruction set.
#define YEP_CPU_SUPPORTS_X86_3DNOW_EXTENSION |
Defined only when the target processor supports x86/x86-64 3dnow! instruction set.
#define YEP_CPU_SUPPORTS_X86_3DNOWPLUS_EXTENSION |
Defined only when the target processor supports x86/x86-64 3dnow!+ instruction set.
#define YEP_CPU_SUPPORTS_X86_SSE_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE instruction set.
#define YEP_CPU_SUPPORTS_X86_SSE2_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE2 instruction set.
#define YEP_CPU_SUPPORTS_X86_SSE3_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE3 instruction set.
#define YEP_CPU_SUPPORTS_X86_SSSE3_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSSE3 instruction set.
#define YEP_CPU_SUPPORTS_X86_SSE4A_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE4a instruction set.
#define YEP_CPU_SUPPORTS_X86_SSE4_1_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE4.1 instruction set.
#define YEP_CPU_SUPPORTS_X86_SSE4_2_EXTENSION |
Defined only when the target processor supports x86/x86-64 SSE4.2 instruction set.
#define YEP_CPU_SUPPORTS_X86_AVX_EXTENSION |
Defined only when the target processor supports x86/x86-64 AVX instruction set.
#define YEP_CPU_SUPPORTS_X86_AVX2_EXTENSION |
Defined only when the target processor supports x86/x86-64 AVX2 instruction set.
#define YEP_CPU_SUPPORTS_X86_F16C_EXTENSION |
Defined only when the target processor supports x86/x86-64 F16C instructions.
#define YEP_CPU_SUPPORTS_X86_FMA4_EXTENSION |
Defined only when the target processor supports x86/x86-64 FMA4 instruction set.
#define YEP_CPU_SUPPORTS_X86_FMA3_EXTENSION |
Defined only when the target processor supports x86/x86-64 FMA3 instruction set.
#define YEP_CPU_SUPPORTS_X86_XOP_EXTENSION |
Defined only when the target processor supports x86/x86-64 XOP instruction set.
#define YEP_CPU_SUPPORTS_X86_LZCNT_EXTENSION |
Defined only when the target processor supports x86/x86-64 LZCNT instruction.
#define YEP_CPU_SUPPORTS_X86_POPCNT_EXTENSION |
Defined only when the target processor supports x86/x86-64 POPCNT instruction.
#define YEP_CPU_SUPPORTS_X86_TBM_EXTENSION |
Defined only when the target processor supports x86/x86-64 TBM instruction set.
#define YEP_CPU_SUPPORTS_X86_BMI_EXTENSION |
Defined only when the target processor supports x86/x86-64 BMI instruction set.
#define YEP_CPU_SUPPORTS_X86_BMI2_EXTENSION |
Defined only when the target processor supports x86/x86-64 BMI2 instruction set.
#define YEP_CPU_SUPPORTS_X86_KNC_EXTENSION |
Defined only when the target processor supports x86/x86-64 KNC instruction set.
#define YEP_CPU_SUPPORTS_ARM_V4_INSTRUCTIONS |
Defined only when the target processor supports ARMv4 or higher instruction set.
#define YEP_CPU_SUPPORTS_ARM_V5_INSTRUCTIONS |
Defined only when the target processor supports ARMv5 or higher instruction set.
#define YEP_CPU_SUPPORTS_ARM_V5E_INSTRUCTIONS |
Defined only when the target processor supports ARMv5 DSP instructions.
#define YEP_CPU_SUPPORTS_ARM_V6_INSTRUCTIONS |
Defined only when the target processor supports ARMv6 or higher instruction set.
#define YEP_CPU_SUPPORTS_ARM_V6K_INSTRUCTIONS |
Defined only when the target processor supports ARMv6 multiprocessing extension.
#define YEP_CPU_SUPPORTS_ARM_V7_INSTRUCTIONS |
Defined only when the target processor supports ARMv7 or higher instruction set.
#define YEP_CPU_SUPPORTS_ARM_XSCALE_EXTENSION |
Defined only when the target processor supports ARM XScale instructions.
#define YEP_CPU_SUPPORTS_ARM_WMMX_EXTENSION |
Defined only when the target processor supports ARM Wireless MMX instruction set.
#define YEP_CPU_SUPPORTS_ARM_NEON_EXTENSION |
Defined only when the target processor supports ARM NEON instruction set.
#define YEP_CPU_SUPPORTS_ARM_VFP_EXTENSION |
Defined only when the target processor supports ARM VFP instruction set.
#define YEP_CPU_SUPPORTS_ARM_VFP2_EXTENSION |
Defined only when the target processor supports ARM VFPv2 instruction set.
#define YEP_CPU_SUPPORTS_ARM_VFP3_EXTENSION |
Defined only when the target processor supports ARM VFPv3 instruction set.
#define YEP_CPU_SUPPORTS_ARM_VFP3_D32_EXTENSION |
Defined only when the target processor supports 32 double-precision registers in ARM VFPv3 (or higher) instruction set.
#define YEP_CPU_SUPPORTS_ARM_DIV_EXTENSION |
Defined only when the target processor supports ARM SDIV/UDIV instructions.
#define YEP_COMPILER_SUPPORTS_X86_MMX_EXTENSION |
Defined only when the compiler supports x86/x86-64 MMX intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_MMXPLUS_EXTENSION |
Defined only when the compiler supports x86/x86-64 MMX+ intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_3DNOW_EXTENSION |
Defined only when the compiler supports x86/x86-64 3dnow! intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_3DNOWPLUS_EXTENSION |
Defined only when the compiler supports x86/x86-64 3dnow!+ intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSE_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSE2_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE2 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSE3_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE3 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSSE3_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSSE3 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSE4A_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE4a intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSE4_1_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE4.1 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_SSE4_2_EXTENSION |
Defined only when the compiler supports x86/x86-64 SSE4.2 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_AVX_EXTENSION |
Defined only when the compiler supports x86/x86-64 AVX intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_AVX2_EXTENSION |
Defined only when the compiler supports x86/x86-64 AVX2 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_F16C_EXTENSION |
Defined only when the compiler supports x86/x86-64 F16C intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_FMA4_EXTENSION |
Defined only when the compiler supports x86/x86-64 FMA4 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_FMA3_EXTENSION |
Defined only when the compiler supports x86/x86-64 FMA3 intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_XOP_EXTENSION |
Defined only when the compiler supports x86/x86-64 XOP intrinsics for this compilation.
#define YEP_COMPILER_SUPPORTS_X86_KNC_EXTENSION |
Defined only when the compiler supports x86/x86-64 KNC intrinsics for this compilation.
#define YEP_X64_ABI |
Defined only when the target ABI is an x86-64 ABI.
#define YEP_MICROSOFT_X64_ABI |
Defined only when the target ABI is Microsoft x86-64 ABI.
1st argument | rcx/xmm0 |
2nd argument | rdx/xmm1 |
3rd argument | r8/xmm2 |
4th argument | r9/xmm3 |
Return value | rax/xmm0 |
Volatile registers (general-purpose) | rax, rcx, rdx, r8, r9, r10, r11 |
Volatile registers (MMX) | mm0-mm7 |
Volatile registers (SSE) | xmm0-xmm5 |
Non-volatile registers (general-purpose) | rbx, rbp, rdi, rsi, r12, r13, r14, r15 |
#define YEP_SYSTEMV_X64_ABI |
Defined only when the target ABI is System V x86-64 ABI.
1st integer argument | rdi |
2nd integer argument | rsi |
3rd integer argument | rdx |
4th integer argument | rcx |
5th integer argument | r8 |
6th integer argument | r9 |
1st FP argument | xmm0 |
2nd FP argument | xmm1 |
3rd FP argument | xmm2 |
4th FP argument | xmm3 |
5th FP argument | xmm4 |
6th FP argument | xmm5 |
7th FP argument | xmm6 |
8th FP argument | xmm7 |
Return value | rax/xmm0 |
Volatile registers (general-purpose) | rax, rcx, rdx, r8, r9, r10, r11 |
Volatile registers (MMX) | mm0-mm7 |
Volatile registers (SSE) | xmm0-xmm15 |
Non-volatile registers (general-purpose) | rbx, rbp, r12, r13, r14, r15 |
#define YEP_K1OM_X64_ABI |
Defined only when the target ABI is Xeon Phi ABI.
1st integer argument | rdi |
2nd integer argument | rsi |
3rd integer argument | rdx |
4th integer argument | rcx |
5th integer argument | r8 |
6th integer argument | r9 |
1st FP argument | zmm0 |
2nd FP argument | zmm1 |
3rd FP argument | zmm2 |
4th FP argument | zmm3 |
5th FP argument | zmm4 |
6th FP argument | zmm5 |
7th FP argument | zmm6 |
8th FP argument | zmm7 |
Return value | rax/zmm0 |
Volatile registers (general-purpose) | rax, rcx, rdx, r8, r9, r10, r11 |
Volatile registers (MMX) | mm0-mm7 |
Volatile registers (SSE) | zmm0-zmm31 |
Non-volatile registers (general-purpose) | rbx, rbp, r12, r13, r14, r15 |
#define YEP_RESTRICT compiler-specific-restrict-qualifier |
Expands to compiler-specific analog of C99 restrict qualifier.
Supported compilers currently include only Microsoft compiler, Intel compiler, ARM compiler, GCC, Clang, all C99-compatible compilers, and nVidia CUDA compiler.
#define YEP_NOINLINE compiler-specific-noinline-attribute |
Expands to compiler-specific attribute which indicated that the function should not be inlined.
Supported compilers currently include only Microsoft compiler, Intel compiler, GCC, Clang, and nVidia CUDA compiler.
#define YEP_INLINE compiler-specific-inline-attribute |
Expands to compiler-specific attribute which indicated that the function should be inlined.
Supported compilers currently include only Microsoft compiler, Intel compiler, GCC, Clang, all C99-compatible compilers, all C++ compilers, and nVidia CUDA compiler.
#define YEP_NORETURN compiler-specific-noreturn-attribute |
Expands to compiler-specific attribute which indicated that the function never returns.
Supported compilers currently include only Microsoft compiler, Intel compiler, GCC, Clang, ARM compiler, and nVidia CUDA compiler.
#define YEP_NATIVE_FUNCTION |
Marks the function as a device function in CUDA. Has no effect in C and C++.
Expands to device when compiled by CUDA compiler for a device. Expands to nothing in all other cases.
#define YEP_CUSTOM_RUNTIME |
Defined only when a program is compiled by Visual Studio-compatible compiler without default runtime.
When this macro is defined, an unconventional entry point might be used for programs and dynamic libraries.