*** empty log message ***
authorTom Wood <wood@gnu.org>
Thu, 5 Mar 1992 20:07:30 +0000 (20:07 +0000)
committerTom Wood <wood@gnu.org>
Thu, 5 Mar 1992 20:07:30 +0000 (20:07 +0000)
From-SVN: r395

gcc/regclass.c
gcc/varasm.c

index 5a4d72fe4a1d6a25db9ac78ba0fc67e56f7e3049..544d78e23799b85eb31b6466b9eb11b161707f82 100644 (file)
@@ -326,18 +326,14 @@ fix_register (name, fixed, call_used)
   /* Decode the name and update the primary form of
      the register info.  */
 
-  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
-    if (reg_names[i][0] && ! strcmp (reg_names[i], name))
-      {
-       fixed_regs[i] = fixed;
-       call_used_regs[i] = call_used;
-       break;
-      }
-
-  if (i == FIRST_PSEUDO_REGISTER)
+  if ((i = decode_reg_name (name)) >= 0)
+    {
+      fixed_regs[i] = fixed;
+      call_used_regs[i] = call_used;
+    }
+  else
     {
       warning ("unknown register name: %s", name);
-      return;
     }
 }
 \f
index b6b218b7922a921b0a7f5ee88d1a2ffb2da8d7b7..890c9696671a6adbf86ebd0cb9794a63297c4c43 100644 (file)
@@ -191,7 +191,8 @@ make_function_rtl (decl)
 
 /* Decode an `asm' spec for a declaration as a register name.
    Return the register number, or -1 if nothing specified,
-   or -2 if the name is not a register.  */
+   or -2 if the name is not a register.  Accept an exact spelling,
+   a decimal number, or an optional prefix of '%' or '#'.  */
 
 int
 decode_reg_name (asmspec)
@@ -218,7 +219,7 @@ decode_reg_name (asmspec)
        if (reg_names[i][0] && ! strcmp (asmspec, reg_names[i]))
          return i;
 
-      if (asmspec[0] == '%')
+      if (asmspec[0] == '%' || asmspec[0] == '#')
        for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
          if (reg_names[i][0] && ! strcmp (asmspec + 1, reg_names[i]))
            return i;
@@ -232,7 +233,7 @@ decode_reg_name (asmspec)
          if (! strcmp (asmspec, table[i].name))
            return table[i].number;
 
-       if (asmspec[0] == '%')
+       if (asmspec[0] == '%' || asmspec[0] == '#')
          for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
            if (! strcmp (asmspec + 1, table[i].name))
              return table[i].number;
@@ -499,9 +500,9 @@ assemble_start_function (decl, fnname)
 #endif
 
 #ifdef DBX_DEBUGGING_INFO
-  /* Output SDB definition of the function.  */
+  /* Output DBX definition of the function.  */
   if (write_symbols == DBX_DEBUG)
-    dbxout_begin_function ();
+    dbxout_begin_function (decl);
 #endif
 
   /* Make function name accessible from other files, if appropriate.  */