Mercurial > hg > truffle
diff graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeUtil.java @ 7798:60c010b8e1c1
Pull out utility method.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Mon, 18 Feb 2013 17:20:57 +0100 |
parents | 5e3d1a68664e |
children | a063308816d9 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeUtil.java Mon Feb 18 15:34:58 2013 +0100 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeUtil.java Mon Feb 18 17:20:57 2013 +0100 @@ -310,4 +310,19 @@ } return sb; } + + /** + * Create a calling convention from a {@link ResolvedJavaMethod}. + */ + public static CallingConvention getCallingConvention(CodeCacheProvider codeCache, CallingConvention.Type type, ResolvedJavaMethod method, boolean stackOnly) { + Signature sig = method.getSignature(); + JavaType retType = sig.getReturnType(null); + JavaType[] argTypes = new JavaType[sig.getParameterCount(false)]; + for (int i = 0; i < argTypes.length; i++) { + argTypes[i] = sig.getParameterType(i, null); + } + + RegisterConfig registerConfig = codeCache.lookupRegisterConfig(method); + return registerConfig.getCallingConvention(type, retType, argTypes, codeCache.getTarget(), stackOnly); + } }