diff options
author | Ken Jin <kenjin@python.org> | 2024-11-09 03:35:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-09 03:35:33 (GMT) |
commit | 6293d00e7201f3f28b1f4512e57dc4f03855cabd (patch) | |
tree | 4baee70137f279c2e1f1a35159a806c67a7f9dff /Python/bytecodes.c | |
parent | f8276bf5f37ef12aa0033634151fa33a6f7bd4f2 (diff) | |
download | cpython-6293d00e7201f3f28b1f4512e57dc4f03855cabd.zip cpython-6293d00e7201f3f28b1f4512e57dc4f03855cabd.tar.gz cpython-6293d00e7201f3f28b1f4512e57dc4f03855cabd.tar.bz2 |
gh-120619: Strength reduce function guards, support 2-operand uop forms (GH-124846)
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 7ae0f20..04983fd 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -661,7 +661,7 @@ dummy_func( assert(next_instr->op.code == STORE_FAST); next_oparg = next_instr->op.arg; #else - next_oparg = CURRENT_OPERAND(); + next_oparg = CURRENT_OPERAND0(); #endif _PyStackRef *target_local = &GETLOCAL(next_oparg); DEOPT_IF(!PyStackRef_Is(*target_local, left)); @@ -3463,6 +3463,12 @@ dummy_func( EXIT_IF(func->func_version != func_version); } + tier2 op(_CHECK_FUNCTION_VERSION_INLINE, (func_version/2, callable_o/4 --)) { + assert(PyFunction_Check(callable_o)); + PyFunctionObject *func = (PyFunctionObject *)callable_o; + EXIT_IF(func->func_version != func_version); + } + macro(CALL_PY_GENERAL) = unused/1 + // Skip over the counter _CHECK_PEP_523 + |