mirror of
https://github.com/python/cpython.git
synced 2025-09-02 15:07:53 +00:00
bpo-47120: Replace the JUMP_ABSOLUTE opcode by the relative JUMP_BACKWARD (GH-32115)
This commit is contained in:
parent
b36d222110
commit
a00518d9ad
15 changed files with 147 additions and 113 deletions
|
@ -2218,7 +2218,7 @@ handle_eval_breaker:
|
|||
Py_DECREF(v);
|
||||
if (err != 0)
|
||||
goto error;
|
||||
PREDICT(JUMP_ABSOLUTE);
|
||||
PREDICT(JUMP_BACKWARD_QUICK);
|
||||
DISPATCH();
|
||||
}
|
||||
|
||||
|
@ -2230,7 +2230,7 @@ handle_eval_breaker:
|
|||
Py_DECREF(v);
|
||||
if (err != 0)
|
||||
goto error;
|
||||
PREDICT(JUMP_ABSOLUTE);
|
||||
PREDICT(JUMP_BACKWARD_QUICK);
|
||||
DISPATCH();
|
||||
}
|
||||
|
||||
|
@ -3396,7 +3396,7 @@ handle_eval_breaker:
|
|||
if (_PyDict_SetItem_Take2((PyDictObject *)map, key, value) != 0) {
|
||||
goto error;
|
||||
}
|
||||
PREDICT(JUMP_ABSOLUTE);
|
||||
PREDICT(JUMP_BACKWARD_QUICK);
|
||||
DISPATCH();
|
||||
}
|
||||
|
||||
|
@ -3926,6 +3926,11 @@ handle_eval_breaker:
|
|||
DISPATCH();
|
||||
}
|
||||
|
||||
TARGET(JUMP_BACKWARD) {
|
||||
_PyCode_Warmup(frame->f_code);
|
||||
JUMP_TO_INSTRUCTION(JUMP_BACKWARD_QUICK);
|
||||
}
|
||||
|
||||
TARGET(POP_JUMP_IF_FALSE) {
|
||||
PREDICTED(POP_JUMP_IF_FALSE);
|
||||
PyObject *cond = POP();
|
||||
|
@ -4053,12 +4058,6 @@ handle_eval_breaker:
|
|||
DISPATCH();
|
||||
}
|
||||
|
||||
TARGET(JUMP_ABSOLUTE) {
|
||||
PREDICTED(JUMP_ABSOLUTE);
|
||||
_PyCode_Warmup(frame->f_code);
|
||||
JUMP_TO_INSTRUCTION(JUMP_ABSOLUTE_QUICK);
|
||||
}
|
||||
|
||||
TARGET(JUMP_NO_INTERRUPT) {
|
||||
/* This bytecode is used in the `yield from` or `await` loop.
|
||||
* If there is an interrupt, we want it handled in the innermost
|
||||
|
@ -4069,10 +4068,10 @@ handle_eval_breaker:
|
|||
DISPATCH();
|
||||
}
|
||||
|
||||
TARGET(JUMP_ABSOLUTE_QUICK) {
|
||||
PREDICTED(JUMP_ABSOLUTE_QUICK);
|
||||
TARGET(JUMP_BACKWARD_QUICK) {
|
||||
PREDICTED(JUMP_BACKWARD_QUICK);
|
||||
assert(oparg < INSTR_OFFSET());
|
||||
JUMPTO(oparg);
|
||||
JUMPBY(-oparg);
|
||||
CHECK_EVAL_BREAKER();
|
||||
DISPATCH();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue