aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Include/opcode.h
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2022-01-20 11:46:39 +0000
committerGitHub <noreply@github.com>2022-01-20 11:46:39 +0000
commitb04dfbbe4bd7071d46c8688c2263726ea31d33cd (patch)
tree17989daaffa384df343b53289845fba667e20acc /Include/opcode.h
parentd05a66339b5e07d72d96e4c30a34cc3821bb61a2 (diff)
downloadcpython-b04dfbbe4bd7071d46c8688c2263726ea31d33cd.tar.gz
cpython-b04dfbbe4bd7071d46c8688c2263726ea31d33cd.zip
bpo-46409: Make generators in bytecode (GH-30633)
* Add RETURN_GENERATOR and JUMP_NO_INTERRUPT opcodes. * Trim frame and generator by word each. * Minor refactor of frame.c * Update test.test_sys to account for smaller frames. * Treat generator functions as normal functions when evaluating and specializing.
Diffstat (limited to 'Include/opcode.h')
-rw-r--r--Include/opcode.h28
1 files changed, 15 insertions, 13 deletions
diff --git a/Include/opcode.h b/Include/opcode.h
index 5cc885597ac..c0686bd2249 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -38,6 +38,7 @@ extern "C" {
#define LOAD_BUILD_CLASS 71
#define GET_AWAITABLE 73
#define LOAD_ASSERTION_ERROR 74
+#define RETURN_GENERATOR 75
#define LIST_TO_TUPLE 82
#define RETURN_VALUE 83
#define IMPORT_STAR 84
@@ -89,6 +90,7 @@ extern "C" {
#define RAISE_VARARGS 130
#define MAKE_FUNCTION 132
#define BUILD_SLICE 133
+#define JUMP_NO_INTERRUPT 134
#define MAKE_CELL 135
#define LOAD_CLOSURE 136
#define LOAD_DEREF 137
@@ -157,18 +159,18 @@ extern "C" {
#define LOAD_GLOBAL_BUILTIN 66
#define LOAD_METHOD_ADAPTIVE 67
#define LOAD_METHOD_CACHED 72
-#define LOAD_METHOD_CLASS 75
-#define LOAD_METHOD_MODULE 76
-#define LOAD_METHOD_NO_DICT 77
-#define STORE_ATTR_ADAPTIVE 78
-#define STORE_ATTR_INSTANCE_VALUE 79
-#define STORE_ATTR_SLOT 80
-#define STORE_ATTR_WITH_HINT 81
-#define LOAD_FAST__LOAD_FAST 87
-#define STORE_FAST__LOAD_FAST 131
-#define LOAD_FAST__LOAD_CONST 134
-#define LOAD_CONST__LOAD_FAST 140
-#define STORE_FAST__STORE_FAST 141
+#define LOAD_METHOD_CLASS 76
+#define LOAD_METHOD_MODULE 77
+#define LOAD_METHOD_NO_DICT 78
+#define STORE_ATTR_ADAPTIVE 79
+#define STORE_ATTR_INSTANCE_VALUE 80
+#define STORE_ATTR_SLOT 81
+#define STORE_ATTR_WITH_HINT 87
+#define LOAD_FAST__LOAD_FAST 131
+#define STORE_FAST__LOAD_FAST 140
+#define LOAD_FAST__LOAD_CONST 141
+#define LOAD_CONST__LOAD_FAST 143
+#define STORE_FAST__STORE_FAST 150
#define DO_TRACING 255
#ifdef NEED_OPCODE_JUMP_TABLES
static uint32_t _PyOpcode_RelativeJump[8] = {
@@ -186,7 +188,7 @@ static uint32_t _PyOpcode_Jump[8] = {
0U,
536870912U,
2316288000U,
- 3U,
+ 67U,
0U,
0U,
0U,