From 83659acec7fe8a7bb1bcab0c0c782a06f21f2a81 Mon Sep 17 00:00:00 2001 From: Jose Rivero Date: Tue, 26 Oct 2021 20:54:27 -0700 Subject: [PATCH 1/4] Adding missing intrinsic. --- .../interlockedcompareexchange-intrinsic-functions.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md b/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md index 9924b8a155a..280b9d0178c 100644 --- a/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md +++ b/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md @@ -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, From 1db729ca273d4ff77d541ddbcd50a10691c156a8 Mon Sep 17 00:00:00 2001 From: Jose Rivero Date: Tue, 26 Oct 2021 20:54:44 -0700 Subject: [PATCH 2/4] Fix intrinsic signature. --- .../interlockedcompareexchangepointer-intrinsic-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From efee0312b9325e6a7731150dc99299eb71de83ff Mon Sep 17 00:00:00 2001 From: Jose Rivero Date: Wed, 27 Oct 2021 11:42:36 -0700 Subject: [PATCH 3/4] Fix wrong argument type. --- docs/intrinsics/interlockedor-intrinsic-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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, From 869ed250e40c0f5eea9e983ec6fc0e60d26c29cd Mon Sep 17 00:00:00 2001 From: Colin Robertson Date: Wed, 27 Oct 2021 13:12:26 -0700 Subject: [PATCH 4/4] Add headers, requirements --- .../interlockedcompareexchange-intrinsic-functions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md b/docs/intrinsics/interlockedcompareexchange-intrinsic-functions.md index 280b9d0178c..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 @@ -152,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|\| @@ -166,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.