The @IntrinsicCandidate method storeStoreFence in jdk.internal.misc.Unsafe has the following implementation:
/**
* Ensures that stores before the fence will not be reordered with
* stores after the fence.
*
* @since 9
*/
@IntrinsicCandidate
public final void storeStoreFence() {
// If storeStoreFence intrinsic is not available, fall back to storeFence.
storeFence();
}
to prevent the reordering of stores and ensure the visibility of prior stores to subsequent stores. Currently, the JIT compiler does not supply an intrinsic for this method and so it is forwarded to a Unsafe.storeFence() call. This forwarded storeFence() call is unnecessary as the x86 memory model (see sec. 9.2.3.2) ensures stores are seen in program order.