* unwind-ia64.c (unw_print_brmask): Don't use sprintf.
authorAlan Modra <amodra@gmail.com>
Mon, 27 May 2002 08:40:35 +0000 (08:40 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 27 May 2002 08:40:35 +0000 (08:40 +0000)
(unw_print_grmask): Likewise.
(unw_print_frmask): Likewise.

binutils/ChangeLog
binutils/unwind-ia64.c

index 01282d89b16be90efe6ac7d208ee5767aaf24ff5..330d707970bea7b8e41239b23a906cb5e6f26cc4 100644 (file)
@@ -1,3 +1,9 @@
+2002-05-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * unwind-ia64.c (unw_print_brmask): Don't use sprintf.
+       (unw_print_grmask): Likewise.
+       (unw_print_frmask): Likewise.
+
 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
 
        * arsup.c: Remove ARGSUSED.
index 5dcd2a786162ed1b2d702b4cfcede23f3b529b4b..803a5fa5415ee6b49e0ec3b78ace821e4b6f4f0f 100644 (file)
@@ -44,15 +44,18 @@ unw_print_brmask (cp, mask)
      char * cp;
      unsigned int mask;
 {
-  char *sep = "";
+  int sep = 0;
   int i;
 
   for (i = 0; mask && (i < 5); ++i)
     {
       if (mask & 1)
        {
-         cp += sprintf (cp, "%sb%u", sep, i + 1);
-         sep = ",";
+         if (sep)
+           *cp++ = ',';
+         *cp++ = 'b';
+         *cp++ = i + 1 + '0';
+         sep = 1;
        }
       mask >>= 1;
     }
@@ -64,19 +67,22 @@ unw_print_grmask (cp, mask)
      char * cp;
      unsigned int mask;
 {
-  char *sep = "";
+  int sep = 0;
   int i;
 
-  *cp = '\0';
   for (i = 0; i < 4; ++i)
     {
       if (mask & 1)
        {
-         cp += sprintf (cp, "%sr%u", sep, i + 4);
-         sep = ",";
+         if (sep)
+           *cp++ = ',';
+         *cp++ = 'r';
+         *cp++ = i + 4 + '0';
+         sep = 1;
        }
       mask >>= 1;
     }
+  *cp = '\0';
 }
 
 static void
@@ -84,19 +90,28 @@ unw_print_frmask (cp, mask)
      char * cp;
      unsigned int mask;
 {
-  char *sep = "";
+  int sep = 0;
   int i;
 
-  *cp = '\0';
   for (i = 0; i < 20; ++i)
     {
       if (mask & 1)
        {
-         cp += sprintf (cp, "%sf%u", sep, (i < 4) ? (i + 2) : (i + 12));
-         sep = ",";
+         if (sep)
+           *cp++ = ',';
+         *cp++ = 'f';
+         if (i < 4)
+           *cp++ = i + 2 + '0';
+         else
+           {
+             *cp++ = (i + 2) / 10 + 1 + '0';
+             *cp++ = (i + 2) % 10 + '0';
+           }
+         sep = 1;
        }
       mask >>= 1;
     }
+  *cp = '\0';
 }
 
 static void