PyObject *value;
PyObject *res;
value = stack_pointer[-1];
- uint32_t version = (uint32_t)next_uop[-1].operand;
+ uint32_t version = (uint32_t)operand;
// This one is a bit weird, because we expect *some* failures:
assert(version);
DEOPT_IF(Py_TYPE(value)->tp_version_tag != version, TO_BOOL);
}
case _GUARD_GLOBALS_VERSION: {
- uint16_t version = (uint16_t)next_uop[-1].operand;
+ uint16_t version = (uint16_t)operand;
PyDictObject *dict = (PyDictObject *)GLOBALS();
DEOPT_IF(!PyDict_CheckExact(dict), _GUARD_GLOBALS_VERSION);
DEOPT_IF(dict->ma_keys->dk_version != version, _GUARD_GLOBALS_VERSION);
}
case _GUARD_BUILTINS_VERSION: {
- uint16_t version = (uint16_t)next_uop[-1].operand;
+ uint16_t version = (uint16_t)operand;
PyDictObject *dict = (PyDictObject *)BUILTINS();
DEOPT_IF(!PyDict_CheckExact(dict), _GUARD_BUILTINS_VERSION);
DEOPT_IF(dict->ma_keys->dk_version != version, _GUARD_BUILTINS_VERSION);
case _LOAD_GLOBAL_MODULE: {
PyObject *res;
PyObject *null = NULL;
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
PyDictObject *dict = (PyDictObject *)GLOBALS();
PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(dict->ma_keys);
res = entries[index].me_value;
case _LOAD_GLOBAL_BUILTINS: {
PyObject *res;
PyObject *null = NULL;
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
PyDictObject *bdict = (PyDictObject *)BUILTINS();
PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(bdict->ma_keys);
res = entries[index].me_value;
case _GUARD_TYPE_VERSION: {
PyObject *owner;
owner = stack_pointer[-1];
- uint32_t type_version = (uint32_t)next_uop[-1].operand;
+ uint32_t type_version = (uint32_t)operand;
PyTypeObject *tp = Py_TYPE(owner);
assert(type_version != 0);
DEOPT_IF(tp->tp_version_tag != type_version, _GUARD_TYPE_VERSION);
PyObject *attr;
PyObject *null = NULL;
owner = stack_pointer[-1];
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner);
attr = _PyDictOrValues_GetValues(dorv)->values[index];
DEOPT_IF(attr == NULL, _LOAD_ATTR_INSTANCE_VALUE);
case _CHECK_ATTR_MODULE: {
PyObject *owner;
owner = stack_pointer[-1];
- uint32_t type_version = (uint32_t)next_uop[-1].operand;
+ uint32_t type_version = (uint32_t)operand;
DEOPT_IF(!PyModule_CheckExact(owner), _CHECK_ATTR_MODULE);
PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict;
assert(dict != NULL);
PyObject *attr;
PyObject *null = NULL;
owner = stack_pointer[-1];
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict;
assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE);
assert(index < dict->ma_keys->dk_nentries);
PyObject *attr;
PyObject *null = NULL;
owner = stack_pointer[-1];
- uint16_t hint = (uint16_t)next_uop[-1].operand;
+ uint16_t hint = (uint16_t)operand;
PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner);
PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv);
DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, _LOAD_ATTR_WITH_HINT);
PyObject *attr;
PyObject *null = NULL;
owner = stack_pointer[-1];
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
char *addr = (char *)owner + index;
attr = *(PyObject **)addr;
DEOPT_IF(attr == NULL, _LOAD_ATTR_SLOT);
case _CHECK_ATTR_CLASS: {
PyObject *owner;
owner = stack_pointer[-1];
- uint32_t type_version = (uint32_t)next_uop[-1].operand;
+ uint32_t type_version = (uint32_t)operand;
DEOPT_IF(!PyType_Check(owner), _CHECK_ATTR_CLASS);
assert(type_version != 0);
DEOPT_IF(((PyTypeObject *)owner)->tp_version_tag != type_version, _CHECK_ATTR_CLASS);
PyObject *attr;
PyObject *null = NULL;
owner = stack_pointer[-1];
- PyObject *descr = (PyObject *)next_uop[-1].operand;
+ PyObject *descr = (PyObject *)operand;
STAT_INC(LOAD_ATTR, hit);
assert(descr != NULL);
attr = Py_NewRef(descr);
PyObject *value;
owner = stack_pointer[-1];
value = stack_pointer[-2];
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner);
STAT_INC(STORE_ATTR, hit);
PyDictValues *values = _PyDictOrValues_GetValues(dorv);
PyObject *value;
owner = stack_pointer[-1];
value = stack_pointer[-2];
- uint16_t index = (uint16_t)next_uop[-1].operand;
+ uint16_t index = (uint16_t)operand;
char *addr = (char *)owner + index;
STAT_INC(STORE_ATTR, hit);
PyObject *old_value = *(PyObject **)addr;
case _GUARD_KEYS_VERSION: {
PyObject *owner;
owner = stack_pointer[-1];
- uint32_t keys_version = (uint32_t)next_uop[-1].operand;
+ uint32_t keys_version = (uint32_t)operand;
PyTypeObject *owner_cls = Py_TYPE(owner);
PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
DEOPT_IF(owner_heap_type->ht_cached_keys->dk_version != keys_version, _GUARD_KEYS_VERSION);
PyObject *attr;
PyObject *self;
owner = stack_pointer[-1];
- PyObject *descr = (PyObject *)next_uop[-1].operand;
+ PyObject *descr = (PyObject *)operand;
assert(oparg & 1);
/* Cached method object */
STAT_INC(LOAD_ATTR, hit);
PyObject *attr;
PyObject *self;
owner = stack_pointer[-1];
- PyObject *descr = (PyObject *)next_uop[-1].operand;
+ PyObject *descr = (PyObject *)operand;
assert(oparg & 1);
assert(Py_TYPE(owner)->tp_dictoffset == 0);
STAT_INC(LOAD_ATTR, hit);
PyObject *owner;
PyObject *attr;
owner = stack_pointer[-1];
- PyObject *descr = (PyObject *)next_uop[-1].operand;
+ PyObject *descr = (PyObject *)operand;
assert((oparg & 1) == 0);
STAT_INC(LOAD_ATTR, hit);
assert(descr != NULL);
PyObject *owner;
PyObject *attr;
owner = stack_pointer[-1];
- PyObject *descr = (PyObject *)next_uop[-1].operand;
+ PyObject *descr = (PyObject *)operand;
assert((oparg & 1) == 0);
assert(Py_TYPE(owner)->tp_dictoffset == 0);
STAT_INC(LOAD_ATTR, hit);
PyObject *attr;
PyObject *self;
owner = stack_pointer[-1];
- PyObject *descr = (PyObject *)next_uop[-1].operand;
+ PyObject *descr = (PyObject *)operand;
assert(oparg & 1);
STAT_INC(LOAD_ATTR, hit);
assert(descr != NULL);
PyObject *callable;
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
- uint32_t func_version = (uint32_t)next_uop[-1].operand;
+ uint32_t func_version = (uint32_t)operand;
DEOPT_IF(!PyFunction_Check(callable), _CHECK_FUNCTION_EXACT_ARGS);
PyFunctionObject *func = (PyFunctionObject *)callable;
DEOPT_IF(func->func_version != func_version, _CHECK_FUNCTION_EXACT_ARGS);