mirror of
https://github.com/python/cpython.git
synced 2025-07-23 03:05:38 +00:00
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.
This commit is contained in:
parent
d05a66339b
commit
b04dfbbe4b
18 changed files with 236 additions and 205 deletions
28
Include/opcode.h
generated
28
Include/opcode.h
generated
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue