RFR: add getAddress/putAddress to Unsafe plugin

Christian Thalinger christian.thalinger at oracle.com
Fri Apr 3 20:47:25 UTC 2015


getAddress and putAddress are missing:

diff -r 6adad2a0a24d graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java	Fri Apr 03 17:49:43 2015 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java	Fri Apr 03 13:45:34 2015 -0700
@@ -104,6 +104,10 @@ public class StandardGraphBuilderPlugins
             }
         }
 
+        // Accesses to native memory addresses.
+        r.register2("getAddress", Receiver.class, long.class, new UnsafeGetPlugin(Kind.Long, false));
+        r.register3("putAddress", Receiver.class, long.class, long.class, new UnsafePutPlugin(Kind.Long, false));
+
         for (Kind kind : new Kind[]{Kind.Int, Kind.Long, Kind.Object}) {
             Class<?> javaClass = kind == Kind.Object ? Object.class : kind.toJavaClass();
             r.register5("compareAndSwap" + kind.name(), Receiver.class, Object.class, long.class, javaClass, javaClass, new InvocationPlugin() {



More information about the graal-dev mailing list