8000 Update `opcode` from 3.13.7 (#6156) · RustPython/RustPython@3a6fda4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3a6fda4

Browse files
authored
Update opcode from 3.13.7 (#6156)
* Update `opcode` from 3.13.7 * Base `_opcode` * Add `test__opcode.py` from 3.13.7 * Impl `has_*` methods * Add more methods * Update `dis.py` from 3.13.7 * Update `support/bytecode_helper.py` from 3.13.7 * correct is_valid * Patch failing tests * Unpatch `support/__init__.py` * clippy * Make comments to doc * impl `_varname_from_oparg` for code * Unmark passing tests * Revert changes to `dis` * Mark failing tests
1 parent 1aea146 commit 3a6fda4
< 8000 /div>

File tree

10 files changed

+912
-445
lines changed

10 files changed

+912
-445
lines changed

Lib/_opcode_metadata.py

Lines changed: 343 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,343 @@
1+
# This file is generated by Tools/cases_generator/py_metadata_generator.py
2+
# from:
3+
# Python/bytecodes.c
4+
# Do not edit!
5+
_specializations = {
6+
"RESUME": [
7+
"RESUME_CHECK",
8+
],
9+
"TO_BOOL": [
10+
"TO_BOOL_ALWAYS_TRUE",
11+
"TO_BOOL_BOOL",
12+
"TO_BOOL_INT",
13+
"TO_BOOL_LIST",
14+
"TO_BOOL_NONE",
15+
"TO_BOOL_STR",
16+
],
17+
"BINARY_OP": [
18+
"BINARY_OP_MULTIPLY_INT",
19+
"BINARY_OP_ADD_INT",
20+
"BINARY_OP_SUBTRACT_INT",
21+
"BINARY_OP_MULTIPLY_FLOAT",
22+
"BINARY_OP_ADD_FLOAT",
23+
"BINARY_OP_SUBTRACT_FLOAT",
24+
"BINARY_OP_ADD_UNICODE",
25+
"BINARY_OP_INPLACE_ADD_UNICODE",
26+
],
27+
"BINARY_SUBSCR": [
28+
"BINARY_SUBSCR_DICT",
29+
"BINARY_SUBSCR_GETITEM",
30+
"BINARY_SUBSCR_LIST_INT",
31+
"BINARY_SUBSCR_STR_INT",
32+
"BINARY_SUBSCR_TUPLE_INT",
33+
],
34+
"STORE_SUBSCR": [
35+
"STORE_SUBSCR_DICT",
36+
"STORE_SUBSCR_LIST_INT",
37+
],
38+
"SEND": [
39+
"SEND_GEN",
40+
],
41+
"UNPACK_SEQUENCE": [
42+
"UNPACK_SEQUENCE_TWO_TUPLE",
43+
"UNPACK_SEQUENCE_TUPLE",
44+
"UNPACK_SEQUENCE_LIST",
45+
],
46+
"STORE_ATTR": [
47+
"STORE_ATTR_INSTANCE_VALUE",
48+
"STORE_ATTR_SLOT",
49+
"STORE_ATTR_WITH_HINT",
50+
],
51+
"LOAD_GLOBAL": [
52+
"LOAD_GLOBAL_MODULE",
53+
"LOAD_GLOBAL_BUILTIN",
54+
],
55+
"LOAD_SUPER_ATTR": [
56+
"LOAD_SUPER_ATTR_ATTR",
57+
"LOAD_SUPER_ATTR_METHOD",
58+
],
59+
"LOAD_ATTR": [
60+
"LOAD_ATTR_INSTANCE_VALUE",
61+
"LOAD_ATTR_MODULE",
62+
"LOAD_ATTR_WITH_HINT",
63+
"LOAD_ATTR_SLOT",
64+
"LOAD_ATTR_CLASS",
65+
"LOAD_ATTR_PROPERTY",
66+
"LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN",
67+
"LOAD_ATTR_METHOD_WITH_VALUES",
68+
"LOAD_ATTR_METHOD_NO_DICT",
69+
"LOAD_ATTR_METHOD_LAZY_DICT",
70+
"LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
71+
"LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
72+
],
73+
"COMPARE_OP": [
74+
"COMPARE_OP_FLOAT",
75+
"COMPARE_OP_INT",
76+
"COMPARE_OP_STR",
77+
],
78+
"CONTAINS_OP": [
79+
"CONTAINS_OP_SET",
80+
"CONTAINS_OP_DICT",
81+
],
82+
"FOR_ITER": [
83+
"FOR_ITER_LIST",
84+
"FOR_ITER_TUPLE",
85+
"FOR_ITER_RANGE",
86+
"FOR_ITER_GEN",
87+
],
88+
"CALL": [
89+
"CALL_BOUND_METHOD_EXACT_ARGS",
90+
"CALL_PY_EXACT_ARGS",
91+
"CALL_TYPE_1",
92+
"CALL_STR_1",
93+
"CALL_TUPLE_1",
94+
"CALL_BUILTIN_CLASS",
95+
"CALL_BUILTIN_O",
96+
"CALL_BUILTIN_FAST",
97+
"CALL_BUILTIN_FAST_WITH_KEYWORDS",
98+
"CALL_LEN",
99+
"CALL_ISINSTANCE",
100+
"CALL_LIST_APPEND",
101+
"CALL_METHOD_DESCRIPTOR_O",
102+
"CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS",
103+
"CALL_METHOD_DESCRIPTOR_NOARGS",
104+
"CALL_METHOD_DESCRIPTOR_FAST",
105+
"CALL_ALLOC_AND_ENTER_INIT",
106+
"CALL_PY_GENERAL",
107+
"CALL_BOUND_METHOD_GENERAL",
108+
"CALL_NON_PY_GENERAL",
109+
],
110+
}
111+
112+
_specialized_opmap = {
113+
'BINARY_OP_ADD_FLOAT': 150,
114+
'BINARY_OP_ADD_INT': 151,
115+
'BINARY_OP_ADD_UNICODE': 152,
116+
'BINARY_OP_INPLACE_ADD_UNICODE': 3,
117+
'BINARY_OP_MULTIPLY_FLOAT': 153,
118+
'BINARY_OP_MULTIPLY_INT': 154,
119+
'BINARY_OP_SUBTRACT_FLOAT': 155,
120+
'BINARY_OP_SUBTRACT_INT': 156,
121+
'BINARY_SUBSCR_DICT': 157,
122+
'BINARY_SUBSCR_GETITEM': 158,
123+
'BINARY_SUBSCR_LIST_INT': 159,
124+
'BINARY_SUBSCR_STR_INT': 160,
125+
'BINARY_SUBSCR_TUPLE_INT': 161,
126+
'CALL_ALLOC_AND_ENTER_INIT': 162,
127+
'CALL_BOUND_METHOD_EXACT_ARGS': 163,
128+
'CALL_BOUND_METHOD_GENERAL': 164,
129+
'CALL_BUILTIN_CLASS': 165,
130+
'CALL_BUILTIN_FAST': 166,
131+
'CALL_BUILTIN_FAST_WITH_KEYWORDS': 167,
132+
'CALL_BUILTIN_O': 168,
133+
'CALL_ISINSTANCE': 169,
134+
'CALL_LEN': 170,
135+
'CALL_LIST_APPEND': 171,
136+
'CALL_METHOD_DESCRIPTOR_FAST': 172,
137+
'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 173,
138+
'CALL_METHOD_DESCRIPTOR_NOARGS': 174,
139+
'CALL_METHOD_DESCRIPTOR_O': 175,
140+
'CALL_NON_PY_GENERAL': 176,
141+
'CALL_PY_EXACT_ARGS': 177,
142+
'CALL_PY_GENERAL': 178,
143+
'CALL_STR_1': 179,
144+
'CALL_TUPLE_1': 180,
145+
'CALL_TYPE_1': 78FB 181,
146+
'COMPARE_OP_FLOAT': 182,
147+
'COMPARE_OP_INT': 183,
148+
'COMPARE_OP_STR': 184,
149+
'CONTAINS_OP_DICT': 185,
150+
'CONTAINS_OP_SET': 186,
151+
'FOR_ITER_GEN': 187,
152+
'FOR_ITER_LIST': 188,
153+
'FOR_ITER_RANGE': 189,
154+
'FOR_ITER_TUPLE': 190,
155+
'LOAD_ATTR_CLASS': 191,
156+
'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 192,
157+
'LOAD_ATTR_INSTANCE_VALUE': 193,
158+
'LOAD_ATTR_METHOD_LAZY_DICT': 194,
159+
'LOAD_ATTR_METHOD_NO_DICT': 195,
160+
'LOAD_ATTR_METHOD_WITH_VALUES': 196,
161+
'LOAD_ATTR_MODULE': 197,
162+
'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 198,
163+
'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 199,
164+
'LOAD_ATTR_PROPERTY': 200,
165+
'LOAD_ATTR_SLOT': 201,
166+
'LOAD_ATTR_WITH_HINT': 202,
167+
'LOAD_GLOBAL_BUILTIN': 203,
168+
'LOAD_GLOBAL_MODULE': 204,
169+
'LOAD_SUPER_ATTR_ATTR': 205,
170+
'LOAD_SUPER_ATTR_METHOD': 206,
171+
'RESUME_CHECK': 207,
172+
'SEND_GEN': 208,
173+
'STORE_ATTR_INSTANCE_VALUE': 209,
174+
'STORE_ATTR_SLOT': 210,
175+
'STORE_ATTR_WITH_HINT': 211,
176+
'STORE_SUBSCR_DICT': 212,
177+
'STORE_SUBSCR_LIST_INT': 213,
178+
'TO_BOOL_ALWAYS_TRUE': 214,
179+
'TO_BOOL_BOOL': 215,
180+
'TO_BOOL_INT': 216,
181+
'TO_BOOL_LIST': 217,
182+
'TO_BOOL_NONE': 218,
183+
'TO_BOOL_STR': 219,
184+
'UNPACK_SEQUENCE_LIST': 220,
185+
'UNPACK_SEQUENCE_TUPLE': 221,
186+
'UNPACK_SEQUENCE_TWO_TUPLE': 222,
187+
}
188+
189+
opmap = {
190+
'CACHE': 0,
191+
'RESERVED': 17,
192+
'RESUME': 149,
193+
'INSTRUMENTED_LINE': 254,
194+
'BEFORE_ASYNC_WITH': 1,
195+
'BEFORE_WITH': 2,
196+
'BINARY_SLICE': 4,
197+
'BINARY_SUBSCR': 5,
198+
'CHECK_EG_MATCH': 6,
199+
'CHECK_EXC_MATCH': 7,
200+
'CLEANUP_THROW': 8,
201+
'DELETE_SUBSCR': 9,
202+
'END_ASYNC_FOR': 10,
203+
'END_FOR': 11,
204+
'END_SEND': 12,
205+
'EXIT_INIT_CHECK': 13,
206+
'FORMAT_SIMPLE': 14,
207+
'FORMAT_WITH_SPEC': 15,
208+
'GET_AITER': 16,
209+
'GET_ANEXT': 18,
210+
'GET_ITER': 19,
211+
'GET_LEN': 20,
212+
'GET_YIELD_FROM_ITER': 21,
213+
'INTERPRETER_EXIT': 22,
214+
'LOAD_ASSERTION_ERROR': 23,
215+
'LOAD_BUILD_CLASS': 24,
216+
'LOAD_LOCALS': 25,
217+
'MAKE_FUNCTION': 26,
218+
'MATCH_KEYS': 27,
219+
'MATCH_MAPPING': 28,
220+
'MATCH_SEQUENCE': 29,
221+
'NOP': 30,
222+
'POP_EXCEPT': 31,
223+
'POP_TOP': 32,
224+
'PUSH_EXC_INFO': 33,
225+
'PUSH_NULL': 34,
226+
'RETURN_GENERATOR': 35,
227+
'RETURN_VALUE': 36,
228+
'SETUP_ANNOTATIONS': 37,
229+
'STORE_SLICE': 38,
230+
'STORE_SUBSCR': 39,
231+
'TO_BOOL': 40,
232+
'UNARY_INVERT': 41,
233+
'UNARY_NEGATIVE': 42,
234+
'UNARY_NOT': 43,
235+
'WITH_EXCEPT_START': 44,
236+
'BINARY_OP': 45,
237+
'BUILD_CONST_KEY_MAP': 46,
238+
'BUILD_LIST': 47,
239+
'BUILD_MAP': 48,
240+
'BUILD_SET': 49,
241+
'BUILD_SLICE': 50,
242+
'BUILD_STRING': 51,
243+
'BUILD_TUPLE': 52,
244+
'CALL': 53,
245+
'CALL_FUNCTION_EX': 54,
246+
'CALL_INTRINSIC_1': 55,
247+
'CALL_INTRINSIC_2': 56,
248+
'CALL_KW': 57,
249+
'COMPARE_OP': 58,
250+
'CONTAINS_OP': 59,
251+
'CONVERT_VALUE': 60,
252+
'COPY': 61,
253+
'COPY_FREE_VARS': 62,
254+
'DELETE_ATTR': 63,
255+
'DELETE_DEREF': 64,
256+
'DELETE_FAST': 65,
257+
'DELETE_GLOBAL': 66,
258+
'DELETE_NAME': 67,
259+
'DICT_MERGE': 68,
260+
'DICT_UPDATE': 69,
261+
'ENTER_EXECUTOR': 70,
262+
'EXTENDED_ARG': 71,
263+
'FOR_ITER': 72,
264+
'GET_AWAITABLE': 73,
265+
'IMPORT_FROM': 74,
266+
'IMPORT_NAME': 75,
267+
'IS_OP': 76,
268+
'JUMP_BACKWARD': 77,
269+
'JUMP_BACKWARD_NO_INTERRUPT': 78,
270+
'JUMP_FORWARD': 79,
271+
'LIST_APPEND': 80,
272+
'LIST_EXTEND': 81,
273+
'LOAD_ATTR': 82,
274+
'LOAD_CONST': 83,
275+
'LOAD_DEREF': 84,
276+
'LOAD_FAST': 85,
277+
'LOAD_FAST_AND_CLEAR': 86,
278+
'LOAD_FAST_CHECK': 87,
279+
'LOAD_FAST_LOAD_FAST': 88,
280+
'LOAD_FROM_DICT_OR_DEREF': 89,
281+
'LOAD_FROM_DICT_OR_GLOBALS': 90,
282+
'LOAD_GLOBAL': 91,
283+
'LOAD_NAME': 92,
284+
'LOAD_SUPER_ATTR': 93,
285+
'MAKE_CELL': 94,
286+
'MAP_ADD': 95,
287+
'MATCH_CLASS': 96,
288+
'POP_JUMP_IF_FALSE': 97,
289+
'POP_JUMP_IF_NONE': 98,
290+
'POP_JUMP_IF_NOT_NONE': 99,
291+
'POP_JUMP_IF_TRUE': 100,
292+
'RAISE_VARARGS': 101,
293+
'RERAISE': 102,
294+
'RETURN_CONST': 103,
295+
'SEND': 104,
296+
'SET_ADD': 105,
297+
'SET_FUNCTION_ATTRIBUTE': 106,
298+
'SET_UPDATE': 107,
299+
'STORE_ATTR': 108,
300+
'STORE_DEREF': 109,
301+
'STORE_FAST': 110,
302+
'STORE_FAST_LOAD_FAST': 111,
303+
'STORE_FAST_STORE_FAST': 112,
304+
'STORE_GLOBAL': 113,
305+
'STORE_NAME': 114,
306+
'SWAP': 115,
307+
'UNPACK_EX': 116,
308+
'UNPACK_SEQUENCE': 117,
309+
'YIELD_VALUE': 118,
310+
'INSTRUMENTED_RESUME': 236,
311+
'INSTRUMENTED_END_FOR': 237,
312+
'INSTRUMENTED_END_SEND': 238,
313+
'INSTRUMENTED_RETURN_VALUE': 239,
314+
'INSTRUMENTED_RETURN_CONST': 240,
315+
'INSTRUMENTED_YIELD_VALUE': 241,
316+
'INSTRUMENTED_LOAD_SUPER_ATTR': 242,
317+
'INSTRUMENTED_FOR_ITER': 243,
318+
'INSTRUMENTED_CALL': 244,
319+
'INSTRUMENTED_CALL_KW': 245,
320+
'INSTRUMENTED_CALL_FUNCTION_EX': 246,
321+
'INSTRUMENTED_INSTRUCTION': 247,
322+
'INSTRUMENTED_JUMP_FORWARD': 248,
323+
'INSTRUMENTED_JUMP_BACKWARD': 249,
324+
'INSTRUMENTED_POP_JUMP_IF_TRUE': 250,
325+
'INSTRUMENTED_POP_JUMP_IF_FALSE': 251,
326+
'INSTRUMENTED_POP_JUMP_IF_NONE': 252,
327+
'INSTRUMENTED_POP_JUMP_IF_NOT_NONE': 253,
328+
'JUMP': 256,
329+
'JUMP_NO_INTERRUPT': 257,
330+
'LOAD_CLOSURE': 258,
331+
'LOAD_METHOD': 259,
332+
'LOAD_SUPER_METHOD': 260,
333+
'LOAD_ZERO_SUPER_ATTR': 261,
334+
'LOAD_ZERO_SUPER_METHOD': 262,
335+
'POP_BLOCK': 263,
336+
'SETUP_CLEANUP': 264,
337+
'SETUP_FINALLY': 265,
338+
'SETUP_WITH': 266,
339+
'STORE_FAST_MAYBE_NULL': 267,
340+
}
341+
342+
HAVE_ARGUMENT = 44
343+
MIN_INSTRUMENTED_OPCODE = 236

0 commit comments

Comments
 (0)
0