OSDN Git Service

* flow.c (clear_log_links): Use free_INSN_LIST_list, not
[pf3gnuchains/gcc-fork.git] / gcc / reload.c
index b069d18..2e8c93f 100644 (file)
@@ -381,13 +381,16 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
          insn_class
            = (insn_letter == 'r' ? GENERAL_REGS
               : REG_CLASS_FROM_LETTER ((unsigned char) insn_letter));
-       }
 
-      if (insn_class == NO_REGS
-         || (in_p
+          if (insn_class == NO_REGS)
+           abort ();
+         if (in_p
              && insn_data[(int) icode].operand[!in_p].constraint[0] != '=')
-         /* The scratch register's constraint must start with "=&".  */
-         || insn_data[(int) icode].operand[2].constraint[0] != '='
+           abort ();
+       }
+
+      /* The scratch register's constraint must start with "=&".  */
+      if (insn_data[(int) icode].operand[2].constraint[0] != '='
          || insn_data[(int) icode].operand[2].constraint[1] != '&')
        abort ();
 
@@ -854,7 +857,7 @@ push_reload (in, out, inloc, outloc, class,
      int opnum;
      enum reload_type type;
 {
-  register int i;
+  int i;
   int dont_share = 0;
   int dont_remove_subreg = 0;
   rtx *in_subreg_loc = 0, *out_subreg_loc = 0;
@@ -876,7 +879,7 @@ push_reload (in, out, inloc, outloc, class,
      Often this is done earlier, but not always in find_reloads_address.  */
   if (in != 0 && GET_CODE (in) == REG)
     {
-      register int regno = REGNO (in);
+      int regno = REGNO (in);
 
       if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0
          && reg_equiv_constant[regno] != 0)
@@ -888,7 +891,7 @@ push_reload (in, out, inloc, outloc, class,
      (in the case of a parameter).  */
   if (out != 0 && GET_CODE (out) == REG)
     {
-      register int regno = REGNO (out);
+      int regno = REGNO (out);
 
       if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0
          && reg_equiv_constant[regno] != 0)
@@ -937,13 +940,13 @@ push_reload (in, out, inloc, outloc, class,
 
      Finally, reload the inner expression if it is a register that is in
      the class whose registers cannot be referenced in a different size
-     and M1 is not the same size as M2.  If SUBREG_BYTE is nonzero, we
+     and M1 is not the same size as M2.  If subreg_lowpart_p is false, we
      cannot reload just the inside since we might end up with the wrong
      register class.  But if it is inside a STRICT_LOW_PART, we have
      no choice, so we hope we do get the right register class there.  */
 
   if (in != 0 && GET_CODE (in) == SUBREG
-      && (SUBREG_BYTE (in) == 0 || strict_low)
+      && (subreg_lowpart_p (in) || strict_low)
 #ifdef CLASS_CANNOT_CHANGE_MODE
       && (class != CLASS_CANNOT_CHANGE_MODE
          || ! CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SUBREG_REG (in)), inmode))
@@ -977,7 +980,7 @@ push_reload (in, out, inloc, outloc, class,
              && REGNO (SUBREG_REG (in)) < FIRST_PSEUDO_REGISTER
              /* The case where out is nonzero
                 is handled differently in the following statement.  */
-             && (out == 0 || SUBREG_BYTE (in) == 0)
+             && (out == 0 || subreg_lowpart_p (in))
              && ((GET_MODE_SIZE (inmode) <= UNITS_PER_WORD
                   && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (in)))
                       > UNITS_PER_WORD)
@@ -1056,7 +1059,7 @@ push_reload (in, out, inloc, outloc, class,
      (except in the case of STRICT_LOW_PART,
      and in that case the constraint should label it input-output.)  */
   if (out != 0 && GET_CODE (out) == SUBREG
-      && (SUBREG_BYTE (out) == 0 || strict_low)
+      && (subreg_lowpart_p (out) || strict_low)
 #ifdef CLASS_CANNOT_CHANGE_MODE
       && (class != CLASS_CANNOT_CHANGE_MODE
          || ! CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SUBREG_REG (out)),
@@ -1399,7 +1402,7 @@ push_reload (in, out, inloc, outloc, class,
     {
       if (inloc != 0)
        {
-         register struct replacement *r = &replacements[n_replacements++];
+         struct replacement *r = &replacements[n_replacements++];
          r->what = i;
          r->subreg_loc = in_subreg_loc;
          r->where = inloc;
@@ -1407,7 +1410,7 @@ push_reload (in, out, inloc, outloc, class,
        }
       if (outloc != 0 && outloc != inloc)
        {
-         register struct replacement *r = &replacements[n_replacements++];
+         struct replacement *r = &replacements[n_replacements++];
          r->what = i;
          r->where = outloc;
          r->subreg_loc = out_subreg_loc;
@@ -1534,7 +1537,7 @@ push_replacement (loc, reloadnum, mode)
 {
   if (replace_reloads)
     {
-      register struct replacement *r = &replacements[n_replacements++];
+      struct replacement *r = &replacements[n_replacements++];
       r->what = reloadnum;
       r->where = loc;
       r->subreg_loc = 0;
@@ -1975,7 +1978,7 @@ hard_reg_set_here_p (beg_regno, end_regno, x)
 {
   if (GET_CODE (x) == SET || GET_CODE (x) == CLOBBER)
     {
-      register rtx op0 = SET_DEST (x);
+      rtx op0 = SET_DEST (x);
 
       while (GET_CODE (op0) == SUBREG)
        op0 = SUBREG_REG (op0);
@@ -1991,7 +1994,7 @@ hard_reg_set_here_p (beg_regno, end_regno, x)
     }
   else if (GET_CODE (x) == PARALLEL)
     {
-      register int i = XVECLEN (x, 0) - 1;
+      int i = XVECLEN (x, 0) - 1;
 
       for (; i >= 0; i--)
        if (hard_reg_set_here_p (beg_regno, end_regno, XVECEXP (x, 0, i)))
@@ -2008,7 +2011,7 @@ hard_reg_set_here_p (beg_regno, end_regno, x)
 int
 strict_memory_address_p (mode, addr)
      enum machine_mode mode ATTRIBUTE_UNUSED;
-     register rtx addr;
+     rtx addr;
 {
   GO_IF_LEGITIMATE_ADDRESS (mode, addr, win);
   return 0;
@@ -2034,11 +2037,11 @@ strict_memory_address_p (mode, addr)
 
 int
 operands_match_p (x, y)
-     register rtx x, y;
+     rtx x, y;
 {
-  register int i;
-  register RTX_CODE code = GET_CODE (x);
-  register const char *fmt;
+  int i;
+  RTX_CODE code = GET_CODE (x);
+  const char *fmt;
   int success_2;
 
   if (x == y)
@@ -2047,7 +2050,7 @@ operands_match_p (x, y)
       && (GET_CODE (y) == REG || (GET_CODE (y) == SUBREG
                                  && GET_CODE (SUBREG_REG (y)) == REG)))
     {
-      register int j;
+      int j;
 
       if (code == SUBREG)
        {
@@ -2407,8 +2410,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
      int live_known;
      short *reload_reg_p;
 {
-  register int insn_code_number;
-  register int i, j;
+  int insn_code_number;
+  int i, j;
   int noperands;
   /* These start out as the constraints for the insn
      and they are chewed up as we consider alternatives.  */
@@ -2521,8 +2524,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
 
   for (i = 0; i < noperands; i++)
     {
-      register char *p;
-      register int c;
+      char *p;
+      int c;
 
       substed_operand[i] = recog_data.operand[i];
       p = constraints[i];
@@ -2546,9 +2549,10 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
 
              commutative = i;
            }
-         else if (c >= '0' && c <= '9')
+         else if (ISDIGIT (c))
            {
-             c -= '0';
+             c = strtoul (p - 1, &p, 10);
+
              operands_match[c][i]
                = operands_match_p (recog_data.operand[c],
                                    recog_data.operand[i]);
@@ -2593,7 +2597,7 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
 
   for (i = 0; i < noperands; i++)
     {
-      register RTX_CODE code = GET_CODE (recog_data.operand[i]);
+      RTX_CODE code = GET_CODE (recog_data.operand[i]);
 
       address_reloaded[i] = 0;
       operand_type[i] = (modified[i] == RELOAD_READ ? RELOAD_FOR_INPUT
@@ -2683,8 +2687,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
             When we find a pseudo always equivalent to a constant,
             we replace it by the constant.  We must be sure, however,
             that we don't try to replace it in the insn in which it
-            is being set.   */
-         register int regno = REGNO (recog_data.operand[i]);
+            is being set.  */
+         int regno = REGNO (recog_data.operand[i]);
          if (reg_equiv_constant[regno] != 0
              && (set == 0 || &SET_DEST (set) != recog_data.operand_loc[i]))
            {
@@ -2771,15 +2775,15 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
 
       for (i = 0; i < noperands; i++)
        {
-         register char *p = constraints[i];
-         register int win = 0;
+         char *p = constraints[i];
+         int win = 0;
          int did_match = 0;
          /* 0 => this operand can be reloaded somehow for this alternative.  */
          int badop = 1;
          /* 0 => this operand can be reloaded if the alternative allows regs.  */
          int winreg = 0;
          int c;
-         register rtx operand = recog_data.operand[i];
+         rtx operand = recog_data.operand[i];
          int offset = 0;
          /* Nonzero means this is a MEM that must be reloaded into a reg
             regardless of what the constraint says.  */
@@ -2936,8 +2940,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
 
              case '0':  case '1':  case '2':  case '3':  case '4':
              case '5':  case '6':  case '7':  case '8':  case '9':
+               c = strtoul (p - 1, &p, 10);
 
-               c -= '0';
                this_alternative_matches[i] = c;
                /* We are supposed to match a previous operand.
                   If we do, we win if that one did.
@@ -3491,8 +3495,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
       swapped = !swapped;
       if (swapped)
        {
-         register enum reg_class tclass;
-         register int t;
+         enum reg_class tclass;
+         int t;
 
          recog_data.operand[commutative] = substed_operand[commutative + 1];
          recog_data.operand[commutative + 1] = substed_operand[commutative];
@@ -3561,7 +3565,7 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
 
   if (goal_alternative_swapped)
     {
-      register rtx tem;
+      rtx tem;
 
       tem = substed_operand[commutative];
       substed_operand[commutative] = substed_operand[commutative + 1];
@@ -3813,7 +3817,11 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
            if (GET_CODE (operand) == REG)
              {
                if (modified[i] != RELOAD_WRITE)
-                 emit_insn_before (gen_rtx_USE (VOIDmode, operand), insn);
+                 /* We mark the USE with QImode so that we recognize
+                    it as one that can be safely deleted at the end
+                    of reload.  */
+                 PUT_MODE (emit_insn_before (gen_rtx_USE (VOIDmode, operand),
+                                             insn), QImode);
                if (modified[i] != RELOAD_READ)
                  emit_insn_after (gen_rtx_CLOBBER (VOIDmode, operand), insn);
              }
@@ -4222,7 +4230,7 @@ alternative_allows_memconst (constraint, altnum)
      const char *constraint;
      int altnum;
 {
-  register int c;
+  int c;
   /* Skip alternatives before the one requested.  */
   while (altnum > 0)
     {
@@ -4270,16 +4278,16 @@ find_reloads_toplev (x, opnum, type, ind_levels, is_set_dest, insn,
      rtx insn;
      int *address_reloaded;
 {
-  register RTX_CODE code = GET_CODE (x);
+  RTX_CODE code = GET_CODE (x);
 
-  register const char *fmt = GET_RTX_FORMAT (code);
-  register int i;
+  const char *fmt = GET_RTX_FORMAT (code);
+  int i;
   int copied;
 
   if (code == REG)
     {
       /* This code is duplicated for speed in find_reloads.  */
-      register int regno = REGNO (x);
+      int regno = REGNO (x);
       if (reg_equiv_constant[regno] != 0 && !is_set_dest)
        x = reg_equiv_constant[regno];
 #if 0
@@ -4299,7 +4307,11 @@ find_reloads_toplev (x, opnum, type, ind_levels, is_set_dest, insn,
                 this substitution.  We have to emit a USE of the pseudo so
                 that delete_output_reload can see it.  */
              if (replace_reloads && recog_data.operand[opnum] != x)
-               emit_insn_before (gen_rtx_USE (VOIDmode, x), insn);
+               /* We mark the USE with QImode so that we recognize it
+                  as one that can be safely deleted at the end of
+                  reload.  */
+               PUT_MODE (emit_insn_before (gen_rtx_USE (VOIDmode, x), insn),
+                         QImode);
              x = mem;
              i = find_reloads_address (GET_MODE (x), &x, XEXP (x, 0), &XEXP (x, 0),
                                        opnum, type, ind_levels, insn);
@@ -4332,7 +4344,7 @@ find_reloads_toplev (x, opnum, type, ind_levels, is_set_dest, insn,
         the register (this should never happen because one of the cases
         above should handle it).  */
 
-      register int regno = REGNO (SUBREG_REG (x));
+      int regno = REGNO (SUBREG_REG (x));
       rtx tem;
 
       if (subreg_lowpart_p (x)
@@ -4503,7 +4515,7 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn)
      int ind_levels;
      rtx insn;
 {
-  register int regno;
+  int regno;
   int removed_and = 0;
   rtx tem;
 
@@ -4558,7 +4570,12 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn)
                      && ! rtx_equal_p (tem, reg_equiv_mem[regno]))
                    {
                      *loc = tem;
-                     emit_insn_before (gen_rtx_USE (VOIDmode, ad), insn);
+                     /* We mark the USE with QImode so that we
+                        recognize it as one that can be safely
+                        deleted at the end of reload.  */
+                     PUT_MODE (emit_insn_before (gen_rtx_USE (VOIDmode, ad),
+                                                 insn), QImode);
+
                      /* This doesn't really count as replacing the address
                         as a whole, since it is still a memory access.  */
                    }
@@ -4858,9 +4875,9 @@ subst_reg_equivs (ad, insn)
      rtx ad;
      rtx insn;
 {
-  register RTX_CODE code = GET_CODE (ad);
-  register int i;
-  register const char *fmt;
+  RTX_CODE code = GET_CODE (ad);
+  int i;
+  const char *fmt;
 
   switch (code)
     {
@@ -4876,7 +4893,7 @@ subst_reg_equivs (ad, insn)
 
     case REG:
       {
-       register int regno = REGNO (ad);
+       int regno = REGNO (ad);
 
        if (reg_equiv_constant[regno] != 0)
          {
@@ -4889,7 +4906,11 @@ subst_reg_equivs (ad, insn)
            if (! rtx_equal_p (mem, reg_equiv_mem[regno]))
              {
                subst_reg_equivs_changed = 1;
-               emit_insn_before (gen_rtx_USE (VOIDmode, ad), insn);
+               /* We mark the USE with QImode so that we recognize it
+                  as one that can be safely deleted at the end of
+                  reload.  */
+               PUT_MODE (emit_insn_before (gen_rtx_USE (VOIDmode, ad), insn),
+                         QImode);
                return mem;
              }
          }
@@ -5085,18 +5106,18 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn)
      int ind_levels;
      rtx insn;
 {
-  register RTX_CODE code = GET_CODE (x);
+  RTX_CODE code = GET_CODE (x);
 
   switch (code)
     {
     case PLUS:
       {
-       register rtx orig_op0 = XEXP (x, 0);
-       register rtx orig_op1 = XEXP (x, 1);
-       register RTX_CODE code0 = GET_CODE (orig_op0);
-       register RTX_CODE code1 = GET_CODE (orig_op1);
-       register rtx op0 = orig_op0;
-       register rtx op1 = orig_op1;
+       rtx orig_op0 = XEXP (x, 0);
+       rtx orig_op1 = XEXP (x, 1);
+       RTX_CODE code0 = GET_CODE (orig_op0);
+       RTX_CODE code1 = GET_CODE (orig_op1);
+       rtx op0 = orig_op0;
+       rtx op1 = orig_op1;
 
        if (GET_CODE (op0) == SUBREG)
          {
@@ -5296,7 +5317,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn)
     case PRE_DEC:
       if (GET_CODE (XEXP (x, 0)) == REG)
        {
-         register int regno = REGNO (XEXP (x, 0));
+         int regno = REGNO (XEXP (x, 0));
          int value = 0;
          rtx x_orig = x;
 
@@ -5409,7 +5430,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn)
             reload it into a register.  */
          /* Variable `tem' might or might not be used in FIND_REG_INC_NOTE.  */
          rtx tem ATTRIBUTE_UNUSED = XEXP (x, 0);
-         register rtx link;
+         rtx link;
          int reloadnum;
 
          /* Since we know we are going to reload this item, don't decrement
@@ -5461,7 +5482,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn)
 
     case REG:
       {
-       register int regno = REGNO (x);
+       int regno = REGNO (x);
 
        if (reg_equiv_constant[regno] != 0)
          {
@@ -5566,8 +5587,8 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn)
     }
 
   {
-    register const char *fmt = GET_RTX_FORMAT (code);
-    register int i;
+    const char *fmt = GET_RTX_FORMAT (code);
+    int i;
 
     for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
       {
@@ -5721,7 +5742,12 @@ find_reloads_subreg_address (x, force_replace, opnum, type,
                 this substitution.  We have to emit a USE of the pseudo so
                 that delete_output_reload can see it.  */
              if (replace_reloads && recog_data.operand[opnum] != x)
-               emit_insn_before (gen_rtx_USE (VOIDmode, SUBREG_REG (x)), insn);
+               /* We mark the USE with QImode so that we recognize it
+                  as one that can be safely deleted at the end of
+                  reload.  */
+               PUT_MODE (emit_insn_before (gen_rtx_USE (VOIDmode,
+                                                        SUBREG_REG (x)),
+                                           insn), QImode);
              x = tem;
            }
        }
@@ -5740,12 +5766,12 @@ void
 subst_reloads (insn)
      rtx insn;
 {
-  register int i;
+  int i;
 
   for (i = 0; i < n_replacements; i++)
     {
-      register struct replacement *r = &replacements[i];
-      register rtx reloadreg = rld[r->what].reg_rtx;
+      struct replacement *r = &replacements[i];
+      rtx reloadreg = rld[r->what].reg_rtx;
       if (reloadreg)
        {
 #ifdef ENABLE_CHECKING
@@ -6065,7 +6091,7 @@ refers_to_regno_for_reload_p (regno, endregno, x, loc)
        }
       else if (fmt[i] == 'E')
        {
-         register int j;
+         int j;
          for (j = XVECLEN (x, i) - 1; j >= 0; j--)
            if (loc != &XVECEXP (x, i, j)
                && refers_to_regno_for_reload_p (regno, endregno,
@@ -6193,18 +6219,18 @@ refers_to_mem_for_reload_p (x)
 
 rtx
 find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
-     register rtx goal;
+     rtx goal;
      rtx insn;
      enum reg_class class;
-     register int other;
+     int other;
      short *reload_reg_p;
      int goalreg;
      enum machine_mode mode;
 {
-  register rtx p = insn;
+  rtx p = insn;
   rtx goaltry, valtry, value, where;
-  register rtx pat;
-  register int regno = -1;
+  rtx pat;
+  int regno = -1;
   int valueno;
   int goal_mem = 0;
   int goal_const = 0;
@@ -6490,7 +6516,7 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
            pat = COND_EXEC_CODE (pat);
          if (GET_CODE (pat) == SET || GET_CODE (pat) == CLOBBER)
            {
-             register rtx dest = SET_DEST (pat);
+             rtx dest = SET_DEST (pat);
              while (GET_CODE (dest) == SUBREG
                     || GET_CODE (dest) == ZERO_EXTRACT
                     || GET_CODE (dest) == SIGN_EXTRACT
@@ -6498,7 +6524,7 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
                dest = XEXP (dest, 0);
              if (GET_CODE (dest) == REG)
                {
-                 register int xregno = REGNO (dest);
+                 int xregno = REGNO (dest);
                  int xnregs;
                  if (REGNO (dest) < FIRST_PSEUDO_REGISTER)
                    xnregs = HARD_REGNO_NREGS (xregno, GET_MODE (dest));
@@ -6526,15 +6552,15 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
            }
          else if (GET_CODE (pat) == PARALLEL)
            {
-             register int i;
+             int i;
              for (i = XVECLEN (pat, 0) - 1; i >= 0; i--)
                {
-                 register rtx v1 = XVECEXP (pat, 0, i);
+                 rtx v1 = XVECEXP (pat, 0, i);
                  if (GET_CODE (v1) == COND_EXEC)
                    v1 = COND_EXEC_CODE (v1);
                  if (GET_CODE (v1) == SET || GET_CODE (v1) == CLOBBER)
                    {
-                     register rtx dest = SET_DEST (v1);
+                     rtx dest = SET_DEST (v1);
                      while (GET_CODE (dest) == SUBREG
                             || GET_CODE (dest) == ZERO_EXTRACT
                             || GET_CODE (dest) == SIGN_EXTRACT
@@ -6542,7 +6568,7 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
                        dest = XEXP (dest, 0);
                      if (GET_CODE (dest) == REG)
                        {
-                         register int xregno = REGNO (dest);
+                         int xregno = REGNO (dest);
                          int xnregs;
                          if (REGNO (dest) < FIRST_PSEUDO_REGISTER)
                            xnregs = HARD_REGNO_NREGS (xregno, GET_MODE (dest));
@@ -6584,11 +6610,11 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
                  pat = XEXP (link, 0);
                  if (GET_CODE (pat) == CLOBBER)
                    {
-                     register rtx dest = SET_DEST (pat);
+                     rtx dest = SET_DEST (pat);
 
                      if (GET_CODE (dest) == REG)
                        {
-                         register int xregno = REGNO (dest);
+                         int xregno = REGNO (dest);
                          int xnregs
                            = HARD_REGNO_NREGS (xregno, GET_MODE (dest));
 
@@ -6620,13 +6646,13 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode)
             If GOAL is a memory ref and its address is not constant,
             and this insn P increments a register used in GOAL, return 0.  */
          {
-           register rtx link;
+           rtx link;
 
            for (link = REG_NOTES (p); link; link = XEXP (link, 1))
              if (REG_NOTE_KIND (link) == REG_INC
                  && GET_CODE (XEXP (link, 0)) == REG)
                {
-                 register int incno = REGNO (XEXP (link, 0));
+                 int incno = REGNO (XEXP (link, 0));
                  if (incno < regno + nregs && incno >= regno)
                    return 0;
                  if (incno < valueno + valuenregs && incno >= valueno)
@@ -6650,13 +6676,13 @@ static int
 find_inc_amount (x, inced)
      rtx x, inced;
 {
-  register enum rtx_code code = GET_CODE (x);
-  register const char *fmt;
-  register int i;
+  enum rtx_code code = GET_CODE (x);
+  const char *fmt;
+  int i;
 
   if (code == MEM)
     {
-      register rtx addr = XEXP (x, 0);
+      rtx addr = XEXP (x, 0);
       if ((GET_CODE (addr) == PRE_DEC
           || GET_CODE (addr) == POST_DEC
           || GET_CODE (addr) == PRE_INC
@@ -6680,16 +6706,16 @@ find_inc_amount (x, inced)
     {
       if (fmt[i] == 'e')
        {
-         register int tem = find_inc_amount (XEXP (x, i), inced);
+         int tem = find_inc_amount (XEXP (x, i), inced);
          if (tem != 0)
            return tem;
        }
       if (fmt[i] == 'E')
        {
-         register int j;
+         int j;
          for (j = XVECLEN (x, i) - 1; j >= 0; j--)
            {
-             register int tem = find_inc_amount (XVECEXP (x, i, j), inced);
+             int tem = find_inc_amount (XVECEXP (x, i, j), inced);
              if (tem != 0)
                return tem;
            }
@@ -6743,7 +6769,7 @@ regno_clobbered_p (regno, insn, mode, sets)
   return 0;
 }
 
-static const char *reload_when_needed_name[] =
+static const char *const reload_when_needed_name[] =
 {
   "RELOAD_FOR_INPUT",
   "RELOAD_FOR_OUTPUT",