RFR: add getAddress/putAddress to Unsafe plugin

Doug Simon doug.simon at oracle.com
Sat Apr 4 10:59:43 UTC 2015


Looks good. Can you please also add tests for these methods to UnsafeSubstitutionsTest?

> On Apr 3, 2015, at 10:47 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
> 
> 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