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