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
*/
-#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 \
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: \
;
#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
#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
}
_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,
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()
--- /dev/null
+Renumber :opcode:`RESUME` from 149 to 128.
// 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,
&&_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,
&&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,
[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,
};
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)
# 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
# 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