You can use the load and store intrinsic to force strict memory access ordering of specific data objects. This intended use is for cases when a user suppresses strict memory access ordering by using the -serialize-volatile- option.
Intrinsic Prototype |
Description |
---|---|
void __st1_rel(void *dst, const char value); |
Generates an st1.rel instruction. |
void __st2_rel(void *dst, const short value); |
Generates an st2.rel instruction. |
void __st4_rel(void *dst, const int value); |
Generates an st4.rel instruction. |
void __st8_rel(void *dst, const __int64 value); |
Generates an st8.rel instruction. |
unsigned char __ld1_acq(void *src); |
Generates an ld1.acq instruction. |
unsigned short __ld2_acq(void *src); |
Generates an ld2.acq instruction. |
unsigned int __ld4_acq(void *src); |
Generates an ld4.acq instruction. |
unsigned __int64 __ld8_acq(void *src); |
Generates an ld8.acq instruction. |