@@ -81,11 +81,11 @@ do { \
81
81
// Dummy variables for stack effects.
82
82
static PyObject * value , * value1 , * value2 , * left , * right , * res , * sum , * prod , * sub ;
83
83
static PyObject * container , * start , * stop , * v , * lhs , * rhs ;
84
- static PyObject * list , * tuple , * dict ;
84
+ static PyObject * list , * tuple , * dict , * owner ;
85
85
static PyObject * exit_func , * lasti , * val ;
86
86
static size_t jump ;
87
87
// Dummy variables for cache effects
88
- static _Py_CODEUNIT when_to_jump_mask , invert ;
88
+ static _Py_CODEUNIT when_to_jump_mask , invert , counter ;
89
89
// Dummy opcode names for 'op' opcodes
90
90
#define _BINARY_OP_INPLACE_ADD_UNICODE_PART_1 1001
91
91
#define _BINARY_OP_INPLACE_ADD_UNICODE_PART_2 1002
@@ -1126,31 +1126,22 @@ dummy_func(
1126
1126
Py_DECREF (seq );
1127
1127
}
1128
1128
1129
- // stack effect: (__0, __1 -- )
1130
- inst (STORE_ATTR ) {
1131
- _PyAttrCache * cache = (_PyAttrCache * )next_instr ;
1132
- if (ADAPTIVE_COUNTER_IS_ZERO (cache -> counter )) {
1129
+ inst (STORE_ATTR , (counter /1 , v , owner , unused /3 -- )) {
1130
+ if (ADAPTIVE_COUNTER_IS_ZERO (counter )) {
1133
1131
assert (cframe .use_tracing == 0 );
1134
- PyObject * owner = TOP ();
1135
1132
PyObject * name = GETITEM (names , oparg );
1136
1133
next_instr -- ;
1137
1134
_Py_Specialize_StoreAttr (owner , next_instr , name );
1138
1135
DISPATCH_SAME_OPARG ();
1139
1136
}
1140
1137
STAT_INC (STORE_ATTR , deferred );
1138
+ _PyAttrCache * cache = (_PyAttrCache * )next_instr ;
1141
1139
DECREMENT_ADAPTIVE_COUNTER (cache -> counter );
1142
1140
PyObject * name = GETITEM (names , oparg );
1143
- PyObject * owner = TOP ();
1144
- PyObject * v = SECOND ();
1145
- int err ;
1146
- STACK_SHRINK (2 );
1147
- err = PyObject_SetAttr (owner , name , v );
1141
+ int err = PyObject_SetAttr (owner , name , v );
1148
1142
Py_DECREF (v );
1149
1143
Py_DECREF (owner );
1150
- if (err != 0 ) {
1151
- goto error ;
1152
- }
1153
- JUMPBY (INLINE_CACHE_ENTRIES_STORE_ATTR );
1144
+ ERROR_IF (err != 0 , error );
1154
1145
}
1155
1146
1156
1147
// stack effect: (__0 -- )
0 commit comments