スピンロックについて紹介します。プレフィックスをつけた命令は、メモリアクセスを排他的に行うことができます。値の比較と交換を排他的に行います。スピンロックで共有変数を比較し、値をセットする際に使用します。LOCK#信号をアサートさせる(アトミック命令にする)。マルチプロセッサ環境では,LOCK#信号がアサートされている間,そのプロセッサが共有メモリを排他的に使用できるようになります。オペランド(デスティネーション・オペランド)を比較します。オペランド(ソースオペランド)がデスティネーションオペランドにロードされます。レジスタにロードされます。プレフィックスを付けて使用することで,アトミックに実行することができます。値が等しい場合にセットされ、そうでない場合はクリアされます。[1]pauseスピン・ウェイト・ループのパフォーマンスを向上させます。スピン・ウェイト・ループを実行すると、プロセッサはループを抜けるときにメモリ順序違反の可能性を検出するため、パフォーマンスが低下します。命令は、コード・シーケンスがスピン・ウェイト・ループであるというヒントをプロセッサに与えます。プロセッサはこのヒントを利用してメモリ順序違反を回避し、プロセッサの性能を大幅に向上させます。命令を配置することが推奨されます。命令のもう一つの機能は、スピンループ実行時にプロセッサが消費する電力を削減することです。プロセッサはスピンウェイトループを非常に高速に実行することができるため、リソースを待つ間に大量の電力を消費します。そのため、スピンしているリソースが利用可能になるのを待つ間、プロセッサは大量の電力を消費します。命令を挿入することで、プロセッサの消費電力を大幅に削減することができます。関数コンパイラが提供する関数です。ソースコードのなかでは定義されていません。