changeset 7249:3af2fcc319f1

use Kind.Void for ReturnNode, not the return value kind
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 17 Dec 2012 17:35:04 +0100
parents cccec951cb76
children 01e3daf8569b
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java
diffstat 2 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java	Mon Dec 17 16:02:43 2012 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java	Mon Dec 17 17:35:04 2012 +0100
@@ -517,8 +517,8 @@
     @Override
     public void visitReturn(ReturnNode x) {
         Value operand = Value.ILLEGAL;
-        if (x.kind() != Kind.Void) {
-            operand = resultOperandFor(x.kind());
+        if (x.result() != null) {
+            operand = resultOperandFor(x.result().kind());
             emitMove(operand(x.result()), operand);
         }
         emitReturn(operand);
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java	Mon Dec 17 16:02:43 2012 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java	Mon Dec 17 17:35:04 2012 +0100
@@ -40,13 +40,12 @@
      * @param result the instruction producing the result for this return; {@code null} if this is a void return
      */
     public ReturnNode(ValueNode result) {
-        super(result == null ? StampFactory.forVoid() : result.stamp());
+        super(StampFactory.forVoid());
         this.result = result;
     }
 
     @Override
     public boolean verify() {
-        assertTrue((result == null && stamp() == StampFactory.forVoid()) || (result != null && kind() == result.kind()), "invalid stamp");
         return super.verify();
     }