gas: drop sprint_value()
authorJan Beulich <jbeulich@suse.com>
Mon, 19 Apr 2021 11:28:35 +0000 (13:28 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 19 Apr 2021 11:28:35 +0000 (13:28 +0200)
Its (documented) behavior is unhelpful in particular in 64-bit build
environments: While printing large 32-bit numbers in decimal already
isn't very meaningful to most people, this even more so goes for yet
larger 64-bit numbers. bfd_sprintf_vma() still tries to limit the number
of digits printed (without depending on a build system property), but
uniformly produces hex output.

gas/ChangeLog
gas/as.h
gas/config/tc-i386.c
gas/config/tc-s390.c
gas/doc/internals.texi
gas/messages.c
gas/write.c

index 72b8c69c640142097f00427f515b86b8f0945229..2c498a6bceaabdf1c0c4c3a43f044811ef091544 100644 (file)
@@ -1,3 +1,14 @@
+2021-04-19  Jan Beulich  <jbeulich@suse.com>
+
+       * as.h (sprint_value): Delete.
+       * messages.c (sprint_value): Likewise.
+       * config/tc-i386.c (offset_in_range): Use bfd_sprintf_vma in
+       place of sprint_value.
+       * config/tc-s390.c (s390_insert_operand): Likewise.
+       * doc/internals.texi (sprint_value): Delete section.
+       * write.c (fixup_segment): Likewise.
+       (relax_segment): Likewise.
+
 2021-04-16  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
 
        * testsuite/gas/aarch64/rme-invalid.d: New test.
index 6b6895479deff602222fab4ca123f28365e86c01..14a768f8889778bf79c760bf0fed6275944b3f16 100644 (file)
--- a/gas/as.h
+++ b/gas/as.h
@@ -428,7 +428,6 @@ PRINTF_WHERE_LIKE (as_warn_where);
 
 void   as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
 void   signal_init (void);
-void   sprint_value (char *, addressT);
 int    had_errors (void);
 int    had_warnings (void);
 void   as_warn_value_out_of_range (const char *, offsetT, offsetT, offsetT,
index b6d43b5f6175ae098809eaf74aa01425146d89b5..e49d0f53f0b929483ba0657d2eb1de90eed0dc81 100644 (file)
@@ -2556,8 +2556,8 @@ offset_in_range (offsetT val, int size)
     {
       char buf1[40], buf2[40];
 
-      sprint_value (buf1, val);
-      sprint_value (buf2, val & mask);
+      bfd_sprintf_vma (stdoutput, buf1, val);
+      bfd_sprintf_vma (stdoutput, buf2, val & mask);
       as_warn (_("%s shortened to %s"), buf1, buf2);
     }
   return val & mask;
index 0750f25346336759f4fefa4e74b056ef3763b9a4..064dd33ad4e5d0ad6382dab7fc3ad8e615144822 100644 (file)
@@ -626,7 +626,7 @@ s390_insert_operand (unsigned char *insn,
              min <<= 1;
              max <<= 1;
            }
-         sprint_value (buf, val);
+         bfd_sprintf_vma (stdoutput, buf, val);
          if (file == (char *) NULL)
            as_bad (err, buf, (int) min, (int) max);
          else
index 3b345d5ce76315c650abe78adf2c04b4628e7c89..91ef97507df89670f2e84f6058501c8a600c35ff 100644 (file)
@@ -1918,13 +1918,6 @@ after all input has been read, but messages about fixups should refer to the
 original filename and line number that they are applicable to.
 @end deftypefun
 
-@deftypefun @{@} void sprint_value (char *@var{buf}, valueT @var{val})
-This function is helpful for converting a @code{valueT} value into printable
-format, in case it's wider than modes that @code{*printf} can handle.  If the
-type is narrow enough, a decimal number will be produced; otherwise, it will be
-in hexadecimal.  The value itself is not examined to make this determination.
-@end deftypefun
-
 @node Test suite
 @section Test suite
 @cindex test suite
index 0728146e95ec6d33450e0d10bcca6702d45296db..62f931281575940ecc027ad66b881d0bc68c0c00 100644 (file)
@@ -356,22 +356,6 @@ signal_init (void)
 
 /* Support routines.  */
 
-void
-sprint_value (char *buf, valueT val)
-{
-  if (sizeof (val) <= sizeof (long))
-    {
-      sprintf (buf, "%ld", (long) val);
-      return;
-    }
-  if (sizeof (val) <= sizeof (bfd_vma))
-    {
-      sprintf_vma (buf, val);
-      return;
-    }
-  abort ();
-}
-
 #define HEX_MAX_THRESHOLD      1024
 #define HEX_MIN_THRESHOLD      -(HEX_MAX_THRESHOLD)
 
index 706c9c043c61bebb9e8b97eb978b93b22fa0bccd..682e28f3834658a0eeff211770b559bf6ae8a666 100644 (file)
@@ -1110,9 +1110,9 @@ fixup_segment (fixS *fixP, segT this_segment)
              if ((add_number & mask) != 0 && (add_number & mask) != mask)
                {
                  char buf[50], buf2[50];
-                 sprint_value (buf, fragP->fr_address + fixP->fx_where);
+                 bfd_sprintf_vma (stdoutput, buf, fragP->fr_address + fixP->fx_where);
                  if (add_number > 1000)
-                   sprint_value (buf2, add_number);
+                   bfd_sprintf_vma (stdoutput, buf2, add_number);
                  else
                    sprintf (buf2, "%ld", (long) add_number);
                  as_bad_where (fixP->fx_file, fixP->fx_line,
@@ -2866,7 +2866,9 @@ relax_segment (struct frag *segment_frag_root, segT segment, int pass)
                          if (flag_warn_displacement)
                            {
                              char buf[50];
-                             sprint_value (buf, (addressT) lie->addnum);
+
+                             bfd_sprintf_vma (stdoutput, buf,
+                                              (addressT) lie->addnum);
                              as_warn_where (fragP->fr_file, fragP->fr_line,
                                             _(".word %s-%s+%s didn't fit"),
                                             S_GET_NAME (lie->add),