]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
fix exception bug
authorKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Sun, 21 Sep 2025 18:36:54 +0000 (19:36 +0100)
committerKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Sun, 21 Sep 2025 18:36:54 +0000 (19:36 +0100)
12 files changed:
Include/internal/pycore_optimizer.h
Include/internal/pycore_uop_metadata.h
Python/bytecodes.c
Python/ceval.c
Python/ceval_macros.h
Python/executor_cases.c.h
Python/generated_cases.c.h
Python/optimizer.c
Tools/cases_generator/analyzer.py
Tools/cases_generator/generators_common.py
Tools/cases_generator/tier1_generator.py
Tools/cases_generator/tracer_generator.py

index 4b391d4d4fa926ceb78cb83cfda8db9c8b50c6a8..ac509b890fd31deb2571add7878883d6aefa626e 100644 (file)
@@ -37,6 +37,7 @@ typedef struct {
 typedef struct _PyExitData {
     uint32_t target;
     uint16_t index;
+    char is_dynamic;
     _Py_BackoffCounter temperature;
     struct _PyExecutorObject *executor;
 } _PyExitData;
@@ -44,6 +45,7 @@ typedef struct _PyExitData {
 typedef struct _PyExecutorObject {
     PyObject_VAR_HEAD
     const _PyUOpInstruction *trace;
+    _Py_CODEUNIT *expected_entrypoint;
     _PyVMData vm_data; /* Used by the VM, but opaque to the optimizer */
     uint32_t exit_count;
     uint32_t code_size;
index a7eebe9ad0d5a05b52653cb774026659c2fde362..1b599091f781fd21d6b6cb2f3c48e891901142e3 100644 (file)
@@ -338,7 +338,7 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
     [_HANDLE_PENDING_AND_DEOPT] = HAS_ESCAPES_FLAG,
     [_ERROR_POP_N] = HAS_ARG_FLAG,
     [_TIER2_RESUME_CHECK] = HAS_PERIODIC_FLAG,
-    [_COLD_EXIT] = HAS_ESCAPES_FLAG,
+    [_COLD_EXIT] = 0,
     [_GUARD_IP] = HAS_EXIT_FLAG,
     [_DYNAMIC_EXIT] = HAS_ESCAPES_FLAG,
 };
index c1912300bda1416b262c489a375cffa928e15004..a3854fbe0cc190d2f46ab6b58d5e1da077dba286 100644 (file)
@@ -5414,6 +5414,7 @@ dummy_func(
         }
 
         tier2 op(_ERROR_POP_N, (target/2 --)) {
+            assert(target != 0);
             assert(oparg == 0);
             frame->instr_ptr = _PyFrame_GetBytecode(frame) + target;
             SYNC_SP();
@@ -5435,28 +5436,35 @@ dummy_func(
         tier2 op(_COLD_EXIT, ( -- )) {
             _PyExitData *exit = tstate->jit_exit;
             assert(exit != NULL);
-            _Py_CODEUNIT *target = _PyFrame_GetBytecode(frame) + exit->target;
-            _Py_BackoffCounter temperature = exit->temperature;
-            if (!backoff_counter_triggers(temperature)) {
-                exit->temperature = advance_backoff_counter(temperature);
-                GOTO_TIER_ONE(target, 0);
-            }
-            _PyExecutorObject *executor;
-            if (target->op.code == ENTER_EXECUTOR) {
-                PyCodeObject *code = _PyFrame_GetCode(frame);
-                executor = code->co_executors->executors[target->op.arg];
-                Py_INCREF(executor);
-            }
-            else {
-                _PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
-                assert(tstate->current_executor == (PyObject *)previous_executor);
-                int chain_depth = previous_executor->vm_data.chain_depth + 1;
-                _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), chain_depth);
-                GOTO_TIER_ONE(target, 1);
-            }
-            assert(tstate->jit_exit == exit);
-            exit->executor = executor;
-            TIER2_TO_TIER2(exit->executor);
+            bool is_dynamic = exit->is_dynamic;
+            _Py_CODEUNIT *target = is_dynamic ? frame->instr_ptr : (_PyFrame_GetBytecode(frame) + exit->target);
+            GOTO_TIER_ONE(target, 0);
+            // _Py_BackoffCounter temperature = exit->temperature;
+            // if (target->op.code == ENTER_EXECUTOR) {
+            //     PyCodeObject *code = _PyFrame_GetCode(frame);
+            //     _PyExecutorObject *executor = code->co_executors->executors[target->op.arg];
+            //     if (is_dynamic && executor->expected_entrypoint != target) {
+            //         GOTO_TIER_ONE(target, 0);
+            //     }
+            //     Py_INCREF(executor);
+            //     assert(tstate->jit_exit == exit);
+            //     exit->executor = executor;
+            //     TIER2_TO_TIER2(exit->executor);
+            // }
+            // else {
+            //     if (!backoff_counter_triggers(temperature)) {
+            //         exit->temperature = advance_backoff_counter(temperature);
+            //         GOTO_TIER_ONE(target, 0);
+            //     }
+            //     if (is_dynamic) {
+            //         GOTO_TIER_ONE(target, 0);
+            //     }
+            //     _PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
+            //     assert(tstate->current_executor == (PyObject *)previous_executor);
+            //     int chain_depth = 0;
+            //     _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), chain_depth);
+            //     GOTO_TIER_ONE(target, 1);
+            // }
         }
 
         tier2 op(_GUARD_IP, (ip/4 --)) {
@@ -5465,36 +5473,20 @@ dummy_func(
 
         tier2 op(_DYNAMIC_EXIT, (exit_p/4 --)) {
             _Py_CODEUNIT *target = frame->instr_ptr;
+            _PyExitData *exit = (_PyExitData *)exit_p;
 #if defined(Py_DEBUG) && !defined(_Py_JIT)
+            OPT_HIST(trace_uop_execution_counter, trace_run_length_hist);
             if (frame->lltrace >= 2) {
-                printf("GUARD IP EXIT: [UOp ");
+                printf("DYNAMIC EXIT: [UOp ");
                 _PyUOpPrint(&next_uop[-1]);
-                printf(", target %d -> %s]\n",
+                printf(", exit %tu, temp %d, target %d -> %s]\n",
+                    exit - current_executor->exits, exit->temperature.value_and_backoff,
                     (int)(target - _PyFrame_GetBytecode(frame)),
                     _PyOpcode_OpName[target->op.code]);
             }
 #endif
-            _PyExitData *exit = (_PyExitData *)exit_p;
-            tstate->jit_exit = exit_p;
-            _Py_BackoffCounter temperature = exit->temperature;
-            _PyExecutorObject *executor;
-            if (target->op.code == ENTER_EXECUTOR) {
-                PyCodeObject *code = _PyFrame_GetCode(frame);
-                executor = code->co_executors->executors[target->op.arg];
-                Py_INCREF(executor);
-            }
-            else {
-                if (!backoff_counter_triggers(temperature)) {
-                    exit->temperature = advance_backoff_counter(temperature);
-                    GOTO_TIER_ONE(frame->instr_ptr, 0);
-                }
-                _PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
-                assert(tstate->current_executor == (PyObject *)previous_executor);
-                // Set chain_depth to 0 because we want to keep tracing whatever we see next.
-                _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), 0);
-                GOTO_TIER_ONE(target, 1);
-            }
-            exit->executor = executor;
+            assert(exit->is_dynamic);
+            tstate->jit_exit = exit;
             TIER2_TO_TIER2(exit->executor);
         }
 
index a7edd45e1ea251176b0f866284e6c77122a3b042..a6219e5c26d6707e94ea6b3094dcbd45ce3c555e 100644 (file)
@@ -975,12 +975,11 @@ _PyObjectArray_Free(PyObject **array, PyObject **scratch)
 
 // 1 for trace full, 0 for successful write.
 static int
-add_to_code_trace(PyThreadState *tstate, _PyInterpreterFrame *frame, PyCodeObject *old_code, _Py_CODEUNIT *this_instr, _Py_CODEUNIT *next_instr, int opcode, int oparg, int jump_taken)
+add_to_code_trace(PyThreadState *tstate, _PyInterpreterFrame *frame, PyCodeObject *old_code, PyFunctionObject *old_func, _Py_CODEUNIT *this_instr, _Py_CODEUNIT *next_instr, int opcode, int oparg, int jump_taken)
 {
     assert(frame != NULL);
     assert(tstate->interp->jit_tracer_code_curr_size < UOP_MAX_TRACE_LENGTH);
-    PyFunctionObject *func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
-    return !_PyJIT_translate_single_bytecode_to_trace(tstate, frame, this_instr, next_instr, old_code, func, opcode, oparg, jump_taken);
+    return !_PyJIT_translate_single_bytecode_to_trace(tstate, frame, this_instr, next_instr, old_code, old_func, opcode, oparg, jump_taken);
 }
 
 /* _PyEval_EvalFrameDefault is too large to optimize for speed with PGO on MSVC.
@@ -1195,14 +1194,15 @@ tier2_dispatch:
     for (;;) {
         uopcode = next_uop->opcode;
 #ifdef Py_DEBUG
-        if (frame->lltrace >= 4 &&
-            next_uop->opcode != _YIELD_VALUE &&
+        if (frame->lltrace >= 4) {
+            if (next_uop->opcode != _YIELD_VALUE &&
             next_uop->opcode != _FOR_ITER_GEN_FRAME &&
             next_uop->opcode != _PUSH_FRAME &&
             next_uop->opcode != _PY_FRAME_KW &&
             next_uop->opcode != _SAVE_RETURN_OFFSET &&
             next_uop->opcode != _SAVE_RETURN_OFFSET) {
-            dump_stack(frame, stack_pointer);
+                dump_stack(frame, stack_pointer);
+            }
             if (next_uop->opcode == _START_EXECUTOR) {
                 printf("%4d uop: ", 0);
             }
index 48f08868d0b07aeb67a0d15a7bce40f14321848e..2f53366915dc72ff860bbc184241fd9540ff31a5 100644 (file)
 #  define LABEL(name) name:
 #endif
 
+#define TRACING_JUMP_TO_LABEL(label) \
+    RECORD_JUMP_TAKEN() \
+    RECORD_TRACE() \
+    BAIL_TRACING_NO_DISPATCH() \
+    JUMP_TO_LABEL(label);
+
 #if _Py_TAIL_CALL_INTERP || USE_COMPUTED_GOTOS
 #  define IS_JIT_TRACING() (DISPATCH_TABLE_VAR == TRACING_DISPATCH_TABLE)
 #  define ENTER_TRACING() DISPATCH_TABLE_VAR = TRACING_DISPATCH_TABLE;
 #  define LEAVE_TRACING() DISPATCH_TABLE_VAR = DISPATCH_TABLE;
 #  define BAIL_TRACING_NO_DISPATCH() \
     LEAVE_TRACING(); \
-    int err = _PyOptimizer_Optimize(frame, tstate); \
-    if (err < 0) { \
+    int _err = _PyOptimizer_Optimize(frame, tstate); \
+    if (_err < 0) { \
         JUMP_TO_LABEL(error); \
     }
 #  define BAIL_TRACING() \
     DISPATCH();
 #  define RECORD_TRACE() do { \
         frame->instr_ptr = next_instr; \
-        if (add_to_code_trace(tstate, frame, old_code, this_instr, next_instr, opcode, oparg, _jump_taken)) { \
+        if (add_to_code_trace(tstate, frame, old_code, old_func, this_instr, next_instr, opcode, oparg, _jump_taken)) { \
             BAIL_TRACING(); \
         } \
     } while (0);
 #  define RECORD_TRACE_NO_DISPATCH() do { \
         frame->instr_ptr = next_instr; \
-        if (add_to_code_trace(tstate, frame, old_code, this_instr, next_instr, opcode, oparg, _jump_taken)) { \
+        if (add_to_code_trace(tstate, frame, old_code, old_func, this_instr, next_instr, opcode, oparg, _jump_taken)) { \
             BAIL_TRACING_NO_DISPATCH(); \
         } \
     } while (0);
@@ -415,7 +421,9 @@ do {                                                   \
         JUMP_TO_LABEL(error);                          \
     }                                                  \
     if (keep_tracing_bit) { \
+        assert(next_instr == frame->instr_ptr); \
         assert(next_instr->op.code != ENTER_EXECUTOR); \
+        assert(tstate->interp->jit_tracer_code_curr_size == 2); \
         ENTER_TRACING(); \
     } \
     else { \
index a8224df7f55e2bbd39ccf1504a13326b4cc99746..0a94baa0557d37d00548b6f4eac2f569de3b51c1 100644 (file)
         case _ERROR_POP_N: {
             oparg = CURRENT_OPARG();
             uint32_t target = (uint32_t)CURRENT_OPERAND0();
+            assert(target != 0);
             assert(oparg == 0);
             frame->instr_ptr = _PyFrame_GetBytecode(frame) + target;
             GOTO_TIER_ONE(NULL, 0);
         case _COLD_EXIT: {
             _PyExitData *exit = tstate->jit_exit;
             assert(exit != NULL);
-            _Py_CODEUNIT *target = _PyFrame_GetBytecode(frame) + exit->target;
-            _Py_BackoffCounter temperature = exit->temperature;
-            if (!backoff_counter_triggers(temperature)) {
-                exit->temperature = advance_backoff_counter(temperature);
-                GOTO_TIER_ONE(target, 0);
-            }
-            _PyExecutorObject *executor;
-            if (target->op.code == ENTER_EXECUTOR) {
-                PyCodeObject *code = _PyFrame_GetCode(frame);
-                executor = code->co_executors->executors[target->op.arg];
-                Py_INCREF(executor);
-            }
-            else {
-                _PyFrame_SetStackPointer(frame, stack_pointer);
-                _PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
-                stack_pointer = _PyFrame_GetStackPointer(frame);
-                assert(tstate->current_executor == (PyObject *)previous_executor);
-                int chain_depth = previous_executor->vm_data.chain_depth + 1;
-                _PyFrame_SetStackPointer(frame, stack_pointer);
-                _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), chain_depth);
-                stack_pointer = _PyFrame_GetStackPointer(frame);
-                GOTO_TIER_ONE(target, 1);
-            }
-            assert(tstate->jit_exit == exit);
-            exit->executor = executor;
-            TIER2_TO_TIER2(exit->executor);
+            bool is_dynamic = exit->is_dynamic;
+            _Py_CODEUNIT *target = is_dynamic ? frame->instr_ptr : (_PyFrame_GetBytecode(frame) + exit->target);
+            GOTO_TIER_ONE(target, 0);
             break;
         }
 
         case _DYNAMIC_EXIT: {
             PyObject *exit_p = (PyObject *)CURRENT_OPERAND0();
             _Py_CODEUNIT *target = frame->instr_ptr;
+            _PyExitData *exit = (_PyExitData *)exit_p;
             #if defined(Py_DEBUG) && !defined(_Py_JIT)
+            OPT_HIST(trace_uop_execution_counter, trace_run_length_hist);
             if (frame->lltrace >= 2) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
-                printf("GUARD IP EXIT: [UOp ");
+                printf("DYNAMIC EXIT: [UOp ");
                 _PyUOpPrint(&next_uop[-1]);
-                printf(", target %d -> %s]\n",
+                printf(", exit %tu, temp %d, target %d -> %s]\n",
+                       exit - current_executor->exits, exit->temperature.value_and_backoff,
                        (int)(target - _PyFrame_GetBytecode(frame)),
                        _PyOpcode_OpName[target->op.code]);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
             }
             #endif
-            _PyExitData *exit = (_PyExitData *)exit_p;
-            tstate->jit_exit = exit_p;
-            _Py_BackoffCounter temperature = exit->temperature;
-            _PyExecutorObject *executor;
-            if (target->op.code == ENTER_EXECUTOR) {
-                PyCodeObject *code = _PyFrame_GetCode(frame);
-                executor = code->co_executors->executors[target->op.arg];
-                Py_INCREF(executor);
-            }
-            else {
-                if (!backoff_counter_triggers(temperature)) {
-                    exit->temperature = advance_backoff_counter(temperature);
-                    GOTO_TIER_ONE(frame->instr_ptr, 0);
-                }
-                _PyFrame_SetStackPointer(frame, stack_pointer);
-                _PyExecutorObject *previous_executor = _PyExecutor_FromExit(exit);
-                stack_pointer = _PyFrame_GetStackPointer(frame);
-                assert(tstate->current_executor == (PyObject *)previous_executor);
-                _PyFrame_SetStackPointer(frame, stack_pointer);
-                _PyJIT_InitializeTracing(tstate, frame, target, STACK_LEVEL(), 0);
-                stack_pointer = _PyFrame_GetStackPointer(frame);
-                GOTO_TIER_ONE(target, 1);
-            }
-            exit->executor = executor;
+            assert(exit->is_dynamic);
+            tstate->jit_exit = exit;
             TIER2_TO_TIER2(exit->executor);
             break;
         }
index 8201d2c236c1d8967e4ee2326ef41670aae1df35..78a458b4899eff274bb9cc78622b1ad049f28ab5 100644 (file)
@@ -25,6 +25,8 @@
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
@@ -92,6 +94,8 @@
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             next_instr += 1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const prev_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const prev_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const prev_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                             DISPATCH();
                         }
                     }
-                    _PyFrame_SetStackPointer(frame, stack_pointer);
                     _PyJIT_InitializeTracing(tstate, frame, next_instr, STACK_LEVEL(), 0);
-                    stack_pointer = _PyFrame_GetStackPointer(frame);
                     ENTER_TRACING();
                     DISPATCH();
                 }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 PyObject *res_o = _PyEval_BinaryOps[oparg](lhs_o, rhs_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
                 _PyFrame_SetStackPointer(frame, stack_pointer);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 ((PyFloatObject *)right_o)->ob_fval;
                 res = _PyFloat_FromDouble_ConsumeInputs(left, right, dres);
                 if (PyStackRef_IsNull(res)) {
-                    JUMP_TO_LABEL(pop_2_error);
+                    TRACING_JUMP_TO_LABEL(pop_2_error);
                 }
             }
             stack_pointer[-2] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE_SPECIALIZED(right, _PyUnicode_ExactDealloc);
                 PyStackRef_CLOSE_SPECIALIZED(left, _PyUnicode_ExactDealloc);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(pop_2_error);
+                    TRACING_JUMP_TO_LABEL(pop_2_error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 Py_DECREF(right_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (PyStackRef_IsNull(*target_local)) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 #if TIER_ONE
 
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 ((PyFloatObject *)right_o)->ob_fval;
                 res = _PyFloat_FromDouble_ConsumeInputs(left, right, dres);
                 if (PyStackRef_IsNull(res)) {
-                    JUMP_TO_LABEL(pop_2_error);
+                    TRACING_JUMP_TO_LABEL(pop_2_error);
                 }
             }
             stack_pointer[-2] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (rc <= 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 ((PyFloatObject *)right_o)->ob_fval;
                 res = _PyFloat_FromDouble_ConsumeInputs(left, right, dres);
                 if (PyStackRef_IsNull(res)) {
-                    JUMP_TO_LABEL(pop_2_error);
+                    TRACING_JUMP_TO_LABEL(pop_2_error);
                 }
             }
             stack_pointer[-2] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(container);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(value);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (interpolation_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             interpolation = PyStackRef_FromPyObjectSteal(interpolation_o);
             stack_pointer[0] = interpolation;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyObject *list_o = _PyList_FromStackRefStealOnSuccess(values, oparg);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (list_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             list = PyStackRef_FromPyObjectStealMortal(list_o);
             stack_pointer[-oparg] = list;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 stack_pointer += -oparg*2;
                 assert(WITHIN_STACK_BOUNDS());
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFrame_SetStackPointer(frame, stack_pointer);
             PyObject *map_o = _PyDict_FromItems(
             stack_pointer += -oparg*2;
             assert(WITHIN_STACK_BOUNDS());
             if (map_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             map = PyStackRef_FromPyObjectStealMortal(map_o);
             stack_pointer[0] = map;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 stack_pointer += -oparg;
                 assert(WITHIN_STACK_BOUNDS());
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             int err = 0;
             for (Py_ssize_t i = 0; i < oparg; i++) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 Py_DECREF(set_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             set = PyStackRef_FromPyObjectStealMortal(set_o);
             stack_pointer[-oparg] = set;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer += -oparg;
             assert(WITHIN_STACK_BOUNDS());
             if (slice_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             slice = PyStackRef_FromPyObjectStealMortal(slice_o);
             stack_pointer[0] = slice;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 stack_pointer += -oparg;
                 assert(WITHIN_STACK_BOUNDS());
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             PyObject *str_o = _PyUnicode_JoinArray(&_Py_STR(empty), pieces_o, oparg);
             STACKREFS_TO_PYOBJECTS_CLEANUP(pieces_o);
             stack_pointer += -oparg;
             assert(WITHIN_STACK_BOUNDS());
             if (str_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             str = PyStackRef_FromPyObjectSteal(str_o);
             stack_pointer[0] = str;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(strings);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (template_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             template = PyStackRef_FromPyObjectSteal(template_o);
             stack_pointer[0] = template;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             values = &stack_pointer[-oparg];
             PyObject *tup_o = _PyTuple_FromStackRefStealOnSuccess(values, oparg);
             if (tup_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             tup = PyStackRef_FromPyObjectStealMortal(tup_o);
             stack_pointer[-oparg] = tup;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
                     if (new_frame == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     frame->return_offset = 4u ;
                     DISPATCH_INLINED(new_frame);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 stack_pointer[-2 - oparg] = callable;
                 stack_pointer[-1 - oparg] = self_or_null;
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyObject *self_o = PyType_GenericAlloc(tp, 0);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (self_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 self_or_null = PyStackRef_FromPyObjectSteal(self_o);
                 _PyStackRef temp = callable;
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     _PyEval_FrameClearAndPop(tstate, shim);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 frame->return_offset = 1 + INLINE_CACHE_ENTRIES_CALL;
                 tstate->py_recursion_remaining--;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (temp == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 new_frame = PyStackRef_Wrap(temp);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyObject *res_o = tp->tp_vectorcall((PyObject *)tp, args_o, total_args, NULL);
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyObject *res_o = _PyCFunctionFast_CAST(cfunc)(
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyObject *res_o = cfunc(PyCFunction_GET_SELF(callable_o), args_o, total_args, NULL);
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(callable);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     int err = _Py_Check_ArgsIterable(tstate, PyStackRef_AsPyObjectBorrow(func), callargs_o);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err < 0) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     PyObject *tuple_o = PySequence_Tuple(callargs_o);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (tuple_o == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     _PyStackRef temp = callargs;
                     callargs = PyStackRef_FromPyObjectSteal(tuple_o);
                         frame, this_instr, func, arg);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     result_o = PyObject_Call(func, callargs, kwargs);
                         stack_pointer += -2;
                         assert(WITHIN_STACK_BOUNDS());
                         if (new_frame == NULL) {
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                         assert( 1u == 1);
                         frame->return_offset = 1;
                 PyStackRef_CLOSE(func_st);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (result_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 result = PyStackRef_FromPyObjectSteal(result_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(value);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer += -2;
             assert(WITHIN_STACK_BOUNDS());
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 int retval = PyObject_IsInstance(inst_o, cls_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (retval < 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 (void)null;
                 stack_pointer += -1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                     PyStackRef_CLOSE(kwnames);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (new_frame == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     assert( 4u == 1 + INLINE_CACHE_ENTRIES_CALL_KW);
                     frame->return_offset = 4u ;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -3 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 stack_pointer[-3 - oparg] = callable;
                 stack_pointer[-2 - oparg] = self_or_null;
                 stack_pointer += -3 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (temp == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 new_frame = PyStackRef_Wrap(temp);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -3 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 PyObject *kwnames_o = PyStackRef_AsPyObjectBorrow(kwnames);
                 int positional_args = total_args - (int)PyTuple_GET_SIZE(kwnames_o);
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (temp == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 new_frame = PyStackRef_Wrap(temp);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 Py_ssize_t len_i = PyObject_Length(arg_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (len_i < 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 PyObject *res_o = PyLong_FromSsize_t(len_i);
                 assert((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 stack_pointer += -1;
                 assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(callable);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 #if TIER_ONE
 
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyCFunctionFast cfunc = _PyCFunctionFast_CAST(meth->ml_meth);
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyCFunctionFastWithKeywords cfunc =
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(callable);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyObject *res_o = PyObject_Vectorcall(
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (temp == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 new_frame = PyStackRef_Wrap(temp);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(arg);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(arg);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             PyObject *match_o = NULL;
             PyObject *rest_o = NULL;
             stack_pointer += -2;
             assert(WITHIN_STACK_BOUNDS());
             if (res < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             assert((match_o == NULL) == (rest_o == NULL));
             if (match_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (!Py_IsNone(match_o)) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             int err = _PyEval_CheckExceptTypeValid(tstate, right_o);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFrame_SetStackPointer(frame, stack_pointer);
             int res = PyErr_GivenExceptionMatches(left_o, right_o);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 _PyErr_SetRaisedException(tstate, Py_NewRef(exc_value));
                 monitor_reraise(tstate, frame, this_instr);
-                JUMP_TO_LABEL(exception_unwind);
+                TRACING_JUMP_TO_LABEL(exception_unwind);
             }
             stack_pointer[0] = none;
             stack_pointer[1] = value;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 if (oparg & 16) {
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     Py_DECREF(res_o);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (res_bool < 0) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     res = res_bool ? PyStackRef_True : PyStackRef_False;
                 }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res < 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 b = (res ^ oparg) ? PyStackRef_True : PyStackRef_False;
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res < 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 b = (res ^ oparg) ? PyStackRef_True : PyStackRef_False;
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res < 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 b = (res ^ oparg) ? PyStackRef_True : PyStackRef_False;
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(value);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (result_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             result = PyStackRef_FromPyObjectSteal(result_o);
             stack_pointer[0] = result;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(owner);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFrame_SetStackPointer(frame, stack_pointer);
             Py_DECREF(oldobj);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     PyTuple_GetItem(_PyFrame_GetCode(frame)->co_localsplusnames, oparg)
                 );
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyStackRef tmp = GETLOCAL(oparg);
             GETLOCAL(oparg) = PyStackRef_NULL;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             int err = PyDict_Pop(GLOBALS(), name, NULL);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (err == 0) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 _PyEval_FormatExcCheckArg(tstate, PyExc_NameError,
                     NAME_ERROR_MSG, name);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyErr_Format(tstate, PyExc_SystemError,
                               "no locals when deleting %R", name);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFrame_SetStackPointer(frame, stack_pointer);
             err = PyObject_DelItem(ns, name);
                     NAME_ERROR_MSG,
                     name);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer += -2;
             assert(WITHIN_STACK_BOUNDS());
             if (err) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyStackRef_CLOSE(update);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             stack_pointer += -1;
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyStackRef_CLOSE(update);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             stack_pointer += -1;
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 _PyErr_SetRaisedException(tstate, exc);
                 monitor_reraise(tstate, frame, this_instr);
-                JUMP_TO_LABEL(exception_unwind);
+                TRACING_JUMP_TO_LABEL(exception_unwind);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                              "__init__() should return None, not '%.200s'",
                              Py_TYPE(PyStackRef_AsPyObjectBorrow(should_be_none))->tp_name);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             stack_pointer += -1;
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(value);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer += -2;
             assert(WITHIN_STACK_BOUNDS());
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (!PyStackRef_IsValid(item)) {
                     if (PyStackRef_IsError(item)) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     JUMPBY(oparg + 1);
                     RECORD_JUMP_TAKEN();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 r->len--;
                 PyObject *res = PyLong_FromLong(value);
                 if (res == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 next = PyStackRef_FromPyObjectSteal(res);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyStackRef_CLOSE(obj);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFrame_SetStackPointer(frame, stack_pointer);
             iter_o = (*getter)(obj_o);
             PyStackRef_CLOSE(obj);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (iter_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (Py_TYPE(iter_o)->tp_as_async == NULL ||
                 Py_TYPE(iter_o)->tp_as_async->am_anext == NULL) {
                               Py_TYPE(iter_o)->tp_name);
                 Py_DECREF(iter_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             iter = PyStackRef_FromPyObjectSteal(iter_o);
             stack_pointer[0] = iter;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyObject *awaitable_o = _PyEval_GetANext(PyStackRef_AsPyObjectBorrow(aiter));
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (awaitable_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             awaitable = PyStackRef_FromPyObjectSteal(awaitable_o);
             stack_pointer[0] = awaitable;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(iterable);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (iter_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             iter = PyStackRef_FromPyObjectSteal(iter_o);
             stack_pointer[0] = iter;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(iterable);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (iter_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 iter = PyStackRef_FromPyObjectSteal(iter_o);
                 index_or_null = PyStackRef_NULL;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             Py_ssize_t len_i = PyObject_Length(PyStackRef_AsPyObjectBorrow(obj));
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (len_i < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             PyObject *len_o = PyLong_FromSsize_t(len_i);
             if (len_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             len = PyStackRef_FromPyObjectSteal(len_o);
             stack_pointer[0] = len;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                                      "cannot 'yield from' a coroutine object "
                                      "in a non-coroutine generator");
                     stack_pointer = _PyFrame_GetStackPointer(frame);
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 iter = iterable;
             }
                 PyObject *iter_o = PyObject_GetIter(iterable_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (iter_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 iter = PyStackRef_FromPyObjectSteal(iter_o);
                 _PyFrame_SetStackPointer(frame, stack_pointer);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyObject *res_o = _PyEval_ImportFrom(tstate, PyStackRef_AsPyObjectBorrow(from), name);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer += -2;
             assert(WITHIN_STACK_BOUNDS());
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 );
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _DO_CALL
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
                     if (new_frame == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     frame->return_offset = 4u ;
                     DISPATCH_INLINED(new_frame);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -2 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyObject *res_o = PyObject_Vectorcall(
                 stack_pointer += -2 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     int err = _Py_Check_ArgsIterable(tstate, PyStackRef_AsPyObjectBorrow(func), callargs_o);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err < 0) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     PyObject *tuple_o = PySequence_Tuple(callargs_o);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (tuple_o == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     _PyStackRef temp = callargs;
                     callargs = PyStackRef_FromPyObjectSteal(tuple_o);
                         frame, this_instr, func, arg);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     result_o = PyObject_Call(func, callargs, kwargs);
                         stack_pointer += -2;
                         assert(WITHIN_STACK_BOUNDS());
                         if (new_frame == NULL) {
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                         assert( 1u == 1);
                         frame->return_offset = 1;
                 PyStackRef_CLOSE(func_st);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (result_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 result = PyStackRef_FromPyObjectSteal(result_o);
             }
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     frame, this_instr, function, arg);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _DO_CALL_KW
                     PyStackRef_CLOSE(kwnames);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (new_frame == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     assert( 4u == 1 + INLINE_CACHE_ENTRIES_CALL_KW);
                     frame->return_offset = 4u ;
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     stack_pointer += -3 - oparg;
                     assert(WITHIN_STACK_BOUNDS());
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyObject *res_o = PyObject_Vectorcall(
                 stack_pointer += -3 - oparg;
                 assert(WITHIN_STACK_BOUNDS());
                 if (res_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = PyStackRef_FromPyObjectSteal(res_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     _PyErr_SetRaisedException(tstate, exc);
                     monitor_reraise(tstate, frame, this_instr);
-                    JUMP_TO_LABEL(exception_unwind);
+                    TRACING_JUMP_TO_LABEL(exception_unwind);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 int err = monitor_stop_iteration(tstate, frame, this_instr, PyStackRef_AsPyObjectBorrow(value));
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             stack_pointer += -1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 int err = monitor_stop_iteration(tstate, frame, this_instr, PyStackRef_AsPyObjectBorrow(value));
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             val = value;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (!PyStackRef_IsValid(item)) {
                 if (PyStackRef_IsError(item)) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 JUMPBY(oparg + 1);
                 stack_pointer[-1] = null_or_index;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 tstate, frame, this_instr);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (next_opcode < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             next_instr = this_instr;
             if (_PyOpcode_Caches[next_opcode]) {
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _MONITOR_JUMP_BACKWARD
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const prev_instr = frame->instr_ptr;
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (original_opcode < 0) {
                     next_instr = this_instr+1;
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 next_instr = frame->instr_ptr;
                 if (next_instr != this_instr) {
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                         stack_pointer += -3;
                         assert(WITHIN_STACK_BOUNDS());
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                 }
                 PyObject *stack[] = {class, self};
                 stack_pointer += -3;
                 assert(WITHIN_STACK_BOUNDS());
                 if (super == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2);
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 Py_DECREF(super);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (attr_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 attr = PyStackRef_FromPyObjectSteal(attr_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const prev_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const prev_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     _PyEval_GetExecutableCode(tstate, _PyFrame_GetCode(frame));
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (bytecode == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     ptrdiff_t off = this_instr - _PyFrame_GetBytecode(frame);
                     frame->tlbc_index = ((_PyThreadStateImpl *)tstate)->tlbc_index;
                         int err = _Py_Instrument(_PyFrame_GetCode(frame), tstate->interp);
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                         if (err) {
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                         next_instr = this_instr;
                         TRACING_DISPATCH();
                     int err = check_periodics(tstate);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err != 0) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                 }
             }
                     tstate, oparg > 0, frame, this_instr);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 if (frame->instr_ptr != this_instr) {
                     next_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     frame, this_instr, PyStackRef_AsPyObjectBorrow(val));
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _RETURN_VALUE
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     frame, this_instr, PyStackRef_AsPyObjectBorrow(val));
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 if (frame->instr_ptr != this_instr) {
                     next_instr = frame->instr_ptr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _JUMP_BACKWARD_NO_INTERRUPT
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _JUMP_BACKWARD_NO_INTERRUPT
                             TRACING_DISPATCH();
                         }
                     }
-                    _PyFrame_SetStackPointer(frame, stack_pointer);
                     _PyJIT_InitializeTracing(tstate, frame, next_instr, STACK_LEVEL(), 0);
-                    stack_pointer = _PyFrame_GetStackPointer(frame);
                     ENTER_TRACING();
                     TRACING_DISPATCH();
                 }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 int err = check_periodics(tstate);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err != 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _JUMP_BACKWARD_NO_INTERRUPT
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             int err = _PyList_AppendTakeRef((PyListObject *)PyStackRef_AsPyObjectBorrow(list),
                 PyStackRef_AsPyObjectSteal(v));
             if (err < 0) {
-                JUMP_TO_LABEL(pop_1_error);
+                TRACING_JUMP_TO_LABEL(pop_1_error);
             }
             stack_pointer += -1;
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyStackRef_CLOSE(iterable_st);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             assert(Py_IsNone(none_val));
             stack_pointer += -1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                         PyStackRef_CLOSE(owner);
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                         if (PyStackRef_IsNull(*attr)) {
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                         self_or_null[0] = PyStackRef_NULL;
                         stack_pointer += 1;
                     PyStackRef_CLOSE(owner);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (attr_o == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     *attr = PyStackRef_FromPyObjectSteal(attr_o);
                     stack_pointer += 1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             int err = PyMapping_GetOptionalItem(BUILTINS(), &_Py_ID(__build_class__), &bc_o);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (bc_o == NULL) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 _PyErr_SetString(tstate, PyExc_NameError,
                                  "__build_class__ not found");
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             bc = PyStackRef_FromPyObjectSteal(bc_o);
             stack_pointer[0] = bc;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             stack_pointer[0] = value;
             stack_pointer += 1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                     PyTuple_GetItem(_PyFrame_GetCode(frame)->co_localsplusnames, oparg)
                 );
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             value = PyStackRef_DUP(value_s);
             stack_pointer[0] = value;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             int err = PyMapping_GetOptionalItem(class_dict, name, &value_o);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (!value_o) {
                 PyCellObject *cell = (PyCellObject *)PyStackRef_AsPyObjectBorrow(GETLOCAL(oparg));
                     _PyFrame_SetStackPointer(frame, stack_pointer);
                     _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             stack_pointer += -1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(mod_or_class_dict);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (v_o == NULL) {
                 if (PyDict_CheckExact(GLOBALS())
                                 NAME_ERROR_MSG, name);
                             stack_pointer = _PyFrame_GetStackPointer(frame);
                         }
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                 }
                 else {
                     int err = PyMapping_GetOptionalItem(GLOBALS(), name, &v_o);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err < 0) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     if (v_o == NULL) {
                         _PyFrame_SetStackPointer(frame, stack_pointer);
                         int err = PyMapping_GetOptionalItem(BUILTINS(), name, &v_o);
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                         if (err < 0) {
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                         if (v_o == NULL) {
                             _PyFrame_SetStackPointer(frame, stack_pointer);
                                 tstate, PyExc_NameError,
                                 NAME_ERROR_MSG, name);
                             stack_pointer = _PyFrame_GetStackPointer(frame);
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                     }
                 }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 _PyEval_LoadGlobalStackRef(GLOBALS(), BUILTINS(), name, res);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (PyStackRef_IsNull(*res)) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             // _PUSH_NULL_CONDITIONAL
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyErr_SetString(tstate, PyExc_SystemError,
                                  "no locals found");
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             locals = PyStackRef_FromPyObjectNew(l);
             stack_pointer[0] = locals;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyObject *v_o = _PyEval_LoadName(tstate, frame, name);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (v_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             v = PyStackRef_FromPyObjectSteal(v_o);
             stack_pointer[0] = v;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                         _PyErr_Format(tstate, PyExc_TypeError, errfmt, owner);
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                     }
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                         stack_pointer += -3;
                         assert(WITHIN_STACK_BOUNDS());
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                 }
                 PyObject *stack[] = {class, self};
                 stack_pointer += -3;
                 assert(WITHIN_STACK_BOUNDS());
                 if (super == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2);
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 Py_DECREF(super);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (attr_o == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 attr = PyStackRef_FromPyObjectSteal(attr_o);
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             stack_pointer += -3;
             assert(WITHIN_STACK_BOUNDS());
             if (attr == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             attr_st = PyStackRef_FromPyObjectSteal(attr);
             stack_pointer[0] = attr_st;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 Py_TYPE(self)->tp_getattro == PyObject_GenericGetAttr ? &method_found : NULL);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (attr_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (method_found) {
                 self_or_null = self_st;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyObject *initial = PyStackRef_AsPyObjectBorrow(GETLOCAL(oparg));
             PyObject *cell = PyCell_New(initial);
             if (cell == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyStackRef tmp = GETLOCAL(oparg);
             GETLOCAL(oparg) = PyStackRef_FromPyObjectSteal(cell);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(codeobj_st);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (func_obj == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFunction_SetVersion(
                                    func_obj, ((PyCodeObject *)codeobj)->co_version);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             );
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err != 0) {
-                JUMP_TO_LABEL(pop_2_error);
+                TRACING_JUMP_TO_LABEL(pop_2_error);
             }
             stack_pointer += -2;
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             }
             else {
                 if (_PyErr_Occurred(tstate)) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 attrs = PyStackRef_None;
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_AsPyObjectBorrow(subject), PyStackRef_AsPyObjectBorrow(keys));
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (values_or_none_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             values_or_none = PyStackRef_FromPyObjectSteal(values_or_none_o);
             stack_pointer[0] = values_or_none;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 assert(oparg == 0);
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 monitor_reraise(tstate, frame, this_instr);
-                JUMP_TO_LABEL(exception_unwind);
+                TRACING_JUMP_TO_LABEL(exception_unwind);
             }
-            JUMP_TO_LABEL(error);
+            TRACING_JUMP_TO_LABEL(error);
         }
 
         TRACING_TARGET(RERAISE) {
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             _PyFrame_SetStackPointer(frame, stack_pointer);
             _PyErr_SetRaisedException(tstate, exc);
             monitor_reraise(tstate, frame, this_instr);
-            JUMP_TO_LABEL(exception_unwind);
+            TRACING_JUMP_TO_LABEL(exception_unwind);
         }
 
         TRACING_TARGET(RESERVED) {
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                     _PyEval_GetExecutableCode(tstate, _PyFrame_GetCode(frame));
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (bytecode == NULL) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                     ptrdiff_t off = this_instr - _PyFrame_GetBytecode(frame);
                     frame->tlbc_index = ((_PyThreadStateImpl *)tstate)->tlbc_index;
                         int err = _Py_Instrument(_PyFrame_GetCode(frame), tstate->interp);
                         stack_pointer = _PyFrame_GetStackPointer(frame);
                         if (err) {
-                            JUMP_TO_LABEL(error);
+                            TRACING_JUMP_TO_LABEL(error);
                         }
                         next_instr = this_instr;
                         TRACING_DISPATCH();
                     int err = check_periodics(tstate);
                     stack_pointer = _PyFrame_GetStackPointer(frame);
                     if (err != 0) {
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                 }
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (gen == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             assert(STACK_LEVEL() == 0);
             _PyFrame_SetStackPointer(frame, stack_pointer);
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                         _PyFrame_SetStackPointer(frame, stack_pointer);
                         PyStackRef_CLOSE(v);
                         stack_pointer = _PyFrame_GetStackPointer(frame);
-                        JUMP_TO_LABEL(error);
+                        TRACING_JUMP_TO_LABEL(error);
                     }
                 }
                 stack_pointer += -1;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyErr_Format(tstate, PyExc_SystemError,
                               "no locals found when setting up annotations");
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             _PyFrame_SetStackPointer(frame, stack_pointer);
             int err = PyMapping_GetOptionalItem(LOCALS(), &_Py_ID(__annotations__), &ann_dict);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (ann_dict == NULL) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 ann_dict = PyDict_New();
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (ann_dict == NULL) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 err = PyObject_SetItem(LOCALS(), &_Py_ID(__annotations__),
                 Py_DECREF(ann_dict);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             else {
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                                         PyStackRef_AsPyObjectSteal(v));
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err) {
-                JUMP_TO_LABEL(pop_1_error);
+                TRACING_JUMP_TO_LABEL(pop_1_error);
             }
             stack_pointer += -1;
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(iterable);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err < 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 stack_pointer += -2;
                 assert(WITHIN_STACK_BOUNDS());
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(v);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 _PyFrame_SetStackPointer(frame, stack_pointer);
                 PyStackRef_CLOSE(v);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             if (PyDict_CheckExact(ns)) {
                 _PyFrame_SetStackPointer(frame, stack_pointer);
             PyStackRef_CLOSE(v);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (err) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             TRACING_DISPATCH();
         }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 stack_pointer += -4;
                 assert(WITHIN_STACK_BOUNDS());
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 stack_pointer += -3;
                 assert(WITHIN_STACK_BOUNDS());
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
                 PyStackRef_CLOSE(dict_st);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             TRACING_DISPATCH();
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 PyStackRef_CLOSE(value);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (err < 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
                 res = err ? PyStackRef_True : PyStackRef_False;
             }
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(value);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             PyStackRef_CLOSE(value);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             Py_DECREF(seq_o);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (res == 0) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             stack_pointer += 1 + (oparg & 0xFF) + (oparg >> 8);
             assert(WITHIN_STACK_BOUNDS());
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             frame->instr_ptr = next_instr;
                 Py_DECREF(seq_o);
                 stack_pointer = _PyFrame_GetStackPointer(frame);
                 if (res == 0) {
-                    JUMP_TO_LABEL(error);
+                    TRACING_JUMP_TO_LABEL(error);
                 }
             }
             stack_pointer += oparg;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
             Py_XDECREF(original_tb);
             stack_pointer = _PyFrame_GetStackPointer(frame);
             if (res_o == NULL) {
-                JUMP_TO_LABEL(error);
+                TRACING_JUMP_TO_LABEL(error);
             }
             res = PyStackRef_FromPyObjectSteal(res_o);
             stack_pointer[0] = res;
             #endif
             PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);
             (void)old_code;
+            PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);
+            (void)old_func;
             int _jump_taken = false;
             (void)_jump_taken;
             _Py_CODEUNIT* const this_instr = next_instr;
index 597bc6d2dc1bc154c34bf17c33003f3a5f9f877b..2f6f48271710f9c0370513f5374f213f878a3359 100644 (file)
@@ -144,24 +144,19 @@ _PyOptimizer_Optimize(
         return err;
     }
     assert(executor != NULL);
-    if (progress_needed) {
-        int index = get_index_for_executor(code, start);
-        if (index < 0) {
-            /* Out of memory. Don't raise and assume that the
-             * error will show up elsewhere.
-             *
-             * If an optimizer has already produced an executor,
-             * it might get confused by the executor disappearing,
-             * but there is not much we can do about that here. */
-            Py_DECREF(executor);
-            interp->compiling = false;
-            return 0;
-        }
-        insert_executor(code, start, index, executor);
-    }
-    else {
-        executor->vm_data.code = NULL;
+    int index = get_index_for_executor(code, start);
+    if (index < 0) {
+        /* Out of memory. Don't raise and assume that the
+         * error will show up elsewhere.
+         *
+         * If an optimizer has already produced an executor,
+         * it might get confused by the executor disappearing,
+         * but there is not much we can do about that here. */
+        Py_DECREF(executor);
+        interp->compiling = false;
+        return 0;
     }
+    insert_executor(code, start, index, executor);
     executor->vm_data.chain_depth = chain_depth;
     assert(executor->vm_data.valid);
     interp->compiling = false;
@@ -590,11 +585,12 @@ _PyJIT_translate_single_bytecode_to_trace(
     }
 
     if (opcode == ENTER_EXECUTOR) {
+        ADD_TO_TRACE(_CHECK_VALIDITY, 0, 0, target);
+        ADD_TO_TRACE(_SET_IP, 0, (uintptr_t)target_instr, target);
+        ADD_TO_TRACE(_EXIT_TRACE, 0, 0, target);
         goto full;
     }
 
-    assert(opcode != ENTER_EXECUTOR && opcode != EXTENDED_ARG);
-
     bool needs_guard_ip = _PyOpcode_NeedsGuardIp[opcode] &&
         !(opcode == FOR_ITER_RANGE || opcode == FOR_ITER_LIST || opcode == FOR_ITER_TUPLE) &&
         !(opcode == JUMP_BACKWARD_NO_INTERRUPT || opcode == JUMP_BACKWARD || opcode == JUMP_BACKWARD_JIT) &&
@@ -614,6 +610,8 @@ _PyJIT_translate_single_bytecode_to_trace(
         goto done;
     }
 
+    assert(opcode != ENTER_EXECUTOR && opcode != EXTENDED_ARG);
+
     const struct opcode_macro_expansion *expansion = &_PyOpcode_macro_expansion[opcode];
     RESERVE_RAW(expansion->nuops + needs_guard_ip + 3, "uop and various checks");
 
@@ -674,6 +672,7 @@ _PyJIT_translate_single_bytecode_to_trace(
             break;
 
         case RESUME:
+        case RESUME_CHECK:
             /* Use a special tier 2 version of RESUME_CHECK to allow traces to
              *  start with RESUME_CHECK */
             ADD_TO_TRACE(_TIER2_RESUME_CHECK, 0, 0, target);
@@ -819,6 +818,7 @@ _PyJIT_InitializeTracing(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_
     tstate->interp->jit_tracer_initial_code = code;
     tstate->interp->jit_tracer_initial_func = _PyFrame_GetFunction(frame);
     tstate->interp->jit_tracer_seen_initial_before = 0;
+    memset(&tstate->interp->jit_tracer_dependencies.bits, 0, sizeof(tstate->interp->jit_tracer_dependencies.bits));
     tstate->interp->jit_completed_loop = false;
     tstate->interp->jit_tracer_initial_stack_depth = curr_stackdepth;
     tstate->interp->jit_tracer_initial_chain_depth = chain_depth;
@@ -898,10 +898,11 @@ prepare_for_execution(_PyUOpInstruction *buffer, int length)
             else if (exit_flags & HAS_PERIODIC_FLAG) {
                 exit_op = _HANDLE_PENDING_AND_DEOPT;
             }
+            int32_t jump_target = target;
             if (opcode == _FOR_ITER_TIER_TWO || opcode == _GUARD_IP) {
                 exit_op = _DYNAMIC_EXIT;
+                jump_target = current_jump_target + 1;
             }
-            int32_t jump_target = target;
             if (is_for_iter_test[opcode]) {
                 /* Target the POP_TOP immediately after the END_FOR,
                  * leaving only the iterator on the stack. */
@@ -1057,6 +1058,7 @@ make_executor_from_uops(_PyUOpInstruction *buffer, int length, const _PyBloomFil
             _PyExitData *exit = &executor->exits[next_exit];
             exit->target = buffer[i].target;
             dest->operand0 = (uint64_t)exit;
+            exit->is_dynamic = (char)(opcode == _DYNAMIC_EXIT);
             next_exit--;
         }
     }
index 75bff34aa74275c77f89d80dacd5aa41b7ba822a..facdabef83e72b982ee956cbf0503d8d042eb310 100644 (file)
@@ -695,6 +695,8 @@ NON_ESCAPING_FUNCTIONS = (
     "PyStackRef_Wrap",
     "PyStackRef_Unwrap",
     "_PyLong_CheckExactAndCompact",
+    "_PyExecutor_FromExit",
+    "_PyJIT_InitializeTracing",
 )
 
 
index 2ecf27a6585b0c42073efc4b3ff1de4dfec53119..8a95e4ea6a345b34e80668e85cc70be071ec4126 100644 (file)
@@ -107,8 +107,9 @@ class Emitter:
     labels: dict[str, Label]
     _replacers: dict[str, ReplacementFunctionType]
     cannot_escape: bool
+    tracing: str
 
-    def __init__(self, out: CWriter, labels: dict[str, Label], cannot_escape: bool = False):
+    def __init__(self, out: CWriter, labels: dict[str, Label], cannot_escape: bool = False, is_tracing: bool = False):
         self._replacers = {
             "EXIT_IF": self.exit_if,
             "AT_END_EXIT_IF": self.exit_if_after,
@@ -132,6 +133,7 @@ class Emitter:
         self.out = out
         self.labels = labels
         self.cannot_escape = cannot_escape
+        self.tracing = "TRACING_" if is_tracing else ""
 
     def dispatch(
         self,
@@ -199,10 +201,10 @@ class Emitter:
 
     def goto_error(self, offset: int, storage: Storage) -> str:
         if offset > 0:
-            return f"JUMP_TO_LABEL(pop_{offset}_error);"
+            return f"{self.tracing}JUMP_TO_LABEL(pop_{offset}_error);"
         if offset < 0:
             storage.copy().flush(self.out)
-        return f"JUMP_TO_LABEL(error);"
+        return f"{self.tracing}JUMP_TO_LABEL(error);"
 
     def error_if(
         self,
@@ -422,7 +424,7 @@ class Emitter:
         elif storage.spilled:
             raise analysis_error("Cannot jump from spilled label without reloading the stack pointer", goto)
         self.out.start_line()
-        self.out.emit("JUMP_TO_LABEL(")
+        self.out.emit(f"{self.tracing}JUMP_TO_LABEL(")
         self.out.emit(label)
         self.out.emit(")")
 
index 176c4e5e3b378911fc72c1756b51e3d02426870c..4738cac33df8db0f884d8c42a5f3ccea6f7c56ac 100644 (file)
@@ -237,6 +237,8 @@ def generate_tier1_cases(
         out.emit(f"#endif\n")
         out.emit(f"PyCodeObject *old_code = (PyCodeObject *)PyStackRef_AsPyObjectBorrow(frame->f_executable);\n")
         out.emit(f"(void)old_code;\n")
+        out.emit(f"PyFunctionObject *old_func = (PyFunctionObject *)PyStackRef_AsPyObjectBorrow(frame->f_funcobj);\n")
+        out.emit(f"(void)old_func;\n")
         out.emit(f"int _jump_taken = false;\n")
         out.emit(f"(void)_jump_taken;\n")
         needs_this = is_tracing or uses_this(inst)
index 910d2589b14eead32ed2f6e672380a9c4e9c1df5..690c555b8c083b792daaa4c9d83a4e25a713a34e 100644 (file)
@@ -36,7 +36,7 @@ class TracerEmitter(Emitter):
     cannot_escape: bool
 
     def __init__(self, out: CWriter, labels: dict[str, Label], cannot_escape: bool = False):
-        super().__init__(out, labels, cannot_escape)
+        super().__init__(out, labels, cannot_escape, is_tracing=True)
         self._replacers = {
             **self._replacers,
             "DISPATCH": self.dispatch,