Fix problems translating messages when a percentage sign appears at the end of a...
authorNick Clifton <nickc@redhat.com>
Wed, 7 Jul 2021 09:25:41 +0000 (10:25 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 7 Jul 2021 09:25:41 +0000 (10:25 +0100)
PR 28051
gas * config/tc-i386.c (offset_in_range): Reformat error messages in
order to fix problems when translating.
(md_assemble): Likewise.
* messages.c (as_internal_value_out_of_range): Likewise.
* read.c (emit_expr_with_reloc): Likewise.
* testsuite/gas/all/overflow.l Change expected output format.
* po/gas.pot: Regenerate.

bfd * coff-rs6000.c (xcoff_reloc_type_tls): Reformat error messages in
order to fix problems when translating.
* cofflink.c (_bfd_coff_write_global_sym): Likewise.
* elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
Likewise.
* po/bfd.pot: Regenerate.

bfd/ChangeLog
bfd/coff-rs6000.c
bfd/cofflink.c
bfd/elfnn-aarch64.c
bfd/po/bfd.pot
gas/ChangeLog
gas/config/tc-i386.c
gas/messages.c
gas/po/gas.pot
gas/read.c
gas/testsuite/gas/all/overflow.l

index 7591469681035b17ed7a590a097f0b115969ab81..96bd8ff29d021c172da4cb2b01d2f4ea6501437a 100644 (file)
@@ -1,3 +1,13 @@
+2021-07-07  Nick Clifton  <nickc@redhat.com>
+
+       PR 28051
+       * coff-rs6000.c (xcoff_reloc_type_tls): Reformat error messages in
+       order to fix problems when translating.
+       * cofflink.c (_bfd_coff_write_global_sym): Likewise.
+       * elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
+       Likewise.
+       * po/bfd.pot: Regenerate.
+
 2021-07-06  Michael Matz  <matz@suse.de>
 
        PR ld/28021
index 9d7571908ddc8824f395dbc500996f0e0f3a7cab..a1c62d4e679399697475e38736df1fbc0082fc9c 100644 (file)
@@ -3205,10 +3205,12 @@ xcoff_reloc_type_tls (bfd *input_bfd ATTRIBUTE_UNUSED,
   /* FIXME: h is sometimes null, if the TLS symbol is not exported.  */
   if (!h)
     {
+      char vaddr_buf[128];
+
+      sprintf_vma (vaddr_buf, rel->r_vaddr);
       _bfd_error_handler
-       (_("%pB: TLS relocation at (0x%" BFD_VMA_FMT "x) over "
-          "internal symbols (C_HIDEXT) not yet possible\n"),
-        input_bfd, rel->r_vaddr);
+       (_("%pB: TLS relocation at 0x%s over internal symbols (C_HIDEXT) not yet possible\n"),
+        input_bfd, vaddr_buf);
       return false;
     }
 
@@ -3216,10 +3218,12 @@ xcoff_reloc_type_tls (bfd *input_bfd ATTRIBUTE_UNUSED,
   /* TLS relocations must target a TLS symbol.  */
   if (h->smclas != XMC_TL && h->smclas != XMC_UL)
     {
+      char vaddr_buf[128];
+
+      sprintf_vma (vaddr_buf, rel->r_vaddr);
       _bfd_error_handler
-       (_("%pB: TLS relocation at (0x%" BFD_VMA_FMT "x) over "
-          "non-TLS symbol %s (0x%x)\n"),
-        input_bfd, rel->r_vaddr, h->root.root.string, h->smclas);
+       (_("%pB: TLS relocation at 0x%s over non-TLS symbol %s (0x%x)\n"),
+        input_bfd, vaddr_buf, h->root.root.string, h->smclas);
       return false;
     }
 
@@ -3230,10 +3234,12 @@ xcoff_reloc_type_tls (bfd *input_bfd ATTRIBUTE_UNUSED,
        && (h->flags & XCOFF_DEF_DYNAMIC) != 0)
          || (h->flags & XCOFF_IMPORT) != 0))
     {
+      char vaddr_buf[128];
+
+      sprintf_vma (vaddr_buf, rel->r_vaddr);
       _bfd_error_handler
-       (_("%pB: TLS local relocation at (0x%" BFD_VMA_FMT "x) over "
-          "imported symbol %s\n"),
-        input_bfd, rel->r_vaddr, h->root.root.string);
+       (_("%pB: TLS local relocation at 0x%s over imported symbol %s\n"),
+        input_bfd, vaddr_buf, h->root.root.string);
       return false;
     }
 
@@ -3638,11 +3644,15 @@ xcoff_ppc_relocate_section (bfd *output_bfd,
              break;
 
            default:
-             _bfd_error_handler
-               (_("%pB: relocation (%d) at (0x%" BFD_VMA_FMT "x) has wrong"
-                  " r_rsize (0x%x)\n"),
-                input_bfd, rel->r_type, rel->r_vaddr, rel->r_size);
-             return false;
+             {
+               char vaddr_buf[128];
+
+               sprintf_vma (vaddr_buf, rel->r_vaddr);
+               _bfd_error_handler
+                 (_("%pB: relocation (%d) at 0x%s has wrong r_rsize (0x%x)\n"),
+                  input_bfd, rel->r_type, vaddr_buf, rel->r_size);
+               return false;
+             }
            }
        }
 
index dd3e8dd4bf667b41f42bdba3ea8629072bb2c902..b8a370933be68c6419e5c61454073599c9424859 100644 (file)
@@ -2606,10 +2606,14 @@ _bfd_coff_write_global_sym (struct bfd_hash_entry *bh, void *data)
        if (isym.n_value > (bfd_vma) 0xffffffff)
          {
            if (! h->root.linker_def)
-             _bfd_error_handler
-               (_("%pB: stripping non-representable symbol '%s' (value "
-                  "%" BFD_VMA_FMT "x)"),
-                output_bfd, h->root.root.string, isym.n_value);
+             {
+               char value_buf[128];
+
+               sprintf_vma (value_buf, isym.n_value);
+               _bfd_error_handler
+                 (_("%pB: stripping non-representable symbol '%s' (value 0x%s)"),
+                  output_bfd, h->root.root.string, value_buf);
+             }
            return true;
          }
 #endif
index b6f083e430bb51e6930d4663f60362079101511c..4885f417a2a46b37007c5517af20e080cbe1ff9d 100644 (file)
@@ -5345,12 +5345,15 @@ _bfd_aarch64_erratum_843419_branch_to_stub (struct bfd_hash_entry *gen_entry,
     }
   else
     {
+      char imm_buf[128];
+
+      sprintf (imm_buf, "%" BFD_VMA_FMT "x", imm);
       abfd = stub_entry->target_section->owner;
       _bfd_error_handler
-       (_("%pB: error: erratum 843419 immediate 0x%" BFD_VMA_FMT "x "
+       (_("%pB: error: erratum 843419 immediate 0x%s "
           "out of range for ADR (input file too large) and "
           "--fix-cortex-a53-843419=adr used.  Run the linker with "
-          "--fix-cortex-a53-843419=full instead"), abfd, imm);
+          "--fix-cortex-a53-843419=full instead"), abfd, imm_buf);
       bfd_set_error (bfd_error_bad_value);
       /* This function is called inside a hashtable traversal and the error
         handlers called above turn into non-fatal errors.  Which means this
index 5c6311d8d07fdb4c5c8562dd441208044a20827d..12a93faa047beaedc7a4ab3d440302489cf581d3 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2021-07-03 15:01+0100\n"
+"POT-Creation-Date: 2021-07-07 09:00+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -130,115 +130,115 @@ msgstr ""
 msgid "Writing updated armap timestamp"
 msgstr ""
 
-#: bfd.c:681
+#: bfd.c:687
 msgid "no error"
 msgstr ""
 
-#: bfd.c:682
+#: bfd.c:688
 msgid "system call error"
 msgstr ""
 
-#: bfd.c:683
+#: bfd.c:689
 msgid "invalid bfd target"
 msgstr ""
 
-#: bfd.c:684
+#: bfd.c:690
 msgid "file in wrong format"
 msgstr ""
 
-#: bfd.c:685
+#: bfd.c:691
 msgid "archive object file in wrong format"
 msgstr ""
 
-#: bfd.c:686
+#: bfd.c:692
 msgid "invalid operation"
 msgstr ""
 
-#: bfd.c:687
+#: bfd.c:693
 msgid "memory exhausted"
 msgstr ""
 
-#: bfd.c:688
+#: bfd.c:694
 msgid "no symbols"
 msgstr ""
 
-#: bfd.c:689
+#: bfd.c:695
 msgid "archive has no index; run ranlib to add one"
 msgstr ""
 
-#: bfd.c:690
+#: bfd.c:696
 msgid "no more archived files"
 msgstr ""
 
-#: bfd.c:691
+#: bfd.c:697
 msgid "malformed archive"
 msgstr ""
 
-#: bfd.c:692
+#: bfd.c:698
 msgid "DSO missing from command line"
 msgstr ""
 
-#: bfd.c:693
+#: bfd.c:699
 msgid "file format not recognized"
 msgstr ""
 
-#: bfd.c:694
+#: bfd.c:700
 msgid "file format is ambiguous"
 msgstr ""
 
-#: bfd.c:695
+#: bfd.c:701
 msgid "section has no contents"
 msgstr ""
 
-#: bfd.c:696
+#: bfd.c:702
 msgid "nonrepresentable section on output"
 msgstr ""
 
-#: bfd.c:697
+#: bfd.c:703
 msgid "symbol needs debug section which does not exist"
 msgstr ""
 
-#: bfd.c:698
+#: bfd.c:704
 msgid "bad value"
 msgstr ""
 
-#: bfd.c:699
+#: bfd.c:705
 msgid "file truncated"
 msgstr ""
 
-#: bfd.c:700
+#: bfd.c:706
 msgid "file too big"
 msgstr ""
 
-#: bfd.c:701
+#: bfd.c:707
 msgid "sorry, cannot handle this file"
 msgstr ""
 
-#: bfd.c:702
+#: bfd.c:708
 #, c-format
 msgid "error reading %s: %s"
 msgstr ""
 
-#: bfd.c:703
+#: bfd.c:709
 msgid "#<invalid error code>"
 msgstr ""
 
-#: bfd.c:1640
+#: bfd.c:1646
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr ""
 
-#: bfd.c:1653
+#: bfd.c:1659
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d in %s\n"
 msgstr ""
 
-#: bfd.c:1658
+#: bfd.c:1664
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d\n"
 msgstr ""
 
-#: bfd.c:1660
+#: bfd.c:1666
 msgid "Please report this bug.\n"
 msgstr ""
 
@@ -308,19 +308,29 @@ msgstr ""
 msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
 msgstr ""
 
-#: coff-rs6000.c:3209 coff-rs6000.c:3220
-msgid "%pB: TLS relocation at (0x%"
+#: coff-rs6000.c:3212
+#, c-format
+msgid ""
+"%pB: TLS relocation at 0x%s over internal symbols (C_HIDEXT) not yet "
+"possible\n"
 msgstr ""
 
-#: coff-rs6000.c:3234
-msgid "%pB: TLS local relocation at (0x%"
+#: coff-rs6000.c:3225
+#, c-format
+msgid "%pB: TLS relocation at 0x%s over non-TLS symbol %s (0x%x)\n"
 msgstr ""
 
-#: coff-rs6000.c:3642 coff64-rs6000.c:1573
-msgid "%pB: relocatation (%d) at (0x%"
+#: coff-rs6000.c:3241
+#, c-format
+msgid "%pB: TLS local relocation at 0x%s over imported symbol %s\n"
 msgstr ""
 
-#: coff-rs6000.c:3905 coff64-rs6000.c:2023
+#: coff-rs6000.c:3652
+#, c-format
+msgid "%pB: relocation (%d) at 0x%s has wrong r_rsize (0x%x)\n"
+msgstr ""
+
+#: coff-rs6000.c:3915 coff64-rs6000.c:2023
 #, c-format
 msgid "%pB: symbol `%s' has unrecognized smclas %d"
 msgstr ""
@@ -370,7 +380,7 @@ msgstr ""
 msgid "%pB: fatal: generic symbols retrieved before relaxing"
 msgstr ""
 
-#: coff-sh.c:2781 cofflink.c:2959
+#: coff-sh.c:2781 cofflink.c:2963
 #, c-format
 msgid "%pB: illegal symbol index %ld in relocs"
 msgstr ""
@@ -390,6 +400,10 @@ msgstr ""
 msgid "%pB: wrong auxtype %#x for storage class %#x"
 msgstr ""
 
+#: coff64-rs6000.c:1573
+msgid "%pB: relocation (%d) at (0x%"
+msgstr ""
+
 #: coffcode.h:986
 #, c-format
 msgid "%pB: unable to load COMDAT section name"
@@ -560,21 +574,22 @@ msgid ""
 "%pA' of %pB\n"
 msgstr ""
 
-#: cofflink.c:2610
-msgid "%pB: stripping non-representable symbol '%s' (value %"
+#: cofflink.c:2614
+#, c-format
+msgid "%pB: stripping non-representable symbol '%s' (value 0x%s)"
 msgstr ""
 
-#: cofflink.c:2728
+#: cofflink.c:2732
 #, c-format
 msgid "%pB: %pA: reloc overflow: %#x > 0xffff"
 msgstr ""
 
-#: cofflink.c:2736
+#: cofflink.c:2740
 #, c-format
 msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff"
 msgstr ""
 
-#: cofflink.c:3127
+#: cofflink.c:3131
 #, c-format
 msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
 msgstr ""
@@ -1364,7 +1379,7 @@ msgstr ""
 msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
 msgstr ""
 
-#: elf.c:12850 elf64-sparc.c:123 elfcode.h:1504
+#: elf.c:12850 elf64-sparc.c:123 elfcode.h:1505
 #, c-format
 msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
 msgstr ""
@@ -4911,22 +4926,22 @@ msgstr ""
 msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
 msgstr ""
 
-#: elfcode.h:329
+#: elfcode.h:330
 #, c-format
 msgid "warning: %pB has a section extending past end of file"
 msgstr ""
 
-#: elfcode.h:775
+#: elfcode.h:776
 #, c-format
 msgid "warning: %pB has a corrupt string table index - ignoring"
 msgstr ""
 
-#: elfcode.h:819
+#: elfcode.h:820
 #, c-format
 msgid "warning: %pB has a program header with invalid alignment"
 msgstr ""
 
-#: elfcode.h:1244
+#: elfcode.h:1245
 #, c-format
 msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
 msgstr ""
@@ -6384,7 +6399,7 @@ msgstr ""
 msgid "%pB: error: debug data ends beyond end of debug directory"
 msgstr ""
 
-#: plugin.c:236
+#: plugin.c:246
 msgid ""
 "plugin framework: out of file descriptors. Try using fewer objects/archives\n"
 msgstr ""
index 9d6b14bb6287edc4d366ff6eef6a11822a105c8f..777dfa1eadc72f6d6b3dd91bf180c5de89e7c198 100644 (file)
@@ -1,3 +1,14 @@
+2021-07-07  Nick Clifton  <nickc@redhat.com>
+
+       PR 28051
+       * config/tc-i386.c (offset_in_range): Reformat error messages in
+       order to fix problems when translating.
+       (md_assemble): Likewise.
+       * messages.c (as_internal_value_out_of_range): Likewise.
+       * read.c (emit_expr_with_reloc): Likewise.
+       * testsuite/gas/all/overflow.l Change expected output format.
+       * po/gas.pot: Regenerate.
+
 2021-07-03  Nick Clifton  <nickc@redhat.com>
 
        * configure: Regenerate.
index 168f7d5ba75888eb3c84bcdf6ae5a3aafef85510..d98c6c4e94931c82afd1f8cece5cc1470f01041e 100644 (file)
@@ -2561,8 +2561,15 @@ offset_in_range (offsetT val, int size)
     }
 
   if ((val & ~mask) != 0 && (-val & ~mask) != 0)
-    as_warn (_("%"BFD_VMA_FMT"x shortened to %"BFD_VMA_FMT"x"),
-             val, val & mask);
+    {
+      char val_buf[128];
+      char masked_buf[128];
+
+      /* Coded this way in order to ease translation.  */
+      sprintf_vma (val_buf, val);
+      sprintf_vma (masked_buf, val & mask);
+      as_warn (_("0x%s shortened to 0x%s"), val_buf, masked_buf);
+    }
 
   return val & mask;
 }
@@ -4916,8 +4923,12 @@ md_assemble (char *line)
          i.types[j].bitfield.disp32s = 0;
          if (i.types[j].bitfield.baseindex)
            {
-             as_bad (_("0x%" BFD_VMA_FMT "x out of range of signed 32bit displacement"),
-                     exp->X_add_number);
+             char number_buf[128];
+
+             /* Coded this way in order to allow for ease of translation.  */
+             sprintf_vma (number_buf, exp->X_add_number);
+             as_bad (_("0x%s out of range of signed 32bit displacement"),
+                     number_buf);
              return;
            }
        }
index 62f931281575940ecc027ad66b881d0bc68c0c00..fbd4581601ba021e445b48bdb9d6d0498154bf3c 100644 (file)
@@ -366,9 +366,15 @@ as_internal_value_out_of_range (const char *prefix,
                                offsetT max,
                                const char *file,
                                unsigned line,
-                               int bad)
+                               bool bad)
 {
   const char * err;
+  /* These buffer sizes are excessive, but better to be safe than sorry.
+     Note - these buffers are used in order to make the error message
+     string translateable.  */
+  char val_buf [128];
+  char min_buf [128];
+  char max_buf [128];
 
   if (prefix == NULL)
     prefix = "";
@@ -380,41 +386,38 @@ as_internal_value_out_of_range (const char *prefix,
       if (max <= 1)
        abort ();
 
+      sprintf (val_buf, "%" BFD_VMA_FMT "d", val);
+      sprintf (min_buf, "%" BFD_VMA_FMT "d", right);
+
       /* xgettext:c-format  */
-      err = _("%s out of domain (%" BFD_VMA_FMT "d is not a multiple of %" \
-             BFD_VMA_FMT "d)");
+      err = _("%s out of domain (%s is not a multiple of %s)");
+
       if (bad)
-       as_bad_where (file, line, err, prefix, val, right);
+       as_bad_where (file, line, err, prefix, val_buf, min_buf);
       else
-       as_warn_where (file, line, err, prefix, val, right);
-      return;
+       as_warn_where (file, line, err, prefix, val_buf, min_buf);
     }
-
-  if (   val < HEX_MAX_THRESHOLD
-      && min < HEX_MAX_THRESHOLD
-      && max < HEX_MAX_THRESHOLD
-      && val > HEX_MIN_THRESHOLD
-      && min > HEX_MIN_THRESHOLD
-      && max > HEX_MIN_THRESHOLD)
+  else if (   val < HEX_MAX_THRESHOLD
+          && min < HEX_MAX_THRESHOLD
+          && max < HEX_MAX_THRESHOLD
+          && val > HEX_MIN_THRESHOLD
+          && min > HEX_MIN_THRESHOLD
+          && max > HEX_MIN_THRESHOLD)
     {
-      /* xgettext:c-format  */
-      err = _("%s out of range (%" BFD_VMA_FMT "d is not between %" \
-             BFD_VMA_FMT "d and %" BFD_VMA_FMT "d)");
+      sprintf (val_buf, "%" BFD_VMA_FMT "d", val);
+      sprintf (min_buf, "%" BFD_VMA_FMT "d", min);
+      sprintf (max_buf, "%" BFD_VMA_FMT "d", max);
+
+      /* xgettext:c-format.  */
+      err = _("%s out of range (%s is not between %s and %s)");
 
       if (bad)
-       as_bad_where (file, line, err, prefix, val, min, max);
+       as_bad_where (file, line, err, prefix, val_buf, min_buf, max_buf);
       else
-       as_warn_where (file, line, err, prefix, val, min, max);
+       as_warn_where (file, line, err, prefix, val_buf, min_buf, max_buf);
     }
   else
     {
-      char val_buf [sizeof (val) * 3 + 2];
-      char min_buf [sizeof (val) * 3 + 2];
-      char max_buf [sizeof (val) * 3 + 2];
-
-      if (sizeof (val) > sizeof (bfd_vma))
-       abort ();
-
       sprintf_vma (val_buf, (bfd_vma) val);
       sprintf_vma (min_buf, (bfd_vma) min);
       sprintf_vma (max_buf, (bfd_vma) max);
@@ -437,7 +440,7 @@ as_warn_value_out_of_range (const char *prefix,
                           const char *file,
                           unsigned line)
 {
-  as_internal_value_out_of_range (prefix, value, min, max, file, line, 0);
+  as_internal_value_out_of_range (prefix, value, min, max, file, line, false);
 }
 
 void
@@ -448,5 +451,5 @@ as_bad_value_out_of_range (const char *prefix,
                           const char *file,
                           unsigned line)
 {
-  as_internal_value_out_of_range (prefix, value, min, max, file, line, 1);
+  as_internal_value_out_of_range (prefix, value, min, max, file, line, true);
 }
index 29e20a51f392ac20cff7b4eab5a058389935431b..7b895add7fcbd6c36301e0a02ec21cf224f97085 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2021-07-03 15:03+0100\n"
+"POT-Creation-Date: 2021-07-07 09:03+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -171,12 +171,12 @@ msgstr ""
 msgid "  --elf-stt-common=[no|yes] "
 msgstr ""
 
-#: as.c:317 as.c:328 config/tc-i386.c:13799 config/tc-i386.c:13819
+#: as.c:317 as.c:328 config/tc-i386.c:13810 config/tc-i386.c:13830
 #, c-format
 msgid "(default: yes)\n"
 msgstr ""
 
-#: as.c:319 as.c:330 config/tc-i386.c:13801 config/tc-i386.c:13821
+#: as.c:319 as.c:330 config/tc-i386.c:13812 config/tc-i386.c:13832
 #, c-format
 msgid "(default: no)\n"
 msgstr ""
@@ -2617,8 +2617,8 @@ msgstr ""
 #: config/tc-arc.c:2552 config/tc-arc.c:2584 config/tc-arc.c:2689
 #: config/tc-cr16.c:813 config/tc-cr16.c:832 config/tc-cris.c:1223
 #: config/tc-crx.c:516 config/tc-crx.c:538 config/tc-crx.c:549
-#: config/tc-dlx.c:289 config/tc-hppa.c:8246 config/tc-i386.c:3071
-#: config/tc-i386.c:3123 config/tc-ia64.c:5380 config/tc-ia64.c:7418
+#: config/tc-dlx.c:289 config/tc-hppa.c:8246 config/tc-i386.c:3078
+#: config/tc-i386.c:3130 config/tc-ia64.c:5380 config/tc-ia64.c:7418
 #: config/tc-ia64.c:7477 config/tc-m68k.c:4574 config/tc-m68k.c:4586
 #: config/tc-mips.c:3700 config/tc-mips.c:3733 config/tc-mips.c:3759
 #: config/tc-nds32.c:3439 config/tc-nios2.c:3624 config/tc-nios2.c:3629
@@ -2965,7 +2965,7 @@ msgid "Insn %s has an instruction %s with limm in its delay slot."
 msgstr ""
 
 #: config/tc-arc.c:4276 config/tc-microblaze.c:2567 config/tc-mn10300.c:1069
-#: config/tc-sh.c:418 config/tc-z80.c:1119 read.c:4701
+#: config/tc-sh.c:418 config/tc-z80.c:1119 read.c:4706
 #, c-format
 msgid "unsupported BFD relocation size %u"
 msgstr ""
@@ -5847,7 +5847,7 @@ msgstr ""
 msgid "internal error: reloc %d (`%s') not supported by object file format"
 msgstr ""
 
-#: config/tc-cr16.c:700 config/tc-i386.c:14007 config/tc-s390.c:2113
+#: config/tc-cr16.c:700 config/tc-i386.c:14018 config/tc-s390.c:2113
 msgid "GOT already in symbol table"
 msgstr ""
 
@@ -7912,860 +7912,862 @@ msgstr ""
 msgid "jump over nop padding out of range"
 msgstr ""
 
-#: config/tc-i386.c:2564
-msgid "%"
+#: config/tc-i386.c:2571
+#, c-format
+msgid "0x%s shortened to 0x%s"
 msgstr ""
 
-#: config/tc-i386.c:2656 config/tc-i386.c:7983
+#: config/tc-i386.c:2663 config/tc-i386.c:7994
 msgid "same type of prefix used twice"
 msgstr ""
 
-#: config/tc-i386.c:2683
+#: config/tc-i386.c:2690
 #, c-format
 msgid "64bit mode not supported on `%s'."
 msgstr ""
 
-#: config/tc-i386.c:2692
+#: config/tc-i386.c:2699
 #, c-format
 msgid "32bit mode not supported on `%s'."
 msgstr ""
 
-#: config/tc-i386.c:2732
+#: config/tc-i386.c:2739
 msgid "bad argument to syntax directive."
 msgstr ""
 
-#: config/tc-i386.c:2795
+#: config/tc-i386.c:2802
 #, c-format
 msgid "bad argument to %s_check directive."
 msgstr ""
 
-#: config/tc-i386.c:2799
+#: config/tc-i386.c:2806
 #, c-format
 msgid "missing argument for %s_check directive"
 msgstr ""
 
-#: config/tc-i386.c:2839
+#: config/tc-i386.c:2846
 #, c-format
 msgid "`%s' is not supported on `%s'"
 msgstr ""
 
-#: config/tc-i386.c:2945
+#: config/tc-i386.c:2952
 #, c-format
 msgid "no such architecture: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:2950
+#: config/tc-i386.c:2957
 msgid "missing cpu architecture"
 msgstr ""
 
-#: config/tc-i386.c:2967
+#: config/tc-i386.c:2974
 #, c-format
 msgid "no such architecture modifier: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:2982 config/tc-i386.c:3012
+#: config/tc-i386.c:2989 config/tc-i386.c:3019
 msgid "Intel L1OM is 64bit ELF only"
 msgstr ""
 
-#: config/tc-i386.c:2989 config/tc-i386.c:3019
+#: config/tc-i386.c:2996 config/tc-i386.c:3026
 msgid "Intel K1OM is 64bit ELF only"
 msgstr ""
 
-#: config/tc-i386.c:2996 config/tc-i386.c:3033
+#: config/tc-i386.c:3003 config/tc-i386.c:3040
 msgid "Intel MCU is 32bit ELF only"
 msgstr ""
 
-#: config/tc-i386.c:3040 config/tc-i386.c:13894
+#: config/tc-i386.c:3047 config/tc-i386.c:13905
 msgid "unknown architecture"
 msgstr ""
 
-#: config/tc-i386.c:3427
+#: config/tc-i386.c:3434
 msgid "there are no pc-relative size relocations"
 msgstr ""
 
-#: config/tc-i386.c:3439
+#: config/tc-i386.c:3446
 #, c-format
 msgid "unknown relocation (%u)"
 msgstr ""
 
-#: config/tc-i386.c:3441
+#: config/tc-i386.c:3448
 #, c-format
 msgid "%u-byte relocation cannot be applied to %u-byte field"
 msgstr ""
 
-#: config/tc-i386.c:3445
+#: config/tc-i386.c:3452
 msgid "non-pc-relative relocation for pc-relative field"
 msgstr ""
 
-#: config/tc-i386.c:3450
+#: config/tc-i386.c:3457
 msgid "relocated field and relocation type differ in signedness"
 msgstr ""
 
-#: config/tc-i386.c:3459
+#: config/tc-i386.c:3466
 msgid "there are no unsigned pc-relative relocations"
 msgstr ""
 
-#: config/tc-i386.c:3467
+#: config/tc-i386.c:3474
 #, c-format
 msgid "cannot do %u byte pc-relative relocation"
 msgstr ""
 
-#: config/tc-i386.c:3484
+#: config/tc-i386.c:3491
 #, c-format
 msgid "cannot do %s %u byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:4035 config/tc-i386.c:4968
+#: config/tc-i386.c:4042 config/tc-i386.c:4979
 #, c-format
 msgid "invalid instruction `%s' after `%s'"
 msgstr ""
 
-#: config/tc-i386.c:4041
+#: config/tc-i386.c:4048
 #, c-format
 msgid "missing `lock' with `%s'"
 msgstr ""
 
-#: config/tc-i386.c:4048
+#: config/tc-i386.c:4055
 #, c-format
 msgid "instruction `%s' after `xacquire' not allowed"
 msgstr ""
 
-#: config/tc-i386.c:4054
+#: config/tc-i386.c:4061
 #, c-format
 msgid "memory destination needed for instruction `%s' after `xrelease'"
 msgstr ""
 
-#: config/tc-i386.c:4700
+#: config/tc-i386.c:4707
 #, c-format
 msgid "`%s` changes flags which would affect control flow behavior"
 msgstr ""
 
-#: config/tc-i386.c:4742
+#: config/tc-i386.c:4749
 #, c-format
 msgid "indirect `%s` with memory operand should be avoided"
 msgstr ""
 
-#: config/tc-i386.c:4753
+#: config/tc-i386.c:4760
 #, c-format
 msgid "`%s` skips -mlfence-before-indirect-branch on `%s`"
 msgstr ""
 
-#: config/tc-i386.c:4774
+#: config/tc-i386.c:4781
 #, c-format
 msgid "`%s` skips -mlfence-before-ret on `%s`"
 msgstr ""
 
-#: config/tc-i386.c:4919
-msgid "0x%"
+#: config/tc-i386.c:4930
+#, c-format
+msgid "0x%s out of range of signed 32bit displacement"
 msgstr ""
 
-#: config/tc-i386.c:4958
+#: config/tc-i386.c:4969
 #, c-format
 msgid "SSE instruction `%s' is used"
 msgstr ""
 
-#: config/tc-i386.c:4981
+#: config/tc-i386.c:4992
 msgid "expecting lockable instruction after `lock'"
 msgstr ""
 
-#: config/tc-i386.c:4991
+#: config/tc-i386.c:5002
 #, c-format
 msgid "data size prefix invalid with `%s'"
 msgstr ""
 
-#: config/tc-i386.c:5001
+#: config/tc-i386.c:5012
 msgid "expecting valid branch instruction after `bnd'"
 msgstr ""
 
-#: config/tc-i386.c:5005
+#: config/tc-i386.c:5016
 msgid "expecting indirect branch instruction after `notrack'"
 msgstr ""
 
-#: config/tc-i386.c:5010
+#: config/tc-i386.c:5021
 msgid "32-bit address isn't allowed in 64-bit MPX instructions."
 msgstr ""
 
-#: config/tc-i386.c:5014
+#: config/tc-i386.c:5025
 msgid "16-bit address isn't allowed in MPX instructions"
 msgstr ""
 
-#: config/tc-i386.c:5024
+#: config/tc-i386.c:5035
 msgid "replacing `rep'/`repe' prefix by `bnd'"
 msgstr ""
 
 #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:5096
+#: config/tc-i386.c:5107
 #, c-format
 msgid "translating to `%sp'"
 msgstr ""
 
-#: config/tc-i386.c:5103
+#: config/tc-i386.c:5114
 #, c-format
 msgid "instruction `%s' isn't supported outside of protected mode."
 msgstr ""
 
-#: config/tc-i386.c:5111
+#: config/tc-i386.c:5122
 #, c-format
 msgid "REX prefix invalid with `%s'"
 msgstr ""
 
-#: config/tc-i386.c:5172
+#: config/tc-i386.c:5183
 #, c-format
 msgid "can't encode register '%s%s' in an instruction requiring REX prefix."
 msgstr ""
 
-#: config/tc-i386.c:5248 config/tc-i386.c:5452
+#: config/tc-i386.c:5259 config/tc-i386.c:5463
 #, c-format
 msgid "no such instruction: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:5259 config/tc-i386.c:5485
+#: config/tc-i386.c:5270 config/tc-i386.c:5496
 #, c-format
 msgid "invalid character %s in mnemonic"
 msgstr ""
 
-#: config/tc-i386.c:5266
+#: config/tc-i386.c:5277
 msgid "expecting prefix; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:5268
+#: config/tc-i386.c:5279
 msgid "expecting mnemonic; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:5283 config/tc-i386.c:5507
+#: config/tc-i386.c:5294 config/tc-i386.c:5518
 #, c-format
 msgid "`%s' is only supported in 64-bit mode"
 msgstr ""
 
-#: config/tc-i386.c:5284 config/tc-i386.c:5506
+#: config/tc-i386.c:5295 config/tc-i386.c:5517
 #, c-format
 msgid "`%s' is not supported in 64-bit mode"
 msgstr ""
 
-#: config/tc-i386.c:5296
+#: config/tc-i386.c:5307
 #, c-format
 msgid "redundant %s prefix"
 msgstr ""
 
-#: config/tc-i386.c:5498
+#: config/tc-i386.c:5509
 msgid "use .code16 to ensure correct addressing mode"
 msgstr ""
 
-#: config/tc-i386.c:5510
+#: config/tc-i386.c:5521
 #, c-format
 msgid "`%s' is not supported on `%s%s'"
 msgstr ""
 
-#: config/tc-i386.c:5538
+#: config/tc-i386.c:5549
 #, c-format
 msgid "invalid character %s before operand %d"
 msgstr ""
 
-#: config/tc-i386.c:5550
+#: config/tc-i386.c:5561
 #, c-format
 msgid "unbalanced double quotes in operand %d."
 msgstr ""
 
-#: config/tc-i386.c:5557
+#: config/tc-i386.c:5568
 #, c-format
 msgid "unbalanced parenthesis in operand %d."
 msgstr ""
 
-#: config/tc-i386.c:5570
+#: config/tc-i386.c:5581
 #, c-format
 msgid "invalid character %s in operand %d"
 msgstr ""
 
-#: config/tc-i386.c:5590
+#: config/tc-i386.c:5601
 #, c-format
 msgid "spurious operands; (%d operands/instruction max)"
 msgstr ""
 
-#: config/tc-i386.c:5600 config/tc-i386.c:11480
+#: config/tc-i386.c:5611 config/tc-i386.c:11491
 #, c-format
 msgid "too many memory references for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:5621
+#: config/tc-i386.c:5632
 msgid "expecting operand after ','; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:5626
+#: config/tc-i386.c:5637
 msgid "expecting operand before ','; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:6046
+#: config/tc-i386.c:6057
 msgid "mask, index, and destination registers should be distinct"
 msgstr ""
 
-#: config/tc-i386.c:6063
+#: config/tc-i386.c:6074
 msgid "index and destination registers should be distinct"
 msgstr ""
 
-#: config/tc-i386.c:6806
+#: config/tc-i386.c:6817
 msgid "operand size mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6809
+#: config/tc-i386.c:6820
 msgid "operand type mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6812
+#: config/tc-i386.c:6823
 msgid "register type mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6815
+#: config/tc-i386.c:6826
 msgid "number of operands mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6818
+#: config/tc-i386.c:6829
 msgid "invalid instruction suffix"
 msgstr ""
 
-#: config/tc-i386.c:6821
+#: config/tc-i386.c:6832
 msgid "constant doesn't fit in 4 bits"
 msgstr ""
 
-#: config/tc-i386.c:6824
+#: config/tc-i386.c:6835
 msgid "unsupported with Intel mnemonic"
 msgstr ""
 
-#: config/tc-i386.c:6827
+#: config/tc-i386.c:6838
 msgid "unsupported syntax"
 msgstr ""
 
-#: config/tc-i386.c:6830
+#: config/tc-i386.c:6841
 #, c-format
 msgid "unsupported instruction `%s'"
 msgstr ""
 
-#: config/tc-i386.c:6834
+#: config/tc-i386.c:6845
 msgid "invalid SIB address"
 msgstr ""
 
-#: config/tc-i386.c:6837
+#: config/tc-i386.c:6848
 msgid "invalid VSIB address"
 msgstr ""
 
-#: config/tc-i386.c:6840
+#: config/tc-i386.c:6851
 msgid "mask, index, and destination registers must be distinct"
 msgstr ""
 
-#: config/tc-i386.c:6843
+#: config/tc-i386.c:6854
 msgid "all tmm registers must be distinct"
 msgstr ""
 
-#: config/tc-i386.c:6846
+#: config/tc-i386.c:6857
 msgid "unsupported vector index register"
 msgstr ""
 
-#: config/tc-i386.c:6849
+#: config/tc-i386.c:6860
 msgid "unsupported broadcast"
 msgstr ""
 
-#: config/tc-i386.c:6852
+#: config/tc-i386.c:6863
 msgid "broadcast is needed for operand of such type"
 msgstr ""
 
-#: config/tc-i386.c:6855
+#: config/tc-i386.c:6866
 msgid "unsupported masking"
 msgstr ""
 
-#: config/tc-i386.c:6858
+#: config/tc-i386.c:6869
 msgid "mask not on destination operand"
 msgstr ""
 
-#: config/tc-i386.c:6861
+#: config/tc-i386.c:6872
 msgid "default mask isn't allowed"
 msgstr ""
 
-#: config/tc-i386.c:6864
+#: config/tc-i386.c:6875
 msgid "unsupported static rounding/sae"
 msgstr ""
 
-#: config/tc-i386.c:6868
+#: config/tc-i386.c:6879
 msgid "RC/SAE operand must precede immediate operands"
 msgstr ""
 
-#: config/tc-i386.c:6870
+#: config/tc-i386.c:6881
 msgid "RC/SAE operand must follow immediate operands"
 msgstr ""
 
-#: config/tc-i386.c:6873 config/tc-metag.c:4787 config/tc-metag.c:5528
+#: config/tc-i386.c:6884 config/tc-metag.c:4787 config/tc-metag.c:5528
 #: config/tc-metag.c:5550
 msgid "invalid register operand"
 msgstr ""
 
-#: config/tc-i386.c:6876
+#: config/tc-i386.c:6887
 #, c-format
 msgid "%s for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:6885
+#: config/tc-i386.c:6896
 #, c-format
 msgid "indirect %s without `*'"
 msgstr ""
 
 #. Warn them that a data or address size prefix doesn't
 #. affect assembly of the next line of code.
-#: config/tc-i386.c:6892
+#: config/tc-i386.c:6903
 #, c-format
 msgid "stand-alone `%s' prefix"
 msgstr ""
 
-#: config/tc-i386.c:6934
+#: config/tc-i386.c:6945
 #, c-format
 msgid "`%s' operand %u must use `%ses' segment"
 msgstr ""
 
-#: config/tc-i386.c:7089
+#: config/tc-i386.c:7100
 msgid "generating 16-bit `iret' for .code16gcc directive"
 msgstr ""
 
-#: config/tc-i386.c:7093
+#: config/tc-i386.c:7104
 #, c-format
 msgid "generating 32-bit `%s', unlike earlier gas versions"
 msgstr ""
 
-#: config/tc-i386.c:7211
+#: config/tc-i386.c:7222
 #, c-format
 msgid "ambiguous operand size for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:7216
+#: config/tc-i386.c:7227
 #, c-format
 msgid ""
 "no instruction mnemonic suffix given and no register operands; can't size `"
 "%s'"
 msgstr ""
 
-#: config/tc-i386.c:7221
+#: config/tc-i386.c:7232
 #, c-format
 msgid "%s; using default for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:7223
+#: config/tc-i386.c:7234
 msgid "ambiguous operand size"
 msgstr ""
 
-#: config/tc-i386.c:7224
+#: config/tc-i386.c:7235
 msgid "no instruction mnemonic suffix given and no register operands"
 msgstr ""
 
-#: config/tc-i386.c:7364
+#: config/tc-i386.c:7375
 #, c-format
 msgid "16-bit addressing unavailable for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:7432
+#: config/tc-i386.c:7443
 #, c-format
 msgid "invalid register operand size for `%s'"
 msgstr ""
 
 #. Any other register is bad.
-#: config/tc-i386.c:7472 config/tc-i386.c:7497 config/tc-i386.c:7556
-#: config/tc-i386.c:7606
+#: config/tc-i386.c:7483 config/tc-i386.c:7508 config/tc-i386.c:7567
+#: config/tc-i386.c:7617
 #, c-format
 msgid "`%s%s' not allowed with `%s%c'"
 msgstr ""
 
-#: config/tc-i386.c:7510 config/tc-i386.c:7530 config/tc-i386.c:7581
-#: config/tc-i386.c:7620
+#: config/tc-i386.c:7521 config/tc-i386.c:7541 config/tc-i386.c:7592
+#: config/tc-i386.c:7631
 #, c-format
 msgid "incorrect register `%s%s' used with `%c' suffix"
 msgstr ""
 
-#: config/tc-i386.c:7687
+#: config/tc-i386.c:7698
 msgid "no instruction mnemonic suffix given; can't determine immediate size"
 msgstr ""
 
-#: config/tc-i386.c:7851
+#: config/tc-i386.c:7862
 #, c-format
 msgid ""
 "source register `%s%s' implicitly denotes `%s%.3s%u' to `%s%.3s%u' source "
 "group in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:7895
+#: config/tc-i386.c:7906
 #, c-format
 msgid "you can't `%s %s%s'"
 msgstr ""
 
 #. Reversed arguments on faddp, fsubp, etc.
-#: config/tc-i386.c:7935
+#: config/tc-i386.c:7946
 #, c-format
 msgid "translating to `%s %s%s,%s%s'"
 msgstr ""
 
 #. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:7942
+#: config/tc-i386.c:7953
 #, c-format
 msgid "translating to `%s %s%s'"
 msgstr ""
 
-#: config/tc-i386.c:7954
+#: config/tc-i386.c:7965
 #, c-format
 msgid "segment override on `%s' is ineffectual"
 msgstr ""
 
-#: config/tc-i386.c:8693 config/tc-riscv.c:1296
+#: config/tc-i386.c:8704 config/tc-riscv.c:1296
 msgid "relaxable branches not supported in absolute section"
 msgstr ""
 
-#: config/tc-i386.c:8728 config/tc-i386.c:8874 config/tc-i386.c:8956
+#: config/tc-i386.c:8739 config/tc-i386.c:8885 config/tc-i386.c:8967
 #, c-format
 msgid "skipping prefixes on `%s'"
 msgstr ""
 
-#: config/tc-i386.c:8982
+#: config/tc-i386.c:8993
 msgid "16-bit jump out of range"
 msgstr ""
 
-#: config/tc-i386.c:9236 config/tc-i386.c:9268 config/tc-i386.c:9357
+#: config/tc-i386.c:9247 config/tc-i386.c:9279 config/tc-i386.c:9368
 #, c-format
 msgid "`%s` skips -malign-branch-boundary on `%s`"
 msgstr ""
 
-#: config/tc-i386.c:9633
+#: config/tc-i386.c:9644
 msgid "pseudo prefix without instruction"
 msgstr ""
 
-#: config/tc-i386.c:9779
+#: config/tc-i386.c:9790
 #, c-format
 msgid "instruction length of %u bytes exceeds the limit of 15"
 msgstr ""
 
-#: config/tc-i386.c:10365
+#: config/tc-i386.c:10376
 #, c-format
 msgid "@%s reloc is not supported with %d-bit output format"
 msgstr ""
 
-#: config/tc-i386.c:10418
+#: config/tc-i386.c:10429
 #, c-format
 msgid "missing or invalid expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10427
+#: config/tc-i386.c:10438
 #, c-format
 msgid "invalid PLT expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10519
+#: config/tc-i386.c:10530
 #, c-format
 msgid "Unsupported broadcast: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10536
+#: config/tc-i386.c:10547
 #, c-format
 msgid "`%s%s' can't be used for write mask"
 msgstr ""
 
-#: config/tc-i386.c:10556
+#: config/tc-i386.c:10567
 #, c-format
 msgid "invalid write mask `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10577 config/tc-i386.c:11271
+#: config/tc-i386.c:10588 config/tc-i386.c:11282
 #, c-format
 msgid "duplicated `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10587
+#: config/tc-i386.c:10598
 #, c-format
 msgid "invalid zeroing-masking `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10600
+#: config/tc-i386.c:10611
 #, c-format
 msgid "missing `}' in `%s'"
 msgstr ""
 
 #. We don't know this one.
-#: config/tc-i386.c:10614
+#: config/tc-i386.c:10625
 #, c-format
 msgid "unknown vector operation: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10620
+#: config/tc-i386.c:10631
 msgid "zeroing-masking only allowed with write mask"
 msgstr ""
 
-#: config/tc-i386.c:10640
+#: config/tc-i386.c:10651
 #, c-format
 msgid "at most %d immediate operands are allowed"
 msgstr ""
 
-#: config/tc-i386.c:10662 config/tc-i386.c:10930
+#: config/tc-i386.c:10673 config/tc-i386.c:10941
 #, c-format
 msgid "junk `%s' after expression"
 msgstr ""
 
-#: config/tc-i386.c:10675
+#: config/tc-i386.c:10686
 #, c-format
 msgid "illegal immediate register operand %s"
 msgstr ""
 
-#: config/tc-i386.c:10689
+#: config/tc-i386.c:10700
 #, c-format
 msgid "missing or invalid immediate expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10712 config/tc-i386.c:11010
+#: config/tc-i386.c:10723 config/tc-i386.c:11021
 #, c-format
 msgid "unimplemented segment %s in operand"
 msgstr ""
 
-#: config/tc-i386.c:10761
+#: config/tc-i386.c:10772
 #, c-format
 msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10770
+#: config/tc-i386.c:10781
 #, c-format
 msgid "scale factor of %d without an index register"
 msgstr ""
 
-#: config/tc-i386.c:10792
+#: config/tc-i386.c:10803
 #, c-format
 msgid "at most %d displacement operands are allowed"
 msgstr ""
 
-#: config/tc-i386.c:10986
+#: config/tc-i386.c:10997
 #, c-format
 msgid "missing or invalid displacement expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:11160
+#: config/tc-i386.c:11171
 #, c-format
 msgid "`%s' is not valid here (expected `%c%s%s%c')"
 msgstr ""
 
-#: config/tc-i386.c:11172
+#: config/tc-i386.c:11183
 #, c-format
 msgid "`%s' is not a valid %s expression"
 msgstr ""
 
-#: config/tc-i386.c:11184
+#: config/tc-i386.c:11195
 #, c-format
 msgid "invalid `%s' prefix"
 msgstr ""
 
-#: config/tc-i386.c:11217
+#: config/tc-i386.c:11228
 #, c-format
 msgid "`%s' cannot be used here"
 msgstr ""
 
-#: config/tc-i386.c:11226
+#: config/tc-i386.c:11237
 msgid "register scaling is being ignored here"
 msgstr ""
 
-#: config/tc-i386.c:11288
+#: config/tc-i386.c:11299
 #, c-format
 msgid "Missing '}': '%s'"
 msgstr ""
 
-#: config/tc-i386.c:11294
+#: config/tc-i386.c:11305
 #, c-format
 msgid "Junk after '}': '%s'"
 msgstr ""
 
-#: config/tc-i386.c:11416
+#: config/tc-i386.c:11427
 #, c-format
 msgid "bad memory operand `%s'"
 msgstr ""
 
-#: config/tc-i386.c:11432
+#: config/tc-i386.c:11443
 #, c-format
 msgid "junk `%s' after register"
 msgstr ""
 
-#: config/tc-i386.c:11445 config/tc-i386.c:11609 config/tc-i386.c:11653
+#: config/tc-i386.c:11456 config/tc-i386.c:11620 config/tc-i386.c:11664
 #, c-format
 msgid "bad register name `%s'"
 msgstr ""
 
-#: config/tc-i386.c:11453
+#: config/tc-i386.c:11464
 msgid "immediate operand illegal with absolute jump"
 msgstr ""
 
-#: config/tc-i386.c:11521
+#: config/tc-i386.c:11532
 msgid "unbalanced figure braces"
 msgstr ""
 
-#: config/tc-i386.c:11598
+#: config/tc-i386.c:11609
 #, c-format
 msgid "expecting `,' or `)' after index register in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:11626
+#: config/tc-i386.c:11637
 #, c-format
 msgid "expecting `)' after scale factor in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:11634
+#: config/tc-i386.c:11645
 #, c-format
 msgid "expecting index register or scale factor after `,'; got '%c'"
 msgstr ""
 
-#: config/tc-i386.c:11642
+#: config/tc-i386.c:11653
 #, c-format
 msgid "expecting `,' or `)' after base register in `%s'"
 msgstr ""
 
 #. It's not a memory operand; argh!
-#: config/tc-i386.c:11691
+#: config/tc-i386.c:11702
 #, c-format
 msgid "invalid char %s beginning operand %d `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12350
+#: config/tc-i386.c:12361
 #, c-format
 msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:12353
+#: config/tc-i386.c:12364
 #, c-format
 msgid ""
 "%s:%u: add additional %d%s at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:12359
+#: config/tc-i386.c:12370
 #, c-format
 msgid ""
 "%s:%u: add %d%s-byte nop at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:12426
+#: config/tc-i386.c:12437
 msgid "long jump required"
 msgstr ""
 
-#: config/tc-i386.c:12481
+#: config/tc-i386.c:12492
 msgid "jump target out of range"
 msgstr ""
 
-#: config/tc-i386.c:12897
+#: config/tc-i386.c:12908
 #, c-format
 msgid "register '%s%s' cannot be used here"
 msgstr ""
 
-#: config/tc-i386.c:13112
+#: config/tc-i386.c:13123
 #, c-format
 msgid "invalid -mx86-used-note= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13135
+#: config/tc-i386.c:13146
 msgid "no compiled in support for x86_64"
 msgstr ""
 
-#: config/tc-i386.c:13155
+#: config/tc-i386.c:13166
 msgid "no compiled in support for 32bit x86_64"
 msgstr ""
 
-#: config/tc-i386.c:13159
+#: config/tc-i386.c:13170
 msgid "32bit x86_64 is only supported for ELF"
 msgstr ""
 
-#: config/tc-i386.c:13193 config/tc-i386.c:13281
+#: config/tc-i386.c:13204 config/tc-i386.c:13292
 #, c-format
 msgid "invalid -march= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13291 config/tc-i386.c:13303
+#: config/tc-i386.c:13302 config/tc-i386.c:13314
 #, c-format
 msgid "invalid -mtune= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13312
+#: config/tc-i386.c:13323
 #, c-format
 msgid "invalid -mmnemonic= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13321
+#: config/tc-i386.c:13332
 #, c-format
 msgid "invalid -msyntax= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13344
+#: config/tc-i386.c:13355
 #, c-format
 msgid "invalid -msse-check= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13355
+#: config/tc-i386.c:13366
 #, c-format
 msgid "invalid -moperand-check= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13364
+#: config/tc-i386.c:13375
 #, c-format
 msgid "invalid -mavxscalar= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13373
+#: config/tc-i386.c:13384
 #, c-format
 msgid "invalid -mvexwig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13388
+#: config/tc-i386.c:13399
 #, c-format
 msgid "invalid -mevexlig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13401
+#: config/tc-i386.c:13412
 #, c-format
 msgid "invalid -mevexrcig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13410
+#: config/tc-i386.c:13421
 #, c-format
 msgid "invalid -mevexwig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13425
+#: config/tc-i386.c:13436
 #, c-format
 msgid "invalid -momit-lock-prefix= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13434
+#: config/tc-i386.c:13445
 #, c-format
 msgid "invalid -mfence-as-lock-add= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13443
+#: config/tc-i386.c:13454
 #, c-format
 msgid "invalid -mlfence-after-load= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13460
+#: config/tc-i386.c:13471
 #, c-format
 msgid "invalid -mlfence-before-indirect-branch= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13474
+#: config/tc-i386.c:13485
 #, c-format
 msgid "invalid -mlfence-before-ret= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13484
+#: config/tc-i386.c:13495
 #, c-format
 msgid "invalid -mrelax-relocations= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13513
+#: config/tc-i386.c:13524
 #, c-format
 msgid "invalid -malign-branch-boundary= value: %s"
 msgstr ""
 
-#: config/tc-i386.c:13527
+#: config/tc-i386.c:13538
 #, c-format
 msgid "invalid -malign-branch-prefix-size= value: %s"
 msgstr ""
 
-#: config/tc-i386.c:13554
+#: config/tc-i386.c:13565
 #, c-format
 msgid "invalid -malign-branch= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:13710
+#: config/tc-i386.c:13721
 #, c-format
 msgid ""
 "  -Qy, -Qn                ignored\n"
@@ -8773,39 +8775,39 @@ msgid ""
 "  -k                      ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:13715
+#: config/tc-i386.c:13726
 #, c-format
 msgid ""
 "  -n                      Do not optimize code alignment\n"
 "  -q                      quieten some warnings\n"
 msgstr ""
 
-#: config/tc-i386.c:13719
+#: config/tc-i386.c:13730
 #, c-format
 msgid "  -s                      ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:13724
+#: config/tc-i386.c:13735
 #, c-format
 msgid "  --32/--64/--x32         generate 32bit/64bit/x32 object\n"
 msgstr ""
 
-#: config/tc-i386.c:13727
+#: config/tc-i386.c:13738
 #, c-format
 msgid "  --32/--64               generate 32bit/64bit object\n"
 msgstr ""
 
-#: config/tc-i386.c:13732
+#: config/tc-i386.c:13743
 #, c-format
 msgid "  --divide                do not treat `/' as a comment character\n"
 msgstr ""
 
-#: config/tc-i386.c:13735
+#: config/tc-i386.c:13746
 #, c-format
 msgid "  --divide                ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:13738
+#: config/tc-i386.c:13749
 #, c-format
 msgid ""
 "  -march=CPU[,+EXTENSION...]\n"
@@ -8813,36 +8815,36 @@ msgid ""
 "of:\n"
 msgstr ""
 
-#: config/tc-i386.c:13742
+#: config/tc-i386.c:13753
 #, c-format
 msgid "                          EXTENSION is combination of:\n"
 msgstr ""
 
-#: config/tc-i386.c:13745
+#: config/tc-i386.c:13756
 #, c-format
 msgid "  -mtune=CPU              optimize for CPU, CPU is one of:\n"
 msgstr ""
 
-#: config/tc-i386.c:13748
+#: config/tc-i386.c:13759
 #, c-format
 msgid "  -msse2avx               encode SSE instructions with VEX prefix\n"
 msgstr ""
 
-#: config/tc-i386.c:13750
+#: config/tc-i386.c:13761
 #, c-format
 msgid ""
 "  -msse-check=[none|error|warning] (default: warning)\n"
 "                          check SSE instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:13753
+#: config/tc-i386.c:13764
 #, c-format
 msgid ""
 "  -moperand-check=[none|error|warning] (default: warning)\n"
 "                          check operand combinations for validity\n"
 msgstr ""
 
-#: config/tc-i386.c:13756
+#: config/tc-i386.c:13767
 #, c-format
 msgid ""
 "  -mavxscalar=[128|256] (default: 128)\n"
@@ -8851,7 +8853,7 @@ msgid ""
 "                           length\n"
 msgstr ""
 
-#: config/tc-i386.c:13760
+#: config/tc-i386.c:13771
 #, c-format
 msgid ""
 "  -mvexwig=[0|1] (default: 0)\n"
@@ -8859,7 +8861,7 @@ msgid ""
 "                           for VEX.W bit ignored instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:13764
+#: config/tc-i386.c:13775
 #, c-format
 msgid ""
 "  -mevexlig=[128|256|512] (default: 128)\n"
@@ -8868,7 +8870,7 @@ msgid ""
 "                           length\n"
 msgstr ""
 
-#: config/tc-i386.c:13768
+#: config/tc-i386.c:13779
 #, c-format
 msgid ""
 "  -mevexwig=[0|1] (default: 0)\n"
@@ -8877,7 +8879,7 @@ msgid ""
 "                           for EVEX.W bit ignored instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:13772
+#: config/tc-i386.c:13783
 #, c-format
 msgid ""
 "  -mevexrcig=[rne|rd|ru|rz] (default: rne)\n"
@@ -8886,77 +8888,77 @@ msgid ""
 "                           for SAE-only ignored instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:13776
+#: config/tc-i386.c:13787
 #, c-format
 msgid "  -mmnemonic=[att|intel] "
 msgstr ""
 
-#: config/tc-i386.c:13779
+#: config/tc-i386.c:13790
 #, c-format
 msgid "(default: att)\n"
 msgstr ""
 
-#: config/tc-i386.c:13781
+#: config/tc-i386.c:13792
 #, c-format
 msgid "(default: intel)\n"
 msgstr ""
 
-#: config/tc-i386.c:13782
+#: config/tc-i386.c:13793
 #, c-format
 msgid "                          use AT&T/Intel mnemonic\n"
 msgstr ""
 
-#: config/tc-i386.c:13784
+#: config/tc-i386.c:13795
 #, c-format
 msgid ""
 "  -msyntax=[att|intel] (default: att)\n"
 "                          use AT&T/Intel syntax\n"
 msgstr ""
 
-#: config/tc-i386.c:13787
+#: config/tc-i386.c:13798
 #, c-format
 msgid "  -mindex-reg             support pseudo index registers\n"
 msgstr ""
 
-#: config/tc-i386.c:13789
+#: config/tc-i386.c:13800
 #, c-format
 msgid "  -mnaked-reg             don't require `%%' prefix for registers\n"
 msgstr ""
 
-#: config/tc-i386.c:13791
+#: config/tc-i386.c:13802
 #, c-format
 msgid "  -madd-bnd-prefix        add BND prefix for all valid branches\n"
 msgstr ""
 
-#: config/tc-i386.c:13794
+#: config/tc-i386.c:13805
 #, c-format
 msgid "  -mshared                disable branch optimization for shared code\n"
 msgstr ""
 
-#: config/tc-i386.c:13796
+#: config/tc-i386.c:13807
 #, c-format
 msgid "  -mx86-used-note=[no|yes] "
 msgstr ""
 
-#: config/tc-i386.c:13802
+#: config/tc-i386.c:13813
 #, c-format
 msgid ""
 "                          generate x86 used ISA and feature properties\n"
 msgstr ""
 
-#: config/tc-i386.c:13806
+#: config/tc-i386.c:13817
 #, c-format
 msgid "  -mbig-obj               generate big object files\n"
 msgstr ""
 
-#: config/tc-i386.c:13809
+#: config/tc-i386.c:13820
 #, c-format
 msgid ""
 "  -momit-lock-prefix=[no|yes] (default: no)\n"
 "                          strip all lock prefixes\n"
 msgstr ""
 
-#: config/tc-i386.c:13812
+#: config/tc-i386.c:13823
 #, c-format
 msgid ""
 "  -mfence-as-lock-add=[no|yes] (default: no)\n"
@@ -8964,24 +8966,24 @@ msgid ""
 "                           lock addl $0x0, (%%{re}sp)\n"
 msgstr ""
 
-#: config/tc-i386.c:13816
+#: config/tc-i386.c:13827
 #, c-format
 msgid "  -mrelax-relocations=[no|yes] "
 msgstr ""
 
-#: config/tc-i386.c:13822
+#: config/tc-i386.c:13833
 #, c-format
 msgid "                          generate relax relocations\n"
 msgstr ""
 
-#: config/tc-i386.c:13824
+#: config/tc-i386.c:13835
 #, c-format
 msgid ""
 "  -malign-branch-boundary=NUM (default: 0)\n"
 "                          align branches within NUM byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:13827
+#: config/tc-i386.c:13838
 #, c-format
 msgid ""
 "  -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n"
@@ -8991,28 +8993,28 @@ msgid ""
 "                          specify types of branches to align\n"
 msgstr ""
 
-#: config/tc-i386.c:13832
+#: config/tc-i386.c:13843
 #, c-format
 msgid ""
 "  -malign-branch-prefix-size=NUM (default: 5)\n"
 "                          align branches with NUM prefixes per instruction\n"
 msgstr ""
 
-#: config/tc-i386.c:13835
+#: config/tc-i386.c:13846
 #, c-format
 msgid ""
 "  -mbranches-within-32B-boundaries\n"
 "                          align branches within 32 byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:13838
+#: config/tc-i386.c:13849
 #, c-format
 msgid ""
 "  -mlfence-after-load=[no|yes] (default: no)\n"
 "                          generate lfence after load\n"
 msgstr ""
 
-#: config/tc-i386.c:13841
+#: config/tc-i386.c:13852
 #, c-format
 msgid ""
 "  -mlfence-before-indirect-branch=[none|all|register|memory] (default: "
@@ -9020,87 +9022,87 @@ msgid ""
 "                          generate lfence before indirect near branch\n"
 msgstr ""
 
-#: config/tc-i386.c:13844
+#: config/tc-i386.c:13855
 #, c-format
 msgid ""
 "  -mlfence-before-ret=[none|or|not|shl|yes] (default: none)\n"
 "                          generate lfence before ret\n"
 msgstr ""
 
-#: config/tc-i386.c:13847
+#: config/tc-i386.c:13858
 #, c-format
 msgid "  -mamd64                 accept only AMD64 ISA [default]\n"
 msgstr ""
 
-#: config/tc-i386.c:13849
+#: config/tc-i386.c:13860
 #, c-format
 msgid "  -mintel64               accept only Intel64 ISA\n"
 msgstr ""
 
-#: config/tc-i386.c:13890
+#: config/tc-i386.c:13901
 #, c-format
 msgid "Intel MCU doesn't support `%s' architecture"
 msgstr ""
 
-#: config/tc-i386.c:13958
+#: config/tc-i386.c:13969
 msgid "Intel L1OM is 64bit only"
 msgstr ""
 
-#: config/tc-i386.c:13964
+#: config/tc-i386.c:13975
 msgid "Intel K1OM is 64bit only"
 msgstr ""
 
-#: config/tc-i386.c:13970
+#: config/tc-i386.c:13981
 msgid "Intel MCU is 32bit only"
 msgstr ""
 
-#: config/tc-i386.c:14082
+#: config/tc-i386.c:14093
 msgid ""
 "constant directive skips -mlfence-before-ret and -mlfence-before-indirect-"
 "branch"
 msgstr ""
 
-#: config/tc-i386.c:14085
+#: config/tc-i386.c:14096
 msgid "constant directive skips -mlfence-before-ret"
 msgstr ""
 
-#: config/tc-i386.c:14088
+#: config/tc-i386.c:14099
 msgid "constant directive skips -mlfence-before-indirect-branch"
 msgstr ""
 
-#: config/tc-i386.c:14199
+#: config/tc-i386.c:14210
 msgid "symbol size computation overflow"
 msgstr ""
 
-#: config/tc-i386.c:14273 config/tc-sparc.c:3852
+#: config/tc-i386.c:14284 config/tc-sparc.c:3852
 #, c-format
 msgid "can not do %d byte pc-relative relocation"
 msgstr ""
 
-#: config/tc-i386.c:14291
+#: config/tc-i386.c:14302
 #, c-format
 msgid "can not do %d byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:14359
+#: config/tc-i386.c:14370
 #, c-format
 msgid "cannot represent relocation type %s in x32 mode"
 msgstr ""
 
-#: config/tc-i386.c:14396 config/tc-s390.c:2605
+#: config/tc-i386.c:14407 config/tc-s390.c:2605
 #, c-format
 msgid "cannot represent relocation type %s"
 msgstr ""
 
-#: config/tc-i386.c:14513
+#: config/tc-i386.c:14524
 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-i386.c:14516
+#: config/tc-i386.c:14527
 msgid "bad .section directive: want a,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-i386.c:14535
+#: config/tc-i386.c:14546
 msgid ".largecomm supported only in 64bit mode, producing .comm"
 msgstr ""
 
@@ -11098,7 +11100,7 @@ msgstr ""
 msgid "Not a defined coldfire architecture"
 msgstr ""
 
-#: config/tc-m68k.c:7923 read.c:4673
+#: config/tc-m68k.c:7923 read.c:4678
 #, c-format
 msgid "%s relocations do not fit in %u byte"
 msgid_plural "%s relocations do not fit in %u bytes"
@@ -12115,7 +12117,7 @@ msgstr ""
 msgid "operand %d must be constant"
 msgstr ""
 
-#: config/tc-mips.c:4970 read.c:4458 read.c:5254 write.c:263 write.c:1031
+#: config/tc-mips.c:4970 read.c:4458 read.c:5259 write.c:263 write.c:1031
 msgid "register value used as expression"
 msgstr ""
 
@@ -15458,7 +15460,7 @@ msgstr ""
 
 #: config/tc-riscv.c:1310
 #, c-format
-msgid "internal: usupported RISC-V relocation number %d"
+msgid "internal: unsupported RISC-V relocation number %d"
 msgstr ""
 
 #: config/tc-riscv.c:1392
@@ -20891,7 +20893,7 @@ msgstr ""
 msgid "bignum invalid"
 msgstr ""
 
-#: expr.c:75 read.c:3946 read.c:4452 read.c:5248
+#: expr.c:75 read.c:3946 read.c:4452 read.c:5253
 msgid "floating point number invalid"
 msgstr ""
 
@@ -20935,7 +20937,7 @@ msgstr ""
 msgid "missing '%c'"
 msgstr ""
 
-#: expr.c:1007 read.c:4732
+#: expr.c:1007 read.c:4737
 msgid "EBCDIC constants are not supported"
 msgstr ""
 
@@ -21270,18 +21272,19 @@ msgstr ""
 msgid "Please report this bug.\n"
 msgstr ""
 
-#: messages.c:384
+#: messages.c:393
 #, c-format
-msgid "%s out of domain (%"
+msgid "%s out of domain (%s is not a multiple of %s)"
 msgstr ""
 
-#: messages.c:401
+#. xgettext:c-format.
+#: messages.c:412
 #, c-format
-msgid "%s out of range (%"
+msgid "%s out of range (%s is not between %s and %s)"
 msgstr ""
 
 #. xgettext:c-format.
-#: messages.c:423
+#: messages.c:426
 #, c-format
 msgid "%s out of range (0x%s is not between 0x%s and 0x%s)"
 msgstr ""
@@ -21574,167 +21577,168 @@ msgstr ""
 msgid "bad reloc expression"
 msgstr ""
 
-#: read.c:4446 read.c:5242
+#: read.c:4446 read.c:5247
 msgid "zero assumed for missing expression"
 msgstr ""
 
-#: read.c:4466 read.c:5271
+#: read.c:4466 read.c:5276
 msgid "attempt to store value in absolute section"
 msgstr ""
 
-#: read.c:4473 read.c:5277
+#: read.c:4473 read.c:5282
 #, c-format
 msgid "attempt to store non-zero value in section `%s'"
 msgstr ""
 
 #. Leading bits contain both 0s & 1s.
-#: read.c:4550
-msgid "value 0x%"
+#: read.c:4556
+#, c-format
+msgid "value 0x%s truncated to 0x%s"
 msgstr ""
 
-#: read.c:4594
+#: read.c:4599
 #, c-format
 msgid "bignum truncated to %d byte"
 msgid_plural "bignum truncated to %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: read.c:4803 read.c:4980
+#: read.c:4808 read.c:4985
 msgid "unresolvable or nonpositive repeat count; using 1"
 msgstr ""
 
-#: read.c:4852
+#: read.c:4857
 #, c-format
 msgid "unknown floating type type '%c'"
 msgstr ""
 
-#: read.c:4874
+#: read.c:4879
 msgid "floating point constant too large"
 msgstr ""
 
-#: read.c:4937
+#: read.c:4942
 msgid "attempt to store float in absolute section"
 msgstr ""
 
-#: read.c:4944
+#: read.c:4949
 #, c-format
 msgid "attempt to store float in section `%s'"
 msgstr ""
 
-#: read.c:5360
+#: read.c:5365
 #, c-format
 msgid "attempt to store non-empty string in section `%s'"
 msgstr ""
 
-#: read.c:5422
+#: read.c:5427
 msgid "strings must be placed into a section"
 msgstr ""
 
-#: read.c:5489
+#: read.c:5494
 msgid "expected <nn>"
 msgstr ""
 
 #. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:5530 read.c:5617
+#: read.c:5535 read.c:5622
 msgid "unterminated string; newline inserted"
 msgstr ""
 
-#: read.c:5631
+#: read.c:5636
 msgid "bad escaped character in string"
 msgstr ""
 
-#: read.c:5655
+#: read.c:5660
 msgid "expected address expression"
 msgstr ""
 
-#: read.c:5674
+#: read.c:5679
 #, c-format
 msgid "symbol \"%s\" undefined; zero assumed"
 msgstr ""
 
-#: read.c:5677
+#: read.c:5682
 msgid "some symbol undefined; zero assumed"
 msgstr ""
 
-#: read.c:5711
+#: read.c:5716
 msgid "this string may not contain '\\0'"
 msgstr ""
 
-#: read.c:5748
+#: read.c:5753
 msgid "missing string"
 msgstr ""
 
-#: read.c:5839
+#: read.c:5844
 #, c-format
 msgid ".incbin count zero, ignoring `%s'"
 msgstr ""
 
-#: read.c:5865
+#: read.c:5870
 #, c-format
 msgid "file not found: %s"
 msgstr ""
 
-#: read.c:5879
+#: read.c:5884
 #, c-format
 msgid "unable to include `%s'"
 msgstr ""
 
-#: read.c:5888
+#: read.c:5893
 #, c-format
 msgid "seek to end of .incbin file failed `%s'"
 msgstr ""
 
-#: read.c:5899
+#: read.c:5904
 #, c-format
 msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
 msgstr ""
 
-#: read.c:5906
+#: read.c:5911
 #, c-format
 msgid "could not skip to %ld in file `%s'"
 msgstr ""
 
-#: read.c:5915
+#: read.c:5920
 #, c-format
 msgid "truncated file `%s', %ld of %ld bytes read"
 msgstr ""
 
-#: read.c:6072
+#: read.c:6077
 msgid "missing .func"
 msgstr ""
 
-#: read.c:6089
+#: read.c:6094
 msgid ".endfunc missing for previous .func"
 msgstr ""
 
-#: read.c:6148
+#: read.c:6153
 #, c-format
 msgid ".bundle_align_mode alignment too large (maximum %u)"
 msgstr ""
 
-#: read.c:6153
+#: read.c:6158
 msgid "cannot change .bundle_align_mode inside .bundle_lock"
 msgstr ""
 
-#: read.c:6167
+#: read.c:6172
 msgid ".bundle_lock is meaningless without .bundle_align_mode"
 msgstr ""
 
-#: read.c:6188
+#: read.c:6193
 msgid ".bundle_unlock without preceding .bundle_lock"
 msgstr ""
 
-#: read.c:6201
+#: read.c:6206
 #, c-format
 msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
 msgstr ""
 
-#: read.c:6300
+#: read.c:6305
 #, c-format
 msgid "missing closing `%c'"
 msgstr ""
 
-#: read.c:6302
+#: read.c:6307
 msgid "stray `\\'"
 msgstr ""
 
index 935b1fa7bde655542a64f1646f951d315c236c59..ea9261e639b52eca9adcff243755ee34efde7b48 100644 (file)
@@ -4546,9 +4546,14 @@ emit_expr_with_reloc (expressionS *exp,
       use = get & unmask;
       if ((get & mask) != 0 && (-get & mask) != 0)
        {
+         char get_buf[128];
+         char use_buf[128];
+
+         /* These buffers help to ease the translation of the warning message.  */
+         sprintf_vma (get_buf, get);
+         sprintf_vma (use_buf, use);
          /* Leading bits contain both 0s & 1s.  */
-         as_warn (_("value 0x%" BFD_VMA_FMT "x truncated to 0x%" BFD_VMA_FMT "x"),
-                  get, use);
+         as_warn (_("value 0x%s truncated to 0x%s"), get_buf, use_buf);
        }
       /* Put bytes in right order.  */
       md_number_to_chars (p, use, (int) nbytes);
index 96309570ef0e75c6e4ee785ef9e4767e18272296..7f98e852f623227594d395a01120a9be774f9da9 100644 (file)
@@ -1,8 +1,8 @@
 .*: Assembler messages:
-.*:5: Warning: .* (0x)?100 truncated to (0x)?0
-.*:6: Warning: .* (0x)?101 truncated to (0x)?1
-.*:11: Warning: .* (0x)?f+00 truncated to (0x)?0
-.*:12: Warning: .* (0x)?f+eff truncated to (0x)?ff
+.*:5: Warning: .* 0x0+100 truncated to 0x0+0
+.*:6: Warning: .* 0x0+101 truncated to 0x0+1
+.*:11: Warning: .* 0xf+00 truncated to 0x0+0
+.*:12: Warning: .* 0xf+eff truncated to 0x0+ff
 .*:17: Error: .* (256|(0x)?100) too large .*
 .*:18: Error: .* (257|(0x)?101) too large .*
 .*:23: Error: .* (0x)?f+00 too large .*