summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/ceval.c')
-rw-r--r--Python/ceval.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 100aa3d..2b42c68 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -143,7 +143,7 @@ lltrace_instruction(_PyInterpreterFrame *frame,
const char *opname = _PyOpcode_OpName[opcode];
assert(opname != NULL);
int offset = (int)(next_instr - _PyCode_CODE(frame->f_code));
- if (HAS_ARG(opcode)) {
+ if (HAS_ARG(_PyOpcode_Deopt[opcode])) {
printf("%d: %s %d\n", offset * 2, opname, oparg);
}
else {
@@ -1165,14 +1165,7 @@ handle_eval_breaker:
TARGET(NOP) {
DISPATCH();
}
-
TARGET(RESUME) {
- _PyCode_Warmup(frame->f_code);
- GO_TO_INSTRUCTION(RESUME_QUICK);
- }
-
- TARGET(RESUME_QUICK) {
- PREDICTED(RESUME_QUICK);
assert(tstate->cframe == &cframe);
assert(frame == cframe.current_frame);
if (_Py_atomic_load_relaxed_int32(eval_breaker) && oparg < 2) {
@@ -1710,7 +1703,7 @@ handle_eval_breaker:
PyObject *list = PEEK(oparg);
if (_PyList_AppendTakeRef((PyListObject *)list, v) < 0)
goto error;
- PREDICT(JUMP_BACKWARD_QUICK);
+ PREDICT(JUMP_BACKWARD);
DISPATCH();
}
@@ -1722,7 +1715,7 @@ handle_eval_breaker:
Py_DECREF(v);
if (err != 0)
goto error;
- PREDICT(JUMP_BACKWARD_QUICK);
+ PREDICT(JUMP_BACKWARD);
DISPATCH();
}
@@ -2908,7 +2901,7 @@ handle_eval_breaker:
if (_PyDict_SetItem_Take2((PyDictObject *)map, key, value) != 0) {
goto error;
}
- PREDICT(JUMP_BACKWARD_QUICK);
+ PREDICT(JUMP_BACKWARD);
DISPATCH();
}
@@ -3576,8 +3569,11 @@ handle_eval_breaker:
}
TARGET(JUMP_BACKWARD) {
- _PyCode_Warmup(frame->f_code);
- GO_TO_INSTRUCTION(JUMP_BACKWARD_QUICK);
+ PREDICTED(JUMP_BACKWARD);
+ assert(oparg < INSTR_OFFSET());
+ JUMPBY(-oparg);
+ CHECK_EVAL_BREAKER();
+ DISPATCH();
}
TARGET(POP_JUMP_IF_FALSE) {
@@ -3707,14 +3703,6 @@ handle_eval_breaker:
DISPATCH();
}
- TARGET(JUMP_BACKWARD_QUICK) {
- PREDICTED(JUMP_BACKWARD_QUICK);
- assert(oparg < INSTR_OFFSET());
- JUMPBY(-oparg);
- CHECK_EVAL_BREAKER();
- DISPATCH();
- }
-
TARGET(GET_LEN) {
// PUSH(len(TOS))
Py_ssize_t len_i = PyObject_Length(TOP());