comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java @ 8661:e0ff5cf358a4

Fixed when specializing nodes must always call the full generic case.
author Christian Humer <christian.humer@gmail.com>
date Sat, 06 Apr 2013 14:33:39 +0200
parents 8a1115c92271
children 5eeade940236
comparison
equal deleted inserted replaced
8644:586b5e117c44 8661:e0ff5cf358a4
1474 addInternalValueParameterNames(builder, specialization.getNode().getGenericSpecialization(), null, true, true); 1474 addInternalValueParameterNames(builder, specialization.getNode().getGenericSpecialization(), null, true, true);
1475 builder.end(); 1475 builder.end();
1476 builder.end(); // call replace 1476 builder.end(); // call replace
1477 builder.end(); // statement 1477 builder.end(); // statement
1478 1478
1479 String generatedMethodName = generatedGenericMethodName(specialization.findNextSpecialization()); 1479 String generatedMethodName;
1480 if (specialization.getNode().getGenericSpecialization().isUseSpecializationsForGeneric()) {
1481 generatedMethodName = generatedGenericMethodName(null);
1482 } else {
1483 generatedMethodName = generatedGenericMethodName(specialization.findNextSpecialization());
1484 }
1480 ExecutableElement generatedGeneric = clazz.getEnclosingClass().getMethod(generatedMethodName); 1485 ExecutableElement generatedGeneric = clazz.getEnclosingClass().getMethod(generatedMethodName);
1481 1486
1482 CodeTreeBuilder genericExecute = CodeTreeBuilder.createBuilder(); 1487 CodeTreeBuilder genericExecute = CodeTreeBuilder.createBuilder();
1483 genericExecute.startCall(factoryClassName(specialization.getNode()), generatedMethodName); 1488 genericExecute.startCall(factoryClassName(specialization.getNode()), generatedMethodName);
1484 genericExecute.string("this"); 1489 genericExecute.string("this");