aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/abstract_interp_cases.c.h
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2023-08-16 16:26:43 -0700
committerGitHub <noreply@github.com>2023-08-16 16:26:43 -0700
commitdc8fdf5fd5f572e87152883f15f35c354fa4b4bf (patch)
tree8b4c01a4f29113416bda04ebecc1da7126400bb5 /Python/abstract_interp_cases.c.h
parent665a4391e10167dad1c854fb604c86f336fcd331 (diff)
downloadcpython-dc8fdf5fd5f572e87152883f15f35c354fa4b4bf.tar.gz
cpython-dc8fdf5fd5f572e87152883f15f35c354fa4b4bf.zip
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`.
Diffstat (limited to 'Python/abstract_interp_cases.c.h')
-rw-r--r--Python/abstract_interp_cases.c.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/Python/abstract_interp_cases.c.h b/Python/abstract_interp_cases.c.h
index 6bfcf534646..eef071119bc 100644
--- a/Python/abstract_interp_cases.c.h
+++ b/Python/abstract_interp_cases.c.h
@@ -612,6 +612,30 @@
break;
}
+ case _CHECK_PEP_523: {
+ break;
+ }
+
+ case _CHECK_FUNCTION_EXACT_ARGS: {
+ break;
+ }
+
+ case _CHECK_STACK_SPACE: {
+ break;
+ }
+
+ case _INIT_CALL_PY_EXACT_ARGS: {
+ STACK_SHRINK(oparg);
+ STACK_SHRINK(1);
+ PARTITIONNODE_OVERWRITE((_Py_PARTITIONNODE_t *)PARTITIONNODE_NULLROOT, PEEK(-(-1)), true);
+ break;
+ }
+
+ case _PUSH_FRAME: {
+ PARTITIONNODE_OVERWRITE((_Py_PARTITIONNODE_t *)PARTITIONNODE_NULLROOT, PEEK(-(-1)), true);
+ break;
+ }
+
case CALL_NO_KW_TYPE_1: {
STACK_SHRINK(oparg);
STACK_SHRINK(1);
@@ -751,6 +775,10 @@
break;
}
+ case SAVE_CURRENT_IP: {
+ break;
+ }
+
case EXIT_TRACE: {
break;
}