【发布时间】:2009-03-05 19:14:10
【问题描述】:
我正在寻找一个函数,它在 Intel x86 上向 atomic CAS 提供高级 D 接口。
我知道我可以使用内联 ASM(如果需要我会这样做),但如果可以的话,我宁愿从其他人那里获取代码。
【问题讨论】:
我正在寻找一个函数,它在 Intel x86 上向 atomic CAS 提供高级 D 接口。
我知道我可以使用内联 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 指令,为您的目的重新调整它应该是微不足道的。
【讨论】: