我正在寻找能够提供高级 D 界面的功能在Intel x86上原子CAS

我知道我可以使用内联ASM(如果需要,我会这样做),但如果可以,我宁愿从其他人那里获取代码。

有帮助吗?

解决方案

来自以下网站的文档: http://www.digitalmars.com/d/ 2.0 / overview.html

  

内联汇编程序

     

设备驱动程序,性能卓越   系统应用,嵌入式系统,   和专门的代码有时需要   深入汇编语言得到   任务完成。虽然D实现是   不需要实现内联   汇编程序,它是定义的和部分   语言。大多数汇编代码需要   可以用它来处理,避免了   需要单独的汇编程序或DLL。

     

许多D实现也将   支持内在功能   类似于C的支持   用于I / O端口操作的内在函数,   直接进入特殊浮动   点操作等。

所以理论上你可以直接使用CMPXCHG。


修改

您可能需要查看: http://www.dsource.org/projects/tango/browser/trunk/tango/core/Atomic.d?rev=4277

由于某种原因加载需要一段时间,但它在内部使用CMPXCHG指令,为了您的目的重新设置它应该是微不足道的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top