最近の質問に触発されて、インラインアセンブリや非標準のコンパイラ組み込み関数を使用せずに、Linux x86-64プラットフォームでgcc
x86-64命令(ビットテストおよびセット)を生成する方法を知っている人がいるかどうかを知りたいです。bts
関連する質問:
移植性は私にとってより重要なbts
ので、ディレクティブは使用しませんasm
。別の解決策がある場合は、コンパイラの本能を使用しないことを好みます。
編集:Cソース言語はアトミック操作をサポートしていないので、アトミックテストアンドセットを取得することに特に興味はありません(それが最初にテストアンドセットが存在する元々の理由ですが)。アトミックなものが必要な場合は、標準のCソースでそれを行う機会がないことがわかっています。それは、組み込み関数、ライブラリ関数、またはインラインアセンブリである必要があります。(複数のスレッドをサポートするコンパイラーでアトミック操作を実装しました。)