【问题标题】:D function using the x86 CMPXCHG Compare-and-swap使用 x86 CMPXCHG 比较和交换的 D 函数
【发布时间】:2009-03-05 19:14:10
【问题描述】:

我正在寻找一个函数,它在 Intel x86 上向 atomic CAS 提供高级 D 接口。

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

【问题讨论】:

    标签: assembly x86 d cas


    【解决方案1】:

    来自文档: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 指令,为您的目的重新调整它应该是微不足道的。

    【讨论】:

    • 我知道我可以自己做。我只是想知道我是否可以使用其他人使用过的东西。
    猜你喜欢
    • 2011-07-17
    • 2011-10-19
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2011-05-11
    相关资源
    最近更新 更多