summaryrefslogtreecommitdiffstats
path: root/Include/opcode.h
diff options
context:
space:
mode:
authorDennis Sweeney <36520290+sweeneyde@users.noreply.github.com>2021-11-19 10:30:37 (GMT)
committerGitHub <noreply@github.com>2021-11-19 10:30:37 (GMT)
commit036fead695a9a1e1082992d16ab46bca1cd61a25 (patch)
tree4a3622ca0d0cdc0c69eab7ccf935019c4da37137 /Include/opcode.h
parent4575c01b750cd26377e803247c38d65dad15e26a (diff)
downloadcpython-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.h61
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] = {