# HG changeset patch # User Doug Simon # Date 1405026475 -7200 # Node ID 27f2ee6188835e308cb88a9ddd004c49d91df184 # Parent 3c3cd36a38361209ffe1563b06e3bc43d54c236e moved signatureToTypes(Signature signature, JavaType receiverType) from MetaUtil to be a default method in Signature diff -r 3c3cd36a3836 -r 27f2ee618883 graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java --- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Thu Jul 10 23:02:34 2014 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Thu Jul 10 23:07:55 2014 +0200 @@ -300,24 +300,7 @@ public static JavaType[] signatureToTypes(ResolvedJavaMethod method) { JavaType receiver = method.isStatic() ? null : method.getDeclaringClass(); - return signatureToTypes(method.getSignature(), receiver); - } - - public static JavaType[] signatureToTypes(Signature signature, JavaType receiverType) { - int args = signature.getParameterCount(false); - JavaType[] result; - int i = 0; - if (receiverType != null) { - result = new JavaType[args + 1]; - result[0] = receiverType; - i = 1; - } else { - result = new JavaType[args]; - } - for (int j = 0; j < args; j++) { - result[i + j] = signature.getParameterType(j, null); - } - return result; + return method.getSignature().toParameterTypes(receiver); } /** diff -r 3c3cd36a3836 -r 27f2ee618883 graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Signature.java --- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Signature.java Thu Jul 10 23:02:34 2014 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Signature.java Thu Jul 10 23:07:55 2014 +0200 @@ -107,4 +107,20 @@ return sb.toString(); } + default JavaType[] toParameterTypes(JavaType receiverType) { + int args = getParameterCount(false); + JavaType[] result; + int i = 0; + if (receiverType != null) { + result = new JavaType[args + 1]; + result[0] = receiverType; + i = 1; + } else { + result = new JavaType[args]; + } + for (int j = 0; j < args; j++) { + result[i + j] = getParameterType(j, null); + } + return result; + } } diff -r 3c3cd36a3836 -r 27f2ee618883 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Thu Jul 10 23:02:34 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Thu Jul 10 23:07:55 2014 +0200 @@ -183,7 +183,7 @@ receiverNullCheck = createNullCheck(receiver, invoke.asNode(), tool); invoke.setGuard(receiverNullCheck); } - JavaType[] signature = MetaUtil.signatureToTypes(callTarget.targetMethod().getSignature(), callTarget.isStatic() ? null : callTarget.targetMethod().getDeclaringClass()); + JavaType[] signature = callTarget.targetMethod().getSignature().toParameterTypes(callTarget.isStatic() ? null : callTarget.targetMethod().getDeclaringClass()); LoweredCallTargetNode loweredCallTarget = null; boolean isVirtualOrInterface = callTarget.invokeKind() == InvokeKind.Virtual || callTarget.invokeKind() == InvokeKind.Interface; diff -r 3c3cd36a3836 -r 27f2ee618883 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java Thu Jul 10 23:02:34 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java Thu Jul 10 23:07:55 2014 +0200 @@ -63,7 +63,7 @@ ResolvedJavaMethod method = frameState.method(); boolean isStatic = method.isStatic(); - JavaType[] signature = MetaUtil.signatureToTypes(method.getSignature(), isStatic ? null : method.getDeclaringClass()); + JavaType[] signature = method.getSignature().toParameterTypes(isStatic ? null : method.getDeclaringClass()); CallingConvention cc = lirGen.getResult().getFrameMap().registerConfig.getCallingConvention(CallingConvention.Type.JavaCall, null, signature, lirGen.target(), false); List parameters = new ArrayList<>(); for (int i = 0, slot = 0; i < cc.getArgumentCount(); i++, slot += HIRFrameStateBuilder.stackSlots(frameState.localAt(slot).getKind())) { diff -r 3c3cd36a3836 -r 27f2ee618883 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Thu Jul 10 23:02:34 2014 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Thu Jul 10 23:07:55 2014 +0200 @@ -265,7 +265,7 @@ Constant[] arguments = null; Constant[] injected = null; - ResolvedJavaType[] signature = resolveJavaTypes(signatureToTypes(c.getSignature(), null), c.getDeclaringClass()); + ResolvedJavaType[] signature = resolveJavaTypes(c.getSignature().toParameterTypes(null), c.getDeclaringClass()); MetaAccessProvider metaAccess = providers.getMetaAccess(); for (int i = 0; i < signature.length; i++) { if (c.getParameterAnnotation(InjectedNodeParameter.class, i) != null) {