aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/opcode.py
diff options
context:
space:
mode:
authorKen Jin <kenjin4096@gmail.com>2022-06-14 18:36:22 +0800
committerGitHub <noreply@github.com>2022-06-14 11:36:22 +0100
commitb083450f8896bb4a29ac522e4474d91c056b9f32 (patch)
tree74d923609496e622ec1e99e9381ee3f6c42b829b /Lib/opcode.py
parentcd543d0bc9aacca1dee02dea7ff4aec8966dcaf8 (diff)
downloadcpython-b083450f8896bb4a29ac522e4474d91c056b9f32.tar.gz
cpython-b083450f8896bb4a29ac522e4474d91c056b9f32.zip
GH-93429: Merge `LOAD_METHOD` back into `LOAD_ATTR` (GH-93430)
Diffstat (limited to 'Lib/opcode.py')
-rw-r--r--Lib/opcode.py27
1 files changed, 9 insertions, 18 deletions
diff --git a/Lib/opcode.py b/Lib/opcode.py
index 8ae997e4b6b..912b280c49b 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -184,8 +184,6 @@ def_op('FORMAT_VALUE', 155)
def_op('BUILD_CONST_KEY_MAP', 156)
def_op('BUILD_STRING', 157)
-name_op('LOAD_METHOD', 160)
-
def_op('LIST_EXTEND', 162)
def_op('SET_UPDATE', 163)
def_op('DICT_MERGE', 164)
@@ -285,10 +283,17 @@ _specializations = {
],
"LOAD_ATTR": [
"LOAD_ATTR_ADAPTIVE",
+ # These potentially push [NULL, bound method] onto the stack.
+ "LOAD_ATTR_CLASS",
"LOAD_ATTR_INSTANCE_VALUE",
"LOAD_ATTR_MODULE",
"LOAD_ATTR_SLOT",
"LOAD_ATTR_WITH_HINT",
+ # These will always push [unbound method, self] onto the stack.
+ "LOAD_ATTR_METHOD_LAZY_DICT",
+ "LOAD_ATTR_METHOD_NO_DICT",
+ "LOAD_ATTR_METHOD_WITH_DICT",
+ "LOAD_ATTR_METHOD_WITH_VALUES",
],
"LOAD_CONST": [
"LOAD_CONST__LOAD_FAST",
@@ -302,15 +307,6 @@ _specializations = {
"LOAD_GLOBAL_BUILTIN",
"LOAD_GLOBAL_MODULE",
],
- "LOAD_METHOD": [
- "LOAD_METHOD_ADAPTIVE",
- "LOAD_METHOD_CLASS",
- "LOAD_METHOD_LAZY_DICT",
- "LOAD_METHOD_MODULE",
- "LOAD_METHOD_NO_DICT",
- "LOAD_METHOD_WITH_DICT",
- "LOAD_METHOD_WITH_VALUES",
- ],
"RESUME": [
"RESUME_QUICK",
],
@@ -373,19 +369,14 @@ _cache_format = {
"LOAD_ATTR": {
"counter": 1,
"version": 2,
- "index": 1,
+ "keys_version": 2,
+ "descr": 4,
},
"STORE_ATTR": {
"counter": 1,
"version": 2,
"index": 1,
},
- "LOAD_METHOD": {
- "counter": 1,
- "type_version": 2,
- "keys_version": 2,
- "descr": 4,
- },
"CALL": {
"counter": 1,
"func_version": 2,