diff options
author | Dennis Sweeney <36520290+sweeneyde@users.noreply.github.com> | 2021-11-19 10:30:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-19 10:30:37 (GMT) |
commit | 036fead695a9a1e1082992d16ab46bca1cd61a25 (patch) | |
tree | 4a3622ca0d0cdc0c69eab7ccf935019c4da37137 /Include/opcode.h | |
parent | 4575c01b750cd26377e803247c38d65dad15e26a (diff) | |
download | cpython-036fead695a9a1e1082992d16ab46bca1cd61a25.zip cpython-036fead695a9a1e1082992d16ab46bca1cd61a25.tar.gz cpython-036fead695a9a1e1082992d16ab46bca1cd61a25.tar.bz2 |
bpo-45609: Specialize STORE_SUBSCR (GH-29242)
* Specialize STORE_SUBSCR for list[int], and dict[object]
* Adds _PyDict_SetItem_Take2 which consumes references to the key and values.
Diffstat (limited to 'Include/opcode.h')
-rw-r--r-- | Include/opcode.h | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/Include/opcode.h b/Include/opcode.h index 2367064..3ec89bd 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -125,35 +125,38 @@ extern "C" { #define BINARY_SUBSCR_LIST_INT 23 #define BINARY_SUBSCR_TUPLE_INT 24 #define BINARY_SUBSCR_DICT 26 -#define CALL_FUNCTION_ADAPTIVE 27 -#define CALL_FUNCTION_BUILTIN_O 28 -#define CALL_FUNCTION_BUILTIN_FAST 29 -#define CALL_FUNCTION_LEN 34 -#define CALL_FUNCTION_ISINSTANCE 36 -#define CALL_FUNCTION_PY_SIMPLE 38 -#define JUMP_ABSOLUTE_QUICK 39 -#define LOAD_ATTR_ADAPTIVE 40 -#define LOAD_ATTR_INSTANCE_VALUE 41 -#define LOAD_ATTR_WITH_HINT 42 -#define LOAD_ATTR_SLOT 43 -#define LOAD_ATTR_MODULE 44 -#define LOAD_GLOBAL_ADAPTIVE 45 -#define LOAD_GLOBAL_MODULE 46 -#define LOAD_GLOBAL_BUILTIN 47 -#define LOAD_METHOD_ADAPTIVE 48 -#define LOAD_METHOD_CACHED 55 -#define LOAD_METHOD_CLASS 56 -#define LOAD_METHOD_MODULE 57 -#define LOAD_METHOD_NO_DICT 58 -#define STORE_ATTR_ADAPTIVE 59 -#define STORE_ATTR_INSTANCE_VALUE 62 -#define STORE_ATTR_SLOT 63 -#define STORE_ATTR_WITH_HINT 64 -#define LOAD_FAST__LOAD_FAST 65 -#define STORE_FAST__LOAD_FAST 66 -#define LOAD_FAST__LOAD_CONST 67 -#define LOAD_CONST__LOAD_FAST 75 -#define STORE_FAST__STORE_FAST 76 +#define STORE_SUBSCR_ADAPTIVE 27 +#define STORE_SUBSCR_LIST_INT 28 +#define STORE_SUBSCR_DICT 29 +#define CALL_FUNCTION_ADAPTIVE 34 +#define CALL_FUNCTION_BUILTIN_O 36 +#define CALL_FUNCTION_BUILTIN_FAST 38 +#define CALL_FUNCTION_LEN 39 +#define CALL_FUNCTION_ISINSTANCE 40 +#define CALL_FUNCTION_PY_SIMPLE 41 +#define JUMP_ABSOLUTE_QUICK 42 +#define LOAD_ATTR_ADAPTIVE 43 +#define LOAD_ATTR_INSTANCE_VALUE 44 +#define LOAD_ATTR_WITH_HINT 45 +#define LOAD_ATTR_SLOT 46 +#define LOAD_ATTR_MODULE 47 +#define LOAD_GLOBAL_ADAPTIVE 48 +#define LOAD_GLOBAL_MODULE 55 +#define LOAD_GLOBAL_BUILTIN 56 +#define LOAD_METHOD_ADAPTIVE 57 +#define LOAD_METHOD_CACHED 58 +#define LOAD_METHOD_CLASS 59 +#define LOAD_METHOD_MODULE 62 +#define LOAD_METHOD_NO_DICT 63 +#define STORE_ATTR_ADAPTIVE 64 +#define STORE_ATTR_INSTANCE_VALUE 65 +#define STORE_ATTR_SLOT 66 +#define STORE_ATTR_WITH_HINT 67 +#define LOAD_FAST__LOAD_FAST 75 +#define STORE_FAST__LOAD_FAST 76 +#define LOAD_FAST__LOAD_CONST 77 +#define LOAD_CONST__LOAD_FAST 78 +#define STORE_FAST__STORE_FAST 79 #define DO_TRACING 255 #ifdef NEED_OPCODE_JUMP_TABLES static uint32_t _PyOpcode_RelativeJump[8] = { |