mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
Revert "GH-128914: Remove conditional stack effects from bytecodes.c and the code generators (GH-128918)" (GH-129202)
The commit introduced a ~2.5-3% regression in the free threading build.
This reverts commit ab61d3f430.
This commit is contained in:
parent
d7d066c3ab
commit
a10f99375e
44 changed files with 1679 additions and 1460 deletions
|
|
@ -334,8 +334,6 @@ extern void _Py_Specialize_LoadSuperAttr(_PyStackRef global_super, _PyStackRef c
|
|||
_Py_CODEUNIT *instr, int load_method);
|
||||
extern void _Py_Specialize_LoadAttr(_PyStackRef owner, _Py_CODEUNIT *instr,
|
||||
PyObject *name);
|
||||
extern void _Py_Specialize_LoadMethod(_PyStackRef owner, _Py_CODEUNIT *instr,
|
||||
PyObject *name);
|
||||
extern void _Py_Specialize_StoreAttr(_PyStackRef owner, _Py_CODEUNIT *instr,
|
||||
PyObject *name);
|
||||
extern void _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins,
|
||||
|
|
|
|||
|
|
@ -267,7 +267,6 @@ Known values:
|
|||
Python 3.14a4 3612 (Add POP_ITER and INSTRUMENTED_POP_ITER)
|
||||
Python 3.14a4 3613 (Add LOAD_CONST_MORTAL instruction)
|
||||
Python 3.14a5 3614 (Add BINARY_OP_EXTEND)
|
||||
Python 3.14a5 3615 (Remove conditional stack effects)
|
||||
|
||||
Python 3.15 will start with 3650
|
||||
|
||||
|
|
@ -280,7 +279,7 @@ PC/launcher.c must also be updated.
|
|||
|
||||
*/
|
||||
|
||||
#define PYC_MAGIC_NUMBER 3615
|
||||
#define PYC_MAGIC_NUMBER 3614
|
||||
/* This is equivalent to converting PYC_MAGIC_NUMBER to 2 bytes
|
||||
(little-endian) and then appending b'\r\n'. */
|
||||
#define PYC_MAGIC_NUMBER_TOKEN \
|
||||
|
|
|
|||
204
Include/internal/pycore_opcode_metadata.h
generated
204
Include/internal/pycore_opcode_metadata.h
generated
|
|
@ -76,7 +76,7 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
case BUILD_SET:
|
||||
return oparg;
|
||||
case BUILD_SLICE:
|
||||
return oparg;
|
||||
return 2 + ((oparg == 3) ? 1 : 0);
|
||||
case BUILD_STRING:
|
||||
return oparg;
|
||||
case BUILD_TUPLE:
|
||||
|
|
@ -100,7 +100,7 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
case CALL_BUILTIN_O:
|
||||
return 2 + oparg;
|
||||
case CALL_FUNCTION_EX:
|
||||
return 4;
|
||||
return 3 + (oparg & 1);
|
||||
case CALL_INTRINSIC_1:
|
||||
return 1;
|
||||
case CALL_INTRINSIC_2:
|
||||
|
|
@ -245,8 +245,6 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
return 0;
|
||||
case INSTRUMENTED_LOAD_SUPER_ATTR:
|
||||
return 0;
|
||||
case INSTRUMENTED_LOAD_SUPER_METHOD:
|
||||
return 0;
|
||||
case INSTRUMENTED_NOT_TAKEN:
|
||||
return 0;
|
||||
case INSTRUMENTED_POP_ITER:
|
||||
|
|
@ -297,6 +295,12 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
return 1;
|
||||
case LOAD_ATTR_INSTANCE_VALUE:
|
||||
return 1;
|
||||
case LOAD_ATTR_METHOD_LAZY_DICT:
|
||||
return 1;
|
||||
case LOAD_ATTR_METHOD_NO_DICT:
|
||||
return 1;
|
||||
case LOAD_ATTR_METHOD_WITH_VALUES:
|
||||
return 1;
|
||||
case LOAD_ATTR_MODULE:
|
||||
return 1;
|
||||
case LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
|
||||
|
|
@ -343,14 +347,6 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
return 0;
|
||||
case LOAD_LOCALS:
|
||||
return 0;
|
||||
case LOAD_METHOD:
|
||||
return 1;
|
||||
case LOAD_METHOD_LAZY_DICT:
|
||||
return 1;
|
||||
case LOAD_METHOD_NO_DICT:
|
||||
return 1;
|
||||
case LOAD_METHOD_WITH_VALUES:
|
||||
return 1;
|
||||
case LOAD_NAME:
|
||||
return 0;
|
||||
case LOAD_SMALL_INT:
|
||||
|
|
@ -361,9 +357,7 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
return 3;
|
||||
case LOAD_SUPER_ATTR_ATTR:
|
||||
return 3;
|
||||
case LOAD_SUPER_METHOD:
|
||||
return 3;
|
||||
case LOAD_SUPER_METHOD_METHOD:
|
||||
case LOAD_SUPER_ATTR_METHOD:
|
||||
return 3;
|
||||
case MAKE_CELL:
|
||||
return 0;
|
||||
|
|
@ -722,8 +716,6 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
return 0;
|
||||
case INSTRUMENTED_LOAD_SUPER_ATTR:
|
||||
return 0;
|
||||
case INSTRUMENTED_LOAD_SUPER_METHOD:
|
||||
return 0;
|
||||
case INSTRUMENTED_NOT_TAKEN:
|
||||
return 0;
|
||||
case INSTRUMENTED_POP_ITER:
|
||||
|
|
@ -765,17 +757,23 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
case LIST_EXTEND:
|
||||
return 1 + (oparg-1);
|
||||
case LOAD_ATTR:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_ATTR_CLASS:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_ATTR_CLASS_WITH_METACLASS_CHECK:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN:
|
||||
return 1;
|
||||
case LOAD_ATTR_INSTANCE_VALUE:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_ATTR_METHOD_LAZY_DICT:
|
||||
return 2;
|
||||
case LOAD_ATTR_METHOD_NO_DICT:
|
||||
return 2;
|
||||
case LOAD_ATTR_METHOD_WITH_VALUES:
|
||||
return 2;
|
||||
case LOAD_ATTR_MODULE:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
|
||||
return 1;
|
||||
case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
|
||||
|
|
@ -783,9 +781,9 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
case LOAD_ATTR_PROPERTY:
|
||||
return 0;
|
||||
case LOAD_ATTR_SLOT:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_ATTR_WITH_HINT:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_BUILD_CLASS:
|
||||
return 1;
|
||||
case LOAD_CLOSURE:
|
||||
|
|
@ -813,21 +811,13 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
case LOAD_FROM_DICT_OR_GLOBALS:
|
||||
return 1;
|
||||
case LOAD_GLOBAL:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_GLOBAL_BUILTIN:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_GLOBAL_MODULE:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_LOCALS:
|
||||
return 1;
|
||||
case LOAD_METHOD:
|
||||
return 2;
|
||||
case LOAD_METHOD_LAZY_DICT:
|
||||
return 2;
|
||||
case LOAD_METHOD_NO_DICT:
|
||||
return 2;
|
||||
case LOAD_METHOD_WITH_VALUES:
|
||||
return 2;
|
||||
case LOAD_NAME:
|
||||
return 1;
|
||||
case LOAD_SMALL_INT:
|
||||
|
|
@ -835,12 +825,10 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
case LOAD_SPECIAL:
|
||||
return 2;
|
||||
case LOAD_SUPER_ATTR:
|
||||
return 1;
|
||||
return 1 + (oparg & 1);
|
||||
case LOAD_SUPER_ATTR_ATTR:
|
||||
return 1;
|
||||
case LOAD_SUPER_METHOD:
|
||||
return 2;
|
||||
case LOAD_SUPER_METHOD_METHOD:
|
||||
case LOAD_SUPER_ATTR_METHOD:
|
||||
return 2;
|
||||
case MAKE_CELL:
|
||||
return 0;
|
||||
|
|
@ -1070,7 +1058,7 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case BUILD_SLICE: {
|
||||
*effect = 1 - oparg;
|
||||
*effect = -1 - ((oparg == 3) ? 1 : 0);
|
||||
return 0;
|
||||
}
|
||||
case BUILD_STRING: {
|
||||
|
|
@ -1126,7 +1114,7 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case CALL_FUNCTION_EX: {
|
||||
*effect = 0;
|
||||
*effect = Py_MAX(0, -2 - (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case CALL_INTRINSIC_1: {
|
||||
|
|
@ -1427,10 +1415,6 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
*effect = 0;
|
||||
return 0;
|
||||
}
|
||||
case INSTRUMENTED_LOAD_SUPER_METHOD: {
|
||||
*effect = 0;
|
||||
return 0;
|
||||
}
|
||||
case INSTRUMENTED_NOT_TAKEN: {
|
||||
*effect = 0;
|
||||
return 0;
|
||||
|
|
@ -1512,15 +1496,15 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case LOAD_ATTR: {
|
||||
*effect = 1;
|
||||
*effect = Py_MAX(1, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_CLASS: {
|
||||
*effect = 0;
|
||||
*effect = Py_MAX(0, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_CLASS_WITH_METACLASS_CHECK: {
|
||||
*effect = 0;
|
||||
*effect = Py_MAX(0, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: {
|
||||
|
|
@ -1528,11 +1512,23 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_INSTANCE_VALUE: {
|
||||
*effect = 0;
|
||||
*effect = Py_MAX(0, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_METHOD_LAZY_DICT: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_METHOD_NO_DICT: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_METHOD_WITH_VALUES: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_MODULE: {
|
||||
*effect = 1;
|
||||
*effect = Py_MAX(1, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_NONDESCRIPTOR_NO_DICT: {
|
||||
|
|
@ -1548,11 +1544,11 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_SLOT: {
|
||||
*effect = 0;
|
||||
*effect = Py_MAX(0, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_ATTR_WITH_HINT: {
|
||||
*effect = 1;
|
||||
*effect = Py_MAX(1, (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_BUILD_CLASS: {
|
||||
|
|
@ -1608,37 +1604,21 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case LOAD_GLOBAL: {
|
||||
*effect = 1;
|
||||
*effect = Py_MAX(1, 1 + (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_GLOBAL_BUILTIN: {
|
||||
*effect = 1;
|
||||
*effect = Py_MAX(1, 1 + (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_GLOBAL_MODULE: {
|
||||
*effect = 1;
|
||||
*effect = Py_MAX(1, 1 + (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_LOCALS: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_METHOD: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_METHOD_LAZY_DICT: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_METHOD_NO_DICT: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_METHOD_WITH_VALUES: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_NAME: {
|
||||
*effect = 1;
|
||||
return 0;
|
||||
|
|
@ -1652,18 +1632,14 @@ int _PyOpcode_max_stack_effect(int opcode, int oparg, int *effect) {
|
|||
return 0;
|
||||
}
|
||||
case LOAD_SUPER_ATTR: {
|
||||
*effect = 0;
|
||||
*effect = Py_MAX(0, -2 + (oparg & 1));
|
||||
return 0;
|
||||
}
|
||||
case LOAD_SUPER_ATTR_ATTR: {
|
||||
*effect = -2;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_SUPER_METHOD: {
|
||||
*effect = 0;
|
||||
return 0;
|
||||
}
|
||||
case LOAD_SUPER_METHOD_METHOD: {
|
||||
case LOAD_SUPER_ATTR_METHOD: {
|
||||
*effect = -1;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1958,7 +1934,6 @@ enum InstructionFormat {
|
|||
INSTR_FMT_IXC00 = 9,
|
||||
INSTR_FMT_IXC000 = 10,
|
||||
INSTR_FMT_IXC0000 = 11,
|
||||
INSTR_FMT_IXC00000000 = 12,
|
||||
};
|
||||
|
||||
#define IS_VALID_OPCODE(OP) \
|
||||
|
|
@ -1978,8 +1953,9 @@ enum InstructionFormat {
|
|||
#define HAS_EXIT_FLAG (1024)
|
||||
#define HAS_PURE_FLAG (2048)
|
||||
#define HAS_PASSTHROUGH_FLAG (4096)
|
||||
#define HAS_ERROR_NO_POP_FLAG (8192)
|
||||
#define HAS_NO_SAVE_IP_FLAG (16384)
|
||||
#define HAS_OPARG_AND_1_FLAG (8192)
|
||||
#define HAS_ERROR_NO_POP_FLAG (16384)
|
||||
#define HAS_NO_SAVE_IP_FLAG (32768)
|
||||
#define OPCODE_HAS_ARG(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ARG_FLAG))
|
||||
#define OPCODE_HAS_CONST(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_CONST_FLAG))
|
||||
#define OPCODE_HAS_NAME(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_NAME_FLAG))
|
||||
|
|
@ -1993,6 +1969,7 @@ enum InstructionFormat {
|
|||
#define OPCODE_HAS_EXIT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EXIT_FLAG))
|
||||
#define OPCODE_HAS_PURE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PURE_FLAG))
|
||||
#define OPCODE_HAS_PASSTHROUGH(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PASSTHROUGH_FLAG))
|
||||
#define OPCODE_HAS_OPARG_AND_1(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_OPARG_AND_1_FLAG))
|
||||
#define OPCODE_HAS_ERROR_NO_POP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_NO_POP_FLAG))
|
||||
#define OPCODE_HAS_NO_SAVE_IP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_NO_SAVE_IP_FLAG))
|
||||
|
||||
|
|
@ -2046,7 +2023,7 @@ const struct opcode_metadata _PyOpcode_opcode_metadata[266] = {
|
|||
[CALL_BUILTIN_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_BUILTIN_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_BUILTIN_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_FUNCTION_EX] = { true, INSTR_FMT_IX, HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_FUNCTION_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_INTRINSIC_1] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_INTRINSIC_2] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[CALL_ISINSTANCE] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
|
|
@ -2119,7 +2096,6 @@ const struct opcode_metadata _PyOpcode_opcode_metadata[266] = {
|
|||
[INSTRUMENTED_JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
|
||||
[INSTRUMENTED_LINE] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG },
|
||||
[INSTRUMENTED_LOAD_SUPER_ATTR] = { true, INSTR_FMT_IXC, 0 },
|
||||
[INSTRUMENTED_LOAD_SUPER_METHOD] = { true, INSTR_FMT_IXC, 0 },
|
||||
[INSTRUMENTED_NOT_TAKEN] = { true, INSTR_FMT_IX, 0 },
|
||||
[INSTRUMENTED_POP_ITER] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG },
|
||||
[INSTRUMENTED_POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
|
||||
|
|
@ -2137,15 +2113,18 @@ const struct opcode_metadata _PyOpcode_opcode_metadata[266] = {
|
|||
[LIST_APPEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
|
||||
[LIST_EXTEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_ATTR] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_ATTR_CLASS] = { true, INSTR_FMT_IXC00000000, HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_CLASS_WITH_METACLASS_CHECK] = { true, INSTR_FMT_IXC00000000, HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_CLASS] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_CLASS_WITH_METACLASS_CHECK] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG },
|
||||
[LOAD_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IXC00000000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_MODULE] = { true, INSTR_FMT_IXC00000000, HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { true, INSTR_FMT_IXC00000000, HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { true, INSTR_FMT_IXC00000000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_METHOD_LAZY_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_METHOD_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_METHOD_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_MODULE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_PROPERTY] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_SLOT] = { true, INSTR_FMT_IXC00000000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_SLOT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_BUILD_CLASS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_COMMON_CONSTANT] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
|
||||
|
|
@ -2160,20 +2139,15 @@ const struct opcode_metadata _PyOpcode_opcode_metadata[266] = {
|
|||
[LOAD_FROM_DICT_OR_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_FROM_DICT_OR_GLOBALS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_GLOBAL] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_GLOBAL_BUILTIN] = { true, INSTR_FMT_IXC000, HAS_DEOPT_FLAG },
|
||||
[LOAD_GLOBAL_MODULE] = { true, INSTR_FMT_IXC000, HAS_DEOPT_FLAG },
|
||||
[LOAD_GLOBAL_BUILTIN] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
|
||||
[LOAD_GLOBAL_MODULE] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
|
||||
[LOAD_LOCALS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_METHOD] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_METHOD_LAZY_DICT] = { true, INSTR_FMT_IXC00000000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_METHOD_NO_DICT] = { true, INSTR_FMT_IXC00000000, HAS_EXIT_FLAG },
|
||||
[LOAD_METHOD_WITH_VALUES] = { true, INSTR_FMT_IXC00000000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
|
||||
[LOAD_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_SMALL_INT] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
|
||||
[LOAD_SPECIAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_SUPER_ATTR_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_SUPER_METHOD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_SUPER_METHOD_METHOD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[LOAD_SUPER_ATTR_METHOD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[MAKE_CELL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
|
||||
[MAKE_FUNCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[MAP_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
|
|
@ -2353,6 +2327,9 @@ _PyOpcode_macro_expansion[256] = {
|
|||
[LOAD_ATTR_CLASS] = { .nuops = 2, .uops = { { _CHECK_ATTR_CLASS, 2, 1 }, { _LOAD_ATTR_CLASS, 4, 5 } } },
|
||||
[LOAD_ATTR_CLASS_WITH_METACLASS_CHECK] = { .nuops = 3, .uops = { { _CHECK_ATTR_CLASS, 2, 1 }, { _GUARD_TYPE_VERSION, 2, 3 }, { _LOAD_ATTR_CLASS, 4, 5 } } },
|
||||
[LOAD_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_MANAGED_OBJECT_HAS_VALUES, 0, 0 }, { _LOAD_ATTR_INSTANCE_VALUE, 1, 3 } } },
|
||||
[LOAD_ATTR_METHOD_LAZY_DICT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_METHOD_LAZY_DICT, 1, 3 }, { _LOAD_ATTR_METHOD_LAZY_DICT, 4, 5 } } },
|
||||
[LOAD_ATTR_METHOD_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_METHOD_NO_DICT, 4, 5 } } },
|
||||
[LOAD_ATTR_METHOD_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_METHOD_WITH_VALUES, 4, 5 } } },
|
||||
[LOAD_ATTR_MODULE] = { .nuops = 2, .uops = { { _CHECK_ATTR_MODULE_PUSH_KEYS, 2, 1 }, { _LOAD_ATTR_MODULE_FROM_KEYS, 1, 3 } } },
|
||||
[LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_NONDESCRIPTOR_NO_DICT, 4, 5 } } },
|
||||
[LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, 4, 5 } } },
|
||||
|
|
@ -2373,15 +2350,11 @@ _PyOpcode_macro_expansion[256] = {
|
|||
[LOAD_GLOBAL_BUILTIN] = { .nuops = 3, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _GUARD_BUILTINS_VERSION_PUSH_KEYS, 1, 2 }, { _LOAD_GLOBAL_BUILTINS_FROM_KEYS, 1, 3 } } },
|
||||
[LOAD_GLOBAL_MODULE] = { .nuops = 2, .uops = { { _GUARD_GLOBALS_VERSION_PUSH_KEYS, 1, 1 }, { _LOAD_GLOBAL_MODULE_FROM_KEYS, 1, 3 } } },
|
||||
[LOAD_LOCALS] = { .nuops = 1, .uops = { { _LOAD_LOCALS, 0, 0 } } },
|
||||
[LOAD_METHOD] = { .nuops = 1, .uops = { { _LOAD_METHOD, 0, 0 } } },
|
||||
[LOAD_METHOD_LAZY_DICT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_METHOD_LAZY_DICT, 1, 3 }, { _LOAD_METHOD_LAZY_DICT, 4, 5 } } },
|
||||
[LOAD_METHOD_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_METHOD_NO_DICT, 4, 5 } } },
|
||||
[LOAD_METHOD_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_METHOD_WITH_VALUES, 4, 5 } } },
|
||||
[LOAD_NAME] = { .nuops = 1, .uops = { { _LOAD_NAME, 0, 0 } } },
|
||||
[LOAD_SMALL_INT] = { .nuops = 1, .uops = { { _LOAD_SMALL_INT, 0, 0 } } },
|
||||
[LOAD_SPECIAL] = { .nuops = 1, .uops = { { _LOAD_SPECIAL, 0, 0 } } },
|
||||
[LOAD_SUPER_ATTR_ATTR] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_ATTR, 0, 0 } } },
|
||||
[LOAD_SUPER_METHOD_METHOD] = { .nuops = 1, .uops = { { _LOAD_SUPER_METHOD_METHOD, 0, 0 } } },
|
||||
[LOAD_SUPER_ATTR_METHOD] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_METHOD, 0, 0 } } },
|
||||
[MAKE_CELL] = { .nuops = 1, .uops = { { _MAKE_CELL, 0, 0 } } },
|
||||
[MAKE_FUNCTION] = { .nuops = 1, .uops = { { _MAKE_FUNCTION, 0, 0 } } },
|
||||
[MAP_ADD] = { .nuops = 1, .uops = { { _MAP_ADD, 0, 0 } } },
|
||||
|
|
@ -2551,7 +2524,6 @@ const char *_PyOpcode_OpName[266] = {
|
|||
[INSTRUMENTED_JUMP_FORWARD] = "INSTRUMENTED_JUMP_FORWARD",
|
||||
[INSTRUMENTED_LINE] = "INSTRUMENTED_LINE",
|
||||
[INSTRUMENTED_LOAD_SUPER_ATTR] = "INSTRUMENTED_LOAD_SUPER_ATTR",
|
||||
[INSTRUMENTED_LOAD_SUPER_METHOD] = "INSTRUMENTED_LOAD_SUPER_METHOD",
|
||||
[INSTRUMENTED_NOT_TAKEN] = "INSTRUMENTED_NOT_TAKEN",
|
||||
[INSTRUMENTED_POP_ITER] = "INSTRUMENTED_POP_ITER",
|
||||
[INSTRUMENTED_POP_JUMP_IF_FALSE] = "INSTRUMENTED_POP_JUMP_IF_FALSE",
|
||||
|
|
@ -2577,6 +2549,9 @@ const char *_PyOpcode_OpName[266] = {
|
|||
[LOAD_ATTR_CLASS_WITH_METACLASS_CHECK] = "LOAD_ATTR_CLASS_WITH_METACLASS_CHECK",
|
||||
[LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN",
|
||||
[LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE",
|
||||
[LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT",
|
||||
[LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT",
|
||||
[LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES",
|
||||
[LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE",
|
||||
[LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
|
||||
[LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
|
||||
|
|
@ -2600,17 +2575,12 @@ const char *_PyOpcode_OpName[266] = {
|
|||
[LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN",
|
||||
[LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE",
|
||||
[LOAD_LOCALS] = "LOAD_LOCALS",
|
||||
[LOAD_METHOD] = "LOAD_METHOD",
|
||||
[LOAD_METHOD_LAZY_DICT] = "LOAD_METHOD_LAZY_DICT",
|
||||
[LOAD_METHOD_NO_DICT] = "LOAD_METHOD_NO_DICT",
|
||||
[LOAD_METHOD_WITH_VALUES] = "LOAD_METHOD_WITH_VALUES",
|
||||
[LOAD_NAME] = "LOAD_NAME",
|
||||
[LOAD_SMALL_INT] = "LOAD_SMALL_INT",
|
||||
[LOAD_SPECIAL] = "LOAD_SPECIAL",
|
||||
[LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR",
|
||||
[LOAD_SUPER_ATTR_ATTR] = "LOAD_SUPER_ATTR_ATTR",
|
||||
[LOAD_SUPER_METHOD] = "LOAD_SUPER_METHOD",
|
||||
[LOAD_SUPER_METHOD_METHOD] = "LOAD_SUPER_METHOD_METHOD",
|
||||
[LOAD_SUPER_ATTR_METHOD] = "LOAD_SUPER_ATTR_METHOD",
|
||||
[MAKE_CELL] = "MAKE_CELL",
|
||||
[MAKE_FUNCTION] = "MAKE_FUNCTION",
|
||||
[MAP_ADD] = "MAP_ADD",
|
||||
|
|
@ -2693,9 +2663,7 @@ const uint8_t _PyOpcode_Caches[256] = {
|
|||
[STORE_ATTR] = 4,
|
||||
[LOAD_GLOBAL] = 4,
|
||||
[LOAD_SUPER_ATTR] = 1,
|
||||
[LOAD_SUPER_METHOD] = 1,
|
||||
[LOAD_ATTR] = 9,
|
||||
[LOAD_METHOD] = 9,
|
||||
[COMPARE_OP] = 1,
|
||||
[CONTAINS_OP] = 1,
|
||||
[JUMP_BACKWARD] = 1,
|
||||
|
|
@ -2818,7 +2786,6 @@ const uint8_t _PyOpcode_Deopt[256] = {
|
|||
[INSTRUMENTED_JUMP_FORWARD] = INSTRUMENTED_JUMP_FORWARD,
|
||||
[INSTRUMENTED_LINE] = INSTRUMENTED_LINE,
|
||||
[INSTRUMENTED_LOAD_SUPER_ATTR] = INSTRUMENTED_LOAD_SUPER_ATTR,
|
||||
[INSTRUMENTED_LOAD_SUPER_METHOD] = INSTRUMENTED_LOAD_SUPER_METHOD,
|
||||
[INSTRUMENTED_NOT_TAKEN] = INSTRUMENTED_NOT_TAKEN,
|
||||
[INSTRUMENTED_POP_ITER] = INSTRUMENTED_POP_ITER,
|
||||
[INSTRUMENTED_POP_JUMP_IF_FALSE] = INSTRUMENTED_POP_JUMP_IF_FALSE,
|
||||
|
|
@ -2840,6 +2807,9 @@ const uint8_t _PyOpcode_Deopt[256] = {
|
|||
[LOAD_ATTR_CLASS_WITH_METACLASS_CHECK] = LOAD_ATTR,
|
||||
[LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR,
|
||||
[LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR,
|
||||
[LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR,
|
||||
[LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR,
|
||||
[LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR,
|
||||
[LOAD_ATTR_MODULE] = LOAD_ATTR,
|
||||
[LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = LOAD_ATTR,
|
||||
[LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = LOAD_ATTR,
|
||||
|
|
@ -2862,17 +2832,12 @@ const uint8_t _PyOpcode_Deopt[256] = {
|
|||
[LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL,
|
||||
[LOAD_GLOBAL_MODULE] = LOAD_GLOBAL,
|
||||
[LOAD_LOCALS] = LOAD_LOCALS,
|
||||
[LOAD_METHOD] = LOAD_METHOD,
|
||||
[LOAD_METHOD_LAZY_DICT] = LOAD_METHOD,
|
||||
[LOAD_METHOD_NO_DICT] = LOAD_METHOD,
|
||||
[LOAD_METHOD_WITH_VALUES] = LOAD_METHOD,
|
||||
[LOAD_NAME] = LOAD_NAME,
|
||||
[LOAD_SMALL_INT] = LOAD_SMALL_INT,
|
||||
[LOAD_SPECIAL] = LOAD_SPECIAL,
|
||||
[LOAD_SUPER_ATTR] = LOAD_SUPER_ATTR,
|
||||
[LOAD_SUPER_ATTR_ATTR] = LOAD_SUPER_ATTR,
|
||||
[LOAD_SUPER_METHOD] = LOAD_SUPER_METHOD,
|
||||
[LOAD_SUPER_METHOD_METHOD] = LOAD_SUPER_METHOD,
|
||||
[LOAD_SUPER_ATTR_METHOD] = LOAD_SUPER_ATTR,
|
||||
[MAKE_CELL] = MAKE_CELL,
|
||||
[MAKE_FUNCTION] = MAKE_FUNCTION,
|
||||
[MAP_ADD] = MAP_ADD,
|
||||
|
|
@ -2941,6 +2906,8 @@ const uint8_t _PyOpcode_Deopt[256] = {
|
|||
#endif // NEED_OPCODE_METADATA
|
||||
|
||||
#define EXTRA_CASES \
|
||||
case 118: \
|
||||
case 119: \
|
||||
case 120: \
|
||||
case 121: \
|
||||
case 122: \
|
||||
|
|
@ -2974,6 +2941,7 @@ const uint8_t _PyOpcode_Deopt[256] = {
|
|||
case 231: \
|
||||
case 232: \
|
||||
case 233: \
|
||||
case 234: \
|
||||
;
|
||||
struct pseudo_targets {
|
||||
uint8_t as_sequence;
|
||||
|
|
|
|||
156
Include/internal/pycore_uop_ids.h
generated
156
Include/internal/pycore_uop_ids.h
generated
|
|
@ -159,7 +159,6 @@ extern "C" {
|
|||
#define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD
|
||||
#define _INSTRUMENTED_LINE INSTRUMENTED_LINE
|
||||
#define _INSTRUMENTED_LOAD_SUPER_ATTR INSTRUMENTED_LOAD_SUPER_ATTR
|
||||
#define _INSTRUMENTED_LOAD_SUPER_METHOD INSTRUMENTED_LOAD_SUPER_METHOD
|
||||
#define _INSTRUMENTED_NOT_TAKEN INSTRUMENTED_NOT_TAKEN
|
||||
#define _INSTRUMENTED_POP_JUMP_IF_FALSE INSTRUMENTED_POP_JUMP_IF_FALSE
|
||||
#define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE
|
||||
|
|
@ -181,122 +180,127 @@ extern "C" {
|
|||
#define _LIST_EXTEND LIST_EXTEND
|
||||
#define _LOAD_ATTR 410
|
||||
#define _LOAD_ATTR_CLASS 411
|
||||
#define _LOAD_ATTR_CLASS_0 412
|
||||
#define _LOAD_ATTR_CLASS_1 413
|
||||
#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN
|
||||
#define _LOAD_ATTR_INSTANCE_VALUE 412
|
||||
#define _LOAD_ATTR_MODULE 413
|
||||
#define _LOAD_ATTR_MODULE_FROM_KEYS 414
|
||||
#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 415
|
||||
#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 416
|
||||
#define _LOAD_ATTR_PROPERTY_FRAME 417
|
||||
#define _LOAD_ATTR_SLOT 418
|
||||
#define _LOAD_ATTR_WITH_HINT 419
|
||||
#define _LOAD_ATTR_INSTANCE_VALUE 414
|
||||
#define _LOAD_ATTR_INSTANCE_VALUE_0 415
|
||||
#define _LOAD_ATTR_INSTANCE_VALUE_1 416
|
||||
#define _LOAD_ATTR_METHOD_LAZY_DICT 417
|
||||
#define _LOAD_ATTR_METHOD_NO_DICT 418
|
||||
#define _LOAD_ATTR_METHOD_WITH_VALUES 419
|
||||
#define _LOAD_ATTR_MODULE 420
|
||||
#define _LOAD_ATTR_MODULE_FROM_KEYS 421
|
||||
#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 422
|
||||
#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 423
|
||||
#define _LOAD_ATTR_PROPERTY_FRAME 424
|
||||
#define _LOAD_ATTR_SLOT 425
|
||||
#define _LOAD_ATTR_SLOT_0 426
|
||||
#define _LOAD_ATTR_SLOT_1 427
|
||||
#define _LOAD_ATTR_WITH_HINT 428
|
||||
#define _LOAD_BUILD_CLASS LOAD_BUILD_CLASS
|
||||
#define _LOAD_BYTECODE 420
|
||||
#define _LOAD_BYTECODE 429
|
||||
#define _LOAD_COMMON_CONSTANT LOAD_COMMON_CONSTANT
|
||||
#define _LOAD_CONST LOAD_CONST
|
||||
#define _LOAD_CONST_IMMORTAL LOAD_CONST_IMMORTAL
|
||||
#define _LOAD_CONST_INLINE 421
|
||||
#define _LOAD_CONST_INLINE_BORROW 422
|
||||
#define _LOAD_CONST_INLINE_BORROW_WITH_NULL 423
|
||||
#define _LOAD_CONST_INLINE_WITH_NULL 424
|
||||
#define _LOAD_CONST_INLINE 430
|
||||
#define _LOAD_CONST_INLINE_BORROW 431
|
||||
#define _LOAD_CONST_INLINE_BORROW_WITH_NULL 432
|
||||
#define _LOAD_CONST_INLINE_WITH_NULL 433
|
||||
#define _LOAD_CONST_MORTAL LOAD_CONST_MORTAL
|
||||
#define _LOAD_DEREF LOAD_DEREF
|
||||
#define _LOAD_FAST 425
|
||||
#define _LOAD_FAST_0 426
|
||||
#define _LOAD_FAST_1 427
|
||||
#define _LOAD_FAST_2 428
|
||||
#define _LOAD_FAST_3 429
|
||||
#define _LOAD_FAST_4 430
|
||||
#define _LOAD_FAST_5 431
|
||||
#define _LOAD_FAST_6 432
|
||||
#define _LOAD_FAST_7 433
|
||||
#define _LOAD_FAST 434
|
||||
#define _LOAD_FAST_0 435
|
||||
#define _LOAD_FAST_1 436
|
||||
#define _LOAD_FAST_2 437
|
||||
#define _LOAD_FAST_3 438
|
||||
#define _LOAD_FAST_4 439
|
||||
#define _LOAD_FAST_5 440
|
||||
#define _LOAD_FAST_6 441
|
||||
#define _LOAD_FAST_7 442
|
||||
#define _LOAD_FAST_AND_CLEAR LOAD_FAST_AND_CLEAR
|
||||
#define _LOAD_FAST_CHECK LOAD_FAST_CHECK
|
||||
#define _LOAD_FAST_LOAD_FAST LOAD_FAST_LOAD_FAST
|
||||
#define _LOAD_FROM_DICT_OR_DEREF LOAD_FROM_DICT_OR_DEREF
|
||||
#define _LOAD_FROM_DICT_OR_GLOBALS LOAD_FROM_DICT_OR_GLOBALS
|
||||
#define _LOAD_GLOBAL 434
|
||||
#define _LOAD_GLOBAL_BUILTINS 435
|
||||
#define _LOAD_GLOBAL_BUILTINS_FROM_KEYS 436
|
||||
#define _LOAD_GLOBAL_MODULE 437
|
||||
#define _LOAD_GLOBAL_MODULE_FROM_KEYS 438
|
||||
#define _LOAD_GLOBAL 443
|
||||
#define _LOAD_GLOBAL_BUILTINS 444
|
||||
#define _LOAD_GLOBAL_BUILTINS_FROM_KEYS 445
|
||||
#define _LOAD_GLOBAL_MODULE 446
|
||||
#define _LOAD_GLOBAL_MODULE_FROM_KEYS 447
|
||||
#define _LOAD_LOCALS LOAD_LOCALS
|
||||
#define _LOAD_METHOD 439
|
||||
#define _LOAD_METHOD_LAZY_DICT 440
|
||||
#define _LOAD_METHOD_NO_DICT 441
|
||||
#define _LOAD_METHOD_WITH_VALUES 442
|
||||
#define _LOAD_NAME LOAD_NAME
|
||||
#define _LOAD_SMALL_INT 443
|
||||
#define _LOAD_SMALL_INT_0 444
|
||||
#define _LOAD_SMALL_INT_1 445
|
||||
#define _LOAD_SMALL_INT_2 446
|
||||
#define _LOAD_SMALL_INT_3 447
|
||||
#define _LOAD_SMALL_INT 448
|
||||
#define _LOAD_SMALL_INT_0 449
|
||||
#define _LOAD_SMALL_INT_1 450
|
||||
#define _LOAD_SMALL_INT_2 451
|
||||
#define _LOAD_SMALL_INT_3 452
|
||||
#define _LOAD_SPECIAL LOAD_SPECIAL
|
||||
#define _LOAD_SUPER_ATTR_ATTR LOAD_SUPER_ATTR_ATTR
|
||||
#define _LOAD_SUPER_METHOD_METHOD LOAD_SUPER_METHOD_METHOD
|
||||
#define _MAKE_CALLARGS_A_TUPLE 448
|
||||
#define _LOAD_SUPER_ATTR_METHOD LOAD_SUPER_ATTR_METHOD
|
||||
#define _MAKE_CALLARGS_A_TUPLE 453
|
||||
#define _MAKE_CELL MAKE_CELL
|
||||
#define _MAKE_FUNCTION MAKE_FUNCTION
|
||||
#define _MAKE_WARM 449
|
||||
#define _MAKE_WARM 454
|
||||
#define _MAP_ADD MAP_ADD
|
||||
#define _MATCH_CLASS MATCH_CLASS
|
||||
#define _MATCH_KEYS MATCH_KEYS
|
||||
#define _MATCH_MAPPING MATCH_MAPPING
|
||||
#define _MATCH_SEQUENCE MATCH_SEQUENCE
|
||||
#define _MAYBE_EXPAND_METHOD 450
|
||||
#define _MAYBE_EXPAND_METHOD_KW 451
|
||||
#define _MONITOR_CALL 452
|
||||
#define _MONITOR_JUMP_BACKWARD 453
|
||||
#define _MONITOR_RESUME 454
|
||||
#define _MAYBE_EXPAND_METHOD 455
|
||||
#define _MAYBE_EXPAND_METHOD_KW 456
|
||||
#define _MONITOR_CALL 457
|
||||
#define _MONITOR_JUMP_BACKWARD 458
|
||||
#define _MONITOR_RESUME 459
|
||||
#define _NOP NOP
|
||||
#define _POP_EXCEPT POP_EXCEPT
|
||||
#define _POP_JUMP_IF_FALSE 455
|
||||
#define _POP_JUMP_IF_TRUE 456
|
||||
#define _POP_JUMP_IF_FALSE 460
|
||||
#define _POP_JUMP_IF_TRUE 461
|
||||
#define _POP_TOP POP_TOP
|
||||
#define _POP_TOP_LOAD_CONST_INLINE_BORROW 457
|
||||
#define _POP_TOP_LOAD_CONST_INLINE_BORROW 462
|
||||
#define _PUSH_EXC_INFO PUSH_EXC_INFO
|
||||
#define _PUSH_FRAME 458
|
||||
#define _PUSH_FRAME 463
|
||||
#define _PUSH_NULL PUSH_NULL
|
||||
#define _PY_FRAME_GENERAL 459
|
||||
#define _PY_FRAME_KW 460
|
||||
#define _QUICKEN_RESUME 461
|
||||
#define _REPLACE_WITH_TRUE 462
|
||||
#define _PY_FRAME_GENERAL 464
|
||||
#define _PY_FRAME_KW 465
|
||||
#define _QUICKEN_RESUME 466
|
||||
#define _REPLACE_WITH_TRUE 467
|
||||
#define _RESUME_CHECK RESUME_CHECK
|
||||
#define _RETURN_GENERATOR RETURN_GENERATOR
|
||||
#define _RETURN_VALUE RETURN_VALUE
|
||||
#define _SAVE_RETURN_OFFSET 463
|
||||
#define _SEND 464
|
||||
#define _SEND_GEN_FRAME 465
|
||||
#define _SAVE_RETURN_OFFSET 468
|
||||
#define _SEND 469
|
||||
#define _SEND_GEN_FRAME 470
|
||||
#define _SETUP_ANNOTATIONS SETUP_ANNOTATIONS
|
||||
#define _SET_ADD SET_ADD
|
||||
#define _SET_FUNCTION_ATTRIBUTE SET_FUNCTION_ATTRIBUTE
|
||||
#define _SET_UPDATE SET_UPDATE
|
||||
#define _START_EXECUTOR 466
|
||||
#define _STORE_ATTR 467
|
||||
#define _STORE_ATTR_INSTANCE_VALUE 468
|
||||
#define _STORE_ATTR_SLOT 469
|
||||
#define _STORE_ATTR_WITH_HINT 470
|
||||
#define _START_EXECUTOR 471
|
||||
#define _STORE_ATTR 472
|
||||
#define _STORE_ATTR_INSTANCE_VALUE 473
|
||||
#define _STORE_ATTR_SLOT 474
|
||||
#define _STORE_ATTR_WITH_HINT 475
|
||||
#define _STORE_DEREF STORE_DEREF
|
||||
#define _STORE_FAST 471
|
||||
#define _STORE_FAST_0 472
|
||||
#define _STORE_FAST_1 473
|
||||
#define _STORE_FAST_2 474
|
||||
#define _STORE_FAST_3 475
|
||||
#define _STORE_FAST_4 476
|
||||
#define _STORE_FAST_5 477
|
||||
#define _STORE_FAST_6 478
|
||||
#define _STORE_FAST_7 479
|
||||
#define _STORE_FAST 476
|
||||
#define _STORE_FAST_0 477
|
||||
#define _STORE_FAST_1 478
|
||||
#define _STORE_FAST_2 479
|
||||
#define _STORE_FAST_3 480
|
||||
#define _STORE_FAST_4 481
|
||||
#define _STORE_FAST_5 482
|
||||
#define _STORE_FAST_6 483
|
||||
#define _STORE_FAST_7 484
|
||||
#define _STORE_FAST_LOAD_FAST STORE_FAST_LOAD_FAST
|
||||
#define _STORE_FAST_STORE_FAST STORE_FAST_STORE_FAST
|
||||
#define _STORE_GLOBAL STORE_GLOBAL
|
||||
#define _STORE_NAME STORE_NAME
|
||||
#define _STORE_SLICE 480
|
||||
#define _STORE_SUBSCR 481
|
||||
#define _STORE_SLICE 485
|
||||
#define _STORE_SUBSCR 486
|
||||
#define _STORE_SUBSCR_DICT STORE_SUBSCR_DICT
|
||||
#define _STORE_SUBSCR_LIST_INT STORE_SUBSCR_LIST_INT
|
||||
#define _SWAP SWAP
|
||||
#define _TIER2_RESUME_CHECK 482
|
||||
#define _TO_BOOL 483
|
||||
#define _TIER2_RESUME_CHECK 487
|
||||
#define _TO_BOOL 488
|
||||
#define _TO_BOOL_BOOL TO_BOOL_BOOL
|
||||
#define _TO_BOOL_INT TO_BOOL_INT
|
||||
#define _TO_BOOL_LIST TO_BOOL_LIST
|
||||
|
|
@ -306,13 +310,13 @@ extern "C" {
|
|||
#define _UNARY_NEGATIVE UNARY_NEGATIVE
|
||||
#define _UNARY_NOT UNARY_NOT
|
||||
#define _UNPACK_EX UNPACK_EX
|
||||
#define _UNPACK_SEQUENCE 484
|
||||
#define _UNPACK_SEQUENCE 489
|
||||
#define _UNPACK_SEQUENCE_LIST UNPACK_SEQUENCE_LIST
|
||||
#define _UNPACK_SEQUENCE_TUPLE UNPACK_SEQUENCE_TUPLE
|
||||
#define _UNPACK_SEQUENCE_TWO_TUPLE UNPACK_SEQUENCE_TWO_TUPLE
|
||||
#define _WITH_EXCEPT_START WITH_EXCEPT_START
|
||||
#define _YIELD_VALUE YIELD_VALUE
|
||||
#define MAX_UOP_ID 484
|
||||
#define MAX_UOP_ID 489
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
82
Include/internal/pycore_uop_metadata.h
generated
82
Include/internal/pycore_uop_metadata.h
generated
|
|
@ -127,8 +127,8 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
|
|||
[_GUARD_GLOBALS_VERSION] = HAS_DEOPT_FLAG,
|
||||
[_GUARD_GLOBALS_VERSION_PUSH_KEYS] = HAS_DEOPT_FLAG,
|
||||
[_GUARD_BUILTINS_VERSION_PUSH_KEYS] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_MODULE_FROM_KEYS] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_BUILTINS_FROM_KEYS] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_MODULE_FROM_KEYS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_BUILTINS_FROM_KEYS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
|
||||
[_DELETE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_MAKE_CELL] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_DELETE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
|
|
@ -148,21 +148,26 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
|
|||
[_DICT_MERGE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_MAP_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_LOAD_SUPER_ATTR_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_LOAD_SUPER_METHOD_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_LOAD_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_LOAD_SUPER_ATTR_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_LOAD_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_GUARD_TYPE_VERSION] = HAS_EXIT_FLAG,
|
||||
[_GUARD_TYPE_VERSION_AND_LOCK] = HAS_EXIT_FLAG,
|
||||
[_CHECK_MANAGED_OBJECT_HAS_VALUES] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_INSTANCE_VALUE] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_INSTANCE_VALUE_0] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_INSTANCE_VALUE_1] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_INSTANCE_VALUE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG,
|
||||
[_CHECK_ATTR_MODULE_PUSH_KEYS] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_MODULE_FROM_KEYS] = HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_LOAD_ATTR_MODULE_FROM_KEYS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_CHECK_ATTR_WITH_HINT] = HAS_EXIT_FLAG,
|
||||
[_LOAD_ATTR_WITH_HINT] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_SLOT] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_SLOT_0] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_SLOT_1] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_SLOT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG,
|
||||
[_CHECK_ATTR_CLASS] = HAS_EXIT_FLAG,
|
||||
[_LOAD_ATTR_CLASS] = 0,
|
||||
[_LOAD_ATTR_PROPERTY_FRAME] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_CLASS_0] = 0,
|
||||
[_LOAD_ATTR_CLASS_1] = 0,
|
||||
[_LOAD_ATTR_CLASS] = HAS_ARG_FLAG | HAS_OPARG_AND_1_FLAG,
|
||||
[_LOAD_ATTR_PROPERTY_FRAME] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
|
||||
[_GUARD_DORV_NO_DICT] = HAS_EXIT_FLAG,
|
||||
[_STORE_ATTR_INSTANCE_VALUE] = HAS_ESCAPES_FLAG,
|
||||
[_STORE_ATTR_WITH_HINT] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG,
|
||||
|
|
@ -203,12 +208,12 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
|
|||
[_PUSH_EXC_INFO] = 0,
|
||||
[_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = HAS_DEOPT_FLAG,
|
||||
[_GUARD_KEYS_VERSION] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_METHOD_WITH_VALUES] = 0,
|
||||
[_LOAD_METHOD_NO_DICT] = 0,
|
||||
[_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = 0,
|
||||
[_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = 0,
|
||||
[_LOAD_ATTR_METHOD_WITH_VALUES] = HAS_ARG_FLAG,
|
||||
[_LOAD_ATTR_METHOD_NO_DICT] = HAS_ARG_FLAG,
|
||||
[_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = HAS_ARG_FLAG,
|
||||
[_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = HAS_ARG_FLAG,
|
||||
[_CHECK_ATTR_METHOD_LAZY_DICT] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_METHOD_LAZY_DICT] = 0,
|
||||
[_LOAD_ATTR_METHOD_LAZY_DICT] = HAS_ARG_FLAG,
|
||||
[_MAYBE_EXPAND_METHOD] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_PY_FRAME_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_CHECK_FUNCTION_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
|
||||
|
|
@ -253,7 +258,7 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
|
|||
[_EXPAND_METHOD_KW] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_CHECK_IS_NOT_PY_CALLABLE_KW] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
|
||||
[_CALL_KW_NON_PY] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_MAKE_CALLARGS_A_TUPLE] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_MAKE_CALLARGS_A_TUPLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_MAKE_FUNCTION] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
[_SET_FUNCTION_ATTRIBUTE] = HAS_ARG_FLAG,
|
||||
[_RETURN_GENERATOR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
|
||||
|
|
@ -280,9 +285,9 @@ const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
|
|||
[_LOAD_CONST_INLINE_WITH_NULL] = HAS_PURE_FLAG,
|
||||
[_LOAD_CONST_INLINE_BORROW_WITH_NULL] = HAS_PURE_FLAG,
|
||||
[_CHECK_FUNCTION] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_MODULE] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_BUILTINS] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_MODULE] = HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
|
||||
[_LOAD_GLOBAL_BUILTINS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
|
||||
[_LOAD_ATTR_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
|
||||
[_DYNAMIC_EXIT] = HAS_ESCAPES_FLAG,
|
||||
[_START_EXECUTOR] = HAS_ESCAPES_FLAG,
|
||||
[_MAKE_WARM] = 0,
|
||||
|
|
@ -452,13 +457,22 @@ const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
|
|||
[_LIST_EXTEND] = "_LIST_EXTEND",
|
||||
[_LOAD_ATTR] = "_LOAD_ATTR",
|
||||
[_LOAD_ATTR_CLASS] = "_LOAD_ATTR_CLASS",
|
||||
[_LOAD_ATTR_CLASS_0] = "_LOAD_ATTR_CLASS_0",
|
||||
[_LOAD_ATTR_CLASS_1] = "_LOAD_ATTR_CLASS_1",
|
||||
[_LOAD_ATTR_INSTANCE_VALUE] = "_LOAD_ATTR_INSTANCE_VALUE",
|
||||
[_LOAD_ATTR_INSTANCE_VALUE_0] = "_LOAD_ATTR_INSTANCE_VALUE_0",
|
||||
[_LOAD_ATTR_INSTANCE_VALUE_1] = "_LOAD_ATTR_INSTANCE_VALUE_1",
|
||||
[_LOAD_ATTR_METHOD_LAZY_DICT] = "_LOAD_ATTR_METHOD_LAZY_DICT",
|
||||
[_LOAD_ATTR_METHOD_NO_DICT] = "_LOAD_ATTR_METHOD_NO_DICT",
|
||||
[_LOAD_ATTR_METHOD_WITH_VALUES] = "_LOAD_ATTR_METHOD_WITH_VALUES",
|
||||
[_LOAD_ATTR_MODULE] = "_LOAD_ATTR_MODULE",
|
||||
[_LOAD_ATTR_MODULE_FROM_KEYS] = "_LOAD_ATTR_MODULE_FROM_KEYS",
|
||||
[_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "_LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
|
||||
[_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
|
||||
[_LOAD_ATTR_PROPERTY_FRAME] = "_LOAD_ATTR_PROPERTY_FRAME",
|
||||
[_LOAD_ATTR_SLOT] = "_LOAD_ATTR_SLOT",
|
||||
[_LOAD_ATTR_SLOT_0] = "_LOAD_ATTR_SLOT_0",
|
||||
[_LOAD_ATTR_SLOT_1] = "_LOAD_ATTR_SLOT_1",
|
||||
[_LOAD_ATTR_WITH_HINT] = "_LOAD_ATTR_WITH_HINT",
|
||||
[_LOAD_BUILD_CLASS] = "_LOAD_BUILD_CLASS",
|
||||
[_LOAD_COMMON_CONSTANT] = "_LOAD_COMMON_CONSTANT",
|
||||
|
|
@ -488,10 +502,6 @@ const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
|
|||
[_LOAD_GLOBAL_MODULE] = "_LOAD_GLOBAL_MODULE",
|
||||
[_LOAD_GLOBAL_MODULE_FROM_KEYS] = "_LOAD_GLOBAL_MODULE_FROM_KEYS",
|
||||
[_LOAD_LOCALS] = "_LOAD_LOCALS",
|
||||
[_LOAD_METHOD] = "_LOAD_METHOD",
|
||||
[_LOAD_METHOD_LAZY_DICT] = "_LOAD_METHOD_LAZY_DICT",
|
||||
[_LOAD_METHOD_NO_DICT] = "_LOAD_METHOD_NO_DICT",
|
||||
[_LOAD_METHOD_WITH_VALUES] = "_LOAD_METHOD_WITH_VALUES",
|
||||
[_LOAD_NAME] = "_LOAD_NAME",
|
||||
[_LOAD_SMALL_INT] = "_LOAD_SMALL_INT",
|
||||
[_LOAD_SMALL_INT_0] = "_LOAD_SMALL_INT_0",
|
||||
|
|
@ -500,7 +510,7 @@ const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
|
|||
[_LOAD_SMALL_INT_3] = "_LOAD_SMALL_INT_3",
|
||||
[_LOAD_SPECIAL] = "_LOAD_SPECIAL",
|
||||
[_LOAD_SUPER_ATTR_ATTR] = "_LOAD_SUPER_ATTR_ATTR",
|
||||
[_LOAD_SUPER_METHOD_METHOD] = "_LOAD_SUPER_METHOD_METHOD",
|
||||
[_LOAD_SUPER_ATTR_METHOD] = "_LOAD_SUPER_ATTR_METHOD",
|
||||
[_MAKE_CALLARGS_A_TUPLE] = "_MAKE_CALLARGS_A_TUPLE",
|
||||
[_MAKE_CELL] = "_MAKE_CELL",
|
||||
[_MAKE_FUNCTION] = "_MAKE_FUNCTION",
|
||||
|
|
@ -835,10 +845,8 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
return 2;
|
||||
case _LOAD_SUPER_ATTR_ATTR:
|
||||
return 3;
|
||||
case _LOAD_SUPER_METHOD_METHOD:
|
||||
case _LOAD_SUPER_ATTR_METHOD:
|
||||
return 3;
|
||||
case _LOAD_METHOD:
|
||||
return 1;
|
||||
case _LOAD_ATTR:
|
||||
return 1;
|
||||
case _GUARD_TYPE_VERSION:
|
||||
|
|
@ -847,6 +855,10 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
return 0;
|
||||
case _CHECK_MANAGED_OBJECT_HAS_VALUES:
|
||||
return 0;
|
||||
case _LOAD_ATTR_INSTANCE_VALUE_0:
|
||||
return 1;
|
||||
case _LOAD_ATTR_INSTANCE_VALUE_1:
|
||||
return 1;
|
||||
case _LOAD_ATTR_INSTANCE_VALUE:
|
||||
return 1;
|
||||
case _CHECK_ATTR_MODULE_PUSH_KEYS:
|
||||
|
|
@ -857,10 +869,18 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
return 0;
|
||||
case _LOAD_ATTR_WITH_HINT:
|
||||
return 2;
|
||||
case _LOAD_ATTR_SLOT_0:
|
||||
return 1;
|
||||
case _LOAD_ATTR_SLOT_1:
|
||||
return 1;
|
||||
case _LOAD_ATTR_SLOT:
|
||||
return 1;
|
||||
case _CHECK_ATTR_CLASS:
|
||||
return 0;
|
||||
case _LOAD_ATTR_CLASS_0:
|
||||
return 1;
|
||||
case _LOAD_ATTR_CLASS_1:
|
||||
return 1;
|
||||
case _LOAD_ATTR_CLASS:
|
||||
return 1;
|
||||
case _LOAD_ATTR_PROPERTY_FRAME:
|
||||
|
|
@ -945,9 +965,9 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
return 0;
|
||||
case _GUARD_KEYS_VERSION:
|
||||
return 0;
|
||||
case _LOAD_METHOD_WITH_VALUES:
|
||||
case _LOAD_ATTR_METHOD_WITH_VALUES:
|
||||
return 1;
|
||||
case _LOAD_METHOD_NO_DICT:
|
||||
case _LOAD_ATTR_METHOD_NO_DICT:
|
||||
return 1;
|
||||
case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
|
||||
return 1;
|
||||
|
|
@ -955,7 +975,7 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
return 1;
|
||||
case _CHECK_ATTR_METHOD_LAZY_DICT:
|
||||
return 0;
|
||||
case _LOAD_METHOD_LAZY_DICT:
|
||||
case _LOAD_ATTR_METHOD_LAZY_DICT:
|
||||
return 1;
|
||||
case _MAYBE_EXPAND_METHOD:
|
||||
return 2 + oparg;
|
||||
|
|
@ -1046,7 +1066,7 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
case _CALL_KW_NON_PY:
|
||||
return 3 + oparg;
|
||||
case _MAKE_CALLARGS_A_TUPLE:
|
||||
return 2;
|
||||
return 1 + (oparg & 1);
|
||||
case _MAKE_FUNCTION:
|
||||
return 1;
|
||||
case _SET_FUNCTION_ATTRIBUTE:
|
||||
|
|
@ -1054,7 +1074,7 @@ int _PyUop_num_popped(int opcode, int oparg)
|
|||
case _RETURN_GENERATOR:
|
||||
return 0;
|
||||
case _BUILD_SLICE:
|
||||
return oparg;
|
||||
return 2 + ((oparg == 3) ? 1 : 0);
|
||||
case _CONVERT_VALUE:
|
||||
return 1;
|
||||
case _FORMAT_SIMPLE:
|
||||
|
|
|
|||
195
Include/opcode_ids.h
generated
195
Include/opcode_ids.h
generated
|
|
@ -14,55 +14,55 @@ extern "C" {
|
|||
#define BINARY_SLICE 1
|
||||
#define BINARY_SUBSCR 2
|
||||
#define BINARY_OP_INPLACE_ADD_UNICODE 3
|
||||
#define CALL_FUNCTION_EX 4
|
||||
#define CHECK_EG_MATCH 5
|
||||
#define CHECK_EXC_MATCH 6
|
||||
#define CLEANUP_THROW 7
|
||||
#define DELETE_SUBSCR 8
|
||||
#define END_ASYNC_FOR 9
|
||||
#define END_FOR 10
|
||||
#define END_SEND 11
|
||||
#define EXIT_INIT_CHECK 12
|
||||
#define FORMAT_SIMPLE 13
|
||||
#define FORMAT_WITH_SPEC 14
|
||||
#define GET_AITER 15
|
||||
#define GET_ANEXT 16
|
||||
#define CHECK_EG_MATCH 4
|
||||
#define CHECK_EXC_MATCH 5
|
||||
#define CLEANUP_THROW 6
|
||||
#define DELETE_SUBSCR 7
|
||||
#define END_ASYNC_FOR 8
|
||||
#define END_FOR 9
|
||||
#define END_SEND 10
|
||||
#define EXIT_INIT_CHECK 11
|
||||
#define FORMAT_SIMPLE 12
|
||||
#define FORMAT_WITH_SPEC 13
|
||||
#define GET_AITER 14
|
||||
#define GET_ANEXT 15
|
||||
#define GET_ITER 16
|
||||
#define RESERVED 17
|
||||
#define GET_ITER 18
|
||||
#define GET_LEN 19
|
||||
#define GET_YIELD_FROM_ITER 20
|
||||
#define INTERPRETER_EXIT 21
|
||||
#define LOAD_BUILD_CLASS 22
|
||||
#define LOAD_LOCALS 23
|
||||
#define MAKE_FUNCTION 24
|
||||
#define MATCH_KEYS 25
|
||||
#define MATCH_MAPPING 26
|
||||
#define MATCH_SEQUENCE 27
|
||||
#define NOP 28
|
||||
#define NOT_TAKEN 29
|
||||
#define POP_EXCEPT 30
|
||||
#define POP_ITER 31
|
||||
#define POP_TOP 32
|
||||
#define PUSH_EXC_INFO 33
|
||||
#define PUSH_NULL 34
|
||||
#define RETURN_GENERATOR 35
|
||||
#define RETURN_VALUE 36
|
||||
#define SETUP_ANNOTATIONS 37
|
||||
#define STORE_SLICE 38
|
||||
#define STORE_SUBSCR 39
|
||||
#define TO_BOOL 40
|
||||
#define UNARY_INVERT 41
|
||||
#define UNARY_NEGATIVE 42
|
||||
#define UNARY_NOT 43
|
||||
#define WITH_EXCEPT_START 44
|
||||
#define BINARY_OP 45
|
||||
#define BUILD_LIST 46
|
||||
#define BUILD_MAP 47
|
||||
#define BUILD_SET 48
|
||||
#define BUILD_SLICE 49
|
||||
#define BUILD_STRING 50
|
||||
#define BUILD_TUPLE 51
|
||||
#define CALL 52
|
||||
#define GET_LEN 18
|
||||
#define GET_YIELD_FROM_ITER 19
|
||||
#define INTERPRETER_EXIT 20
|
||||
#define LOAD_BUILD_CLASS 21
|
||||
#define LOAD_LOCALS 22
|
||||
#define MAKE_FUNCTION 23
|
||||
#define MATCH_KEYS 24
|
||||
#define MATCH_MAPPING 25
|
||||
#define MATCH_SEQUENCE 26
|
||||
#define NOP 27
|
||||
#define NOT_TAKEN 28
|
||||
#define POP_EXCEPT 29
|
||||
#define POP_ITER 30
|
||||
#define POP_TOP 31
|
||||
#define PUSH_EXC_INFO 32
|
||||
#define PUSH_NULL 33
|
||||
#define RETURN_GENERATOR 34
|
||||
#define RETURN_VALUE 35
|
||||
#define SETUP_ANNOTATIONS 36
|
||||
#define STORE_SLICE 37
|
||||
#define STORE_SUBSCR 38
|
||||
#define TO_BOOL 39
|
||||
#define UNARY_INVERT 40
|
||||
#define UNARY_NEGATIVE 41
|
||||
#define UNARY_NOT 42
|
||||
#define WITH_EXCEPT_START 43
|
||||
#define BINARY_OP 44
|
||||
#define BUILD_LIST 45
|
||||
#define BUILD_MAP 46
|
||||
#define BUILD_SET 47
|
||||
#define BUILD_SLICE 48
|
||||
#define BUILD_STRING 49
|
||||
#define BUILD_TUPLE 50
|
||||
#define CALL 51
|
||||
#define CALL_FUNCTION_EX 52
|
||||
#define CALL_INTRINSIC_1 53
|
||||
#define CALL_INTRINSIC_2 54
|
||||
#define CALL_KW 55
|
||||
|
|
@ -100,36 +100,34 @@ extern "C" {
|
|||
#define LOAD_FROM_DICT_OR_DEREF 87
|
||||
#define LOAD_FROM_DICT_OR_GLOBALS 88
|
||||
#define LOAD_GLOBAL 89
|
||||
#define LOAD_METHOD 90
|
||||
#define LOAD_NAME 91
|
||||
#define LOAD_SMALL_INT 92
|
||||
#define LOAD_SPECIAL 93
|
||||
#define LOAD_SUPER_ATTR 94
|
||||
#define LOAD_SUPER_METHOD 95
|
||||
#define MAKE_CELL 96
|
||||
#define MAP_ADD 97
|
||||
#define MATCH_CLASS 98
|
||||
#define POP_JUMP_IF_FALSE 99
|
||||
#define POP_JUMP_IF_NONE 100
|
||||
#define POP_JUMP_IF_NOT_NONE 101
|
||||
#define POP_JUMP_IF_TRUE 102
|
||||
#define RAISE_VARARGS 103
|
||||
#define RERAISE 104
|
||||
#define SEND 105
|
||||
#define SET_ADD 106
|
||||
#define SET_FUNCTION_ATTRIBUTE 107
|
||||
#define SET_UPDATE 108
|
||||
#define STORE_ATTR 109
|
||||
#define STORE_DEREF 110
|
||||
#define STORE_FAST 111
|
||||
#define STORE_FAST_LOAD_FAST 112
|
||||
#define STORE_FAST_STORE_FAST 113
|
||||
#define STORE_GLOBAL 114
|
||||
#define STORE_NAME 115
|
||||
#define SWAP 116
|
||||
#define UNPACK_EX 117
|
||||
#define UNPACK_SEQUENCE 118
|
||||
#define YIELD_VALUE 119
|
||||
#define LOAD_NAME 90
|
||||
#define LOAD_SMALL_INT 91
|
||||
#define LOAD_SPECIAL 92
|
||||
#define LOAD_SUPER_ATTR 93
|
||||
#define MAKE_CELL 94
|
||||
#define MAP_ADD 95
|
||||
#define MATCH_CLASS 96
|
||||
#define POP_JUMP_IF_FALSE 97
|
||||
#define POP_JUMP_IF_NONE 98
|
||||
#define POP_JUMP_IF_NOT_NONE 99
|
||||
#define POP_JUMP_IF_TRUE 100
|
||||
#define RAISE_VARARGS 101
|
||||
#define RERAISE 102
|
||||
#define SEND 103
|
||||
#define SET_ADD 104
|
||||
#define SET_FUNCTION_ATTRIBUTE 105
|
||||
#define SET_UPDATE 106
|
||||
#define STORE_ATTR 107
|
||||
#define STORE_DEREF 108
|
||||
#define STORE_FAST 109
|
||||
#define STORE_FAST_LOAD_FAST 110
|
||||
#define STORE_FAST_STORE_FAST 111
|
||||
#define STORE_GLOBAL 112
|
||||
#define STORE_NAME 113
|
||||
#define SWAP 114
|
||||
#define UNPACK_EX 115
|
||||
#define UNPACK_SEQUENCE 116
|
||||
#define YIELD_VALUE 117
|
||||
#define RESUME 149
|
||||
#define BINARY_OP_ADD_FLOAT 150
|
||||
#define BINARY_OP_ADD_INT 151
|
||||
|
|
@ -180,21 +178,21 @@ extern "C" {
|
|||
#define LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 196
|
||||
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 197
|
||||
#define LOAD_ATTR_INSTANCE_VALUE 198
|
||||
#define LOAD_ATTR_MODULE 199
|
||||
#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 200
|
||||
#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 201
|
||||
#define LOAD_ATTR_PROPERTY 202
|
||||
#define LOAD_ATTR_SLOT 203
|
||||
#define LOAD_ATTR_WITH_HINT 204
|
||||
#define LOAD_CONST_IMMORTAL 205
|
||||
#define LOAD_CONST_MORTAL 206
|
||||
#define LOAD_GLOBAL_BUILTIN 207
|
||||
#define LOAD_GLOBAL_MODULE 208
|
||||
#define LOAD_METHOD_LAZY_DICT 209
|
||||
#define LOAD_METHOD_NO_DICT 210
|
||||
#define LOAD_METHOD_WITH_VALUES 211
|
||||
#define LOAD_ATTR_METHOD_LAZY_DICT 199
|
||||
#define LOAD_ATTR_METHOD_NO_DICT 200
|
||||
#define LOAD_ATTR_METHOD_WITH_VALUES 201
|
||||
#define LOAD_ATTR_MODULE 202
|
||||
#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 203
|
||||
#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 204
|
||||
#define LOAD_ATTR_PROPERTY 205
|
||||
#define LOAD_ATTR_SLOT 206
|
||||
#define LOAD_ATTR_WITH_HINT 207
|
||||
#define LOAD_CONST_IMMORTAL 208
|
||||
#define LOAD_CONST_MORTAL 209
|
||||
#define LOAD_GLOBAL_BUILTIN 210
|
||||
#define LOAD_GLOBAL_MODULE 211
|
||||
#define LOAD_SUPER_ATTR_ATTR 212
|
||||
#define LOAD_SUPER_METHOD_METHOD 213
|
||||
#define LOAD_SUPER_ATTR_METHOD 213
|
||||
#define RESUME_CHECK 214
|
||||
#define SEND_GEN 215
|
||||
#define STORE_ATTR_INSTANCE_VALUE 216
|
||||
|
|
@ -211,11 +209,10 @@ extern "C" {
|
|||
#define UNPACK_SEQUENCE_LIST 227
|
||||
#define UNPACK_SEQUENCE_TUPLE 228
|
||||
#define UNPACK_SEQUENCE_TWO_TUPLE 229
|
||||
#define INSTRUMENTED_END_FOR 234
|
||||
#define INSTRUMENTED_POP_ITER 235
|
||||
#define INSTRUMENTED_END_SEND 236
|
||||
#define INSTRUMENTED_LOAD_SUPER_ATTR 237
|
||||
#define INSTRUMENTED_LOAD_SUPER_METHOD 238
|
||||
#define INSTRUMENTED_END_FOR 235
|
||||
#define INSTRUMENTED_POP_ITER 236
|
||||
#define INSTRUMENTED_END_SEND 237
|
||||
#define INSTRUMENTED_LOAD_SUPER_ATTR 238
|
||||
#define INSTRUMENTED_FOR_ITER 239
|
||||
#define INSTRUMENTED_CALL_KW 240
|
||||
#define INSTRUMENTED_CALL_FUNCTION_EX 241
|
||||
|
|
@ -244,9 +241,9 @@ extern "C" {
|
|||
#define SETUP_WITH 264
|
||||
#define STORE_FAST_MAYBE_NULL 265
|
||||
|
||||
#define HAVE_ARGUMENT 44
|
||||
#define HAVE_ARGUMENT 43
|
||||
#define MIN_SPECIALIZED_OPCODE 150
|
||||
#define MIN_INSTRUMENTED_OPCODE 234
|
||||
#define MIN_INSTRUMENTED_OPCODE 235
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue