478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
|
return r;
}
static OF_INLINE void
OFMemoryBarrier(void)
{
__asm__ __volatile__ (
"mfence" ::: "memory"
);
}
static OF_INLINE void
OFAcquireMemoryBarrier(void)
{
__asm__ __volatile__ ("" ::: "memory");
}
|
>
|
>
>
>
>
>
|
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
|
return r;
}
static OF_INLINE void
OFMemoryBarrier(void)
{
#ifdef OF_X86_64
__asm__ __volatile__ (
"lock orq $0, (%%rsp)" ::: "memory", "cc"
);
#else
__asm__ __volatile__ (
"lock orl $0, (%%esp)" ::: "memory", "cc"
);
#endif
}
static OF_INLINE void
OFAcquireMemoryBarrier(void)
{
__asm__ __volatile__ ("" ::: "memory");
}
|