当前位置:  开发笔记 > 小程序 > 正文

在Visual C++中是否有一个8位原子CAS(cmpxchg)内在的X64?

如何解决《在VisualC++中是否有一个8位原子CAS(cmpxchg)内在的X64?》经验,为你挑选了0个好方法。

在32位Visual Studio C++中可以使用以下代码.是否有使用内在函数的64位等效项,因为64位版本的Visual Studio C++不支持内联ASM?

FORCEINLINE bool bAtomicCAS8(volatile UINT8 *dest, UINT8 oldval, UINT8 newval)
{
    bool result=false;
    __asm
    {
        mov     al,oldval
        mov     edx,dest
        mov     cl,newval
        lock cmpxchg    byte ptr [edx],cl
        setz    result
    }
    return(result);
}

以下instrinsics在Visual Studio C++下编译

_InterlockedCompareExchange16
_InterlockedCompareExchange
_InterlockedCompareExchange64
_InterlockedCompareExchange128

我正在寻找的是什么

_InterlockedCompareExchange8

但这似乎并不存在.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有