Skip to content

Commit c2bfdf3

Browse files
authored
Assign opcode ids (#6637)
1 parent 83a0dea commit c2bfdf3

File tree

10 files changed

+384
-792
lines changed

10 files changed

+384
-792
lines changed

Lib/_opcode_metadata.py

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
'CACHE': 0,
1111
'BEFORE_ASYNC_WITH': 1,
1212
'BEFORE_WITH': 2,
13-
'RESERVED_3': 3,
13+
'BINARY_OP_INPLACE_ADD_UNICODE': 3,
1414
'BINARY_SLICE': 4,
1515
'BINARY_SUBSCR': 5,
1616
'CHECK_EG_MATCH': 6,
@@ -24,7 +24,7 @@
2424
'FORMAT_SIMPLE': 14,
2525
'FORMAT_WITH_SPEC': 15,
2626
'GET_AITER': 16,
27-
'RESERVED_17': 17,
27+
'RESERVED': 17,
2828
'GET_ANEXT': 18,
2929
'GET_ITER': 19,
3030
'GET_LEN': 20,
@@ -127,36 +127,27 @@
127127
'UNPACK_SEQUENCE': 117,
128128
'YIELD_VALUE': 118,
129129
'BREAK': 119,
130-
'BUILD_LIST_UNPACK': 120,
130+
'BUILD_LIST_FROM_TUPLES': 120,
131131
'BUILD_MAP_FOR_CALL': 121,
132-
'BUILD_SET_UNPACK': 122,
133-
'BUILD_TUPLE_ITER': 123,
134-
'BUILD_TUPLE_UNPACK': 124,
135-
'CALL_METHOD': 125,
136-
'CALL_METHOD_KW': 126,
132+
'BUILD_SET_FROM_TUPLES': 122,
133+
'BUILD_TUPLE_FROM_ITER': 123,
134+
'BUILD_TUPLE_FROM_TUPLES': 124,
135+
'CALL_METHOD_POSITIONAL': 125,
136+
'CALL_METHOD_KEYWORD': 126,
137137
'CALL_METHOD_EX': 127,
138138
'CONTINUE': 128,
139-
'JUMP': 129,
140-
'JUMP_IF_FALSE_OR_POP': 130,
141-
'JUMP_IF_TRUE_OR_POP': 131,
142-
'JUMP_IF_NOT_EXC_MATCH': 132,
143-
'LOAD_CLASSDEREF': 133,
144-
'LOAD_CLOSURE': 134,
145-
'LOAD_METHOD': 135,
146-
'POP_BLOCK': 136,
147-
'REVERSE': 137,
148-
'SET_EXC_INFO': 138,
149-
'SUBSCRIPT': 139,
150-
'UNARY_OP': 140,
151-
'RESERVED_141': 141,
152-
'RESERVED_142': 142,
153-
'RESERVED_143': 143,
154-
'RESERVED_144': 144,
155-
'RESERVED_145': 145,
156-
'RESERVED_146': 146,
157-
'RESERVED_147': 147,
158-
'RESERVED_148': 148,
139+
'JUMP_IF_FALSE_OR_POP': 129,
140+
'JUMP_IF_TRUE_OR_POP': 130,
141+
'JUMP_IF_NOT_EXC_MATCH': 131,
142+
'LOAD_CLASS_DEREF': 132,
143+
'REVERSE': 133,
144+
'SET_EXC_INFO': 134,
145+
'SUBSCRIPT': 135,
159146
'RESUME': 149,
147+
'JUMP': 252,
148+
'LOAD_CLOSURE': 253,
149+
'LOAD_METHOD': 254,
150+
'POP_BLOCK': 255,
160151
}
161152

162153
# CPython 3.13 compatible: opcodes < 44 have no argument

Lib/test/test__opcode.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def check_bool_function_result(self, func, ops, expected):
1616
self.assertIsInstance(func(op), bool)
1717
self.assertEqual(func(op), expected)
1818

19+
@unittest.expectedFailure # TODO: RUSTPYTHON; Only supporting u8 ATM
1920
def test_invalid_opcodes(self):
2021
invalid = [-100, -1, 255, 512, 513, 1000]
2122
self.check_bool_function_result(_opcode.is_valid, invalid, False)

Lib/test/test_dis.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -937,6 +937,7 @@ def test_opname(self):
937937
def test_boundaries(self):
938938
self.assertEqual(dis.opmap["EXTENDED_ARG"], dis.EXTENDED_ARG)
939939

940+
@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: 29 not less than or equal to 20
940941
def test_widths(self):
941942
long_opcodes = set(['JUMP_BACKWARD_NO_INTERRUPT',
942943
'INSTRUMENTED_CALL_FUNCTION_EX'])

0 commit comments

Comments
 (0)