changeset 22739:dd513aa0a563

Bugfix: wrong memory barrier used for volatile Unsafe store
author Christian Wimmer <christian.wimmer@oracle.com>
date Tue, 29 Sep 2015 14:59:02 -0700
parents 359f60a0a457
children b67cd5b560be
files graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java	Wed Sep 30 16:46:33 2015 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java	Tue Sep 29 14:59:02 2015 -0700
@@ -23,6 +23,7 @@
 package com.oracle.graal.replacements;
 
 import static jdk.internal.jvmci.code.MemoryBarriers.JMM_POST_VOLATILE_READ;
+import static jdk.internal.jvmci.code.MemoryBarriers.JMM_POST_VOLATILE_WRITE;
 import static jdk.internal.jvmci.code.MemoryBarriers.JMM_PRE_VOLATILE_READ;
 import static jdk.internal.jvmci.code.MemoryBarriers.JMM_PRE_VOLATILE_WRITE;
 
@@ -607,7 +608,7 @@
             }
             b.add(new UnsafeStoreNode(object, offset, value, kind, LocationIdentity.any()));
             if (isVolatile) {
-                b.add(new MembarNode(JMM_PRE_VOLATILE_WRITE));
+                b.add(new MembarNode(JMM_POST_VOLATILE_WRITE));
             }
             b.getGraph().markUnsafeAccess();
             return true;