aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-03-06 18:00:27 -0800
committerRichard Henderson <rth@gcc.gnu.org>1999-03-06 18:00:27 -0800
commit9a794e5054a24e53cab41cc28ffcdf263c10776d (patch)
tree7fd18861b5e0d57d9c624befe4a4bba79c8006eb /gcc
parentfc095971f11e065aad5acade29ff53de25a3b6e9 (diff)
downloadgcc-9a794e5054a24e53cab41cc28ffcdf263c10776d.zip
gcc-9a794e5054a24e53cab41cc28ffcdf263c10776d.tar.gz
gcc-9a794e5054a24e53cab41cc28ffcdf263c10776d.tar.bz2
* cse.c (canon_hash): Never reject hard regs in CCmode.
From-SVN: r25623
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cse.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b02ecc..ff62783 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sun Mar 7 01:58:47 1999 Richard Henderson <rth@cygnus.com>
+
+ * cse.c (canon_hash): Never reject hard regs in CCmode.
+
Sun Mar 7 01:15:04 PST 1999 Jeff Law (law@cygnus.com)
* version.c: Bump for snapshot.
diff --git a/gcc/cse.c b/gcc/cse.c
index 0852615..7d96908 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -2009,7 +2009,12 @@ canon_hash (x, mode)
/* On some machines, we can't record any non-fixed hard register,
because extending its life will cause reload problems. We
- consider ap, fp, and sp to be fixed for this purpose.
+ consider ap, fp, and sp to be fixed for this purpose.
+
+ We also consider CCmode registers to be fixed for this purpose;
+ failure to do so leads to failure to simplify 0<100 type of
+ conditionals.
+
On all machines, we can't record any global registers. */
if (regno < FIRST_PSEUDO_REGISTER
@@ -2019,7 +2024,8 @@ canon_hash (x, mode)
&& regno != FRAME_POINTER_REGNUM
&& regno != HARD_FRAME_POINTER_REGNUM
&& regno != ARG_POINTER_REGNUM
- && regno != STACK_POINTER_REGNUM)))
+ && regno != STACK_POINTER_REGNUM
+ && GET_MODE_CLASS (GET_MODE (x)) != MODE_CC)))
{
do_not_record = 1;
return 0;