7676 OPT_STAT_INC(traces_executed); \
7777 _PyExecutorObject *_executor = (EXECUTOR); \
7878 jit_func_preserve_none jitted = _executor->jit_code; \
79- __attribute__((musttail)) return jitted(frame, stack_pointer, tstate, \
79+ __attribute__((musttail)) return jitted(_executor, frame, stack_pointer, tstate, \
8080 _tos_cache0, _tos_cache1, _tos_cache2); \
8181} while (0)
8282
@@ -100,7 +100,7 @@ do { \
100100#define PATCH_JUMP (ALIAS ) \
101101do { \
102102 DECLARE_TARGET(ALIAS); \
103- __attribute__((musttail)) return ALIAS(frame, stack_pointer, tstate, \
103+ __attribute__((musttail)) return ALIAS(current_executor, frame, stack_pointer, tstate, \
104104 _tos_cache0, _tos_cache1, _tos_cache2); \
105105} while (0)
106106
@@ -120,11 +120,11 @@ do { \
120120
121121__attribute__((preserve_none )) _Py_CODEUNIT *
122122_JIT_ENTRY (
123- _PyInterpreterFrame * frame , _PyStackRef * stack_pointer , PyThreadState * tstate ,
124- _PyStackRef _tos_cache0 , _PyStackRef _tos_cache1 , _PyStackRef _tos_cache2
123+ _PyExecutorObject * executor , _PyInterpreterFrame * frame , _PyStackRef * stack_pointer , PyThreadState * tstate ,
124+ _PyStackRef _tos_cache0 , _PyStackRef _tos_cache1 , _PyStackRef _tos_cache2
125125) {
126126 // Locals that the instruction implementations expect to exist:
127- PATCH_VALUE ( _PyExecutorObject * , current_executor , _JIT_EXECUTOR )
127+ _PyExecutorObject * current_executor = executor ;
128128 int oparg ;
129129 int uopcode = _JIT_OPCODE ;
130130 _Py_CODEUNIT * next_instr ;
0 commit comments