Mercurial > cpython-lru_cache-weakref
annotate Include/opcode.h @ 49955:878d40468c4e legacy-trunk
Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Dec 2008 23:22:58 +0000 |
| parents | 07aa19170a67 |
| children | 94e79d78dff0 |
| rev | line source |
|---|---|
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
1 #ifndef Py_OPCODE_H |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
2 #define Py_OPCODE_H |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
3 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
4 extern "C" { |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
5 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
6 |
| 145 | 7 |
| 69 | 8 /* Instruction opcodes for compiled code */ |
| 9 | |
| 86 | 10 #define STOP_CODE 0 |
| 69 | 11 #define POP_TOP 1 |
| 12 #define ROT_TWO 2 | |
| 13 #define ROT_THREE 3 | |
| 86 | 14 #define DUP_TOP 4 |
|
14162
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
15 #define ROT_FOUR 5 |
|
32395
6bc6abba8659
Install two code generation optimizations that depend on NOP.
Raymond Hettinger <python@rcn.com>
parents:
31618
diff
changeset
|
16 #define NOP 9 |
| 69 | 17 |
| 18 #define UNARY_POSITIVE 10 | |
| 19 #define UNARY_NEGATIVE 11 | |
| 20 #define UNARY_NOT 12 | |
| 21 #define UNARY_CONVERT 13 | |
|
2841
64928f6a8e80
keyword arguments and faster function calls
Guido van Rossum <guido@python.org>
parents:
2803
diff
changeset
|
22 |
|
409
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
23 #define UNARY_INVERT 15 |
| 69 | 24 |
|
31618
bc006682acb2
SF patch #910929: Optimize list comprehensions
Raymond Hettinger <python@rcn.com>
parents:
28759
diff
changeset
|
25 #define LIST_APPEND 18 |
|
3320
4e6d0b26efaf
changes for ** (power) operator
Guido van Rossum <guido@python.org>
parents:
2841
diff
changeset
|
26 #define BINARY_POWER 19 |
|
4e6d0b26efaf
changes for ** (power) operator
Guido van Rossum <guido@python.org>
parents:
2841
diff
changeset
|
27 |
| 69 | 28 #define BINARY_MULTIPLY 20 |
| 29 #define BINARY_DIVIDE 21 | |
| 30 #define BINARY_MODULO 22 | |
| 31 #define BINARY_ADD 23 | |
| 32 #define BINARY_SUBTRACT 24 | |
| 33 #define BINARY_SUBSCR 25 | |
|
19051
f20727cc3d0f
Implement PEP 238 in its (almost) full glory.
Guido van Rossum <guido@python.org>
parents:
18148
diff
changeset
|
34 #define BINARY_FLOOR_DIVIDE 26 |
|
f20727cc3d0f
Implement PEP 238 in its (almost) full glory.
Guido van Rossum <guido@python.org>
parents:
18148
diff
changeset
|
35 #define BINARY_TRUE_DIVIDE 27 |
|
f20727cc3d0f
Implement PEP 238 in its (almost) full glory.
Guido van Rossum <guido@python.org>
parents:
18148
diff
changeset
|
36 #define INPLACE_FLOOR_DIVIDE 28 |
|
f20727cc3d0f
Implement PEP 238 in its (almost) full glory.
Guido van Rossum <guido@python.org>
parents:
18148
diff
changeset
|
37 #define INPLACE_TRUE_DIVIDE 29 |
| 69 | 38 |
| 39 #define SLICE 30 | |
| 40 /* Also uses 31-33 */ | |
| 41 | |
| 42 #define STORE_SLICE 40 | |
| 43 /* Also uses 41-43 */ | |
| 44 | |
| 45 #define DELETE_SLICE 50 | |
| 46 /* Also uses 51-53 */ | |
| 47 | |
|
44334
07aa19170a67
Speed-up dictionary constructor by about 10%.
Raymond Hettinger <python@rcn.com>
parents:
42200
diff
changeset
|
48 #define STORE_MAP 54 |
|
14162
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
49 #define INPLACE_ADD 55 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
50 #define INPLACE_SUBTRACT 56 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
51 #define INPLACE_MULTIPLY 57 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
52 #define INPLACE_DIVIDE 58 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
53 #define INPLACE_MODULO 59 |
| 69 | 54 #define STORE_SUBSCR 60 |
| 55 #define DELETE_SUBSCR 61 | |
| 56 | |
|
409
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
57 #define BINARY_LSHIFT 62 |
|
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
58 #define BINARY_RSHIFT 63 |
|
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
59 #define BINARY_AND 64 |
|
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
60 #define BINARY_XOR 65 |
|
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
61 #define BINARY_OR 66 |
|
14162
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
62 #define INPLACE_POWER 67 |
|
17597
32e7d0898eab
Iterators phase 1. This comprises:
Guido van Rossum <guido@python.org>
parents:
16398
diff
changeset
|
63 #define GET_ITER 68 |
|
409
b5fe6482072f
Added shift and mask ops.
Guido van Rossum <guido@python.org>
parents:
178
diff
changeset
|
64 |
| 69 | 65 #define PRINT_EXPR 70 |
| 66 #define PRINT_ITEM 71 | |
| 67 #define PRINT_NEWLINE 72 | |
|
14098
44e666cc8c07
PEP 214, Extended print Statement, has been accepted by the BDFL.
Barry Warsaw <barry@python.org>
parents:
14038
diff
changeset
|
68 #define PRINT_ITEM_TO 73 |
|
44e666cc8c07
PEP 214, Extended print Statement, has been accepted by the BDFL.
Barry Warsaw <barry@python.org>
parents:
14038
diff
changeset
|
69 #define PRINT_NEWLINE_TO 74 |
|
14162
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
70 #define INPLACE_LSHIFT 75 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
71 #define INPLACE_RSHIFT 76 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
72 #define INPLACE_AND 77 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
73 #define INPLACE_XOR 78 |
|
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
74 #define INPLACE_OR 79 |
| 69 | 75 #define BREAK_LOOP 80 |
|
36695
b6d2f6fd3e11
PEP 343 -- the with-statement.
Guido van Rossum <guido@python.org>
parents:
32395
diff
changeset
|
76 #define WITH_CLEANUP 81 |
|
78
b1fb4e1f6e51
Added opcodes for classes.
Guido van Rossum <guido@python.org>
parents:
69
diff
changeset
|
77 #define LOAD_LOCALS 82 |
| 69 | 78 #define RETURN_VALUE 83 |
|
14038
18385172fac0
Apply SF patch #101135, adding 'import module as m' and 'from module import
Thomas Wouters <thomas@python.org>
parents:
13930
diff
changeset
|
79 #define IMPORT_STAR 84 |
|
1354
fccd415e2eb8
* bltinmodule.c: removed exec() built-in function.
Guido van Rossum <guido@python.org>
parents:
1329
diff
changeset
|
80 #define EXEC_STMT 85 |
|
18148
7bc473b2c654
Merging the gen-branch into the main line, at Guido's direction. Yay!
Tim Peters <tim.peters@gmail.com>
parents:
17597
diff
changeset
|
81 #define YIELD_VALUE 86 |
| 69 | 82 #define POP_BLOCK 87 |
| 83 #define END_FINALLY 88 | |
|
78
b1fb4e1f6e51
Added opcodes for classes.
Guido van Rossum <guido@python.org>
parents:
69
diff
changeset
|
84 #define BUILD_CLASS 89 |
| 69 | 85 |
| 86 #define HAVE_ARGUMENT 90 /* Opcodes from here have an argument: */ | |
| 87 | |
| 88 #define STORE_NAME 90 /* Index in name list */ | |
| 89 #define DELETE_NAME 91 /* "" */ | |
|
13930
4eaa463c031a
Merge UNPACK_LIST and UNPACK_TUPLE into a single UNPACK_SEQUENCE, since they
Thomas Wouters <thomas@python.org>
parents:
13256
diff
changeset
|
90 #define UNPACK_SEQUENCE 92 /* Number of sequence items */ |
|
17597
32e7d0898eab
Iterators phase 1. This comprises:
Guido van Rossum <guido@python.org>
parents:
16398
diff
changeset
|
91 #define FOR_ITER 93 |
|
13930
4eaa463c031a
Merge UNPACK_LIST and UNPACK_TUPLE into a single UNPACK_SEQUENCE, since they
Thomas Wouters <thomas@python.org>
parents:
13256
diff
changeset
|
92 |
| 69 | 93 #define STORE_ATTR 95 /* Index in name list */ |
| 94 #define DELETE_ATTR 96 /* "" */ | |
| 474 | 95 #define STORE_GLOBAL 97 /* "" */ |
| 96 #define DELETE_GLOBAL 98 /* "" */ | |
|
14162
27d7d89c774b
The real suport for augmented assignment: new opcodes, new PyNumber and
Thomas Wouters <thomas@python.org>
parents:
14147
diff
changeset
|
97 #define DUP_TOPX 99 /* number of items to duplicate */ |
| 69 | 98 #define LOAD_CONST 100 /* Index in const list */ |
| 99 #define LOAD_NAME 101 /* Index in name list */ | |
| 100 #define BUILD_TUPLE 102 /* Number of tuple items */ | |
| 101 #define BUILD_LIST 103 /* Number of list items */ | |
| 102 #define BUILD_MAP 104 /* Always zero for now */ | |
| 103 #define LOAD_ATTR 105 /* Index in name list */ | |
| 104 #define COMPARE_OP 106 /* Comparison operator */ | |
| 105 #define IMPORT_NAME 107 /* Index in name list */ | |
| 106 #define IMPORT_FROM 108 /* Index in name list */ | |
| 107 | |
| 108 #define JUMP_FORWARD 110 /* Number of bytes to skip */ | |
| 109 #define JUMP_IF_FALSE 111 /* "" */ | |
| 110 #define JUMP_IF_TRUE 112 /* "" */ | |
| 111 #define JUMP_ABSOLUTE 113 /* Target byte offset from beginning of code */ | |
| 112 | |
|
178
fb6367d5ff46
Added opcodes to load local/global variables
Guido van Rossum <guido@python.org>
parents:
145
diff
changeset
|
113 #define LOAD_GLOBAL 116 /* Index in name list */ |
|
fb6367d5ff46
Added opcodes to load local/global variables
Guido van Rossum <guido@python.org>
parents:
145
diff
changeset
|
114 |
|
16398
80c0b280a4f9
Allow 'continue' inside 'try' clause
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
16257
diff
changeset
|
115 #define CONTINUE_LOOP 119 /* Start of loop (absolute) */ |
|
42200
09bf35793bcd
Fix #1752132: wrong comment in opcode description.
Georg Brandl <georg@python.org>
parents:
36695
diff
changeset
|
116 #define SETUP_LOOP 120 /* Target address (relative) */ |
| 69 | 117 #define SETUP_EXCEPT 121 /* "" */ |
| 118 #define SETUP_FINALLY 122 /* "" */ | |
| 119 | |
|
1262
f820e6917f07
Changes to speed up local variables enormously, by avoiding dictionary
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
120 #define LOAD_FAST 124 /* Local variable number */ |
|
f820e6917f07
Changes to speed up local variables enormously, by avoiding dictionary
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
121 #define STORE_FAST 125 /* Local variable number */ |
|
f820e6917f07
Changes to speed up local variables enormously, by avoiding dictionary
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
122 #define DELETE_FAST 126 /* Local variable number */ |
|
f820e6917f07
Changes to speed up local variables enormously, by avoiding dictionary
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
123 |
|
2803
a2363b6e9c86
new opcodes RAISE_VARARGS, CALL_FUNCTION
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
124 #define RAISE_VARARGS 130 /* Number of raise arguments (1, 2 or 3) */ |
|
12082
603db0d0aed1
slightly modified version of Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
8627
diff
changeset
|
125 /* CALL_FUNCTION_XXX opcodes defined below depend on this definition */ |
|
2803
a2363b6e9c86
new opcodes RAISE_VARARGS, CALL_FUNCTION
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
126 #define CALL_FUNCTION 131 /* #args + (#kwargs<<8) */ |
|
2841
64928f6a8e80
keyword arguments and faster function calls
Guido van Rossum <guido@python.org>
parents:
2803
diff
changeset
|
127 #define MAKE_FUNCTION 132 /* #defaults */ |
|
3832
039bc3e4e64e
Added BUILD_SLICE opcode.
Guido van Rossum <guido@python.org>
parents:
3320
diff
changeset
|
128 #define BUILD_SLICE 133 /* Number of items */ |
|
2803
a2363b6e9c86
new opcodes RAISE_VARARGS, CALL_FUNCTION
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
129 |
|
16257
fd8c7203251f
PEP 227 implementation
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15939
diff
changeset
|
130 #define MAKE_CLOSURE 134 /* #free vars */ |
|
fd8c7203251f
PEP 227 implementation
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15939
diff
changeset
|
131 #define LOAD_CLOSURE 135 /* Load free variable from closure */ |
|
fd8c7203251f
PEP 227 implementation
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15939
diff
changeset
|
132 #define LOAD_DEREF 136 /* Load and dereference from closure cell */ |
|
fd8c7203251f
PEP 227 implementation
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15939
diff
changeset
|
133 #define STORE_DEREF 137 /* Store into cell */ |
|
fd8c7203251f
PEP 227 implementation
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15939
diff
changeset
|
134 |
|
12082
603db0d0aed1
slightly modified version of Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
8627
diff
changeset
|
135 /* The next 3 opcodes must be contiguous and satisfy |
|
12085
25b63367385e
remove reference to CALL_FUNCTION_STAR in comment
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
12082
diff
changeset
|
136 (CALL_FUNCTION_VAR - CALL_FUNCTION) & 3 == 1 */ |
|
12082
603db0d0aed1
slightly modified version of Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
8627
diff
changeset
|
137 #define CALL_FUNCTION_VAR 140 /* #args + (#kwargs<<8) */ |
|
603db0d0aed1
slightly modified version of Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
8627
diff
changeset
|
138 #define CALL_FUNCTION_KW 141 /* #args + (#kwargs<<8) */ |
|
603db0d0aed1
slightly modified version of Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
8627
diff
changeset
|
139 #define CALL_FUNCTION_VAR_KW 142 /* #args + (#kwargs<<8) */ |
|
603db0d0aed1
slightly modified version of Greg Ewing's extended call syntax patch
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
8627
diff
changeset
|
140 |
|
14147
21ec69a56228
Charles G. Waldman <cgw@fnal.gov>:
Fred Drake <fdrake@acm.org>
parents:
14098
diff
changeset
|
141 /* Support for opargs more than 16 bits long */ |
|
21ec69a56228
Charles G. Waldman <cgw@fnal.gov>:
Fred Drake <fdrake@acm.org>
parents:
14098
diff
changeset
|
142 #define EXTENDED_ARG 143 |
|
21ec69a56228
Charles G. Waldman <cgw@fnal.gov>:
Fred Drake <fdrake@acm.org>
parents:
14098
diff
changeset
|
143 |
|
21609
3ba0f1b20320
Patch #494783: Rename cmp_op enumerators.
Martin v. Löwis <martin@v.loewis.de>
parents:
19051
diff
changeset
|
144 |
|
3ba0f1b20320
Patch #494783: Rename cmp_op enumerators.
Martin v. Löwis <martin@v.loewis.de>
parents:
19051
diff
changeset
|
145 enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE, PyCmp_GT=Py_GT, PyCmp_GE=Py_GE, |
|
3ba0f1b20320
Patch #494783: Rename cmp_op enumerators.
Martin v. Löwis <martin@v.loewis.de>
parents:
19051
diff
changeset
|
146 PyCmp_IN, PyCmp_NOT_IN, PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD}; |
| 86 | 147 |
| 148 #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) | |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
149 |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
150 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
151 } |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
152 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
153 #endif /* !Py_OPCODE_H */ |
