GH-98686: Get rid of BINARY_OP_GENERIC and COMPARE_OP_GENERIC (GH-99399)

This commit is contained in:
Brandt Bucher 2022-11-17 11:36:57 -08:00 committed by GitHub
parent 6f8b0e781c
commit 8555dee5ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 161 additions and 206 deletions

118
Include/opcode.h generated
View file

@ -132,66 +132,64 @@ extern "C" {
#define BINARY_OP_ADD_FLOAT 5
#define BINARY_OP_ADD_INT 6
#define BINARY_OP_ADD_UNICODE 7
#define BINARY_OP_GENERIC 8
#define BINARY_OP_INPLACE_ADD_UNICODE 13
#define BINARY_OP_MULTIPLY_FLOAT 14
#define BINARY_OP_MULTIPLY_INT 16
#define BINARY_OP_SUBTRACT_FLOAT 17
#define BINARY_OP_SUBTRACT_INT 18
#define BINARY_SUBSCR_DICT 19
#define BINARY_SUBSCR_GETITEM 20
#define BINARY_SUBSCR_LIST_INT 21
#define BINARY_SUBSCR_TUPLE_INT 22
#define CALL_PY_EXACT_ARGS 23
#define CALL_PY_WITH_DEFAULTS 24
#define CALL_BOUND_METHOD_EXACT_ARGS 28
#define CALL_BUILTIN_CLASS 29
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 34
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 38
#define CALL_NO_KW_BUILTIN_FAST 39
#define CALL_NO_KW_BUILTIN_O 40
#define CALL_NO_KW_ISINSTANCE 41
#define CALL_NO_KW_LEN 42
#define CALL_NO_KW_LIST_APPEND 43
#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 44
#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 45
#define CALL_NO_KW_METHOD_DESCRIPTOR_O 46
#define CALL_NO_KW_STR_1 47
#define CALL_NO_KW_TUPLE_1 48
#define CALL_NO_KW_TYPE_1 56
#define COMPARE_OP_FLOAT_JUMP 57
#define COMPARE_OP_GENERIC 58
#define COMPARE_OP_INT_JUMP 59
#define COMPARE_OP_STR_JUMP 62
#define FOR_ITER_LIST 64
#define FOR_ITER_RANGE 65
#define FOR_ITER_GEN 66
#define LOAD_ATTR_CLASS 67
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 72
#define LOAD_ATTR_INSTANCE_VALUE 73
#define LOAD_ATTR_MODULE 76
#define LOAD_ATTR_PROPERTY 77
#define LOAD_ATTR_SLOT 78
#define LOAD_ATTR_WITH_HINT 79
#define LOAD_ATTR_METHOD_LAZY_DICT 80
#define LOAD_ATTR_METHOD_NO_DICT 81
#define LOAD_ATTR_METHOD_WITH_DICT 86
#define LOAD_ATTR_METHOD_WITH_VALUES 113
#define LOAD_CONST__LOAD_FAST 121
#define LOAD_FAST__LOAD_CONST 141
#define LOAD_FAST__LOAD_FAST 143
#define LOAD_GLOBAL_BUILTIN 153
#define LOAD_GLOBAL_MODULE 154
#define STORE_ATTR_INSTANCE_VALUE 158
#define STORE_ATTR_SLOT 159
#define STORE_ATTR_WITH_HINT 160
#define STORE_FAST__LOAD_FAST 161
#define STORE_FAST__STORE_FAST 166
#define STORE_SUBSCR_DICT 167
#define STORE_SUBSCR_LIST_INT 168
#define UNPACK_SEQUENCE_LIST 169
#define UNPACK_SEQUENCE_TUPLE 170
#define UNPACK_SEQUENCE_TWO_TUPLE 173
#define BINARY_OP_INPLACE_ADD_UNICODE 8
#define BINARY_OP_MULTIPLY_FLOAT 13
#define BINARY_OP_MULTIPLY_INT 14
#define BINARY_OP_SUBTRACT_FLOAT 16
#define BINARY_OP_SUBTRACT_INT 17
#define BINARY_SUBSCR_DICT 18
#define BINARY_SUBSCR_GETITEM 19
#define BINARY_SUBSCR_LIST_INT 20
#define BINARY_SUBSCR_TUPLE_INT 21
#define CALL_PY_EXACT_ARGS 22
#define CALL_PY_WITH_DEFAULTS 23
#define CALL_BOUND_METHOD_EXACT_ARGS 24
#define CALL_BUILTIN_CLASS 28
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 29
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 34
#define CALL_NO_KW_BUILTIN_FAST 38
#define CALL_NO_KW_BUILTIN_O 39
#define CALL_NO_KW_ISINSTANCE 40
#define CALL_NO_KW_LEN 41
#define CALL_NO_KW_LIST_APPEND 42
#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 43
#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 44
#define CALL_NO_KW_METHOD_DESCRIPTOR_O 45
#define CALL_NO_KW_STR_1 46
#define CALL_NO_KW_TUPLE_1 47
#define CALL_NO_KW_TYPE_1 48
#define COMPARE_OP_FLOAT_JUMP 56
#define COMPARE_OP_INT_JUMP 57
#define COMPARE_OP_STR_JUMP 58
#define FOR_ITER_LIST 59
#define FOR_ITER_RANGE 62
#define FOR_ITER_GEN 64
#define LOAD_ATTR_CLASS 65
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 66
#define LOAD_ATTR_INSTANCE_VALUE 67
#define LOAD_ATTR_MODULE 72
#define LOAD_ATTR_PROPERTY 73
#define LOAD_ATTR_SLOT 76
#define LOAD_ATTR_WITH_HINT 77
#define LOAD_ATTR_METHOD_LAZY_DICT 78
#define LOAD_ATTR_METHOD_NO_DICT 79
#define LOAD_ATTR_METHOD_WITH_DICT 80
#define LOAD_ATTR_METHOD_WITH_VALUES 81
#define LOAD_CONST__LOAD_FAST 86
#define LOAD_FAST__LOAD_CONST 113
#define LOAD_FAST__LOAD_FAST 121
#define LOAD_GLOBAL_BUILTIN 141
#define LOAD_GLOBAL_MODULE 143
#define STORE_ATTR_INSTANCE_VALUE 153
#define STORE_ATTR_SLOT 154
#define STORE_ATTR_WITH_HINT 158
#define STORE_FAST__LOAD_FAST 159
#define STORE_FAST__STORE_FAST 160
#define STORE_SUBSCR_DICT 161
#define STORE_SUBSCR_LIST_INT 166
#define UNPACK_SEQUENCE_LIST 167
#define UNPACK_SEQUENCE_TUPLE 168
#define UNPACK_SEQUENCE_TWO_TUPLE 169
#define DO_TRACING 255
#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\