summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/_opcode_metadata.py84
-rw-r--r--Lib/importlib/_bootstrap_external.py3
-rw-r--r--Lib/opcode.py3
3 files changed, 53 insertions, 37 deletions
diff --git a/Lib/_opcode_metadata.py b/Lib/_opcode_metadata.py
index fdb099b..90dfaea 100644
--- a/Lib/_opcode_metadata.py
+++ b/Lib/_opcode_metadata.py
@@ -75,6 +75,13 @@ _specializations = {
"COMPARE_OP_INT",
"COMPARE_OP_STR",
],
+ "CONTAINS_OP": [
+ "CONTAINS_OP_LIST",
+ "CONTAINS_OP_SET",
+ "CONTAINS_OP_TUPLE",
+ "CONTAINS_OP_DICT",
+ "CONTAINS_OP_STR",
+ ],
"FOR_ITER": [
"FOR_ITER_LIST",
"FOR_ITER_TUPLE",
@@ -138,42 +145,47 @@ _specialized_opmap = {
'COMPARE_OP_FLOAT': 180,
'COMPARE_OP_INT': 181,
'COMPARE_OP_STR': 182,
- 'FOR_ITER_GEN': 183,
- 'FOR_ITER_LIST': 184,
- 'FOR_ITER_RANGE': 185,
- 'FOR_ITER_TUPLE': 186,
- 'LOAD_ATTR_CLASS': 187,
- 'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 188,
- 'LOAD_ATTR_INSTANCE_VALUE': 189,
- 'LOAD_ATTR_METHOD_LAZY_DICT': 190,
- 'LOAD_ATTR_METHOD_NO_DICT': 191,
- 'LOAD_ATTR_METHOD_WITH_VALUES': 192,
- 'LOAD_ATTR_MODULE': 193,
- 'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 194,
- 'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 195,
- 'LOAD_ATTR_PROPERTY': 196,
- 'LOAD_ATTR_SLOT': 197,
- 'LOAD_ATTR_WITH_HINT': 198,
- 'LOAD_GLOBAL_BUILTIN': 199,
- 'LOAD_GLOBAL_MODULE': 200,
- 'LOAD_SUPER_ATTR_ATTR': 201,
- 'LOAD_SUPER_ATTR_METHOD': 202,
- 'RESUME_CHECK': 203,
- 'SEND_GEN': 204,
- 'STORE_ATTR_INSTANCE_VALUE': 205,
- 'STORE_ATTR_SLOT': 206,
- 'STORE_ATTR_WITH_HINT': 207,
- 'STORE_SUBSCR_DICT': 208,
- 'STORE_SUBSCR_LIST_INT': 209,
- 'TO_BOOL_ALWAYS_TRUE': 210,
- 'TO_BOOL_BOOL': 211,
- 'TO_BOOL_INT': 212,
- 'TO_BOOL_LIST': 213,
- 'TO_BOOL_NONE': 214,
- 'TO_BOOL_STR': 215,
- 'UNPACK_SEQUENCE_LIST': 216,
- 'UNPACK_SEQUENCE_TUPLE': 217,
- 'UNPACK_SEQUENCE_TWO_TUPLE': 218,
+ 'CONTAINS_OP_DICT': 183,
+ 'CONTAINS_OP_LIST': 184,
+ 'CONTAINS_OP_SET': 185,
+ 'CONTAINS_OP_STR': 186,
+ 'CONTAINS_OP_TUPLE': 187,
+ 'FOR_ITER_GEN': 188,
+ 'FOR_ITER_LIST': 189,
+ 'FOR_ITER_RANGE': 190,
+ 'FOR_ITER_TUPLE': 191,
+ 'LOAD_ATTR_CLASS': 192,
+ 'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 193,
+ 'LOAD_ATTR_INSTANCE_VALUE': 194,
+ 'LOAD_ATTR_METHOD_LAZY_DICT': 195,
+ 'LOAD_ATTR_METHOD_NO_DICT': 196,
+ 'LOAD_ATTR_METHOD_WITH_VALUES': 197,
+ 'LOAD_ATTR_MODULE': 198,
+ 'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 199,
+ 'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 200,
+ 'LOAD_ATTR_PROPERTY': 201,
+ 'LOAD_ATTR_SLOT': 202,
+ 'LOAD_ATTR_WITH_HINT': 203,
+ 'LOAD_GLOBAL_BUILTIN': 204,
+ 'LOAD_GLOBAL_MODULE': 205,
+ 'LOAD_SUPER_ATTR_ATTR': 206,
+ 'LOAD_SUPER_ATTR_METHOD': 207,
+ 'RESUME_CHECK': 208,
+ 'SEND_GEN': 209,
+ 'STORE_ATTR_INSTANCE_VALUE': 210,
+ 'STORE_ATTR_SLOT': 211,
+ 'STORE_ATTR_WITH_HINT': 212,
+ 'STORE_SUBSCR_DICT': 213,
+ 'STORE_SUBSCR_LIST_INT': 214,
+ 'TO_BOOL_ALWAYS_TRUE': 215,
+ 'TO_BOOL_BOOL': 216,
+ 'TO_BOOL_INT': 217,
+ 'TO_BOOL_LIST': 218,
+ 'TO_BOOL_NONE': 219,
+ 'TO_BOOL_STR': 220,
+ 'UNPACK_SEQUENCE_LIST': 221,
+ 'UNPACK_SEQUENCE_TUPLE': 222,
+ 'UNPACK_SEQUENCE_TWO_TUPLE': 223,
}
opmap = {
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 2a9aef0..46ddcee 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -465,6 +465,7 @@ _code_type = type(_write_atomic.__code__)
# Python 3.13a1 3566 (Emit JUMP_NO_INTERRUPT instead of JUMP for non-loop no-lineno cases)
# Python 3.13a1 3567 (Reimplement line number propagation by the compiler)
# Python 3.13a1 3568 (Change semantics of END_FOR)
+# Python 3.13a5 3569 (Specialize CONTAINS_OP)
# Python 3.14 will start with 3600
@@ -481,7 +482,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3568).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3569).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
diff --git a/Lib/opcode.py b/Lib/opcode.py
index 88f4df7..5735686 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -56,6 +56,9 @@ _cache_format = {
"COMPARE_OP": {
"counter": 1,
},
+ "CONTAINS_OP": {
+ "counter": 1,
+ },
"BINARY_SUBSCR": {
"counter": 1,
},