FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Include/internal/pycore_opcode_utils.h at main · python/cpython · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
python
/
cpython
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
35.3k
Star
74.9k
Code
Issues
5k+
Pull requests
2.5k
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Include
/
internal
/
pycore_opcode_utils.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
104 lines (85 loc) · 3.07 KB
Breadcrumbs
cpython
/
Include
/
internal
/
pycore_opcode_utils.h
Copy path
File metadata and controls
104 lines (85 loc) · 3.07 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
#ifndef
Py_INTERNAL_OPCODE_UTILS_H
#define
Py_INTERNAL_OPCODE_UTILS_H
#ifdef
__cplusplus
extern
"C"
{
#endif
#ifndef
Py_BUILD_CORE
# error
"this header requires Py_BUILD_CORE define"
#endif
#define
MAX_REAL_OPCODE
254
#define
IS_WITHIN_OPCODE_RANGE
(
opcode
) \
(((opcode) >= 0 && (opcode) <= MAX_REAL_OPCODE) || \
IS_PSEUDO_INSTR(opcode))
#define
IS_BLOCK_PUSH_OPCODE
(
opcode
) \
((opcode) == SETUP_FINALLY || \
(opcode) == SETUP_WITH || \
(opcode) == SETUP_CLEANUP)
#define
HAS_TARGET
(
opcode
) \
(OPCODE_HAS_JUMP(opcode) || IS_BLOCK_PUSH_OPCODE(opcode))
/* opcodes that must be last in the basicblock */
#define
IS_TERMINATOR_OPCODE
(
opcode
) \
(OPCODE_HAS_JUMP(opcode) || IS_SCOPE_EXIT_OPCODE(opcode))
/* opcodes which are not emitted in codegen stage, only by the assembler */
#define
IS_ASSEMBLER_OPCODE
(
opcode
) \
((opcode) == JUMP_FORWARD || \
(opcode) == JUMP_BACKWARD || \
(opcode) == JUMP_BACKWARD_NO_INTERRUPT)
#define
IS_BACKWARDS_JUMP_OPCODE
(
opcode
) \
((opcode) == JUMP_BACKWARD || \
(opcode) == JUMP_BACKWARD_NO_INTERRUPT)
#define
IS_UNCONDITIONAL_JUMP_OPCODE
(
opcode
) \
((opcode) == JUMP || \
(opcode) == JUMP_NO_INTERRUPT || \
(opcode) == JUMP_FORWARD || \
(opcode) == JUMP_BACKWARD || \
(opcode) == JUMP_BACKWARD_NO_INTERRUPT)
#define
IS_CONDITIONAL_JUMP_OPCODE
(
opcode
) \
((opcode) == POP_JUMP_IF_FALSE || \
(opcode) == POP_JUMP_IF_TRUE || \
(opcode) == POP_JUMP_IF_NONE || \
(opcode) == POP_JUMP_IF_NOT_NONE)
#define
IS_SCOPE_EXIT_OPCODE
(
opcode
) \
((opcode) == RETURN_VALUE || \
(opcode) == RAISE_VARARGS || \
(opcode) == RERAISE)
#define
IS_RETURN_OPCODE
(
opcode
) \
(opcode == RETURN_VALUE)
#define
IS_RAISE_OPCODE
(
opcode
) \
(opcode == RAISE_VARARGS || opcode == RERAISE)
/* Flags used in the oparg for MAKE_FUNCTION */
#define
MAKE_FUNCTION_DEFAULTS
0x01
#define
MAKE_FUNCTION_KWDEFAULTS
0x02
#define
MAKE_FUNCTION_ANNOTATIONS
0x04
#define
MAKE_FUNCTION_CLOSURE
0x08
#define
MAKE_FUNCTION_ANNOTATE
0x10
/* Values used as the oparg for LOAD_COMMON_CONSTANT */
#define
CONSTANT_ASSERTIONERROR
0
#define
CONSTANT_NOTIMPLEMENTEDERROR
1
#define
CONSTANT_BUILTIN_TUPLE
2
#define
CONSTANT_BUILTIN_ALL
3
#define
CONSTANT_BUILTIN_ANY
4
#define
CONSTANT_BUILTIN_LIST
5
#define
CONSTANT_BUILTIN_SET
6
#define
CONSTANT_NONE
7
#define
CONSTANT_EMPTY_STR
8
#define
CONSTANT_TRUE
9
#define
CONSTANT_FALSE
10
#define
CONSTANT_MINUS_ONE
11
#define
CONSTANT_BUILTIN_FROZENSET
12
#define
CONSTANT_EMPTY_TUPLE
13
#define
NUM_COMMON_CONSTANTS
14
/* Values used in the oparg for RESUME */
#define
RESUME_AT_FUNC_START
0
#define
RESUME_AFTER_YIELD
1
#define
RESUME_AFTER_YIELD_FROM
2
#define
RESUME_AFTER_AWAIT
3
#define
RESUME_AT_GEN_EXPR_START
4
#define
RESUME_OPARG_LOCATION_MASK
0x7
#define
RESUME_OPARG_DEPTH1_MASK
0x8
#define
GET_ITER_YIELD_FROM
1
#define
GET_ITER_YIELD_FROM_NO_CHECK
2
#define
GET_ITER_YIELD_FROM_CORO_CHECK
3
#ifdef
__cplusplus
}
#endif
#endif
/* !Py_INTERNAL_OPCODE_UTILS_H */
Back
|
FazBrowse Home
|
New Git URL