Mercurial > hg > graal-jvmci-8
changeset 22071:ad494e9b1e39
Make stamp of MacroNode agree with return type of method
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Fri, 19 Jun 2015 22:32:15 -0700 |
parents | 1f07c19e7d83 |
children | eeeea6cc9139 |
files | graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Sat Jun 20 01:56:43 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Fri Jun 19 22:32:15 2015 -0700 @@ -68,7 +68,7 @@ protected final InvokeKind invokeKind; protected MacroNode(NodeClass<? extends MacroNode> c, InvokeKind invokeKind, ResolvedJavaMethod targetMethod, int bci, JavaType returnType, ValueNode... arguments) { - super(c, StampFactory.forKind(returnType.getKind())); + super(c, returnStamp(returnType)); assert targetMethod.getSignature().getParameterCount(!targetMethod.isStatic()) == arguments.length; this.arguments = new NodeInputList<>(this, arguments); this.bci = bci; @@ -78,6 +78,15 @@ assert !isPlaceholderBci(bci); } + private static Stamp returnStamp(JavaType returnType) { + Kind kind = returnType.getKind(); + if (kind == Kind.Object) { + return StampFactory.declared((ResolvedJavaType) returnType); + } else { + return StampFactory.forKind(kind); + } + } + public int getBci() { return bci; }