This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ia64 prologue/epilogue rewrite 2/N


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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]