diff options
Diffstat (limited to 'Python/generated_cases.c.h')
| -rw-r--r-- | Python/generated_cases.c.h | 74 | 
1 files changed, 35 insertions, 39 deletions
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index f5d125c..53c0211 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -1472,21 +1472,21 @@              next_instr += 4;              INSTRUCTION_STATS(CALL_LIST_APPEND);              static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); -            PyObject **args; +            PyObject *arg;              PyObject *self;              PyObject *callable;              /* Skip 1 cache entry */              /* Skip 2 cache entries */ -            args = &stack_pointer[-oparg]; -            self = stack_pointer[-1 - oparg]; -            callable = stack_pointer[-2 - oparg]; +            arg = stack_pointer[-1]; +            self = stack_pointer[-2]; +            callable = stack_pointer[-3];              assert(oparg == 1);              PyInterpreterState *interp = tstate->interp;              DEOPT_IF(callable != interp->callable_cache.list_append, CALL);              assert(self != NULL);              DEOPT_IF(!PyList_Check(self), CALL);              STAT_INC(CALL, hit); -            if (_PyList_AppendTakeRef((PyListObject *)self, args[0]) < 0) { +            if (_PyList_AppendTakeRef((PyListObject *)self, arg) < 0) {                  goto pop_1_error;  // Since arg is DECREF'ed already              }              Py_DECREF(self); @@ -1810,26 +1810,24 @@              next_instr += 4;              INSTRUCTION_STATS(CALL_STR_1);              static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); -            PyObject **args; +            PyObject *arg;              PyObject *null;              PyObject *callable;              PyObject *res;              /* Skip 1 cache entry */              /* Skip 2 cache entries */ -            args = &stack_pointer[-oparg]; -            null = stack_pointer[-1 - oparg]; -            callable = stack_pointer[-2 - oparg]; +            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); -            PyObject *arg = args[0];              res = PyObject_Str(arg);              Py_DECREF(arg); -            Py_DECREF(&PyUnicode_Type);  // I.e., callable -            if (res == NULL) { stack_pointer += -2 - oparg; goto error; } -            stack_pointer[-2 - oparg] = res; -            stack_pointer += -1 - oparg; +            if (res == NULL) goto pop_3_error; +            stack_pointer[-3] = res; +            stack_pointer += -2;              CHECK_EVAL_BREAKER();              DISPATCH();          } @@ -1839,26 +1837,24 @@              next_instr += 4;              INSTRUCTION_STATS(CALL_TUPLE_1);              static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); -            PyObject **args; +            PyObject *arg;              PyObject *null;              PyObject *callable;              PyObject *res;              /* Skip 1 cache entry */              /* Skip 2 cache entries */ -            args = &stack_pointer[-oparg]; -            null = stack_pointer[-1 - oparg]; -            callable = stack_pointer[-2 - oparg]; +            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); -            PyObject *arg = args[0];              res = PySequence_Tuple(arg);              Py_DECREF(arg); -            Py_DECREF(&PyTuple_Type);  // I.e., tuple -            if (res == NULL) { stack_pointer += -2 - oparg; goto error; } -            stack_pointer[-2 - oparg] = res; -            stack_pointer += -1 - oparg; +            if (res == NULL) goto pop_3_error; +            stack_pointer[-3] = res; +            stack_pointer += -2;              CHECK_EVAL_BREAKER();              DISPATCH();          } @@ -1868,25 +1864,23 @@              next_instr += 4;              INSTRUCTION_STATS(CALL_TYPE_1);              static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); -            PyObject **args; +            PyObject *arg;              PyObject *null;              PyObject *callable;              PyObject *res;              /* Skip 1 cache entry */              /* Skip 2 cache entries */ -            args = &stack_pointer[-oparg]; -            null = stack_pointer[-1 - oparg]; -            callable = stack_pointer[-2 - oparg]; +            arg = stack_pointer[-1]; +            null = stack_pointer[-2]; +            callable = stack_pointer[-3];              assert(oparg == 1);              DEOPT_IF(null != NULL, CALL); -            PyObject *obj = args[0];              DEOPT_IF(callable != (PyObject *)&PyType_Type, CALL);              STAT_INC(CALL, hit); -            res = Py_NewRef(Py_TYPE(obj)); -            Py_DECREF(obj); -            Py_DECREF(&PyType_Type);  // I.e., callable -            stack_pointer[-2 - oparg] = res; -            stack_pointer += -1 - oparg; +            res = Py_NewRef(Py_TYPE(arg)); +            Py_DECREF(arg); +            stack_pointer[-3] = res; +            stack_pointer += -2;              DISPATCH();          } @@ -5910,18 +5904,20 @@              INSTRUCTION_STATS(UNPACK_SEQUENCE_TWO_TUPLE);              static_assert(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE == 1, "incorrect cache size");              PyObject *seq; -            PyObject **values; +            PyObject *val1; +            PyObject *val0;              /* Skip 1 cache entry */              seq = stack_pointer[-1]; -            values = &stack_pointer[-1]; +            assert(oparg == 2);              DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE);              DEOPT_IF(PyTuple_GET_SIZE(seq) != 2, UNPACK_SEQUENCE); -            assert(oparg == 2);              STAT_INC(UNPACK_SEQUENCE, hit); -            values[0] = Py_NewRef(PyTuple_GET_ITEM(seq, 1)); -            values[1] = Py_NewRef(PyTuple_GET_ITEM(seq, 0)); +            val0 = Py_NewRef(PyTuple_GET_ITEM(seq, 0)); +            val1 = Py_NewRef(PyTuple_GET_ITEM(seq, 1));              Py_DECREF(seq); -            stack_pointer += -1 + oparg; +            stack_pointer[-1] = val1; +            stack_pointer[0] = val0; +            stack_pointer += 1;              DISPATCH();          }  | 
