Mercurial > hg > truffle
changeset 8362:5981ea5996e8
Merge.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 19 Mar 2013 11:35:25 +0100 |
parents | 676fa31bd3f0 (diff) fa5a670a1682 (current diff) |
children | 25691fcb505a b8666670daf5 a3ce41332d76 |
files | graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CodeInfo.java graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CompiledMethodTest.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeInfo.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/RegisterNode.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertUnreachedToGuardPhase.java |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java Tue Mar 19 11:10:00 2013 +0100 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java Tue Mar 19 11:35:25 2013 +0100 @@ -1193,11 +1193,11 @@ builder.tree(createExecuteChildren(builder, specialization)); + CodeTree executeNode; if (specialization.isUninitialized()) { builder.tree(createSpecializeCall(builder, specialization)); } - - CodeTree executeNode = createExecute(builder, specialization); + executeNode = createExecute(builder, specialization); SpecializationData next = specialization.findNextSpecialization(); CodeTree returnSpecialized = null; @@ -1243,9 +1243,15 @@ builder.startTryBlock(); } - if (specialization.getMethod() == null && !node.needsRewrites(context)) { + if (specialization.isUninitialized()) { + String genericMethodName = generatedGenericMethodName(null); + builder.startReturn().startCall(factoryClassName(node), genericMethodName); + builder.string("this"); + addInternalValueParameterNames(builder, specialization, null, true, true); + builder.end().end(); + } else if (specialization.getMethod() == null && !node.needsRewrites(context)) { emitEncounteredSynthetic(builder); - } else if (specialization.isUninitialized() || specialization.isGeneric()) { + } else if (specialization.isGeneric()) { String genericMethodName; if (!specialization.isUseSpecializationsForGeneric()) { genericMethodName = generatedGenericMethodName(specialization);