mirror of
https://github.com/python/cpython.git
synced 2026-04-13 23:31:02 +00:00
gh-145214: Narrow _GUARD_TOS_ANY_{SET,DICT} by using probable type (gh-145215)
This commit is contained in:
parent
ea90b032a0
commit
6908372fb8
9 changed files with 1728 additions and 1061 deletions
|
|
@ -1082,6 +1082,16 @@ dummy_func(
|
|||
EXIT_IF(!PyAnyDict_CheckExact(o));
|
||||
}
|
||||
|
||||
op(_GUARD_TOS_DICT, (tos -- tos)) {
|
||||
PyObject *o = PyStackRef_AsPyObjectBorrow(tos);
|
||||
EXIT_IF(!PyDict_CheckExact(o));
|
||||
}
|
||||
|
||||
op(_GUARD_TOS_FROZENDICT, (tos -- tos)) {
|
||||
PyObject *o = PyStackRef_AsPyObjectBorrow(tos);
|
||||
EXIT_IF(!PyFrozenDict_CheckExact(o));
|
||||
}
|
||||
|
||||
macro(BINARY_OP_SUBSCR_DICT) =
|
||||
_GUARD_NOS_ANY_DICT + unused/5 + _BINARY_OP_SUBSCR_DICT + POP_TOP + POP_TOP;
|
||||
|
||||
|
|
@ -2931,6 +2941,16 @@ dummy_func(
|
|||
DEOPT_IF(!PyAnySet_CheckExact(o));
|
||||
}
|
||||
|
||||
op(_GUARD_TOS_SET, (tos -- tos)) {
|
||||
PyObject *o = PyStackRef_AsPyObjectBorrow(tos);
|
||||
DEOPT_IF(!PySet_CheckExact(o));
|
||||
}
|
||||
|
||||
op(_GUARD_TOS_FROZENSET, (tos -- tos)) {
|
||||
PyObject *o = PyStackRef_AsPyObjectBorrow(tos);
|
||||
DEOPT_IF(!PyFrozenSet_CheckExact(o));
|
||||
}
|
||||
|
||||
macro(CONTAINS_OP_SET) = _GUARD_TOS_ANY_SET + unused/1 + _CONTAINS_OP_SET + POP_TOP + POP_TOP;
|
||||
|
||||
op(_CONTAINS_OP_SET, (left, right -- b, l, r)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue