Mercurial > hg > truffle
diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java @ 19504:95aa11d4822d
refactored per-class InvocationPlugins registration into separate methods
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 19 Feb 2015 13:25:23 +0100 |
parents | b828f1f74625 |
children | 14e703edb2ab |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java Thu Feb 19 12:11:18 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java Thu Feb 19 13:25:23 2015 +0100 @@ -55,7 +55,13 @@ SnippetReflectionProvider snippetReflection = providers.getSnippetReflection(); Kind wordKind = providers.getCodeCache().getTarget().wordKind; - // Object.class + registerObjectPlugins(plugins, metaAccess); + registerClassPlugins(plugins, metaAccess); + registerStableOptionPlugins(plugins, metaAccess); + registerMetaspacePointerPlugins(plugins, metaAccess, snippetReflection, wordKind); + } + + private static void registerObjectPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess) { Registration r = new Registration(plugins, metaAccess, Object.class); r.register1("getClass", Receiver.class, new InvocationPlugin() { public boolean apply(GraphBuilderContext builder, ValueNode rcvr) { @@ -72,9 +78,10 @@ return true; } }); + } - // Class.class - r = new Registration(plugins, metaAccess, Class.class); + private static void registerClassPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess) { + Registration r = new Registration(plugins, metaAccess, Class.class); r.register2("cast", Receiver.class, Object.class, new InvocationPlugin() { public boolean apply(GraphBuilderContext builder, ValueNode rcvr, ValueNode object) { if (rcvr.isConstant() && !rcvr.isNullConstant()) { @@ -100,9 +107,10 @@ return false; } }); + } - // StableOptionValue.class - r = new Registration(plugins, metaAccess, StableOptionValue.class); + private static void registerStableOptionPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess) { + Registration r = new Registration(plugins, metaAccess, StableOptionValue.class); r.register1("getValue", Receiver.class, new InvocationPlugin() { public boolean apply(GraphBuilderContext builder, ValueNode rcvr) { if (rcvr.isConstant() && !rcvr.isNullConstant()) { @@ -115,9 +123,10 @@ return false; } }); + } - // MetaspacePointer.class - r = new Registration(plugins, metaAccess, MetaspacePointer.class); + private static void registerMetaspacePointerPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess, SnippetReflectionProvider snippetReflection, Kind wordKind) { + Registration r = new Registration(plugins, metaAccess, MetaspacePointer.class); r.register1("isNull", Receiver.class, new InvocationPlugin() { public boolean apply(GraphBuilderContext builder, ValueNode pointer) { assert pointer.stamp() instanceof MetaspacePointerStamp; @@ -144,7 +153,7 @@ registerWordOpPlugins(r, snippetReflection, wordKind, Kind.Byte, Kind.Short, Kind.Char, Kind.Int, Kind.Float, Kind.Long, Kind.Double); } - protected static void registerWordOpPlugins(Registration r, SnippetReflectionProvider snippetReflection, Kind wordKind, Kind... kinds) { + private static void registerWordOpPlugins(Registration r, SnippetReflectionProvider snippetReflection, Kind wordKind, Kind... kinds) { for (Kind kind : kinds) { String kindName = kind.getJavaName(); kindName = toUpperCase(kindName.charAt(0)) + kindName.substring(1);