Section courante

A propos

Section administrative du site

cmpxchg

Échange de comparaison
LLVM

Syntaxe

cmpxchg [weak] [volatile] ty* pointer, ty cmp, ty new [syncscope("target-scope")] successordering failureordering

Paramètres

Nom Description
weak Ce paramètre permet d'indiquer que l'opération de cmpxchg est faible : cela signifie que la valeur initiale peut ne pas correspondre à la condition de comparaison (c'est-à-dire qu'elle n'échoue pas systématiquement).
volatile Ce paramètre permet d'indiquer que cette opération doit être traitée comme volatile, c'est-à-dire que l'optimisation de compilation ne doit pas affecter son ordre d'exécution (utile dans les systèmes où la valeur peut changer par des moyens extérieurs).
pointer Ce paramètre permet d'indiquer le pointeur vers l'emplacement mémoire à modifier de manière atomique.
cmp Ce paramètre permet d'indiquer la valeur de comparaison : l'opération vérifie si la valeur actuelle à l'emplacement mémoire est égale à cette valeur.
new Ce paramètre permet d'indiquer la nouvelle valeur devant être entreposée si la comparaison réussit (c'est-à-dire que la valeur en mémoire est égale à cmp).
target-scope Ce paramètre permet de définir un contexte de synchronisation pour l'opération, ce qui permet de spécifier des règles de synchronisation spécifiques (comme une synchronisation sur un processeur ou un espace d'adresse particulier).
successordering Ce paramètre permet d'indiquer l'ordre de mémoire devant être appliqué en cas de succès de l'opération (par exemple, monotonic, acquire, release,...).
failureordering Ce paramètre permet d'indiquer l'ordre de mémoire devant être appliqué en cas d'échec de l'opération (similaire à successordering, mais pour le cas où la comparaison échoue).

Description

Cette instruction permet de modifier la mémoire de manière atomique.



Dernière mise à jour : Jeudi, le 13 juin 2019