Mercurial > hg > truffle
diff graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java @ 20851:91a25b017111
converted @MethodSubstitutions for java.lang.reflect.Array to MethodSubstitutionPlugins
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 08 Apr 2015 10:50:06 +0200 |
parents | f2a357ee14e4 |
children | 1f7ef92cb660 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java Wed Apr 08 10:46:46 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java Wed Apr 08 10:50:06 2015 +0200 @@ -24,6 +24,7 @@ import static com.oracle.graal.api.code.MemoryBarriers.*; +import java.lang.reflect.*; import java.util.*; import sun.misc.*; @@ -71,6 +72,7 @@ registerFloatPlugins(plugins); registerDoublePlugins(plugins); registerArraysPlugins(plugins); + registerArrayPlugins(plugins); registerUnsafePlugins(plugins); registerEdgesPlugins(metaAccess, plugins); registerGraalDirectivesPlugins(plugins); @@ -94,6 +96,12 @@ r.registerMethodSubstitution(ArraysSubstitutions.class, "equals", double[].class, double[].class); } + private static void registerArrayPlugins(InvocationPlugins plugins) { + Registration r = new Registration(plugins, Array.class); + r.registerMethodSubstitution(ArraySubstitutions.class, "newInstance", Class.class, int.class); + r.registerMethodSubstitution(ArraySubstitutions.class, "getLength", Object.class); + } + private static void registerUnsafePlugins(InvocationPlugins plugins) { Registration r = new Registration(plugins, Unsafe.class); for (Kind kind : Kind.values()) {