GH-98686: Get rid of "adaptive" and "quick" instructions (GH-99182)

This commit is contained in:
Brandt Bucher 2022-11-09 10:50:09 -08:00 committed by GitHub
parent 6e3cc72afe
commit c7f5708714
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 562 additions and 758 deletions

125
Include/opcode.h generated
View file

@ -128,78 +128,69 @@ extern "C" {
#define JUMP_NO_INTERRUPT 261
#define LOAD_METHOD 262
#define MAX_PSEUDO_OPCODE 262
#define BINARY_OP_ADAPTIVE 3
#define BINARY_OP_ADD_FLOAT 5
#define BINARY_OP_ADD_INT 6
#define BINARY_OP_ADD_UNICODE 7
#define BINARY_OP_ADD_FLOAT 3
#define BINARY_OP_ADD_INT 5
#define BINARY_OP_ADD_UNICODE 6
#define BINARY_OP_GENERIC 7
#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_ADAPTIVE 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_ADAPTIVE 23
#define CALL_PY_EXACT_ARGS 24
#define CALL_PY_WITH_DEFAULTS 28
#define CALL_BOUND_METHOD_EXACT_ARGS 29
#define CALL_BUILTIN_CLASS 34
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 38
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 39
#define CALL_NO_KW_BUILTIN_FAST 40
#define CALL_NO_KW_BUILTIN_O 41
#define CALL_NO_KW_ISINSTANCE 42
#define CALL_NO_KW_LEN 43
#define CALL_NO_KW_LIST_APPEND 44
#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 45
#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 46
#define CALL_NO_KW_METHOD_DESCRIPTOR_O 47
#define CALL_NO_KW_STR_1 48
#define CALL_NO_KW_TUPLE_1 56
#define CALL_NO_KW_TYPE_1 57
#define COMPARE_OP_ADAPTIVE 58
#define COMPARE_OP_FLOAT_JUMP 59
#define COMPARE_OP_INT_JUMP 62
#define COMPARE_OP_STR_JUMP 64
#define EXTENDED_ARG_QUICK 65
#define FOR_ITER_ADAPTIVE 66
#define FOR_ITER_LIST 67
#define FOR_ITER_RANGE 72
#define FOR_ITER_GEN 73
#define LOAD_ATTR_ADAPTIVE 76
#define LOAD_ATTR_CLASS 77
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 78
#define LOAD_ATTR_INSTANCE_VALUE 79
#define LOAD_ATTR_MODULE 80
#define LOAD_ATTR_PROPERTY 81
#define LOAD_ATTR_SLOT 86
#define LOAD_ATTR_WITH_HINT 113
#define LOAD_ATTR_METHOD_LAZY_DICT 121
#define LOAD_ATTR_METHOD_NO_DICT 141
#define LOAD_ATTR_METHOD_WITH_DICT 143
#define LOAD_ATTR_METHOD_WITH_VALUES 153
#define LOAD_CONST__LOAD_FAST 154
#define LOAD_FAST__LOAD_CONST 158
#define LOAD_FAST__LOAD_FAST 159
#define LOAD_GLOBAL_ADAPTIVE 160
#define LOAD_GLOBAL_BUILTIN 161
#define LOAD_GLOBAL_MODULE 166
#define STORE_ATTR_ADAPTIVE 167
#define STORE_ATTR_INSTANCE_VALUE 168
#define STORE_ATTR_SLOT 169
#define STORE_ATTR_WITH_HINT 170
#define STORE_FAST__LOAD_FAST 173
#define STORE_FAST__STORE_FAST 174
#define STORE_SUBSCR_ADAPTIVE 175
#define STORE_SUBSCR_DICT 176
#define STORE_SUBSCR_LIST_INT 177
#define UNPACK_SEQUENCE_ADAPTIVE 178
#define UNPACK_SEQUENCE_LIST 179
#define UNPACK_SEQUENCE_TUPLE 180
#define UNPACK_SEQUENCE_TWO_TUPLE 181
#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_GENERIC 57
#define COMPARE_OP_INT_JUMP 58
#define COMPARE_OP_STR_JUMP 59
#define FOR_ITER_LIST 62
#define FOR_ITER_RANGE 64
#define FOR_ITER_GEN 65
#define LOAD_ATTR_CLASS 66
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 67
#define LOAD_ATTR_INSTANCE_VALUE 72
#define LOAD_ATTR_MODULE 73
#define LOAD_ATTR_PROPERTY 76
#define LOAD_ATTR_SLOT 77
#define LOAD_ATTR_WITH_HINT 78
#define LOAD_ATTR_METHOD_LAZY_DICT 79
#define LOAD_ATTR_METHOD_NO_DICT 80
#define LOAD_ATTR_METHOD_WITH_DICT 81
#define LOAD_ATTR_METHOD_WITH_VALUES 86
#define LOAD_CONST__LOAD_FAST 113
#define LOAD_FAST__LOAD_CONST 121
#define LOAD_FAST__LOAD_FAST 141
#define LOAD_GLOBAL_BUILTIN 143
#define LOAD_GLOBAL_MODULE 153
#define STORE_ATTR_INSTANCE_VALUE 154
#define STORE_ATTR_SLOT 158
#define STORE_ATTR_WITH_HINT 159
#define STORE_FAST__LOAD_FAST 160
#define STORE_FAST__STORE_FAST 161
#define STORE_SUBSCR_DICT 166
#define STORE_SUBSCR_LIST_INT 167
#define UNPACK_SEQUENCE_LIST 168
#define UNPACK_SEQUENCE_TUPLE 169
#define UNPACK_SEQUENCE_TWO_TUPLE 170
#define DO_TRACING 255
#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\