受最近一个问题的启发,我想知道是否有人知道如何在 Linux x86-64 平台上gcc
生成 x86-64bts
指令(位测试和设置),而不使用内联汇编或非标准编译器内在函数。
相关问题:
可移植性对我来说比 更重要bts
,所以我不会使用 andasm
指令,如果有其他解决方案,我宁愿不使用编译器内在函数。
编辑:C 源语言不支持原子操作,所以我对获得原子测试和设置并不特别感兴趣(尽管这是测试和设置首先存在的最初原因)。如果我想要一些原子的东西,我知道我没有机会用标准的 C 源代码来做:它必须是内在的、库函数或内联汇编。(我在支持多线程的编译器中实现了原子操作。)