PyObject *container = SECOND();
next_instr--;
if (_Py_Specialize_BinarySubscr(container, sub, next_instr) < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
PyObject *container = SECOND();
next_instr--;
if (_Py_Specialize_StoreSubscr(container, sub, next_instr) < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
PyObject *name = GETITEM(names, oparg>>1);
next_instr--;
if (_Py_Specialize_LoadGlobal(GLOBALS(), BUILTINS(), next_instr, name) < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
PyObject *name = GETITEM(names, oparg);
next_instr--;
if (_Py_Specialize_LoadAttr(owner, next_instr, name) < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
PyObject *name = GETITEM(names, oparg);
next_instr--;
if (_Py_Specialize_StoreAttr(owner, next_instr, name) < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
PyObject *name = GETITEM(names, oparg);
next_instr--;
if (_Py_Specialize_LoadMethod(owner, next_instr, name) < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
int err = _Py_Specialize_Precall(callable, next_instr, nargs,
call_shape.kwnames, oparg);
if (err < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
int err = _Py_Specialize_Call(callable, next_instr, nargs,
call_shape.kwnames);
if (err < 0) {
+ next_instr++;
goto error;
}
DISPATCH_SAME_OPARG();
PyObject *list = SECOND();
DEOPT_IF(!PyList_Check(list), PRECALL);
STAT_INC(PRECALL, hit);
- // PRECALL + CALL + POP_TOP
- JUMPBY(INLINE_CACHE_ENTRIES_PRECALL + 1 + INLINE_CACHE_ENTRIES_CALL + 1);
- assert(_Py_OPCODE(next_instr[-1]) == POP_TOP);
PyObject *arg = POP();
if (_PyList_AppendTakeRef((PyListObject *)list, arg) < 0) {
goto error;
STACK_SHRINK(2);
Py_DECREF(list);
Py_DECREF(callable);
+ // PRECALL + CALL + POP_TOP
+ JUMPBY(INLINE_CACHE_ENTRIES_PRECALL + 1 + INLINE_CACHE_ENTRIES_CALL + 1);
+ assert(_Py_OPCODE(next_instr[-1]) == POP_TOP);
DISPATCH();
}