diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java @ 10695:8c8e47cc101d

Truffle-DSL: fixed a bug in removal of the frame from the generated generic execute method.
author Christian Humer <christian.humer@gmail.com>
date Thu, 11 Jul 2013 01:55:54 +0200
parents a0309f88306c
children 00a9dbcbe431
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java	Wed Jul 10 09:42:22 2013 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java	Thu Jul 11 01:55:54 2013 +0200
@@ -1466,7 +1466,7 @@
 
             method.getAnnotationMirrors().add(new CodeAnnotationMirror(getContext().getTruffleTypes().getSlowPath()));
 
-            addInternalValueParameters(method, node.getGenericSpecialization(), false, false);
+            addInternalValueParameters(method, node.getGenericSpecialization(), node.needsFrame(), false);
             CodeTreeBuilder builder = method.createBuilder();
 
             String prefix = null;
@@ -2268,7 +2268,7 @@
             builder.end();
 
             builder.startReturn().startCall("super", EXECUTE_GENERIC_NAME);
-            addInternalValueParameterNames(builder, specialization, node.getGenericSpecialization(), null, false, true);
+            addInternalValueParameterNames(builder, specialization, node.getGenericSpecialization(), null, node.needsFrame(), true);
             builder.end().end();
 
             builder.end().startElseBlock();
@@ -2434,7 +2434,7 @@
                 emitEncounteredSynthetic(builder, specialization);
             } else if (specialization.isGeneric()) {
                 returnBuilder.startCall("super", EXECUTE_GENERIC_NAME);
-                addInternalValueParameterNames(returnBuilder, specialization, specialization, null, false, true);
+                addInternalValueParameterNames(returnBuilder, specialization, specialization, null, node.needsFrame(), true);
                 returnBuilder.end();
             } else {
                 returnBuilder.tree(createTemplateMethodCall(returnBuilder, null, specialization, specialization, null));