Miscellaneous Intrinsics

The intrinsic functions listed here are common to IA-32 and the Itanium® architecture.

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.
void *_alloca(int) Allocates the buffers.
extern 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.
extern 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.
extern 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() Enables the interrupt.
void _disable() 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
extern int _popcnt32(int x) Returns the number of set bits in x.
extern __int64 _rdtsc(void) Returns the current value of the processor's 64-bit time stamp counter.
extern __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.