diff options
author | Mark Shannon <mark@hotpy.org> | 2024-04-26 17:08:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-26 17:08:50 (GMT) |
commit | 3e06c7f719b99cc7f5e8889319cff4980e41d3e8 (patch) | |
tree | 042c06326ca8b8866405375d8cf6b1f587cfa28d /Tools | |
parent | 63add11704078390909a485b57a7de6a0358fc2b (diff) | |
download | cpython-3e06c7f719b99cc7f5e8889319cff4980e41d3e8.zip cpython-3e06c7f719b99cc7f5e8889319cff4980e41d3e8.tar.gz cpython-3e06c7f719b99cc7f5e8889319cff4980e41d3e8.tar.bz2 |
GH-118095: Add dynamic exit support and FOR_ITER_GEN support to tier 2 (GH-118279)
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/jit/template.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Tools/jit/template.c b/Tools/jit/template.c index 228dc83..3e81fd1 100644 --- a/Tools/jit/template.c +++ b/Tools/jit/template.c @@ -87,6 +87,7 @@ _JIT_ENTRY(_PyInterpreterFrame *frame, PyObject **stack_pointer, PyThreadState * PATCH_VALUE(_PyExecutorObject *, current_executor, _JIT_EXECUTOR) int oparg; int uopcode = _JIT_OPCODE; + _Py_CODEUNIT *next_instr; // Other stuff we need handy: PATCH_VALUE(uint16_t, _oparg, _JIT_OPARG) #if SIZEOF_VOID_P == 8 @@ -122,6 +123,9 @@ error_tier_two: exit_to_tier1: tstate->previous_executor = (PyObject *)current_executor; GOTO_TIER_ONE(_PyCode_CODE(_PyFrame_GetCode(frame)) + _target); +exit_to_tier1_dynamic: + tstate->previous_executor = (PyObject *)current_executor; + GOTO_TIER_ONE(frame->instr_ptr); exit_to_trace: { _PyExitData *exit = ¤t_executor->exits[_exit_index]; |