mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
GH-115802: Reduce the size of _INIT_CALL_PY_EXACT_ARGS. (GH-116856)
This commit is contained in:
parent
280de3661b
commit
950667ed07
3 changed files with 54 additions and 72 deletions
|
@ -3150,16 +3150,14 @@ dummy_func(
|
||||||
}
|
}
|
||||||
|
|
||||||
replicate(5) pure op(_INIT_CALL_PY_EXACT_ARGS, (callable, self_or_null, args[oparg] -- new_frame: _PyInterpreterFrame*)) {
|
replicate(5) pure op(_INIT_CALL_PY_EXACT_ARGS, (callable, self_or_null, args[oparg] -- new_frame: _PyInterpreterFrame*)) {
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
84
Python/executor_cases.c.h
generated
84
Python/executor_cases.c.h
generated
|
@ -2893,16 +2893,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
callable = stack_pointer[-2 - oparg];
|
callable = stack_pointer[-2 - oparg];
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
||||||
stack_pointer += -1 - oparg;
|
stack_pointer += -1 - oparg;
|
||||||
|
@ -2919,16 +2917,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
callable = stack_pointer[-2 - oparg];
|
callable = stack_pointer[-2 - oparg];
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
||||||
stack_pointer += -1 - oparg;
|
stack_pointer += -1 - oparg;
|
||||||
|
@ -2945,16 +2941,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
callable = stack_pointer[-2 - oparg];
|
callable = stack_pointer[-2 - oparg];
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
||||||
stack_pointer += -1 - oparg;
|
stack_pointer += -1 - oparg;
|
||||||
|
@ -2971,16 +2965,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
callable = stack_pointer[-2 - oparg];
|
callable = stack_pointer[-2 - oparg];
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
||||||
stack_pointer += -1 - oparg;
|
stack_pointer += -1 - oparg;
|
||||||
|
@ -2997,16 +2989,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
callable = stack_pointer[-2 - oparg];
|
callable = stack_pointer[-2 - oparg];
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
||||||
stack_pointer += -1 - oparg;
|
stack_pointer += -1 - oparg;
|
||||||
|
@ -3022,16 +3012,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
callable = stack_pointer[-2 - oparg];
|
callable = stack_pointer[-2 - oparg];
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
stack_pointer[-2 - oparg] = (PyObject *)new_frame;
|
||||||
stack_pointer += -1 - oparg;
|
stack_pointer += -1 - oparg;
|
||||||
|
|
28
Python/generated_cases.c.h
generated
28
Python/generated_cases.c.h
generated
|
@ -968,16 +968,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
{
|
{
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// _SAVE_RETURN_OFFSET
|
// _SAVE_RETURN_OFFSET
|
||||||
|
@ -1759,16 +1757,14 @@
|
||||||
args = &stack_pointer[-oparg];
|
args = &stack_pointer[-oparg];
|
||||||
self_or_null = stack_pointer[-1 - oparg];
|
self_or_null = stack_pointer[-1 - oparg];
|
||||||
{
|
{
|
||||||
int argcount = oparg;
|
int has_self = (self_or_null != NULL);
|
||||||
if (self_or_null != NULL) {
|
|
||||||
args--;
|
|
||||||
argcount++;
|
|
||||||
}
|
|
||||||
STAT_INC(CALL, hit);
|
STAT_INC(CALL, hit);
|
||||||
PyFunctionObject *func = (PyFunctionObject *)callable;
|
PyFunctionObject *func = (PyFunctionObject *)callable;
|
||||||
new_frame = _PyFrame_PushUnchecked(tstate, func, argcount);
|
new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self);
|
||||||
for (int i = 0; i < argcount; i++) {
|
PyObject **first_non_self_local = new_frame->localsplus + has_self;
|
||||||
new_frame->localsplus[i] = args[i];
|
new_frame->localsplus[0] = self_or_null;
|
||||||
|
for (int i = 0; i < oparg; i++) {
|
||||||
|
first_non_self_local[i] = args[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// _SAVE_RETURN_OFFSET
|
// _SAVE_RETURN_OFFSET
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue