This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
ia64 prologue/epilogue rewrite 2/N
- To: gcc-patches at gcc dot gnu dot org
- Subject: ia64 prologue/epilogue rewrite 2/N
- From: Richard Henderson <rth at cygnus dot com>
- Date: Tue, 8 Aug 2000 01:56:33 -0700
The predicate registers (one bit entities, recall) were
being marked as having a "natural" mode of word_mode.
Distinctly confusing, and broke the instant I wanted to
speak of the whole bank of 64 bits as a DImode quantity.
r~
* regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
Index: regclass.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/regclass.c,v
retrieving revision 1.103
diff -c -p -d -r1.103 regclass.c
*** regclass.c 2000/07/28 17:46:16 1.103
--- regclass.c 2000/08/08 08:51:05
*************** choose_hard_reg_mode (regno, nregs)
*** 618,626 ****
if (found_mode != VOIDmode)
return found_mode;
! if (HARD_REGNO_NREGS (regno, CCmode) == nregs
! && HARD_REGNO_MODE_OK (regno, CCmode))
! return CCmode;
/* We can't find a mode valid for this register. */
return VOIDmode;
--- 618,628 ----
if (found_mode != VOIDmode)
return found_mode;
! /* Iterate over all of the CCmodes. */
! for (mode = CCmode; mode < NUM_MACHINE_MODES; ++mode)
! if (HARD_REGNO_NREGS (regno, mode) == nregs
! && HARD_REGNO_MODE_OK (regno, mode))
! return mode;
/* We can't find a mode valid for this register. */
return VOIDmode;