The following table lists and describes intrinsics that you can use across all Intel® architectures, except where noted.
Intrinsic | Description |
---|---|
_abnormal_termination(void) | Can be invoked only by termination handlers. Returns TRUE if the termination handler is invoked as a result of a premature exit of the corresponding try-finally region. |
__cpuid |
Queries the processor for information about processor type and supported features. The Intel® C++ Compiler supports the Microsoft* implementation of this intrinsic. See the Microsoft documentation for details. |
void *_alloca(int) |
Allocates memory in the local stack frame. The memory is automatically freed upon return from the function. |
int _bit_scan_forward(int x) | Returns the bit index of the least significant set bit of x. If x is 0, the result is undefined. |
int _bit_scan_reverse(int) | Returns the bit index of the most significant set bit of x. If x is 0, the result is undefined. |
int _bswap(int) | Reverses the byte order of x. Bits 0-7 are swapped with bits 24-31, and bits 8-15 are swapped with bits 16-23. |
_exception_code(void) | Returns the exception code. |
_exception_info(void) | Returns the exception information. |
void _enable(void) | Enables the interrupt. |
void _disable(void) | Disables the interrupt. |
int _in_byte(int) | Intrinsic that maps to the IA-32 instruction IN. Transfer data byte from port specified by argument. |
int _in_dword(int) | Intrinsic that maps to the IA-32 instruction IN. Transfer double word from port specified by argument. |
int _in_word(int) | Intrinsic that maps to the IA-32 instruction IN. Transfer word from port specified by argument. |
int _inp(int) | Same as _in_byte |
int _inpd(int) | Same as _in_dword |
int _inpw(int) | Same as _in_word |
int _out_byte(int, int) | Intrinsic that maps to the IA-32 instruction OUT. Transfer data byte in second argument to port specified by first argument. |
int _out_dword(int, int) | Intrinsic that maps to the IA-32 instruction OUT. Transfer double word in second argument to port specified by first argument. |
int _out_word(int, int) | Intrinsic that maps to the IA-32 instruction OUT. Transfer word in second argument to port specified by first argument. |
int _outp(int, int) | Same as _out_byte |
int _outpd(int, int) | Same as _out_dword |
int _outpw(int, int) | Same as _out_word |
int _popcnt32(int x) | Returns the number of set bits in x. |
__int64 _rdtsc(void) | Returns the current value of the processor's 64-bit time stamp counter. This intrinsic is not implemented on ItaniumŪ-based systems. See Time Stamp for an example of using this intrinsic. |
__int64 _rdpmc(int p) | Returns the current value of the 40-bit performance monitoring counter specified by p. |
int _setjmp(jmp_buf) | A fast version of setjmp(), which bypasses the termination handling. Saves the callee-save registers, stack pointer and return address. This intrinsic is not implemented on ItaniumŪ-based systems. |