Load and Store

You can use the load and store intrinsic to force the strict memory access ordering of specific data objects. This intended use is for the case when the user suppresses the strict memory access ordering by using the -serialize-volatile- option.

Intrinsic Prototype Description
__st1_rel void __st1_rel(void *dst, const char value); Generates an st1.rel instruction.
__st2_rel void __st2_rel(void *dst, const short value); Generates an st2.rel instruction.
__st4_rel void __st4_rel(void *dst, const int value); Generates an st4.rel instruction.
__st8_rel void __st8_rel(void *dst, const __int64 value); Generates an st8.rel instruction.
__ld1_acq unsigned char __ld1_acq(void *src); Generates an ld1.acq instruction.
__ld2_acq unsigned short __ld2_acq(void *src); Generates an ld2.acq instruction.
__ld4_acq unsigned int __ld4_acq(void *src); Generates an ld4.acq instruction.
__ld8_acq unsigned __int64 __ld8_acq(void *src); Generates an ld8.acq instruction.