D功能使用x86 CMPXCHG比较和交换

时间:2009-03-05 19:14:10

标签: assembly x86 d cas

我正在寻找一个在Intel x86上为D提供高级别atomic CAS接口的功能。

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

1 个答案:

答案 0 :(得分:4)

来自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指令,为了您的目的重新设置它应该是微不足道的。