summaryrefslogtreecommitdiffstats
path: root/Python/bytecodes.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2023-07-17 19:12:33 (GMT)
committerGitHub <noreply@github.com>2023-07-17 19:12:33 (GMT)
commit8e9a1a032233f06ce0f1acdf5f983d614c8745a5 (patch)
treed9a31c1c33b6b363d12f5e258a169835dbf29cd6 /Python/bytecodes.c
parent7e96370a946a2ca0f2f25af4ce5b3b59f020721b (diff)
downloadcpython-8e9a1a032233f06ce0f1acdf5f983d614c8745a5.zip
cpython-8e9a1a032233f06ce0f1acdf5f983d614c8745a5.tar.gz
cpython-8e9a1a032233f06ce0f1acdf5f983d614c8745a5.tar.bz2
gh-106603: Make uop struct a triple (opcode, oparg, operand) (#106794)
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r--Python/bytecodes.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c
index 652372c..19fb138 100644
--- a/Python/bytecodes.c
+++ b/Python/bytecodes.c
@@ -645,18 +645,16 @@ dummy_func(
STORE_SUBSCR_LIST_INT,
};
- inst(STORE_SUBSCR, (counter/1, v, container, sub -- )) {
+ inst(STORE_SUBSCR, (unused/1, v, container, sub -- )) {
#if ENABLE_SPECIALIZATION
- if (ADAPTIVE_COUNTER_IS_ZERO(counter)) {
+ _PyStoreSubscrCache *cache = (_PyStoreSubscrCache *)next_instr;
+ if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) {
next_instr--;
_Py_Specialize_StoreSubscr(container, sub, next_instr);
DISPATCH_SAME_OPARG();
}
STAT_INC(STORE_SUBSCR, deferred);
- _PyStoreSubscrCache *cache = (_PyStoreSubscrCache *)next_instr;
DECREMENT_ADAPTIVE_COUNTER(cache->counter);
- #else
- (void)counter; // Unused.
#endif /* ENABLE_SPECIALIZATION */
/* container[sub] = v */
int err = PyObject_SetItem(container, sub, v);
@@ -1198,19 +1196,17 @@ dummy_func(
STORE_ATTR_WITH_HINT,
};
- inst(STORE_ATTR, (counter/1, unused/3, v, owner --)) {
+ inst(STORE_ATTR, (unused/1, unused/3, v, owner --)) {
#if ENABLE_SPECIALIZATION
- if (ADAPTIVE_COUNTER_IS_ZERO(counter)) {
+ _PyAttrCache *cache = (_PyAttrCache *)next_instr;
+ if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) {
PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
next_instr--;
_Py_Specialize_StoreAttr(owner, next_instr, name);
DISPATCH_SAME_OPARG();
}
STAT_INC(STORE_ATTR, deferred);
- _PyAttrCache *cache = (_PyAttrCache *)next_instr;
DECREMENT_ADAPTIVE_COUNTER(cache->counter);
- #else
- (void)counter; // Unused.
#endif /* ENABLE_SPECIALIZATION */
PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
int err = PyObject_SetAttr(owner, name, v);