]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-106581: Split `CALL_PY_EXACT_ARGS` into uops (#107760)
authorGuido van Rossum <guido@python.org>
Wed, 16 Aug 2023 23:26:43 +0000 (16:26 -0700)
committerGitHub <noreply@github.com>
Wed, 16 Aug 2023 23:26:43 +0000 (16:26 -0700)
commitdc8fdf5fd5f572e87152883f15f35c354fa4b4bf
tree8b4c01a4f29113416bda04ebecc1da7126400bb5
parent665a4391e10167dad1c854fb604c86f336fcd331
gh-106581: Split `CALL_PY_EXACT_ARGS` into uops (#107760)

* Split `CALL_PY_EXACT_ARGS` into uops

This is only the first step for doing `CALL` in Tier 2.
The next step involves tracing into the called code object and back.
After that we'll have to do the remaining `CALL` specialization.
Finally we'll have to deal with `KW_NAMES`.

Note: this moves setting `frame->return_offset` directly in front of
`DISPATCH_INLINED()`, to make it easier to move it into `_PUSH_FRAME`.
14 files changed:
Include/internal/pycore_opcode_metadata.h
Lib/test/test_capi/test_misc.py
Python/abstract_interp_cases.c.h
Python/bytecodes.c
Python/ceval.c
Python/ceval_macros.h
Python/executor.c
Python/executor_cases.c.h
Python/generated_cases.c.h
Python/optimizer.c
Tools/cases_generator/flags.py
Tools/cases_generator/generate_cases.py
Tools/cases_generator/instructions.py
Tools/cases_generator/stacking.py