mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
gh-130574: renumber RESUME opcode from 149 to 128 (GH-130685)
This commit is contained in:
parent
e4a60248b0
commit
aeb2327386
10 changed files with 243 additions and 241 deletions
|
@ -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 \
|
||||
|
|
42
Include/internal/pycore_opcode_metadata.h
generated
42
Include/internal/pycore_opcode_metadata.h
generated
|
@ -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: \
|
||||
;
|
||||
|
|
168
Include/opcode_ids.h
generated
168
Include/opcode_ids.h
generated
|
@ -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
|
||||
|
|
166
Lib/_opcode_metadata.py
generated
166
Lib/_opcode_metadata.py
generated
|
@ -123,95 +123,95 @@ _specializations = {
|
|||
}
|
||||
|
||||
_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,
|
||||
|
|
|
@ -429,14 +429,14 @@ class CodeTest(unittest.TestCase):
|
|||
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()
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Renumber :opcode:`RESUME` from 149 to 128.
|
2
Programs/test_frozenmain.h
generated
2
Programs/test_frozenmain.h
generated
|
@ -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,
|
||||
|
|
84
Python/opcode_targets.h
generated
84
Python/opcode_targets.h
generated
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -22,7 +22,7 @@ ROOT = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
|||
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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue