https://github.com/python/cpython/commit/aeb23273867b27818a3dabd5fca086a1a2e8d229 commit: aeb23273867b27818a3dabd5fca086a1a2e8d229 branch: main author: Tomasz Pytel <tompy...@gmail.com> committer: markshannon <m...@hotpy.org> date: 2025-03-06T08:59:36Z summary:
gh-130574: renumber RESUME opcode from 149 to 128 (GH-130685) files: A Misc/NEWS.d/next/Core_and_Builtins/2025-02-28-13-34-51.gh-issue-130574.ujr3Vx.rst M Include/internal/pycore_magic_number.h M Include/internal/pycore_opcode_metadata.h M Include/opcode_ids.h M Lib/_opcode_metadata.py M Lib/test/test_code.py M Programs/test_frozenmain.h M Python/opcode_targets.h M Tools/build/deepfreeze.py M Tools/cases_generator/analyzer.py diff --git a/Include/internal/pycore_magic_number.h b/Include/internal/pycore_magic_number.h index e97d066ebf8e5c..642f3bcec407ea 100644 --- a/Include/internal/pycore_magic_number.h +++ b/Include/internal/pycore_magic_number.h @@ -270,6 +270,7 @@ Known values: Python 3.14a5 3615 (CALL_FUNCTION_EX always take a kwargs argument) Python 3.14a5 3616 (Remove BINARY_SUBSCR and family. Make them BINARY_OPs) Python 3.14a6 3617 (Branch monitoring for async for loops) + Python 3.14a6 3618 (Renumber RESUME opcode from 149 to 128) Python 3.15 will start with 3650 @@ -282,7 +283,7 @@ PC/launcher.c must also be updated. */ -#define PYC_MAGIC_NUMBER 3617 +#define PYC_MAGIC_NUMBER 3618 /* This is equivalent to converting PYC_MAGIC_NUMBER to 2 bytes (little-endian) and then appending b'\r\n'. */ #define PYC_MAGIC_NUMBER_TOKEN \ diff --git a/Include/internal/pycore_opcode_metadata.h b/Include/internal/pycore_opcode_metadata.h index 4aae1ffc350dfe..ae5f6fddafd2c5 100644 --- a/Include/internal/pycore_opcode_metadata.h +++ b/Include/internal/pycore_opcode_metadata.h @@ -2942,27 +2942,27 @@ const uint8_t _PyOpcode_Deopt[256] = { case 125: \ case 126: \ case 127: \ - case 128: \ - case 129: \ - case 130: \ - case 131: \ - case 132: \ - case 133: \ - case 134: \ - case 135: \ - case 136: \ - case 137: \ - case 138: \ - case 139: \ - case 140: \ - case 141: \ - case 142: \ - case 143: \ - case 144: \ - case 145: \ - case 146: \ - case 147: \ - case 148: \ + case 211: \ + case 212: \ + case 213: \ + case 214: \ + case 215: \ + case 216: \ + case 217: \ + case 218: \ + case 219: \ + case 220: \ + case 221: \ + case 222: \ + case 223: \ + case 224: \ + case 225: \ + case 226: \ + case 227: \ + case 228: \ + case 229: \ + case 230: \ + case 231: \ case 232: \ case 233: \ ; diff --git a/Include/opcode_ids.h b/Include/opcode_ids.h index a634d5e5a229c8..0a669f2daf49d8 100644 --- a/Include/opcode_ids.h +++ b/Include/opcode_ids.h @@ -127,89 +127,89 @@ extern "C" { #define UNPACK_EX 114 #define UNPACK_SEQUENCE 115 #define YIELD_VALUE 116 -#define RESUME 149 -#define BINARY_OP_ADD_FLOAT 150 -#define BINARY_OP_ADD_INT 151 -#define BINARY_OP_ADD_UNICODE 152 -#define BINARY_OP_EXTEND 153 -#define BINARY_OP_MULTIPLY_FLOAT 154 -#define BINARY_OP_MULTIPLY_INT 155 -#define BINARY_OP_SUBSCR_DICT 156 -#define BINARY_OP_SUBSCR_GETITEM 157 -#define BINARY_OP_SUBSCR_LIST_INT 158 -#define BINARY_OP_SUBSCR_STR_INT 159 -#define BINARY_OP_SUBSCR_TUPLE_INT 160 -#define BINARY_OP_SUBTRACT_FLOAT 161 -#define BINARY_OP_SUBTRACT_INT 162 -#define CALL_ALLOC_AND_ENTER_INIT 163 -#define CALL_BOUND_METHOD_EXACT_ARGS 164 -#define CALL_BOUND_METHOD_GENERAL 165 -#define CALL_BUILTIN_CLASS 166 -#define CALL_BUILTIN_FAST 167 -#define CALL_BUILTIN_FAST_WITH_KEYWORDS 168 -#define CALL_BUILTIN_O 169 -#define CALL_ISINSTANCE 170 -#define CALL_KW_BOUND_METHOD 171 -#define CALL_KW_NON_PY 172 -#define CALL_KW_PY 173 -#define CALL_LEN 174 -#define CALL_LIST_APPEND 175 -#define CALL_METHOD_DESCRIPTOR_FAST 176 -#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 177 -#define CALL_METHOD_DESCRIPTOR_NOARGS 178 -#define CALL_METHOD_DESCRIPTOR_O 179 -#define CALL_NON_PY_GENERAL 180 -#define CALL_PY_EXACT_ARGS 181 -#define CALL_PY_GENERAL 182 -#define CALL_STR_1 183 -#define CALL_TUPLE_1 184 -#define CALL_TYPE_1 185 -#define COMPARE_OP_FLOAT 186 -#define COMPARE_OP_INT 187 -#define COMPARE_OP_STR 188 -#define CONTAINS_OP_DICT 189 -#define CONTAINS_OP_SET 190 -#define FOR_ITER_GEN 191 -#define FOR_ITER_LIST 192 -#define FOR_ITER_RANGE 193 -#define FOR_ITER_TUPLE 194 -#define JUMP_BACKWARD_JIT 195 -#define JUMP_BACKWARD_NO_JIT 196 -#define LOAD_ATTR_CLASS 197 -#define LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 198 -#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 199 -#define LOAD_ATTR_INSTANCE_VALUE 200 -#define LOAD_ATTR_METHOD_LAZY_DICT 201 -#define LOAD_ATTR_METHOD_NO_DICT 202 -#define LOAD_ATTR_METHOD_WITH_VALUES 203 -#define LOAD_ATTR_MODULE 204 -#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 205 -#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 206 -#define LOAD_ATTR_PROPERTY 207 -#define LOAD_ATTR_SLOT 208 -#define LOAD_ATTR_WITH_HINT 209 -#define LOAD_CONST_IMMORTAL 210 -#define LOAD_CONST_MORTAL 211 -#define LOAD_GLOBAL_BUILTIN 212 -#define LOAD_GLOBAL_MODULE 213 -#define LOAD_SUPER_ATTR_ATTR 214 -#define LOAD_SUPER_ATTR_METHOD 215 -#define RESUME_CHECK 216 -#define SEND_GEN 217 -#define STORE_ATTR_INSTANCE_VALUE 218 -#define STORE_ATTR_SLOT 219 -#define STORE_ATTR_WITH_HINT 220 -#define STORE_SUBSCR_DICT 221 -#define STORE_SUBSCR_LIST_INT 222 -#define TO_BOOL_ALWAYS_TRUE 223 -#define TO_BOOL_BOOL 224 -#define TO_BOOL_INT 225 -#define TO_BOOL_LIST 226 -#define TO_BOOL_NONE 227 -#define TO_BOOL_STR 228 -#define UNPACK_SEQUENCE_LIST 229 -#define UNPACK_SEQUENCE_TUPLE 230 -#define UNPACK_SEQUENCE_TWO_TUPLE 231 +#define RESUME 128 +#define BINARY_OP_ADD_FLOAT 129 +#define BINARY_OP_ADD_INT 130 +#define BINARY_OP_ADD_UNICODE 131 +#define BINARY_OP_EXTEND 132 +#define BINARY_OP_MULTIPLY_FLOAT 133 +#define BINARY_OP_MULTIPLY_INT 134 +#define BINARY_OP_SUBSCR_DICT 135 +#define BINARY_OP_SUBSCR_GETITEM 136 +#define BINARY_OP_SUBSCR_LIST_INT 137 +#define BINARY_OP_SUBSCR_STR_INT 138 +#define BINARY_OP_SUBSCR_TUPLE_INT 139 +#define BINARY_OP_SUBTRACT_FLOAT 140 +#define BINARY_OP_SUBTRACT_INT 141 +#define CALL_ALLOC_AND_ENTER_INIT 142 +#define CALL_BOUND_METHOD_EXACT_ARGS 143 +#define CALL_BOUND_METHOD_GENERAL 144 +#define CALL_BUILTIN_CLASS 145 +#define CALL_BUILTIN_FAST 146 +#define CALL_BUILTIN_FAST_WITH_KEYWORDS 147 +#define CALL_BUILTIN_O 148 +#define CALL_ISINSTANCE 149 +#define CALL_KW_BOUND_METHOD 150 +#define CALL_KW_NON_PY 151 +#define CALL_KW_PY 152 +#define CALL_LEN 153 +#define CALL_LIST_APPEND 154 +#define CALL_METHOD_DESCRIPTOR_FAST 155 +#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 156 +#define CALL_METHOD_DESCRIPTOR_NOARGS 157 +#define CALL_METHOD_DESCRIPTOR_O 158 +#define CALL_NON_PY_GENERAL 159 +#define CALL_PY_EXACT_ARGS 160 +#define CALL_PY_GENERAL 161 +#define CALL_STR_1 162 +#define CALL_TUPLE_1 163 +#define CALL_TYPE_1 164 +#define COMPARE_OP_FLOAT 165 +#define COMPARE_OP_INT 166 +#define COMPARE_OP_STR 167 +#define CONTAINS_OP_DICT 168 +#define CONTAINS_OP_SET 169 +#define FOR_ITER_GEN 170 +#define FOR_ITER_LIST 171 +#define FOR_ITER_RANGE 172 +#define FOR_ITER_TUPLE 173 +#define JUMP_BACKWARD_JIT 174 +#define JUMP_BACKWARD_NO_JIT 175 +#define LOAD_ATTR_CLASS 176 +#define LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 177 +#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 178 +#define LOAD_ATTR_INSTANCE_VALUE 179 +#define LOAD_ATTR_METHOD_LAZY_DICT 180 +#define LOAD_ATTR_METHOD_NO_DICT 181 +#define LOAD_ATTR_METHOD_WITH_VALUES 182 +#define LOAD_ATTR_MODULE 183 +#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 184 +#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 185 +#define LOAD_ATTR_PROPERTY 186 +#define LOAD_ATTR_SLOT 187 +#define LOAD_ATTR_WITH_HINT 188 +#define LOAD_CONST_IMMORTAL 189 +#define LOAD_CONST_MORTAL 190 +#define LOAD_GLOBAL_BUILTIN 191 +#define LOAD_GLOBAL_MODULE 192 +#define LOAD_SUPER_ATTR_ATTR 193 +#define LOAD_SUPER_ATTR_METHOD 194 +#define RESUME_CHECK 195 +#define SEND_GEN 196 +#define STORE_ATTR_INSTANCE_VALUE 197 +#define STORE_ATTR_SLOT 198 +#define STORE_ATTR_WITH_HINT 199 +#define STORE_SUBSCR_DICT 200 +#define STORE_SUBSCR_LIST_INT 201 +#define TO_BOOL_ALWAYS_TRUE 202 +#define TO_BOOL_BOOL 203 +#define TO_BOOL_INT 204 +#define TO_BOOL_LIST 205 +#define TO_BOOL_NONE 206 +#define TO_BOOL_STR 207 +#define UNPACK_SEQUENCE_LIST 208 +#define UNPACK_SEQUENCE_TUPLE 209 +#define UNPACK_SEQUENCE_TWO_TUPLE 210 #define INSTRUMENTED_END_FOR 234 #define INSTRUMENTED_POP_ITER 235 #define INSTRUMENTED_END_SEND 236 @@ -244,7 +244,7 @@ extern "C" { #define STORE_FAST_MAYBE_NULL 265 #define HAVE_ARGUMENT 43 -#define MIN_SPECIALIZED_OPCODE 150 +#define MIN_SPECIALIZED_OPCODE 129 #define MIN_INSTRUMENTED_OPCODE 234 #ifdef __cplusplus diff --git a/Lib/_opcode_metadata.py b/Lib/_opcode_metadata.py index 3dc69635cba39e..9e381f936e8820 100644 --- a/Lib/_opcode_metadata.py +++ b/Lib/_opcode_metadata.py @@ -123,95 +123,95 @@ } _specialized_opmap = { - 'BINARY_OP_ADD_FLOAT': 150, - 'BINARY_OP_ADD_INT': 151, - 'BINARY_OP_ADD_UNICODE': 152, - 'BINARY_OP_EXTEND': 153, + 'BINARY_OP_ADD_FLOAT': 129, + 'BINARY_OP_ADD_INT': 130, + 'BINARY_OP_ADD_UNICODE': 131, + 'BINARY_OP_EXTEND': 132, 'BINARY_OP_INPLACE_ADD_UNICODE': 3, - 'BINARY_OP_MULTIPLY_FLOAT': 154, - 'BINARY_OP_MULTIPLY_INT': 155, - 'BINARY_OP_SUBSCR_DICT': 156, - 'BINARY_OP_SUBSCR_GETITEM': 157, - 'BINARY_OP_SUBSCR_LIST_INT': 158, - 'BINARY_OP_SUBSCR_STR_INT': 159, - 'BINARY_OP_SUBSCR_TUPLE_INT': 160, - 'BINARY_OP_SUBTRACT_FLOAT': 161, - 'BINARY_OP_SUBTRACT_INT': 162, - 'CALL_ALLOC_AND_ENTER_INIT': 163, - 'CALL_BOUND_METHOD_EXACT_ARGS': 164, - 'CALL_BOUND_METHOD_GENERAL': 165, - 'CALL_BUILTIN_CLASS': 166, - 'CALL_BUILTIN_FAST': 167, - 'CALL_BUILTIN_FAST_WITH_KEYWORDS': 168, - 'CALL_BUILTIN_O': 169, - 'CALL_ISINSTANCE': 170, - 'CALL_KW_BOUND_METHOD': 171, - 'CALL_KW_NON_PY': 172, - 'CALL_KW_PY': 173, - 'CALL_LEN': 174, - 'CALL_LIST_APPEND': 175, - 'CALL_METHOD_DESCRIPTOR_FAST': 176, - 'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 177, - 'CALL_METHOD_DESCRIPTOR_NOARGS': 178, - 'CALL_METHOD_DESCRIPTOR_O': 179, - 'CALL_NON_PY_GENERAL': 180, - 'CALL_PY_EXACT_ARGS': 181, - 'CALL_PY_GENERAL': 182, - 'CALL_STR_1': 183, - 'CALL_TUPLE_1': 184, - 'CALL_TYPE_1': 185, - 'COMPARE_OP_FLOAT': 186, - 'COMPARE_OP_INT': 187, - 'COMPARE_OP_STR': 188, - 'CONTAINS_OP_DICT': 189, - 'CONTAINS_OP_SET': 190, - 'FOR_ITER_GEN': 191, - 'FOR_ITER_LIST': 192, - 'FOR_ITER_RANGE': 193, - 'FOR_ITER_TUPLE': 194, - 'JUMP_BACKWARD_JIT': 195, - 'JUMP_BACKWARD_NO_JIT': 196, - 'LOAD_ATTR_CLASS': 197, - 'LOAD_ATTR_CLASS_WITH_METACLASS_CHECK': 198, - 'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 199, - 'LOAD_ATTR_INSTANCE_VALUE': 200, - 'LOAD_ATTR_METHOD_LAZY_DICT': 201, - 'LOAD_ATTR_METHOD_NO_DICT': 202, - 'LOAD_ATTR_METHOD_WITH_VALUES': 203, - 'LOAD_ATTR_MODULE': 204, - 'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 205, - 'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 206, - 'LOAD_ATTR_PROPERTY': 207, - 'LOAD_ATTR_SLOT': 208, - 'LOAD_ATTR_WITH_HINT': 209, - 'LOAD_CONST_IMMORTAL': 210, - 'LOAD_CONST_MORTAL': 211, - 'LOAD_GLOBAL_BUILTIN': 212, - 'LOAD_GLOBAL_MODULE': 213, - 'LOAD_SUPER_ATTR_ATTR': 214, - 'LOAD_SUPER_ATTR_METHOD': 215, - 'RESUME_CHECK': 216, - 'SEND_GEN': 217, - 'STORE_ATTR_INSTANCE_VALUE': 218, - 'STORE_ATTR_SLOT': 219, - 'STORE_ATTR_WITH_HINT': 220, - 'STORE_SUBSCR_DICT': 221, - 'STORE_SUBSCR_LIST_INT': 222, - 'TO_BOOL_ALWAYS_TRUE': 223, - 'TO_BOOL_BOOL': 224, - 'TO_BOOL_INT': 225, - 'TO_BOOL_LIST': 226, - 'TO_BOOL_NONE': 227, - 'TO_BOOL_STR': 228, - 'UNPACK_SEQUENCE_LIST': 229, - 'UNPACK_SEQUENCE_TUPLE': 230, - 'UNPACK_SEQUENCE_TWO_TUPLE': 231, + 'BINARY_OP_MULTIPLY_FLOAT': 133, + 'BINARY_OP_MULTIPLY_INT': 134, + 'BINARY_OP_SUBSCR_DICT': 135, + 'BINARY_OP_SUBSCR_GETITEM': 136, + 'BINARY_OP_SUBSCR_LIST_INT': 137, + 'BINARY_OP_SUBSCR_STR_INT': 138, + 'BINARY_OP_SUBSCR_TUPLE_INT': 139, + 'BINARY_OP_SUBTRACT_FLOAT': 140, + 'BINARY_OP_SUBTRACT_INT': 141, + 'CALL_ALLOC_AND_ENTER_INIT': 142, + 'CALL_BOUND_METHOD_EXACT_ARGS': 143, + 'CALL_BOUND_METHOD_GENERAL': 144, + 'CALL_BUILTIN_CLASS': 145, + 'CALL_BUILTIN_FAST': 146, + 'CALL_BUILTIN_FAST_WITH_KEYWORDS': 147, + 'CALL_BUILTIN_O': 148, + 'CALL_ISINSTANCE': 149, + 'CALL_KW_BOUND_METHOD': 150, + 'CALL_KW_NON_PY': 151, + 'CALL_KW_PY': 152, + 'CALL_LEN': 153, + 'CALL_LIST_APPEND': 154, + 'CALL_METHOD_DESCRIPTOR_FAST': 155, + 'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 156, + 'CALL_METHOD_DESCRIPTOR_NOARGS': 157, + 'CALL_METHOD_DESCRIPTOR_O': 158, + 'CALL_NON_PY_GENERAL': 159, + 'CALL_PY_EXACT_ARGS': 160, + 'CALL_PY_GENERAL': 161, + 'CALL_STR_1': 162, + 'CALL_TUPLE_1': 163, + 'CALL_TYPE_1': 164, + 'COMPARE_OP_FLOAT': 165, + 'COMPARE_OP_INT': 166, + 'COMPARE_OP_STR': 167, + 'CONTAINS_OP_DICT': 168, + 'CONTAINS_OP_SET': 169, + 'FOR_ITER_GEN': 170, + 'FOR_ITER_LIST': 171, + 'FOR_ITER_RANGE': 172, + 'FOR_ITER_TUPLE': 173, + 'JUMP_BACKWARD_JIT': 174, + 'JUMP_BACKWARD_NO_JIT': 175, + 'LOAD_ATTR_CLASS': 176, + 'LOAD_ATTR_CLASS_WITH_METACLASS_CHECK': 177, + 'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 178, + 'LOAD_ATTR_INSTANCE_VALUE': 179, + 'LOAD_ATTR_METHOD_LAZY_DICT': 180, + 'LOAD_ATTR_METHOD_NO_DICT': 181, + 'LOAD_ATTR_METHOD_WITH_VALUES': 182, + 'LOAD_ATTR_MODULE': 183, + 'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 184, + 'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 185, + 'LOAD_ATTR_PROPERTY': 186, + 'LOAD_ATTR_SLOT': 187, + 'LOAD_ATTR_WITH_HINT': 188, + 'LOAD_CONST_IMMORTAL': 189, + 'LOAD_CONST_MORTAL': 190, + 'LOAD_GLOBAL_BUILTIN': 191, + 'LOAD_GLOBAL_MODULE': 192, + 'LOAD_SUPER_ATTR_ATTR': 193, + 'LOAD_SUPER_ATTR_METHOD': 194, + 'RESUME_CHECK': 195, + 'SEND_GEN': 196, + 'STORE_ATTR_INSTANCE_VALUE': 197, + 'STORE_ATTR_SLOT': 198, + 'STORE_ATTR_WITH_HINT': 199, + 'STORE_SUBSCR_DICT': 200, + 'STORE_SUBSCR_LIST_INT': 201, + 'TO_BOOL_ALWAYS_TRUE': 202, + 'TO_BOOL_BOOL': 203, + 'TO_BOOL_INT': 204, + 'TO_BOOL_LIST': 205, + 'TO_BOOL_NONE': 206, + 'TO_BOOL_STR': 207, + 'UNPACK_SEQUENCE_LIST': 208, + 'UNPACK_SEQUENCE_TUPLE': 209, + 'UNPACK_SEQUENCE_TWO_TUPLE': 210, } opmap = { 'CACHE': 0, 'RESERVED': 17, - 'RESUME': 149, + 'RESUME': 128, 'INSTRUMENTED_LINE': 254, 'ENTER_EXECUTOR': 255, 'BINARY_SLICE': 1, diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index 34110dbcace7e1..0f6220efa0482b 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -429,14 +429,14 @@ def test_invalid_bytecode(self): def foo(): pass - # assert that opcode 135 is invalid - self.assertEqual(opname[135], '<135>') + # assert that opcode 127 is invalid + self.assertEqual(opname[127], '<127>') - # change first opcode to 0x87 (=135) + # change first opcode to 0x7f (=127) foo.__code__ = foo.__code__.replace( - co_code=b'\x87' + foo.__code__.co_code[1:]) + co_code=b'\x7f' + foo.__code__.co_code[1:]) - msg = "unknown opcode 135" + msg = "unknown opcode 127" with self.assertRaisesRegex(SystemError, msg): foo() diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-02-28-13-34-51.gh-issue-130574.ujr3Vx.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-28-13-34-51.gh-issue-130574.ujr3Vx.rst new file mode 100644 index 00000000000000..84afe7cfb2e7b6 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-28-13-34-51.gh-issue-130574.ujr3Vx.rst @@ -0,0 +1 @@ +Renumber :opcode:`RESUME` from 149 to 128. diff --git a/Programs/test_frozenmain.h b/Programs/test_frozenmain.h index 0fe8d3d3f7d8c6..9bcb4a4634782d 100644 --- a/Programs/test_frozenmain.h +++ b/Programs/test_frozenmain.h @@ -1,7 +1,7 @@ // Auto-generated by Programs/freeze_test_frozenmain.py unsigned char M_test_frozenmain[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0, - 0,0,0,0,0,243,184,0,0,0,149,0,90,0,80,0, + 0,0,0,0,0,243,184,0,0,0,128,0,90,0,80,0, 71,0,112,0,90,0,80,0,71,1,112,1,89,2,33,0, 80,1,51,1,0,0,0,0,0,0,31,0,89,2,33,0, 80,2,89,0,78,6,0,0,0,0,0,0,0,0,0,0, diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 0435d0841dbae1..5208025cbf3edf 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -128,27 +128,6 @@ static void *opcode_targets[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, &&TARGET_RESUME, &&TARGET_BINARY_OP_ADD_FLOAT, &&TARGET_BINARY_OP_ADD_INT, @@ -234,6 +213,27 @@ static void *opcode_targets[256] = { &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, &&_unknown_opcode, &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, + &&_unknown_opcode, &&TARGET_INSTRUMENTED_END_FOR, &&TARGET_INSTRUMENTED_POP_ITER, &&TARGET_INSTRUMENTED_END_SEND, @@ -736,27 +736,27 @@ static py_tail_call_funcptr INSTRUCTION_TABLE[256] = { [125] = _TAIL_CALL_UNKNOWN_OPCODE, [126] = _TAIL_CALL_UNKNOWN_OPCODE, [127] = _TAIL_CALL_UNKNOWN_OPCODE, - [128] = _TAIL_CALL_UNKNOWN_OPCODE, - [129] = _TAIL_CALL_UNKNOWN_OPCODE, - [130] = _TAIL_CALL_UNKNOWN_OPCODE, - [131] = _TAIL_CALL_UNKNOWN_OPCODE, - [132] = _TAIL_CALL_UNKNOWN_OPCODE, - [133] = _TAIL_CALL_UNKNOWN_OPCODE, - [134] = _TAIL_CALL_UNKNOWN_OPCODE, - [135] = _TAIL_CALL_UNKNOWN_OPCODE, - [136] = _TAIL_CALL_UNKNOWN_OPCODE, - [137] = _TAIL_CALL_UNKNOWN_OPCODE, - [138] = _TAIL_CALL_UNKNOWN_OPCODE, - [139] = _TAIL_CALL_UNKNOWN_OPCODE, - [140] = _TAIL_CALL_UNKNOWN_OPCODE, - [141] = _TAIL_CALL_UNKNOWN_OPCODE, - [142] = _TAIL_CALL_UNKNOWN_OPCODE, - [143] = _TAIL_CALL_UNKNOWN_OPCODE, - [144] = _TAIL_CALL_UNKNOWN_OPCODE, - [145] = _TAIL_CALL_UNKNOWN_OPCODE, - [146] = _TAIL_CALL_UNKNOWN_OPCODE, - [147] = _TAIL_CALL_UNKNOWN_OPCODE, - [148] = _TAIL_CALL_UNKNOWN_OPCODE, + [211] = _TAIL_CALL_UNKNOWN_OPCODE, + [212] = _TAIL_CALL_UNKNOWN_OPCODE, + [213] = _TAIL_CALL_UNKNOWN_OPCODE, + [214] = _TAIL_CALL_UNKNOWN_OPCODE, + [215] = _TAIL_CALL_UNKNOWN_OPCODE, + [216] = _TAIL_CALL_UNKNOWN_OPCODE, + [217] = _TAIL_CALL_UNKNOWN_OPCODE, + [218] = _TAIL_CALL_UNKNOWN_OPCODE, + [219] = _TAIL_CALL_UNKNOWN_OPCODE, + [220] = _TAIL_CALL_UNKNOWN_OPCODE, + [221] = _TAIL_CALL_UNKNOWN_OPCODE, + [222] = _TAIL_CALL_UNKNOWN_OPCODE, + [223] = _TAIL_CALL_UNKNOWN_OPCODE, + [224] = _TAIL_CALL_UNKNOWN_OPCODE, + [225] = _TAIL_CALL_UNKNOWN_OPCODE, + [226] = _TAIL_CALL_UNKNOWN_OPCODE, + [227] = _TAIL_CALL_UNKNOWN_OPCODE, + [228] = _TAIL_CALL_UNKNOWN_OPCODE, + [229] = _TAIL_CALL_UNKNOWN_OPCODE, + [230] = _TAIL_CALL_UNKNOWN_OPCODE, + [231] = _TAIL_CALL_UNKNOWN_OPCODE, [232] = _TAIL_CALL_UNKNOWN_OPCODE, [233] = _TAIL_CALL_UNKNOWN_OPCODE, }; diff --git a/Tools/build/deepfreeze.py b/Tools/build/deepfreeze.py index 05633e3f77af49..6ec7a97f70ebb3 100644 --- a/Tools/build/deepfreeze.py +++ b/Tools/build/deepfreeze.py @@ -22,7 +22,7 @@ verbose = False # This must be kept in sync with Tools/cases_generator/analyzer.py -RESUME = 149 +RESUME = 128 def isprintable(b: bytes) -> bool: return all(0x20 <= c < 0x7f for c in b) diff --git a/Tools/cases_generator/analyzer.py b/Tools/cases_generator/analyzer.py index cecfb6f3834d44..334beb96f4eb77 100644 --- a/Tools/cases_generator/analyzer.py +++ b/Tools/cases_generator/analyzer.py @@ -1077,8 +1077,8 @@ def assign_opcodes( # This helps catch cases where we attempt to execute a cache. instmap["RESERVED"] = 17 - # 149 is RESUME - it is hard coded as such in Tools/build/deepfreeze.py - instmap["RESUME"] = 149 + # 128 is RESUME - it is hard coded as such in Tools/build/deepfreeze.py + instmap["RESUME"] = 128 # This is an historical oddity. instmap["BINARY_OP_INPLACE_ADD_UNICODE"] = 3 @@ -1108,7 +1108,7 @@ def assign_opcodes( # Specialized ops appear in their own section # Instrumented opcodes are at the end of the valid range - min_internal = 150 + min_internal = instmap["RESUME"] + 1 min_instrumented = 254 - (len(instrumented) - 1) assert min_internal + len(specialized) < min_instrumented _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com