python_assembler/instructions/
mod.rs1use serde::{Deserialize, Serialize};
2
3#[allow(non_camel_case_types)]
4#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
5pub enum PythonInstruction {
6 POP_TOP,
8 ROT_TWO,
9 ROT_THREE,
10 PUSH_NULL,
11 CACHE,
12 DUP_TOP,
13 DUP_TOP_TWO,
14 ROT_FOUR,
15 NOP,
16 UNARY_POSITIVE,
17 UNARY_NEGATIVE,
18 UNARY_NOT,
19 UNARY_INVERT,
20 GET_ITER,
21 GET_YIELD_FROM_ITER,
22 PRINT_EXPR,
23 LOAD_BUILD_CLASS,
24 BEFORE_ASYNC_WITH,
25 BEFORE_WITH,
26 END_ASYNC_FOR,
27 SETUP_ANNOTATIONS,
28 POP_BLOCK,
29 POP_EXCEPT,
30 POP_FINALLY,
31 RERAISE,
32 RETURN_VALUE,
33 RETURN_CONST(u32),
35 SETUP_ASYNC_WITH,
36 SETUP_WITH,
37 YIELD_VALUE,
38 END_ASYNC_WITH,
39 WITH_CLEANUP_START,
40 WITH_CLEANUP_FINISH,
41 ASYNC_WITH_CLEANUP_START,
42 ASYNC_WITH_CLEANUP_FINISH,
43 MATCH_SEQUENCE,
44 MATCH_MAPPING,
45 MATCH_KEYS,
46 MATCH_CLASS,
47 COPY_DICT_WITHOUT_KEYS,
48 GEN_START,
49 YIELD_FROM,
50 GET_AWAITABLE_CORO,
51 GET_AITER_CORO,
52 GET_ANEXT_CORO,
53 END_ASYNC_FOR_CORO,
54 SEND,
55 POP_FRAME,
56 RESUME,
57
58 POP_JUMP_IF_FALSE(u32),
60 POP_JUMP_IF_TRUE(u32),
61 POP_JUMP_IF_NONE(u32),
62 POP_JUMP_IF_NOT_NONE(u32),
63 JUMP_IF_FALSE_OR_POP(u32),
64 JUMP_IF_TRUE_OR_POP(u32),
65 JUMP_FORWARD(u32),
66 JUMP_BACKWARD(u32),
67 LOAD_CONST(u32),
68 LOAD_NAME(u32),
69 STORE_NAME(u32),
70 LOAD_FAST(u32),
71 STORE_FAST(u32),
72 LOAD_GLOBAL(u32),
73 STORE_GLOBAL(u32),
74 LOAD_ATTR(u32),
75 CALL_FUNCTION(u32),
76 MAKE_FUNCTION(u32),
77 PRECALL(u32),
78 CALL(u32),
79 BUILD_TUPLE(u32),
80 BUILD_LIST(u32),
81 BUILD_SET(u32),
82 BUILD_MAP(u32),
83 BUILD_CONST_KEY_MAP(u32),
84 COMPARE_OP(u32),
85 BINARY_OP(u32),
87 IMPORT_NAME(u32),
88 IMPORT_FROM(u32),
89 FOR_ITER(u32),
90 GET_AWAITABLE(u32),
91 GET_AITER(u32),
92 GET_ANEXT(u32),
93 SETUP_FINALLY(u32),
94 SETUP_EXCEPT(u32),
95 SETUP_LOOP(u32),
96 EXTENDED_ARG(u32),
97 LOAD_DEREF(u32),
98 STORE_DEREF(u32),
99 DELETE_DEREF(u32),
100 LOAD_CLASSDEREF(u32),
101 LOAD_SUPER_ATTR(u32),
102 LOAD_METHOD(u32),
103 CALL_METHOD(u32),
104 CALL_FINALLY(u32),
105 CALL_INTRINSIC_1(u32),
106 CALL_INTRINSIC_2(u32),
107 KW_NAMES(u32),
108 LIST_APPEND(u32),
109 SET_ADD(u32),
110 MAP_ADD(u32),
111 LIST_EXTEND(u32),
112 SET_UPDATE(u32),
113 DICT_UPDATE(u32),
114 DICT_MERGE(u32),
115 UNKNOWN(u8, Option<u32>),
117}
118