diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e3d0548452..312bfdde687 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sun Feb 21 13:15:40 1999 Richard Henderson + + * regmove.c (discover_flags_reg): Remove cc0 code. + (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if + a potential flags register was identified. + Sat Feb 20 16:16:07 1998 Franz Sirl * rs6000.md (scc plus ltu): Fix typo in last change. diff --git a/gcc/regmove.c b/gcc/regmove.c index 04fcb5da5a4..1f5940a7fef 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -193,12 +193,7 @@ discover_flags_reg () return pc_rtx; found = (GET_CODE (tmp) == REG && REGNO (tmp) < FIRST_PSEUDO_REGISTER); -#ifdef HAVE_cc0 - /* If we're cc0, and we found a potential flags reg, bail. */ - return (found ? pc_rtx : cc0_rtx); -#else return (found ? tmp : NULL_RTX); -#endif } return pc_rtx; @@ -228,6 +223,14 @@ mark_flags_life_zones (flags) int flags_nregs; int block; +#ifdef HAVE_cc0 + /* If we found a flags register on a cc0 host, bail. */ + if (flags == NULL_RTX) + flags = cc0_rtx; + else if (flags != cc0_rtx) + flags = pc_rtx; +#endif + /* Simple cases first: if no flags, clear all modes. If confusing, mark the entire function as being in a flags shadow. */ if (flags == NULL_RTX || flags == pc_rtx)