From 9a794e5054a24e53cab41cc28ffcdf263c10776d Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 6 Mar 1999 18:00:27 -0800 Subject: [PATCH] * cse.c (canon_hash): Never reject hard regs in CCmode. From-SVN: r25623 --- gcc/ChangeLog | 4 ++++ gcc/cse.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b02ecc6be0..ff6278307d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sun Mar 7 01:58:47 1999 Richard Henderson + + * 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 0852615d031..7d9690899e5 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; -- 2.30.2