Skip to content

Commit d59fb14

Browse files
committed
COMPARE_OP
1 parent d782064 commit d59fb14

File tree

2 files changed

+18
-28
lines changed

2 files changed

+18
-28
lines changed

Python/bytecodes.c

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2054,30 +2054,28 @@ dummy_func(
20542054
JUMPBY(INLINE_CACHE_ENTRIES_STORE_ATTR);
20552055
}
20562056

2057-
// stack effect: (__0 -- )
2058-
inst(COMPARE_OP) {
2057+
// family(compare_op) = {
2058+
// COMPARE_OP,
2059+
// COMPARE_OP_FLOAT_JUMP,
2060+
// COMPARE_OP_INT_JUMP,
2061+
// COMPARE_OP_STR_JUMP,
2062+
// };
2063+
2064+
inst(COMPARE_OP, (unused/1, left, right, unused/1 -- res)) {
20592065
_PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr;
20602066
if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) {
20612067
assert(cframe.use_tracing == 0);
2062-
PyObject *right = TOP();
2063-
PyObject *left = SECOND();
20642068
next_instr--;
20652069
_Py_Specialize_CompareOp(left, right, next_instr, oparg);
20662070
DISPATCH_SAME_OPARG();
20672071
}
20682072
STAT_INC(COMPARE_OP, deferred);
20692073
DECREMENT_ADAPTIVE_COUNTER(cache->counter);
20702074
assert(oparg <= Py_GE);
2071-
PyObject *right = POP();
2072-
PyObject *left = TOP();
2073-
PyObject *res = PyObject_RichCompare(left, right, oparg);
2074-
SET_TOP(res);
2075+
res = PyObject_RichCompare(left, right, oparg);
20752076
Py_DECREF(left);
20762077
Py_DECREF(right);
2077-
if (res == NULL) {
2078-
goto error;
2079-
}
2080-
JUMPBY(INLINE_CACHE_ENTRIES_COMPARE_OP);
2078+
ERROR_IF(res == NULL, error);
20812079
}
20822080

20832081
// stack effect: (__0 -- )
@@ -3689,9 +3687,6 @@ dummy_func(
36893687

36903688
// Future families go below this point //
36913689

3692-
family(binary_subscr) = {
3693-
BINARY_SUBSCR, BINARY_SUBSCR_DICT,
3694-
BINARY_SUBSCR_GETITEM, BINARY_SUBSCR_LIST_INT, BINARY_SUBSCR_TUPLE_INT };
36953690
family(call) = {
36963691
CALL, CALL_PY_EXACT_ARGS,
36973692
CALL_PY_WITH_DEFAULTS, CALL_BOUND_METHOD_EXACT_ARGS, CALL_BUILTIN_CLASS,
@@ -3700,9 +3695,6 @@ family(call) = {
37003695
CALL_NO_KW_LIST_APPEND, CALL_NO_KW_METHOD_DESCRIPTOR_FAST, CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS,
37013696
CALL_NO_KW_METHOD_DESCRIPTOR_O, CALL_NO_KW_STR_1, CALL_NO_KW_TUPLE_1,
37023697
CALL_NO_KW_TYPE_1 };
3703-
family(compare_op) = {
3704-
COMPARE_OP, COMPARE_OP_FLOAT_JUMP,
3705-
COMPARE_OP_INT_JUMP, COMPARE_OP_STR_JUMP };
37063698
family(for_iter) = {
37073699
FOR_ITER, FOR_ITER_LIST,
37083700
FOR_ITER_RANGE };

Python/generated_cases.c.h

Lines changed: 8 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)