Commit 0766f239 by Richard Stallman

(do_jump): Use do_jump_by_parts_equality for complex compares.

From-SVN: r5938
parent 22128daf
...@@ -8294,10 +8294,12 @@ do_jump (exp, if_false_label, if_true_label) ...@@ -8294,10 +8294,12 @@ do_jump (exp, if_false_label, if_true_label)
case EQ_EXPR: case EQ_EXPR:
if (integer_zerop (TREE_OPERAND (exp, 1))) if (integer_zerop (TREE_OPERAND (exp, 1)))
do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label); do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label);
else if ((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) else if (((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))
== MODE_INT) == MODE_INT)
&& &&
!can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))) !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))))
|| GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_FLOAT
|| GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_INT)
do_jump_by_parts_equality (exp, if_false_label, if_true_label); do_jump_by_parts_equality (exp, if_false_label, if_true_label);
else else
comparison = compare (exp, EQ, EQ); comparison = compare (exp, EQ, EQ);
...@@ -8306,10 +8308,12 @@ do_jump (exp, if_false_label, if_true_label) ...@@ -8306,10 +8308,12 @@ do_jump (exp, if_false_label, if_true_label)
case NE_EXPR: case NE_EXPR:
if (integer_zerop (TREE_OPERAND (exp, 1))) if (integer_zerop (TREE_OPERAND (exp, 1)))
do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label); do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
else if ((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) else if (((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))
== MODE_INT) == MODE_INT)
&& &&
!can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))) !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))))
|| GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_FLOAT
|| GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_INT)
do_jump_by_parts_equality (exp, if_true_label, if_false_label); do_jump_by_parts_equality (exp, if_true_label, if_false_label);
else else
comparison = compare (exp, NE, NE); comparison = compare (exp, NE, NE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment