aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@cygnus.co.uk>1999-11-11 12:26:29 +0000
committerBernd Schmidt <crux@gcc.gnu.org>1999-11-11 12:26:29 +0000
commit665853dc7a0c101f40e112eec3a7122dc7add26a (patch)
tree20f9b339a0aa6b8cdb871cda81fb5ba47ae5706a /gcc
parentd7627b79c59c99bd516f67a519eaa773bbff1817 (diff)
downloadgcc-665853dc7a0c101f40e112eec3a7122dc7add26a.zip
gcc-665853dc7a0c101f40e112eec3a7122dc7add26a.tar.gz
gcc-665853dc7a0c101f40e112eec3a7122dc7add26a.tar.bz2
Avoid passing things like NEG into expand_and/expand_binop
From-SVN: r30487
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10f4716..1026226 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Nov 11 13:23:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
+
+ * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
+ operand as argument to expand_and or expand_binop.
+
Thu Nov 11 02:21:16 1999 Rodney Brown <RodneyBrown@pmsc.com>
* xcoffout.c (xcoffout_source_file): Change ggc_add_root to
diff --git a/gcc/jump.c b/gcc/jump.c
index 4c8e977..2020840 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1453,6 +1453,9 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only)
5) if (...) x = b; if jumps are even more expensive. */
if (GET_MODE_CLASS (GET_MODE (temp1)) == MODE_INT
+ /* We will be passing this as operand into expand_and. No
+ good if it's not valid as an operand. */
+ && general_operand (temp2, GET_MODE (temp2))
&& ((GET_CODE (temp3) == CONST_INT)
/* Make the latter case look like
x = x; if (...) x = 0; */