bpo-45510: Specialize BINARY_SUBTRACT (GH-29523)

This commit is contained in:
Dong-hee Na 2021-11-18 18:19:58 +09:00 committed by GitHub
parent 0920b61a0c
commit 345ba3f080
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 107 additions and 50 deletions

68
Include/opcode.h generated
View file

@ -118,39 +118,41 @@ extern "C" {
#define BINARY_OP_INPLACE_ADD_UNICODE 16
#define BINARY_OP_MULTIPLY_INT 17
#define BINARY_OP_MULTIPLY_FLOAT 18
#define BINARY_SUBSCR_ADAPTIVE 19
#define BINARY_SUBSCR_LIST_INT 20
#define BINARY_SUBSCR_TUPLE_INT 21
#define BINARY_SUBSCR_DICT 22
#define CALL_FUNCTION_ADAPTIVE 23
#define CALL_FUNCTION_BUILTIN_O 24
#define CALL_FUNCTION_BUILTIN_FAST 26
#define CALL_FUNCTION_LEN 27
#define CALL_FUNCTION_ISINSTANCE 28
#define CALL_FUNCTION_PY_SIMPLE 29
#define JUMP_ABSOLUTE_QUICK 34
#define LOAD_ATTR_ADAPTIVE 36
#define LOAD_ATTR_INSTANCE_VALUE 38
#define LOAD_ATTR_WITH_HINT 39
#define LOAD_ATTR_SLOT 40
#define LOAD_ATTR_MODULE 41
#define LOAD_GLOBAL_ADAPTIVE 42
#define LOAD_GLOBAL_MODULE 43
#define LOAD_GLOBAL_BUILTIN 44
#define LOAD_METHOD_ADAPTIVE 45
#define LOAD_METHOD_CACHED 46
#define LOAD_METHOD_CLASS 47
#define LOAD_METHOD_MODULE 48
#define LOAD_METHOD_NO_DICT 55
#define STORE_ATTR_ADAPTIVE 56
#define STORE_ATTR_INSTANCE_VALUE 57
#define STORE_ATTR_SLOT 58
#define STORE_ATTR_WITH_HINT 59
#define LOAD_FAST__LOAD_FAST 62
#define STORE_FAST__LOAD_FAST 63
#define LOAD_FAST__LOAD_CONST 64
#define LOAD_CONST__LOAD_FAST 65
#define STORE_FAST__STORE_FAST 66
#define BINARY_OP_SUBTRACT_INT 19
#define BINARY_OP_SUBTRACT_FLOAT 20
#define BINARY_SUBSCR_ADAPTIVE 21
#define BINARY_SUBSCR_LIST_INT 22
#define BINARY_SUBSCR_TUPLE_INT 23
#define BINARY_SUBSCR_DICT 24
#define CALL_FUNCTION_ADAPTIVE 26
#define CALL_FUNCTION_BUILTIN_O 27
#define CALL_FUNCTION_BUILTIN_FAST 28
#define CALL_FUNCTION_LEN 29
#define CALL_FUNCTION_ISINSTANCE 34
#define CALL_FUNCTION_PY_SIMPLE 36
#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 STORE_ATTR_ADAPTIVE 58
#define STORE_ATTR_INSTANCE_VALUE 59
#define STORE_ATTR_SLOT 62
#define STORE_ATTR_WITH_HINT 63
#define LOAD_FAST__LOAD_FAST 64
#define STORE_FAST__LOAD_FAST 65
#define LOAD_FAST__LOAD_CONST 66
#define LOAD_CONST__LOAD_FAST 67
#define STORE_FAST__STORE_FAST 75
#define DO_TRACING 255
#ifdef NEED_OPCODE_JUMP_TABLES
static uint32_t _PyOpcode_RelativeJump[8] = {