File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed
truffle/src/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/bytecode/generator Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -6226,7 +6226,7 @@ private CodeExecutableElement createAfterChild() {
62266226
62276227 if (op.isVariadic && model.hasVariadicReturn) {
62286228 if (op.instruction.signature.dynamicOperandCount > 1) {
6229- b.startIf().string("childIndex > ").string(op.instruction.signature.dynamicOperandCount - 1 ).end().startBlock();
6229+ b.startIf().string("childIndex > ").string(op.instruction.signature.dynamicOperandCount - 2 ).end().startBlock();
62306230 }
62316231
62326232 b.startIf().string("isVariadicReturn(operationCode)").end().startBlock();
@@ -6239,7 +6239,11 @@ private CodeExecutableElement createAfterChild() {
62396239 "variadicReturnIndices.length * 2").end().end();
62406240 b.tree(operationStack.write(op, operationFields.variadicReturnIndices, "variadicReturnIndices"));
62416241 b.end();
6242- b.statement("variadicReturnIndices[numVariadicReturnIndices] = childIndex");
6242+ if (op.instruction.signature.dynamicOperandCount > 1) {
6243+ b.statement("variadicReturnIndices[numVariadicReturnIndices] = childIndex - " + (op.instruction.signature.dynamicOperandCount - 1));
6244+ } else {
6245+ b.statement("variadicReturnIndices[numVariadicReturnIndices] = childIndex");
6246+ }
62436247 b.tree(operationStack.write(op, operationFields.numVariadicReturnIndices, "numVariadicReturnIndices + 1"));
62446248
62456249 b.end(); // if isVariadicReturn
You can’t perform that action at this time.
0 commit comments