diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/_opcode_metadata.py | 84 | ||||
-rw-r--r-- | Lib/importlib/_bootstrap_external.py | 3 | ||||
-rw-r--r-- | Lib/opcode.py | 3 |
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, }, |