Is there a compiler memory barrier for a single variable?

后端 未结 4 1626
长情又很酷
长情又很酷 2021-01-02 08:45

Compiler memory barriers has the effect among other things to force the compiler to make sure all stack variables that are cached in registers are written t

4条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-02 09:10

    I guess you can achieve it by specifying your variable in the list of output values of asm:

    __asm__ __volatile__ ("" : "=r" (x) : : )
    

    See Extended Asm for some information.

    UPD.

    It may be better to use "g" constraint instead of "r" as more permissive.

    __asm__ __volatile__ ("" : "=g" (x) : : )
    

    Also, I've found another great howto for inline assembly.

提交回复
热议问题