gcc

gccでatomicな64bit setを実現したい

gcc

gccでatomicに64bitの値を代入したい。 一応、以下のようなコードで実現はできるんだけど。。 #include <stdio.h> #include <stdint.h> #define SEN_SET_64BIT(p,v) \ __asm__ __volatile__ ("1:\n" \ "\tmovl (%0), %%eax\n" \ "\tmovl 4(%0), %%edx\n" \ "\tlock; cmpxchg8b (</stdint.h></stdio.h>…

gcc-4.1からatomic関係の関数がビルトインに

知らなかった。メモメモ。 http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html#Atomic-Builtins