28
28
void _PyFloat_ExactDealloc (PyObject * );
29
29
void _PyUnicode_ExactDealloc (PyObject * );
30
30
31
+ /* Stack effect macros
32
+ * These will be mostly replaced by stack effect descriptions,
33
+ * but the tooling need to recognize them.
34
+ */
31
35
#define SET_TOP (v ) (stack_pointer[-1] = (v))
36
+ #define SET_SECOND (v ) (stack_pointer[-2] = (v))
32
37
#define PEEK (n ) (stack_pointer[-(n)])
33
-
38
+ #define PUSH (val ) (*(stack_pointer++) = (val))
39
+ #define POP () (*(--stack_pointer))
40
+ #define TOP () PEEK(1)
41
+ #define SECOND () PEEK(2)
42
+ #define STACK_GROW (n ) (stack_pointer += (n))
43
+ #define STACK_SHRINK (n ) (stack_pointer -= (n))
44
+ #define EMPTY () 1
45
+ #define STACK_LEVEL () 2
46
+
47
+ /* Local variable macros */
34
48
#define GETLOCAL (i ) (frame->localsplus[i])
49
+ #define SETLOCAL (i , val ) \
50
+ do { \
51
+ PyObject *_tmp = frame->localsplus[i]; \
52
+ frame->localsplus[i] = (val); \
53
+ Py_XDECREF(_tmp); \
54
+ } while (0)
55
+
56
+ /* Flow control macros */
57
+ #define DEOPT_IF (cond , instname ) ((void)0)
58
+ #define JUMPBY (offset ) ((void)0)
59
+ #define GO_TO_INSTRUCTION (instname ) ((void)0)
60
+ #define DISPATCH_SAME_OPARG () ((void)0)
61
+ #define DISPATCH () ((void)0)
35
62
36
63
#define inst (name ) case name:
37
64
#define family (name ) static int family_##name
@@ -43,7 +70,7 @@ typedef struct {
43
70
PyObject * kwnames ;
44
71
} CallShape ;
45
72
46
- static void
73
+ static PyObject *
47
74
dummy_func (
48
75
PyThreadState * tstate ,
49
76
_PyInterpreterFrame * frame ,
0 commit comments