diff options
author | Mark Shannon <mark@hotpy.org> | 2024-04-30 10:33:13 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-30 10:33:13 (GMT) |
commit | 5b05d452cd20d9f0cfecdeec90adad3af5e4dfff (patch) | |
tree | 98991696903decd44fc348f6ac10f09b4c4785a5 /Python/optimizer.c | |
parent | 0f797402bc77192c76a952410ca8e17359feab3c (diff) | |
download | cpython-5b05d452cd20d9f0cfecdeec90adad3af5e4dfff.zip cpython-5b05d452cd20d9f0cfecdeec90adad3af5e4dfff.tar.gz cpython-5b05d452cd20d9f0cfecdeec90adad3af5e4dfff.tar.bz2 |
GH-118095: Add tier 2 support for YIELD_VALUE (GH-118380)
Diffstat (limited to 'Python/optimizer.c')
-rw-r--r-- | Python/optimizer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/optimizer.c b/Python/optimizer.c index fcd7d18..a9a35fc 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -704,7 +704,7 @@ top: // Jump here after _PUSH_FRAME or likely branches int nuops = expansion->nuops; RESERVE(nuops + 1); /* One extra for exit */ int16_t last_op = expansion->uops[nuops-1].uop; - if (last_op == _POP_FRAME || last_op == _RETURN_GENERATOR) { + if (last_op == _POP_FRAME || last_op == _RETURN_GENERATOR || last_op == _YIELD_VALUE) { // Check for trace stack underflow now: // We can't bail e.g. in the middle of // LOAD_CONST + _POP_FRAME. @@ -763,7 +763,7 @@ top: // Jump here after _PUSH_FRAME or likely branches Py_FatalError("garbled expansion"); } - if (uop == _POP_FRAME || uop == _RETURN_GENERATOR) { + if (uop == _POP_FRAME || uop == _RETURN_GENERATOR || uop == _YIELD_VALUE) { TRACE_STACK_POP(); /* Set the operand to the function or code object returned to, * to assist optimization passes. (See _PUSH_FRAME below.) |