diff --git a/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md b/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md index 9924b8a155a..db8af5eed10 100644 --- a/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md +++ b/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md @@ -1,9 +1,9 @@ --- description: "Learn more about: _InterlockedCompareExchange intrinsic functions" title: "_InterlockedCompareExchange intrinsic functions" -ms.date: "09/02/2019" -f1_keywords: ["_InterlockedCompareExchange_HLERelease", "_InterlockedCompareExchange8_nf", "_InterlockedCompareExchange16_acq_cpp", "_InterlockedCompareExchange_acq_cpp", "_InterlockedCompareExchange16_rel_cpp", "_InterlockedCompareExchange64_rel_cpp", "_InterlockedCompareExchange_cpp", "_InterlockedCompareExchange16_cpp", "_InterlockedCompareExchange64_acq_cpp", "_InterlockedCompareExchange_acq", "_InterlockedCompareExchange64_rel", "_InterlockedCompareExchange64_nf", "_InterlockedCompareExchange_rel_cpp", "_InterlockedCompareExchange16_nf", "_InterlockedCompareExchange8", "_InterlockedCompareExchange64_np", "_InterlockedCompareExchange16_rel", "_InterlockedCompareExchange64_acq", "_InterlockedCompareExchange8_rel", "_InterlockedCompareExchange_HLEAcquire", "_InterlockedCompareExchange64_HLERelease", "_InterlockedCompareExchange64_cpp", "_InterlockedCompareExchange_np", "_InterlockedCompareExchange8_acq", "_InterlockedCompareExchange16_acq", "_InterlockedCompareExchange_rel", "_InterlockedCompareExchange64_HLEAcquire", "_InterlockedCompareExchange64", "_InterlockedCompareExchange16", "_InterlockedCompareExchange"] -helpviewer_keywords: ["_InterlockedCompareExchange16 intrinsic", "_InterlockedCompareExchange_acq intrinsic", "InterlockedCompareExchange_acq intrinsic", "_InterlockedCompareExchange intrinsic", "InterlockedCompareExchange64 intrinsic", "_InterlockedCompareExchange64_acq intrinsic", "InterlockedCompareExchange16 intrinsic", "_InterlockedCompareExchange_rel intrinsic", "InterlockedCompareExchange intrinsic", "InterlockedCompareExchange64_acq intrinsic", "InterlockedCompareExchange_rel intrinsic", "_InterlockedCompareExchange64 intrinsic", "InterlockedCompareExchange64_rel intrinsic", "_InterlockedCompareExchange64_rel intrinsic"] +ms.date: 10/27/2021 +f1_keywords: ["_InterlockedCompareExchange", "_InterlockedCompareExchange_acq", "_InterlockedCompareExchange_acq_cpp", "_InterlockedCompareExchange_cpp", "_InterlockedCompareExchange_HLEAcquire", "_InterlockedCompareExchange_HLERelease", "_InterlockedCompareExchange_nf", "_InterlockedCompareExchange_np", "_InterlockedCompareExchange_rel", "_InterlockedCompareExchange_rel_cpp", "_InterlockedCompareExchange8", "_InterlockedCompareExchange8_acq", "_InterlockedCompareExchange8_nf", "_InterlockedCompareExchange8_rel", "_InterlockedCompareExchange16", "_InterlockedCompareExchange16_acq", "_InterlockedCompareExchange16_acq_cpp", "_InterlockedCompareExchange16_cpp", "_InterlockedCompareExchange16_nf", "_InterlockedCompareExchange16_rel", "_InterlockedCompareExchange16_rel_cpp", "_InterlockedCompareExchange64", "_InterlockedCompareExchange64_acq", "_InterlockedCompareExchange64_acq_cpp", "_InterlockedCompareExchange64_cpp", "_InterlockedCompareExchange64_HLEAcquire", "_InterlockedCompareExchange64_HLERelease", "_InterlockedCompareExchange64_nf", "_InterlockedCompareExchange64_np", "_InterlockedCompareExchange64_rel", "_InterlockedCompareExchange64_rel_cpp"] +helpviewer_keywords: ["_InterlockedCompareExchange intrinsic", "_InterlockedCompareExchange_acq intrinsic", "_InterlockedCompareExchange_acq_cpp intrinsic", "_InterlockedCompareExchange_cpp intrinsic", "_InterlockedCompareExchange_HLEAcquire intrinsic", "_InterlockedCompareExchange_HLERelease intrinsic", "_InterlockedCompareExchange_nf intrinsic", "_InterlockedCompareExchange_np intrinsic", "_InterlockedCompareExchange_rel intrinsic", "_InterlockedCompareExchange_rel_cpp intrinsic", "_InterlockedCompareExchange8 intrinsic", "_InterlockedCompareExchange8_acq intrinsic", "_InterlockedCompareExchange8_nf intrinsic", "_InterlockedCompareExchange8_rel intrinsic", "_InterlockedCompareExchange16 intrinsic", "_InterlockedCompareExchange16_acq intrinsic", "_InterlockedCompareExchange16_acq_cpp intrinsic", "_InterlockedCompareExchange16_cpp intrinsic", "_InterlockedCompareExchange16_nf intrinsic", "_InterlockedCompareExchange16_rel intrinsic", "_InterlockedCompareExchange16_rel_cpp intrinsic", "_InterlockedCompareExchange64 intrinsic", "_InterlockedCompareExchange64_acq intrinsic", "_InterlockedCompareExchange64_acq_cpp intrinsic", "_InterlockedCompareExchange64_cpp intrinsic", "_InterlockedCompareExchange64_HLEAcquire intrinsic", "_InterlockedCompareExchange64_HLERelease intrinsic", "_InterlockedCompareExchange64_nf intrinsic", "_InterlockedCompareExchange64_np intrinsic", "_InterlockedCompareExchange64_rel intrinsic", "_InterlockedCompareExchange64_rel_cpp intrinsic"] ms.assetid: c3ad79c0-a523-4930-a3a4-69a65d7d5c81 --- # _InterlockedCompareExchange intrinsic functions @@ -35,6 +35,11 @@ long _InterlockedCompareExchange_HLERelease( long Exchange, long Comparand ); +long _InterlockedCompareExchange_nf( + long volatile * Destination, + long Exchange, + long Comparand +); long _InterlockedCompareExchange_np( long volatile * Destination, long Exchange, @@ -147,7 +152,7 @@ The return value is the initial value of the `Destination` pointer. |Intrinsic|Architecture|Header| |---------------|------------------|------------| |`_InterlockedCompareExchange`, `_InterlockedCompareExchange8`, `_InterlockedCompareExchange16`, `_InterlockedCompareExchange64`|x86, ARM, x64, ARM64|\| -|`_InterlockedCompareExchange_acq`, `_InterlockedCompareExchange_rel`, `_InterlockedCompareExchange8_acq`, `_InterlockedCompareExchange8_nf`, `_InterlockedCompareExchange8_rel`,`_InterlockedCompareExchange16_acq`, `_InterlockedCompareExchange16_nf`, `_InterlockedCompareExchange16_rel`, `_InterlockedCompareExchange64_acq`, `_InterlockedCompareExchange64_nf`, `_InterlockedCompareExchange64_rel`,|ARM, ARM64|\| +|`_InterlockedCompareExchange_acq`, `_InterlockedCompareExchange_nf`, `_InterlockedCompareExchange_rel`, `_InterlockedCompareExchange8_acq`, `_InterlockedCompareExchange8_nf`, `_InterlockedCompareExchange8_rel`,`_InterlockedCompareExchange16_acq`, `_InterlockedCompareExchange16_nf`, `_InterlockedCompareExchange16_rel`, `_InterlockedCompareExchange64_acq`, `_InterlockedCompareExchange64_nf`, `_InterlockedCompareExchange64_rel`,|ARM, ARM64|\| |`_InterlockedCompareExchange_np`, `_InterlockedCompareExchange16_np`, `_InterlockedCompareExchange64_np`|x64|\| |`_InterlockedCompareExchange_HLEAcquire`, `_InterlockedCompareExchange_HLERelease`, `_InterlockedCompareExchange64_HLEAcquire`, `_InterlockedCompareExchange64_HLERelease`|x86, x64|\| @@ -161,7 +166,7 @@ There are several variations on `_InterlockedCompareExchange` that vary based on While the `_InterlockedCompareExchange` function operates on long integer values, `_InterlockedCompareExchange8` operates on 8-bit integer values, `_InterlockedCompareExchange16` operates on short integer values, and `_InterlockedCompareExchange64` operates on 64-bit integer values. -On ARM platforms, use the intrinsics with `_acq` and `_rel` suffixes for acquire and release semantics, such as at the beginning and end of a critical section. The ARM intrinsics with an `_nf` ("no fence") suffix don't act as a memory barrier. +On all ARM platforms, use the intrinsics with `_acq` and `_rel` suffixes for acquire and release semantics, such as at the beginning and end of a critical section. The ARM intrinsics with an `_nf` ("no fence") suffix don't act as a memory barrier. The intrinsics with an `_np` ("no prefetch") suffix prevent a possible prefetch operation from being inserted by the compiler. diff --git a/docs/intrinsics/interlockedcompareexchangepointer-intrinsic-functions.md b/docs/intrinsics/interlockedcompareexchangepointer-intrinsic-functions.md index 27cb168956d..56a4d6a0ea1 100644 --- a/docs/intrinsics/interlockedcompareexchangepointer-intrinsic-functions.md +++ b/docs/intrinsics/interlockedcompareexchangepointer-intrinsic-functions.md @@ -45,7 +45,7 @@ void * _InterlockedCompareExchangePointer_np ( void * Exchange, void * Comparand ); -long _InterlockedCompareExchangePointer_rel ( +void * _InterlockedCompareExchangePointer_rel ( void * volatile * Destination, void * Exchange, void * Comparand diff --git a/docs/intrinsics/interlockedor-intrinsic-functions.md b/docs/intrinsics/interlockedor-intrinsic-functions.md index 3af2b8d172d..652661f0226 100644 --- a/docs/intrinsics/interlockedor-intrinsic-functions.md +++ b/docs/intrinsics/interlockedor-intrinsic-functions.md @@ -45,7 +45,7 @@ long _InterlockedOr_rel( ); char _InterlockedOr8( char volatile * Value, - long Mask + char Mask ); char _InterlockedOr8_acq( char volatile * Value,