diff options
Diffstat (limited to 'Python')
-rw-r--r-- | Python/bytecodes.c | 4 | ||||
-rw-r--r-- | Python/executor_cases.c.h | 4 | ||||
-rw-r--r-- | Python/optimizer.c | 5 |
3 files changed, 7 insertions, 6 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index a6fb862..c00de88 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -4149,9 +4149,7 @@ dummy_func( } op(_JUMP_TO_TOP, (--)) { -#ifndef _Py_JIT - next_uop = ¤t_executor->trace[1]; -#endif + JUMP_TO_JUMP_TARGET(); } tier2 op(_SET_IP, (instr_ptr/4 --)) { diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index cdfffcd..8de0309 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -4302,9 +4302,7 @@ } case _JUMP_TO_TOP: { - #ifndef _Py_JIT - next_uop = ¤t_executor->trace[1]; - #endif + JUMP_TO_JUMP_TARGET(); break; } diff --git a/Python/optimizer.c b/Python/optimizer.c index c9b187d..0d7118c 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -1059,6 +1059,11 @@ prepare_for_execution(_PyUOpInstruction *buffer, int length) buffer[i].jump_target = 0; } } + if (opcode == _JUMP_TO_TOP) { + assert(buffer[0].opcode == _START_EXECUTOR); + buffer[i].format = UOP_FORMAT_JUMP; + buffer[i].jump_target = 1; + } } return next_spare; } |