Mercurial > hg > graal-compiler
changeset 19118:036c0b9bd4f5
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Wed, 04 Feb 2015 03:22:41 +0100 |
parents | 4f30f1e7e1e6 (current diff) 02bfa2747729 (diff) |
children | a5f47cb74b1b |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java |
diffstat | 2 files changed, 15 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Wed Feb 04 03:19:37 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Wed Feb 04 03:22:41 2015 +0100 @@ -781,19 +781,7 @@ InvocationPlugin plugin = graphBuilderPlugins.lookupInvocation(targetMethod); if (plugin != null) { int beforeStackSize = frameState.stackSize; - boolean handled; - if (args.length == 0) { - handled = plugin.apply(this); - } else if (args.length == 1) { - handled = plugin.apply(this, args[0]); - } else if (args.length == 2) { - handled = plugin.apply(this, args[0], args[1]); - } else if (args.length == 3) { - handled = plugin.apply(this, args[0], args[1], args[2]); - } else { - throw GraalInternalError.shouldNotReachHere(); - } - if (handled) { + if (plugin.apply(this, args)) { assert beforeStackSize + resultType.getSlotCount() == frameState.stackSize; return; }
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java Wed Feb 04 03:19:37 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java Wed Feb 04 03:22:41 2015 +0100 @@ -85,6 +85,20 @@ throw invalidHandler(builder, arg1, arg2, arg3); } + default boolean apply(GraphBuilderContext builder, ValueNode[] args) { + if (args.length == 0) { + return apply(builder); + } else if (args.length == 1) { + return apply(builder, args[0]); + } else if (args.length == 2) { + return apply(builder, args[0], args[1]); + } else if (args.length == 3) { + return apply(builder, args[0], args[1], args[2]); + } else { + throw invalidHandler(builder, args); + } + } + default Error invalidHandler(@SuppressWarnings("unused") GraphBuilderContext builder, ValueNode... args) { return new GraalInternalError("Invocation plugin %s does not handle invocations with %d arguments", getClass().getSimpleName(), args.length); }