summaryrefslogtreecommitdiffstats
path: root/Python/generated_cases.c.h
diff options
context:
space:
mode:
Diffstat (limited to 'Python/generated_cases.c.h')
-rw-r--r--Python/generated_cases.c.h430
1 files changed, 244 insertions, 186 deletions
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index 7d02e49..645d0fb 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -842,6 +842,9 @@
}
if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
+ // _CHECK_PERIODIC
+ {
+ }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1020,25 +1023,31 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_BUILTIN_CLASS
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ DEOPT_IF(!PyType_Check(callable), CALL);
+ PyTypeObject *tp = (PyTypeObject *)callable;
+ DEOPT_IF(tp->tp_vectorcall == NULL, CALL);
+ STAT_INC(CALL, hit);
+ res = tp->tp_vectorcall((PyObject *)tp, args, total_args, NULL);
+ /* Free the arguments. */
+ for (int i = 0; i < total_args; i++) {
+ Py_DECREF(args[i]);
+ }
+ Py_DECREF(tp);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- DEOPT_IF(!PyType_Check(callable), CALL);
- PyTypeObject *tp = (PyTypeObject *)callable;
- DEOPT_IF(tp->tp_vectorcall == NULL, CALL);
- STAT_INC(CALL, hit);
- res = tp->tp_vectorcall((PyObject *)tp, args, total_args, NULL);
- /* Free the arguments. */
- for (int i = 0; i < total_args; i++) {
- Py_DECREF(args[i]);
+ // _CHECK_PERIODIC
+ {
}
- Py_DECREF(tp);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1056,36 +1065,37 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_BUILTIN_FAST
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- /* Builtin METH_FASTCALL functions, without keywords */
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ /* Builtin METH_FASTCALL functions, without keywords */
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ DEOPT_IF(!PyCFunction_CheckExact(callable), CALL);
+ DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_FASTCALL, CALL);
+ STAT_INC(CALL, hit);
+ PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable);
+ /* res = func(self, args, nargs) */
+ res = ((PyCFunctionFast)(void(*)(void))cfunc)(
+ PyCFunction_GET_SELF(callable),
+ args,
+ total_args);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ /* Free the arguments. */
+ for (int i = 0; i < total_args; i++) {
+ Py_DECREF(args[i]);
+ }
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- DEOPT_IF(!PyCFunction_CheckExact(callable), CALL);
- DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_FASTCALL, CALL);
- STAT_INC(CALL, hit);
- PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable);
- /* res = func(self, args, nargs) */
- res = ((PyCFunctionFast)(void(*)(void))cfunc)(
- PyCFunction_GET_SELF(callable),
- args,
- total_args);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- /* Free the arguments. */
- for (int i = 0; i < total_args; i++) {
- Py_DECREF(args[i]);
+ // _CHECK_PERIODIC
+ {
}
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
- /* Not deopting because this doesn't mean our optimization was
- wrong. `res` can be NULL for valid reasons. Eg. getattr(x,
- 'invalid'). In those cases an exception is set, so we must
- handle it.
- */
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1103,30 +1113,36 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_BUILTIN_FAST_WITH_KEYWORDS
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- /* Builtin METH_FASTCALL | METH_KEYWORDS functions */
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ /* Builtin METH_FASTCALL | METH_KEYWORDS functions */
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ DEOPT_IF(!PyCFunction_CheckExact(callable), CALL);
+ DEOPT_IF(PyCFunction_GET_FLAGS(callable) != (METH_FASTCALL | METH_KEYWORDS), CALL);
+ STAT_INC(CALL, hit);
+ /* res = func(self, args, nargs, kwnames) */
+ PyCFunctionFastWithKeywords cfunc =
+ (PyCFunctionFastWithKeywords)(void(*)(void))
+ PyCFunction_GET_FUNCTION(callable);
+ res = cfunc(PyCFunction_GET_SELF(callable), args, total_args, NULL);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ /* Free the arguments. */
+ for (int i = 0; i < total_args; i++) {
+ Py_DECREF(args[i]);
+ }
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- DEOPT_IF(!PyCFunction_CheckExact(callable), CALL);
- DEOPT_IF(PyCFunction_GET_FLAGS(callable) != (METH_FASTCALL | METH_KEYWORDS), CALL);
- STAT_INC(CALL, hit);
- /* res = func(self, args, nargs, kwnames) */
- PyCFunctionFastWithKeywords cfunc =
- (PyCFunctionFastWithKeywords)(void(*)(void))
- PyCFunction_GET_FUNCTION(callable);
- res = cfunc(PyCFunction_GET_SELF(callable), args, total_args, NULL);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- /* Free the arguments. */
- for (int i = 0; i < total_args; i++) {
- Py_DECREF(args[i]);
+ // _CHECK_PERIODIC
+ {
}
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1144,32 +1160,38 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_BUILTIN_O
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- /* Builtin METH_O functions */
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ /* Builtin METH_O functions */
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ DEOPT_IF(total_args != 1, CALL);
+ DEOPT_IF(!PyCFunction_CheckExact(callable), CALL);
+ DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_O, CALL);
+ STAT_INC(CALL, hit);
+ PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable);
+ // This is slower but CPython promises to check all non-vectorcall
+ // function calls.
+ if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
+ GOTO_ERROR(error);
+ }
+ PyObject *arg = args[0];
+ res = _PyCFunction_TrampolineCall(cfunc, PyCFunction_GET_SELF(callable), arg);
+ _Py_LeaveRecursiveCallTstate(tstate);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ Py_DECREF(arg);
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- DEOPT_IF(total_args != 1, CALL);
- DEOPT_IF(!PyCFunction_CheckExact(callable), CALL);
- DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_O, CALL);
- STAT_INC(CALL, hit);
- PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable);
- // This is slower but CPython promises to check all non-vectorcall
- // function calls.
- if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
- GOTO_ERROR(error);
+ // _CHECK_PERIODIC
+ {
}
- PyObject *arg = args[0];
- res = _PyCFunction_TrampolineCall(cfunc, PyCFunction_GET_SELF(callable), arg);
- _Py_LeaveRecursiveCallTstate(tstate);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- Py_DECREF(arg);
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1509,33 +1531,39 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_METHOD_DESCRIPTOR_FAST
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
+ /* Builtin METH_FASTCALL methods, without keywords */
+ DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
+ PyMethodDef *meth = method->d_method;
+ DEOPT_IF(meth->ml_flags != METH_FASTCALL, CALL);
+ PyObject *self = args[0];
+ DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL);
+ STAT_INC(CALL, hit);
+ PyCFunctionFast cfunc =
+ (PyCFunctionFast)(void(*)(void))meth->ml_meth;
+ int nargs = total_args - 1;
+ res = cfunc(self, args + 1, nargs);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ /* Clear the stack of the arguments. */
+ for (int i = 0; i < total_args; i++) {
+ Py_DECREF(args[i]);
+ }
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
- /* Builtin METH_FASTCALL methods, without keywords */
- DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
- PyMethodDef *meth = method->d_method;
- DEOPT_IF(meth->ml_flags != METH_FASTCALL, CALL);
- PyObject *self = args[0];
- DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL);
- STAT_INC(CALL, hit);
- PyCFunctionFast cfunc =
- (PyCFunctionFast)(void(*)(void))meth->ml_meth;
- int nargs = total_args - 1;
- res = cfunc(self, args + 1, nargs);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- /* Clear the stack of the arguments. */
- for (int i = 0; i < total_args; i++) {
- Py_DECREF(args[i]);
+ // _CHECK_PERIODIC
+ {
}
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1553,33 +1581,39 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
+ DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
+ PyMethodDef *meth = method->d_method;
+ DEOPT_IF(meth->ml_flags != (METH_FASTCALL|METH_KEYWORDS), CALL);
+ PyTypeObject *d_type = method->d_common.d_type;
+ PyObject *self = args[0];
+ DEOPT_IF(!Py_IS_TYPE(self, d_type), CALL);
+ STAT_INC(CALL, hit);
+ int nargs = total_args - 1;
+ PyCFunctionFastWithKeywords cfunc =
+ (PyCFunctionFastWithKeywords)(void(*)(void))meth->ml_meth;
+ res = cfunc(self, args + 1, nargs, NULL);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ /* Free the arguments. */
+ for (int i = 0; i < total_args; i++) {
+ Py_DECREF(args[i]);
+ }
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
- DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
- PyMethodDef *meth = method->d_method;
- DEOPT_IF(meth->ml_flags != (METH_FASTCALL|METH_KEYWORDS), CALL);
- PyTypeObject *d_type = method->d_common.d_type;
- PyObject *self = args[0];
- DEOPT_IF(!Py_IS_TYPE(self, d_type), CALL);
- STAT_INC(CALL, hit);
- int nargs = total_args - 1;
- PyCFunctionFastWithKeywords cfunc =
- (PyCFunctionFastWithKeywords)(void(*)(void))meth->ml_meth;
- res = cfunc(self, args + 1, nargs, NULL);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- /* Free the arguments. */
- for (int i = 0; i < total_args; i++) {
- Py_DECREF(args[i]);
+ // _CHECK_PERIODIC
+ {
}
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1597,35 +1631,41 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_METHOD_DESCRIPTOR_NOARGS
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- assert(oparg == 0 || oparg == 1);
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ assert(oparg == 0 || oparg == 1);
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ DEOPT_IF(total_args != 1, CALL);
+ PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
+ DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
+ PyMethodDef *meth = method->d_method;
+ PyObject *self = args[0];
+ DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL);
+ DEOPT_IF(meth->ml_flags != METH_NOARGS, CALL);
+ STAT_INC(CALL, hit);
+ PyCFunction cfunc = meth->ml_meth;
+ // This is slower but CPython promises to check all non-vectorcall
+ // function calls.
+ if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
+ GOTO_ERROR(error);
+ }
+ res = _PyCFunction_TrampolineCall(cfunc, self, NULL);
+ _Py_LeaveRecursiveCallTstate(tstate);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ Py_DECREF(self);
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- DEOPT_IF(total_args != 1, CALL);
- PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
- DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
- PyMethodDef *meth = method->d_method;
- PyObject *self = args[0];
- DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL);
- DEOPT_IF(meth->ml_flags != METH_NOARGS, CALL);
- STAT_INC(CALL, hit);
- PyCFunction cfunc = meth->ml_meth;
- // This is slower but CPython promises to check all non-vectorcall
- // function calls.
- if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
- GOTO_ERROR(error);
+ // _CHECK_PERIODIC
+ {
}
- res = _PyCFunction_TrampolineCall(cfunc, self, NULL);
- _Py_LeaveRecursiveCallTstate(tstate);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- Py_DECREF(self);
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1643,36 +1683,42 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_METHOD_DESCRIPTOR_O
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- int total_args = oparg;
- if (self_or_null != NULL) {
- args--;
- total_args++;
+ {
+ int total_args = oparg;
+ if (self_or_null != NULL) {
+ args--;
+ total_args++;
+ }
+ PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
+ DEOPT_IF(total_args != 2, CALL);
+ DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
+ PyMethodDef *meth = method->d_method;
+ DEOPT_IF(meth->ml_flags != METH_O, CALL);
+ PyObject *arg = args[1];
+ PyObject *self = args[0];
+ DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL);
+ STAT_INC(CALL, hit);
+ PyCFunction cfunc = meth->ml_meth;
+ // This is slower but CPython promises to check all non-vectorcall
+ // function calls.
+ if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
+ GOTO_ERROR(error);
+ }
+ res = _PyCFunction_TrampolineCall(cfunc, self, arg);
+ _Py_LeaveRecursiveCallTstate(tstate);
+ assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ Py_DECREF(self);
+ Py_DECREF(arg);
+ Py_DECREF(callable);
+ if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
}
- PyMethodDescrObject *method = (PyMethodDescrObject *)callable;
- DEOPT_IF(total_args != 2, CALL);
- DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL);
- PyMethodDef *meth = method->d_method;
- DEOPT_IF(meth->ml_flags != METH_O, CALL);
- PyObject *arg = args[1];
- PyObject *self = args[0];
- DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL);
- STAT_INC(CALL, hit);
- PyCFunction cfunc = meth->ml_meth;
- // This is slower but CPython promises to check all non-vectorcall
- // function calls.
- if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
- GOTO_ERROR(error);
+ // _CHECK_PERIODIC
+ {
}
- res = _PyCFunction_TrampolineCall(cfunc, self, arg);
- _Py_LeaveRecursiveCallTstate(tstate);
- assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
- Py_DECREF(self);
- Py_DECREF(arg);
- Py_DECREF(callable);
- if (res == NULL) { stack_pointer += -2 - oparg; goto error; }
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
CHECK_EVAL_BREAKER();
@@ -1816,16 +1862,22 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_STR_1
arg = stack_pointer[-1];
null = stack_pointer[-2];
callable = stack_pointer[-3];
- assert(oparg == 1);
- DEOPT_IF(null != NULL, CALL);
- DEOPT_IF(callable != (PyObject *)&PyUnicode_Type, CALL);
- STAT_INC(CALL, hit);
- res = PyObject_Str(arg);
- Py_DECREF(arg);
- if (res == NULL) goto pop_3_error;
+ {
+ assert(oparg == 1);
+ DEOPT_IF(null != NULL, CALL);
+ DEOPT_IF(callable != (PyObject *)&PyUnicode_Type, CALL);
+ STAT_INC(CALL, hit);
+ res = PyObject_Str(arg);
+ Py_DECREF(arg);
+ if (res == NULL) goto pop_3_error;
+ }
+ // _CHECK_PERIODIC
+ {
+ }
stack_pointer[-3] = res;
stack_pointer += -2;
CHECK_EVAL_BREAKER();
@@ -1843,16 +1895,22 @@
PyObject *res;
/* Skip 1 cache entry */
/* Skip 2 cache entries */
+ // _CALL_TUPLE_1
arg = stack_pointer[-1];
null = stack_pointer[-2];
callable = stack_pointer[-3];
- assert(oparg == 1);
- DEOPT_IF(null != NULL, CALL);
- DEOPT_IF(callable != (PyObject *)&PyTuple_Type, CALL);
- STAT_INC(CALL, hit);
- res = PySequence_Tuple(arg);
- Py_DECREF(arg);
- if (res == NULL) goto pop_3_error;
+ {
+ assert(oparg == 1);
+ DEOPT_IF(null != NULL, CALL);
+ DEOPT_IF(callable != (PyObject *)&PyTuple_Type, CALL);
+ STAT_INC(CALL, hit);
+ res = PySequence_Tuple(arg);
+ Py_DECREF(arg);
+ if (res == NULL) goto pop_3_error;
+ }
+ // _CHECK_PERIODIC
+ {
+ }
stack_pointer[-3] = res;
stack_pointer += -2;
CHECK_EVAL_BREAKER();