comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java @ 20964:56a30cfcefaf

Truffle-DSL: fixed wrong executable delegate.
author Christian Humer <christian.humer@gmail.com>
date Wed, 15 Apr 2015 03:14:27 +0200
parents ec1dca6d288a
children 05a2b72c071f
comparison
equal deleted inserted replaced
20963:ec1dca6d288a 20964:56a30cfcefaf
1694 } 1694 }
1695 LocalVariable shortCircuit = resolveShortCircuit(specialization, execution, currentLocals); 1695 LocalVariable shortCircuit = resolveShortCircuit(specialization, execution, currentLocals);
1696 var = currentLocals.createValue(execution, targetType).nextName(); 1696 var = currentLocals.createValue(execution, targetType).nextName();
1697 builder.tree(createAssignExecuteChild(builder, execution, executableType, var, shortCircuit, currentLocals)); 1697 builder.tree(createAssignExecuteChild(builder, execution, executableType, var, shortCircuit, currentLocals));
1698 currentLocals.setValue(execution, var); 1698 currentLocals.setValue(execution, var);
1699
1700 } 1699 }
1701 } 1700 }
1702 1701
1703 LocalContext originalValues = currentLocals.copy(); 1702 LocalContext originalValues = currentLocals.copy();
1704 if (delegate != null) { 1703 if (delegate != null) {
1717 return createFastPathExecute(builder, executableType, s, values); 1716 return createFastPathExecute(builder, executableType, s, values);
1718 } 1717 }
1719 }; 1718 };
1720 builder.tree(createGuardAndCast(group, returnType, currentLocals, executionFactory)); 1719 builder.tree(createGuardAndCast(group, returnType, currentLocals, executionFactory));
1721 if (hasFallthrough(group, returnType, originalValues, true, null) || group.getSpecialization().isFallback()) { 1720 if (hasFallthrough(group, returnType, originalValues, true, null) || group.getSpecialization().isFallback()) {
1722 builder.tree(createCallNext(builder, executableType, executableType, originalValues)); 1721 builder.tree(createCallNext(builder, executableType, node.getGenericExecutableType(executableType), originalValues));
1723 } 1722 }
1724 } 1723 }
1725 return builder.build(); 1724 return builder.build();
1726 } 1725 }
1727 1726