From: Guido van Rossum Date: Fri, 7 Jul 2023 18:41:42 +0000 (-0700) Subject: gh-104584: Replace ENTER_EXECUTOR with the original in trace projection (#106526) X-Git-Tag: v3.13.0a1~1484 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=80b9b3a51757ebb1e3547afc349a229706eadfde;p=thirdparty%2FPython%2Fcpython.git gh-104584: Replace ENTER_EXECUTOR with the original in trace projection (#106526) --- diff --git a/Python/optimizer.c b/Python/optimizer.c index 2870f2fd0505..1d731ed2309c 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -419,6 +419,12 @@ translate_bytecode_to_trace( opcode = instr->op.code; oparg = (oparg << 8) | instr->op.arg; } + if (opcode == ENTER_EXECUTOR) { + _PyExecutorObject *executor = (_PyExecutorObject *)code->co_executors->executors[oparg&255]; + opcode = executor->vm_data.opcode; + DPRINTF(2, " * ENTER_EXECUTOR -> %s\n", _PyOpcode_OpName[opcode]); + oparg = (oparg & 0xffffff00) | executor->vm_data.oparg; + } switch (opcode) { default: {