Move call specializations from CALL to PRECALL. (GH-31496)

This commit is contained in:
Mark Shannon 2022-02-22 14:57:01 +00:00 committed by GitHub
parent 1e344684d8
commit 9058a35558
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 311 additions and 206 deletions

89
Include/opcode.h generated
View file

@ -135,49 +135,52 @@ extern "C" {
#define STORE_SUBSCR_LIST_INT 28
#define STORE_SUBSCR_DICT 29
#define CALL_ADAPTIVE 34
#define CALL_BUILTIN_CLASS 36
#define CALL_NO_KW_BUILTIN_O 37
#define CALL_NO_KW_BUILTIN_FAST 38
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 39
#define CALL_NO_KW_LEN 40
#define CALL_NO_KW_ISINSTANCE 41
#define CALL_PY_EXACT_ARGS 42
#define CALL_PY_WITH_DEFAULTS 43
#define CALL_NO_KW_LIST_APPEND 44
#define CALL_NO_KW_METHOD_DESCRIPTOR_O 45
#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 46
#define CALL_NO_KW_STR_1 47
#define CALL_NO_KW_TUPLE_1 48
#define CALL_NO_KW_TYPE_1 55
#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 56
#define JUMP_ABSOLUTE_QUICK 57
#define LOAD_ATTR_ADAPTIVE 58
#define LOAD_ATTR_INSTANCE_VALUE 59
#define LOAD_ATTR_WITH_HINT 62
#define LOAD_ATTR_SLOT 63
#define LOAD_ATTR_MODULE 64
#define LOAD_GLOBAL_ADAPTIVE 65
#define LOAD_GLOBAL_MODULE 66
#define LOAD_GLOBAL_BUILTIN 67
#define LOAD_METHOD_ADAPTIVE 72
#define LOAD_METHOD_CACHED 76
#define LOAD_METHOD_CLASS 77
#define LOAD_METHOD_MODULE 78
#define LOAD_METHOD_NO_DICT 79
#define RESUME_QUICK 80
#define STORE_ATTR_ADAPTIVE 81
#define STORE_ATTR_INSTANCE_VALUE 131
#define STORE_ATTR_SLOT 140
#define STORE_ATTR_WITH_HINT 141
#define UNPACK_SEQUENCE_ADAPTIVE 143
#define UNPACK_SEQUENCE_LIST 150
#define UNPACK_SEQUENCE_TUPLE 153
#define UNPACK_SEQUENCE_TWO_TUPLE 154
#define LOAD_FAST__LOAD_FAST 158
#define STORE_FAST__LOAD_FAST 159
#define LOAD_FAST__LOAD_CONST 161
#define LOAD_CONST__LOAD_FAST 167
#define STORE_FAST__STORE_FAST 168
#define CALL_PY_EXACT_ARGS 36
#define CALL_PY_WITH_DEFAULTS 37
#define JUMP_ABSOLUTE_QUICK 38
#define LOAD_ATTR_ADAPTIVE 39
#define LOAD_ATTR_INSTANCE_VALUE 40
#define LOAD_ATTR_WITH_HINT 41
#define LOAD_ATTR_SLOT 42
#define LOAD_ATTR_MODULE 43
#define LOAD_GLOBAL_ADAPTIVE 44
#define LOAD_GLOBAL_MODULE 45
#define LOAD_GLOBAL_BUILTIN 46
#define LOAD_METHOD_ADAPTIVE 47
#define LOAD_METHOD_CACHED 48
#define LOAD_METHOD_CLASS 55
#define LOAD_METHOD_MODULE 56
#define LOAD_METHOD_NO_DICT 57
#define PRECALL_ADAPTIVE 58
#define PRECALL_BUILTIN_CLASS 59
#define PRECALL_NO_KW_BUILTIN_O 62
#define PRECALL_NO_KW_BUILTIN_FAST 63
#define PRECALL_BUILTIN_FAST_WITH_KEYWORDS 64
#define PRECALL_NO_KW_LEN 65
#define PRECALL_NO_KW_ISINSTANCE 66
#define PRECALL_NO_KW_LIST_APPEND 67
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_O 72
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 76
#define PRECALL_NO_KW_STR_1 77
#define PRECALL_NO_KW_TUPLE_1 78
#define PRECALL_NO_KW_TYPE_1 79
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST 80
#define PRECALL_BOUND_METHOD 81
#define PRECALL_PYFUNC 131
#define RESUME_QUICK 140
#define STORE_ATTR_ADAPTIVE 141
#define STORE_ATTR_INSTANCE_VALUE 143
#define STORE_ATTR_SLOT 150
#define STORE_ATTR_WITH_HINT 153
#define UNPACK_SEQUENCE_ADAPTIVE 154
#define UNPACK_SEQUENCE_LIST 158
#define UNPACK_SEQUENCE_TUPLE 159
#define UNPACK_SEQUENCE_TWO_TUPLE 161
#define LOAD_FAST__LOAD_FAST 167
#define STORE_FAST__LOAD_FAST 168
#define LOAD_FAST__LOAD_CONST 169
#define LOAD_CONST__LOAD_FAST 170
#define STORE_FAST__STORE_FAST 173
#define DO_TRACING 255
#ifdef NEED_OPCODE_JUMP_TABLES
static uint32_t _PyOpcode_RelativeJump[8] = {