aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2000-08-23 07:59:06 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2000-08-23 07:59:06 +0000
commit95d0e5f1d0700a332288d362070d299cc0d255ee (patch)
tree1294c08505b338de79848554558b174e66875576 /gcc
parentf17eb5d40feeda80aa1e7e6251ff61571958a2ac (diff)
downloadgcc-95d0e5f1d0700a332288d362070d299cc0d255ee.zip
gcc-95d0e5f1d0700a332288d362070d299cc0d255ee.tar.gz
gcc-95d0e5f1d0700a332288d362070d299cc0d255ee.tar.bz2
simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to simplify_relational_operation() unless...
* simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to simplify_relational_operation() unless both operands are of VOIDmode. * cse.c (fold_rtx): Likewise. From-SVN: r35904
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cse.c14
-rw-r--r--gcc/simplify-rtx.c7
3 files changed, 25 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cef5759..33096a3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
+
+ * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
+ simplify_relational_operation() unless both operands are of
+ VOIDmode.
+ * cse.c (fold_rtx): Likewise.
+
Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
* rtlanal.c (rtx_unstable_p): The pic register is stable
diff --git a/gcc/cse.c b/gcc/cse.c
index 1054204..7073f1e 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3858,7 +3858,19 @@ fold_rtx (x, insn)
}
}
- new = simplify_relational_operation (code, mode_arg0,
+ new = simplify_relational_operation (code,
+ (mode_arg0 != VOIDmode
+ ? mode_arg0
+ : (GET_MODE (const_arg0
+ ? const_arg0
+ : folded_arg0)
+ != VOIDmode)
+ ? GET_MODE (const_arg0
+ ? const_arg0
+ : folded_arg0)
+ : GET_MODE (const_arg1
+ ? const_arg1
+ : folded_arg1)),
const_arg0 ? const_arg0 : folded_arg0,
const_arg1 ? const_arg1 : folded_arg1);
#ifdef FLOAT_STORE_FLAG_VALUE
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index e97e7b7..701b7ba 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -1694,7 +1694,7 @@ simplify_relational_operation (code, mode, op0, op1)
if (mode == VOIDmode
&& (GET_MODE (op0) != VOIDmode
|| GET_MODE (op1) != VOIDmode))
- abort();
+ abort ();
/* If op0 is a compare, extract the comparison arguments from it. */
if (GET_CODE (op0) == COMPARE && op1 == const0_rtx)
@@ -2091,7 +2091,10 @@ simplify_rtx (x)
XEXP (x, 0), XEXP (x, 1), XEXP (x, 2));
case '<':
- return simplify_relational_operation (code, GET_MODE (XEXP (x, 0)),
+ return simplify_relational_operation (code,
+ (GET_MODE (XEXP (x, 0)) != VOIDmode
+ ? GET_MODE (XEXP (x, 0))
+ : GET_MODE (XEXP (x, 1))),
XEXP (x, 0), XEXP (x, 1));
default:
return NULL;