summaryrefslogtreecommitdiff
path: root/Lib/opcode.py
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2021-06-07 16:52:00 -0600
committerGitHub <noreply@github.com>2021-06-07 16:52:00 -0600
commit631f9938b1604d4f893417ec339b9e0fa9196fb1 (patch)
tree6a72bf35dafb42ad3d00e153e244538db4a646ee /Lib/opcode.py
parente915db3e9e512249a6f494c0b331db2d021e1f56 (diff)
downloadcpython-git-631f9938b1604d4f893417ec339b9e0fa9196fb1.tar.gz
bpo-43693: Add the MAKE_CELL opcode and interleave fast locals offsets. (gh-26396)
This moves logic out of the frame initialization code and into the compiler and eval loop. Doing so simplifies the runtime code and allows us to optimize it better. https://bugs.python.org/issue43693
Diffstat (limited to 'Lib/opcode.py')
-rw-r--r--Lib/opcode.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/Lib/opcode.py b/Lib/opcode.py
index da143fe01f..4d5343179e 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -181,14 +181,16 @@ def_op('CALL_FUNCTION', 131) # #args
def_op('MAKE_FUNCTION', 132) # Flags
def_op('BUILD_SLICE', 133) # Number of items
-def_op('LOAD_CLOSURE', 135)
+def_op('MAKE_CELL', 135)
hasfree.append(135)
-def_op('LOAD_DEREF', 136)
+def_op('LOAD_CLOSURE', 136)
hasfree.append(136)
-def_op('STORE_DEREF', 137)
+def_op('LOAD_DEREF', 137)
hasfree.append(137)
-def_op('DELETE_DEREF', 138)
+def_op('STORE_DEREF', 138)
hasfree.append(138)
+def_op('DELETE_DEREF', 139)
+hasfree.append(139)
def_op('CALL_FUNCTION_KW', 141) # #args + #kwargs
def_op('CALL_FUNCTION_EX', 142) # Flags