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()) {