aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-10-30 06:03:36 +0000
committerRichard Stallman <rms@gnu.org>1993-10-30 06:03:36 +0000
commit0766f2391794b8999026c8b82ce74043fb018e97 (patch)
treecd6159ed4dc610860981d4e3f185b0b50988463c /gcc
parent22128dafd5382d8c8df73a202f3274a7f6a27e35 (diff)
downloadgcc-0766f2391794b8999026c8b82ce74043fb018e97.zip
gcc-0766f2391794b8999026c8b82ce74043fb018e97.tar.gz
gcc-0766f2391794b8999026c8b82ce74043fb018e97.tar.bz2
(do_jump): Use do_jump_by_parts_equality for complex compares.
From-SVN: r5938
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index d56bc0b..0b1eb55 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8294,10 +8294,12 @@ do_jump (exp, if_false_label, if_true_label)
case EQ_EXPR:
if (integer_zerop (TREE_OPERAND (exp, 1)))
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))))
- == MODE_INT)
- &&
- !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))))
+ else if (((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))
+ == MODE_INT)
+ &&
+ !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);
else
comparison = compare (exp, EQ, EQ);
@@ -8306,10 +8308,12 @@ do_jump (exp, if_false_label, if_true_label)
case NE_EXPR:
if (integer_zerop (TREE_OPERAND (exp, 1)))
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))))
- == MODE_INT)
- &&
- !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))))
+ else if (((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))
+ == MODE_INT)
+ &&
+ !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);
else
comparison = compare (exp, NE, NE);