Supported and Expanded MIPS Intrinsic Functions
The functions that the Windows CE .NET MIPS compiler recognizes are known as supported intrinsic functions. The compiler translates such intrinsic functions into a call to a C runtime (CRT) routine, or into a series of one or more instructions. Intrinsic functions that the compiler always translates into a series of instructions are expanded functions.
For example, the compiler recognizes sqrt as a common intrinsic function for all MIPS targets. sqrt is a floating-point (FP) intrinsic function which takes an FP argument and returns an FP value. MIPS microprocessors with a FP unit support the sqrt instruction. Thus, for MIPS microprocessors with FP unit the compiler will translate the intrinsic function sqrt into an sqrt instruction. For MIPS microprocessors without a FP unit, the compiler translates this intrinsic function into a call to CRT routine. In this way, sqrt is an intrinsic function for all MIPS targets, but expanded into an instruction only for MIPS II FP and MIPS IV FP. For more information about sqrt, see the Microsoft C Run-Time Library for Windows CE .NET.
The following table shows supported intrinsic functions that the compiler recognizes for specific indicated MIPS ISAs.
Intrinsic function | MIPS 16 ASE | MIPS II ISA | MIPS II ISA, FP unit | MIPS IV ISA, FP unit |
---|---|---|---|---|
__emul | Y | Y | Y | Y |
__emulu | Y | Y | Y | Y |
__ll_lshift | Y | Y | Y | Y |
__ll_rshift | Y | Y | Y | Y |
__ull_rshift | Y | Y | Y | Y |
_enable | Y | Y | Y | Y |
_disable | Y | Y | Y | Y |
_ReturnAddress | Y | Y | Y | Y |
__regsize | Y | Y | Y | Y |
_InterlockedDecrement | Y | Y | Y | Y |
_InterlockedExchangeAdd | Y | Y | Y | Y |
_InterlockedCompareExchange | Y | Y | Y | Y |
_InterlockedIncrement | Y | Y | Y | Y |
_InterlockedCompareExchange64 | Y | Y | Y | Y |
ExpInterlockedCompareExchange64 | Y | Y | Y | Y |
_setjmpex | Y | Y | Y | Y |
The following table shows expanded intrinsic functions for specific MIPS ISAs.
Intrinsic function | MIPS 16 ASE | MIPS II ISA | MIPS II ISA, FP unit | MIPS IV ISA, FP unit |
---|---|---|---|---|
__emul | Y | Y | Y | Y |
__emulu | Y | Y | Y | Y |
__ll_lshift | Y | Y | Y | Y |
__ll_rshift | Y | Y | Y | Y |
__ull_rshift | Y | Y | Y | Y |
_enable | N | Y | Y | Y |
_disable | N | Y | Y | Y |
_ReturnAddress | Y | Y | Y | Y |
__regsize | Y | Y | Y | Y |
_InterlockedDecrement | N | N | N | N |
_InterlockedExchangeAdd | N | N | N | N |
_InterlockedCompareExchange | N | N | N | N |
_InterlockedIncrement | N | N | N | N |
_InterlockedCompareExchange64 | N | N | N | N |
ExpInterlockedCompareExchange64 | N | N | N | N |
_setjmpex | N | N | N | N |
See Also
Common Intrinsic Functions | Microprocessor-specific Intrinsic Functions | Intrinsic Functions for MIPS Microprocessors | MIPS Guide
Last updated on Thursday, April 08, 2004
© 1992-2003 Microsoft Corporation. All rights reserved.