summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2021-10-06 12:05:45 (GMT)
committerGitHub <noreply@github.com>2021-10-06 12:05:45 (GMT)
commitf6eafe18c004c55082de40d20cad084ef9dd3db7 (patch)
treeb5e0d2f185b2da5cf66f7cbd00c66b87937d46ba /Python/ceval.c
parentc379bc5ec9012cf66424ef3d80612cf13ec51006 (diff)
downloadcpython-f6eafe18c004c55082de40d20cad084ef9dd3db7.zip
cpython-f6eafe18c004c55082de40d20cad084ef9dd3db7.tar.gz
cpython-f6eafe18c004c55082de40d20cad084ef9dd3db7.tar.bz2
Normalize jumps in compiler. All forward jumps to use JUMP_FORWARD. (GH-28755)
Diffstat (limited to 'Python/ceval.c')
-rw-r--r--Python/ceval.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 2dbc291..a3a173d 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4051,19 +4051,18 @@ check_eval_breaker:
TARGET(JUMP_ABSOLUTE) {
PREDICTED(JUMP_ABSOLUTE);
- if (oparg < INSTR_OFFSET()) {
- /* Increment the warmup counter and quicken if warm enough
- * _Py_Quicken is idempotent so we don't worry about overflow */
- if (!PyCodeObject_IsWarmedUp(co)) {
- PyCodeObject_IncrementWarmup(co);
- if (PyCodeObject_IsWarmedUp(co)) {
- if (_Py_Quicken(co)) {
- goto error;
- }
- int nexti = INSTR_OFFSET();
- first_instr = co->co_firstinstr;
- next_instr = first_instr + nexti;
+ assert(oparg < INSTR_OFFSET());
+ /* Increment the warmup counter and quicken if warm enough
+ * _Py_Quicken is idempotent so we don't worry about overflow */
+ if (!PyCodeObject_IsWarmedUp(co)) {
+ PyCodeObject_IncrementWarmup(co);
+ if (PyCodeObject_IsWarmedUp(co)) {
+ if (_Py_Quicken(co)) {
+ goto error;
}
+ int nexti = INSTR_OFFSET();
+ first_instr = co->co_firstinstr;
+ next_instr = first_instr + nexti;
}
}
JUMPTO(oparg);
@@ -4072,6 +4071,7 @@ check_eval_breaker:
}
TARGET(JUMP_ABSOLUTE_QUICK) {
+ assert(oparg < INSTR_OFFSET());
JUMPTO(oparg);
CHECK_EVAL_BREAKER();
DISPATCH();