Replace ad-hoc labels with JUMP_TO_INSTRUCTION (GH-96634)

This commit is contained in:
Brandt Bucher 2022-09-09 14:43:10 -07:00 committed by GitHub
parent b4954b1a9e
commit 72b29b2611
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4107,7 +4107,7 @@ handle_eval_breaker:
PEEK(oparg + 1) = self;
PEEK(oparg + 2) = meth;
Py_DECREF(function);
goto call_exact_args;
JUMP_TO_INSTRUCTION(CALL_PY_EXACT_ARGS);
}
TARGET(KW_NAMES) {
@ -4118,8 +4118,8 @@ handle_eval_breaker:
}
TARGET(CALL) {
PREDICTED(CALL);
int total_args, is_meth;
call_function:
is_meth = is_method(stack_pointer, oparg);
PyObject *function = PEEK(oparg + 1);
if (!is_meth && Py_TYPE(function) == &PyMethod_Type) {
@ -4207,12 +4207,12 @@ handle_eval_breaker:
else {
STAT_INC(CALL, deferred);
DECREMENT_ADAPTIVE_COUNTER(cache);
goto call_function;
JUMP_TO_INSTRUCTION(CALL);
}
}
TARGET(CALL_PY_EXACT_ARGS) {
call_exact_args:
PREDICTED(CALL_PY_EXACT_ARGS);
assert(call_shape.kwnames == NULL);
DEOPT_IF(tstate->interp->eval_frame, CALL);
_PyCallCache *cache = (_PyCallCache *)next_instr;