GH-115802: Reduce the size of _INIT_CALL_PY_EXACT_ARGS. (GH-116856)

This commit is contained in:
Mark Shannon 2024-03-15 17:16:30 +00:00 committed by GitHub
parent 280de3661b
commit 950667ed07
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 54 additions and 72 deletions

View file

@ -968,16 +968,14 @@
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
{
int argcount = oparg;
if (self_or_null != NULL) {
args--;
argcount++;
}
int has_self = (self_or_null != NULL);
STAT_INC(CALL, hit);
PyFunctionObject *func = (PyFunctionObject *)callable;
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
for (int i = 0; i < argcount; i++) {
new_frame->localsplus[i] = args[i];
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
PyObject **first_non_self_local = new_frame->localsplus + has_self;
new_frame->localsplus[0] = self_or_null;
for (int i = 0; i < oparg; i++) {
first_non_self_local[i] = args[i];
}
}
// _SAVE_RETURN_OFFSET
@ -1759,16 +1757,14 @@
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
{
int argcount = oparg;
if (self_or_null != NULL) {
args--;
argcount++;
}
int has_self = (self_or_null != NULL);
STAT_INC(CALL, hit);
PyFunctionObject *func = (PyFunctionObject *)callable;
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
for (int i = 0; i < argcount; i++) {
new_frame->localsplus[i] = args[i];
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
PyObject **first_non_self_local = new_frame->localsplus + has_self;
new_frame->localsplus[0] = self_or_null;
for (int i = 0; i < oparg; i++) {
first_non_self_local[i] = args[i];
}
}
// _SAVE_RETURN_OFFSET