Linux 64 ビット用の Oracle (Sun) Studio 12.2 C/C++/Fortran コンパイラには、gcc で提供されている __sync_fetch_and_add 関数と同等のものがありますか? Intel アトミックのラッパー コードが Sun のドキュメントにも、Sun Studio インストールの .h ファイルにも見つからないようです。つまり、私が検索するのが下手なだけか、それとも存在しない可能性があるかのどちらかがわからないということです。
Test-and-set、Compare-and-swap、Fetch-and-foo などの Sun C/C++ コンパイラを使用して、インテル i7 で利用可能なアトミック ハードウェア関数にアクセスする必要があります。
これは、私がアセンブリ プログラマーではなく、これが GCC コンパイラではなく Sun コンパイラであるため、gcc のオープン ソース実装から asm コードをコピーしても必ずしもうまくいくとは限らず、最終的には 64 ビット コンパイラであり、そのため、簡単に見つかる 32 ビットの例が 64 ビット システムで正しく動作するとは限りません。
背景: 目的は、これらの特定のハードウェア アトミックを必要とするマルチコア用のいくつかの並行プログラムを実装することです。
読んでくれてありがとう。