|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
Stores a 128-bit value atomically.
void __store128( __int64 volatile * Destination, __int64 SourceHigh __int64 SourceLow ); void __store128_rel( __int64 volatile * Destination, __int64 SourceHigh __int64 SourceLow );
The __store128 function performs an atomic 128-bit store to the Destination memory location. The Destination pointer should point to a 16-byte aligned memory location.
These functions are not general-purpose 128-bit intrinsics. These functions should only be used if you really need 128-bit atomic stores. You get better performance with regular 64-bit operations.
Note that the intrinsic form of this function has a leading underscore in the name. Also note that these functions are always expanded as intrinsics. That means you can use /Oi (Generate Intrinsic Functions) or #pragma intrinsic, but it is not required.
The __store128_rel intrinsic function is the same as the corresponding function without the _rel suffix except that the operation is performed with release semantics.
In Visual C++ 2005, these functions behave as read-write barriers. For more information, see _ReadWriteBarrier.
END Microsoft Specific