Skip to content

Commit 4b47d7f

Browse files
committed
fix opcode table definitions
1 parent a076d17 commit 4b47d7f

File tree

1 file changed

+54
-53
lines changed

1 file changed

+54
-53
lines changed

xdis/opcodes/opcode_314.py

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
def_op(loc, "CACHE", 0, 0, 0)
3939
def_op(loc, "BINARY_SLICE", 1, 3, 1)
4040
def_op(loc, "BUILD_TEMPLATE", 2, 2, 1)
41-
def_op(loc, "BINARY_OP_INPLACE_ADD_UNICODE", 3, 2, 0)
41+
local_op(loc, "BINARY_OP_INPLACE_ADD_UNICODE", 3, 2, 0)
4242
def_op(loc, "CALL_FUNCTION_EX", 4, 4, 1)
4343
def_op(loc, "CHECK_EG_MATCH", 5, 2, 2)
4444
def_op(loc, "CHECK_EXC_MATCH", 6, 2, 2)
@@ -103,7 +103,7 @@
103103
name_op(loc, "DELETE_NAME", 65, 0, 0)
104104
def_op(loc, "DICT_MERGE", 66, 1, 0)
105105
def_op(loc, "DICT_UPDATE", 67, 1, 0)
106-
def_op(loc, "END_ASYNC_FOR", 68, 2, 0)
106+
jrel_op(loc, "END_ASYNC_FOR", 68, 2, 0, conditional=True)
107107
def_op(loc, "EXTENDED_ARG", 69, 0, 0)
108108
jrel_op(loc, "FOR_ITER", 70, 0, 1, conditional=True)
109109
def_op(loc, "GET_AWAITABLE", 71, 1, 1)
@@ -118,15 +118,15 @@
118118
name_op(loc, "LOAD_ATTR", 80, 1, 1) # pops 1 + (oparg & 1)
119119
def_op(loc, "LOAD_COMMON_CONSTANT", 81, 0, 1)
120120
const_op(loc, "LOAD_CONST", 82, 0, 1)
121-
free_op(loc, "LOAD_DEREF", 83, 0, 1)
121+
local_op(loc, "LOAD_DEREF", 83, 0, 1)
122122
local_op(loc, "LOAD_FAST", 84, 0, 1)
123123
local_op(loc, "LOAD_FAST_AND_CLEAR", 85, 0, 1)
124124
local_op(loc, "LOAD_FAST_BORROW", 86, 0, 1)
125125
local_op(loc, "LOAD_FAST_BORROW_LOAD_FAST_BORROW", 87, 0, 2)
126126
local_op(loc, "LOAD_FAST_CHECK", 88, 0, 1)
127127
local_op(loc, "LOAD_FAST_LOAD_FAST", 89, 0, 2)
128128
free_op(loc, "LOAD_FROM_DICT_OR_DEREF", 90, 1, 1)
129-
def_op(loc, "LOAD_FROM_DICT_OR_GLOBALS", 91, 1, 1)
129+
name_op(loc, "LOAD_FROM_DICT_OR_GLOBALS", 91, 1, 1)
130130
name_op(loc, "LOAD_GLOBAL", 92, 0, 1) # pops 1 + (oparg & 1)
131131
name_op(loc, "LOAD_NAME", 93, 0, 1)
132132
def_op(loc, "LOAD_SMALL_INT", 94, 0, 1)
@@ -141,38 +141,38 @@
141141
jrel_op(loc, "POP_JUMP_IF_TRUE", 103, 1, 0, conditional=True)
142142
varargs_op(loc, "RAISE_VARARGS", 104, -1, 0)
143143
def_op(loc, "RERAISE", 105, 1, 0)
144-
def_op(loc, "SEND", 106, 2, 2)
144+
jrel_op(loc, "SEND", 106, 2, 2, conditional=True)
145145
def_op(loc, "SET_ADD", 107, 1, 0)
146146
def_op(loc, "SET_FUNCTION_ATTRIBUTE", 108, 2, 1)
147147
def_op(loc, "SET_UPDATE", 109, 1, 0)
148148
store_op(loc, "STORE_ATTR", 110, 2, 0, is_type="name")
149149
store_op(loc, "STORE_DEREF", 111, 1, 0, is_type="free")
150150
store_op(loc, "STORE_FAST", 112, 1, 0, is_type="local")
151-
name_op(loc, "STORE_FAST_LOAD_FAST", 113, 1, 1)
151+
local_op(loc, "STORE_FAST_LOAD_FAST", 113, 1, 1)
152152
store_op(loc, "STORE_FAST_STORE_FAST", 114, 2, 0, is_type="local")
153153
store_op(loc, "STORE_GLOBAL", 115, 1, 0, is_type="name")
154-
store_op(loc, "STORE_NAME", 116, 1, 0, is_type="name") # Operand is in name list
154+
store_op(loc, "STORE_NAME", 116, 1, 0, is_type="name")
155155
def_op(loc, "SWAP", 117, 0, 0)
156156
varargs_op(loc, "UNPACK_EX", 118, 1, -1) # pushes 1 + (oparg & 0xFF) + (oparg >> 8)
157157
varargs_op(loc, "UNPACK_SEQUENCE", 119, 0, -1) # unpacks TOS, arg is the count
158158
def_op(loc, "YIELD_VALUE", 120, 1, 1)
159159
def_op(loc, "RESUME", 128, 0, 0)
160160

161161
# Specialized opcodes (>128)
162-
def_op(loc, "BINARY_OP_ADD_FLOAT", 129, 2, 1)
163-
def_op(loc, "BINARY_OP_ADD_INT", 130, 2, 1)
164-
def_op(loc, "BINARY_OP_ADD_UNICODE", 131, 2, 1)
165-
def_op(loc, "BINARY_OP_EXTEND", 132, 2, 1)
166-
def_op(loc, "BINARY_OP_MULTIPLY_FLOAT", 133, 2, 1)
167-
def_op(loc, "BINARY_OP_MULTIPLY_INT", 134, 2, 1)
168-
def_op(loc, "BINARY_OP_SUBSCR_DICT", 135, 2, 1)
169-
def_op(loc, "BINARY_OP_SUBSCR_GETITEM", 136, 2, 0)
170-
def_op(loc, "BINARY_OP_SUBSCR_LIST_INT", 137, 2, 1)
171-
def_op(loc, "BINARY_OP_SUBSCR_LIST_SLICE", 138, 2, 1)
172-
def_op(loc, "BINARY_OP_SUBSCR_STR_INT", 139, 2, 1)
173-
def_op(loc, "BINARY_OP_SUBSCR_TUPLE_INT", 140, 2, 1)
174-
def_op(loc, "BINARY_OP_SUBTRACT_FLOAT", 141, 2, 1)
175-
def_op(loc, "BINARY_OP_SUBTRACT_INT", 142, 2, 1)
162+
binary_op(loc, "BINARY_OP_ADD_FLOAT", 129, 2, 1)
163+
binary_op(loc, "BINARY_OP_ADD_INT", 130, 2, 1)
164+
binary_op(loc, "BINARY_OP_ADD_UNICODE", 131, 2, 1)
165+
binary_op(loc, "BINARY_OP_EXTEND", 132, 2, 1)
166+
binary_op(loc, "BINARY_OP_MULTIPLY_FLOAT", 133, 2, 1)
167+
binary_op(loc, "BINARY_OP_MULTIPLY_INT", 134, 2, 1)
168+
binary_op(loc, "BINARY_OP_SUBSCR_DICT", 135, 2, 1)
169+
binary_op(loc, "BINARY_OP_SUBSCR_GETITEM", 136, 2, 0)
170+
binary_op(loc, "BINARY_OP_SUBSCR_LIST_INT", 137, 2, 1)
171+
binary_op(loc, "BINARY_OP_SUBSCR_LIST_SLICE", 138, 2, 1)
172+
binary_op(loc, "BINARY_OP_SUBSCR_STR_INT", 139, 2, 1)
173+
binary_op(loc, "BINARY_OP_SUBSCR_TUPLE_INT", 140, 2, 1)
174+
binary_op(loc, "BINARY_OP_SUBTRACT_FLOAT", 141, 2, 1)
175+
binary_op(loc, "BINARY_OP_SUBTRACT_INT", 142, 2, 1)
176176
call_op(loc, "CALL_ALLOC_AND_ENTER_INIT", 143, -2, 0) # pops 2 + oparg
177177
call_op(loc, "CALL_BOUND_METHOD_EXACT_ARGS", 144, -2, 0) # pops 2 + oparg
178178
call_op(loc, "CALL_BOUND_METHOD_GENERAL", 145, -2, 0) # pops 2 + oparg
@@ -196,20 +196,20 @@
196196
def_op(loc, "CALL_STR_1", 163, 3, 1)
197197
def_op(loc, "CALL_TUPLE_1", 164, 3, 1)
198198
def_op(loc, "CALL_TYPE_1", 165, 3, 1)
199-
def_op(loc, "COMPARE_OP_FLOAT", 166, 2, 1)
200-
def_op(loc, "COMPARE_OP_INT", 167, 2, 1)
201-
def_op(loc, "COMPARE_OP_STR", 168, 2, 1)
199+
compare_op(loc, "COMPARE_OP_FLOAT", 166, 2, 1)
200+
compare_op(loc, "COMPARE_OP_INT", 167, 2, 1)
201+
compare_op(loc, "COMPARE_OP_STR", 168, 2, 1)
202202
def_op(loc, "CONTAINS_OP_DICT", 169, 2, 1)
203203
def_op(loc, "CONTAINS_OP_SET", 170, 2, 1)
204-
def_op(loc, "FOR_ITER_GEN", 171, 2, 2)
205-
def_op(loc, "FOR_ITER_LIST", 172, 2, 3)
206-
def_op(loc, "FOR_ITER_RANGE", 173, 2, 3)
207-
def_op(loc, "FOR_ITER_TUPLE", 174, 2, 3)
208-
def_op(loc, "JUMP_BACKWARD_JIT", 175, 0, 0)
209-
def_op(loc, "JUMP_BACKWARD_NO_JIT", 176, 0, 0)
204+
jrel_op(loc, "FOR_ITER_GEN", 171, 2, 2, conditional=True)
205+
jrel_op(loc, "FOR_ITER_LIST", 172, 2, 3, conditional=True)
206+
jrel_op(loc, "FOR_ITER_RANGE", 173, 2, 3, conditional=True)
207+
jrel_op(loc, "FOR_ITER_TUPLE", 174, 2, 3, conditional=True)
208+
jrel_op(loc, "JUMP_BACKWARD_JIT", 175, 0, 0, conditional=False)
209+
jrel_op(loc, "JUMP_BACKWARD_NO_JIT", 176, 0, 0, conditional=False)
210210
def_op(loc, "LOAD_ATTR_CLASS", 177, 1, 1) # pushes 1 + (oparg & 1)
211211
def_op(loc, "LOAD_ATTR_CLASS_WITH_METACLASS_CHECK", 178, 1, 1) # pushes 1 + (oparg & 1)
212-
def_op(loc, "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", 179, 1, 1)
212+
name_op(loc, "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", 179, 1, 1)
213213
def_op(loc, "LOAD_ATTR_INSTANCE_VALUE", 180, 1, 1) # pushes 1 + (oparg & 1)
214214
def_op(loc, "LOAD_ATTR_METHOD_LAZY_DICT", 181, 1, 2)
215215
def_op(loc, "LOAD_ATTR_METHOD_NO_DICT", 182, 1, 2)
@@ -219,16 +219,16 @@
219219
def_op(loc, "LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES", 186, 1, 1)
220220
def_op(loc, "LOAD_ATTR_PROPERTY", 187, 1, 0)
221221
def_op(loc, "LOAD_ATTR_SLOT", 188, 1, 1) # pushes 1 + (oparg & 1)
222-
def_op(loc, "LOAD_ATTR_WITH_HINT", 189, 1, 1) # pushes 1 + (oparg & 1)
222+
name_op(loc, "LOAD_ATTR_WITH_HINT", 189, 1, 1) # pushes 1 + (oparg & 1)
223223
def_op(loc, "LOAD_GLOBAL_BUILTIN", 190, 0, 1) # pushes 1 + (oparg & 1)
224224
def_op(loc, "LOAD_GLOBAL_MODULE", 191, 0, 1) # pushes 1 + (oparg & 1)
225-
def_op(loc, "LOAD_SUPER_ATTR_ATTR", 192, 3, 1)
226-
def_op(loc, "LOAD_SUPER_ATTR_METHOD", 193, 3, 2)
225+
name_op(loc, "LOAD_SUPER_ATTR_ATTR", 192, 3, 1)
226+
name_op(loc, "LOAD_SUPER_ATTR_METHOD", 193, 3, 2)
227227
def_op(loc, "RESUME_CHECK", 194, 0, 0)
228228
def_op(loc, "SEND_GEN", 195, 2, 1)
229229
def_op(loc, "STORE_ATTR_INSTANCE_VALUE", 196, 2, 0)
230230
def_op(loc, "STORE_ATTR_SLOT", 197, 2, 0)
231-
def_op(loc, "STORE_ATTR_WITH_HINT", 198, 2, 0)
231+
store_op(loc, "STORE_ATTR_WITH_HINT", 198, 2, 0, is_type="name")
232232
def_op(loc, "STORE_SUBSCR_DICT", 199, 3, 0)
233233
def_op(loc, "STORE_SUBSCR_LIST_INT", 200, 3, 0)
234234
def_op(loc, "TO_BOOL_ALWAYS_TRUE", 201, 1, 1)
@@ -243,23 +243,23 @@
243243
def_op(loc, "INSTRUMENTED_END_FOR", 233, 3, 2)
244244
def_op(loc, "INSTRUMENTED_POP_ITER", 234, 2, 0)
245245
def_op(loc, "INSTRUMENTED_END_SEND", 235, 2, 1)
246-
def_op(loc, "INSTRUMENTED_FOR_ITER", 236, 2, 3)
246+
jrel_op(loc, "INSTRUMENTED_FOR_ITER", 236, 2, 3, conditional=True)
247247
def_op(loc, "INSTRUMENTED_INSTRUCTION", 237, 0, 0)
248-
def_op(loc, "INSTRUMENTED_JUMP_FORWARD", 238, 0, 0)
248+
jrel_op(loc, "INSTRUMENTED_JUMP_FORWARD", 238, 0, 0, conditional=False)
249249
def_op(loc, "INSTRUMENTED_NOT_TAKEN", 239, 0, 0)
250-
def_op(loc, "INSTRUMENTED_POP_JUMP_IF_TRUE", 240, 1, 0)
251-
def_op(loc, "INSTRUMENTED_POP_JUMP_IF_FALSE", 241, 1, 0)
252-
def_op(loc, "INSTRUMENTED_POP_JUMP_IF_NONE", 242, 1, 0)
253-
def_op(loc, "INSTRUMENTED_POP_JUMP_IF_NOT_NONE", 243, 1, 0)
250+
jrel_op(loc, "INSTRUMENTED_POP_JUMP_IF_TRUE", 240, 1, 0, conditional=True)
251+
jrel_op(loc, "INSTRUMENTED_POP_JUMP_IF_FALSE", 241, 1, 0, conditional=True)
252+
jrel_op(loc, "INSTRUMENTED_POP_JUMP_IF_NONE", 242, 1, 0, conditional=True)
253+
jrel_op(loc, "INSTRUMENTED_POP_JUMP_IF_NOT_NONE", 243, 1, 0, conditional=True)
254254
def_op(loc, "INSTRUMENTED_RESUME", 244, 0, 0)
255255
def_op(loc, "INSTRUMENTED_RETURN_VALUE", 245, 1, 1)
256256
def_op(loc, "INSTRUMENTED_YIELD_VALUE", 246, 1, 1)
257-
def_op(loc, "INSTRUMENTED_END_ASYNC_FOR", 247, 2, 0)
258-
def_op(loc, "INSTRUMENTED_LOAD_SUPER_ATTR", 248, 3, 1) # pushes 1 + (oparg & 1)
257+
jrel_op(loc, "INSTRUMENTED_END_ASYNC_FOR", 247, 2, 0, conditional=True)
258+
name_op(loc, "INSTRUMENTED_LOAD_SUPER_ATTR", 248, 3, 1) # pushes 1 + (oparg & 1)
259259
call_op(loc, "INSTRUMENTED_CALL", 249, -2, 1)
260260
call_op(loc, "INSTRUMENTED_CALL_KW", 250, -3, 1)
261261
def_op(loc, "INSTRUMENTED_CALL_FUNCTION_EX", 251, 4, 1)
262-
def_op(loc, "INSTRUMENTED_JUMP_BACKWARD", 252, 0, 0)
262+
jrel_op(loc, "INSTRUMENTED_JUMP_BACKWARD", 252, 0, 0, conditional=False)
263263
def_op(loc, "INSTRUMENTED_LINE", 253, 0, 0)
264264
def_op(loc, "ENTER_EXECUTOR", 254, 0, 0)
265265
def_op(loc, "TRACE_RECORD", 255, 0, 0)
@@ -268,7 +268,7 @@
268268
jrel_op(loc, "JUMP_IF_FALSE", 258, 1, 1, conditional=True)
269269
jrel_op(loc, "JUMP_IF_TRUE", 259, 1, 1, conditional=True)
270270
jrel_op(loc, "JUMP_NO_INTERRUPT", 260, 0, 0, conditional=False)
271-
def_op(loc, "LOAD_CLOSURE", 261, 0, 1)
271+
local_op(loc, "LOAD_CLOSURE", 261, 0, 1)
272272
def_op(loc, "POP_BLOCK", 262, 0, 0)
273273
def_op(loc, "SETUP_CLEANUP", 263, 0, 2)
274274
def_op(loc, "SETUP_FINALLY", 264, 0, 1)
@@ -278,14 +278,15 @@
278278
# ops >= 44 have args
279279
HAVE_ARGUMENT = 44
280280

281-
loc["hasarg"] = [44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 128, 237, 239, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 253, 255, 257, 258, 259, 260, 261, 263, 264, 265, 266]
282-
loc["hasexc"] = [263, 264, 265]
283-
# loc["hasfree"] = [62, 90, 97, 111]
284-
# loc["hasjabs"] = []
285-
# loc["hasjrel"] = [68, 70, 75, 76, 77, 100, 101, 102, 103, 106, 237, 248, 257, 258, 259, 260]
286-
loc["hasjump"] = [68, 70, 75, 76, 77, 100, 101, 102, 103, 106, 237, 248, 257, 258, 259, 260]
287-
# loc["haslocal"] = [63, 83, 84, 85, 86, 87, 88, 89, 112, 113, 114, 261, 266]
288-
# loc["hasname"] = [61, 64, 65, 72, 73, 80, 91, 92, 93, 96, 110, 115, 116, 249]
281+
loc["hasarg"] = [44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 128, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 195, 198, 207, 208, 209, 236, 238, 240, 241, 242, 243, 244, 246, 247, 248, 249, 250, 252, 254, 255, 257, 258, 259, 260, 261, 263, 264, 265, 266]
282+
# hasconst table populated by const_op definitions
283+
# hasname table populated by name_op and store_op definitions
284+
# jrel table populated by jrel_op definitions
285+
loc["hasjabs"] = []
286+
loc["hasjump"] = loc["hasjrel"]
287+
# hasfree table populated by free_op and store_op definitions
288+
# haslocal table populated by local_op and store_op definitions
289+
loc["hasexc"] = [263, 264, 265]
289290

290291
### update formatting
291292
import xdis.opcodes.opcode_313 as opcode_313

0 commit comments

Comments
 (0)