[PATCH v2 0/9] RISC-V: Support version controling for ISA standard extensions and CSR
authorNelson Chu <nelson.chu@sifive.com>
Wed, 20 May 2020 16:22:48 +0000 (17:22 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 20 May 2020 16:22:48 +0000 (17:22 +0100)
1. Remove the -mriscv-isa-version and --with-riscv-isa-version options.
We can still use -march to choose the version for each extensions, so there is
no need to add these.

2. Change the arguments of options from [1p9|1p9p1|...] to [1.9|1.9.1|...].
Unlike the architecture string has specified by spec, ther is no need to do
the same thing for options.

3. Spilt the patches to reduce the burdens of review.

[PATCH 3/7] RISC-V: Support new GAS options and configure options to set ISA versions
to
[PATCH v2 3/9] RISC-V: Support GAS option -misa-spec to set ISA versions
[PATCH v2 4/9] RISC-V: Support configure options to set ISA versions by default.

[PATCH 4/7] RISC-V: Support version checking for CSR according to privilege version.
to
[PATCH v2 5/9] RISC-V: Support version checking for CSR according to privilege spec version.
[PATCH v2 6/9] RISC-V: Support configure option to choose the privilege spec version.

4. Use enum class rather than string to compare the choosen ISA spec in opcodes/riscv-opc.c.
The behavior is same as comparing the choosen privilege spec.

include * opcode/riscv.h: Include "bfd.h" to support bfd_boolean.
(enum riscv_isa_spec_class): New enum class.  All supported ISA spec
belong to one of the class
(struct riscv_ext_version): New structure holds version information
for the specific ISA.
* opcode/riscv-opc.h (DECLARE_CSR): There are two version information,
define_version and abort_version.  The define_version means which
privilege spec is started to define the CSR, and the abort_version
means which privilege spec is started to abort the CSR.  If the CSR is
valid for the newest spec, then the abort_version should be
PRIV_SPEC_CLASS_DRAFT.
(DECLARE_CSR_ALIAS): Same as DECLARE_CSR, but only for the obselete CSR.
* opcode/riscv.h (enum riscv_priv_spec_class): New enum class.  Define
the current supported privilege spec versions.
(struct riscv_csr_extra): Add new fields to store more information
about the CSR.  We use these information to find the suitable CSR
address when user choosing a specific privilege spec.

binutils * dwarf.c: Updated since DECLARE_CSR is changed.

opcodes * riscv-opc.c (riscv_ext_version_table): The table used to store
all information about the supported spec and the corresponding ISA
versions.  Currently, only Zicsr is supported to verify the
correctness of Z sub extension settings.  Others will be supported
in the future patches.
(struct isa_spec_t, isa_specs): List for all supported ISA spec
classes and the corresponding strings.
(riscv_get_isa_spec_class): New function.  Get the corresponding ISA
spec class by giving a ISA spec string.
* riscv-opc.c (struct priv_spec_t): New structure.
(struct priv_spec_t priv_specs): List for all supported privilege spec
classes and the corresponding strings.
(riscv_get_priv_spec_class): New function.  Get the corresponding
privilege spec class by giving a spec string.
(riscv_get_priv_spec_name): New function.  Get the corresponding
privilege spec string by giving a CSR version class.
* riscv-dis.c: Updated since DECLARE_CSR is changed.
* riscv-dis.c: Add new disassembler option -Mpriv-spec to dump the CSR
according to the chosen version.  Build a hash table riscv_csr_hash to
store the valid CSR for the chosen pirv verison.  Dump the direct
CSR address rather than it's name if it is invalid.
(parse_riscv_dis_option_without_args): New function.  Parse the options
without arguments.
(parse_riscv_dis_option): Call parse_riscv_dis_option_without_args to
parse the options without arguments first, and then handle the options
with arguments.  Add the new option -Mpriv-spec, which has argument.
* riscv-dis.c (print_riscv_disassembler_options): Add description
about the new OBJDUMP option.

ld * testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated
        priv attributes according to the -mpriv-spec option.
* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-01.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-04.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-05.d: Likewise.

bfd  * elfxx-riscv.h (riscv_parse_subset_t): Add new callback function
get_default_version.  It is used to find the default version for
the specific extension.
* elfxx-riscv.c (riscv_parsing_subset_version): Remove the parameters
default_major_version and default_minor_version.  Add new bfd_boolean
parameter *use_default_version.  Set it to TRUE if we need to call
the callback rps->get_default_version to find the default version.
(riscv_parse_std_ext): Call rps->get_default_version if we fail to find
the default version in riscv_parsing_subset_version, and then call
riscv_add_subset to add the subset into subset list.
(riscv_parse_prefixed_ext): Likewise.
(riscv_std_z_ext_strtab): Support Zicsr extensions.
* elfnn-riscv.c (riscv_merge_std_ext): Use strcasecmp to compare the
strings rather than characters.
riscv_merge_arch_attr_info): The callback function get_default_version
is only needed for assembler, so set it to NULL int the linker.
* elfxx-riscv.c (riscv_estimate_digit): Remove the static.
* elfxx-riscv.h: Updated.

gas * testsuite/gas/riscv/priv-reg-fail-read-only-01.s: Updated.
* config/tc-riscv.c (default_arch_with_ext, default_isa_spec):
Static variables which are used to set the ISA extensions. You can
use -march (or ELF build attributes) and -misa-spec to set them,
respectively.
(ext_version_hash): The hash table used to handle the extensions
with versions.
(init_ext_version_hash): Initialize the ext_version_hash according
to riscv_ext_version_table.
(riscv_get_default_ext_version): The callback function of
riscv_parse_subset_t.  According to the choosed ISA spec,
get the default version for the specific extension.
(riscv_set_arch): Set the callback function.
(enum options, struct option md_longopts): Add new option -misa-spec.
(md_parse_option): Do not call riscv_set_arch for -march.  We will
call it later in riscv_after_parse_args.  Call riscv_get_isa_spec_class
to set default_isa_spec class.
(riscv_after_parse_args): Call init_ext_version_hash to initialize the
ext_version_hash, and then call riscv_set_arch to set the architecture
with versions according to default_arch_with_ext.
* testsuite/gas/riscv/attribute-02.d: Set 0p0 as default version for
x extensions.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-09.d: New testcase.  For i-ext, we
already set it's version to 2p1 by march, so no need to use the default
2p2 version.  For m-ext, we do not set the version by -march and ELF arch
attribute, so set the default 2p0 to it.  For zicsr, it is not defined in
ISA spec 2p2, so set 0p0 to it.
* testsuite/gas/riscv/attribute-10.d: New testcase.  The version of
zicsr is 2p0 according to ISA spec 20191213.
* config/tc-riscv.c (DEFAULT_RISCV_ARCH_WITH_EXT)
(DEFAULT_RISCV_ISA_SPEC): Default configure option settings.
You can set them by configure options --with-arch and
--with-isa-spec, respectively.
(riscv_set_default_isa_spec): New function used to set the
default ISA spec.
(md_parse_option): Call riscv_set_default_isa_spec rather than
call riscv_get_isa_spec_class directly.
(riscv_after_parse_args): If the -isa-spec is not set, then we
set the default ISA spec according to DEFAULT_RISCV_ISA_SPEC by
calling riscv_set_default_isa_spec.
* testsuite/gas/riscv/attribute-01.d: Add -misa-spec=2.2, since
the --with-isa-spec may be set to different ISA spec.
* testsuite/gas/riscv/attribute-02.d: Likewise.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-04.d: Likewise.
* testsuite/gas/riscv/attribute-05.d: Likewise.
* testsuite/gas/riscv/attribute-06.d: Likewise.
* testsuite/gas/riscv/attribute-07.d: Likewise.
* configure.ac: Add configure options, --with-arch and
--with-isa-spec.
* configure: Regenerated.
* config.in: Regenerated.
* config/tc-riscv.c (default_priv_spec): Static variable which is
used to check if the CSR is valid for the chosen privilege spec. You
can use -mpriv-spec to set it.
(enum reg_class): We now get the CSR address from csr_extra_hash rather
than reg_names_hash.  Therefore, move RCLASS_CSR behind RCLASS_MAX.
(riscv_init_csr_hashes): Only need to initialize one hash table
csr_extra_hash.
(riscv_csr_class_check): Change the return type to void.  Don't check
the ISA dependency if -mcsr-check isn't set.
(riscv_csr_version_check): New function.  Check and find the CSR address
from csr_extra_hash, according to default_priv_spec.  Report warning
for the invalid CSR if -mcsr-check is set.
(reg_csr_lookup_internal): Updated.
(reg_lookup_internal): Likewise.
(md_begin): Updated since DECLARE_CSR and DECLARE_CSR_ALIAS are changed.
(enum options, struct option md_longopts): Add new GAS option -mpriv-spec.
(md_parse_option): Call riscv_set_default_priv_version to set
default_priv_spec.
(riscv_after_parse_args): If -mpriv-spec isn't set, then set the default
privilege spec to the newest one.
(enum riscv_csr_class, struct riscv_csr_extra): Move them to
include/opcode/riscv.h.
* testsuite/gas/riscv/priv-reg-fail-fext.d: This test case just want
to check the ISA dependency for CSR, so fix the spec version by adding
-mpriv-spec=1.11.
* testsuite/gas/riscv/priv-reg-fail-fext.l: Likewise.  There are some
version warnings for the test case.
* gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.d: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-read-only-02.d: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.d: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d: New test case.
Check whether the CSR is valid when privilege version 1.9 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: New test case.
Check whether the CSR is valid when privilege version 1.9.1 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.d: New test case.
Check whether the CSR is valid when privilege version 1.10 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.d: New test case.
Check whether the CSR is valid when privilege version 1.11 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l: Likewise.
* config/tc-riscv.c (DEFAULT_RISCV_ISA_SPEC): Default configure option
setting.  You can set it by configure option --with-priv-spec.
(riscv_set_default_priv_spec): New function used to set the default
privilege spec.
(md_parse_option): Call riscv_set_default_priv_spec rather than
call riscv_get_priv_spec_class directly.
(riscv_after_parse_args): If -mpriv-spec isn't set, then we set the
default privilege spec according to DEFAULT_RISCV_PRIV_SPEC by
calling riscv_set_default_priv_spec.
* testsuite/gas/riscv/csr-dw-regnums.d: Add -mpriv-spec=1.11, since
the --with-priv-spec may be set to different privilege spec.
* testsuite/gas/riscv/priv-reg.d: Likewise.
* configure.ac: Add configure option --with-priv-spec.
* configure: Regenerated.
* config.in: Regenerated.
* config/tc-riscv.c (explicit_attr): Rename explicit_arch_attr to
explicit_attr.  Set it to TRUE if any ELF attribute is found.
(riscv_set_default_priv_spec): Try to set the default_priv_spec if
the priv attributes are set.
(md_assemble): Set the default_priv_spec according to the priv
attributes when we start to assemble instruction.
(riscv_write_out_attrs): Rename riscv_write_out_arch_attr to
riscv_write_out_attrs.  Update the arch and priv attributes.  If we
don't set the corresponding ELF attributes, then try to output the
default ones.
(riscv_set_public_attributes): If any ELF attribute or -march-attr
options is set (explicit_attr is TRUE), then call riscv_write_out_attrs
to update the arch and priv attributes.
(s_riscv_attribute): Make sure all arch and priv attributes are set
before any instruction.
* testsuite/gas/riscv/attribute-01.d: Update the priv attributes if any
ELF attribute or -march-attr is set.  If the priv attributes are not
set, then try to update them by the default setting (-mpriv-spec or
--with-priv-spec).
* testsuite/gas/riscv/attribute-02.d: Likewise.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-04.d: Likewise.
* testsuite/gas/riscv/attribute-06.d: Likewise.
* testsuite/gas/riscv/attribute-07.d: Likewise.
* testsuite/gas/riscv/attribute-08.d: Likewise.
* testsuite/gas/riscv/attribute-09.d: Likewise.
* testsuite/gas/riscv/attribute-10.d: Likewise.
* testsuite/gas/riscv/attribute-unknown.d: Likewise.
* testsuite/gas/riscv/attribute-05.d: Likewise.  Also, the priv spec
set by priv attributes must be supported.
* testsuite/gas/riscv/attribute-05.s: Likewise.
* testsuite/gas/riscv/priv-reg-fail-version-1p9.d: Likewise.  Updated
priv attributes according to the -mpriv-spec option.
* testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: Likewise.
* testsuite/gas/riscv/priv-reg-fail-version-1p10.d: Likewise.
* testsuite/gas/riscv/priv-reg-fail-version-1p11.d: Likewise.
* testsuite/gas/riscv/priv-reg.d: Removed.
* testsuite/gas/riscv/priv-reg-version-1p9.d: New test case.  Dump the
CSR according to the priv spec 1.9.
* testsuite/gas/riscv/priv-reg-version-1p9p1.d: New test case.  Dump the
CSR according to the priv spec 1.9.1.
* testsuite/gas/riscv/priv-reg-version-1p10.d: New test case.  Dump the
CSR according to the priv spec 1.10.
* testsuite/gas/riscv/priv-reg-version-1p11.d: New test case.  Dump the
CSR according to the priv spec 1.11.
* config/tc-riscv.c (md_show_usage): Add descriptions about
the new GAS options.
* doc/c-riscv.texi: Likewise.

71 files changed:
bfd/ChangeLog
bfd/elfnn-riscv.c
bfd/elfxx-riscv.c
bfd/elfxx-riscv.h
bfd/po/bfd.pot
binutils/ChangeLog
binutils/dwarf.c
gas/ChangeLog
gas/config.in
gas/config/tc-riscv.c
gas/configure
gas/configure.ac
gas/doc/c-riscv.texi
gas/po/gas.pot
gas/testsuite/gas/riscv/attribute-01.d
gas/testsuite/gas/riscv/attribute-02.d
gas/testsuite/gas/riscv/attribute-03.d
gas/testsuite/gas/riscv/attribute-04.d
gas/testsuite/gas/riscv/attribute-05.d
gas/testsuite/gas/riscv/attribute-05.s
gas/testsuite/gas/riscv/attribute-06.d
gas/testsuite/gas/riscv/attribute-07.d
gas/testsuite/gas/riscv/attribute-08.d
gas/testsuite/gas/riscv/attribute-09.d [new file with mode: 0644]
gas/testsuite/gas/riscv/attribute-10.d [new file with mode: 0644]
gas/testsuite/gas/riscv/attribute-unknown.d
gas/testsuite/gas/riscv/csr-dw-regnums.d
gas/testsuite/gas/riscv/march-fail-s-with-version [deleted file]
gas/testsuite/gas/riscv/priv-reg-fail-fext.d
gas/testsuite/gas/riscv/priv-reg-fail-fext.l
gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.d
gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.l
gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.s
gas/testsuite/gas/riscv/priv-reg-fail-read-only-02.d
gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.d
gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.l
gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-version-1p10.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-version-1p11.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-version-1p9.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d [new file with mode: 0644]
gas/testsuite/gas/riscv/priv-reg.d [deleted file]
gdb/riscv-tdep.c
gdb/riscv-tdep.h
include/ChangeLog
include/opcode/riscv-opc.h
include/opcode/riscv.h
ld/ChangeLog
ld/testsuite/ld-riscv-elf/attr-merge-arch-01.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-03.d
ld/testsuite/ld-riscv-elf/attr-merge-priv-spec-a.s
ld/testsuite/ld-riscv-elf/attr-merge-priv-spec-b.s
ld/testsuite/ld-riscv-elf/attr-merge-priv-spec.d
ld/testsuite/ld-riscv-elf/attr-merge-stack-align.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-01.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-02.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-03.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-04.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-05.d
opcodes/ChangeLog
opcodes/po/opcodes.pot
opcodes/riscv-dis.c
opcodes/riscv-opc.c

index 18543cf84039c93b5630c1cd1be645a35a609ae4..b3dabb3f33a3993654996887967cb203ce9e7b24 100644 (file)
@@ -1,3 +1,24 @@
+2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.h (riscv_parse_subset_t): Add new callback function
+       get_default_version.  It is used to find the default version for
+       the specific extension.
+       * elfxx-riscv.c (riscv_parsing_subset_version): Remove the parameters
+       default_major_version and default_minor_version.  Add new bfd_boolean
+       parameter *use_default_version.  Set it to TRUE if we need to call
+       the callback rps->get_default_version to find the default version.
+       (riscv_parse_std_ext): Call rps->get_default_version if we fail to find
+       the default version in riscv_parsing_subset_version, and then call
+       riscv_add_subset to add the subset into subset list.
+       (riscv_parse_prefixed_ext): Likewise.
+       (riscv_std_z_ext_strtab): Support Zicsr extensions.
+       * elfnn-riscv.c (riscv_merge_std_ext): Use strcasecmp to compare the
+       strings rather than characters.
+       riscv_merge_arch_attr_info): The callback function get_default_version
+       is only needed for assembler, so set it to NULL int the linker.
+       * elfxx-riscv.c (riscv_estimate_digit): Remove the static.
+       * elfxx-riscv.h: Updated.
+
 2020-05-20  Alan Modra  <amodra@gmail.com>
 
        PR 25993
 2020-05-20  Alan Modra  <amodra@gmail.com>
 
        PR 25993
index a9e8132505ba969027ac6aed9d336251fc9a2755..e8e377e32572237b107ec92ecbfd856ef31da95b 100644 (file)
@@ -2810,7 +2810,7 @@ riscv_merge_std_ext (bfd *ibfd,
   if (!riscv_i_or_e_p (ibfd, out_arch, out))
     return FALSE;
 
   if (!riscv_i_or_e_p (ibfd, out_arch, out))
     return FALSE;
 
-  if (in->name[0] != out->name[0])
+  if (strcasecmp (in->name, out->name) != 0)
     {
       /* TODO: We might allow merge 'i' with 'e'.  */
       _bfd_error_handler
     {
       /* TODO: We might allow merge 'i' with 'e'.  */
       _bfd_error_handler
@@ -2983,13 +2983,17 @@ riscv_merge_arch_attr_info (bfd *ibfd, char *in_arch, char *out_arch)
   riscv_parse_subset_t rpe_in;
   riscv_parse_subset_t rpe_out;
 
   riscv_parse_subset_t rpe_in;
   riscv_parse_subset_t rpe_out;
 
+  /* Only assembler needs to check the default version of ISA, so just set
+     the rpe_in.get_default_version and rpe_out.get_default_version to NULL.  */
   rpe_in.subset_list = &in_subsets;
   rpe_in.error_handler = _bfd_error_handler;
   rpe_in.xlen = &xlen_in;
   rpe_in.subset_list = &in_subsets;
   rpe_in.error_handler = _bfd_error_handler;
   rpe_in.xlen = &xlen_in;
+  rpe_in.get_default_version = NULL;
 
   rpe_out.subset_list = &out_subsets;
   rpe_out.error_handler = _bfd_error_handler;
   rpe_out.xlen = &xlen_out;
 
   rpe_out.subset_list = &out_subsets;
   rpe_out.error_handler = _bfd_error_handler;
   rpe_out.xlen = &xlen_out;
+  rpe_out.get_default_version = NULL;
 
   if (in_arch == NULL && out_arch == NULL)
     return NULL;
 
   if (in_arch == NULL && out_arch == NULL)
     return NULL;
index b15fdee9c7139c95582bb78ebc044826d402c903..5dd36ab965a9e56fe778d3c408faa2ec289c1c2c 100644 (file)
@@ -1025,9 +1025,8 @@ riscv_elf_add_sub_reloc (bfd *abfd,
      `minor_version`: Parsing result of minor version, set to 0 if version is
      not present in arch string, but set to `default_minor_version` if
      `major_version` using default_major_version.
      `minor_version`: Parsing result of minor version, set to 0 if version is
      not present in arch string, but set to `default_minor_version` if
      `major_version` using default_major_version.
-     `default_major_version`: Default major version.
-     `default_minor_version`: Default minor version.
-     `std_ext_p`: True if parsing std extension.  */
+     `std_ext_p`: True if parsing std extension.
+     `use_default_version`: Set it to True if we need the default version.  */
 
 static const char *
 riscv_parsing_subset_version (riscv_parse_subset_t *rps,
 
 static const char *
 riscv_parsing_subset_version (riscv_parse_subset_t *rps,
@@ -1035,17 +1034,16 @@ riscv_parsing_subset_version (riscv_parse_subset_t *rps,
                              const char *p,
                              unsigned *major_version,
                              unsigned *minor_version,
                              const char *p,
                              unsigned *major_version,
                              unsigned *minor_version,
-                             unsigned default_major_version,
-                             unsigned default_minor_version,
-                             bfd_boolean std_ext_p)
+                             bfd_boolean std_ext_p,
+                             bfd_boolean *use_default_version)
 {
   bfd_boolean major_p = TRUE;
   unsigned version = 0;
 {
   bfd_boolean major_p = TRUE;
   unsigned version = 0;
-  unsigned major = 0;
-  unsigned minor = 0;
   char np;
 
   char np;
 
-  for (;*p; ++p)
+  *major_version = 0;
+  *minor_version = 0;
+  for (; *p; ++p)
     {
       if (*p == 'p')
        {
     {
       if (*p == 'p')
        {
@@ -1062,13 +1060,14 @@ riscv_parsing_subset_version (riscv_parse_subset_t *rps,
                }
              else
                {
                }
              else
                {
-                 rps->error_handler ("-march=%s: Expect number after `%dp'.",
-                                     march, version);
+                 rps->error_handler
+                   (_("-march=%s: Expect number after `%dp'."),
+                    march, version);
                  return NULL;
                }
            }
 
                  return NULL;
                }
            }
 
-         major = version;
+         *major_version = version;
          major_p = FALSE;
          version = 0;
        }
          major_p = FALSE;
          version = 0;
        }
@@ -1079,21 +1078,15 @@ riscv_parsing_subset_version (riscv_parse_subset_t *rps,
     }
 
   if (major_p)
     }
 
   if (major_p)
-    major = version;
+    *major_version = version;
   else
   else
-    minor = version;
+    *minor_version = version;
 
 
-  if (major == 0 && minor == 0)
-    {
-      /* We don't found any version string, use default version.  */
-      *major_version = default_major_version;
-      *minor_version = default_minor_version;
-    }
-  else
-    {
-      *major_version = major;
-      *minor_version = minor;
-    }
+  /* We can not find any version in string, need to parse default version.  */
+  if (use_default_version != NULL
+      && *major_version == 0
+      && *minor_version == 0)
+    *use_default_version = TRUE;
   return p;
 }
 
   return p;
 }
 
@@ -1118,78 +1111,114 @@ riscv_supported_std_ext (void)
 
 static const char *
 riscv_parse_std_ext (riscv_parse_subset_t *rps,
 
 static const char *
 riscv_parse_std_ext (riscv_parse_subset_t *rps,
-                    const char *march, const char *p)
+                    const char *march,
+                    const char *p)
 {
   const char *all_std_exts = riscv_supported_std_ext ();
   const char *std_exts = all_std_exts;
 {
   const char *all_std_exts = riscv_supported_std_ext ();
   const char *std_exts = all_std_exts;
-
   unsigned major_version = 0;
   unsigned minor_version = 0;
   char std_ext = '\0';
   unsigned major_version = 0;
   unsigned minor_version = 0;
   char std_ext = '\0';
+  bfd_boolean use_default_version = FALSE;
 
   /* First letter must start with i, e or g.  */
   switch (*p)
     {
       case 'i':
 
   /* First letter must start with i, e or g.  */
   switch (*p)
     {
       case 'i':
-       p++;
-       p = riscv_parsing_subset_version (
-             rps,
-             march,
-             p, &major_version, &minor_version,
-             /* default_major_version= */ 2,
-             /* default_minor_version= */ 0,
-             /* std_ext_p= */TRUE);
-       riscv_add_subset (rps->subset_list, "i", major_version, minor_version);
+       p = riscv_parsing_subset_version (rps,
+                                         march,
+                                         ++p,
+                                         &major_version,
+                                         &minor_version,
+                                         /* std_ext_p= */TRUE,
+                                         &use_default_version);
+
+       /* Find the default version if needed.  */
+       if (use_default_version
+           && rps->get_default_version != NULL)
+         rps->get_default_version ("i",
+                                   &major_version,
+                                   &minor_version);
+       riscv_add_subset (rps->subset_list, "i",
+                         major_version, minor_version);
        break;
 
       case 'e':
        break;
 
       case 'e':
-       p++;
-       p = riscv_parsing_subset_version (
-             rps,
-             march,
-             p, &major_version, &minor_version,
-             /* default_major_version= */ 1,
-             /* default_minor_version= */ 9,
-             /* std_ext_p= */TRUE);
-
-       riscv_add_subset (rps->subset_list, "e", major_version, minor_version);
-       riscv_add_subset (rps->subset_list, "i", 2, 0);
+       p = riscv_parsing_subset_version (rps,
+                                         march,
+                                         ++p,
+                                         &major_version,
+                                         &minor_version,
+                                         /* std_ext_p= */TRUE,
+                                         &use_default_version);
+
+       /* Find the default version if needed.  */
+       if (use_default_version
+           && rps->get_default_version != NULL)
+         rps->get_default_version ("e",
+                                   &major_version,
+                                   &minor_version);
+       riscv_add_subset (rps->subset_list, "e",
+                         major_version, minor_version);
+
+       /* i-ext must be enabled.  */
+       if (rps->get_default_version != NULL)
+         rps->get_default_version ("i",
+                                   &major_version,
+                                   &minor_version);
+       riscv_add_subset (rps->subset_list, "i",
+                         major_version, minor_version);
 
        if (*rps->xlen > 32)
          {
 
        if (*rps->xlen > 32)
          {
-           rps->error_handler ("-march=%s: rv%de is not a valid base ISA",
-                               march, *rps->xlen);
+           rps->error_handler
+             (_("-march=%s: rv%de is not a valid base ISA"),
+              march, *rps->xlen);
            return NULL;
          }
            return NULL;
          }
-
        break;
 
       case 'g':
        break;
 
       case 'g':
-       p++;
-       p = riscv_parsing_subset_version (
-             rps,
-             march,
-             p, &major_version, &minor_version,
-             /* default_major_version= */ 2,
-             /* default_minor_version= */ 0,
-             /* std_ext_p= */TRUE);
-       riscv_add_subset (rps->subset_list, "i", major_version, minor_version);
+       /* The g-ext shouldn't has the version, so we just
+          skip the setting if user set a version to it.  */
+       p = riscv_parsing_subset_version (rps,
+                                         march,
+                                         ++p,
+                                         &major_version,
+                                         &minor_version,
+                                         TRUE,
+                                         &use_default_version);
+
+       /* i-ext must be enabled.  */
+       if (rps->get_default_version != NULL)
+         rps->get_default_version ("i",
+                                   &major_version,
+                                   &minor_version);
+       riscv_add_subset (rps->subset_list, "i",
+                         major_version, minor_version);
 
        for ( ; *std_exts != 'q'; std_exts++)
          {
            const char subset[] = {*std_exts, '\0'};
 
        for ( ; *std_exts != 'q'; std_exts++)
          {
            const char subset[] = {*std_exts, '\0'};
-           riscv_add_subset (
-             rps->subset_list, subset, major_version, minor_version);
+
+           if (rps->get_default_version != NULL)
+             rps->get_default_version (subset,
+                                       &major_version,
+                                       &minor_version);
+           riscv_add_subset (rps->subset_list, subset,
+                             major_version, minor_version);
          }
        break;
 
       default:
          }
        break;
 
       default:
-       rps->error_handler (
-         "-march=%s: first ISA subset must be `e', `i' or `g'", march);
+       rps->error_handler
+         (_("-march=%s: first ISA subset must be `e', `i' or `g'"), march);
        return NULL;
     }
 
        return NULL;
     }
 
-  while (*p)
+  /* The riscv_parsing_subset_version may set `p` to NULL, so I think we should
+     skip parsing the string if `p` is NULL or value of `p` is `\0`.  */
+  while (p != NULL && *p != '\0')
     {
       char subset[2] = {0, 0};
 
     {
       char subset[2] = {0, 0};
 
@@ -1210,29 +1239,35 @@ riscv_parse_std_ext (riscv_parse_subset_t *rps,
       if (std_ext != *std_exts)
        {
          if (strchr (all_std_exts, std_ext) == NULL)
       if (std_ext != *std_exts)
        {
          if (strchr (all_std_exts, std_ext) == NULL)
-           rps->error_handler (
-             "-march=%s: unsupported ISA subset `%c'", march, *p);
+           rps->error_handler
+             (_("-march=%s: unsupported ISA subset `%c'"), march, *p);
          else
          else
-           rps->error_handler (
-             "-march=%s: ISA string is not in canonical order. `%c'",
-             march, *p);
+           rps->error_handler
+             (_("-march=%s: ISA string is not in canonical order. `%c'"),
+              march, *p);
          return NULL;
        }
 
       std_exts++;
 
          return NULL;
        }
 
       std_exts++;
 
-      p++;
-      p = riscv_parsing_subset_version (
-           rps,
-           march,
-           p, &major_version, &minor_version,
-           /* default_major_version= */ 2,
-           /* default_minor_version= */ 0,
-           /* std_ext_p= */TRUE);
-
+      use_default_version = FALSE;
       subset[0] = std_ext;
       subset[0] = std_ext;
-
-      riscv_add_subset (rps->subset_list, subset, major_version, minor_version);
+      p = riscv_parsing_subset_version (rps,
+                                       march,
+                                       ++p,
+                                       &major_version,
+                                       &minor_version,
+                                       TRUE,
+                                       &use_default_version);
+
+      /* Find the default version if needed.  */
+      if (use_default_version
+         && rps->get_default_version != NULL)
+       rps->get_default_version (subset,
+                                 &major_version,
+                                 &minor_version);
+      riscv_add_subset (rps->subset_list, subset,
+                       major_version, minor_version);
     }
   return p;
 }
     }
   return p;
 }
@@ -1272,9 +1307,10 @@ typedef struct riscv_parse_config
 } riscv_parse_config_t;
 
 /* Parse a generic prefixed extension.
 } riscv_parse_config_t;
 
 /* Parse a generic prefixed extension.
-   march: The full architecture string as passed in by "-march=...".
-   p: Point from which to start parsing the -march string.
-   config: What class of extensions to parse, predicate funcs,
+   `rps`: Hooks and status for parsing subset.
+   `march`: The full architecture string as passed in by "-march=...".
+   `p`: Point from which to start parsing the -march string.
+   `config`: What class of extensions to parse, predicate funcs,
    and strings to use in error reporting.  */
 
 static const char *
    and strings to use in error reporting.  */
 
 static const char *
@@ -1287,6 +1323,7 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
   unsigned minor_version = 0;
   const char *last_name;
   riscv_isa_ext_class_t class;
   unsigned minor_version = 0;
   const char *last_name;
   riscv_isa_ext_class_t class;
+  bfd_boolean use_default_version;
 
   while (*p)
     {
 
   while (*p)
     {
@@ -1309,15 +1346,11 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
       while (*++q != '\0' && *q != '_' && !ISDIGIT (*q))
        ;
 
       while (*++q != '\0' && *q != '_' && !ISDIGIT (*q))
        ;
 
+      use_default_version = FALSE;
       end_of_version =
       end_of_version =
-       riscv_parsing_subset_version (
-         rps,
-         march,
-         q, &major_version, &minor_version,
-         /* default_major_version= */ 2,
-         /* default_minor_version= */ 0,
-         /* std_ext_p= */FALSE);
-
+       riscv_parsing_subset_version (rps, march, q, &major_version,
+                                     &minor_version, FALSE,
+                                     &use_default_version);
       *q = '\0';
 
       /* Check that the name is valid.
       *q = '\0';
 
       /* Check that the name is valid.
@@ -1329,7 +1362,7 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
       if (!config->ext_valid_p (subset))
        {
          rps->error_handler
       if (!config->ext_valid_p (subset))
        {
          rps->error_handler
-           ("-march=%s: Invalid or unknown %s ISA extension: '%s'",
+           (_("-march=%s: Invalid or unknown %s ISA extension: '%s'"),
             march, config->prefix, subset);
          free (subset);
          return NULL;
             march, config->prefix, subset);
          free (subset);
          return NULL;
@@ -1337,11 +1370,11 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
 
       /* Check that the last item is not the same as this.  */
       last_name = rps->subset_list->tail->name;
 
       /* Check that the last item is not the same as this.  */
       last_name = rps->subset_list->tail->name;
-
       if (!strcasecmp (last_name, subset))
        {
       if (!strcasecmp (last_name, subset))
        {
-         rps->error_handler ("-march=%s: Duplicate %s ISA extension: \'%s\'",
-                             march, config->prefix, subset);
+         rps->error_handler
+           (_("-march=%s: Duplicate %s ISA extension: \'%s\'"),
+            march, config->prefix, subset);
          free (subset);
          return NULL;
        }
          free (subset);
          return NULL;
        }
@@ -1350,20 +1383,29 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
       if (!strncasecmp (last_name, config->prefix, 1)
          && strcasecmp (last_name, subset) > 0)
        {
       if (!strncasecmp (last_name, config->prefix, 1)
          && strcasecmp (last_name, subset) > 0)
        {
-         rps->error_handler ("-march=%s: %s ISA extension not in alphabetical "
-                             "order: \'%s\' must come before \'%s\'.",
-                             march, config->prefix, subset, last_name);
+         rps->error_handler
+           (_("\
+-march=%s: %s ISA extension not in alphabetical order: \'%s\' must come before \'%s\'."),
+            march, config->prefix, subset, last_name);
          free (subset);
          return NULL;
        }
 
          free (subset);
          return NULL;
        }
 
-      riscv_add_subset (rps->subset_list, subset, major_version, minor_version);
+      /* Find the default version if needed.  */
+      if (use_default_version
+         && rps->get_default_version != NULL)
+       rps->get_default_version (subset,
+                                 &major_version,
+                                 &minor_version);
+      riscv_add_subset (rps->subset_list, subset,
+                       major_version, minor_version);
+
       free (subset);
       p += end_of_version - subset;
 
       if (*p != '\0' && *p != '_')
        {
       free (subset);
       p += end_of_version - subset;
 
       if (*p != '\0' && *p != '_')
        {
-         rps->error_handler ("-march=%s: %s must separate with _",
+         rps->error_handler (_("-march=%s: %s must separate with _"),
                              march, config->prefix);
          return NULL;
        }
                              march, config->prefix);
          return NULL;
        }
@@ -1384,7 +1426,7 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
 
 static const char * const riscv_std_z_ext_strtab[] =
   {
 
 static const char * const riscv_std_z_ext_strtab[] =
   {
-    NULL
+    "zicsr", NULL
   };
 
 /* Same as `riscv_std_z_ext_strtab', but for S-class extensions.  */
   };
 
 /* Same as `riscv_std_z_ext_strtab', but for S-class extensions.  */
@@ -1478,8 +1520,9 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
     }
   else
     {
     }
   else
     {
-      rps->error_handler ("-march=%s: ISA string must begin with rv32 or rv64",
-                         arch);
+      rps->error_handler
+       (_("-march=%s: ISA string must begin with rv32 or rv64"),
+        arch);
       return FALSE;
     }
 
       return FALSE;
     }
 
@@ -1490,7 +1533,6 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
     return FALSE;
 
   /* Parse the different classes of extensions in the specified order.  */
     return FALSE;
 
   /* Parse the different classes of extensions in the specified order.  */
-
   for (i = 0; i < ARRAY_SIZE (parse_config); ++i) {
     p = riscv_parse_prefixed_ext (rps, arch, p, &parse_config[i]);
 
   for (i = 0; i < ARRAY_SIZE (parse_config); ++i) {
     p = riscv_parse_prefixed_ext (rps, arch, p, &parse_config[i]);
 
@@ -1500,7 +1542,7 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
 
   if (*p != '\0')
     {
 
   if (*p != '\0')
     {
-      rps->error_handler ("-march=%s: unexpected ISA string at end: %s",
+      rps->error_handler (_("-march=%s: unexpected ISA string at end: %s"),
                          arch, p);
       return FALSE;
     }
                          arch, p);
       return FALSE;
     }
@@ -1508,31 +1550,35 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
   if (riscv_lookup_subset (rps->subset_list, "e")
       && riscv_lookup_subset (rps->subset_list, "f"))
     {
   if (riscv_lookup_subset (rps->subset_list, "e")
       && riscv_lookup_subset (rps->subset_list, "f"))
     {
-      rps->error_handler ("-march=%s: rv32e does not support the `f' extension",
-                         arch);
+      rps->error_handler
+       (_("-march=%s: rv32e does not support the `f' extension"),
+        arch);
       return FALSE;
     }
 
   if (riscv_lookup_subset (rps->subset_list, "d")
       && !riscv_lookup_subset (rps->subset_list, "f"))
     {
       return FALSE;
     }
 
   if (riscv_lookup_subset (rps->subset_list, "d")
       && !riscv_lookup_subset (rps->subset_list, "f"))
     {
-      rps->error_handler ("-march=%s: `d' extension requires `f' extension",
-                         arch);
+      rps->error_handler
+       (_("-march=%s: `d' extension requires `f' extension"),
+        arch);
       return FALSE;
     }
 
   if (riscv_lookup_subset (rps->subset_list, "q")
       && !riscv_lookup_subset (rps->subset_list, "d"))
     {
       return FALSE;
     }
 
   if (riscv_lookup_subset (rps->subset_list, "q")
       && !riscv_lookup_subset (rps->subset_list, "d"))
     {
-      rps->error_handler ("-march=%s: `q' extension requires `d' extension",
-                         arch);
+      rps->error_handler
+       (_("-march=%s: `q' extension requires `d' extension"),
+        arch);
       return FALSE;
     }
 
   if (riscv_lookup_subset (rps->subset_list, "q") && *rps->xlen < 64)
     {
       return FALSE;
     }
 
   if (riscv_lookup_subset (rps->subset_list, "q") && *rps->xlen < 64)
     {
-      rps->error_handler ("-march=%s: rv32 does not support the `q' extension",
-                         arch);
+      rps->error_handler
+       (_("-march=%s: rv32 does not support the `q' extension"),
+        arch);
       return FALSE;
     }
   return TRUE;
       return FALSE;
     }
   return TRUE;
@@ -1543,7 +1589,8 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
 void
 riscv_add_subset (riscv_subset_list_t *subset_list,
                  const char *subset,
 void
 riscv_add_subset (riscv_subset_list_t *subset_list,
                  const char *subset,
-                 int major, int minor)
+                 int major,
+                 int minor)
 {
   riscv_subset_t *s = xmalloc (sizeof *s);
 
 {
   riscv_subset_t *s = xmalloc (sizeof *s);
 
@@ -1567,10 +1614,10 @@ riscv_subset_t *
 riscv_lookup_subset (const riscv_subset_list_t *subset_list,
                     const char *subset)
 {
 riscv_lookup_subset (const riscv_subset_list_t *subset_list,
                     const char *subset)
 {
-  return riscv_lookup_subset_version (
-          subset_list, subset,
-          RISCV_DONT_CARE_VERSION,
-          RISCV_DONT_CARE_VERSION);
+  return riscv_lookup_subset_version
+    (subset_list, subset,
+     RISCV_DONT_CARE_VERSION,
+     RISCV_DONT_CARE_VERSION);
 }
 
 /* Find subset in list with version checking, return NULL if not found.  */
 }
 
 /* Find subset in list with version checking, return NULL if not found.  */
@@ -1617,7 +1664,7 @@ riscv_release_subset_list (riscv_subset_list_t *subset_list)
 
 /* Return the number of digits for the input.  */
 
 
 /* Return the number of digits for the input.  */
 
-static size_t
+size_t
 riscv_estimate_digit (unsigned num)
 {
   size_t digit = 0;
 riscv_estimate_digit (unsigned num)
 {
   size_t digit = 0;
index 76ee27404cb3c7cc9809d3e82d679c7d5f99f647..7b8f09b82c4b11a2986ff958f4c839203369b561 100644 (file)
@@ -72,6 +72,9 @@ typedef struct {
   void (*error_handler) (const char *,
                         ...) ATTRIBUTE_PRINTF_1;
   unsigned *xlen;
   void (*error_handler) (const char *,
                         ...) ATTRIBUTE_PRINTF_1;
   unsigned *xlen;
+  void (*get_default_version) (const char *,
+                              unsigned int *,
+                              unsigned int *);
 } riscv_parse_subset_t;
 
 extern bfd_boolean
 } riscv_parse_subset_t;
 
 extern bfd_boolean
@@ -87,6 +90,9 @@ riscv_release_subset_list (riscv_subset_list_t *);
 extern char *
 riscv_arch_str (unsigned, const riscv_subset_list_t *);
 
 extern char *
 riscv_arch_str (unsigned, const riscv_subset_list_t *);
 
+extern size_t
+riscv_estimate_digit (unsigned);
+
 /* ISA extension name class. E.g. "zbb" corresponds to RV_ISA_CLASS_Z,
    "xargs" corresponds to RV_ISA_CLASS_X, etc.  Order is important
    here.  */
 /* ISA extension name class. E.g. "zbb" corresponds to RV_ISA_CLASS_Z,
    "xargs" corresponds to RV_ISA_CLASS_X, etc.  Order is important
    here.  */
index ef909fa069849b454a33bdce9c62d9920a86bf4b..3b4f0afba351327392df56b10d8395b9ba01ede6 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2020-01-18 13:58+0000\n"
+"POT-Creation-Date: 2020-05-20 15:51+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"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,53 +18,58 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: aout-cris.c:200
+#: aout-cris.c:196
 #, c-format
 msgid "%pB: unsupported relocation type exported: %#x"
 msgstr ""
 
 #, c-format
 msgid "%pB: unsupported relocation type exported: %#x"
 msgstr ""
 
-#: aout-cris.c:244
+#: aout-cris.c:242
 #, c-format
 msgid "%pB: unsupported relocation type imported: %#x"
 msgstr ""
 
 #, c-format
 msgid "%pB: unsupported relocation type imported: %#x"
 msgstr ""
 
-#: aout-cris.c:256
+#: aout-cris.c:254
 #, c-format
 msgid "%pB: bad relocation record imported: %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: bad relocation record imported: %d"
 msgstr ""
 
-#: aoutx.h:1265 aoutx.h:1618 pdp11.c:1139 pdp11.c:1392
+#: aoutx.h:1254 aoutx.h:1602 pdp11.c:1190 pdp11.c:1439
 #, c-format
 msgid "%pB: can not represent section `%pA' in a.out object file format"
 msgstr ""
 
 #, c-format
 msgid "%pB: can not represent section `%pA' in a.out object file format"
 msgstr ""
 
-#: aoutx.h:1582 pdp11.c:1364
+#: aoutx.h:1566 pdp11.c:1411
 #, c-format
 msgid ""
 "%pB: can not represent section for symbol `%s' in a.out object file format"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: can not represent section for symbol `%s' in a.out object file format"
 msgstr ""
 
-#: aoutx.h:1585 vms-alpha.c:7957
+#: aoutx.h:1569 vms-alpha.c:8011
 msgid "*unknown*"
 msgstr ""
 
 msgid "*unknown*"
 msgstr ""
 
-#: aoutx.h:1721
+#: aoutx.h:1705
 #, c-format
 msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
 msgstr ""
 
-#: aoutx.h:2412 aoutx.h:2430
+#: aoutx.h:1952
+#, c-format
+msgid "%pB: unsupported AOUT relocation size: %d"
+msgstr ""
+
+#: aoutx.h:2401 aoutx.h:2419
 #, c-format
 msgid "%pB: attempt to write out unknown reloc type"
 msgstr ""
 
 #, c-format
 msgid "%pB: attempt to write out unknown reloc type"
 msgstr ""
 
-#: aoutx.h:4085
+#: aoutx.h:4077
 #, c-format
 msgid "%pB: unsupported relocation type"
 msgstr ""
 
 #. Unknown relocation.
 #, c-format
 msgid "%pB: unsupported relocation type"
 msgstr ""
 
 #. Unknown relocation.
-#: aoutx.h:4406 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2776
+#: aoutx.h:4398 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2758
 #: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:798
 #: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:536
 #: elf32-arm.c:1985 elf32-avr.c:964 elf32-bfin.c:1062 elf32-bfin.c:4693
 #: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:798
 #: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:536
 #: elf32-arm.c:1985 elf32-avr.c:964 elf32-bfin.c:1062 elf32-bfin.c:4693
@@ -77,30 +82,28 @@ msgstr ""
 #: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
 #: elf32-mep.c:389 elf32-metag.c:878 elf32-microblaze.c:692
 #: elf32-microblaze.c:969 elf32-mips.c:2229 elf32-moxie.c:137
 #: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
 #: elf32-mep.c:389 elf32-metag.c:878 elf32-microblaze.c:692
 #: elf32-microblaze.c:969 elf32-mips.c:2229 elf32-moxie.c:137
-#: elf32-msp430.c:651 elf32-msp430.c:661 elf32-mt.c:241 elf32-nds32.c:3240
-#: elf32-nds32.c:3266 elf32-nds32.c:5177 elf32-nios2.c:3015 elf32-or1k.c:1037
+#: elf32-msp430.c:653 elf32-msp430.c:663 elf32-mt.c:241 elf32-nds32.c:3240
+#: elf32-nds32.c:3266 elf32-nds32.c:5177 elf32-nios2.c:3026 elf32-or1k.c:1044
 #: elf32-pj.c:326 elf32-ppc.c:901 elf32-ppc.c:914 elf32-pru.c:423
 #: elf32-rl78.c:291 elf32-rx.c:313 elf32-rx.c:322 elf32-s12z.c:296
 #: elf32-s390.c:347 elf32-sh.c:440 elf32-spu.c:163 elf32-tic6x.c:1508
 #: elf32-tic6x.c:1518 elf32-tic6x.c:1537 elf32-tic6x.c:1547 elf32-tic6x.c:2642
 #: elf32-pj.c:326 elf32-ppc.c:901 elf32-ppc.c:914 elf32-pru.c:423
 #: elf32-rl78.c:291 elf32-rx.c:313 elf32-rx.c:322 elf32-s12z.c:296
 #: elf32-s390.c:347 elf32-sh.c:440 elf32-spu.c:163 elf32-tic6x.c:1508
 #: elf32-tic6x.c:1518 elf32-tic6x.c:1537 elf32-tic6x.c:1547 elf32-tic6x.c:2642
-#: elf32-tilepro.c:803 elf32-v850.c:1898 elf32-v850.c:1920 elf32-v850.c:4268
+#: elf32-tilepro.c:803 elf32-v850.c:1898 elf32-v850.c:1920 elf32-v850.c:4273
 #: elf32-vax.c:290 elf32-visium.c:481 elf32-wasm32.c:105 elf32-xc16x.c:250
 #: elf32-vax.c:290 elf32-visium.c:481 elf32-wasm32.c:105 elf32-xc16x.c:250
-#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:464
-#: elf32-xtensa.c:498 elf32-z80.c:320 elf64-alpha.c:1113 elf64-alpha.c:4102
-#: elf64-alpha.c:4250 elf64-bpf.c:322 elf64-ia64-vms.c:254
-#: elf64-ia64-vms.c:3438 elf64-mips.c:3958 elf64-mips.c:3974 elf64-mmix.c:1264
-#: elf64-nfp.c:238 elf64-ppc.c:1014 elf64-ppc.c:1349 elf64-ppc.c:1358
-#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:285 elfn32-mips.c:3786
+#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:502
+#: elf32-xtensa.c:536 elf32-z80.c:331 elf64-alpha.c:1113 elf64-alpha.c:4117
+#: elf64-alpha.c:4265 elf64-bpf.c:322 elf64-ia64-vms.c:254
+#: elf64-ia64-vms.c:3437 elf64-mips.c:3958 elf64-mips.c:3974 elf64-mmix.c:1264
+#: elf64-nfp.c:238 elf64-ppc.c:1015 elf64-ppc.c:1350 elf64-ppc.c:1359
+#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:282 elfn32-mips.c:3786
 #: elfxx-ia64.c:324 elfxx-riscv.c:955 elfxx-sparc.c:589 elfxx-sparc.c:639
 #: elfxx-ia64.c:324 elfxx-riscv.c:955 elfxx-sparc.c:589 elfxx-sparc.c:639
-#: elfxx-tilegx.c:912 elfxx-tilegx.c:952
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2215
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2313 elf32-ia64.c:214
-#: elf32-ia64.c:3862 elf64-ia64.c:214 elf64-ia64.c:3862
+#: elfxx-tilegx.c:912 elfxx-tilegx.c:952 elfnn-aarch64.c:2215
+#: elfnn-aarch64.c:2313 elfnn-ia64.c:214 elfnn-ia64.c:3861
 #, c-format
 msgid "%pB: unsupported relocation type %#x"
 msgstr ""
 
 #, c-format
 msgid "%pB: unsupported relocation type %#x"
 msgstr ""
 
-#: aoutx.h:5432 pdp11.c:3685
+#: aoutx.h:5425 pdp11.c:3725
 #, c-format
 msgid "%pB: relocatable link from %s to %s not supported"
 msgstr ""
 #, c-format
 msgid "%pB: relocatable link from %s to %s not supported"
 msgstr ""
@@ -110,141 +113,141 @@ msgstr ""
 msgid "%pB: cannot allocate memory for local GOT entries"
 msgstr ""
 
 msgid "%pB: cannot allocate memory for local GOT entries"
 msgstr ""
 
-#: archive.c:2227
+#: archive.c:2250
 msgid "warning: writing archive was slow: rewriting timestamp"
 msgstr ""
 
 msgid "warning: writing archive was slow: rewriting timestamp"
 msgstr ""
 
-#: archive.c:2294 archive.c:2355 elflink.c:4437 linker.c:1428
+#: archive.c:2317 archive.c:2378 elflink.c:4539 linker.c:1428
 #, c-format
 msgid "%pB: plugin needed to handle lto object"
 msgstr ""
 
 #, c-format
 msgid "%pB: plugin needed to handle lto object"
 msgstr ""
 
-#: archive.c:2585
+#: archive.c:2608
 msgid "Reading archive file mod timestamp"
 msgstr ""
 
 msgid "Reading archive file mod timestamp"
 msgstr ""
 
-#: archive.c:2609
+#: archive.c:2632
 msgid "Writing updated armap timestamp"
 msgstr ""
 
 msgid "Writing updated armap timestamp"
 msgstr ""
 
-#: bfd.c:673
+#: bfd.c:677
 msgid "no error"
 msgstr ""
 
 msgid "no error"
 msgstr ""
 
-#: bfd.c:674
+#: bfd.c:678
 msgid "system call error"
 msgstr ""
 
 msgid "system call error"
 msgstr ""
 
-#: bfd.c:675
+#: bfd.c:679
 msgid "invalid bfd target"
 msgstr ""
 
 msgid "invalid bfd target"
 msgstr ""
 
-#: bfd.c:676
+#: bfd.c:680
 msgid "file in wrong format"
 msgstr ""
 
 msgid "file in wrong format"
 msgstr ""
 
-#: bfd.c:677
+#: bfd.c:681
 msgid "archive object file in wrong format"
 msgstr ""
 
 msgid "archive object file in wrong format"
 msgstr ""
 
-#: bfd.c:678
+#: bfd.c:682
 msgid "invalid operation"
 msgstr ""
 
 msgid "invalid operation"
 msgstr ""
 
-#: bfd.c:679
+#: bfd.c:683
 msgid "memory exhausted"
 msgstr ""
 
 msgid "memory exhausted"
 msgstr ""
 
-#: bfd.c:680
+#: bfd.c:684
 msgid "no symbols"
 msgstr ""
 
 msgid "no symbols"
 msgstr ""
 
-#: bfd.c:681
+#: bfd.c:685
 msgid "archive has no index; run ranlib to add one"
 msgstr ""
 
 msgid "archive has no index; run ranlib to add one"
 msgstr ""
 
-#: bfd.c:682
+#: bfd.c:686
 msgid "no more archived files"
 msgstr ""
 
 msgid "no more archived files"
 msgstr ""
 
-#: bfd.c:683
+#: bfd.c:687
 msgid "malformed archive"
 msgstr ""
 
 msgid "malformed archive"
 msgstr ""
 
-#: bfd.c:684
+#: bfd.c:688
 msgid "DSO missing from command line"
 msgstr ""
 
 msgid "DSO missing from command line"
 msgstr ""
 
-#: bfd.c:685
+#: bfd.c:689
 msgid "file format not recognized"
 msgstr ""
 
 msgid "file format not recognized"
 msgstr ""
 
-#: bfd.c:686
+#: bfd.c:690
 msgid "file format is ambiguous"
 msgstr ""
 
 msgid "file format is ambiguous"
 msgstr ""
 
-#: bfd.c:687
+#: bfd.c:691
 msgid "section has no contents"
 msgstr ""
 
 msgid "section has no contents"
 msgstr ""
 
-#: bfd.c:688
+#: bfd.c:692
 msgid "nonrepresentable section on output"
 msgstr ""
 
 msgid "nonrepresentable section on output"
 msgstr ""
 
-#: bfd.c:689
+#: bfd.c:693
 msgid "symbol needs debug section which does not exist"
 msgstr ""
 
 msgid "symbol needs debug section which does not exist"
 msgstr ""
 
-#: bfd.c:690
+#: bfd.c:694
 msgid "bad value"
 msgstr ""
 
 msgid "bad value"
 msgstr ""
 
-#: bfd.c:691
+#: bfd.c:695
 msgid "file truncated"
 msgstr ""
 
 msgid "file truncated"
 msgstr ""
 
-#: bfd.c:692
+#: bfd.c:696
 msgid "file too big"
 msgstr ""
 
 msgid "file too big"
 msgstr ""
 
-#: bfd.c:693
+#: bfd.c:697
 msgid "sorry, cannot handle this file"
 msgstr ""
 
 msgid "sorry, cannot handle this file"
 msgstr ""
 
-#: bfd.c:694
+#: bfd.c:698
 #, c-format
 msgid "error reading %s: %s"
 msgstr ""
 
 #, c-format
 msgid "error reading %s: %s"
 msgstr ""
 
-#: bfd.c:695
+#: bfd.c:699
 msgid "#<invalid error code>"
 msgstr ""
 
 msgid "#<invalid error code>"
 msgstr ""
 
-#: bfd.c:1654
+#: bfd.c:1658
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr ""
 
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr ""
 
-#: bfd.c:1667
+#: bfd.c:1671
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d in %s\n"
 msgstr ""
 
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d in %s\n"
 msgstr ""
 
-#: bfd.c:1672
+#: bfd.c:1676
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d\n"
 msgstr ""
 
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d\n"
 msgstr ""
 
-#: bfd.c:1674
+#: bfd.c:1678
 msgid "Please report this bug.\n"
 msgstr ""
 
 msgid "Please report this bug.\n"
 msgstr ""
 
-#: bfdwin.c:206
+#: bfdwin.c:207
 #, c-format
 msgid "not mapping: data=%lx mapped=%d\n"
 msgstr ""
 
 #, c-format
 msgid "not mapping: data=%lx mapped=%d\n"
 msgstr ""
 
-#: bfdwin.c:209
+#: bfdwin.c:210
 #, c-format
 msgid "not mapping: env var not set\n"
 msgstr ""
 #, c-format
 msgid "not mapping: env var not set\n"
 msgstr ""
@@ -274,23 +277,28 @@ msgstr ""
 msgid "using multiple gp values"
 msgstr ""
 
 msgid "using multiple gp values"
 msgstr ""
 
-#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:9274 elf32-mcore.c:100
-#: elf32-mcore.c:455 elf32-ppc.c:7670 elf32-ppc.c:8821 elf64-ppc.c:15566
+#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:9437 elf32-mcore.c:100
+#: elf32-mcore.c:455 elf32-ppc.c:7679 elf32-ppc.c:8830 elf64-ppc.c:16024
 #, c-format
 msgid "%pB: %s unsupported"
 msgstr ""
 
 #, c-format
 msgid "%pB: %s unsupported"
 msgstr ""
 
+#: coff-go32.c:156 coffswap.h:785
+#, c-format
+msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgstr ""
+
 #: coff-mips.c:643 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330
 #: elf64-mips.c:3451 elfn32-mips.c:3276
 msgid "GP relative relocation when _gp not defined"
 msgstr ""
 
 #: coff-mips.c:643 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330
 #: elf64-mips.c:3451 elfn32-mips.c:3276
 msgid "GP relative relocation when _gp not defined"
 msgstr ""
 
-#: coff-rs6000.c:2862
+#: coff-rs6000.c:2844
 #, c-format
 msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
 msgstr ""
 
 #, c-format
 msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
 msgstr ""
 
-#: coff-rs6000.c:3624 coff64-rs6000.c:2154
+#: coff-rs6000.c:3607 coff64-rs6000.c:2153
 #, c-format
 msgid "%pB: symbol `%s' has unrecognized smclas %d"
 msgstr ""
 #, c-format
 msgid "%pB: symbol `%s' has unrecognized smclas %d"
 msgstr ""
@@ -345,29 +353,29 @@ msgstr ""
 msgid "%pB: illegal symbol index %ld in relocs"
 msgstr ""
 
 msgid "%pB: illegal symbol index %ld in relocs"
 msgstr ""
 
-#: coff-tic4x.c:228 coff-tic54x.c:366 coffcode.h:5008
+#: coff-tic4x.c:228 coff-tic54x.c:366 coffcode.h:5086
 #, c-format
 msgid "%pB: warning: illegal symbol index %ld in relocs"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: illegal symbol index %ld in relocs"
 msgstr ""
 
-#: coffcode.h:952
+#: coffcode.h:961
 #, c-format
 msgid "%pB: unable to load COMDAT section name"
 msgstr ""
 
 #. Malformed input files can trigger this test.
 #. cf PR 21781.
 #, c-format
 msgid "%pB: unable to load COMDAT section name"
 msgstr ""
 
 #. Malformed input files can trigger this test.
 #. cf PR 21781.
-#: coffcode.h:987
+#: coffcode.h:996
 #, c-format
 msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
 msgstr ""
 
-#: coffcode.h:999
+#: coffcode.h:1008
 #, c-format
 msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr ""
 
-#: coffcode.h:1009
+#: coffcode.h:1018
 #, c-format
 msgid "%pB: warning: no symbol for section '%s' found"
 msgstr ""
 #, c-format
 msgid "%pB: warning: no symbol for section '%s' found"
 msgstr ""
@@ -375,139 +383,126 @@ msgstr ""
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1240
+#: coffcode.h:1249
 #, c-format
 msgid "%pB: warning: ignoring section flag %s in section %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: ignoring section flag %s in section %s"
 msgstr ""
 
-#: coffcode.h:1309
+#: coffcode.h:1318
 #, c-format
 msgid "%pB (%s): section flag %s (%#lx) ignored"
 msgstr ""
 
 #, c-format
 msgid "%pB (%s): section flag %s (%#lx) ignored"
 msgstr ""
 
-#: coffcode.h:1920
+#: coffcode.h:1934 coffcode.h:1999
 #, c-format
 msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
 msgstr ""
 
-#: coffcode.h:2329
+#: coffcode.h:2365
 #, c-format
 msgid "unrecognized TI COFF target id '0x%x'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized TI COFF target id '0x%x'"
 msgstr ""
 
-#: coffcode.h:2607
+#: coffcode.h:2643
 #, c-format
 msgid "%pB: reloc against a non-existent symbol index: %ld"
 msgstr ""
 
 #, c-format
 msgid "%pB: reloc against a non-existent symbol index: %ld"
 msgstr ""
 
-#: coffcode.h:2915
+#: coffcode.h:2952
 #, c-format
 msgid "%pB: page size is too large (0x%x)"
 msgstr ""
 
 #, c-format
 msgid "%pB: page size is too large (0x%x)"
 msgstr ""
 
-#: coffcode.h:3075
+#: coffcode.h:3112
 #, c-format
 msgid "%pB: too many sections (%d)"
 msgstr ""
 
 #, c-format
 msgid "%pB: too many sections (%d)"
 msgstr ""
 
-#: coffcode.h:3494
+#: coffcode.h:3531
 #, c-format
 msgid "%pB: section %pA: string table overflow at offset %ld"
 msgstr ""
 
 #, c-format
 msgid "%pB: section %pA: string table overflow at offset %ld"
 msgstr ""
 
-#: coffcode.h:3594
+#: coffcode.h:3631
 #, c-format
 msgid "%pB:%s section %s: alignment 2**%u not representable"
 msgstr ""
 
 #, c-format
 msgid "%pB:%s section %s: alignment 2**%u not representable"
 msgstr ""
 
-#: coffcode.h:4275
+#: coffcode.h:4330
 #, c-format
 msgid "%pB: warning: line number count (%#lx) exceeds section size (%#lx)"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: line number count (%#lx) exceeds section size (%#lx)"
 msgstr ""
 
-#: coffcode.h:4292
+#: coffcode.h:4350
 #, c-format
 msgid "%pB: warning: line number table read failed"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: line number table read failed"
 msgstr ""
 
-#: coffcode.h:4326 coffcode.h:4340
+#: coffcode.h:4384 coffcode.h:4398
 #, c-format
 msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
 msgstr ""
 
-#: coffcode.h:4354
+#: coffcode.h:4412
 #, c-format
 msgid "%pB: warning: illegal symbol in line number entry %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: illegal symbol in line number entry %d"
 msgstr ""
 
-#: coffcode.h:4367
+#: coffcode.h:4425
 #, c-format
 msgid "%pB: warning: duplicate line number information for `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: duplicate line number information for `%s'"
 msgstr ""
 
-#: coffcode.h:4772
+#: coffcode.h:4846
 #, c-format
 msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
 msgstr ""
 
-#: coffcode.h:4902
+#: coffcode.h:4976
 #, c-format
 msgid "warning: %pB: local symbol `%s' has no section"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB: local symbol `%s' has no section"
 msgstr ""
 
-#: coffcode.h:5048
+#: coffcode.h:5126
 #, c-format
 msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
 msgstr ""
 
-#: coffgen.c:179 elf.c:1248
+#: coffgen.c:179 elf.c:1239
 #, c-format
 msgid "%pB: unable to initialize compress status for section %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to initialize compress status for section %s"
 msgstr ""
 
-#: coffgen.c:203 elf.c:1259
+#: coffgen.c:203 elf.c:1250
 #, c-format
 msgid "%pB: unable to initialize decompress status for section %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to initialize decompress status for section %s"
 msgstr ""
 
-#: coffgen.c:1664
-#, c-format
-msgid "%pB: corrupt symbol count: %#<PRIx64>"
-msgstr ""
-
-#. PR 21013: Provide an error message when the alloc fails.
-#: coffgen.c:1673
-#, c-format
-msgid ""
-"%pB: not enough memory to allocate space for %#<PRIx64> symbols of size "
-"%#<PRIx64>"
-msgstr ""
-
-#: coffgen.c:1742
+#: coffgen.c:1709
 #, c-format
 msgid "%pB: bad string table size %<PRIu64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: bad string table size %<PRIu64>"
 msgstr ""
 
-#: coffgen.c:1911 coffgen.c:1971 coffgen.c:1989 cofflink.c:2049 elf.c:1925
-#: xcofflink.c:4506
+#: coffgen.c:1881 coffgen.c:1941 coffgen.c:1959 cofflink.c:2049 elf.c:1925
+#: xcofflink.c:4510
 msgid "<corrupt>"
 msgstr ""
 
 msgid "<corrupt>"
 msgstr ""
 
-#: coffgen.c:2120
+#: coffgen.c:2090
 #, c-format
 msgid "<corrupt info> %s"
 msgstr ""
 
 #, c-format
 msgid "<corrupt info> %s"
 msgstr ""
 
-#: coffgen.c:2706 elflink.c:14466 linker.c:2960
+#: coffgen.c:2676 elflink.c:14613 linker.c:2960
 msgid "%F%P: already_linked_table: %E\n"
 msgstr ""
 
 msgid "%F%P: already_linked_table: %E\n"
 msgstr ""
 
-#: coffgen.c:3047 elflink.c:13460
+#: coffgen.c:3017 elflink.c:13606
 #, c-format
 msgid "removing unused section '%pA' in file '%pB'"
 msgstr ""
 
 #, c-format
 msgid "removing unused section '%pA' in file '%pB'"
 msgstr ""
 
-#: coffgen.c:3124 elflink.c:13678
+#: coffgen.c:3094 elflink.c:13824
 msgid "warning: gc-sections option ignored"
 msgstr ""
 
 msgid "warning: gc-sections option ignored"
 msgstr ""
 
@@ -516,7 +511,7 @@ msgstr ""
 msgid "warning: symbol `%s' is both section and non-section"
 msgstr ""
 
 msgid "warning: symbol `%s' is both section and non-section"
 msgstr ""
 
-#: cofflink.c:458 elf64-ia64-vms.c:5205 elflink.c:5023
+#: cofflink.c:458 elf64-ia64-vms.c:5208 elflink.c:5125
 #, c-format
 msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
 msgstr ""
 #, c-format
 msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
 msgstr ""
@@ -526,7 +521,7 @@ msgstr ""
 msgid "%pB: relocs in section `%pA', but it has no contents"
 msgstr ""
 
 msgid "%pB: relocs in section `%pA', but it has no contents"
 msgstr ""
 
-#: cofflink.c:2440 elflink.c:10947
+#: cofflink.c:2440 elflink.c:11060
 #, c-format
 msgid ""
 "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `"
 #, c-format
 msgid ""
 "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `"
@@ -548,24 +543,19 @@ msgstr ""
 msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
 msgstr ""
 
 msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
 msgstr ""
 
-#: coffswap.h:783
-#, c-format
-msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff"
-msgstr ""
-
-#: coffswap.h:797
+#: coffswap.h:799
 #, c-format
 msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
 msgstr ""
 
 #, c-format
 msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
 msgstr ""
 
-#: compress.c:268
+#: compress.c:271
 #, c-format
 msgid ""
 "error: %pB(%pA) section size (%#<PRIx64> bytes) is larger than file size "
 "(%#<PRIx64> bytes)"
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB(%pA) section size (%#<PRIx64> bytes) is larger than file size "
 "(%#<PRIx64> bytes)"
 msgstr ""
 
-#: compress.c:279
+#: compress.c:282
 #, c-format
 msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
 msgstr ""
 #, c-format
 msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
 msgstr ""
@@ -601,188 +591,193 @@ msgstr ""
 msgid "DWARF error: invalid or unhandled FORM value: %#x"
 msgstr ""
 
 msgid "DWARF error: invalid or unhandled FORM value: %#x"
 msgstr ""
 
-#: dwarf2.c:1641
+#: dwarf2.c:1646
 msgid "DWARF error: mangled line number section (bad file number)"
 msgstr ""
 
 msgid "DWARF error: mangled line number section (bad file number)"
 msgstr ""
 
-#: dwarf2.c:1989
+#: dwarf2.c:1994
 msgid "DWARF error: zero format count"
 msgstr ""
 
 msgid "DWARF error: zero format count"
 msgstr ""
 
-#: dwarf2.c:1999
+#: dwarf2.c:2004
 #, c-format
 msgid "DWARF error: data count (%<PRIx64>) larger than buffer size"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: data count (%<PRIx64>) larger than buffer size"
 msgstr ""
 
-#: dwarf2.c:2040
+#: dwarf2.c:2045
 #, c-format
 msgid "DWARF error: unknown format content type %<PRIu64>"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: unknown format content type %<PRIu64>"
 msgstr ""
 
-#: dwarf2.c:2107
+#: dwarf2.c:2112
 #, c-format
 msgid "DWARF error: line info section is too small (%<PRId64>)"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: line info section is too small (%<PRId64>)"
 msgstr ""
 
-#: dwarf2.c:2137
+#: dwarf2.c:2142
 #, c-format
 msgid ""
 "DWARF error: line info data is bigger (%#<PRIx64>) than the space remaining "
 "in the section (%#lx)"
 msgstr ""
 
 #, c-format
 msgid ""
 "DWARF error: line info data is bigger (%#<PRIx64>) than the space remaining "
 "in the section (%#lx)"
 msgstr ""
 
-#: dwarf2.c:2150
+#: dwarf2.c:2155
 #, c-format
 msgid "DWARF error: unhandled .debug_line version %d"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: unhandled .debug_line version %d"
 msgstr ""
 
-#: dwarf2.c:2160
+#: dwarf2.c:2165
 msgid "DWARF error: ran out of room reading prologue"
 msgstr ""
 
 msgid "DWARF error: ran out of room reading prologue"
 msgstr ""
 
-#: dwarf2.c:2178
+#: dwarf2.c:2183
 #, c-format
 msgid "DWARF error: line info unsupported segment selector size %u"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: line info unsupported segment selector size %u"
 msgstr ""
 
-#: dwarf2.c:2205
+#: dwarf2.c:2210
 msgid "DWARF error: invalid maximum operations per instruction"
 msgstr ""
 
 msgid "DWARF error: invalid maximum operations per instruction"
 msgstr ""
 
-#: dwarf2.c:2224
+#: dwarf2.c:2229
 msgid "DWARF error: ran out of room reading opcodes"
 msgstr ""
 
 msgid "DWARF error: ran out of room reading opcodes"
 msgstr ""
 
-#: dwarf2.c:2415
+#: dwarf2.c:2420
 msgid "DWARF error: mangled line number section"
 msgstr ""
 
 msgid "DWARF error: mangled line number section"
 msgstr ""
 
-#: dwarf2.c:2905
+#: dwarf2.c:2910
 msgid "DWARF error: abstract instance recursion detected"
 msgstr ""
 
 msgid "DWARF error: abstract instance recursion detected"
 msgstr ""
 
-#: dwarf2.c:2939 dwarf2.c:3033
+#: dwarf2.c:2944 dwarf2.c:3038
 msgid "DWARF error: invalid abstract instance DIE ref"
 msgstr ""
 
 msgid "DWARF error: invalid abstract instance DIE ref"
 msgstr ""
 
-#: dwarf2.c:2955
+#: dwarf2.c:2960
 #, c-format
 msgid "DWARF error: unable to read alt ref %<PRIu64>"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: unable to read alt ref %<PRIu64>"
 msgstr ""
 
-#: dwarf2.c:3011
+#: dwarf2.c:3016
 #, c-format
 msgid "DWARF error: unable to locate abstract instance DIE ref %<PRIu64>"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: unable to locate abstract instance DIE ref %<PRIu64>"
 msgstr ""
 
-#: dwarf2.c:3050 dwarf2.c:3216 dwarf2.c:3571
+#: dwarf2.c:3055 dwarf2.c:3237 dwarf2.c:3623
 #, c-format
 msgid "DWARF error: could not find abbrev number %u"
 msgstr ""
 
 #, c-format
 msgid "DWARF error: could not find abbrev number %u"
 msgstr ""
 
-#: dwarf2.c:3490
+#: dwarf2.c:3386
+#, c-format
+msgid "DWARF error: could not find variable specification at offset %lx"
+msgstr ""
+
+#: dwarf2.c:3542
 #, c-format
 msgid ""
 "DWARF error: found dwarf version '%u', this reader only handles version 2, "
 "3, 4 and 5 information"
 msgstr ""
 
 #, c-format
 msgid ""
 "DWARF error: found dwarf version '%u', this reader only handles version 2, "
 "3, 4 and 5 information"
 msgstr ""
 
-#: dwarf2.c:3534
+#: dwarf2.c:3586
 #, c-format
 msgid ""
 "DWARF error: found address size '%u', this reader can not handle sizes "
 "greater than '%u'"
 msgstr ""
 
 #, c-format
 msgid ""
 "DWARF error: found address size '%u', this reader can not handle sizes "
 "greater than '%u'"
 msgstr ""
 
-#: dwarf2.c:3638
+#: dwarf2.c:3690
 msgid ""
 "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form"
 msgstr ""
 
 msgid ""
 "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form"
 msgstr ""
 
-#: ecoff.c:971
+#: ecoff.c:984
 #, c-format
 msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
 msgstr ""
 
-#: ecoff.c:1268
+#: ecoff.c:1281
 #, c-format
 msgid "unknown basic type %d"
 msgstr ""
 
 #, c-format
 msgid "unknown basic type %d"
 msgstr ""
 
-#: ecoff.c:1525
+#: ecoff.c:1538
 #, c-format
 msgid ""
 "\n"
 "      End+1 symbol: %ld"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      End+1 symbol: %ld"
 msgstr ""
 
-#: ecoff.c:1532 ecoff.c:1535
+#: ecoff.c:1545 ecoff.c:1548
 #, c-format
 msgid ""
 "\n"
 "      First symbol: %ld"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      First symbol: %ld"
 msgstr ""
 
-#: ecoff.c:1548
+#: ecoff.c:1561
 #, c-format
 msgid ""
 "\n"
 "      End+1 symbol: %-7ld   Type:  %s"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      End+1 symbol: %-7ld   Type:  %s"
 msgstr ""
 
-#: ecoff.c:1555
+#: ecoff.c:1568
 #, c-format
 msgid ""
 "\n"
 "      Local symbol: %ld"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      Local symbol: %ld"
 msgstr ""
 
-#: ecoff.c:1563
+#: ecoff.c:1576
 #, c-format
 msgid ""
 "\n"
 "      struct; End+1 symbol: %ld"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      struct; End+1 symbol: %ld"
 msgstr ""
 
-#: ecoff.c:1568
+#: ecoff.c:1581
 #, c-format
 msgid ""
 "\n"
 "      union; End+1 symbol: %ld"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      union; End+1 symbol: %ld"
 msgstr ""
 
-#: ecoff.c:1573
+#: ecoff.c:1586
 #, c-format
 msgid ""
 "\n"
 "      enum; End+1 symbol: %ld"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      enum; End+1 symbol: %ld"
 msgstr ""
 
-#: ecoff.c:1579
+#: ecoff.c:1592
 #, c-format
 msgid ""
 "\n"
 "      Type: %s"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "      Type: %s"
 msgstr ""
 
-#: elf-attrs.c:446
+#: elf-attrs.c:449
 #, c-format
 msgid "%pB: error: attribute section '%pA' too big: %#llx"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: attribute section '%pA' too big: %#llx"
 msgstr ""
 
-#: elf-attrs.c:487
+#: elf-attrs.c:490
 #, c-format
 msgid "%pB: error: attribute section length too small: %<PRId64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: attribute section length too small: %<PRId64>"
 msgstr ""
 
-#: elf-attrs.c:615
+#: elf-attrs.c:618
 #, c-format
 msgid ""
 "error: %pB: object has vendor-specific contents that must be processed by "
 "the '%s' toolchain"
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB: object has vendor-specific contents that must be processed by "
 "the '%s' toolchain"
 msgstr ""
 
-#: elf-attrs.c:625
+#: elf-attrs.c:628
 #, c-format
 msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
 msgstr ""
 #, c-format
 msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
 msgstr ""
@@ -827,21 +822,21 @@ msgstr ""
 msgid "DW_EH_PE_datarel unspecified for this architecture"
 msgstr ""
 
 msgid "DW_EH_PE_datarel unspecified for this architecture"
 msgstr ""
 
-#: elf-eh-frame.c:2317
+#: elf-eh-frame.c:2318
 #, c-format
 msgid "invalid output section for .eh_frame_entry: %pA"
 msgstr ""
 
 #, c-format
 msgid "invalid output section for .eh_frame_entry: %pA"
 msgstr ""
 
-#: elf-eh-frame.c:2340
+#: elf-eh-frame.c:2341
 #, c-format
 msgid "invalid contents in %pA section"
 msgstr ""
 
 #, c-format
 msgid "invalid contents in %pA section"
 msgstr ""
 
-#: elf-eh-frame.c:2496
+#: elf-eh-frame.c:2497
 msgid ".eh_frame_hdr entry overflow"
 msgstr ""
 
 msgid ".eh_frame_hdr entry overflow"
 msgstr ""
 
-#: elf-eh-frame.c:2498
+#: elf-eh-frame.c:2499
 msgid ".eh_frame_hdr refers to overlapping FDEs"
 msgstr ""
 
 msgid ".eh_frame_hdr refers to overlapping FDEs"
 msgstr ""
 
@@ -859,8 +854,8 @@ msgstr ""
 #: elf32-h8300.c:523 elf32-ip2k.c:1482 elf32-iq2000.c:691 elf32-lm32.c:1112
 #: elf32-m32c.c:624 elf32-m32r.c:3045 elf32-m68hc1x.c:1272 elf32-mep.c:526
 #: elf32-metag.c:1990 elf32-microblaze.c:1631 elf32-moxie.c:288 elf32-mt.c:402
 #: elf32-h8300.c:523 elf32-ip2k.c:1482 elf32-iq2000.c:691 elf32-lm32.c:1112
 #: elf32-m32c.c:624 elf32-m32r.c:3045 elf32-m68hc1x.c:1272 elf32-mep.c:526
 #: elf32-metag.c:1990 elf32-microblaze.c:1631 elf32-moxie.c:288 elf32-mt.c:402
-#: elf32-nds32.c:6192 elf32-or1k.c:1759 elf32-score.c:2733 elf32-score7.c:2542
-#: elf32-spu.c:5086 elf32-tilepro.c:3505 elf32-v850.c:2290 elf32-visium.c:680
+#: elf32-nds32.c:6192 elf32-or1k.c:1821 elf32-score.c:2734 elf32-score7.c:2543
+#: elf32-spu.c:5088 elf32-tilepro.c:3505 elf32-v850.c:2290 elf32-visium.c:680
 #: elf32-xstormy16.c:929 elf64-bpf.c:487 elf64-mmix.c:1541 elfxx-tilegx.c:3869
 msgid "internal error: out of range error"
 msgstr ""
 #: elf32-xstormy16.c:929 elf64-bpf.c:487 elf64-mmix.c:1541 elfxx-tilegx.c:3869
 msgid "internal error: out of range error"
 msgstr ""
@@ -870,18 +865,18 @@ msgstr ""
 #: elf32-fr30.c:598 elf32-frv.c:4049 elf32-ft32.c:498 elf32-h8300.c:527
 #: elf32-iq2000.c:695 elf32-lm32.c:1116 elf32-m32c.c:628 elf32-m32r.c:3049
 #: elf32-m68hc1x.c:1276 elf32-mep.c:530 elf32-metag.c:1994
 #: elf32-fr30.c:598 elf32-frv.c:4049 elf32-ft32.c:498 elf32-h8300.c:527
 #: elf32-iq2000.c:695 elf32-lm32.c:1116 elf32-m32c.c:628 elf32-m32r.c:3049
 #: elf32-m68hc1x.c:1276 elf32-mep.c:530 elf32-metag.c:1994
-#: elf32-microblaze.c:1635 elf32-moxie.c:292 elf32-msp430.c:1365
-#: elf32-nds32.c:6196 elf32-or1k.c:1763 elf32-score.c:2737 elf32-score7.c:2546
-#: elf32-spu.c:5090 elf32-tilepro.c:3509 elf32-v850.c:2294 elf32-visium.c:684
-#: elf32-xstormy16.c:933 elf64-mmix.c:1545 elfxx-mips.c:10575
+#: elf32-microblaze.c:1635 elf32-moxie.c:292 elf32-msp430.c:1371
+#: elf32-nds32.c:6196 elf32-or1k.c:1825 elf32-score.c:2738 elf32-score7.c:2547
+#: elf32-spu.c:5092 elf32-tilepro.c:3509 elf32-v850.c:2294 elf32-visium.c:684
+#: elf32-xstormy16.c:933 elf64-mmix.c:1545 elfxx-mips.c:10590
 #: elfxx-tilegx.c:3873
 msgid "internal error: unsupported relocation error"
 msgstr ""
 
 #: elf-m10200.c:442 elf32-cr16.c:1473 elf32-crx.c:933 elf32-d10v.c:518
 #: elf32-h8300.c:531 elf32-lm32.c:1120 elf32-m32r.c:3053 elf32-m68hc1x.c:1280
 #: elfxx-tilegx.c:3873
 msgid "internal error: unsupported relocation error"
 msgstr ""
 
 #: elf-m10200.c:442 elf32-cr16.c:1473 elf32-crx.c:933 elf32-d10v.c:518
 #: elf32-h8300.c:531 elf32-lm32.c:1120 elf32-m32r.c:3053 elf32-m68hc1x.c:1280
-#: elf32-microblaze.c:1639 elf32-nds32.c:6200 elf32-score.c:2741
-#: elf32-score7.c:2550 elf32-spu.c:5094
+#: elf32-microblaze.c:1639 elf32-nds32.c:6200 elf32-score.c:2742
+#: elf32-score7.c:2551 elf32-spu.c:5096
 msgid "internal error: dangerous error"
 msgstr ""
 
 msgid "internal error: dangerous error"
 msgstr ""
 
@@ -891,8 +886,8 @@ msgstr ""
 #: elf32-h8300.c:535 elf32-ip2k.c:1497 elf32-iq2000.c:703 elf32-lm32.c:1124
 #: elf32-m32c.c:636 elf32-m32r.c:3057 elf32-m68hc1x.c:1284 elf32-mep.c:538
 #: elf32-metag.c:2002 elf32-microblaze.c:1643 elf32-moxie.c:300
 #: elf32-h8300.c:535 elf32-ip2k.c:1497 elf32-iq2000.c:703 elf32-lm32.c:1124
 #: elf32-m32c.c:636 elf32-m32r.c:3057 elf32-m68hc1x.c:1284 elf32-mep.c:538
 #: elf32-metag.c:2002 elf32-microblaze.c:1643 elf32-moxie.c:300
-#: elf32-msp430.c:1373 elf32-mt.c:410 elf32-nds32.c:6204 elf32-or1k.c:1771
-#: elf32-score.c:2750 elf32-score7.c:2554 elf32-spu.c:5098 elf32-tilepro.c:3517
+#: elf32-msp430.c:1379 elf32-mt.c:410 elf32-nds32.c:6204 elf32-or1k.c:1833
+#: elf32-score.c:2751 elf32-score7.c:2555 elf32-spu.c:5100 elf32-tilepro.c:3517
 #: elf32-v850.c:2314 elf32-visium.c:692 elf32-xstormy16.c:941 elf64-bpf.c:500
 #: elf64-mmix.c:1553 elfxx-tilegx.c:3881
 msgid "internal error: unknown error"
 #: elf32-v850.c:2314 elf32-visium.c:692 elf32-xstormy16.c:941 elf64-bpf.c:500
 #: elf64-mmix.c:1553 elfxx-tilegx.c:3881
 msgid "internal error: unknown error"
@@ -908,11 +903,10 @@ msgstr ""
 msgid "%pB: %s' accessed both as normal and thread local symbol"
 msgstr ""
 
 msgid "%pB: %s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf-m10300.c:2092 elf32-arm.c:13450 elf32-i386.c:3403 elf32-m32r.c:2539
-#: elf32-m68k.c:3912 elf32-s390.c:3210 elf32-sh.c:3802 elf32-tilepro.c:3408
-#: elf32-xtensa.c:2969 elf64-s390.c:3159 elf64-x86-64.c:3961 elfxx-sparc.c:3903
-#: elfxx-tilegx.c:3792 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5493
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7081
+#: elf-m10300.c:2092 elf32-arm.c:13464 elf32-i386.c:3421 elf32-m32r.c:2539
+#: elf32-m68k.c:3912 elf32-s390.c:3210 elf32-sh.c:3788 elf32-tilepro.c:3408
+#: elf32-xtensa.c:3013 elf64-s390.c:3159 elf64-x86-64.c:4078 elfxx-sparc.c:3903
+#: elfxx-tilegx.c:3792 elfnn-aarch64.c:5551 elfnn-aarch64.c:7148
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
 msgstr ""
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
 msgstr ""
@@ -935,8 +929,7 @@ msgid "internal error: suspicious relocation type used in shared library"
 msgstr ""
 
 #: elf-m10300.c:2647 elf32-avr.c:2491 elf32-frv.c:5637 elf64-ia64-vms.c:364
 msgstr ""
 
 #: elf-m10300.c:2647 elf32-avr.c:2491 elf32-frv.c:5637 elf64-ia64-vms.c:364
-#: elfxx-sparc.c:2792 reloc.c:8216 reloc16.c:155 elf32-ia64.c:365
-#: elf64-ia64.c:365
+#: elfxx-sparc.c:2792 reloc.c:8244 reloc16.c:155 elfnn-ia64.c:365
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr ""
 
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr ""
 
@@ -1008,219 +1001,214 @@ msgid "Merging program properties\n"
 msgstr ""
 
 #. PR 17512: file: f057ec89.
 msgstr ""
 
 #. PR 17512: file: f057ec89.
-#: elf.c:342
+#: elf.c:336
 #, c-format
 msgid "%pB: attempt to load strings from a non-string section (number %d)"
 msgstr ""
 
 #, c-format
 msgid "%pB: attempt to load strings from a non-string section (number %d)"
 msgstr ""
 
-#: elf.c:367
+#: elf.c:361
 #, c-format
 msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
 msgstr ""
 
-#: elf.c:506 /work/sources/binutils/current/bfd/elfnn-aarch64.c:8092
+#: elf.c:513 elfnn-aarch64.c:8161
 #, c-format
 msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr ""
 
 #, c-format
 msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr ""
 
-#: elf.c:671
-#, c-format
-msgid "%pB: corrupt size field in group section header: %#<PRIx64>"
-msgstr ""
-
-#: elf.c:687
+#: elf.c:678
 #, c-format
 msgid "%pB: invalid size field in group section header: %#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid size field in group section header: %#<PRIx64>"
 msgstr ""
 
-#: elf.c:735
+#: elf.c:723
 #, c-format
 msgid "%pB: invalid entry in SHT_GROUP section [%u]"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid entry in SHT_GROUP section [%u]"
 msgstr ""
 
-#: elf.c:754
+#: elf.c:742
 #, c-format
 msgid "%pB: no valid group sections found"
 msgstr ""
 
 #. See PR 21957 for a reproducer.
 #, c-format
 msgid "%pB: no valid group sections found"
 msgstr ""
 
 #. See PR 21957 for a reproducer.
-#: elf.c:783
+#: elf.c:771
 #, c-format
 msgid "%pB: group section '%pA' has no contents"
 msgstr ""
 
 #, c-format
 msgid "%pB: group section '%pA' has no contents"
 msgstr ""
 
-#: elf.c:844
+#: elf.c:832
 #, c-format
 msgid "%pB: no group info for section '%pA'"
 msgstr ""
 
 #, c-format
 msgid "%pB: no group info for section '%pA'"
 msgstr ""
 
-#: elf.c:875 elf.c:3953
+#: elf.c:862 elf.c:3959
 #, c-format
 msgid "%pB: warning: sh_link not set for section `%pA'"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: sh_link not set for section `%pA'"
 msgstr ""
 
-#: elf.c:895
+#: elf.c:882
 #, c-format
 msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
 msgstr ""
 
 #, c-format
 msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
 msgstr ""
 
-#: elf.c:908
+#: elf.c:895
 #, c-format
 msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections"
 msgstr ""
 
 #, c-format
 msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections"
 msgstr ""
 
-#: elf.c:929
+#: elf.c:916
 #, c-format
 msgid "%pB: section group entry number %u is corrupt"
 msgstr ""
 
 #, c-format
 msgid "%pB: section group entry number %u is corrupt"
 msgstr ""
 
-#: elf.c:952
+#: elf.c:939
 #, c-format
 msgid "%pB: unknown type [%#x] section `%s' in group [%pA]"
 msgstr ""
 
 #, c-format
 msgid "%pB: unknown type [%#x] section `%s' in group [%pA]"
 msgstr ""
 
-#: elf.c:1451
+#: elf.c:1441
 #, c-format
 msgid "%pB: invalid sh_link field (%d) in section number %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid sh_link field (%d) in section number %d"
 msgstr ""
 
-#: elf.c:1467
+#: elf.c:1457
 #, c-format
 msgid "%pB: failed to find link section for section %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: failed to find link section for section %d"
 msgstr ""
 
-#: elf.c:1494
+#: elf.c:1484
 #, c-format
 msgid "%pB: failed to find info section for section %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: failed to find info section for section %d"
 msgstr ""
 
-#: elf.c:1666
+#: elf.c:1656
 #, c-format
 msgid ""
 "\n"
 "Program Header:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Program Header:\n"
 msgstr ""
 
-#: elf.c:1708
+#: elf.c:1698
 #, c-format
 msgid ""
 "\n"
 "Dynamic Section:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Dynamic Section:\n"
 msgstr ""
 
-#: elf.c:1849
+#: elf.c:1839
 #, c-format
 msgid ""
 "\n"
 "Version definitions:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Version definitions:\n"
 msgstr ""
 
-#: elf.c:1874
+#: elf.c:1864
 #, c-format
 msgid ""
 "\n"
 "Version References:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Version References:\n"
 msgstr ""
 
-#: elf.c:1879
+#: elf.c:1869
 #, c-format
 msgid "  required from %s:\n"
 msgstr ""
 
 #, c-format
 msgid "  required from %s:\n"
 msgstr ""
 
-#: elf.c:2079
+#: elf.c:2086
 #, c-format
 msgid "%pB: warning: loop in section dependencies detected"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: loop in section dependencies detected"
 msgstr ""
 
-#: elf.c:2187
+#: elf.c:2194
 #, c-format
 msgid ""
 "%pB: warning: multiple symbol tables detected - ignoring the table in "
 "section %u"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: multiple symbol tables detected - ignoring the table in "
 "section %u"
 msgstr ""
 
-#: elf.c:2271
+#: elf.c:2278
 #, c-format
 msgid ""
 "%pB: warning: multiple dynamic symbol tables detected - ignoring the table "
 "in section %u"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: multiple dynamic symbol tables detected - ignoring the table "
 "in section %u"
 msgstr ""
 
-#: elf.c:2384
+#: elf.c:2391
 #, c-format
 msgid "%pB: invalid link %u for reloc section %s (index %u)"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid link %u for reloc section %s (index %u)"
 msgstr ""
 
-#: elf.c:2473
+#: elf.c:2482
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"%pB: warning: multiple relocation sections for section %pA found - ignoring "
-"all but the first"
+"%pB: warning: secondary relocation section '%s' for section %pA found - "
+"ignoring"
 msgstr ""
 
 msgstr ""
 
-#: elf.c:2555 elf.c:2570 elf.c:2581 elf.c:2594
+#: elf.c:2566 elf.c:2581 elf.c:2592 elf.c:2605
 #, c-format
 msgid "%pB: unknown type [%#x] section `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: unknown type [%#x] section `%s'"
 msgstr ""
 
-#: elf.c:3314
+#: elf.c:3312
 #, c-format
 msgid "%pB: error: alignment power %d of section `%pA' is too big"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: alignment power %d of section `%pA' is too big"
 msgstr ""
 
-#: elf.c:3344
+#: elf.c:3345
 #, c-format
 msgid "warning: section `%pA' type changed to PROGBITS"
 msgstr ""
 
 #, c-format
 msgid "warning: section `%pA' type changed to PROGBITS"
 msgstr ""
 
-#: elf.c:3821
+#: elf.c:3828
 #, c-format
 msgid "%pB: too many sections: %u"
 msgstr ""
 
 #, c-format
 msgid "%pB: too many sections: %u"
 msgstr ""
 
-#: elf.c:3906
+#: elf.c:3913
 #, c-format
 msgid ""
 "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
 msgstr ""
 
-#: elf.c:3931
+#: elf.c:3938
 #, c-format
 msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
 msgstr ""
 
 #, c-format
 msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
 msgstr ""
 
-#: elf.c:4494
+#: elf.c:4499
 #, c-format
 msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
 msgstr ""
 
-#: elf.c:5082
+#: elf.c:5090
 #, c-format
 msgid "%pB: TLS sections are not adjacent:"
 msgstr ""
 
 #, c-format
 msgid "%pB: TLS sections are not adjacent:"
 msgstr ""
 
-#: elf.c:5089
+#: elf.c:5097
 #, c-format
 msgid "\t    TLS: %pA"
 msgstr ""
 
 #, c-format
 msgid "\t    TLS: %pA"
 msgstr ""
 
-#: elf.c:5093
+#: elf.c:5101
 #, c-format
 msgid "\tnon-TLS: %pA"
 msgstr ""
 
 #, c-format
 msgid "\tnon-TLS: %pA"
 msgstr ""
 
-#: elf.c:5671
+#: elf.c:5692
 #, c-format
 msgid ""
 "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr ""
 
-#: elf.c:5697
+#: elf.c:5718
 #, c-format
 msgid "%pB: not enough room for program headers, try linking with -N"
 msgstr ""
 
 #, c-format
 msgid "%pB: not enough room for program headers, try linking with -N"
 msgstr ""
 
-#: elf.c:5808
+#: elf.c:5835
 #, c-format
 msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
 msgstr ""
 #, c-format
 msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
 msgstr ""
@@ -1228,80 +1216,156 @@ msgstr ""
 #. The fix for this error is usually to edit the linker script being
 #. used and set up the program headers manually.  Either that or
 #. leave room for the headers at the start of the SECTIONS.
 #. The fix for this error is usually to edit the linker script being
 #. used and set up the program headers manually.  Either that or
 #. leave room for the headers at the start of the SECTIONS.
-#: elf.c:5928
+#: elf.c:5972
 #, c-format
 msgid "%pB: error: PHDR segment not covered by LOAD segment"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: PHDR segment not covered by LOAD segment"
 msgstr ""
 
-#: elf.c:5964
+#: elf.c:6012
 #, c-format
 msgid "%pB: section `%pA' can't be allocated in segment %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: section `%pA' can't be allocated in segment %d"
 msgstr ""
 
-#: elf.c:6095
+#: elf.c:6144
 #, c-format
 msgid "%pB: warning: allocated section `%s' not in segment"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: allocated section `%s' not in segment"
 msgstr ""
 
-#: elf.c:6256
+#: elf.c:6305
 #, c-format
 msgid ""
 "%pB: error: non-load segment %d includes file header and/or program header"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: error: non-load segment %d includes file header and/or program header"
 msgstr ""
 
-#: elf.c:6760
+#: elf.c:6809
 #, c-format
 msgid "%pB: symbol `%s' required but not present"
 msgstr ""
 
 #, c-format
 msgid "%pB: symbol `%s' required but not present"
 msgstr ""
 
-#: elf.c:7102
+#: elf.c:7152
 #, c-format
 msgid ""
 "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this "
 "intentional?"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this "
 "intentional?"
 msgstr ""
 
-#: elf.c:7722
+#: elf.c:7778
 #, c-format
 msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
 msgstr ""
 
-#: elf.c:8222
+#: elf.c:8291
+#, c-format
+msgid ""
+"%pB: Unable to handle section index %x in ELF symbol.  Using ABS instead."
+msgstr ""
+
+#: elf.c:8321
 #, c-format
 msgid ""
 "unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr ""
 
 #, c-format
 msgid ""
 "unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr ""
 
-#: elf.c:8577
+#: elf.c:8708
 #, c-format
 msgid "%pB: .gnu.version_r invalid entry"
 msgstr ""
 
 #, c-format
 msgid "%pB: .gnu.version_r invalid entry"
 msgstr ""
 
-#: elf.c:8593
+#: elf.c:8841
 #, c-format
 #, c-format
-msgid "error: %pB version reference section is too large (%#<PRIx64> bytes)"
+msgid "%pB: .gnu.version_d invalid entry"
 msgstr ""
 
 msgstr ""
 
-#: elf.c:8716
+#: elf.c:9299
 #, c-format
 #, c-format
-msgid "%pB: .gnu.version_d invalid entry"
+msgid ""
+"%pB:%pA: error: attempting to write into an unallocated compressed section"
+msgstr ""
+
+#: elf.c:9308
+#, c-format
+msgid "%pB:%pA: error: attempting to write over the end of the section"
+msgstr ""
+
+#: elf.c:9319
+#, c-format
+msgid "%pB:%pA: error: attempting to write section into an empty buffer"
 msgstr ""
 
 msgstr ""
 
-#: elf.c:12238
+#: elf.c:12434
 msgid "GNU_MBIND section is unsupported"
 msgstr ""
 
 msgid "GNU_MBIND section is unsupported"
 msgstr ""
 
-#: elf.c:12240
+#: elf.c:12436
 msgid "symbol type STT_GNU_IFUNC is unsupported"
 msgstr ""
 
 msgid "symbol type STT_GNU_IFUNC is unsupported"
 msgstr ""
 
-#: elf.c:12242
+#: elf.c:12438
 msgid "symbol binding STB_GNU_UNIQUE is unsupported"
 msgstr ""
 
 msgid "symbol binding STB_GNU_UNIQUE is unsupported"
 msgstr ""
 
-#: elf32-arc.c:459 elf32-frv.c:6624 elf32-iq2000.c:868 elf32-m32c.c:914
-#: elf32-mt.c:562 elf32-rl78.c:1260 elf32-rx.c:3199 elf32-visium.c:844
-#: elf64-ppc.c:5278
+#: elf.c:12622 elf64-sparc.c:123 elfcode.h:1485
+#, c-format
+msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
+msgstr ""
+
+#: elf.c:12696
+#, c-format
+msgid ""
+"%pB(%pA): link section cannot be set because the output file does not have a "
+"symbol table"
+msgstr ""
+
+#: elf.c:12708
+#, c-format
+msgid "%pB(%pA): info section index is invalid"
+msgstr ""
+
+#: elf.c:12722
+#, c-format
+msgid ""
+"%pB(%pA): info section index cannot be set because the section is not in the "
+"output"
+msgstr ""
+
+#: elf.c:12788
+#, c-format
+msgid "%pB(%pA): error: secondary reloc section processed twice"
+msgstr ""
+
+#: elf.c:12800
+#, c-format
+msgid "%pB(%pA): error: secondary reloc section is empty!"
+msgstr ""
+
+#: elf.c:12823
+#, c-format
+msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
+msgstr ""
+
+#: elf.c:12842
+#, c-format
+msgid "%pB(%pA): error: reloc table entry %u is empty"
+msgstr ""
+
+#: elf.c:12867
+#, c-format
+msgid "%pB(%pA): error: secondary reloc %u references a missing symbol"
+msgstr ""
+
+#: elf.c:12884
+#, c-format
+msgid "%pB(%pA): error: secondary reloc %u references a deleted symbol"
+msgstr ""
+
+#: elf.c:12897
+#, c-format
+msgid "%pB(%pA): error: secondary reloc %u is of an unknown type"
+msgstr ""
+
+#: elf32-arc.c:459 elf32-frv.c:6628 elf32-iq2000.c:868 elf32-m32c.c:914
+#: elf32-mt.c:562 elf32-rl78.c:1260 elf32-rx.c:3207 elf32-visium.c:844
+#: elf64-ppc.c:5293
 #, c-format
 msgid "private flags = 0x%lx:"
 msgstr ""
 #, c-format
 msgid "private flags = 0x%lx:"
 msgstr ""
@@ -1348,7 +1412,7 @@ msgid ""
 msgstr ""
 
 #: elf32-arc.c:942 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1391
 msgstr ""
 
 #: elf32-arc.c:942 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1391
-#: elf32-ppc.c:3859 elf64-sparc.c:727 elfxx-mips.c:15519
+#: elf32-ppc.c:3868 elf64-sparc.c:725 elfxx-mips.c:15534
 #, c-format
 msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
 msgstr ""
 #, c-format
 msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
 msgstr ""
@@ -1379,35 +1443,34 @@ msgstr ""
 msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker"
 msgstr ""
 
 msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker"
 msgstr ""
 
-#: elf32-arc.c:1912 elf32-rl78.c:1098 elf32-rx.c:1470
+#: elf32-arc.c:1912 elf32-rl78.c:1098 elf32-rx.c:1475
 #, c-format
 msgid ""
 "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"
 msgstr ""
 
-#: elf32-arc.c:1917 elf32-rl78.c:1103 elf32-rx.c:1475
+#: elf32-arc.c:1917 elf32-rl78.c:1103 elf32-rx.c:1480
 #, c-format
 msgid "%pB(%pA): internal error: out of range error"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA): internal error: out of range error"
 msgstr ""
 
-#: elf32-arc.c:1922 elf32-rl78.c:1108 elf32-rx.c:1480
+#: elf32-arc.c:1922 elf32-rl78.c:1108 elf32-rx.c:1485
 #, c-format
 msgid "%pB(%pA): internal error: unsupported relocation error"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA): internal error: unsupported relocation error"
 msgstr ""
 
-#: elf32-arc.c:1927 elf32-rl78.c:1113 elf32-rx.c:1485
+#: elf32-arc.c:1927 elf32-rl78.c:1113 elf32-rx.c:1490
 #, c-format
 msgid "%pB(%pA): internal error: dangerous relocation"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA): internal error: dangerous relocation"
 msgstr ""
 
-#: elf32-arc.c:1932 elf32-rl78.c:1118 elf32-rx.c:1490
+#: elf32-arc.c:1932 elf32-rl78.c:1118 elf32-rx.c:1495
 #, c-format
 msgid "%pB(%pA): internal error: unknown error"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA): internal error: unknown error"
 msgstr ""
 
-#: elf32-arc.c:2025 elf32-arc.c:2093 elf32-arm.c:15563 elf32-metag.c:2257
-#: elf32-nds32.c:5642 /work/sources/binutils/current/bfd/elfnn-aarch64.c:7735
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:510
+#: elf32-arc.c:2025 elf32-arc.c:2093 elf32-arm.c:15577 elf32-metag.c:2257
+#: elf32-nds32.c:5642 elfnn-aarch64.c:7802 elfnn-riscv.c:518
 #, c-format
 msgid ""
 "%pB: relocation %s against `%s' can not be used when making a shared object; "
 #, c-format
 msgid ""
 "%pB: relocation %s against `%s' can not be used when making a shared object; "
@@ -1432,7 +1495,7 @@ msgid ""
 "movw instruction"
 msgstr ""
 
 "movw instruction"
 msgstr ""
 
-#: elf32-arm.c:4426 elf32-arm.c:4480 elf32-arm.c:9172 elf32-arm.c:9262
+#: elf32-arm.c:4426 elf32-arm.c:4480 elf32-arm.c:9180 elf32-arm.c:9270
 #, c-format
 msgid ""
 "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call "
 #, c-format
 msgid ""
 "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call "
@@ -1451,129 +1514,137 @@ msgstr ""
 msgid "no address assigned to the veneers output section %s"
 msgstr ""
 
 msgid "no address assigned to the veneers output section %s"
 msgstr ""
 
-#: elf32-arm.c:4850 elf32-arm.c:6991 elf32-csky.c:3286 elf32-hppa.c:588
-#: elf32-m68hc1x.c:165 elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:3746
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:3236
+#: elf32-arm.c:4850 elf32-arm.c:6999 elf32-csky.c:3286 elf32-hppa.c:588
+#: elf32-m68hc1x.c:165 elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:3768
+#: elfnn-aarch64.c:3236
 #, c-format
 msgid "%pB: cannot create stub entry %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: cannot create stub entry %s"
 msgstr ""
 
-#: elf32-arm.c:6033
+#: elf32-arm.c:5071 elf32-csky.c:3628 elf32-hppa.c:738 elf32-m68hc11.c:422
+#: elf32-m68hc12.c:542 elf32-metag.c:3480 elf32-nios2.c:2501 elf64-ppc.c:11374
+#: elfnn-aarch64.c:3305
+msgid ""
+"%F%P: Could not assign '%pA' to an output section. Retry without --enable-"
+"non-contiguous-regions.\n"
+msgstr ""
+
+#: elf32-arm.c:6041
 #, c-format
 msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
 msgstr ""
 
 #, c-format
 msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
 msgstr ""
 
-#: elf32-arm.c:6042
+#: elf32-arm.c:6050
 #, c-format
 msgid ""
 "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
 msgstr ""
 
-#: elf32-arm.c:6081
+#: elf32-arm.c:6089
 #, c-format
 msgid ""
 "%pB: invalid standard symbol `%s'; it must be a global or weak function "
 "symbol"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid standard symbol `%s'; it must be a global or weak function "
 "symbol"
 msgstr ""
 
-#: elf32-arm.c:6087
+#: elf32-arm.c:6095
 #, c-format
 msgid "%pB: absent standard symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: absent standard symbol `%s'"
 msgstr ""
 
-#: elf32-arm.c:6099
+#: elf32-arm.c:6107
 #, c-format
 msgid "%pB: `%s' and its special symbol are in different sections"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%s' and its special symbol are in different sections"
 msgstr ""
 
-#: elf32-arm.c:6111
+#: elf32-arm.c:6119
 #, c-format
 msgid "%pB: entry function `%s' not output"
 msgstr ""
 
 #, c-format
 msgid "%pB: entry function `%s' not output"
 msgstr ""
 
-#: elf32-arm.c:6118
+#: elf32-arm.c:6126
 #, c-format
 msgid "%pB: entry function `%s' is empty"
 msgstr ""
 
 #, c-format
 msgid "%pB: entry function `%s' is empty"
 msgstr ""
 
-#: elf32-arm.c:6247
+#: elf32-arm.c:6255
 #, c-format
 msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
 msgstr ""
 
 #, c-format
 msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
 msgstr ""
 
-#: elf32-arm.c:6296
+#: elf32-arm.c:6304
 #, c-format
 msgid ""
 "%pB: invalid import library entry: `%s'; symbol should be absolute, global "
 "and refer to Thumb functions"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid import library entry: `%s'; symbol should be absolute, global "
 "and refer to Thumb functions"
 msgstr ""
 
-#: elf32-arm.c:6318
+#: elf32-arm.c:6326
 #, c-format
 msgid "entry function `%s' disappeared from secure code"
 msgstr ""
 
 #, c-format
 msgid "entry function `%s' disappeared from secure code"
 msgstr ""
 
-#: elf32-arm.c:6342
+#: elf32-arm.c:6350
 #, c-format
 msgid "`%s' refers to a non entry function"
 msgstr ""
 
 #, c-format
 msgid "`%s' refers to a non entry function"
 msgstr ""
 
-#: elf32-arm.c:6357
+#: elf32-arm.c:6365
 #, c-format
 msgid "%pB: visibility of symbol `%s' has changed"
 msgstr ""
 
 #, c-format
 msgid "%pB: visibility of symbol `%s' has changed"
 msgstr ""
 
-#: elf32-arm.c:6366
+#: elf32-arm.c:6374
 #, c-format
 msgid "%pB: incorrect size for symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: incorrect size for symbol `%s'"
 msgstr ""
 
-#: elf32-arm.c:6385
+#: elf32-arm.c:6393
 #, c-format
 msgid "offset of veneer for entry function `%s' not a multiple of its size"
 msgstr ""
 
 #, c-format
 msgid "offset of veneer for entry function `%s' not a multiple of its size"
 msgstr ""
 
-#: elf32-arm.c:6405
+#: elf32-arm.c:6413
 msgid ""
 "new entry function(s) introduced but no output import library specified:"
 msgstr ""
 
 msgid ""
 "new entry function(s) introduced but no output import library specified:"
 msgstr ""
 
-#: elf32-arm.c:6413
+#: elf32-arm.c:6421
 #, c-format
 msgid "start address of `%s' is different from previous link"
 msgstr ""
 
 #, c-format
 msgid "start address of `%s' is different from previous link"
 msgstr ""
 
-#: elf32-arm.c:7124 elf32-arm.c:7159
+#: elf32-arm.c:7132 elf32-arm.c:7167
 #, c-format
 msgid "unable to find %s glue '%s' for '%s'"
 msgstr ""
 
 #, c-format
 msgid "unable to find %s glue '%s' for '%s'"
 msgstr ""
 
-#: elf32-arm.c:7870
+#: elf32-arm.c:7878
 #, c-format
 msgid "%pB: BE8 images only valid in big-endian mode"
 msgstr ""
 
 #. Give a warning, but do as the user requests anyway.
 #, c-format
 msgid "%pB: BE8 images only valid in big-endian mode"
 msgstr ""
 
 #. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:8101
+#: elf32-arm.c:8109
 #, c-format
 msgid ""
 "%pB: warning: selected VFP11 erratum workaround is not necessary for target "
 "architecture"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: selected VFP11 erratum workaround is not necessary for target "
 "architecture"
 msgstr ""
 
-#: elf32-arm.c:8128
+#: elf32-arm.c:8136
 #, c-format
 msgid ""
 "%pB: warning: selected STM32L4XX erratum workaround is not necessary for "
 "target architecture"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: selected STM32L4XX erratum workaround is not necessary for "
 "target architecture"
 msgstr ""
 
-#: elf32-arm.c:8666 elf32-arm.c:8686 elf32-arm.c:8753 elf32-arm.c:8772
+#: elf32-arm.c:8674 elf32-arm.c:8694 elf32-arm.c:8761 elf32-arm.c:8780
 #, c-format
 msgid "%pB: unable to find %s veneer `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to find %s veneer `%s'"
 msgstr ""
 
-#: elf32-arm.c:8979
+#: elf32-arm.c:8987
 #, c-format
 msgid ""
 "%pB(%pA+%#x): error: multiple load detected in non-last IT block "
 #, c-format
 msgid ""
 "%pB(%pA+%#x): error: multiple load detected in non-last IT block "
@@ -1581,202 +1652,199 @@ msgid ""
 "it to generate only one instruction per IT block"
 msgstr ""
 
 "it to generate only one instruction per IT block"
 msgstr ""
 
-#: elf32-arm.c:9079
+#: elf32-arm.c:9087
 #, c-format
 msgid "invalid TARGET2 relocation type '%s'"
 msgstr ""
 
 #. FIXME: We ought to be able to generate thumb-1 PLT
 #. instructions...
 #, c-format
 msgid "invalid TARGET2 relocation type '%s'"
 msgstr ""
 
 #. FIXME: We ought to be able to generate thumb-1 PLT
 #. instructions...
-#: elf32-arm.c:9881
+#: elf32-arm.c:9889
 #, c-format
 msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
 msgstr ""
 
-#: elf32-arm.c:10185 elf32-arm.c:10227
+#: elf32-arm.c:10199 elf32-arm.c:10241
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
 msgstr ""
 
-#: elf32-arm.c:10571
+#: elf32-arm.c:10585
 msgid "shared object"
 msgstr ""
 
 msgid "shared object"
 msgstr ""
 
-#: elf32-arm.c:10574
+#: elf32-arm.c:10588
 msgid "PIE executable"
 msgstr ""
 
 msgid "PIE executable"
 msgstr ""
 
-#: elf32-arm.c:10577
+#: elf32-arm.c:10591
 #, c-format
 msgid ""
 "%pB: relocation %s against external or undefined symbol `%s' can not be used "
 "when making a %s; recompile with -fPIC"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation %s against external or undefined symbol `%s' can not be used "
 "when making a %s; recompile with -fPIC"
 msgstr ""
 
-#: elf32-arm.c:10714 elf32-arm.c:11141
+#: elf32-arm.c:10728 elf32-arm.c:11155
 #, c-format
 msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
 msgstr ""
 
-#: elf32-arm.c:12053 elf32-arm.c:12079
+#: elf32-arm.c:12067 elf32-arm.c:12093
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by "
 "TLS_GOTDESC"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by "
 "TLS_GOTDESC"
 msgstr ""
 
-#: elf32-arm.c:12125 elf32-csky.c:4852 elf32-m68k.c:3716 elf32-metag.c:1919
-#: elf32-nios2.c:4378
+#: elf32-arm.c:12139 elf32-csky.c:4860 elf32-m68k.c:3716 elf32-metag.c:1919
+#: elf32-nios2.c:4389
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
 msgstr ""
 
-#: elf32-arm.c:12339
+#: elf32-arm.c:12353
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group "
 "relocations"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group "
 "relocations"
 msgstr ""
 
-#: elf32-arm.c:12380 elf32-arm.c:12472 elf32-arm.c:12560 elf32-arm.c:12650
+#: elf32-arm.c:12394 elf32-arm.c:12486 elf32-arm.c:12574 elf32-arm.c:12664
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group "
 "relocation %s"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group "
 "relocation %s"
 msgstr ""
 
-#: elf32-arm.c:13282 elf32-sh.c:3691
+#: elf32-arm.c:13296 elf32-sh.c:3682
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
 msgstr ""
 
-#: elf32-arm.c:13395 elf32-m68k.c:3949 elf32-xtensa.c:2707
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6808
+#: elf32-arm.c:13409 elf32-m68k.c:3949 elf32-xtensa.c:2751 elfnn-aarch64.c:6875
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:13397 elf32-m68k.c:3951 elf32-xtensa.c:2709
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6810
+#: elf32-arm.c:13411 elf32-m68k.c:3951 elf32-xtensa.c:2753 elfnn-aarch64.c:6877
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:13480 elf32-tic6x.c:2708
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7145
+#: elf32-arm.c:13494 elf32-tic6x.c:2708 elfnn-aarch64.c:7212
 msgid "out of range"
 msgstr ""
 
 msgid "out of range"
 msgstr ""
 
-#: elf32-arm.c:13484 elf32-nios2.c:4512 elf32-pru.c:936 elf32-tic6x.c:2712
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7149
+#: elf32-arm.c:13498 elf32-nios2.c:4523 elf32-pru.c:936 elf32-tic6x.c:2712
+#: elfnn-aarch64.c:7216
 msgid "unsupported relocation"
 msgstr ""
 
 msgid "unsupported relocation"
 msgstr ""
 
-#: elf32-arm.c:13492 elf32-nios2.c:4522 elf32-pru.c:946 elf32-tic6x.c:2720
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7157
+#: elf32-arm.c:13506 elf32-nios2.c:4533 elf32-pru.c:946 elf32-tic6x.c:2720
+#: elfnn-aarch64.c:7224
 msgid "unknown error"
 msgstr ""
 
 msgid "unknown error"
 msgstr ""
 
-#: elf32-arm.c:13970
+#: elf32-arm.c:13984
 #, c-format
 msgid ""
 "warning: not setting interworking flag of %pB since it has already been "
 "specified as non-interworking"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: not setting interworking flag of %pB since it has already been "
 "specified as non-interworking"
 msgstr ""
 
-#: elf32-arm.c:13974
+#: elf32-arm.c:13988
 #, c-format
 msgid "warning: clearing the interworking flag of %pB due to outside request"
 msgstr ""
 
 #, c-format
 msgid "warning: clearing the interworking flag of %pB due to outside request"
 msgstr ""
 
-#: elf32-arm.c:14019
+#: elf32-arm.c:14033
 #, c-format
 msgid ""
 "warning: clearing the interworking flag of %pB because non-interworking code "
 "in %pB has been linked with it"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: clearing the interworking flag of %pB because non-interworking code "
 "in %pB has been linked with it"
 msgstr ""
 
-#: elf32-arm.c:14106
+#: elf32-arm.c:14120
 #, c-format
 msgid "%pB: unknown mandatory EABI object attribute %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: unknown mandatory EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:14114
+#: elf32-arm.c:14128
 #, c-format
 msgid "warning: %pB: unknown EABI object attribute %d"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB: unknown EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:14414
+#: elf32-arm.c:14428
 #, c-format
 msgid "error: %pB: unknown CPU architecture"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: unknown CPU architecture"
 msgstr ""
 
-#: elf32-arm.c:14452 elf32-nios2.c:2946
+#: elf32-arm.c:14466 elf32-nios2.c:2957
 #, c-format
 msgid "error: %pB: conflicting CPU architectures %d/%d"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: conflicting CPU architectures %d/%d"
 msgstr ""
 
-#: elf32-arm.c:14549
+#: elf32-arm.c:14563
 #, c-format
 msgid ""
 "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
 
 #, c-format
 msgid ""
 "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
 
-#: elf32-arm.c:14578
+#: elf32-arm.c:14592
 #, c-format
 msgid "error: %pB uses VFP register arguments, %pB does not"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses VFP register arguments, %pB does not"
 msgstr ""
 
-#: elf32-arm.c:14737
+#: elf32-arm.c:14751
 #, c-format
 msgid "error: %pB: unable to merge virtualization attributes with %pB"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: unable to merge virtualization attributes with %pB"
 msgstr ""
 
-#: elf32-arm.c:14763
+#: elf32-arm.c:14777
 #, c-format
 msgid "error: %pB: conflicting architecture profiles %c/%c"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: conflicting architecture profiles %c/%c"
 msgstr ""
 
-#: elf32-arm.c:14902
+#: elf32-arm.c:14916
 #, c-format
 msgid "warning: %pB: conflicting platform configuration"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB: conflicting platform configuration"
 msgstr ""
 
-#: elf32-arm.c:14911
+#: elf32-arm.c:14925
 #, c-format
 msgid "error: %pB: conflicting use of R9"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: conflicting use of R9"
 msgstr ""
 
-#: elf32-arm.c:14923
+#: elf32-arm.c:14937
 #, c-format
 msgid "error: %pB: SB relative addressing conflicts with use of R9"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: SB relative addressing conflicts with use of R9"
 msgstr ""
 
-#: elf32-arm.c:14936
+#: elf32-arm.c:14950
 #, c-format
 msgid ""
 "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; "
 "use of wchar_t values across objects may fail"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; "
 "use of wchar_t values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:14967
+#: elf32-arm.c:14981
 #, c-format
 msgid ""
 "warning: %pB uses %s enums yet the output is to use %s enums; use of enum "
 "values across objects may fail"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: %pB uses %s enums yet the output is to use %s enums; use of enum "
 "values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:14979
+#: elf32-arm.c:14993
 #, c-format
 msgid "error: %pB uses iWMMXt register arguments, %pB does not"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses iWMMXt register arguments, %pB does not"
 msgstr ""
 
-#: elf32-arm.c:14996
+#: elf32-arm.c:15010
 #, c-format
 msgid "error: fp16 format mismatch between %pB and %pB"
 msgstr ""
 
 #, c-format
 msgid "error: fp16 format mismatch between %pB and %pB"
 msgstr ""
 
-#: elf32-arm.c:15032
+#: elf32-arm.c:15046
 #, c-format
 msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
 #, c-format
 msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
@@ -1786,266 +1854,263 @@ msgstr ""
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
-#: elf32-arm.c:15119 elf32-bfin.c:4735 elf32-cris.c:3906 elf32-m68hc1x.c:1416
-#: elf32-m68k.c:1205 elf32-score.c:3999 elf32-score7.c:3804 elf32-vax.c:537
-#: elf32-xgate.c:494 elfxx-mips.c:16204
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7311
+#: elf32-arm.c:15133 elf32-bfin.c:4735 elf32-cris.c:3906 elf32-m68hc1x.c:1416
+#: elf32-m68k.c:1205 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537
+#: elf32-xgate.c:494 elfxx-mips.c:16220 elfnn-aarch64.c:7378
 #, c-format
 msgid "private flags = %lx:"
 msgstr ""
 
 #, c-format
 msgid "private flags = %lx:"
 msgstr ""
 
-#: elf32-arm.c:15128
+#: elf32-arm.c:15142
 #, c-format
 msgid " [interworking enabled]"
 msgstr ""
 
 #, c-format
 msgid " [interworking enabled]"
 msgstr ""
 
-#: elf32-arm.c:15136
+#: elf32-arm.c:15150
 #, c-format
 msgid " [VFP float format]"
 msgstr ""
 
 #, c-format
 msgid " [VFP float format]"
 msgstr ""
 
-#: elf32-arm.c:15138
+#: elf32-arm.c:15152
 #, c-format
 msgid " [Maverick float format]"
 msgstr ""
 
 #, c-format
 msgid " [Maverick float format]"
 msgstr ""
 
-#: elf32-arm.c:15140
+#: elf32-arm.c:15154
 #, c-format
 msgid " [FPA float format]"
 msgstr ""
 
 #, c-format
 msgid " [FPA float format]"
 msgstr ""
 
-#: elf32-arm.c:15143
+#: elf32-arm.c:15157
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr ""
 
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr ""
 
-#: elf32-arm.c:15146 elf32-arm.c:15232
+#: elf32-arm.c:15160 elf32-arm.c:15246
 #, c-format
 msgid " [position independent]"
 msgstr ""
 
 #, c-format
 msgid " [position independent]"
 msgstr ""
 
-#: elf32-arm.c:15149
+#: elf32-arm.c:15163
 #, c-format
 msgid " [new ABI]"
 msgstr ""
 
 #, c-format
 msgid " [new ABI]"
 msgstr ""
 
-#: elf32-arm.c:15152
+#: elf32-arm.c:15166
 #, c-format
 msgid " [old ABI]"
 msgstr ""
 
 #, c-format
 msgid " [old ABI]"
 msgstr ""
 
-#: elf32-arm.c:15155
+#: elf32-arm.c:15169
 #, c-format
 msgid " [software FP]"
 msgstr ""
 
 #, c-format
 msgid " [software FP]"
 msgstr ""
 
-#: elf32-arm.c:15164
+#: elf32-arm.c:15178
 #, c-format
 msgid " [Version1 EABI]"
 msgstr ""
 
 #, c-format
 msgid " [Version1 EABI]"
 msgstr ""
 
-#: elf32-arm.c:15167 elf32-arm.c:15178
+#: elf32-arm.c:15181 elf32-arm.c:15192
 #, c-format
 msgid " [sorted symbol table]"
 msgstr ""
 
 #, c-format
 msgid " [sorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:15169 elf32-arm.c:15180
+#: elf32-arm.c:15183 elf32-arm.c:15194
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr ""
 
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:15175
+#: elf32-arm.c:15189
 #, c-format
 msgid " [Version2 EABI]"
 msgstr ""
 
 #, c-format
 msgid " [Version2 EABI]"
 msgstr ""
 
-#: elf32-arm.c:15183
+#: elf32-arm.c:15197
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr ""
 
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr ""
 
-#: elf32-arm.c:15186
+#: elf32-arm.c:15200
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr ""
 
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr ""
 
-#: elf32-arm.c:15193
+#: elf32-arm.c:15207
 #, c-format
 msgid " [Version3 EABI]"
 msgstr ""
 
 #, c-format
 msgid " [Version3 EABI]"
 msgstr ""
 
-#: elf32-arm.c:15197
+#: elf32-arm.c:15211
 #, c-format
 msgid " [Version4 EABI]"
 msgstr ""
 
 #, c-format
 msgid " [Version4 EABI]"
 msgstr ""
 
-#: elf32-arm.c:15201
+#: elf32-arm.c:15215
 #, c-format
 msgid " [Version5 EABI]"
 msgstr ""
 
 #, c-format
 msgid " [Version5 EABI]"
 msgstr ""
 
-#: elf32-arm.c:15204
+#: elf32-arm.c:15218
 #, c-format
 msgid " [soft-float ABI]"
 msgstr ""
 
 #, c-format
 msgid " [soft-float ABI]"
 msgstr ""
 
-#: elf32-arm.c:15207
+#: elf32-arm.c:15221
 #, c-format
 msgid " [hard-float ABI]"
 msgstr ""
 
 #, c-format
 msgid " [hard-float ABI]"
 msgstr ""
 
-#: elf32-arm.c:15213
+#: elf32-arm.c:15227
 #, c-format
 msgid " [BE8]"
 msgstr ""
 
 #, c-format
 msgid " [BE8]"
 msgstr ""
 
-#: elf32-arm.c:15216
+#: elf32-arm.c:15230
 #, c-format
 msgid " [LE8]"
 msgstr ""
 
 #, c-format
 msgid " [LE8]"
 msgstr ""
 
-#: elf32-arm.c:15222
+#: elf32-arm.c:15236
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr ""
 
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr ""
 
-#: elf32-arm.c:15229
+#: elf32-arm.c:15243
 #, c-format
 msgid " [relocatable executable]"
 msgstr ""
 
 #, c-format
 msgid " [relocatable executable]"
 msgstr ""
 
-#: elf32-arm.c:15235
+#: elf32-arm.c:15249
 #, c-format
 msgid " [FDPIC ABI supplement]"
 msgstr ""
 
 #, c-format
 msgid " [FDPIC ABI supplement]"
 msgstr ""
 
-#: elf32-arm.c:15240 /work/sources/binutils/current/bfd/elfnn-aarch64.c:7314
+#: elf32-arm.c:15254 elfnn-aarch64.c:7381
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr ""
 
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr ""
 
-#: elf32-arm.c:15357 elf32-i386.c:1529 elf32-s390.c:960 elf32-tic6x.c:2783
-#: elf32-tilepro.c:1478 elf32-xtensa.c:1034 elf64-s390.c:882
-#: elf64-x86-64.c:1874 elfxx-sparc.c:1421 elfxx-tilegx.c:1699
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7602
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:552
+#: elf32-arm.c:15371 elf32-i386.c:1542 elf32-s390.c:960 elf32-tic6x.c:2783
+#: elf32-tilepro.c:1478 elf32-xtensa.c:1072 elf64-s390.c:882
+#: elf64-x86-64.c:1918 elfxx-sparc.c:1421 elfxx-tilegx.c:1699
+#: elfnn-aarch64.c:7669 elfnn-riscv.c:560
 #, c-format
 msgid "%pB: bad symbol index: %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: bad symbol index: %d"
 msgstr ""
 
-#: elf32-arm.c:15746
+#: elf32-arm.c:15760
 #, c-format
 msgid ""
 "FDPIC does not yet support %s relocation to become dynamic for executable"
 msgstr ""
 
 #, c-format
 msgid ""
 "FDPIC does not yet support %s relocation to become dynamic for executable"
 msgstr ""
 
-#: elf32-arm.c:16740 elf32-csky.c:1932 elf32-hppa.c:2096 elf32-lm32.c:1999
-#: elf32-m32r.c:2110 elf32-metag.c:2795 elf32-nds32.c:4334 elf32-or1k.c:2858
-#: elf32-ppc.c:5442 elf32-s390.c:1853 elf32-sh.c:2977 elf32-tic6x.c:3252
-#: elf32-tilepro.c:2244 elf64-ppc.c:9713 elf64-s390.c:1789 elfxx-sparc.c:2432
-#: elfxx-tilegx.c:2490 elfxx-x86.c:571
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:8865
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:1155
+#: elf32-arm.c:16754 elf32-csky.c:1932 elf32-hppa.c:2123 elf32-lm32.c:1999
+#: elf32-m32r.c:2110 elf32-metag.c:2795 elf32-nds32.c:4334 elf32-or1k.c:2967
+#: elf32-ppc.c:5451 elf32-s390.c:1853 elf32-sh.c:2977 elf32-tic6x.c:3252
+#: elf32-tilepro.c:2244 elf64-alpha.c:2020 elf64-alpha.c:2715 elf64-ppc.c:9917
+#: elf64-s390.c:1789 elfxx-sparc.c:2432 elfxx-tilegx.c:2490 elfxx-x86.c:574
+#: elfnn-aarch64.c:8934 elfnn-riscv.c:1163
 #, c-format
 msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
 msgstr ""
 
-#: elf32-arm.c:17036
+#: elf32-arm.c:17050
 #, c-format
 msgid "errors encountered processing file %pB"
 msgstr ""
 
 #, c-format
 msgid "errors encountered processing file %pB"
 msgstr ""
 
-#: elf32-arm.c:17483 elflink.c:12692 elflink.c:12739
+#: elf32-arm.c:17497 elflink.c:12808 elflink.c:12855
 #, c-format
 msgid "could not find section %s"
 msgstr ""
 
 #, c-format
 msgid "could not find section %s"
 msgstr ""
 
-#: elf32-arm.c:18702
+#: elf32-arm.c:18716
 #, c-format
 msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr ""
 
 #. There's not much we can do apart from complain if this
 #. happens.
 #, c-format
 msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr ""
 
 #. There's not much we can do apart from complain if this
 #. happens.
-#: elf32-arm.c:18729
+#: elf32-arm.c:18743
 #, c-format
 msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr ""
 
-#: elf32-arm.c:19556 elf32-arm.c:19578
+#: elf32-arm.c:19570 elf32-arm.c:19592
 #, c-format
 msgid "%pB: error: VFP11 veneer out of range"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: VFP11 veneer out of range"
 msgstr ""
 
-#: elf32-arm.c:19629
+#: elf32-arm.c:19643
 #, c-format
 msgid ""
 "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by "
 "%<PRId64> bytes; cannot encode branch instruction"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by "
 "%<PRId64> bytes; cannot encode branch instruction"
 msgstr ""
 
-#: elf32-arm.c:19668
+#: elf32-arm.c:19682
 #, c-format
 msgid "%pB: error: cannot create STM32L4XX veneer"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: cannot create STM32L4XX veneer"
 msgstr ""
 
-#: elf32-arm.c:20749
+#: elf32-arm.c:20763
 #, c-format
 msgid "error: %pB is already in final BE8 format"
 msgstr ""
 
 #, c-format
 msgid "error: %pB is already in final BE8 format"
 msgstr ""
 
-#: elf32-arm.c:20825
+#: elf32-arm.c:20839
 #, c-format
 msgid ""
 "error: source object %pB has EABI version %d, but target %pB has EABI "
 "version %d"
 msgstr ""
 
 #, c-format
 msgid ""
 "error: source object %pB has EABI version %d, but target %pB has EABI "
 "version %d"
 msgstr ""
 
-#: elf32-arm.c:20840
+#: elf32-arm.c:20854
 #, c-format
 msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
 msgstr ""
 
 #, c-format
 msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
 msgstr ""
 
-#: elf32-arm.c:20850
+#: elf32-arm.c:20864
 #, c-format
 msgid ""
 "error: %pB passes floats in float registers, whereas %pB passes them in "
 "integer registers"
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB passes floats in float registers, whereas %pB passes them in "
 "integer registers"
 msgstr ""
 
-#: elf32-arm.c:20854
+#: elf32-arm.c:20868
 #, c-format
 msgid ""
 "error: %pB passes floats in integer registers, whereas %pB passes them in "
 "float registers"
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB passes floats in integer registers, whereas %pB passes them in "
 "float registers"
 msgstr ""
 
-#: elf32-arm.c:20864 elf32-arm.c:20868 elf32-arm.c:20878
+#: elf32-arm.c:20878 elf32-arm.c:20882 elf32-arm.c:20892
 #, c-format
 msgid "error: %pB uses %s instructions, whereas %pB does not"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses %s instructions, whereas %pB does not"
 msgstr ""
 
-#: elf32-arm.c:20882
+#: elf32-arm.c:20896
 #, c-format
 msgid "error: %pB does not use %s instructions, whereas %pB does"
 msgstr ""
 
 #, c-format
 msgid "error: %pB does not use %s instructions, whereas %pB does"
 msgstr ""
 
-#: elf32-arm.c:20901
+#: elf32-arm.c:20915
 #, c-format
 msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
 msgstr ""
 
-#: elf32-arm.c:20905
+#: elf32-arm.c:20919
 #, c-format
 msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
 msgstr ""
 
-#: elf32-arm.c:20919
+#: elf32-arm.c:20933
 #, c-format
 msgid "warning: %pB supports interworking, whereas %pB does not"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB supports interworking, whereas %pB does not"
 msgstr ""
 
-#: elf32-arm.c:20925
+#: elf32-arm.c:20939
 #, c-format
 msgid "warning: %pB does not support interworking, whereas %pB does"
 msgstr ""
 #, c-format
 msgid "warning: %pB does not support interworking, whereas %pB does"
 msgstr ""
@@ -2053,13 +2118,13 @@ msgstr ""
 #: elf32-avr.c:1518 elf32-bfin.c:3130 elf32-cris.c:2041 elf32-epiphany.c:577
 #: elf32-fr30.c:602 elf32-frv.c:4053 elf32-ft32.c:502 elf32-ip2k.c:1493
 #: elf32-iq2000.c:699 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998
 #: elf32-avr.c:1518 elf32-bfin.c:3130 elf32-cris.c:2041 elf32-epiphany.c:577
 #: elf32-fr30.c:602 elf32-frv.c:4053 elf32-ft32.c:502 elf32-ip2k.c:1493
 #: elf32-iq2000.c:699 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998
-#: elf32-moxie.c:296 elf32-msp430.c:1369 elf32-mt.c:406 elf32-or1k.c:1767
+#: elf32-moxie.c:296 elf32-msp430.c:1375 elf32-mt.c:406 elf32-or1k.c:1829
 #: elf32-tilepro.c:3513 elf32-v850.c:2298 elf32-visium.c:688
 #: elf32-xstormy16.c:937 elf64-bpf.c:496 elf64-mmix.c:1549 elfxx-tilegx.c:3877
 msgid "internal error: dangerous relocation"
 msgstr ""
 
 #: elf32-tilepro.c:3513 elf32-v850.c:2298 elf32-visium.c:688
 #: elf32-xstormy16.c:937 elf64-bpf.c:496 elf64-mmix.c:1549 elfxx-tilegx.c:3877
 msgid "internal error: dangerous relocation"
 msgstr ""
 
-#: elf32-avr.c:3338 /work/sources/binutils/current/bfd/elfnn-aarch64.c:3267
+#: elf32-avr.c:3338 elfnn-aarch64.c:3267
 #, c-format
 msgid "cannot create stub entry %s"
 msgstr ""
 #, c-format
 msgid "cannot create stub entry %s"
 msgstr ""
@@ -2073,8 +2138,8 @@ msgstr ""
 msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
 msgstr ""
 
 msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
 msgstr ""
 
-#: elf32-bfin.c:1616 elf32-i386.c:3443 elf32-m68k.c:3989 elf32-s390.c:3268
-#: elf64-s390.c:3217 elf64-x86-64.c:4011
+#: elf32-bfin.c:1616 elf32-i386.c:3461 elf32-m68k.c:3989 elf32-s390.c:3268
+#: elf64-s390.c:3217 elf64-x86-64.c:4128
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
 msgstr ""
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
 msgstr ""
@@ -2098,7 +2163,7 @@ msgstr ""
 msgid "cannot emit fixups in read-only section"
 msgstr ""
 
 msgid "cannot emit fixups in read-only section"
 msgstr ""
 
-#: elf32-bfin.c:2821 elf32-bfin.c:2949 elf32-lm32.c:1049 elf32-sh.c:4513
+#: elf32-bfin.c:2821 elf32-bfin.c:2949 elf32-lm32.c:1049 elf32-sh.c:4500
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr ""
 
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr ""
 
@@ -2114,27 +2179,27 @@ msgstr ""
 msgid "warning: relocation references a different segment"
 msgstr ""
 
 msgid "warning: relocation references a different segment"
 msgstr ""
 
-#: elf32-bfin.c:4782 elf32-frv.c:6597
+#: elf32-bfin.c:4786 elf32-frv.c:6601
 #, c-format
 msgid "%pB: cannot link non-fdpic object file into fdpic executable"
 msgstr ""
 
 #, c-format
 msgid "%pB: cannot link non-fdpic object file into fdpic executable"
 msgstr ""
 
-#: elf32-bfin.c:4786 elf32-frv.c:6601
+#: elf32-bfin.c:4790 elf32-frv.c:6605
 #, c-format
 msgid "%pB: cannot link fdpic object file into non-fdpic executable"
 msgstr ""
 
 #, c-format
 msgid "%pB: cannot link fdpic object file into non-fdpic executable"
 msgstr ""
 
-#: elf32-bfin.c:4936
+#: elf32-bfin.c:4940
 #, c-format
 msgid "*** check this relocation %s"
 msgstr ""
 
 #, c-format
 msgid "*** check this relocation %s"
 msgstr ""
 
-#: elf32-bfin.c:5052
+#: elf32-bfin.c:5056
 msgid ""
 "the bfin target does not currently support the generation of copy relocations"
 msgstr ""
 
 msgid ""
 "the bfin target does not currently support the generation of copy relocations"
 msgstr ""
 
-#: elf32-bfin.c:5346 elf32-cr16.c:2801 elf32-m68k.c:4403
+#: elf32-bfin.c:5350 elf32-cr16.c:2801 elf32-m68k.c:4403
 msgid "unsupported relocation type"
 msgstr ""
 
 msgid "unsupported relocation type"
 msgstr ""
 
@@ -2304,7 +2369,7 @@ msgid ""
 msgstr ""
 
 #. The r_type is error, not support it.
 msgstr ""
 
 #. The r_type is error, not support it.
-#: elf32-csky.c:4224 elf32-i386.c:351
+#: elf32-csky.c:4232 elf32-i386.c:351
 #, c-format
 msgid "%pB: unsupported relocation type: %#x"
 msgstr ""
 #, c-format
 msgid "%pB: unsupported relocation type: %#x"
 msgstr ""
@@ -2407,18 +2472,18 @@ msgstr ""
 msgid "%H: reloc against `%s': %s\n"
 msgstr ""
 
 msgid "%H: reloc against `%s': %s\n"
 msgstr ""
 
-#: elf32-frv.c:6508
+#: elf32-frv.c:6512
 #, c-format
 msgid ""
 "%pB: compiled with %s and linked with modules that use non-pic relocations"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: compiled with %s and linked with modules that use non-pic relocations"
 msgstr ""
 
-#: elf32-frv.c:6562 elf32-iq2000.c:830 elf32-m32c.c:876
+#: elf32-frv.c:6566 elf32-iq2000.c:830 elf32-m32c.c:876
 #, c-format
 msgid "%pB: compiled with %s and linked with modules compiled with %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: compiled with %s and linked with modules compiled with %s"
 msgstr ""
 
-#: elf32-frv.c:6575
+#: elf32-frv.c:6579
 #, c-format
 msgid ""
 "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
 #, c-format
 msgid ""
 "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
@@ -2429,118 +2494,124 @@ msgstr ""
 msgid "%pB: relocations in generic ELF (EM: %d)"
 msgstr ""
 
 msgid "%pB: relocations in generic ELF (EM: %d)"
 msgstr ""
 
-#: elf32-hppa.c:842 elf32-hppa.c:3518
+#: elf32-hppa.c:767 elf32-hppa.c:848 elf64-ppc.c:11918
+msgid ""
+"%F%P: Could not assign %pA to an output section. Retry without --enable-non-"
+"contiguous-regions.\n"
+msgstr ""
+
+#: elf32-hppa.c:869 elf32-hppa.c:3545
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
 msgstr ""
 
-#: elf32-hppa.c:1256
+#: elf32-hppa.c:1283
 #, c-format
 msgid ""
 "%pB: relocation %s can not be used when making a shared object; recompile "
 "with -fPIC"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation %s can not be used when making a shared object; recompile "
 "with -fPIC"
 msgstr ""
 
-#: elf32-hppa.c:2695
+#: elf32-hppa.c:2722
 #, c-format
 msgid "%pB: duplicate export stub %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: duplicate export stub %s"
 msgstr ""
 
-#: elf32-hppa.c:3351
+#: elf32-hppa.c:3378
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared "
 "link"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared "
 "link"
 msgstr ""
 
-#: elf32-hppa.c:4147
+#: elf32-hppa.c:4174
 #, c-format
 msgid "%s has both normal and TLS relocs"
 msgstr ""
 
 #, c-format
 msgid "%s has both normal and TLS relocs"
 msgstr ""
 
-#: elf32-hppa.c:4165
+#: elf32-hppa.c:4192
 #, c-format
 msgid "%pB:%s has both normal and TLS relocs"
 msgstr ""
 
 #, c-format
 msgid "%pB:%s has both normal and TLS relocs"
 msgstr ""
 
-#: elf32-hppa.c:4224
+#: elf32-hppa.c:4251
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
 msgstr ""
 
-#: elf32-hppa.c:4528
+#: elf32-hppa.c:4555
 msgid ".got section not immediately after .plt section"
 msgstr ""
 
 msgid ".got section not immediately after .plt section"
 msgstr ""
 
-#: elf32-i386.c:1178 elf64-x86-64.c:1377
+#: elf32-i386.c:1178 elf64-x86-64.c:1389
 #, c-format
 msgid ""
 "%pB: TLS transition from %s to %s against `%s' at %#<PRIx64> in section `"
 "%pA' failed"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: TLS transition from %s to %s against `%s' at %#<PRIx64> in section `"
 "%pA' failed"
 msgstr ""
 
-#: elf32-i386.c:1269
+#: elf32-i386.c:1281
 #, c-format
 msgid ""
 "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register "
 "can not be used when making a shared object"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register "
 "can not be used when making a shared object"
 msgstr ""
 
-#: elf32-i386.c:1722 elf32-s390.c:1188 elf32-sh.c:5662 elf32-tilepro.c:1591
-#: elf32-xtensa.c:1206 elf64-s390.c:1120 elfxx-sparc.c:1590 elfxx-tilegx.c:1804
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:464
+#: elf32-i386.c:1739 elf32-s390.c:1188 elf32-sh.c:5649 elf32-tilepro.c:1591
+#: elf32-xtensa.c:1244 elf64-s390.c:1120 elfxx-sparc.c:1590 elfxx-tilegx.c:1804
+#: elfnn-riscv.c:472
 #, c-format
 msgid "%pB: `%s' accessed both as normal and thread local symbol"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf32-i386.c:1794
+#: elf32-i386.c:1811
 #, c-format
 msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
 msgstr ""
 
-#: elf32-i386.c:2373 elf64-x86-64.c:2674
+#: elf32-i386.c:2391 elf64-x86-64.c:2737
 #, c-format
 msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
 msgstr ""
 
 #, c-format
 msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
 msgstr ""
 
-#: elf32-i386.c:2406 elf32-i386.c:3654 elf32-i386.c:3795 elf64-x86-64.c:2731
-#: elf64-x86-64.c:4184 elf64-x86-64.c:4340
+#: elf32-i386.c:2424 elf32-i386.c:3672 elf32-i386.c:3813 elf64-x86-64.c:2794
+#: elf64-x86-64.c:4301 elf64-x86-64.c:4457
 #, c-format
 msgid "Local IFUNC function `%s' in %pB\n"
 msgstr ""
 
 #, c-format
 msgid "Local IFUNC function `%s' in %pB\n"
 msgstr ""
 
-#: elf32-i386.c:2563
+#: elf32-i386.c:2581
 #, c-format
 msgid ""
 "%pB: direct GOT relocation %s against `%s' without base register can not be "
 "used when making a shared object"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: direct GOT relocation %s against `%s' without base register can not be "
 "used when making a shared object"
 msgstr ""
 
-#: elf32-i386.c:2598 elf64-x86-64.c:2923
+#: elf32-i386.c:2616 elf64-x86-64.c:2993
 msgid "hidden symbol"
 msgstr ""
 
 msgid "hidden symbol"
 msgstr ""
 
-#: elf32-i386.c:2601 elf64-x86-64.c:2926
+#: elf32-i386.c:2619 elf64-x86-64.c:2996
 msgid "internal symbol"
 msgstr ""
 
 msgid "internal symbol"
 msgstr ""
 
-#: elf32-i386.c:2604 elf64-x86-64.c:2929
+#: elf32-i386.c:2622 elf64-x86-64.c:2999
 msgid "protected symbol"
 msgstr ""
 
 msgid "protected symbol"
 msgstr ""
 
-#: elf32-i386.c:2607 elf64-x86-64.c:2932
+#: elf32-i386.c:2625 elf64-x86-64.c:3002
 msgid "symbol"
 msgstr ""
 
 msgid "symbol"
 msgstr ""
 
-#: elf32-i386.c:2613
+#: elf32-i386.c:2631
 #, c-format
 msgid ""
 "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
 "making a shared object"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
 "making a shared object"
 msgstr ""
 
-#: elf32-i386.c:2626
+#: elf32-i386.c:2644
 #, c-format
 msgid ""
 "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when "
 #, c-format
 msgid ""
 "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when "
@@ -2567,11 +2638,11 @@ msgid ""
 "ip2k linker: redundant page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
 msgstr ""
 
 "ip2k linker: redundant page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
 msgstr ""
 
-#: elf32-lm32.c:651 elf32-nios2.c:3141
+#: elf32-lm32.c:651 elf32-nios2.c:3152
 msgid "global pointer relative relocation when _gp not defined"
 msgstr ""
 
 msgid "global pointer relative relocation when _gp not defined"
 msgstr ""
 
-#: elf32-lm32.c:706 elf32-nios2.c:3578
+#: elf32-lm32.c:706 elf32-nios2.c:3589
 msgid "global pointer relative address out of range"
 msgstr ""
 
 msgid "global pointer relative address out of range"
 msgstr ""
 
@@ -2594,7 +2665,7 @@ msgstr ""
 msgid "%pB: instruction set mismatch with previous modules"
 msgstr ""
 
 msgid "%pB: instruction set mismatch with previous modules"
 msgstr ""
 
-#: elf32-m32r.c:3508 elf32-nds32.c:6995
+#: elf32-m32r.c:3508 elf32-nds32.c:6999
 #, c-format
 msgid "private flags = %lx"
 msgstr ""
 #, c-format
 msgid "private flags = %lx"
 msgstr ""
@@ -2718,7 +2789,7 @@ msgstr ""
 msgid " [XGATE RAM offsetting]"
 msgstr ""
 
 msgid " [XGATE RAM offsetting]"
 msgstr ""
 
-#: elf32-m68k.c:1220 elf32-m68k.c:1221 vms-alpha.c:7581 vms-alpha.c:7597
+#: elf32-m68k.c:1220 elf32-m68k.c:1221 vms-alpha.c:7635 vms-alpha.c:7651
 msgid "unknown"
 msgstr ""
 
 msgid "unknown"
 msgstr ""
 
@@ -2785,50 +2856,50 @@ msgstr ""
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr ""
 
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr ""
 
-#: elf32-msp430.c:840 elf32-msp430.c:1154
+#: elf32-msp430.c:846 elf32-msp430.c:1160
 msgid "try enabling relaxation to avoid relocation truncations"
 msgstr ""
 
 msgid "try enabling relaxation to avoid relocation truncations"
 msgstr ""
 
-#: elf32-msp430.c:1361
+#: elf32-msp430.c:1367
 msgid "internal error: branch/jump to an odd address detected"
 msgstr ""
 
 msgid "internal error: branch/jump to an odd address detected"
 msgstr ""
 
-#: elf32-msp430.c:2360
+#: elf32-msp430.c:2535
 #, c-format
 msgid "warning: %pB: unknown MSPABI object attribute %d"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB: unknown MSPABI object attribute %d"
 msgstr ""
 
-#: elf32-msp430.c:2461
+#: elf32-msp430.c:2636
 #, c-format
 msgid "error: %pB uses %s instructions but %pB uses %s"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses %s instructions but %pB uses %s"
 msgstr ""
 
-#: elf32-msp430.c:2473
+#: elf32-msp430.c:2648
 #, c-format
 msgid "error: %pB uses the %s code model whereas %pB uses the %s code model"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses the %s code model whereas %pB uses the %s code model"
 msgstr ""
 
-#: elf32-msp430.c:2486
+#: elf32-msp430.c:2661
 #, c-format
 msgid "error: %pB uses the large code model but %pB uses MSP430 instructions"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses the large code model but %pB uses MSP430 instructions"
 msgstr ""
 
-#: elf32-msp430.c:2497
+#: elf32-msp430.c:2672
 #, c-format
 msgid "error: %pB uses the %s data model whereas %pB uses the %s data model"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses the %s data model whereas %pB uses the %s data model"
 msgstr ""
 
-#: elf32-msp430.c:2510
+#: elf32-msp430.c:2685
 #, c-format
 msgid "error: %pB uses the small code model but %pB uses the %s data model"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses the small code model but %pB uses the %s data model"
 msgstr ""
 
-#: elf32-msp430.c:2522
+#: elf32-msp430.c:2697
 #, c-format
 msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions"
 msgstr ""
 
 #, c-format
 msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions"
 msgstr ""
 
-#: elf32-msp430.c:2547
+#: elf32-msp430.c:2722
 #, c-format
 msgid ""
 "error: %pB can use the upper region for data, but %pB assumes data is "
 #, c-format
 msgid ""
 "error: %pB can use the upper region for data, but %pB assumes data is "
@@ -2867,151 +2938,151 @@ msgid ""
 "current %u-byte"
 msgstr ""
 
 "current %u-byte"
 msgstr ""
 
-#: elf32-nds32.c:6831
+#: elf32-nds32.c:6835
 #, c-format
 msgid "%pB: warning: endian mismatch with previous modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: endian mismatch with previous modules"
 msgstr ""
 
-#: elf32-nds32.c:6845
+#: elf32-nds32.c:6849
 #, c-format
 msgid ""
 "%pB: warning: older version of object file encountered, please recompile "
 "with current tool chain"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: older version of object file encountered, please recompile "
 "with current tool chain"
 msgstr ""
 
-#: elf32-nds32.c:6933
+#: elf32-nds32.c:6937
 #, c-format
 msgid "%pB: error: ABI mismatch with previous modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: ABI mismatch with previous modules"
 msgstr ""
 
-#: elf32-nds32.c:6943
+#: elf32-nds32.c:6947
 #, c-format
 msgid "%pB: error: instruction set mismatch with previous modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: instruction set mismatch with previous modules"
 msgstr ""
 
-#: elf32-nds32.c:6970
+#: elf32-nds32.c:6974
 #, c-format
 msgid "%pB: warning: incompatible elf-versions %s and %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: incompatible elf-versions %s and %s"
 msgstr ""
 
-#: elf32-nds32.c:7001
+#: elf32-nds32.c:7005
 #, c-format
 msgid ": n1 instructions"
 msgstr ""
 
 #, c-format
 msgid ": n1 instructions"
 msgstr ""
 
-#: elf32-nds32.c:7004
+#: elf32-nds32.c:7008
 #, c-format
 msgid ": n1h instructions"
 msgstr ""
 
 #, c-format
 msgid ": n1h instructions"
 msgstr ""
 
-#: elf32-nds32.c:9465
+#: elf32-nds32.c:9469
 #, c-format
 msgid "%pB: error: search_nds32_elf_blank reports wrong node"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: search_nds32_elf_blank reports wrong node"
 msgstr ""
 
-#: elf32-nds32.c:9725
+#: elf32-nds32.c:9729
 #, c-format
 msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
 msgstr ""
 
-#: elf32-nds32.c:12978
+#: elf32-nds32.c:12994
 #, c-format
 msgid "%pB: nested OMIT_FP in %pA"
 msgstr ""
 
 #, c-format
 msgid "%pB: nested OMIT_FP in %pA"
 msgstr ""
 
-#: elf32-nds32.c:12997
+#: elf32-nds32.c:13013
 #, c-format
 msgid "%pB: unmatched OMIT_FP in %pA"
 msgstr ""
 
 #, c-format
 msgid "%pB: unmatched OMIT_FP in %pA"
 msgstr ""
 
-#: elf32-nds32.c:13279 reloc.c:8442
+#: elf32-nds32.c:13295 reloc.c:8470
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
 msgstr ""
 
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
 msgstr ""
 
-#: elf32-nios2.c:2930
+#: elf32-nios2.c:2941
 #, c-format
 msgid "error: %pB: big-endian R2 is not supported"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: big-endian R2 is not supported"
 msgstr ""
 
-#: elf32-nios2.c:3822
+#: elf32-nios2.c:3833
 #, c-format
 msgid ""
 "global pointer relative relocation at address %#<PRIx64> when _gp not "
 "defined\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "global pointer relative relocation at address %#<PRIx64> when _gp not "
 "defined\n"
 msgstr ""
 
-#: elf32-nios2.c:3852
+#: elf32-nios2.c:3863
 #, c-format
 msgid ""
 "unable to reach %s (at %#<PRIx64>) from the global pointer (at %#<PRIx64>) "
 "because the offset (%<PRId64>) is out of the allowed range, -32678 to 32767\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "unable to reach %s (at %#<PRIx64>) from the global pointer (at %#<PRIx64>) "
 "because the offset (%<PRId64>) is out of the allowed range, -32678 to 32767\n"
 msgstr ""
 
-#: elf32-nios2.c:4507 elf32-pru.c:931
+#: elf32-nios2.c:4518 elf32-pru.c:931
 msgid "relocation out of range"
 msgstr ""
 
 msgid "relocation out of range"
 msgstr ""
 
-#: elf32-nios2.c:4517 elf32-pru.c:941 elf32-tic6x.c:2716
+#: elf32-nios2.c:4528 elf32-pru.c:941 elf32-tic6x.c:2716
 msgid "dangerous relocation"
 msgstr ""
 
 msgid "dangerous relocation"
 msgstr ""
 
-#: elf32-nios2.c:5392
+#: elf32-nios2.c:5403
 #, c-format
 msgid "dynamic variable `%s' is zero size"
 msgstr ""
 
 #, c-format
 msgid "dynamic variable `%s' is zero size"
 msgstr ""
 
-#: elf32-or1k.c:1177
+#: elf32-or1k.c:1214
 #, c-format
 msgid "%pB: Cannot handle relocation value size of %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: Cannot handle relocation value size of %d"
 msgstr ""
 
-#: elf32-or1k.c:1286
+#: elf32-or1k.c:1321
 #, c-format
 msgid "%pB: unknown relocation type %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: unknown relocation type %d"
 msgstr ""
 
-#: elf32-or1k.c:1340
+#: elf32-or1k.c:1375
 #, c-format
 msgid "%pB: addend should be zero for plt relocations"
 msgstr ""
 
 #, c-format
 msgid "%pB: addend should be zero for plt relocations"
 msgstr ""
 
-#: elf32-or1k.c:1445
+#: elf32-or1k.c:1480
 #, c-format
 msgid "%pB: addend should be zero for got relocations"
 msgstr ""
 
 #, c-format
 msgid "%pB: addend should be zero for got relocations"
 msgstr ""
 
-#: elf32-or1k.c:1462
+#: elf32-or1k.c:1497
 #, c-format
 msgid "%pB: gotoff relocation against dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: gotoff relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf32-or1k.c:1479 elf64-alpha.c:4456 elf64-alpha.c:4600
+#: elf32-or1k.c:1514 elf64-alpha.c:4471 elf64-alpha.c:4615
 #, c-format
 msgid "%pB: pc-relative relocation against dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: pc-relative relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf32-or1k.c:1493
+#: elf32-or1k.c:1528
 #, c-format
 msgid "%pB: non-pic relocation against symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: non-pic relocation against symbol %s"
 msgstr ""
 
-#: elf32-or1k.c:1577
+#: elf32-or1k.c:1612
 #, c-format
 msgid "%pB: support for local dynamic not implemented"
 msgstr ""
 
 #, c-format
 msgid "%pB: support for local dynamic not implemented"
 msgstr ""
 
-#: elf32-or1k.c:1729
+#: elf32-or1k.c:1791
 #, c-format
 msgid "%pB: will not resolve runtime TLS relocation"
 msgstr ""
 
 #, c-format
 msgid "%pB: will not resolve runtime TLS relocation"
 msgstr ""
 
-#: elf32-or1k.c:2071
+#: elf32-or1k.c:2133
 #, c-format
 msgid "%pB: bad relocation section name `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: bad relocation section name `%s'"
 msgstr ""
 
-#: elf32-or1k.c:3218
+#: elf32-or1k.c:3322
 #, c-format
 msgid "%pB: %s flag mismatch with previous modules"
 msgstr ""
 #, c-format
 msgid "%pB: %s flag mismatch with previous modules"
 msgstr ""
@@ -3021,97 +3092,97 @@ msgstr ""
 msgid "generic linker can't handle %s"
 msgstr ""
 
 msgid "generic linker can't handle %s"
 msgstr ""
 
-#: elf32-ppc.c:1622
+#: elf32-ppc.c:1628
 #, c-format
 msgid "corrupt %s section in %pB"
 msgstr ""
 
 #, c-format
 msgid "corrupt %s section in %pB"
 msgstr ""
 
-#: elf32-ppc.c:1642
+#: elf32-ppc.c:1648
 #, c-format
 msgid "unable to read in %s section from %pB"
 msgstr ""
 
 #, c-format
 msgid "unable to read in %s section from %pB"
 msgstr ""
 
-#: elf32-ppc.c:1684
+#: elf32-ppc.c:1690
 #, c-format
 msgid "warning: unable to set size of %s section in %pB"
 msgstr ""
 
 #, c-format
 msgid "warning: unable to set size of %s section in %pB"
 msgstr ""
 
-#: elf32-ppc.c:1734
+#: elf32-ppc.c:1740
 msgid "failed to allocate space for new APUinfo section"
 msgstr ""
 
 msgid "failed to allocate space for new APUinfo section"
 msgstr ""
 
-#: elf32-ppc.c:1753
+#: elf32-ppc.c:1759
 msgid "failed to compute new APUinfo section"
 msgstr ""
 
 msgid "failed to compute new APUinfo section"
 msgstr ""
 
-#: elf32-ppc.c:1756
+#: elf32-ppc.c:1762
 msgid "failed to install new APUinfo section"
 msgstr ""
 
 msgid "failed to install new APUinfo section"
 msgstr ""
 
-#: elf32-ppc.c:2864
+#: elf32-ppc.c:2870
 #, c-format
 msgid "%pB: relocation %s cannot be used when making a shared object"
 msgstr ""
 
 #, c-format
 msgid "%pB: relocation %s cannot be used when making a shared object"
 msgstr ""
 
-#: elf32-ppc.c:3581 elf32-ppc.c:3589
+#: elf32-ppc.c:3587 elf32-ppc.c:3595
 #, c-format
 msgid "%pB uses hard float, %pB uses soft float"
 msgstr ""
 
 #, c-format
 msgid "%pB uses hard float, %pB uses soft float"
 msgstr ""
 
-#: elf32-ppc.c:3597 elf32-ppc.c:3605
+#: elf32-ppc.c:3603 elf32-ppc.c:3611
 #, c-format
 msgid ""
 "%pB uses double-precision hard float, %pB uses single-precision hard float"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB uses double-precision hard float, %pB uses single-precision hard float"
 msgstr ""
 
-#: elf32-ppc.c:3624 elf32-ppc.c:3632
+#: elf32-ppc.c:3630 elf32-ppc.c:3638
 #, c-format
 msgid "%pB uses 64-bit long double, %pB uses 128-bit long double"
 msgstr ""
 
 #, c-format
 msgid "%pB uses 64-bit long double, %pB uses 128-bit long double"
 msgstr ""
 
-#: elf32-ppc.c:3640 elf32-ppc.c:3648
+#: elf32-ppc.c:3646 elf32-ppc.c:3654
 #, c-format
 msgid "%pB uses IBM long double, %pB uses IEEE long double"
 msgstr ""
 
 #, c-format
 msgid "%pB uses IBM long double, %pB uses IEEE long double"
 msgstr ""
 
-#: elf32-ppc.c:3715 elf32-ppc.c:3724
+#: elf32-ppc.c:3721 elf32-ppc.c:3730
 #, c-format
 msgid "%pB uses AltiVec vector ABI, %pB uses SPE vector ABI"
 msgstr ""
 
 #, c-format
 msgid "%pB uses AltiVec vector ABI, %pB uses SPE vector ABI"
 msgstr ""
 
-#: elf32-ppc.c:3753 elf32-ppc.c:3762
+#: elf32-ppc.c:3759 elf32-ppc.c:3768
 #, c-format
 msgid "%pB uses r3/r4 for small structure returns, %pB uses memory"
 msgstr ""
 
 #, c-format
 msgid "%pB uses r3/r4 for small structure returns, %pB uses memory"
 msgstr ""
 
-#: elf32-ppc.c:3823
+#: elf32-ppc.c:3832
 #, c-format
 msgid ""
 "%pB: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr ""
 
-#: elf32-ppc.c:3831
+#: elf32-ppc.c:3840
 #, c-format
 msgid ""
 "%pB: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr ""
 
-#: elf32-ppc.c:3900
+#: elf32-ppc.c:3909
 #, c-format
 msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn"
 msgstr ""
 
-#: elf32-ppc.c:3919
+#: elf32-ppc.c:3928
 #, c-format
 msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn"
 msgstr ""
 
-#: elf32-ppc.c:4022
+#: elf32-ppc.c:4031
 #, c-format
 msgid "bss-plt forced due to %pB"
 msgstr ""
 
 #, c-format
 msgid "bss-plt forced due to %pB"
 msgstr ""
 
-#: elf32-ppc.c:4024
+#: elf32-ppc.c:4033
 msgid "bss-plt forced by profiling"
 msgstr ""
 
 msgid "bss-plt forced by profiling"
 msgstr ""
 
@@ -3119,40 +3190,40 @@ msgstr ""
 #. could just mark this symbol to exclude it
 #. from tls optimization but it's safer to skip
 #. the entire optimization.
 #. could just mark this symbol to exclude it
 #. from tls optimization but it's safer to skip
 #. the entire optimization.
-#: elf32-ppc.c:4599 elf64-ppc.c:8099
+#: elf32-ppc.c:4608 elf64-ppc.c:8277
 #, c-format
 msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
 msgstr ""
 
 #, c-format
 msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
 msgstr ""
 
-#: elf32-ppc.c:5550 elf32-sh.c:3080 elf32-tilepro.c:2338 elfxx-sparc.c:2531
+#: elf32-ppc.c:5559 elf32-sh.c:3080 elf32-tilepro.c:2338 elfxx-sparc.c:2531
 #: elfxx-tilegx.c:2578
 #, c-format
 msgid "%pB: dynamic relocation in read-only section `%pA'\n"
 msgstr ""
 
 #: elfxx-tilegx.c:2578
 #, c-format
 msgid "%pB: dynamic relocation in read-only section `%pA'\n"
 msgstr ""
 
-#: elf32-ppc.c:7430
+#: elf32-ppc.c:7439
 msgid "%P: %H: error: %s with unexpected instruction %x\n"
 msgstr ""
 
 msgid "%P: %H: error: %s with unexpected instruction %x\n"
 msgstr ""
 
-#: elf32-ppc.c:7467
+#: elf32-ppc.c:7476
 msgid "%H: fixup branch overflow\n"
 msgstr ""
 
 msgid "%H: fixup branch overflow\n"
 msgstr ""
 
-#: elf32-ppc.c:7507 elf32-ppc.c:7543
+#: elf32-ppc.c:7516 elf32-ppc.c:7552
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
 msgstr ""
 
-#: elf32-ppc.c:7607
+#: elf32-ppc.c:7616
 #, c-format
 msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
 msgstr ""
 
 #, c-format
 msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
 msgstr ""
 
-#: elf32-ppc.c:7646 elf64-ppc.c:16456
+#: elf32-ppc.c:7655 elf64-ppc.c:16914
 msgid "%H: warning: %s unexpected insn %#x.\n"
 msgstr ""
 
 msgid "%H: warning: %s unexpected insn %#x.\n"
 msgstr ""
 
-#: elf32-ppc.c:7955
+#: elf32-ppc.c:7964
 #, c-format
 msgid "%H: non-zero addend on %s reloc against `%s'\n"
 msgstr ""
 #, c-format
 msgid "%H: non-zero addend on %s reloc against `%s'\n"
 msgstr ""
@@ -3165,54 +3236,54 @@ msgstr ""
 #. local won't have the +32k reloc addend trick marking
 #. -fPIC code, so the linker won't know whether r30 is
 #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
 #. local won't have the +32k reloc addend trick marking
 #. -fPIC code, so the linker won't know whether r30 is
 #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
-#: elf32-ppc.c:7987
+#: elf32-ppc.c:7996
 #, c-format
 msgid "%X%H: @local call to ifunc %s\n"
 msgstr ""
 
 #, c-format
 msgid "%X%H: @local call to ifunc %s\n"
 msgstr ""
 
-#: elf32-ppc.c:8165
+#: elf32-ppc.c:8174
 #, c-format
 msgid "%H: relocation %s for indirect function %s unsupported\n"
 msgstr ""
 
 #, c-format
 msgid "%H: relocation %s for indirect function %s unsupported\n"
 msgstr ""
 
-#: elf32-ppc.c:8499 elf32-ppc.c:8530 elf32-ppc.c:8621 elf32-ppc.c:8717
+#: elf32-ppc.c:8508 elf32-ppc.c:8539 elf32-ppc.c:8630 elf32-ppc.c:8726
 #, c-format
 msgid ""
 "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
 msgstr ""
 
-#: elf32-ppc.c:8847 elf32-ppc.c:8865
+#: elf32-ppc.c:8856 elf32-ppc.c:8874
 msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
 msgstr ""
 
 msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
 msgstr ""
 
-#: elf32-ppc.c:8946
+#: elf32-ppc.c:8955
 #, c-format
 msgid "%H: error: %s against `%s' not a multiple of %u\n"
 msgstr ""
 
 #, c-format
 msgid "%H: error: %s against `%s' not a multiple of %u\n"
 msgstr ""
 
-#: elf32-ppc.c:8975
+#: elf32-ppc.c:8984
 #, c-format
 msgid "%H: unresolvable %s relocation against symbol `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "%H: unresolvable %s relocation against symbol `%s'\n"
 msgstr ""
 
-#: elf32-ppc.c:9056
+#: elf32-ppc.c:9065
 #, c-format
 msgid "%H: %s reloc against `%s': error %d\n"
 msgstr ""
 
 #, c-format
 msgid "%H: %s reloc against `%s': error %d\n"
 msgstr ""
 
-#: elf32-ppc.c:9947 elf64-ppc.c:17009
+#: elf32-ppc.c:9956 elf64-ppc.c:17465
 msgid ""
 "%X%P: text relocations and GNU indirect functions will result in a segfault "
 "at runtime\n"
 msgstr ""
 
 msgid ""
 "%X%P: text relocations and GNU indirect functions will result in a segfault "
 "at runtime\n"
 msgstr ""
 
-#: elf32-ppc.c:9951 elf64-ppc.c:17013
+#: elf32-ppc.c:9960 elf64-ppc.c:17469
 msgid ""
 "%P: warning: text relocations and GNU indirect functions may result in a "
 "segfault at runtime\n"
 msgstr ""
 
 msgid ""
 "%P: warning: text relocations and GNU indirect functions may result in a "
 "segfault at runtime\n"
 msgstr ""
 
-#: elf32-ppc.c:9996
+#: elf32-ppc.c:10005
 #, c-format
 msgid "%s not defined in linker created %pA"
 msgstr ""
 #, c-format
 msgid "%s not defined in linker created %pA"
 msgstr ""
@@ -3234,7 +3305,7 @@ msgstr ""
 msgid "warning: RL78_SYM reloc with an unknown symbol"
 msgstr ""
 
 msgid "warning: RL78_SYM reloc with an unknown symbol"
 msgstr ""
 
-#: elf32-rl78.c:1084 elf32-rx.c:1456
+#: elf32-rl78.c:1084 elf32-rx.c:1461
 #, c-format
 msgid "%pB(%pA): error: call to undefined function '%s'"
 msgstr ""
 #, c-format
 msgid "%pB(%pA): error: call to undefined function '%s'"
 msgstr ""
@@ -3263,17 +3334,17 @@ msgstr ""
 msgid " [64-bit doubles]"
 msgstr ""
 
 msgid " [64-bit doubles]"
 msgstr ""
 
-#: elf32-rx.c:605
+#: elf32-rx.c:607
 #, c-format
 msgid "%pB:%pA: table entry %s outside table"
 msgstr ""
 
 #, c-format
 msgid "%pB:%pA: table entry %s outside table"
 msgstr ""
 
-#: elf32-rx.c:612
+#: elf32-rx.c:614
 #, c-format
 msgid "%pB:%pA: table entry %s not word-aligned within table"
 msgstr ""
 
 #, c-format
 msgid "%pB:%pA: table entry %s not word-aligned within table"
 msgstr ""
 
-#: elf32-rx.c:684
+#: elf32-rx.c:689
 #, c-format
 msgid "%pB:%pA: warning: deprecated Red Hat reloc %s detected against: %s"
 msgstr ""
 #, c-format
 msgid "%pB:%pA: warning: deprecated Red Hat reloc %s detected against: %s"
 msgstr ""
@@ -3282,36 +3353,36 @@ msgstr ""
 #. an absolute address is being computed.  There are special cases
 #. for relocs against symbols that are known to be referenced in
 #. crt0.o before the PID base address register has been initialised.
 #. an absolute address is being computed.  There are special cases
 #. for relocs against symbols that are known to be referenced in
 #. crt0.o before the PID base address register has been initialised.
-#: elf32-rx.c:704
+#: elf32-rx.c:709
 #, c-format
 msgid "%pB(%pA): unsafe PID relocation %s at %#<PRIx64> (against %s in %s)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA): unsafe PID relocation %s at %#<PRIx64> (against %s in %s)"
 msgstr ""
 
-#: elf32-rx.c:1288
+#: elf32-rx.c:1293
 msgid "warning: RX_SYM reloc with an unknown symbol"
 msgstr ""
 
 msgid "warning: RX_SYM reloc with an unknown symbol"
 msgstr ""
 
-#: elf32-rx.c:3167
+#: elf32-rx.c:3175
 #, c-format
 msgid "there is a conflict merging the ELF header flags from %pB"
 msgstr ""
 
 #, c-format
 msgid "there is a conflict merging the ELF header flags from %pB"
 msgstr ""
 
-#: elf32-rx.c:3170
+#: elf32-rx.c:3178
 #, c-format
 msgid "  the input  file's flags: %s"
 msgstr ""
 
 #, c-format
 msgid "  the input  file's flags: %s"
 msgstr ""
 
-#: elf32-rx.c:3172
+#: elf32-rx.c:3180
 #, c-format
 msgid "  the output file's flags: %s"
 msgstr ""
 
 #, c-format
 msgid "  the output file's flags: %s"
 msgstr ""
 
-#: elf32-rx.c:3790
+#: elf32-rx.c:3786
 #, c-format
 msgid "%pB:%pA: table %s missing corresponding %s"
 msgstr ""
 
 #, c-format
 msgid "%pB:%pA: table %s missing corresponding %s"
 msgstr ""
 
-#: elf32-rx.c:3798
+#: elf32-rx.c:3794
 #, c-format
 msgid "%pB:%pA: %s and %s must be in the same input section"
 msgstr ""
 #, c-format
 msgid "%pB:%pA: %s and %s must be in the same input section"
 msgstr ""
@@ -3321,35 +3392,35 @@ msgstr ""
 msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
 msgstr ""
 
 msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
 msgstr ""
 
-#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3819
+#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3824
 msgid "not enough GOT space for local GOT entries"
 msgstr ""
 
 msgid "not enough GOT space for local GOT entries"
 msgstr ""
 
-#: elf32-score.c:2746
+#: elf32-score.c:2747
 msgid "address not word aligned"
 msgstr ""
 
 msgid "address not word aligned"
 msgstr ""
 
-#: elf32-score.c:2827 elf32-score7.c:2632
+#: elf32-score.c:2828 elf32-score7.c:2633
 #, c-format
 msgid "%pB: malformed reloc detected for section %pA"
 msgstr ""
 
 #, c-format
 msgid "%pB: malformed reloc detected for section %pA"
 msgstr ""
 
-#: elf32-score.c:2881 elf32-score7.c:2686
+#: elf32-score.c:2882 elf32-score7.c:2687
 #, c-format
 msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
 msgstr ""
 
 #, c-format
 msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
 msgstr ""
 
-#: elf32-score.c:4002 elf32-score7.c:3807
+#: elf32-score.c:4003 elf32-score7.c:3808
 #, c-format
 msgid " [pic]"
 msgstr ""
 
 #, c-format
 msgid " [pic]"
 msgstr ""
 
-#: elf32-score.c:4006 elf32-score7.c:3811
+#: elf32-score.c:4007 elf32-score7.c:3812
 #, c-format
 msgid " [fix dep]"
 msgstr ""
 
 #, c-format
 msgid " [fix dep]"
 msgstr ""
 
-#: elf32-score.c:4049 elf32-score7.c:3854
+#: elf32-score.c:4054 elf32-score7.c:3859
 #, c-format
 msgid "%pB: warning: linking PIC files with non-PIC files"
 msgstr ""
 #, c-format
 msgid "%pB: warning: linking PIC files with non-PIC files"
 msgstr ""
@@ -3359,44 +3430,40 @@ msgstr ""
 msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
 msgstr ""
 
 msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
 msgstr ""
 
-#: elf32-sh.c:3635
-msgid "unexpected STO_SH5_ISA32 on local symbol is not handled"
-msgstr ""
-
-#: elf32-sh.c:3882
+#: elf32-sh.c:3869
 #, c-format
 msgid ""
 "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
 msgstr ""
 
-#: elf32-sh.c:3912 elf32-sh.c:3928
+#: elf32-sh.c:3899 elf32-sh.c:3915
 #, c-format
 msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
 msgstr ""
 
-#: elf32-sh.c:3944
+#: elf32-sh.c:3931
 #, c-format
 msgid ""
 "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
 msgstr ""
 
-#: elf32-sh.c:3960
+#: elf32-sh.c:3947
 #, c-format
 msgid ""
 "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
 msgstr ""
 
-#: elf32-sh.c:4090 elf32-sh.c:4485
+#: elf32-sh.c:4077 elf32-sh.c:4472
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
 msgstr ""
 
-#: elf32-sh.c:4588
+#: elf32-sh.c:4575
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
 msgstr ""
 
-#: elf32-sh.c:4707
+#: elf32-sh.c:4694
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for GD->LE translation is too small: "
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for GD->LE translation is too small: "
@@ -3404,125 +3471,125 @@ msgid ""
 msgstr ""
 
 #. The backslash is to prevent bogus trigraph detection.
 msgstr ""
 
 #. The backslash is to prevent bogus trigraph detection.
-#: elf32-sh.c:4725
+#: elf32-sh.c:4712
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
 msgstr ""
 
-#: elf32-sh.c:4733
+#: elf32-sh.c:4720
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
 msgstr ""
 
-#: elf32-sh.c:4740
+#: elf32-sh.c:4727
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
 msgstr ""
 
-#: elf32-sh.c:4747
+#: elf32-sh.c:4734
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
 msgstr ""
 
-#: elf32-sh.c:4754
+#: elf32-sh.c:4741
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
 msgstr ""
 
-#: elf32-sh.c:4761
+#: elf32-sh.c:4748
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
 msgstr ""
 
-#: elf32-sh.c:4796
+#: elf32-sh.c:4783
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for IE->LE translation is too small: "
 "%#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for IE->LE translation is too small: "
 "%#<PRIx64>"
 msgstr ""
 
-#: elf32-sh.c:4814
+#: elf32-sh.c:4801
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
 msgstr ""
 
-#: elf32-sh.c:4823
+#: elf32-sh.c:4810
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
 msgstr ""
 
-#: elf32-sh.c:4830
+#: elf32-sh.c:4817
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
 msgstr ""
 
-#: elf32-sh.c:4945
+#: elf32-sh.c:4932
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for GD->IE translation is too small: "
 "%#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for GD->IE translation is too small: "
 "%#<PRIx64>"
 msgstr ""
 
-#: elf32-sh.c:5013
+#: elf32-sh.c:5000
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for LD->LE translation is too small: "
 "%#<PRIx64>"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA): offset in relocation for LD->LE translation is too small: "
 "%#<PRIx64>"
 msgstr ""
 
-#: elf32-sh.c:5141
+#: elf32-sh.c:5128
 #, c-format
 msgid "%X%C: relocation to \"%s\" references a different segment\n"
 msgstr ""
 
 #, c-format
 msgid "%X%C: relocation to \"%s\" references a different segment\n"
 msgstr ""
 
-#: elf32-sh.c:5148
+#: elf32-sh.c:5135
 #, c-format
 msgid "%C: warning: relocation to \"%s\" references a different segment\n"
 msgstr ""
 
 #, c-format
 msgid "%C: warning: relocation to \"%s\" references a different segment\n"
 msgstr ""
 
-#: elf32-sh.c:5651 elf32-sh.c:5733
+#: elf32-sh.c:5638 elf32-sh.c:5720
 #, c-format
 msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
 msgstr ""
 
-#: elf32-sh.c:5657 elf32-sh.c:5738
+#: elf32-sh.c:5644 elf32-sh.c:5725
 #, c-format
 msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
 msgstr ""
 
-#: elf32-sh.c:5688
+#: elf32-sh.c:5675
 #, c-format
 msgid "%pB: Function descriptor relocation with non-zero addend"
 msgstr ""
 
 #, c-format
 msgid "%pB: Function descriptor relocation with non-zero addend"
 msgstr ""
 
-#: elf32-sh.c:5895 elf64-alpha.c:4692
+#: elf32-sh.c:5882 elf64-alpha.c:4707
 #, c-format
 msgid "%pB: TLS local exec code cannot be linked into shared objects"
 msgstr ""
 
 #, c-format
 msgid "%pB: TLS local exec code cannot be linked into shared objects"
 msgstr ""
 
-#: elf32-sh.c:6010
+#: elf32-sh.c:5997
 #, c-format
 msgid "%pB: uses %s instructions while previous modules use %s instructions"
 msgstr ""
 
 #, c-format
 msgid "%pB: uses %s instructions while previous modules use %s instructions"
 msgstr ""
 
-#: elf32-sh.c:6022
+#: elf32-sh.c:6009
 #, c-format
 msgid ""
 "internal error: merge of architecture '%s' with architecture '%s' produced "
 "unknown architecture"
 msgstr ""
 
 #, c-format
 msgid ""
 "internal error: merge of architecture '%s' with architecture '%s' produced "
 "unknown architecture"
 msgstr ""
 
-#: elf32-sh.c:6059
+#: elf32-sh.c:6050
 #, c-format
 msgid ""
 "%pB: uses instructions which are incompatible with instructions used in "
 "previous modules"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: uses instructions which are incompatible with instructions used in "
 "previous modules"
 msgstr ""
 
-#: elf32-sh.c:6072
+#: elf32-sh.c:6063
 #, c-format
 msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
 msgstr ""
 #, c-format
 msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
 msgstr ""
@@ -3537,6 +3604,12 @@ msgstr ""
 msgid "%pB: linking little endian files with big endian files"
 msgstr ""
 
 msgid "%pB: linking little endian files with big endian files"
 msgstr ""
 
+#: elf32-sparc.c:157
+#, c-format
+msgid ""
+"%pB: unhandled sparc machine value '%lu' detected during write processing"
+msgstr ""
+
 #: elf32-spu.c:735
 msgid "%X%P: overlay section %pA does not start on a cache line\n"
 msgstr ""
 #: elf32-spu.c:735
 msgid "%X%P: overlay section %pA does not start on a cache line\n"
 msgstr ""
@@ -3583,7 +3656,7 @@ msgstr ""
 msgid "overlay stub relocation overflow"
 msgstr ""
 
 msgid "overlay stub relocation overflow"
 msgstr ""
 
-#: elf32-spu.c:1992 elf64-ppc.c:14110
+#: elf32-spu.c:1992 elf64-ppc.c:14558
 msgid "stubs don't match calculated size"
 msgstr ""
 
 msgid "stubs don't match calculated size"
 msgstr ""
 
@@ -3616,63 +3689,63 @@ msgstr ""
 msgid "  calls:\n"
 msgstr ""
 
 msgid "  calls:\n"
 msgstr ""
 
-#: elf32-spu.c:4344
+#: elf32-spu.c:4345
 #, c-format
 msgid "%s duplicated in %s\n"
 msgstr ""
 
 #, c-format
 msgid "%s duplicated in %s\n"
 msgstr ""
 
-#: elf32-spu.c:4348
+#: elf32-spu.c:4349
 #, c-format
 msgid "%s duplicated\n"
 msgstr ""
 
 #, c-format
 msgid "%s duplicated\n"
 msgstr ""
 
-#: elf32-spu.c:4355
+#: elf32-spu.c:4356
 msgid "sorry, no support for duplicate object files in auto-overlay script\n"
 msgstr ""
 
 msgid "sorry, no support for duplicate object files in auto-overlay script\n"
 msgstr ""
 
-#: elf32-spu.c:4397
+#: elf32-spu.c:4398
 #, c-format
 msgid ""
 "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local "
 "store\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local "
 "store\n"
 msgstr ""
 
-#: elf32-spu.c:4553
+#: elf32-spu.c:4554
 #, c-format
 msgid "%pB:%pA%s exceeds overlay size\n"
 msgstr ""
 
 #, c-format
 msgid "%pB:%pA%s exceeds overlay size\n"
 msgstr ""
 
-#: elf32-spu.c:4694
+#: elf32-spu.c:4695
 msgid "%F%P: auto overlay error: %E\n"
 msgstr ""
 
 msgid "%F%P: auto overlay error: %E\n"
 msgstr ""
 
-#: elf32-spu.c:4715
+#: elf32-spu.c:4716
 msgid "Stack size for call graph root nodes.\n"
 msgstr ""
 
 msgid "Stack size for call graph root nodes.\n"
 msgstr ""
 
-#: elf32-spu.c:4716
+#: elf32-spu.c:4717
 msgid ""
 "\n"
 "Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
 msgstr ""
 
 msgid ""
 "\n"
 "Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
 msgstr ""
 
-#: elf32-spu.c:4726
+#: elf32-spu.c:4727
 msgid "Maximum stack required is 0x%v\n"
 msgstr ""
 
 msgid "Maximum stack required is 0x%v\n"
 msgstr ""
 
-#: elf32-spu.c:4745
+#: elf32-spu.c:4746
 msgid "%X%P: stack/lrlive analysis error: %E\n"
 msgstr ""
 
 msgid "%X%P: stack/lrlive analysis error: %E\n"
 msgstr ""
 
-#: elf32-spu.c:4748
+#: elf32-spu.c:4749
 msgid "%F%P: can not build overlay stubs: %E\n"
 msgstr ""
 
 msgid "%F%P: can not build overlay stubs: %E\n"
 msgstr ""
 
-#: elf32-spu.c:4817
+#: elf32-spu.c:4818
 msgid "fatal error while creating .fixup"
 msgstr ""
 
 msgid "fatal error while creating .fixup"
 msgstr ""
 
-#: elf32-spu.c:5052
+#: elf32-spu.c:5054
 #, c-format
 msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
 msgstr ""
 #, c-format
 msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
 msgstr ""
@@ -3700,39 +3773,38 @@ msgstr ""
 msgid "%pB: warning: unknown EABI object attribute %d"
 msgstr ""
 
 msgid "%pB: warning: unknown EABI object attribute %d"
 msgstr ""
 
-#: elf32-tic6x.c:3752 elf32-tic6x.c:3761
+#: elf32-tic6x.c:3756 elf32-tic6x.c:3765
 #, c-format
 msgid "error: %pB requires more stack alignment than %pB preserves"
 msgstr ""
 
 #, c-format
 msgid "error: %pB requires more stack alignment than %pB preserves"
 msgstr ""
 
-#: elf32-tic6x.c:3771 elf32-tic6x.c:3780
+#: elf32-tic6x.c:3775 elf32-tic6x.c:3784
 #, c-format
 msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
 msgstr ""
 
 #, c-format
 msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
 msgstr ""
 
-#: elf32-tic6x.c:3789 elf32-tic6x.c:3798
+#: elf32-tic6x.c:3793 elf32-tic6x.c:3802
 #, c-format
 msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
 msgstr ""
 
 #, c-format
 msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
 msgstr ""
 
-#: elf32-tic6x.c:3807 elf32-tic6x.c:3815
+#: elf32-tic6x.c:3811 elf32-tic6x.c:3819
 #, c-format
 msgid "error: %pB requires more array alignment than %pB preserves"
 msgstr ""
 
 #, c-format
 msgid "error: %pB requires more array alignment than %pB preserves"
 msgstr ""
 
-#: elf32-tic6x.c:3838
+#: elf32-tic6x.c:3842
 #, c-format
 msgid "warning: %pB and %pB differ in wchar_t size"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB and %pB differ in wchar_t size"
 msgstr ""
 
-#: elf32-tic6x.c:3857
+#: elf32-tic6x.c:3861
 #, c-format
 msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
 msgstr ""
 
-#: elf32-tilepro.c:3760 elfxx-tilegx.c:4144 elfxx-x86.c:1432
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:9762
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2639
+#: elf32-tilepro.c:3760 elfxx-tilegx.c:4144 elfxx-x86.c:1529
+#: elfnn-aarch64.c:9831 elfnn-riscv.c:2647
 #, c-format
 msgid "discarded output section: `%pA'"
 msgstr ""
 #, c-format
 msgid "discarded output section: `%pA'"
 msgstr ""
@@ -3934,22 +4006,22 @@ msgstr ""
 msgid "v850e3v5 architecture"
 msgstr ""
 
 msgid "v850e3v5 architecture"
 msgstr ""
 
-#: elf32-v850.c:3607 elf32-v850.c:3846
+#: elf32-v850.c:3612 elf32-v850.c:3851
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
 msgstr ""
 
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
 msgstr ""
 
-#: elf32-v850.c:3617 elf32-v850.c:3856
+#: elf32-v850.c:3622 elf32-v850.c:3861
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
 msgstr ""
 
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
 msgstr ""
 
-#: elf32-v850.c:3663 elf32-v850.c:3891
+#: elf32-v850.c:3668 elf32-v850.c:3896
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
 msgstr ""
 
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
 msgstr ""
 
-#: elf32-v850.c:3703
+#: elf32-v850.c:3708
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
 msgstr ""
 #, c-format
 msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
 msgstr ""
@@ -4007,119 +4079,132 @@ msgstr ""
 msgid "error reading cpu type from elf private data"
 msgstr ""
 
 msgid "error reading cpu type from elf private data"
 msgstr ""
 
-#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2083 elf32-ia64.c:2353
-#: elf64-ia64.c:2353
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2082 elfnn-ia64.c:2352
 msgid "non-zero addend in @fptr reloc"
 msgstr ""
 
 msgid "non-zero addend in @fptr reloc"
 msgstr ""
 
-#: elf32-xtensa.c:942
+#: elf32-xtensa.c:980
 #, c-format
 msgid "%pB(%pA): invalid property table"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA): invalid property table"
 msgstr ""
 
-#: elf32-xtensa.c:2679
+#: elf32-xtensa.c:2723
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
 msgstr ""
 
-#: elf32-xtensa.c:2762 elf32-xtensa.c:2885
+#: elf32-xtensa.c:2806 elf32-xtensa.c:2929
 msgid "dynamic relocation in read-only section"
 msgstr ""
 
 msgid "dynamic relocation in read-only section"
 msgstr ""
 
-#: elf32-xtensa.c:2862
+#: elf32-xtensa.c:2906
 msgid "TLS relocation invalid without dynamic sections"
 msgstr ""
 
 msgid "TLS relocation invalid without dynamic sections"
 msgstr ""
 
-#: elf32-xtensa.c:3074
+#: elf32-xtensa.c:3118
 msgid "internal inconsistency in size of .got.loc section"
 msgstr ""
 
 msgid "internal inconsistency in size of .got.loc section"
 msgstr ""
 
-#: elf32-xtensa.c:3381
+#: elf32-xtensa.c:3425
 #, c-format
 msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
 msgstr ""
 
 #, c-format
 msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
 msgstr ""
 
-#: elf32-xtensa.c:4675 elf32-xtensa.c:4683
+#: elf32-xtensa.c:4719 elf32-xtensa.c:4727
 msgid "attempt to convert L32R/CALLX to CALL failed"
 msgstr ""
 
 msgid "attempt to convert L32R/CALLX to CALL failed"
 msgstr ""
 
-#: elf32-xtensa.c:6511 elf32-xtensa.c:6590 elf32-xtensa.c:8021
+#: elf32-xtensa.c:6555 elf32-xtensa.c:6634 elf32-xtensa.c:8065
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration "
 "mismatch"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration "
 "mismatch"
 msgstr ""
 
-#: elf32-xtensa.c:7760
+#: elf32-xtensa.c:7804
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY "
 "relocation; possible configuration mismatch"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY "
 "relocation; possible configuration mismatch"
 msgstr ""
 
-#: elf32-xtensa.c:9615
+#: elf32-xtensa.c:9665
 msgid "invalid relocation address"
 msgstr ""
 
 msgid "invalid relocation address"
 msgstr ""
 
-#: elf32-xtensa.c:9665
+#: elf32-xtensa.c:9756
 msgid "overflow after relaxation"
 msgstr ""
 
 msgid "overflow after relaxation"
 msgstr ""
 
-#: elf32-xtensa.c:10812
+#: elf32-xtensa.c:10902
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
 msgstr ""
 
+#: elf32-z80.c:473
+#, c-format
+msgid "%pB: unsupported bfd mach %#lx"
+msgstr ""
+
+#: elf32-z80.c:518
+#, c-format
+msgid "%pB: unsupported mach %#x"
+msgstr ""
+
+#: elf32-z80.c:546
+#, c-format
+msgid "%pB: unsupported arch %#x"
+msgstr ""
+
 #: elf64-alpha.c:473
 msgid "GPDISP relocation did not find ldah and lda instructions"
 msgstr ""
 
 #: elf64-alpha.c:473
 msgid "GPDISP relocation did not find ldah and lda instructions"
 msgstr ""
 
-#: elf64-alpha.c:2464
+#: elf64-alpha.c:2472
 #, c-format
 msgid "%pB: .got subsegment exceeds 64K (size %d)"
 msgstr ""
 
 #, c-format
 msgid "%pB: .got subsegment exceeds 64K (size %d)"
 msgstr ""
 
-#: elf64-alpha.c:3019 elf64-alpha.c:3215
+#: elf64-alpha.c:3034 elf64-alpha.c:3230
 #, c-format
 msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
 msgstr ""
 
 #, c-format
 msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
 msgstr ""
 
-#: elf64-alpha.c:4416 elf64-alpha.c:4429
+#: elf64-alpha.c:4431 elf64-alpha.c:4444
 #, c-format
 msgid "%pB: gp-relative relocation against dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: gp-relative relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4485
+#: elf64-alpha.c:4500
 #, c-format
 msgid "%pB: change in gp: BRSGP %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: change in gp: BRSGP %s"
 msgstr ""
 
-#: elf64-alpha.c:4510 mach-o.c:616
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:512
+#: elf64-alpha.c:4525 mach-o.c:616 elfnn-riscv.c:520
 msgid "<unknown>"
 msgstr ""
 
 msgid "<unknown>"
 msgstr ""
 
-#: elf64-alpha.c:4516
+#: elf64-alpha.c:4531
 #, c-format
 msgid "%pB: !samegp reloc against symbol without .prologue: %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: !samegp reloc against symbol without .prologue: %s"
 msgstr ""
 
-#: elf64-alpha.c:4574
+#: elf64-alpha.c:4589
 #, c-format
 msgid "%pB: unhandled dynamic relocation against %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: unhandled dynamic relocation against %s"
 msgstr ""
 
-#: elf64-alpha.c:4609
+#: elf64-alpha.c:4624
 #, c-format
 msgid "%pB: pc-relative relocation against undefined weak symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: pc-relative relocation against undefined weak symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4675
+#: elf64-alpha.c:4690
 #, c-format
 msgid "%pB: dtp-relative relocation against dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: dtp-relative relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4700
+#: elf64-alpha.c:4715
 #, c-format
 msgid "%pB: tp-relative relocation against dynamic symbol %s"
 msgstr ""
 #, c-format
 msgid "%pB: tp-relative relocation against dynamic symbol %s"
 msgstr ""
@@ -4134,130 +4219,130 @@ msgstr ""
 msgid "%pB: Relocations in generic ELF (EM: %d)"
 msgstr ""
 
 msgid "%pB: Relocations in generic ELF (EM: %d)"
 msgstr ""
 
-#: elf64-hppa.c:2079
+#: elf64-hppa.c:2081
 #, c-format
 msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
 msgstr ""
 
 #, c-format
 msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
 msgstr ""
 
-#: elf64-hppa.c:3283
+#: elf64-hppa.c:3285
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
 msgstr ""
 
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:598 elf32-ia64.c:640 elf64-ia64.c:640
+#: elf64-ia64-vms.c:598 elfnn-ia64.c:640
 #, c-format
 msgid ""
 "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or "
 "indirect branch"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or "
 "indirect branch"
 msgstr ""
 
-#: elf64-ia64-vms.c:2038 elf32-ia64.c:2301 elf64-ia64.c:2301
+#: elf64-ia64-vms.c:2037 elfnn-ia64.c:2300
 msgid "@pltoff reloc against local symbol"
 msgstr ""
 
 msgid "@pltoff reloc against local symbol"
 msgstr ""
 
-#: elf64-ia64-vms.c:3290 elf32-ia64.c:3712 elf64-ia64.c:3712
+#: elf64-ia64-vms.c:3289 elfnn-ia64.c:3711
 #, c-format
 msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
 msgstr ""
 
 #, c-format
 msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
 msgstr ""
 
-#: elf64-ia64-vms.c:3300 elf32-ia64.c:3722 elf64-ia64.c:3722
+#: elf64-ia64-vms.c:3299 elfnn-ia64.c:3721
 #, c-format
 msgid "%pB: __gp does not cover short data segment"
 msgstr ""
 
 #, c-format
 msgid "%pB: __gp does not cover short data segment"
 msgstr ""
 
-#: elf64-ia64-vms.c:3570 elf32-ia64.c:3996 elf64-ia64.c:3996
+#: elf64-ia64-vms.c:3569 elfnn-ia64.c:3995
 #, c-format
 msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
 msgstr ""
 
-#: elf64-ia64-vms.c:3634 elf32-ia64.c:4064 elf64-ia64.c:4064
+#: elf64-ia64-vms.c:3633 elfnn-ia64.c:4063
 #, c-format
 msgid "%pB: @gprel relocation against dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: @gprel relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3693 elf32-ia64.c:4127 elf64-ia64.c:4127
+#: elf64-ia64-vms.c:3692 elfnn-ia64.c:4126
 #, c-format
 msgid "%pB: linking non-pic code in a position independent executable"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking non-pic code in a position independent executable"
 msgstr ""
 
-#: elf64-ia64-vms.c:3795 elf32-ia64.c:4265 elf64-ia64.c:4265
+#: elf64-ia64-vms.c:3794 elfnn-ia64.c:4264
 #, c-format
 msgid "%pB: @internal branch to dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: @internal branch to dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3798 elf32-ia64.c:4268 elf64-ia64.c:4268
+#: elf64-ia64-vms.c:3797 elfnn-ia64.c:4267
 #, c-format
 msgid "%pB: speculation fixup to dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: speculation fixup to dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3801 elf32-ia64.c:4271 elf64-ia64.c:4271
+#: elf64-ia64-vms.c:3800 elfnn-ia64.c:4270
 #, c-format
 msgid "%pB: @pcrel relocation against dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: @pcrel relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3925 elf32-ia64.c:4468 elf64-ia64.c:4468
+#: elf64-ia64-vms.c:3924 elfnn-ia64.c:4467
 msgid "unsupported reloc"
 msgstr ""
 
 msgid "unsupported reloc"
 msgstr ""
 
-#: elf64-ia64-vms.c:3962 elf32-ia64.c:4506 elf64-ia64.c:4506
+#: elf64-ia64-vms.c:3961 elfnn-ia64.c:4505
 #, c-format
 msgid ""
 "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in "
 "section `%pA'."
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in "
 "section `%pA'."
 msgstr ""
 
-#: elf64-ia64-vms.c:3979 elf32-ia64.c:4523 elf64-ia64.c:4523
+#: elf64-ia64-vms.c:3978 elfnn-ia64.c:4522
 #, c-format
 msgid ""
 "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size "
 "%#<PRIx64> (> 0x1000000)."
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size "
 "%#<PRIx64> (> 0x1000000)."
 msgstr ""
 
-#: elf64-ia64-vms.c:4271 elf32-ia64.c:4780 elf64-ia64.c:4780
+#: elf64-ia64-vms.c:4274 elfnn-ia64.c:4783
 #, c-format
 msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4280 elf32-ia64.c:4789 elf64-ia64.c:4789
+#: elf64-ia64-vms.c:4283 elfnn-ia64.c:4792
 #, c-format
 msgid "%pB: linking big-endian files with little-endian files"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking big-endian files with little-endian files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4289 elf32-ia64.c:4798 elf64-ia64.c:4798
+#: elf64-ia64-vms.c:4292 elfnn-ia64.c:4801
 #, c-format
 msgid "%pB: linking 64-bit files with 32-bit files"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking 64-bit files with 32-bit files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4298 elf32-ia64.c:4807 elf64-ia64.c:4807
+#: elf64-ia64-vms.c:4301 elfnn-ia64.c:4810
 #, c-format
 msgid "%pB: linking constant-gp files with non-constant-gp files"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking constant-gp files with non-constant-gp files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4308 elf32-ia64.c:4817 elf64-ia64.c:4817
+#: elf64-ia64-vms.c:4311 elfnn-ia64.c:4820
 #, c-format
 msgid "%pB: linking auto-pic files with non-auto-pic files"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking auto-pic files with non-auto-pic files"
 msgstr ""
 
-#: elf64-ia64-vms.c:5155 elflink.c:4964
+#: elf64-ia64-vms.c:5158 elflink.c:5066
 #, c-format
 msgid ""
 "warning: alignment %u of common symbol `%s' in %pB is greater than the "
 "alignment (%u) of its section %pA"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: alignment %u of common symbol `%s' in %pB is greater than the "
 "alignment (%u) of its section %pA"
 msgstr ""
 
-#: elf64-ia64-vms.c:5162 elflink.c:4971
+#: elf64-ia64-vms.c:5165 elflink.c:5073
 #, c-format
 msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
 msgstr ""
 
 #, c-format
 msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
 msgstr ""
 
-#: elf64-ia64-vms.c:5178 elflink.c:4988
+#: elf64-ia64-vms.c:5181 elflink.c:5090
 #, c-format
 msgid ""
 "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in "
 "%pB"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in "
 "%pB"
 msgstr ""
 
-#: elf64-mips.c:4098
+#: elf64-mips.c:4095
 #, c-format
 msgid "%pB(%pA): relocation %<PRIu64> has invalid symbol index %ld"
 msgstr ""
 #, c-format
 msgid "%pB(%pA): relocation %<PRIu64> has invalid symbol index %ld"
 msgstr ""
@@ -4333,142 +4418,152 @@ msgid ""
 "internal inconsistency: remaining %lu != max %lu; please report this bug"
 msgstr ""
 
 "internal inconsistency: remaining %lu != max %lu; please report this bug"
 msgstr ""
 
-#: elf64-ppc.c:4072
+#: elf64-ppc.c:4094
 #, c-format
 msgid "symbol '%s' has invalid st_other for ABI version 1"
 msgstr ""
 
 #, c-format
 msgid "symbol '%s' has invalid st_other for ABI version 1"
 msgstr ""
 
-#: elf64-ppc.c:4247
+#: elf64-ppc.c:4274
 #, c-format
 msgid "%pB .opd not allowed in ABI version %d"
 msgstr ""
 
 #, c-format
 msgid "%pB .opd not allowed in ABI version %d"
 msgstr ""
 
-#: elf64-ppc.c:4835
+#: elf64-ppc.c:4854
 #, c-format
 msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
 msgstr ""
 
 #, c-format
 msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
 msgstr ""
 
-#: elf64-ppc.c:5247
+#: elf64-ppc.c:5262
 #, c-format
 msgid "%pB uses unknown e_flags 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "%pB uses unknown e_flags 0x%lx"
 msgstr ""
 
-#: elf64-ppc.c:5255
+#: elf64-ppc.c:5270
 #, c-format
 msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
 msgstr ""
 
 #, c-format
 msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
 msgstr ""
 
-#: elf64-ppc.c:5282
+#: elf64-ppc.c:5297
 #, c-format
 msgid " [abiv%ld]"
 msgstr ""
 
 #, c-format
 msgid " [abiv%ld]"
 msgstr ""
 
-#: elf64-ppc.c:6483
+#: elf64-ppc.c:6594
 msgid ""
 "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting "
 "LD_BIND_NOW=1 or upgrade gcc\n"
 msgstr ""
 
 msgid ""
 "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting "
 "LD_BIND_NOW=1 or upgrade gcc\n"
 msgstr ""
 
-#: elf64-ppc.c:6755
+#: elf64-ppc.c:6861
 #, c-format
 msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
 msgstr ""
 
 #, c-format
 msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
 msgstr ""
 
-#: elf64-ppc.c:7003
+#: elf64-ppc.c:7109
 #, c-format
 msgid "dynreloc miscount for %pB, section %pA"
 msgstr ""
 
 #, c-format
 msgid "dynreloc miscount for %pB, section %pA"
 msgstr ""
 
-#: elf64-ppc.c:7092
+#: elf64-ppc.c:7198
 #, c-format
 msgid "%pB: .opd is not a regular array of opd entries"
 msgstr ""
 
 #, c-format
 msgid "%pB: .opd is not a regular array of opd entries"
 msgstr ""
 
-#: elf64-ppc.c:7102
+#: elf64-ppc.c:7208
 #, c-format
 msgid "%pB: unexpected reloc type %u in .opd section"
 msgstr ""
 
 #, c-format
 msgid "%pB: unexpected reloc type %u in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:7124
+#: elf64-ppc.c:7230
 #, c-format
 msgid "%pB: undefined sym `%s' in .opd section"
 msgstr ""
 
 #, c-format
 msgid "%pB: undefined sym `%s' in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:7613
+#: elf64-ppc.c:7720
 msgid ""
 "warning: --plt-localentry is especially dangerous without ld.so support to "
 "detect ABI violations"
 msgstr ""
 
 msgid ""
 "warning: --plt-localentry is especially dangerous without ld.so support to "
 "detect ABI violations"
 msgstr ""
 
-#: elf64-ppc.c:7866
+#: elf64-ppc.c:8042
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 msgstr ""
 
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 msgstr ""
 
-#: elf64-ppc.c:8251 elf64-ppc.c:8959
+#: elf64-ppc.c:8443 elf64-ppc.c:9160
 #, c-format
 msgid "%s defined on removed toc entry"
 msgstr ""
 
 #, c-format
 msgid "%s defined on removed toc entry"
 msgstr ""
 
-#: elf64-ppc.c:8916
+#: elf64-ppc.c:9117
 #, c-format
 msgid "%H: %s references optimized away TOC entry\n"
 msgstr ""
 
 #, c-format
 msgid "%H: %s references optimized away TOC entry\n"
 msgstr ""
 
-#: elf64-ppc.c:9140
+#: elf64-ppc.c:9341
 #, c-format
 msgid "%H: got/toc optimization is not supported for %s instruction\n"
 msgstr ""
 
 #, c-format
 msgid "%H: got/toc optimization is not supported for %s instruction\n"
 msgstr ""
 
-#: elf64-ppc.c:9991
+#: elf64-ppc.c:10195
 #, c-format
 msgid "warning: discarding dynamic section %s"
 msgstr ""
 
 #, c-format
 msgid "warning: discarding dynamic section %s"
 msgstr ""
 
-#: elf64-ppc.c:11055
+#: elf64-ppc.c:11336
 msgid "%P: cannot find opd entry toc for `%pT'\n"
 msgstr ""
 
 msgid "%P: cannot find opd entry toc for `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:11144
+#: elf64-ppc.c:11382 elf64-ppc.c:11926
+msgid ""
+"%F%P: Could not assign group %pA target %pA to an output section. Retry "
+"without --enable-non-contiguous-regions.\n"
+msgstr ""
+
+#: elf64-ppc.c:11444
 #, c-format
 msgid "long branch stub `%s' offset overflow"
 msgstr ""
 
 #, c-format
 msgid "long branch stub `%s' offset overflow"
 msgstr ""
 
-#: elf64-ppc.c:11171
+#: elf64-ppc.c:11471
 #, c-format
 msgid "can't find branch stub `%s'"
 msgstr ""
 
 #, c-format
 msgid "can't find branch stub `%s'"
 msgstr ""
 
-#: elf64-ppc.c:11235 elf64-ppc.c:11502 elf64-ppc.c:13671
+#: elf64-ppc.c:11535 elf64-ppc.c:11802 elf64-ppc.c:14033
 #, c-format
 msgid "%P: linkage table error against `%pT'\n"
 msgstr ""
 
 #, c-format
 msgid "%P: linkage table error against `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:11680
+#: elf64-ppc.c:11998
 #, c-format
 msgid "can't build branch stub `%s'"
 msgstr ""
 
 #, c-format
 msgid "can't build branch stub `%s'"
 msgstr ""
 
-#: elf64-ppc.c:12659
+#: elf64-ppc.c:12980
 #, c-format
 msgid "%pB section %pA exceeds stub group size"
 msgstr ""
 
 #, c-format
 msgid "%pB section %pA exceeds stub group size"
 msgstr ""
 
-#: elf64-ppc.c:14069 elf64-ppc.c:14088
+#: elf64-ppc.c:14215
+msgid "__tls_get_addr call offset overflow"
+msgstr ""
+
+#: elf64-ppc.c:14517 elf64-ppc.c:14536
 #, c-format
 msgid "%s offset too large for .eh_frame sdata4 encoding"
 msgstr ""
 
 #, c-format
 msgid "%s offset too large for .eh_frame sdata4 encoding"
 msgstr ""
 
-#: elf64-ppc.c:14124
+#: elf64-ppc.c:14568
 #, c-format
 msgid "linker stubs in %u group\n"
 msgid_plural "linker stubs in %u groups\n"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "linker stubs in %u group\n"
 msgid_plural "linker stubs in %u groups\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: elf64-ppc.c:14128
+#: elf64-ppc.c:14575
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"  branch         %lu\n"
+"%s  branch         %lu\n"
 "  branch toc adj %lu\n"
 "  branch notoc   %lu\n"
 "  branch both    %lu\n"
 "  branch toc adj %lu\n"
 "  branch notoc   %lu\n"
 "  branch both    %lu\n"
@@ -4483,54 +4578,54 @@ msgid ""
 "  global entry   %lu"
 msgstr ""
 
 "  global entry   %lu"
 msgstr ""
 
-#: elf64-ppc.c:14523
+#: elf64-ppc.c:14975
 #, c-format
 msgid "%H: %s used with TLS symbol `%pT'\n"
 msgstr ""
 
 #, c-format
 msgid "%H: %s used with TLS symbol `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:14525
+#: elf64-ppc.c:14977
 #, c-format
 msgid "%H: %s used with non-TLS symbol `%pT'\n"
 msgstr ""
 
 #, c-format
 msgid "%H: %s used with non-TLS symbol `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:15279
+#: elf64-ppc.c:15732
 #, c-format
 msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
 msgstr ""
 
 #, c-format
 msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
 msgstr ""
 
-#: elf64-ppc.c:15285
+#: elf64-ppc.c:15738
 #, c-format
 msgid ""
 "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
 msgstr ""
 
-#: elf64-ppc.c:16170
+#: elf64-ppc.c:16628
 #, c-format
 msgid "%H: %s for indirect function `%pT' unsupported\n"
 msgstr ""
 
 #, c-format
 msgid "%H: %s for indirect function `%pT' unsupported\n"
 msgstr ""
 
-#: elf64-ppc.c:16257
+#: elf64-ppc.c:16715
 #, c-format
 msgid ""
 "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
 msgstr ""
 
-#: elf64-ppc.c:16312
+#: elf64-ppc.c:16770
 #, c-format
 msgid "%P: %pB: %s is not supported for `%pT'\n"
 msgstr ""
 
 #, c-format
 msgid "%P: %pB: %s is not supported for `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:16571
+#: elf64-ppc.c:17029
 #, c-format
 msgid "%H: error: %s not a multiple of %u\n"
 msgstr ""
 
 #, c-format
 msgid "%H: error: %s not a multiple of %u\n"
 msgstr ""
 
-#: elf64-ppc.c:16594
+#: elf64-ppc.c:17052
 #, c-format
 msgid "%H: unresolvable %s against `%pT'\n"
 msgstr ""
 
 #, c-format
 msgid "%H: unresolvable %s against `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:16739
+#: elf64-ppc.c:17197
 #, c-format
 msgid "%H: %s against `%pT': error %d\n"
 msgstr ""
 #, c-format
 msgid "%H: %s against `%pT': error %d\n"
 msgstr ""
@@ -4542,152 +4637,147 @@ msgid ""
 "from executable (rebuild file with -fPIC ?)"
 msgstr ""
 
 "from executable (rebuild file with -fPIC ?)"
 msgstr ""
 
-#: elf64-sparc.c:125 elfcode.h:1467
-#, c-format
-msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
-msgstr ""
-
-#: elf64-sparc.c:483
+#: elf64-sparc.c:481
 #, c-format
 msgid "%pB: only registers %%g[2367] can be declared using STT_REGISTER"
 msgstr ""
 
 #, c-format
 msgid "%pB: only registers %%g[2367] can be declared using STT_REGISTER"
 msgstr ""
 
-#: elf64-sparc.c:504
+#: elf64-sparc.c:502
 #, c-format
 msgid "register %%g%d used incompatibly: %s in %pB, previously %s in %pB"
 msgstr ""
 
 #, c-format
 msgid "register %%g%d used incompatibly: %s in %pB, previously %s in %pB"
 msgstr ""
 
-#: elf64-sparc.c:528
+#: elf64-sparc.c:526
 #, c-format
 msgid "symbol `%s' has differing types: REGISTER in %pB, previously %s in %pB"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' has differing types: REGISTER in %pB, previously %s in %pB"
 msgstr ""
 
-#: elf64-sparc.c:575
+#: elf64-sparc.c:573
 #, c-format
 msgid "Symbol `%s' has differing types: %s in %pB, previously REGISTER in %pB"
 msgstr ""
 
 #, c-format
 msgid "Symbol `%s' has differing types: %s in %pB, previously REGISTER in %pB"
 msgstr ""
 
-#: elf64-sparc.c:707
+#: elf64-sparc.c:705
 #, c-format
 msgid "%pB: linking UltraSPARC specific with HAL specific code"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking UltraSPARC specific with HAL specific code"
 msgstr ""
 
-#: elf64-x86-64.c:1412
+#: elf64-x86-64.c:1424
 msgid "hidden symbol "
 msgstr ""
 
 msgid "hidden symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1415
+#: elf64-x86-64.c:1427
 msgid "internal symbol "
 msgstr ""
 
 msgid "internal symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1418 elf64-x86-64.c:1422
+#: elf64-x86-64.c:1430 elf64-x86-64.c:1434
 msgid "protected symbol "
 msgstr ""
 
 msgid "protected symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1424
+#: elf64-x86-64.c:1436
 msgid "symbol "
 msgstr ""
 
 msgid "symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1430
+#: elf64-x86-64.c:1442
 msgid "undefined "
 msgstr ""
 
 msgid "undefined "
 msgstr ""
 
-#: elf64-x86-64.c:1440
+#: elf64-x86-64.c:1452
 msgid "a shared object"
 msgstr ""
 
 msgid "a shared object"
 msgstr ""
 
-#: elf64-x86-64.c:1442
+#: elf64-x86-64.c:1454
 msgid "; recompile with -fPIC"
 msgstr ""
 
 msgid "; recompile with -fPIC"
 msgstr ""
 
-#: elf64-x86-64.c:1447
+#: elf64-x86-64.c:1459
 msgid "a PIE object"
 msgstr ""
 
 msgid "a PIE object"
 msgstr ""
 
-#: elf64-x86-64.c:1449
+#: elf64-x86-64.c:1461
 msgid "a PDE object"
 msgstr ""
 
 msgid "a PDE object"
 msgstr ""
 
-#: elf64-x86-64.c:1451
+#: elf64-x86-64.c:1463
 msgid "; recompile with -fPIE"
 msgstr ""
 
 msgid "; recompile with -fPIE"
 msgstr ""
 
-#: elf64-x86-64.c:1455
+#: elf64-x86-64.c:1467
 #, c-format
 msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
 msgstr ""
 
 #, c-format
 msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
 msgstr ""
 
-#: elf64-x86-64.c:1940
+#: elf64-x86-64.c:1984
 #, c-format
 msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
 msgstr ""
 
 #, c-format
 msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
 msgstr ""
 
-#: elf64-x86-64.c:2078
+#: elf64-x86-64.c:2140
 #, c-format
 msgid "%pB: '%s' accessed both as normal and thread local symbol"
 msgstr ""
 
 #, c-format
 msgid "%pB: '%s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf64-x86-64.c:2700 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5534
+#: elf64-x86-64.c:2763 elfnn-aarch64.c:5592
 #, c-format
 msgid ""
 "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: "
 "%<PRId64>"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: "
 "%<PRId64>"
 msgstr ""
 
-#: elf64-x86-64.c:2938
+#: elf64-x86-64.c:3008
 #, c-format
 msgid ""
 "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used "
 "when making a shared object"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used "
 "when making a shared object"
 msgstr ""
 
-#: elf64-x86-64.c:2952
+#: elf64-x86-64.c:3022
 #, c-format
 msgid ""
 "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used "
 "when making a shared object"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used "
 "when making a shared object"
 msgstr ""
 
-#: elf64-x86-64.c:3229
+#: elf64-x86-64.c:3299
 #, c-format
 msgid ""
 "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in "
 "section `%pA' is out of range"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in "
 "section `%pA' is out of range"
 msgstr ""
 
-#: elf64-x86-64.c:3363 elflink.c:13138
+#: elf64-x86-64.c:3433 elflink.c:13256
 msgid "%F%P: corrupt input: %pB\n"
 msgstr ""
 
 msgid "%F%P: corrupt input: %pB\n"
 msgstr ""
 
-#: elf64-x86-64.c:4000
+#: elf64-x86-64.c:4117
 msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n"
 msgstr ""
 
 msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n"
 msgstr ""
 
-#: elf64-x86-64.c:4158
+#: elf64-x86-64.c:4275
 #, c-format
 msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
 msgstr ""
 
-#: elf64-x86-64.c:4221
+#: elf64-x86-64.c:4338
 #, c-format
 msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
 msgstr ""
 
-#: elf64-x86-64.c:4274
+#: elf64-x86-64.c:4391
 #, c-format
 msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
 msgstr ""
 
-#: elfcode.h:323
+#: elfcode.h:326
 msgid "warning: %pB has a corrupt section with a size (%"
 msgstr ""
 
 msgid "warning: %pB has a corrupt section with a size (%"
 msgstr ""
 
-#: elfcode.h:764
+#: elfcode.h:768
 #, c-format
 msgid "warning: %pB has a corrupt string table index - ignoring"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB has a corrupt string table index - ignoring"
 msgstr ""
 
-#: elfcode.h:1208
+#: elfcode.h:1229
 #, c-format
 msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
 msgstr ""
 #, c-format
 msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
 msgstr ""
@@ -4761,216 +4851,226 @@ msgstr ""
 msgid "%P: copy reloc against protected `%pT' is dangerous\n"
 msgstr ""
 
 msgid "%P: copy reloc against protected `%pT' is dangerous\n"
 msgstr ""
 
-#: elflink.c:3969
+#: elflink.c:4058
 #, c-format
 msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
 msgstr ""
 
 #, c-format
 msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
 msgstr ""
 
-#: elflink.c:4426
+#: elflink.c:4528
 #, c-format
 msgid "%pB: invalid version offset %lx (max %lx)"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid version offset %lx (max %lx)"
 msgstr ""
 
-#: elflink.c:4494
+#: elflink.c:4596
 #, c-format
 msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
 msgstr ""
 
 #, c-format
 msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
 msgstr ""
 
-#: elflink.c:4642
+#: elflink.c:4744
 #, c-format
 msgid "%pB: not enough version information"
 msgstr ""
 
 #, c-format
 msgid "%pB: not enough version information"
 msgstr ""
 
-#: elflink.c:4680
+#: elflink.c:4782
 #, c-format
 msgid "%pB: %s: invalid version %u (max %d)"
 msgstr ""
 
 #, c-format
 msgid "%pB: %s: invalid version %u (max %d)"
 msgstr ""
 
-#: elflink.c:4717
+#: elflink.c:4819
 #, c-format
 msgid "%pB: %s: invalid needed version %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: %s: invalid needed version %d"
 msgstr ""
 
-#: elflink.c:5124
+#: elflink.c:5225
 #, c-format
 msgid "%pB: undefined reference to symbol '%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: undefined reference to symbol '%s'"
 msgstr ""
 
-#: elflink.c:6217
+#: elflink.c:6320
 #, c-format
 msgid "%pB: stack size specified and %s set"
 msgstr ""
 
 #, c-format
 msgid "%pB: stack size specified and %s set"
 msgstr ""
 
-#: elflink.c:6221
+#: elflink.c:6324
 #, c-format
 msgid "%pB: %s not absolute"
 msgstr ""
 
 #, c-format
 msgid "%pB: %s not absolute"
 msgstr ""
 
-#: elflink.c:6418
+#: elflink.c:6521
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr ""
 
-#: elflink.c:6989
+#: elflink.c:7093
 #, c-format
 msgid "%pB: .preinit_array section is not allowed in DSO"
 msgstr ""
 
 #, c-format
 msgid "%pB: .preinit_array section is not allowed in DSO"
 msgstr ""
 
-#: elflink.c:8475
+#: elflink.c:8580
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr ""
 
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr ""
 
-#: elflink.c:8630
+#: elflink.c:8735
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
 msgstr ""
 
 #. PR 21524: Let the user know if a symbol was removed by garbage collection.
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
 msgstr ""
 
 #. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:8968
+#: elflink.c:9073
 #, c-format
 msgid ""
 "%pB:%pA: error: relocation references symbol %s which was removed by garbage "
 "collection"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB:%pA: error: relocation references symbol %s which was removed by garbage "
 "collection"
 msgstr ""
 
-#: elflink.c:8971
+#: elflink.c:9076
 #, c-format
 msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
 msgstr ""
 
 #, c-format
 msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
 msgstr ""
 
-#: elflink.c:9216 elflink.c:9234 elflink.c:9273 elflink.c:9291
+#: elflink.c:9321 elflink.c:9339 elflink.c:9378 elflink.c:9396
 #, c-format
 msgid "%pB: unable to sort relocs - they are in more than one size"
 msgstr ""
 
 #. The section size is not divisible by either -
 #. something is wrong.
 #, c-format
 msgid "%pB: unable to sort relocs - they are in more than one size"
 msgstr ""
 
 #. The section size is not divisible by either -
 #. something is wrong.
-#: elflink.c:9250 elflink.c:9307
+#: elflink.c:9355 elflink.c:9412
 #, c-format
 msgid "%pB: unable to sort relocs - they are of an unknown size"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to sort relocs - they are of an unknown size"
 msgstr ""
 
-#: elflink.c:9359
+#: elflink.c:9464
 msgid "not enough memory to sort relocations"
 msgstr ""
 
 msgid "not enough memory to sort relocations"
 msgstr ""
 
-#: elflink.c:9640
+#: elflink.c:9745
 #, c-format
 msgid "%pB: too many sections: %d (>= %d)"
 msgstr ""
 
 #, c-format
 msgid "%pB: too many sections: %d (>= %d)"
 msgstr ""
 
-#: elflink.c:9920
+#: elflink.c:10021
 #, c-format
 msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
 msgstr ""
 
 #, c-format
 msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
 msgstr ""
 
-#: elflink.c:9923
+#: elflink.c:10024
 #, c-format
 msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
 msgstr ""
 
 #, c-format
 msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
 msgstr ""
 
-#: elflink.c:9926
+#: elflink.c:10027
 #, c-format
 msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
 msgstr ""
 
 #, c-format
 msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
 msgstr ""
 
-#: elflink.c:10012
+#: elflink.c:10113
 #, c-format
 msgid "%pB: could not find output section %pA for input section %pA"
 msgstr ""
 
 #, c-format
 msgid "%pB: could not find output section %pA for input section %pA"
 msgstr ""
 
-#: elflink.c:10166
+#: elflink.c:10267
 #, c-format
 msgid "%pB: protected symbol `%s' isn't defined"
 msgstr ""
 
 #, c-format
 msgid "%pB: protected symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:10169
+#: elflink.c:10270
 #, c-format
 msgid "%pB: internal symbol `%s' isn't defined"
 msgstr ""
 
 #, c-format
 msgid "%pB: internal symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:10172
+#: elflink.c:10273
 #, c-format
 msgid "%pB: hidden symbol `%s' isn't defined"
 msgstr ""
 
 #, c-format
 msgid "%pB: hidden symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:10204
+#: elflink.c:10305
 #, c-format
 msgid "%pB: no symbol version section for versioned symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: no symbol version section for versioned symbol `%s'"
 msgstr ""
 
-#: elflink.c:10816
+#: elflink.c:10677
+#, c-format
+msgid ""
+"warning: --enable-non-contiguous-regions discards section `%s' from '%s'\n"
+msgstr ""
+
+#: elflink.c:10929
 #, c-format
 msgid "error: %pB: size of section %pA is not multiple of address size"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: size of section %pA is not multiple of address size"
 msgstr ""
 
-#: elflink.c:10861
+#: elflink.c:10974
 #, c-format
 msgid ""
 "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a "
 "non-existent global symbol"
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a "
 "non-existent global symbol"
 msgstr ""
 
-#: elflink.c:11604
+#: elflink.c:11717
 #, c-format
 msgid ""
 "%pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections"
 msgstr ""
 
-#: elflink.c:11610
+#: elflink.c:11723
 #, c-format
 msgid "%pA has both ordered and unordered sections"
 msgstr ""
 
 #, c-format
 msgid "%pA has both ordered and unordered sections"
 msgstr ""
 
-#: elflink.c:11714
+#: elflink.c:11829
 #, c-format
 msgid "%pB: no symbol found for import library"
 msgstr ""
 
 #, c-format
 msgid "%pB: no symbol found for import library"
 msgstr ""
 
-#: elflink.c:12361
+#: elflink.c:12477
 #, c-format
 msgid "%pB: file class %s incompatible with %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: file class %s incompatible with %s"
 msgstr ""
 
-#: elflink.c:12578
+#: elflink.c:12694
 #, c-format
 msgid "%pB: failed to generate import library"
 msgstr ""
 
 #, c-format
 msgid "%pB: failed to generate import library"
 msgstr ""
 
-#: elflink.c:12697
+#: elflink.c:12813
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr ""
 
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr ""
 
-#: elflink.c:12745
+#: elflink.c:12861
 #, c-format
 msgid "warning: section '%s' is being made into a note"
 msgstr ""
 
 #, c-format
 msgid "warning: section '%s' is being made into a note"
 msgstr ""
 
-#: elflink.c:12837
+#: elflink.c:12955
 msgid "%P%X: read-only segment has dynamic relocations\n"
 msgstr ""
 
 msgid "%P%X: read-only segment has dynamic relocations\n"
 msgstr ""
 
-#: elflink.c:12840
+#: elflink.c:12958
 msgid "%P: warning: creating a DT_TEXTREL in a shared object\n"
 msgstr ""
 
 msgid "%P: warning: creating a DT_TEXTREL in a shared object\n"
 msgstr ""
 
-#: elflink.c:12965
+#: elflink.c:13083
 msgid "%P%X: can not read symbols: %E\n"
 msgstr ""
 
 msgid "%P%X: can not read symbols: %E\n"
 msgstr ""
 
-#: elflink.c:13804
+#: elflink.c:13489
+msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
+msgstr ""
+
+#: elflink.c:13950
 #, c-format
 msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
 msgstr ""
 
 #, c-format
 msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
 msgstr ""
 
-#: elflink.c:13845
+#: elflink.c:13991
 #, c-format
 msgid "%pB: section '%pA': corrupt VTENTRY entry"
 msgstr ""
 
 #, c-format
 msgid "%pB: section '%pA': corrupt VTENTRY entry"
 msgstr ""
 
-#: elflink.c:13988
+#: elflink.c:14134
 #, c-format
 msgid "unrecognized INPUT_SECTION_FLAG %s\n"
 msgstr ""
 #, c-format
 msgid "unrecognized INPUT_SECTION_FLAG %s\n"
 msgstr ""
@@ -4981,19 +5081,18 @@ msgid ""
 "%pB: warning: Weak TLS is implementation defined and may not work as expected"
 msgstr ""
 
 "%pB: warning: Weak TLS is implementation defined and may not work as expected"
 msgstr ""
 
-#: elfxx-aarch64.c:738 /work/sources/binutils/current/bfd/elfnn-aarch64.c:9960
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:9967
+#: elfxx-aarch64.c:738 elfnn-aarch64.c:10029 elfnn-aarch64.c:10036
 #, c-format
 msgid ""
 "%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI "
 "in NOTE section."
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI "
 "in NOTE section."
 msgstr ""
 
-#: elfxx-aarch64.c:758 elfxx-x86.c:2625
+#: elfxx-aarch64.c:758 elfxx-x86.c:2722
 msgid "%F%P: failed to create GNU property section\n"
 msgstr ""
 
 msgid "%F%P: failed to create GNU property section\n"
 msgstr ""
 
-#: elfxx-aarch64.c:762 elfxx-x86.c:2630
+#: elfxx-aarch64.c:762 elfxx-x86.c:2727
 #, c-format
 msgid "%F%pA: failed to align section\n"
 msgstr ""
 #, c-format
 msgid "%F%pA: failed to align section\n"
 msgstr ""
@@ -5003,350 +5102,437 @@ msgstr ""
 msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
 msgstr ""
 
 msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
 msgstr ""
 
-#: elfxx-mips.c:1515
+#: elfxx-mips.c:1520
 msgid "static procedure (no name)"
 msgstr ""
 
 msgid "static procedure (no name)"
 msgstr ""
 
-#: elfxx-mips.c:5800
+#: elfxx-mips.c:5806
 msgid "MIPS16 and microMIPS functions cannot call each other"
 msgstr ""
 
 msgid "MIPS16 and microMIPS functions cannot call each other"
 msgstr ""
 
-#: elfxx-mips.c:6565
+#: elfxx-mips.c:6571
 msgid "%X%H: unsupported JALX to the same ISA mode\n"
 msgstr ""
 
 msgid "%X%H: unsupported JALX to the same ISA mode\n"
 msgstr ""
 
-#: elfxx-mips.c:6598
+#: elfxx-mips.c:6604
 msgid ""
 "%X%H: unsupported jump between ISA modes; consider recompiling with "
 "interlinking enabled\n"
 msgstr ""
 
 msgid ""
 "%X%H: unsupported jump between ISA modes; consider recompiling with "
 "interlinking enabled\n"
 msgstr ""
 
-#: elfxx-mips.c:6643
+#: elfxx-mips.c:6649
 msgid ""
 "%X%H: cannot convert branch between ISA modes to JALX: relocation out of "
 "range\n"
 msgstr ""
 
 msgid ""
 "%X%H: cannot convert branch between ISA modes to JALX: relocation out of "
 "range\n"
 msgstr ""
 
-#: elfxx-mips.c:6655
+#: elfxx-mips.c:6661
 msgid "%X%H: unsupported branch between ISA modes\n"
 msgstr ""
 
 msgid "%X%H: unsupported branch between ISA modes\n"
 msgstr ""
 
-#: elfxx-mips.c:7303
+#: elfxx-mips.c:7309
 #, c-format
 msgid ""
 "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
 msgstr ""
 
-#: elfxx-mips.c:7347 elfxx-mips.c:7584
+#: elfxx-mips.c:7353 elfxx-mips.c:7590
 #, c-format
 msgid "%pB: warning: bad `%s' option size %u smaller than its header"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: bad `%s' option size %u smaller than its header"
 msgstr ""
 
-#: elfxx-mips.c:8391 elfxx-mips.c:8517
+#: elfxx-mips.c:8397 elfxx-mips.c:8523
 #, c-format
 msgid ""
 "%pB: warning: cannot determine the target function for stub section `%s'"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: cannot determine the target function for stub section `%s'"
 msgstr ""
 
-#: elfxx-mips.c:8649
+#: elfxx-mips.c:8655
 #, c-format
 msgid "%pB: malformed reloc detected for section %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: malformed reloc detected for section %s"
 msgstr ""
 
-#: elfxx-mips.c:8749
+#: elfxx-mips.c:8755
 #, c-format
 msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
 msgstr ""
 
 #, c-format
 msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
 msgstr ""
 
-#: elfxx-mips.c:8887
+#: elfxx-mips.c:8893
 #, c-format
 msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
 msgstr ""
 
 #, c-format
 msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
 msgstr ""
 
-#: elfxx-mips.c:9190
+#: elfxx-mips.c:9196
 #, c-format
 msgid ""
 "%X%H: relocation %s against `%s' cannot be used when making a shared object; "
 "recompile with -fPIC\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%X%H: relocation %s against `%s' cannot be used when making a shared object; "
 "recompile with -fPIC\n"
 msgstr ""
 
-#: elfxx-mips.c:9526
+#: elfxx-mips.c:9322
+#, c-format
+msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
+msgstr ""
+
+#: elfxx-mips.c:9325
+#, c-format
+msgid "non-dynamic symbol %s in dynamic symbol table"
+msgstr ""
+
+#: elfxx-mips.c:9541
 #, c-format
 msgid "non-dynamic relocations refer to dynamic symbol %s"
 msgstr ""
 
 #, c-format
 msgid "non-dynamic relocations refer to dynamic symbol %s"
 msgstr ""
 
-#: elfxx-mips.c:10456
+#: elfxx-mips.c:10471
 #, c-format
 msgid ""
 "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
 "section `%pA'"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
 "section `%pA'"
 msgstr ""
 
-#: elfxx-mips.c:10596
+#: elfxx-mips.c:10611
 msgid ""
 "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
 msgstr ""
 
 msgid ""
 "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
 msgstr ""
 
-#: elfxx-mips.c:10615
+#: elfxx-mips.c:10630
 msgid "cannot convert a jump to JALX for a non-word-aligned address"
 msgstr ""
 
 msgid "cannot convert a jump to JALX for a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10618
+#: elfxx-mips.c:10633
 msgid "jump to a non-word-aligned address"
 msgstr ""
 
 msgid "jump to a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10619
+#: elfxx-mips.c:10634
 msgid "jump to a non-instruction-aligned address"
 msgstr ""
 
 msgid "jump to a non-instruction-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10622
+#: elfxx-mips.c:10637
 msgid "cannot convert a branch to JALX for a non-word-aligned address"
 msgstr ""
 
 msgid "cannot convert a branch to JALX for a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10624
+#: elfxx-mips.c:10639
 msgid "branch to a non-instruction-aligned address"
 msgstr ""
 
 msgid "branch to a non-instruction-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10626
+#: elfxx-mips.c:10641
 msgid "PC-relative load from unaligned address"
 msgstr ""
 
 msgid "PC-relative load from unaligned address"
 msgstr ""
 
-#: elfxx-mips.c:10926
+#: elfxx-mips.c:10941
 #, c-format
 msgid ""
 "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
 "consider using `-Ttext-segment=...'"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
 "consider using `-Ttext-segment=...'"
 msgstr ""
 
-#: elfxx-mips.c:11041 elfxx-mips.c:11628
+#: elfxx-mips.c:11056 elfxx-mips.c:11643
 #, c-format
 msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
 msgstr ""
 
-#: elfxx-mips.c:11600
+#: elfxx-mips.c:11615
 #, c-format
 msgid ""
 "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
 "consider using `-Ttext-segment=...'"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
 "consider using `-Ttext-segment=...'"
 msgstr ""
 
-#: elfxx-mips.c:14562
+#: elfxx-mips.c:14577
 #, c-format
 msgid "%pB: unknown architecture %s"
 msgstr ""
 
 #, c-format
 msgid "%pB: unknown architecture %s"
 msgstr ""
 
-#: elfxx-mips.c:15096
+#: elfxx-mips.c:15111
 #, c-format
 msgid "%pB: illegal section name `%pA'"
 msgstr ""
 
 #, c-format
 msgid "%pB: illegal section name `%pA'"
 msgstr ""
 
-#: elfxx-mips.c:15373
+#: elfxx-mips.c:15388
 #, c-format
 msgid "%pB: warning: linking abicalls files with non-abicalls files"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: linking abicalls files with non-abicalls files"
 msgstr ""
 
-#: elfxx-mips.c:15390
+#: elfxx-mips.c:15405
 #, c-format
 msgid "%pB: linking 32-bit code with 64-bit code"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking 32-bit code with 64-bit code"
 msgstr ""
 
-#: elfxx-mips.c:15422 elfxx-mips.c:15488 elfxx-mips.c:15503
+#: elfxx-mips.c:15437 elfxx-mips.c:15503 elfxx-mips.c:15518
 #, c-format
 msgid "%pB: linking %s module with previous %s modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15446
+#: elfxx-mips.c:15461
 #, c-format
 msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15471
+#: elfxx-mips.c:15486
 #, c-format
 msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15605
+#: elfxx-mips.c:15620
 #, c-format
 msgid ""
 "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
 "unknown floating point ABI %d"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
 "unknown floating point ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15611
+#: elfxx-mips.c:15626
 #, c-format
 msgid ""
 "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15617
+#: elfxx-mips.c:15632
 #, c-format
 msgid ""
 "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15631
+#: elfxx-mips.c:15646
 #, c-format
 msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15650
+#: elfxx-mips.c:15665
 #, c-format
 msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15662
+#: elfxx-mips.c:15677
 #, c-format
 msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
 msgstr ""
 
 #, c-format
 msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15671
+#: elfxx-mips.c:15686
 #, c-format
 msgid ""
 "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI "
 "%d"
 msgstr ""
 
 #, c-format
 msgid ""
 "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI "
 "%d"
 msgstr ""
 
-#: elfxx-mips.c:15733
+#: elfxx-mips.c:15748
 #, c-format
 msgid "%pB: endianness incompatible with that of the selected emulation"
 msgstr ""
 
 #, c-format
 msgid "%pB: endianness incompatible with that of the selected emulation"
 msgstr ""
 
-#: elfxx-mips.c:15747
+#: elfxx-mips.c:15762
 #, c-format
 msgid "%pB: ABI is incompatible with that of the selected emulation"
 msgstr ""
 
 #, c-format
 msgid "%pB: ABI is incompatible with that of the selected emulation"
 msgstr ""
 
-#: elfxx-mips.c:15799
+#: elfxx-mips.c:15815
 #, c-format
 msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15804
+#: elfxx-mips.c:15820
 #, c-format
 msgid ""
 "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15808
+#: elfxx-mips.c:15824
 #, c-format
 msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15815
+#: elfxx-mips.c:15831
 #, c-format
 msgid ""
 "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15819
+#: elfxx-mips.c:15835
 #, c-format
 msgid ""
 "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
 msgstr ""
 
-#: elfxx-mips.c:16010
+#: elfxx-mips.c:16026
 msgid "-mips32r2 -mfp64 (12 callee-saved)"
 msgstr ""
 
 msgid "-mips32r2 -mfp64 (12 callee-saved)"
 msgstr ""
 
-#: elfxx-mips.c:16072 elfxx-mips.c:16083
+#: elfxx-mips.c:16088 elfxx-mips.c:16099
 msgid "None"
 msgstr ""
 
 msgid "None"
 msgstr ""
 
-#: elfxx-mips.c:16074 elfxx-mips.c:16143
+#: elfxx-mips.c:16090 elfxx-mips.c:16159
 msgid "Unknown"
 msgstr ""
 
 msgid "Unknown"
 msgstr ""
 
-#: elfxx-mips.c:16154
+#: elfxx-mips.c:16170
 #, c-format
 msgid "Hard or soft float\n"
 msgstr ""
 
 #, c-format
 msgid "Hard or soft float\n"
 msgstr ""
 
-#: elfxx-mips.c:16157
+#: elfxx-mips.c:16173
 #, c-format
 msgid "Hard float (double precision)\n"
 msgstr ""
 
 #, c-format
 msgid "Hard float (double precision)\n"
 msgstr ""
 
-#: elfxx-mips.c:16160
+#: elfxx-mips.c:16176
 #, c-format
 msgid "Hard float (single precision)\n"
 msgstr ""
 
 #, c-format
 msgid "Hard float (single precision)\n"
 msgstr ""
 
-#: elfxx-mips.c:16163
+#: elfxx-mips.c:16179
 #, c-format
 msgid "Soft float\n"
 msgstr ""
 
 #, c-format
 msgid "Soft float\n"
 msgstr ""
 
-#: elfxx-mips.c:16166
+#: elfxx-mips.c:16182
 #, c-format
 msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
 msgstr ""
 
 #, c-format
 msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
 msgstr ""
 
-#: elfxx-mips.c:16169
+#: elfxx-mips.c:16185
 #, c-format
 msgid "Hard float (32-bit CPU, Any FPU)\n"
 msgstr ""
 
 #, c-format
 msgid "Hard float (32-bit CPU, Any FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:16172
+#: elfxx-mips.c:16188
 #, c-format
 msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
 #, c-format
 msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:16175
+#: elfxx-mips.c:16191
 #, c-format
 msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
 #, c-format
 msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:16207
+#: elfxx-mips.c:16223
 #, c-format
 msgid " [abi=O32]"
 msgstr ""
 
 #, c-format
 msgid " [abi=O32]"
 msgstr ""
 
-#: elfxx-mips.c:16209
+#: elfxx-mips.c:16225
 #, c-format
 msgid " [abi=O64]"
 msgstr ""
 
 #, c-format
 msgid " [abi=O64]"
 msgstr ""
 
-#: elfxx-mips.c:16211
+#: elfxx-mips.c:16227
 #, c-format
 msgid " [abi=EABI32]"
 msgstr ""
 
 #, c-format
 msgid " [abi=EABI32]"
 msgstr ""
 
-#: elfxx-mips.c:16213
+#: elfxx-mips.c:16229
 #, c-format
 msgid " [abi=EABI64]"
 msgstr ""
 
 #, c-format
 msgid " [abi=EABI64]"
 msgstr ""
 
-#: elfxx-mips.c:16215
+#: elfxx-mips.c:16231
 #, c-format
 msgid " [abi unknown]"
 msgstr ""
 
 #, c-format
 msgid " [abi unknown]"
 msgstr ""
 
-#: elfxx-mips.c:16217
+#: elfxx-mips.c:16233
 #, c-format
 msgid " [abi=N32]"
 msgstr ""
 
 #, c-format
 msgid " [abi=N32]"
 msgstr ""
 
-#: elfxx-mips.c:16219
+#: elfxx-mips.c:16235
 #, c-format
 msgid " [abi=64]"
 msgstr ""
 
 #, c-format
 msgid " [abi=64]"
 msgstr ""
 
-#: elfxx-mips.c:16221
+#: elfxx-mips.c:16237
 #, c-format
 msgid " [no abi set]"
 msgstr ""
 
 #, c-format
 msgid " [no abi set]"
 msgstr ""
 
-#: elfxx-mips.c:16246
+#: elfxx-mips.c:16262
 #, c-format
 msgid " [unknown ISA]"
 msgstr ""
 
 #, c-format
 msgid " [unknown ISA]"
 msgstr ""
 
-#: elfxx-mips.c:16266
+#: elfxx-mips.c:16282
 #, c-format
 msgid " [not 32bitmode]"
 msgstr ""
 
 #, c-format
 msgid " [not 32bitmode]"
 msgstr ""
 
-#: elfxx-sparc.c:3110 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5518
+#: elfxx-riscv.c:1064
+#, c-format
+msgid "-march=%s: Expect number after `%dp'."
+msgstr ""
+
+#: elfxx-riscv.c:1175
+#, c-format
+msgid "-march=%s: rv%de is not a valid base ISA"
+msgstr ""
+
+#: elfxx-riscv.c:1215
+#, c-format
+msgid "-march=%s: first ISA subset must be `e', `i' or `g'"
+msgstr ""
+
+#: elfxx-riscv.c:1243
+#, c-format
+msgid "-march=%s: unsupported ISA subset `%c'"
+msgstr ""
+
+#: elfxx-riscv.c:1246
+#, c-format
+msgid "-march=%s: ISA string is not in canonical order. `%c'"
+msgstr ""
+
+#: elfxx-riscv.c:1365
+#, c-format
+msgid "-march=%s: Invalid or unknown %s ISA extension: '%s'"
+msgstr ""
+
+#: elfxx-riscv.c:1376
+#, c-format
+msgid "-march=%s: Duplicate %s ISA extension: '%s'"
+msgstr ""
+
+#: elfxx-riscv.c:1387
+#, c-format
+msgid ""
+"-march=%s: %s ISA extension not in alphabetical order: '%s' must come before "
+"'%s'."
+msgstr ""
+
+#: elfxx-riscv.c:1408
+#, c-format
+msgid "-march=%s: %s must separate with _"
+msgstr ""
+
+#: elfxx-riscv.c:1524
+#, c-format
+msgid "-march=%s: ISA string must begin with rv32 or rv64"
+msgstr ""
+
+#: elfxx-riscv.c:1545
+#, c-format
+msgid "-march=%s: unexpected ISA string at end: %s"
+msgstr ""
+
+#: elfxx-riscv.c:1554
+#, c-format
+msgid "-march=%s: rv32e does not support the `f' extension"
+msgstr ""
+
+#: elfxx-riscv.c:1563
+#, c-format
+msgid "-march=%s: `d' extension requires `f' extension"
+msgstr ""
+
+#: elfxx-riscv.c:1572
+#, c-format
+msgid "-march=%s: `q' extension requires `d' extension"
+msgstr ""
+
+#: elfxx-riscv.c:1580
+#, c-format
+msgid "-march=%s: rv32 does not support the `q' extension"
+msgstr ""
+
+#: elfxx-sparc.c:3110 elfnn-aarch64.c:5576
 #, c-format
 msgid ""
 "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
 #, c-format
 msgid ""
 "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
@@ -5357,81 +5543,92 @@ msgstr ""
 msgid "%pB: cannot link together %s and %s objects"
 msgstr ""
 
 msgid "%pB: cannot link together %s and %s objects"
 msgstr ""
 
-#: elfxx-x86.c:578
+#: elfxx-x86.c:581
 #, c-format
 msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
 msgstr ""
 
 #, c-format
 msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
 msgstr ""
 
-#: elfxx-x86.c:1027
+#: elfxx-x86.c:1041
+#, c-format
+msgid ""
+"%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is "
+"disallowed\n"
+msgstr ""
+
+#: elfxx-x86.c:1124
 msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
 msgstr ""
 
 msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
 msgstr ""
 
-#: elfxx-x86.c:1382
+#: elfxx-x86.c:1479
 msgid ""
 "%P%X: read-only segment has dynamic IFUNC relocations; recompile with %s\n"
 msgstr ""
 
 msgid ""
 "%P%X: read-only segment has dynamic IFUNC relocations; recompile with %s\n"
 msgstr ""
 
-#: elfxx-x86.c:2385
+#: elfxx-x86.c:2482
 #, c-format
 msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
 msgstr ""
 
-#: elfxx-x86.c:2651
+#: elfxx-x86.c:2748
 msgid "%P: %pB: warning: missing %s\n"
 msgstr ""
 
 msgid "%P: %pB: warning: missing %s\n"
 msgstr ""
 
-#: elfxx-x86.c:2653
+#: elfxx-x86.c:2750
 msgid "%X%P: %pB: error: missing %s\n"
 msgstr ""
 
 msgid "%X%P: %pB: error: missing %s\n"
 msgstr ""
 
-#: elfxx-x86.c:2676
+#: elfxx-x86.c:2773
 msgid "IBT and SHSTK properties"
 msgstr ""
 
 msgid "IBT and SHSTK properties"
 msgstr ""
 
-#: elfxx-x86.c:2678
+#: elfxx-x86.c:2775
 msgid "IBT property"
 msgstr ""
 
 msgid "IBT property"
 msgstr ""
 
-#: elfxx-x86.c:2680
+#: elfxx-x86.c:2777
 msgid "SHSTK property"
 msgstr ""
 
 msgid "SHSTK property"
 msgstr ""
 
-#: elfxx-x86.c:2824
+#: elfxx-x86.c:2921
 msgid "%F%P: failed to create VxWorks dynamic sections\n"
 msgstr ""
 
 msgid "%F%P: failed to create VxWorks dynamic sections\n"
 msgstr ""
 
-#: elfxx-x86.c:2833
+#: elfxx-x86.c:2930
 msgid "%F%P: failed to create GOT sections\n"
 msgstr ""
 
 msgid "%F%P: failed to create GOT sections\n"
 msgstr ""
 
-#: elfxx-x86.c:2851
+#: elfxx-x86.c:2948
 msgid "%F%P: failed to create ifunc sections\n"
 msgstr ""
 
 msgid "%F%P: failed to create ifunc sections\n"
 msgstr ""
 
-#: elfxx-x86.c:2891
+#: elfxx-x86.c:2988
 msgid "%F%P: failed to create GOT PLT section\n"
 msgstr ""
 
 msgid "%F%P: failed to create GOT PLT section\n"
 msgstr ""
 
-#: elfxx-x86.c:2911
+#: elfxx-x86.c:3008
 msgid "%F%P: failed to create IBT-enabled PLT section\n"
 msgstr ""
 
 msgid "%F%P: failed to create IBT-enabled PLT section\n"
 msgstr ""
 
-#: elfxx-x86.c:2925
+#: elfxx-x86.c:3022
 msgid "%F%P: failed to create BND PLT section\n"
 msgstr ""
 
 msgid "%F%P: failed to create BND PLT section\n"
 msgstr ""
 
-#: elfxx-x86.c:2945
+#: elfxx-x86.c:3042
 msgid "%F%P: failed to create PLT .eh_frame section\n"
 msgstr ""
 
 msgid "%F%P: failed to create PLT .eh_frame section\n"
 msgstr ""
 
-#: elfxx-x86.c:2958
+#: elfxx-x86.c:3055
 msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
 msgstr ""
 
 msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
 msgstr ""
 
-#: elfxx-x86.c:2972
+#: elfxx-x86.c:3069
 msgid "%F%P: failed to create the second PLT .eh_frame section\n"
 msgstr ""
 
 msgid "%F%P: failed to create the second PLT .eh_frame section\n"
 msgstr ""
 
+#: elfxx-x86.c:3111
+msgid "%X%P: attempted static link of dynamic object `%pB'\n"
+msgstr ""
+
 #: ihex.c:230
 #, c-format
 msgid "%pB:%d: unexpected character `%s' in Intel Hex file"
 #: ihex.c:230
 #, c-format
 msgid "%pB:%d: unexpected character `%s' in Intel Hex file"
@@ -5482,22 +5679,22 @@ msgstr ""
 msgid "%pB 64-bit address %#<PRIx64> out of range for Intel Hex file"
 msgstr ""
 
 msgid "%pB 64-bit address %#<PRIx64> out of range for Intel Hex file"
 msgstr ""
 
-#: ihex.c:852
+#: ihex.c:851
 #, c-format
 msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
 msgstr ""
 
 #, c-format
 msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
 msgstr ""
 
-#: libbfd.c:937
+#: libbfd.c:884
 #, c-format
 msgid "%pB: unable to get decompressed section %pA"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to get decompressed section %pA"
 msgstr ""
 
-#: libbfd.c:1101
+#: libbfd.c:1048
 #, c-format
 msgid "Deprecated %s called at %s line %d in %s\n"
 msgstr ""
 
 #, c-format
 msgid "Deprecated %s called at %s line %d in %s\n"
 msgstr ""
 
-#: libbfd.c:1104
+#: libbfd.c:1051
 #, c-format
 msgid "Deprecated %s called\n"
 msgstr ""
 #, c-format
 msgid "Deprecated %s called\n"
 msgstr ""
@@ -5645,93 +5842,89 @@ msgid ""
 "malformed mach-o reloc: section index is greater than the number of sections"
 msgstr ""
 
 "malformed mach-o reloc: section index is greater than the number of sections"
 msgstr ""
 
-#: mach-o.c:2123
+#: mach-o.c:2139
 msgid ""
 "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab "
 "commands."
 msgstr ""
 
 msgid ""
 "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab "
 "commands."
 msgstr ""
 
-#: mach-o.c:2569
+#: mach-o.c:2587
 #, c-format
 msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
 msgstr ""
 
 #, c-format
 msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
 msgstr ""
 
-#: mach-o.c:2676
+#: mach-o.c:2694
 #, c-format
 msgid "unable to allocate data for load command %#x"
 msgstr ""
 
 #, c-format
 msgid "unable to allocate data for load command %#x"
 msgstr ""
 
-#: mach-o.c:2781
+#: mach-o.c:2799
 #, c-format
 msgid "unable to write unknown load command %#x"
 msgstr ""
 
 #, c-format
 msgid "unable to write unknown load command %#x"
 msgstr ""
 
-#: mach-o.c:2965
+#: mach-o.c:2983
 #, c-format
 msgid "section address (%#<PRIx64>) below start of segment (%#<PRIx64>)"
 msgstr ""
 
 #, c-format
 msgid "section address (%#<PRIx64>) below start of segment (%#<PRIx64>)"
 msgstr ""
 
-#: mach-o.c:3107
+#: mach-o.c:3125
 #, c-format
 msgid "unable to layout unknown load command %#x"
 msgstr ""
 
 #, c-format
 msgid "unable to layout unknown load command %#x"
 msgstr ""
 
-#: mach-o.c:3642
+#: mach-o.c:3660
 #, c-format
 msgid ""
 "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead"
 msgstr ""
 
 #, c-format
 msgid ""
 "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead"
 msgstr ""
 
-#: mach-o.c:3685
+#: mach-o.c:3703
 #, c-format
 msgid ""
 "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead"
 msgstr ""
 
 #, c-format
 msgid ""
 "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead"
 msgstr ""
 
-#: mach-o.c:3736
+#: mach-o.c:3754
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
 msgstr ""
 
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
 msgstr ""
 
-#: mach-o.c:3755
+#: mach-o.c:3773
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
 msgstr ""
 
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
 msgstr ""
 
-#: mach-o.c:3838
+#: mach-o.c:3856
 #, c-format
 msgid ""
 "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d "
 "(max %lu): setting to undefined"
 msgstr ""
 
 #, c-format
 msgid ""
 "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d "
 "(max %lu): setting to undefined"
 msgstr ""
 
-#: mach-o.c:3857
+#: mach-o.c:3875
 #, c-format
 msgid ""
 "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x"
 "%x: setting to undefined"
 msgstr ""
 
 #, c-format
 msgid ""
 "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x"
 "%x: setting to undefined"
 msgstr ""
 
-#: mach-o.c:3934
-msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
-msgstr ""
-
-#: mach-o.c:4994
+#: mach-o.c:5062
 #, c-format
 msgid "%pB: unknown load command %#x"
 msgstr ""
 
 #, c-format
 msgid "%pB: unknown load command %#x"
 msgstr ""
 
-#: mach-o.c:5185
+#: mach-o.c:5261
 #, c-format
 msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
 msgstr ""
 
 #, c-format
 msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
 msgstr ""
 
-#: mach-o.c:5290
+#: mach-o.c:5383
 #, c-format
 msgid "unknown header byte-order value %#x"
 msgstr ""
 
 #, c-format
 msgid "unknown header byte-order value %#x"
 msgstr ""
 
-#: merge.c:889
+#: merge.c:895
 #, c-format
 msgid "%pB: access beyond end of merged section (%<PRId64>)"
 msgstr ""
 #, c-format
 msgid "%pB: access beyond end of merged section (%<PRId64>)"
 msgstr ""
@@ -5773,111 +5966,111 @@ msgstr ""
 msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
 msgstr ""
 
 msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
 msgstr ""
 
-#: mmo.c:1677
+#: mmo.c:1679
 #, c-format
 msgid ""
 "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
 msgstr ""
 
-#: mmo.c:1728
+#: mmo.c:1730
 #, c-format
 msgid ""
 "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
 msgstr ""
 
-#: mmo.c:1769
+#: mmo.c:1771
 #, c-format
 msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
 msgstr ""
 
-#: mmo.c:1780
+#: mmo.c:1782
 #, c-format
 msgid ""
 "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
 msgstr ""
 
-#: mmo.c:1805
+#: mmo.c:1807
 #, c-format
 msgid ""
 "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d "
 "for lop_fixrx\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d "
 "for lop_fixrx\n"
 msgstr ""
 
-#: mmo.c:1830
+#: mmo.c:1832
 #, c-format
 msgid "%pB: cannot allocate file name for file number %d, %d bytes\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: cannot allocate file name for file number %d, %d bytes\n"
 msgstr ""
 
-#: mmo.c:1852
+#: mmo.c:1854
 #, c-format
 msgid ""
 "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
 msgstr ""
 
-#: mmo.c:1866
+#: mmo.c:1868
 #, c-format
 msgid ""
 "%pB: invalid mmo file: file name for number %d was not specified before use\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: file name for number %d was not specified before use\n"
 msgstr ""
 
-#: mmo.c:1973
+#: mmo.c:1975
 #, c-format
 msgid ""
 "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
 msgstr ""
 
-#: mmo.c:2010
+#: mmo.c:2012
 #, c-format
 msgid "%pB: invalid mmo file: lop_end not last item in file\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid mmo file: lop_end not last item in file\n"
 msgstr ""
 
-#: mmo.c:2024
+#: mmo.c:2026
 #, c-format
 msgid ""
 "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras "
 "to the preceding lop_stab (%ld)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras "
 "to the preceding lop_stab (%ld)\n"
 msgstr ""
 
-#: mmo.c:2732
+#: mmo.c:2736
 #, c-format
 msgid "%pB: invalid symbol table: duplicate symbol `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: invalid symbol table: duplicate symbol `%s'\n"
 msgstr ""
 
-#: mmo.c:2975
+#: mmo.c:2979
 #, c-format
 msgid ""
 "%pB: bad symbol definition: `Main' set to %s rather than the start address "
 "%s\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: bad symbol definition: `Main' set to %s rather than the start address "
 "%s\n"
 msgstr ""
 
-#: mmo.c:3074
+#: mmo.c:3078
 #, c-format
 msgid ""
 "%pB: warning: symbol table too large for mmo, larger than 65535 32-bit "
 "words: %d.  Only `Main' will be emitted.\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: warning: symbol table too large for mmo, larger than 65535 32-bit "
 "words: %d.  Only `Main' will be emitted.\n"
 msgstr ""
 
-#: mmo.c:3120
+#: mmo.c:3124
 #, c-format
 msgid "%pB: internal error, symbol table changed size from %d to %d words\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: internal error, symbol table changed size from %d to %d words\n"
 msgstr ""
 
-#: mmo.c:3173
+#: mmo.c:3177
 #, c-format
 msgid "%pB: internal error, internal register section %pA had contents\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: internal error, internal register section %pA had contents\n"
 msgstr ""
 
-#: mmo.c:3224
+#: mmo.c:3228
 #, c-format
 msgid "%pB: no initialized registers; section length 0\n"
 msgstr ""
 
 #, c-format
 msgid "%pB: no initialized registers; section length 0\n"
 msgstr ""
 
-#: mmo.c:3231
+#: mmo.c:3235
 #, c-format
 msgid "%pB: too many initialized registers; section length %<PRId64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: too many initialized registers; section length %<PRId64>"
 msgstr ""
 
-#: mmo.c:3236
+#: mmo.c:3240
 #, c-format
 msgid ""
 "%pB: invalid start address for initialized registers of length %<PRId64>: "
 #, c-format
 msgid ""
 "%pB: invalid start address for initialized registers of length %<PRId64>: "
@@ -5889,7 +6082,7 @@ msgstr ""
 msgid "unhandled OSF/1 core file section type %d"
 msgstr ""
 
 msgid "unhandled OSF/1 core file section type %d"
 msgstr ""
 
-#: pef.c:534
+#: pef.c:532
 #, c-format
 msgid "bfd_pef_scan: unknown architecture 0x%lx"
 msgstr ""
 #, c-format
 msgid "bfd_pef_scan: unknown architecture 0x%lx"
 msgstr ""
@@ -5984,12 +6177,12 @@ msgstr ""
 msgid "%pB: size field is zero in Import Library Format header"
 msgstr ""
 
 msgid "%pB: size field is zero in Import Library Format header"
 msgstr ""
 
-#: peicode.h:1295
+#: peicode.h:1289
 #, c-format
 msgid "%pB: string not null terminated in ILF object file"
 msgstr ""
 
 #, c-format
 msgid "%pB: string not null terminated in ILF object file"
 msgstr ""
 
-#: peicode.h:1351
+#: peicode.h:1345
 #, c-format
 msgid "%pB: error: debug data ends beyond end of debug directory"
 msgstr ""
 #, c-format
 msgid "%pB: error: debug data ends beyond end of debug directory"
 msgstr ""
@@ -6043,32 +6236,32 @@ msgstr ""
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr ""
 
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr ""
 
-#: reloc.c:8263
+#: reloc.c:8291
 msgid "INPUT_SECTION_FLAGS are not supported"
 msgstr ""
 
 msgid "INPUT_SECTION_FLAGS are not supported"
 msgstr ""
 
-#: reloc.c:8364
+#: reloc.c:8392
 #, c-format
 msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
 msgstr ""
 
 #, c-format
 msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
 msgstr ""
 
-#: reloc.c:8452
+#: reloc.c:8480
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
 msgstr ""
 
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
 msgstr ""
 
-#: reloc.c:8461
+#: reloc.c:8489
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
 msgstr ""
 
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
 msgstr ""
 
-#: reloc.c:8523
+#: reloc.c:8551
 #, c-format
 msgid "%pB: unrecognized relocation type %#x in section `%pA'"
 msgstr ""
 
 #. PR 21803: Suggest the most likely cause of this error.
 #, c-format
 msgid "%pB: unrecognized relocation type %#x in section `%pA'"
 msgstr ""
 
 #. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8527
+#: reloc.c:8555
 #, c-format
 msgid "is this version of the linker - %s - out of date ?"
 msgstr ""
 #, c-format
 msgid "is this version of the linker - %s - out of date ?"
 msgstr ""
@@ -6078,14 +6271,14 @@ msgstr ""
 msgid "%pB: warning core file truncated"
 msgstr ""
 
 msgid "%pB: warning core file truncated"
 msgstr ""
 
-#: som.c:5482
+#: som.c:5509
 #, c-format
 msgid ""
 "\n"
 "Exec Auxiliary Header\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Exec Auxiliary Header\n"
 msgstr ""
 
-#: som.c:5791
+#: som.c:5818
 msgid "som_sizeof_headers unimplemented"
 msgstr ""
 
 msgid "som_sizeof_headers unimplemented"
 msgstr ""
 
@@ -6109,78 +6302,83 @@ msgstr ""
 msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
 msgstr ""
 
 msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
 msgstr ""
 
-#: syms.c:1098
+#: syms.c:1087
 msgid "unsupported .stab relocation"
 msgstr ""
 
 msgid "unsupported .stab relocation"
 msgstr ""
 
-#: vms-alpha.c:479
+#: vms-alpha.c:476
 msgid "corrupt EIHD record - size is too small"
 msgstr ""
 
 msgid "corrupt EIHD record - size is too small"
 msgstr ""
 
-#: vms-alpha.c:665
+#: vms-alpha.c:662
 #, c-format
 msgid "unable to read EIHS record at offset %#x"
 msgstr ""
 
 #, c-format
 msgid "unable to read EIHS record at offset %#x"
 msgstr ""
 
-#: vms-alpha.c:1157
+#: vms-alpha.c:1154
 msgid "record is too small for symbol name length"
 msgstr ""
 
 msgid "record is too small for symbol name length"
 msgstr ""
 
-#: vms-alpha.c:1190
+#: vms-alpha.c:1187
 #, c-format
 msgid "corrupt EGSD record: its size (%#x) is too small"
 msgstr ""
 
 #, c-format
 msgid "corrupt EGSD record: its size (%#x) is too small"
 msgstr ""
 
-#: vms-alpha.c:1214
+#: vms-alpha.c:1211
 #, c-format
 msgid ""
 "corrupt EGSD record type %d: size (%#x) is larger than remaining space (%#x)"
 msgstr ""
 
 #, c-format
 msgid ""
 "corrupt EGSD record type %d: size (%#x) is larger than remaining space (%#x)"
 msgstr ""
 
-#: vms-alpha.c:1224
+#: vms-alpha.c:1221
 #, c-format
 msgid "corrupt EGSD record type %d: size (%#x) is too small"
 msgstr ""
 
 #, c-format
 msgid "corrupt EGSD record type %d: size (%#x) is too small"
 msgstr ""
 
-#: vms-alpha.c:1366
+#: vms-alpha.c:1363
 #, c-format
 msgid "corrupt EGSD record: its psindx field is too big (%#lx)"
 msgstr ""
 
 #, c-format
 msgid "corrupt EGSD record: its psindx field is too big (%#lx)"
 msgstr ""
 
-#: vms-alpha.c:1442
+#: vms-alpha.c:1439
 #, c-format
 msgid "unknown EGSD subtype %d"
 msgstr ""
 
 #, c-format
 msgid "unknown EGSD subtype %d"
 msgstr ""
 
-#: vms-alpha.c:1475
+#: vms-alpha.c:1472
 #, c-format
 msgid "stack overflow (%d) in _bfd_vms_push"
 msgstr ""
 
 #, c-format
 msgid "stack overflow (%d) in _bfd_vms_push"
 msgstr ""
 
-#: vms-alpha.c:1489
+#: vms-alpha.c:1486
 msgid "stack underflow in _bfd_vms_pop"
 msgstr ""
 
 msgid "stack underflow in _bfd_vms_pop"
 msgstr ""
 
+#: vms-alpha.c:1560
+#, c-format
+msgid "dst_define_location %u too large"
+msgstr ""
+
 #. These names have not yet been added to this switch statement.
 #. These names have not yet been added to this switch statement.
-#: vms-alpha.c:1733
+#: vms-alpha.c:1761
 #, c-format
 msgid "unknown ETIR command %d"
 msgstr ""
 
 #, c-format
 msgid "unknown ETIR command %d"
 msgstr ""
 
-#: vms-alpha.c:1764
+#: vms-alpha.c:1792
 msgid "corrupt vms value"
 msgstr ""
 
 msgid "corrupt vms value"
 msgstr ""
 
-#: vms-alpha.c:1895
+#: vms-alpha.c:1923
 msgid "corrupt ETIR record encountered"
 msgstr ""
 
 msgid "corrupt ETIR record encountered"
 msgstr ""
 
-#: vms-alpha.c:1956
+#: vms-alpha.c:1984
 #, c-format
 msgid "bad section index in %s"
 msgstr ""
 
 #, c-format
 msgid "bad section index in %s"
 msgstr ""
 
-#: vms-alpha.c:1970
+#: vms-alpha.c:1998
 #, c-format
 msgid "unsupported STA cmd %s"
 msgstr ""
 #, c-format
 msgid "unsupported STA cmd %s"
 msgstr ""
@@ -6190,1935 +6388,1947 @@ msgstr ""
 #. Rotate.
 #. Redefine symbol to current location.
 #. Define a literal.
 #. Rotate.
 #. Redefine symbol to current location.
 #. Define a literal.
-#: vms-alpha.c:2156 vms-alpha.c:2187 vms-alpha.c:2278 vms-alpha.c:2467
+#: vms-alpha.c:2201 vms-alpha.c:2232 vms-alpha.c:2325 vms-alpha.c:2528
 #, c-format
 msgid "%s: not supported"
 msgstr ""
 
 #, c-format
 msgid "%s: not supported"
 msgstr ""
 
-#: vms-alpha.c:2162
+#: vms-alpha.c:2207
 #, c-format
 msgid "%s: not implemented"
 msgstr ""
 
 #, c-format
 msgid "%s: not implemented"
 msgstr ""
 
-#: vms-alpha.c:2450
+#: vms-alpha.c:2370 vms-alpha.c:2385
+#, c-format
+msgid "invalid %s"
+msgstr ""
+
+#. Divide by zero is supposed to give a result of zero,
+#. and a non-fatal warning message.
+#: vms-alpha.c:2445
+#, c-format
+msgid "%s divide by zero"
+msgstr ""
+
+#: vms-alpha.c:2511
 #, c-format
 msgid "invalid use of %s with contexts"
 msgstr ""
 
 #, c-format
 msgid "invalid use of %s with contexts"
 msgstr ""
 
-#: vms-alpha.c:2491
+#: vms-alpha.c:2552
 #, c-format
 msgid "reserved cmd %d"
 msgstr ""
 
 #, c-format
 msgid "reserved cmd %d"
 msgstr ""
 
-#: vms-alpha.c:2575
+#: vms-alpha.c:2636
 msgid "corrupt EEOM record - size is too small"
 msgstr ""
 
 msgid "corrupt EEOM record - size is too small"
 msgstr ""
 
-#: vms-alpha.c:2584
+#: vms-alpha.c:2645
 msgid "object module not error-free !"
 msgstr ""
 
 msgid "object module not error-free !"
 msgstr ""
 
-#: vms-alpha.c:3926
+#: vms-alpha.c:3972
 #, c-format
 msgid "SEC_RELOC with no relocs in section %pA"
 msgstr ""
 
 #, c-format
 msgid "SEC_RELOC with no relocs in section %pA"
 msgstr ""
 
-#: vms-alpha.c:3978 vms-alpha.c:4193
+#: vms-alpha.c:4024 vms-alpha.c:4239
 #, c-format
 msgid "size error in section %pA"
 msgstr ""
 
 #, c-format
 msgid "size error in section %pA"
 msgstr ""
 
-#: vms-alpha.c:4138
+#: vms-alpha.c:4184
 msgid "spurious ALPHA_R_BSR reloc"
 msgstr ""
 
 msgid "spurious ALPHA_R_BSR reloc"
 msgstr ""
 
-#: vms-alpha.c:4179
+#: vms-alpha.c:4225
 #, c-format
 msgid "unhandled relocation %s"
 msgstr ""
 
 #, c-format
 msgid "unhandled relocation %s"
 msgstr ""
 
-#: vms-alpha.c:4474
+#: vms-alpha.c:4522
 #, c-format
 msgid "unknown source command %d"
 msgstr ""
 
 #, c-format
 msgid "unknown source command %d"
 msgstr ""
 
-#: vms-alpha.c:4535 vms-alpha.c:4541 vms-alpha.c:4547 vms-alpha.c:4553
-#: vms-alpha.c:4559 vms-alpha.c:4586 vms-alpha.c:4592 vms-alpha.c:4598
-#: vms-alpha.c:4604
+#: vms-alpha.c:4583 vms-alpha.c:4589 vms-alpha.c:4595 vms-alpha.c:4601
+#: vms-alpha.c:4607 vms-alpha.c:4634 vms-alpha.c:4640 vms-alpha.c:4646
+#: vms-alpha.c:4652
 #, c-format
 msgid "%s not implemented"
 msgstr ""
 
 #, c-format
 msgid "%s not implemented"
 msgstr ""
 
-#: vms-alpha.c:4647
+#: vms-alpha.c:4695
 #, c-format
 msgid "unknown line command %d"
 msgstr ""
 
 #, c-format
 msgid "unknown line command %d"
 msgstr ""
 
-#: vms-alpha.c:5107 vms-alpha.c:5125 vms-alpha.c:5140 vms-alpha.c:5156
-#: vms-alpha.c:5169 vms-alpha.c:5181 vms-alpha.c:5194
+#: vms-alpha.c:5159 vms-alpha.c:5177 vms-alpha.c:5192 vms-alpha.c:5208
+#: vms-alpha.c:5221 vms-alpha.c:5233 vms-alpha.c:5246
 #, c-format
 msgid "unknown reloc %s + %s"
 msgstr ""
 
 #, c-format
 msgid "unknown reloc %s + %s"
 msgstr ""
 
-#: vms-alpha.c:5249
+#: vms-alpha.c:5301
 #, c-format
 msgid "unknown reloc %s"
 msgstr ""
 
 #, c-format
 msgid "unknown reloc %s"
 msgstr ""
 
-#: vms-alpha.c:5263
+#: vms-alpha.c:5315
 msgid "invalid section index in ETIR"
 msgstr ""
 
 msgid "invalid section index in ETIR"
 msgstr ""
 
-#: vms-alpha.c:5272
+#: vms-alpha.c:5324
 msgid "relocation for non-REL psect"
 msgstr ""
 
 msgid "relocation for non-REL psect"
 msgstr ""
 
-#: vms-alpha.c:5319
+#: vms-alpha.c:5373
 #, c-format
 msgid "unknown symbol in command %s"
 msgstr ""
 
 #, c-format
 msgid "unknown symbol in command %s"
 msgstr ""
 
-#: vms-alpha.c:5733
+#: vms-alpha.c:5787
 #, c-format
 msgid "reloc (%d) is *UNKNOWN*"
 msgstr ""
 
 #, c-format
 msgid "reloc (%d) is *UNKNOWN*"
 msgstr ""
 
-#: vms-alpha.c:5849
+#: vms-alpha.c:5903
 #, c-format
 msgid "  EMH %u (len=%u): "
 msgstr ""
 
 #, c-format
 msgid "  EMH %u (len=%u): "
 msgstr ""
 
-#: vms-alpha.c:5854
+#: vms-alpha.c:5908
 #, c-format
 msgid "   Error: The length is less than the length of an EMH record\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The length is less than the length of an EMH record\n"
 msgstr ""
 
-#: vms-alpha.c:5871
+#: vms-alpha.c:5925
 #, c-format
 msgid ""
 "   Error: The record length is less than the size of an EMH_MHD record\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "   Error: The record length is less than the size of an EMH_MHD record\n"
 msgstr ""
 
-#: vms-alpha.c:5874
+#: vms-alpha.c:5928
 #, c-format
 msgid "Module header\n"
 msgstr ""
 
 #, c-format
 msgid "Module header\n"
 msgstr ""
 
-#: vms-alpha.c:5875
+#: vms-alpha.c:5929
 #, c-format
 msgid "   structure level: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   structure level: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5876
+#: vms-alpha.c:5930
 #, c-format
 msgid "   max record size: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   max record size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5882
+#: vms-alpha.c:5936
 #, c-format
 msgid "   Error: The module name is missing\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The module name is missing\n"
 msgstr ""
 
-#: vms-alpha.c:5888
+#: vms-alpha.c:5942
 #, c-format
 msgid "   Error: The module name is too long\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The module name is too long\n"
 msgstr ""
 
-#: vms-alpha.c:5891
+#: vms-alpha.c:5945
 #, c-format
 msgid "   module name    : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   module name    : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5895
+#: vms-alpha.c:5949
 #, c-format
 msgid "   Error: The module version is missing\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The module version is missing\n"
 msgstr ""
 
-#: vms-alpha.c:5901
+#: vms-alpha.c:5955
 #, c-format
 msgid "   Error: The module version is too long\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The module version is too long\n"
 msgstr ""
 
-#: vms-alpha.c:5904
+#: vms-alpha.c:5958
 #, c-format
 msgid "   module version : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   module version : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5907
+#: vms-alpha.c:5961
 #, c-format
 msgid "   Error: The compile date is truncated\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The compile date is truncated\n"
 msgstr ""
 
-#: vms-alpha.c:5909
+#: vms-alpha.c:5963
 #, c-format
 msgid "   compile date   : %.17s\n"
 msgstr ""
 
 #, c-format
 msgid "   compile date   : %.17s\n"
 msgstr ""
 
-#: vms-alpha.c:5914
+#: vms-alpha.c:5968
 #, c-format
 msgid "Language Processor Name\n"
 msgstr ""
 
 #, c-format
 msgid "Language Processor Name\n"
 msgstr ""
 
-#: vms-alpha.c:5915
+#: vms-alpha.c:5969
 #, c-format
 msgid "   language name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   language name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5919
+#: vms-alpha.c:5973
 #, c-format
 msgid "Source Files Header\n"
 msgstr ""
 
 #, c-format
 msgid "Source Files Header\n"
 msgstr ""
 
-#: vms-alpha.c:5920
+#: vms-alpha.c:5974
 #, c-format
 msgid "   file: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   file: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5924
+#: vms-alpha.c:5978
 #, c-format
 msgid "Title Text Header\n"
 msgstr ""
 
 #, c-format
 msgid "Title Text Header\n"
 msgstr ""
 
-#: vms-alpha.c:5925
+#: vms-alpha.c:5979
 #, c-format
 msgid "   title: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   title: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5929
+#: vms-alpha.c:5983
 #, c-format
 msgid "Copyright Header\n"
 msgstr ""
 
 #, c-format
 msgid "Copyright Header\n"
 msgstr ""
 
-#: vms-alpha.c:5930
+#: vms-alpha.c:5984
 #, c-format
 msgid "   copyright: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   copyright: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5934
+#: vms-alpha.c:5988
 #, c-format
 msgid "unhandled emh subtype %u\n"
 msgstr ""
 
 #, c-format
 msgid "unhandled emh subtype %u\n"
 msgstr ""
 
-#: vms-alpha.c:5944
+#: vms-alpha.c:5998
 #, c-format
 msgid "  EEOM (len=%u):\n"
 msgstr ""
 
 #, c-format
 msgid "  EEOM (len=%u):\n"
 msgstr ""
 
-#: vms-alpha.c:5949
+#: vms-alpha.c:6003
 #, c-format
 msgid "   Error: The length is less than the length of an EEOM record\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: The length is less than the length of an EEOM record\n"
 msgstr ""
 
-#: vms-alpha.c:5953
+#: vms-alpha.c:6007
 #, c-format
 msgid "   number of cond linkage pairs: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   number of cond linkage pairs: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5955
+#: vms-alpha.c:6009
 #, c-format
 msgid "   completion code: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   completion code: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5959
+#: vms-alpha.c:6013
 #, c-format
 msgid "   transfer addr flags: 0x%02x\n"
 msgstr ""
 
 #, c-format
 msgid "   transfer addr flags: 0x%02x\n"
 msgstr ""
 
-#: vms-alpha.c:5960
+#: vms-alpha.c:6014
 #, c-format
 msgid "   transfer addr psect: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   transfer addr psect: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5962
+#: vms-alpha.c:6016
 #, c-format
 msgid "   transfer address   : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   transfer address   : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5971
+#: vms-alpha.c:6025
 msgid " WEAK"
 msgstr ""
 
 msgid " WEAK"
 msgstr ""
 
-#: vms-alpha.c:5973
+#: vms-alpha.c:6027
 msgid " DEF"
 msgstr ""
 
 msgid " DEF"
 msgstr ""
 
-#: vms-alpha.c:5975
+#: vms-alpha.c:6029
 msgid " UNI"
 msgstr ""
 
 msgid " UNI"
 msgstr ""
 
-#: vms-alpha.c:5977 vms-alpha.c:5998
+#: vms-alpha.c:6031 vms-alpha.c:6052
 msgid " REL"
 msgstr ""
 
 msgid " REL"
 msgstr ""
 
-#: vms-alpha.c:5979
+#: vms-alpha.c:6033
 msgid " COMM"
 msgstr ""
 
 msgid " COMM"
 msgstr ""
 
-#: vms-alpha.c:5981
+#: vms-alpha.c:6035
 msgid " VECEP"
 msgstr ""
 
 msgid " VECEP"
 msgstr ""
 
-#: vms-alpha.c:5983
+#: vms-alpha.c:6037
 msgid " NORM"
 msgstr ""
 
 msgid " NORM"
 msgstr ""
 
-#: vms-alpha.c:5985
+#: vms-alpha.c:6039
 msgid " QVAL"
 msgstr ""
 
 msgid " QVAL"
 msgstr ""
 
-#: vms-alpha.c:5992
+#: vms-alpha.c:6046
 msgid " PIC"
 msgstr ""
 
 msgid " PIC"
 msgstr ""
 
-#: vms-alpha.c:5994
+#: vms-alpha.c:6048
 msgid " LIB"
 msgstr ""
 
 msgid " LIB"
 msgstr ""
 
-#: vms-alpha.c:5996
+#: vms-alpha.c:6050
 msgid " OVR"
 msgstr ""
 
 msgid " OVR"
 msgstr ""
 
-#: vms-alpha.c:6000
+#: vms-alpha.c:6054
 msgid " GBL"
 msgstr ""
 
 msgid " GBL"
 msgstr ""
 
-#: vms-alpha.c:6002
+#: vms-alpha.c:6056
 msgid " SHR"
 msgstr ""
 
 msgid " SHR"
 msgstr ""
 
-#: vms-alpha.c:6004
+#: vms-alpha.c:6058
 msgid " EXE"
 msgstr ""
 
 msgid " EXE"
 msgstr ""
 
-#: vms-alpha.c:6006
+#: vms-alpha.c:6060
 msgid " RD"
 msgstr ""
 
 msgid " RD"
 msgstr ""
 
-#: vms-alpha.c:6008
+#: vms-alpha.c:6062
 msgid " WRT"
 msgstr ""
 
 msgid " WRT"
 msgstr ""
 
-#: vms-alpha.c:6010
+#: vms-alpha.c:6064
 msgid " VEC"
 msgstr ""
 
 msgid " VEC"
 msgstr ""
 
-#: vms-alpha.c:6012
+#: vms-alpha.c:6066
 msgid " NOMOD"
 msgstr ""
 
 msgid " NOMOD"
 msgstr ""
 
-#: vms-alpha.c:6014
+#: vms-alpha.c:6068
 msgid " COM"
 msgstr ""
 
 msgid " COM"
 msgstr ""
 
-#: vms-alpha.c:6016
+#: vms-alpha.c:6070
 msgid " 64B"
 msgstr ""
 
 msgid " 64B"
 msgstr ""
 
-#: vms-alpha.c:6025
+#: vms-alpha.c:6079
 #, c-format
 msgid "  EGSD (len=%u):\n"
 msgstr ""
 
 #, c-format
 msgid "  EGSD (len=%u):\n"
 msgstr ""
 
-#: vms-alpha.c:6038
+#: vms-alpha.c:6092
 #, c-format
 msgid "  EGSD entry %2u (type: %u, len: %u): "
 msgstr ""
 
 #, c-format
 msgid "  EGSD entry %2u (type: %u, len: %u): "
 msgstr ""
 
-#: vms-alpha.c:6044 vms-alpha.c:6295
+#: vms-alpha.c:6098 vms-alpha.c:6349
 #, c-format
 msgid "   Error: length larger than remaining space in record\n"
 msgstr ""
 
 #, c-format
 msgid "   Error: length larger than remaining space in record\n"
 msgstr ""
 
-#: vms-alpha.c:6056
+#: vms-alpha.c:6110
 #, c-format
 msgid "PSC - Program section definition\n"
 msgstr ""
 
 #, c-format
 msgid "PSC - Program section definition\n"
 msgstr ""
 
-#: vms-alpha.c:6057 vms-alpha.c:6074
+#: vms-alpha.c:6111 vms-alpha.c:6128
 #, c-format
 msgid "   alignment  : 2**%u\n"
 msgstr ""
 
 #, c-format
 msgid "   alignment  : 2**%u\n"
 msgstr ""
 
-#: vms-alpha.c:6058 vms-alpha.c:6075
+#: vms-alpha.c:6112 vms-alpha.c:6129
 #, c-format
 msgid "   flags      : 0x%04x"
 msgstr ""
 
 #, c-format
 msgid "   flags      : 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:6062
+#: vms-alpha.c:6116
 #, c-format
 msgid "   alloc (len): %u (0x%08x)\n"
 msgstr ""
 
 #, c-format
 msgid "   alloc (len): %u (0x%08x)\n"
 msgstr ""
 
-#: vms-alpha.c:6063 vms-alpha.c:6120 vms-alpha.c:6169
+#: vms-alpha.c:6117 vms-alpha.c:6174 vms-alpha.c:6223
 #, c-format
 msgid "   name       : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   name       : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6073
+#: vms-alpha.c:6127
 #, c-format
 msgid "SPSC - Shared Image Program section def\n"
 msgstr ""
 
 #, c-format
 msgid "SPSC - Shared Image Program section def\n"
 msgstr ""
 
-#: vms-alpha.c:6079
+#: vms-alpha.c:6133
 #, c-format
 msgid "   alloc (len)   : %u (0x%08x)\n"
 msgstr ""
 
 #, c-format
 msgid "   alloc (len)   : %u (0x%08x)\n"
 msgstr ""
 
-#: vms-alpha.c:6080
+#: vms-alpha.c:6134
 #, c-format
 msgid "   image offset  : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   image offset  : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6082
+#: vms-alpha.c:6136
 #, c-format
 msgid "   symvec offset : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   symvec offset : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6084
+#: vms-alpha.c:6138
 #, c-format
 msgid "   name          : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   name          : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6097
+#: vms-alpha.c:6151
 #, c-format
 msgid "SYM - Global symbol definition\n"
 msgstr ""
 
 #, c-format
 msgid "SYM - Global symbol definition\n"
 msgstr ""
 
-#: vms-alpha.c:6098 vms-alpha.c:6158 vms-alpha.c:6179 vms-alpha.c:6198
+#: vms-alpha.c:6152 vms-alpha.c:6212 vms-alpha.c:6233 vms-alpha.c:6252
 #, c-format
 msgid "   flags: 0x%04x"
 msgstr ""
 
 #, c-format
 msgid "   flags: 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:6101
+#: vms-alpha.c:6155
 #, c-format
 msgid "   psect offset: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   psect offset: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6105
+#: vms-alpha.c:6159
 #, c-format
 msgid "   code address: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   code address: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6107
+#: vms-alpha.c:6161
 #, c-format
 msgid "   psect index for entry point : %u\n"
 msgstr ""
 
 #, c-format
 msgid "   psect index for entry point : %u\n"
 msgstr ""
 
-#: vms-alpha.c:6110 vms-alpha.c:6186 vms-alpha.c:6205
+#: vms-alpha.c:6164 vms-alpha.c:6240 vms-alpha.c:6259
 #, c-format
 msgid "   psect index : %u\n"
 msgstr ""
 
 #, c-format
 msgid "   psect index : %u\n"
 msgstr ""
 
-#: vms-alpha.c:6112 vms-alpha.c:6188 vms-alpha.c:6207
+#: vms-alpha.c:6166 vms-alpha.c:6242 vms-alpha.c:6261
 #, c-format
 msgid "   name        : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   name        : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6119
+#: vms-alpha.c:6173
 #, c-format
 msgid "SYM - Global symbol reference\n"
 msgstr ""
 
 #, c-format
 msgid "SYM - Global symbol reference\n"
 msgstr ""
 
-#: vms-alpha.c:6131
+#: vms-alpha.c:6185
 #, c-format
 msgid "IDC - Ident Consistency check\n"
 msgstr ""
 
 #, c-format
 msgid "IDC - Ident Consistency check\n"
 msgstr ""
 
-#: vms-alpha.c:6132
+#: vms-alpha.c:6186
 #, c-format
 msgid "   flags         : 0x%08x"
 msgstr ""
 
 #, c-format
 msgid "   flags         : 0x%08x"
 msgstr ""
 
-#: vms-alpha.c:6136
+#: vms-alpha.c:6190
 #, c-format
 msgid "   id match      : %x\n"
 msgstr ""
 
 #, c-format
 msgid "   id match      : %x\n"
 msgstr ""
 
-#: vms-alpha.c:6138
+#: vms-alpha.c:6192
 #, c-format
 msgid "   error severity: %x\n"
 msgstr ""
 
 #, c-format
 msgid "   error severity: %x\n"
 msgstr ""
 
-#: vms-alpha.c:6141
+#: vms-alpha.c:6195
 #, c-format
 msgid "   entity name   : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   entity name   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6143
+#: vms-alpha.c:6197
 #, c-format
 msgid "   object name   : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   object name   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6146
+#: vms-alpha.c:6200
 #, c-format
 msgid "   binary ident  : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   binary ident  : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6149
+#: vms-alpha.c:6203
 #, c-format
 msgid "   ascii ident   : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   ascii ident   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6157
+#: vms-alpha.c:6211
 #, c-format
 msgid "SYMG - Universal symbol definition\n"
 msgstr ""
 
 #, c-format
 msgid "SYMG - Universal symbol definition\n"
 msgstr ""
 
-#: vms-alpha.c:6161
+#: vms-alpha.c:6215
 #, c-format
 msgid "   symbol vector offset: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   symbol vector offset: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6163
+#: vms-alpha.c:6217
 #, c-format
 msgid "   entry point: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   entry point: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6165
+#: vms-alpha.c:6219
 #, c-format
 msgid "   proc descr : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   proc descr : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6167
+#: vms-alpha.c:6221
 #, c-format
 msgid "   psect index: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   psect index: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6178
+#: vms-alpha.c:6232
 #, c-format
 msgid "SYMV - Vectored symbol definition\n"
 msgstr ""
 
 #, c-format
 msgid "SYMV - Vectored symbol definition\n"
 msgstr ""
 
-#: vms-alpha.c:6182
+#: vms-alpha.c:6236
 #, c-format
 msgid "   vector      : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   vector      : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6184 vms-alpha.c:6203
+#: vms-alpha.c:6238 vms-alpha.c:6257
 #, c-format
 msgid "   psect offset: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   psect offset: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6197
+#: vms-alpha.c:6251
 #, c-format
 msgid "SYMM - Global symbol definition with version\n"
 msgstr ""
 
 #, c-format
 msgid "SYMM - Global symbol definition with version\n"
 msgstr ""
 
-#: vms-alpha.c:6201
+#: vms-alpha.c:6255
 #, c-format
 msgid "   version mask: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   version mask: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6212
+#: vms-alpha.c:6266
 #, c-format
 msgid "unhandled egsd entry type %u\n"
 msgstr ""
 
 #, c-format
 msgid "unhandled egsd entry type %u\n"
 msgstr ""
 
-#: vms-alpha.c:6247
+#: vms-alpha.c:6301
 #, c-format
 msgid "    linkage index: %u, replacement insn: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "    linkage index: %u, replacement insn: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6251
+#: vms-alpha.c:6305
 #, c-format
 msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6256
+#: vms-alpha.c:6310
 #, c-format
 msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6262
+#: vms-alpha.c:6316
 #, c-format
 msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6267
+#: vms-alpha.c:6321
 #, c-format
 msgid "    global name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "    global name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6278
+#: vms-alpha.c:6332
 #, c-format
 msgid "  %s (len=%u+%u):\n"
 msgstr ""
 
 #, c-format
 msgid "  %s (len=%u+%u):\n"
 msgstr ""
 
-#: vms-alpha.c:6300
+#: vms-alpha.c:6354
 #, c-format
 msgid "   (type: %3u, size: 4+%3u): "
 msgstr ""
 
 #, c-format
 msgid "   (type: %3u, size: 4+%3u): "
 msgstr ""
 
-#: vms-alpha.c:6304
+#: vms-alpha.c:6358
 #, c-format
 msgid "STA_GBL (stack global) %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "STA_GBL (stack global) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6308
+#: vms-alpha.c:6362
 #, c-format
 msgid "STA_LW (stack longword) 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "STA_LW (stack longword) 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6312
+#: vms-alpha.c:6366
 #, c-format
 msgid "STA_QW (stack quadword) 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "STA_QW (stack quadword) 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6317
+#: vms-alpha.c:6371
 #, c-format
 msgid "STA_PQ (stack psect base + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STA_PQ (stack psect base + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6319
+#: vms-alpha.c:6373
 #, c-format
 msgid "    psect: %u, offset: 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "    psect: %u, offset: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6325
+#: vms-alpha.c:6379
 #, c-format
 msgid "STA_LI (stack literal)\n"
 msgstr ""
 
 #, c-format
 msgid "STA_LI (stack literal)\n"
 msgstr ""
 
-#: vms-alpha.c:6328
+#: vms-alpha.c:6382
 #, c-format
 msgid "STA_MOD (stack module)\n"
 msgstr ""
 
 #, c-format
 msgid "STA_MOD (stack module)\n"
 msgstr ""
 
-#: vms-alpha.c:6331
+#: vms-alpha.c:6385
 #, c-format
 msgid "STA_CKARG (compare procedure argument)\n"
 msgstr ""
 
 #, c-format
 msgid "STA_CKARG (compare procedure argument)\n"
 msgstr ""
 
-#: vms-alpha.c:6335
+#: vms-alpha.c:6389
 #, c-format
 msgid "STO_B (store byte)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_B (store byte)\n"
 msgstr ""
 
-#: vms-alpha.c:6338
+#: vms-alpha.c:6392
 #, c-format
 msgid "STO_W (store word)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_W (store word)\n"
 msgstr ""
 
-#: vms-alpha.c:6341
+#: vms-alpha.c:6395
 #, c-format
 msgid "STO_LW (store longword)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_LW (store longword)\n"
 msgstr ""
 
-#: vms-alpha.c:6344
+#: vms-alpha.c:6398
 #, c-format
 msgid "STO_QW (store quadword)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_QW (store quadword)\n"
 msgstr ""
 
-#: vms-alpha.c:6350
+#: vms-alpha.c:6404
 #, c-format
 msgid "STO_IMMR (store immediate repeat) %u bytes\n"
 msgstr ""
 
 #, c-format
 msgid "STO_IMMR (store immediate repeat) %u bytes\n"
 msgstr ""
 
-#: vms-alpha.c:6357
+#: vms-alpha.c:6411
 #, c-format
 msgid "STO_GBL (store global) %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "STO_GBL (store global) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6361
+#: vms-alpha.c:6415
 #, c-format
 msgid "STO_CA (store code address) %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "STO_CA (store code address) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6365
+#: vms-alpha.c:6419
 #, c-format
 msgid "STO_RB (store relative branch)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_RB (store relative branch)\n"
 msgstr ""
 
-#: vms-alpha.c:6368
+#: vms-alpha.c:6422
 #, c-format
 msgid "STO_AB (store absolute branch)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_AB (store absolute branch)\n"
 msgstr ""
 
-#: vms-alpha.c:6371
+#: vms-alpha.c:6425
 #, c-format
 msgid "STO_OFF (store offset to psect)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_OFF (store offset to psect)\n"
 msgstr ""
 
-#: vms-alpha.c:6377
+#: vms-alpha.c:6431
 #, c-format
 msgid "STO_IMM (store immediate) %u bytes\n"
 msgstr ""
 
 #, c-format
 msgid "STO_IMM (store immediate) %u bytes\n"
 msgstr ""
 
-#: vms-alpha.c:6384
+#: vms-alpha.c:6438
 #, c-format
 msgid "STO_GBL_LW (store global longword) %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "STO_GBL_LW (store global longword) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6388
+#: vms-alpha.c:6442
 #, c-format
 msgid "STO_OFF (store LP with procedure signature)\n"
 msgstr ""
 
 #, c-format
 msgid "STO_OFF (store LP with procedure signature)\n"
 msgstr ""
 
-#: vms-alpha.c:6391
+#: vms-alpha.c:6445
 #, c-format
 msgid "STO_BR_GBL (store branch global) *todo*\n"
 msgstr ""
 
 #, c-format
 msgid "STO_BR_GBL (store branch global) *todo*\n"
 msgstr ""
 
-#: vms-alpha.c:6394
+#: vms-alpha.c:6448
 #, c-format
 msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
 msgstr ""
 
 #, c-format
 msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
 msgstr ""
 
-#: vms-alpha.c:6398
+#: vms-alpha.c:6452
 #, c-format
 msgid "OPR_NOP (no-operation)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_NOP (no-operation)\n"
 msgstr ""
 
-#: vms-alpha.c:6401
+#: vms-alpha.c:6455
 #, c-format
 msgid "OPR_ADD (add)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_ADD (add)\n"
 msgstr ""
 
-#: vms-alpha.c:6404
+#: vms-alpha.c:6458
 #, c-format
 msgid "OPR_SUB (subtract)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_SUB (subtract)\n"
 msgstr ""
 
-#: vms-alpha.c:6407
+#: vms-alpha.c:6461
 #, c-format
 msgid "OPR_MUL (multiply)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_MUL (multiply)\n"
 msgstr ""
 
-#: vms-alpha.c:6410
+#: vms-alpha.c:6464
 #, c-format
 msgid "OPR_DIV (divide)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_DIV (divide)\n"
 msgstr ""
 
-#: vms-alpha.c:6413
+#: vms-alpha.c:6467
 #, c-format
 msgid "OPR_AND (logical and)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_AND (logical and)\n"
 msgstr ""
 
-#: vms-alpha.c:6416
+#: vms-alpha.c:6470
 #, c-format
 msgid "OPR_IOR (logical inclusive or)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_IOR (logical inclusive or)\n"
 msgstr ""
 
-#: vms-alpha.c:6419
+#: vms-alpha.c:6473
 #, c-format
 msgid "OPR_EOR (logical exclusive or)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_EOR (logical exclusive or)\n"
 msgstr ""
 
-#: vms-alpha.c:6422
+#: vms-alpha.c:6476
 #, c-format
 msgid "OPR_NEG (negate)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_NEG (negate)\n"
 msgstr ""
 
-#: vms-alpha.c:6425
+#: vms-alpha.c:6479
 #, c-format
 msgid "OPR_COM (complement)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_COM (complement)\n"
 msgstr ""
 
-#: vms-alpha.c:6428
+#: vms-alpha.c:6482
 #, c-format
 msgid "OPR_INSV (insert field)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_INSV (insert field)\n"
 msgstr ""
 
-#: vms-alpha.c:6431
+#: vms-alpha.c:6485
 #, c-format
 msgid "OPR_ASH (arithmetic shift)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_ASH (arithmetic shift)\n"
 msgstr ""
 
-#: vms-alpha.c:6434
+#: vms-alpha.c:6488
 #, c-format
 msgid "OPR_USH (unsigned shift)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_USH (unsigned shift)\n"
 msgstr ""
 
-#: vms-alpha.c:6437
+#: vms-alpha.c:6491
 #, c-format
 msgid "OPR_ROT (rotate)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_ROT (rotate)\n"
 msgstr ""
 
-#: vms-alpha.c:6440
+#: vms-alpha.c:6494
 #, c-format
 msgid "OPR_SEL (select)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_SEL (select)\n"
 msgstr ""
 
-#: vms-alpha.c:6443
+#: vms-alpha.c:6497
 #, c-format
 msgid "OPR_REDEF (redefine symbol to curr location)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_REDEF (redefine symbol to curr location)\n"
 msgstr ""
 
-#: vms-alpha.c:6446
+#: vms-alpha.c:6500
 #, c-format
 msgid "OPR_REDEF (define a literal)\n"
 msgstr ""
 
 #, c-format
 msgid "OPR_REDEF (define a literal)\n"
 msgstr ""
 
-#: vms-alpha.c:6450
+#: vms-alpha.c:6504
 #, c-format
 msgid "STC_LP (store cond linkage pair)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_LP (store cond linkage pair)\n"
 msgstr ""
 
-#: vms-alpha.c:6454
+#: vms-alpha.c:6508
 #, c-format
 msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
 msgstr ""
 
-#: vms-alpha.c:6456
+#: vms-alpha.c:6510
 #, c-format
 msgid "   linkage index: %u, procedure: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   linkage index: %u, procedure: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6459
+#: vms-alpha.c:6513
 #, c-format
 msgid "   signature: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   signature: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6462
+#: vms-alpha.c:6516
 #, c-format
 msgid "STC_GBL (store cond global)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_GBL (store cond global)\n"
 msgstr ""
 
-#: vms-alpha.c:6464
+#: vms-alpha.c:6518
 #, c-format
 msgid "   linkage index: %u, global: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   linkage index: %u, global: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6468
+#: vms-alpha.c:6522
 #, c-format
 msgid "STC_GCA (store cond code address)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_GCA (store cond code address)\n"
 msgstr ""
 
-#: vms-alpha.c:6470
+#: vms-alpha.c:6524
 #, c-format
 msgid "   linkage index: %u, procedure name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   linkage index: %u, procedure name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6474
+#: vms-alpha.c:6528
 #, c-format
 msgid "STC_PS (store cond psect + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_PS (store cond psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6477
+#: vms-alpha.c:6531
 #, c-format
 msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6484
+#: vms-alpha.c:6538
 #, c-format
 msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6488
+#: vms-alpha.c:6542
 #, c-format
 msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6492
+#: vms-alpha.c:6546
 #, c-format
 msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6496
+#: vms-alpha.c:6550
 #, c-format
 msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6500
+#: vms-alpha.c:6554
 #, c-format
 msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6504
+#: vms-alpha.c:6558
 #, c-format
 msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6508
+#: vms-alpha.c:6562
 #, c-format
 msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6512
+#: vms-alpha.c:6566
 #, c-format
 msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6517
+#: vms-alpha.c:6571
 #, c-format
 msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6521
+#: vms-alpha.c:6575
 #, c-format
 msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
 msgstr ""
 
 #, c-format
 msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6525
+#: vms-alpha.c:6579
 #, c-format
 msgid "CTL_SETRB (set relocation base)\n"
 msgstr ""
 
 #, c-format
 msgid "CTL_SETRB (set relocation base)\n"
 msgstr ""
 
-#: vms-alpha.c:6531
+#: vms-alpha.c:6585
 #, c-format
 msgid "CTL_AUGRB (augment relocation base) %u\n"
 msgstr ""
 
 #, c-format
 msgid "CTL_AUGRB (augment relocation base) %u\n"
 msgstr ""
 
-#: vms-alpha.c:6535
+#: vms-alpha.c:6589
 #, c-format
 msgid "CTL_DFLOC (define location)\n"
 msgstr ""
 
 #, c-format
 msgid "CTL_DFLOC (define location)\n"
 msgstr ""
 
-#: vms-alpha.c:6538
+#: vms-alpha.c:6592
 #, c-format
 msgid "CTL_STLOC (set location)\n"
 msgstr ""
 
 #, c-format
 msgid "CTL_STLOC (set location)\n"
 msgstr ""
 
-#: vms-alpha.c:6541
+#: vms-alpha.c:6595
 #, c-format
 msgid "CTL_STKDL (stack defined location)\n"
 msgstr ""
 
 #, c-format
 msgid "CTL_STKDL (stack defined location)\n"
 msgstr ""
 
-#: vms-alpha.c:6544 vms-alpha.c:6968 vms-alpha.c:7094
+#: vms-alpha.c:6598 vms-alpha.c:7022 vms-alpha.c:7148
 #, c-format
 msgid "*unhandled*\n"
 msgstr ""
 
 #, c-format
 msgid "*unhandled*\n"
 msgstr ""
 
-#: vms-alpha.c:6574 vms-alpha.c:6613
+#: vms-alpha.c:6628 vms-alpha.c:6667
 #, c-format
 msgid "cannot read GST record length\n"
 msgstr ""
 
 #. Ill-formed.
 #, c-format
 msgid "cannot read GST record length\n"
 msgstr ""
 
 #. Ill-formed.
-#: vms-alpha.c:6595
+#: vms-alpha.c:6649
 #, c-format
 msgid "cannot find EMH in first GST record\n"
 msgstr ""
 
 #, c-format
 msgid "cannot find EMH in first GST record\n"
 msgstr ""
 
-#: vms-alpha.c:6621
+#: vms-alpha.c:6675
 #, c-format
 msgid "cannot read GST record header\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read GST record header\n"
 msgstr ""
 
-#: vms-alpha.c:6634
+#: vms-alpha.c:6688
 #, c-format
 msgid " corrupted GST\n"
 msgstr ""
 
 #, c-format
 msgid " corrupted GST\n"
 msgstr ""
 
-#: vms-alpha.c:6642
+#: vms-alpha.c:6696
 #, c-format
 msgid "cannot read GST record\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read GST record\n"
 msgstr ""
 
-#: vms-alpha.c:6671
+#: vms-alpha.c:6725
 #, c-format
 msgid " unhandled EOBJ record type %u\n"
 msgstr ""
 
 #, c-format
 msgid " unhandled EOBJ record type %u\n"
 msgstr ""
 
-#: vms-alpha.c:6695
+#: vms-alpha.c:6749
 #, c-format
 msgid "  bitcount: %u, base addr: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "  bitcount: %u, base addr: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6709
+#: vms-alpha.c:6763
 #, c-format
 msgid "   bitmap: 0x%08x (count: %u):\n"
 msgstr ""
 
 #, c-format
 msgid "   bitmap: 0x%08x (count: %u):\n"
 msgstr ""
 
-#: vms-alpha.c:6716
+#: vms-alpha.c:6770
 #, c-format
 msgid " %08x"
 msgstr ""
 
 #, c-format
 msgid " %08x"
 msgstr ""
 
-#: vms-alpha.c:6742
+#: vms-alpha.c:6796
 #, c-format
 msgid "  image %u (%u entries)\n"
 msgstr ""
 
 #, c-format
 msgid "  image %u (%u entries)\n"
 msgstr ""
 
-#: vms-alpha.c:6748
+#: vms-alpha.c:6802
 #, c-format
 msgid "   offset: 0x%08x, val: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "   offset: 0x%08x, val: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6770
+#: vms-alpha.c:6824
 #, c-format
 msgid "  image %u (%u entries), offsets:\n"
 msgstr ""
 
 #, c-format
 msgid "  image %u (%u entries), offsets:\n"
 msgstr ""
 
-#: vms-alpha.c:6777
+#: vms-alpha.c:6831
 #, c-format
 msgid " 0x%08x"
 msgstr ""
 
 #. 64 bits.
 #, c-format
 msgid " 0x%08x"
 msgstr ""
 
 #. 64 bits.
-#: vms-alpha.c:6899
+#: vms-alpha.c:6953
 #, c-format
 msgid "64 bits *unhandled*\n"
 msgstr ""
 
 #, c-format
 msgid "64 bits *unhandled*\n"
 msgstr ""
 
-#: vms-alpha.c:6904
+#: vms-alpha.c:6958
 #, c-format
 msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6915
+#: vms-alpha.c:6969
 #, c-format
 msgid "non-contiguous array of %s\n"
 msgstr ""
 
 #, c-format
 msgid "non-contiguous array of %s\n"
 msgstr ""
 
-#: vms-alpha.c:6920
+#: vms-alpha.c:6974
 #, c-format
 msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
 msgstr ""
 
 #, c-format
 msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6925
+#: vms-alpha.c:6979
 #, c-format
 msgid "arsize: %u, a0: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "arsize: %u, a0: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6929
+#: vms-alpha.c:6983
 #, c-format
 msgid "Strides:\n"
 msgstr ""
 
 #, c-format
 msgid "Strides:\n"
 msgstr ""
 
-#: vms-alpha.c:6939
+#: vms-alpha.c:6993
 #, c-format
 msgid "Bounds:\n"
 msgstr ""
 
 #, c-format
 msgid "Bounds:\n"
 msgstr ""
 
-#: vms-alpha.c:6945
+#: vms-alpha.c:6999
 #, c-format
 msgid "[%u]: Lower: %u, upper: %u\n"
 msgstr ""
 
 #, c-format
 msgid "[%u]: Lower: %u, upper: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6957
+#: vms-alpha.c:7011
 #, c-format
 msgid "unaligned bit-string of %s\n"
 msgstr ""
 
 #, c-format
 msgid "unaligned bit-string of %s\n"
 msgstr ""
 
-#: vms-alpha.c:6962
+#: vms-alpha.c:7016
 #, c-format
 msgid "base: %u, pos: %u\n"
 msgstr ""
 
 #, c-format
 msgid "base: %u, pos: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6983
+#: vms-alpha.c:7037
 #, c-format
 msgid "vflags: 0x%02x, value: 0x%08x "
 msgstr ""
 
 #, c-format
 msgid "vflags: 0x%02x, value: 0x%08x "
 msgstr ""
 
-#: vms-alpha.c:6989
+#: vms-alpha.c:7043
 #, c-format
 msgid "(no value)\n"
 msgstr ""
 
 #, c-format
 msgid "(no value)\n"
 msgstr ""
 
-#: vms-alpha.c:6992
+#: vms-alpha.c:7046
 #, c-format
 msgid "(not active)\n"
 msgstr ""
 
 #, c-format
 msgid "(not active)\n"
 msgstr ""
 
-#: vms-alpha.c:6995
+#: vms-alpha.c:7049
 #, c-format
 msgid "(not allocated)\n"
 msgstr ""
 
 #, c-format
 msgid "(not allocated)\n"
 msgstr ""
 
-#: vms-alpha.c:6998
+#: vms-alpha.c:7052
 #, c-format
 msgid "(descriptor)\n"
 msgstr ""
 
 #, c-format
 msgid "(descriptor)\n"
 msgstr ""
 
-#: vms-alpha.c:7002
+#: vms-alpha.c:7056
 #, c-format
 msgid "(trailing value)\n"
 msgstr ""
 
 #, c-format
 msgid "(trailing value)\n"
 msgstr ""
 
-#: vms-alpha.c:7005
+#: vms-alpha.c:7059
 #, c-format
 msgid "(value spec follows)\n"
 msgstr ""
 
 #, c-format
 msgid "(value spec follows)\n"
 msgstr ""
 
-#: vms-alpha.c:7008
+#: vms-alpha.c:7062
 #, c-format
 msgid "(at bit offset %u)\n"
 msgstr ""
 
 #, c-format
 msgid "(at bit offset %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7012
+#: vms-alpha.c:7066
 #, c-format
 msgid "(reg: %u, disp: %u, indir: %u, kind: "
 msgstr ""
 
 #, c-format
 msgid "(reg: %u, disp: %u, indir: %u, kind: "
 msgstr ""
 
-#: vms-alpha.c:7019
+#: vms-alpha.c:7073
 msgid "literal"
 msgstr ""
 
 msgid "literal"
 msgstr ""
 
-#: vms-alpha.c:7022
+#: vms-alpha.c:7076
 msgid "address"
 msgstr ""
 
 msgid "address"
 msgstr ""
 
-#: vms-alpha.c:7025
+#: vms-alpha.c:7079
 msgid "desc"
 msgstr ""
 
 msgid "desc"
 msgstr ""
 
-#: vms-alpha.c:7028
+#: vms-alpha.c:7082
 msgid "reg"
 msgstr ""
 
 msgid "reg"
 msgstr ""
 
-#: vms-alpha.c:7045
+#: vms-alpha.c:7099
 #, c-format
 msgid "len: %2u, kind: %2u "
 msgstr ""
 
 #, c-format
 msgid "len: %2u, kind: %2u "
 msgstr ""
 
-#: vms-alpha.c:7051
+#: vms-alpha.c:7105
 #, c-format
 msgid "atomic, type=0x%02x %s\n"
 msgstr ""
 
 #, c-format
 msgid "atomic, type=0x%02x %s\n"
 msgstr ""
 
-#: vms-alpha.c:7055
+#: vms-alpha.c:7109
 #, c-format
 msgid "indirect, defined at 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "indirect, defined at 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7059
+#: vms-alpha.c:7113
 #, c-format
 msgid "typed pointer\n"
 msgstr ""
 
 #, c-format
 msgid "typed pointer\n"
 msgstr ""
 
-#: vms-alpha.c:7063
+#: vms-alpha.c:7117
 #, c-format
 msgid "pointer\n"
 msgstr ""
 
 #, c-format
 msgid "pointer\n"
 msgstr ""
 
-#: vms-alpha.c:7071
+#: vms-alpha.c:7125
 #, c-format
 msgid "array, dim: %u, bitmap: "
 msgstr ""
 
 #, c-format
 msgid "array, dim: %u, bitmap: "
 msgstr ""
 
-#: vms-alpha.c:7078
+#: vms-alpha.c:7132
 #, c-format
 msgid "array descriptor:\n"
 msgstr ""
 
 #, c-format
 msgid "array descriptor:\n"
 msgstr ""
 
-#: vms-alpha.c:7085
+#: vms-alpha.c:7139
 #, c-format
 msgid "type spec for element:\n"
 msgstr ""
 
 #, c-format
 msgid "type spec for element:\n"
 msgstr ""
 
-#: vms-alpha.c:7087
+#: vms-alpha.c:7141
 #, c-format
 msgid "type spec for subscript %u:\n"
 msgstr ""
 
 #, c-format
 msgid "type spec for subscript %u:\n"
 msgstr ""
 
-#: vms-alpha.c:7105
+#: vms-alpha.c:7159
 #, c-format
 msgid "Debug symbol table:\n"
 msgstr ""
 
 #, c-format
 msgid "Debug symbol table:\n"
 msgstr ""
 
-#: vms-alpha.c:7116
+#: vms-alpha.c:7170
 #, c-format
 msgid "cannot read DST header\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read DST header\n"
 msgstr ""
 
-#: vms-alpha.c:7122
+#: vms-alpha.c:7176
 #, c-format
 msgid " type: %3u, len: %3u (at 0x%08x): "
 msgstr ""
 
 #, c-format
 msgid " type: %3u, len: %3u (at 0x%08x): "
 msgstr ""
 
-#: vms-alpha.c:7136
+#: vms-alpha.c:7190
 #, c-format
 msgid "cannot read DST symbol\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read DST symbol\n"
 msgstr ""
 
-#: vms-alpha.c:7179
+#: vms-alpha.c:7233
 #, c-format
 msgid "standard data: %s\n"
 msgstr ""
 
 #, c-format
 msgid "standard data: %s\n"
 msgstr ""
 
-#: vms-alpha.c:7182 vms-alpha.c:7270
+#: vms-alpha.c:7236 vms-alpha.c:7324
 #, c-format
 msgid "    name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "    name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7189
+#: vms-alpha.c:7243
 #, c-format
 msgid "modbeg\n"
 msgstr ""
 
 #, c-format
 msgid "modbeg\n"
 msgstr ""
 
-#: vms-alpha.c:7191
+#: vms-alpha.c:7245
 #, c-format
 msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7197 vms-alpha.c:7471
+#: vms-alpha.c:7251 vms-alpha.c:7525
 #, c-format
 msgid "   module name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   module name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7200
+#: vms-alpha.c:7254
 #, c-format
 msgid "   compiler   : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   compiler   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7205
+#: vms-alpha.c:7259
 #, c-format
 msgid "modend\n"
 msgstr ""
 
 #, c-format
 msgid "modend\n"
 msgstr ""
 
-#: vms-alpha.c:7212
+#: vms-alpha.c:7266
 msgid "rtnbeg\n"
 msgstr ""
 
 msgid "rtnbeg\n"
 msgstr ""
 
-#: vms-alpha.c:7214
+#: vms-alpha.c:7268
 #, c-format
 msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7219
+#: vms-alpha.c:7273
 #, c-format
 msgid "    routine name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "    routine name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7227
+#: vms-alpha.c:7281
 #, c-format
 msgid "rtnend: size 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "rtnend: size 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7235
+#: vms-alpha.c:7289
 #, c-format
 msgid "prolog: bkpt address 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "prolog: bkpt address 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7244
+#: vms-alpha.c:7298
 #, c-format
 msgid "epilog: flags: %u, count: %u\n"
 msgstr ""
 
 #, c-format
 msgid "epilog: flags: %u, count: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7254
+#: vms-alpha.c:7308
 #, c-format
 msgid "blkbeg: address: 0x%08x, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "blkbeg: address: 0x%08x, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7263
+#: vms-alpha.c:7317
 #, c-format
 msgid "blkend: size: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "blkend: size: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7269
+#: vms-alpha.c:7323
 #, c-format
 msgid "typspec (len: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "typspec (len: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7276
+#: vms-alpha.c:7330
 #, c-format
 msgid "septyp, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "septyp, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7285
+#: vms-alpha.c:7339
 #, c-format
 msgid "recbeg: name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "recbeg: name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7287
+#: vms-alpha.c:7341
 #, c-format
 msgid "    len: %u bits\n"
 msgstr ""
 
 #, c-format
 msgid "    len: %u bits\n"
 msgstr ""
 
-#: vms-alpha.c:7292
+#: vms-alpha.c:7346
 #, c-format
 msgid "recend\n"
 msgstr ""
 
 #, c-format
 msgid "recend\n"
 msgstr ""
 
-#: vms-alpha.c:7296
+#: vms-alpha.c:7350
 #, c-format
 msgid "enumbeg, len: %u, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "enumbeg, len: %u, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7300
+#: vms-alpha.c:7354
 #, c-format
 msgid "enumelt, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "enumelt, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7304
+#: vms-alpha.c:7358
 #, c-format
 msgid "enumend\n"
 msgstr ""
 
 #, c-format
 msgid "enumend\n"
 msgstr ""
 
-#: vms-alpha.c:7309
+#: vms-alpha.c:7363
 #, c-format
 msgid "label, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "label, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7311
+#: vms-alpha.c:7365
 #, c-format
 msgid "    address: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "    address: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7321
+#: vms-alpha.c:7375
 #, c-format
 msgid "discontiguous range (nbr: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "discontiguous range (nbr: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7324
+#: vms-alpha.c:7378
 #, c-format
 msgid "    address: 0x%08x, size: %u\n"
 msgstr ""
 
 #, c-format
 msgid "    address: 0x%08x, size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7334
+#: vms-alpha.c:7388
 #, c-format
 msgid "line num  (len: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "line num  (len: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7351
+#: vms-alpha.c:7405
 #, c-format
 msgid "delta_pc_w %u\n"
 msgstr ""
 
 #, c-format
 msgid "delta_pc_w %u\n"
 msgstr ""
 
-#: vms-alpha.c:7358
+#: vms-alpha.c:7412
 #, c-format
 msgid "incr_linum(b): +%u\n"
 msgstr ""
 
 #, c-format
 msgid "incr_linum(b): +%u\n"
 msgstr ""
 
-#: vms-alpha.c:7364
+#: vms-alpha.c:7418
 #, c-format
 msgid "incr_linum_w: +%u\n"
 msgstr ""
 
 #, c-format
 msgid "incr_linum_w: +%u\n"
 msgstr ""
 
-#: vms-alpha.c:7370
+#: vms-alpha.c:7424
 #, c-format
 msgid "incr_linum_l: +%u\n"
 msgstr ""
 
 #, c-format
 msgid "incr_linum_l: +%u\n"
 msgstr ""
 
-#: vms-alpha.c:7376
+#: vms-alpha.c:7430
 #, c-format
 msgid "set_line_num(w) %u\n"
 msgstr ""
 
 #, c-format
 msgid "set_line_num(w) %u\n"
 msgstr ""
 
-#: vms-alpha.c:7381
+#: vms-alpha.c:7435
 #, c-format
 msgid "set_line_num_b %u\n"
 msgstr ""
 
 #, c-format
 msgid "set_line_num_b %u\n"
 msgstr ""
 
-#: vms-alpha.c:7386
+#: vms-alpha.c:7440
 #, c-format
 msgid "set_line_num_l %u\n"
 msgstr ""
 
 #, c-format
 msgid "set_line_num_l %u\n"
 msgstr ""
 
-#: vms-alpha.c:7391
+#: vms-alpha.c:7445
 #, c-format
 msgid "set_abs_pc: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "set_abs_pc: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7395
+#: vms-alpha.c:7449
 #, c-format
 msgid "delta_pc_l: +0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "delta_pc_l: +0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7400
+#: vms-alpha.c:7454
 #, c-format
 msgid "term(b): 0x%02x"
 msgstr ""
 
 #, c-format
 msgid "term(b): 0x%02x"
 msgstr ""
 
-#: vms-alpha.c:7402
+#: vms-alpha.c:7456
 #, c-format
 msgid "        pc: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "        pc: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7407
+#: vms-alpha.c:7461
 #, c-format
 msgid "term_w: 0x%04x"
 msgstr ""
 
 #, c-format
 msgid "term_w: 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:7409
+#: vms-alpha.c:7463
 #, c-format
 msgid "    pc: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "    pc: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7415
+#: vms-alpha.c:7469
 #, c-format
 msgid "delta pc +%-4d"
 msgstr ""
 
 #, c-format
 msgid "delta pc +%-4d"
 msgstr ""
 
-#: vms-alpha.c:7419
+#: vms-alpha.c:7473
 #, c-format
 msgid "    pc: 0x%08x line: %5u\n"
 msgstr ""
 
 #, c-format
 msgid "    pc: 0x%08x line: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7424
+#: vms-alpha.c:7478
 #, c-format
 msgid "    *unhandled* cmd %u\n"
 msgstr ""
 
 #, c-format
 msgid "    *unhandled* cmd %u\n"
 msgstr ""
 
-#: vms-alpha.c:7439
+#: vms-alpha.c:7493
 #, c-format
 msgid "source (len: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "source (len: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7454
+#: vms-alpha.c:7508
 #, c-format
 msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7459
+#: vms-alpha.c:7513
 #, c-format
 msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 msgstr ""
 
 #, c-format
 msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7468
+#: vms-alpha.c:7522
 #, c-format
 msgid "   filename   : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "   filename   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7477
+#: vms-alpha.c:7531
 #, c-format
 msgid "   setfile %u\n"
 msgstr ""
 
 #, c-format
 msgid "   setfile %u\n"
 msgstr ""
 
-#: vms-alpha.c:7482 vms-alpha.c:7487
+#: vms-alpha.c:7536 vms-alpha.c:7541
 #, c-format
 msgid "   setrec %u\n"
 msgstr ""
 
 #, c-format
 msgid "   setrec %u\n"
 msgstr ""
 
-#: vms-alpha.c:7492 vms-alpha.c:7497
+#: vms-alpha.c:7546 vms-alpha.c:7551
 #, c-format
 msgid "   setlnum %u\n"
 msgstr ""
 
 #, c-format
 msgid "   setlnum %u\n"
 msgstr ""
 
-#: vms-alpha.c:7502 vms-alpha.c:7507
+#: vms-alpha.c:7556 vms-alpha.c:7561
 #, c-format
 msgid "   deflines %u\n"
 msgstr ""
 
 #, c-format
 msgid "   deflines %u\n"
 msgstr ""
 
-#: vms-alpha.c:7511
+#: vms-alpha.c:7565
 #, c-format
 msgid "   formfeed\n"
 msgstr ""
 
 #, c-format
 msgid "   formfeed\n"
 msgstr ""
 
-#: vms-alpha.c:7515
+#: vms-alpha.c:7569
 #, c-format
 msgid "   *unhandled* cmd %u\n"
 msgstr ""
 
 #, c-format
 msgid "   *unhandled* cmd %u\n"
 msgstr ""
 
-#: vms-alpha.c:7527
+#: vms-alpha.c:7581
 #, c-format
 msgid "*unhandled* dst type %u\n"
 msgstr ""
 
 #, c-format
 msgid "*unhandled* dst type %u\n"
 msgstr ""
 
-#: vms-alpha.c:7559
+#: vms-alpha.c:7613
 #, c-format
 msgid "cannot read EIHD\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EIHD\n"
 msgstr ""
 
-#: vms-alpha.c:7563
+#: vms-alpha.c:7617
 #, c-format
 msgid "EIHD: (size: %u, nbr blocks: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "EIHD: (size: %u, nbr blocks: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7567
+#: vms-alpha.c:7621
 #, c-format
 msgid " majorid: %u, minorid: %u\n"
 msgstr ""
 
 #, c-format
 msgid " majorid: %u, minorid: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7575
+#: vms-alpha.c:7629
 msgid "executable"
 msgstr ""
 
 msgid "executable"
 msgstr ""
 
-#: vms-alpha.c:7578
+#: vms-alpha.c:7632
 msgid "linkable image"
 msgstr ""
 
 msgid "linkable image"
 msgstr ""
 
-#: vms-alpha.c:7585
+#: vms-alpha.c:7639
 #, c-format
 msgid " image type: %u (%s)"
 msgstr ""
 
 #, c-format
 msgid " image type: %u (%s)"
 msgstr ""
 
-#: vms-alpha.c:7591
+#: vms-alpha.c:7645
 msgid "native"
 msgstr ""
 
 msgid "native"
 msgstr ""
 
-#: vms-alpha.c:7594
+#: vms-alpha.c:7648
 msgid "CLI"
 msgstr ""
 
 msgid "CLI"
 msgstr ""
 
-#: vms-alpha.c:7601
+#: vms-alpha.c:7655
 #, c-format
 msgid ", subtype: %u (%s)\n"
 msgstr ""
 
 #, c-format
 msgid ", subtype: %u (%s)\n"
 msgstr ""
 
-#: vms-alpha.c:7608
+#: vms-alpha.c:7662
 #, c-format
 msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 msgstr ""
 
 #, c-format
 msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7612
+#: vms-alpha.c:7666
 #, c-format
 msgid " fixup info rva: "
 msgstr ""
 
 #, c-format
 msgid " fixup info rva: "
 msgstr ""
 
-#: vms-alpha.c:7614
+#: vms-alpha.c:7668
 #, c-format
 msgid ", symbol vector rva: "
 msgstr ""
 
 #, c-format
 msgid ", symbol vector rva: "
 msgstr ""
 
-#: vms-alpha.c:7617
+#: vms-alpha.c:7671
 #, c-format
 msgid ""
 "\n"
 " version array off: %u\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 " version array off: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7622
+#: vms-alpha.c:7676
 #, c-format
 msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7628
+#: vms-alpha.c:7682
 #, c-format
 msgid " linker flags: %08x:"
 msgstr ""
 
 #, c-format
 msgid " linker flags: %08x:"
 msgstr ""
 
-#: vms-alpha.c:7659
+#: vms-alpha.c:7713
 #, c-format
 msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 msgstr ""
 
 #, c-format
 msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7665
+#: vms-alpha.c:7719
 #, c-format
 msgid " BPAGE: %u"
 msgstr ""
 
 #, c-format
 msgid " BPAGE: %u"
 msgstr ""
 
-#: vms-alpha.c:7672
+#: vms-alpha.c:7726
 #, c-format
 msgid ", ext fixup offset: %u, no_opt psect off: %u"
 msgstr ""
 
 #, c-format
 msgid ", ext fixup offset: %u, no_opt psect off: %u"
 msgstr ""
 
-#: vms-alpha.c:7675
+#: vms-alpha.c:7729
 #, c-format
 msgid ", alias: %u\n"
 msgstr ""
 
 #, c-format
 msgid ", alias: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7683
+#: vms-alpha.c:7737
 #, c-format
 msgid "system version array information:\n"
 msgstr ""
 
 #, c-format
 msgid "system version array information:\n"
 msgstr ""
 
-#: vms-alpha.c:7687
+#: vms-alpha.c:7741
 #, c-format
 msgid "cannot read EIHVN header\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EIHVN header\n"
 msgstr ""
 
-#: vms-alpha.c:7697
+#: vms-alpha.c:7751
 #, c-format
 msgid "cannot read EIHVN version\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EIHVN version\n"
 msgstr ""
 
-#: vms-alpha.c:7700
+#: vms-alpha.c:7754
 #, c-format
 msgid "   %02u "
 msgstr ""
 
 #, c-format
 msgid "   %02u "
 msgstr ""
 
-#: vms-alpha.c:7704
+#: vms-alpha.c:7758
 msgid "BASE_IMAGE       "
 msgstr ""
 
 msgid "BASE_IMAGE       "
 msgstr ""
 
-#: vms-alpha.c:7707
+#: vms-alpha.c:7761
 msgid "MEMORY_MANAGEMENT"
 msgstr ""
 
 msgid "MEMORY_MANAGEMENT"
 msgstr ""
 
-#: vms-alpha.c:7710
+#: vms-alpha.c:7764
 msgid "IO               "
 msgstr ""
 
 msgid "IO               "
 msgstr ""
 
-#: vms-alpha.c:7713
+#: vms-alpha.c:7767
 msgid "FILES_VOLUMES    "
 msgstr ""
 
 msgid "FILES_VOLUMES    "
 msgstr ""
 
-#: vms-alpha.c:7716
+#: vms-alpha.c:7770
 msgid "PROCESS_SCHED    "
 msgstr ""
 
 msgid "PROCESS_SCHED    "
 msgstr ""
 
-#: vms-alpha.c:7719
+#: vms-alpha.c:7773
 msgid "SYSGEN           "
 msgstr ""
 
 msgid "SYSGEN           "
 msgstr ""
 
-#: vms-alpha.c:7722
+#: vms-alpha.c:7776
 msgid "CLUSTERS_LOCKMGR "
 msgstr ""
 
 msgid "CLUSTERS_LOCKMGR "
 msgstr ""
 
-#: vms-alpha.c:7725
+#: vms-alpha.c:7779
 msgid "LOGICAL_NAMES    "
 msgstr ""
 
 msgid "LOGICAL_NAMES    "
 msgstr ""
 
-#: vms-alpha.c:7728
+#: vms-alpha.c:7782
 msgid "SECURITY         "
 msgstr ""
 
 msgid "SECURITY         "
 msgstr ""
 
-#: vms-alpha.c:7731
+#: vms-alpha.c:7785
 msgid "IMAGE_ACTIVATOR  "
 msgstr ""
 
 msgid "IMAGE_ACTIVATOR  "
 msgstr ""
 
-#: vms-alpha.c:7734
+#: vms-alpha.c:7788
 msgid "NETWORKS         "
 msgstr ""
 
 msgid "NETWORKS         "
 msgstr ""
 
-#: vms-alpha.c:7737
+#: vms-alpha.c:7791
 msgid "COUNTERS         "
 msgstr ""
 
 msgid "COUNTERS         "
 msgstr ""
 
-#: vms-alpha.c:7740
+#: vms-alpha.c:7794
 msgid "STABLE           "
 msgstr ""
 
 msgid "STABLE           "
 msgstr ""
 
-#: vms-alpha.c:7743
+#: vms-alpha.c:7797
 msgid "MISC             "
 msgstr ""
 
 msgid "MISC             "
 msgstr ""
 
-#: vms-alpha.c:7746
+#: vms-alpha.c:7800
 msgid "CPU              "
 msgstr ""
 
 msgid "CPU              "
 msgstr ""
 
-#: vms-alpha.c:7749
+#: vms-alpha.c:7803
 msgid "VOLATILE         "
 msgstr ""
 
 msgid "VOLATILE         "
 msgstr ""
 
-#: vms-alpha.c:7752
+#: vms-alpha.c:7806
 msgid "SHELL            "
 msgstr ""
 
 msgid "SHELL            "
 msgstr ""
 
-#: vms-alpha.c:7755
+#: vms-alpha.c:7809
 msgid "POSIX            "
 msgstr ""
 
 msgid "POSIX            "
 msgstr ""
 
-#: vms-alpha.c:7758
+#: vms-alpha.c:7812
 msgid "MULTI_PROCESSING "
 msgstr ""
 
 msgid "MULTI_PROCESSING "
 msgstr ""
 
-#: vms-alpha.c:7761
+#: vms-alpha.c:7815
 msgid "GALAXY           "
 msgstr ""
 
 msgid "GALAXY           "
 msgstr ""
 
-#: vms-alpha.c:7764
+#: vms-alpha.c:7818
 msgid "*unknown*        "
 msgstr ""
 
 msgid "*unknown*        "
 msgstr ""
 
-#: vms-alpha.c:7780 vms-alpha.c:8055
+#: vms-alpha.c:7834 vms-alpha.c:8108
 #, c-format
 msgid "cannot read EIHA\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EIHA\n"
 msgstr ""
 
-#: vms-alpha.c:7783
+#: vms-alpha.c:7837
 #, c-format
 msgid "Image activation:  (size=%u)\n"
 msgstr ""
 
 #, c-format
 msgid "Image activation:  (size=%u)\n"
 msgstr ""
 
-#: vms-alpha.c:7786
+#: vms-alpha.c:7840
 #, c-format
 msgid " First address : 0x%08x 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " First address : 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7790
+#: vms-alpha.c:7844
 #, c-format
 msgid " Second address: 0x%08x 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " Second address: 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7794
+#: vms-alpha.c:7848
 #, c-format
 msgid " Third address : 0x%08x 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " Third address : 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7798
+#: vms-alpha.c:7852
 #, c-format
 msgid " Fourth address: 0x%08x 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " Fourth address: 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7802
+#: vms-alpha.c:7856
 #, c-format
 msgid " Shared image  : 0x%08x 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " Shared image  : 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7813
+#: vms-alpha.c:7867
 #, c-format
 msgid "cannot read EIHI\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EIHI\n"
 msgstr ""
 
-#: vms-alpha.c:7817
+#: vms-alpha.c:7871
 #, c-format
 msgid "Image identification: (major: %u, minor: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "Image identification: (major: %u, minor: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7820
+#: vms-alpha.c:7874
 #, c-format
 msgid " image name       : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid " image name       : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7822
+#: vms-alpha.c:7876
 #, c-format
 msgid " link time        : %s\n"
 msgstr ""
 
 #, c-format
 msgid " link time        : %s\n"
 msgstr ""
 
-#: vms-alpha.c:7824
+#: vms-alpha.c:7878
 #, c-format
 msgid " image ident      : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid " image ident      : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7826
+#: vms-alpha.c:7880
 #, c-format
 msgid " linker ident     : %.*s\n"
 msgstr ""
 
 #, c-format
 msgid " linker ident     : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7828
+#: vms-alpha.c:7882
 #, c-format
 msgid " image build ident: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid " image build ident: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7838
+#: vms-alpha.c:7892
 #, c-format
 msgid "cannot read EIHS\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EIHS\n"
 msgstr ""
 
-#: vms-alpha.c:7842
+#: vms-alpha.c:7896
 #, c-format
 msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7848
+#: vms-alpha.c:7902
 #, c-format
 msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
 msgstr ""
 
 #, c-format
 msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
 msgstr ""
 
-#: vms-alpha.c:7853
+#: vms-alpha.c:7907
 #, c-format
 msgid " global symbol table: vbn: %u, records: %u\n"
 msgstr ""
 
 #, c-format
 msgid " global symbol table: vbn: %u, records: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7858
+#: vms-alpha.c:7912
 #, c-format
 msgid " debug module table : vbn: %u, size: %u\n"
 msgstr ""
 
 #, c-format
 msgid " debug module table : vbn: %u, size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7871
+#: vms-alpha.c:7925
 #, c-format
 msgid "cannot read EISD\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read EISD\n"
 msgstr ""
 
-#: vms-alpha.c:7882
+#: vms-alpha.c:7936
 #, c-format
 msgid ""
 "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7890
+#: vms-alpha.c:7944
 #, c-format
 msgid " section: base: 0x%08x%08x size: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid " section: base: 0x%08x%08x size: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7895
+#: vms-alpha.c:7949
 #, c-format
 msgid " flags: 0x%04x"
 msgstr ""
 
 #, c-format
 msgid " flags: 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:7933
+#: vms-alpha.c:7987
 #, c-format
 msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
 msgstr ""
 
 #, c-format
 msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
 msgstr ""
 
-#: vms-alpha.c:7939
+#: vms-alpha.c:7993
 msgid "NORMAL"
 msgstr ""
 
 msgid "NORMAL"
 msgstr ""
 
-#: vms-alpha.c:7942
+#: vms-alpha.c:7996
 msgid "SHRFXD"
 msgstr ""
 
 msgid "SHRFXD"
 msgstr ""
 
-#: vms-alpha.c:7945
+#: vms-alpha.c:7999
 msgid "PRVFXD"
 msgstr ""
 
 msgid "PRVFXD"
 msgstr ""
 
-#: vms-alpha.c:7948
+#: vms-alpha.c:8002
 msgid "SHRPIC"
 msgstr ""
 
 msgid "SHRPIC"
 msgstr ""
 
-#: vms-alpha.c:7951
+#: vms-alpha.c:8005
 msgid "PRVPIC"
 msgstr ""
 
 msgid "PRVPIC"
 msgstr ""
 
-#: vms-alpha.c:7954
+#: vms-alpha.c:8008
 msgid "USRSTACK"
 msgstr ""
 
 msgid "USRSTACK"
 msgstr ""
 
-#: vms-alpha.c:7960
+#: vms-alpha.c:8014
 msgid ")\n"
 msgstr ""
 
 msgid ")\n"
 msgstr ""
 
-#: vms-alpha.c:7963
+#: vms-alpha.c:8017
 #, c-format
 msgid " ident: 0x%08x, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid " ident: 0x%08x, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7973
+#: vms-alpha.c:8027
 #, c-format
 msgid "cannot read DMT\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read DMT\n"
 msgstr ""
 
-#: vms-alpha.c:7977
+#: vms-alpha.c:8031
 #, c-format
 msgid "Debug module table:\n"
 msgstr ""
 
 #, c-format
 msgid "Debug module table:\n"
 msgstr ""
 
-#: vms-alpha.c:7986
+#: vms-alpha.c:8040
 #, c-format
 msgid "cannot read DMT header\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read DMT header\n"
 msgstr ""
 
-#: vms-alpha.c:7992
+#: vms-alpha.c:8046
 #, c-format
 msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
 msgstr ""
 
 #, c-format
 msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
 msgstr ""
 
-#: vms-alpha.c:8002
+#: vms-alpha.c:8056
 #, c-format
 msgid "cannot read DMT psect\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read DMT psect\n"
 msgstr ""
 
-#: vms-alpha.c:8006
+#: vms-alpha.c:8060
 #, c-format
 msgid "  psect start: 0x%08x, length: %u\n"
 msgstr ""
 
 #, c-format
 msgid "  psect start: 0x%08x, length: %u\n"
 msgstr ""
 
-#: vms-alpha.c:8019
+#: vms-alpha.c:8073
 #, c-format
 msgid "cannot read DST\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read DST\n"
 msgstr ""
 
-#: vms-alpha.c:8029
+#: vms-alpha.c:8083
 #, c-format
 msgid "cannot read GST\n"
 msgstr ""
 
 #, c-format
 msgid "cannot read GST\n"
 msgstr ""
 
-#: vms-alpha.c:8033
+#: vms-alpha.c:8087
 #, c-format
 msgid "Global symbol table:\n"
 msgstr ""
 
 #, c-format
 msgid "Global symbol table:\n"
 msgstr ""
 
-#: vms-alpha.c:8062
+#: vms-alpha.c:8114
 #, c-format
 msgid "Image activator fixup: (major: %u, minor: %u)\n"
 msgstr ""
 
 #, c-format
 msgid "Image activator fixup: (major: %u, minor: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:8066
+#: vms-alpha.c:8118
 #, c-format
 msgid "  iaflink : 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "  iaflink : 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:8070
+#: vms-alpha.c:8122
 #, c-format
 msgid "  fixuplnk: 0x%08x %08x\n"
 msgstr ""
 
 #, c-format
 msgid "  fixuplnk: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:8073
+#: vms-alpha.c:8125
 #, c-format
 msgid "  size : %u\n"
 msgstr ""
 
 #, c-format
 msgid "  size : %u\n"
 msgstr ""
 
-#: vms-alpha.c:8075
+#: vms-alpha.c:8127
 #, c-format
 msgid "  flags: 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "  flags: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:8080
+#: vms-alpha.c:8132
 #, c-format
 msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8085
+#: vms-alpha.c:8137
 #, c-format
 msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8090
+#: vms-alpha.c:8142
 #, c-format
 msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8093
+#: vms-alpha.c:8145
 #, c-format
 msgid "  chgprtoff : %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  chgprtoff : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8097
+#: vms-alpha.c:8149
 #, c-format
 msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8100
+#: vms-alpha.c:8152
 #, c-format
 msgid "  shlextra  : %5u, permctx   : %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  shlextra  : %5u, permctx   : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8103
+#: vms-alpha.c:8155
 #, c-format
 msgid "  base_va : 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "  base_va : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:8105
+#: vms-alpha.c:8157
 #, c-format
 msgid "  lppsbfixoff: %5u\n"
 msgstr ""
 
 #, c-format
 msgid "  lppsbfixoff: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:8113
+#: vms-alpha.c:8165
 #, c-format
 msgid " Shareable images:\n"
 msgstr ""
 
 #, c-format
 msgid " Shareable images:\n"
 msgstr ""
 
-#: vms-alpha.c:8118
+#: vms-alpha.c:8170
 #, c-format
 msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:8125
+#: vms-alpha.c:8177
 #, c-format
 msgid " quad-word relocation fixups:\n"
 msgstr ""
 
 #, c-format
 msgid " quad-word relocation fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:8130
+#: vms-alpha.c:8182
 #, c-format
 msgid " long-word relocation fixups:\n"
 msgstr ""
 
 #, c-format
 msgid " long-word relocation fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:8135
+#: vms-alpha.c:8187
 #, c-format
 msgid " quad-word .address reference fixups:\n"
 msgstr ""
 
 #, c-format
 msgid " quad-word .address reference fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:8140
+#: vms-alpha.c:8192
 #, c-format
 msgid " long-word .address reference fixups:\n"
 msgstr ""
 
 #, c-format
 msgid " long-word .address reference fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:8145
+#: vms-alpha.c:8197
 #, c-format
 msgid " Code Address Reference Fixups:\n"
 msgstr ""
 
 #, c-format
 msgid " Code Address Reference Fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:8150
+#: vms-alpha.c:8202
 #, c-format
 msgid " Linkage Pairs Reference Fixups:\n"
 msgstr ""
 
 #, c-format
 msgid " Linkage Pairs Reference Fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:8159
+#: vms-alpha.c:8211
 #, c-format
 msgid " Change Protection (%u entries):\n"
 msgstr ""
 
 #, c-format
 msgid " Change Protection (%u entries):\n"
 msgstr ""
 
-#: vms-alpha.c:8165
+#: vms-alpha.c:8217
 #, c-format
 msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
 msgstr ""
 
 #. FIXME: we do not yet support relocatable link.  It is not obvious
 #. how to do it for debug infos.
 #, c-format
 msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
 msgstr ""
 
 #. FIXME: we do not yet support relocatable link.  It is not obvious
 #. how to do it for debug infos.
-#: vms-alpha.c:9027
+#: vms-alpha.c:9094
 msgid "%P: relocatable link is not supported\n"
 msgstr ""
 
 msgid "%P: relocatable link is not supported\n"
 msgstr ""
 
-#: vms-alpha.c:9098
+#: vms-alpha.c:9165
 #, c-format
 msgid "%P: multiple entry points: in modules %pB and %pB\n"
 msgstr ""
 
 #, c-format
 msgid "%P: multiple entry points: in modules %pB and %pB\n"
 msgstr ""
 
-#: vms-lib.c:1453
+#: vms-lib.c:1525
 #, c-format
 msgid "could not open shared image '%s' from '%s'"
 msgstr ""
 #, c-format
 msgid "could not open shared image '%s' from '%s'"
 msgstr ""
@@ -8141,449 +8351,446 @@ msgstr ""
 msgid "%pB: dynamic object with no .loader section"
 msgstr ""
 
 msgid "%pB: dynamic object with no .loader section"
 msgstr ""
 
-#: xcofflink.c:1414
+#: xcofflink.c:1418
 #, c-format
 msgid "%pB: `%s' has line numbers but no enclosing section"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%s' has line numbers but no enclosing section"
 msgstr ""
 
-#: xcofflink.c:1467
+#: xcofflink.c:1471
 #, c-format
 msgid "%pB: class %d symbol `%s' has no aux entries"
 msgstr ""
 
 #, c-format
 msgid "%pB: class %d symbol `%s' has no aux entries"
 msgstr ""
 
-#: xcofflink.c:1490
+#: xcofflink.c:1494
 #, c-format
 msgid "%pB: symbol `%s' has unrecognized csect type %d"
 msgstr ""
 
 #, c-format
 msgid "%pB: symbol `%s' has unrecognized csect type %d"
 msgstr ""
 
-#: xcofflink.c:1503
+#: xcofflink.c:1507
 #, c-format
 msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
 msgstr ""
 
-#: xcofflink.c:1534
+#: xcofflink.c:1538
 #, c-format
 msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRId64>"
 msgstr ""
 
 #, c-format
 msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRId64>"
 msgstr ""
 
-#: xcofflink.c:1681
+#: xcofflink.c:1685
 #, c-format
 msgid "%pB: csect `%s' not in enclosing section"
 msgstr ""
 
 #, c-format
 msgid "%pB: csect `%s' not in enclosing section"
 msgstr ""
 
-#: xcofflink.c:1789
+#: xcofflink.c:1793
 #, c-format
 msgid "%pB: misplaced XTY_LD `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: misplaced XTY_LD `%s'"
 msgstr ""
 
-#: xcofflink.c:2110
+#: xcofflink.c:2114
 #, c-format
 msgid "%pB: reloc %s:%<PRId64> not in csect"
 msgstr ""
 
 #, c-format
 msgid "%pB: reloc %s:%<PRId64> not in csect"
 msgstr ""
 
-#: xcofflink.c:3197
+#: xcofflink.c:3201
 #, c-format
 msgid "%s: no such symbol"
 msgstr ""
 
 #, c-format
 msgid "%s: no such symbol"
 msgstr ""
 
-#: xcofflink.c:3302
+#: xcofflink.c:3306
 #, c-format
 msgid "warning: attempt to export undefined symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "warning: attempt to export undefined symbol `%s'"
 msgstr ""
 
-#: xcofflink.c:3681
+#: xcofflink.c:3685
 msgid "error: undefined symbol __rtinit"
 msgstr ""
 
 msgid "error: undefined symbol __rtinit"
 msgstr ""
 
-#: xcofflink.c:4061
+#: xcofflink.c:4065
 #, c-format
 msgid "%pB: loader reloc in unrecognized section `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: loader reloc in unrecognized section `%s'"
 msgstr ""
 
-#: xcofflink.c:4073
+#: xcofflink.c:4077
 #, c-format
 msgid "%pB: `%s' in loader reloc but not loader sym"
 msgstr ""
 
 #, c-format
 msgid "%pB: `%s' in loader reloc but not loader sym"
 msgstr ""
 
-#: xcofflink.c:4090
+#: xcofflink.c:4094
 #, c-format
 msgid "%pB: loader reloc in read-only section %pA"
 msgstr ""
 
 #, c-format
 msgid "%pB: loader reloc in read-only section %pA"
 msgstr ""
 
-#: xcofflink.c:5114
+#: xcofflink.c:5122
 #, c-format
 msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
 msgstr ""
 
 #. Not fatal, this callback cannot fail.
 #, c-format
 msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
 msgstr ""
 
 #. Not fatal, this callback cannot fail.
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2918
+#: elfnn-aarch64.c:2918
 #, c-format
 msgid "unknown attribute for symbol `%s': 0x%02x"
 msgstr ""
 
 #, c-format
 msgid "unknown attribute for symbol `%s': 0x%02x"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5237
+#: elfnn-aarch64.c:5292
 #, c-format
 msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5329
+#: elfnn-aarch64.c:5384
 #, c-format
 msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
 msgstr ""
 
 #, c-format
 msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5342
+#: elfnn-aarch64.c:5397
 msgid "%pB: error: erratum 843419 immediate 0x%"
 msgstr ""
 
 msgid "%pB: error: erratum 843419 immediate 0x%"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5876
+#: elfnn-aarch64.c:5945
 #, c-format
 msgid ""
 "%pB: relocation %s against symbol `%s' which may bind externally can not be "
 "used when making a shared object; recompile with -fPIC"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation %s against symbol `%s' which may bind externally can not be "
 "used when making a shared object; recompile with -fPIC"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5969
+#: elfnn-aarch64.c:6036
 #, c-format
 msgid ""
 "%pB: local symbol descriptor table be NULL when applying relocation %s "
 "against local symbol"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: local symbol descriptor table be NULL when applying relocation %s "
 "against local symbol"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6082
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6119
+#: elfnn-aarch64.c:6149 elfnn-aarch64.c:6186
 #, c-format
 msgid "%pB: TLS relocation %s against undefined symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "%pB: TLS relocation %s against undefined symbol `%s'"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7104
+#: elfnn-aarch64.c:7171
 msgid "too many GOT entries for -fpic, please recompile with -fPIC"
 msgstr ""
 
 msgid "too many GOT entries for -fpic, please recompile with -fPIC"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7132
+#: elfnn-aarch64.c:7199
 msgid ""
 "one possible cause of this error is that the symbol is being referenced in "
 "the indicated code as if it had a larger alignment than was declared where "
 "it was defined"
 msgstr ""
 
 msgid ""
 "one possible cause of this error is that the symbol is being referenced in "
 "the indicated code as if it had a larger alignment than was declared where "
 "it was defined"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7716
+#: elfnn-aarch64.c:7783
 #, c-format
 msgid ""
 "%pB: relocation %s against `%s' can not be used when making a shared object"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: relocation %s against `%s' can not be used when making a shared object"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:182
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:217
+#: elfnn-riscv.c:190 elfnn-riscv.c:225
 #, c-format
 msgid "%pB: warning: RVE PLT generation not supported"
 msgstr ""
 
 #, c-format
 msgid "%pB: warning: RVE PLT generation not supported"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2093
+#: elfnn-riscv.c:2101
 #, c-format
 msgid "%pcrel_lo section symbol with an addend"
 msgstr ""
 
 #, c-format
 msgid "%pcrel_lo section symbol with an addend"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2314
+#: elfnn-riscv.c:2322
 #, c-format
 msgid ""
 "%%X%%P: relocation %s against `%s' can not be used when making a shared "
 "object; recompile with -fPIC\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%%X%%P: relocation %s against `%s' can not be used when making a shared "
 "object; recompile with -fPIC\n"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2324
+#: elfnn-riscv.c:2332
 #, c-format
 msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2363
+#: elfnn-riscv.c:2371
 msgid "%X%P: internal error: out of range error\n"
 msgstr ""
 
 msgid "%X%P: internal error: out of range error\n"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2368
+#: elfnn-riscv.c:2376
 msgid "%X%P: internal error: unsupported relocation error\n"
 msgstr ""
 
 msgid "%X%P: internal error: unsupported relocation error\n"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2374
+#: elfnn-riscv.c:2382
 msgid "dangerous relocation error"
 msgstr ""
 
 msgid "dangerous relocation error"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2380
+#: elfnn-riscv.c:2388
 msgid "%X%P: internal error: unknown error\n"
 msgstr ""
 
 msgid "%X%P: internal error: unknown error\n"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2771
+#: elfnn-riscv.c:2755
 #, c-format
 msgid "error: %pB: Mis-matched ISA version for '%s' extension. %d.%d vs %d.%d"
 msgstr ""
 
 #, c-format
 msgid "error: %pB: Mis-matched ISA version for '%s' extension. %d.%d vs %d.%d"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2789
+#: elfnn-riscv.c:2773
 #, c-format
 msgid ""
 "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but "
 "got '%s'."
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but "
 "got '%s'."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2833
+#: elfnn-riscv.c:2817
 #, c-format
 msgid "error: %pB: Mis-matched ISA string to merge '%s' and '%s'."
 msgstr ""
 
 #, c-format
 msgid "error: %pB: Mis-matched ISA string to merge '%s' and '%s'."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2981
+#: elfnn-riscv.c:3018
 #, c-format
 msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)."
 msgstr ""
 
 #, c-format
 msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3006
+#: elfnn-riscv.c:3038
 #, c-format
 msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)."
 msgstr ""
 
 #, c-format
 msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3014
+#: elfnn-riscv.c:3046
 #, c-format
 msgid "error: %pB: Unsupported XLEN (%u), you might be using wrong emulation."
 msgstr ""
 
 #, c-format
 msgid "error: %pB: Unsupported XLEN (%u), you might be using wrong emulation."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3099
+#: elfnn-riscv.c:3131
 #, c-format
 msgid "error: %pB: conflicting priv spec version (major/minor/revision)."
 msgstr ""
 
 #, c-format
 msgid "error: %pB: conflicting priv spec version (major/minor/revision)."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3115
+#: elfnn-riscv.c:3147
 #, c-format
 msgid ""
 "error: %pB use %u-byte stack aligned but the output use %u-byte stack "
 "aligned."
 msgstr ""
 
 #, c-format
 msgid ""
 "error: %pB use %u-byte stack aligned but the output use %u-byte stack "
 "aligned."
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3155
+#: elfnn-riscv.c:3187
 #, c-format
 msgid ""
 "%pB: ABI is incompatible with that of the selected emulation:\n"
 "  target emulation `%s' does not match `%s'"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: ABI is incompatible with that of the selected emulation:\n"
 "  target emulation `%s' does not match `%s'"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3209
+#: elfnn-riscv.c:3241
 #, c-format
 msgid "%pB: can't link %s modules with %s modules"
 msgstr ""
 
 #, c-format
 msgid "%pB: can't link %s modules with %s modules"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3219
+#: elfnn-riscv.c:3251
 #, c-format
 msgid "%pB: can't link RVE with other target"
 msgstr ""
 
 #, c-format
 msgid "%pB: can't link RVE with other target"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3757
+#: elfnn-riscv.c:3789
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
 "byte boundary, but only %<PRId64> present"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
 "byte boundary, but only %<PRId64> present"
 msgstr ""
 
-#: peigen.c:164 pepigen.c:164 pex64igen.c:164
+#: peXXigen.c:164
 #, c-format
 msgid "%pB: unable to find name for empty section"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to find name for empty section"
 msgstr ""
 
-#: peigen.c:190 pepigen.c:190 pex64igen.c:190
+#: peXXigen.c:191
 #, c-format
 msgid "%pB: out of memory creating name for empty section"
 msgstr ""
 
 #, c-format
 msgid "%pB: out of memory creating name for empty section"
 msgstr ""
 
-#: peigen.c:201 pepigen.c:201 pex64igen.c:201
+#: peXXigen.c:201
 #, c-format
 msgid "%pB: unable to create fake empty section"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to create fake empty section"
 msgstr ""
 
-#: peigen.c:539 pepigen.c:539 pex64igen.c:539
+#: peXXigen.c:539
 #, c-format
 msgid ""
 "%pB: aout header specifies an invalid number of data-directory entries: %u"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: aout header specifies an invalid number of data-directory entries: %u"
 msgstr ""
 
-#: peigen.c:1088 pepigen.c:1088 pex64igen.c:1088
+#: peXXigen.c:1088
 #, c-format
 msgid "%pB: line number overflow: 0x%lx > 0xffff"
 msgstr ""
 
 #, c-format
 msgid "%pB: line number overflow: 0x%lx > 0xffff"
 msgstr ""
 
-#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235
+#: peXXigen.c:1235
 msgid "Export Directory [.edata (or where ever we found it)]"
 msgstr ""
 
 msgid "Export Directory [.edata (or where ever we found it)]"
 msgstr ""
 
-#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236
+#: peXXigen.c:1236
 msgid "Import Directory [parts of .idata]"
 msgstr ""
 
 msgid "Import Directory [parts of .idata]"
 msgstr ""
 
-#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237
+#: peXXigen.c:1237
 msgid "Resource Directory [.rsrc]"
 msgstr ""
 
 msgid "Resource Directory [.rsrc]"
 msgstr ""
 
-#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238
+#: peXXigen.c:1238
 msgid "Exception Directory [.pdata]"
 msgstr ""
 
 msgid "Exception Directory [.pdata]"
 msgstr ""
 
-#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239
+#: peXXigen.c:1239
 msgid "Security Directory"
 msgstr ""
 
 msgid "Security Directory"
 msgstr ""
 
-#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240
+#: peXXigen.c:1240
 msgid "Base Relocation Directory [.reloc]"
 msgstr ""
 
 msgid "Base Relocation Directory [.reloc]"
 msgstr ""
 
-#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241
+#: peXXigen.c:1241
 msgid "Debug Directory"
 msgstr ""
 
 msgid "Debug Directory"
 msgstr ""
 
-#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242
+#: peXXigen.c:1242
 msgid "Description Directory"
 msgstr ""
 
 msgid "Description Directory"
 msgstr ""
 
-#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243
+#: peXXigen.c:1243
 msgid "Special Directory"
 msgstr ""
 
 msgid "Special Directory"
 msgstr ""
 
-#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244
+#: peXXigen.c:1244
 msgid "Thread Storage Directory [.tls]"
 msgstr ""
 
 msgid "Thread Storage Directory [.tls]"
 msgstr ""
 
-#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245
+#: peXXigen.c:1245
 msgid "Load Configuration Directory"
 msgstr ""
 
 msgid "Load Configuration Directory"
 msgstr ""
 
-#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246
+#: peXXigen.c:1246
 msgid "Bound Import Directory"
 msgstr ""
 
 msgid "Bound Import Directory"
 msgstr ""
 
-#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247
+#: peXXigen.c:1247
 msgid "Import Address Table Directory"
 msgstr ""
 
 msgid "Import Address Table Directory"
 msgstr ""
 
-#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248
+#: peXXigen.c:1248
 msgid "Delay Import Directory"
 msgstr ""
 
 msgid "Delay Import Directory"
 msgstr ""
 
-#: peigen.c:1249 pepigen.c:1249 pex64igen.c:1249
+#: peXXigen.c:1249
 msgid "CLR Runtime Header"
 msgstr ""
 
 msgid "CLR Runtime Header"
 msgstr ""
 
-#: peigen.c:1250 pepigen.c:1250 pex64igen.c:1250
+#: peXXigen.c:1250
 msgid "Reserved"
 msgstr ""
 
 msgid "Reserved"
 msgstr ""
 
-#: peigen.c:1310 pepigen.c:1310 pex64igen.c:1310
+#: peXXigen.c:1310
 #, c-format
 msgid ""
 "\n"
 "There is an import table, but the section containing it could not be found\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an import table, but the section containing it could not be found\n"
 msgstr ""
 
-#: peigen.c:1316 pepigen.c:1316 pex64igen.c:1316
+#: peXXigen.c:1316
 #, c-format
 msgid ""
 "\n"
 "There is an import table in %s, but that section has no contents\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an import table in %s, but that section has no contents\n"
 msgstr ""
 
-#: peigen.c:1323 pepigen.c:1323 pex64igen.c:1323
+#: peXXigen.c:1323
 #, c-format
 msgid ""
 "\n"
 "There is an import table in %s at 0x%lx\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an import table in %s at 0x%lx\n"
 msgstr ""
 
-#: peigen.c:1365 pepigen.c:1365 pex64igen.c:1365
+#: peXXigen.c:1365
 #, c-format
 msgid ""
 "\n"
 "Function descriptor located at the start address: %04lx\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Function descriptor located at the start address: %04lx\n"
 msgstr ""
 
-#: peigen.c:1369 pepigen.c:1369 pex64igen.c:1369
+#: peXXigen.c:1369
 #, c-format
 msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 msgstr ""
 
 #, c-format
 msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 msgstr ""
 
-#: peigen.c:1377 pepigen.c:1377 pex64igen.c:1377
+#: peXXigen.c:1377
 #, c-format
 msgid ""
 "\n"
 "No reldata section! Function descriptor not decoded.\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "No reldata section! Function descriptor not decoded.\n"
 msgstr ""
 
-#: peigen.c:1382 pepigen.c:1382 pex64igen.c:1382
+#: peXXigen.c:1382
 #, c-format
 msgid ""
 "\n"
 "The Import Tables (interpreted %s section contents)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "The Import Tables (interpreted %s section contents)\n"
 msgstr ""
 
-#: peigen.c:1385 pepigen.c:1385 pex64igen.c:1385
+#: peXXigen.c:1385
 #, c-format
 msgid ""
 " vma:            Hint    Time      Forward  DLL       First\n"
 "                 Table   Stamp     Chain    Name      Thunk\n"
 msgstr ""
 
 #, c-format
 msgid ""
 " vma:            Hint    Time      Forward  DLL       First\n"
 "                 Table   Stamp     Chain    Name      Thunk\n"
 msgstr ""
 
-#: peigen.c:1435 pepigen.c:1435 pex64igen.c:1435
+#: peXXigen.c:1435
 #, c-format
 msgid ""
 "\n"
 "\tDLL Name: %.*s\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "\tDLL Name: %.*s\n"
 msgstr ""
 
-#: peigen.c:1451 pepigen.c:1451 pex64igen.c:1451
+#: peXXigen.c:1451
 #, c-format
 msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
 msgstr ""
 
 #, c-format
 msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
 msgstr ""
 
-#: peigen.c:1476 pepigen.c:1476 pex64igen.c:1476
+#: peXXigen.c:1476
 #, c-format
 msgid ""
 "\n"
 "There is a first thunk, but the section containing it could not be found\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is a first thunk, but the section containing it could not be found\n"
 msgstr ""
 
-#: peigen.c:1520 peigen.c:1559 pepigen.c:1520 pepigen.c:1559 pex64igen.c:1520
-#: pex64igen.c:1559
+#: peXXigen.c:1520 peXXigen.c:1559
 #, c-format
 msgid "\t<corrupt: 0x%04lx>"
 msgstr ""
 
 #, c-format
 msgid "\t<corrupt: 0x%04lx>"
 msgstr ""
 
-#: peigen.c:1652 pepigen.c:1652 pex64igen.c:1652
+#: peXXigen.c:1652
 #, c-format
 msgid ""
 "\n"
 "There is an export table, but the section containing it could not be found\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an export table, but the section containing it could not be found\n"
 msgstr ""
 
-#: peigen.c:1658 pepigen.c:1658 pex64igen.c:1658
+#: peXXigen.c:1658
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but that section has no contents\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but that section has no contents\n"
 msgstr ""
 
-#: peigen.c:1669 pepigen.c:1669 pex64igen.c:1669
+#: peXXigen.c:1669
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but it does not fit into that section\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but it does not fit into that section\n"
 msgstr ""
 
-#: peigen.c:1680 pepigen.c:1680 pex64igen.c:1680
+#: peXXigen.c:1680
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but it is too small (%d)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but it is too small (%d)\n"
 msgstr ""
 
-#: peigen.c:1686 pepigen.c:1686 pex64igen.c:1686
+#: peXXigen.c:1686
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s at 0x%lx\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s at 0x%lx\n"
 msgstr ""
 
-#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714
+#: peXXigen.c:1714
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -8591,162 +8798,160 @@ msgid ""
 "\n"
 msgstr ""
 
 "\n"
 msgstr ""
 
-#: peigen.c:1718 pepigen.c:1718 pex64igen.c:1718
+#: peXXigen.c:1718
 #, c-format
 msgid "Export Flags \t\t\t%lx\n"
 msgstr ""
 
 #, c-format
 msgid "Export Flags \t\t\t%lx\n"
 msgstr ""
 
-#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721
+#: peXXigen.c:1721
 #, c-format
 msgid "Time/Date stamp \t\t%lx\n"
 msgstr ""
 
 #, c-format
 msgid "Time/Date stamp \t\t%lx\n"
 msgstr ""
 
-#: peigen.c:1725 pepigen.c:1725 pex64igen.c:1725
+#: peXXigen.c:1725
 #, c-format
 msgid "Major/Minor \t\t\t%d/%d\n"
 msgstr ""
 
 #, c-format
 msgid "Major/Minor \t\t\t%d/%d\n"
 msgstr ""
 
-#: peigen.c:1728 pepigen.c:1728 pex64igen.c:1728
+#: peXXigen.c:1728
 #, c-format
 msgid "Name \t\t\t\t"
 msgstr ""
 
 #, c-format
 msgid "Name \t\t\t\t"
 msgstr ""
 
-#: peigen.c:1739 pepigen.c:1739 pex64igen.c:1739
+#: peXXigen.c:1739
 #, c-format
 msgid "Ordinal Base \t\t\t%ld\n"
 msgstr ""
 
 #, c-format
 msgid "Ordinal Base \t\t\t%ld\n"
 msgstr ""
 
-#: peigen.c:1742 pepigen.c:1742 pex64igen.c:1742
+#: peXXigen.c:1742
 #, c-format
 msgid "Number in:\n"
 msgstr ""
 
 #, c-format
 msgid "Number in:\n"
 msgstr ""
 
-#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745
+#: peXXigen.c:1745
 #, c-format
 msgid "\tExport Address Table \t\t%08lx\n"
 msgstr ""
 
 #, c-format
 msgid "\tExport Address Table \t\t%08lx\n"
 msgstr ""
 
-#: peigen.c:1749 pepigen.c:1749 pex64igen.c:1749
+#: peXXigen.c:1749
 #, c-format
 msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
 msgstr ""
 
 #, c-format
 msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
 msgstr ""
 
-#: peigen.c:1752 pepigen.c:1752 pex64igen.c:1752
+#: peXXigen.c:1752
 #, c-format
 msgid "Table Addresses\n"
 msgstr ""
 
 #, c-format
 msgid "Table Addresses\n"
 msgstr ""
 
-#: peigen.c:1755 pepigen.c:1755 pex64igen.c:1755
+#: peXXigen.c:1755
 #, c-format
 msgid "\tExport Address Table \t\t"
 msgstr ""
 
 #, c-format
 msgid "\tExport Address Table \t\t"
 msgstr ""
 
-#: peigen.c:1760 pepigen.c:1760 pex64igen.c:1760
+#: peXXigen.c:1760
 #, c-format
 msgid "\tName Pointer Table \t\t"
 msgstr ""
 
 #, c-format
 msgid "\tName Pointer Table \t\t"
 msgstr ""
 
-#: peigen.c:1765 pepigen.c:1765 pex64igen.c:1765
+#: peXXigen.c:1765
 #, c-format
 msgid "\tOrdinal Table \t\t\t"
 msgstr ""
 
 #, c-format
 msgid "\tOrdinal Table \t\t\t"
 msgstr ""
 
-#: peigen.c:1779 pepigen.c:1779 pex64igen.c:1779
+#: peXXigen.c:1779
 #, c-format
 msgid ""
 "\n"
 "Export Address Table -- Ordinal Base %ld\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Export Address Table -- Ordinal Base %ld\n"
 msgstr ""
 
-#: peigen.c:1788 pepigen.c:1788 pex64igen.c:1788
+#: peXXigen.c:1788
 #, c-format
 msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
 #, c-format
 msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
-#: peigen.c:1807 pepigen.c:1807 pex64igen.c:1807
+#: peXXigen.c:1807
 msgid "Forwarder RVA"
 msgstr ""
 
 msgid "Forwarder RVA"
 msgstr ""
 
-#: peigen.c:1819 pepigen.c:1819 pex64igen.c:1819
+#: peXXigen.c:1819
 msgid "Export RVA"
 msgstr ""
 
 msgid "Export RVA"
 msgstr ""
 
-#: peigen.c:1826 pepigen.c:1826 pex64igen.c:1826
+#: peXXigen.c:1826
 #, c-format
 msgid ""
 "\n"
 "[Ordinal/Name Pointer] Table\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "[Ordinal/Name Pointer] Table\n"
 msgstr ""
 
-#: peigen.c:1834 pepigen.c:1834 pex64igen.c:1834
+#: peXXigen.c:1834
 #, c-format
 msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
 #, c-format
 msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
-#: peigen.c:1841 pepigen.c:1841 pex64igen.c:1841
+#: peXXigen.c:1841
 #, c-format
 msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
 #, c-format
 msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
-#: peigen.c:1855 pepigen.c:1855 pex64igen.c:1855
+#: peXXigen.c:1855
 #, c-format
 msgid "\t[%4ld] <corrupt offset: %lx>\n"
 msgstr ""
 
 #, c-format
 msgid "\t[%4ld] <corrupt offset: %lx>\n"
 msgstr ""
 
-#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909
-#: pex64igen.c:2106
+#: peXXigen.c:1909 peXXigen.c:2106
 #, c-format
 msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
 msgstr ""
 
 #, c-format
 msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
 msgstr ""
 
-#: peigen.c:1913 peigen.c:2110 pepigen.c:1913 pepigen.c:2110 pex64igen.c:1913
-#: pex64igen.c:2110
+#: peXXigen.c:1913 peXXigen.c:2110
 #, c-format
 msgid ""
 "\n"
 "The Function Table (interpreted .pdata section contents)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "The Function Table (interpreted .pdata section contents)\n"
 msgstr ""
 
-#: peigen.c:1916 pepigen.c:1916 pex64igen.c:1916
+#: peXXigen.c:1916
 #, c-format
 msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
 msgstr ""
 
 #, c-format
 msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
 msgstr ""
 
-#: peigen.c:1918 pepigen.c:1918 pex64igen.c:1918
+#: peXXigen.c:1918
 #, c-format
 msgid ""
 " vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
 "     \t\tAddress  Address  Handler  Data     Address    Mask\n"
 msgstr ""
 
 #, c-format
 msgid ""
 " vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
 "     \t\tAddress  Address  Handler  Data     Address    Mask\n"
 msgstr ""
 
-#: peigen.c:1931 pepigen.c:1931 pex64igen.c:1931
+#: peXXigen.c:1931
 #, c-format
 msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
 msgstr ""
 
 #, c-format
 msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
 msgstr ""
 
-#: peigen.c:2001 pepigen.c:2001 pex64igen.c:2001
+#: peXXigen.c:2001
 #, c-format
 msgid " Register save millicode"
 msgstr ""
 
 #, c-format
 msgid " Register save millicode"
 msgstr ""
 
-#: peigen.c:2004 pepigen.c:2004 pex64igen.c:2004
+#: peXXigen.c:2004
 #, c-format
 msgid " Register restore millicode"
 msgstr ""
 
 #, c-format
 msgid " Register restore millicode"
 msgstr ""
 
-#: peigen.c:2007 pepigen.c:2007 pex64igen.c:2007
+#: peXXigen.c:2007
 #, c-format
 msgid " Glue code sequence"
 msgstr ""
 
 #, c-format
 msgid " Glue code sequence"
 msgstr ""
 
-#: peigen.c:2112 pepigen.c:2112 pex64igen.c:2112
+#: peXXigen.c:2112
 #, c-format
 msgid ""
 " vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
 "     \t\tAddress  Length   Length   32b exc  Handler   Data\n"
 msgstr ""
 
 #, c-format
 msgid ""
 " vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
 "     \t\tAddress  Length   Length   32b exc  Handler   Data\n"
 msgstr ""
 
-#: peigen.c:2234 pepigen.c:2234 pex64igen.c:2234
+#: peXXigen.c:2234
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -8754,86 +8959,86 @@ msgid ""
 "PE File Base Relocations (interpreted .reloc section contents)\n"
 msgstr ""
 
 "PE File Base Relocations (interpreted .reloc section contents)\n"
 msgstr ""
 
-#: peigen.c:2264 pepigen.c:2264 pex64igen.c:2264
+#: peXXigen.c:2264
 #, c-format
 msgid ""
 "\n"
 "Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
 msgstr ""
 
-#: peigen.c:2282 pepigen.c:2282 pex64igen.c:2282
+#: peXXigen.c:2282
 #, c-format
 msgid "\treloc %4d offset %4x [%4lx] %s"
 msgstr ""
 
 #, c-format
 msgid "\treloc %4d offset %4x [%4lx] %s"
 msgstr ""
 
-#: peigen.c:2343 pepigen.c:2343 pex64igen.c:2343
+#: peXXigen.c:2343
 #, c-format
 msgid "%03x %*.s Entry: "
 msgstr ""
 
 #, c-format
 msgid "%03x %*.s Entry: "
 msgstr ""
 
-#: peigen.c:2367 pepigen.c:2367 pex64igen.c:2367
+#: peXXigen.c:2367
 #, c-format
 msgid "name: [val: %08lx len %d]: "
 msgstr ""
 
 #, c-format
 msgid "name: [val: %08lx len %d]: "
 msgstr ""
 
-#: peigen.c:2387 pepigen.c:2387 pex64igen.c:2387
+#: peXXigen.c:2387
 #, c-format
 msgid "<corrupt string length: %#x>\n"
 msgstr ""
 
 #, c-format
 msgid "<corrupt string length: %#x>\n"
 msgstr ""
 
-#: peigen.c:2397 pepigen.c:2397 pex64igen.c:2397
+#: peXXigen.c:2397
 #, c-format
 msgid "<corrupt string offset: %#lx>\n"
 msgstr ""
 
 #, c-format
 msgid "<corrupt string offset: %#lx>\n"
 msgstr ""
 
-#: peigen.c:2402 pepigen.c:2402 pex64igen.c:2402
+#: peXXigen.c:2402
 #, c-format
 msgid "ID: %#08lx"
 msgstr ""
 
 #, c-format
 msgid "ID: %#08lx"
 msgstr ""
 
-#: peigen.c:2405 pepigen.c:2405 pex64igen.c:2405
+#: peXXigen.c:2405
 #, c-format
 msgid ", Value: %#08lx\n"
 msgstr ""
 
 #, c-format
 msgid ", Value: %#08lx\n"
 msgstr ""
 
-#: peigen.c:2427 pepigen.c:2427 pex64igen.c:2427
+#: peXXigen.c:2427
 #, c-format
 msgid "%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
 msgstr ""
 
 #, c-format
 msgid "%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
 msgstr ""
 
-#: peigen.c:2469 pepigen.c:2469 pex64igen.c:2469
+#: peXXigen.c:2469
 #, c-format
 msgid "<unknown directory type: %d>\n"
 msgstr ""
 
 #, c-format
 msgid "<unknown directory type: %d>\n"
 msgstr ""
 
-#: peigen.c:2477 pepigen.c:2477 pex64igen.c:2477
+#: peXXigen.c:2477
 #, c-format
 msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
 msgstr ""
 
 #, c-format
 msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
 msgstr ""
 
-#: peigen.c:2566 pepigen.c:2566 pex64igen.c:2566
+#: peXXigen.c:2566
 #, c-format
 msgid "Corrupt .rsrc section detected!\n"
 msgstr ""
 
 #, c-format
 msgid "Corrupt .rsrc section detected!\n"
 msgstr ""
 
-#: peigen.c:2590 pepigen.c:2590 pex64igen.c:2590
+#: peXXigen.c:2590
 #, c-format
 msgid ""
 "\n"
 "WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
 msgstr ""
 
-#: peigen.c:2596 pepigen.c:2596 pex64igen.c:2596
+#: peXXigen.c:2596
 #, c-format
 msgid " String table starts at offset: %#03x\n"
 msgstr ""
 
 #, c-format
 msgid " String table starts at offset: %#03x\n"
 msgstr ""
 
-#: peigen.c:2599 pepigen.c:2599 pex64igen.c:2599
+#: peXXigen.c:2599
 #, c-format
 msgid " Resources start at offset: %#03x\n"
 msgstr ""
 
 #, c-format
 msgid " Resources start at offset: %#03x\n"
 msgstr ""
 
-#: peigen.c:2651 pepigen.c:2651 pex64igen.c:2651
+#: peXXigen.c:2656
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -8841,14 +9046,14 @@ msgid ""
 "found\n"
 msgstr ""
 
 "found\n"
 msgstr ""
 
-#: peigen.c:2657 pepigen.c:2657 pex64igen.c:2657
+#: peXXigen.c:2662
 #, c-format
 msgid ""
 "\n"
 "There is a debug directory in %s, but that section has no contents\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "There is a debug directory in %s, but that section has no contents\n"
 msgstr ""
 
-#: peigen.c:2664 pepigen.c:2664 pex64igen.c:2664
+#: peXXigen.c:2669
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -8856,7 +9061,7 @@ msgid ""
 "small\n"
 msgstr ""
 
 "small\n"
 msgstr ""
 
-#: peigen.c:2669 pepigen.c:2669 pex64igen.c:2669
+#: peXXigen.c:2674
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -8864,23 +9069,23 @@ msgid ""
 "\n"
 msgstr ""
 
 "\n"
 msgstr ""
 
-#: peigen.c:2676 pepigen.c:2676 pex64igen.c:2676
+#: peXXigen.c:2681
 #, c-format
 msgid ""
 "The debug data size field in the data directory is too big for the section"
 msgstr ""
 
 #, c-format
 msgid ""
 "The debug data size field in the data directory is too big for the section"
 msgstr ""
 
-#: peigen.c:2681 pepigen.c:2681 pex64igen.c:2681
+#: peXXigen.c:2686
 #, c-format
 msgid "Type                Size     Rva      Offset\n"
 msgstr ""
 
 #, c-format
 msgid "Type                Size     Rva      Offset\n"
 msgstr ""
 
-#: peigen.c:2729 pepigen.c:2729 pex64igen.c:2729
+#: peXXigen.c:2734
 #, c-format
 msgid "(format %c%c%c%c signature %s age %ld)\n"
 msgstr ""
 
 #, c-format
 msgid "(format %c%c%c%c signature %s age %ld)\n"
 msgstr ""
 
-#: peigen.c:2737 pepigen.c:2737 pex64igen.c:2737
+#: peXXigen.c:2744
 #, c-format
 msgid ""
 "The debug directory size is not a multiple of the debug directory entry "
 #, c-format
 msgid ""
 "The debug directory size is not a multiple of the debug directory entry "
@@ -8890,99 +9095,99 @@ msgstr ""
 #. The MS dumpbin program reportedly ands with 0xff0f before
 #. printing the characteristics field.  Not sure why.  No reason to
 #. emulate it here.
 #. The MS dumpbin program reportedly ands with 0xff0f before
 #. printing the characteristics field.  Not sure why.  No reason to
 #. emulate it here.
-#: peigen.c:2757 pepigen.c:2757 pex64igen.c:2757
+#: peXXigen.c:2829
 #, c-format
 msgid ""
 "\n"
 "Characteristics 0x%x\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Characteristics 0x%x\n"
 msgstr ""
 
-#: peigen.c:2994 pepigen.c:2994 pex64igen.c:2994
+#: peXXigen.c:3076
 #, c-format
 msgid ""
 "%pB: Data Directory size (%lx) exceeds space left in section (%<PRIx64>)"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: Data Directory size (%lx) exceeds space left in section (%<PRIx64>)"
 msgstr ""
 
-#: peigen.c:3026 pepigen.c:3026 pex64igen.c:3026
+#: peXXigen.c:3108
 msgid "failed to update file offsets in debug directory"
 msgstr ""
 
 msgid "failed to update file offsets in debug directory"
 msgstr ""
 
-#: peigen.c:3034 pepigen.c:3034 pex64igen.c:3034
+#: peXXigen.c:3116
 #, c-format
 msgid "%pB: failed to read debug data section"
 msgstr ""
 
 #, c-format
 msgid "%pB: failed to read debug data section"
 msgstr ""
 
-#: peigen.c:3850 pepigen.c:3850 pex64igen.c:3850
+#: peXXigen.c:3932
 #, c-format
 msgid ".rsrc merge failure: duplicate string resource: %d"
 msgstr ""
 
 #, c-format
 msgid ".rsrc merge failure: duplicate string resource: %d"
 msgstr ""
 
-#: peigen.c:3985 pepigen.c:3985 pex64igen.c:3985
+#: peXXigen.c:4067
 msgid ".rsrc merge failure: multiple non-default manifests"
 msgstr ""
 
 msgid ".rsrc merge failure: multiple non-default manifests"
 msgstr ""
 
-#: peigen.c:4003 pepigen.c:4003 pex64igen.c:4003
+#: peXXigen.c:4085
 msgid ".rsrc merge failure: a directory matches a leaf"
 msgstr ""
 
 msgid ".rsrc merge failure: a directory matches a leaf"
 msgstr ""
 
-#: peigen.c:4045 pepigen.c:4045 pex64igen.c:4045
+#: peXXigen.c:4127
 msgid ".rsrc merge failure: duplicate leaf"
 msgstr ""
 
 msgid ".rsrc merge failure: duplicate leaf"
 msgstr ""
 
-#: peigen.c:4047 pepigen.c:4047 pex64igen.c:4047
+#: peXXigen.c:4129
 #, c-format
 msgid ".rsrc merge failure: duplicate leaf: %s"
 msgstr ""
 
 #, c-format
 msgid ".rsrc merge failure: duplicate leaf: %s"
 msgstr ""
 
-#: peigen.c:4113 pepigen.c:4113 pex64igen.c:4113
+#: peXXigen.c:4195
 msgid ".rsrc merge failure: dirs with differing characteristics"
 msgstr ""
 
 msgid ".rsrc merge failure: dirs with differing characteristics"
 msgstr ""
 
-#: peigen.c:4120 pepigen.c:4120 pex64igen.c:4120
+#: peXXigen.c:4202
 msgid ".rsrc merge failure: differing directory versions"
 msgstr ""
 
 #. Corrupted .rsrc section - cannot merge.
 msgid ".rsrc merge failure: differing directory versions"
 msgstr ""
 
 #. Corrupted .rsrc section - cannot merge.
-#: peigen.c:4237 pepigen.c:4237 pex64igen.c:4237
+#: peXXigen.c:4319
 #, c-format
 msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
 msgstr ""
 
 #, c-format
 msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
 msgstr ""
 
-#: peigen.c:4245 pepigen.c:4245 pex64igen.c:4245
+#: peXXigen.c:4327
 #, c-format
 msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
 msgstr ""
 
 #, c-format
 msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
 msgstr ""
 
-#: peigen.c:4384 pepigen.c:4384 pex64igen.c:4384
+#: peXXigen.c:4466
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr ""
 
-#: peigen.c:4404 pepigen.c:4404 pex64igen.c:4404
+#: peXXigen.c:4486
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr ""
 
-#: peigen.c:4425 pepigen.c:4425 pex64igen.c:4425
+#: peXXigen.c:4507
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr ""
 
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr ""
 
-#: peigen.c:4445 pepigen.c:4445 pex64igen.c:4445
+#: peXXigen.c:4527
 #, c-format
 msgid ""
 "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
 "idata$6 is missing"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
 "idata$6 is missing"
 msgstr ""
 
-#: peigen.c:4487 pepigen.c:4487 pex64igen.c:4487
+#: peXXigen.c:4569
 #, c-format
 msgid ""
 "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
 "idata$6 is missing"
 msgstr ""
 
 #, c-format
 msgid ""
 "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
 "idata$6 is missing"
 msgstr ""
 
-#: peigen.c:4512 pepigen.c:4512 pex64igen.c:4512
+#: peXXigen.c:4594
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr ""
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr ""
index 76de37e449a6dd27b6cd63cd2a8b2f79482adc78..2b903512bf56381e0560ba5c1444757e278d50df 100644 (file)
@@ -1,3 +1,7 @@
+2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
+
+       * dwarf.c: Updated since DECLARE_CSR is changed.
+
 2020-05-19  H.J. Lu  <hjl.tools@gmail.com>
 
        PR binutils/25809
 2020-05-19  H.J. Lu  <hjl.tools@gmail.com>
 
        PR binutils/25809
index 7b5f7af8a1e2f0bd19a4a32f3fe954e45221c873..598f8562abf2bee8b8a9240ec3cf118f6ba12fc2 100644 (file)
@@ -7409,7 +7409,8 @@ regname_internal_riscv (unsigned int regno)
         document.  */
       switch (regno)
        {
         document.  */
       switch (regno)
        {
-#define DECLARE_CSR(NAME,VALUE,CLASS) case VALUE + 4096: name = #NAME; break;
+#define DECLARE_CSR(NAME,VALUE,CLASS,DEFINE_VER,ABORT_VER) \
+  case VALUE + 4096: name = #NAME; break;
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
 
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
 
index 6b159fe357186207d5dae18446b647167a97af12..05ba3e9ce6dafba8f47f4f5b965d491d93f376a9 100644 (file)
@@ -1,3 +1,166 @@
+2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
+
+       * testsuite/gas/riscv/priv-reg-fail-read-only-01.s: Updated.
+       * config/tc-riscv.c (default_arch_with_ext, default_isa_spec):
+       Static variables which are used to set the ISA extensions. You can
+       use -march (or ELF build attributes) and -misa-spec to set them,
+       respectively.
+       (ext_version_hash): The hash table used to handle the extensions
+       with versions.
+       (init_ext_version_hash): Initialize the ext_version_hash according
+       to riscv_ext_version_table.
+       (riscv_get_default_ext_version): The callback function of
+       riscv_parse_subset_t.  According to the choosed ISA spec,
+       get the default version for the specific extension.
+       (riscv_set_arch): Set the callback function.
+       (enum options, struct option md_longopts): Add new option -misa-spec.
+       (md_parse_option): Do not call riscv_set_arch for -march.  We will
+       call it later in riscv_after_parse_args.  Call riscv_get_isa_spec_class
+       to set default_isa_spec class.
+       (riscv_after_parse_args): Call init_ext_version_hash to initialize the
+       ext_version_hash, and then call riscv_set_arch to set the architecture
+       with versions according to default_arch_with_ext.
+       * testsuite/gas/riscv/attribute-02.d: Set 0p0 as default version for
+       x extensions.
+       * testsuite/gas/riscv/attribute-03.d: Likewise.
+       * testsuite/gas/riscv/attribute-09.d: New testcase.  For i-ext, we
+       already set it's version to 2p1 by march, so no need to use the default
+       2p2 version.  For m-ext, we do not set the version by -march and ELF arch
+       attribute, so set the default 2p0 to it.  For zicsr, it is not defined in
+       ISA spec 2p2, so set 0p0 to it.
+       * testsuite/gas/riscv/attribute-10.d: New testcase.  The version of
+       zicsr is 2p0 according to ISA spec 20191213.
+       * config/tc-riscv.c (DEFAULT_RISCV_ARCH_WITH_EXT)
+       (DEFAULT_RISCV_ISA_SPEC): Default configure option settings.
+       You can set them by configure options --with-arch and
+       --with-isa-spec, respectively.
+       (riscv_set_default_isa_spec): New function used to set the
+       default ISA spec.
+       (md_parse_option): Call riscv_set_default_isa_spec rather than
+       call riscv_get_isa_spec_class directly.
+       (riscv_after_parse_args): If the -isa-spec is not set, then we
+       set the default ISA spec according to DEFAULT_RISCV_ISA_SPEC by
+       calling riscv_set_default_isa_spec.
+       * testsuite/gas/riscv/attribute-01.d: Add -misa-spec=2.2, since
+       the --with-isa-spec may be set to different ISA spec.
+       * testsuite/gas/riscv/attribute-02.d: Likewise.
+       * testsuite/gas/riscv/attribute-03.d: Likewise.
+       * testsuite/gas/riscv/attribute-04.d: Likewise.
+       * testsuite/gas/riscv/attribute-05.d: Likewise.
+       * testsuite/gas/riscv/attribute-06.d: Likewise.
+       * testsuite/gas/riscv/attribute-07.d: Likewise.
+       * configure.ac: Add configure options, --with-arch and
+       --with-isa-spec.
+       * configure: Regenerated.
+       * config.in: Regenerated.
+       * config/tc-riscv.c (default_priv_spec): Static variable which is
+       used to check if the CSR is valid for the chosen privilege spec. You
+       can use -mpriv-spec to set it.
+       (enum reg_class): We now get the CSR address from csr_extra_hash rather
+       than reg_names_hash.  Therefore, move RCLASS_CSR behind RCLASS_MAX.
+       (riscv_init_csr_hashes): Only need to initialize one hash table
+       csr_extra_hash.
+       (riscv_csr_class_check): Change the return type to void.  Don't check
+       the ISA dependency if -mcsr-check isn't set.
+       (riscv_csr_version_check): New function.  Check and find the CSR address
+       from csr_extra_hash, according to default_priv_spec.  Report warning
+       for the invalid CSR if -mcsr-check is set.
+       (reg_csr_lookup_internal): Updated.
+       (reg_lookup_internal): Likewise.
+       (md_begin): Updated since DECLARE_CSR and DECLARE_CSR_ALIAS are changed.
+       (enum options, struct option md_longopts): Add new GAS option -mpriv-spec.
+       (md_parse_option): Call riscv_set_default_priv_version to set
+       default_priv_spec.
+       (riscv_after_parse_args): If -mpriv-spec isn't set, then set the default
+       privilege spec to the newest one.
+       (enum riscv_csr_class, struct riscv_csr_extra): Move them to
+       include/opcode/riscv.h.
+       * testsuite/gas/riscv/priv-reg-fail-fext.d: This test case just want
+       to check the ISA dependency for CSR, so fix the spec version by adding
+       -mpriv-spec=1.11.
+       * testsuite/gas/riscv/priv-reg-fail-fext.l: Likewise.  There are some
+       version warnings for the test case.
+       * gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.d: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.l: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-read-only-02.d: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.d: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.l: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d: New test case.
+       Check whether the CSR is valid when privilege version 1.9 is choosed.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: New test case.
+       Check whether the CSR is valid when privilege version 1.9.1 is choosed.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.d: New test case.
+       Check whether the CSR is valid when privilege version 1.10 is choosed.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l: Likewise.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.d: New test case.
+       Check whether the CSR is valid when privilege version 1.11 is choosed.
+       * gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l: Likewise.
+       * config/tc-riscv.c (DEFAULT_RISCV_ISA_SPEC): Default configure option
+       setting.  You can set it by configure option --with-priv-spec.
+       (riscv_set_default_priv_spec): New function used to set the default
+       privilege spec.
+       (md_parse_option): Call riscv_set_default_priv_spec rather than
+       call riscv_get_priv_spec_class directly.
+       (riscv_after_parse_args): If -mpriv-spec isn't set, then we set the
+       default privilege spec according to DEFAULT_RISCV_PRIV_SPEC by
+       calling riscv_set_default_priv_spec.
+       * testsuite/gas/riscv/csr-dw-regnums.d: Add -mpriv-spec=1.11, since
+       the --with-priv-spec may be set to different privilege spec.
+       * testsuite/gas/riscv/priv-reg.d: Likewise.
+       * configure.ac: Add configure option --with-priv-spec.
+       * configure: Regenerated.
+       * config.in: Regenerated.
+       * config/tc-riscv.c (explicit_attr): Rename explicit_arch_attr to
+       explicit_attr.  Set it to TRUE if any ELF attribute is found.
+       (riscv_set_default_priv_spec): Try to set the default_priv_spec if
+       the priv attributes are set.
+       (md_assemble): Set the default_priv_spec according to the priv
+       attributes when we start to assemble instruction.
+       (riscv_write_out_attrs): Rename riscv_write_out_arch_attr to
+       riscv_write_out_attrs.  Update the arch and priv attributes.  If we
+       don't set the corresponding ELF attributes, then try to output the
+       default ones.
+       (riscv_set_public_attributes): If any ELF attribute or -march-attr
+       options is set (explicit_attr is TRUE), then call riscv_write_out_attrs
+       to update the arch and priv attributes.
+       (s_riscv_attribute): Make sure all arch and priv attributes are set
+       before any instruction.
+       * testsuite/gas/riscv/attribute-01.d: Update the priv attributes if any
+       ELF attribute or -march-attr is set.  If the priv attributes are not
+       set, then try to update them by the default setting (-mpriv-spec or
+       --with-priv-spec).
+       * testsuite/gas/riscv/attribute-02.d: Likewise.
+       * testsuite/gas/riscv/attribute-03.d: Likewise.
+       * testsuite/gas/riscv/attribute-04.d: Likewise.
+       * testsuite/gas/riscv/attribute-06.d: Likewise.
+       * testsuite/gas/riscv/attribute-07.d: Likewise.
+       * testsuite/gas/riscv/attribute-08.d: Likewise.
+       * testsuite/gas/riscv/attribute-09.d: Likewise.
+       * testsuite/gas/riscv/attribute-10.d: Likewise.
+       * testsuite/gas/riscv/attribute-unknown.d: Likewise.
+       * testsuite/gas/riscv/attribute-05.d: Likewise.  Also, the priv spec
+       set by priv attributes must be supported.
+       * testsuite/gas/riscv/attribute-05.s: Likewise.
+       * testsuite/gas/riscv/priv-reg-fail-version-1p9.d: Likewise.  Updated
+       priv attributes according to the -mpriv-spec option.
+       * testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: Likewise.
+       * testsuite/gas/riscv/priv-reg-fail-version-1p10.d: Likewise.
+       * testsuite/gas/riscv/priv-reg-fail-version-1p11.d: Likewise.
+       * testsuite/gas/riscv/priv-reg.d: Removed.
+       * testsuite/gas/riscv/priv-reg-version-1p9.d: New test case.  Dump the
+       CSR according to the priv spec 1.9.
+       * testsuite/gas/riscv/priv-reg-version-1p9p1.d: New test case.  Dump the
+       CSR according to the priv spec 1.9.1.
+       * testsuite/gas/riscv/priv-reg-version-1p10.d: New test case.  Dump the
+       CSR according to the priv spec 1.10.
+       * testsuite/gas/riscv/priv-reg-version-1p11.d: New test case.  Dump the
+       CSR according to the priv spec 1.11.
+       * config/tc-riscv.c (md_show_usage): Add descriptions about
+       the new GAS options.
+       * doc/c-riscv.texi: Likewise.
+
 2020-05-19  Peter Bergner  <bergner@linux.ibm.com>
 
        * testsuite/gas/ppc/power9.s <dcbf, dcbfl, dcbflp>: Add tests.
 2020-05-19  Peter Bergner  <bergner@linux.ibm.com>
 
        * testsuite/gas/ppc/power9.s <dcbf, dcbfl, dcbflp>: Add tests.
index 8724eb153ae6a56ce5645025484cba15ebec3bc6..bd125047d56585d712aab9a8c85bc21f28dc1371 100644 (file)
 /* Define to 1 if you want to fix Loongson3 LLSC Errata by default. */
 #undef DEFAULT_MIPS_FIX_LOONGSON3_LLSC
 
 /* Define to 1 if you want to fix Loongson3 LLSC Errata by default. */
 #undef DEFAULT_MIPS_FIX_LOONGSON3_LLSC
 
+/* Define default value for RISC-V -march. */
+#undef DEFAULT_RISCV_ARCH_WITH_EXT
+
 /* Define to 1 if you want to generate RISC-V arch attribute by default. */
 #undef DEFAULT_RISCV_ATTR
 
 /* Define to 1 if you want to generate RISC-V arch attribute by default. */
 #undef DEFAULT_RISCV_ATTR
 
+/* Define default value for RISC-V -misa-spec. */
+#undef DEFAULT_RISCV_ISA_SPEC
+
+/* Define default value for RISC-V -mpriv-spec */
+#undef DEFAULT_RISCV_PRIV_SPEC
+
 /* Define to 1 if you want to generate GNU x86 used ISA and feature properties
    by default. */
 #undef DEFAULT_X86_USED_NOTE
 /* Define to 1 if you want to generate GNU x86 used ISA and feature properties
    by default. */
 #undef DEFAULT_X86_USED_NOTE
index 168561e7b562e2a285dc2d812bf7b71a515628d2..04df0884f372fc9f8bd7b3c286a9777c9a4e8474 100644 (file)
@@ -63,7 +63,30 @@ struct riscv_cl_insn
 #define DEFAULT_RISCV_ATTR 0
 #endif
 
 #define DEFAULT_RISCV_ATTR 0
 #endif
 
+/* Let riscv_after_parse_args set the default value according to xlen.  */
+
+#ifndef DEFAULT_RISCV_ARCH_WITH_EXT
+#define DEFAULT_RISCV_ARCH_WITH_EXT NULL
+#endif
+
+/* The default ISA spec is set to 2.2 rather than the lastest version.
+   The reason is that compiler generates the ISA string with fixed 2p0
+   verisons only for the RISCV ELF architecture attributes, but not for
+   the -march option.  Therefore, we should update the compiler or linker
+   to resolve this problem.  */
+
+#ifndef DEFAULT_RISCV_ISA_SPEC
+#define DEFAULT_RISCV_ISA_SPEC "2.2"
+#endif
+
+#ifndef DEFAULT_RISCV_PRIV_SPEC
+#define DEFAULT_RISCV_PRIV_SPEC "1.11"
+#endif
+
 static const char default_arch[] = DEFAULT_ARCH;
 static const char default_arch[] = DEFAULT_ARCH;
+static const char *default_arch_with_ext = DEFAULT_RISCV_ARCH_WITH_EXT;
+static enum riscv_isa_spec_class default_isa_spec = ISA_SPEC_CLASS_NONE;
+static enum riscv_priv_spec_class default_priv_spec = PRIV_SPEC_CLASS_NONE;
 
 static unsigned xlen = 0; /* width of an x-register */
 static unsigned abi_xlen = 0; /* width of a pointer in the ABI */
 
 static unsigned xlen = 0; /* width of an x-register */
 static unsigned abi_xlen = 0; /* width of a pointer in the ABI */
@@ -74,6 +97,95 @@ static bfd_boolean rve_abi = FALSE;
 
 static unsigned elf_flags = 0;
 
 
 static unsigned elf_flags = 0;
 
+/* Set the default_isa_spec.  Return 0 if the input spec string isn't
+   supported.  Otherwise, return 1.  */
+
+static int
+riscv_set_default_isa_spec (const char *s)
+{
+  enum riscv_isa_spec_class class;
+  if (!riscv_get_isa_spec_class (s, &class))
+    {
+      as_bad ("Unknown default ISA spec `%s' set by "
+             "-misa-spec or --with-isa-spec", s);
+      return 0;
+    }
+  else
+    default_isa_spec = class;
+  return 1;
+}
+
+/* Set the default_priv_spec, assembler will find the suitable CSR address
+   according to default_priv_spec.  We will try to check priv attributes if
+   the input string is NULL.  Return 0 if the input priv spec string isn't
+   supported.  Otherwise, return 1.  */
+
+static int
+riscv_set_default_priv_spec (const char *s)
+{
+  enum riscv_priv_spec_class class;
+  unsigned major, minor, revision;
+  obj_attribute *attr;
+  size_t buf_size;
+  char *buf;
+
+  /* Find the corresponding priv spec class.  */
+  if (riscv_get_priv_spec_class (s, &class))
+    {
+      default_priv_spec = class;
+      return 1;
+    }
+
+  if (s != NULL)
+    {
+      as_bad (_("Unknown default privilege spec `%s' set by "
+               "-mpriv-spec or --with-priv-spec"), s);
+      return 0;
+    }
+
+  /* Try to set the default_priv_spec according to the priv attributes.  */
+  attr = elf_known_obj_attributes_proc (stdoutput);
+  major = (unsigned) attr[Tag_RISCV_priv_spec].i;
+  minor = (unsigned) attr[Tag_RISCV_priv_spec_minor].i;
+  revision = (unsigned) attr[Tag_RISCV_priv_spec_revision].i;
+
+  /* The priv attributes setting 0.0.0 is meaningless.  We should have set
+     the default_priv_spec by md_parse_option and riscv_after_parse_args,
+     so just skip the following setting.  */
+  if (major == 0 && minor == 0 && revision == 0)
+    return 1;
+
+  buf_size = riscv_estimate_digit (major)
+            + 1 /* '.' */
+            + riscv_estimate_digit (minor)
+            + 1; /* string terminator */
+  if (revision != 0)
+    {
+      buf_size += 1 /* '.' */
+                 + riscv_estimate_digit (revision);
+      buf = xmalloc (buf_size);
+      snprintf (buf, buf_size, "%d.%d.%d", major, minor, revision);
+    }
+  else
+    {
+      buf = xmalloc (buf_size);
+      snprintf (buf, buf_size, "%d.%d", major, minor);
+    }
+
+  if (riscv_get_priv_spec_class (buf, &class))
+    {
+      default_priv_spec = class;
+      free (buf);
+      return 1;
+    }
+
+  /* Still can not find the priv spec class.  */
+  as_bad (_("Unknown default privilege spec `%d.%d.%d' set by  "
+           "privilege attributes"),  major, minor, revision);
+  free (buf);
+  return 0;
+}
+
 /* This is the set of options which the .option pseudo-op may modify.  */
 
 struct riscv_set_options
 /* This is the set of options which the .option pseudo-op may modify.  */
 
 struct riscv_set_options
@@ -147,6 +259,67 @@ riscv_multi_subset_supports (enum riscv_insn_class insn_class)
     }
 }
 
     }
 }
 
+/* Handle of the extension with version hash table.  */
+static struct hash_control *ext_version_hash = NULL;
+
+static struct hash_control *
+init_ext_version_hash (const struct riscv_ext_version *table)
+{
+  int i = 0;
+  struct hash_control *hash = hash_new ();
+
+  while (table[i].name)
+    {
+      const char *name = table[i].name;
+      const char *hash_error =
+       hash_insert (hash, name, (void *) &table[i]);
+
+      if (hash_error != NULL)
+       {
+         fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
+                  table[i].name, hash_error);
+         /* Probably a memory allocation problem?  Give up now.  */
+         as_fatal (_("Broken assembler.  No assembly attempted."));
+         return NULL;
+       }
+
+      i++;
+      while (table[i].name
+            && strcmp (table[i].name, name) == 0)
+       i++;
+    }
+
+  return hash;
+}
+
+static void
+riscv_get_default_ext_version (const char *name,
+                              unsigned int *major_version,
+                              unsigned int *minor_version)
+{
+  struct riscv_ext_version *ext;
+
+  *major_version = 0;
+  *minor_version = 0;
+
+  if (name == NULL || default_isa_spec == ISA_SPEC_CLASS_NONE)
+    return;
+
+  ext = (struct riscv_ext_version *) hash_find (ext_version_hash, name);
+  while (ext
+        && ext->name
+        && strcmp (ext->name, name) == 0)
+    {
+      if (ext->isa_spec_class == default_isa_spec)
+       {
+         *major_version = ext->major_version;
+         *minor_version = ext->minor_version;
+         return;
+       }
+      ext++;
+    }
+}
+
 /* Set which ISA and extensions are available.  */
 
 static void
 /* Set which ISA and extensions are available.  */
 
 static void
@@ -156,6 +329,10 @@ riscv_set_arch (const char *s)
   rps.subset_list = &riscv_subsets;
   rps.error_handler = as_fatal;
   rps.xlen = &xlen;
   rps.subset_list = &riscv_subsets;
   rps.error_handler = as_fatal;
   rps.xlen = &xlen;
+  rps.get_default_version = riscv_get_default_ext_version;
+
+  if (s == NULL)
+    return;
 
   riscv_release_subset_list (&riscv_subsets);
   riscv_parse_subset (&rps, s);
 
   riscv_release_subset_list (&riscv_subsets);
   riscv_parse_subset (&rps, s);
@@ -194,8 +371,8 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP";
 /* Indicate we are already assemble any instructions or not.  */
 static bfd_boolean start_assemble = FALSE;
 
 /* Indicate we are already assemble any instructions or not.  */
 static bfd_boolean start_assemble = FALSE;
 
-/* Indicate arch attribute is explictly set.  */
-static bfd_boolean explicit_arch_attr = FALSE;
+/* Indicate ELF attributes are explictly set.  */
+static bfd_boolean explicit_attr = FALSE;
 
 /* Macros for encoding relaxation state for RVC branches and far jumps.  */
 #define RELAX_BRANCH_ENCODE(uncond, rvc, length)       \
 
 /* Macros for encoding relaxation state for RVC branches and far jumps.  */
 #define RELAX_BRANCH_ENCODE(uncond, rvc, length)       \
@@ -452,8 +629,9 @@ enum reg_class
 {
   RCLASS_GPR,
   RCLASS_FPR,
 {
   RCLASS_GPR,
   RCLASS_FPR,
-  RCLASS_CSR,
-  RCLASS_MAX
+  RCLASS_MAX,
+
+  RCLASS_CSR
 };
 
 static struct hash_control *reg_names_hash = NULL;
 };
 
 static struct hash_control *reg_names_hash = NULL;
@@ -483,102 +661,165 @@ hash_reg_names (enum reg_class class, const char * const names[], unsigned n)
     hash_reg_name (class, names[i], i);
 }
 
     hash_reg_name (class, names[i], i);
 }
 
-/* All RISC-V CSRs belong to one of these classes.  */
-
-enum riscv_csr_class
-{
-  CSR_CLASS_NONE,
-
-  CSR_CLASS_I,
-  CSR_CLASS_I_32,      /* rv32 only */
-  CSR_CLASS_F,         /* f-ext only */
-};
-
-/* This structure holds all restricted conditions for a CSR.  */
+/* Init hash table csr_extra_hash to handle CSR.  */
+static void
+riscv_init_csr_hash (const char *name,
+                    unsigned address,
+                    enum riscv_csr_class class,
+                    enum riscv_priv_spec_class define_version,
+                    enum riscv_priv_spec_class abort_version)
+{
+  struct riscv_csr_extra *entry, *pre_entry;
+  const char *hash_error = NULL;
+  bfd_boolean need_enrty = TRUE;
+
+  pre_entry = NULL;
+  entry = (struct riscv_csr_extra *) hash_find (csr_extra_hash, name);
+  while (need_enrty && entry != NULL)
+    {
+      if (entry->csr_class == class
+         && entry->address == address
+         && entry->define_version == define_version
+         && entry->abort_version == abort_version)
+       need_enrty = FALSE;
+      pre_entry = entry;
+      entry = entry->next;
+    }
+  /* Duplicate setting for the CSR, just return and do nothing.  */
+  if (!need_enrty)
+    return;
 
 
-struct riscv_csr_extra
-{
-  /* Class to which this CSR belongs.  Used to decide whether or
-     not this CSR is legal in the current -march context.  */
-  enum riscv_csr_class csr_class;
-};
+  entry = XNEW (struct riscv_csr_extra);
+  entry->csr_class = class;
+  entry->address = address;
+  entry->define_version = define_version;
+  entry->abort_version = abort_version;
+
+  /* If the CSR hasn't been inserted in the hash table, then insert it.
+     Otherwise, attach the extra information to the entry which is already
+     in the hash table.  */
+  if (pre_entry == NULL)
+    {
+      hash_error = hash_insert (csr_extra_hash, name, (void *) entry);
+      if (hash_error != NULL)
+       {
+         fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
+                  name, hash_error);
+         /* Probably a memory allocation problem?  Give up now.  */
+         as_fatal (_("Broken assembler.  No assembly attempted."));
+       }
+    }
+  else
+    pre_entry->next = entry;
+}
 
 
-/* Init two hashes, csr_extra_hash and reg_names_hash, for CSR.  */
+/* Check wether the CSR is valid according to the ISA.  */
 
 static void
 
 static void
-riscv_init_csr_hashes (const char *name,
-                      unsigned address,
-                      enum riscv_csr_class class)
+riscv_csr_class_check (const char *s,
+                      enum riscv_csr_class csr_class)
 {
 {
-  struct riscv_csr_extra *entry = XNEW (struct riscv_csr_extra);
-  entry->csr_class = class;
+  bfd_boolean result = TRUE;
+
+  /* Don't check the ISA dependency when -mcsr-check isn't set.  */
+  if (!riscv_opts.csr_check)
+    return;
 
 
-  const char *hash_error =
-    hash_insert (csr_extra_hash, name, (void *) entry);
-  if (hash_error != NULL)
+  switch (csr_class)
     {
     {
-      fprintf (stderr, _("internal error: can't hash `%s': %s\n"),
-                     name, hash_error);
-      /* Probably a memory allocation problem?  Give up now.  */
-       as_fatal (_("Broken assembler.  No assembly attempted."));
+    case CSR_CLASS_I:
+      result = riscv_subset_supports ("i");
+      break;
+    case CSR_CLASS_F:
+      result = riscv_subset_supports ("f");
+      break;
+    case CSR_CLASS_I_32:
+      result = (xlen == 32 && riscv_subset_supports ("i"));
+      break;
+    default:
+      as_bad (_("internal: bad RISC-V CSR class (0x%x)"), csr_class);
     }
 
     }
 
-  hash_reg_name (RCLASS_CSR, name, address);
+  if (!result)
+    as_warn (_("Invalid CSR `%s' for the current ISA"), s);
 }
 
 }
 
-/* Check wether the CSR is valid according to the ISA.  */
+/* Check and find the CSR address according to the privilege spec version.  */
 
 
-static bfd_boolean
-riscv_csr_class_check (enum riscv_csr_class csr_class)
+static void
+riscv_csr_version_check (const char *csr_name,
+                        struct riscv_csr_extra **entryP)
 {
 {
-  switch (csr_class)
+  struct riscv_csr_extra *entry = *entryP;
+
+  while (entry != NULL)
     {
     {
-    case CSR_CLASS_I: return riscv_subset_supports ("i");
-    case CSR_CLASS_F: return riscv_subset_supports ("f");
-    case CSR_CLASS_I_32:
-      return (xlen == 32 && riscv_subset_supports ("i"));
+      if (default_priv_spec >= entry->define_version
+         && default_priv_spec < entry->abort_version)
+       {
+         /* Find the suitable CSR according to the specific version.  */
+         *entryP = entry;
+         return;
+       }
+      entry = entry->next;
+    }
 
 
-    default:
-      return FALSE;
+  /* We can not find the suitable CSR address according to the privilege
+     version.  Therefore, we use the last defined value.  Report the warning
+     only when the -mcsr-check is set.  Enable the -mcsr-check is recommended,
+     otherwise, you may get the unexpected CSR address.  */
+  if (riscv_opts.csr_check)
+    {
+      const char *priv_name = riscv_get_priv_spec_name (default_priv_spec);
+
+      if (priv_name != NULL)
+       as_warn (_("Invalid CSR `%s' for the privilege spec `%s'"),
+                csr_name, priv_name);
     }
 }
 
     }
 }
 
-/* If the CSR is defined, then we call `riscv_csr_class_check` to do the
-   further checking.  Return FALSE if the CSR is not defined.  Otherwise,
-   return TRUE.  */
+/* Once the CSR is defined, including the old privilege spec, then we call
+   riscv_csr_class_check and riscv_csr_version_check to do the further checking
+   and get the corresponding address.  Return -1 if the CSR is never been
+   defined.  Otherwise, return the address.  */
 
 
-static bfd_boolean
+static unsigned int
 reg_csr_lookup_internal (const char *s)
 {
   struct riscv_csr_extra *r =
     (struct riscv_csr_extra *) hash_find (csr_extra_hash, s);
 
   if (r == NULL)
 reg_csr_lookup_internal (const char *s)
 {
   struct riscv_csr_extra *r =
     (struct riscv_csr_extra *) hash_find (csr_extra_hash, s);
 
   if (r == NULL)
-    return FALSE;
+    return -1U;
 
 
-  /* We just report the warning when the CSR is invalid.  */
-  if (!riscv_csr_class_check (r->csr_class))
-    as_warn (_("Invalid CSR `%s' for the current ISA"), s);
+  /* We just report the warning when the CSR is invalid.  "Invalid CSR" means
+     the CSR was defined, but isn't allowed for the current ISA setting or
+     the privilege spec.  If the CSR is never been defined, then assembler
+     will regard it as a "Unknown CSR" and report error.  If user use number
+     to set the CSR, but over the range (> 0xfff), then assembler will report
+     "Improper CSR" error for it.  */
+  riscv_csr_class_check (s, r->csr_class);
+  riscv_csr_version_check (s, &r);
 
 
-  return TRUE;
+  return r->address;
 }
 
 static unsigned int
 reg_lookup_internal (const char *s, enum reg_class class)
 {
 }
 
 static unsigned int
 reg_lookup_internal (const char *s, enum reg_class class)
 {
-  void *r = hash_find (reg_names_hash, s);
+  void *r;
+
+  if (class == RCLASS_CSR)
+    return reg_csr_lookup_internal (s);
 
 
+  r = hash_find (reg_names_hash, s);
   if (r == NULL || DECODE_REG_CLASS (r) != class)
     return -1;
 
   if (riscv_opts.rve && class == RCLASS_GPR && DECODE_REG_NUM (r) > 15)
     return -1;
 
   if (r == NULL || DECODE_REG_CLASS (r) != class)
     return -1;
 
   if (riscv_opts.rve && class == RCLASS_GPR && DECODE_REG_NUM (r) > 15)
     return -1;
 
-  if (class == RCLASS_CSR
-      && riscv_opts.csr_check
-      && !reg_csr_lookup_internal (s))
-    return -1;
-
   return DECODE_REG_NUM (r);
 }
 
   return DECODE_REG_NUM (r);
 }
 
@@ -862,8 +1103,10 @@ md_begin (void)
 
   /* Create and insert CSR hash tables.  */
   csr_extra_hash = hash_new ();
 
   /* Create and insert CSR hash tables.  */
   csr_extra_hash = hash_new ();
-#define DECLARE_CSR(name, num, class) riscv_init_csr_hashes (#name, num, class);
-#define DECLARE_CSR_ALIAS(name, num, class) DECLARE_CSR(name, num, class);
+#define DECLARE_CSR(name, num, class, define_version, abort_version) \
+  riscv_init_csr_hash (#name, num, class, define_version, abort_version);
+#define DECLARE_CSR_ALIAS(name, num, class, define_version, abort_version) \
+  DECLARE_CSR(name, num, class, define_version, abort_version);
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
 
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
 
@@ -2306,9 +2549,17 @@ md_assemble (char *str)
   expressionS imm_expr;
   bfd_reloc_code_real_type imm_reloc = BFD_RELOC_UNUSED;
 
   expressionS imm_expr;
   bfd_reloc_code_real_type imm_reloc = BFD_RELOC_UNUSED;
 
-  const char *error = riscv_ip (str, &insn, &imm_expr, &imm_reloc, op_hash);
+  /* The arch and priv attributes should be set before assembling.  */
+  if (!start_assemble)
+    {
+      start_assemble = TRUE;
 
 
-  start_assemble = TRUE;
+      /* Set the default_priv_spec according to the priv attributes.  */
+      if (!riscv_set_default_priv_spec (NULL))
+       return;
+    }
+
+  const char *error = riscv_ip (str, &insn, &imm_expr, &imm_reloc, op_hash);
 
   if (error)
     {
 
   if (error)
     {
@@ -2348,6 +2599,8 @@ enum options
   OPTION_NO_ARCH_ATTR,
   OPTION_CSR_CHECK,
   OPTION_NO_CSR_CHECK,
   OPTION_NO_ARCH_ATTR,
   OPTION_CSR_CHECK,
   OPTION_NO_CSR_CHECK,
+  OPTION_MISA_SPEC,
+  OPTION_MPRIV_SPEC,
   OPTION_END_OF_ENUM
 };
 
   OPTION_END_OF_ENUM
 };
 
@@ -2364,6 +2617,8 @@ struct option md_longopts[] =
   {"mno-arch-attr", no_argument, NULL, OPTION_NO_ARCH_ATTR},
   {"mcsr-check", no_argument, NULL, OPTION_CSR_CHECK},
   {"mno-csr-check", no_argument, NULL, OPTION_NO_CSR_CHECK},
   {"mno-arch-attr", no_argument, NULL, OPTION_NO_ARCH_ATTR},
   {"mcsr-check", no_argument, NULL, OPTION_CSR_CHECK},
   {"mno-csr-check", no_argument, NULL, OPTION_NO_CSR_CHECK},
+  {"misa-spec", required_argument, NULL, OPTION_MISA_SPEC},
+  {"mpriv-spec", required_argument, NULL, OPTION_MPRIV_SPEC},
 
   {NULL, no_argument, NULL, 0}
 };
 
   {NULL, no_argument, NULL, 0}
 };
@@ -2392,7 +2647,9 @@ md_parse_option (int c, const char *arg)
   switch (c)
     {
     case OPTION_MARCH:
   switch (c)
     {
     case OPTION_MARCH:
-      riscv_set_arch (arg);
+      /* riscv_after_parse_args will call riscv_set_arch to parse
+        the architecture.  */
+      default_arch_with_ext = arg;
       break;
 
     case OPTION_NO_PIC:
       break;
 
     case OPTION_NO_PIC:
@@ -2450,6 +2707,12 @@ md_parse_option (int c, const char *arg)
       riscv_opts.csr_check = FALSE;
       break;
 
       riscv_opts.csr_check = FALSE;
       break;
 
+    case OPTION_MISA_SPEC:
+      return riscv_set_default_isa_spec (arg);
+
+    case OPTION_MPRIV_SPEC:
+      return riscv_set_default_priv_spec (arg);
+
     default:
       return 0;
     }
     default:
       return 0;
     }
@@ -2460,6 +2723,10 @@ md_parse_option (int c, const char *arg)
 void
 riscv_after_parse_args (void)
 {
 void
 riscv_after_parse_args (void)
 {
+  /* The --with-arch is optional for now, so we have to set the xlen
+     according to the default_arch, which is set by the --targte, first.
+     Then, we use the xlen to set the default_arch_with_ext if the
+     -march and --with-arch are not set.  */
   if (xlen == 0)
     {
       if (strcmp (default_arch, "riscv32") == 0)
   if (xlen == 0)
     {
       if (strcmp (default_arch, "riscv32") == 0)
@@ -2469,9 +2736,19 @@ riscv_after_parse_args (void)
       else
        as_bad ("unknown default architecture `%s'", default_arch);
     }
       else
        as_bad ("unknown default architecture `%s'", default_arch);
     }
+  if (default_arch_with_ext == NULL)
+    default_arch_with_ext = xlen == 64 ? "rv64g" : "rv32g";
+
+  /* Initialize the hash table for extensions with default version.  */
+  ext_version_hash = init_ext_version_hash (riscv_ext_version_table);
+
+  /* If the -misa-spec isn't set, then we set the default ISA spec according
+     to DEFAULT_RISCV_ISA_SPEC.  */
+  if (default_isa_spec == ISA_SPEC_CLASS_NONE)
+    riscv_set_default_isa_spec (DEFAULT_RISCV_ISA_SPEC);
 
 
-  if (riscv_subsets.head == NULL)
-    riscv_set_arch (xlen == 64 ? "rv64g" : "rv32g");
+  /* Set the architecture according to -march or or --with-arch.  */
+  riscv_set_arch (default_arch_with_ext);
 
   /* Add the RVC extension, regardless of -march, to support .option rvc.  */
   riscv_set_rvc (FALSE);
 
   /* Add the RVC extension, regardless of -march, to support .option rvc.  */
   riscv_set_rvc (FALSE);
@@ -2483,6 +2760,11 @@ riscv_after_parse_args (void)
   if (riscv_subset_supports ("e"))
     riscv_set_rve (TRUE);
 
   if (riscv_subset_supports ("e"))
     riscv_set_rve (TRUE);
 
+  /* If the -mpriv-spec isn't set, then we set the default privilege spec
+     according to DEFAULT_PRIV_SPEC.  */
+  if (default_priv_spec == PRIV_SPEC_CLASS_NONE)
+    riscv_set_default_priv_spec (DEFAULT_RISCV_PRIV_SPEC);
+
   /* Infer ABI from ISA if not specified on command line.  */
   if (abi_xlen == 0)
     abi_xlen = xlen;
   /* Infer ABI from ISA if not specified on command line.  */
   if (abi_xlen == 0)
     abi_xlen = xlen;
@@ -3189,14 +3471,16 @@ md_show_usage (FILE *stream)
 {
   fprintf (stream, _("\
 RISC-V options:\n\
 {
   fprintf (stream, _("\
 RISC-V options:\n\
-  -fpic          generate position-independent code\n\
-  -fno-pic       don't generate position-independent code (default)\n\
-  -march=ISA     set the RISC-V architecture\n\
-  -mabi=ABI      set the RISC-V ABI\n\
-  -mrelax        enable relax (default)\n\
-  -mno-relax     disable relax\n\
-  -march-attr    generate RISC-V arch attribute\n\
-  -mno-arch-attr don't generate RISC-V arch attribute\n\
+  -fpic                       generate position-independent code\n\
+  -fno-pic                    don't generate position-independent code (default)\n\
+  -march=ISA                  set the RISC-V architecture\n\
+  -misa-spec=ISAspec          set the RISC-V ISA spec (2.2, 20190608, 20191213)\n\
+  -mpriv-spec=PRIVspec        set the RISC-V privilege spec (1.9, 1.9.1, 1.10, 1.11)\n\
+  -mabi=ABI                   set the RISC-V ABI\n\
+  -mrelax                     enable relax (default)\n\
+  -mno-relax                  disable relax\n\
+  -march-attr                 generate RISC-V arch attribute\n\
+  -mno-arch-attr              don't generate RISC-V arch attribute\n\
 "));
 }
 
 "));
 }
 
@@ -3284,26 +3568,66 @@ s_riscv_insn (int x ATTRIBUTE_UNUSED)
   demand_empty_rest_of_line ();
 }
 
   demand_empty_rest_of_line ();
 }
 
-/* Update arch attributes.  */
+/* Update arch and priv attributes.  If we don't set the corresponding ELF
+   attributes, then try to output the default ones.  */
 
 static void
 
 static void
-riscv_write_out_arch_attr (void)
+riscv_write_out_attrs (void)
 {
 {
-  const char *arch_str = riscv_arch_str (xlen, &riscv_subsets);
+  const char *arch_str, *priv_str, *p;
+  /* versions[0] is major, versions[1] is minor,
+     and versions[3] is revision.  */
+  unsigned versions[3] = {0}, number = 0;
+  unsigned int i;
 
 
+  /* Re-write arch attribute to normalize the arch string.  */
+  arch_str = riscv_arch_str (xlen, &riscv_subsets);
   bfd_elf_add_proc_attr_string (stdoutput, Tag_RISCV_arch, arch_str);
   bfd_elf_add_proc_attr_string (stdoutput, Tag_RISCV_arch, arch_str);
-
   xfree ((void *)arch_str);
   xfree ((void *)arch_str);
+
+  /* For the file without any instruction, we don't set the default_priv_spec
+     according to the priv attributes since the md_assemble isn't called.
+     Call riscv_set_default_priv_spec here for the above case, although
+     it seems strange.  */
+  if (!start_assemble
+      && !riscv_set_default_priv_spec (NULL))
+    return;
+
+  /* Re-write priv attributes by default_priv_spec.  */
+  priv_str = riscv_get_priv_spec_name (default_priv_spec);
+  p = priv_str;
+  for (i = 0; *p; ++p)
+    {
+      if (*p == '.' && i < 3)
+       {
+         versions[i++] = number;
+         number = 0;
+       }
+      else if (ISDIGIT (*p))
+       number = (number * 10) + (*p - '0');
+      else
+       {
+         as_bad (_("internal: bad RISC-V priv spec string (%s)"), priv_str);
+         return;
+       }
+    }
+  versions[i] = number;
+
+  /* Set the priv attributes.  */
+  bfd_elf_add_proc_attr_int (stdoutput, Tag_RISCV_priv_spec, versions[0]);
+  bfd_elf_add_proc_attr_int (stdoutput, Tag_RISCV_priv_spec_minor, versions[1]);
+  bfd_elf_add_proc_attr_int (stdoutput, Tag_RISCV_priv_spec_revision, versions[2]);
 }
 
 }
 
-/* Add the default contents for the .riscv.attributes section.  */
+/* Add the default contents for the .riscv.attributes section.  If any
+   ELF attribute or -march-attr options is set, call riscv_write_out_attrs
+   to update the arch and priv attributes.  */
 
 static void
 riscv_set_public_attributes (void)
 {
 
 static void
 riscv_set_public_attributes (void)
 {
-  if (riscv_opts.arch_attr || explicit_arch_attr)
-    /* Re-write arch attribute to normalize the arch string.  */
-    riscv_write_out_arch_attr ();
+  if (riscv_opts.arch_attr || explicit_attr)
+    riscv_write_out_attrs ();
 }
 
 /* Called after all assembly has been done.  */
 }
 
 /* Called after all assembly has been done.  */
@@ -3357,13 +3681,14 @@ static void
 s_riscv_attribute (int ignored ATTRIBUTE_UNUSED)
 {
   int tag = obj_elf_vendor_attribute (OBJ_ATTR_PROC);
 s_riscv_attribute (int ignored ATTRIBUTE_UNUSED)
 {
   int tag = obj_elf_vendor_attribute (OBJ_ATTR_PROC);
+  unsigned old_xlen;
+  obj_attribute *attr;
 
 
-  if (tag == Tag_RISCV_arch)
+  explicit_attr = TRUE;
+  switch (tag)
     {
     {
-      unsigned old_xlen = xlen;
-
-      explicit_arch_attr = TRUE;
-      obj_attribute *attr;
+    case Tag_RISCV_arch:
+      old_xlen = xlen;
       attr = elf_known_obj_attributes_proc (stdoutput);
       if (!start_assemble)
        riscv_set_arch (attr[Tag_RISCV_arch].s);
       attr = elf_known_obj_attributes_proc (stdoutput);
       if (!start_assemble)
        riscv_set_arch (attr[Tag_RISCV_arch].s);
@@ -3379,6 +3704,17 @@ s_riscv_attribute (int ignored ATTRIBUTE_UNUSED)
          if (! bfd_set_arch_mach (stdoutput, bfd_arch_riscv, mach))
            as_warn (_("Could not set architecture and machine"));
        }
          if (! bfd_set_arch_mach (stdoutput, bfd_arch_riscv, mach))
            as_warn (_("Could not set architecture and machine"));
        }
+      break;
+
+    case Tag_RISCV_priv_spec:
+    case Tag_RISCV_priv_spec_minor:
+    case Tag_RISCV_priv_spec_revision:
+      if (start_assemble)
+       as_fatal (_(".attribute priv spec must set before any instructions"));
+      break;
+
+    default:
+      break;
     }
 }
 
     }
 }
 
index 1515787cee42f5e65f4ca3d17e6a732fa83117de..e480b1d9971a9de2b26f2778b87457dae4e0c108 100755 (executable)
@@ -13009,7 +13009,7 @@ $as_echo "#define NDS32_DEFAULT_ZOL_EXT 1" >>confdefs.h
 $as_echo "$enable_zol_ext" >&6; }
        ;;
 
 $as_echo "$enable_zol_ext" >&6; }
        ;;
 
-      aarch64 | i386 | riscv | s390 | sparc)
+      aarch64 | i386 | s390 | sparc)
        if test $this_target = $target ; then
 
 cat >>confdefs.h <<_ACEOF
        if test $this_target = $target ; then
 
 cat >>confdefs.h <<_ACEOF
@@ -13019,6 +13019,56 @@ _ACEOF
        fi
        ;;
 
        fi
        ;;
 
+      riscv)
+        # --target=riscv[32|64]-*-*.  */
+        if test $this_target = $target ; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_ARCH "${arch}"
+_ACEOF
+
+        fi
+
+        # --with-arch=<value>.  The syntax of <value> is same as Gas option -march.
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for default configuration of --with-arch" >&5
+$as_echo_n "checking for default configuration of --with-arch... " >&6; }
+        if test "x${with_arch}" != x; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_RISCV_ARCH_WITH_EXT "$with_arch"
+_ACEOF
+
+        fi
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_arch" >&5
+$as_echo "$with_arch" >&6; }
+
+        # --with-isa-spec=[2.2|20190608|20191213].
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for default configuration of --with-isa-spec" >&5
+$as_echo_n "checking for default configuration of --with-isa-spec... " >&6; }
+        if test "x${with_isa_spec}" != x; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_RISCV_ISA_SPEC "$with_isa_spec"
+_ACEOF
+
+        fi
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_isa_spec" >&5
+$as_echo "$with_isa_spec" >&6; }
+
+        # --with-priv-spec=[1.9|1.9.1|1.10|1.11].
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for default configuration of --with-priv-spec" >&5
+$as_echo_n "checking for default configuration of --with-priv-spec... " >&6; }
+        if test "x${with_priv_spec}" != x; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_RISCV_PRIV_SPEC "$with_priv_spec"
+_ACEOF
+
+        fi
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_priv_spec" >&5
+$as_echo "$with_priv_spec" >&6; }
+        ;;
+
       rl78)
        f=rl78-parse.o
        case " $extra_objects " in
       rl78)
        f=rl78-parse.o
        case " $extra_objects " in
index 6f32e55a1ae5d2f80340067fb6ea5b90db941d8a..b65108fecb21e81768c94659f04a6fb46bfb6bc5 100644 (file)
@@ -569,12 +569,43 @@ changequote([,])dnl
        AC_MSG_RESULT($enable_zol_ext)
        ;;
 
        AC_MSG_RESULT($enable_zol_ext)
        ;;
 
-      aarch64 | i386 | riscv | s390 | sparc)
+      aarch64 | i386 | s390 | sparc)
        if test $this_target = $target ; then
          AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
        fi
        ;;
 
        if test $this_target = $target ; then
          AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
        fi
        ;;
 
+      riscv)
+        # --target=riscv[32|64]-*-*.  */
+        if test $this_target = $target ; then
+          AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
+        fi
+
+        # --with-arch=<value>.  The syntax of <value> is same as Gas option -march.
+        AC_MSG_CHECKING(for default configuration of --with-arch)
+        if test "x${with_arch}" != x; then
+        AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ARCH_WITH_EXT, "$with_arch",
+                           [Define default value for RISC-V -march.])
+        fi
+        AC_MSG_RESULT($with_arch)
+
+        # --with-isa-spec=[2.2|20190608|20191213].
+        AC_MSG_CHECKING(for default configuration of --with-isa-spec)
+        if test "x${with_isa_spec}" != x; then
+          AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ISA_SPEC, "$with_isa_spec",
+                             [Define default value for RISC-V -misa-spec.])
+        fi
+        AC_MSG_RESULT($with_isa_spec)
+
+        # --with-priv-spec=[1.9|1.9.1|1.10|1.11].
+        AC_MSG_CHECKING(for default configuration of --with-priv-spec)
+        if test "x${with_priv_spec}" != x; then
+          AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
+                             [Define default value for RISC-V -mpriv-spec])
+        fi
+        AC_MSG_RESULT($with_priv_spec)
+        ;;
+
       rl78)
        f=rl78-parse.o
        case " $extra_objects " in
       rl78)
        f=rl78-parse.o
        case " $extra_objects " in
index 488cf56051fa5f73629503cb33a4866a098f1d48..bf942c3b7e93ea4ffc788cf0b33ea7ace89beaee 100644 (file)
@@ -42,6 +42,22 @@ Don't generate position-independent code (default)
 @cindex @samp{-march=ISA} option, RISC-V
 @item -march=ISA
 Select the base isa, as specified by ISA.  For example -march=rv32ima.
 @cindex @samp{-march=ISA} option, RISC-V
 @item -march=ISA
 Select the base isa, as specified by ISA.  For example -march=rv32ima.
+If this option and the architecture attributes aren’t set, then assembler
+will check the default configure setting --with-arch=ISA.
+
+@cindex @samp{-misa-spec=ISAspec} option, RISC-V
+@item -misa-spec=ISAspec
+Select the default isa spec version.  If the version of ISA isn't set
+by -march, then assembler helps to set the version according to
+the default chosen spec.  If this option isn't set, then assembler will
+check the default configure setting --with-isa-spec=ISAspec.
+
+@cindex @samp{-mpriv-spec=PRIVspec} option, RISC-V
+@item -mpriv-spec=PRIVspec
+Select the privileged spec version.  We can decide whether the CSR is valid or
+not according to the chosen spec.  If this option and the privilege attributes
+aren't set, then assembler will check the default configure setting
+--with-priv-spec=PRIVspec.
 
 @cindex @samp{-mabi=ABI} option, RISC-V
 @item -mabi=ABI
 
 @cindex @samp{-mabi=ABI} option, RISC-V
 @item -mabi=ABI
index 0b9d5d7e35c3d161f8222fc3148920918d6a00d5..f93cfac6dde3fbdb77415529dca84f60ec135fbb 100644 (file)
@@ -3,13 +3,12 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#: config/tc-arm.c:708
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2020-01-18 14:01+0000\n"
+"POT-Creation-Date: 2020-05-20 15:53+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"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,26 +56,26 @@ msgstr ""
 msgid "end of file in comment; newline inserted"
 msgstr ""
 
 msgid "end of file in comment; newline inserted"
 msgstr ""
 
-#: as.c:170
+#: as.c:173
 msgid "missing emulation mode name"
 msgstr ""
 
 msgid "missing emulation mode name"
 msgstr ""
 
-#: as.c:185
+#: as.c:188
 #, c-format
 msgid "unrecognized emulation name `%s'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized emulation name `%s'"
 msgstr ""
 
-#: as.c:232
+#: as.c:235
 #, c-format
 msgid "GNU assembler version %s (%s) using BFD version %s\n"
 msgstr ""
 
 #, c-format
 msgid "GNU assembler version %s (%s) using BFD version %s\n"
 msgstr ""
 
-#: as.c:244
+#: as.c:247
 #, c-format
 msgid "Usage: %s [option...] [asmfile...]\n"
 msgstr ""
 
 #, c-format
 msgid "Usage: %s [option...] [asmfile...]\n"
 msgstr ""
 
-#: as.c:246
+#: as.c:249
 #, c-format
 msgid ""
 "Options:\n"
 #, c-format
 msgid ""
 "Options:\n"
@@ -93,12 +92,12 @@ msgid ""
 "                      \t  =FILE  list to FILE (must be last sub-option)\n"
 msgstr ""
 
 "                      \t  =FILE  list to FILE (must be last sub-option)\n"
 msgstr ""
 
-#: as.c:260
+#: as.c:263
 #, c-format
 msgid "  --alternate             initially turn on alternate macro syntax\n"
 msgstr ""
 
 #, c-format
 msgid "  --alternate             initially turn on alternate macro syntax\n"
 msgstr ""
 
-#: as.c:263
+#: as.c:266
 #, c-format
 msgid ""
 "  --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n"
 #, c-format
 msgid ""
 "  --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n"
@@ -106,213 +105,215 @@ msgid ""
 "[default]\n"
 msgstr ""
 
 "[default]\n"
 msgstr ""
 
-#: as.c:266
+#: as.c:269
 #, c-format
 msgid ""
 "  --nocompress-debug-sections\n"
 "                          don't compress DWARF debug sections\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --nocompress-debug-sections\n"
 "                          don't compress DWARF debug sections\n"
 msgstr ""
 
-#: as.c:270
+#: as.c:273
 #, c-format
 msgid ""
 "  --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n"
 "                          compress DWARF debug sections using zlib\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n"
 "                          compress DWARF debug sections using zlib\n"
 msgstr ""
 
-#: as.c:273
+#: as.c:276
 #, c-format
 msgid ""
 "  --nocompress-debug-sections\n"
 "                          don't compress DWARF debug sections [default]\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --nocompress-debug-sections\n"
 "                          don't compress DWARF debug sections [default]\n"
 msgstr ""
 
-#: as.c:277
+#: as.c:280
 #, c-format
 msgid "  -D                      produce assembler debugging messages\n"
 msgstr ""
 
 #, c-format
 msgid "  -D                      produce assembler debugging messages\n"
 msgstr ""
 
-#: as.c:279
+#: as.c:282
 #, c-format
 msgid ""
 "  --debug-prefix-map OLD=NEW\n"
 "                          map OLD to NEW in debug information\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --debug-prefix-map OLD=NEW\n"
 "                          map OLD to NEW in debug information\n"
 msgstr ""
 
-#: as.c:282
+#: as.c:285
 #, c-format
 msgid "  --defsym SYM=VAL        define symbol SYM to given value\n"
 msgstr ""
 
 #, c-format
 msgid "  --defsym SYM=VAL        define symbol SYM to given value\n"
 msgstr ""
 
-#: as.c:298
+#: as.c:301
 #, c-format
 msgid "                          emulate output (default %s)\n"
 msgstr ""
 
 #, c-format
 msgid "                          emulate output (default %s)\n"
 msgstr ""
 
-#: as.c:303
+#: as.c:306
 #, c-format
 msgid "  --execstack             require executable stack for this object\n"
 msgstr ""
 
 #, c-format
 msgid "  --execstack             require executable stack for this object\n"
 msgstr ""
 
-#: as.c:305
+#: as.c:308
 #, c-format
 msgid ""
 "  --noexecstack           don't require executable stack for this object\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --noexecstack           don't require executable stack for this object\n"
 msgstr ""
 
-#: as.c:307
+#: as.c:310
 #, c-format
 msgid ""
 "  --size-check=[error|warning]\n"
 "\t\t\t  ELF .size directive check (default --size-check=error)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --size-check=[error|warning]\n"
 "\t\t\t  ELF .size directive check (default --size-check=error)\n"
 msgstr ""
 
-#: as.c:310
+#: as.c:313
 #, c-format
 msgid "  --elf-stt-common=[no|yes] "
 msgstr ""
 
 #, c-format
 msgid "  --elf-stt-common=[no|yes] "
 msgstr ""
 
-#: as.c:313 as.c:324 config/tc-i386.c:12769 config/tc-i386.c:12789
+#: as.c:316 as.c:327 config/tc-i386.c:13385 config/tc-i386.c:13405
 #, c-format
 msgid "(default: yes)\n"
 msgstr ""
 
 #, c-format
 msgid "(default: yes)\n"
 msgstr ""
 
-#: as.c:315 as.c:326 config/tc-i386.c:12771 config/tc-i386.c:12791
+#: as.c:318 as.c:329 config/tc-i386.c:13387 config/tc-i386.c:13407
 #, c-format
 msgid "(default: no)\n"
 msgstr ""
 
 #, c-format
 msgid "(default: no)\n"
 msgstr ""
 
-#: as.c:316
+#: as.c:319
 #, c-format
 msgid ""
 "                          generate ELF common symbols with STT_COMMON type\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "                          generate ELF common symbols with STT_COMMON type\n"
 msgstr ""
 
-#: as.c:318
+#: as.c:321
 #, c-format
 msgid "  --sectname-subst        enable section name substitution sequences\n"
 msgstr ""
 
 #, c-format
 msgid "  --sectname-subst        enable section name substitution sequences\n"
 msgstr ""
 
-#: as.c:321
+#: as.c:324
 #, c-format
 msgid "  --generate-missing-build-notes=[no|yes] "
 msgstr ""
 
 #, c-format
 msgid "  --generate-missing-build-notes=[no|yes] "
 msgstr ""
 
-#: as.c:328
+#: as.c:331
 #, c-format
 msgid ""
 "                          generate GNU Build notes if none are present in "
 "the input\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "                          generate GNU Build notes if none are present in "
 "the input\n"
 msgstr ""
 
-#: as.c:332
+#: as.c:335
 #, c-format
 msgid "  -f                      skip whitespace and comment preprocessing\n"
 msgstr ""
 
 #, c-format
 msgid "  -f                      skip whitespace and comment preprocessing\n"
 msgstr ""
 
-#: as.c:334
+#: as.c:337
 #, c-format
 msgid "  -g --gen-debug          generate debugging information\n"
 msgstr ""
 
 #, c-format
 msgid "  -g --gen-debug          generate debugging information\n"
 msgstr ""
 
-#: as.c:336
+#: as.c:339
 #, c-format
 msgid "  --gstabs                generate STABS debugging information\n"
 msgstr ""
 
 #, c-format
 msgid "  --gstabs                generate STABS debugging information\n"
 msgstr ""
 
-#: as.c:338
+#: as.c:341
 #, c-format
 msgid ""
 "  --gstabs+               generate STABS debug info with GNU extensions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --gstabs+               generate STABS debug info with GNU extensions\n"
 msgstr ""
 
-#: as.c:340
+#: as.c:343
 #, c-format
 #, c-format
-msgid "  --gdwarf-2              generate DWARF2 debugging information\n"
+msgid ""
+"  --gdwarf-<N>            generate DWARF<N> debugging information. 2 <= <N> "
+"<= 5\n"
 msgstr ""
 
 msgstr ""
 
-#: as.c:342
+#: as.c:345
 #, c-format
 msgid ""
 "  --gdwarf-sections       generate per-function section names for DWARF line "
 "information\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --gdwarf-sections       generate per-function section names for DWARF line "
 "information\n"
 msgstr ""
 
-#: as.c:344
+#: as.c:347
 #, c-format
 msgid "  --hash-size=<value>     set the hash table size close to <value>\n"
 msgstr ""
 
 #, c-format
 msgid "  --hash-size=<value>     set the hash table size close to <value>\n"
 msgstr ""
 
-#: as.c:346
+#: as.c:349
 #, c-format
 msgid "  --help                  show this message and exit\n"
 msgstr ""
 
 #, c-format
 msgid "  --help                  show this message and exit\n"
 msgstr ""
 
-#: as.c:348
+#: as.c:351
 #, c-format
 msgid "  --target-help           show target specific options\n"
 msgstr ""
 
 #, c-format
 msgid "  --target-help           show target specific options\n"
 msgstr ""
 
-#: as.c:350
+#: as.c:353
 #, c-format
 msgid ""
 "  -I DIR                  add DIR to search list for .include directives\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -I DIR                  add DIR to search list for .include directives\n"
 msgstr ""
 
-#: as.c:352
+#: as.c:355
 #, c-format
 msgid "  -J                      don't warn about signed overflow\n"
 msgstr ""
 
 #, c-format
 msgid "  -J                      don't warn about signed overflow\n"
 msgstr ""
 
-#: as.c:354
+#: as.c:357
 #, c-format
 msgid ""
 "  -K                      warn when differences altered for long "
 "displacements\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -K                      warn when differences altered for long "
 "displacements\n"
 msgstr ""
 
-#: as.c:356
+#: as.c:359
 #, c-format
 msgid "  -L,--keep-locals        keep local symbols (e.g. starting with `L')\n"
 msgstr ""
 
 #, c-format
 msgid "  -L,--keep-locals        keep local symbols (e.g. starting with `L')\n"
 msgstr ""
 
-#: as.c:358
+#: as.c:361
 #, c-format
 msgid "  -M,--mri                assemble in MRI compatibility mode\n"
 msgstr ""
 
 #, c-format
 msgid "  -M,--mri                assemble in MRI compatibility mode\n"
 msgstr ""
 
-#: as.c:360
+#: as.c:363
 #, c-format
 msgid ""
 "  --MD FILE               write dependency information in FILE (default "
 "none)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --MD FILE               write dependency information in FILE (default "
 "none)\n"
 msgstr ""
 
-#: as.c:362
+#: as.c:365
 #, c-format
 msgid "  -nocpp                  ignored\n"
 msgstr ""
 
 #, c-format
 msgid "  -nocpp                  ignored\n"
 msgstr ""
 
-#: as.c:364
+#: as.c:367
 #, c-format
 msgid ""
 "  -no-pad-sections        do not pad the end of sections to alignment "
 "boundaries\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -no-pad-sections        do not pad the end of sections to alignment "
 "boundaries\n"
 msgstr ""
 
-#: as.c:366
+#: as.c:369
 #, c-format
 msgid ""
 "  -o OBJFILE              name the object-file output OBJFILE (default a."
 "out)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -o OBJFILE              name the object-file output OBJFILE (default a."
 "out)\n"
 msgstr ""
 
-#: as.c:368
+#: as.c:371
 #, c-format
 msgid "  -R                      fold data section into text section\n"
 msgstr ""
 
 #, c-format
 msgid "  -R                      fold data section into text section\n"
 msgstr ""
 
-#: as.c:370
+#: as.c:373
 #, c-format
 msgid ""
 "  --reduce-memory-overheads \n"
 #, c-format
 msgid ""
 "  --reduce-memory-overheads \n"
@@ -320,44 +321,44 @@ msgid ""
 "                          assembly times\n"
 msgstr ""
 
 "                          assembly times\n"
 msgstr ""
 
-#: as.c:374
+#: as.c:377
 #, c-format
 msgid ""
 "  --statistics            print various measured statistics from execution\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --statistics            print various measured statistics from execution\n"
 msgstr ""
 
-#: as.c:376
+#: as.c:379
 #, c-format
 msgid "  --strip-local-absolute  strip local absolute symbols\n"
 msgstr ""
 
 #, c-format
 msgid "  --strip-local-absolute  strip local absolute symbols\n"
 msgstr ""
 
-#: as.c:378
+#: as.c:381
 #, c-format
 msgid ""
 "  --traditional-format    Use same format as native assembler when possible\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --traditional-format    Use same format as native assembler when possible\n"
 msgstr ""
 
-#: as.c:380
+#: as.c:383
 #, c-format
 msgid "  --version               print assembler version number and exit\n"
 msgstr ""
 
 #, c-format
 msgid "  --version               print assembler version number and exit\n"
 msgstr ""
 
-#: as.c:382
+#: as.c:385
 #, c-format
 msgid "  -W  --no-warn           suppress warnings\n"
 msgstr ""
 
 #, c-format
 msgid "  -W  --no-warn           suppress warnings\n"
 msgstr ""
 
-#: as.c:384
+#: as.c:387
 #, c-format
 msgid "  --warn                  don't suppress warnings\n"
 msgstr ""
 
 #, c-format
 msgid "  --warn                  don't suppress warnings\n"
 msgstr ""
 
-#: as.c:386
+#: as.c:389
 #, c-format
 msgid "  --fatal-warnings        treat warnings as errors\n"
 msgstr ""
 
 #, c-format
 msgid "  --fatal-warnings        treat warnings as errors\n"
 msgstr ""
 
-#: as.c:389
+#: as.c:392
 #, c-format
 msgid ""
 "  --itbl INSTTBL          extend instruction set to include instructions\n"
 #, c-format
 msgid ""
 "  --itbl INSTTBL          extend instruction set to include instructions\n"
@@ -365,22 +366,22 @@ msgid ""
 "INSTTBL\n"
 msgstr ""
 
 "INSTTBL\n"
 msgstr ""
 
-#: as.c:393
+#: as.c:396
 #, c-format
 msgid "  -w                      ignored\n"
 msgstr ""
 
 #, c-format
 msgid "  -w                      ignored\n"
 msgstr ""
 
-#: as.c:395
+#: as.c:398
 #, c-format
 msgid "  -X                      ignored\n"
 msgstr ""
 
 #, c-format
 msgid "  -X                      ignored\n"
 msgstr ""
 
-#: as.c:397
+#: as.c:400
 #, c-format
 msgid "  -Z                      generate object file even after errors\n"
 msgstr ""
 
 #, c-format
 msgid "  -Z                      generate object file even after errors\n"
 msgstr ""
 
-#: as.c:399
+#: as.c:402
 #, c-format
 msgid ""
 "  --listing-lhs-width     set the width in words of the output data column "
 #, c-format
 msgid ""
 "  --listing-lhs-width     set the width in words of the output data column "
@@ -388,7 +389,7 @@ msgid ""
 "                          the listing\n"
 msgstr ""
 
 "                          the listing\n"
 msgstr ""
 
-#: as.c:402
+#: as.c:405
 #, c-format
 msgid ""
 "  --listing-lhs-width2    set the width in words of the continuation lines\n"
 #, c-format
 msgid ""
 "  --listing-lhs-width2    set the width in words of the continuation lines\n"
@@ -397,47 +398,47 @@ msgid ""
 "                          the width of the first line\n"
 msgstr ""
 
 "                          the width of the first line\n"
 msgstr ""
 
-#: as.c:406
+#: as.c:409
 #, c-format
 msgid ""
 "  --listing-rhs-width     set the max width in characters of the lines from\n"
 "                          the source file\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --listing-rhs-width     set the max width in characters of the lines from\n"
 "                          the source file\n"
 msgstr ""
 
-#: as.c:409
+#: as.c:412
 #, c-format
 msgid ""
 "  --listing-cont-lines    set the maximum number of continuation lines used\n"
 "                          for the output data column of the listing\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  --listing-cont-lines    set the maximum number of continuation lines used\n"
 "                          for the output data column of the listing\n"
 msgstr ""
 
-#: as.c:412
+#: as.c:415
 #, c-format
 msgid "  @FILE                   read options from FILE\n"
 msgstr ""
 
 #, c-format
 msgid "  @FILE                   read options from FILE\n"
 msgstr ""
 
-#: as.c:420
+#: as.c:423
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
-#: as.c:644
+#: as.c:653
 #, c-format
 msgid "unrecognized option -%c%s"
 msgstr ""
 
 #. This output is intended to follow the GNU standards document.
 #, c-format
 msgid "unrecognized option -%c%s"
 msgstr ""
 
 #. This output is intended to follow the GNU standards document.
-#: as.c:686
+#: as.c:695
 #, c-format
 msgid "GNU assembler %s\n"
 msgstr ""
 
 #, c-format
 msgid "GNU assembler %s\n"
 msgstr ""
 
-#: as.c:687
+#: as.c:696
 #, c-format
 msgid "Copyright (C) 2020 Free Software Foundation, Inc.\n"
 msgstr ""
 
 #, c-format
 msgid "Copyright (C) 2020 Free Software Foundation, Inc.\n"
 msgstr ""
 
-#: as.c:688
+#: as.c:697
 #, c-format
 msgid ""
 "This program is free software; you may redistribute it under the terms of\n"
 #, c-format
 msgid ""
 "This program is free software; you may redistribute it under the terms of\n"
@@ -445,137 +446,137 @@ msgid ""
 "This program has absolutely no warranty.\n"
 msgstr ""
 
 "This program has absolutely no warranty.\n"
 msgstr ""
 
-#: as.c:693
+#: as.c:702
 #, c-format
 msgid ""
 "This assembler was configured for a target of `%s' and default,\n"
 "cpu type `%s'.\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "This assembler was configured for a target of `%s' and default,\n"
 "cpu type `%s'.\n"
 msgstr ""
 
-#: as.c:697
+#: as.c:706
 #, c-format
 msgid "This assembler was configured for a target of `%s'.\n"
 msgstr ""
 
 #, c-format
 msgid "This assembler was configured for a target of `%s'.\n"
 msgstr ""
 
-#: as.c:705
+#: as.c:714
 msgid "multiple emulation names specified"
 msgstr ""
 
 msgid "multiple emulation names specified"
 msgstr ""
 
-#: as.c:707
+#: as.c:716
 msgid "emulations not handled in this configuration"
 msgstr ""
 
 msgid "emulations not handled in this configuration"
 msgstr ""
 
-#: as.c:712
+#: as.c:721
 #, c-format
 msgid "alias = %s\n"
 msgstr ""
 
 #, c-format
 msgid "alias = %s\n"
 msgstr ""
 
-#: as.c:713
+#: as.c:722
 #, c-format
 msgid "canonical = %s\n"
 msgstr ""
 
 #, c-format
 msgid "canonical = %s\n"
 msgstr ""
 
-#: as.c:714
+#: as.c:723
 #, c-format
 msgid "cpu-type = %s\n"
 msgstr ""
 
 #, c-format
 msgid "cpu-type = %s\n"
 msgstr ""
 
-#: as.c:716
+#: as.c:725
 #, c-format
 msgid "format = %s\n"
 msgstr ""
 
 #, c-format
 msgid "format = %s\n"
 msgstr ""
 
-#: as.c:719
+#: as.c:728
 #, c-format
 msgid "bfd-target = %s\n"
 msgstr ""
 
 #, c-format
 msgid "bfd-target = %s\n"
 msgstr ""
 
-#: as.c:736
+#: as.c:745
 #, c-format
 msgid "Invalid --compress-debug-sections option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid --compress-debug-sections option: `%s'"
 msgstr ""
 
-#: as.c:739
+#: as.c:748
 #, c-format
 msgid "--compress-debug-sections=%s is unsupported"
 msgstr ""
 
 #, c-format
 msgid "--compress-debug-sections=%s is unsupported"
 msgstr ""
 
-#: as.c:764
+#: as.c:773
 msgid "bad defsym; format is --defsym name=value"
 msgstr ""
 
 msgid "bad defsym; format is --defsym name=value"
 msgstr ""
 
-#: as.c:784
+#: as.c:793
 msgid "no file name following -t option"
 msgstr ""
 
 msgid "no file name following -t option"
 msgstr ""
 
-#: as.c:799
+#: as.c:808
 #, c-format
 msgid "failed to read instruction table %s\n"
 msgstr ""
 
 #, c-format
 msgid "failed to read instruction table %s\n"
 msgstr ""
 
-#: as.c:847
+#: as.c:875
 #, c-format
 msgid "Invalid --gdwarf-cie-version `%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid --gdwarf-cie-version `%s'"
 msgstr ""
 
-#: as.c:925
+#: as.c:968
 #, c-format
 msgid "Invalid --size-check= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid --size-check= option: `%s'"
 msgstr ""
 
-#: as.c:934
+#: as.c:977
 #, c-format
 msgid "Invalid --elf-stt-common= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid --elf-stt-common= option: `%s'"
 msgstr ""
 
-#: as.c:948
+#: as.c:991
 #, c-format
 msgid "Invalid --generate-missing-build-notes option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid --generate-missing-build-notes option: `%s'"
 msgstr ""
 
-#: as.c:1019
+#: as.c:1062
 #, c-format
 msgid "invalid listing option `%c'"
 msgstr ""
 
 #, c-format
 msgid "invalid listing option `%c'"
 msgstr ""
 
-#: as.c:1072
+#: as.c:1115
 msgid "--hash-size needs a numeric argument"
 msgstr ""
 
 msgid "--hash-size needs a numeric argument"
 msgstr ""
 
-#: as.c:1094
+#: as.c:1137
 #, c-format
 msgid "%s: total time in assembly: %ld.%06ld\n"
 msgstr ""
 
 #, c-format
 msgid "%s: total time in assembly: %ld.%06ld\n"
 msgstr ""
 
-#: as.c:1260
+#: as.c:1303
 msgid "libbfd ABI mismatch"
 msgstr ""
 
 msgid "libbfd ABI mismatch"
 msgstr ""
 
-#: as.c:1299
+#: as.c:1348
 #, c-format
 msgid "The input '%s' and output '%s' files are the same"
 msgstr ""
 
 #, c-format
 msgid "The input '%s' and output '%s' files are the same"
 msgstr ""
 
-#: as.c:1409
+#: as.c:1458
 #, c-format
 msgid "%d warning"
 msgid_plural "%d warnings"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "%d warning"
 msgid_plural "%d warnings"
 msgstr[0] ""
 msgstr[1] ""
 
-#: as.c:1411
+#: as.c:1460
 #, c-format
 msgid "%d error"
 msgid_plural "%d errors"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "%d error"
 msgid_plural "%d errors"
 msgstr[0] ""
 msgstr[1] ""
 
-#: as.c:1415
+#: as.c:1464
 #, c-format
 msgid "%s, treating warnings as errors"
 msgstr ""
 
 #, c-format
 msgid "%s, treating warnings as errors"
 msgstr ""
 
-#: as.c:1426
+#: as.c:1475
 #, c-format
 msgid "%s, %s, generating bad object file\n"
 msgstr ""
 #, c-format
 msgid "%s, %s, generating bad object file\n"
 msgstr ""
@@ -596,7 +597,7 @@ msgstr ""
 #: cgen.c:106 config/tc-alpha.c:2097 config/tc-alpha.c:2121
 #: config/tc-arc.c:4060 config/tc-arc.c:4134 config/tc-d10v.c:550
 #: config/tc-d30v.c:537 config/tc-mn10200.c:1098 config/tc-mn10300.c:1752
 #: cgen.c:106 config/tc-alpha.c:2097 config/tc-alpha.c:2121
 #: config/tc-arc.c:4060 config/tc-arc.c:4134 config/tc-d10v.c:550
 #: config/tc-d30v.c:537 config/tc-mn10200.c:1098 config/tc-mn10300.c:1752
-#: config/tc-ppc.c:3518 config/tc-ppc.c:4020 config/tc-s390.c:1342
+#: config/tc-ppc.c:3531 config/tc-ppc.c:4033 config/tc-s390.c:1342
 #: config/tc-s390.c:1465 config/tc-s390.c:1599 config/tc-v850.c:2538
 #: config/tc-v850.c:2609 config/tc-v850.c:2656 config/tc-v850.c:2693
 #: config/tc-v850.c:2730 config/tc-v850.c:2993
 #: config/tc-s390.c:1465 config/tc-s390.c:1599 config/tc-v850.c:2538
 #: config/tc-v850.c:2609 config/tc-v850.c:2656 config/tc-v850.c:2693
 #: config/tc-v850.c:2730 config/tc-v850.c:2993
@@ -604,19 +605,19 @@ msgid "too many fixups"
 msgstr ""
 
 #: cgen.c:371 cgen.c:391 config/tc-d10v.c:461 config/tc-d30v.c:453
 msgstr ""
 
 #: cgen.c:371 cgen.c:391 config/tc-d10v.c:461 config/tc-d30v.c:453
-#: config/tc-mn10200.c:1040 config/tc-mn10300.c:1677 config/tc-ppc.c:3560
+#: config/tc-mn10200.c:1040 config/tc-mn10300.c:1677 config/tc-ppc.c:3573
 #: config/tc-s390.c:1326 config/tc-v850.c:2647 config/tc-v850.c:2681
 #: config/tc-s390.c:1326 config/tc-v850.c:2647 config/tc-v850.c:2681
-#: config/tc-v850.c:2721 config/tc-v850.c:2966 config/tc-z80.c:741
+#: config/tc-v850.c:2721 config/tc-v850.c:2966 config/tc-z80.c:770
 msgid "illegal operand"
 msgstr ""
 
 #: cgen.c:395 config/tc-avr.c:898 config/tc-d10v.c:463 config/tc-d30v.c:455
 #: config/tc-h8300.c:497 config/tc-mcore.c:661 config/tc-microblaze.c:613
 #: config/tc-mmix.c:495 config/tc-mn10200.c:1043 config/tc-mn10300.c:1680
 msgid "illegal operand"
 msgstr ""
 
 #: cgen.c:395 config/tc-avr.c:898 config/tc-d10v.c:463 config/tc-d30v.c:455
 #: config/tc-h8300.c:497 config/tc-mcore.c:661 config/tc-microblaze.c:613
 #: config/tc-mmix.c:495 config/tc-mn10200.c:1043 config/tc-mn10300.c:1680
-#: config/tc-msp430.c:417 config/tc-ppc.c:3562 config/tc-s390.c:1331
+#: config/tc-msp430.c:417 config/tc-ppc.c:3575 config/tc-s390.c:1331
 #: config/tc-sh.c:988 config/tc-v850.c:2651 config/tc-v850.c:2685
 #: config/tc-v850.c:2725 config/tc-v850.c:2969 config/tc-xgate.c:895
 #: config/tc-sh.c:988 config/tc-v850.c:2651 config/tc-v850.c:2685
 #: config/tc-v850.c:2725 config/tc-v850.c:2969 config/tc-xgate.c:895
-#: config/tc-z80.c:851 config/tc-z8k.c:349
+#: config/tc-z80.c:912 config/tc-z8k.c:349
 msgid "missing operand"
 msgstr ""
 
 msgid "missing operand"
 msgstr ""
 
@@ -629,22 +630,22 @@ msgid "operand mask overflow"
 msgstr ""
 
 #. We can't actually support subtracting a symbol.
 msgstr ""
 
 #. We can't actually support subtracting a symbol.
-#: cgen.c:857 config/tc-arm.c:2048 config/tc-arm.c:11269 config/tc-arm.c:11321
-#: config/tc-arm.c:11603 config/tc-arm.c:12499 config/tc-arm.c:13639
-#: config/tc-arm.c:13679 config/tc-arm.c:14052 config/tc-arm.c:14094
-#: config/tc-arm.c:21317 config/tc-arm.c:21377 config/tc-avr.c:1549
+#: cgen.c:857 config/tc-arm.c:2075 config/tc-arm.c:11318 config/tc-arm.c:11370
+#: config/tc-arm.c:11652 config/tc-arm.c:12548 config/tc-arm.c:13688
+#: config/tc-arm.c:13728 config/tc-arm.c:14101 config/tc-arm.c:14143
+#: config/tc-arm.c:21376 config/tc-arm.c:21436 config/tc-avr.c:1549
 #: config/tc-avr.c:1561 config/tc-avr.c:1825 config/tc-cris.c:4060
 #: config/tc-d10v.c:1507 config/tc-d30v.c:1912 config/tc-ft32.c:574
 #: config/tc-avr.c:1561 config/tc-avr.c:1825 config/tc-cris.c:4060
 #: config/tc-d10v.c:1507 config/tc-d30v.c:1912 config/tc-ft32.c:574
-#: config/tc-ft32.c:587 config/tc-mips.c:9681 config/tc-mips.c:10991
-#: config/tc-mips.c:12288 config/tc-mips.c:12971 config/tc-nds32.c:7827
+#: config/tc-ft32.c:587 config/tc-mips.c:9720 config/tc-mips.c:11030
+#: config/tc-mips.c:12327 config/tc-mips.c:13010 config/tc-nds32.c:7827
 #: config/tc-pru.c:746 config/tc-pru.c:756 config/tc-spu.c:972
 #: config/tc-spu.c:996 config/tc-tilegx.c:1483 config/tc-tilepro.c:1344
 #: config/tc-v850.c:3451 config/tc-vax.c:282 config/tc-xstormy16.c:482
 #: config/tc-pru.c:746 config/tc-pru.c:756 config/tc-spu.c:972
 #: config/tc-spu.c:996 config/tc-tilegx.c:1483 config/tc-tilepro.c:1344
 #: config/tc-v850.c:3451 config/tc-vax.c:282 config/tc-xstormy16.c:482
-#: config/tc-xtensa.c:5967 config/tc-xtensa.c:13044
+#: config/tc-xtensa.c:5987 config/tc-xtensa.c:13070 config/tc-z80.c:3798
 msgid "expression too complex"
 msgstr ""
 
 msgid "expression too complex"
 msgstr ""
 
-#: cgen.c:956 config/tc-ppc.c:7722 config/tc-s390.c:2380 config/tc-v850.c:3503
+#: cgen.c:956 config/tc-ppc.c:7735 config/tc-s390.c:2380 config/tc-v850.c:3503
 #: config/tc-xstormy16.c:539
 msgid "unresolved expression that must be resolved"
 msgstr ""
 #: config/tc-xstormy16.c:539
 msgid "unresolved expression that must be resolved"
 msgstr ""
@@ -734,7 +735,7 @@ msgstr ""
 msgid "Infinities are not supported by this target"
 msgstr ""
 
 msgid "Infinities are not supported by this target"
 msgstr ""
 
-#: config/atof-ieee.c:829 config/atof-vax.c:449 config/tc-arm.c:1294
+#: config/atof-ieee.c:829 config/atof-vax.c:449 config/tc-arm.c:1321
 #: config/tc-ia64.c:11603 config/tc-tic30.c:1263 config/tc-tic4x.c:2583
 msgid "Unrecognized or unsupported floating point constant"
 msgstr ""
 #: config/tc-ia64.c:11603 config/tc-tic30.c:1263 config/tc-tic4x.c:2583
 msgid "Unrecognized or unsupported floating point constant"
 msgstr ""
@@ -759,8 +760,8 @@ msgstr ""
 msgid "Inserting \"%s\" into structure table failed: %s"
 msgstr ""
 
 msgid "Inserting \"%s\" into structure table failed: %s"
 msgstr ""
 
-#: config/obj-coff.c:212 config/obj-coff.c:1675 config/tc-ppc.c:6259
-#: config/tc-tic54x.c:3984 read.c:2961
+#: config/obj-coff.c:212 config/obj-coff.c:1680 config/tc-ppc.c:6272
+#: config/tc-tic54x.c:3984 read.c:2962
 #, c-format
 msgid "error setting flags for \"%s\": %s"
 msgstr ""
 #, c-format
 msgid "error setting flags for \"%s\": %s"
 msgstr ""
@@ -854,22 +855,22 @@ msgstr ""
 #. STYP_INFO
 #. STYP_LIB
 #. STYP_OVER
 #. STYP_INFO
 #. STYP_LIB
 #. STYP_OVER
-#: config/obj-coff.c:1640
+#: config/obj-coff.c:1642
 #, c-format
 msgid "unsupported section attribute '%c'"
 msgstr ""
 
 #, c-format
 msgid "unsupported section attribute '%c'"
 msgstr ""
 
-#: config/obj-coff.c:1644 config/tc-ppc.c:6241
+#: config/obj-coff.c:1646 config/tc-ppc.c:6254
 #, c-format
 msgid "unknown section attribute '%c'"
 msgstr ""
 
 #, c-format
 msgid "unknown section attribute '%c'"
 msgstr ""
 
-#: config/obj-coff.c:1687 config/obj-macho.c:269
+#: config/obj-coff.c:1692 config/obj-macho.c:269
 #, c-format
 msgid "Ignoring changed section attributes for %s"
 msgstr ""
 
 #, c-format
 msgid "Ignoring changed section attributes for %s"
 msgstr ""
 
-#: config/obj-coff.c:1825
+#: config/obj-coff.c:1830
 #, c-format
 msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
 msgstr ""
 #, c-format
 msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
 msgstr ""
@@ -891,236 +892,276 @@ msgstr ""
 msgid "Missing symbol name in directive"
 msgstr ""
 
 msgid "Missing symbol name in directive"
 msgstr ""
 
-#: config/obj-elf.c:644
+#: config/obj-elf.c:649
 #, c-format
 msgid "setting incorrect section type for %s"
 msgstr ""
 
 #, c-format
 msgid "setting incorrect section type for %s"
 msgstr ""
 
-#: config/obj-elf.c:649
+#: config/obj-elf.c:654
 #, c-format
 msgid "ignoring incorrect section type for %s"
 msgstr ""
 
 #, c-format
 msgid "ignoring incorrect section type for %s"
 msgstr ""
 
-#: config/obj-elf.c:700
+#: config/obj-elf.c:705
 #, c-format
 msgid "setting incorrect section attributes for %s"
 msgstr ""
 
 #, c-format
 msgid "setting incorrect section attributes for %s"
 msgstr ""
 
-#: config/obj-elf.c:757
+#. This is a special section with known type.  User
+#. assembly might get the section type wrong; Even high
+#. profile projects like glibc have done so in the past.
+#. So don't error in this case.
+#: config/obj-elf.c:776
 #, c-format
 msgid "ignoring changed section type for %s"
 msgstr ""
 
 #, c-format
 msgid "ignoring changed section type for %s"
 msgstr ""
 
-#: config/obj-elf.c:769
+#. Do error when assembly isn't self-consistent.
+#: config/obj-elf.c:779
+#, c-format
+msgid "changed section type for %s"
+msgstr ""
+
+#: config/obj-elf.c:794
 #, c-format
 msgid "ignoring changed section attributes for %s"
 msgstr ""
 
 #, c-format
 msgid "ignoring changed section attributes for %s"
 msgstr ""
 
-#: config/obj-elf.c:776
+#: config/obj-elf.c:796
+#, c-format
+msgid "changed section attributes for %s"
+msgstr ""
+
+#: config/obj-elf.c:804
 #, c-format
 #, c-format
-msgid "ignoring changed section entity size for %s"
+msgid "changed section entity size for %s"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:841
-msgid "unrecognized .section attribute: want a,e,w,x,M,S,G,T or number"
+#: config/obj-elf.c:872
+msgid "unrecognized .section attribute: want a,e,o,w,x,M,S,G,T or number"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:901
+#: config/obj-elf.c:932
 msgid "extraneous characters at end of numeric section type"
 msgstr ""
 
 msgid "extraneous characters at end of numeric section type"
 msgstr ""
 
-#: config/obj-elf.c:907 read.c:2945
+#: config/obj-elf.c:938 read.c:2946
 msgid "unrecognized section type"
 msgstr ""
 
 msgid "unrecognized section type"
 msgstr ""
 
-#: config/obj-elf.c:939
+#: config/obj-elf.c:970
 msgid "unrecognized section attribute"
 msgstr ""
 
 msgid "unrecognized section attribute"
 msgstr ""
 
-#: config/obj-elf.c:970 config/tc-alpha.c:4208
+#: config/obj-elf.c:1001 config/tc-alpha.c:4208
 msgid "missing name"
 msgstr ""
 
 msgid "missing name"
 msgstr ""
 
-#: config/obj-elf.c:1050
+#: config/obj-elf.c:1083
 #, c-format
 msgid "section name '%s' already defined as another symbol"
 msgstr ""
 
 #, c-format
 msgid "section name '%s' already defined as another symbol"
 msgstr ""
 
-#: config/obj-elf.c:1143
+#: config/obj-elf.c:1175
 msgid "invalid merge entity size"
 msgstr ""
 
 msgid "invalid merge entity size"
 msgstr ""
 
-#: config/obj-elf.c:1150
+#: config/obj-elf.c:1182
 msgid "entity size for SHF_MERGE not specified"
 msgstr ""
 
 msgid "entity size for SHF_MERGE not specified"
 msgstr ""
 
-#: config/obj-elf.c:1156
+#: config/obj-elf.c:1201
 msgid "? section flag ignored with G present"
 msgstr ""
 
 msgid "? section flag ignored with G present"
 msgstr ""
 
-#: config/obj-elf.c:1180
+#: config/obj-elf.c:1225
 msgid "group name for SHF_GROUP not specified"
 msgstr ""
 
 msgid "group name for SHF_GROUP not specified"
 msgstr ""
 
-#: config/obj-elf.c:1205
+#: config/obj-elf.c:1251
 #, c-format
 msgid "unsupported mbind section info: %s"
 msgstr ""
 
 #, c-format
 msgid "unsupported mbind section info: %s"
 msgstr ""
 
-#: config/obj-elf.c:1220
+#: config/obj-elf.c:1300
+#, c-format
+msgid "unsupported section id: %s"
+msgstr ""
+
+#: config/obj-elf.c:1325
 msgid "character following name is not '#'"
 msgstr ""
 
 msgid "character following name is not '#'"
 msgstr ""
 
-#: config/obj-elf.c:1249
+#: config/obj-elf.c:1354
 #, c-format
 msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s"
 msgstr ""
 
 #, c-format
 msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s"
 msgstr ""
 
-#: config/obj-elf.c:1256
+#: config/obj-elf.c:1361
 msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
 msgstr ""
 
 msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
 msgstr ""
 
-#: config/obj-elf.c:1359
+#: config/obj-elf.c:1464
 msgid ".previous without corresponding .section; ignored"
 msgstr ""
 
 msgid ".previous without corresponding .section; ignored"
 msgstr ""
 
-#: config/obj-elf.c:1385
+#: config/obj-elf.c:1490
 msgid ".popsection without corresponding .pushsection; ignored"
 msgstr ""
 
 msgid ".popsection without corresponding .pushsection; ignored"
 msgstr ""
 
-#: config/obj-elf.c:1431
-msgid "expected comma after name in .symver"
+#: config/obj-elf.c:1534 config/obj-elf.c:1629
+#, c-format
+msgid "missing version name in `%s' for symbol `%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:1447 config/obj-elf.c:2365
+#: config/obj-elf.c:1553
 #, c-format
 #, c-format
-msgid "`%s' can't be versioned to common symbol '%s'"
+msgid "only one version name with `@@@' is allowed for symbol `%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:1462
+#: config/obj-elf.c:1561
 #, c-format
 #, c-format
-msgid "missing version name in `%s' for symbol `%s'"
+msgid "invalid version name '%s' for symbol `%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:1473
+#: config/obj-elf.c:1603
+msgid "expected comma after name in .symver"
+msgstr ""
+
+#: config/obj-elf.c:1620 config/obj-elf.c:2513
 #, c-format
 #, c-format
-msgid "multiple versions [`%s'|`%s'] for symbol `%s'"
+msgid "`%s' can't be versioned to common symbol '%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:1509
+#: config/obj-elf.c:1697
 #, c-format
 msgid "expected `%s' to have already been set for .vtable_inherit"
 msgstr ""
 
 #, c-format
 msgid "expected `%s' to have already been set for .vtable_inherit"
 msgstr ""
 
-#: config/obj-elf.c:1519
+#: config/obj-elf.c:1707
 msgid "expected comma after name in .vtable_inherit"
 msgstr ""
 
 msgid "expected comma after name in .vtable_inherit"
 msgstr ""
 
-#: config/obj-elf.c:1580
+#: config/obj-elf.c:1768
 msgid "expected comma after name in .vtable_entry"
 msgstr ""
 
 msgid "expected comma after name in .vtable_entry"
 msgstr ""
 
-#: config/obj-elf.c:1719
+#: config/obj-elf.c:1907
 #, c-format
 msgid "Attribute name not recognised: %s"
 msgstr ""
 
 #, c-format
 msgid "Attribute name not recognised: %s"
 msgstr ""
 
-#: config/obj-elf.c:1736
+#: config/obj-elf.c:1924
 msgid "expected numeric constant"
 msgstr ""
 
 msgid "expected numeric constant"
 msgstr ""
 
-#: config/obj-elf.c:1745 config/tc-arm.c:7015
+#: config/obj-elf.c:1933 config/tc-arm.c:7042
 msgid "expected comma"
 msgstr ""
 
 msgid "expected comma"
 msgstr ""
 
-#: config/obj-elf.c:1778
+#: config/obj-elf.c:1966
 msgid "bad string constant"
 msgstr ""
 
 msgid "bad string constant"
 msgstr ""
 
-#: config/obj-elf.c:1782
+#: config/obj-elf.c:1970
 msgid "expected <tag> , <value>"
 msgstr ""
 
 msgid "expected <tag> , <value>"
 msgstr ""
 
-#: config/obj-elf.c:1900
+#: config/obj-elf.c:2088
 msgid "expected quoted string"
 msgstr ""
 
 msgid "expected quoted string"
 msgstr ""
 
-#: config/obj-elf.c:1920
+#: config/obj-elf.c:2108
 #, c-format
 msgid "expected comma after name `%s' in .size directive"
 msgstr ""
 
 #, c-format
 msgid "expected comma after name `%s' in .size directive"
 msgstr ""
 
-#: config/obj-elf.c:1929
+#: config/obj-elf.c:2117
 msgid "missing expression in .size directive"
 msgstr ""
 
 msgid "missing expression in .size directive"
 msgstr ""
 
-#: config/obj-elf.c:2052
+#: config/obj-elf.c:2240
 #, c-format
 msgid "symbol '%s' is already defined"
 msgstr ""
 
 #, c-format
 msgid "symbol '%s' is already defined"
 msgstr ""
 
-#: config/obj-elf.c:2073
+#: config/obj-elf.c:2261
 #, c-format
 msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets"
 msgstr ""
 
 #, c-format
 msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets"
 msgstr ""
 
-#: config/obj-elf.c:2086
+#: config/obj-elf.c:2265
+#, c-format
+msgid "symbol type \"%s\" is not supported by MIPS targets"
+msgstr ""
+
+#: config/obj-elf.c:2278
 #, c-format
 msgid "symbol type \"%s\" is supported only by GNU targets"
 msgstr ""
 
 #, c-format
 msgid "symbol type \"%s\" is supported only by GNU targets"
 msgstr ""
 
-#: config/obj-elf.c:2096
+#: config/obj-elf.c:2288
 #, c-format
 msgid "unrecognized symbol type \"%s\""
 msgstr ""
 
 #, c-format
 msgid "unrecognized symbol type \"%s\""
 msgstr ""
 
-#: config/obj-elf.c:2117
+#: config/obj-elf.c:2309
 #, c-format
 msgid "cannot change type of common symbol '%s'"
 msgstr ""
 
 #, c-format
 msgid "cannot change type of common symbol '%s'"
 msgstr ""
 
-#: config/obj-elf.c:2129
+#: config/obj-elf.c:2321
 #, c-format
 msgid "symbol '%s' already has its type set"
 msgstr ""
 
 #, c-format
 msgid "symbol '%s' already has its type set"
 msgstr ""
 
-#: config/obj-elf.c:2293 config/obj-elf.c:2296
+#: config/obj-elf.c:2486 config/obj-elf.c:2489
 #, c-format
 msgid ".size expression for %s does not evaluate to a constant"
 msgstr ""
 
 #, c-format
 msgid ".size expression for %s does not evaluate to a constant"
 msgstr ""
 
-#: config/obj-elf.c:2330
+#: config/obj-elf.c:2585 ecoff.c:3600
 #, c-format
 #, c-format
-msgid ""
-"invalid attempt to declare external version name as default in symbol `%s'"
+msgid "symbol `%s' can not be both weak and common"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:2399 ecoff.c:3600
+#: config/obj-elf.c:2620
 #, c-format
 #, c-format
-msgid "symbol `%s' can not be both weak and common"
+msgid "undefined linked-to symbol `%s' on section `%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/obj-elf.c:2494
+#: config/obj-elf.c:2695
 #, c-format
 msgid "assuming all members of group `%s' are COMDAT"
 msgstr ""
 
 #, c-format
 msgid "assuming all members of group `%s' are COMDAT"
 msgstr ""
 
-#: config/obj-elf.c:2506
+#: config/obj-elf.c:2707
 #, c-format
 msgid "can't create group: %s"
 msgstr ""
 
 #, c-format
 msgid "can't create group: %s"
 msgstr ""
 
-#: config/obj-elf.c:2657
+#: config/obj-elf.c:2781
+#, c-format
+msgid ""
+"invalid attempt to declare external version name as default in symbol `%s'"
+msgstr ""
+
+#: config/obj-elf.c:2791
+#, c-format
+msgid "multiple versions [`%s'|`%s'] for symbol `%s'"
+msgstr ""
+
+#: config/obj-elf.c:2883
 #, c-format
 msgid "failed to set up debugging information: %s"
 msgstr ""
 
 #, c-format
 msgid "failed to set up debugging information: %s"
 msgstr ""
 
-#: config/obj-elf.c:2677
+#: config/obj-elf.c:2903
 #, c-format
 msgid "can't start writing .mdebug section: %s"
 msgstr ""
 
 #, c-format
 msgid "can't start writing .mdebug section: %s"
 msgstr ""
 
-#: config/obj-elf.c:2685
+#: config/obj-elf.c:2911
 #, c-format
 msgid "could not write .mdebug section: %s"
 msgstr ""
 #, c-format
 msgid "could not write .mdebug section: %s"
 msgstr ""
@@ -1170,7 +1211,7 @@ msgid "missing sizeof_stub expression"
 msgstr ""
 
 #: config/obj-macho.c:478 config/tc-ia64.c:1083 config/tc-ia64.c:11765
 msgstr ""
 
 #: config/obj-macho.c:478 config/tc-ia64.c:1083 config/tc-ia64.c:11765
-#: config/tc-score.c:6099 expr.c:1179 read.c:1716
+#: config/tc-score.c:6087 expr.c:1179 read.c:1717
 msgid "expected symbol name"
 msgstr ""
 
 msgid "expected symbol name"
 msgstr ""
 
@@ -1178,23 +1219,23 @@ msgstr ""
 msgid "bad or irreducible absolute expression"
 msgstr ""
 
 msgid "bad or irreducible absolute expression"
 msgstr ""
 
-#: config/obj-macho.c:497 config/tc-score.c:6116 read.c:1754
+#: config/obj-macho.c:497 config/tc-score.c:6104 read.c:1755
 msgid "missing size expression"
 msgstr ""
 
 msgid "missing size expression"
 msgstr ""
 
-#: config/obj-macho.c:506 config/tc-ia64.c:1118 read.c:1760
+#: config/obj-macho.c:506 config/tc-ia64.c:1118 read.c:1761
 #, c-format
 msgid "size (%ld) out of range, ignored"
 msgstr ""
 
 #, c-format
 msgid "size (%ld) out of range, ignored"
 msgstr ""
 
-#: config/obj-macho.c:516 config/tc-score.c:6260 dwarf2dbg.c:997 ecoff.c:3359
-#: read.c:1772 read.c:1877 read.c:2628 read.c:3201 read.c:3632 symbols.c:474
+#: config/obj-macho.c:516 config/tc-score.c:6242 dwarf2dbg.c:1267 ecoff.c:3359
+#: read.c:1773 read.c:1878 read.c:2629 read.c:3202 read.c:3633 symbols.c:474
 #: symbols.c:569
 #, c-format
 msgid "symbol `%s' is already defined"
 msgstr ""
 
 #: symbols.c:569
 #, c-format
 msgid "symbol `%s' is already defined"
 msgstr ""
 
-#: config/obj-macho.c:526 read.c:1787
+#: config/obj-macho.c:526 read.c:1788
 #, c-format
 msgid "size of \"%s\" is already %ld; not changing to %ld"
 msgstr ""
 #, c-format
 msgid "size of \"%s\" is already %ld; not changing to %ld"
 msgstr ""
@@ -1405,7 +1446,7 @@ msgstr ""
 msgid "128-bit SIMD scalar or floating-point quad precision register expected"
 msgstr ""
 
 msgid "128-bit SIMD scalar or floating-point quad precision register expected"
 msgstr ""
 
-#: config/tc-aarch64.c:427 config/tc-arm.c:4722
+#: config/tc-aarch64.c:427 config/tc-arm.c:4749
 msgid "register expected"
 msgstr ""
 
 msgid "register expected"
 msgstr ""
 
@@ -1432,8 +1473,8 @@ msgstr ""
 msgid "invalid register type %d"
 msgstr ""
 
 msgid "invalid register type %d"
 msgstr ""
 
-#: config/tc-aarch64.c:604 config/tc-aarch64.c:606 config/tc-arm.c:1168
-#: config/tc-score.c:6510 expr.c:1350 read.c:2610
+#: config/tc-aarch64.c:604 config/tc-aarch64.c:606 config/tc-arm.c:1195
+#: config/tc-score.c:6492 expr.c:1350 read.c:2611
 msgid "bad expression"
 msgstr ""
 
 msgid "bad expression"
 msgstr ""
 
@@ -1441,7 +1482,7 @@ msgstr ""
 msgid "bad segment"
 msgstr ""
 
 msgid "bad segment"
 msgstr ""
 
-#: config/tc-aarch64.c:651 config/tc-arm.c:1234
+#: config/tc-aarch64.c:651 config/tc-arm.c:1261
 msgid "invalid floating point number"
 msgstr ""
 
 msgid "invalid floating point number"
 msgstr ""
 
@@ -1482,8 +1523,8 @@ msgid "index not allowed inside register list"
 msgstr ""
 
 #: config/tc-aarch64.c:1075 config/tc-aarch64.c:2045 config/tc-aarch64.c:2246
 msgstr ""
 
 #: config/tc-aarch64.c:1075 config/tc-aarch64.c:2045 config/tc-aarch64.c:2246
-#: config/tc-arm.c:1788 config/tc-arm.c:3998 config/tc-arm.c:5172
-#: config/tc-arm.c:7294
+#: config/tc-arm.c:1815 config/tc-arm.c:4025 config/tc-arm.c:5199
+#: config/tc-arm.c:7329
 msgid "constant expression required"
 msgstr ""
 
 msgid "constant expression required"
 msgstr ""
 
@@ -1496,7 +1537,7 @@ msgstr ""
 msgid "invalid use of vector register"
 msgstr ""
 
 msgid "invalid use of vector register"
 msgstr ""
 
-#: config/tc-aarch64.c:1186 config/tc-arm.c:2104
+#: config/tc-aarch64.c:1186 config/tc-arm.c:2131
 msgid "expecting {"
 msgstr ""
 
 msgid "expecting {"
 msgstr ""
 
@@ -1536,30 +1577,30 @@ msgstr ""
 msgid "empty vector register list"
 msgstr ""
 
 msgid "empty vector register list"
 msgstr ""
 
-#: config/tc-aarch64.c:1321 config/tc-arm.c:2540
+#: config/tc-aarch64.c:1321 config/tc-arm.c:2567
 #, c-format
 msgid "ignoring attempt to redefine built-in register '%s'"
 msgstr ""
 
 #, c-format
 msgid "ignoring attempt to redefine built-in register '%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:1327 config/tc-arm.c:2545
+#: config/tc-aarch64.c:1327 config/tc-arm.c:2572
 #, c-format
 msgid "ignoring redefinition of register alias '%s'"
 msgstr ""
 
 #, c-format
 msgid "ignoring redefinition of register alias '%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:1373 config/tc-arm.c:2611
+#: config/tc-aarch64.c:1373 config/tc-arm.c:2638
 #, c-format
 msgid "unknown register '%s' -- .req ignored"
 msgstr ""
 
 #, c-format
 msgid "unknown register '%s' -- .req ignored"
 msgstr ""
 
-#: config/tc-aarch64.c:1431 config/tc-arm.c:2819
+#: config/tc-aarch64.c:1431 config/tc-arm.c:2846
 msgid "invalid syntax for .req directive"
 msgstr ""
 
 msgid "invalid syntax for .req directive"
 msgstr ""
 
-#: config/tc-aarch64.c:1456 config/tc-arm.c:2857
+#: config/tc-aarch64.c:1456 config/tc-arm.c:2884
 msgid "invalid syntax for .unreq directive"
 msgstr ""
 
 msgid "invalid syntax for .unreq directive"
 msgstr ""
 
-#: config/tc-aarch64.c:1462 config/tc-arm.c:2864
+#: config/tc-aarch64.c:1462 config/tc-arm.c:2891
 #, c-format
 msgid "unknown register alias '%s'"
 msgstr ""
 #, c-format
 msgid "unknown register alias '%s'"
 msgstr ""
@@ -1569,13 +1610,13 @@ msgstr ""
 msgid "ignoring attempt to undefine built-in register '%s'"
 msgstr ""
 
 msgid "ignoring attempt to undefine built-in register '%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:1788 config/tc-arm.c:3610 config/tc-arm.c:3637
-#: config/tc-arm.c:3650
+#: config/tc-aarch64.c:1788 config/tc-arm.c:3637 config/tc-arm.c:3664
+#: config/tc-arm.c:3677
 msgid "literal pool overflow"
 msgstr ""
 
 msgid "literal pool overflow"
 msgstr ""
 
-#: config/tc-aarch64.c:1970 config/tc-aarch64.c:6223 config/tc-arm.c:3871
-#: config/tc-arm.c:7711
+#: config/tc-aarch64.c:1970 config/tc-aarch64.c:6224 config/tc-arm.c:3898
+#: config/tc-arm.c:7760
 msgid "unrecognized relocation suffix"
 msgstr ""
 
 msgid "unrecognized relocation suffix"
 msgstr ""
 
@@ -1596,7 +1637,7 @@ msgstr ""
 msgid "invalid floating-point constant"
 msgstr ""
 
 msgid "invalid floating-point constant"
 msgstr ""
 
-#: config/tc-aarch64.c:3121 config/tc-arm.c:5512 config/tc-arm.c:5521
+#: config/tc-aarch64.c:3121 config/tc-arm.c:5539 config/tc-arm.c:5548
 msgid "shift expression expected"
 msgstr ""
 
 msgid "shift expression expected"
 msgstr ""
 
@@ -1699,7 +1740,7 @@ msgstr ""
 msgid "invalid expression in the address"
 msgstr ""
 
 msgid "invalid expression in the address"
 msgstr ""
 
-#: config/tc-aarch64.c:3720 config/tc-arm.c:6102 config/tc-arm.c:6695
+#: config/tc-aarch64.c:3720 config/tc-arm.c:6129 config/tc-arm.c:6722
 msgid "']' expected"
 msgstr ""
 
 msgid "']' expected"
 msgstr ""
 
@@ -1707,7 +1748,7 @@ msgstr ""
 msgid "register offset not allowed in pre-indexed addressing mode"
 msgstr ""
 
 msgid "register offset not allowed in pre-indexed addressing mode"
 msgstr ""
 
-#: config/tc-aarch64.c:3743 config/tc-arm.c:6138
+#: config/tc-aarch64.c:3743 config/tc-arm.c:6165
 msgid "cannot combine pre- and post-indexing"
 msgstr ""
 
 msgid "cannot combine pre- and post-indexing"
 msgstr ""
 
@@ -1717,11 +1758,11 @@ msgid "missing offset in the pre-indexed address"
 msgstr ""
 
 #: config/tc-aarch64.c:4029
 msgstr ""
 
 #: config/tc-aarch64.c:4029
-msgid "unknown or missing option to PSB"
+msgid "unknown or missing option to PSB/TSB"
 msgstr ""
 
 #: config/tc-aarch64.c:4037
 msgstr ""
 
 #: config/tc-aarch64.c:4037
-msgid "the specified option is not accepted for PSB"
+msgid "the specified option is not accepted for PSB/TSB"
 msgstr ""
 
 #: config/tc-aarch64.c:4064 config/tc-aarch64.c:4078
 msgstr ""
 
 #: config/tc-aarch64.c:4064 config/tc-aarch64.c:4078
@@ -1754,7 +1795,7 @@ msgstr ""
 msgid "Info: "
 msgstr ""
 
 msgid "Info: "
 msgstr ""
 
-#: config/tc-aarch64.c:4764 config/tc-score.c:2749 config/tc-score.c:6499
+#: config/tc-aarch64.c:4764 config/tc-score.c:2749 config/tc-score.c:6481
 #, c-format
 msgid "%s -- `%s'"
 msgstr ""
 #, c-format
 msgid "%s -- `%s'"
 msgstr ""
@@ -1798,7 +1839,7 @@ msgstr ""
 msgid "%s out of range %d to %d at operand %d -- `%s'"
 msgstr ""
 
 msgid "%s out of range %d to %d at operand %d -- `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:4882 config/tc-aarch64.c:4886 config/tc-aarch64.c:6825
+#: config/tc-aarch64.c:4882 config/tc-aarch64.c:4886 config/tc-aarch64.c:6826
 msgid "immediate value"
 msgstr ""
 
 msgid "immediate value"
 msgstr ""
 
@@ -1846,7 +1887,7 @@ msgstr ""
 msgid "the top half of a 128-bit FP/SIMD register is expected"
 msgstr ""
 
 msgid "the top half of a 128-bit FP/SIMD register is expected"
 msgstr ""
 
-#: config/tc-aarch64.c:5808 config/tc-arm.c:2213 config/tc-arm.c:2258
+#: config/tc-aarch64.c:5808 config/tc-arm.c:2240 config/tc-arm.c:2285
 #: config/tc-h8300.c:1043
 msgid "invalid register list"
 msgstr ""
 #: config/tc-h8300.c:1043
 msgid "invalid register list"
 msgstr ""
@@ -1875,316 +1916,316 @@ msgstr ""
 msgid "can't mix relocation modifier with explicit shift"
 msgstr ""
 
 msgid "can't mix relocation modifier with explicit shift"
 msgstr ""
 
-#: config/tc-aarch64.c:6184 config/tc-arm.c:15831 config/tc-arm.c:15856
-#: config/tc-arm.c:15867 config/tc-arm.c:15874
+#: config/tc-aarch64.c:6185 config/tc-arm.c:15898 config/tc-arm.c:15923
+#: config/tc-arm.c:15934 config/tc-arm.c:15941
 msgid "invalid condition"
 msgstr ""
 
 msgid "invalid condition"
 msgstr ""
 
-#: config/tc-aarch64.c:6210
+#: config/tc-aarch64.c:6211
 msgid "invalid pc-relative address"
 msgstr ""
 
 #. Only permit "=value" in the literal load instructions.
 #. The literal will be generated by programmer_friendly_fixup.
 msgid "invalid pc-relative address"
 msgstr ""
 
 #. Only permit "=value" in the literal load instructions.
 #. The literal will be generated by programmer_friendly_fixup.
-#: config/tc-aarch64.c:6218
+#: config/tc-aarch64.c:6219
 msgid "invalid use of \"=immediate\""
 msgstr ""
 
 msgid "invalid use of \"=immediate\""
 msgstr ""
 
-#: config/tc-aarch64.c:6283 config/tc-aarch64.c:6315 config/tc-aarch64.c:6333
-#: config/tc-aarch64.c:6357 config/tc-aarch64.c:6377 config/tc-aarch64.c:6396
-#: config/tc-aarch64.c:6419 config/tc-aarch64.c:6455 config/tc-aarch64.c:6462
-#: config/tc-aarch64.c:6490 config/tc-aarch64.c:6510 config/tc-aarch64.c:6535
-#: config/tc-aarch64.c:6553 config/tc-aarch64.c:6561 config/tc-aarch64.c:6578
-#: config/tc-aarch64.c:6602
+#: config/tc-aarch64.c:6284 config/tc-aarch64.c:6316 config/tc-aarch64.c:6334
+#: config/tc-aarch64.c:6358 config/tc-aarch64.c:6378 config/tc-aarch64.c:6397
+#: config/tc-aarch64.c:6420 config/tc-aarch64.c:6456 config/tc-aarch64.c:6463
+#: config/tc-aarch64.c:6491 config/tc-aarch64.c:6511 config/tc-aarch64.c:6536
+#: config/tc-aarch64.c:6554 config/tc-aarch64.c:6562 config/tc-aarch64.c:6579
+#: config/tc-aarch64.c:6603
 msgid "invalid addressing mode"
 msgstr ""
 
 msgid "invalid addressing mode"
 msgstr ""
 
-#: config/tc-aarch64.c:6299
+#: config/tc-aarch64.c:6300
 msgid "the optional immediate offset can only be 0"
 msgstr ""
 
 msgid "the optional immediate offset can only be 0"
 msgstr ""
 
-#: config/tc-aarch64.c:6338 config/tc-aarch64.c:6362 config/tc-aarch64.c:6382
+#: config/tc-aarch64.c:6339 config/tc-aarch64.c:6363 config/tc-aarch64.c:6383
 msgid "relocation not allowed"
 msgstr ""
 
 msgid "relocation not allowed"
 msgstr ""
 
-#: config/tc-aarch64.c:6429
+#: config/tc-aarch64.c:6430
 msgid "writeback value must be an immediate constant"
 msgstr ""
 
 #. Make sure this has priority over
 #. "invalid addressing mode".
 msgid "writeback value must be an immediate constant"
 msgstr ""
 
 #. Make sure this has priority over
 #. "invalid addressing mode".
-#: config/tc-aarch64.c:6470
+#: config/tc-aarch64.c:6471
 msgid "constant offset required"
 msgstr ""
 
 msgid "constant offset required"
 msgstr ""
 
-#: config/tc-aarch64.c:6614
+#: config/tc-aarch64.c:6615
 msgid "unknown or missing system register name"
 msgstr ""
 
 msgid "unknown or missing system register name"
 msgstr ""
 
-#: config/tc-aarch64.c:6626
+#: config/tc-aarch64.c:6627
 msgid "unknown or missing PSTATE field name"
 msgstr ""
 
 msgid "unknown or missing PSTATE field name"
 msgstr ""
 
-#: config/tc-aarch64.c:6658
+#: config/tc-aarch64.c:6659
 msgid "unknown or missing operation name"
 msgstr ""
 
 msgid "unknown or missing operation name"
 msgstr ""
 
-#: config/tc-aarch64.c:6671
+#: config/tc-aarch64.c:6672
 msgid "the specified option is not accepted in ISB"
 msgstr ""
 
 msgid "the specified option is not accepted in ISB"
 msgstr ""
 
-#: config/tc-aarch64.c:6703 config/tc-aarch64.c:7884 config/tc-arm.c:7993
+#: config/tc-aarch64.c:6704 config/tc-aarch64.c:7886 config/tc-arm.c:8042
 #, c-format
 msgid "unhandled operand code %d"
 msgstr ""
 
 #, c-format
 msgid "unhandled operand code %d"
 msgstr ""
 
-#: config/tc-aarch64.c:6745
+#: config/tc-aarch64.c:6746
 msgid "unexpected comma before the omitted optional operand"
 msgstr ""
 
 msgid "unexpected comma before the omitted optional operand"
 msgstr ""
 
-#: config/tc-aarch64.c:6773
+#: config/tc-aarch64.c:6774
 msgid "unexpected characters following instruction"
 msgstr ""
 
 msgid "unexpected characters following instruction"
 msgstr ""
 
-#: config/tc-aarch64.c:6851 config/tc-arm.c:5636 config/tc-arm.c:6246
-#: config/tc-arm.c:8797
+#: config/tc-aarch64.c:6852 config/tc-arm.c:5663 config/tc-arm.c:6273
+#: config/tc-arm.c:8846
 msgid "constant expression expected"
 msgstr ""
 
 msgid "constant expression expected"
 msgstr ""
 
-#: config/tc-aarch64.c:6858
+#: config/tc-aarch64.c:6859
 msgid "literal pool insertion failed"
 msgstr ""
 
 msgid "literal pool insertion failed"
 msgstr ""
 
-#: config/tc-aarch64.c:6929 config/tc-aarch64.c:6944
+#: config/tc-aarch64.c:6930 config/tc-aarch64.c:6945
 #, c-format
 msgid "unpredictable transfer with writeback -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "unpredictable transfer with writeback -- `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:6948
+#: config/tc-aarch64.c:6949
 #, c-format
 msgid "unpredictable load of register pair -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "unpredictable load of register pair -- `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:6960
+#: config/tc-aarch64.c:6961
 #, c-format
 msgid "unpredictable: identical transfer and status registers --`%s'"
 msgstr ""
 
 #, c-format
 msgid "unpredictable: identical transfer and status registers --`%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:6976
+#: config/tc-aarch64.c:6977
 #, c-format
 msgid "previous `%s' sequence has not been closed"
 msgstr ""
 
 #, c-format
 msgid "previous `%s' sequence has not been closed"
 msgstr ""
 
-#: config/tc-aarch64.c:7055
+#: config/tc-aarch64.c:7056
 #, c-format
 msgid "unknown mnemonic `%s' -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown mnemonic `%s' -- `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:7063
+#: config/tc-aarch64.c:7064
 #, c-format
 msgid "unexpected comma after the mnemonic name `%s' -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "unexpected comma after the mnemonic name `%s' -- `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:7121
+#: config/tc-aarch64.c:7122
 #, c-format
 msgid "selected processor does not support `%s'"
 msgstr ""
 
 #, c-format
 msgid "selected processor does not support `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:7544 config/tc-arm.c:27479
+#: config/tc-aarch64.c:7545 config/tc-arm.c:28017
 msgid "GOT already in the symbol table"
 msgstr ""
 
 msgid "GOT already in the symbol table"
 msgstr ""
 
-#: config/tc-aarch64.c:7707
+#: config/tc-aarch64.c:7708
 msgid "immediate cannot be moved by a single instruction"
 msgstr ""
 
 msgid "immediate cannot be moved by a single instruction"
 msgstr ""
 
-#: config/tc-aarch64.c:7750 config/tc-aarch64.c:7795 config/tc-aarch64.c:7821
-#: config/tc-arm.c:16375 config/tc-arm.c:18072 config/tc-arm.c:18658
-#: config/tc-arm.c:18685 config/tc-arm.c:19471 config/tc-arm.c:20305
-#: config/tc-arm.c:21320 config/tc-arm.c:21380 config/tc-metag.c:2444
+#: config/tc-aarch64.c:7752 config/tc-aarch64.c:7797 config/tc-aarch64.c:7823
+#: config/tc-arm.c:16442 config/tc-arm.c:18139 config/tc-arm.c:18719
+#: config/tc-arm.c:18746 config/tc-arm.c:19532 config/tc-arm.c:20364
+#: config/tc-arm.c:21379 config/tc-arm.c:21439 config/tc-metag.c:2444
 #: config/tc-metag.c:2453 config/tc-metag.c:2492 config/tc-metag.c:2501
 #: config/tc-metag.c:3021 config/tc-metag.c:3030
 msgid "immediate out of range"
 msgstr ""
 
 #: config/tc-metag.c:2453 config/tc-metag.c:2492 config/tc-metag.c:2501
 #: config/tc-metag.c:3021 config/tc-metag.c:3030
 msgid "immediate out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:7814 config/tc-metag.c:4656 config/tc-xtensa.c:4203
+#: config/tc-aarch64.c:7816 config/tc-metag.c:4656 config/tc-xtensa.c:4221
 msgid "invalid immediate"
 msgstr ""
 
 msgid "invalid immediate"
 msgstr ""
 
-#: config/tc-aarch64.c:7879 config/tc-tic6x.c:3861 config/tc-tic6x.c:3926
+#: config/tc-aarch64.c:7881 config/tc-tic6x.c:3861 config/tc-tic6x.c:3926
 #: config/tc-tic6x.c:3953 config/tc-tic6x.c:3981
 msgid "immediate offset out of range"
 msgstr ""
 
 #: config/tc-tic6x.c:3953 config/tc-tic6x.c:3981
 msgid "immediate offset out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:7953 config/tc-arm.c:27817 config/tc-arm.c:27885
-#: config/tc-arm.c:28167
+#: config/tc-aarch64.c:7955 config/tc-arm.c:28355 config/tc-arm.c:28423
+#: config/tc-arm.c:28705
 #, c-format
 msgid "undefined symbol %s used as an immediate value"
 msgstr ""
 
 #, c-format
 msgid "undefined symbol %s used as an immediate value"
 msgstr ""
 
-#: config/tc-aarch64.c:7965
+#: config/tc-aarch64.c:7967
 msgid "pc-relative load offset not word aligned"
 msgstr ""
 
 msgid "pc-relative load offset not word aligned"
 msgstr ""
 
-#: config/tc-aarch64.c:7968
+#: config/tc-aarch64.c:7970
 msgid "pc-relative load offset out of range"
 msgstr ""
 
 msgid "pc-relative load offset out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:7980
+#: config/tc-aarch64.c:7982
 msgid "pc-relative address offset out of range"
 msgstr ""
 
 msgid "pc-relative address offset out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:7992 config/tc-aarch64.c:8007
+#: config/tc-aarch64.c:7994 config/tc-aarch64.c:8009
 msgid "conditional branch target not word aligned"
 msgstr ""
 
 msgid "conditional branch target not word aligned"
 msgstr ""
 
-#: config/tc-aarch64.c:7995 config/tc-aarch64.c:8010 config/tc-arm.c:28462
+#: config/tc-aarch64.c:7997 config/tc-aarch64.c:8012 config/tc-arm.c:29000
 msgid "conditional branch out of range"
 msgstr ""
 
 msgid "conditional branch out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:8023
+#: config/tc-aarch64.c:8025
 msgid "branch target not word aligned"
 msgstr ""
 
 msgid "branch target not word aligned"
 msgstr ""
 
-#: config/tc-aarch64.c:8026 config/tc-arm.c:899 config/tc-arm.c:29265
-#: config/tc-mips.c:16047 config/tc-mips.c:16063 config/tc-mips.c:16153
+#: config/tc-aarch64.c:8028 config/tc-arm.c:924 config/tc-arm.c:29806
+#: config/tc-mips.c:16086 config/tc-mips.c:16102 config/tc-mips.c:16192
 msgid "branch out of range"
 msgstr ""
 
 msgid "branch out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:8085 config/tc-arm.c:28058 config/tc-arm.c:28073
-#: config/tc-arm.c:28088 config/tc-arm.c:28099 config/tc-arm.c:28122
-#: config/tc-arm.c:28969 config/tc-moxie.c:716 config/tc-pj.c:452
-#: config/tc-sh.c:3727
+#: config/tc-aarch64.c:8087 config/tc-arm.c:28596 config/tc-arm.c:28611
+#: config/tc-arm.c:28626 config/tc-arm.c:28637 config/tc-arm.c:28660
+#: config/tc-arm.c:29510 config/tc-moxie.c:714 config/tc-pj.c:452
+#: config/tc-sh.c:3728
 msgid "offset out of range"
 msgstr ""
 
 msgid "offset out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:8100
+#: config/tc-aarch64.c:8102
 msgid "unsigned value out of range"
 msgstr ""
 
 msgid "unsigned value out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:8111
+#: config/tc-aarch64.c:8113
 msgid "signed value out of range"
 msgstr ""
 
 msgid "signed value out of range"
 msgstr ""
 
-#: config/tc-aarch64.c:8261
+#: config/tc-aarch64.c:8263
 #, c-format
 msgid "unexpected %s fixup"
 msgstr ""
 
 #, c-format
 msgid "unexpected %s fixup"
 msgstr ""
 
-#: config/tc-aarch64.c:8327 config/tc-arm.c:29685 config/tc-arm.c:29706
-#: config/tc-mips.c:18414 config/tc-or1k.c:345 config/tc-score.c:7468
+#: config/tc-aarch64.c:8329 config/tc-arm.c:30226 config/tc-arm.c:30247
+#: config/tc-mips.c:18453 config/tc-or1k.c:345 config/tc-score.c:7450
 #, c-format
 msgid "cannot represent %s relocation in this object file format"
 msgstr ""
 
 #, c-format
 msgid "cannot represent %s relocation in this object file format"
 msgstr ""
 
-#: config/tc-aarch64.c:8360
+#: config/tc-aarch64.c:8362
 #, c-format
 msgid "cannot do %u-byte relocation"
 msgstr ""
 
 #, c-format
 msgid "cannot do %u-byte relocation"
 msgstr ""
 
-#: config/tc-aarch64.c:8683 config/tc-arm.c:30180 config/tc-score.c:6293
-#: config/tc-score.c:6523 config/tc-score.c:6528
+#: config/tc-aarch64.c:8685 config/tc-arm.c:30721 config/tc-score.c:6275
+#: config/tc-score.c:6505 config/tc-score.c:6510
 msgid "virtual memory exhausted"
 msgstr ""
 
 msgid "virtual memory exhausted"
 msgstr ""
 
-#: config/tc-aarch64.c:8849 config/tc-arm.c:30523
+#: config/tc-aarch64.c:8851 config/tc-arm.c:31064
 msgid "assemble for big-endian"
 msgstr ""
 
 msgid "assemble for big-endian"
 msgstr ""
 
-#: config/tc-aarch64.c:8850 config/tc-arm.c:30524
+#: config/tc-aarch64.c:8852 config/tc-arm.c:31065
 msgid "assemble for little-endian"
 msgstr ""
 
 msgid "assemble for little-endian"
 msgstr ""
 
-#: config/tc-aarch64.c:8853
+#: config/tc-aarch64.c:8855
 msgid "temporary switch for dumping"
 msgstr ""
 
 msgid "temporary switch for dumping"
 msgstr ""
 
-#: config/tc-aarch64.c:8855
+#: config/tc-aarch64.c:8857
 msgid "output verbose error messages"
 msgstr ""
 
 msgid "output verbose error messages"
 msgstr ""
 
-#: config/tc-aarch64.c:8857
+#: config/tc-aarch64.c:8859
 msgid "do not output verbose error messages"
 msgstr ""
 
 msgid "do not output verbose error messages"
 msgstr ""
 
-#: config/tc-aarch64.c:9137 config/tc-arm.c:31607
+#: config/tc-aarch64.c:9139 config/tc-arm.c:32164
 msgid "invalid architectural extension"
 msgstr ""
 
 msgid "invalid architectural extension"
 msgstr ""
 
-#: config/tc-aarch64.c:9162 config/tc-arm.c:31639
+#: config/tc-aarch64.c:9164 config/tc-arm.c:32196
 msgid "must specify extensions to add before specifying those to remove"
 msgstr ""
 
 msgid "must specify extensions to add before specifying those to remove"
 msgstr ""
 
-#: config/tc-aarch64.c:9170 config/tc-arm.c:31647
+#: config/tc-aarch64.c:9172 config/tc-arm.c:32204
 msgid "missing architectural extension"
 msgstr ""
 
 msgid "missing architectural extension"
 msgstr ""
 
-#: config/tc-aarch64.c:9197 config/tc-arm.c:31733
+#: config/tc-aarch64.c:9199 config/tc-arm.c:32290
 #, c-format
 msgid "unknown architectural extension `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown architectural extension `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:9221 config/tc-arm.c:31783 config/tc-metag.c:5834
+#: config/tc-aarch64.c:9223 config/tc-arm.c:32340 config/tc-metag.c:5834
 #, c-format
 msgid "missing cpu name `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing cpu name `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:9235 config/tc-aarch64.c:9452 config/tc-arm.c:31818
-#: config/tc-arm.c:32617 config/tc-csky.c:896 config/tc-metag.c:5845
+#: config/tc-aarch64.c:9237 config/tc-aarch64.c:9454 config/tc-arm.c:32375
+#: config/tc-arm.c:33176 config/tc-csky.c:896 config/tc-metag.c:5845
 #, c-format
 msgid "unknown cpu `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown cpu `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:9253 config/tc-arm.c:31836
+#: config/tc-aarch64.c:9255 config/tc-arm.c:32393
 #, c-format
 msgid "missing architecture name `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing architecture name `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:9267 config/tc-aarch64.c:9499 config/tc-arm.c:31858
-#: config/tc-arm.c:32652 config/tc-arm.c:32682 config/tc-score.c:7703
+#: config/tc-aarch64.c:9269 config/tc-aarch64.c:9501 config/tc-arm.c:32415
+#: config/tc-arm.c:33211 config/tc-arm.c:33241 config/tc-score.c:7685
 #, c-format
 msgid "unknown architecture `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "unknown architecture `%s'\n"
 msgstr ""
 
-#: config/tc-aarch64.c:9290
+#: config/tc-aarch64.c:9292
 #, c-format
 msgid "missing abi name `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing abi name `%s'"
 msgstr ""
 
-#: config/tc-aarch64.c:9301
+#: config/tc-aarch64.c:9303
 #, c-format
 msgid "unknown abi `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "unknown abi `%s'\n"
 msgstr ""
 
-#: config/tc-aarch64.c:9307
+#: config/tc-aarch64.c:9309
 msgid "<abi name>\t  specify for ABI <abi name>"
 msgstr ""
 
 msgid "<abi name>\t  specify for ABI <abi name>"
 msgstr ""
 
-#: config/tc-aarch64.c:9310 config/tc-arm.c:31945 config/tc-metag.c:5911
+#: config/tc-aarch64.c:9312 config/tc-arm.c:32502 config/tc-metag.c:5911
 msgid "<cpu name>\t  assemble for CPU <cpu name>"
 msgstr ""
 
 msgid "<cpu name>\t  assemble for CPU <cpu name>"
 msgstr ""
 
-#: config/tc-aarch64.c:9312 config/tc-arm.c:31947
+#: config/tc-aarch64.c:9314 config/tc-arm.c:32504
 msgid "<arch name>\t  assemble for architecture <arch name>"
 msgstr ""
 
 msgid "<arch name>\t  assemble for architecture <arch name>"
 msgstr ""
 
-#: config/tc-aarch64.c:9351 config/tc-aarch64.c:9371 config/tc-arm.c:32015
-#: config/tc-arm.c:32033 config/tc-arm.c:32053 config/tc-metag.c:5936
+#: config/tc-aarch64.c:9353 config/tc-aarch64.c:9373 config/tc-arm.c:32572
+#: config/tc-arm.c:32590 config/tc-arm.c:32610 config/tc-metag.c:5936
 #, c-format
 msgid "option `-%c%s' is deprecated: %s"
 msgstr ""
 
 #, c-format
 msgid "option `-%c%s' is deprecated: %s"
 msgstr ""
 
-#: config/tc-aarch64.c:9391
+#: config/tc-aarch64.c:9393
 #, c-format
 msgid " AArch64-specific assembler options:\n"
 msgstr ""
 
 #, c-format
 msgid " AArch64-specific assembler options:\n"
 msgstr ""
 
-#: config/tc-aarch64.c:9402 config/tc-arc.c:3583 config/tc-arm.c:32084
+#: config/tc-aarch64.c:9404 config/tc-arc.c:3583 config/tc-arm.c:32641
 #, c-format
 msgid "  -EB                     assemble code for a big-endian cpu\n"
 msgstr ""
 
 #, c-format
 msgid "  -EB                     assemble code for a big-endian cpu\n"
 msgstr ""
 
-#: config/tc-aarch64.c:9407 config/tc-arc.c:3585 config/tc-arm.c:32089
+#: config/tc-aarch64.c:9409 config/tc-arc.c:3585 config/tc-arm.c:32646
 #, c-format
 msgid "  -EL                     assemble code for a little-endian cpu\n"
 msgstr ""
 #, c-format
 msgid "  -EL                     assemble code for a little-endian cpu\n"
 msgstr ""
@@ -2340,7 +2381,7 @@ msgid "sequence number in use for !tlsgd!%ld"
 msgstr ""
 
 #: config/tc-alpha.c:1994 config/tc-arc.c:2850 config/tc-mn10200.c:854
 msgstr ""
 
 #: config/tc-alpha.c:1994 config/tc-arc.c:2850 config/tc-mn10200.c:854
-#: config/tc-mn10300.c:1150 config/tc-ppc.c:2079 config/tc-s390.c:676
+#: config/tc-mn10300.c:1150 config/tc-ppc.c:2089 config/tc-s390.c:676
 #: config/tc-tilegx.c:426 config/tc-tilegx.c:476 config/tc-tilepro.c:382
 msgid "operand"
 msgstr ""
 #: config/tc-tilegx.c:426 config/tc-tilegx.c:476 config/tc-tilepro.c:382
 msgid "operand"
 msgstr ""
@@ -2357,8 +2398,8 @@ msgstr ""
 msgid "can not resolve expression"
 msgstr ""
 
 msgid "can not resolve expression"
 msgstr ""
 
-#: config/tc-alpha.c:3514 config/tc-microblaze.c:204 config/tc-ppc.c:2414
-#: config/tc-ppc.c:6006
+#: config/tc-alpha.c:3514 config/tc-microblaze.c:204 config/tc-ppc.c:2424
+#: config/tc-ppc.c:6019
 #, c-format
 msgid ".COMMon length (%ld.) <0! Ignored."
 msgstr ""
 #, c-format
 msgid ".COMMon length (%ld.) <0! Ignored."
 msgstr ""
@@ -2397,7 +2438,7 @@ msgstr ""
 msgid ".fmask outside of .ent"
 msgstr ""
 
 msgid ".fmask outside of .ent"
 msgstr ""
 
-#: config/tc-alpha.c:3831 config/tc-score.c:5594 ecoff.c:3209
+#: config/tc-alpha.c:3831 config/tc-score.c:5596 ecoff.c:3209
 msgid ".mask outside of .ent"
 msgstr ""
 
 msgid ".mask outside of .ent"
 msgstr ""
 
@@ -2409,12 +2450,12 @@ msgstr ""
 msgid "bad .mask directive"
 msgstr ""
 
 msgid "bad .mask directive"
 msgstr ""
 
-#: config/tc-alpha.c:3874 config/tc-mips.c:19896 config/tc-score.c:5735
+#: config/tc-alpha.c:3874 config/tc-mips.c:19935 config/tc-score.c:5730
 #: ecoff.c:3173
 msgid ".frame outside of .ent"
 msgstr ""
 
 #: ecoff.c:3173
 msgid ".frame outside of .ent"
 msgstr ""
 
-#: config/tc-alpha.c:3885 config/tc-mips.c:19907 ecoff.c:3184
+#: config/tc-alpha.c:3885 config/tc-mips.c:19946 ecoff.c:3184
 msgid "bad .frame directive"
 msgstr ""
 
 msgid "bad .frame directive"
 msgstr ""
 
@@ -2517,7 +2558,7 @@ msgstr ""
 msgid "No symbol after .code_address"
 msgstr ""
 
 msgid "No symbol after .code_address"
 msgstr ""
 
-#: config/tc-alpha.c:4771 config/tc-score.c:5600
+#: config/tc-alpha.c:4771 config/tc-score.c:5602
 msgid "Bad .mask directive"
 msgstr ""
 
 msgid "Bad .mask directive"
 msgstr ""
 
@@ -2580,8 +2621,8 @@ msgid "internal error: can't hash macro `%s': %s"
 msgstr ""
 
 #: config/tc-alpha.c:5551 config/tc-arc.c:2503 config/tc-arc.c:2517
 msgstr ""
 
 #: config/tc-alpha.c:5551 config/tc-arc.c:2503 config/tc-arc.c:2517
-#: config/tc-arm.c:872 config/tc-xtensa.c:5445 config/tc-xtensa.c:5521
-#: config/tc-xtensa.c:5638 config/tc-z80.c:3286
+#: config/tc-arm.c:896 config/tc-xtensa.c:5465 config/tc-xtensa.c:5541
+#: config/tc-xtensa.c:5658 config/tc-z80.c:3626
 msgid "syntax error"
 msgstr ""
 
 msgid "syntax error"
 msgstr ""
 
@@ -2630,7 +2671,7 @@ msgstr ""
 
 #: config/tc-alpha.c:6242 config/tc-arc.c:3261 config/tc-csky.c:5152
 #: config/tc-tilegx.c:1749 config/tc-tilepro.c:1529 config/tc-wasm32.c:813
 
 #: config/tc-alpha.c:6242 config/tc-arc.c:3261 config/tc-csky.c:5152
 #: config/tc-tilegx.c:1749 config/tc-tilepro.c:1529 config/tc-wasm32.c:813
-#: config/tc-xtensa.c:6142
+#: config/tc-xtensa.c:6168
 #, c-format
 msgid "cannot represent `%s' relocation in object file"
 msgstr ""
 #, c-format
 msgid "cannot represent `%s' relocation in object file"
 msgstr ""
@@ -2680,8 +2721,8 @@ msgstr ""
 msgid "unknown architecture: %s\n"
 msgstr ""
 
 msgid "unknown architecture: %s\n"
 msgstr ""
 
-#: config/tc-arc.c:898 config/tc-ia64.c:7490 config/tc-riscv.c:762
-#: config/tc-riscv.c:3205 config/tc-tilegx.c:262
+#: config/tc-arc.c:898 config/tc-ia64.c:7490 config/tc-riscv.c:1091
+#: config/tc-riscv.c:3705 config/tc-tilegx.c:262
 msgid "Could not set architecture and machine"
 msgstr ""
 
 msgid "Could not set architecture and machine"
 msgstr ""
 
@@ -2713,16 +2754,16 @@ msgstr ""
 msgid "Brackets in operand field incorrect"
 msgstr ""
 
 msgid "Brackets in operand field incorrect"
 msgstr ""
 
-#: config/tc-arc.c:1340 config/tc-xtensa.c:2058
+#: config/tc-arc.c:1340 config/tc-xtensa.c:2064
 msgid "extra comma"
 msgstr ""
 
 #: config/tc-arc.c:1342 config/tc-pru.c:1450 config/tc-pru.c:1719
 msgid "extra comma"
 msgstr ""
 
 #: config/tc-arc.c:1342 config/tc-pru.c:1450 config/tc-pru.c:1719
-#: config/tc-xtensa.c:2062
+#: config/tc-xtensa.c:2068
 msgid "missing argument"
 msgstr ""
 
 msgid "missing argument"
 msgstr ""
 
-#: config/tc-arc.c:1344 config/tc-xtensa.c:2064
+#: config/tc-arc.c:1344 config/tc-xtensa.c:2070
 msgid "missing comma or colon"
 msgstr ""
 
 msgid "missing comma or colon"
 msgstr ""
 
@@ -2777,7 +2818,7 @@ msgstr ""
 #: config/tc-h8300.c:117 config/tc-h8300.c:128 config/tc-h8300.c:243
 #: config/tc-hppa.c:6821 config/tc-hppa.c:6827 config/tc-hppa.c:6833
 #: config/tc-hppa.c:6839 config/tc-hppa.c:8227 config/tc-lm32.c:197
 #: config/tc-h8300.c:117 config/tc-h8300.c:128 config/tc-h8300.c:243
 #: config/tc-hppa.c:6821 config/tc-hppa.c:6827 config/tc-hppa.c:6833
 #: config/tc-hppa.c:6839 config/tc-hppa.c:8227 config/tc-lm32.c:197
-#: config/tc-mips.c:3691 config/tc-mips.c:4199 config/tc-mn10300.c:935
+#: config/tc-mips.c:3694 config/tc-mips.c:4202 config/tc-mn10300.c:935
 #: config/tc-mn10300.c:940 config/tc-mn10300.c:2440 config/tc-xc16x.c:79
 #: config/tc-xc16x.c:86 config/tc-xc16x.c:93
 msgid "could not set architecture and machine"
 #: config/tc-mn10300.c:940 config/tc-mn10300.c:2440 config/tc-xc16x.c:79
 #: config/tc-xc16x.c:86 config/tc-xc16x.c:93
 msgid "could not set architecture and machine"
@@ -2913,7 +2954,7 @@ msgid "Insn %s has an instruction %s with limm in its delay slot."
 msgstr ""
 
 #: config/tc-arc.c:4279 config/tc-microblaze.c:2554 config/tc-mn10300.c:1069
 msgstr ""
 
 #: config/tc-arc.c:4279 config/tc-microblaze.c:2554 config/tc-mn10300.c:1069
-#: config/tc-sh.c:418 config/tc-z80.c:1040 read.c:4577
+#: config/tc-sh.c:418 config/tc-z80.c:1101 read.c:4578
 #, c-format
 msgid "unsupported BFD relocation size %u"
 msgstr ""
 #, c-format
 msgid "unsupported BFD relocation size %u"
 msgstr ""
@@ -3021,935 +3062,947 @@ msgstr ""
 msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file"
 msgstr ""
 
 msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file"
 msgstr ""
 
-#: config/tc-arm.c:684
+#: config/tc-arm.c:708
 msgid "ARM register expected"
 msgstr ""
 
 msgid "ARM register expected"
 msgstr ""
 
-#: config/tc-arm.c:685
+#: config/tc-arm.c:709
 msgid "bad or missing co-processor number"
 msgstr ""
 
 msgid "bad or missing co-processor number"
 msgstr ""
 
-#: config/tc-arm.c:686
+#: config/tc-arm.c:710
 msgid "co-processor register expected"
 msgstr ""
 
 msgid "co-processor register expected"
 msgstr ""
 
-#: config/tc-arm.c:687
+#: config/tc-arm.c:711
 msgid "FPA register expected"
 msgstr ""
 
 msgid "FPA register expected"
 msgstr ""
 
-#: config/tc-arm.c:688
+#: config/tc-arm.c:712
 msgid "VFP single precision register expected"
 msgstr ""
 
 msgid "VFP single precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:689
+#: config/tc-arm.c:713
 msgid "VFP/Neon double precision register expected"
 msgstr ""
 
 msgid "VFP/Neon double precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:690
+#: config/tc-arm.c:714
 msgid "Neon quad precision register expected"
 msgstr ""
 
 msgid "Neon quad precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:691
+#: config/tc-arm.c:715
 msgid "VFP single or double precision register expected"
 msgstr ""
 
 msgid "VFP single or double precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:692
+#: config/tc-arm.c:716
 msgid "Neon double or quad precision register expected"
 msgstr ""
 
 msgid "Neon double or quad precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:693
+#: config/tc-arm.c:717
 msgid "Neon single or double precision register expected"
 msgstr ""
 
 msgid "Neon single or double precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:694
+#: config/tc-arm.c:718
 msgid "VFP single, double or Neon quad precision register expected"
 msgstr ""
 
 msgid "VFP single, double or Neon quad precision register expected"
 msgstr ""
 
-#: config/tc-arm.c:696
+#: config/tc-arm.c:720
 msgid "VFP system register expected"
 msgstr ""
 
 msgid "VFP system register expected"
 msgstr ""
 
-#: config/tc-arm.c:697
+#: config/tc-arm.c:721
 msgid "Maverick MVF register expected"
 msgstr ""
 
 msgid "Maverick MVF register expected"
 msgstr ""
 
-#: config/tc-arm.c:698
+#: config/tc-arm.c:722
 msgid "Maverick MVD register expected"
 msgstr ""
 
 msgid "Maverick MVD register expected"
 msgstr ""
 
-#: config/tc-arm.c:699
+#: config/tc-arm.c:723
 msgid "Maverick MVFX register expected"
 msgstr ""
 
 msgid "Maverick MVFX register expected"
 msgstr ""
 
-#: config/tc-arm.c:700
+#: config/tc-arm.c:724
 msgid "Maverick MVDX register expected"
 msgstr ""
 
 msgid "Maverick MVDX register expected"
 msgstr ""
 
-#: config/tc-arm.c:701
+#: config/tc-arm.c:725
 msgid "Maverick MVAX register expected"
 msgstr ""
 
 msgid "Maverick MVAX register expected"
 msgstr ""
 
-#: config/tc-arm.c:702
+#: config/tc-arm.c:726
 msgid "Maverick DSPSC register expected"
 msgstr ""
 
 msgid "Maverick DSPSC register expected"
 msgstr ""
 
-#: config/tc-arm.c:703
+#: config/tc-arm.c:727
 msgid "iWMMXt data register expected"
 msgstr ""
 
 msgid "iWMMXt data register expected"
 msgstr ""
 
-#: config/tc-arm.c:704 config/tc-arm.c:7793
+#: config/tc-arm.c:728 config/tc-arm.c:7842
 msgid "iWMMXt control register expected"
 msgstr ""
 
 msgid "iWMMXt control register expected"
 msgstr ""
 
-#: config/tc-arm.c:705
+#: config/tc-arm.c:729
 msgid "iWMMXt scalar register expected"
 msgstr ""
 
 msgid "iWMMXt scalar register expected"
 msgstr ""
 
-#: config/tc-arm.c:706
+#: config/tc-arm.c:730
 msgid "XScale accumulator register expected"
 msgstr ""
 
 msgid "XScale accumulator register expected"
 msgstr ""
 
-#: config/tc-arm.c:707
+#: config/tc-arm.c:731
 msgid "MVE vector register expected"
 msgstr ""
 
 #. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message.
 msgid "MVE vector register expected"
 msgstr ""
 
 #. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message.
-#: config/tc-arm.c:873 config/tc-score.c:259
+#: config/tc-arm.c:897 config/tc-score.c:259
 msgid "bad arguments to instruction"
 msgstr ""
 
 msgid "bad arguments to instruction"
 msgstr ""
 
-#: config/tc-arm.c:874
+#: config/tc-arm.c:898
 msgid "r13 not allowed here"
 msgstr ""
 
 msgid "r13 not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:875
+#: config/tc-arm.c:899
 msgid "r15 not allowed here"
 msgstr ""
 
 msgid "r15 not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:876
+#: config/tc-arm.c:900
 msgid "Odd register not allowed here"
 msgstr ""
 
 msgid "Odd register not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:877
+#: config/tc-arm.c:901
 msgid "Even register not allowed here"
 msgstr ""
 
 msgid "Even register not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:878
+#: config/tc-arm.c:902
 msgid "instruction cannot be conditional"
 msgstr ""
 
 msgid "instruction cannot be conditional"
 msgstr ""
 
-#: config/tc-arm.c:879
+#: config/tc-arm.c:903
 msgid "registers may not be the same"
 msgstr ""
 
 msgid "registers may not be the same"
 msgstr ""
 
-#: config/tc-arm.c:880
+#: config/tc-arm.c:904
 msgid "lo register required"
 msgstr ""
 
 msgid "lo register required"
 msgstr ""
 
-#: config/tc-arm.c:881
+#: config/tc-arm.c:905
 msgid "instruction not supported in Thumb16 mode"
 msgstr ""
 
 msgid "instruction not supported in Thumb16 mode"
 msgstr ""
 
-#: config/tc-arm.c:882
+#: config/tc-arm.c:906
 msgid "instruction does not accept this addressing mode"
 msgstr ""
 
 msgid "instruction does not accept this addressing mode"
 msgstr ""
 
-#: config/tc-arm.c:883
+#: config/tc-arm.c:907
 msgid "branch must be last instruction in IT block"
 msgstr ""
 
 msgid "branch must be last instruction in IT block"
 msgstr ""
 
-#: config/tc-arm.c:884
+#: config/tc-arm.c:908
 msgid "branch out of range or not a multiple of 2"
 msgstr ""
 
 msgid "branch out of range or not a multiple of 2"
 msgstr ""
 
-#: config/tc-arm.c:885
+#: config/tc-arm.c:909
+msgid "instruction not allowed in VPT block"
+msgstr ""
+
+#: config/tc-arm.c:910
 msgid "instruction not allowed in IT block"
 msgstr ""
 
 msgid "instruction not allowed in IT block"
 msgstr ""
 
-#: config/tc-arm.c:886
+#: config/tc-arm.c:911
 msgid "instruction missing MVE vector predication code"
 msgstr ""
 
 msgid "instruction missing MVE vector predication code"
 msgstr ""
 
-#: config/tc-arm.c:887
+#: config/tc-arm.c:912
 msgid "selected FPU does not support instruction"
 msgstr ""
 
 msgid "selected FPU does not support instruction"
 msgstr ""
 
-#: config/tc-arm.c:888
+#: config/tc-arm.c:913
 msgid "thumb conditional instruction should be in IT block"
 msgstr ""
 
 msgid "thumb conditional instruction should be in IT block"
 msgstr ""
 
-#: config/tc-arm.c:890
+#: config/tc-arm.c:915
 msgid "vector predicated instruction should be in VPT/VPST block"
 msgstr ""
 
 msgid "vector predicated instruction should be in VPT/VPST block"
 msgstr ""
 
-#: config/tc-arm.c:891
+#: config/tc-arm.c:916
 msgid "incorrect condition in IT block"
 msgstr ""
 
 msgid "incorrect condition in IT block"
 msgstr ""
 
-#: config/tc-arm.c:892
+#: config/tc-arm.c:917
 msgid "incorrect condition in VPT/VPST block"
 msgstr ""
 
 msgid "incorrect condition in VPT/VPST block"
 msgstr ""
 
-#: config/tc-arm.c:893
+#: config/tc-arm.c:918
 msgid "IT falling in the range of a previous IT block"
 msgstr ""
 
 msgid "IT falling in the range of a previous IT block"
 msgstr ""
 
-#: config/tc-arm.c:894
+#: config/tc-arm.c:919
 msgid "missing .fnstart before unwinding directive"
 msgstr ""
 
 msgid "missing .fnstart before unwinding directive"
 msgstr ""
 
-#: config/tc-arm.c:896
+#: config/tc-arm.c:921
 msgid "cannot use register index with PC-relative addressing"
 msgstr ""
 
 msgid "cannot use register index with PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:898
+#: config/tc-arm.c:923
 msgid "cannot use writeback with PC-relative addressing"
 msgstr ""
 
 msgid "cannot use writeback with PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:900
+#: config/tc-arm.c:925
 msgid "selected processor does not support fp16 instruction"
 msgstr ""
 
 msgid "selected processor does not support fp16 instruction"
 msgstr ""
 
-#: config/tc-arm.c:901
+#: config/tc-arm.c:926
 msgid "selected processor does not support bf16 instruction"
 msgstr ""
 
 msgid "selected processor does not support bf16 instruction"
 msgstr ""
 
-#: config/tc-arm.c:902
+#: config/tc-arm.c:927
+msgid "selected processor does not support cde instruction"
+msgstr ""
+
+#: config/tc-arm.c:928
+msgid "coprocessor for insn is not enabled for cde"
+msgstr ""
+
+#: config/tc-arm.c:929
 msgid "using "
 msgstr ""
 
 msgid "using "
 msgstr ""
 
-#: config/tc-arm.c:903
+#: config/tc-arm.c:930
 msgid "relocation valid in thumb1 code only"
 msgstr ""
 
 msgid "relocation valid in thumb1 code only"
 msgstr ""
 
-#: config/tc-arm.c:904
+#: config/tc-arm.c:931
 msgid "Warning: instruction is UNPREDICTABLE in an IT block"
 msgstr ""
 
 msgid "Warning: instruction is UNPREDICTABLE in an IT block"
 msgstr ""
 
-#: config/tc-arm.c:906
+#: config/tc-arm.c:933
 msgid "Warning: instruction is UNPREDICTABLE in a VPT block"
 msgstr ""
 
 msgid "Warning: instruction is UNPREDICTABLE in a VPT block"
 msgstr ""
 
-#: config/tc-arm.c:908
+#: config/tc-arm.c:935
 msgid "Warning: instruction is UNPREDICTABLE with PC operand"
 msgstr ""
 
 msgid "Warning: instruction is UNPREDICTABLE with PC operand"
 msgstr ""
 
-#: config/tc-arm.c:910
+#: config/tc-arm.c:937
 msgid "Warning: instruction is UNPREDICTABLE with SP operand"
 msgstr ""
 
 msgid "Warning: instruction is UNPREDICTABLE with SP operand"
 msgstr ""
 
-#: config/tc-arm.c:912
+#: config/tc-arm.c:939
 msgid "bad type in SIMD instruction"
 msgstr ""
 
 msgid "bad type in SIMD instruction"
 msgstr ""
 
-#: config/tc-arm.c:914
+#: config/tc-arm.c:941
 msgid ""
 "GAS auto-detection mode and -march=all is deprecated for MVE, please use a "
 "valid -march or -mcpu option."
 msgstr ""
 
 msgid ""
 "GAS auto-detection mode and -march=all is deprecated for MVE, please use a "
 "valid -march or -mcpu option."
 msgstr ""
 
-#: config/tc-arm.c:916
+#: config/tc-arm.c:943
 msgid ""
 "Warning: 32-bit element size and same destination and source operands makes "
 "instruction UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "Warning: 32-bit element size and same destination and source operands makes "
 "instruction UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:918
+#: config/tc-arm.c:945
 msgid "bad element type for instruction"
 msgstr ""
 
 msgid "bad element type for instruction"
 msgstr ""
 
-#: config/tc-arm.c:919
+#: config/tc-arm.c:946
 msgid "MVE vector register Q[0..7] expected"
 msgstr ""
 
 msgid "MVE vector register Q[0..7] expected"
 msgstr ""
 
-#: config/tc-arm.c:1139
+#: config/tc-arm.c:1166
 msgid "immediate expression requires a # prefix"
 msgstr ""
 
 msgid "immediate expression requires a # prefix"
 msgstr ""
 
-#: config/tc-arm.c:1168 read.c:3800
+#: config/tc-arm.c:1195 read.c:3801
 msgid "missing expression"
 msgstr ""
 
 msgid "missing expression"
 msgstr ""
 
-#: config/tc-arm.c:1182 config/tc-arm.c:5649 config/tc-score.c:1209
+#: config/tc-arm.c:1209 config/tc-arm.c:5676 config/tc-score.c:1209
 msgid "invalid constant"
 msgstr ""
 
 msgid "invalid constant"
 msgstr ""
 
-#: config/tc-arm.c:1360
+#: config/tc-arm.c:1387
 msgid "expected #constant"
 msgstr ""
 
 msgid "expected #constant"
 msgstr ""
 
-#: config/tc-arm.c:1532 config/tc-arm.c:1563
+#: config/tc-arm.c:1559 config/tc-arm.c:1590
 #, c-format
 msgid "bad size %d in type specifier"
 msgstr ""
 
 #, c-format
 msgid "bad size %d in type specifier"
 msgstr ""
 
-#: config/tc-arm.c:1539
+#: config/tc-arm.c:1566
 msgid "unexpected type character `b' -- did you mean `bf'?"
 msgstr ""
 
 msgid "unexpected type character `b' -- did you mean `bf'?"
 msgstr ""
 
-#: config/tc-arm.c:1546
+#: config/tc-arm.c:1573
 #, c-format
 msgid "unexpected character `%c' in type specifier"
 msgstr ""
 
 #, c-format
 msgid "unexpected character `%c' in type specifier"
 msgstr ""
 
-#: config/tc-arm.c:1613
+#: config/tc-arm.c:1640
 msgid "only one type should be specified for operand"
 msgstr ""
 
 msgid "only one type should be specified for operand"
 msgstr ""
 
-#: config/tc-arm.c:1619
+#: config/tc-arm.c:1646
 msgid "vector type expected"
 msgstr ""
 
 msgid "vector type expected"
 msgstr ""
 
-#: config/tc-arm.c:1728
+#: config/tc-arm.c:1755
 msgid "expected MVE register [q0..q7]"
 msgstr ""
 
 msgid "expected MVE register [q0..q7]"
 msgstr ""
 
-#: config/tc-arm.c:1748
+#: config/tc-arm.c:1775
 msgid "can't redefine type for operand"
 msgstr ""
 
 msgid "can't redefine type for operand"
 msgstr ""
 
-#: config/tc-arm.c:1764
+#: config/tc-arm.c:1791
 msgid "only D and Q registers may be indexed"
 msgstr ""
 
 msgid "only D and Q registers may be indexed"
 msgstr ""
 
-#: config/tc-arm.c:1766
+#: config/tc-arm.c:1793
 msgid "only D registers may be indexed"
 msgstr ""
 
 msgid "only D registers may be indexed"
 msgstr ""
 
-#: config/tc-arm.c:1772
+#: config/tc-arm.c:1799
 msgid "can't change index for operand"
 msgstr ""
 
 msgid "can't change index for operand"
 msgstr ""
 
-#: config/tc-arm.c:1835
+#: config/tc-arm.c:1862
 msgid "register operand expected, but got scalar"
 msgstr ""
 
 msgid "register operand expected, but got scalar"
 msgstr ""
 
-#: config/tc-arm.c:1886
+#: config/tc-arm.c:1913
 msgid "scalar must have an index"
 msgstr ""
 
 msgid "scalar must have an index"
 msgstr ""
 
-#: config/tc-arm.c:1891 config/tc-arm.c:20150 config/tc-arm.c:20233
-#: config/tc-arm.c:20898
+#: config/tc-arm.c:1918 config/tc-arm.c:20209 config/tc-arm.c:20292
+#: config/tc-arm.c:20957
 msgid "scalar index out of range"
 msgstr ""
 
 msgid "scalar index out of range"
 msgstr ""
 
-#: config/tc-arm.c:1961
+#: config/tc-arm.c:1988
 msgid "r0-r12, lr or APSR expected"
 msgstr ""
 
 msgid "r0-r12, lr or APSR expected"
 msgstr ""
 
-#: config/tc-arm.c:1980
+#: config/tc-arm.c:2007
 msgid "bad range in register list"
 msgstr ""
 
 msgid "bad range in register list"
 msgstr ""
 
-#: config/tc-arm.c:1988 config/tc-arm.c:1997 config/tc-arm.c:2038
+#: config/tc-arm.c:2015 config/tc-arm.c:2024 config/tc-arm.c:2065
 #, c-format
 msgid "Warning: duplicated register (r%d) in register list"
 msgstr ""
 
 #, c-format
 msgid "Warning: duplicated register (r%d) in register list"
 msgstr ""
 
-#: config/tc-arm.c:2000
+#: config/tc-arm.c:2027
 msgid "Warning: register range not in ascending order"
 msgstr ""
 
 msgid "Warning: register range not in ascending order"
 msgstr ""
 
-#: config/tc-arm.c:2011
+#: config/tc-arm.c:2038
 msgid "missing `}'"
 msgstr ""
 
 msgid "missing `}'"
 msgstr ""
 
-#: config/tc-arm.c:2027
+#: config/tc-arm.c:2054
 msgid "invalid register mask"
 msgstr ""
 
 msgid "invalid register mask"
 msgstr ""
 
-#: config/tc-arm.c:2171 config/tc-arm.c:2279
+#: config/tc-arm.c:2198 config/tc-arm.c:2306
 msgid "VPR expected last"
 msgstr ""
 
 msgid "VPR expected last"
 msgstr ""
 
-#: config/tc-arm.c:2177
+#: config/tc-arm.c:2204
 msgid "VFP single precision register or VPR expected"
 msgstr ""
 
 #. regtype == REG_TYPE_VFD.
 msgid "VFP single precision register or VPR expected"
 msgstr ""
 
 #. regtype == REG_TYPE_VFD.
-#: config/tc-arm.c:2180
+#: config/tc-arm.c:2207
 msgid "VFP/Neon double precision register or VPR expected"
 msgstr ""
 
 msgid "VFP/Neon double precision register or VPR expected"
 msgstr ""
 
-#: config/tc-arm.c:2197 config/tc-arm.c:2241
+#: config/tc-arm.c:2224 config/tc-arm.c:2268
 msgid "register out of range in list"
 msgstr ""
 
 msgid "register out of range in list"
 msgstr ""
 
-#: config/tc-arm.c:2219 config/tc-arm.c:4518 config/tc-arm.c:4652
+#: config/tc-arm.c:2246 config/tc-arm.c:4545 config/tc-arm.c:4679
 msgid "register list not in ascending order"
 msgstr ""
 
 msgid "register list not in ascending order"
 msgstr ""
 
-#: config/tc-arm.c:2250
+#: config/tc-arm.c:2277
 msgid "register range not in ascending order"
 msgstr ""
 
 msgid "register range not in ascending order"
 msgstr ""
 
-#: config/tc-arm.c:2289
+#: config/tc-arm.c:2316
 msgid "non-contiguous register range"
 msgstr ""
 
 msgid "non-contiguous register range"
 msgstr ""
 
-#: config/tc-arm.c:2349
+#: config/tc-arm.c:2376
 msgid "register stride must be 1"
 msgstr ""
 
 msgid "register stride must be 1"
 msgstr ""
 
-#: config/tc-arm.c:2350
+#: config/tc-arm.c:2377
 msgid "register stride must be 1 or 2"
 msgstr ""
 
 msgid "register stride must be 1 or 2"
 msgstr ""
 
-#: config/tc-arm.c:2351
+#: config/tc-arm.c:2378
 msgid "mismatched element/structure types in list"
 msgstr ""
 
 msgid "mismatched element/structure types in list"
 msgstr ""
 
-#: config/tc-arm.c:2421
+#: config/tc-arm.c:2448
 msgid "don't use Rn-Rm syntax with non-unit stride"
 msgstr ""
 
 msgid "don't use Rn-Rm syntax with non-unit stride"
 msgstr ""
 
-#: config/tc-arm.c:2476
+#: config/tc-arm.c:2503
 msgid "error parsing element/structure list"
 msgstr ""
 
 msgid "error parsing element/structure list"
 msgstr ""
 
-#: config/tc-arm.c:2482
+#: config/tc-arm.c:2509
 msgid "expected }"
 msgstr ""
 
 msgid "expected }"
 msgstr ""
 
-#: config/tc-arm.c:2573
+#: config/tc-arm.c:2600
 msgid "attempt to redefine typed alias"
 msgstr ""
 
 msgid "attempt to redefine typed alias"
 msgstr ""
 
-#: config/tc-arm.c:2708
+#: config/tc-arm.c:2735
 msgid "bad type for register"
 msgstr ""
 
 msgid "bad type for register"
 msgstr ""
 
-#: config/tc-arm.c:2719 config/tc-nios2.c:1802
+#: config/tc-arm.c:2746 config/tc-nios2.c:1802
 msgid "expression must be constant"
 msgstr ""
 
 msgid "expression must be constant"
 msgstr ""
 
-#: config/tc-arm.c:2736
+#: config/tc-arm.c:2763
 msgid "can't redefine the type of a register alias"
 msgstr ""
 
 msgid "can't redefine the type of a register alias"
 msgstr ""
 
-#: config/tc-arm.c:2743
+#: config/tc-arm.c:2770
 msgid "you must specify a single type only"
 msgstr ""
 
 msgid "you must specify a single type only"
 msgstr ""
 
-#: config/tc-arm.c:2756
+#: config/tc-arm.c:2783
 msgid "can't redefine the index of a scalar alias"
 msgstr ""
 
 msgid "can't redefine the index of a scalar alias"
 msgstr ""
 
-#: config/tc-arm.c:2764
+#: config/tc-arm.c:2791
 msgid "scalar index must be constant"
 msgstr ""
 
 msgid "scalar index must be constant"
 msgstr ""
 
-#: config/tc-arm.c:2773
+#: config/tc-arm.c:2800
 msgid "expecting ]"
 msgstr ""
 
 msgid "expecting ]"
 msgstr ""
 
-#: config/tc-arm.c:2825
+#: config/tc-arm.c:2852
 msgid "invalid syntax for .dn directive"
 msgstr ""
 
 msgid "invalid syntax for .dn directive"
 msgstr ""
 
-#: config/tc-arm.c:2831
+#: config/tc-arm.c:2858
 msgid "invalid syntax for .qn directive"
 msgstr ""
 
 msgid "invalid syntax for .qn directive"
 msgstr ""
 
-#: config/tc-arm.c:2866
+#: config/tc-arm.c:2893
 #, c-format
 msgid "ignoring attempt to use .unreq on fixed register name: '%s'"
 msgstr ""
 
 #, c-format
 msgid "ignoring attempt to use .unreq on fixed register name: '%s'"
 msgstr ""
 
-#: config/tc-arm.c:3131
+#: config/tc-arm.c:3158
 #, c-format
 msgid "Failed to find real start of function: %s\n"
 msgstr ""
 
 #, c-format
 msgid "Failed to find real start of function: %s\n"
 msgstr ""
 
-#: config/tc-arm.c:3148
+#: config/tc-arm.c:3175
 msgid "selected processor does not support THUMB opcodes"
 msgstr ""
 
 msgid "selected processor does not support THUMB opcodes"
 msgstr ""
 
-#: config/tc-arm.c:3161
+#: config/tc-arm.c:3188
 msgid "selected processor does not support ARM opcodes"
 msgstr ""
 
 msgid "selected processor does not support ARM opcodes"
 msgstr ""
 
-#: config/tc-arm.c:3173
+#: config/tc-arm.c:3200
 #, c-format
 msgid "invalid instruction size selected (%d)"
 msgstr ""
 
 #, c-format
 msgid "invalid instruction size selected (%d)"
 msgstr ""
 
-#: config/tc-arm.c:3205
+#: config/tc-arm.c:3232
 #, c-format
 msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
 msgstr ""
 
 #, c-format
 msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
 msgstr ""
 
-#: config/tc-arm.c:3260
+#: config/tc-arm.c:3287
 #, c-format
 msgid "expected comma after name \"%s\""
 msgstr ""
 
 #, c-format
 msgid "expected comma after name \"%s\""
 msgstr ""
 
-#: config/tc-arm.c:3310 config/tc-m32r.c:584
+#: config/tc-arm.c:3337 config/tc-m32r.c:584
 #, c-format
 msgid "symbol `%s' already defined"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' already defined"
 msgstr ""
 
-#: config/tc-arm.c:3343
+#: config/tc-arm.c:3370
 #, c-format
 msgid "unrecognized syntax mode \"%s\""
 msgstr ""
 
 #, c-format
 msgid "unrecognized syntax mode \"%s\""
 msgstr ""
 
-#: config/tc-arm.c:3386
+#: config/tc-arm.c:3413
 msgid ".ref pseudo-op only available with -mccs flag."
 msgstr ""
 
 msgid ".ref pseudo-op only available with -mccs flag."
 msgstr ""
 
-#: config/tc-arm.c:3427
+#: config/tc-arm.c:3454
 msgid ".asmfunc repeated."
 msgstr ""
 
 msgid ".asmfunc repeated."
 msgstr ""
 
-#: config/tc-arm.c:3431
+#: config/tc-arm.c:3458
 msgid ".asmfunc without function."
 msgstr ""
 
 msgid ".asmfunc without function."
 msgstr ""
 
-#: config/tc-arm.c:3437
+#: config/tc-arm.c:3464
 msgid ".asmfunc pseudo-op only available with -mccs flag."
 msgstr ""
 
 msgid ".asmfunc pseudo-op only available with -mccs flag."
 msgstr ""
 
-#: config/tc-arm.c:3448
+#: config/tc-arm.c:3475
 msgid ".endasmfunc without a .asmfunc."
 msgstr ""
 
 msgid ".endasmfunc without a .asmfunc."
 msgstr ""
 
-#: config/tc-arm.c:3452
+#: config/tc-arm.c:3479
 msgid ".endasmfunc without function."
 msgstr ""
 
 msgid ".endasmfunc without function."
 msgstr ""
 
-#: config/tc-arm.c:3463
+#: config/tc-arm.c:3490
 msgid ".endasmfunc pseudo-op only available with -mccs flag."
 msgstr ""
 
 msgid ".endasmfunc pseudo-op only available with -mccs flag."
 msgstr ""
 
-#: config/tc-arm.c:3472
+#: config/tc-arm.c:3499
 msgid ".def pseudo-op only available with -mccs flag."
 msgstr ""
 
 msgid ".def pseudo-op only available with -mccs flag."
 msgstr ""
 
-#: config/tc-arm.c:3630
+#: config/tc-arm.c:3657
 msgid "invalid type for literal pool"
 msgstr ""
 
 msgid "invalid type for literal pool"
 msgstr ""
 
-#: config/tc-arm.c:3710 config/tc-tic54x.c:5354
+#: config/tc-arm.c:3737 config/tc-tic54x.c:5354
 #, c-format
 msgid "Invalid label '%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid label '%s'"
 msgstr ""
 
-#: config/tc-arm.c:3886
+#: config/tc-arm.c:3913
 msgid "(plt) is only valid on branch targets"
 msgstr ""
 
 msgid "(plt) is only valid on branch targets"
 msgstr ""
 
-#: config/tc-arm.c:3892 config/tc-csky.c:6992 config/tc-s390.c:1210
-#: config/tc-s390.c:1880 config/tc-xtensa.c:1684
+#: config/tc-arm.c:3919 config/tc-csky.c:6992 config/tc-s390.c:1210
+#: config/tc-s390.c:1880 config/tc-xtensa.c:1690
 #, c-format
 msgid "%s relocations do not fit in %d byte"
 msgid_plural "%s relocations do not fit in %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "%s relocations do not fit in %d byte"
 msgid_plural "%s relocations do not fit in %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: config/tc-arm.c:3974
+#: config/tc-arm.c:4001
 msgid ".inst.n operand too big. Use .inst.w instead"
 msgstr ""
 
 msgid ".inst.n operand too big. Use .inst.w instead"
 msgstr ""
 
-#: config/tc-arm.c:3994
+#: config/tc-arm.c:4021
 msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead"
 msgstr ""
 
 msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead"
 msgstr ""
 
-#: config/tc-arm.c:4024
+#: config/tc-arm.c:4051
 msgid "width suffixes are invalid in ARM mode"
 msgstr ""
 
 msgid "width suffixes are invalid in ARM mode"
 msgstr ""
 
-#: config/tc-arm.c:4066 dwarf2dbg.c:1033
+#: config/tc-arm.c:4093 dwarf2dbg.c:1303
 msgid "expected 0 or 1"
 msgstr ""
 
 msgid "expected 0 or 1"
 msgstr ""
 
-#: config/tc-arm.c:4070
+#: config/tc-arm.c:4097
 msgid "missing comma"
 msgstr ""
 
 msgid "missing comma"
 msgstr ""
 
-#: config/tc-arm.c:4103
+#: config/tc-arm.c:4130
 msgid "duplicate .fnstart directive"
 msgstr ""
 
 msgid "duplicate .fnstart directive"
 msgstr ""
 
-#: config/tc-arm.c:4134 config/tc-tic6x.c:412
+#: config/tc-arm.c:4161 config/tc-tic6x.c:412
 msgid "duplicate .handlerdata directive"
 msgstr ""
 
 msgid "duplicate .handlerdata directive"
 msgstr ""
 
-#: config/tc-arm.c:4153
+#: config/tc-arm.c:4180
 msgid ".fnend directive without .fnstart"
 msgstr ""
 
 msgid ".fnend directive without .fnstart"
 msgstr ""
 
-#: config/tc-arm.c:4220 config/tc-tic6x.c:393
+#: config/tc-arm.c:4247 config/tc-tic6x.c:393
 msgid "personality routine specified for cantunwind frame"
 msgstr ""
 
 msgid "personality routine specified for cantunwind frame"
 msgstr ""
 
-#: config/tc-arm.c:4237 config/tc-tic6x.c:454
+#: config/tc-arm.c:4264 config/tc-tic6x.c:454
 msgid "duplicate .personalityindex directive"
 msgstr ""
 
 msgid "duplicate .personalityindex directive"
 msgstr ""
 
-#: config/tc-arm.c:4244 config/tc-tic6x.c:461
+#: config/tc-arm.c:4271 config/tc-tic6x.c:461
 msgid "bad personality routine number"
 msgstr ""
 
 msgid "bad personality routine number"
 msgstr ""
 
-#: config/tc-arm.c:4266 config/tc-tic6x.c:478
+#: config/tc-arm.c:4293 config/tc-tic6x.c:478
 msgid "duplicate .personality directive"
 msgstr ""
 
 msgid "duplicate .personality directive"
 msgstr ""
 
-#: config/tc-arm.c:4290 config/tc-arm.c:4420 config/tc-arm.c:4470
+#: config/tc-arm.c:4317 config/tc-arm.c:4447 config/tc-arm.c:4497
 msgid "expected register list"
 msgstr ""
 
 msgid "expected register list"
 msgstr ""
 
-#: config/tc-arm.c:4372
+#: config/tc-arm.c:4399
 msgid "expected , <constant>"
 msgstr ""
 
 msgid "expected , <constant>"
 msgstr ""
 
-#: config/tc-arm.c:4381
+#: config/tc-arm.c:4408
 msgid "number of registers must be in the range [1:4]"
 msgstr ""
 
 msgid "number of registers must be in the range [1:4]"
 msgstr ""
 
-#: config/tc-arm.c:4532 config/tc-arm.c:4666
+#: config/tc-arm.c:4559 config/tc-arm.c:4693
 msgid "bad register range"
 msgstr ""
 
 msgid "bad register range"
 msgstr ""
 
-#: config/tc-arm.c:4732
+#: config/tc-arm.c:4759
 msgid "FPA .unwind_save does not take a register list"
 msgstr ""
 
 msgid "FPA .unwind_save does not take a register list"
 msgstr ""
 
-#: config/tc-arm.c:4760
+#: config/tc-arm.c:4787
 msgid ".unwind_save does not support this kind of register"
 msgstr ""
 
 msgid ".unwind_save does not support this kind of register"
 msgstr ""
 
-#: config/tc-arm.c:4799
+#: config/tc-arm.c:4826
 msgid "SP and PC not permitted in .unwind_movsp directive"
 msgstr ""
 
 msgid "SP and PC not permitted in .unwind_movsp directive"
 msgstr ""
 
-#: config/tc-arm.c:4804
+#: config/tc-arm.c:4831
 msgid "unexpected .unwind_movsp directive"
 msgstr ""
 
 msgid "unexpected .unwind_movsp directive"
 msgstr ""
 
-#: config/tc-arm.c:4831
+#: config/tc-arm.c:4858
 msgid "stack increment must be multiple of 4"
 msgstr ""
 
 msgid "stack increment must be multiple of 4"
 msgstr ""
 
-#: config/tc-arm.c:4863
+#: config/tc-arm.c:4890
 msgid "expected <reg>, <reg>"
 msgstr ""
 
 msgid "expected <reg>, <reg>"
 msgstr ""
 
-#: config/tc-arm.c:4881
+#: config/tc-arm.c:4908
 msgid "register must be either sp or set by a previousunwind_movsp directive"
 msgstr ""
 
 msgid "register must be either sp or set by a previousunwind_movsp directive"
 msgstr ""
 
-#: config/tc-arm.c:4920
+#: config/tc-arm.c:4947
 msgid "expected <offset>, <opcode>"
 msgstr ""
 
 msgid "expected <offset>, <opcode>"
 msgstr ""
 
-#: config/tc-arm.c:4932
+#: config/tc-arm.c:4959
 msgid "unwind opcode too long"
 msgstr ""
 
 msgid "unwind opcode too long"
 msgstr ""
 
-#: config/tc-arm.c:4937
+#: config/tc-arm.c:4964
 msgid "invalid unwind opcode"
 msgstr ""
 
 msgid "invalid unwind opcode"
 msgstr ""
 
-#: config/tc-arm.c:5052 config/tc-arm.c:31762
+#: config/tc-arm.c:5079 config/tc-arm.c:32319
 #, c-format
 msgid "unrecognised float16 format \"%s\""
 msgstr ""
 
 #, c-format
 msgid "unrecognised float16 format \"%s\""
 msgstr ""
 
-#: config/tc-arm.c:5063
+#: config/tc-arm.c:5090
 msgid "float16 format cannot be set more than once, ignoring."
 msgstr ""
 
 msgid "float16 format cannot be set more than once, ignoring."
 msgstr ""
 
-#: config/tc-arm.c:5178 config/tc-arm.c:6252 config/tc-arm.c:11606
-#: config/tc-arm.c:12139 config/tc-arm.c:14259 config/tc-arm.c:16192
-#: config/tc-arm.c:16227 config/tc-arm.c:17155 config/tc-arm.c:19082
-#: config/tc-arm.c:19090 config/tc-arm.c:19097 config/tc-arm.c:20739
-#: config/tc-arm.c:28846 config/tc-arm.c:28910 config/tc-arm.c:28918
+#: config/tc-arm.c:5205 config/tc-arm.c:6279 config/tc-arm.c:11655
+#: config/tc-arm.c:12188 config/tc-arm.c:14308 config/tc-arm.c:16259
+#: config/tc-arm.c:16294 config/tc-arm.c:17222 config/tc-arm.c:19143
+#: config/tc-arm.c:19151 config/tc-arm.c:19158 config/tc-arm.c:20798
+#: config/tc-arm.c:29387 config/tc-arm.c:29451 config/tc-arm.c:29459
 #: config/tc-metag.c:5176 config/tc-z8k.c:1151 config/tc-z8k.c:1161
 msgid "immediate value out of range"
 msgstr ""
 
 #: config/tc-metag.c:5176 config/tc-z8k.c:1151 config/tc-z8k.c:1161
 msgid "immediate value out of range"
 msgstr ""
 
-#: config/tc-arm.c:5348
+#: config/tc-arm.c:5375
 msgid "invalid FPA immediate expression"
 msgstr ""
 
 msgid "invalid FPA immediate expression"
 msgstr ""
 
-#: config/tc-arm.c:5533
+#: config/tc-arm.c:5560
 msgid "'UXTW' not allowed here"
 msgstr ""
 
 msgid "'UXTW' not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:5541
+#: config/tc-arm.c:5568
 msgid "'LSL' or 'ASR' required"
 msgstr ""
 
 msgid "'LSL' or 'ASR' required"
 msgstr ""
 
-#: config/tc-arm.c:5549
+#: config/tc-arm.c:5576
 msgid "'LSL' required"
 msgstr ""
 
 msgid "'LSL' required"
 msgstr ""
 
-#: config/tc-arm.c:5557
+#: config/tc-arm.c:5584
 msgid "'ASR' required"
 msgstr ""
 
 msgid "'ASR' required"
 msgstr ""
 
-#: config/tc-arm.c:5564
+#: config/tc-arm.c:5591
 msgid "'UXTW' required"
 msgstr ""
 
 msgid "'UXTW' required"
 msgstr ""
 
-#: config/tc-arm.c:5643
+#: config/tc-arm.c:5670
 msgid "invalid rotation"
 msgstr ""
 
 msgid "invalid rotation"
 msgstr ""
 
-#: config/tc-arm.c:5825 config/tc-arm.c:6030
+#: config/tc-arm.c:5852 config/tc-arm.c:6057
 msgid "unknown group relocation"
 msgstr ""
 
 msgid "unknown group relocation"
 msgstr ""
 
-#: config/tc-arm.c:5861
+#: config/tc-arm.c:5888
 msgid "alignment must be constant"
 msgstr ""
 
 msgid "alignment must be constant"
 msgstr ""
 
-#: config/tc-arm.c:6064
+#: config/tc-arm.c:6091
 msgid "this group relocation is not allowed on this instruction"
 msgstr ""
 
 msgid "this group relocation is not allowed on this instruction"
 msgstr ""
 
-#: config/tc-arm.c:6120
+#: config/tc-arm.c:6147
 msgid "'}' expected at end of 'option' field"
 msgstr ""
 
 msgid "'}' expected at end of 'option' field"
 msgstr ""
 
-#: config/tc-arm.c:6125
+#: config/tc-arm.c:6152
 msgid "cannot combine index with option"
 msgstr ""
 
 msgid "cannot combine index with option"
 msgstr ""
 
-#: config/tc-arm.c:6390
+#: config/tc-arm.c:6417
 msgid "unexpected bit specified after APSR"
 msgstr ""
 
 msgid "unexpected bit specified after APSR"
 msgstr ""
 
-#: config/tc-arm.c:6402
+#: config/tc-arm.c:6429
 msgid "selected processor does not support DSP extension"
 msgstr ""
 
 msgid "selected processor does not support DSP extension"
 msgstr ""
 
-#: config/tc-arm.c:6414
+#: config/tc-arm.c:6441
 msgid "bad bitmask specified after APSR"
 msgstr ""
 
 msgid "bad bitmask specified after APSR"
 msgstr ""
 
-#: config/tc-arm.c:6438
+#: config/tc-arm.c:6465
 msgid "writing to APSR without specifying a bitmask is deprecated"
 msgstr ""
 
 msgid "writing to APSR without specifying a bitmask is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:6450 config/tc-arm.c:13362 config/tc-arm.c:13407
-#: config/tc-arm.c:13411
+#: config/tc-arm.c:6477 config/tc-arm.c:13411 config/tc-arm.c:13456
+#: config/tc-arm.c:13460
 msgid "selected processor does not support requested special purpose register"
 msgstr ""
 
 msgid "selected processor does not support requested special purpose register"
 msgstr ""
 
-#: config/tc-arm.c:6455
+#: config/tc-arm.c:6482
 msgid "flag for {c}psr instruction expected"
 msgstr ""
 
 msgid "flag for {c}psr instruction expected"
 msgstr ""
 
-#: config/tc-arm.c:6513
+#: config/tc-arm.c:6540
 msgid "unrecognized CPS flag"
 msgstr ""
 
 msgid "unrecognized CPS flag"
 msgstr ""
 
-#: config/tc-arm.c:6520
+#: config/tc-arm.c:6547
 msgid "missing CPS flags"
 msgstr ""
 
 msgid "missing CPS flags"
 msgstr ""
 
-#: config/tc-arm.c:6543 config/tc-arm.c:6549
+#: config/tc-arm.c:6570 config/tc-arm.c:6576
 msgid "valid endian specifiers are be or le"
 msgstr ""
 
 msgid "valid endian specifiers are be or le"
 msgstr ""
 
-#: config/tc-arm.c:6571
+#: config/tc-arm.c:6598
 msgid "missing rotation field after comma"
 msgstr ""
 
 msgid "missing rotation field after comma"
 msgstr ""
 
-#: config/tc-arm.c:6586
+#: config/tc-arm.c:6613
 msgid "rotation can only be 0, 8, 16, or 24"
 msgstr ""
 
 msgid "rotation can only be 0, 8, 16, or 24"
 msgstr ""
 
-#: config/tc-arm.c:6615
+#: config/tc-arm.c:6642
 msgid "condition required"
 msgstr ""
 
 msgid "condition required"
 msgstr ""
 
-#: config/tc-arm.c:6657 config/tc-arm.c:9775
+#: config/tc-arm.c:6684 config/tc-arm.c:9824
 msgid "'[' expected"
 msgstr ""
 
 msgid "'[' expected"
 msgstr ""
 
-#: config/tc-arm.c:6670
+#: config/tc-arm.c:6697
 msgid "',' expected"
 msgstr ""
 
 msgid "',' expected"
 msgstr ""
 
-#: config/tc-arm.c:6687
+#: config/tc-arm.c:6714
 msgid "invalid shift"
 msgstr ""
 
 msgid "invalid shift"
 msgstr ""
 
-#: config/tc-arm.c:6767
+#: config/tc-arm.c:6794
 msgid "expected ARM or MVE vector register"
 msgstr ""
 
 msgid "expected ARM or MVE vector register"
 msgstr ""
 
-#: config/tc-arm.c:6816
+#: config/tc-arm.c:6843
 msgid "can't use Neon quad register here"
 msgstr ""
 
 msgid "can't use Neon quad register here"
 msgstr ""
 
-#: config/tc-arm.c:6885
+#: config/tc-arm.c:6912
 msgid "expected <Rm> or <Dm> or <Qm> operand"
 msgstr ""
 
 msgid "expected <Rm> or <Dm> or <Qm> operand"
 msgstr ""
 
-#: config/tc-arm.c:6985
+#: config/tc-arm.c:7012
 msgid "VFP single, double or MVE vector register expected"
 msgstr ""
 
 msgid "VFP single, double or MVE vector register expected"
 msgstr ""
 
-#: config/tc-arm.c:7005
+#: config/tc-arm.c:7032
 msgid "parse error"
 msgstr ""
 
 msgid "parse error"
 msgstr ""
 
-#: config/tc-arm.c:7299
+#: config/tc-arm.c:7334
 msgid "immediate value 48 or 64 expected"
 msgstr ""
 
 #. ISB can only take SY as an option.
 msgid "immediate value 48 or 64 expected"
 msgstr ""
 
 #. ISB can only take SY as an option.
-#: config/tc-arm.c:7348
+#: config/tc-arm.c:7383
 msgid "invalid barrier type"
 msgstr ""
 
 msgid "invalid barrier type"
 msgstr ""
 
-#: config/tc-arm.c:7511
+#: config/tc-arm.c:7557
 msgid "only floating point zero is allowed as immediate value"
 msgstr ""
 
 msgid "only floating point zero is allowed as immediate value"
 msgstr ""
 
-#: config/tc-arm.c:7606
+#: config/tc-arm.c:7652
 msgid "immediate value is out of range"
 msgstr ""
 
 msgid "immediate value is out of range"
 msgstr ""
 
-#: config/tc-arm.c:7778
+#: config/tc-arm.c:7827
 msgid "iWMMXt data or control register expected"
 msgstr ""
 
 msgid "iWMMXt data or control register expected"
 msgstr ""
 
-#: config/tc-arm.c:7819
+#: config/tc-arm.c:7868
 msgid "Banked registers are not available with this architecture."
 msgstr ""
 
 msgid "Banked registers are not available with this architecture."
 msgstr ""
 
-#: config/tc-arm.c:8067
+#: config/tc-arm.c:8116
 msgid "operand must be LR register"
 msgstr ""
 
 msgid "operand must be LR register"
 msgstr ""
 
-#: config/tc-arm.c:8138 config/tc-score.c:264
+#: config/tc-arm.c:8187 config/tc-score.c:264
 msgid "garbage following instruction"
 msgstr ""
 
 #. If REG is R13 (the stack pointer), warn that its use is
 #. deprecated.
 msgid "garbage following instruction"
 msgstr ""
 
 #. If REG is R13 (the stack pointer), warn that its use is
 #. deprecated.
-#: config/tc-arm.c:8188
+#: config/tc-arm.c:8237
 msgid "use of r13 is deprecated"
 msgstr ""
 
 msgid "use of r13 is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:8206 config/tc-arm.c:20447
+#: config/tc-arm.c:8255 config/tc-arm.c:20506
 msgid ""
 "ARMv8.2 scalar fp16 instruction cannot be conditional, the behaviour is "
 "UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "ARMv8.2 scalar fp16 instruction cannot be conditional, the behaviour is "
 "UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:8281
+#: config/tc-arm.c:8330
 msgid "D register out of range for selected VFP version"
 msgstr ""
 
 msgid "D register out of range for selected VFP version"
 msgstr ""
 
-#: config/tc-arm.c:8378 config/tc-arm.c:11301
+#: config/tc-arm.c:8427 config/tc-arm.c:11350
 msgid "Instruction does not support =N addresses"
 msgstr ""
 
 msgid "Instruction does not support =N addresses"
 msgstr ""
 
-#: config/tc-arm.c:8386
+#: config/tc-arm.c:8435
 msgid "instruction does not accept preindexed addressing"
 msgstr ""
 
 #. unindexed - only for coprocessor
 msgid "instruction does not accept preindexed addressing"
 msgstr ""
 
 #. unindexed - only for coprocessor
-#: config/tc-arm.c:8402 config/tc-arm.c:11364
+#: config/tc-arm.c:8451 config/tc-arm.c:11413
 msgid "instruction does not accept unindexed addressing"
 msgstr ""
 
 msgid "instruction does not accept unindexed addressing"
 msgstr ""
 
-#: config/tc-arm.c:8410
+#: config/tc-arm.c:8459
 msgid "destination register same as write-back base"
 msgstr ""
 
 msgid "destination register same as write-back base"
 msgstr ""
 
-#: config/tc-arm.c:8411
+#: config/tc-arm.c:8460
 msgid "source register same as write-back base"
 msgstr ""
 
 msgid "source register same as write-back base"
 msgstr ""
 
-#: config/tc-arm.c:8461
+#: config/tc-arm.c:8510
 msgid "use of PC in this instruction is deprecated"
 msgstr ""
 
 msgid "use of PC in this instruction is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:8484
+#: config/tc-arm.c:8533
 msgid "instruction does not accept scaled register index"
 msgstr ""
 
 msgid "instruction does not accept scaled register index"
 msgstr ""
 
-#: config/tc-arm.c:8789
+#: config/tc-arm.c:8838
 msgid "invalid pseudo operation"
 msgstr ""
 
 msgid "invalid pseudo operation"
 msgstr ""
 
-#: config/tc-arm.c:9032
+#: config/tc-arm.c:9081
 msgid "invalid co-processor operand"
 msgstr ""
 
 msgid "invalid co-processor operand"
 msgstr ""
 
-#: config/tc-arm.c:9048
+#: config/tc-arm.c:9097
 msgid "instruction does not support unindexed addressing"
 msgstr ""
 
 msgid "instruction does not support unindexed addressing"
 msgstr ""
 
-#: config/tc-arm.c:9063
+#: config/tc-arm.c:9112
 msgid "pc may not be used with write-back"
 msgstr ""
 
 msgid "pc may not be used with write-back"
 msgstr ""
 
-#: config/tc-arm.c:9068
+#: config/tc-arm.c:9117
 msgid "instruction does not support writeback"
 msgstr ""
 
 msgid "instruction does not support writeback"
 msgstr ""
 
-#: config/tc-arm.c:9174
+#: config/tc-arm.c:9223
 msgid "Rn must not overlap other operands"
 msgstr ""
 
 msgid "Rn must not overlap other operands"
 msgstr ""
 
-#: config/tc-arm.c:9179
+#: config/tc-arm.c:9228
 msgid "swp{b} use is obsoleted for ARMv8 and later"
 msgstr ""
 
 msgid "swp{b} use is obsoleted for ARMv8 and later"
 msgstr ""
 
-#: config/tc-arm.c:9182
+#: config/tc-arm.c:9231
 msgid "swp{b} use is deprecated for ARMv6 and ARMv7"
 msgstr ""
 
 msgid "swp{b} use is deprecated for ARMv6 and ARMv7"
 msgstr ""
 
-#: config/tc-arm.c:9301 config/tc-arm.c:9320 config/tc-arm.c:9333
-#: config/tc-arm.c:11976 config/tc-arm.c:12007 config/tc-arm.c:12029
+#: config/tc-arm.c:9350 config/tc-arm.c:9369 config/tc-arm.c:9382
+#: config/tc-arm.c:12025 config/tc-arm.c:12056 config/tc-arm.c:12078
 msgid "bit-field extends past end of register"
 msgstr ""
 
 msgid "bit-field extends past end of register"
 msgstr ""
 
-#: config/tc-arm.c:9363
+#: config/tc-arm.c:9412
 msgid "the only valid suffixes here are '(plt)' and '(tlscall)'"
 msgstr ""
 
 msgid "the only valid suffixes here are '(plt)' and '(tlscall)'"
 msgstr ""
 
-#: config/tc-arm.c:9416
+#: config/tc-arm.c:9465
 msgid "use of r15 in blx in ARM mode is not really useful"
 msgstr ""
 
 msgid "use of r15 in blx in ARM mode is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:9438
+#: config/tc-arm.c:9487
 msgid "use of r15 in bx in ARM mode is not really useful"
 msgstr ""
 
 msgid "use of r15 in bx in ARM mode is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:9464
+#: config/tc-arm.c:9513
 msgid "use of r15 in bxj is not really useful"
 msgstr ""
 
 msgid "use of r15 in bxj is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:9512
+#: config/tc-arm.c:9561
 msgid "This coprocessor register access is deprecated in ARMv8"
 msgstr ""
 
 msgid "This coprocessor register access is deprecated in ARMv8"
 msgstr ""
 
-#: config/tc-arm.c:9720 config/tc-arm.c:9729
+#: config/tc-arm.c:9769 config/tc-arm.c:9778
 msgid "writeback of base register is UNPREDICTABLE"
 msgstr ""
 
 msgid "writeback of base register is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:9723
+#: config/tc-arm.c:9772
 msgid "writeback of base register when in register list is UNPREDICTABLE"
 msgstr ""
 
 msgid "writeback of base register when in register list is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:9733
+#: config/tc-arm.c:9782
 msgid "if writeback register is in list, it must be the lowest reg in the list"
 msgstr ""
 
 msgid "if writeback register is in list, it must be the lowest reg in the list"
 msgstr ""
 
-#: config/tc-arm.c:9770
+#: config/tc-arm.c:9819
 msgid "first transfer register must be even"
 msgstr ""
 
 msgid "first transfer register must be even"
 msgstr ""
 
-#: config/tc-arm.c:9773
+#: config/tc-arm.c:9822
 msgid "can only transfer two consecutive registers"
 msgstr ""
 
 msgid "can only transfer two consecutive registers"
 msgstr ""
 
@@ -3957,1359 +4010,1421 @@ msgstr ""
 #. have been called in the first place.
 #. If op 2 were present and equal to PC, this function wouldn't
 #. have been called in the first place.
 #. have been called in the first place.
 #. If op 2 were present and equal to PC, this function wouldn't
 #. have been called in the first place.
-#: config/tc-arm.c:9774 config/tc-arm.c:9844 config/tc-arm.c:10575
-#: config/tc-arm.c:12851
+#: config/tc-arm.c:9823 config/tc-arm.c:9893 config/tc-arm.c:10624
+#: config/tc-arm.c:12900
 msgid "r14 not allowed here"
 msgstr ""
 
 msgid "r14 not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:9786
+#: config/tc-arm.c:9835
 msgid "base register written back, and overlaps second transfer register"
 msgstr ""
 
 msgid "base register written back, and overlaps second transfer register"
 msgstr ""
 
-#: config/tc-arm.c:9796
+#: config/tc-arm.c:9845
 msgid "index register overlaps transfer register"
 msgstr ""
 
 msgid "index register overlaps transfer register"
 msgstr ""
 
-#: config/tc-arm.c:9825 config/tc-arm.c:10542
+#: config/tc-arm.c:9874 config/tc-arm.c:10591
 msgid "offset must be zero in ARM encoding"
 msgstr ""
 
 msgid "offset must be zero in ARM encoding"
 msgstr ""
 
-#: config/tc-arm.c:9838 config/tc-arm.c:10569
+#: config/tc-arm.c:9887 config/tc-arm.c:10618
 msgid "even register required"
 msgstr ""
 
 msgid "even register required"
 msgstr ""
 
-#: config/tc-arm.c:9841
+#: config/tc-arm.c:9890
 msgid "can only load two consecutive registers"
 msgstr ""
 
 msgid "can only load two consecutive registers"
 msgstr ""
 
-#: config/tc-arm.c:9859
+#: config/tc-arm.c:9908
 msgid "ldr to register 15 must be 4-byte aligned"
 msgstr ""
 
 msgid "ldr to register 15 must be 4-byte aligned"
 msgstr ""
 
-#: config/tc-arm.c:9882 config/tc-arm.c:9914
+#: config/tc-arm.c:9931 config/tc-arm.c:9963
 msgid "this instruction requires a post-indexed address"
 msgstr ""
 
 msgid "this instruction requires a post-indexed address"
 msgstr ""
 
-#: config/tc-arm.c:9941
+#: config/tc-arm.c:9990
 msgid "Rd and Rm should be different in mla"
 msgstr ""
 
 msgid "Rd and Rm should be different in mla"
 msgstr ""
 
-#: config/tc-arm.c:9968 config/tc-arm.c:13226
+#: config/tc-arm.c:10017 config/tc-arm.c:13275
 msgid ":lower16: not allowed in this instruction"
 msgstr ""
 
 msgid ":lower16: not allowed in this instruction"
 msgstr ""
 
-#: config/tc-arm.c:9970 config/tc-arm.c:13231
+#: config/tc-arm.c:10019 config/tc-arm.c:13280
 msgid ":upper16: not allowed in this instruction"
 msgstr ""
 
 msgid ":upper16: not allowed in this instruction"
 msgstr ""
 
-#: config/tc-arm.c:9987
+#: config/tc-arm.c:10036
 msgid "operand 1 must be FPSCR"
 msgstr ""
 
 msgid "operand 1 must be FPSCR"
 msgstr ""
 
-#: config/tc-arm.c:10040 config/tc-arm.c:10049 config/tc-arm.c:10103
-#: config/tc-arm.c:10112
+#: config/tc-arm.c:10089 config/tc-arm.c:10098 config/tc-arm.c:10152
+#: config/tc-arm.c:10161
 msgid "selected processor does not support instruction"
 msgstr ""
 
 msgid "selected processor does not support instruction"
 msgstr ""
 
-#: config/tc-arm.c:10052 config/tc-arm.c:10115
+#: config/tc-arm.c:10101 config/tc-arm.c:10164
 msgid "accessing MVE system register without MVE is UNPREDICTABLE"
 msgstr ""
 
 msgid "accessing MVE system register without MVE is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:10143 config/tc-arm.c:13345
+#: config/tc-arm.c:10192 config/tc-arm.c:13394
 msgid "bad register for mrs"
 msgstr ""
 
 msgid "bad register for mrs"
 msgstr ""
 
-#: config/tc-arm.c:10150 config/tc-arm.c:13369
+#: config/tc-arm.c:10199 config/tc-arm.c:13418
 msgid "'APSR', 'CPSR' or 'SPSR' expected"
 msgstr ""
 
 msgid "'APSR', 'CPSR' or 'SPSR' expected"
 msgstr ""
 
-#: config/tc-arm.c:10191
+#: config/tc-arm.c:10240
 msgid "Rd and Rm should be different in mul"
 msgstr ""
 
 msgid "Rd and Rm should be different in mul"
 msgstr ""
 
-#: config/tc-arm.c:10210 config/tc-arm.c:10487 config/tc-arm.c:13508
+#: config/tc-arm.c:10259 config/tc-arm.c:10536 config/tc-arm.c:13557
 msgid "rdhi and rdlo must be different"
 msgstr ""
 
 msgid "rdhi and rdlo must be different"
 msgstr ""
 
-#: config/tc-arm.c:10216
+#: config/tc-arm.c:10265
 msgid "rdhi, rdlo and rm must all be different"
 msgstr ""
 
 msgid "rdhi, rdlo and rm must all be different"
 msgstr ""
 
-#: config/tc-arm.c:10282
+#: config/tc-arm.c:10331
 msgid "'[' expected after PLD mnemonic"
 msgstr ""
 
 msgid "'[' expected after PLD mnemonic"
 msgstr ""
 
-#: config/tc-arm.c:10284 config/tc-arm.c:10299
+#: config/tc-arm.c:10333 config/tc-arm.c:10348
 msgid "post-indexed expression used in preload instruction"
 msgstr ""
 
 msgid "post-indexed expression used in preload instruction"
 msgstr ""
 
-#: config/tc-arm.c:10286 config/tc-arm.c:10301
+#: config/tc-arm.c:10335 config/tc-arm.c:10350
 msgid "writeback used in preload instruction"
 msgstr ""
 
 msgid "writeback used in preload instruction"
 msgstr ""
 
-#: config/tc-arm.c:10288 config/tc-arm.c:10303
+#: config/tc-arm.c:10337 config/tc-arm.c:10352
 msgid "unindexed addressing used in preload instruction"
 msgstr ""
 
 msgid "unindexed addressing used in preload instruction"
 msgstr ""
 
-#: config/tc-arm.c:10297
+#: config/tc-arm.c:10346
 msgid "'[' expected after PLI mnemonic"
 msgstr ""
 
 msgid "'[' expected after PLI mnemonic"
 msgstr ""
 
-#: config/tc-arm.c:10312 config/tc-arm.c:13677
+#: config/tc-arm.c:10361 config/tc-arm.c:13726
 msgid "push/pop do not support {reglist}^"
 msgstr ""
 
 msgid "push/pop do not support {reglist}^"
 msgstr ""
 
-#: config/tc-arm.c:10390 config/tc-arm.c:13854
+#: config/tc-arm.c:10439 config/tc-arm.c:13903
 msgid "setend use is deprecated for ARMv8"
 msgstr ""
 
 msgid "setend use is deprecated for ARMv8"
 msgstr ""
 
-#: config/tc-arm.c:10411 config/tc-arm.c:13915 config/tc-arm.c:13947
-#: config/tc-arm.c:13990
+#: config/tc-arm.c:10460 config/tc-arm.c:13964 config/tc-arm.c:13996
+#: config/tc-arm.c:14039
 msgid "extraneous shift as part of operand to shift insn"
 msgstr ""
 
 msgid "extraneous shift as part of operand to shift insn"
 msgstr ""
 
-#: config/tc-arm.c:10421 config/tc-arm.c:14053
+#: config/tc-arm.c:10470 config/tc-arm.c:14102
 msgid "immediate too large (bigger than 0xF)"
 msgstr ""
 
 msgid "immediate too large (bigger than 0xF)"
 msgstr ""
 
-#: config/tc-arm.c:10445 config/tc-arm.c:10454
+#: config/tc-arm.c:10494 config/tc-arm.c:10503
 msgid "selected processor does not support SETPAN instruction"
 msgstr ""
 
 msgid "selected processor does not support SETPAN instruction"
 msgstr ""
 
-#: config/tc-arm.c:10513
+#: config/tc-arm.c:10562
 msgid "SRS base register must be r13"
 msgstr ""
 
 msgid "SRS base register must be r13"
 msgstr ""
 
-#: config/tc-arm.c:10572
+#: config/tc-arm.c:10621
 msgid "can only store two consecutive registers"
 msgstr ""
 
 msgid "can only store two consecutive registers"
 msgstr ""
 
-#: config/tc-arm.c:10694 config/tc-arm.c:10715
+#: config/tc-arm.c:10743 config/tc-arm.c:10764
 msgid "only two consecutive VFP SP registers allowed here"
 msgstr ""
 
 msgid "only two consecutive VFP SP registers allowed here"
 msgstr ""
 
-#: config/tc-arm.c:10743 config/tc-arm.c:10758
+#: config/tc-arm.c:10792 config/tc-arm.c:10807
 msgid "this addressing mode requires base-register writeback"
 msgstr ""
 
 #. If srcsize is 16, inst.operands[1].imm must be in the range 0-16.
 #. i.e. immbits must be in range 0 - 16.
 msgid "this addressing mode requires base-register writeback"
 msgstr ""
 
 #. If srcsize is 16, inst.operands[1].imm must be in the range 0-16.
 #. i.e. immbits must be in range 0 - 16.
-#: config/tc-arm.c:10887
+#: config/tc-arm.c:10936
 msgid "immediate value out of range, expected range [0, 16]"
 msgstr ""
 
 #. If srcsize is 32, inst.operands[1].imm must be in the range 1-32.
 #. i.e. immbits must be in range 0 - 31.
 msgid "immediate value out of range, expected range [0, 16]"
 msgstr ""
 
 #. If srcsize is 32, inst.operands[1].imm must be in the range 1-32.
 #. i.e. immbits must be in range 0 - 31.
-#: config/tc-arm.c:10894
+#: config/tc-arm.c:10943
 msgid "immediate value out of range, expected range [1, 32]"
 msgstr ""
 
 msgid "immediate value out of range, expected range [1, 32]"
 msgstr ""
 
-#: config/tc-arm.c:10960
+#: config/tc-arm.c:11009
 msgid "this instruction does not support indexing"
 msgstr ""
 
 msgid "this instruction does not support indexing"
 msgstr ""
 
-#: config/tc-arm.c:10983
+#: config/tc-arm.c:11032
 msgid "only r15 allowed here"
 msgstr ""
 
 msgid "only r15 allowed here"
 msgstr ""
 
-#: config/tc-arm.c:11118
+#: config/tc-arm.c:11167
 msgid "immediate operand requires iWMMXt2"
 msgstr ""
 
 msgid "immediate operand requires iWMMXt2"
 msgstr ""
 
-#: config/tc-arm.c:11262
+#: config/tc-arm.c:11311
 msgid "shift by register not allowed in thumb mode"
 msgstr ""
 
 msgid "shift by register not allowed in thumb mode"
 msgstr ""
 
-#: config/tc-arm.c:11274 config/tc-arm.c:14099 config/tc-arm.c:28140
+#: config/tc-arm.c:11323 config/tc-arm.c:14148 config/tc-arm.c:28678
 msgid "shift expression is too large"
 msgstr ""
 
 msgid "shift expression is too large"
 msgstr ""
 
-#: config/tc-arm.c:11307
+#: config/tc-arm.c:11356
 msgid "cannot use register index with this instruction"
 msgstr ""
 
 msgid "cannot use register index with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:11309
+#: config/tc-arm.c:11358
 msgid "Thumb does not support negative register indexing"
 msgstr ""
 
 msgid "Thumb does not support negative register indexing"
 msgstr ""
 
-#: config/tc-arm.c:11311
+#: config/tc-arm.c:11360
 msgid "Thumb does not support register post-indexing"
 msgstr ""
 
 msgid "Thumb does not support register post-indexing"
 msgstr ""
 
-#: config/tc-arm.c:11313
+#: config/tc-arm.c:11362
 msgid "Thumb does not support register indexing with writeback"
 msgstr ""
 
 msgid "Thumb does not support register indexing with writeback"
 msgstr ""
 
-#: config/tc-arm.c:11315
+#: config/tc-arm.c:11364
 msgid "Thumb supports only LSL in shifted register indexing"
 msgstr ""
 
 msgid "Thumb supports only LSL in shifted register indexing"
 msgstr ""
 
-#: config/tc-arm.c:11324 config/tc-arm.c:19815
+#: config/tc-arm.c:11373 config/tc-arm.c:19874
 msgid "shift out of range"
 msgstr ""
 
 msgid "shift out of range"
 msgstr ""
 
-#: config/tc-arm.c:11333
+#: config/tc-arm.c:11382
 msgid "cannot use writeback with this instruction"
 msgstr ""
 
 msgid "cannot use writeback with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:11354
+#: config/tc-arm.c:11403
 msgid "cannot use post-indexing with PC-relative addressing"
 msgstr ""
 
 msgid "cannot use post-indexing with PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:11355
+#: config/tc-arm.c:11404
 msgid "cannot use post-indexing with this instruction"
 msgstr ""
 
 msgid "cannot use post-indexing with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:11601
+#: config/tc-arm.c:11650
 msgid "only SUBS PC, LR, #const allowed"
 msgstr ""
 
 msgid "only SUBS PC, LR, #const allowed"
 msgstr ""
 
-#: config/tc-arm.c:11684 config/tc-arm.c:11844 config/tc-arm.c:11941
-#: config/tc-arm.c:13306 config/tc-arm.c:13614
+#: config/tc-arm.c:11733 config/tc-arm.c:11893 config/tc-arm.c:11990
+#: config/tc-arm.c:13355 config/tc-arm.c:13663
 msgid "shift must be constant"
 msgstr ""
 
 msgid "shift must be constant"
 msgstr ""
 
-#: config/tc-arm.c:11689
+#: config/tc-arm.c:11738
 msgid "shift value over 3 not allowed in thumb mode"
 msgstr ""
 
 msgid "shift value over 3 not allowed in thumb mode"
 msgstr ""
 
-#: config/tc-arm.c:11691
+#: config/tc-arm.c:11740
 msgid "only LSL shift allowed in thumb mode"
 msgstr ""
 
 msgid "only LSL shift allowed in thumb mode"
 msgstr ""
 
-#: config/tc-arm.c:11715 config/tc-arm.c:11859 config/tc-arm.c:11956
-#: config/tc-arm.c:13319
+#: config/tc-arm.c:11764 config/tc-arm.c:11908 config/tc-arm.c:12005
+#: config/tc-arm.c:13368
 msgid "unshifted register required"
 msgstr ""
 
 msgid "unshifted register required"
 msgstr ""
 
-#: config/tc-arm.c:11730 config/tc-arm.c:11967 config/tc-arm.c:13469
+#: config/tc-arm.c:11779 config/tc-arm.c:12016 config/tc-arm.c:13518
 msgid "dest must overlap one source register"
 msgstr ""
 
 msgid "dest must overlap one source register"
 msgstr ""
 
-#: config/tc-arm.c:11862 config/tc-csky.c:5510
+#: config/tc-arm.c:11911 config/tc-csky.c:5510
 msgid "dest and source1 must be the same register"
 msgstr ""
 
 msgid "dest and source1 must be the same register"
 msgstr ""
 
-#: config/tc-arm.c:12102
+#: config/tc-arm.c:12151
 msgid ""
 "selected architecture does not support wide conditional branch instruction"
 msgstr ""
 
 msgid ""
 "selected architecture does not support wide conditional branch instruction"
 msgstr ""
 
-#: config/tc-arm.c:12135
+#: config/tc-arm.c:12184
 msgid "instruction is always unconditional"
 msgstr ""
 
 msgid "instruction is always unconditional"
 msgstr ""
 
-#: config/tc-arm.c:12310
+#: config/tc-arm.c:12359
 msgid "selected processor does not support 'A' form of this instruction"
 msgstr ""
 
 msgid "selected processor does not support 'A' form of this instruction"
 msgstr ""
 
-#: config/tc-arm.c:12313
+#: config/tc-arm.c:12362
 msgid "Thumb does not support the 2-argument form of this instruction"
 msgstr ""
 
 msgid "Thumb does not support the 2-argument form of this instruction"
 msgstr ""
 
-#: config/tc-arm.c:12438
+#: config/tc-arm.c:12487
 msgid "SP not allowed in register list"
 msgstr ""
 
 msgid "SP not allowed in register list"
 msgstr ""
 
-#: config/tc-arm.c:12442 config/tc-arm.c:12549
+#: config/tc-arm.c:12491 config/tc-arm.c:12598
 msgid ""
 "having the base register in the register list when using write back is "
 "UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "having the base register in the register list when using write back is "
 "UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:12450
+#: config/tc-arm.c:12499
 msgid "LR and PC should not both be in register list"
 msgstr ""
 
 msgid "LR and PC should not both be in register list"
 msgstr ""
 
-#: config/tc-arm.c:12458
+#: config/tc-arm.c:12507
 msgid "PC not allowed in register list"
 msgstr ""
 
 msgid "PC not allowed in register list"
 msgstr ""
 
-#: config/tc-arm.c:12501
+#: config/tc-arm.c:12550
 msgid "Thumb load/store multiple does not support {reglist}^"
 msgstr ""
 
 msgid "Thumb load/store multiple does not support {reglist}^"
 msgstr ""
 
-#: config/tc-arm.c:12526 config/tc-arm.c:12604
+#: config/tc-arm.c:12575 config/tc-arm.c:12653
 #, c-format
 msgid "value stored for r%d is UNKNOWN"
 msgstr ""
 
 #, c-format
 msgid "value stored for r%d is UNKNOWN"
 msgstr ""
 
-#: config/tc-arm.c:12597
+#: config/tc-arm.c:12646
 msgid "Thumb-2 instruction only valid in unified syntax"
 msgstr ""
 
 msgid "Thumb-2 instruction only valid in unified syntax"
 msgstr ""
 
-#: config/tc-arm.c:12601 config/tc-arm.c:12611
+#: config/tc-arm.c:12650 config/tc-arm.c:12660
 msgid "this instruction will write back the base register"
 msgstr ""
 
 msgid "this instruction will write back the base register"
 msgstr ""
 
-#: config/tc-arm.c:12614
+#: config/tc-arm.c:12663
 msgid "this instruction will not write back the base register"
 msgstr ""
 
 msgid "this instruction will not write back the base register"
 msgstr ""
 
-#: config/tc-arm.c:12645
+#: config/tc-arm.c:12694
 msgid "r14 not allowed as first register when second register is omitted"
 msgstr ""
 
 msgid "r14 not allowed as first register when second register is omitted"
 msgstr ""
 
-#: config/tc-arm.c:12745
+#: config/tc-arm.c:12794
 msgid ""
 "This instruction may be unpredictable if executed on M-profile cores with "
 "interrupts enabled."
 msgstr ""
 
 msgid ""
 "This instruction may be unpredictable if executed on M-profile cores with "
 "interrupts enabled."
 msgstr ""
 
-#: config/tc-arm.c:12774 config/tc-arm.c:12787 config/tc-arm.c:12823
+#: config/tc-arm.c:12823 config/tc-arm.c:12836 config/tc-arm.c:12872
 msgid "Thumb does not support this addressing mode"
 msgstr ""
 
 msgid "Thumb does not support this addressing mode"
 msgstr ""
 
-#: config/tc-arm.c:12791
+#: config/tc-arm.c:12840
 msgid "byte or halfword not valid for base register"
 msgstr ""
 
 msgid "byte or halfword not valid for base register"
 msgstr ""
 
-#: config/tc-arm.c:12794
+#: config/tc-arm.c:12843
 msgid "r15 based store not allowed"
 msgstr ""
 
 msgid "r15 based store not allowed"
 msgstr ""
 
-#: config/tc-arm.c:12796
+#: config/tc-arm.c:12845
 msgid "invalid base register for register offset"
 msgstr ""
 
 msgid "invalid base register for register offset"
 msgstr ""
 
-#: config/tc-arm.c:12853
+#: config/tc-arm.c:12902
 msgid "r12 not allowed here"
 msgstr ""
 
 msgid "r12 not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:12859
+#: config/tc-arm.c:12908
 msgid "base register written back, and overlaps one of transfer registers"
 msgstr ""
 
 msgid "base register written back, and overlaps one of transfer registers"
 msgstr ""
 
-#: config/tc-arm.c:12987
+#: config/tc-arm.c:13036
 #, c-format
 msgid ""
 "Use of r%u as a source register is deprecated when r%u is the destination "
 "register."
 msgstr ""
 
 #, c-format
 msgid ""
 "Use of r%u as a source register is deprecated when r%u is the destination "
 "register."
 msgstr ""
 
-#: config/tc-arm.c:13182
+#: config/tc-arm.c:13231
 msgid "shifts in CMP/MOV instructions are only supported in unified syntax"
 msgstr ""
 
 msgid "shifts in CMP/MOV instructions are only supported in unified syntax"
 msgstr ""
 
-#: config/tc-arm.c:13210
+#: config/tc-arm.c:13259
 msgid "only lo regs allowed with immediate"
 msgstr ""
 
 msgid "only lo regs allowed with immediate"
 msgstr ""
 
-#: config/tc-arm.c:13387
+#: config/tc-arm.c:13436
 msgid "Thumb encoding does not support an immediate here"
 msgstr ""
 
 msgid "Thumb encoding does not support an immediate here"
 msgstr ""
 
-#: config/tc-arm.c:13474
+#: config/tc-arm.c:13523
 msgid "Thumb-2 MUL must not set flags"
 msgstr ""
 
 msgid "Thumb-2 MUL must not set flags"
 msgstr ""
 
-#: config/tc-arm.c:13539
+#: config/tc-arm.c:13588
 msgid "Thumb does not support NOP with hints"
 msgstr ""
 
 msgid "Thumb does not support NOP with hints"
 msgstr ""
 
-#: config/tc-arm.c:13699 config/tc-arm.c:13711
+#: config/tc-arm.c:13748 config/tc-arm.c:13760
 msgid "invalid register list to push/pop instruction"
 msgstr ""
 
 msgid "invalid register list to push/pop instruction"
 msgstr ""
 
-#: config/tc-arm.c:13974
+#: config/tc-arm.c:14023
 msgid "source1 and dest must be same register"
 msgstr ""
 
 msgid "source1 and dest must be same register"
 msgstr ""
 
-#: config/tc-arm.c:13999
+#: config/tc-arm.c:14048
 msgid "ror #imm not supported"
 msgstr ""
 
 msgid "ror #imm not supported"
 msgstr ""
 
-#: config/tc-arm.c:14050
+#: config/tc-arm.c:14099
 msgid "SMC is not permitted on this architecture"
 msgstr ""
 
 msgid "SMC is not permitted on this architecture"
 msgstr ""
 
-#: config/tc-arm.c:14216
+#: config/tc-arm.c:14265
 msgid "Thumb encoding does not support rotation"
 msgstr ""
 
 msgid "Thumb encoding does not support rotation"
 msgstr ""
 
-#: config/tc-arm.c:14236
+#: config/tc-arm.c:14285
 msgid "instruction requires register index"
 msgstr ""
 
 msgid "instruction requires register index"
 msgstr ""
 
-#: config/tc-arm.c:14246
+#: config/tc-arm.c:14295
 msgid "instruction does not allow shifted index"
 msgstr ""
 
 msgid "instruction does not allow shifted index"
 msgstr ""
 
-#: config/tc-arm.c:14402 config/tc-arm.c:29281
+#: config/tc-arm.c:14451 config/tc-arm.c:29822
 msgid "out of range label-relative fixup value"
 msgstr ""
 
 msgid "out of range label-relative fixup value"
 msgstr ""
 
-#: config/tc-arm.c:14726
+#: config/tc-arm.c:14775
 msgid "invalid neon suffix for non neon instruction"
 msgstr ""
 
 msgid "invalid neon suffix for non neon instruction"
 msgstr ""
 
-#: config/tc-arm.c:15105 config/tc-arm.c:15458 config/tc-arm.c:16941
-#: config/tc-arm.c:17021 config/tc-arm.c:17078 config/tc-arm.c:18965
-#: config/tc-arm.c:21143 config/tc-arm.c:21330
+#: config/tc-arm.c:15170 config/tc-arm.c:15523 config/tc-arm.c:17008
+#: config/tc-arm.c:17088 config/tc-arm.c:17145 config/tc-arm.c:19026
+#: config/tc-arm.c:21202 config/tc-arm.c:21389
 msgid "invalid instruction shape"
 msgstr ""
 
 msgid "invalid instruction shape"
 msgstr ""
 
-#: config/tc-arm.c:15357
+#: config/tc-arm.c:15422
 msgid "types specified in both the mnemonic and operands"
 msgstr ""
 
 msgid "types specified in both the mnemonic and operands"
 msgstr ""
 
-#: config/tc-arm.c:15394
+#: config/tc-arm.c:15459
 msgid "operand types can't be inferred"
 msgstr ""
 
 msgid "operand types can't be inferred"
 msgstr ""
 
-#: config/tc-arm.c:15400
+#: config/tc-arm.c:15465
 msgid "type specifier has the wrong number of parts"
 msgstr ""
 
 msgid "type specifier has the wrong number of parts"
 msgstr ""
 
-#: config/tc-arm.c:15486 config/tc-arm.c:19234 config/tc-arm.c:19241
+#: config/tc-arm.c:15551 config/tc-arm.c:19295 config/tc-arm.c:19302
 msgid "operand size must match register width"
 msgstr ""
 
 msgid "operand size must match register width"
 msgstr ""
 
-#: config/tc-arm.c:15508
+#: config/tc-arm.c:15573
 msgid "inconsistent types in Neon instruction"
 msgstr ""
 
 msgid "inconsistent types in Neon instruction"
 msgstr ""
 
-#: config/tc-arm.c:15927
+#: config/tc-arm.c:15994
 msgid "Type is not allowed for this instruction"
 msgstr ""
 
 msgid "Type is not allowed for this instruction"
 msgstr ""
 
-#: config/tc-arm.c:16002
+#: config/tc-arm.c:16069
 msgid "MVE vector or ARM register expected"
 msgstr ""
 
 msgid "MVE vector or ARM register expected"
 msgstr ""
 
-#: config/tc-arm.c:16119
+#: config/tc-arm.c:16186
 msgid "immediate must be either 1, 2, 4 or 8"
 msgstr ""
 
 msgid "immediate must be either 1, 2, 4 or 8"
 msgstr ""
 
-#: config/tc-arm.c:16276
+#: config/tc-arm.c:16343
 msgid "immediate operand expected in the range [1,8]"
 msgstr ""
 
 msgid "immediate operand expected in the range [1,8]"
 msgstr ""
 
-#: config/tc-arm.c:16277
+#: config/tc-arm.c:16344
 msgid "immediate operand expected in the range [1,16]"
 msgstr ""
 
 msgid "immediate operand expected in the range [1,16]"
 msgstr ""
 
-#: config/tc-arm.c:16419
+#: config/tc-arm.c:16486
 msgid "expected LR"
 msgstr ""
 
 msgid "expected LR"
 msgstr ""
 
-#: config/tc-arm.c:16918 config/tc-arm.c:16998 config/tc-arm.c:18601
-#: config/tc-arm.c:20432
+#: config/tc-arm.c:16985 config/tc-arm.c:17065 config/tc-arm.c:18662
+#: config/tc-arm.c:20491
 msgid "immediate out of range for shift"
 msgstr ""
 
 msgid "immediate out of range for shift"
 msgstr ""
 
-#: config/tc-arm.c:17212
+#: config/tc-arm.c:17279
 msgid "first and second operands shall be the same register"
 msgstr ""
 
 msgid "first and second operands shall be the same register"
 msgstr ""
 
-#: config/tc-arm.c:17326 config/tc-arm.c:17388
+#: config/tc-arm.c:17393 config/tc-arm.c:17455
 msgid "destination register and offset register may not be the same"
 msgstr ""
 
 msgid "destination register and offset register may not be the same"
 msgstr ""
 
-#: config/tc-arm.c:17338 config/tc-arm.c:17457
+#: config/tc-arm.c:17405 config/tc-arm.c:17524
 msgid "immediate must be a multiple of 4 in the range of +/-[0,508]"
 msgstr ""
 
 msgid "immediate must be a multiple of 4 in the range of +/-[0,508]"
 msgstr ""
 
-#: config/tc-arm.c:17340
+#: config/tc-arm.c:17407
 msgid "immediate must be a multiple of 8 in the range of +/-[0,1016]"
 msgstr ""
 
 msgid "immediate must be a multiple of 8 in the range of +/-[0,1016]"
 msgstr ""
 
-#: config/tc-arm.c:17361
+#: config/tc-arm.c:17428
 msgid "can not shift offsets when accessing less than half-word"
 msgstr ""
 
 msgid "can not shift offsets when accessing less than half-word"
 msgstr ""
 
-#: config/tc-arm.c:17363
+#: config/tc-arm.c:17430
 msgid ""
 "shift immediate must be 1, 2 or 3 for half-word, word or double-word "
 "accesses respectively"
 msgstr ""
 
 msgid ""
 "shift immediate must be 1, 2 or 3 for half-word, word or double-word "
 "accesses respectively"
 msgstr ""
 
-#: config/tc-arm.c:17450
+#: config/tc-arm.c:17517
 msgid "immediate must be in the range of +/-[0,127]"
 msgstr ""
 
 msgid "immediate must be in the range of +/-[0,127]"
 msgstr ""
 
-#: config/tc-arm.c:17453
+#: config/tc-arm.c:17520
 msgid "immediate must be a multiple of 2 in the range of +/-[0,254]"
 msgstr ""
 
 msgid "immediate must be a multiple of 2 in the range of +/-[0,254]"
 msgstr ""
 
-#: config/tc-arm.c:17467 config/tc-arm.c:18299
+#: config/tc-arm.c:17534 config/tc-arm.c:18360
 msgid "MVE vector register in the range [Q0..Q7] expected"
 msgstr ""
 
 msgid "MVE vector register in the range [Q0..Q7] expected"
 msgstr ""
 
-#: config/tc-arm.c:17783 config/tc-arm.c:19652
+#: config/tc-arm.c:17850 config/tc-arm.c:19713
 msgid "scalar out of range for multiply instruction"
 msgstr ""
 
 msgid "scalar out of range for multiply instruction"
 msgstr ""
 
-#: config/tc-arm.c:17871
+#: config/tc-arm.c:17938
 msgid "index must be in the range 0 to 3"
 msgstr ""
 
 msgid "index must be in the range 0 to 3"
 msgstr ""
 
-#: config/tc-arm.c:17874
+#: config/tc-arm.c:17941
 msgid "indexed register must be less than 8"
 msgstr ""
 
 msgid "indexed register must be less than 8"
 msgstr ""
 
-#: config/tc-arm.c:18075 config/tc-arm.c:21394
+#: config/tc-arm.c:18142 config/tc-arm.c:21453
 msgid ""
 "Warning: 32-bit element size and same first and third operand makes "
 "instruction UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "Warning: 32-bit element size and same first and third operand makes "
 "instruction UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:18440
+#: config/tc-arm.c:18501
 msgid "instruction form not available on this architecture."
 msgstr ""
 
 msgid "instruction form not available on this architecture."
 msgstr ""
 
-#: config/tc-arm.c:18443
+#: config/tc-arm.c:18504
 msgid "this instruction implies use of ARMv8.1 AdvSIMD."
 msgstr ""
 
 msgid "this instruction implies use of ARMv8.1 AdvSIMD."
 msgstr ""
 
-#: config/tc-arm.c:18550 config/tc-arm.c:18575
+#: config/tc-arm.c:18611 config/tc-arm.c:18636
 msgid "immediate out of range for insert"
 msgstr ""
 
 msgid "immediate out of range for insert"
 msgstr ""
 
-#: config/tc-arm.c:18722
+#: config/tc-arm.c:18783
 msgid "immediate out of range for narrowing operation"
 msgstr ""
 
 msgid "immediate out of range for narrowing operation"
 msgstr ""
 
-#: config/tc-arm.c:18869
+#: config/tc-arm.c:18930
 msgid "operands 0 and 1 must be the same register"
 msgstr ""
 
 msgid "operands 0 and 1 must be the same register"
 msgstr ""
 
-#: config/tc-arm.c:18975 config/tc-arm.c:21242
+#: config/tc-arm.c:19036 config/tc-arm.c:21301
 msgid "invalid rounding mode"
 msgstr ""
 
 msgid "invalid rounding mode"
 msgstr ""
 
-#: config/tc-arm.c:19445
+#: config/tc-arm.c:19506
 msgid "operand size must be specified for immediate VMOV"
 msgstr ""
 
 msgid "operand size must be specified for immediate VMOV"
 msgstr ""
 
-#: config/tc-arm.c:19455
+#: config/tc-arm.c:19516
 msgid "immediate has bits set outside the operand size"
 msgstr ""
 
 msgid "immediate has bits set outside the operand size"
 msgstr ""
 
-#: config/tc-arm.c:19687
+#: config/tc-arm.c:19748
 msgid ""
 "vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is "
 "UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is "
 "UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:19797
+#: config/tc-arm.c:19856
 msgid "Instruction form not available on this architecture."
 msgstr ""
 
 msgid "Instruction form not available on this architecture."
 msgstr ""
 
-#: config/tc-arm.c:19851
+#: config/tc-arm.c:19910
 msgid ""
 "Warning: 64-bit element size and same destination and source operands makes "
 "instruction UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "Warning: 64-bit element size and same destination and source operands makes "
 "instruction UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:19856
+#: config/tc-arm.c:19915
 msgid "elements must be smaller than reversal region"
 msgstr ""
 
 msgid "elements must be smaller than reversal region"
 msgstr ""
 
-#: config/tc-arm.c:19948
+#: config/tc-arm.c:20007
 msgid "Index one must be [2,3] and index two must be two less than index one."
 msgstr ""
 
 msgid "Index one must be [2,3] and index two must be two less than index one."
 msgstr ""
 
-#: config/tc-arm.c:19951
+#: config/tc-arm.c:20010
 msgid "General purpose registers may not be the same"
 msgstr ""
 
 msgid "General purpose registers may not be the same"
 msgstr ""
 
-#: config/tc-arm.c:20149 config/tc-arm.c:20232
+#: config/tc-arm.c:20208 config/tc-arm.c:20291
 msgid "bad type for scalar"
 msgstr ""
 
 msgid "bad type for scalar"
 msgstr ""
 
-#: config/tc-arm.c:20288
+#: config/tc-arm.c:20347
 msgid ""
 "immediate constant is valid both as a bit-pattern and a floating point value "
 "(using the fp value)"
 msgstr ""
 
 msgid ""
 "immediate constant is valid both as a bit-pattern and a floating point value "
 "(using the fp value)"
 msgstr ""
 
-#: config/tc-arm.c:20340 config/tc-arm.c:20351
+#: config/tc-arm.c:20399 config/tc-arm.c:20410
 msgid "VFP registers must be adjacent"
 msgstr ""
 
 msgid "VFP registers must be adjacent"
 msgstr ""
 
-#: config/tc-arm.c:20441
+#: config/tc-arm.c:20500
 msgid "invalid suffix"
 msgstr ""
 
 msgid "invalid suffix"
 msgstr ""
 
-#: config/tc-arm.c:20593
+#: config/tc-arm.c:20652
 msgid "bad list length for table lookup"
 msgstr ""
 
 msgid "bad list length for table lookup"
 msgstr ""
 
-#: config/tc-arm.c:20626
+#: config/tc-arm.c:20685
 msgid "writeback (!) must be used for VLDMDB and VSTMDB"
 msgstr ""
 
 msgid "writeback (!) must be used for VLDMDB and VSTMDB"
 msgstr ""
 
-#: config/tc-arm.c:20629 config/tc-arm.c:20654 config/tc-arm.c:20675
+#: config/tc-arm.c:20688 config/tc-arm.c:20713 config/tc-arm.c:20734
 msgid "register list must contain at least 1 and at most 16 registers"
 msgstr ""
 
 msgid "register list must contain at least 1 and at most 16 registers"
 msgstr ""
 
-#: config/tc-arm.c:20697 config/tc-arm.c:20730
+#: config/tc-arm.c:20756 config/tc-arm.c:20789
 msgid "Use of PC here is UNPREDICTABLE"
 msgstr ""
 
 msgid "Use of PC here is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:20699
+#: config/tc-arm.c:20758
 msgid "Use of PC here is deprecated"
 msgstr ""
 
 msgid "Use of PC here is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:20733
+#: config/tc-arm.c:20792
 msgid "instruction does not accept register index"
 msgstr ""
 
 msgid "instruction does not accept register index"
 msgstr ""
 
-#: config/tc-arm.c:20736
+#: config/tc-arm.c:20795
 msgid "instruction does not accept PC-relative addressing"
 msgstr ""
 
 msgid "instruction does not accept PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:20758 config/tc-arm.c:20767
+#: config/tc-arm.c:20817 config/tc-arm.c:20826
 msgid "Instruction not permitted on this architecture"
 msgstr ""
 
 msgid "Instruction not permitted on this architecture"
 msgstr ""
 
-#: config/tc-arm.c:20816
+#: config/tc-arm.c:20875
 msgid "bad alignment"
 msgstr ""
 
 msgid "bad alignment"
 msgstr ""
 
-#: config/tc-arm.c:20833
+#: config/tc-arm.c:20892
 msgid "bad list type for instruction"
 msgstr ""
 
 msgid "bad list type for instruction"
 msgstr ""
 
-#: config/tc-arm.c:20877
+#: config/tc-arm.c:20936
 msgid "unsupported alignment for instruction"
 msgstr ""
 
 msgid "unsupported alignment for instruction"
 msgstr ""
 
-#: config/tc-arm.c:20896 config/tc-arm.c:20990 config/tc-arm.c:21002
-#: config/tc-arm.c:21012 config/tc-arm.c:21026
+#: config/tc-arm.c:20955 config/tc-arm.c:21049 config/tc-arm.c:21061
+#: config/tc-arm.c:21071 config/tc-arm.c:21085
 msgid "bad list length"
 msgstr ""
 
 msgid "bad list length"
 msgstr ""
 
-#: config/tc-arm.c:20901
+#: config/tc-arm.c:20960
 msgid "stride of 2 unavailable when element size is 8"
 msgstr ""
 
 msgid "stride of 2 unavailable when element size is 8"
 msgstr ""
 
-#: config/tc-arm.c:20934 config/tc-arm.c:21010
+#: config/tc-arm.c:20993 config/tc-arm.c:21069
 msgid "can't use alignment with this instruction"
 msgstr ""
 
 msgid "can't use alignment with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:21082
+#: config/tc-arm.c:21141
 msgid "post-index must be a register"
 msgstr ""
 
 msgid "post-index must be a register"
 msgstr ""
 
-#: config/tc-arm.c:21084
+#: config/tc-arm.c:21143
 msgid "bad register for post-index"
 msgstr ""
 
 msgid "bad register for post-index"
 msgstr ""
 
-#: config/tc-arm.c:21306
+#: config/tc-arm.c:21365
 msgid "scalar out of range"
 msgstr ""
 
 msgid "scalar out of range"
 msgstr ""
 
-#: config/tc-arm.c:21439
+#: config/tc-arm.c:21498
 msgid ""
 "Dot Product instructions cannot be conditional,  the behaviour is "
 "UNPREDICTABLE"
 msgstr ""
 
 msgid ""
 "Dot Product instructions cannot be conditional,  the behaviour is "
 "UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:21514 config/tc-arm.c:21542 config/tc-arm.c:21777
+#: config/tc-arm.c:21573 config/tc-arm.c:21601 config/tc-arm.c:22283
 msgid "index must be 0 or 1"
 msgstr ""
 
 msgid "index must be 0 or 1"
 msgstr ""
 
-#: config/tc-arm.c:21517 config/tc-arm.c:21545 config/tc-arm.c:21780
+#: config/tc-arm.c:21576 config/tc-arm.c:21604 config/tc-arm.c:22286
 msgid "indexed register must be less than 16"
 msgstr ""
 
 msgid "indexed register must be less than 16"
 msgstr ""
 
-#: config/tc-arm.c:22130 config/tc-arm.c:22234
+#: config/tc-arm.c:21642
+msgid "Register must be r0-r14 except r13, or APSR_nzcv."
+msgstr ""
+
+#: config/tc-arm.c:21645
+msgid "Register must be an even register between r0-r10."
+msgstr ""
+
+#: config/tc-arm.c:21670
+msgid "CDE Coprocessor must be in range 0-7"
+msgstr ""
+
+#: config/tc-arm.c:21704
+msgid "cx1d requires consecutive destination registers."
+msgstr ""
+
+#: config/tc-arm.c:21734
+msgid "cx2d requires consecutive destination registers."
+msgstr ""
+
+#: config/tc-arm.c:21773
+msgid "cx3d requires consecutive destination registers."
+msgstr ""
+
+#: config/tc-arm.c:21965
+msgid "'q' register must be in range 0-7"
+msgstr ""
+
+#: config/tc-arm.c:21968
+msgid "'d' register must be in range 0-15"
+msgstr ""
+
+#: config/tc-arm.c:21970
+msgid "'s' register must be in range 0-31"
+msgstr ""
+
+#: config/tc-arm.c:22025
+msgid "vcx instructions with Q registers require MVE"
+msgstr ""
+
+#: config/tc-arm.c:22030
+msgid ""
+"vcx instructions with S or D registers require either MVE or Armv8-M "
+"floating point etension."
+msgstr ""
+
+#: config/tc-arm.c:22046
+msgid "vcx1 with S or D registers takes immediate within 0-2047"
+msgstr ""
+
+#: config/tc-arm.c:22062
+msgid "vcx2 with S or D registers takes immediate within 0-63"
+msgstr ""
+
+#: config/tc-arm.c:22077
+msgid "vcx2 with S or D registers takes immediate within 0-7"
+msgstr ""
+
+#: config/tc-arm.c:22636 config/tc-arm.c:22740
 msgid "conditional infixes are deprecated in unified syntax"
 msgstr ""
 
 msgid "conditional infixes are deprecated in unified syntax"
 msgstr ""
 
-#: config/tc-arm.c:22445
+#: config/tc-arm.c:22951
 msgid "Warning: conditional outside an IT block for Thumb."
 msgstr ""
 
 msgid "Warning: conditional outside an IT block for Thumb."
 msgstr ""
 
-#: config/tc-arm.c:22771
+#: config/tc-arm.c:23278
 msgid "Short branches, Undefined, SVC, LDM/STM"
 msgstr ""
 
 msgid "Short branches, Undefined, SVC, LDM/STM"
 msgstr ""
 
-#: config/tc-arm.c:22772
+#: config/tc-arm.c:23279
 msgid "Miscellaneous 16-bit instructions"
 msgstr ""
 
 msgid "Miscellaneous 16-bit instructions"
 msgstr ""
 
-#: config/tc-arm.c:22773
+#: config/tc-arm.c:23280
 msgid "ADR"
 msgstr ""
 
 msgid "ADR"
 msgstr ""
 
-#: config/tc-arm.c:22774
+#: config/tc-arm.c:23281
 msgid "Literal loads"
 msgstr ""
 
 msgid "Literal loads"
 msgstr ""
 
-#: config/tc-arm.c:22775
+#: config/tc-arm.c:23282
 msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc"
 msgstr ""
 
 msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc"
 msgstr ""
 
-#: config/tc-arm.c:22776
+#: config/tc-arm.c:23283
 msgid "Hi-register ADD, MOV, CMP using pc"
 msgstr ""
 
 #. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue'
 #. field in asm_opcode. 'tvalue' is used at the stage this check happen.
 msgid "Hi-register ADD, MOV, CMP using pc"
 msgstr ""
 
 #. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue'
 #. field in asm_opcode. 'tvalue' is used at the stage this check happen.
-#: config/tc-arm.c:22779
+#: config/tc-arm.c:23286
 msgid "ADD/SUB sp, sp #imm"
 msgstr ""
 
 msgid "ADD/SUB sp, sp #imm"
 msgstr ""
 
-#: config/tc-arm.c:22800
+#: config/tc-arm.c:23308
 msgid ""
 "IT blocks containing 32-bit Thumb instructions are performance deprecated in "
 "ARMv8-A and ARMv8-R"
 msgstr ""
 
 msgid ""
 "IT blocks containing 32-bit Thumb instructions are performance deprecated in "
 "ARMv8-A and ARMv8-R"
 msgstr ""
 
-#: config/tc-arm.c:22812
+#: config/tc-arm.c:23320
 #, c-format
 msgid ""
 "IT blocks containing 16-bit Thumb instructions of the following class are "
 "performance deprecated in ARMv8-A and ARMv8-R: %s"
 msgstr ""
 
 #, c-format
 msgid ""
 "IT blocks containing 16-bit Thumb instructions of the following class are "
 "performance deprecated in ARMv8-A and ARMv8-R: %s"
 msgstr ""
 
-#: config/tc-arm.c:22826
+#: config/tc-arm.c:23334
 msgid ""
 "IT blocks containing more than one conditional instruction are performance "
 "deprecated in ARMv8-A and ARMv8-R"
 msgstr ""
 
 msgid ""
 "IT blocks containing more than one conditional instruction are performance "
 "deprecated in ARMv8-A and ARMv8-R"
 msgstr ""
 
-#: config/tc-arm.c:22944
+#: config/tc-arm.c:23452
 #, c-format
 msgid "bad instruction `%s'"
 msgstr ""
 
 #, c-format
 msgid "bad instruction `%s'"
 msgstr ""
 
-#: config/tc-arm.c:22950
+#: config/tc-arm.c:23458
 msgid "s suffix on comparison instruction is deprecated"
 msgstr ""
 
 msgid "s suffix on comparison instruction is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:22970
+#: config/tc-arm.c:23478
 msgid "SVC is not permitted on this architecture"
 msgstr ""
 
 msgid "SVC is not permitted on this architecture"
 msgstr ""
 
-#: config/tc-arm.c:22972
+#: config/tc-arm.c:23480
 #, c-format
 msgid "selected processor does not support `%s' in Thumb mode"
 msgstr ""
 
 #, c-format
 msgid "selected processor does not support `%s' in Thumb mode"
 msgstr ""
 
-#: config/tc-arm.c:22978
+#: config/tc-arm.c:23486
 msgid "Thumb does not support conditional execution"
 msgstr ""
 
 msgid "Thumb does not support conditional execution"
 msgstr ""
 
-#: config/tc-arm.c:22998
+#: config/tc-arm.c:23506
 #, c-format
 msgid ""
 "selected processor does not support 32bit wide variant of instruction `%s'"
 msgstr ""
 
 #, c-format
 msgid ""
 "selected processor does not support 32bit wide variant of instruction `%s'"
 msgstr ""
 
-#: config/tc-arm.c:23001
+#: config/tc-arm.c:23509
 #, c-format
 msgid "selected processor does not support `%s' in Thumb-2 mode"
 msgstr ""
 
 #, c-format
 msgid "selected processor does not support `%s' in Thumb-2 mode"
 msgstr ""
 
-#: config/tc-arm.c:23026
+#: config/tc-arm.c:23534
 #, c-format
 msgid "cannot honor width suffix -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "cannot honor width suffix -- `%s'"
 msgstr ""
 
-#: config/tc-arm.c:23068
+#: config/tc-arm.c:23576
 #, c-format
 msgid "selected processor does not support `%s' in ARM mode"
 msgstr ""
 
 #, c-format
 msgid "selected processor does not support `%s' in ARM mode"
 msgstr ""
 
-#: config/tc-arm.c:23073
+#: config/tc-arm.c:23581
 #, c-format
 msgid "width suffixes are invalid in ARM mode -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "width suffixes are invalid in ARM mode -- `%s'"
 msgstr ""
 
-#: config/tc-arm.c:23106
+#: config/tc-arm.c:23614
 #, c-format
 msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'"
 msgstr ""
 
 #, c-format
 msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'"
 msgstr ""
 
-#: config/tc-arm.c:23124
+#: config/tc-arm.c:23632
 #, c-format
 msgid "section '%s' finished with an open IT block."
 msgstr ""
 
 #, c-format
 msgid "section '%s' finished with an open IT block."
 msgstr ""
 
-#: config/tc-arm.c:23127
+#: config/tc-arm.c:23635
 #, c-format
 msgid "section '%s' finished with an open VPT/VPST block."
 msgstr ""
 
 #, c-format
 msgid "section '%s' finished with an open VPT/VPST block."
 msgstr ""
 
-#: config/tc-arm.c:23134
+#: config/tc-arm.c:23642
 msgid "file finished with an open IT block."
 msgstr ""
 
 msgid "file finished with an open IT block."
 msgstr ""
 
-#: config/tc-arm.c:23136
+#: config/tc-arm.c:23644
 msgid "file finished with an open VPT/VPST block."
 msgstr ""
 
 msgid "file finished with an open VPT/VPST block."
 msgstr ""
 
-#: config/tc-arm.c:26787
+#: config/tc-arm.c:27325
 #, c-format
 msgid "alignments greater than %d bytes not supported in .text sections."
 msgstr ""
 
 #, c-format
 msgid "alignments greater than %d bytes not supported in .text sections."
 msgstr ""
 
-#: config/tc-arm.c:27054 config/tc-ia64.c:3594
+#: config/tc-arm.c:27592 config/tc-ia64.c:3594
 #, c-format
 msgid "Group section `%s' has no group signature"
 msgstr ""
 
 #, c-format
 msgid "Group section `%s' has no group signature"
 msgstr ""
 
-#: config/tc-arm.c:27100
+#: config/tc-arm.c:27638
 msgid "handlerdata in cantunwind frame"
 msgstr ""
 
 msgid "handlerdata in cantunwind frame"
 msgstr ""
 
-#: config/tc-arm.c:27117
+#: config/tc-arm.c:27655
 msgid "too many unwind opcodes for personality routine 0"
 msgstr ""
 
 msgid "too many unwind opcodes for personality routine 0"
 msgstr ""
 
-#: config/tc-arm.c:27148
+#: config/tc-arm.c:27686
 msgid "attempt to recreate an unwind entry"
 msgstr ""
 
 msgid "attempt to recreate an unwind entry"
 msgstr ""
 
-#: config/tc-arm.c:27158
+#: config/tc-arm.c:27696
 msgid "too many unwind opcodes"
 msgstr ""
 
 msgid "too many unwind opcodes"
 msgstr ""
 
-#: config/tc-arm.c:27457
+#: config/tc-arm.c:27995
 #, c-format
 msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"
 msgstr ""
 
 #, c-format
 msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"
 msgstr ""
 
-#: config/tc-arm.c:27819 config/tc-arm.c:27887
+#: config/tc-arm.c:28357 config/tc-arm.c:28425
 #, c-format
 msgid "symbol %s is in a different section"
 msgstr ""
 
 #, c-format
 msgid "symbol %s is in a different section"
 msgstr ""
 
-#: config/tc-arm.c:27821 config/tc-arm.c:27889
+#: config/tc-arm.c:28359 config/tc-arm.c:28427
 #, c-format
 msgid "symbol %s is weak and may be overridden later"
 msgstr ""
 
 #, c-format
 msgid "symbol %s is weak and may be overridden later"
 msgstr ""
 
-#: config/tc-arm.c:27866 config/tc-arm.c:28238
+#: config/tc-arm.c:28404 config/tc-arm.c:28776
 #, c-format
 msgid "invalid constant (%lx) after fixup"
 msgstr ""
 
 #, c-format
 msgid "invalid constant (%lx) after fixup"
 msgstr ""
 
-#: config/tc-arm.c:27922
+#: config/tc-arm.c:28460
 #, c-format
 msgid "unable to compute ADRL instructions for PC offset of 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "unable to compute ADRL instructions for PC offset of 0x%lx"
 msgstr ""
 
-#: config/tc-arm.c:27958 config/tc-arm.c:27988
+#: config/tc-arm.c:28496 config/tc-arm.c:28526
 msgid "invalid literal constant: pool needs to be closer"
 msgstr ""
 
 msgid "invalid literal constant: pool needs to be closer"
 msgstr ""
 
-#: config/tc-arm.c:27961 config/tc-arm.c:28010
+#: config/tc-arm.c:28499 config/tc-arm.c:28548
 #, c-format
 msgid "bad immediate value for offset (%ld)"
 msgstr ""
 
 #, c-format
 msgid "bad immediate value for offset (%ld)"
 msgstr ""
 
-#: config/tc-arm.c:27991
+#: config/tc-arm.c:28529
 #, c-format
 msgid "bad immediate value for 8-bit offset (%ld)"
 msgstr ""
 
 #, c-format
 msgid "bad immediate value for 8-bit offset (%ld)"
 msgstr ""
 
-#: config/tc-arm.c:28051
+#: config/tc-arm.c:28589
 msgid "offset not a multiple of 4"
 msgstr ""
 
 msgid "offset not a multiple of 4"
 msgstr ""
 
-#: config/tc-arm.c:28254
+#: config/tc-arm.c:28792
 msgid "invalid smc expression"
 msgstr ""
 
 msgid "invalid smc expression"
 msgstr ""
 
-#: config/tc-arm.c:28264
+#: config/tc-arm.c:28802
 msgid "invalid hvc expression"
 msgstr ""
 
 msgid "invalid hvc expression"
 msgstr ""
 
-#: config/tc-arm.c:28275 config/tc-arm.c:28284
+#: config/tc-arm.c:28813 config/tc-arm.c:28822
 msgid "invalid swi expression"
 msgstr ""
 
 msgid "invalid swi expression"
 msgstr ""
 
-#: config/tc-arm.c:28294
+#: config/tc-arm.c:28832
 msgid "invalid expression in load/store multiple"
 msgstr ""
 
 msgid "invalid expression in load/store multiple"
 msgstr ""
 
-#: config/tc-arm.c:28356
+#: config/tc-arm.c:28894
 #, c-format
 msgid "blx to '%s' an ARM ISA state function changed to bl"
 msgstr ""
 
 #, c-format
 msgid "blx to '%s' an ARM ISA state function changed to bl"
 msgstr ""
 
-#: config/tc-arm.c:28375
+#: config/tc-arm.c:28913
 msgid "misaligned branch destination"
 msgstr ""
 
 msgid "misaligned branch destination"
 msgstr ""
 
-#: config/tc-arm.c:28496
+#: config/tc-arm.c:29034
 #, c-format
 msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl"
 msgstr ""
 
 #, c-format
 msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl"
 msgstr ""
 
-#: config/tc-arm.c:28545
+#: config/tc-arm.c:29083
 msgid "Thumb2 branch out of range"
 msgstr ""
 
 msgid "Thumb2 branch out of range"
 msgstr ""
 
-#: config/tc-arm.c:28597 config/tc-arm.c:28630
+#: config/tc-arm.c:29135 config/tc-arm.c:29168
 msgid "Relocation supported only in FDPIC mode"
 msgstr ""
 
 msgid "Relocation supported only in FDPIC mode"
 msgstr ""
 
-#: config/tc-arm.c:28660
+#: config/tc-arm.c:29198
 msgid "rel31 relocation overflow"
 msgstr ""
 
 msgid "rel31 relocation overflow"
 msgstr ""
 
-#: config/tc-arm.c:28682 config/tc-arm.c:28688 config/tc-arm.c:28692
-#: config/tc-arm.c:28739
+#: config/tc-arm.c:29220 config/tc-arm.c:29226 config/tc-arm.c:29230
+#: config/tc-arm.c:29277
 msgid "co-processor offset out of range"
 msgstr ""
 
 msgid "co-processor offset out of range"
 msgstr ""
 
-#: config/tc-arm.c:28756
+#: config/tc-arm.c:29294
 #, c-format
 msgid "invalid offset, target not word aligned (0x%08lX)"
 msgstr ""
 
 #, c-format
 msgid "invalid offset, target not word aligned (0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:28763 config/tc-arm.c:28772 config/tc-arm.c:28780
-#: config/tc-arm.c:28788 config/tc-arm.c:28796
+#: config/tc-arm.c:29300
+msgid "section does not have enough alignment to ensure safe PC-relative loads"
+msgstr ""
+
+#: config/tc-arm.c:29304 config/tc-arm.c:29313 config/tc-arm.c:29321
+#: config/tc-arm.c:29329 config/tc-arm.c:29337
 #, c-format
 msgid "invalid offset, value too big (0x%08lX)"
 msgstr ""
 
 #, c-format
 msgid "invalid offset, value too big (0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:28837
+#: config/tc-arm.c:29378
 msgid "invalid Hi register with immediate"
 msgstr ""
 
 msgid "invalid Hi register with immediate"
 msgstr ""
 
-#: config/tc-arm.c:28853
+#: config/tc-arm.c:29394
 msgid "invalid immediate for stack address calculation"
 msgstr ""
 
 msgid "invalid immediate for stack address calculation"
 msgstr ""
 
-#: config/tc-arm.c:28872
+#: config/tc-arm.c:29413
 msgid "address calculation needs a strongly defined nearby symbol"
 msgstr ""
 
 msgid "address calculation needs a strongly defined nearby symbol"
 msgstr ""
 
-#: config/tc-arm.c:28888
+#: config/tc-arm.c:29429
 msgid "symbol too far away"
 msgstr ""
 
 msgid "symbol too far away"
 msgstr ""
 
-#: config/tc-arm.c:28900
+#: config/tc-arm.c:29441
 #, c-format
 msgid "invalid immediate for address calculation (value = 0x%08lX)"
 msgstr ""
 
 #, c-format
 msgid "invalid immediate for address calculation (value = 0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:28930
+#: config/tc-arm.c:29471
 #, c-format
 msgid "invalid immediate: %ld is out of range"
 msgstr ""
 
 #, c-format
 msgid "invalid immediate: %ld is out of range"
 msgstr ""
 
-#: config/tc-arm.c:28942
+#: config/tc-arm.c:29483
 #, c-format
 msgid "invalid shift value: %ld"
 msgstr ""
 
 #, c-format
 msgid "invalid shift value: %ld"
 msgstr ""
 
-#: config/tc-arm.c:29012 config/tc-arm.c:29083
+#: config/tc-arm.c:29553 config/tc-arm.c:29624
 #, c-format
 msgid "the offset 0x%08lX is not representable"
 msgstr ""
 
 #, c-format
 msgid "the offset 0x%08lX is not representable"
 msgstr ""
 
-#: config/tc-arm.c:29044
+#: config/tc-arm.c:29585
 #, c-format
 msgid "Unable to process relocation for thumb opcode: %lx"
 msgstr ""
 
 #, c-format
 msgid "Unable to process relocation for thumb opcode: %lx"
 msgstr ""
 
-#: config/tc-arm.c:29123
+#: config/tc-arm.c:29664
 #, c-format
 msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)"
 msgstr ""
 
 #, c-format
 msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)"
 msgstr ""
 
-#: config/tc-arm.c:29162
+#: config/tc-arm.c:29703
 #, c-format
 msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)"
 msgstr ""
 
 #, c-format
 msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)"
 msgstr ""
 
-#: config/tc-arm.c:29202
+#: config/tc-arm.c:29743
 #, c-format
 msgid "bad offset 0x%08lX (must be word-aligned)"
 msgstr ""
 
 #, c-format
 msgid "bad offset 0x%08lX (must be word-aligned)"
 msgstr ""
 
-#: config/tc-arm.c:29207
+#: config/tc-arm.c:29748
 #, c-format
 msgid "bad offset 0x%08lX (must be an 8-bit number of words)"
 msgstr ""
 
 #, c-format
 msgid "bad offset 0x%08lX (must be an 8-bit number of words)"
 msgstr ""
 
-#: config/tc-arm.c:29428 config/tc-score.c:7379
+#: config/tc-arm.c:29969 config/tc-score.c:7361
 #, c-format
 msgid "bad relocation fixup type (%d)"
 msgstr ""
 
 #, c-format
 msgid "bad relocation fixup type (%d)"
 msgstr ""
 
-#: config/tc-arm.c:29546
+#: config/tc-arm.c:30087
 msgid "literal referenced across section boundary"
 msgstr ""
 
 msgid "literal referenced across section boundary"
 msgstr ""
 
-#: config/tc-arm.c:29626
+#: config/tc-arm.c:30167
 msgid "internal relocation (type: IMMEDIATE) not fixed up"
 msgstr ""
 
 msgid "internal relocation (type: IMMEDIATE) not fixed up"
 msgstr ""
 
-#: config/tc-arm.c:29631
+#: config/tc-arm.c:30172
 msgid "ADRL used for a symbol not defined in the same file"
 msgstr ""
 
 msgid "ADRL used for a symbol not defined in the same file"
 msgstr ""
 
-#: config/tc-arm.c:29638
+#: config/tc-arm.c:30179
 #, c-format
 msgid "%s used for a symbol not defined in the same file"
 msgstr ""
 
 #, c-format
 msgid "%s used for a symbol not defined in the same file"
 msgstr ""
 
-#: config/tc-arm.c:29654
+#: config/tc-arm.c:30195
 #, c-format
 msgid "undefined local label `%s'"
 msgstr ""
 
 #, c-format
 msgid "undefined local label `%s'"
 msgstr ""
 
-#: config/tc-arm.c:29660
+#: config/tc-arm.c:30201
 msgid "internal_relocation (type: OFFSET_IMM) not fixed up"
 msgstr ""
 
 msgid "internal_relocation (type: OFFSET_IMM) not fixed up"
 msgstr ""
 
-#: config/tc-arm.c:29682 config/tc-cris.c:4006 config/tc-csky.c:877
+#: config/tc-arm.c:30223 config/tc-cris.c:4006 config/tc-csky.c:877
 #: config/tc-ft32.c:709 config/tc-mcore.c:1928 config/tc-microblaze.c:1995
 #: config/tc-ft32.c:709 config/tc-mcore.c:1928 config/tc-microblaze.c:1995
-#: config/tc-mmix.c:2894 config/tc-moxie.c:825 config/tc-ns32k.c:2248
-#: config/tc-score.c:7466
+#: config/tc-mmix.c:2894 config/tc-moxie.c:823 config/tc-ns32k.c:2248
+#: config/tc-score.c:7448
 msgid "<unknown>"
 msgstr ""
 
 msgid "<unknown>"
 msgstr ""
 
-#: config/tc-arm.c:30084
+#: config/tc-arm.c:30625
 #, c-format
 msgid "%s: unexpected function type: %d"
 msgstr ""
 
 #, c-format
 msgid "%s: unexpected function type: %d"
 msgstr ""
 
-#: config/tc-arm.c:30224
+#: config/tc-arm.c:30765
 msgid "use of old and new-style options to set CPU type"
 msgstr ""
 
 msgid "use of old and new-style options to set CPU type"
 msgstr ""
 
-#: config/tc-arm.c:30243
+#: config/tc-arm.c:30784
 msgid "use of old and new-style options to set FPU type"
 msgstr ""
 
 msgid "use of old and new-style options to set FPU type"
 msgstr ""
 
-#: config/tc-arm.c:30322
+#: config/tc-arm.c:30863
 msgid "hard-float conflicts with specified fpu"
 msgstr ""
 
 msgid "hard-float conflicts with specified fpu"
 msgstr ""
 
-#: config/tc-arm.c:30513
+#: config/tc-arm.c:31054
 msgid "generate PIC code"
 msgstr ""
 
 msgid "generate PIC code"
 msgstr ""
 
-#: config/tc-arm.c:30514
+#: config/tc-arm.c:31055
 msgid "assemble Thumb code"
 msgstr ""
 
 msgid "assemble Thumb code"
 msgstr ""
 
-#: config/tc-arm.c:30515
+#: config/tc-arm.c:31056
 msgid "support ARM/Thumb interworking"
 msgstr ""
 
 msgid "support ARM/Thumb interworking"
 msgstr ""
 
-#: config/tc-arm.c:30517
+#: config/tc-arm.c:31058
 msgid "code uses 32-bit program counter"
 msgstr ""
 
 msgid "code uses 32-bit program counter"
 msgstr ""
 
-#: config/tc-arm.c:30518
+#: config/tc-arm.c:31059
 msgid "code uses 26-bit program counter"
 msgstr ""
 
 msgid "code uses 26-bit program counter"
 msgstr ""
 
-#: config/tc-arm.c:30519
+#: config/tc-arm.c:31060
 msgid "floating point args are in fp regs"
 msgstr ""
 
 msgid "floating point args are in fp regs"
 msgstr ""
 
-#: config/tc-arm.c:30521
+#: config/tc-arm.c:31062
 msgid "re-entrant code"
 msgstr ""
 
 msgid "re-entrant code"
 msgstr ""
 
-#: config/tc-arm.c:30522
+#: config/tc-arm.c:31063
 msgid "code is ATPCS conformant"
 msgstr ""
 
 #. These are recognized by the assembler, but have no affect on code.
 msgid "code is ATPCS conformant"
 msgstr ""
 
 #. These are recognized by the assembler, but have no affect on code.
-#: config/tc-arm.c:30528
+#: config/tc-arm.c:31069
 msgid "use frame pointer"
 msgstr ""
 
 msgid "use frame pointer"
 msgstr ""
 
-#: config/tc-arm.c:30529
+#: config/tc-arm.c:31070
 msgid "use stack size checking"
 msgstr ""
 
 msgid "use stack size checking"
 msgstr ""
 
-#: config/tc-arm.c:30532
+#: config/tc-arm.c:31073
 msgid "do not warn on use of deprecated feature"
 msgstr ""
 
 msgid "do not warn on use of deprecated feature"
 msgstr ""
 
-#: config/tc-arm.c:30535
+#: config/tc-arm.c:31076
 msgid ""
 "warn about performance deprecated IT instructions in ARMv8-A and ARMv8-R"
 msgstr ""
 
 msgid ""
 "warn about performance deprecated IT instructions in ARMv8-A and ARMv8-R"
 msgstr ""
 
-#: config/tc-arm.c:30539
+#: config/tc-arm.c:31080
 msgid "warn about symbols that match instruction names [default]"
 msgstr ""
 
 msgid "warn about symbols that match instruction names [default]"
 msgstr ""
 
-#: config/tc-arm.c:30540
+#: config/tc-arm.c:31081
 msgid "disable warnings about symobls that match instructions"
 msgstr ""
 
 #. DON'T add any new processors to this list -- we want the whole list
 #. to go away...  Add them to the processors table instead.
 msgid "disable warnings about symobls that match instructions"
 msgstr ""
 
 #. DON'T add any new processors to this list -- we want the whole list
 #. to go away...  Add them to the processors table instead.
-#: config/tc-arm.c:30556 config/tc-arm.c:30557
+#: config/tc-arm.c:31097 config/tc-arm.c:31098
 msgid "use -mcpu=arm1"
 msgstr ""
 
 msgid "use -mcpu=arm1"
 msgstr ""
 
-#: config/tc-arm.c:30558 config/tc-arm.c:30559
+#: config/tc-arm.c:31099 config/tc-arm.c:31100
 msgid "use -mcpu=arm2"
 msgstr ""
 
 msgid "use -mcpu=arm2"
 msgstr ""
 
-#: config/tc-arm.c:30560 config/tc-arm.c:30561
+#: config/tc-arm.c:31101 config/tc-arm.c:31102
 msgid "use -mcpu=arm250"
 msgstr ""
 
 msgid "use -mcpu=arm250"
 msgstr ""
 
-#: config/tc-arm.c:30562 config/tc-arm.c:30563
+#: config/tc-arm.c:31103 config/tc-arm.c:31104
 msgid "use -mcpu=arm3"
 msgstr ""
 
 msgid "use -mcpu=arm3"
 msgstr ""
 
-#: config/tc-arm.c:30564 config/tc-arm.c:30565
+#: config/tc-arm.c:31105 config/tc-arm.c:31106
 msgid "use -mcpu=arm6"
 msgstr ""
 
 msgid "use -mcpu=arm6"
 msgstr ""
 
-#: config/tc-arm.c:30566 config/tc-arm.c:30567
+#: config/tc-arm.c:31107 config/tc-arm.c:31108
 msgid "use -mcpu=arm600"
 msgstr ""
 
 msgid "use -mcpu=arm600"
 msgstr ""
 
-#: config/tc-arm.c:30568 config/tc-arm.c:30569
+#: config/tc-arm.c:31109 config/tc-arm.c:31110
 msgid "use -mcpu=arm610"
 msgstr ""
 
 msgid "use -mcpu=arm610"
 msgstr ""
 
-#: config/tc-arm.c:30570 config/tc-arm.c:30571
+#: config/tc-arm.c:31111 config/tc-arm.c:31112
 msgid "use -mcpu=arm620"
 msgstr ""
 
 msgid "use -mcpu=arm620"
 msgstr ""
 
-#: config/tc-arm.c:30572 config/tc-arm.c:30573
+#: config/tc-arm.c:31113 config/tc-arm.c:31114
 msgid "use -mcpu=arm7"
 msgstr ""
 
 msgid "use -mcpu=arm7"
 msgstr ""
 
-#: config/tc-arm.c:30574 config/tc-arm.c:30575
+#: config/tc-arm.c:31115 config/tc-arm.c:31116
 msgid "use -mcpu=arm70"
 msgstr ""
 
 msgid "use -mcpu=arm70"
 msgstr ""
 
-#: config/tc-arm.c:30576 config/tc-arm.c:30577
+#: config/tc-arm.c:31117 config/tc-arm.c:31118
 msgid "use -mcpu=arm700"
 msgstr ""
 
 msgid "use -mcpu=arm700"
 msgstr ""
 
-#: config/tc-arm.c:30578 config/tc-arm.c:30579
+#: config/tc-arm.c:31119 config/tc-arm.c:31120
 msgid "use -mcpu=arm700i"
 msgstr ""
 
 msgid "use -mcpu=arm700i"
 msgstr ""
 
-#: config/tc-arm.c:30580 config/tc-arm.c:30581
+#: config/tc-arm.c:31121 config/tc-arm.c:31122
 msgid "use -mcpu=arm710"
 msgstr ""
 
 msgid "use -mcpu=arm710"
 msgstr ""
 
-#: config/tc-arm.c:30582 config/tc-arm.c:30583
+#: config/tc-arm.c:31123 config/tc-arm.c:31124
 msgid "use -mcpu=arm710c"
 msgstr ""
 
 msgid "use -mcpu=arm710c"
 msgstr ""
 
-#: config/tc-arm.c:30584 config/tc-arm.c:30585
+#: config/tc-arm.c:31125 config/tc-arm.c:31126
 msgid "use -mcpu=arm720"
 msgstr ""
 
 msgid "use -mcpu=arm720"
 msgstr ""
 
-#: config/tc-arm.c:30586 config/tc-arm.c:30587
+#: config/tc-arm.c:31127 config/tc-arm.c:31128
 msgid "use -mcpu=arm7d"
 msgstr ""
 
 msgid "use -mcpu=arm7d"
 msgstr ""
 
-#: config/tc-arm.c:30588 config/tc-arm.c:30589
+#: config/tc-arm.c:31129 config/tc-arm.c:31130
 msgid "use -mcpu=arm7di"
 msgstr ""
 
 msgid "use -mcpu=arm7di"
 msgstr ""
 
-#: config/tc-arm.c:30590 config/tc-arm.c:30591
+#: config/tc-arm.c:31131 config/tc-arm.c:31132
 msgid "use -mcpu=arm7m"
 msgstr ""
 
 msgid "use -mcpu=arm7m"
 msgstr ""
 
-#: config/tc-arm.c:30592 config/tc-arm.c:30593
+#: config/tc-arm.c:31133 config/tc-arm.c:31134
 msgid "use -mcpu=arm7dm"
 msgstr ""
 
 msgid "use -mcpu=arm7dm"
 msgstr ""
 
-#: config/tc-arm.c:30594 config/tc-arm.c:30595
+#: config/tc-arm.c:31135 config/tc-arm.c:31136
 msgid "use -mcpu=arm7dmi"
 msgstr ""
 
 msgid "use -mcpu=arm7dmi"
 msgstr ""
 
-#: config/tc-arm.c:30596 config/tc-arm.c:30597
+#: config/tc-arm.c:31137 config/tc-arm.c:31138
 msgid "use -mcpu=arm7100"
 msgstr ""
 
 msgid "use -mcpu=arm7100"
 msgstr ""
 
-#: config/tc-arm.c:30598 config/tc-arm.c:30599
+#: config/tc-arm.c:31139 config/tc-arm.c:31140
 msgid "use -mcpu=arm7500"
 msgstr ""
 
 msgid "use -mcpu=arm7500"
 msgstr ""
 
-#: config/tc-arm.c:30600 config/tc-arm.c:30601
+#: config/tc-arm.c:31141 config/tc-arm.c:31142
 msgid "use -mcpu=arm7500fe"
 msgstr ""
 
 msgid "use -mcpu=arm7500fe"
 msgstr ""
 
-#: config/tc-arm.c:30602 config/tc-arm.c:30603 config/tc-arm.c:30604
-#: config/tc-arm.c:30605
+#: config/tc-arm.c:31143 config/tc-arm.c:31144 config/tc-arm.c:31145
+#: config/tc-arm.c:31146
 msgid "use -mcpu=arm7tdmi"
 msgstr ""
 
 msgid "use -mcpu=arm7tdmi"
 msgstr ""
 
-#: config/tc-arm.c:30606 config/tc-arm.c:30607
+#: config/tc-arm.c:31147 config/tc-arm.c:31148
 msgid "use -mcpu=arm710t"
 msgstr ""
 
 msgid "use -mcpu=arm710t"
 msgstr ""
 
-#: config/tc-arm.c:30608 config/tc-arm.c:30609
+#: config/tc-arm.c:31149 config/tc-arm.c:31150
 msgid "use -mcpu=arm720t"
 msgstr ""
 
 msgid "use -mcpu=arm720t"
 msgstr ""
 
-#: config/tc-arm.c:30610 config/tc-arm.c:30611
+#: config/tc-arm.c:31151 config/tc-arm.c:31152
 msgid "use -mcpu=arm740t"
 msgstr ""
 
 msgid "use -mcpu=arm740t"
 msgstr ""
 
-#: config/tc-arm.c:30612 config/tc-arm.c:30613
+#: config/tc-arm.c:31153 config/tc-arm.c:31154
 msgid "use -mcpu=arm8"
 msgstr ""
 
 msgid "use -mcpu=arm8"
 msgstr ""
 
-#: config/tc-arm.c:30614 config/tc-arm.c:30615
+#: config/tc-arm.c:31155 config/tc-arm.c:31156
 msgid "use -mcpu=arm810"
 msgstr ""
 
 msgid "use -mcpu=arm810"
 msgstr ""
 
-#: config/tc-arm.c:30616 config/tc-arm.c:30617
+#: config/tc-arm.c:31157 config/tc-arm.c:31158
 msgid "use -mcpu=arm9"
 msgstr ""
 
 msgid "use -mcpu=arm9"
 msgstr ""
 
-#: config/tc-arm.c:30618 config/tc-arm.c:30619
+#: config/tc-arm.c:31159 config/tc-arm.c:31160
 msgid "use -mcpu=arm9tdmi"
 msgstr ""
 
 msgid "use -mcpu=arm9tdmi"
 msgstr ""
 
-#: config/tc-arm.c:30620 config/tc-arm.c:30621
+#: config/tc-arm.c:31161 config/tc-arm.c:31162
 msgid "use -mcpu=arm920"
 msgstr ""
 
 msgid "use -mcpu=arm920"
 msgstr ""
 
-#: config/tc-arm.c:30622 config/tc-arm.c:30623
+#: config/tc-arm.c:31163 config/tc-arm.c:31164
 msgid "use -mcpu=arm940"
 msgstr ""
 
 msgid "use -mcpu=arm940"
 msgstr ""
 
-#: config/tc-arm.c:30624
+#: config/tc-arm.c:31165
 msgid "use -mcpu=strongarm"
 msgstr ""
 
 msgid "use -mcpu=strongarm"
 msgstr ""
 
-#: config/tc-arm.c:30626
+#: config/tc-arm.c:31167
 msgid "use -mcpu=strongarm110"
 msgstr ""
 
 msgid "use -mcpu=strongarm110"
 msgstr ""
 
-#: config/tc-arm.c:30628
+#: config/tc-arm.c:31169
 msgid "use -mcpu=strongarm1100"
 msgstr ""
 
 msgid "use -mcpu=strongarm1100"
 msgstr ""
 
-#: config/tc-arm.c:30630
+#: config/tc-arm.c:31171
 msgid "use -mcpu=strongarm1110"
 msgstr ""
 
 msgid "use -mcpu=strongarm1110"
 msgstr ""
 
-#: config/tc-arm.c:30631
+#: config/tc-arm.c:31172
 msgid "use -mcpu=xscale"
 msgstr ""
 
 msgid "use -mcpu=xscale"
 msgstr ""
 
-#: config/tc-arm.c:30632
+#: config/tc-arm.c:31173
 msgid "use -mcpu=iwmmxt"
 msgstr ""
 
 msgid "use -mcpu=iwmmxt"
 msgstr ""
 
-#: config/tc-arm.c:30633
+#: config/tc-arm.c:31174
 msgid "use -mcpu=all"
 msgstr ""
 
 #. Architecture variants -- don't add any more to this list either.
 msgid "use -mcpu=all"
 msgstr ""
 
 #. Architecture variants -- don't add any more to this list either.
-#: config/tc-arm.c:30636 config/tc-arm.c:30637
+#: config/tc-arm.c:31177 config/tc-arm.c:31178
 msgid "use -march=armv2"
 msgstr ""
 
 msgid "use -march=armv2"
 msgstr ""
 
-#: config/tc-arm.c:30638 config/tc-arm.c:30639
+#: config/tc-arm.c:31179 config/tc-arm.c:31180
 msgid "use -march=armv2a"
 msgstr ""
 
 msgid "use -march=armv2a"
 msgstr ""
 
-#: config/tc-arm.c:30640 config/tc-arm.c:30641
+#: config/tc-arm.c:31181 config/tc-arm.c:31182
 msgid "use -march=armv3"
 msgstr ""
 
 msgid "use -march=armv3"
 msgstr ""
 
-#: config/tc-arm.c:30642 config/tc-arm.c:30643
+#: config/tc-arm.c:31183 config/tc-arm.c:31184
 msgid "use -march=armv3m"
 msgstr ""
 
 msgid "use -march=armv3m"
 msgstr ""
 
-#: config/tc-arm.c:30644 config/tc-arm.c:30645
+#: config/tc-arm.c:31185 config/tc-arm.c:31186
 msgid "use -march=armv4"
 msgstr ""
 
 msgid "use -march=armv4"
 msgstr ""
 
-#: config/tc-arm.c:30646 config/tc-arm.c:30647
+#: config/tc-arm.c:31187 config/tc-arm.c:31188
 msgid "use -march=armv4t"
 msgstr ""
 
 msgid "use -march=armv4t"
 msgstr ""
 
-#: config/tc-arm.c:30648 config/tc-arm.c:30649
+#: config/tc-arm.c:31189 config/tc-arm.c:31190
 msgid "use -march=armv5"
 msgstr ""
 
 msgid "use -march=armv5"
 msgstr ""
 
-#: config/tc-arm.c:30650 config/tc-arm.c:30651
+#: config/tc-arm.c:31191 config/tc-arm.c:31192
 msgid "use -march=armv5t"
 msgstr ""
 
 msgid "use -march=armv5t"
 msgstr ""
 
-#: config/tc-arm.c:30652 config/tc-arm.c:30653
+#: config/tc-arm.c:31193 config/tc-arm.c:31194
 msgid "use -march=armv5te"
 msgstr ""
 
 #. Floating point variants -- don't add any more to this list either.
 msgid "use -march=armv5te"
 msgstr ""
 
 #. Floating point variants -- don't add any more to this list either.
-#: config/tc-arm.c:30656
+#: config/tc-arm.c:31197
 msgid "use -mfpu=fpe"
 msgstr ""
 
 msgid "use -mfpu=fpe"
 msgstr ""
 
-#: config/tc-arm.c:30657
+#: config/tc-arm.c:31198
 msgid "use -mfpu=fpa10"
 msgstr ""
 
 msgid "use -mfpu=fpa10"
 msgstr ""
 
-#: config/tc-arm.c:30658
+#: config/tc-arm.c:31199
 msgid "use -mfpu=fpa11"
 msgstr ""
 
 msgid "use -mfpu=fpa11"
 msgstr ""
 
-#: config/tc-arm.c:30660
+#: config/tc-arm.c:31201
 msgid "use either -mfpu=softfpa or -mfpu=softvfp"
 msgstr ""
 
 msgid "use either -mfpu=softfpa or -mfpu=softvfp"
 msgstr ""
 
-#: config/tc-arm.c:31706
+#: config/tc-arm.c:32263
 msgid "extension does not apply to the base architecture"
 msgstr ""
 
 msgid "extension does not apply to the base architecture"
 msgstr ""
 
-#: config/tc-arm.c:31735
+#: config/tc-arm.c:32292
 msgid "architectural extensions must be specified in alphabetical order"
 msgstr ""
 
 msgid "architectural extensions must be specified in alphabetical order"
 msgstr ""
 
-#: config/tc-arm.c:31874 config/tc-arm.c:32815
+#: config/tc-arm.c:32431 config/tc-arm.c:33374
 #, c-format
 msgid "unknown floating point format `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "unknown floating point format `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:31890
+#: config/tc-arm.c:32447
 #, c-format
 msgid "unknown floating point abi `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "unknown floating point abi `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:31906
+#: config/tc-arm.c:32463
 #, c-format
 msgid "unknown EABI `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "unknown EABI `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:31926
+#: config/tc-arm.c:32483
 #, c-format
 msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never."
 msgstr ""
 
 #, c-format
 msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never."
 msgstr ""
 
-#: config/tc-arm.c:31949 config/tc-metag.c:5913
+#: config/tc-arm.c:32506 config/tc-metag.c:5913
 msgid "<fpu name>\t  assemble for FPU architecture <fpu name>"
 msgstr ""
 
 msgid "<fpu name>\t  assemble for FPU architecture <fpu name>"
 msgstr ""
 
-#: config/tc-arm.c:31951
+#: config/tc-arm.c:32508
 msgid "<abi>\t  assemble for floating point ABI <abi>"
 msgstr ""
 
 msgid "<abi>\t  assemble for floating point ABI <abi>"
 msgstr ""
 
-#: config/tc-arm.c:31954
+#: config/tc-arm.c:32511
 msgid "<ver>\t\t  assemble for eabi version <ver>"
 msgstr ""
 
 msgid "<ver>\t\t  assemble for eabi version <ver>"
 msgstr ""
 
-#: config/tc-arm.c:31957
+#: config/tc-arm.c:32514
 msgid "<mode>\t  controls implicit insertion of IT instructions"
 msgstr ""
 
 msgid "<mode>\t  controls implicit insertion of IT instructions"
 msgstr ""
 
-#: config/tc-arm.c:31959
+#: config/tc-arm.c:32516
 msgid "\t\t\t  TI CodeComposer Studio syntax compatibility mode"
 msgstr ""
 
 msgid "\t\t\t  TI CodeComposer Studio syntax compatibility mode"
 msgstr ""
 
-#: config/tc-arm.c:31962
+#: config/tc-arm.c:32519
 msgid ""
 "[ieee|alternative]\n"
 "                          set the encoding for half precision floating point "
 msgid ""
 "[ieee|alternative]\n"
 "                          set the encoding for half precision floating point "
@@ -5317,32 +5432,32 @@ msgid ""
 "                          or Arm alternative format."
 msgstr ""
 
 "                          or Arm alternative format."
 msgstr ""
 
-#: config/tc-arm.c:32073
+#: config/tc-arm.c:32630
 #, c-format
 msgid " ARM-specific assembler options:\n"
 msgstr ""
 
 #, c-format
 msgid " ARM-specific assembler options:\n"
 msgstr ""
 
-#: config/tc-arm.c:32093
+#: config/tc-arm.c:32650
 #, c-format
 msgid "  --fix-v4bx              Allow BX in ARMv4 code\n"
 msgstr ""
 
 #, c-format
 msgid "  --fix-v4bx              Allow BX in ARMv4 code\n"
 msgstr ""
 
-#: config/tc-arm.c:32097
+#: config/tc-arm.c:32654
 #, c-format
 msgid "  --fdpic                 generate an FDPIC object file\n"
 msgstr ""
 
 #, c-format
 msgid "  --fdpic                 generate an FDPIC object file\n"
 msgstr ""
 
-#: config/tc-arm.c:32403
+#: config/tc-arm.c:32962
 msgid "no architecture contains all the instructions used\n"
 msgstr ""
 
 msgid "no architecture contains all the instructions used\n"
 msgstr ""
 
-#: config/tc-arm.c:32755
+#: config/tc-arm.c:33314
 #, c-format
 msgid ""
 "architectural extension `%s' is not allowed for the current base architecture"
 msgstr ""
 
 #, c-format
 msgid ""
 "architectural extension `%s' is not allowed for the current base architecture"
 msgstr ""
 
-#: config/tc-arm.c:32778
+#: config/tc-arm.c:33337
 #, c-format
 msgid "unknown architecture extension `%s'\n"
 msgstr ""
 #, c-format
 msgid "unknown architecture extension `%s'\n"
 msgstr ""
@@ -5418,7 +5533,7 @@ msgstr ""
 msgid "constant out of 8-bit range: %d"
 msgstr ""
 
 msgid "constant out of 8-bit range: %d"
 msgstr ""
 
-#: config/tc-avr.c:954 config/tc-score.c:1198 read.c:3798
+#: config/tc-avr.c:954 config/tc-score.c:1198 read.c:3799
 msgid "illegal expression"
 msgstr ""
 
 msgid "illegal expression"
 msgstr ""
 
@@ -5527,16 +5642,16 @@ msgstr ""
 #. xgettext:c-format.
 #: config/tc-avr.c:1853 config/tc-bfin.c:824 config/tc-d10v.c:1462
 #: config/tc-d30v.c:1771 config/tc-metag.c:7019 config/tc-mn10200.c:779
 #. xgettext:c-format.
 #: config/tc-avr.c:1853 config/tc-bfin.c:824 config/tc-d10v.c:1462
 #: config/tc-d30v.c:1771 config/tc-metag.c:7019 config/tc-mn10200.c:779
-#: config/tc-mn10300.c:2177 config/tc-msp430.c:4644 config/tc-ppc.c:7949
+#: config/tc-mn10300.c:2177 config/tc-msp430.c:4644 config/tc-ppc.c:7962
 #: config/tc-spu.c:894 config/tc-spu.c:1105 config/tc-v850.c:3367
 #: config/tc-spu.c:894 config/tc-spu.c:1105 config/tc-v850.c:3367
-#: config/tc-z80.c:3452
+#: config/tc-z80.c:3811
 #, c-format
 msgid "reloc %d not supported by object file format"
 msgstr ""
 
 #: config/tc-avr.c:1875 config/tc-ft32.c:232 config/tc-h8300.c:1930
 #, c-format
 msgid "reloc %d not supported by object file format"
 msgstr ""
 
 #: config/tc-avr.c:1875 config/tc-ft32.c:232 config/tc-h8300.c:1930
-#: config/tc-mcore.c:880 config/tc-microblaze.c:941 config/tc-moxie.c:182
-#: config/tc-pj.c:253 config/tc-sh.c:2196 config/tc-wasm32.c:747
+#: config/tc-mcore.c:880 config/tc-microblaze.c:941 config/tc-moxie.c:180
+#: config/tc-pj.c:253 config/tc-sh.c:2197 config/tc-wasm32.c:747
 #: config/tc-z8k.c:1223
 msgid "can't find opcode "
 msgstr ""
 #: config/tc-z8k.c:1223
 msgid "can't find opcode "
 msgstr ""
@@ -5672,7 +5787,7 @@ msgstr ""
 msgid "convert_frag called"
 msgstr ""
 
 msgid "convert_frag called"
 msgstr ""
 
-#: config/tc-bpf.c:286 config/tc-sparc.h:68 config/tc-z80.h:56
+#: config/tc-bpf.c:286 config/tc-sparc.h:68 config/tc-z80.h:55
 msgid "estimate_size_before_relax called"
 msgstr ""
 
 msgid "estimate_size_before_relax called"
 msgstr ""
 
@@ -5707,7 +5822,7 @@ msgstr ""
 msgid "internal error: reloc %d (`%s') not supported by object file format"
 msgstr ""
 
 msgid "internal error: reloc %d (`%s') not supported by object file format"
 msgstr ""
 
-#: config/tc-cr16.c:696 config/tc-i386.c:12966 config/tc-s390.c:2121
+#: config/tc-cr16.c:696 config/tc-i386.c:13591 config/tc-s390.c:2121
 msgid "GOT already in symbol table"
 msgstr ""
 
 msgid "GOT already in symbol table"
 msgstr ""
 
@@ -6120,13 +6235,13 @@ msgstr ""
 msgid "invalid <arch> in --march=<arch>: %s"
 msgstr ""
 
 msgid "invalid <arch> in --march=<arch>: %s"
 msgstr ""
 
-#: config/tc-cris.c:3958 config/tc-ft32.c:689 config/tc-moxie.c:778
+#: config/tc-cris.c:3958 config/tc-ft32.c:689 config/tc-moxie.c:776
 msgid ""
 "Semantics error.  This type of operand can not be relocated, it must be an "
 "assembly-time constant"
 msgstr ""
 
 msgid ""
 "Semantics error.  This type of operand can not be relocated, it must be an "
 "assembly-time constant"
 msgstr ""
 
-#: config/tc-cris.c:4007 config/tc-ft32.c:710 config/tc-moxie.c:826
+#: config/tc-cris.c:4007 config/tc-ft32.c:710 config/tc-moxie.c:824
 #, c-format
 msgid "Cannot generate relocation type for symbol %s, code %s"
 msgstr ""
 #, c-format
 msgid "Cannot generate relocation type for symbol %s, code %s"
 msgstr ""
@@ -6526,7 +6641,7 @@ msgstr ""
 msgid "more than 65K literal pools"
 msgstr ""
 
 msgid "more than 65K literal pools"
 msgstr ""
 
-#: config/tc-csky.c:1804 read.c:3558 read.c:4867
+#: config/tc-csky.c:1804 read.c:3559 read.c:4868
 #, c-format
 msgid "bad floating literal: %s"
 msgstr ""
 #, c-format
 msgid "bad floating literal: %s"
 msgstr ""
@@ -6535,8 +6650,8 @@ msgstr ""
 msgid "missing ']'"
 msgstr ""
 
 msgid "missing ']'"
 msgstr ""
 
-#: config/tc-csky.c:1951 config/tc-mips.c:14328 config/tc-mips.c:14392
-#: config/tc-mips.c:14403 config/tc-score.c:2690 config/tc-score.c:2736
+#: config/tc-csky.c:1951 config/tc-mips.c:14367 config/tc-mips.c:14431
+#: config/tc-mips.c:14442 config/tc-score.c:2690 config/tc-score.c:2736
 msgid "unrecognized opcode"
 msgstr ""
 
 msgid "unrecognized opcode"
 msgstr ""
 
@@ -6557,7 +6672,7 @@ msgstr ""
 msgid "second operand must be 1"
 msgstr ""
 
 msgid "second operand must be 1"
 msgstr ""
 
-#: config/tc-csky.c:5505 config/tc-xtensa.c:1974
+#: config/tc-csky.c:5505 config/tc-xtensa.c:1980
 msgid "register number out of range"
 msgstr ""
 
 msgid "register number out of range"
 msgstr ""
 
@@ -6849,9 +6964,10 @@ msgstr ""
 msgid ".endfunc missing for previous .proc"
 msgstr ""
 
 msgid ".endfunc missing for previous .proc"
 msgstr ""
 
-#: config/tc-dlx.c:295 config/tc-mips.c:3703 config/tc-nios2.c:3637
+#: config/tc-dlx.c:295 config/tc-mips.c:3706 config/tc-nios2.c:3637
 #: config/tc-nios2.c:3651 config/tc-nios2.c:3666 config/tc-pru.c:1574
 #: config/tc-nios2.c:3651 config/tc-nios2.c:3666 config/tc-pru.c:1574
-#: config/tc-pru.c:1588 config/tc-riscv.c:726
+#: config/tc-pru.c:1588 config/tc-riscv.c:279 config/tc-riscv.c:707
+#: config/tc-riscv.c:1055
 #, c-format
 msgid "internal error: can't hash `%s': %s\n"
 msgstr ""
 #, c-format
 msgid "internal error: can't hash `%s': %s\n"
 msgstr ""
@@ -6859,8 +6975,9 @@ msgstr ""
 #. Probably a memory allocation problem?  Give up now.
 #: config/tc-dlx.c:302 config/tc-hppa.c:8269 config/tc-nios2.c:1438
 #: config/tc-nios2.c:3640 config/tc-nios2.c:3654 config/tc-nios2.c:3669
 #. Probably a memory allocation problem?  Give up now.
 #: config/tc-dlx.c:302 config/tc-hppa.c:8269 config/tc-nios2.c:1438
 #: config/tc-nios2.c:3640 config/tc-nios2.c:3654 config/tc-nios2.c:3669
-#: config/tc-pru.c:1577 config/tc-pru.c:1591 config/tc-riscv.c:729
-#: config/tc-riscv.c:741 config/tc-sparc.c:1008
+#: config/tc-pru.c:1577 config/tc-pru.c:1591 config/tc-riscv.c:282
+#: config/tc-riscv.c:710 config/tc-riscv.c:1058 config/tc-riscv.c:1070
+#: config/tc-sparc.c:1008
 msgid "Broken assembler.  No assembly attempted."
 msgstr ""
 
 msgid "Broken assembler.  No assembly attempted."
 msgstr ""
 
@@ -6930,7 +7047,7 @@ msgstr ""
 msgid "Invalid expression after # number\n"
 msgstr ""
 
 msgid "Invalid expression after # number\n"
 msgstr ""
 
-#: config/tc-dlx.c:1189 config/tc-m32r.c:2273 config/tc-nds32.c:7879
+#: config/tc-dlx.c:1189 config/tc-m32r.c:2275 config/tc-nds32.c:7879
 #: config/tc-sparc.c:4020
 #, c-format
 msgid "internal error: can't export reloc type %d (`%s')"
 #: config/tc-sparc.c:4020
 #, c-format
 msgid "internal error: can't export reloc type %d (`%s')"
@@ -6966,7 +7083,7 @@ msgstr ""
 msgid "ldrd/strd requires even:odd register pair"
 msgstr ""
 
 msgid "ldrd/strd requires even:odd register pair"
 msgstr ""
 
-#: config/tc-epiphany.c:820 config/tc-m32r.c:1784
+#: config/tc-epiphany.c:820 config/tc-m32r.c:1786
 msgid "Addend to unresolved symbol not on word boundary."
 msgstr ""
 
 msgid "Addend to unresolved symbol not on word boundary."
 msgstr ""
 
@@ -7125,16 +7242,16 @@ msgstr ""
 msgid "Relocation %s is not safe for %s"
 msgstr ""
 
 msgid "Relocation %s is not safe for %s"
 msgstr ""
 
-#: config/tc-ft32.c:146 config/tc-moxie.c:104
+#: config/tc-ft32.c:146 config/tc-moxie.c:102
 msgid "expecting register"
 msgstr ""
 
 msgid "expecting register"
 msgstr ""
 
-#: config/tc-ft32.c:167 config/tc-ft32.c:183 config/tc-moxie.c:123
-#: config/tc-moxie.c:139
+#: config/tc-ft32.c:167 config/tc-ft32.c:183 config/tc-moxie.c:121
+#: config/tc-moxie.c:137
 msgid "illegal register number"
 msgstr ""
 
 msgid "illegal register number"
 msgstr ""
 
-#: config/tc-ft32.c:239 config/tc-moxie.c:188 config/tc-pj.c:260
+#: config/tc-ft32.c:239 config/tc-moxie.c:186 config/tc-pj.c:260
 #, c-format
 msgid "unknown opcode %s"
 msgstr ""
 #, c-format
 msgid "unknown opcode %s"
 msgstr ""
@@ -7152,15 +7269,15 @@ msgstr ""
 msgid "expected comma separator"
 msgstr ""
 
 msgid "expected comma separator"
 msgstr ""
 
-#: config/tc-ft32.c:412 config/tc-moxie.c:232 config/tc-moxie.c:292
-#: config/tc-moxie.c:304 config/tc-moxie.c:337 config/tc-moxie.c:369
-#: config/tc-moxie.c:402 config/tc-moxie.c:456 config/tc-moxie.c:510
-#: config/tc-moxie.c:520 config/tc-moxie.c:543 config/tc-moxie.c:556
+#: config/tc-ft32.c:412 config/tc-moxie.c:230 config/tc-moxie.c:290
+#: config/tc-moxie.c:302 config/tc-moxie.c:335 config/tc-moxie.c:367
+#: config/tc-moxie.c:400 config/tc-moxie.c:454 config/tc-moxie.c:508
+#: config/tc-moxie.c:518 config/tc-moxie.c:541 config/tc-moxie.c:554
 #: config/tc-pj.c:308
 msgid "extra stuff on line ignored"
 msgstr ""
 
 #: config/tc-pj.c:308
 msgid "extra stuff on line ignored"
 msgstr ""
 
-#: config/tc-ft32.c:472 config/tc-lm32.c:236 config/tc-moxie.c:587
+#: config/tc-ft32.c:472 config/tc-lm32.c:236 config/tc-moxie.c:585
 #: config/tc-nios2.c:284
 msgid "bad call to md_atof"
 msgstr ""
 #: config/tc-nios2.c:284
 msgid "bad call to md_atof"
 msgstr ""
@@ -7314,7 +7431,7 @@ msgstr ""
 
 #. This seems more sane than saying "too many operands".  We'll
 #. get here only if the trailing trash starts with a comma.
 
 #. This seems more sane than saying "too many operands".  We'll
 #. get here only if the trailing trash starts with a comma.
-#: config/tc-h8300.c:1816 config/tc-mips.c:14344 config/tc-mips.c:14412
+#: config/tc-h8300.c:1816 config/tc-mips.c:14383 config/tc-mips.c:14451
 #: config/tc-mmix.c:479 config/tc-mmix.c:491 config/tc-mmix.c:2532
 #: config/tc-mmix.c:2556 config/tc-mmix.c:2829
 msgid "invalid operands"
 #: config/tc-mmix.c:479 config/tc-mmix.c:491 config/tc-mmix.c:2532
 #: config/tc-mmix.c:2556 config/tc-mmix.c:2829
 msgid "invalid operands"
@@ -7324,7 +7441,7 @@ msgstr ""
 msgid "operand/size mis-match"
 msgstr ""
 
 msgid "operand/size mis-match"
 msgstr ""
 
-#: config/tc-h8300.c:1947 config/tc-sh.c:2551 config/tc-z8k.c:1233
+#: config/tc-h8300.c:1947 config/tc-sh.c:2552 config/tc-z8k.c:1233
 msgid "unknown opcode"
 msgstr ""
 
 msgid "unknown opcode"
 msgstr ""
 
@@ -7383,7 +7500,7 @@ msgid "Difference of symbols in different sections is not supported"
 msgstr ""
 
 #: config/tc-h8300.c:2325 config/tc-mcore.c:2204 config/tc-microblaze.c:2481
 msgstr ""
 
 #: config/tc-h8300.c:2325 config/tc-mcore.c:2204 config/tc-microblaze.c:2481
-#: config/tc-pj.c:491 config/tc-sh.c:3900 config/tc-tic6x.c:4520
+#: config/tc-pj.c:491 config/tc-sh.c:3901 config/tc-tic6x.c:4520
 #: config/tc-xc16x.c:315
 #, c-format
 msgid "Cannot represent relocation type %s"
 #: config/tc-xc16x.c:315
 #, c-format
 msgid "Cannot represent relocation type %s"
@@ -7805,811 +7922,854 @@ msgstr ""
 msgid "internal error: losing opcode: `%s' \"%s\"\n"
 msgstr ""
 
 msgid "internal error: losing opcode: `%s' \"%s\"\n"
 msgstr ""
 
-#: config/tc-i386.c:1388
+#: config/tc-i386.c:1446
 #, c-format
 msgid "i386_output_nops called to generate nops of at most %d bytes!"
 msgstr ""
 
 #, c-format
 msgid "i386_output_nops called to generate nops of at most %d bytes!"
 msgstr ""
 
-#: config/tc-i386.c:1597
+#: config/tc-i386.c:1655
 #, c-format
 msgid "invalid single nop size: %d (expect within [0, %d])"
 msgstr ""
 
 #, c-format
 msgid "invalid single nop size: %d (expect within [0, %d])"
 msgstr ""
 
-#: config/tc-i386.c:1638
+#: config/tc-i386.c:1696
 msgid "jump over nop padding out of range"
 msgstr ""
 
 msgid "jump over nop padding out of range"
 msgstr ""
 
-#: config/tc-i386.c:2472
+#: config/tc-i386.c:2533
 #, c-format
 msgid "%s shortened to %s"
 msgstr ""
 
 #, c-format
 msgid "%s shortened to %s"
 msgstr ""
 
-#: config/tc-i386.c:2563
+#: config/tc-i386.c:2624
 msgid "same type of prefix used twice"
 msgstr ""
 
 msgid "same type of prefix used twice"
 msgstr ""
 
-#: config/tc-i386.c:2590
+#: config/tc-i386.c:2651
 #, c-format
 msgid "64bit mode not supported on `%s'."
 msgstr ""
 
 #, c-format
 msgid "64bit mode not supported on `%s'."
 msgstr ""
 
-#: config/tc-i386.c:2599
+#: config/tc-i386.c:2660
 #, c-format
 msgid "32bit mode not supported on `%s'."
 msgstr ""
 
 #, c-format
 msgid "32bit mode not supported on `%s'."
 msgstr ""
 
-#: config/tc-i386.c:2639
+#: config/tc-i386.c:2700
 msgid "bad argument to syntax directive."
 msgstr ""
 
 msgid "bad argument to syntax directive."
 msgstr ""
 
-#: config/tc-i386.c:2702
+#: config/tc-i386.c:2763
 #, c-format
 msgid "bad argument to %s_check directive."
 msgstr ""
 
 #, c-format
 msgid "bad argument to %s_check directive."
 msgstr ""
 
-#: config/tc-i386.c:2706
+#: config/tc-i386.c:2767
 #, c-format
 msgid "missing argument for %s_check directive"
 msgstr ""
 
 #, c-format
 msgid "missing argument for %s_check directive"
 msgstr ""
 
-#: config/tc-i386.c:2746
+#: config/tc-i386.c:2807
 #, c-format
 msgid "`%s' is not supported on `%s'"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not supported on `%s'"
 msgstr ""
 
-#: config/tc-i386.c:2852
+#: config/tc-i386.c:2913
 #, c-format
 msgid "no such architecture: `%s'"
 msgstr ""
 
 #, c-format
 msgid "no such architecture: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:2857
+#: config/tc-i386.c:2918
 msgid "missing cpu architecture"
 msgstr ""
 
 msgid "missing cpu architecture"
 msgstr ""
 
-#: config/tc-i386.c:2874
+#: config/tc-i386.c:2935
 #, c-format
 msgid "no such architecture modifier: `%s'"
 msgstr ""
 
 #, c-format
 msgid "no such architecture modifier: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:2889 config/tc-i386.c:2919
+#: config/tc-i386.c:2950 config/tc-i386.c:2980
 msgid "Intel L1OM is 64bit ELF only"
 msgstr ""
 
 msgid "Intel L1OM is 64bit ELF only"
 msgstr ""
 
-#: config/tc-i386.c:2896 config/tc-i386.c:2926
+#: config/tc-i386.c:2957 config/tc-i386.c:2987
 msgid "Intel K1OM is 64bit ELF only"
 msgstr ""
 
 msgid "Intel K1OM is 64bit ELF only"
 msgstr ""
 
-#: config/tc-i386.c:2903 config/tc-i386.c:2940
+#: config/tc-i386.c:2964 config/tc-i386.c:3001
 msgid "Intel MCU is 32bit ELF only"
 msgstr ""
 
 msgid "Intel MCU is 32bit ELF only"
 msgstr ""
 
-#: config/tc-i386.c:2947 config/tc-i386.c:12855
+#: config/tc-i386.c:3008 config/tc-i386.c:13480
 msgid "unknown architecture"
 msgstr ""
 
 msgid "unknown architecture"
 msgstr ""
 
-#: config/tc-i386.c:2984 config/tc-i386.c:3006
+#: config/tc-i386.c:3045 config/tc-i386.c:3067
 #, c-format
 msgid "can't hash %s: %s"
 msgstr ""
 
 #, c-format
 msgid "can't hash %s: %s"
 msgstr ""
 
-#: config/tc-i386.c:3303
+#: config/tc-i386.c:3364
 msgid "there are no pc-relative size relocations"
 msgstr ""
 
 msgid "there are no pc-relative size relocations"
 msgstr ""
 
-#: config/tc-i386.c:3315
+#: config/tc-i386.c:3376
 #, c-format
 msgid "unknown relocation (%u)"
 msgstr ""
 
 #, c-format
 msgid "unknown relocation (%u)"
 msgstr ""
 
-#: config/tc-i386.c:3317
+#: config/tc-i386.c:3378
 #, c-format
 msgid "%u-byte relocation cannot be applied to %u-byte field"
 msgstr ""
 
 #, c-format
 msgid "%u-byte relocation cannot be applied to %u-byte field"
 msgstr ""
 
-#: config/tc-i386.c:3321
+#: config/tc-i386.c:3382
 msgid "non-pc-relative relocation for pc-relative field"
 msgstr ""
 
 msgid "non-pc-relative relocation for pc-relative field"
 msgstr ""
 
-#: config/tc-i386.c:3326
+#: config/tc-i386.c:3387
 msgid "relocated field and relocation type differ in signedness"
 msgstr ""
 
 msgid "relocated field and relocation type differ in signedness"
 msgstr ""
 
-#: config/tc-i386.c:3335
+#: config/tc-i386.c:3396
 msgid "there are no unsigned pc-relative relocations"
 msgstr ""
 
 msgid "there are no unsigned pc-relative relocations"
 msgstr ""
 
-#: config/tc-i386.c:3343
+#: config/tc-i386.c:3404
 #, c-format
 msgid "cannot do %u byte pc-relative relocation"
 msgstr ""
 
 #, c-format
 msgid "cannot do %u byte pc-relative relocation"
 msgstr ""
 
-#: config/tc-i386.c:3360
+#: config/tc-i386.c:3421
 #, c-format
 msgid "cannot do %s %u byte relocation"
 msgstr ""
 
 #, c-format
 msgid "cannot do %s %u byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:3958 config/tc-i386.c:4404
+#: config/tc-i386.c:4017 config/tc-i386.c:4767
 #, c-format
 msgid "invalid instruction `%s' after `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid instruction `%s' after `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3964
+#: config/tc-i386.c:4023
 #, c-format
 msgid "missing `lock' with `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing `lock' with `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3971
+#: config/tc-i386.c:4030
 #, c-format
 msgid "instruction `%s' after `xacquire' not allowed"
 msgstr ""
 
 #, c-format
 msgid "instruction `%s' after `xacquire' not allowed"
 msgstr ""
 
-#: config/tc-i386.c:3977
+#: config/tc-i386.c:4036
 #, c-format
 msgid "memory destination needed for instruction `%s' after `xrelease'"
 msgstr ""
 
 #, c-format
 msgid "memory destination needed for instruction `%s' after `xrelease'"
 msgstr ""
 
-#: config/tc-i386.c:4378
+#: config/tc-i386.c:4529
 #, c-format
 #, c-format
-msgid "SSE instruction `%s' is used"
+msgid "`%s` changes flags which would affect control flow behavior"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-i386.c:4392 config/tc-i386.c:6482
+#: config/tc-i386.c:4571
 #, c-format
 #, c-format
-msgid "ambiguous operand size for `%s'"
+msgid "indirect `%s` with memory operand should be avoided"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-i386.c:4417
+#: config/tc-i386.c:4582
+#, c-format
+msgid "`%s` skips -mlfence-before-indirect-branch on `%s`"
+msgstr ""
+
+#: config/tc-i386.c:4603
+#, c-format
+msgid "`%s` skips -mlfence-before-ret on `%s`"
+msgstr ""
+
+#: config/tc-i386.c:4757
+#, c-format
+msgid "SSE instruction `%s' is used"
+msgstr ""
+
+#: config/tc-i386.c:4780
 msgid "expecting lockable instruction after `lock'"
 msgstr ""
 
 msgid "expecting lockable instruction after `lock'"
 msgstr ""
 
-#: config/tc-i386.c:4424
+#: config/tc-i386.c:4787
 #, c-format
 msgid "data size prefix invalid with `%s'"
 msgstr ""
 
 #, c-format
 msgid "data size prefix invalid with `%s'"
 msgstr ""
 
-#: config/tc-i386.c:4434
+#: config/tc-i386.c:4797
 msgid "expecting valid branch instruction after `bnd'"
 msgstr ""
 
 msgid "expecting valid branch instruction after `bnd'"
 msgstr ""
 
-#: config/tc-i386.c:4438
+#: config/tc-i386.c:4801
 msgid "expecting indirect branch instruction after `notrack'"
 msgstr ""
 
 msgid "expecting indirect branch instruction after `notrack'"
 msgstr ""
 
-#: config/tc-i386.c:4443
+#: config/tc-i386.c:4806
 msgid "32-bit address isn't allowed in 64-bit MPX instructions."
 msgstr ""
 
 msgid "32-bit address isn't allowed in 64-bit MPX instructions."
 msgstr ""
 
-#: config/tc-i386.c:4447
+#: config/tc-i386.c:4810
 msgid "16-bit address isn't allowed in MPX instructions"
 msgstr ""
 
 msgid "16-bit address isn't allowed in MPX instructions"
 msgstr ""
 
-#: config/tc-i386.c:4457
+#: config/tc-i386.c:4820
 msgid "replacing `rep'/`repe' prefix by `bnd'"
 msgstr ""
 
 #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
 msgid "replacing `rep'/`repe' prefix by `bnd'"
 msgstr ""
 
 #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:4511
+#: config/tc-i386.c:4874
 #, c-format
 msgid "translating to `%sp'"
 msgstr ""
 
 #, c-format
 msgid "translating to `%sp'"
 msgstr ""
 
-#: config/tc-i386.c:4518
+#: config/tc-i386.c:4881
 #, c-format
 msgid "instruction `%s' isn't supported outside of protected mode."
 msgstr ""
 
 #, c-format
 msgid "instruction `%s' isn't supported outside of protected mode."
 msgstr ""
 
-#: config/tc-i386.c:4579
+#: config/tc-i386.c:4939
 #, c-format
 msgid "can't encode register '%s%s' in an instruction requiring REX prefix."
 msgstr ""
 
 #, c-format
 msgid "can't encode register '%s%s' in an instruction requiring REX prefix."
 msgstr ""
 
-#: config/tc-i386.c:4651 config/tc-i386.c:4850
+#: config/tc-i386.c:5015 config/tc-i386.c:5214
 #, c-format
 msgid "no such instruction: `%s'"
 msgstr ""
 
 #, c-format
 msgid "no such instruction: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:4662 config/tc-i386.c:4883
+#: config/tc-i386.c:5026 config/tc-i386.c:5247
 #, c-format
 msgid "invalid character %s in mnemonic"
 msgstr ""
 
 #, c-format
 msgid "invalid character %s in mnemonic"
 msgstr ""
 
-#: config/tc-i386.c:4669
+#: config/tc-i386.c:5033
 msgid "expecting prefix; got nothing"
 msgstr ""
 
 msgid "expecting prefix; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:4671
+#: config/tc-i386.c:5035
 msgid "expecting mnemonic; got nothing"
 msgstr ""
 
 msgid "expecting mnemonic; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:4686 config/tc-i386.c:4905
+#: config/tc-i386.c:5050 config/tc-i386.c:5269
 #, c-format
 msgid "`%s' is only supported in 64-bit mode"
 msgstr ""
 
 #, c-format
 msgid "`%s' is only supported in 64-bit mode"
 msgstr ""
 
-#: config/tc-i386.c:4687 config/tc-i386.c:4904
+#: config/tc-i386.c:5051 config/tc-i386.c:5268
 #, c-format
 msgid "`%s' is not supported in 64-bit mode"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not supported in 64-bit mode"
 msgstr ""
 
-#: config/tc-i386.c:4699
+#: config/tc-i386.c:5063
 #, c-format
 msgid "redundant %s prefix"
 msgstr ""
 
 #, c-format
 msgid "redundant %s prefix"
 msgstr ""
 
-#: config/tc-i386.c:4896
+#: config/tc-i386.c:5260
 msgid "use .code16 to ensure correct addressing mode"
 msgstr ""
 
 msgid "use .code16 to ensure correct addressing mode"
 msgstr ""
 
-#: config/tc-i386.c:4908
+#: config/tc-i386.c:5272
 #, c-format
 msgid "`%s' is not supported on `%s%s'"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not supported on `%s%s'"
 msgstr ""
 
-#: config/tc-i386.c:4934
+#: config/tc-i386.c:5298
 #, c-format
 msgid "invalid character %s before operand %d"
 msgstr ""
 
 #, c-format
 msgid "invalid character %s before operand %d"
 msgstr ""
 
-#: config/tc-i386.c:4948
+#: config/tc-i386.c:5312
 #, c-format
 msgid "unbalanced parenthesis in operand %d."
 msgstr ""
 
 #, c-format
 msgid "unbalanced parenthesis in operand %d."
 msgstr ""
 
-#: config/tc-i386.c:4951
+#: config/tc-i386.c:5315
 #, c-format
 msgid "unbalanced brackets in operand %d."
 msgstr ""
 
 #, c-format
 msgid "unbalanced brackets in operand %d."
 msgstr ""
 
-#: config/tc-i386.c:4960
+#: config/tc-i386.c:5324
 #, c-format
 msgid "invalid character %s in operand %d"
 msgstr ""
 
 #, c-format
 msgid "invalid character %s in operand %d"
 msgstr ""
 
-#: config/tc-i386.c:4987
+#: config/tc-i386.c:5351
 #, c-format
 msgid "spurious operands; (%d operands/instruction max)"
 msgstr ""
 
 #, c-format
 msgid "spurious operands; (%d operands/instruction max)"
 msgstr ""
 
-#: config/tc-i386.c:4997 config/tc-i386.c:10624
+#: config/tc-i386.c:5361 config/tc-i386.c:11153
 #, c-format
 msgid "too many memory references for `%s'"
 msgstr ""
 
 #, c-format
 msgid "too many memory references for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:5018
+#: config/tc-i386.c:5382
 msgid "expecting operand after ','; got nothing"
 msgstr ""
 
 msgid "expecting operand after ','; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:5023
+#: config/tc-i386.c:5387
 msgid "expecting operand before ','; got nothing"
 msgstr ""
 
 msgid "expecting operand before ','; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:5453
+#: config/tc-i386.c:5816
 msgid "mask, index, and destination registers should be distinct"
 msgstr ""
 
 msgid "mask, index, and destination registers should be distinct"
 msgstr ""
 
-#: config/tc-i386.c:5470
+#: config/tc-i386.c:5833
 msgid "index and destination registers should be distinct"
 msgstr ""
 
 msgid "index and destination registers should be distinct"
 msgstr ""
 
-#: config/tc-i386.c:6144
+#: config/tc-i386.c:6526
 msgid "operand size mismatch"
 msgstr ""
 
 msgid "operand size mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6147
+#: config/tc-i386.c:6529
 msgid "operand type mismatch"
 msgstr ""
 
 msgid "operand type mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6150
+#: config/tc-i386.c:6532
 msgid "register type mismatch"
 msgstr ""
 
 msgid "register type mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6153
+#: config/tc-i386.c:6535
 msgid "number of operands mismatch"
 msgstr ""
 
 msgid "number of operands mismatch"
 msgstr ""
 
-#: config/tc-i386.c:6156
+#: config/tc-i386.c:6538
 msgid "invalid instruction suffix"
 msgstr ""
 
 msgid "invalid instruction suffix"
 msgstr ""
 
-#: config/tc-i386.c:6159
+#: config/tc-i386.c:6541
 msgid "constant doesn't fit in 4 bits"
 msgstr ""
 
 msgid "constant doesn't fit in 4 bits"
 msgstr ""
 
-#: config/tc-i386.c:6162
+#: config/tc-i386.c:6544
 msgid "unsupported with Intel mnemonic"
 msgstr ""
 
 msgid "unsupported with Intel mnemonic"
 msgstr ""
 
-#: config/tc-i386.c:6165
+#: config/tc-i386.c:6547
 msgid "unsupported syntax"
 msgstr ""
 
 msgid "unsupported syntax"
 msgstr ""
 
-#: config/tc-i386.c:6168
+#: config/tc-i386.c:6550
 #, c-format
 msgid "unsupported instruction `%s'"
 msgstr ""
 
 #, c-format
 msgid "unsupported instruction `%s'"
 msgstr ""
 
-#: config/tc-i386.c:6172
+#: config/tc-i386.c:6554
 msgid "invalid VSIB address"
 msgstr ""
 
 msgid "invalid VSIB address"
 msgstr ""
 
-#: config/tc-i386.c:6175
+#: config/tc-i386.c:6557
 msgid "mask, index, and destination registers must be distinct"
 msgstr ""
 
 msgid "mask, index, and destination registers must be distinct"
 msgstr ""
 
-#: config/tc-i386.c:6178
+#: config/tc-i386.c:6560
 msgid "unsupported vector index register"
 msgstr ""
 
 msgid "unsupported vector index register"
 msgstr ""
 
-#: config/tc-i386.c:6181
+#: config/tc-i386.c:6563
 msgid "unsupported broadcast"
 msgstr ""
 
 msgid "unsupported broadcast"
 msgstr ""
 
-#: config/tc-i386.c:6184
+#: config/tc-i386.c:6566
 msgid "broadcast is needed for operand of such type"
 msgstr ""
 
 msgid "broadcast is needed for operand of such type"
 msgstr ""
 
-#: config/tc-i386.c:6187
+#: config/tc-i386.c:6569
 msgid "unsupported masking"
 msgstr ""
 
 msgid "unsupported masking"
 msgstr ""
 
-#: config/tc-i386.c:6190
+#: config/tc-i386.c:6572
 msgid "mask not on destination operand"
 msgstr ""
 
 msgid "mask not on destination operand"
 msgstr ""
 
-#: config/tc-i386.c:6193
+#: config/tc-i386.c:6575
 msgid "default mask isn't allowed"
 msgstr ""
 
 msgid "default mask isn't allowed"
 msgstr ""
 
-#: config/tc-i386.c:6196
+#: config/tc-i386.c:6578
 msgid "unsupported static rounding/sae"
 msgstr ""
 
 msgid "unsupported static rounding/sae"
 msgstr ""
 
-#: config/tc-i386.c:6200
+#: config/tc-i386.c:6582
 msgid "RC/SAE operand must precede immediate operands"
 msgstr ""
 
 msgid "RC/SAE operand must precede immediate operands"
 msgstr ""
 
-#: config/tc-i386.c:6202
+#: config/tc-i386.c:6584
 msgid "RC/SAE operand must follow immediate operands"
 msgstr ""
 
 msgid "RC/SAE operand must follow immediate operands"
 msgstr ""
 
-#: config/tc-i386.c:6205 config/tc-metag.c:4789 config/tc-metag.c:5530
+#: config/tc-i386.c:6587 config/tc-metag.c:4789 config/tc-metag.c:5530
 #: config/tc-metag.c:5552
 msgid "invalid register operand"
 msgstr ""
 
 #: config/tc-metag.c:5552
 msgid "invalid register operand"
 msgstr ""
 
-#: config/tc-i386.c:6208
+#: config/tc-i386.c:6590
 #, c-format
 msgid "%s for `%s'"
 msgstr ""
 
 #, c-format
 msgid "%s for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:6217
+#: config/tc-i386.c:6599
 #, 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.
 #, 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:6224
+#: config/tc-i386.c:6606
 #, c-format
 msgid "stand-alone `%s' prefix"
 msgstr ""
 
 #, c-format
 msgid "stand-alone `%s' prefix"
 msgstr ""
 
-#: config/tc-i386.c:6266
+#: config/tc-i386.c:6648
 #, c-format
 msgid "`%s' operand %u must use `%ses' segment"
 msgstr ""
 
 #, c-format
 msgid "`%s' operand %u must use `%ses' segment"
 msgstr ""
 
-#. We have to know the operand size for crc32.
-#: config/tc-i386.c:6324
-#, c-format
-msgid "ambiguous memory operand size for `%s`"
-msgstr ""
-
-#: config/tc-i386.c:6413
+#: config/tc-i386.c:6792
 msgid "generating 16-bit `iret' for .code16gcc directive"
 msgstr ""
 
 msgid "generating 16-bit `iret' for .code16gcc directive"
 msgstr ""
 
-#: config/tc-i386.c:6417
+#: config/tc-i386.c:6796
 #, c-format
 msgid "generating 32-bit `%s', unlike earlier gas versions"
 msgstr ""
 
 #, c-format
 msgid "generating 32-bit `%s', unlike earlier gas versions"
 msgstr ""
 
-#: config/tc-i386.c:6455
+#: config/tc-i386.c:6909
+#, c-format
+msgid "ambiguous operand size for `%s'"
+msgstr ""
+
+#: config/tc-i386.c:6914
+#, c-format
 msgid ""
 msgid ""
-"no instruction mnemonic suffix given and no register operands; can't size "
-"instruction"
+"no instruction mnemonic suffix given and no register operands; can't size `"
+"%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-i386.c:6593
+#: config/tc-i386.c:6919
 #, c-format
 #, c-format
-msgid "invalid register operand size for `%s'"
+msgid "%s; using default for `%s'"
+msgstr ""
+
+#: config/tc-i386.c:6921
+msgid "ambiguous operand size"
+msgstr ""
+
+#: config/tc-i386.c:6922
+msgid "no instruction mnemonic suffix given and no register operands"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-i386.c:6638 config/tc-i386.c:6710 config/tc-i386.c:6832
+#: config/tc-i386.c:7048
 #, c-format
 #, c-format
-msgid "using `%s%s' instead of `%s%s' due to `%c' suffix"
+msgid "16-bit addressing unavailable for `%s'"
+msgstr ""
+
+#: config/tc-i386.c:7094
+#, c-format
+msgid "invalid register operand size for `%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-i386.c:6658 config/tc-i386.c:6686 config/tc-i386.c:6757
-#: config/tc-i386.c:6807
+#: config/tc-i386.c:7139 config/tc-i386.c:7167 config/tc-i386.c:7226
+#: config/tc-i386.c:7276
 #, c-format
 msgid "`%s%s' not allowed with `%s%c'"
 msgstr ""
 
 #, c-format
 msgid "`%s%s' not allowed with `%s%c'"
 msgstr ""
 
-#: config/tc-i386.c:6704 config/tc-i386.c:6731 config/tc-i386.c:6782
-#: config/tc-i386.c:6826
+#: config/tc-i386.c:7180 config/tc-i386.c:7200 config/tc-i386.c:7251
+#: config/tc-i386.c:7290
 #, c-format
 msgid "incorrect register `%s%s' used with `%c' suffix"
 msgstr ""
 
 #, c-format
 msgid "incorrect register `%s%s' used with `%c' suffix"
 msgstr ""
 
-#: config/tc-i386.c:6895
+#: config/tc-i386.c:7352
 msgid "no instruction mnemonic suffix given; can't determine immediate size"
 msgstr ""
 
 msgid "no instruction mnemonic suffix given; can't determine immediate size"
 msgstr ""
 
-#: config/tc-i386.c:7047
+#: config/tc-i386.c:7504
 #, c-format
 msgid ""
 "source register `%s%s' implicitly denotes `%s%.3s%u' to `%s%.3s%u' source "
 "group in `%s'"
 msgstr ""
 
 #, 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:7091
+#: config/tc-i386.c:7548
 #, c-format
 msgid "you can't `%s %s%s'"
 msgstr ""
 
 #. Reversed arguments on faddp, fsubp, etc.
 #, c-format
 msgid "you can't `%s %s%s'"
 msgstr ""
 
 #. Reversed arguments on faddp, fsubp, etc.
-#: config/tc-i386.c:7129
+#: config/tc-i386.c:7586
 #, c-format
 msgid "translating to `%s %s%s,%s%s'"
 msgstr ""
 
 #. Extraneous `l' suffix on fp insn.
 #, c-format
 msgid "translating to `%s %s%s,%s%s'"
 msgstr ""
 
 #. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:7136
+#: config/tc-i386.c:7593
 #, c-format
 msgid "translating to `%s %s%s'"
 msgstr ""
 
 #, c-format
 msgid "translating to `%s %s%s'"
 msgstr ""
 
-#: config/tc-i386.c:7145
+#: config/tc-i386.c:7604
 #, c-format
 msgid "segment override on `%s' is ineffectual"
 msgstr ""
 
 #, c-format
 msgid "segment override on `%s' is ineffectual"
 msgstr ""
 
-#: config/tc-i386.c:7912 config/tc-i386.c:8055 config/tc-i386.c:8116
+#: config/tc-i386.c:8379 config/tc-i386.c:8522 config/tc-i386.c:8583
 #, c-format
 msgid "skipping prefixes on `%s'"
 msgstr ""
 
 #, c-format
 msgid "skipping prefixes on `%s'"
 msgstr ""
 
-#: config/tc-i386.c:8136
+#: config/tc-i386.c:8603
 msgid "16-bit jump out of range"
 msgstr ""
 
 msgid "16-bit jump out of range"
 msgstr ""
 
-#: config/tc-i386.c:8145
+#: config/tc-i386.c:8612
 #, c-format
 msgid "can't handle non absolute segment in `%s'"
 msgstr ""
 
 #, c-format
 msgid "can't handle non absolute segment in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:8357 config/tc-i386.c:8389 config/tc-i386.c:8475
+#: config/tc-i386.c:8854 config/tc-i386.c:8886 config/tc-i386.c:8976
 #, c-format
 msgid "`%s` skips -malign-branch-boundary on `%s`"
 msgstr ""
 
 #, c-format
 msgid "`%s` skips -malign-branch-boundary on `%s`"
 msgstr ""
 
-#: config/tc-i386.c:8707
+#: config/tc-i386.c:9217
 msgid "pseudo prefix without instruction"
 msgstr ""
 
 msgid "pseudo prefix without instruction"
 msgstr ""
 
-#: config/tc-i386.c:8823
+#: config/tc-i386.c:9336
 #, c-format
 msgid "instruction length of %u bytes exceeds the limit of 15"
 msgstr ""
 
 #, c-format
 msgid "instruction length of %u bytes exceeds the limit of 15"
 msgstr ""
 
-#: config/tc-i386.c:9404 config/tc-i386.c:9506
+#: config/tc-i386.c:9918 config/tc-i386.c:10020
 #, c-format
 msgid "@%s reloc is not supported with %d-bit output format"
 msgstr ""
 
 #, c-format
 msgid "@%s reloc is not supported with %d-bit output format"
 msgstr ""
 
-#: config/tc-i386.c:9557
+#: config/tc-i386.c:10071
 #, c-format
 msgid "missing or invalid expression `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing or invalid expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9566
+#: config/tc-i386.c:10080
 #, c-format
 msgid "invalid PLT expression `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid PLT expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9652
+#: config/tc-i386.c:10166
 #, c-format
 msgid "Unsupported broadcast: `%s'"
 msgstr ""
 
 #, c-format
 msgid "Unsupported broadcast: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9668
+#: config/tc-i386.c:10182
 #, c-format
 msgid "`%s%s' can't be used for write mask"
 msgstr ""
 
 #, c-format
 msgid "`%s%s' can't be used for write mask"
 msgstr ""
 
-#: config/tc-i386.c:9691
+#: config/tc-i386.c:10205
 #, c-format
 msgid "invalid write mask `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid write mask `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9713 config/tc-i386.c:10403
+#: config/tc-i386.c:10227 config/tc-i386.c:10932
 #, c-format
 msgid "duplicated `%s'"
 msgstr ""
 
 #, c-format
 msgid "duplicated `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9723
+#: config/tc-i386.c:10237
 #, c-format
 msgid "invalid zeroing-masking `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid zeroing-masking `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9736
+#: config/tc-i386.c:10250
 #, c-format
 msgid "missing `}' in `%s'"
 msgstr ""
 
 #. We don't know this one.
 #, c-format
 msgid "missing `}' in `%s'"
 msgstr ""
 
 #. We don't know this one.
-#: config/tc-i386.c:9750
+#: config/tc-i386.c:10264
 #, c-format
 msgid "unknown vector operation: `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown vector operation: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9756
+#: config/tc-i386.c:10270
 msgid "zeroing-masking only allowed with write mask"
 msgstr ""
 
 msgid "zeroing-masking only allowed with write mask"
 msgstr ""
 
-#: config/tc-i386.c:9776
+#: config/tc-i386.c:10290
 #, c-format
 msgid "at most %d immediate operands are allowed"
 msgstr ""
 
 #, c-format
 msgid "at most %d immediate operands are allowed"
 msgstr ""
 
-#: config/tc-i386.c:9808 config/tc-i386.c:10076
+#: config/tc-i386.c:10322 config/tc-i386.c:10590
 #, c-format
 msgid "junk `%s' after expression"
 msgstr ""
 
 #, c-format
 msgid "junk `%s' after expression"
 msgstr ""
 
-#: config/tc-i386.c:9829
+#: config/tc-i386.c:10343
 #, c-format
 msgid "missing or invalid immediate expression `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing or invalid immediate expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9852 config/tc-i386.c:10166
+#: config/tc-i386.c:10366 config/tc-i386.c:10680
 #, c-format
 msgid "unimplemented segment %s in operand"
 msgstr ""
 
 #, c-format
 msgid "unimplemented segment %s in operand"
 msgstr ""
 
-#: config/tc-i386.c:9859
+#: config/tc-i386.c:10373
 #, c-format
 msgid "illegal immediate register operand %s"
 msgstr ""
 
 #, c-format
 msgid "illegal immediate register operand %s"
 msgstr ""
 
-#: config/tc-i386.c:9907
+#: config/tc-i386.c:10421
 #, c-format
 msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
 msgstr ""
 
-#: config/tc-i386.c:9916
+#: config/tc-i386.c:10430
 #, c-format
 msgid "scale factor of %d without an index register"
 msgstr ""
 
 #, c-format
 msgid "scale factor of %d without an index register"
 msgstr ""
 
-#: config/tc-i386.c:9938
+#: config/tc-i386.c:10452
 #, c-format
 msgid "at most %d displacement operands are allowed"
 msgstr ""
 
 #, c-format
 msgid "at most %d displacement operands are allowed"
 msgstr ""
 
-#: config/tc-i386.c:10132
+#: config/tc-i386.c:10646
 #, c-format
 msgid "missing or invalid displacement expression `%s'"
 msgstr ""
 
 #, c-format
 msgid "missing or invalid displacement expression `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10149
+#: config/tc-i386.c:10663
 #, c-format
 msgid "0x%lx out range of signed 32bit displacement"
 msgstr ""
 
 #, c-format
 msgid "0x%lx out range of signed 32bit displacement"
 msgstr ""
 
-#: config/tc-i386.c:10304
+#: config/tc-i386.c:10833
 #, c-format
 msgid "`%s' is not valid here (expected `%c%s%s%c')"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not valid here (expected `%c%s%s%c')"
 msgstr ""
 
-#: config/tc-i386.c:10316
+#: config/tc-i386.c:10845
 #, c-format
 msgid "`%s' is not a valid %s expression"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not a valid %s expression"
 msgstr ""
 
-#: config/tc-i386.c:10348
+#: config/tc-i386.c:10877
 #, c-format
 msgid "`%s' cannot be used here"
 msgstr ""
 
 #, c-format
 msgid "`%s' cannot be used here"
 msgstr ""
 
-#: config/tc-i386.c:10355
+#: config/tc-i386.c:10884
 msgid "register scaling is being ignored here"
 msgstr ""
 
 msgid "register scaling is being ignored here"
 msgstr ""
 
-#: config/tc-i386.c:10416
+#: config/tc-i386.c:10945
 #, c-format
 msgid "Missing '}': '%s'"
 msgstr ""
 
 #, c-format
 msgid "Missing '}': '%s'"
 msgstr ""
 
-#: config/tc-i386.c:10422
+#: config/tc-i386.c:10951
 #, c-format
 msgid "Junk after '}': '%s'"
 msgstr ""
 
 #, c-format
 msgid "Junk after '}': '%s'"
 msgstr ""
 
-#: config/tc-i386.c:10548
+#: config/tc-i386.c:11077
 #, c-format
 msgid "bad memory operand `%s'"
 msgstr ""
 
 #, c-format
 msgid "bad memory operand `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10572
+#: config/tc-i386.c:11101
 #, c-format
 msgid "junk `%s' after register"
 msgstr ""
 
 #, c-format
 msgid "junk `%s' after register"
 msgstr ""
 
-#: config/tc-i386.c:10585 config/tc-i386.c:10722 config/tc-i386.c:10766
+#: config/tc-i386.c:11114 config/tc-i386.c:11251 config/tc-i386.c:11295
 #, c-format
 msgid "bad register name `%s'"
 msgstr ""
 
 #, c-format
 msgid "bad register name `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10593
+#: config/tc-i386.c:11122
 msgid "immediate operand illegal with absolute jump"
 msgstr ""
 
 msgid "immediate operand illegal with absolute jump"
 msgstr ""
 
-#: config/tc-i386.c:10711
+#: config/tc-i386.c:11240
 #, c-format
 msgid "expecting `,' or `)' after index register in `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting `,' or `)' after index register in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10739
+#: config/tc-i386.c:11268
 #, c-format
 msgid "expecting `)' after scale factor in `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting `)' after scale factor in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:10747
+#: config/tc-i386.c:11276
 #, c-format
 msgid "expecting index register or scale factor after `,'; got '%c'"
 msgstr ""
 
 #, c-format
 msgid "expecting index register or scale factor after `,'; got '%c'"
 msgstr ""
 
-#: config/tc-i386.c:10755
+#: config/tc-i386.c:11284
 #, c-format
 msgid "expecting `,' or `)' after base register in `%s'"
 msgstr ""
 
 #. It's not a memory operand; argh!
 #, c-format
 msgid "expecting `,' or `)' after base register in `%s'"
 msgstr ""
 
 #. It's not a memory operand; argh!
-#: config/tc-i386.c:10804
+#: config/tc-i386.c:11333
 #, c-format
 msgid "invalid char %s beginning operand %d `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid char %s beginning operand %d `%s'"
 msgstr ""
 
-#: config/tc-i386.c:11418
+#: config/tc-i386.c:11986
 #, c-format
 msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
 #, c-format
 msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:11421
+#: config/tc-i386.c:11989
 #, c-format
 msgid ""
 "%s:%u: add additional %d%s at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
 #, 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:11427
+#: config/tc-i386.c:11995
 #, c-format
 msgid ""
 "%s:%u: add %d%s-byte nop at 0x%llx to align %s within %d-byte boundary\n"
 msgstr ""
 
 #, 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:11494
+#: config/tc-i386.c:12062
 msgid "long jump required"
 msgstr ""
 
 msgid "long jump required"
 msgstr ""
 
-#: config/tc-i386.c:11549
+#: config/tc-i386.c:12117
 msgid "jump target out of range"
 msgstr ""
 
 msgid "jump target out of range"
 msgstr ""
 
-#: config/tc-i386.c:12127
+#: config/tc-i386.c:12702
 #, c-format
 msgid "invalid -mx86-used-note= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mx86-used-note= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12150
+#: config/tc-i386.c:12725
 msgid "no compiled in support for x86_64"
 msgstr ""
 
 msgid "no compiled in support for x86_64"
 msgstr ""
 
-#: config/tc-i386.c:12170
+#: config/tc-i386.c:12745
 msgid "no compiled in support for 32bit x86_64"
 msgstr ""
 
 msgid "no compiled in support for 32bit x86_64"
 msgstr ""
 
-#: config/tc-i386.c:12174
+#: config/tc-i386.c:12749
 msgid "32bit x86_64 is only supported for ELF"
 msgstr ""
 
 msgid "32bit x86_64 is only supported for ELF"
 msgstr ""
 
-#: config/tc-i386.c:12208 config/tc-i386.c:12296
+#: config/tc-i386.c:12783 config/tc-i386.c:12871
 #, c-format
 msgid "invalid -march= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -march= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12306 config/tc-i386.c:12318
+#: config/tc-i386.c:12881 config/tc-i386.c:12893
 #, c-format
 msgid "invalid -mtune= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mtune= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12327
+#: config/tc-i386.c:12902
 #, c-format
 msgid "invalid -mmnemonic= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mmnemonic= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12336
+#: config/tc-i386.c:12911
 #, c-format
 msgid "invalid -msyntax= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -msyntax= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12359
+#: config/tc-i386.c:12934
 #, c-format
 msgid "invalid -msse-check= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -msse-check= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12370
+#: config/tc-i386.c:12945
 #, c-format
 msgid "invalid -moperand-check= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -moperand-check= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12379
+#: config/tc-i386.c:12954
 #, c-format
 msgid "invalid -mavxscalar= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mavxscalar= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12388
+#: config/tc-i386.c:12963
 #, c-format
 msgid "invalid -mvexwig= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mvexwig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12403
+#: config/tc-i386.c:12978
 #, c-format
 msgid "invalid -mevexlig= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mevexlig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12416
+#: config/tc-i386.c:12991
 #, c-format
 msgid "invalid -mevexrcig= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mevexrcig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12425
+#: config/tc-i386.c:13000
 #, c-format
 msgid "invalid -mevexwig= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mevexwig= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12440
+#: config/tc-i386.c:13015
 #, c-format
 msgid "invalid -momit-lock-prefix= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -momit-lock-prefix= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12449
+#: config/tc-i386.c:13024
 #, c-format
 msgid "invalid -mfence-as-lock-add= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mfence-as-lock-add= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12458
+#: config/tc-i386.c:13033
+#, c-format
+msgid "invalid -mlfence-after-load= option: `%s'"
+msgstr ""
+
+#: config/tc-i386.c:13050
+#, c-format
+msgid "invalid -mlfence-before-indirect-branch= option: `%s'"
+msgstr ""
+
+#: config/tc-i386.c:13064
+#, c-format
+msgid "invalid -mlfence-before-ret= option: `%s'"
+msgstr ""
+
+#: config/tc-i386.c:13074
 #, c-format
 msgid "invalid -mrelax-relocations= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -mrelax-relocations= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12487
+#: config/tc-i386.c:13103
 #, c-format
 msgid "invalid -malign-branch-boundary= value: %s"
 msgstr ""
 
 #, c-format
 msgid "invalid -malign-branch-boundary= value: %s"
 msgstr ""
 
-#: config/tc-i386.c:12501
+#: config/tc-i386.c:13117
 #, c-format
 msgid "invalid -malign-branch-prefix-size= value: %s"
 msgstr ""
 
 #, c-format
 msgid "invalid -malign-branch-prefix-size= value: %s"
 msgstr ""
 
-#: config/tc-i386.c:12528
+#: config/tc-i386.c:13144
 #, c-format
 msgid "invalid -malign-branch= option: `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid -malign-branch= option: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:12684
+#: config/tc-i386.c:13300
 #, c-format
 msgid ""
 "  -Qy, -Qn                ignored\n"
 #, c-format
 msgid ""
 "  -Qy, -Qn                ignored\n"
@@ -8617,34 +8777,34 @@ msgid ""
 "  -k                      ignored\n"
 msgstr ""
 
 "  -k                      ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:12689
+#: config/tc-i386.c:13305
 #, c-format
 msgid ""
 "  -n                      Do not optimize code alignment\n"
 "  -q                      quieten some warnings\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -n                      Do not optimize code alignment\n"
 "  -q                      quieten some warnings\n"
 msgstr ""
 
-#: config/tc-i386.c:12693
+#: config/tc-i386.c:13309
 #, c-format
 msgid "  -s                      ignored\n"
 msgstr ""
 
 #, c-format
 msgid "  -s                      ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:12698
+#: config/tc-i386.c:13314
 #, c-format
 msgid "  --32/--64/--x32         generate 32bit/64bit/x32 code\n"
 msgstr ""
 
 #, c-format
 msgid "  --32/--64/--x32         generate 32bit/64bit/x32 code\n"
 msgstr ""
 
-#: config/tc-i386.c:12702
+#: config/tc-i386.c:13318
 #, c-format
 msgid "  --divide                do not treat `/' as a comment character\n"
 msgstr ""
 
 #, c-format
 msgid "  --divide                do not treat `/' as a comment character\n"
 msgstr ""
 
-#: config/tc-i386.c:12705
+#: config/tc-i386.c:13321
 #, c-format
 msgid "  --divide                ignored\n"
 msgstr ""
 
 #, c-format
 msgid "  --divide                ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:12708
+#: config/tc-i386.c:13324
 #, c-format
 msgid ""
 "  -march=CPU[,+EXTENSION...]\n"
 #, c-format
 msgid ""
 "  -march=CPU[,+EXTENSION...]\n"
@@ -8652,36 +8812,36 @@ msgid ""
 "of:\n"
 msgstr ""
 
 "of:\n"
 msgstr ""
 
-#: config/tc-i386.c:12712
+#: config/tc-i386.c:13328
 #, c-format
 msgid "                          EXTENSION is combination of:\n"
 msgstr ""
 
 #, c-format
 msgid "                          EXTENSION is combination of:\n"
 msgstr ""
 
-#: config/tc-i386.c:12715
+#: config/tc-i386.c:13331
 #, c-format
 msgid "  -mtune=CPU              optimize for CPU, CPU is one of:\n"
 msgstr ""
 
 #, c-format
 msgid "  -mtune=CPU              optimize for CPU, CPU is one of:\n"
 msgstr ""
 
-#: config/tc-i386.c:12718
+#: config/tc-i386.c:13334
 #, c-format
 msgid "  -msse2avx               encode SSE instructions with VEX prefix\n"
 msgstr ""
 
 #, c-format
 msgid "  -msse2avx               encode SSE instructions with VEX prefix\n"
 msgstr ""
 
-#: config/tc-i386.c:12720
+#: config/tc-i386.c:13336
 #, c-format
 msgid ""
 "  -msse-check=[none|error|warning] (default: warning)\n"
 "                          check SSE instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -msse-check=[none|error|warning] (default: warning)\n"
 "                          check SSE instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:12723
+#: config/tc-i386.c:13339
 #, c-format
 msgid ""
 "  -moperand-check=[none|error|warning] (default: warning)\n"
 "                          check operand combinations for validity\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -moperand-check=[none|error|warning] (default: warning)\n"
 "                          check operand combinations for validity\n"
 msgstr ""
 
-#: config/tc-i386.c:12726
+#: config/tc-i386.c:13342
 #, c-format
 msgid ""
 "  -mavxscalar=[128|256] (default: 128)\n"
 #, c-format
 msgid ""
 "  -mavxscalar=[128|256] (default: 128)\n"
@@ -8690,7 +8850,7 @@ msgid ""
 "                           length\n"
 msgstr ""
 
 "                           length\n"
 msgstr ""
 
-#: config/tc-i386.c:12730
+#: config/tc-i386.c:13346
 #, c-format
 msgid ""
 "  -mvexwig=[0|1] (default: 0)\n"
 #, c-format
 msgid ""
 "  -mvexwig=[0|1] (default: 0)\n"
@@ -8698,7 +8858,7 @@ msgid ""
 "                           for VEX.W bit ignored instructions\n"
 msgstr ""
 
 "                           for VEX.W bit ignored instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:12734
+#: config/tc-i386.c:13350
 #, c-format
 msgid ""
 "  -mevexlig=[128|256|512] (default: 128)\n"
 #, c-format
 msgid ""
 "  -mevexlig=[128|256|512] (default: 128)\n"
@@ -8707,7 +8867,7 @@ msgid ""
 "                           length\n"
 msgstr ""
 
 "                           length\n"
 msgstr ""
 
-#: config/tc-i386.c:12738
+#: config/tc-i386.c:13354
 #, c-format
 msgid ""
 "  -mevexwig=[0|1] (default: 0)\n"
 #, c-format
 msgid ""
 "  -mevexwig=[0|1] (default: 0)\n"
@@ -8716,7 +8876,7 @@ msgid ""
 "                           for EVEX.W bit ignored instructions\n"
 msgstr ""
 
 "                           for EVEX.W bit ignored instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:12742
+#: config/tc-i386.c:13358
 #, c-format
 msgid ""
 "  -mevexrcig=[rne|rd|ru|rz] (default: rne)\n"
 #, c-format
 msgid ""
 "  -mevexrcig=[rne|rd|ru|rz] (default: rne)\n"
@@ -8725,77 +8885,77 @@ msgid ""
 "                           for SAE-only ignored instructions\n"
 msgstr ""
 
 "                           for SAE-only ignored instructions\n"
 msgstr ""
 
-#: config/tc-i386.c:12746
+#: config/tc-i386.c:13362
 #, c-format
 msgid "  -mmnemonic=[att|intel] "
 msgstr ""
 
 #, c-format
 msgid "  -mmnemonic=[att|intel] "
 msgstr ""
 
-#: config/tc-i386.c:12749
+#: config/tc-i386.c:13365
 #, c-format
 msgid "(default: att)\n"
 msgstr ""
 
 #, c-format
 msgid "(default: att)\n"
 msgstr ""
 
-#: config/tc-i386.c:12751
+#: config/tc-i386.c:13367
 #, c-format
 msgid "(default: intel)\n"
 msgstr ""
 
 #, c-format
 msgid "(default: intel)\n"
 msgstr ""
 
-#: config/tc-i386.c:12752
+#: config/tc-i386.c:13368
 #, c-format
 msgid "                          use AT&T/Intel mnemonic\n"
 msgstr ""
 
 #, c-format
 msgid "                          use AT&T/Intel mnemonic\n"
 msgstr ""
 
-#: config/tc-i386.c:12754
+#: config/tc-i386.c:13370
 #, c-format
 msgid ""
 "  -msyntax=[att|intel] (default: att)\n"
 "                          use AT&T/Intel syntax\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -msyntax=[att|intel] (default: att)\n"
 "                          use AT&T/Intel syntax\n"
 msgstr ""
 
-#: config/tc-i386.c:12757
+#: config/tc-i386.c:13373
 #, c-format
 msgid "  -mindex-reg             support pseudo index registers\n"
 msgstr ""
 
 #, c-format
 msgid "  -mindex-reg             support pseudo index registers\n"
 msgstr ""
 
-#: config/tc-i386.c:12759
+#: config/tc-i386.c:13375
 #, c-format
 msgid "  -mnaked-reg             don't require `%%' prefix for registers\n"
 msgstr ""
 
 #, c-format
 msgid "  -mnaked-reg             don't require `%%' prefix for registers\n"
 msgstr ""
 
-#: config/tc-i386.c:12761
+#: config/tc-i386.c:13377
 #, c-format
 msgid "  -madd-bnd-prefix        add BND prefix for all valid branches\n"
 msgstr ""
 
 #, c-format
 msgid "  -madd-bnd-prefix        add BND prefix for all valid branches\n"
 msgstr ""
 
-#: config/tc-i386.c:12764
+#: config/tc-i386.c:13380
 #, c-format
 msgid "  -mshared                disable branch optimization for shared code\n"
 msgstr ""
 
 #, c-format
 msgid "  -mshared                disable branch optimization for shared code\n"
 msgstr ""
 
-#: config/tc-i386.c:12766
+#: config/tc-i386.c:13382
 #, c-format
 msgid "  -mx86-used-note=[no|yes] "
 msgstr ""
 
 #, c-format
 msgid "  -mx86-used-note=[no|yes] "
 msgstr ""
 
-#: config/tc-i386.c:12772
+#: config/tc-i386.c:13388
 #, c-format
 msgid ""
 "                          generate x86 used ISA and feature properties\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "                          generate x86 used ISA and feature properties\n"
 msgstr ""
 
-#: config/tc-i386.c:12776
+#: config/tc-i386.c:13392
 #, c-format
 msgid "  -mbig-obj               generate big object files\n"
 msgstr ""
 
 #, c-format
 msgid "  -mbig-obj               generate big object files\n"
 msgstr ""
 
-#: config/tc-i386.c:12779
+#: config/tc-i386.c:13395
 #, c-format
 msgid ""
 "  -momit-lock-prefix=[no|yes] (default: no)\n"
 "                          strip all lock prefixes\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -momit-lock-prefix=[no|yes] (default: no)\n"
 "                          strip all lock prefixes\n"
 msgstr ""
 
-#: config/tc-i386.c:12782
+#: config/tc-i386.c:13398
 #, c-format
 msgid ""
 "  -mfence-as-lock-add=[no|yes] (default: no)\n"
 #, c-format
 msgid ""
 "  -mfence-as-lock-add=[no|yes] (default: no)\n"
@@ -8803,24 +8963,24 @@ msgid ""
 "                           lock addl $0x0, (%%{re}sp)\n"
 msgstr ""
 
 "                           lock addl $0x0, (%%{re}sp)\n"
 msgstr ""
 
-#: config/tc-i386.c:12786
+#: config/tc-i386.c:13402
 #, c-format
 msgid "  -mrelax-relocations=[no|yes] "
 msgstr ""
 
 #, c-format
 msgid "  -mrelax-relocations=[no|yes] "
 msgstr ""
 
-#: config/tc-i386.c:12792
+#: config/tc-i386.c:13408
 #, c-format
 msgid "                          generate relax relocations\n"
 msgstr ""
 
 #, c-format
 msgid "                          generate relax relocations\n"
 msgstr ""
 
-#: config/tc-i386.c:12794
+#: config/tc-i386.c:13410
 #, c-format
 msgid ""
 "  -malign-branch-boundary=NUM (default: 0)\n"
 "                          align branches within NUM byte boundary\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -malign-branch-boundary=NUM (default: 0)\n"
 "                          align branches within NUM byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:12797
+#: config/tc-i386.c:13413
 #, c-format
 msgid ""
 "  -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n"
 #, c-format
 msgid ""
 "  -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n"
@@ -8830,80 +8990,116 @@ msgid ""
 "                          specify types of branches to align\n"
 msgstr ""
 
 "                          specify types of branches to align\n"
 msgstr ""
 
-#: config/tc-i386.c:12802
+#: config/tc-i386.c:13418
 #, c-format
 msgid ""
 "  -malign-branch-prefix-size=NUM (default: 5)\n"
 "                          align branches with NUM prefixes per instruction\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -malign-branch-prefix-size=NUM (default: 5)\n"
 "                          align branches with NUM prefixes per instruction\n"
 msgstr ""
 
-#: config/tc-i386.c:12805
+#: config/tc-i386.c:13421
 #, c-format
 msgid ""
 "  -mbranches-within-32B-boundaries\n"
 "                          align branches within 32 byte boundary\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -mbranches-within-32B-boundaries\n"
 "                          align branches within 32 byte boundary\n"
 msgstr ""
 
-#: config/tc-i386.c:12808
+#: config/tc-i386.c:13424
+#, c-format
+msgid ""
+"  -mlfence-after-load=[no|yes] (default: no)\n"
+"                          generate lfence after load\n"
+msgstr ""
+
+#: config/tc-i386.c:13427
+#, c-format
+msgid ""
+"  -mlfence-before-indirect-branch=[none|all|register|memory] (default: "
+"none)\n"
+"                          generate lfence before indirect near branch\n"
+msgstr ""
+
+#: config/tc-i386.c:13430
+#, c-format
+msgid ""
+"  -mlfence-before-ret=[none|or|not|shl|yes] (default: none)\n"
+"                          generate lfence before ret\n"
+msgstr ""
+
+#: config/tc-i386.c:13433
 #, c-format
 msgid "  -mamd64                 accept only AMD64 ISA [default]\n"
 msgstr ""
 
 #, c-format
 msgid "  -mamd64                 accept only AMD64 ISA [default]\n"
 msgstr ""
 
-#: config/tc-i386.c:12810
+#: config/tc-i386.c:13435
 #, c-format
 msgid "  -mintel64               accept only Intel64 ISA\n"
 msgstr ""
 
 #, c-format
 msgid "  -mintel64               accept only Intel64 ISA\n"
 msgstr ""
 
-#: config/tc-i386.c:12851
+#: config/tc-i386.c:13476
 #, c-format
 msgid "Intel MCU doesn't support `%s' architecture"
 msgstr ""
 
 #, c-format
 msgid "Intel MCU doesn't support `%s' architecture"
 msgstr ""
 
-#: config/tc-i386.c:12917
+#: config/tc-i386.c:13542
 msgid "Intel L1OM is 64bit only"
 msgstr ""
 
 msgid "Intel L1OM is 64bit only"
 msgstr ""
 
-#: config/tc-i386.c:12923
+#: config/tc-i386.c:13548
 msgid "Intel K1OM is 64bit only"
 msgstr ""
 
 msgid "Intel K1OM is 64bit only"
 msgstr ""
 
-#: config/tc-i386.c:12929
+#: config/tc-i386.c:13554
 msgid "Intel MCU is 32bit only"
 msgstr ""
 
 msgid "Intel MCU is 32bit only"
 msgstr ""
 
-#: config/tc-i386.c:13101
+#: config/tc-i386.c:13666
+msgid ""
+"constant directive skips -mlfence-before-ret and -mlfence-before-indirect-"
+"branch"
+msgstr ""
+
+#: config/tc-i386.c:13669
+msgid "constant directive skips -mlfence-before-ret"
+msgstr ""
+
+#: config/tc-i386.c:13672
+msgid "constant directive skips -mlfence-before-indirect-branch"
+msgstr ""
+
+#: config/tc-i386.c:13736
 msgid "symbol size computation overflow"
 msgstr ""
 
 msgid "symbol size computation overflow"
 msgstr ""
 
-#: config/tc-i386.c:13169 config/tc-sparc.c:3861
+#: config/tc-i386.c:13804 config/tc-sparc.c:3861
 #, c-format
 msgid "can not do %d byte pc-relative relocation"
 msgstr ""
 
 #, c-format
 msgid "can not do %d byte pc-relative relocation"
 msgstr ""
 
-#: config/tc-i386.c:13187
+#: config/tc-i386.c:13822
 #, c-format
 msgid "can not do %d byte relocation"
 msgstr ""
 
 #, c-format
 msgid "can not do %d byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:13255
+#: config/tc-i386.c:13890
 #, c-format
 msgid "cannot represent relocation type %s in x32 mode"
 msgstr ""
 
 #, c-format
 msgid "cannot represent relocation type %s in x32 mode"
 msgstr ""
 
-#: config/tc-i386.c:13292 config/tc-s390.c:2613
+#: config/tc-i386.c:13927 config/tc-s390.c:2613
 #, c-format
 msgid "cannot represent relocation type %s"
 msgstr ""
 
 #, c-format
 msgid "cannot represent relocation type %s"
 msgstr ""
 
-#: config/tc-i386.c:13409
+#: config/tc-i386.c:14044
 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string"
 msgstr ""
 
 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-i386.c:13412
+#: config/tc-i386.c:14047
 msgid "bad .section directive: want a,w,x,M,S,G,T in string"
 msgstr ""
 
 msgid "bad .section directive: want a,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-i386.c:13431
+#: config/tc-i386.c:14066
 msgid ".largecomm supported only in 64bit mode, producing .comm"
 msgstr ""
 
 msgid ".largecomm supported only in 64bit mode, producing .comm"
 msgstr ""
 
@@ -9610,8 +9806,8 @@ msgstr ""
 msgid "Expected '('"
 msgstr ""
 
 msgid "Expected '('"
 msgstr ""
 
-#: config/tc-ia64.c:7917 config/tc-pdp11.c:446 config/tc-pdp11.c:510
-#: config/tc-pdp11.c:544 config/tc-tilegx.c:1048 config/tc-tilepro.c:939
+#: config/tc-ia64.c:7917 config/tc-pdp11.c:450 config/tc-pdp11.c:514
+#: config/tc-pdp11.c:548 config/tc-tilegx.c:1048 config/tc-tilepro.c:939
 #: config/tc-xstormy16.c:154
 msgid "Missing ')'"
 msgstr ""
 #: config/tc-xstormy16.c:154
 msgid "Missing ')'"
 msgstr ""
@@ -9732,7 +9928,7 @@ msgstr ""
 msgid "Can't add stop bit to mark end of instruction group"
 msgstr ""
 
 msgid "Can't add stop bit to mark end of instruction group"
 msgstr ""
 
-#: config/tc-ia64.c:11775 read.c:2600 read.c:3239 read.c:3643 stabs.c:469
+#: config/tc-ia64.c:11775 read.c:2601 read.c:3240 read.c:3644 stabs.c:469
 #, c-format
 msgid "expected comma after \"%s\""
 msgstr ""
 #, c-format
 msgid "expected comma after \"%s\""
 msgstr ""
@@ -9810,19 +10006,19 @@ msgstr ""
 msgid "Unmatched high relocation"
 msgstr ""
 
 msgid "Unmatched high relocation"
 msgstr ""
 
-#: config/tc-iq2000.c:826 config/tc-mips.c:19761 config/tc-score.c:5810
+#: config/tc-iq2000.c:826 config/tc-mips.c:19800 config/tc-score.c:5798
 msgid ".end not in text section"
 msgstr ""
 
 msgid ".end not in text section"
 msgstr ""
 
-#: config/tc-iq2000.c:830 config/tc-score.c:5813
+#: config/tc-iq2000.c:830 config/tc-score.c:5801
 msgid ".end directive without a preceding .ent directive."
 msgstr ""
 
 msgid ".end directive without a preceding .ent directive."
 msgstr ""
 
-#: config/tc-iq2000.c:839 config/tc-score.c:5821
+#: config/tc-iq2000.c:839 config/tc-score.c:5809
 msgid ".end symbol does not match .ent symbol."
 msgstr ""
 
 msgid ".end symbol does not match .ent symbol."
 msgstr ""
 
-#: config/tc-iq2000.c:842 config/tc-mips.c:19781 config/tc-score.c:5826
+#: config/tc-iq2000.c:842 config/tc-mips.c:19820 config/tc-score.c:5814
 msgid ".end directive missing or unknown symbol"
 msgstr ""
 
 msgid ".end directive missing or unknown symbol"
 msgstr ""
 
@@ -9830,7 +10026,7 @@ msgstr ""
 msgid "Expected simple number."
 msgstr ""
 
 msgid "Expected simple number."
 msgstr ""
 
-#: config/tc-iq2000.c:889 config/tc-mips.c:19686 config/tc-score.c:5662
+#: config/tc-iq2000.c:889 config/tc-mips.c:19725 config/tc-score.c:5664
 #, c-format
 msgid " *input_line_pointer == '%c' 0x%02x\n"
 msgstr ""
 #, c-format
 msgid " *input_line_pointer == '%c' 0x%02x\n"
 msgstr ""
@@ -9839,7 +10035,7 @@ msgstr ""
 msgid "Invalid number"
 msgstr ""
 
 msgid "Invalid number"
 msgstr ""
 
-#: config/tc-iq2000.c:925 config/tc-score.c:5700
+#: config/tc-iq2000.c:925 config/tc-score.c:5695
 msgid ".ent or .aent not in text section."
 msgstr ""
 
 msgid ".ent or .aent not in text section."
 msgstr ""
 
@@ -10008,100 +10204,100 @@ msgstr ""
 msgid "  -KPIC                   generate PIC\n"
 msgstr ""
 
 msgid "  -KPIC                   generate PIC\n"
 msgstr ""
 
-#: config/tc-m32r.c:846
+#: config/tc-m32r.c:848
 msgid "instructions write to the same destination register."
 msgstr ""
 
 msgid "instructions write to the same destination register."
 msgstr ""
 
-#: config/tc-m32r.c:854
+#: config/tc-m32r.c:856
 msgid "Instructions do not use parallel execution pipelines."
 msgstr ""
 
 msgid "Instructions do not use parallel execution pipelines."
 msgstr ""
 
-#: config/tc-m32r.c:862
+#: config/tc-m32r.c:864
 msgid "Instructions share the same execution pipeline"
 msgstr ""
 
 msgid "Instructions share the same execution pipeline"
 msgstr ""
 
-#: config/tc-m32r.c:927 config/tc-m32r.c:1041
+#: config/tc-m32r.c:929 config/tc-m32r.c:1043
 #, c-format
 msgid "not a 16 bit instruction '%s'"
 msgstr ""
 
 #, c-format
 msgid "not a 16 bit instruction '%s'"
 msgstr ""
 
-#: config/tc-m32r.c:939 config/tc-m32r.c:1053 config/tc-m32r.c:1237
+#: config/tc-m32r.c:941 config/tc-m32r.c:1055 config/tc-m32r.c:1239
 #, c-format
 msgid "instruction '%s' is for the M32R2 only"
 msgstr ""
 
 #, c-format
 msgid "instruction '%s' is for the M32R2 only"
 msgstr ""
 
-#: config/tc-m32r.c:952 config/tc-m32r.c:1066 config/tc-m32r.c:1250
+#: config/tc-m32r.c:954 config/tc-m32r.c:1068 config/tc-m32r.c:1252
 #, c-format
 msgid "unknown instruction '%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown instruction '%s'"
 msgstr ""
 
-#: config/tc-m32r.c:961 config/tc-m32r.c:1073 config/tc-m32r.c:1257
+#: config/tc-m32r.c:963 config/tc-m32r.c:1075 config/tc-m32r.c:1259
 #, c-format
 msgid "instruction '%s' is for the M32RX only"
 msgstr ""
 
 #, c-format
 msgid "instruction '%s' is for the M32RX only"
 msgstr ""
 
-#: config/tc-m32r.c:970 config/tc-m32r.c:1082
+#: config/tc-m32r.c:972 config/tc-m32r.c:1084
 #, c-format
 msgid "instruction '%s' cannot be executed in parallel."
 msgstr ""
 
 #, c-format
 msgid "instruction '%s' cannot be executed in parallel."
 msgstr ""
 
-#: config/tc-m32r.c:1025 config/tc-m32r.c:1107 config/tc-m32r.c:1314
+#: config/tc-m32r.c:1027 config/tc-m32r.c:1109 config/tc-m32r.c:1316
 msgid "internal error: lookup/get operands failed"
 msgstr ""
 
 msgid "internal error: lookup/get operands failed"
 msgstr ""
 
-#: config/tc-m32r.c:1092
+#: config/tc-m32r.c:1094
 #, c-format
 msgid "'%s': only the NOP instruction can be issued in parallel on the m32r"
 msgstr ""
 
 #, c-format
 msgid "'%s': only the NOP instruction can be issued in parallel on the m32r"
 msgstr ""
 
-#: config/tc-m32r.c:1121
+#: config/tc-m32r.c:1123
 #, c-format
 msgid ""
 "%s: output of 1st instruction is the same as an input to 2nd instruction - "
 "is this intentional ?"
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: output of 1st instruction is the same as an input to 2nd instruction - "
 "is this intentional ?"
 msgstr ""
 
-#: config/tc-m32r.c:1125
+#: config/tc-m32r.c:1127
 #, c-format
 msgid ""
 "%s: output of 2nd instruction is the same as an input to 1st instruction - "
 "is this intentional ?"
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: output of 2nd instruction is the same as an input to 1st instruction - "
 "is this intentional ?"
 msgstr ""
 
-#: config/tc-m32r.c:1488 config/tc-microblaze.c:196
+#: config/tc-m32r.c:1490 config/tc-microblaze.c:196
 msgid "Expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
 msgid "Expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
-#: config/tc-m32r.c:1498
+#: config/tc-m32r.c:1500
 #, c-format
 msgid ".SCOMMon length (%ld.) <0! Ignored."
 msgstr ""
 
 #, c-format
 msgid ".SCOMMon length (%ld.) <0! Ignored."
 msgstr ""
 
-#: config/tc-m32r.c:1512 config/tc-microblaze.c:218 config/tc-ppc.c:2428
-#: config/tc-ppc.c:4423 config/tc-ppc.c:4465 config/tc-ppc.c:6022
+#: config/tc-m32r.c:1514 config/tc-microblaze.c:218 config/tc-ppc.c:2438
+#: config/tc-ppc.c:4436 config/tc-ppc.c:4478 config/tc-ppc.c:6035
 msgid "ignoring bad alignment"
 msgstr ""
 
 msgid "ignoring bad alignment"
 msgstr ""
 
-#: config/tc-m32r.c:1524 config/tc-microblaze.c:253 config/tc-v850.c:383
+#: config/tc-m32r.c:1526 config/tc-microblaze.c:253 config/tc-v850.c:383
 msgid "Common alignment not a power of 2"
 msgstr ""
 
 msgid "Common alignment not a power of 2"
 msgstr ""
 
-#: config/tc-m32r.c:1539 config/tc-microblaze.c:229
+#: config/tc-m32r.c:1541 config/tc-microblaze.c:229
 #, c-format
 msgid "Ignoring attempt to re-define symbol `%s'."
 msgstr ""
 
 #, c-format
 msgid "Ignoring attempt to re-define symbol `%s'."
 msgstr ""
 
-#: config/tc-m32r.c:1548
+#: config/tc-m32r.c:1550
 #, c-format
 msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
 #, c-format
 msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
-#: config/tc-m32r.c:1925 config/tc-m32r.c:1978 config/tc-nds32.c:4797
+#: config/tc-m32r.c:1927 config/tc-m32r.c:1980 config/tc-nds32.c:4797
 #: config/tc-nds32.c:4841 config/tc-sh.c:391 config/tc-sh.c:2062
 msgid "Invalid PIC expression."
 msgstr ""
 
 #: config/tc-nds32.c:4841 config/tc-sh.c:391 config/tc-sh.c:2062
 msgid "Invalid PIC expression."
 msgstr ""
 
-#: config/tc-m32r.c:2069
+#: config/tc-m32r.c:2071
 msgid "Unmatched high/shigh reloc"
 msgstr ""
 
 msgid "Unmatched high/shigh reloc"
 msgstr ""
 
@@ -10490,7 +10686,7 @@ msgstr ""
 msgid "Line %d: unknown relocation type: 0x%x."
 msgstr ""
 
 msgid "Line %d: unknown relocation type: 0x%x."
 msgstr ""
 
-#: config/tc-m68hc11.c:4494 config/tc-z80.c:3086 config/tc-z80.c:3106
+#: config/tc-m68hc11.c:4494 config/tc-z80.c:3402 config/tc-z80.c:3422
 msgid "Invalid directive"
 msgstr ""
 
 msgid "Invalid directive"
 msgstr ""
 
@@ -10907,7 +11103,7 @@ msgstr ""
 msgid "Processor variants are: "
 msgstr ""
 
 msgid "Processor variants are: "
 msgstr ""
 
-#: config/tc-m68k.c:7638 config/tc-xtensa.c:6380
+#: config/tc-m68k.c:7638 config/tc-xtensa.c:6406
 #, c-format
 msgid "\n"
 msgstr ""
 #, c-format
 msgid "\n"
 msgstr ""
@@ -10926,7 +11122,7 @@ msgstr ""
 msgid "Not a defined coldfire architecture"
 msgstr ""
 
 msgid "Not a defined coldfire architecture"
 msgstr ""
 
-#: config/tc-m68k.c:7927 read.c:4549
+#: config/tc-m68k.c:7927 read.c:4550
 #, c-format
 msgid "%s relocations do not fit in %u byte"
 msgid_plural "%s relocations do not fit in %u bytes"
 #, c-format
 msgid "%s relocations do not fit in %u byte"
 msgid_plural "%s relocations do not fit in %u bytes"
@@ -11757,724 +11953,724 @@ msgstr ""
 msgid "Absolute value in relaxation code.  Assembler error....."
 msgstr ""
 
 msgid "Absolute value in relaxation code.  Assembler error....."
 msgstr ""
 
-#: config/tc-mips.c:2175
+#: config/tc-mips.c:2178
 #, c-format
 msgid "the %d-bit %s architecture does not support the `%s' extension"
 msgstr ""
 
 #, c-format
 msgid "the %d-bit %s architecture does not support the `%s' extension"
 msgstr ""
 
-#: config/tc-mips.c:2178
+#: config/tc-mips.c:2181
 #, c-format
 msgid "the `%s' extension requires %s%d revision %d or greater"
 msgstr ""
 
 #, c-format
 msgid "the `%s' extension requires %s%d revision %d or greater"
 msgstr ""
 
-#: config/tc-mips.c:2187
+#: config/tc-mips.c:2190
 #, c-format
 msgid "the `%s' extension was removed in %s%d revision %d"
 msgstr ""
 
 #, c-format
 msgid "the `%s' extension was removed in %s%d revision %d"
 msgstr ""
 
-#: config/tc-mips.c:2196
+#: config/tc-mips.c:2199
 #, c-format
 msgid "the `%s' extension requires 64-bit FPRs"
 msgstr ""
 
 #, c-format
 msgid "the `%s' extension requires 64-bit FPRs"
 msgstr ""
 
-#: config/tc-mips.c:3048 config/tc-mips.c:16618
+#: config/tc-mips.c:3051 config/tc-mips.c:16657
 #, c-format
 msgid "unrecognized register name `%s'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized register name `%s'"
 msgstr ""
 
-#: config/tc-mips.c:3275
+#: config/tc-mips.c:3278
 msgid "invalid register range"
 msgstr ""
 
 msgid "invalid register range"
 msgstr ""
 
-#: config/tc-mips.c:3303
+#: config/tc-mips.c:3306
 msgid "vector element must be constant"
 msgstr ""
 
 msgid "vector element must be constant"
 msgstr ""
 
-#: config/tc-mips.c:3313
+#: config/tc-mips.c:3316
 msgid "missing `]'"
 msgstr ""
 
 msgid "missing `]'"
 msgstr ""
 
-#: config/tc-mips.c:3536
+#: config/tc-mips.c:3539
 #, c-format
 msgid "internal: bad mips opcode (mask error): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (mask error): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3563
+#: config/tc-mips.c:3566
 #, c-format
 msgid "internal: unknown operand type: %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: unknown operand type: %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3596
+#: config/tc-mips.c:3599
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3604
+#: config/tc-mips.c:3607
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3611
+#: config/tc-mips.c:3614
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3646
+#: config/tc-mips.c:3649
 #, c-format
 msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3654
+#: config/tc-mips.c:3657
 #, c-format
 msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:3680
+#: config/tc-mips.c:3683
 msgid "-G may not be used in position-independent code"
 msgstr ""
 
 msgid "-G may not be used in position-independent code"
 msgstr ""
 
-#: config/tc-mips.c:3686
+#: config/tc-mips.c:3689
 msgid "-G may not be used with abicalls"
 msgstr ""
 
 #. Probably a memory allocation problem?  Give up now.
 msgid "-G may not be used with abicalls"
 msgstr ""
 
 #. Probably a memory allocation problem?  Give up now.
-#: config/tc-mips.c:3706 config/tc-mips.c:3802
+#: config/tc-mips.c:3709 config/tc-mips.c:3805
 msgid "broken assembler, no assembly attempted"
 msgstr ""
 
 msgid "broken assembler, no assembly attempted"
 msgstr ""
 
-#: config/tc-mips.c:3741 config/tc-mips.c:3770
+#: config/tc-mips.c:3744 config/tc-mips.c:3773
 #, c-format
 msgid "internal: can't hash `%s': %s"
 msgstr ""
 
 #, c-format
 msgid "internal: can't hash `%s': %s"
 msgstr ""
 
-#: config/tc-mips.c:3950
+#: config/tc-mips.c:3953
 #, c-format
 msgid ".gnu_attribute %d,%d is incompatible with `%s'"
 msgstr ""
 
 #, c-format
 msgid ".gnu_attribute %d,%d is incompatible with `%s'"
 msgstr ""
 
-#: config/tc-mips.c:3957
+#: config/tc-mips.c:3960
 #, c-format
 msgid ".gnu_attribute %d,%d requires `%s'"
 msgstr ""
 
 #, c-format
 msgid ".gnu_attribute %d,%d requires `%s'"
 msgstr ""
 
-#: config/tc-mips.c:4018
+#: config/tc-mips.c:4021
 #, c-format
 msgid ".gnu_attribute %d,%d is no longer supported"
 msgstr ""
 
 #, c-format
 msgid ".gnu_attribute %d,%d is no longer supported"
 msgstr ""
 
-#: config/tc-mips.c:4027
+#: config/tc-mips.c:4030
 #, c-format
 msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI"
 msgstr ""
 
 #, c-format
 msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI"
 msgstr ""
 
-#: config/tc-mips.c:4040
+#: config/tc-mips.c:4043
 msgid "`gp=64' used with a 32-bit processor"
 msgstr ""
 
 msgid "`gp=64' used with a 32-bit processor"
 msgstr ""
 
-#: config/tc-mips.c:4043
+#: config/tc-mips.c:4046
 msgid "`gp=32' used with a 64-bit ABI"
 msgstr ""
 
 msgid "`gp=32' used with a 64-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:4046
+#: config/tc-mips.c:4049
 msgid "`gp=64' used with a 32-bit ABI"
 msgstr ""
 
 msgid "`gp=64' used with a 32-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:4053
+#: config/tc-mips.c:4056
 msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions"
 msgstr ""
 
 msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions"
 msgstr ""
 
-#: config/tc-mips.c:4055
+#: config/tc-mips.c:4058
 msgid "`fp=xx' cannot be used with `singlefloat'"
 msgstr ""
 
 msgid "`fp=xx' cannot be used with `singlefloat'"
 msgstr ""
 
-#: config/tc-mips.c:4059
+#: config/tc-mips.c:4062
 msgid "`fp=64' used with a 32-bit fpu"
 msgstr ""
 
 msgid "`fp=64' used with a 32-bit fpu"
 msgstr ""
 
-#: config/tc-mips.c:4063
+#: config/tc-mips.c:4066
 msgid "`fp=64' used with a 32-bit ABI"
 msgstr ""
 
 msgid "`fp=64' used with a 32-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:4068
+#: config/tc-mips.c:4071
 msgid "`fp=32' used with a 64-bit ABI"
 msgstr ""
 
 msgid "`fp=32' used with a 64-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:4070
+#: config/tc-mips.c:4073
 msgid "`fp=32' used with a MIPS R6 cpu"
 msgstr ""
 
 msgid "`fp=32' used with a MIPS R6 cpu"
 msgstr ""
 
-#: config/tc-mips.c:4073
+#: config/tc-mips.c:4076
 msgid "Unknown size of floating point registers"
 msgstr ""
 
 msgid "Unknown size of floating point registers"
 msgstr ""
 
-#: config/tc-mips.c:4078
+#: config/tc-mips.c:4081
 msgid "`nooddspreg` cannot be used with a 64-bit ABI"
 msgstr ""
 
 msgid "`nooddspreg` cannot be used with a 64-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:4081 config/tc-mips.c:4085
+#: config/tc-mips.c:4084 config/tc-mips.c:4088
 #, c-format
 msgid "`%s' cannot be used with `%s'"
 msgstr ""
 
 #, c-format
 msgid "`%s' cannot be used with `%s'"
 msgstr ""
 
-#: config/tc-mips.c:4090
+#: config/tc-mips.c:4093
 #, c-format
 msgid "branch relaxation is not supported in `%s'"
 msgstr ""
 
 #, c-format
 msgid "branch relaxation is not supported in `%s'"
 msgstr ""
 
-#: config/tc-mips.c:4166
+#: config/tc-mips.c:4169
 msgid "trap exception not supported at ISA 1"
 msgstr ""
 
 msgid "trap exception not supported at ISA 1"
 msgstr ""
 
-#: config/tc-mips.c:4179 config/tc-mips.c:17501
+#: config/tc-mips.c:4182 config/tc-mips.c:17540
 #, c-format
 msgid "`%s' does not support legacy NaN"
 msgstr ""
 
 #, c-format
 msgid "`%s' does not support legacy NaN"
 msgstr ""
 
-#: config/tc-mips.c:4226
+#: config/tc-mips.c:4229
 #, c-format
 msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
 msgstr ""
 
 #, c-format
 msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
 msgstr ""
 
-#: config/tc-mips.c:4932
+#: config/tc-mips.c:4935
 #, c-format
 msgid "operand %d out of range"
 msgstr ""
 
 #, c-format
 msgid "operand %d out of range"
 msgstr ""
 
-#: config/tc-mips.c:4940
+#: config/tc-mips.c:4943
 #, c-format
 msgid "operand %d must be constant"
 msgstr ""
 
 #, c-format
 msgid "operand %d must be constant"
 msgstr ""
 
-#: config/tc-mips.c:4984 read.c:4317 read.c:5163 write.c:263 write.c:1024
+#: config/tc-mips.c:4987 read.c:4318 read.c:5164 write.c:263 write.c:1024
 msgid "register value used as expression"
 msgstr ""
 
 msgid "register value used as expression"
 msgstr ""
 
-#: config/tc-mips.c:4997
+#: config/tc-mips.c:5000
 #, c-format
 msgid "operand %d must be an immediate expression"
 msgstr ""
 
 #, c-format
 msgid "operand %d must be an immediate expression"
 msgstr ""
 
-#: config/tc-mips.c:5118 config/tc-mips.c:5120
+#: config/tc-mips.c:5121 config/tc-mips.c:5123
 #, c-format
 msgid "float register should be even, was %d"
 msgstr ""
 
 #, c-format
 msgid "float register should be even, was %d"
 msgstr ""
 
-#: config/tc-mips.c:5133
+#: config/tc-mips.c:5136
 #, c-format
 msgid "condition code register should be even for %s, was %d"
 msgstr ""
 
 #, c-format
 msgid "condition code register should be even for %s, was %d"
 msgstr ""
 
-#: config/tc-mips.c:5138
+#: config/tc-mips.c:5141
 #, c-format
 msgid "condition code register should be 0 or 4 for %s, was %d"
 msgstr ""
 
 #, c-format
 msgid "condition code register should be 0 or 4 for %s, was %d"
 msgstr ""
 
-#: config/tc-mips.c:5459
+#: config/tc-mips.c:5462
 msgid "invalid performance register"
 msgstr ""
 
 msgid "invalid performance register"
 msgstr ""
 
-#: config/tc-mips.c:5555 config/tc-mips.c:6026
+#: config/tc-mips.c:5558 config/tc-mips.c:6029
 msgid "the source register must not be $0"
 msgstr ""
 
 msgid "the source register must not be $0"
 msgstr ""
 
-#: config/tc-mips.c:5831
+#: config/tc-mips.c:5834
 msgid "missing frame size"
 msgstr ""
 
 msgid "missing frame size"
 msgstr ""
 
-#: config/tc-mips.c:5836
+#: config/tc-mips.c:5839
 msgid "frame size specified twice"
 msgstr ""
 
 msgid "frame size specified twice"
 msgstr ""
 
-#: config/tc-mips.c:5841
+#: config/tc-mips.c:5844
 msgid "invalid frame size"
 msgstr ""
 
 msgid "invalid frame size"
 msgstr ""
 
-#: config/tc-mips.c:5881
+#: config/tc-mips.c:5884
 #, c-format
 msgid "operand %d must be an immediate"
 msgstr ""
 
 #, c-format
 msgid "operand %d must be an immediate"
 msgstr ""
 
-#: config/tc-mips.c:5896
+#: config/tc-mips.c:5899
 msgid "invalid element selector"
 msgstr ""
 
 msgid "invalid element selector"
 msgstr ""
 
-#: config/tc-mips.c:5909
+#: config/tc-mips.c:5912
 #, c-format
 msgid "operand %d must be scalar"
 msgstr ""
 
 #, c-format
 msgid "operand %d must be scalar"
 msgstr ""
 
-#: config/tc-mips.c:6089
+#: config/tc-mips.c:6092
 msgid "floating-point expression required"
 msgstr ""
 
 msgid "floating-point expression required"
 msgstr ""
 
-#: config/tc-mips.c:6189
+#: config/tc-mips.c:6192
 #, c-format
 msgid "cannot use `%s' in this section"
 msgstr ""
 
 #, c-format
 msgid "cannot use `%s' in this section"
 msgstr ""
 
-#: config/tc-mips.c:6336
+#: config/tc-mips.c:6339
 msgid "used $at without \".set noat\""
 msgstr ""
 
 msgid "used $at without \".set noat\""
 msgstr ""
 
-#: config/tc-mips.c:6338
+#: config/tc-mips.c:6341
 #, c-format
 msgid "used $%u with \".set at=$%u\""
 msgstr ""
 
 #, c-format
 msgid "used $%u with \".set at=$%u\""
 msgstr ""
 
-#: config/tc-mips.c:7485
+#: config/tc-mips.c:7524
 #, c-format
 msgid "wrong size instruction in a %u-bit branch delay slot"
 msgstr ""
 
 #, c-format
 msgid "wrong size instruction in a %u-bit branch delay slot"
 msgstr ""
 
-#: config/tc-mips.c:7505 config/tc-mips.c:7515 config/tc-mips.c:15916
+#: config/tc-mips.c:7544 config/tc-mips.c:7554 config/tc-mips.c:15955
 #, c-format
 msgid "jump to misaligned address (0x%lx)"
 msgstr ""
 
 #, c-format
 msgid "jump to misaligned address (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:7530 config/tc-mips.c:7550 config/tc-mips.c:7567
-#: config/tc-mips.c:9117 config/tc-mips.c:15770 config/tc-mips.c:15777
-#: config/tc-mips.c:16170 config/tc-mips.c:19016
+#: config/tc-mips.c:7569 config/tc-mips.c:7589 config/tc-mips.c:7606
+#: config/tc-mips.c:9156 config/tc-mips.c:15809 config/tc-mips.c:15816
+#: config/tc-mips.c:16209 config/tc-mips.c:19055
 #, c-format
 msgid "branch to misaligned address (0x%lx)"
 msgstr ""
 
 #, c-format
 msgid "branch to misaligned address (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:7536 config/tc-mips.c:7554 config/tc-mips.c:7571
-#: config/tc-mips.c:9120
+#: config/tc-mips.c:7575 config/tc-mips.c:7593 config/tc-mips.c:7610
+#: config/tc-mips.c:9159
 #, c-format
 msgid "branch address range overflow (0x%lx)"
 msgstr ""
 
 #, c-format
 msgid "branch address range overflow (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:7816
+#: config/tc-mips.c:7855
 msgid "extended instruction in delay slot"
 msgstr ""
 
 msgid "extended instruction in delay slot"
 msgstr ""
 
-#: config/tc-mips.c:8280
+#: config/tc-mips.c:8319
 msgid "source and destination must be different"
 msgstr ""
 
 msgid "source and destination must be different"
 msgstr ""
 
-#: config/tc-mips.c:8283
+#: config/tc-mips.c:8322
 msgid "a destination register must be supplied"
 msgstr ""
 
 msgid "a destination register must be supplied"
 msgstr ""
 
-#: config/tc-mips.c:8288
+#: config/tc-mips.c:8327
 msgid "the source register must not be $31"
 msgstr ""
 
 msgid "the source register must not be $31"
 msgstr ""
 
-#: config/tc-mips.c:8536 config/tc-mips.c:14506 config/tc-mips.c:19163
+#: config/tc-mips.c:8575 config/tc-mips.c:14545 config/tc-mips.c:19202
 msgid "invalid unextended operand value"
 msgstr ""
 
 msgid "invalid unextended operand value"
 msgstr ""
 
-#: config/tc-mips.c:8654
+#: config/tc-mips.c:8693
 #, c-format
 msgid "opcode not supported on this processor: %s (%s)"
 msgstr ""
 
 #, c-format
 msgid "opcode not supported on this processor: %s (%s)"
 msgstr ""
 
-#: config/tc-mips.c:8733
+#: config/tc-mips.c:8772
 msgid "opcode not supported in the `insn32' mode"
 msgstr ""
 
 msgid "opcode not supported in the `insn32' mode"
 msgstr ""
 
-#: config/tc-mips.c:8736
+#: config/tc-mips.c:8775
 #, c-format
 msgid "unrecognized %d-bit version of microMIPS opcode"
 msgstr ""
 
 #, c-format
 msgid "unrecognized %d-bit version of microMIPS opcode"
 msgstr ""
 
-#: config/tc-mips.c:8792
+#: config/tc-mips.c:8831
 msgid "unrecognized unextended version of MIPS16 opcode"
 msgstr ""
 
 msgid "unrecognized unextended version of MIPS16 opcode"
 msgstr ""
 
-#: config/tc-mips.c:8795
+#: config/tc-mips.c:8834
 msgid "unrecognized extended version of MIPS16 opcode"
 msgstr ""
 
 msgid "unrecognized extended version of MIPS16 opcode"
 msgstr ""
 
-#: config/tc-mips.c:8845 config/tc-mips.c:19034
+#: config/tc-mips.c:8884 config/tc-mips.c:19073
 msgid ""
 "macro instruction expanded into multiple instructions in a branch delay slot"
 msgstr ""
 
 msgid ""
 "macro instruction expanded into multiple instructions in a branch delay slot"
 msgstr ""
 
-#: config/tc-mips.c:8848 config/tc-mips.c:19042
+#: config/tc-mips.c:8887 config/tc-mips.c:19081
 msgid "macro instruction expanded into multiple instructions"
 msgstr ""
 
 msgid "macro instruction expanded into multiple instructions"
 msgstr ""
 
-#: config/tc-mips.c:8852
+#: config/tc-mips.c:8891
 msgid ""
 "macro instruction expanded into a wrong size instruction in a 16-bit branch "
 "delay slot"
 msgstr ""
 
 msgid ""
 "macro instruction expanded into a wrong size instruction in a 16-bit branch "
 "delay slot"
 msgstr ""
 
-#: config/tc-mips.c:8854
+#: config/tc-mips.c:8893
 msgid ""
 "macro instruction expanded into a wrong size instruction in a 32-bit branch "
 "delay slot"
 msgstr ""
 
 msgid ""
 "macro instruction expanded into a wrong size instruction in a 32-bit branch "
 "delay slot"
 msgstr ""
 
-#: config/tc-mips.c:9317
+#: config/tc-mips.c:9356
 msgid "operand overflow"
 msgstr ""
 
 msgid "operand overflow"
 msgstr ""
 
-#: config/tc-mips.c:9336 config/tc-mips.c:9920 config/tc-mips.c:13987
+#: config/tc-mips.c:9375 config/tc-mips.c:9959 config/tc-mips.c:14026
 msgid "macro used $at after \".set noat\""
 msgstr ""
 
 msgid "macro used $at after \".set noat\""
 msgstr ""
 
-#: config/tc-mips.c:9484 config/tc-mips.c:12298 config/tc-mips.c:12981
+#: config/tc-mips.c:9523 config/tc-mips.c:12337 config/tc-mips.c:13020
 #, c-format
 msgid "number (0x%s) larger than 32 bits"
 msgstr ""
 
 #, c-format
 msgid "number (0x%s) larger than 32 bits"
 msgstr ""
 
-#: config/tc-mips.c:9504
+#: config/tc-mips.c:9543
 msgid "number larger than 64 bits"
 msgstr ""
 
 msgid "number larger than 64 bits"
 msgstr ""
 
-#: config/tc-mips.c:9798 config/tc-mips.c:9826 config/tc-mips.c:9864
-#: config/tc-mips.c:9909 config/tc-mips.c:12541 config/tc-mips.c:12580
-#: config/tc-mips.c:12619 config/tc-mips.c:13077 config/tc-mips.c:13129
+#: config/tc-mips.c:9837 config/tc-mips.c:9865 config/tc-mips.c:9903
+#: config/tc-mips.c:9948 config/tc-mips.c:12580 config/tc-mips.c:12619
+#: config/tc-mips.c:12658 config/tc-mips.c:13116 config/tc-mips.c:13168
 msgid "PIC code offset overflow (max 16 signed bits)"
 msgstr ""
 
 msgid "PIC code offset overflow (max 16 signed bits)"
 msgstr ""
 
-#: config/tc-mips.c:10442
+#: config/tc-mips.c:10481
 #, c-format
 msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)"
 msgstr ""
 
 #. Result is always true.
 #, c-format
 msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)"
 msgstr ""
 
 #. Result is always true.
-#: config/tc-mips.c:10538
+#: config/tc-mips.c:10577
 #, c-format
 msgid "branch %s is always true"
 msgstr ""
 
 #, c-format
 msgid "branch %s is always true"
 msgstr ""
 
-#: config/tc-mips.c:10766 config/tc-mips.c:10876
+#: config/tc-mips.c:10805 config/tc-mips.c:10915
 msgid "divide by zero"
 msgstr ""
 
 msgid "divide by zero"
 msgstr ""
 
-#: config/tc-mips.c:10966
+#: config/tc-mips.c:11005
 msgid "dla used to load 32-bit register; recommend using la instead"
 msgstr ""
 
 msgid "dla used to load 32-bit register; recommend using la instead"
 msgstr ""
 
-#: config/tc-mips.c:10970
+#: config/tc-mips.c:11009
 msgid "la used to load 64-bit address; recommend using dla instead"
 msgstr ""
 
 msgid "la used to load 64-bit address; recommend using dla instead"
 msgstr ""
 
-#: config/tc-mips.c:11079 config/tc-riscv.c:1111 config/tc-z80.c:1150
+#: config/tc-mips.c:11118 config/tc-riscv.c:1443
 msgid "offset too large"
 msgstr ""
 
 msgid "offset too large"
 msgstr ""
 
-#: config/tc-mips.c:11253 config/tc-mips.c:11531
+#: config/tc-mips.c:11292 config/tc-mips.c:11570
 msgid "PIC code offset overflow (max 32 signed bits)"
 msgstr ""
 
 msgid "PIC code offset overflow (max 32 signed bits)"
 msgstr ""
 
-#: config/tc-mips.c:11601 config/tc-mips.c:11677
+#: config/tc-mips.c:11640 config/tc-mips.c:11716
 #, c-format
 msgid "opcode not supported in the `insn32' mode `%s'"
 msgstr ""
 
 #, c-format
 msgid "opcode not supported in the `insn32' mode `%s'"
 msgstr ""
 
-#: config/tc-mips.c:11629
+#: config/tc-mips.c:11668
 msgid "MIPS PIC call to register other than $25"
 msgstr ""
 
 msgid "MIPS PIC call to register other than $25"
 msgstr ""
 
-#: config/tc-mips.c:11645 config/tc-mips.c:11656 config/tc-mips.c:11789
-#: config/tc-mips.c:11800
+#: config/tc-mips.c:11684 config/tc-mips.c:11695 config/tc-mips.c:11828
+#: config/tc-mips.c:11839
 msgid "no .cprestore pseudo-op used in PIC code"
 msgstr ""
 
 msgid "no .cprestore pseudo-op used in PIC code"
 msgstr ""
 
-#: config/tc-mips.c:11650 config/tc-mips.c:11794
+#: config/tc-mips.c:11689 config/tc-mips.c:11833
 msgid "no .frame pseudo-op used in PIC code"
 msgstr ""
 
 msgid "no .frame pseudo-op used in PIC code"
 msgstr ""
 
-#: config/tc-mips.c:11815
+#: config/tc-mips.c:11854
 msgid "non-PIC jump used in PIC library"
 msgstr ""
 
 msgid "non-PIC jump used in PIC library"
 msgstr ""
 
-#: config/tc-mips.c:12798
+#: config/tc-mips.c:12837
 #, c-format
 msgid "Unable to generate `%s' compliant code without mthc1"
 msgstr ""
 
 #, c-format
 msgid "Unable to generate `%s' compliant code without mthc1"
 msgstr ""
 
-#: config/tc-mips.c:13541
+#: config/tc-mips.c:13580
 #, c-format
 msgid "instruction %s: result is always false"
 msgstr ""
 
 #, c-format
 msgid "instruction %s: result is always false"
 msgstr ""
 
-#: config/tc-mips.c:13694
+#: config/tc-mips.c:13733
 #, c-format
 msgid "instruction %s: result is always true"
 msgstr ""
 
 #. FIXME: Check if this is one of the itbl macros, since they
 #. are added dynamically.
 #, c-format
 msgid "instruction %s: result is always true"
 msgstr ""
 
 #. FIXME: Check if this is one of the itbl macros, since they
 #. are added dynamically.
-#: config/tc-mips.c:13983
+#: config/tc-mips.c:14022
 #, c-format
 msgid "macro %s not implemented yet"
 msgstr ""
 
 #, c-format
 msgid "macro %s not implemented yet"
 msgstr ""
 
-#: config/tc-mips.c:14516
+#: config/tc-mips.c:14555
 msgid "extended operand requested but not required"
 msgstr ""
 
 msgid "extended operand requested but not required"
 msgstr ""
 
-#: config/tc-mips.c:14525
+#: config/tc-mips.c:14564
 msgid "operand value out of range for instruction"
 msgstr ""
 
 msgid "operand value out of range for instruction"
 msgstr ""
 
-#: config/tc-mips.c:14624
+#: config/tc-mips.c:14663
 #, c-format
 msgid "relocation %s isn't supported by the current ABI"
 msgstr ""
 
 #, c-format
 msgid "relocation %s isn't supported by the current ABI"
 msgstr ""
 
-#: config/tc-mips.c:14680
+#: config/tc-mips.c:14719
 msgid "unclosed '('"
 msgstr ""
 
 msgid "unclosed '('"
 msgstr ""
 
-#: config/tc-mips.c:14746
+#: config/tc-mips.c:14785
 #, c-format
 msgid "a different %s was already specified, is now %s"
 msgstr ""
 
 #, c-format
 msgid "a different %s was already specified, is now %s"
 msgstr ""
 
-#: config/tc-mips.c:14913
+#: config/tc-mips.c:14952
 msgid "-mmicromips cannot be used with -mips16"
 msgstr ""
 
 msgid "-mmicromips cannot be used with -mips16"
 msgstr ""
 
-#: config/tc-mips.c:14928
+#: config/tc-mips.c:14967
 msgid "-mips16 cannot be used with -micromips"
 msgstr ""
 
 msgid "-mips16 cannot be used with -micromips"
 msgstr ""
 
-#: config/tc-mips.c:15097 config/tc-mips.c:15155
+#: config/tc-mips.c:15136 config/tc-mips.c:15194
 msgid "no compiled in support for 64 bit object file format"
 msgstr ""
 
 msgid "no compiled in support for 64 bit object file format"
 msgstr ""
 
-#: config/tc-mips.c:15162
+#: config/tc-mips.c:15201
 #, c-format
 msgid "invalid abi -mabi=%s"
 msgstr ""
 
 #, c-format
 msgid "invalid abi -mabi=%s"
 msgstr ""
 
-#: config/tc-mips.c:15202
+#: config/tc-mips.c:15241
 #, c-format
 msgid "invalid NaN setting -mnan=%s"
 msgstr ""
 
 #, c-format
 msgid "invalid NaN setting -mnan=%s"
 msgstr ""
 
-#: config/tc-mips.c:15236
+#: config/tc-mips.c:15275
 msgid "-G not supported in this configuration"
 msgstr ""
 
 msgid "-G not supported in this configuration"
 msgstr ""
 
-#: config/tc-mips.c:15262
+#: config/tc-mips.c:15301
 #, c-format
 msgid "-%s conflicts with the other architecture options, which imply -%s"
 msgstr ""
 
 #, c-format
 msgid "-%s conflicts with the other architecture options, which imply -%s"
 msgstr ""
 
-#: config/tc-mips.c:15278
+#: config/tc-mips.c:15317
 #, c-format
 msgid "-march=%s is not compatible with the selected ABI"
 msgstr ""
 
 #, c-format
 msgid "-march=%s is not compatible with the selected ABI"
 msgstr ""
 
-#: config/tc-mips.c:15774 config/tc-mips.c:16164 config/tc-mips.c:19013
+#: config/tc-mips.c:15813 config/tc-mips.c:16203 config/tc-mips.c:19052
 msgid "branch to a symbol in another ISA mode"
 msgstr ""
 
 msgid "branch to a symbol in another ISA mode"
 msgstr ""
 
-#: config/tc-mips.c:15781 config/tc-mips.c:15921 config/tc-mips.c:16174
+#: config/tc-mips.c:15820 config/tc-mips.c:15960 config/tc-mips.c:16213
 #, c-format
 msgid "cannot encode misaligned addend in the relocatable field (0x%lx)"
 msgstr ""
 
 #, c-format
 msgid "cannot encode misaligned addend in the relocatable field (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:15818
+#: config/tc-mips.c:15857
 msgid "PC-relative reference to a different section"
 msgstr ""
 
 msgid "PC-relative reference to a different section"
 msgstr ""
 
-#: config/tc-mips.c:15890 config/tc-riscv.c:2412
+#: config/tc-mips.c:15929 config/tc-riscv.c:2865
 msgid "TLS relocation against a constant"
 msgstr ""
 
 msgid "TLS relocation against a constant"
 msgstr ""
 
-#: config/tc-mips.c:15910
+#: config/tc-mips.c:15949
 msgid "jump to a symbol in another ISA mode"
 msgstr ""
 
 msgid "jump to a symbol in another ISA mode"
 msgstr ""
 
-#: config/tc-mips.c:15913
+#: config/tc-mips.c:15952
 msgid "JALX to a symbol in the same ISA mode"
 msgstr ""
 
 msgid "JALX to a symbol in the same ISA mode"
 msgstr ""
 
-#: config/tc-mips.c:15997
+#: config/tc-mips.c:16036
 msgid "unsupported constant in relocation"
 msgstr ""
 
 msgid "unsupported constant in relocation"
 msgstr ""
 
-#: config/tc-mips.c:16069
+#: config/tc-mips.c:16108
 #, c-format
 msgid "PC-relative access using misaligned symbol (%lx)"
 msgstr ""
 
 #, c-format
 msgid "PC-relative access using misaligned symbol (%lx)"
 msgstr ""
 
-#: config/tc-mips.c:16073
+#: config/tc-mips.c:16112
 #, c-format
 msgid "PC-relative access using misaligned offset (%lx)"
 msgstr ""
 
 #, c-format
 msgid "PC-relative access using misaligned offset (%lx)"
 msgstr ""
 
-#: config/tc-mips.c:16086 config/tc-mips.c:16105
+#: config/tc-mips.c:16125 config/tc-mips.c:16144
 msgid "PC-relative access out of range"
 msgstr ""
 
 msgid "PC-relative access out of range"
 msgstr ""
 
-#: config/tc-mips.c:16092
+#: config/tc-mips.c:16131
 #, c-format
 msgid "PC-relative access to misaligned address (%lx)"
 msgstr ""
 
 #, c-format
 msgid "PC-relative access to misaligned address (%lx)"
 msgstr ""
 
-#: config/tc-mips.c:16259
+#: config/tc-mips.c:16298
 #, c-format
 msgid "alignment too large, %d assumed"
 msgstr ""
 
 #, c-format
 msgid "alignment too large, %d assumed"
 msgstr ""
 
-#: config/tc-mips.c:16262
+#: config/tc-mips.c:16301
 msgid "alignment negative, 0 assumed"
 msgstr ""
 
 msgid "alignment negative, 0 assumed"
 msgstr ""
 
-#: config/tc-mips.c:16498
+#: config/tc-mips.c:16537
 #, c-format
 msgid "%s: no such section"
 msgstr ""
 
 #, c-format
 msgid "%s: no such section"
 msgstr ""
 
-#: config/tc-mips.c:16554
+#: config/tc-mips.c:16593
 #, c-format
 msgid ".option pic%d not supported"
 msgstr ""
 
 #, c-format
 msgid ".option pic%d not supported"
 msgstr ""
 
-#: config/tc-mips.c:16556
+#: config/tc-mips.c:16595
 #, c-format
 msgid ".option pic%d not supported in VxWorks PIC mode"
 msgstr ""
 
 #, c-format
 msgid ".option pic%d not supported in VxWorks PIC mode"
 msgstr ""
 
-#: config/tc-mips.c:16568 config/tc-mips.c:16908
+#: config/tc-mips.c:16607 config/tc-mips.c:16947
 msgid "-G may not be used with SVR4 PIC code"
 msgstr ""
 
 msgid "-G may not be used with SVR4 PIC code"
 msgstr ""
 
-#: config/tc-mips.c:16574
+#: config/tc-mips.c:16613
 #, c-format
 msgid "unrecognized option \"%s\""
 msgstr ""
 
 #, c-format
 msgid "unrecognized option \"%s\""
 msgstr ""
 
-#: config/tc-mips.c:16680
+#: config/tc-mips.c:16719
 #, c-format
 msgid "unknown architecture %s"
 msgstr ""
 
 #, c-format
 msgid "unknown architecture %s"
 msgstr ""
 
-#: config/tc-mips.c:16695 config/tc-mips.c:16859
+#: config/tc-mips.c:16734 config/tc-mips.c:16898
 #, c-format
 msgid "unknown ISA level %s"
 msgstr ""
 
 #, c-format
 msgid "unknown ISA level %s"
 msgstr ""
 
-#: config/tc-mips.c:16705
+#: config/tc-mips.c:16744
 #, c-format
 msgid "unknown ISA or architecture %s"
 msgstr ""
 
 #, c-format
 msgid "unknown ISA or architecture %s"
 msgstr ""
 
-#: config/tc-mips.c:16764
+#: config/tc-mips.c:16803
 msgid "`noreorder' must be set before `nomacro'"
 msgstr ""
 
 msgid "`noreorder' must be set before `nomacro'"
 msgstr ""
 
-#: config/tc-mips.c:16794
+#: config/tc-mips.c:16833
 msgid ".set pop with no .set push"
 msgstr ""
 
 msgid ".set pop with no .set push"
 msgstr ""
 
-#: config/tc-mips.c:16813
+#: config/tc-mips.c:16852
 #, c-format
 msgid "tried to set unrecognized symbol: %s\n"
 msgstr ""
 
 #, c-format
 msgid "tried to set unrecognized symbol: %s\n"
 msgstr ""
 
-#: config/tc-mips.c:16886
+#: config/tc-mips.c:16925
 #, c-format
 msgid ".module used with unrecognized symbol: %s\n"
 msgstr ""
 
 #, c-format
 msgid ".module used with unrecognized symbol: %s\n"
 msgstr ""
 
-#: config/tc-mips.c:16892
+#: config/tc-mips.c:16931
 msgid ".module is not permitted after generating code"
 msgstr ""
 
 msgid ".module is not permitted after generating code"
 msgstr ""
 
-#: config/tc-mips.c:16952 config/tc-mips.c:17031 config/tc-mips.c:17135
-#: config/tc-mips.c:17165 config/tc-mips.c:17214
+#: config/tc-mips.c:16991 config/tc-mips.c:17070 config/tc-mips.c:17174
+#: config/tc-mips.c:17204 config/tc-mips.c:17253
 #, c-format
 msgid "%s not supported in MIPS16 mode"
 msgstr ""
 
 #, c-format
 msgid "%s not supported in MIPS16 mode"
 msgstr ""
 
-#: config/tc-mips.c:16959
+#: config/tc-mips.c:16998
 msgid ".cpload not in noreorder section"
 msgstr ""
 
 msgid ".cpload not in noreorder section"
 msgstr ""
 
-#: config/tc-mips.c:17040 config/tc-mips.c:17059
+#: config/tc-mips.c:17079 config/tc-mips.c:17098
 msgid "missing argument separator ',' for .cpsetup"
 msgstr ""
 
 msgid "missing argument separator ',' for .cpsetup"
 msgstr ""
 
-#: config/tc-mips.c:17257
+#: config/tc-mips.c:17296
 #, c-format
 msgid "unsupported use of %s"
 msgstr ""
 
 #, c-format
 msgid "unsupported use of %s"
 msgstr ""
 
-#: config/tc-mips.c:17348
+#: config/tc-mips.c:17387
 msgid "unsupported use of .gpword"
 msgstr ""
 
 msgid "unsupported use of .gpword"
 msgstr ""
 
-#: config/tc-mips.c:17386
+#: config/tc-mips.c:17425
 msgid "unsupported use of .gpdword"
 msgstr ""
 
 msgid "unsupported use of .gpdword"
 msgstr ""
 
-#: config/tc-mips.c:17418
+#: config/tc-mips.c:17457
 msgid "unsupported use of .ehword"
 msgstr ""
 
 msgid "unsupported use of .ehword"
 msgstr ""
 
-#: config/tc-mips.c:17505
+#: config/tc-mips.c:17544
 msgid "bad .nan directive"
 msgstr ""
 
 msgid "bad .nan directive"
 msgstr ""
 
-#: config/tc-mips.c:17554
+#: config/tc-mips.c:17593
 #, c-format
 msgid "ignoring attempt to redefine symbol %s"
 msgstr ""
 
 #, c-format
 msgid "ignoring attempt to redefine symbol %s"
 msgstr ""
 
-#: config/tc-mips.c:17569 ecoff.c:3372
+#: config/tc-mips.c:17608 ecoff.c:3372
 msgid "bad .weakext directive"
 msgstr ""
 
 msgid "bad .weakext directive"
 msgstr ""
 
-#: config/tc-mips.c:18538 config/tc-mips.c:18815
+#: config/tc-mips.c:18577 config/tc-mips.c:18854
 msgid "relaxed out-of-range branch into a jump"
 msgstr ""
 
 msgid "relaxed out-of-range branch into a jump"
 msgstr ""
 
-#: config/tc-mips.c:19038
+#: config/tc-mips.c:19077
 msgid "extended instruction in a branch delay slot"
 msgstr ""
 
 msgid "extended instruction in a branch delay slot"
 msgstr ""
 
-#: config/tc-mips.c:19152 config/tc-xtensa.c:1676 config/tc-xtensa.c:1954
+#: config/tc-mips.c:19191 config/tc-xtensa.c:1682 config/tc-xtensa.c:1960
 msgid "unsupported relocation"
 msgstr ""
 
 msgid "unsupported relocation"
 msgstr ""
 
-#: config/tc-mips.c:19660 config/tc-score.c:5636
+#: config/tc-mips.c:19699 config/tc-score.c:5638
 msgid "expected simple number"
 msgstr ""
 
 msgid "expected simple number"
 msgstr ""
 
-#: config/tc-mips.c:19688 config/tc-score.c:5663
+#: config/tc-mips.c:19727 config/tc-score.c:5665
 msgid "invalid number"
 msgstr ""
 
 msgid "invalid number"
 msgstr ""
 
-#: config/tc-mips.c:19765 ecoff.c:2999
+#: config/tc-mips.c:19804 ecoff.c:2999
 msgid ".end directive without a preceding .ent directive"
 msgstr ""
 
 msgid ".end directive without a preceding .ent directive"
 msgstr ""
 
-#: config/tc-mips.c:19774
+#: config/tc-mips.c:19813
 msgid ".end symbol does not match .ent symbol"
 msgstr ""
 
 msgid ".end symbol does not match .ent symbol"
 msgstr ""
 
-#: config/tc-mips.c:19851
+#: config/tc-mips.c:19890
 msgid ".ent or .aent not in text section"
 msgstr ""
 
 msgid ".ent or .aent not in text section"
 msgstr ""
 
-#: config/tc-mips.c:19854 config/tc-score.c:5702
+#: config/tc-mips.c:19893 config/tc-score.c:5697
 msgid "missing .end"
 msgstr ""
 
 msgid "missing .end"
 msgstr ""
 
-#: config/tc-mips.c:19937
+#: config/tc-mips.c:19976
 msgid ".mask/.fmask outside of .ent"
 msgstr ""
 
 msgid ".mask/.fmask outside of .ent"
 msgstr ""
 
-#: config/tc-mips.c:19944
+#: config/tc-mips.c:19983
 msgid "bad .mask/.fmask directive"
 msgstr ""
 
 msgid "bad .mask/.fmask directive"
 msgstr ""
 
-#: config/tc-mips.c:20247
+#: config/tc-mips.c:20286
 #, c-format
 msgid "bad value (%s) for %s"
 msgstr ""
 
 #, c-format
 msgid "bad value (%s) for %s"
 msgstr ""
 
-#: config/tc-mips.c:20311
+#: config/tc-mips.c:20350
 #, c-format
 msgid ""
 "MIPS options:\n"
 #, c-format
 msgid ""
 "MIPS options:\n"
@@ -12485,7 +12681,7 @@ msgid ""
 "\t\t\timplicitly with the gp register [default 8]\n"
 msgstr ""
 
 "\t\t\timplicitly with the gp register [default 8]\n"
 msgstr ""
 
-#: config/tc-mips.c:20318
+#: config/tc-mips.c:20357
 #, c-format
 msgid ""
 "-mips1\t\t\tgenerate MIPS ISA I instructions\n"
 #, c-format
 msgid ""
 "-mips1\t\t\tgenerate MIPS ISA I instructions\n"
@@ -12506,7 +12702,7 @@ msgid ""
 "-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n"
 msgstr ""
 
 "-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n"
 msgstr ""
 
-#: config/tc-mips.c:20343
+#: config/tc-mips.c:20382
 #, c-format
 msgid ""
 "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n"
 #, c-format
 msgid ""
 "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n"
@@ -12514,105 +12710,105 @@ msgid ""
 "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
 msgstr ""
 
 "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
 msgstr ""
 
-#: config/tc-mips.c:20356
+#: config/tc-mips.c:20395
 #, c-format
 msgid ""
 "-mips16\t\t\tgenerate mips16 instructions\n"
 "-no-mips16\t\tdo not generate mips16 instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mips16\t\t\tgenerate mips16 instructions\n"
 "-no-mips16\t\tdo not generate mips16 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20359
+#: config/tc-mips.c:20398
 #, c-format
 msgid ""
 "-mmips16e2\t\tgenerate MIPS16e2 instructions\n"
 "-mno-mips16e2\t\tdo not generate MIPS16e2 instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mmips16e2\t\tgenerate MIPS16e2 instructions\n"
 "-mno-mips16e2\t\tdo not generate MIPS16e2 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20362
+#: config/tc-mips.c:20401
 #, c-format
 msgid ""
 "-mmicromips\t\tgenerate microMIPS instructions\n"
 "-mno-micromips\t\tdo not generate microMIPS instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mmicromips\t\tgenerate microMIPS instructions\n"
 "-mno-micromips\t\tdo not generate microMIPS instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20365
+#: config/tc-mips.c:20404
 #, c-format
 msgid ""
 "-msmartmips\t\tgenerate smartmips instructions\n"
 "-mno-smartmips\t\tdo not generate smartmips instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-msmartmips\t\tgenerate smartmips instructions\n"
 "-mno-smartmips\t\tdo not generate smartmips instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20368
+#: config/tc-mips.c:20407
 #, c-format
 msgid ""
 "-mdsp\t\t\tgenerate DSP instructions\n"
 "-mno-dsp\t\tdo not generate DSP instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mdsp\t\t\tgenerate DSP instructions\n"
 "-mno-dsp\t\tdo not generate DSP instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20371
+#: config/tc-mips.c:20410
 #, c-format
 msgid ""
 "-mdspr2\t\t\tgenerate DSP R2 instructions\n"
 "-mno-dspr2\t\tdo not generate DSP R2 instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mdspr2\t\t\tgenerate DSP R2 instructions\n"
 "-mno-dspr2\t\tdo not generate DSP R2 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20374
+#: config/tc-mips.c:20413
 #, c-format
 msgid ""
 "-mdspr3\t\t\tgenerate DSP R3 instructions\n"
 "-mno-dspr3\t\tdo not generate DSP R3 instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mdspr3\t\t\tgenerate DSP R3 instructions\n"
 "-mno-dspr3\t\tdo not generate DSP R3 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20377
+#: config/tc-mips.c:20416
 #, c-format
 msgid ""
 "-mmt\t\t\tgenerate MT instructions\n"
 "-mno-mt\t\t\tdo not generate MT instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mmt\t\t\tgenerate MT instructions\n"
 "-mno-mt\t\t\tdo not generate MT instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20380
+#: config/tc-mips.c:20419
 #, c-format
 msgid ""
 "-mmcu\t\t\tgenerate MCU instructions\n"
 "-mno-mcu\t\tdo not generate MCU instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mmcu\t\t\tgenerate MCU instructions\n"
 "-mno-mcu\t\tdo not generate MCU instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20383
+#: config/tc-mips.c:20422
 #, c-format
 msgid ""
 "-mmsa\t\t\tgenerate MSA instructions\n"
 "-mno-msa\t\tdo not generate MSA instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mmsa\t\t\tgenerate MSA instructions\n"
 "-mno-msa\t\tdo not generate MSA instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20386
+#: config/tc-mips.c:20425
 #, c-format
 msgid ""
 "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
 "-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
 "-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20389
+#: config/tc-mips.c:20428
 #, c-format
 msgid ""
 "-mvirt\t\t\tgenerate Virtualization instructions\n"
 "-mno-virt\t\tdo not generate Virtualization instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mvirt\t\t\tgenerate Virtualization instructions\n"
 "-mno-virt\t\tdo not generate Virtualization instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20392
+#: config/tc-mips.c:20431
 #, c-format
 msgid ""
 "-mcrc\t\t\tgenerate CRC instructions\n"
 "-mno-crc\t\tdo not generate CRC instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mcrc\t\t\tgenerate CRC instructions\n"
 "-mno-crc\t\tdo not generate CRC instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20395
+#: config/tc-mips.c:20434
 #, c-format
 msgid ""
 "-mginv\t\t\tgenerate Global INValidate (GINV) instructions\n"
 "-mno-ginv\t\tdo not generate Global INValidate instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mginv\t\t\tgenerate Global INValidate (GINV) instructions\n"
 "-mno-ginv\t\tdo not generate Global INValidate instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20398
+#: config/tc-mips.c:20437
 #, c-format
 msgid ""
 "-mloongson-mmi\t\tgenerate Loongson MultiMedia extensions Instructions (MMI) "
 #, c-format
 msgid ""
 "-mloongson-mmi\t\tgenerate Loongson MultiMedia extensions Instructions (MMI) "
@@ -12621,7 +12817,7 @@ msgid ""
 "Instructions\n"
 msgstr ""
 
 "Instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20401
+#: config/tc-mips.c:20440
 #, c-format
 msgid ""
 "-mloongson-cam\t\tgenerate Loongson Content Address Memory (CAM) "
 #, c-format
 msgid ""
 "-mloongson-cam\t\tgenerate Loongson Content Address Memory (CAM) "
@@ -12630,35 +12826,35 @@ msgid ""
 "Instructions\n"
 msgstr ""
 
 "Instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20404
+#: config/tc-mips.c:20443
 #, c-format
 msgid ""
 "-mloongson-ext\t\tgenerate Loongson EXTensions (EXT) instructions\n"
 "-mno-loongson-ext\tdo not generate Loongson EXTensions Instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mloongson-ext\t\tgenerate Loongson EXTensions (EXT) instructions\n"
 "-mno-loongson-ext\tdo not generate Loongson EXTensions Instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20407
+#: config/tc-mips.c:20446
 #, c-format
 msgid ""
 "-mloongson-ext2\t\tgenerate Loongson EXTensions R2 (EXT2) instructions\n"
 "-mno-loongson-ext2\tdo not generate Loongson EXTensions R2 Instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mloongson-ext2\t\tgenerate Loongson EXTensions R2 (EXT2) instructions\n"
 "-mno-loongson-ext2\tdo not generate Loongson EXTensions R2 Instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20410
+#: config/tc-mips.c:20449
 #, c-format
 msgid ""
 "-minsn32\t\tonly generate 32-bit microMIPS instructions\n"
 "-mno-insn32\t\tgenerate all microMIPS instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-minsn32\t\tonly generate 32-bit microMIPS instructions\n"
 "-mno-insn32\t\tgenerate all microMIPS instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:20414
+#: config/tc-mips.c:20453
 #, c-format
 msgid ""
 "-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata, default\n"
 "-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata, default\n"
 "-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n"
 msgstr ""
 
-#: config/tc-mips.c:20418
+#: config/tc-mips.c:20457
 #, c-format
 msgid ""
 "-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n"
 #, c-format
 msgid ""
 "-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n"
@@ -12666,7 +12862,7 @@ msgid ""
 "default\n"
 msgstr ""
 
 "default\n"
 msgstr ""
 
-#: config/tc-mips.c:20422
+#: config/tc-mips.c:20461
 #, c-format
 msgid ""
 "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n"
 #, c-format
 msgid ""
 "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n"
@@ -12688,7 +12884,7 @@ msgid ""
 "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
 msgstr ""
 
 "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
 msgstr ""
 
-#: config/tc-mips.c:20440
+#: config/tc-mips.c:20479
 #, c-format
 msgid ""
 "-mhard-float\t\tallow floating-point instructions\n"
 #, c-format
 msgid ""
 "-mhard-float\t\tallow floating-point instructions\n"
@@ -12703,7 +12899,7 @@ msgid ""
 "-mnan=ENCODING\t\tselect an IEEE 754 NaN encoding convention, either of:\n"
 msgstr ""
 
 "-mnan=ENCODING\t\tselect an IEEE 754 NaN encoding convention, either of:\n"
 msgstr ""
 
-#: config/tc-mips.c:20458
+#: config/tc-mips.c:20497
 #, c-format
 msgid ""
 "-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
 #, c-format
 msgid ""
 "-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
@@ -12717,26 +12913,26 @@ msgid ""
 "-mabi=ABI\t\tcreate ABI conformant object file for:\n"
 msgstr ""
 
 "-mabi=ABI\t\tcreate ABI conformant object file for:\n"
 msgstr ""
 
-#: config/tc-mips.c:20479
+#: config/tc-mips.c:20518
 #, c-format
 msgid "-32\t\t\tcreate o32 ABI object file%s\n"
 msgstr ""
 
 #, c-format
 msgid "-32\t\t\tcreate o32 ABI object file%s\n"
 msgstr ""
 
-#: config/tc-mips.c:20481 config/tc-mips.c:20484 config/tc-mips.c:20487
+#: config/tc-mips.c:20520 config/tc-mips.c:20523 config/tc-mips.c:20526
 msgid " (default)"
 msgstr ""
 
 msgid " (default)"
 msgstr ""
 
-#: config/tc-mips.c:20482
+#: config/tc-mips.c:20521
 #, c-format
 msgid "-n32\t\t\tcreate n32 ABI object file%s\n"
 msgstr ""
 
 #, c-format
 msgid "-n32\t\t\tcreate n32 ABI object file%s\n"
 msgstr ""
 
-#: config/tc-mips.c:20485
+#: config/tc-mips.c:20524
 #, c-format
 msgid "-64\t\t\tcreate 64 ABI object file%s\n"
 msgstr ""
 
 #, c-format
 msgid "-64\t\t\tcreate 64 ABI object file%s\n"
 msgstr ""
 
-#: config/tc-mips.c:20567
+#: config/tc-mips.c:20606
 msgid "missing .end at end of assembly"
 msgstr ""
 
 msgid "missing .end at end of assembly"
 msgstr ""
 
@@ -12967,7 +13163,7 @@ msgstr ""
 #. We will only get here in rare cases involving #NO_APP,
 #. where the unterminated string is not recognized by the
 #. preformatting pass.
 #. We will only get here in rare cases involving #NO_APP,
 #. where the unterminated string is not recognized by the
 #. preformatting pass.
-#: config/tc-mmix.c:4136 config/tc-mmix.c:4294 config/tc-z80.c:2836
+#: config/tc-mmix.c:4136 config/tc-mmix.c:4294 config/tc-z80.c:3152
 msgid "unterminated string"
 msgstr ""
 
 msgid "unterminated string"
 msgstr ""
 
@@ -13005,7 +13201,7 @@ msgid "Unrecognized opcode: `%s'"
 msgstr ""
 
 #. xgettext:c-format.
 msgstr ""
 
 #. xgettext:c-format.
-#: config/tc-mn10200.c:1139 config/tc-mn10300.c:1821 config/tc-ppc.c:4069
+#: config/tc-mn10200.c:1139 config/tc-mn10300.c:1821 config/tc-ppc.c:4082
 #: config/tc-s390.c:1612 config/tc-v850.c:3043
 #, c-format
 msgid "junk at end of line: `%s'"
 #: config/tc-s390.c:1612 config/tc-v850.c:3043
 #, c-format
 msgid "junk at end of line: `%s'"
@@ -13031,41 +13227,41 @@ msgstr ""
 msgid "Bad relocation fixup type (%d)"
 msgstr ""
 
 msgid "Bad relocation fixup type (%d)"
 msgstr ""
 
-#: config/tc-moxie.c:206 config/tc-moxie.c:225 config/tc-moxie.c:316
-#: config/tc-moxie.c:362
+#: config/tc-moxie.c:204 config/tc-moxie.c:223 config/tc-moxie.c:314
+#: config/tc-moxie.c:360
 msgid "expecting comma delimited register operands"
 msgstr ""
 
 msgid "expecting comma delimited register operands"
 msgstr ""
 
-#: config/tc-moxie.c:252 config/tc-moxie.c:392 config/tc-moxie.c:422
-#: config/tc-moxie.c:497
+#: config/tc-moxie.c:250 config/tc-moxie.c:390 config/tc-moxie.c:420
+#: config/tc-moxie.c:495
 msgid "expecting comma delimited operands"
 msgstr ""
 
 msgid "expecting comma delimited operands"
 msgstr ""
 
-#: config/tc-moxie.c:320 config/tc-moxie.c:348
+#: config/tc-moxie.c:318 config/tc-moxie.c:346
 msgid "expecting indirect register `($rA)'"
 msgstr ""
 
 msgid "expecting indirect register `($rA)'"
 msgstr ""
 
-#: config/tc-moxie.c:328 config/tc-moxie.c:356 config/tc-moxie.c:447
-#: config/tc-moxie.c:489
+#: config/tc-moxie.c:326 config/tc-moxie.c:354 config/tc-moxie.c:445
+#: config/tc-moxie.c:487
 msgid "missing closing parenthesis"
 msgstr ""
 
 msgid "missing closing parenthesis"
 msgstr ""
 
-#: config/tc-moxie.c:439 config/tc-moxie.c:481
+#: config/tc-moxie.c:437 config/tc-moxie.c:479
 msgid "expecting indirect register `($rX)'"
 msgstr ""
 
 msgid "expecting indirect register `($rX)'"
 msgstr ""
 
-#: config/tc-moxie.c:559 config/tc-pj.c:313
+#: config/tc-moxie.c:557 config/tc-pj.c:313
 msgid "Something forgot to clean up\n"
 msgstr ""
 
 msgid "Something forgot to clean up\n"
 msgstr ""
 
-#: config/tc-moxie.c:643
+#: config/tc-moxie.c:641
 #, c-format
 msgid ""
 "  -EB                     assemble for a big endian system (default)\n"
 "  -EL                     assemble for a little endian system\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "  -EB                     assemble for a big endian system (default)\n"
 "  -EL                     assemble for a little endian system\n"
 msgstr ""
 
-#: config/tc-moxie.c:703
+#: config/tc-moxie.c:701
 msgid "pcrel too far BFD_RELOC_MOXIE_10"
 msgstr ""
 
 msgid "pcrel too far BFD_RELOC_MOXIE_10"
 msgstr ""
 
@@ -14144,7 +14340,7 @@ msgid "badly formed expression near %s"
 msgstr ""
 
 #: config/tc-nios2.c:3108 config/tc-nios2.c:3135 config/tc-pru.c:1413
 msgstr ""
 
 #: config/tc-nios2.c:3108 config/tc-nios2.c:3135 config/tc-pru.c:1413
-#: config/tc-pru.c:1438 config/tc-xtensa.c:2128
+#: config/tc-pru.c:1438 config/tc-xtensa.c:2134
 msgid "too many arguments"
 msgstr ""
 
 msgid "too many arguments"
 msgstr ""
 
@@ -14183,19 +14379,24 @@ msgstr ""
 msgid "Bad .section directive: want a,s,w,x,M,S,G,T in string"
 msgstr ""
 
 msgid "Bad .section directive: want a,s,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-nios2.c:4026
+#: config/tc-nios2.c:4029
 #, c-format
 msgid "Illegal operands: %%tls_ldo in %d-byte data field"
 msgstr ""
 
 #, c-format
 msgid "Illegal operands: %%tls_ldo in %d-byte data field"
 msgstr ""
 
-#: config/tc-nios2.c:4038 config/tc-nios2.c:4056 config/tc-nios2.c:4063
+#: config/tc-nios2.c:4041
 #, c-format
 #, c-format
-msgid "Illegal operands: %%tls_ldo requires arguments in ()"
+msgid "Illegal operands: %%gotoff in %d-byte data field"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-nios2.c:4070
+#: config/tc-nios2.c:4054 config/tc-nios2.c:4073 config/tc-nios2.c:4081
 #, c-format
 #, c-format
-msgid "Illegal operands: garbage after %%tls_ldo()"
+msgid "Illegal operands: %s requires arguments in ()"
+msgstr ""
+
+#: config/tc-nios2.c:4089
+#, c-format
+msgid "Illegal operands: garbage after %s()"
 msgstr ""
 
 #: config/tc-ns32k.c:437
 msgstr ""
 
 #: config/tc-ns32k.c:437
@@ -14376,81 +14577,81 @@ msgstr ""
 msgid "Cannot find relocation type for symbol %s, code %d"
 msgstr ""
 
 msgid "Cannot find relocation type for symbol %s, code %d"
 msgstr ""
 
-#: config/tc-pdp11.c:340 config/tc-pdp11.c:357 config/tc-pdp11.c:380
-#: config/tc-pdp11.c:386 config/tc-pdp11.c:399
+#: config/tc-pdp11.c:344 config/tc-pdp11.c:361 config/tc-pdp11.c:384
+#: config/tc-pdp11.c:390 config/tc-pdp11.c:403
 msgid "Bad register name"
 msgstr ""
 
 msgid "Bad register name"
 msgstr ""
 
-#: config/tc-pdp11.c:418 config/tc-pdp11.c:482 config/tc-pdp11.c:493
+#: config/tc-pdp11.c:422 config/tc-pdp11.c:486 config/tc-pdp11.c:497
 msgid "Error in expression"
 msgstr ""
 
 msgid "Error in expression"
 msgstr ""
 
-#: config/tc-pdp11.c:490
+#: config/tc-pdp11.c:494
 msgid "Low order bits truncated in immediate float operand"
 msgstr ""
 
 msgid "Low order bits truncated in immediate float operand"
 msgstr ""
 
-#: config/tc-pdp11.c:634
+#: config/tc-pdp11.c:638
 msgid "Float AC not legal as integer operand"
 msgstr ""
 
 msgid "Float AC not legal as integer operand"
 msgstr ""
 
-#: config/tc-pdp11.c:654
+#: config/tc-pdp11.c:658
 msgid "General register not legal as float operand"
 msgstr ""
 
 msgid "General register not legal as float operand"
 msgstr ""
 
-#: config/tc-pdp11.c:687
+#: config/tc-pdp11.c:691
 msgid "No instruction found"
 msgstr ""
 
 msgid "No instruction found"
 msgstr ""
 
-#: config/tc-pdp11.c:697 config/tc-z80.c:3277 config/tc-z80.c:3298
+#: config/tc-pdp11.c:701 config/tc-z80.c:3617
 #, c-format
 msgid "Unknown instruction '%s'"
 msgstr ""
 
 #, c-format
 msgid "Unknown instruction '%s'"
 msgstr ""
 
-#: config/tc-pdp11.c:703
+#: config/tc-pdp11.c:707
 #, c-format
 msgid "Unsupported instruction set extension: %s"
 msgstr ""
 
 #, c-format
 msgid "Unsupported instruction set extension: %s"
 msgstr ""
 
-#: config/tc-pdp11.c:737
+#: config/tc-pdp11.c:741
 msgid "operand is not an absolute constant"
 msgstr ""
 
 msgid "operand is not an absolute constant"
 msgstr ""
 
-#: config/tc-pdp11.c:745
+#: config/tc-pdp11.c:749
 msgid "3-bit immediate out of range"
 msgstr ""
 
 msgid "3-bit immediate out of range"
 msgstr ""
 
-#: config/tc-pdp11.c:752
+#: config/tc-pdp11.c:756
 msgid "6-bit immediate out of range"
 msgstr ""
 
 msgid "6-bit immediate out of range"
 msgstr ""
 
-#: config/tc-pdp11.c:759
+#: config/tc-pdp11.c:763
 msgid "8-bit immediate out of range"
 msgstr ""
 
 msgid "8-bit immediate out of range"
 msgstr ""
 
-#: config/tc-pdp11.c:776 config/tc-pdp11.c:969
+#: config/tc-pdp11.c:780 config/tc-pdp11.c:973
 msgid "Symbol expected"
 msgstr ""
 
 msgid "Symbol expected"
 msgstr ""
 
-#: config/tc-pdp11.c:781
+#: config/tc-pdp11.c:785
 msgid "8-bit displacement out of range"
 msgstr ""
 
 msgid "8-bit displacement out of range"
 msgstr ""
 
-#: config/tc-pdp11.c:823 config/tc-pdp11.c:844 config/tc-pdp11.c:861
-#: config/tc-pdp11.c:882 config/tc-pdp11.c:899 config/tc-pdp11.c:920
-#: config/tc-pdp11.c:939 config/tc-pdp11.c:960
+#: config/tc-pdp11.c:827 config/tc-pdp11.c:848 config/tc-pdp11.c:865
+#: config/tc-pdp11.c:886 config/tc-pdp11.c:903 config/tc-pdp11.c:924
+#: config/tc-pdp11.c:943 config/tc-pdp11.c:964
 msgid "Missing ','"
 msgstr ""
 
 msgid "Missing ','"
 msgstr ""
 
-#: config/tc-pdp11.c:974
+#: config/tc-pdp11.c:978
 msgid "6-bit displacement out of range"
 msgstr ""
 
 msgid "6-bit displacement out of range"
 msgstr ""
 
-#: config/tc-pdp11.c:995 config/tc-tilegx.c:1216 config/tc-tilepro.c:1102
+#: config/tc-pdp11.c:999 config/tc-tilegx.c:1216 config/tc-tilepro.c:1102
 #: config/tc-vax.c:1950
 msgid "Too many operands"
 msgstr ""
 
 #: config/tc-vax.c:1950
 msgid "Too many operands"
 msgstr ""
 
-#: config/tc-pdp11.c:1445
+#: config/tc-pdp11.c:1449
 #, c-format
 msgid "Can not represent %s relocation in this object file format"
 msgstr ""
 #, c-format
 msgid "Can not represent %s relocation in this object file format"
 msgstr ""
@@ -14475,704 +14676,704 @@ msgid ""
 "-big\t\t\tgenerate big endian code\n"
 msgstr ""
 
 "-big\t\t\tgenerate big endian code\n"
 msgstr ""
 
-#: config/tc-pj.c:380 config/tc-sh.c:3594 config/tc-sh.c:3601
-#: config/tc-sh.c:3608 config/tc-sh.c:3615
+#: config/tc-pj.c:380 config/tc-sh.c:3595 config/tc-sh.c:3602
+#: config/tc-sh.c:3609 config/tc-sh.c:3616
 msgid "pcrel too far"
 msgstr ""
 
 msgid "pcrel too far"
 msgstr ""
 
-#: config/tc-ppc.c:977 config/tc-ppc.c:985 config/tc-ppc.c:3573
+#: config/tc-ppc.c:987 config/tc-ppc.c:995 config/tc-ppc.c:3586
 msgid "invalid register expression"
 msgstr ""
 
 msgid "invalid register expression"
 msgstr ""
 
-#: config/tc-ppc.c:1145 config/tc-ppc.c:1203 config/tc-ppc.c:1251
+#: config/tc-ppc.c:1155 config/tc-ppc.c:1213 config/tc-ppc.c:1261
 msgid "the use of -mvle requires big endian."
 msgstr ""
 
 msgid "the use of -mvle requires big endian."
 msgstr ""
 
-#: config/tc-ppc.c:1183 config/tc-ppc.c:1205
+#: config/tc-ppc.c:1193 config/tc-ppc.c:1215
 msgid "the use of -mvle requires -a32."
 msgstr ""
 
 msgid "the use of -mvle requires -a32."
 msgstr ""
 
-#: config/tc-ppc.c:1185
+#: config/tc-ppc.c:1195
 #, c-format
 msgid "%s unsupported"
 msgstr ""
 
 #, c-format
 msgid "%s unsupported"
 msgstr ""
 
-#: config/tc-ppc.c:1278 config/tc-s390.c:433 config/tc-s390.c:440
+#: config/tc-ppc.c:1288 config/tc-s390.c:433 config/tc-s390.c:440
 #, c-format
 msgid "invalid switch -m%s"
 msgstr ""
 
 #, c-format
 msgid "invalid switch -m%s"
 msgstr ""
 
-#: config/tc-ppc.c:1309
+#: config/tc-ppc.c:1319
 msgid "--nops needs a numeric argument"
 msgstr ""
 
 msgid "--nops needs a numeric argument"
 msgstr ""
 
-#: config/tc-ppc.c:1345
+#: config/tc-ppc.c:1355
 #, c-format
 msgid "PowerPC options:\n"
 msgstr ""
 
 #, c-format
 msgid "PowerPC options:\n"
 msgstr ""
 
-#: config/tc-ppc.c:1347
+#: config/tc-ppc.c:1357
 #, c-format
 msgid "-a32                    generate ELF32/XCOFF32\n"
 msgstr ""
 
 #, c-format
 msgid "-a32                    generate ELF32/XCOFF32\n"
 msgstr ""
 
-#: config/tc-ppc.c:1350
+#: config/tc-ppc.c:1360
 #, c-format
 msgid "-a64                    generate ELF64/XCOFF64\n"
 msgstr ""
 
 #, c-format
 msgid "-a64                    generate ELF64/XCOFF64\n"
 msgstr ""
 
-#: config/tc-ppc.c:1352
+#: config/tc-ppc.c:1362
 #, c-format
 msgid "-u                      ignored\n"
 msgstr ""
 
 #, c-format
 msgid "-u                      ignored\n"
 msgstr ""
 
-#: config/tc-ppc.c:1354
+#: config/tc-ppc.c:1364
 #, c-format
 msgid "-mpwrx, -mpwr2          generate code for POWER/2 (RIOS2)\n"
 msgstr ""
 
 #, c-format
 msgid "-mpwrx, -mpwr2          generate code for POWER/2 (RIOS2)\n"
 msgstr ""
 
-#: config/tc-ppc.c:1356
+#: config/tc-ppc.c:1366
 #, c-format
 msgid "-mpwr                   generate code for POWER (RIOS1)\n"
 msgstr ""
 
 #, c-format
 msgid "-mpwr                   generate code for POWER (RIOS1)\n"
 msgstr ""
 
-#: config/tc-ppc.c:1358
+#: config/tc-ppc.c:1368
 #, c-format
 msgid "-m601                   generate code for PowerPC 601\n"
 msgstr ""
 
 #, c-format
 msgid "-m601                   generate code for PowerPC 601\n"
 msgstr ""
 
-#: config/tc-ppc.c:1360
+#: config/tc-ppc.c:1370
 #, c-format
 msgid ""
 "-mppc, -mppc32, -m603, -m604\n"
 "                        generate code for PowerPC 603/604\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mppc, -mppc32, -m603, -m604\n"
 "                        generate code for PowerPC 603/604\n"
 msgstr ""
 
-#: config/tc-ppc.c:1363
+#: config/tc-ppc.c:1373
 #, c-format
 msgid "-m403                   generate code for PowerPC 403\n"
 msgstr ""
 
 #, c-format
 msgid "-m403                   generate code for PowerPC 403\n"
 msgstr ""
 
-#: config/tc-ppc.c:1365
+#: config/tc-ppc.c:1375
 #, c-format
 msgid "-m405                   generate code for PowerPC 405\n"
 msgstr ""
 
 #, c-format
 msgid "-m405                   generate code for PowerPC 405\n"
 msgstr ""
 
-#: config/tc-ppc.c:1367
+#: config/tc-ppc.c:1377
 #, c-format
 msgid "-m440                   generate code for PowerPC 440\n"
 msgstr ""
 
 #, c-format
 msgid "-m440                   generate code for PowerPC 440\n"
 msgstr ""
 
-#: config/tc-ppc.c:1369
+#: config/tc-ppc.c:1379
 #, c-format
 msgid "-m464                   generate code for PowerPC 464\n"
 msgstr ""
 
 #, c-format
 msgid "-m464                   generate code for PowerPC 464\n"
 msgstr ""
 
-#: config/tc-ppc.c:1371
+#: config/tc-ppc.c:1381
 #, c-format
 msgid "-m476                   generate code for PowerPC 476\n"
 msgstr ""
 
 #, c-format
 msgid "-m476                   generate code for PowerPC 476\n"
 msgstr ""
 
-#: config/tc-ppc.c:1373
+#: config/tc-ppc.c:1383
 #, c-format
 msgid ""
 "-m7400, -m7410, -m7450, -m7455\n"
 "                        generate code for PowerPC 7400/7410/7450/7455\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-m7400, -m7410, -m7450, -m7455\n"
 "                        generate code for PowerPC 7400/7410/7450/7455\n"
 msgstr ""
 
-#: config/tc-ppc.c:1376
+#: config/tc-ppc.c:1386
 #, c-format
 msgid ""
 "-m750cl, -mgekko, -mbroadway\n"
 "                        generate code for PowerPC 750cl/Gekko/Broadway\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-m750cl, -mgekko, -mbroadway\n"
 "                        generate code for PowerPC 750cl/Gekko/Broadway\n"
 msgstr ""
 
-#: config/tc-ppc.c:1379
+#: config/tc-ppc.c:1389
 #, c-format
 msgid "-m821, -m850, -m860     generate code for PowerPC 821/850/860\n"
 msgstr ""
 
 #, c-format
 msgid "-m821, -m850, -m860     generate code for PowerPC 821/850/860\n"
 msgstr ""
 
-#: config/tc-ppc.c:1381
+#: config/tc-ppc.c:1391
 #, c-format
 msgid "-mppc64, -m620          generate code for PowerPC 620/625/630\n"
 msgstr ""
 
 #, c-format
 msgid "-mppc64, -m620          generate code for PowerPC 620/625/630\n"
 msgstr ""
 
-#: config/tc-ppc.c:1383
+#: config/tc-ppc.c:1393
 #, c-format
 msgid ""
 "-mppc64bridge           generate code for PowerPC 64, including bridge "
 "insns\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mppc64bridge           generate code for PowerPC 64, including bridge "
 "insns\n"
 msgstr ""
 
-#: config/tc-ppc.c:1385
+#: config/tc-ppc.c:1395
 #, c-format
 msgid "-mbooke                 generate code for 32-bit PowerPC BookE\n"
 msgstr ""
 
 #, c-format
 msgid "-mbooke                 generate code for 32-bit PowerPC BookE\n"
 msgstr ""
 
-#: config/tc-ppc.c:1387
+#: config/tc-ppc.c:1397
 #, c-format
 msgid "-ma2                    generate code for A2 architecture\n"
 msgstr ""
 
 #, c-format
 msgid "-ma2                    generate code for A2 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1389
+#: config/tc-ppc.c:1399
 #, c-format
 msgid "-mpower4, -mpwr4        generate code for Power4 architecture\n"
 msgstr ""
 
 #, c-format
 msgid "-mpower4, -mpwr4        generate code for Power4 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1391
+#: config/tc-ppc.c:1401
 #, c-format
 msgid ""
 "-mpower5, -mpwr5, -mpwr5x\n"
 "                        generate code for Power5 architecture\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mpower5, -mpwr5, -mpwr5x\n"
 "                        generate code for Power5 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1394
+#: config/tc-ppc.c:1404
 #, c-format
 msgid "-mpower6, -mpwr6        generate code for Power6 architecture\n"
 msgstr ""
 
 #, c-format
 msgid "-mpower6, -mpwr6        generate code for Power6 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1396
+#: config/tc-ppc.c:1406
 #, c-format
 msgid "-mpower7, -mpwr7        generate code for Power7 architecture\n"
 msgstr ""
 
 #, c-format
 msgid "-mpower7, -mpwr7        generate code for Power7 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1398
+#: config/tc-ppc.c:1408
 #, c-format
 msgid "-mpower8, -mpwr8        generate code for Power8 architecture\n"
 msgstr ""
 
 #, c-format
 msgid "-mpower8, -mpwr8        generate code for Power8 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1400
+#: config/tc-ppc.c:1410
 #, c-format
 msgid "-mpower9, -mpwr9        generate code for Power9 architecture\n"
 msgstr ""
 
 #, c-format
 msgid "-mpower9, -mpwr9        generate code for Power9 architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1402
+#: config/tc-ppc.c:1412
 #, c-format
 msgid ""
 "-mcell                  generate code for Cell Broadband Engine "
 "architecture\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mcell                  generate code for Cell Broadband Engine "
 "architecture\n"
 msgstr ""
 
-#: config/tc-ppc.c:1404
+#: config/tc-ppc.c:1414
 #, c-format
 msgid ""
 "-mcom                   generate code for Power/PowerPC common instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mcom                   generate code for Power/PowerPC common instructions\n"
 msgstr ""
 
-#: config/tc-ppc.c:1406
+#: config/tc-ppc.c:1416
 #, c-format
 msgid ""
 "-many                   generate code for any architecture (PWR/PWRX/PPC)\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-many                   generate code for any architecture (PWR/PWRX/PPC)\n"
 msgstr ""
 
-#: config/tc-ppc.c:1408
+#: config/tc-ppc.c:1418
 #, c-format
 msgid "-maltivec               generate code for AltiVec\n"
 msgstr ""
 
 #, c-format
 msgid "-maltivec               generate code for AltiVec\n"
 msgstr ""
 
-#: config/tc-ppc.c:1410
+#: config/tc-ppc.c:1420
 #, c-format
 msgid ""
 "-mvsx                   generate code for Vector-Scalar (VSX) instructions\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mvsx                   generate code for Vector-Scalar (VSX) instructions\n"
 msgstr ""
 
-#: config/tc-ppc.c:1412
+#: config/tc-ppc.c:1422
 #, c-format
 msgid "-me300                  generate code for PowerPC e300 family\n"
 msgstr ""
 
 #, c-format
 msgid "-me300                  generate code for PowerPC e300 family\n"
 msgstr ""
 
-#: config/tc-ppc.c:1414
+#: config/tc-ppc.c:1424
 #, c-format
 msgid "-me500, -me500x2        generate code for Motorola e500 core complex\n"
 msgstr ""
 
 #, c-format
 msgid "-me500, -me500x2        generate code for Motorola e500 core complex\n"
 msgstr ""
 
-#: config/tc-ppc.c:1416
+#: config/tc-ppc.c:1426
 #, c-format
 msgid ""
 "-me500mc,               generate code for Freescale e500mc core complex\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-me500mc,               generate code for Freescale e500mc core complex\n"
 msgstr ""
 
-#: config/tc-ppc.c:1418
+#: config/tc-ppc.c:1428
 #, c-format
 msgid ""
 "-me500mc64,             generate code for Freescale e500mc64 core complex\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-me500mc64,             generate code for Freescale e500mc64 core complex\n"
 msgstr ""
 
-#: config/tc-ppc.c:1420
+#: config/tc-ppc.c:1430
 #, c-format
 msgid ""
 "-me5500,                generate code for Freescale e5500 core complex\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-me5500,                generate code for Freescale e5500 core complex\n"
 msgstr ""
 
-#: config/tc-ppc.c:1422
+#: config/tc-ppc.c:1432
 #, c-format
 msgid ""
 "-me6500,                generate code for Freescale e6500 core complex\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-me6500,                generate code for Freescale e6500 core complex\n"
 msgstr ""
 
-#: config/tc-ppc.c:1424
+#: config/tc-ppc.c:1434
 #, c-format
 msgid "-mspe                   generate code for Motorola SPE instructions\n"
 msgstr ""
 
 #, c-format
 msgid "-mspe                   generate code for Motorola SPE instructions\n"
 msgstr ""
 
-#: config/tc-ppc.c:1426
+#: config/tc-ppc.c:1436
 #, c-format
 msgid "-mspe2                  generate code for Freescale SPE2 instructions\n"
 msgstr ""
 
 #, c-format
 msgid "-mspe2                  generate code for Freescale SPE2 instructions\n"
 msgstr ""
 
-#: config/tc-ppc.c:1428
+#: config/tc-ppc.c:1438
 #, c-format
 msgid "-mvle                   generate code for Freescale VLE instructions\n"
 msgstr ""
 
 #, c-format
 msgid "-mvle                   generate code for Freescale VLE instructions\n"
 msgstr ""
 
-#: config/tc-ppc.c:1430
+#: config/tc-ppc.c:1440
 #, c-format
 msgid ""
 "-mtitan                 generate code for AppliedMicro Titan core complex\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mtitan                 generate code for AppliedMicro Titan core complex\n"
 msgstr ""
 
-#: config/tc-ppc.c:1432
+#: config/tc-ppc.c:1442
 #, c-format
 msgid "-mregnames              Allow symbolic names for registers\n"
 msgstr ""
 
 #, c-format
 msgid "-mregnames              Allow symbolic names for registers\n"
 msgstr ""
 
-#: config/tc-ppc.c:1434
+#: config/tc-ppc.c:1444
 #, c-format
 msgid "-mno-regnames           Do not allow symbolic names for registers\n"
 msgstr ""
 
 #, c-format
 msgid "-mno-regnames           Do not allow symbolic names for registers\n"
 msgstr ""
 
-#: config/tc-ppc.c:1437
+#: config/tc-ppc.c:1447
 #, c-format
 msgid "-mrelocatable           support for GCC's -mrelocatble option\n"
 msgstr ""
 
 #, c-format
 msgid "-mrelocatable           support for GCC's -mrelocatble option\n"
 msgstr ""
 
-#: config/tc-ppc.c:1439
+#: config/tc-ppc.c:1449
 #, c-format
 msgid "-mrelocatable-lib       support for GCC's -mrelocatble-lib option\n"
 msgstr ""
 
 #, c-format
 msgid "-mrelocatable-lib       support for GCC's -mrelocatble-lib option\n"
 msgstr ""
 
-#: config/tc-ppc.c:1441
+#: config/tc-ppc.c:1451
 #, c-format
 msgid "-memb                   set PPC_EMB bit in ELF flags\n"
 msgstr ""
 
 #, c-format
 msgid "-memb                   set PPC_EMB bit in ELF flags\n"
 msgstr ""
 
-#: config/tc-ppc.c:1443
+#: config/tc-ppc.c:1453
 #, c-format
 msgid ""
 "-mlittle, -mlittle-endian, -le\n"
 "                        generate code for a little endian machine\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mlittle, -mlittle-endian, -le\n"
 "                        generate code for a little endian machine\n"
 msgstr ""
 
-#: config/tc-ppc.c:1446
+#: config/tc-ppc.c:1456
 #, c-format
 msgid ""
 "-mbig, -mbig-endian, -be\n"
 "                        generate code for a big endian machine\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-mbig, -mbig-endian, -be\n"
 "                        generate code for a big endian machine\n"
 msgstr ""
 
-#: config/tc-ppc.c:1449
+#: config/tc-ppc.c:1459
 #, c-format
 msgid "-msolaris               generate code for Solaris\n"
 msgstr ""
 
 #, c-format
 msgid "-msolaris               generate code for Solaris\n"
 msgstr ""
 
-#: config/tc-ppc.c:1451
+#: config/tc-ppc.c:1461
 #, c-format
 msgid "-mno-solaris            do not generate code for Solaris\n"
 msgstr ""
 
 #, c-format
 msgid "-mno-solaris            do not generate code for Solaris\n"
 msgstr ""
 
-#: config/tc-ppc.c:1453
+#: config/tc-ppc.c:1463
 #, c-format
 msgid "-K PIC                  set EF_PPC_RELOCATABLE_LIB in ELF flags\n"
 msgstr ""
 
 #, c-format
 msgid "-K PIC                  set EF_PPC_RELOCATABLE_LIB in ELF flags\n"
 msgstr ""
 
-#: config/tc-ppc.c:1455
+#: config/tc-ppc.c:1465
 #, c-format
 msgid "-V                      print assembler version number\n"
 msgstr ""
 
 #, c-format
 msgid "-V                      print assembler version number\n"
 msgstr ""
 
-#: config/tc-ppc.c:1457
+#: config/tc-ppc.c:1467
 #, c-format
 msgid "-Qy, -Qn                ignored\n"
 msgstr ""
 
 #, c-format
 msgid "-Qy, -Qn                ignored\n"
 msgstr ""
 
-#: config/tc-ppc.c:1460
+#: config/tc-ppc.c:1470
 #, c-format
 msgid ""
 "-nops=count             when aligning, more than COUNT nops uses a branch\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "-nops=count             when aligning, more than COUNT nops uses a branch\n"
 msgstr ""
 
-#: config/tc-ppc.c:1462
+#: config/tc-ppc.c:1472
 #, c-format
 msgid "-ppc476-workaround      warn if emitting data to code sections\n"
 msgstr ""
 
 #, c-format
 msgid "-ppc476-workaround      warn if emitting data to code sections\n"
 msgstr ""
 
-#: config/tc-ppc.c:1492
+#: config/tc-ppc.c:1502
 #, c-format
 msgid "unknown default cpu = %s, os = %s"
 msgstr ""
 
 #, c-format
 msgid "unknown default cpu = %s, os = %s"
 msgstr ""
 
-#: config/tc-ppc.c:1520
+#: config/tc-ppc.c:1530
 msgid "neither Power nor PowerPC opcodes were selected."
 msgstr ""
 
 msgid "neither Power nor PowerPC opcodes were selected."
 msgstr ""
 
-#: config/tc-ppc.c:1580
+#: config/tc-ppc.c:1590
 #, c-format
 msgid "mask trims opcode bits for %s"
 msgstr ""
 
 #, c-format
 msgid "mask trims opcode bits for %s"
 msgstr ""
 
-#: config/tc-ppc.c:1590
+#: config/tc-ppc.c:1600
 #, c-format
 msgid "operand index error for %s"
 msgstr ""
 
 #, c-format
 msgid "operand index error for %s"
 msgstr ""
 
-#: config/tc-ppc.c:1616
+#: config/tc-ppc.c:1626
 #, c-format
 msgid "operand %d overlap in %s"
 msgstr ""
 
 #, c-format
 msgid "operand %d overlap in %s"
 msgstr ""
 
-#: config/tc-ppc.c:1625
+#: config/tc-ppc.c:1635
 #, c-format
 msgid "non-optional operand %d follows optional operand in %s"
 msgstr ""
 
 #, c-format
 msgid "non-optional operand %d follows optional operand in %s"
 msgstr ""
 
-#: config/tc-ppc.c:1675
+#: config/tc-ppc.c:1685
 #, c-format
 msgid "powerpc_operands[%d].bitm invalid"
 msgstr ""
 
 #, c-format
 msgid "powerpc_operands[%d].bitm invalid"
 msgstr ""
 
-#: config/tc-ppc.c:1682
+#: config/tc-ppc.c:1692
 #, c-format
 msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]"
 msgstr ""
 
 #, c-format
 msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]"
 msgstr ""
 
-#: config/tc-ppc.c:1708 config/tc-ppc.c:1765 config/tc-ppc.c:1809
-#: config/tc-ppc.c:1853
+#: config/tc-ppc.c:1718 config/tc-ppc.c:1775 config/tc-ppc.c:1819
+#: config/tc-ppc.c:1863
 #, c-format
 msgid "major opcode is not sorted for %s"
 msgstr ""
 
 #, c-format
 msgid "major opcode is not sorted for %s"
 msgstr ""
 
-#: config/tc-ppc.c:1714
+#: config/tc-ppc.c:1724
 #, c-format
 msgid "%s is enabled by vle flag"
 msgstr ""
 
 #, c-format
 msgid "%s is enabled by vle flag"
 msgstr ""
 
-#: config/tc-ppc.c:1721
+#: config/tc-ppc.c:1731
 #, c-format
 msgid "%s not disabled by vle flag"
 msgstr ""
 
 #, c-format
 msgid "%s not disabled by vle flag"
 msgstr ""
 
-#: config/tc-ppc.c:1735 config/tc-ppc.c:1779 config/tc-ppc.c:1824
-#: config/tc-ppc.c:1868
+#: config/tc-ppc.c:1745 config/tc-ppc.c:1789 config/tc-ppc.c:1834
+#: config/tc-ppc.c:1878
 #, c-format
 msgid "duplicate instruction %s"
 msgstr ""
 
 #, c-format
 msgid "duplicate instruction %s"
 msgstr ""
 
-#: config/tc-ppc.c:1892
+#: config/tc-ppc.c:1902
 #, c-format
 msgid "duplicate macro %s"
 msgstr ""
 
 #, c-format
 msgid "duplicate macro %s"
 msgstr ""
 
-#: config/tc-ppc.c:2268
+#: config/tc-ppc.c:2278
 #, c-format
 msgid "symbol+offset@%s means symbol@%s+offset"
 msgstr ""
 
 #, c-format
 msgid "symbol+offset@%s means symbol@%s+offset"
 msgstr ""
 
-#: config/tc-ppc.c:2288
+#: config/tc-ppc.c:2298
 #, c-format
 msgid "symbol+offset@%s not supported"
 msgstr ""
 
 #, c-format
 msgid "symbol+offset@%s not supported"
 msgstr ""
 
-#: config/tc-ppc.c:2365 config/tc-ppc.c:4361 config/tc-ppc.c:7888
+#: config/tc-ppc.c:2375 config/tc-ppc.c:4374 config/tc-ppc.c:7901
 msgid "data in executable section"
 msgstr ""
 
 msgid "data in executable section"
 msgstr ""
 
-#: config/tc-ppc.c:2406 config/tc-ppc.c:5998
+#: config/tc-ppc.c:2416 config/tc-ppc.c:6011
 msgid "expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
 msgid "expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
-#: config/tc-ppc.c:2439 config/tc-ppc.c:6034
+#: config/tc-ppc.c:2449 config/tc-ppc.c:6047
 #, c-format
 msgid "ignoring attempt to re-define symbol `%s'."
 msgstr ""
 
 #, c-format
 msgid "ignoring attempt to re-define symbol `%s'."
 msgstr ""
 
-#: config/tc-ppc.c:2447
+#: config/tc-ppc.c:2457
 #, c-format
 msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
 #, c-format
 msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
-#: config/tc-ppc.c:2465
+#: config/tc-ppc.c:2475
 msgid "common alignment not a power of 2"
 msgstr ""
 
 msgid "common alignment not a power of 2"
 msgstr ""
 
-#: config/tc-ppc.c:2507
+#: config/tc-ppc.c:2517
 #, c-format
 msgid "expected comma after name `%s' in .localentry directive"
 msgstr ""
 
 #, c-format
 msgid "expected comma after name `%s' in .localentry directive"
 msgstr ""
 
-#: config/tc-ppc.c:2517
+#: config/tc-ppc.c:2527
 msgid "missing expression in .localentry directive"
 msgstr ""
 
 msgid "missing expression in .localentry directive"
 msgstr ""
 
-#: config/tc-ppc.c:2538
+#: config/tc-ppc.c:2548
 #, c-format
 msgid ".localentry expression for `%s' is not a valid power of 2"
 msgstr ""
 
 #, c-format
 msgid ".localentry expression for `%s' is not a valid power of 2"
 msgstr ""
 
-#: config/tc-ppc.c:2555
+#: config/tc-ppc.c:2565
 #, c-format
 msgid ".localentry expression for `%s' does not evaluate to a constant"
 msgstr ""
 
 #, c-format
 msgid ".localentry expression for `%s' does not evaluate to a constant"
 msgstr ""
 
-#: config/tc-ppc.c:2570
+#: config/tc-ppc.c:2580
 msgid "missing expression in .abiversion directive"
 msgstr ""
 
 msgid "missing expression in .abiversion directive"
 msgstr ""
 
-#: config/tc-ppc.c:2579
+#: config/tc-ppc.c:2589
 msgid ".abiversion expression does not evaluate to a constant"
 msgstr ""
 
 msgid ".abiversion expression does not evaluate to a constant"
 msgstr ""
 
-#: config/tc-ppc.c:2601
+#: config/tc-ppc.c:2611
 msgid "unknown .gnu_attribute value"
 msgstr ""
 
 msgid "unknown .gnu_attribute value"
 msgstr ""
 
-#: config/tc-ppc.c:2659
+#: config/tc-ppc.c:2669
 msgid "relocation cannot be done when using -mrelocatable"
 msgstr ""
 
 msgid "relocation cannot be done when using -mrelocatable"
 msgstr ""
 
-#: config/tc-ppc.c:2705
+#: config/tc-ppc.c:2715
 msgid "TOC section size exceeds 64k"
 msgstr ""
 
 msgid "TOC section size exceeds 64k"
 msgstr ""
 
-#: config/tc-ppc.c:2800
+#: config/tc-ppc.c:2810
 #, c-format
 msgid "syntax error: invalid toc specifier `%s'"
 msgstr ""
 
 #, c-format
 msgid "syntax error: invalid toc specifier `%s'"
 msgstr ""
 
-#: config/tc-ppc.c:2814
+#: config/tc-ppc.c:2824
 #, c-format
 msgid "syntax error: expected `]', found  `%c'"
 msgstr ""
 
 #, c-format
 msgid "syntax error: expected `]', found  `%c'"
 msgstr ""
 
-#: config/tc-ppc.c:3234
+#: config/tc-ppc.c:3244
 #, c-format
 msgid "%s howto doesn't match size/pcrel in gas"
 msgstr ""
 
 #, c-format
 msgid "%s howto doesn't match size/pcrel in gas"
 msgstr ""
 
-#: config/tc-ppc.c:3314
+#: config/tc-ppc.c:3327
 #, c-format
 msgid "unrecognized opcode: `%s'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized opcode: `%s'"
 msgstr ""
 
-#: config/tc-ppc.c:3490
+#: config/tc-ppc.c:3503
 msgid "[tocv] symbol is not a toc symbol"
 msgstr ""
 
 msgid "[tocv] symbol is not a toc symbol"
 msgstr ""
 
-#: config/tc-ppc.c:3501
+#: config/tc-ppc.c:3514
 msgid "unimplemented toc32 expression modifier"
 msgstr ""
 
 msgid "unimplemented toc32 expression modifier"
 msgstr ""
 
-#: config/tc-ppc.c:3506
+#: config/tc-ppc.c:3519
 msgid "unimplemented toc64 expression modifier"
 msgstr ""
 
 msgid "unimplemented toc64 expression modifier"
 msgstr ""
 
-#: config/tc-ppc.c:3510
+#: config/tc-ppc.c:3523
 #, c-format
 msgid "Unexpected return value [%d] from parse_toc_entry!\n"
 msgstr ""
 
 #, c-format
 msgid "Unexpected return value [%d] from parse_toc_entry!\n"
 msgstr ""
 
-#: config/tc-ppc.c:3759
+#: config/tc-ppc.c:3772
 #, c-format
 msgid "@tls may not be used with \"%s\" operands"
 msgstr ""
 
 #, c-format
 msgid "@tls may not be used with \"%s\" operands"
 msgstr ""
 
-#: config/tc-ppc.c:3762
+#: config/tc-ppc.c:3775
 msgid "@tls may only be used in last operand"
 msgstr ""
 
 msgid "@tls may only be used in last operand"
 msgstr ""
 
-#: config/tc-ppc.c:3800 config/tc-ppc.c:3810 config/tc-ppc.c:3820
-#: config/tc-ppc.c:3835
+#: config/tc-ppc.c:3813 config/tc-ppc.c:3823 config/tc-ppc.c:3833
+#: config/tc-ppc.c:3848
 #, c-format
 msgid "%s unsupported on this instruction"
 msgstr ""
 
 #, c-format
 msgid "%s unsupported on this instruction"
 msgstr ""
 
-#: config/tc-ppc.c:3879
+#: config/tc-ppc.c:3892
 #, c-format
 msgid "assuming %s on symbol"
 msgstr ""
 
 #, c-format
 msgid "assuming %s on symbol"
 msgstr ""
 
-#: config/tc-ppc.c:4002
+#: config/tc-ppc.c:4015
 msgid "unsupported relocation for DS offset field"
 msgstr ""
 
 msgid "unsupported relocation for DS offset field"
 msgstr ""
 
-#: config/tc-ppc.c:4055
+#: config/tc-ppc.c:4068
 #, c-format
 msgid "syntax error; found `%c', expected `%c'"
 msgstr ""
 
 #, c-format
 msgid "syntax error; found `%c', expected `%c'"
 msgstr ""
 
-#: config/tc-ppc.c:4060
+#: config/tc-ppc.c:4073
 #, c-format
 msgid "syntax error; end of line, expected `%c'"
 msgstr ""
 
 #, c-format
 msgid "syntax error; end of line, expected `%c'"
 msgstr ""
 
-#: config/tc-ppc.c:4125 config/tc-ppc.c:7097
+#: config/tc-ppc.c:4138 config/tc-ppc.c:7110
 #, c-format
 msgid "instruction address is not a multiple of %d"
 msgstr ""
 
 #, c-format
 msgid "instruction address is not a multiple of %d"
 msgstr ""
 
-#: config/tc-ppc.c:4245
+#: config/tc-ppc.c:4258
 msgid "wrong number of operands"
 msgstr ""
 
 msgid "wrong number of operands"
 msgstr ""
 
-#: config/tc-ppc.c:4318
+#: config/tc-ppc.c:4331
 msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string"
 msgstr ""
 
 msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-ppc.c:4398
+#: config/tc-ppc.c:4411
 msgid "missing size"
 msgstr ""
 
 msgid "missing size"
 msgstr ""
 
-#: config/tc-ppc.c:4407
+#: config/tc-ppc.c:4420
 msgid "negative size"
 msgstr ""
 
 msgid "negative size"
 msgstr ""
 
-#: config/tc-ppc.c:4439
+#: config/tc-ppc.c:4452
 msgid "missing real symbol name"
 msgstr ""
 
 msgid "missing real symbol name"
 msgstr ""
 
-#: config/tc-ppc.c:4478
+#: config/tc-ppc.c:4491
 msgid "attempt to redefine symbol"
 msgstr ""
 
 msgid "attempt to redefine symbol"
 msgstr ""
 
-#: config/tc-ppc.c:4741
+#: config/tc-ppc.c:4754
 #, c-format
 msgid "no known dwarf XCOFF section for flag 0x%08x\n"
 msgstr ""
 
 #, c-format
 msgid "no known dwarf XCOFF section for flag 0x%08x\n"
 msgstr ""
 
-#: config/tc-ppc.c:4754
+#: config/tc-ppc.c:4767
 #, c-format
 msgid "label %s was not defined in this dwarf section"
 msgstr ""
 
 #, c-format
 msgid "label %s was not defined in this dwarf section"
 msgstr ""
 
-#: config/tc-ppc.c:4868
+#: config/tc-ppc.c:4881
 msgid "the XCOFF file format does not support arbitrary sections"
 msgstr ""
 
 msgid "the XCOFF file format does not support arbitrary sections"
 msgstr ""
 
-#: config/tc-ppc.c:4939
+#: config/tc-ppc.c:4952
 msgid ".ref outside .csect"
 msgstr ""
 
 msgid ".ref outside .csect"
 msgstr ""
 
-#: config/tc-ppc.c:4960 config/tc-ppc.c:5160
+#: config/tc-ppc.c:4973 config/tc-ppc.c:5173
 msgid "missing symbol name"
 msgstr ""
 
 msgid "missing symbol name"
 msgstr ""
 
-#: config/tc-ppc.c:4990
+#: config/tc-ppc.c:5003
 msgid "missing rename string"
 msgstr ""
 
 msgid "missing rename string"
 msgstr ""
 
-#: config/tc-ppc.c:5020 config/tc-ppc.c:5559 read.c:3519
+#: config/tc-ppc.c:5033 config/tc-ppc.c:5572 read.c:3520
 msgid "missing value"
 msgstr ""
 
 msgid "missing value"
 msgstr ""
 
-#: config/tc-ppc.c:5038
+#: config/tc-ppc.c:5051
 msgid "illegal .stabx expression; zero assumed"
 msgstr ""
 
 msgid "illegal .stabx expression; zero assumed"
 msgstr ""
 
-#: config/tc-ppc.c:5070
+#: config/tc-ppc.c:5083
 msgid "missing class"
 msgstr ""
 
 msgid "missing class"
 msgstr ""
 
-#: config/tc-ppc.c:5079
+#: config/tc-ppc.c:5092
 msgid "missing type"
 msgstr ""
 
 msgid "missing type"
 msgstr ""
 
-#: config/tc-ppc.c:5106
+#: config/tc-ppc.c:5119
 msgid ".stabx of storage class stsym must be within .bs/.es"
 msgstr ""
 
 msgid ".stabx of storage class stsym must be within .bs/.es"
 msgstr ""
 
-#: config/tc-ppc.c:5347
+#: config/tc-ppc.c:5360
 msgid "nested .bs blocks"
 msgstr ""
 
 msgid "nested .bs blocks"
 msgstr ""
 
-#: config/tc-ppc.c:5378
+#: config/tc-ppc.c:5391
 msgid ".es without preceding .bs"
 msgstr ""
 
 msgid ".es without preceding .bs"
 msgstr ""
 
-#: config/tc-ppc.c:5551
+#: config/tc-ppc.c:5564
 msgid "non-constant byte count"
 msgstr ""
 
 msgid "non-constant byte count"
 msgstr ""
 
-#: config/tc-ppc.c:5626
+#: config/tc-ppc.c:5639
 msgid ".tc not in .toc section"
 msgstr ""
 
 msgid ".tc not in .toc section"
 msgstr ""
 
-#: config/tc-ppc.c:5644
+#: config/tc-ppc.c:5657
 msgid ".tc with no label"
 msgstr ""
 
 msgid ".tc with no label"
 msgstr ""
 
-#: config/tc-ppc.c:5728 config/tc-s390.c:1968
+#: config/tc-ppc.c:5741 config/tc-s390.c:1968
 msgid ".machine stack overflow"
 msgstr ""
 
 msgid ".machine stack overflow"
 msgstr ""
 
-#: config/tc-ppc.c:5735 config/tc-s390.c:1979
+#: config/tc-ppc.c:5748 config/tc-s390.c:1979
 msgid ".machine stack underflow"
 msgstr ""
 
 msgid ".machine stack underflow"
 msgstr ""
 
-#: config/tc-ppc.c:5742 config/tc-s390.c:1991
+#: config/tc-ppc.c:5755 config/tc-s390.c:1991
 #, c-format
 msgid "invalid machine `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid machine `%s'"
 msgstr ""
 
-#: config/tc-ppc.c:5774
+#: config/tc-ppc.c:5787
 msgid "no previous section to return to, ignored."
 msgstr ""
 
 msgid "no previous section to return to, ignored."
 msgstr ""
 
-#: config/tc-ppc.c:6043
+#: config/tc-ppc.c:6056
 #, c-format
 msgid "length of .comm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
 #. Section Contents
 #. unknown
 #, c-format
 msgid "length of .comm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
 #. Section Contents
 #. unknown
-#: config/tc-ppc.c:6171
+#: config/tc-ppc.c:6184
 msgid "unsupported section attribute -- 'a'"
 msgstr ""
 
 msgid "unsupported section attribute -- 'a'"
 msgstr ""
 
-#: config/tc-ppc.c:6353
+#: config/tc-ppc.c:6366
 msgid "bad symbol suffix"
 msgstr ""
 
 msgid "bad symbol suffix"
 msgstr ""
 
-#: config/tc-ppc.c:6446
+#: config/tc-ppc.c:6459
 msgid "unrecognized symbol suffix"
 msgstr ""
 
 msgid "unrecognized symbol suffix"
 msgstr ""
 
-#: config/tc-ppc.c:6509
+#: config/tc-ppc.c:6522
 msgid "two .function pseudo-ops with no intervening .ef"
 msgstr ""
 
 msgid "two .function pseudo-ops with no intervening .ef"
 msgstr ""
 
-#: config/tc-ppc.c:6522
+#: config/tc-ppc.c:6535
 msgid ".ef with no preceding .function"
 msgstr ""
 
 msgid ".ef with no preceding .function"
 msgstr ""
 
-#: config/tc-ppc.c:6649
+#: config/tc-ppc.c:6662
 #, c-format
 msgid "warning: symbol %s has no csect"
 msgstr ""
 
 #, c-format
 msgid "warning: symbol %s has no csect"
 msgstr ""
 
-#: config/tc-ppc.c:6911
+#: config/tc-ppc.c:6924
 msgid "symbol in .toc does not match any .tc"
 msgstr ""
 
 msgid "symbol in .toc does not match any .tc"
 msgstr ""
 
-#: config/tc-ppc.c:7626
+#: config/tc-ppc.c:7639
 #, c-format
 msgid "%s unsupported as instruction fixup"
 msgstr ""
 
 #, c-format
 msgid "%s unsupported as instruction fixup"
 msgstr ""
 
-#: config/tc-ppc.c:7725
+#: config/tc-ppc.c:7738
 #, c-format
 msgid "unsupported relocation against %s"
 msgstr ""
 
 #, c-format
 msgid "unsupported relocation against %s"
 msgstr ""
 
-#: config/tc-ppc.c:7871
+#: config/tc-ppc.c:7884
 #, c-format
 msgid "Gas failure, reloc value %d\n"
 msgstr ""
 #, c-format
 msgid "Gas failure, reloc value %d\n"
 msgstr ""
@@ -15274,212 +15475,258 @@ msgstr ""
 msgid "Label \"%s\" matches a CPU register name"
 msgstr ""
 
 msgid "Label \"%s\" matches a CPU register name"
 msgstr ""
 
-#: config/tc-riscv.c:412 config/tc-riscv.c:471
+#: config/tc-riscv.c:141
+#, c-format
+msgid ""
+"Unknown default privilege spec `%s' set by -mpriv-spec or --with-priv-spec"
+msgstr ""
+
+#. Still can not find the priv spec class.
+#: config/tc-riscv.c:183
+#, c-format
+msgid "Unknown default privilege spec `%d.%d.%d' set by  privilege attributes"
+msgstr ""
+
+#: config/tc-riscv.c:591 config/tc-riscv.c:652
 #, c-format
 msgid "internal error: can't hash `%s': %s"
 msgstr ""
 
 #, c-format
 msgid "internal error: can't hash `%s': %s"
 msgstr ""
 
-#: config/tc-riscv.c:568
+#: config/tc-riscv.c:741
+#, c-format
+msgid "internal: bad RISC-V CSR class (0x%x)"
+msgstr ""
+
+#: config/tc-riscv.c:745
+#, c-format
+msgid "Invalid CSR `%s' for the current ISA"
+msgstr ""
+
+#: config/tc-riscv.c:777
+#, c-format
+msgid "Invalid CSR `%s' for the privilege spec `%s'"
+msgstr ""
+
+#: config/tc-riscv.c:897
 #, c-format
 msgid "internal: bad RISC-V opcode (mask error): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad RISC-V opcode (mask error): %s %s"
 msgstr ""
 
-#: config/tc-riscv.c:617
+#: config/tc-riscv.c:946
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `CF%c'): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `CF%c'): %s %s"
 msgstr ""
 
-#: config/tc-riscv.c:624
+#: config/tc-riscv.c:953
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `C%c'): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `C%c'): %s %s"
 msgstr ""
 
-#: config/tc-riscv.c:668 config/tc-riscv.c:680
+#: config/tc-riscv.c:997 config/tc-riscv.c:1009
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `F%c'): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `F%c'): %s %s"
 msgstr ""
 
-#: config/tc-riscv.c:687
+#: config/tc-riscv.c:1016
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s"
 msgstr ""
 
-#: config/tc-riscv.c:695
+#: config/tc-riscv.c:1024
 #, c-format
 msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s"
 msgstr ""
 
-#: config/tc-riscv.c:841
+#: config/tc-riscv.c:1173
 #, c-format
 msgid "Unsupported RISC-V relocation number %d"
 msgstr ""
 
 #, c-format
 msgid "Unsupported RISC-V relocation number %d"
 msgstr ""
 
-#: config/tc-riscv.c:928
+#: config/tc-riscv.c:1260
 msgid "internal error: invalid macro"
 msgstr ""
 
 msgid "internal error: invalid macro"
 msgstr ""
 
-#: config/tc-riscv.c:953
+#: config/tc-riscv.c:1285
 msgid "internal error: vasprintf failed"
 msgstr ""
 
 msgid "internal error: vasprintf failed"
 msgstr ""
 
-#: config/tc-riscv.c:982 config/tc-riscv.c:1053
+#: config/tc-riscv.c:1314 config/tc-riscv.c:1385
 msgid "unsupported large constant"
 msgstr ""
 
 msgid "unsupported large constant"
 msgstr ""
 
-#: config/tc-riscv.c:984
+#: config/tc-riscv.c:1316
 #, c-format
 msgid "unknown CSR `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown CSR `%s'"
 msgstr ""
 
-#: config/tc-riscv.c:987
+#: config/tc-riscv.c:1319
 #, c-format
 msgid "Instruction %s requires absolute expression"
 msgstr ""
 
 #, c-format
 msgid "Instruction %s requires absolute expression"
 msgstr ""
 
-#: config/tc-riscv.c:1213
+#: config/tc-riscv.c:1545
 #, c-format
 msgid "Macro %s not implemented"
 msgstr ""
 
 #, c-format
 msgid "Macro %s not implemented"
 msgstr ""
 
-#: config/tc-riscv.c:1700
+#: config/tc-riscv.c:1860
+#, c-format
+msgid "Read-only CSR is written `%s'"
+msgstr ""
+
+#: config/tc-riscv.c:2100
 msgid "bad value for funct6 field, value must be 0...64"
 msgstr ""
 
 msgid "bad value for funct6 field, value must be 0...64"
 msgstr ""
 
-#: config/tc-riscv.c:1715
+#: config/tc-riscv.c:2115
 msgid "bad value for funct4 field, value must be 0...15"
 msgstr ""
 
 msgid "bad value for funct4 field, value must be 0...15"
 msgstr ""
 
-#: config/tc-riscv.c:1730 config/tc-riscv.c:2087
+#: config/tc-riscv.c:2130 config/tc-riscv.c:2488
 msgid "bad value for funct3 field, value must be 0...7"
 msgstr ""
 
 msgid "bad value for funct3 field, value must be 0...7"
 msgstr ""
 
-#: config/tc-riscv.c:1744 config/tc-riscv.c:2102
+#: config/tc-riscv.c:2144 config/tc-riscv.c:2503
 msgid "bad value for funct2 field, value must be 0...3"
 msgstr ""
 
 msgid "bad value for funct2 field, value must be 0...3"
 msgstr ""
 
-#: config/tc-riscv.c:1753
+#: config/tc-riscv.c:2153
 #, c-format
 msgid "bad compressed FUNCT field specifier 'CF%c'\n"
 msgstr ""
 
 #, c-format
 msgid "bad compressed FUNCT field specifier 'CF%c'\n"
 msgstr ""
 
-#: config/tc-riscv.c:1760
+#: config/tc-riscv.c:2160
 #, c-format
 msgid "bad RVC field specifier 'C%c'\n"
 msgstr ""
 
 #, c-format
 msgid "bad RVC field specifier 'C%c'\n"
 msgstr ""
 
-#: config/tc-riscv.c:1783 config/tc-riscv.c:1794
+#: config/tc-riscv.c:2183 config/tc-riscv.c:2194
 #, c-format
 msgid "Improper shift amount (%lu)"
 msgstr ""
 
 #, c-format
 msgid "Improper shift amount (%lu)"
 msgstr ""
 
-#: config/tc-riscv.c:1805
+#: config/tc-riscv.c:2205
 #, c-format
 msgid "Improper CSRxI immediate (%lu)"
 msgstr ""
 
 #, c-format
 msgid "Improper CSRxI immediate (%lu)"
 msgstr ""
 
-#: config/tc-riscv.c:1820
+#: config/tc-riscv.c:2221
 #, c-format
 msgid "Improper CSR address (%lu)"
 msgstr ""
 
 #, c-format
 msgid "Improper CSR address (%lu)"
 msgstr ""
 
-#: config/tc-riscv.c:1997
+#: config/tc-riscv.c:2398
 msgid "lui expression not in range 0..1048575"
 msgstr ""
 
 msgid "lui expression not in range 0..1048575"
 msgstr ""
 
-#: config/tc-riscv.c:2033
+#: config/tc-riscv.c:2434
 msgid ""
 "bad value for opcode field, value must be 0...127 and lower 2 bits must be "
 "0x3"
 msgstr ""
 
 msgid ""
 "bad value for opcode field, value must be 0...127 and lower 2 bits must be "
 "0x3"
 msgstr ""
 
-#: config/tc-riscv.c:2049
+#: config/tc-riscv.c:2450
 msgid "bad value for opcode field, value must be 0...2"
 msgstr ""
 
 msgid "bad value for opcode field, value must be 0...2"
 msgstr ""
 
-#: config/tc-riscv.c:2059
+#: config/tc-riscv.c:2460
 #, c-format
 msgid "bad Opcode field specifier 'O%c'\n"
 msgstr ""
 
 #, c-format
 msgid "bad Opcode field specifier 'O%c'\n"
 msgstr ""
 
-#: config/tc-riscv.c:2072
+#: config/tc-riscv.c:2473
 msgid "bad value for funct7 field, value must be 0...127"
 msgstr ""
 
 msgid "bad value for funct7 field, value must be 0...127"
 msgstr ""
 
-#: config/tc-riscv.c:2113
+#: config/tc-riscv.c:2514
 #, c-format
 msgid "bad FUNCT field specifier 'F%c'\n"
 msgstr ""
 
 #, c-format
 msgid "bad FUNCT field specifier 'F%c'\n"
 msgstr ""
 
-#: config/tc-riscv.c:2127
+#: config/tc-riscv.c:2528
 #, c-format
 msgid "internal error: bad argument type %c"
 msgstr ""
 
 #, c-format
 msgid "internal error: bad argument type %c"
 msgstr ""
 
-#: config/tc-riscv.c:2132
+#: config/tc-riscv.c:2533
 msgid "illegal operands"
 msgstr ""
 
 msgid "illegal operands"
 msgstr ""
 
-#: config/tc-riscv.c:2508
+#: config/tc-riscv.c:2961
 #, c-format
 msgid "internal error: bad CFA value #%d"
 msgstr ""
 
 #, c-format
 msgid "internal error: bad CFA value #%d"
 msgstr ""
 
-#: config/tc-riscv.c:2589
+#: config/tc-riscv.c:3042
 #, c-format
 msgid "internal error: bad relocation #%d"
 msgstr ""
 
 #, c-format
 msgid "internal error: bad relocation #%d"
 msgstr ""
 
-#: config/tc-riscv.c:2594
+#: config/tc-riscv.c:3047
 msgid "unsupported symbol subtraction"
 msgstr ""
 
 msgid "unsupported symbol subtraction"
 msgstr ""
 
-#: config/tc-riscv.c:2689
+#: config/tc-riscv.c:3146
 msgid ".option pop with no .option push"
 msgstr ""
 
 msgid ".option pop with no .option push"
 msgstr ""
 
-#: config/tc-riscv.c:2699
+#: config/tc-riscv.c:3156
 #, c-format
 msgid "Unrecognized .option directive: %s\n"
 msgstr ""
 
 #, c-format
 msgid "Unrecognized .option directive: %s\n"
 msgstr ""
 
-#: config/tc-riscv.c:2719
+#: config/tc-riscv.c:3176
 #, c-format
 msgid "Unsupported use of %s"
 msgstr ""
 
 #, c-format
 msgid "Unsupported use of %s"
 msgstr ""
 
-#: config/tc-riscv.c:2874
+#: config/tc-riscv.c:3331
 #, c-format
 msgid "cannot represent %s relocation in object file"
 msgstr ""
 
 #, c-format
 msgid "cannot represent %s relocation in object file"
 msgstr ""
 
-#: config/tc-riscv.c:3015
+#: config/tc-riscv.c:3472
 #, c-format
 msgid ""
 "RISC-V options:\n"
 #, c-format
 msgid ""
 "RISC-V options:\n"
-"  -fpic          generate position-independent code\n"
-"  -fno-pic       don't generate position-independent code (default)\n"
-"  -march=ISA     set the RISC-V architecture\n"
-"  -mabi=ABI      set the RISC-V ABI\n"
-"  -mrelax        enable relax (default)\n"
-"  -mno-relax     disable relax\n"
-"  -march-attr    generate RISC-V arch attribute\n"
-"  -mno-arch-attr don't generate RISC-V arch attribute\n"
+"  -fpic                       generate position-independent code\n"
+"  -fno-pic                    don't generate position-independent code "
+"(default)\n"
+"  -march=ISA                  set the RISC-V architecture\n"
+"  -misa-spec=ISAspec          set the RISC-V ISA spec (2.2, 20190608, "
+"20191213)\n"
+"  -mpriv-spec=PRIVspec        set the RISC-V privilege spec (1.9, 1.9.1, "
+"1.10, 1.11)\n"
+"  -mabi=ABI                   set the RISC-V ABI\n"
+"  -mrelax                     enable relax (default)\n"
+"  -mno-relax                  disable relax\n"
+"  -march-attr                 generate RISC-V arch attribute\n"
+"  -mno-arch-attr              don't generate RISC-V arch attribute\n"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-riscv.c:3050
+#: config/tc-riscv.c:3509
 #, c-format
 msgid "unknown register `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown register `%s'"
 msgstr ""
 
-#: config/tc-riscv.c:3071
+#: config/tc-riscv.c:3530
 #, c-format
 msgid "non-constant .%cleb128 is not supported"
 msgstr ""
 
 #, c-format
 msgid "non-constant .%cleb128 is not supported"
 msgstr ""
 
-#: config/tc-riscv.c:3196
+#: config/tc-riscv.c:3610
+#, c-format
+msgid "internal: bad RISC-V priv spec string (%s)"
+msgstr ""
+
+#: config/tc-riscv.c:3696
 msgid ".attribute arch must set before any instructions"
 msgstr ""
 
 msgid ".attribute arch must set before any instructions"
 msgstr ""
 
+#: config/tc-riscv.c:3713
+msgid ".attribute priv spec must set before any instructions"
+msgstr ""
+
 #: config/tc-rl78.c:213
 msgid "16-bit relocation used in 8-bit operand"
 msgstr ""
 #: config/tc-rl78.c:213
 msgid "16-bit relocation used in 8-bit operand"
 msgstr ""
@@ -15488,12 +15735,12 @@ msgstr ""
 msgid "8-bit relocation used in 16-bit operand"
 msgstr ""
 
 msgid "8-bit relocation used in 16-bit operand"
 msgstr ""
 
-#: config/tc-rl78.c:243 config/tc-rx.c:889
+#: config/tc-rl78.c:243 config/tc-rx.c:888
 #, c-format
 msgid "Value %d doesn't fit in unsigned %d-bit field"
 msgstr ""
 
 #, c-format
 msgid "Value %d doesn't fit in unsigned %d-bit field"
 msgstr ""
 
-#: config/tc-rl78.c:249 config/tc-rx.c:895
+#: config/tc-rl78.c:249 config/tc-rx.c:894
 #, c-format
 msgid "Value %d doesn't fit in signed %d-bit field"
 msgstr ""
 #, c-format
 msgid "Value %d doesn't fit in signed %d-bit field"
 msgstr ""
@@ -15543,7 +15790,7 @@ msgstr ""
 msgid "%%%s() must be outermost term in expression"
 msgstr ""
 
 msgid "%%%s() must be outermost term in expression"
 msgstr ""
 
-#: config/tc-rl78.c:678 config/tc-rx.c:2256
+#: config/tc-rl78.c:678 config/tc-rx.c:2255
 #, c-format
 msgid "unsupported constant size %d\n"
 msgstr ""
 #, c-format
 msgid "unsupported constant size %d\n"
 msgstr ""
@@ -15558,11 +15805,11 @@ msgstr ""
 msgid "%%hi8 only applies to .byte"
 msgstr ""
 
 msgid "%%hi8 only applies to .byte"
 msgstr ""
 
-#: config/tc-rl78.c:716 config/tc-rx.c:2263
+#: config/tc-rl78.c:716 config/tc-rx.c:2262
 msgid "difference of two symbols only supported with .long, .short, or .byte"
 msgstr ""
 
 msgid "difference of two symbols only supported with .long, .short, or .byte"
 msgstr ""
 
-#: config/tc-rl78.c:1237 config/tc-rx.c:2190
+#: config/tc-rl78.c:1237 config/tc-rx.c:2189
 #, c-format
 msgid "bad frag at %p : fix %ld addr %ld %ld \n"
 msgstr ""
 #, c-format
 msgid "bad frag at %p : fix %ld addr %ld %ld \n"
 msgstr ""
@@ -15577,140 +15824,140 @@ msgstr ""
 msgid "value of %ld too large for 16-bit branch"
 msgstr ""
 
 msgid "value of %ld too large for 16-bit branch"
 msgstr ""
 
-#: config/tc-rl78.c:1513 config/tc-rx.c:2455
+#: config/tc-rl78.c:1513 config/tc-rx.c:2454
 #, c-format
 msgid "Unknown reloc in md_apply_fix: %s"
 msgstr ""
 
 #, c-format
 msgid "Unknown reloc in md_apply_fix: %s"
 msgstr ""
 
-#: config/tc-rx.c:195
+#: config/tc-rx.c:194
 #, c-format
 msgid "unrecognised RX CPU type %s"
 msgstr ""
 
 #, c-format
 msgid "unrecognised RX CPU type %s"
 msgstr ""
 
-#: config/tc-rx.c:210
+#: config/tc-rx.c:209
 #, c-format
 msgid " RX specific command line options:\n"
 msgstr ""
 
 #, c-format
 msgid " RX specific command line options:\n"
 msgstr ""
 
-#: config/tc-rx.c:211
+#: config/tc-rx.c:210
 #, c-format
 msgid "  --mbig-endian-data\n"
 msgstr ""
 
 #, c-format
 msgid "  --mbig-endian-data\n"
 msgstr ""
 
-#: config/tc-rx.c:212
+#: config/tc-rx.c:211
 #, c-format
 msgid "  --mlittle-endian-data [default]\n"
 msgstr ""
 
 #, c-format
 msgid "  --mlittle-endian-data [default]\n"
 msgstr ""
 
-#: config/tc-rx.c:213
+#: config/tc-rx.c:212
 #, c-format
 msgid "  --m32bit-doubles [default]\n"
 msgstr ""
 
 #, c-format
 msgid "  --m32bit-doubles [default]\n"
 msgstr ""
 
-#: config/tc-rx.c:214
+#: config/tc-rx.c:213
 #, c-format
 msgid "  --m64bit-doubles\n"
 msgstr ""
 
 #, c-format
 msgid "  --m64bit-doubles\n"
 msgstr ""
 
-#: config/tc-rx.c:215
+#: config/tc-rx.c:214
 #, c-format
 msgid "  --muse-conventional-section-names\n"
 msgstr ""
 
 #, c-format
 msgid "  --muse-conventional-section-names\n"
 msgstr ""
 
-#: config/tc-rx.c:216
+#: config/tc-rx.c:215
 #, c-format
 msgid "  --muse-renesas-section-names [default]\n"
 msgstr ""
 
 #, c-format
 msgid "  --muse-renesas-section-names [default]\n"
 msgstr ""
 
-#: config/tc-rx.c:217
+#: config/tc-rx.c:216
 #, c-format
 msgid "  --msmall-data-limit\n"
 msgstr ""
 
 #, c-format
 msgid "  --msmall-data-limit\n"
 msgstr ""
 
-#: config/tc-rx.c:218
+#: config/tc-rx.c:217
 #, c-format
 msgid "  --mrelax\n"
 msgstr ""
 
 #, c-format
 msgid "  --mrelax\n"
 msgstr ""
 
-#: config/tc-rx.c:219
+#: config/tc-rx.c:218
 #, c-format
 msgid "  --mpid\n"
 msgstr ""
 
 #, c-format
 msgid "  --mpid\n"
 msgstr ""
 
-#: config/tc-rx.c:220
+#: config/tc-rx.c:219
 #, c-format
 msgid "  --mint-register=<value>\n"
 msgstr ""
 
 #, c-format
 msgid "  --mint-register=<value>\n"
 msgstr ""
 
-#: config/tc-rx.c:221
+#: config/tc-rx.c:220
 #, c-format
 msgid "  --mcpu=<rx100|rx200|rx600|rx610|rxv2|rxv3|rxv3-dfpu>\n"
 msgstr ""
 
 #, c-format
 msgid "  --mcpu=<rx100|rx200|rx600|rx610|rxv2|rxv3|rxv3-dfpu>\n"
 msgstr ""
 
-#: config/tc-rx.c:222
+#: config/tc-rx.c:221
 #, c-format
 msgid "  --mno-allow-string-insns"
 msgstr ""
 
 #, c-format
 msgid "  --mno-allow-string-insns"
 msgstr ""
 
-#: config/tc-rx.c:302
+#: config/tc-rx.c:301
 msgid "no filename following .INCLUDE pseudo-op"
 msgstr ""
 
 msgid "no filename following .INCLUDE pseudo-op"
 msgstr ""
 
-#: config/tc-rx.c:405
+#: config/tc-rx.c:404
 #, c-format
 msgid "unable to locate include file: %s"
 msgstr ""
 
 #, c-format
 msgid "unable to locate include file: %s"
 msgstr ""
 
-#: config/tc-rx.c:456
+#: config/tc-rx.c:455
 #, c-format
 msgid "unrecognised alignment value in .SECTION directive: %s"
 msgstr ""
 
 #, c-format
 msgid "unrecognised alignment value in .SECTION directive: %s"
 msgstr ""
 
-#: config/tc-rx.c:473
+#: config/tc-rx.c:472
 #, c-format
 msgid "unknown parameter following .SECTION directive: %s"
 msgstr ""
 
 #, c-format
 msgid "unknown parameter following .SECTION directive: %s"
 msgstr ""
 
-#: config/tc-rx.c:559
+#: config/tc-rx.c:558
 msgid "expecting either ON or OFF after .list"
 msgstr ""
 
 msgid "expecting either ON or OFF after .list"
 msgstr ""
 
-#: config/tc-rx.c:595
+#: config/tc-rx.c:594
 #, c-format
 msgid "The \".%s\" pseudo-op is not implemented\n"
 msgstr ""
 
 #, c-format
 msgid "The \".%s\" pseudo-op is not implemented\n"
 msgstr ""
 
-#: config/tc-rx.c:968 config/tc-rx.c:970
+#: config/tc-rx.c:967 config/tc-rx.c:969
 #, c-format
 msgid "Value %d and %d out of range"
 msgstr ""
 
 #, c-format
 msgid "Value %d and %d out of range"
 msgstr ""
 
-#: config/tc-rx.c:1125
+#: config/tc-rx.c:1124
 msgid "The .DEFINE pseudo-op is not implemented"
 msgstr ""
 
 msgid "The .DEFINE pseudo-op is not implemented"
 msgstr ""
 
-#: config/tc-rx.c:1127
+#: config/tc-rx.c:1126
 msgid "The .MACRO pseudo-op is not implemented"
 msgstr ""
 
 msgid "The .MACRO pseudo-op is not implemented"
 msgstr ""
 
-#: config/tc-rx.c:1129
+#: config/tc-rx.c:1128
 msgid "The .BTEQU pseudo-op is not implemented."
 msgstr ""
 
 msgid "The .BTEQU pseudo-op is not implemented."
 msgstr ""
 
-#: config/tc-rx.c:2121
+#: config/tc-rx.c:2120
 msgid "invalid immediate size"
 msgstr ""
 
 msgid "invalid immediate size"
 msgstr ""
 
-#: config/tc-rx.c:2140
+#: config/tc-rx.c:2139
 msgid "invalid immediate field position"
 msgstr ""
 
 msgid "invalid immediate field position"
 msgstr ""
 
-#: config/tc-rx.c:2307
+#: config/tc-rx.c:2306
 #, c-format
 msgid "jump not 3..10 bytes away (is %d)"
 msgstr ""
 
 #, c-format
 msgid "jump not 3..10 bytes away (is %d)"
 msgstr ""
 
-#: config/tc-rx.c:2698
+#: config/tc-rx.c:2697
 msgid ""
 "Use of an RX string instruction detected in a file being assembled without "
 "string instruction support"
 msgid ""
 "Use of an RX string instruction detected in a file being assembled without "
 "string instruction support"
@@ -16231,148 +16478,148 @@ msgstr ""
 msgid "score3d instruction."
 msgstr ""
 
 msgid "score3d instruction."
 msgstr ""
 
-#: config/tc-score.c:6026
+#: config/tc-score.c:6014
 msgid "Unsupported use of .gpword"
 msgstr ""
 
 msgid "Unsupported use of .gpword"
 msgstr ""
 
-#: config/tc-score.c:6122
+#: config/tc-score.c:6110
 #, c-format
 msgid "BSS length (%d) < 0 ignored"
 msgstr ""
 
 #, c-format
 msgid "BSS length (%d) < 0 ignored"
 msgstr ""
 
-#: config/tc-score.c:6137 read.c:2468
+#: config/tc-score.c:6124 read.c:2469
 #, c-format
 msgid "error setting flags for \".sbss\": %s"
 msgstr ""
 
 #, c-format
 msgid "error setting flags for \".sbss\": %s"
 msgstr ""
 
-#: config/tc-score.c:6152 config/tc-sparc.c:4170
+#: config/tc-score.c:6138 config/tc-sparc.c:4170
 msgid "missing alignment"
 msgstr ""
 
 msgid "missing alignment"
 msgstr ""
 
-#: config/tc-score.c:6189
+#: config/tc-score.c:6175
 #, c-format
 msgid "alignment too large; %d assumed"
 msgstr ""
 
 #, c-format
 msgid "alignment too large; %d assumed"
 msgstr ""
 
-#: config/tc-score.c:6194 read.c:2529
+#: config/tc-score.c:6180 read.c:2530
 msgid "alignment negative; 0 assumed"
 msgstr ""
 
 #. Error routine.
 msgid "alignment negative; 0 assumed"
 msgstr ""
 
 #. Error routine.
-#: config/tc-score.c:6603 config/tc-score.c:6627
+#: config/tc-score.c:6585 config/tc-score.c:6609
 msgid "size is not 4 or 6"
 msgstr ""
 
 msgid "size is not 4 or 6"
 msgstr ""
 
-#: config/tc-score.c:6686
+#: config/tc-score.c:6668
 msgid "bad call to MD_ATOF()"
 msgstr ""
 
 msgid "bad call to MD_ATOF()"
 msgstr ""
 
-#: config/tc-score.c:7185 config/tc-score.c:7251
+#: config/tc-score.c:7167 config/tc-score.c:7233
 #, c-format
 msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]"
 msgstr ""
 
 #, c-format
 msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]"
 msgstr ""
 
-#: config/tc-score.c:7200 config/tc-score.c:7229 config/tc-score.c:7281
+#: config/tc-score.c:7182 config/tc-score.c:7211 config/tc-score.c:7263
 #, c-format
 msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19-1]"
 msgstr ""
 
 #, c-format
 msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19-1]"
 msgstr ""
 
-#: config/tc-score.c:7306
+#: config/tc-score.c:7288
 #, c-format
 msgid " branch relocation truncate (0x%x)  [-2^9 ~ 2^9-1]"
 msgstr ""
 
 #, c-format
 msgid " branch relocation truncate (0x%x)  [-2^9 ~ 2^9-1]"
 msgstr ""
 
-#: config/tc-score.c:7476
+#: config/tc-score.c:7458
 #, c-format
 msgid "cannot represent %s relocation in this object file format1"
 msgstr ""
 
 #, c-format
 msgid "cannot represent %s relocation in this object file format1"
 msgstr ""
 
-#: config/tc-score.c:7767
+#: config/tc-score.c:7749
 #, c-format
 msgid "Sunplus-v2-0-0-20060510\n"
 msgstr ""
 
 #, c-format
 msgid "Sunplus-v2-0-0-20060510\n"
 msgstr ""
 
-#: config/tc-score.c:7787
+#: config/tc-score.c:7769
 #, c-format
 msgid " Score-specific assembler options:\n"
 msgstr ""
 
 #, c-format
 msgid " Score-specific assembler options:\n"
 msgstr ""
 
-#: config/tc-score.c:7789
+#: config/tc-score.c:7771
 #, c-format
 msgid "        -EB\t\tassemble code for a big-endian cpu\n"
 msgstr ""
 
 #, c-format
 msgid "        -EB\t\tassemble code for a big-endian cpu\n"
 msgstr ""
 
-#: config/tc-score.c:7794
+#: config/tc-score.c:7776
 #, c-format
 msgid "        -EL\t\tassemble code for a little-endian cpu\n"
 msgstr ""
 
 #, c-format
 msgid "        -EL\t\tassemble code for a little-endian cpu\n"
 msgstr ""
 
-#: config/tc-score.c:7798
+#: config/tc-score.c:7780
 #, c-format
 msgid "        -FIXDD\t\tfix data dependencies\n"
 msgstr ""
 
 #, c-format
 msgid "        -FIXDD\t\tfix data dependencies\n"
 msgstr ""
 
-#: config/tc-score.c:7800
+#: config/tc-score.c:7782
 #, c-format
 msgid ""
 "        -NWARN\t\tdo not print warning message when fixing data "
 "dependencies\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "        -NWARN\t\tdo not print warning message when fixing data "
 "dependencies\n"
 msgstr ""
 
-#: config/tc-score.c:7802
+#: config/tc-score.c:7784
 #, c-format
 msgid "        -SCORE5\t\tassemble code for target SCORE5\n"
 msgstr ""
 
 #, c-format
 msgid "        -SCORE5\t\tassemble code for target SCORE5\n"
 msgstr ""
 
-#: config/tc-score.c:7804
+#: config/tc-score.c:7786
 #, c-format
 msgid "        -SCORE5U\tassemble code for target SCORE5U\n"
 msgstr ""
 
 #, c-format
 msgid "        -SCORE5U\tassemble code for target SCORE5U\n"
 msgstr ""
 
-#: config/tc-score.c:7806
+#: config/tc-score.c:7788
 #, c-format
 msgid "        -SCORE7\t\tassemble code for target SCORE7 [default]\n"
 msgstr ""
 
 #, c-format
 msgid "        -SCORE7\t\tassemble code for target SCORE7 [default]\n"
 msgstr ""
 
-#: config/tc-score.c:7808
+#: config/tc-score.c:7790
 #, c-format
 msgid "        -SCORE3\t\tassemble code for target SCORE3\n"
 msgstr ""
 
 #, c-format
 msgid "        -SCORE3\t\tassemble code for target SCORE3\n"
 msgstr ""
 
-#: config/tc-score.c:7810
+#: config/tc-score.c:7792
 #, c-format
 msgid "        -march=score7\tassemble code for target SCORE7 [default]\n"
 msgstr ""
 
 #, c-format
 msgid "        -march=score7\tassemble code for target SCORE7 [default]\n"
 msgstr ""
 
-#: config/tc-score.c:7812
+#: config/tc-score.c:7794
 #, c-format
 msgid "        -march=score3\tassemble code for target SCORE3\n"
 msgstr ""
 
 #, c-format
 msgid "        -march=score3\tassemble code for target SCORE3\n"
 msgstr ""
 
-#: config/tc-score.c:7814
+#: config/tc-score.c:7796
 #, c-format
 msgid ""
 "        -USE_R1\t\tassemble code for no warning message when using temp "
 "register r1\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "        -USE_R1\t\tassemble code for no warning message when using temp "
 "register r1\n"
 msgstr ""
 
-#: config/tc-score.c:7816
+#: config/tc-score.c:7798
 #, c-format
 msgid "        -KPIC\t\tgenerate PIC\n"
 msgstr ""
 
 #, c-format
 msgid "        -KPIC\t\tgenerate PIC\n"
 msgstr ""
 
-#: config/tc-score.c:7818
+#: config/tc-score.c:7800
 #, c-format
 msgid "        -O0\t\tdo not perform any optimizations\n"
 msgstr ""
 
 #, c-format
 msgid "        -O0\t\tdo not perform any optimizations\n"
 msgstr ""
 
-#: config/tc-score.c:7820
+#: config/tc-score.c:7802
 #, c-format
 msgid ""
 "        -G gpnum\tassemble code for setting gpsize, default is 8 bytes\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "        -G gpnum\tassemble code for setting gpsize, default is 8 bytes\n"
 msgstr ""
 
-#: config/tc-score.c:7822
+#: config/tc-score.c:7804
 #, c-format
 msgid "        -V \t\tSunplus release version\n"
 msgstr ""
 #, c-format
 msgid "        -V \t\tSunplus release version\n"
 msgstr ""
@@ -16431,122 +16678,122 @@ msgstr ""
 msgid "Invalid register: 'r%d'"
 msgstr ""
 
 msgid "Invalid register: 'r%d'"
 msgstr ""
 
-#: config/tc-sh.c:2120
+#: config/tc-sh.c:2121
 #, c-format
 msgid "failed for %d\n"
 msgstr ""
 
 #, c-format
 msgid "failed for %d\n"
 msgstr ""
 
-#: config/tc-sh.c:2126
+#: config/tc-sh.c:2127
 msgid "misplaced PIC operand"
 msgstr ""
 
 msgid "misplaced PIC operand"
 msgstr ""
 
-#: config/tc-sh.c:2237 config/tc-sh.c:2610
+#: config/tc-sh.c:2238 config/tc-sh.c:2611
 msgid "invalid operands for opcode"
 msgstr ""
 
 msgid "invalid operands for opcode"
 msgstr ""
 
-#: config/tc-sh.c:2242
+#: config/tc-sh.c:2243
 msgid "insn can't be combined with parallel processing insn"
 msgstr ""
 
 msgid "insn can't be combined with parallel processing insn"
 msgstr ""
 
-#: config/tc-sh.c:2249 config/tc-sh.c:2260 config/tc-sh.c:2292
+#: config/tc-sh.c:2250 config/tc-sh.c:2261 config/tc-sh.c:2293
 msgid "multiple movx specifications"
 msgstr ""
 
 msgid "multiple movx specifications"
 msgstr ""
 
-#: config/tc-sh.c:2254 config/tc-sh.c:2276 config/tc-sh.c:2315
+#: config/tc-sh.c:2255 config/tc-sh.c:2277 config/tc-sh.c:2316
 msgid "multiple movy specifications"
 msgstr ""
 
 msgid "multiple movy specifications"
 msgstr ""
 
-#: config/tc-sh.c:2263 config/tc-sh.c:2296
+#: config/tc-sh.c:2264 config/tc-sh.c:2297
 msgid "invalid movx address register"
 msgstr ""
 
 msgid "invalid movx address register"
 msgstr ""
 
-#: config/tc-sh.c:2265
+#: config/tc-sh.c:2266
 msgid "insn cannot be combined with non-nopy"
 msgstr ""
 
 msgid "insn cannot be combined with non-nopy"
 msgstr ""
 
-#: config/tc-sh.c:2279 config/tc-sh.c:2335
+#: config/tc-sh.c:2280 config/tc-sh.c:2336
 msgid "invalid movy address register"
 msgstr ""
 
 msgid "invalid movy address register"
 msgstr ""
 
-#: config/tc-sh.c:2281
+#: config/tc-sh.c:2282
 msgid "insn cannot be combined with non-nopx"
 msgstr ""
 
 msgid "insn cannot be combined with non-nopx"
 msgstr ""
 
-#: config/tc-sh.c:2294
+#: config/tc-sh.c:2295
 msgid "previous movy requires nopx"
 msgstr ""
 
 msgid "previous movy requires nopx"
 msgstr ""
 
-#: config/tc-sh.c:2302 config/tc-sh.c:2307
+#: config/tc-sh.c:2303 config/tc-sh.c:2308
 msgid "invalid movx dsp register"
 msgstr ""
 
 msgid "invalid movx dsp register"
 msgstr ""
 
-#: config/tc-sh.c:2317
+#: config/tc-sh.c:2318
 msgid "previous movx requires nopy"
 msgstr ""
 
 msgid "previous movx requires nopy"
 msgstr ""
 
-#: config/tc-sh.c:2326 config/tc-sh.c:2331
+#: config/tc-sh.c:2327 config/tc-sh.c:2332
 msgid "invalid movy dsp register"
 msgstr ""
 
 msgid "invalid movy dsp register"
 msgstr ""
 
-#: config/tc-sh.c:2341
+#: config/tc-sh.c:2342
 msgid "dsp immediate shift value not constant"
 msgstr ""
 
 msgid "dsp immediate shift value not constant"
 msgstr ""
 
-#: config/tc-sh.c:2355 config/tc-sh.c:2381
+#: config/tc-sh.c:2356 config/tc-sh.c:2382
 msgid "multiple parallel processing specifications"
 msgstr ""
 
 msgid "multiple parallel processing specifications"
 msgstr ""
 
-#: config/tc-sh.c:2374
+#: config/tc-sh.c:2375
 msgid "multiple condition specifications"
 msgstr ""
 
 msgid "multiple condition specifications"
 msgstr ""
 
-#: config/tc-sh.c:2412
+#: config/tc-sh.c:2413
 msgid "insn cannot be combined with pmuls"
 msgstr ""
 
 msgid "insn cannot be combined with pmuls"
 msgstr ""
 
-#: config/tc-sh.c:2428
+#: config/tc-sh.c:2429
 msgid "bad combined pmuls output operand"
 msgstr ""
 
 msgid "bad combined pmuls output operand"
 msgstr ""
 
-#: config/tc-sh.c:2438
+#: config/tc-sh.c:2439
 msgid "destination register is same for parallel insns"
 msgstr ""
 
 msgid "destination register is same for parallel insns"
 msgstr ""
 
-#: config/tc-sh.c:2447
+#: config/tc-sh.c:2448
 msgid "condition not followed by conditionalizable insn"
 msgstr ""
 
 msgid "condition not followed by conditionalizable insn"
 msgstr ""
 
-#: config/tc-sh.c:2457
+#: config/tc-sh.c:2458
 msgid "unrecognized characters at end of parallel processing insn"
 msgstr ""
 
 msgid "unrecognized characters at end of parallel processing insn"
 msgstr ""
 
-#: config/tc-sh.c:2549
+#: config/tc-sh.c:2550
 msgid "opcode not valid for this cpu variant"
 msgstr ""
 
 msgid "opcode not valid for this cpu variant"
 msgstr ""
 
-#: config/tc-sh.c:2580
+#: config/tc-sh.c:2581
 msgid "Delayed branches not available on SH1"
 msgstr ""
 
 msgid "Delayed branches not available on SH1"
 msgstr ""
 
-#: config/tc-sh.c:2615
+#: config/tc-sh.c:2616
 #, c-format
 msgid "excess operands: '%s'"
 msgstr ""
 
 #, c-format
 msgid "excess operands: '%s'"
 msgstr ""
 
-#: config/tc-sh.c:2692
+#: config/tc-sh.c:2693
 msgid ".uses pseudo-op seen when not relaxing"
 msgstr ""
 
 msgid ".uses pseudo-op seen when not relaxing"
 msgstr ""
 
-#: config/tc-sh.c:2698
+#: config/tc-sh.c:2699
 msgid "bad .uses format"
 msgstr ""
 
 msgid "bad .uses format"
 msgstr ""
 
-#: config/tc-sh.c:2816
+#: config/tc-sh.c:2817
 #, c-format
 msgid "Invalid argument to --isa option: %s"
 msgstr ""
 
 #, c-format
 msgid "Invalid argument to --isa option: %s"
 msgstr ""
 
-#: config/tc-sh.c:2840
+#: config/tc-sh.c:2841
 #, c-format
 msgid ""
 "SH options:\n"
 #, c-format
 msgid ""
 "SH options:\n"
@@ -16563,70 +16810,70 @@ msgid ""
 "    | fp"
 msgstr ""
 
 "    | fp"
 msgstr ""
 
-#: config/tc-sh.c:2865
+#: config/tc-sh.c:2866
 #, c-format
 msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
 msgstr ""
 
 #, c-format
 msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
 msgstr ""
 
-#: config/tc-sh.c:2941
+#: config/tc-sh.c:2942
 msgid ".uses does not refer to a local symbol in the same section"
 msgstr ""
 
 msgid ".uses does not refer to a local symbol in the same section"
 msgstr ""
 
-#: config/tc-sh.c:2960
+#: config/tc-sh.c:2961
 msgid "can't find fixup pointed to by .uses"
 msgstr ""
 
 msgid "can't find fixup pointed to by .uses"
 msgstr ""
 
-#: config/tc-sh.c:2980
+#: config/tc-sh.c:2981
 msgid ".uses target does not refer to a local symbol in the same section"
 msgstr ""
 
 msgid ".uses target does not refer to a local symbol in the same section"
 msgstr ""
 
-#: config/tc-sh.c:3053
+#: config/tc-sh.c:3054
 msgid "displacement overflows 12-bit field"
 msgstr ""
 
 msgid "displacement overflows 12-bit field"
 msgstr ""
 
-#: config/tc-sh.c:3056
+#: config/tc-sh.c:3057
 #, c-format
 msgid "displacement to defined symbol %s overflows 12-bit field"
 msgstr ""
 
 #, c-format
 msgid "displacement to defined symbol %s overflows 12-bit field"
 msgstr ""
 
-#: config/tc-sh.c:3060
+#: config/tc-sh.c:3061
 #, c-format
 msgid "displacement to undefined symbol %s overflows 12-bit field"
 msgstr ""
 
 #, c-format
 msgid "displacement to undefined symbol %s overflows 12-bit field"
 msgstr ""
 
-#: config/tc-sh.c:3133
+#: config/tc-sh.c:3134
 msgid "displacement overflows 8-bit field"
 msgstr ""
 
 msgid "displacement overflows 8-bit field"
 msgstr ""
 
-#: config/tc-sh.c:3136
+#: config/tc-sh.c:3137
 #, c-format
 msgid "displacement to defined symbol %s overflows 8-bit field"
 msgstr ""
 
 #, c-format
 msgid "displacement to defined symbol %s overflows 8-bit field"
 msgstr ""
 
-#: config/tc-sh.c:3140
+#: config/tc-sh.c:3141
 #, c-format
 msgid "displacement to undefined symbol %s overflows 8-bit field "
 msgstr ""
 
 #, c-format
 msgid "displacement to undefined symbol %s overflows 8-bit field "
 msgstr ""
 
-#: config/tc-sh.c:3153
+#: config/tc-sh.c:3154
 #, c-format
 msgid "overflow in branch to %s; converted into longer instruction sequence"
 msgstr ""
 
 #, c-format
 msgid "overflow in branch to %s; converted into longer instruction sequence"
 msgstr ""
 
-#: config/tc-sh.c:3218 config/tc-sh.c:3265 config/tc-sparc.c:4634
+#: config/tc-sh.c:3219 config/tc-sh.c:3266 config/tc-sparc.c:4634
 #: config/tc-sparc.c:4658
 msgid "misaligned data"
 msgstr ""
 
 #: config/tc-sparc.c:4658
 msgid "misaligned data"
 msgstr ""
 
-#: config/tc-sh.c:3571
+#: config/tc-sh.c:3572
 msgid "offset to unaligned destination"
 msgstr ""
 
 msgid "offset to unaligned destination"
 msgstr ""
 
-#: config/tc-sh.c:3576
+#: config/tc-sh.c:3577
 msgid "negative offset"
 msgstr ""
 
 msgid "negative offset"
 msgstr ""
 
-#: config/tc-sh.c:3716
+#: config/tc-sh.c:3717
 msgid "misaligned offset"
 msgstr ""
 
 msgid "misaligned offset"
 msgstr ""
 
@@ -16980,7 +17227,7 @@ msgstr ""
 msgid "negative alignment"
 msgstr ""
 
 msgid "negative alignment"
 msgstr ""
 
-#: config/tc-sparc.c:4189 config/tc-sparc.c:4327 read.c:1523 read.c:2541
+#: config/tc-sparc.c:4189 config/tc-sparc.c:4327 read.c:1524 read.c:2542
 msgid "alignment not a power of 2"
 msgstr ""
 
 msgid "alignment not a power of 2"
 msgstr ""
 
@@ -18963,7 +19210,7 @@ msgstr ""
 msgid "displacement is too large"
 msgstr ""
 
 msgid "displacement is too large"
 msgstr ""
 
-#: config/tc-v850.c:2975 config/tc-xtensa.c:13030
+#: config/tc-v850.c:2975 config/tc-xtensa.c:13056
 msgid "invalid operand"
 msgstr ""
 
 msgid "invalid operand"
 msgstr ""
 
@@ -19282,7 +19529,7 @@ msgstr ""
 msgid "missing table index"
 msgstr ""
 
 msgid "missing table index"
 msgstr ""
 
-#: config/tc-wasm32.c:726 config/tc-z80.c:3306 read.c:3738
+#: config/tc-wasm32.c:726 config/tc-z80.c:3646 read.c:3739
 #, c-format
 msgid "junk at end of line, first unrecognized character is `%c'"
 msgstr ""
 #, c-format
 msgid "junk at end of line, first unrecognized character is `%c'"
 msgstr ""
@@ -19401,555 +19648,555 @@ msgstr ""
 msgid "unsupported fptr fixup"
 msgstr ""
 
 msgid "unsupported fptr fixup"
 msgstr ""
 
-#: config/tc-xtensa.c:649
+#: config/tc-xtensa.c:655
 msgid "illegal range of target hardware versions"
 msgstr ""
 
 msgid "illegal range of target hardware versions"
 msgstr ""
 
-#: config/tc-xtensa.c:825
+#: config/tc-xtensa.c:831
 msgid "--density option is ignored"
 msgstr ""
 
 msgid "--density option is ignored"
 msgstr ""
 
-#: config/tc-xtensa.c:828
+#: config/tc-xtensa.c:834
 msgid "--no-density option is ignored"
 msgstr ""
 
 msgid "--no-density option is ignored"
 msgstr ""
 
-#: config/tc-xtensa.c:846
+#: config/tc-xtensa.c:852
 msgid "--generics is deprecated; use --transform instead"
 msgstr ""
 
 msgid "--generics is deprecated; use --transform instead"
 msgstr ""
 
-#: config/tc-xtensa.c:849
+#: config/tc-xtensa.c:855
 msgid "--no-generics is deprecated; use --no-transform instead"
 msgstr ""
 
 msgid "--no-generics is deprecated; use --no-transform instead"
 msgstr ""
 
-#: config/tc-xtensa.c:852
+#: config/tc-xtensa.c:858
 msgid "--relax is deprecated; use --transform instead"
 msgstr ""
 
 msgid "--relax is deprecated; use --transform instead"
 msgstr ""
 
-#: config/tc-xtensa.c:855
+#: config/tc-xtensa.c:861
 msgid "--no-relax is deprecated; use --no-transform instead"
 msgstr ""
 
 msgid "--no-relax is deprecated; use --no-transform instead"
 msgstr ""
 
-#: config/tc-xtensa.c:872
+#: config/tc-xtensa.c:878
 msgid "--absolute-literals option not supported in this Xtensa configuration"
 msgstr ""
 
 msgid "--absolute-literals option not supported in this Xtensa configuration"
 msgstr ""
 
-#: config/tc-xtensa.c:945
+#: config/tc-xtensa.c:951
 msgid "prefer-l32r conflicts with prefer-const16"
 msgstr ""
 
 msgid "prefer-l32r conflicts with prefer-const16"
 msgstr ""
 
-#: config/tc-xtensa.c:951
+#: config/tc-xtensa.c:957
 msgid "prefer-const16 conflicts with prefer-l32r"
 msgstr ""
 
 msgid "prefer-const16 conflicts with prefer-l32r"
 msgstr ""
 
-#: config/tc-xtensa.c:960 config/tc-xtensa.c:969 config/tc-xtensa.c:973
+#: config/tc-xtensa.c:966 config/tc-xtensa.c:975 config/tc-xtensa.c:979
 msgid "invalid target hardware version"
 msgstr ""
 
 msgid "invalid target hardware version"
 msgstr ""
 
-#: config/tc-xtensa.c:1019
+#: config/tc-xtensa.c:1025
 msgid "no-auto-litpools is incompatible with auto-litpool-limit"
 msgstr ""
 
 msgid "no-auto-litpools is incompatible with auto-litpool-limit"
 msgstr ""
 
-#: config/tc-xtensa.c:1021 config/tc-xtensa.c:1024
+#: config/tc-xtensa.c:1027 config/tc-xtensa.c:1030
 msgid "invalid auto-litpool-limit argument"
 msgstr ""
 
 msgid "invalid auto-litpool-limit argument"
 msgstr ""
 
-#: config/tc-xtensa.c:1026
+#: config/tc-xtensa.c:1032
 msgid "invalid auto-litpool-limit argument (range is 100-10000)"
 msgstr ""
 
 msgid "invalid auto-litpool-limit argument (range is 100-10000)"
 msgstr ""
 
-#: config/tc-xtensa.c:1215
+#: config/tc-xtensa.c:1221
 msgid "unmatched .end directive"
 msgstr ""
 
 msgid "unmatched .end directive"
 msgstr ""
 
-#: config/tc-xtensa.c:1244
+#: config/tc-xtensa.c:1250
 msgid ".begin directive with no matching .end directive"
 msgstr ""
 
 msgid ".begin directive with no matching .end directive"
 msgstr ""
 
-#: config/tc-xtensa.c:1285
+#: config/tc-xtensa.c:1291
 msgid "[no-]generics is deprecated; use [no-]transform instead"
 msgstr ""
 
 msgid "[no-]generics is deprecated; use [no-]transform instead"
 msgstr ""
 
-#: config/tc-xtensa.c:1290
+#: config/tc-xtensa.c:1296
 msgid "[no-]relax is deprecated; use [no-]transform instead"
 msgstr ""
 
 msgid "[no-]relax is deprecated; use [no-]transform instead"
 msgstr ""
 
-#: config/tc-xtensa.c:1303
+#: config/tc-xtensa.c:1309
 #, c-format
 msgid "directive %s cannot be negated"
 msgstr ""
 
 #, c-format
 msgid "directive %s cannot be negated"
 msgstr ""
 
-#: config/tc-xtensa.c:1309
+#: config/tc-xtensa.c:1315
 msgid "unknown directive"
 msgstr ""
 
 msgid "unknown directive"
 msgstr ""
 
-#: config/tc-xtensa.c:1330 config/tc-xtensa.c:1426 config/tc-xtensa.c:1656
-#: config/tc-xtensa.c:5903
+#: config/tc-xtensa.c:1336 config/tc-xtensa.c:1432 config/tc-xtensa.c:1662
+#: config/tc-xtensa.c:5923
 msgid "directives are not valid inside bundles"
 msgstr ""
 
 msgid "directives are not valid inside bundles"
 msgstr ""
 
-#: config/tc-xtensa.c:1342
+#: config/tc-xtensa.c:1348
 msgid ".begin literal is deprecated; use .literal instead"
 msgstr ""
 
 msgid ".begin literal is deprecated; use .literal instead"
 msgstr ""
 
-#: config/tc-xtensa.c:1356
+#: config/tc-xtensa.c:1362
 msgid "cannot set literal_prefix inside literal fragment"
 msgstr ""
 
 msgid "cannot set literal_prefix inside literal fragment"
 msgstr ""
 
-#: config/tc-xtensa.c:1389
+#: config/tc-xtensa.c:1395
 msgid ".begin [no-]density is ignored"
 msgstr ""
 
 msgid ".begin [no-]density is ignored"
 msgstr ""
 
-#: config/tc-xtensa.c:1396 config/tc-xtensa.c:1446
+#: config/tc-xtensa.c:1402 config/tc-xtensa.c:1452
 msgid "Xtensa absolute literals option not supported; ignored"
 msgstr ""
 
 msgid "Xtensa absolute literals option not supported; ignored"
 msgstr ""
 
-#: config/tc-xtensa.c:1439
+#: config/tc-xtensa.c:1445
 msgid ".end [no-]density is ignored"
 msgstr ""
 
 msgid ".end [no-]density is ignored"
 msgstr ""
 
-#: config/tc-xtensa.c:1464
+#: config/tc-xtensa.c:1470
 #, c-format
 msgid "does not match begin %s%s at %s:%d"
 msgstr ""
 
 #, c-format
 msgid "does not match begin %s%s at %s:%d"
 msgstr ""
 
-#: config/tc-xtensa.c:1519
+#: config/tc-xtensa.c:1525
 msgid ".literal_position inside literal directive; ignoring"
 msgstr ""
 
 msgid ".literal_position inside literal directive; ignoring"
 msgstr ""
 
-#: config/tc-xtensa.c:1538
+#: config/tc-xtensa.c:1544
 msgid ".literal not allowed inside .begin literal region"
 msgstr ""
 
 msgid ".literal not allowed inside .begin literal region"
 msgstr ""
 
-#: config/tc-xtensa.c:1566
+#: config/tc-xtensa.c:1572
 msgid "expected comma or colon after symbol name; rest of line ignored"
 msgstr ""
 
 msgid "expected comma or colon after symbol name; rest of line ignored"
 msgstr ""
 
-#: config/tc-xtensa.c:1625
+#: config/tc-xtensa.c:1631
 msgid "fall through frequency must be greater than 0"
 msgstr ""
 
 msgid "fall through frequency must be greater than 0"
 msgstr ""
 
-#: config/tc-xtensa.c:1633
+#: config/tc-xtensa.c:1639
 msgid "branch target frequency must be greater than 0"
 msgstr ""
 
 msgid "branch target frequency must be greater than 0"
 msgstr ""
 
-#: config/tc-xtensa.c:1681
+#: config/tc-xtensa.c:1687
 #, c-format
 msgid "opcode-specific %s relocation used outside an instruction"
 msgstr ""
 
 #, c-format
 msgid "opcode-specific %s relocation used outside an instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:1691
+#: config/tc-xtensa.c:1697
 #, c-format
 msgid "invalid use of %s relocation"
 msgstr ""
 
 #, c-format
 msgid "invalid use of %s relocation"
 msgstr ""
 
-#: config/tc-xtensa.c:1887 config/tc-xtensa.c:1904
+#: config/tc-xtensa.c:1893 config/tc-xtensa.c:1910
 #, c-format
 msgid "bad register name: %s"
 msgstr ""
 
 #, c-format
 msgid "bad register name: %s"
 msgstr ""
 
-#: config/tc-xtensa.c:1893
+#: config/tc-xtensa.c:1899
 #, c-format
 msgid "bad register number: %s"
 msgstr ""
 
 #, c-format
 msgid "bad register number: %s"
 msgstr ""
 
-#: config/tc-xtensa.c:1957
+#: config/tc-xtensa.c:1963
 msgid "pcrel relocation not allowed in an instruction"
 msgstr ""
 
 msgid "pcrel relocation not allowed in an instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:2060
+#: config/tc-xtensa.c:2066
 msgid "extra colon"
 msgstr ""
 
 msgid "extra colon"
 msgstr ""
 
-#: config/tc-xtensa.c:2121
+#: config/tc-xtensa.c:2127
 msgid "incorrect register number, ignoring"
 msgstr ""
 
 msgid "incorrect register number, ignoring"
 msgstr ""
 
-#: config/tc-xtensa.c:2202
+#: config/tc-xtensa.c:2208
 #, c-format
 msgid "cannot encode opcode \"%s\""
 msgstr ""
 
 #, c-format
 msgid "cannot encode opcode \"%s\""
 msgstr ""
 
-#: config/tc-xtensa.c:2294
+#: config/tc-xtensa.c:2300
 #, c-format
 msgid "not enough operands (%d) for '%s'; expected %d"
 msgstr ""
 
 #, c-format
 msgid "not enough operands (%d) for '%s'; expected %d"
 msgstr ""
 
-#: config/tc-xtensa.c:2301
+#: config/tc-xtensa.c:2307
 #, c-format
 msgid "too many operands (%d) for '%s'; expected %d"
 msgstr ""
 
 #, c-format
 msgid "too many operands (%d) for '%s'; expected %d"
 msgstr ""
 
-#: config/tc-xtensa.c:2352
+#: config/tc-xtensa.c:2358
 #, c-format
 msgid "invalid register '%s' for '%s' instruction"
 msgstr ""
 
 #, c-format
 msgid "invalid register '%s' for '%s' instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:2359
+#: config/tc-xtensa.c:2365
 #, c-format
 msgid "invalid register number (%ld) for '%s' instruction"
 msgstr ""
 
 #, c-format
 msgid "invalid register number (%ld) for '%s' instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:2426
+#: config/tc-xtensa.c:2432
 #, c-format
 msgid "invalid register number (%ld) for '%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid register number (%ld) for '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:2813
+#: config/tc-xtensa.c:2831
 #, c-format
 msgid "operand %d of '%s' has out of range value '%u'"
 msgstr ""
 
 #, c-format
 msgid "operand %d of '%s' has out of range value '%u'"
 msgstr ""
 
-#: config/tc-xtensa.c:2819
+#: config/tc-xtensa.c:2837
 #, c-format
 msgid "operand %d of '%s' has invalid value '%u'"
 msgstr ""
 
 #, c-format
 msgid "operand %d of '%s' has invalid value '%u'"
 msgstr ""
 
-#: config/tc-xtensa.c:2866
+#: config/tc-xtensa.c:2884
 #, c-format
 msgid "internal error: unknown option name '%s'"
 msgstr ""
 
 #, c-format
 msgid "internal error: unknown option name '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:3975
+#: config/tc-xtensa.c:3993
 msgid "can't handle generation of literal/labels yet"
 msgstr ""
 
 msgid "can't handle generation of literal/labels yet"
 msgstr ""
 
-#: config/tc-xtensa.c:3979
+#: config/tc-xtensa.c:3997
 msgid "can't handle undefined OP TYPE"
 msgstr ""
 
 msgid "can't handle undefined OP TYPE"
 msgstr ""
 
-#: config/tc-xtensa.c:4040 config/tc-xtensa.c:4049
+#: config/tc-xtensa.c:4058 config/tc-xtensa.c:4067
 #, c-format
 msgid "found %d operand for '%s':  Expected %d"
 msgid_plural "found %d operands for '%s':  Expected %d"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "found %d operand for '%s':  Expected %d"
 msgid_plural "found %d operands for '%s':  Expected %d"
 msgstr[0] ""
 msgstr[1] ""
 
-#: config/tc-xtensa.c:4072
+#: config/tc-xtensa.c:4090
 msgid "immediate operands sum to greater than 32"
 msgstr ""
 
 msgid "immediate operands sum to greater than 32"
 msgstr ""
 
-#: config/tc-xtensa.c:4324
+#: config/tc-xtensa.c:4342
 #, c-format
 msgid "invalid relocation for operand %i of '%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid relocation for operand %i of '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:4334
+#: config/tc-xtensa.c:4352
 #, c-format
 msgid "invalid expression for operand %i of '%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid expression for operand %i of '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:4344
+#: config/tc-xtensa.c:4362
 #, c-format
 msgid "invalid relocation in instruction slot %i"
 msgstr ""
 
 #, c-format
 msgid "invalid relocation in instruction slot %i"
 msgstr ""
 
-#: config/tc-xtensa.c:4351
+#: config/tc-xtensa.c:4369
 #, c-format
 msgid "undefined symbol for opcode \"%s\""
 msgstr ""
 
 #, c-format
 msgid "undefined symbol for opcode \"%s\""
 msgstr ""
 
-#: config/tc-xtensa.c:4826
+#: config/tc-xtensa.c:4844
 msgid "opcode 'NOP.N' unavailable in this configuration"
 msgstr ""
 
 msgid "opcode 'NOP.N' unavailable in this configuration"
 msgstr ""
 
-#: config/tc-xtensa.c:4886
+#: config/tc-xtensa.c:4904
 msgid "get_expanded_loop_offset: invalid opcode"
 msgstr ""
 
 msgid "get_expanded_loop_offset: invalid opcode"
 msgstr ""
 
-#: config/tc-xtensa.c:5047
+#: config/tc-xtensa.c:5065
 #, c-format
 msgid "assembly state not set for first frag in section %s"
 msgstr ""
 
 #, c-format
 msgid "assembly state not set for first frag in section %s"
 msgstr ""
 
-#: config/tc-xtensa.c:5100
+#: config/tc-xtensa.c:5118
 #, c-format
 msgid "unaligned branch target: %d bytes at 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "unaligned branch target: %d bytes at 0x%lx"
 msgstr ""
 
-#: config/tc-xtensa.c:5144
+#: config/tc-xtensa.c:5162
 #, c-format
 msgid "unaligned loop: %d bytes at 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "unaligned loop: %d bytes at 0x%lx"
 msgstr ""
 
-#: config/tc-xtensa.c:5169
+#: config/tc-xtensa.c:5187
 msgid "unexpected fix"
 msgstr ""
 
 msgid "unexpected fix"
 msgstr ""
 
-#: config/tc-xtensa.c:5180 config/tc-xtensa.c:5184
+#: config/tc-xtensa.c:5198 config/tc-xtensa.c:5202
 msgid "undecodable fix"
 msgstr ""
 
 msgid "undecodable fix"
 msgstr ""
 
-#: config/tc-xtensa.c:5343
+#: config/tc-xtensa.c:5363
 msgid "labels are not valid inside bundles"
 msgstr ""
 
 msgid "labels are not valid inside bundles"
 msgstr ""
 
-#: config/tc-xtensa.c:5363
+#: config/tc-xtensa.c:5383
 msgid "invalid last instruction for a zero-overhead loop"
 msgstr ""
 
 msgid "invalid last instruction for a zero-overhead loop"
 msgstr ""
 
-#: config/tc-xtensa.c:5430
+#: config/tc-xtensa.c:5450
 msgid "extra opening brace"
 msgstr ""
 
 msgid "extra opening brace"
 msgstr ""
 
-#: config/tc-xtensa.c:5440
+#: config/tc-xtensa.c:5460
 msgid "extra closing brace"
 msgstr ""
 
 msgid "extra closing brace"
 msgstr ""
 
-#: config/tc-xtensa.c:5467
+#: config/tc-xtensa.c:5487
 msgid "missing closing brace"
 msgstr ""
 
 msgid "missing closing brace"
 msgstr ""
 
-#: config/tc-xtensa.c:5565 config/tc-xtensa.c:5594
+#: config/tc-xtensa.c:5585 config/tc-xtensa.c:5614
 #, c-format
 msgid "wrong number of operands for '%s'"
 msgstr ""
 
 #, c-format
 msgid "wrong number of operands for '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:5581
+#: config/tc-xtensa.c:5601
 #, c-format
 msgid "bad relocation expression for '%s'"
 msgstr ""
 
 #, c-format
 msgid "bad relocation expression for '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:5616
+#: config/tc-xtensa.c:5636
 #, c-format
 msgid "unknown opcode or format name '%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown opcode or format name '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:5622
+#: config/tc-xtensa.c:5642
 msgid "format names only valid inside bundles"
 msgstr ""
 
 msgid "format names only valid inside bundles"
 msgstr ""
 
-#: config/tc-xtensa.c:5627
+#: config/tc-xtensa.c:5647
 #, c-format
 msgid "multiple formats specified for one bundle; using '%s'"
 msgstr ""
 
 #, c-format
 msgid "multiple formats specified for one bundle; using '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:5677
+#: config/tc-xtensa.c:5697
 msgid "entry instruction with stack decrement < 16"
 msgstr ""
 
 msgid "entry instruction with stack decrement < 16"
 msgstr ""
 
-#: config/tc-xtensa.c:5731
+#: config/tc-xtensa.c:5751
 msgid "unaligned entry instruction"
 msgstr ""
 
 msgid "unaligned entry instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:5796
+#: config/tc-xtensa.c:5816
 msgid "bad instruction format"
 msgstr ""
 
 msgid "bad instruction format"
 msgstr ""
 
-#: config/tc-xtensa.c:5799
+#: config/tc-xtensa.c:5819
 msgid "invalid relocation"
 msgstr ""
 
 msgid "invalid relocation"
 msgstr ""
 
-#: config/tc-xtensa.c:5810
+#: config/tc-xtensa.c:5830
 #, c-format
 msgid "invalid relocation for '%s' instruction"
 msgstr ""
 
 #, c-format
 msgid "invalid relocation for '%s' instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:5822
+#: config/tc-xtensa.c:5842
 #, c-format
 msgid "invalid relocation for operand %d of '%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid relocation for operand %d of '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:6099
+#: config/tc-xtensa.c:6125
 #, c-format
 msgid "unhandled local relocation fix %s"
 msgstr ""
 
 #, c-format
 msgid "unhandled local relocation fix %s"
 msgstr ""
 
-#: config/tc-xtensa.c:6150
+#: config/tc-xtensa.c:6176
 #, c-format
 msgid "internal error; cannot generate `%s' relocation"
 msgstr ""
 
 #, c-format
 msgid "internal error; cannot generate `%s' relocation"
 msgstr ""
 
-#: config/tc-xtensa.c:6367
+#: config/tc-xtensa.c:6393
 msgid "The option \"--no-allow-flix\" prohibits multi-slot flix."
 msgstr ""
 
 msgid "The option \"--no-allow-flix\" prohibits multi-slot flix."
 msgstr ""
 
-#: config/tc-xtensa.c:6374
+#: config/tc-xtensa.c:6400
 msgid "couldn't find a valid instruction format"
 msgstr ""
 
 msgid "couldn't find a valid instruction format"
 msgstr ""
 
-#: config/tc-xtensa.c:6375
+#: config/tc-xtensa.c:6401
 #, c-format
 msgid "    ops were: "
 msgstr ""
 
 #, c-format
 msgid "    ops were: "
 msgstr ""
 
-#: config/tc-xtensa.c:6377
+#: config/tc-xtensa.c:6403
 #, c-format
 msgid " %s;"
 msgstr ""
 
 #, c-format
 msgid " %s;"
 msgstr ""
 
-#: config/tc-xtensa.c:6387
+#: config/tc-xtensa.c:6413
 #, c-format
 msgid "mismatch for format '%s': #slots = %d, #opcodes = %d"
 msgstr ""
 
 #, c-format
 msgid "mismatch for format '%s': #slots = %d, #opcodes = %d"
 msgstr ""
 
-#: config/tc-xtensa.c:6396 config/tc-xtensa.c:6493
+#: config/tc-xtensa.c:6422 config/tc-xtensa.c:6519
 msgid "illegal resource usage in bundle"
 msgstr ""
 
 msgid "illegal resource usage in bundle"
 msgstr ""
 
-#: config/tc-xtensa.c:6582
+#: config/tc-xtensa.c:6608
 #, c-format
 msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same register"
 msgstr ""
 
 #, c-format
 msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same register"
 msgstr ""
 
-#: config/tc-xtensa.c:6587
+#: config/tc-xtensa.c:6613
 #, c-format
 msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same state"
 msgstr ""
 
 #, c-format
 msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same state"
 msgstr ""
 
-#: config/tc-xtensa.c:6592
+#: config/tc-xtensa.c:6618
 #, c-format
 msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same port"
 msgstr ""
 
 #, c-format
 msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same port"
 msgstr ""
 
-#: config/tc-xtensa.c:6597
+#: config/tc-xtensa.c:6623
 #, c-format
 msgid ""
 "opcodes '%s' (slot %d) and '%s' (slot %d) both have volatile port accesses"
 msgstr ""
 
 #, c-format
 msgid ""
 "opcodes '%s' (slot %d) and '%s' (slot %d) both have volatile port accesses"
 msgstr ""
 
-#: config/tc-xtensa.c:6613
+#: config/tc-xtensa.c:6639
 msgid "multiple branches or jumps in the same bundle"
 msgstr ""
 
 msgid "multiple branches or jumps in the same bundle"
 msgstr ""
 
-#: config/tc-xtensa.c:7065
+#: config/tc-xtensa.c:7091
 msgid "cannot assemble into a literal fragment"
 msgstr ""
 
 msgid "cannot assemble into a literal fragment"
 msgstr ""
 
-#: config/tc-xtensa.c:7067
+#: config/tc-xtensa.c:7093
 msgid "..."
 msgstr ""
 
 msgid "..."
 msgstr ""
 
-#: config/tc-xtensa.c:8283
+#: config/tc-xtensa.c:8309
 msgid ""
 "instruction sequence (write a0, branch, retw) may trigger hardware errata"
 msgstr ""
 
 msgid ""
 "instruction sequence (write a0, branch, retw) may trigger hardware errata"
 msgstr ""
 
-#: config/tc-xtensa.c:8395
+#: config/tc-xtensa.c:8421
 msgid "branching or jumping to a loop end may trigger hardware errata"
 msgstr ""
 
 msgid "branching or jumping to a loop end may trigger hardware errata"
 msgstr ""
 
-#: config/tc-xtensa.c:8477
+#: config/tc-xtensa.c:8503
 msgid "loop end too close to another loop end may trigger hardware errata"
 msgstr ""
 
 msgid "loop end too close to another loop end may trigger hardware errata"
 msgstr ""
 
-#: config/tc-xtensa.c:8486
+#: config/tc-xtensa.c:8512
 #, c-format
 msgid "fr_var %lu < length %d"
 msgstr ""
 
 #, c-format
 msgid "fr_var %lu < length %d"
 msgstr ""
 
-#: config/tc-xtensa.c:8643
+#: config/tc-xtensa.c:8669
 msgid ""
 "loop containing less than three instructions may trigger hardware errata"
 msgstr ""
 
 msgid ""
 "loop containing less than three instructions may trigger hardware errata"
 msgstr ""
 
-#: config/tc-xtensa.c:8715
+#: config/tc-xtensa.c:8741
 msgid "undecodable instruction in instruction frag"
 msgstr ""
 
 msgid "undecodable instruction in instruction frag"
 msgstr ""
 
-#: config/tc-xtensa.c:8825
+#: config/tc-xtensa.c:8851
 msgid "invalid empty loop"
 msgstr ""
 
 msgid "invalid empty loop"
 msgstr ""
 
-#: config/tc-xtensa.c:8830
+#: config/tc-xtensa.c:8856
 msgid "loop target does not follow loop instruction in section"
 msgstr ""
 
 msgid "loop target does not follow loop instruction in section"
 msgstr ""
 
-#: config/tc-xtensa.c:9401
+#: config/tc-xtensa.c:9427
 msgid "cannot find suitable trampoline"
 msgstr ""
 
 msgid "cannot find suitable trampoline"
 msgstr ""
 
-#: config/tc-xtensa.c:9656
+#: config/tc-xtensa.c:9682
 msgid "bad relaxation state"
 msgstr ""
 
 msgid "bad relaxation state"
 msgstr ""
 
-#: config/tc-xtensa.c:9714
+#: config/tc-xtensa.c:9740
 #, c-format
 msgid "fr_var (%ld) < length (%d)"
 msgstr ""
 
 #, c-format
 msgid "fr_var (%ld) < length (%d)"
 msgstr ""
 
-#: config/tc-xtensa.c:10414
+#: config/tc-xtensa.c:10440
 msgid "jump target out of range; no usable trampoline found"
 msgstr ""
 
 msgid "jump target out of range; no usable trampoline found"
 msgstr ""
 
-#: config/tc-xtensa.c:10538
+#: config/tc-xtensa.c:10564
 msgid "invalid relaxation fragment result"
 msgstr ""
 
 msgid "invalid relaxation fragment result"
 msgstr ""
 
-#: config/tc-xtensa.c:10620
+#: config/tc-xtensa.c:10646
 msgid "unable to widen instruction"
 msgstr ""
 
 msgid "unable to widen instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:10758
+#: config/tc-xtensa.c:10784
 msgid "multiple literals in expansion"
 msgstr ""
 
 msgid "multiple literals in expansion"
 msgstr ""
 
-#: config/tc-xtensa.c:10762
+#: config/tc-xtensa.c:10788
 msgid "no registered fragment for literal"
 msgstr ""
 
 msgid "no registered fragment for literal"
 msgstr ""
 
-#: config/tc-xtensa.c:10764
+#: config/tc-xtensa.c:10790
 msgid "number of literal tokens != 1"
 msgstr ""
 
 msgid "number of literal tokens != 1"
 msgstr ""
 
-#: config/tc-xtensa.c:10893 config/tc-xtensa.c:10899
+#: config/tc-xtensa.c:10919 config/tc-xtensa.c:10925
 #, c-format
 msgid "unresolved loop target symbol: %s"
 msgstr ""
 
 #, c-format
 msgid "unresolved loop target symbol: %s"
 msgstr ""
 
-#: config/tc-xtensa.c:11388
+#: config/tc-xtensa.c:11414
 #, c-format
 msgid "fixes not all moved from %s"
 msgstr ""
 
 #, c-format
 msgid "fixes not all moved from %s"
 msgstr ""
 
-#: config/tc-xtensa.c:11516
+#: config/tc-xtensa.c:11542
 msgid ""
 "literal pool location required for text-section-literals; specify with ."
 "literal_position"
 msgstr ""
 
 msgid ""
 "literal pool location required for text-section-literals; specify with ."
 "literal_position"
 msgstr ""
 
-#: config/tc-xtensa.c:12344
+#: config/tc-xtensa.c:12370
 msgid "too many operands in instruction"
 msgstr ""
 
 msgid "too many operands in instruction"
 msgstr ""
 
-#: config/tc-xtensa.c:12554
+#: config/tc-xtensa.c:12580
 msgid "invalid symbolic operand"
 msgstr ""
 
 msgid "invalid symbolic operand"
 msgstr ""
 
-#: config/tc-xtensa.c:12615
+#: config/tc-xtensa.c:12641
 msgid "operand number mismatch"
 msgstr ""
 
 msgid "operand number mismatch"
 msgstr ""
 
-#: config/tc-xtensa.c:12619
+#: config/tc-xtensa.c:12645
 #, c-format
 msgid "cannot encode opcode \"%s\" in the given format \"%s\""
 msgstr ""
 
 #, c-format
 msgid "cannot encode opcode \"%s\" in the given format \"%s\""
 msgstr ""
 
-#: config/tc-xtensa.c:12644
+#: config/tc-xtensa.c:12670
 #, c-format
 msgid "xtensa-isa failure: %s"
 msgstr ""
 
 #, c-format
 msgid "xtensa-isa failure: %s"
 msgstr ""
 
-#: config/tc-xtensa.c:12721
+#: config/tc-xtensa.c:12747
 msgid "invalid opcode"
 msgstr ""
 
 msgid "invalid opcode"
 msgstr ""
 
-#: config/tc-xtensa.c:12727
+#: config/tc-xtensa.c:12753
 msgid "too few operands"
 msgstr ""
 
 msgid "too few operands"
 msgstr ""
 
-#: config/tc-xtensa.c:12733
+#: config/tc-xtensa.c:12759
 msgid "too many operands"
 msgstr ""
 
 msgid "too many operands"
 msgstr ""
 
-#: config/tc-xtensa.c:12777
+#: config/tc-xtensa.c:12803
 msgid "multiple writes to the same register"
 msgstr ""
 
 msgid "multiple writes to the same register"
 msgstr ""
 
-#: config/tc-xtensa.c:12891 config/tc-xtensa.c:12897
+#: config/tc-xtensa.c:12917 config/tc-xtensa.c:12923
 msgid "out of memory"
 msgstr ""
 
 msgid "out of memory"
 msgstr ""
 
-#: config/tc-xtensa.c:12986
+#: config/tc-xtensa.c:13012
 msgid "TLS relocation not allowed in FLIX bundle"
 msgstr ""
 
 msgid "TLS relocation not allowed in FLIX bundle"
 msgstr ""
 
@@ -19957,89 +20204,142 @@ msgstr ""
 #. relaxed in the front-end.  If "record_fixup" is set, then this
 #. function is being called during back-end relaxation, so flag
 #. the unexpected behavior as an error.
 #. relaxed in the front-end.  If "record_fixup" is set, then this
 #. function is being called during back-end relaxation, so flag
 #. the unexpected behavior as an error.
-#: config/tc-xtensa.c:12992
+#: config/tc-xtensa.c:13018
 msgid "unexpected TLS relocation"
 msgstr ""
 
 msgid "unexpected TLS relocation"
 msgstr ""
 
-#: config/tc-xtensa.c:13036
+#: config/tc-xtensa.c:13062
 msgid "symbolic operand not allowed"
 msgstr ""
 
 msgid "symbolic operand not allowed"
 msgstr ""
 
-#: config/tc-xtensa.c:13073
+#: config/tc-xtensa.c:13099
 msgid "cannot decode instruction format"
 msgstr ""
 
 msgid "cannot decode instruction format"
 msgstr ""
 
-#: config/tc-xtensa.c:13217
+#: config/tc-xtensa.c:13243
 msgid "ignoring extra '-rename-section' delimiter ':'"
 msgstr ""
 
 msgid "ignoring extra '-rename-section' delimiter ':'"
 msgstr ""
 
-#: config/tc-xtensa.c:13222
+#: config/tc-xtensa.c:13248
 #, c-format
 msgid "ignoring invalid '-rename-section' specification: '%s'"
 msgstr ""
 
 #, c-format
 msgid "ignoring invalid '-rename-section' specification: '%s'"
 msgstr ""
 
-#: config/tc-xtensa.c:13233
+#: config/tc-xtensa.c:13259
 #, c-format
 msgid "section %s renamed multiple times"
 msgstr ""
 
 #, c-format
 msgid "section %s renamed multiple times"
 msgstr ""
 
-#: config/tc-xtensa.c:13235
+#: config/tc-xtensa.c:13261
 #, c-format
 msgid "multiple sections remapped to output section %s"
 msgstr ""
 
 #: config/tc-z80.c:194
 #, c-format
 #, c-format
 msgid "multiple sections remapped to output section %s"
 msgstr ""
 
 #: config/tc-z80.c:194
 #, c-format
+msgid "Invalid CPU is specified: %s"
+msgstr ""
+
+#: config/tc-z80.c:219
+#, c-format
+msgid "Invalid EXTENTION is specified: %s"
+msgstr ""
+
+#: config/tc-z80.c:274
+#, c-format
 msgid "invalid floating point numbers type `%s'"
 msgstr ""
 
 msgid "invalid floating point numbers type `%s'"
 msgstr ""
 
-#: config/tc-z80.c:215 config/tc-z80.c:224
+#: config/tc-z80.c:295 config/tc-z80.c:304
 #, c-format
 msgid "invalid INST in command line: %s"
 msgstr ""
 
 #, c-format
 msgid "invalid INST in command line: %s"
 msgstr ""
 
-#: config/tc-z80.c:583
+#: config/tc-z80.c:398
+#, c-format
+msgid ""
+"\n"
+"CPU model options:\n"
+"  -march=CPU[+EXT...][-EXT...]\n"
+"\t\t\t  generate code for CPU, where CPU is one of:\n"
+msgstr ""
+
+#: config/tc-z80.c:404
+#, c-format
+msgid "And EXT is combination (+EXT - add, -EXT - remove) of:\n"
+msgstr ""
+
+#: config/tc-z80.c:407
+#, c-format
+msgid ""
+"\n"
+"Compatibility options:\n"
+"  -local-prefix=TEXT\t  treat labels prefixed by TEXT as local\n"
+"  -colonless\t\t  permit colonless labels\n"
+"  -sdcc\t\t\t  accept SDCC specific instruction syntax\n"
+"  -fp-s=FORMAT\t\t  set single precission FP numbers format\n"
+"  -fp-d=FORMAT\t\t  set double precission FP numbers format\n"
+"Where FORMAT one of:\n"
+"  ieee754\t\t  IEEE754 compatible (depends on directive)\n"
+"  half\t\t\t  IEEE754 half precision (16 bit)\n"
+"  single\t\t  IEEE754 single precision (32 bit)\n"
+"  double\t\t  IEEE754 double precision (64 bit)\n"
+"  zeda32\t\t  Zeda z80float library 32 bit format\n"
+"  math48\t\t  48 bit format from Math48 library\n"
+"\n"
+"Default: -march=z80+xyhl+infc\n"
+msgstr ""
+
+#: config/tc-z80.c:610
 msgid "-- unterminated string"
 msgstr ""
 
 msgid "-- unterminated string"
 msgstr ""
 
-#: config/tc-z80.c:750
+#: config/tc-z80.c:779
 msgid "undocumented instruction"
 msgstr ""
 
 msgid "undocumented instruction"
 msgstr ""
 
-#: config/tc-z80.c:794 config/tc-z80.c:800
+#: config/tc-z80.c:823 config/tc-z80.c:829
 msgid "mismatched parentheses"
 msgstr ""
 
 msgid "mismatched parentheses"
 msgstr ""
 
-#: config/tc-z80.c:854
+#: config/tc-z80.c:915
 msgid "bad expression syntax"
 msgstr ""
 
 msgid "bad expression syntax"
 msgstr ""
 
-#: config/tc-z80.c:1071
+#: config/tc-z80.c:1132
 #, c-format
 msgid "invalid data size %d"
 msgstr ""
 
 #, c-format
 msgid "invalid data size %d"
 msgstr ""
 
-#: config/tc-z80.c:1140
+#: config/tc-z80.c:1200
 msgid "cannot make a relative jump to an absolute location"
 msgstr ""
 
 msgid "cannot make a relative jump to an absolute location"
 msgstr ""
 
-#: config/tc-z80.c:1152 config/tc-z80.c:3386 config/tc-z80.c:3689
-msgid "overflow"
+#: config/tc-z80.c:1207
+#, c-format
+msgid "index overflow (%+ld)"
+msgstr ""
+
+#: config/tc-z80.c:1209
+#, c-format
+msgid "offset overflow (%+ld)"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-z80.c:1524 config/tc-z80.c:1567 config/tc-z80.c:1611
-#: config/tc-z80.c:1679 config/tc-z80.c:1731 config/tc-z80.c:1784
-#: config/tc-z80.c:1817 config/tc-z80.c:1873 config/tc-z80.c:2475
-#: config/tc-z80.c:2524 config/tc-z80.c:2562 config/tc-z80.c:2653
+#: config/tc-z80.c:1411 config/tc-z80.c:1658 config/tc-z80.c:1701
+#: config/tc-z80.c:1782 config/tc-z80.c:1812 config/tc-z80.c:1871
+#: config/tc-z80.c:1931 config/tc-z80.c:1984 config/tc-z80.c:2017
+#: config/tc-z80.c:2074 config/tc-z80.c:2691 config/tc-z80.c:2740
+#: config/tc-z80.c:2778 config/tc-z80.c:2838 config/tc-z80.c:2898
+#: config/tc-z80.c:2974 config/tc-z80.c:2997
 msgid "bad instruction syntax"
 msgstr ""
 
 msgid "bad instruction syntax"
 msgstr ""
 
-#: config/tc-z80.c:1657
+#: config/tc-z80.c:1849
 msgid "condition code invalid for jr"
 msgstr ""
 
 msgid "condition code invalid for jr"
 msgstr ""
 
-#: config/tc-z80.c:2221 config/tc-z80.c:2232 config/tc-z80.c:2248
-#: config/tc-z80.c:2281
+#: config/tc-z80.c:2437 config/tc-z80.c:2448 config/tc-z80.c:2464
+#: config/tc-z80.c:2497
 msgid "ADL mode instruction"
 msgstr ""
 
 msgid "ADL mode instruction"
 msgstr ""
 
@@ -20047,39 +20347,65 @@ msgstr ""
 #. LIS prefix, in Z80 it is LD C,C
 #. SIL prefix, in Z80 it is LD D,D
 #. LIL prefix, in Z80 it is LD E,E
 #. LIS prefix, in Z80 it is LD C,C
 #. SIL prefix, in Z80 it is LD D,D
 #. LIL prefix, in Z80 it is LD E,E
-#: config/tc-z80.c:2356
+#: config/tc-z80.c:2572
 msgid "unsupported instruction, assembled as NOP"
 msgstr ""
 
 msgid "unsupported instruction, assembled as NOP"
 msgstr ""
 
-#: config/tc-z80.c:2849 config/tc-z80.c:2880
+#: config/tc-z80.c:3165 config/tc-z80.c:3196
 msgid "parentheses ignored"
 msgstr ""
 
 msgid "parentheses ignored"
 msgstr ""
 
-#: config/tc-z80.c:2897
+#: config/tc-z80.c:3213
 msgid "CPU mode is unsupported by target"
 msgstr ""
 
 msgid "CPU mode is unsupported by target"
 msgstr ""
 
-#: config/tc-z80.c:2919
+#: config/tc-z80.c:3235
 msgid "assignment expected"
 msgstr ""
 
 msgid "assignment expected"
 msgstr ""
 
-#: config/tc-z80.c:3333 config/tc-z8k.c:1467 config/tc-z8k.c:1530
-msgid "relative jump out of range"
+#: config/tc-z80.c:3639
+#, c-format
+msgid "Unknown instruction `%s'"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-z80.c:3350
-msgid "index offset out of range"
+#: config/tc-z80.c:3706
+#, c-format
+msgid "8-bit signed offset out of range (%+ld)"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-z80.c:3429 config/tc-z8k.c:1538
+#: config/tc-z80.c:3729
 #, c-format
 #, c-format
-msgid "md_apply_fix: unknown r_type 0x%x\n"
+msgid "8-bit overflow (%+ld)"
+msgstr ""
+
+#: config/tc-z80.c:3746
+#, c-format
+msgid "16-bit overflow (%+ld)"
 msgstr ""
 
 msgstr ""
 
-#: config/tc-z80.c:3611 config/tc-z80.c:3670
+#: config/tc-z80.c:3754
+#, c-format
+msgid "24-bit overflow (%+ld)"
+msgstr ""
+
+#: config/tc-z80.c:3763
+#, c-format
+msgid "32-bit overflow (%+ld)"
+msgstr ""
+
+#: config/tc-z80.c:3776
+#, c-format
+msgid "md_apply_fix: unknown reloc type 0x%x\n"
+msgstr ""
+
+#: config/tc-z80.c:3973 config/tc-z80.c:4032
 msgid "invalid syntax"
 msgstr ""
 
 msgid "invalid syntax"
 msgstr ""
 
+#: config/tc-z80.c:4051
+msgid "overflow"
+msgstr ""
+
 #: config/tc-z8k.c:281
 #, c-format
 msgid "register rr%d out of range"
 #: config/tc-z8k.c:281
 #, c-format
 msgid "register rr%d out of range"
@@ -20201,6 +20527,10 @@ msgstr ""
 msgid "cannot branch to odd address"
 msgstr ""
 
 msgid "cannot branch to odd address"
 msgstr ""
 
+#: config/tc-z8k.c:1467 config/tc-z8k.c:1530
+msgid "relative jump out of range"
+msgstr ""
+
 #: config/tc-z8k.c:1485
 msgid "relative address out of range"
 msgstr ""
 #: config/tc-z8k.c:1485
 msgid "relative address out of range"
 msgstr ""
@@ -20209,6 +20539,11 @@ msgstr ""
 msgid "relative call out of range"
 msgstr ""
 
 msgid "relative call out of range"
 msgstr ""
 
+#: config/tc-z8k.c:1538
+#, c-format
+msgid "md_apply_fix: unknown r_type 0x%x\n"
+msgstr ""
+
 #: config/tc-z8k.c:1550
 #, c-format
 msgid "call to md_estimate_size_before_relax\n"
 #: config/tc-z8k.c:1550
 #, c-format
 msgid "call to md_estimate_size_before_relax\n"
@@ -20294,7 +20629,7 @@ msgstr ""
 msgid "can't close `%s'"
 msgstr ""
 
 msgid "can't close `%s'"
 msgstr ""
 
-#: dw2gencfi.c:319 read.c:2442
+#: dw2gencfi.c:319 read.c:2443
 #, c-format
 msgid "bfd_set_section_flags: %s"
 msgstr ""
 #, c-format
 msgid "bfd_set_section_flags: %s"
 msgstr ""
@@ -20415,51 +20750,56 @@ msgstr ""
 msgid "CFI is not supported for this target"
 msgstr ""
 
 msgid "CFI is not supported for this target"
 msgstr ""
 
-#: dwarf2dbg.c:372 dwarf2dbg.c:2340
+#: dwarf2dbg.c:379 dwarf2dbg.c:2747
 msgid "view number mismatch"
 msgstr ""
 
 msgid "view number mismatch"
 msgstr ""
 
-#: dwarf2dbg.c:757 dwarf2dbg.c:815
+#: dwarf2dbg.c:635 dwarf2dbg.c:1084
 #, c-format
 msgid "file number %lu is too big"
 msgstr ""
 
 #, c-format
 msgid "file number %lu is too big"
 msgstr ""
 
-#: dwarf2dbg.c:804 dwarf2dbg.c:854
+#: dwarf2dbg.c:798
+#, c-format
+msgid ""
+"file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)"
+msgstr ""
+
+#: dwarf2dbg.c:1035 dwarf2dbg.c:1122
 msgid "file number less than one"
 msgstr ""
 
 msgid "file number less than one"
 msgstr ""
 
-#: dwarf2dbg.c:820
-#, c-format
-msgid "file number %u already allocated"
+#: dwarf2dbg.c:1069
+msgid "md5 value too small or not a constant"
 msgstr ""
 
 msgstr ""
 
-#: dwarf2dbg.c:859 dwarf2dbg.c:1727
+#: dwarf2dbg.c:1129 dwarf2dbg.c:2096
 #, c-format
 msgid "unassigned file number %ld"
 msgstr ""
 
 #, c-format
 msgid "unassigned file number %ld"
 msgstr ""
 
-#: dwarf2dbg.c:928
+#: dwarf2dbg.c:1198
 msgid "is_stmt value not 0 or 1"
 msgstr ""
 
 msgid "is_stmt value not 0 or 1"
 msgstr ""
 
-#: dwarf2dbg.c:940
+#: dwarf2dbg.c:1210
 msgid "isa number less than zero"
 msgstr ""
 
 msgid "isa number less than zero"
 msgstr ""
 
-#: dwarf2dbg.c:952
+#: dwarf2dbg.c:1222
 msgid "discriminator less than zero"
 msgstr ""
 
 msgid "discriminator less than zero"
 msgstr ""
 
-#: dwarf2dbg.c:971
+#: dwarf2dbg.c:1241
 msgid "numeric view can only be asserted to zero"
 msgstr ""
 
 msgid "numeric view can only be asserted to zero"
 msgstr ""
 
-#: dwarf2dbg.c:1009
+#: dwarf2dbg.c:1279
 #, c-format
 msgid "unknown .loc sub-directive `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown .loc sub-directive `%s'"
 msgstr ""
 
-#: dwarf2dbg.c:1804
+#: dwarf2dbg.c:2200
 msgid "internal error: unknown dwarf2 format"
 msgstr ""
 
 msgid "internal error: unknown dwarf2 format"
 msgstr ""
 
@@ -20650,11 +20990,11 @@ msgstr ""
 msgid "GP prologue size exceeds field size, using 0 instead"
 msgstr ""
 
 msgid "GP prologue size exceeds field size, using 0 instead"
 msgstr ""
 
-#: expr.c:84 read.c:3804
+#: expr.c:84 read.c:3805
 msgid "bignum invalid"
 msgstr ""
 
 msgid "bignum invalid"
 msgstr ""
 
-#: expr.c:86 read.c:3806 read.c:4311 read.c:5157
+#: expr.c:86 read.c:3807 read.c:4312 read.c:5158
 msgid "floating point number invalid"
 msgstr ""
 
 msgid "floating point number invalid"
 msgstr ""
 
@@ -20698,7 +21038,7 @@ msgstr ""
 msgid "missing '%c'"
 msgstr ""
 
 msgid "missing '%c'"
 msgstr ""
 
-#: expr.c:978 read.c:4608
+#: expr.c:978 read.c:4609
 msgid "EBCDIC constants are not supported"
 msgstr ""
 
 msgid "EBCDIC constants are not supported"
 msgstr ""
 
@@ -20736,7 +21076,7 @@ msgstr ""
 msgid "right operand is a float; integer 0 assumed"
 msgstr ""
 
 msgid "right operand is a float; integer 0 assumed"
 msgstr ""
 
-#: expr.c:1919 symbols.c:1561
+#: expr.c:1919 symbols.c:1574
 msgid "division by zero"
 msgstr ""
 
 msgid "division by zero"
 msgstr ""
 
@@ -21073,52 +21413,52 @@ msgid ""
 "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes"
 msgstr ""
 
 "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes"
 msgstr ""
 
-#: read.c:769 read.c:2812 read.c:3383
+#: read.c:769 read.c:2813 read.c:3384
 msgid "ignoring fill value in absolute section"
 msgstr ""
 
 msgid "ignoring fill value in absolute section"
 msgstr ""
 
-#: read.c:771 read.c:2827 read.c:3422
+#: read.c:771 read.c:2828 read.c:3423
 #, c-format
 msgid "ignoring fill value in section `%s'"
 msgstr ""
 
 #, c-format
 msgid "ignoring fill value in section `%s'"
 msgstr ""
 
-#: read.c:1131
+#: read.c:1132
 #, c-format
 msgid "unknown pseudo-op: `%s'"
 msgstr ""
 
 #, c-format
 msgid "unknown pseudo-op: `%s'"
 msgstr ""
 
-#: read.c:1184
+#: read.c:1185
 msgid "unable to continue with assembly."
 msgstr ""
 
 msgid "unable to continue with assembly."
 msgstr ""
 
-#: read.c:1226
+#: read.c:1227
 #, c-format
 msgid "label \"%d$\" redefined"
 msgstr ""
 
 #, c-format
 msgid "label \"%d$\" redefined"
 msgstr ""
 
-#: read.c:1373
+#: read.c:1374
 msgid ".bundle_lock with no matching .bundle_unlock"
 msgstr ""
 
 msgid ".bundle_lock with no matching .bundle_unlock"
 msgstr ""
 
-#: read.c:1470
+#: read.c:1471
 msgid ".abort detected.  Abandoning ship."
 msgstr ""
 
 msgid ".abort detected.  Abandoning ship."
 msgstr ""
 
-#: read.c:1532
+#: read.c:1533
 #, c-format
 msgid "alignment too large: %u assumed"
 msgstr ""
 
 #, c-format
 msgid "alignment too large: %u assumed"
 msgstr ""
 
-#: read.c:1564
+#: read.c:1565
 msgid "expected fill pattern missing"
 msgstr ""
 
 msgid "expected fill pattern missing"
 msgstr ""
 
-#: read.c:1589
+#: read.c:1590
 #, c-format
 msgid "fill pattern too long, truncating to %u"
 msgstr ""
 
 #, c-format
 msgid "fill pattern too long, truncating to %u"
 msgstr ""
 
-#: read.c:1687
+#: read.c:1688
 msgid "symbol name not recognised in the current locale"
 msgstr ""
 
 msgid "symbol name not recognised in the current locale"
 msgstr ""
 
@@ -21131,360 +21471,360 @@ msgstr ""
 #. We do not want to barf on this, especially since such files are used
 #. in the GCC and GDB testsuites.  So we check for negative line numbers
 #. rather than non-positive line numbers.
 #. We do not want to barf on this, especially since such files are used
 #. in the GCC and GDB testsuites.  So we check for negative line numbers
 #. rather than non-positive line numbers.
-#: read.c:2029
+#: read.c:2030
 #, c-format
 msgid "line numbers must be positive; line number %d rejected"
 msgstr ""
 
 #, c-format
 msgid "line numbers must be positive; line number %d rejected"
 msgstr ""
 
-#: read.c:2066
+#: read.c:2067
 #, c-format
 msgid "incompatible flag %i in line directive"
 msgstr ""
 
 #, c-format
 msgid "incompatible flag %i in line directive"
 msgstr ""
 
-#: read.c:2078
+#: read.c:2079
 #, c-format
 msgid "unsupported flag %i in line directive"
 msgstr ""
 
 #, c-format
 msgid "unsupported flag %i in line directive"
 msgstr ""
 
-#: read.c:2117
+#: read.c:2118
 msgid "start address not supported"
 msgstr ""
 
 msgid "start address not supported"
 msgstr ""
 
-#: read.c:2126
+#: read.c:2127
 msgid ".err encountered"
 msgstr ""
 
 msgid ".err encountered"
 msgstr ""
 
-#: read.c:2142
+#: read.c:2143
 msgid ".error directive invoked in source file"
 msgstr ""
 
 msgid ".error directive invoked in source file"
 msgstr ""
 
-#: read.c:2143
+#: read.c:2144
 msgid ".warning directive invoked in source file"
 msgstr ""
 
 msgid ".warning directive invoked in source file"
 msgstr ""
 
-#: read.c:2149
+#: read.c:2150
 #, c-format
 msgid "%s argument must be a string"
 msgstr ""
 
 #, c-format
 msgid "%s argument must be a string"
 msgstr ""
 
-#: read.c:2181 read.c:2183
+#: read.c:2182 read.c:2184
 #, c-format
 msgid ".fail %ld encountered"
 msgstr ""
 
 #, c-format
 msgid ".fail %ld encountered"
 msgstr ""
 
-#: read.c:2223
+#: read.c:2224
 #, c-format
 msgid ".fill size clamped to %d"
 msgstr ""
 
 #, c-format
 msgid ".fill size clamped to %d"
 msgstr ""
 
-#: read.c:2228
+#: read.c:2229
 msgid "size negative; .fill ignored"
 msgstr ""
 
 msgid "size negative; .fill ignored"
 msgstr ""
 
-#: read.c:2234
+#: read.c:2235
 msgid "repeat < 0; .fill ignored"
 msgstr ""
 
 msgid "repeat < 0; .fill ignored"
 msgstr ""
 
-#: read.c:2243
+#: read.c:2244
 msgid "non-constant fill count for absolute section"
 msgstr ""
 
 msgid "non-constant fill count for absolute section"
 msgstr ""
 
-#: read.c:2245
+#: read.c:2246
 msgid "attempt to fill absolute section with non-zero value"
 msgstr ""
 
 msgid "attempt to fill absolute section with non-zero value"
 msgstr ""
 
-#: read.c:2251
+#: read.c:2252
 #, c-format
 msgid "attempt to fill section `%s' with non-zero value"
 msgstr ""
 
 #, c-format
 msgid "attempt to fill section `%s' with non-zero value"
 msgstr ""
 
-#: read.c:2408
+#: read.c:2409
 #, c-format
 msgid "unrecognized .linkonce type `%s'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized .linkonce type `%s'"
 msgstr ""
 
-#: read.c:2420
+#: read.c:2421
 msgid ".linkonce is not supported for this object file format"
 msgstr ""
 
 msgid ".linkonce is not supported for this object file format"
 msgstr ""
 
-#: read.c:2515
+#: read.c:2516
 msgid "expected alignment after size"
 msgstr ""
 
 msgid "expected alignment after size"
 msgstr ""
 
-#: read.c:2734
+#: read.c:2735
 #, c-format
 msgid "attempt to redefine pseudo-op `%s' ignored"
 msgstr ""
 
 #, c-format
 msgid "attempt to redefine pseudo-op `%s' ignored"
 msgstr ""
 
-#: read.c:2753
+#: read.c:2754
 msgid "ignoring macro exit outside a macro definition."
 msgstr ""
 
 msgid "ignoring macro exit outside a macro definition."
 msgstr ""
 
-#: read.c:2807
+#: read.c:2808
 #, c-format
 msgid "invalid segment \"%s\""
 msgstr ""
 
 #, c-format
 msgid "invalid segment \"%s\""
 msgstr ""
 
-#: read.c:2815
+#: read.c:2816
 msgid "only constant offsets supported in absolute section"
 msgstr ""
 
 msgid "only constant offsets supported in absolute section"
 msgstr ""
 
-#: read.c:2858
+#: read.c:2859
 msgid "MRI style ORG pseudo-op not supported"
 msgstr ""
 
 msgid "MRI style ORG pseudo-op not supported"
 msgstr ""
 
-#: read.c:3029
+#: read.c:3030
 #, c-format
 msgid ".end%c encountered without preceding %s"
 msgstr ""
 
 #, c-format
 msgid ".end%c encountered without preceding %s"
 msgstr ""
 
-#: read.c:3058 read.c:3094
+#: read.c:3059 read.c:3095
 #, c-format
 msgid "negative count for %s - ignored"
 msgstr ""
 
 #, c-format
 msgid "negative count for %s - ignored"
 msgstr ""
 
-#: read.c:3065 read.c:3101
+#: read.c:3066 read.c:3102
 #, c-format
 msgid "%s without %s"
 msgstr ""
 
 #, c-format
 msgid "%s without %s"
 msgstr ""
 
-#: read.c:3336
+#: read.c:3337
 msgid "unsupported variable size or fill value"
 msgstr ""
 
 msgid "unsupported variable size or fill value"
 msgstr ""
 
-#: read.c:3344
+#: read.c:3345
 #, c-format
 msgid "size value for space directive too large: %lx"
 msgstr ""
 
 #, c-format
 msgid "size value for space directive too large: %lx"
 msgstr ""
 
-#: read.c:3373
+#: read.c:3374
 msgid ".space repeat count is zero, ignored"
 msgstr ""
 
 msgid ".space repeat count is zero, ignored"
 msgstr ""
 
-#: read.c:3375
+#: read.c:3376
 msgid ".space repeat count is negative, ignored"
 msgstr ""
 
 msgid ".space repeat count is negative, ignored"
 msgstr ""
 
-#: read.c:3406
+#: read.c:3407
 msgid "space allocation too complex in absolute section"
 msgstr ""
 
 msgid "space allocation too complex in absolute section"
 msgstr ""
 
-#: read.c:3412
+#: read.c:3413
 msgid "space allocation too complex in common section"
 msgstr ""
 
 msgid "space allocation too complex in common section"
 msgstr ""
 
-#: read.c:3473
+#: read.c:3474
 msgid "negative nop control byte, ignored"
 msgstr ""
 
 msgid "negative nop control byte, ignored"
 msgstr ""
 
-#: read.c:3489
+#: read.c:3490
 msgid "unsupported variable nop control in .nops directive"
 msgstr ""
 
 msgid "unsupported variable nop control in .nops directive"
 msgstr ""
 
-#: read.c:3691
+#: read.c:3692
 #, c-format
 msgid "%s: would close weakref loop: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: would close weakref loop: %s"
 msgstr ""
 
-#: read.c:3741
+#: read.c:3742
 #, c-format
 msgid "junk at end of line, first unrecognized character valued 0x%x"
 msgstr ""
 
 #, c-format
 msgid "junk at end of line, first unrecognized character valued 0x%x"
 msgstr ""
 
-#: read.c:3870 write.c:2354
+#: read.c:3871 write.c:2358
 #, c-format
 msgid "`%s' can't be equated to common symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "`%s' can't be equated to common symbol `%s'"
 msgstr ""
 
-#: read.c:4000
+#: read.c:4001
 msgid "unexpected `\"' in expression"
 msgstr ""
 
 msgid "unexpected `\"' in expression"
 msgstr ""
 
-#: read.c:4013
+#: read.c:4014
 msgid "rva without symbol"
 msgstr ""
 
 msgid "rva without symbol"
 msgstr ""
 
-#: read.c:4082
+#: read.c:4083
 msgid "missing or bad offset expression"
 msgstr ""
 
 msgid "missing or bad offset expression"
 msgstr ""
 
-#: read.c:4103
+#: read.c:4104
 msgid "missing reloc type"
 msgstr ""
 
 msgid "missing reloc type"
 msgstr ""
 
-#: read.c:4127
+#: read.c:4128
 msgid "unrecognized reloc type"
 msgstr ""
 
 msgid "unrecognized reloc type"
 msgstr ""
 
-#: read.c:4143
+#: read.c:4144
 msgid "bad reloc expression"
 msgstr ""
 
 msgid "bad reloc expression"
 msgstr ""
 
-#: read.c:4305 read.c:5151
+#: read.c:4306 read.c:5152
 msgid "zero assumed for missing expression"
 msgstr ""
 
 msgid "zero assumed for missing expression"
 msgstr ""
 
-#: read.c:4325 read.c:5180
+#: read.c:4326 read.c:5181
 msgid "attempt to store value in absolute section"
 msgstr ""
 
 msgid "attempt to store value in absolute section"
 msgstr ""
 
-#: read.c:4332 read.c:5186
+#: read.c:4333 read.c:5187
 #, c-format
 msgid "attempt to store non-zero value in section `%s'"
 msgstr ""
 
 #, c-format
 msgid "attempt to store non-zero value in section `%s'"
 msgstr ""
 
-#: read.c:4418
+#: read.c:4419
 #, c-format
 msgid "value 0x%llx truncated to 0x%llx"
 msgstr ""
 
 #, c-format
 msgid "value 0x%llx truncated to 0x%llx"
 msgstr ""
 
-#: read.c:4421
+#: read.c:4422
 msgid "value 0x%I64x truncated to 0x%I64x"
 msgstr ""
 
 msgid "value 0x%I64x truncated to 0x%I64x"
 msgstr ""
 
-#: read.c:4425
+#: read.c:4426
 #, c-format
 msgid "value 0x%lx truncated to 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "value 0x%lx truncated to 0x%lx"
 msgstr ""
 
-#: read.c:4470
+#: read.c:4471
 #, c-format
 msgid "bignum truncated to %d byte"
 msgid_plural "bignum truncated to %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "bignum truncated to %d byte"
 msgid_plural "bignum truncated to %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: read.c:4679 read.c:4889
+#: read.c:4680 read.c:4890
 msgid "unresolvable or nonpositive repeat count; using 1"
 msgstr ""
 
 msgid "unresolvable or nonpositive repeat count; using 1"
 msgstr ""
 
-#: read.c:4728
+#: read.c:4729
 #, c-format
 msgid "unknown floating type type '%c'"
 msgstr ""
 
 #, c-format
 msgid "unknown floating type type '%c'"
 msgstr ""
 
-#: read.c:4750
+#: read.c:4751
 msgid "floating point constant too large"
 msgstr ""
 
 msgid "floating point constant too large"
 msgstr ""
 
-#: read.c:4814
+#: read.c:4815
 msgid "attempt to store float in absolute section"
 msgstr ""
 
 msgid "attempt to store float in absolute section"
 msgstr ""
 
-#: read.c:4821
+#: read.c:4822
 #, c-format
 msgid "attempt to store float in section `%s'"
 msgstr ""
 
 #, c-format
 msgid "attempt to store float in section `%s'"
 msgstr ""
 
-#: read.c:5269
+#: read.c:5270
 #, c-format
 msgid "attempt to store non-empty string in section `%s'"
 msgstr ""
 
 #, c-format
 msgid "attempt to store non-empty string in section `%s'"
 msgstr ""
 
-#: read.c:5331
+#: read.c:5332
 msgid "strings must be placed into a section"
 msgstr ""
 
 msgid "strings must be placed into a section"
 msgstr ""
 
-#: read.c:5393
+#: read.c:5394
 msgid "expected <nn>"
 msgstr ""
 
 #. To be compatible with BSD 4.2 as: give the luser a linefeed!!
 msgid "expected <nn>"
 msgstr ""
 
 #. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:5434 read.c:5521
+#: read.c:5435 read.c:5522
 msgid "unterminated string; newline inserted"
 msgstr ""
 
 msgid "unterminated string; newline inserted"
 msgstr ""
 
-#: read.c:5535
+#: read.c:5536
 msgid "bad escaped character in string"
 msgstr ""
 
 msgid "bad escaped character in string"
 msgstr ""
 
-#: read.c:5559
+#: read.c:5560
 msgid "expected address expression"
 msgstr ""
 
 msgid "expected address expression"
 msgstr ""
 
-#: read.c:5578
+#: read.c:5579
 #, c-format
 msgid "symbol \"%s\" undefined; zero assumed"
 msgstr ""
 
 #, c-format
 msgid "symbol \"%s\" undefined; zero assumed"
 msgstr ""
 
-#: read.c:5581
+#: read.c:5582
 msgid "some symbol undefined; zero assumed"
 msgstr ""
 
 msgid "some symbol undefined; zero assumed"
 msgstr ""
 
-#: read.c:5616
+#: read.c:5617
 msgid "this string may not contain '\\0'"
 msgstr ""
 
 msgid "this string may not contain '\\0'"
 msgstr ""
 
-#: read.c:5652
+#: read.c:5653
 msgid "missing string"
 msgstr ""
 
 msgid "missing string"
 msgstr ""
 
-#: read.c:5743
+#: read.c:5744
 #, c-format
 msgid ".incbin count zero, ignoring `%s'"
 msgstr ""
 
 #, c-format
 msgid ".incbin count zero, ignoring `%s'"
 msgstr ""
 
-#: read.c:5769
+#: read.c:5770
 #, c-format
 msgid "file not found: %s"
 msgstr ""
 
 #, c-format
 msgid "file not found: %s"
 msgstr ""
 
-#: read.c:5783
+#: read.c:5784
 #, c-format
 msgid "seek to end of .incbin file failed `%s'"
 msgstr ""
 
 #, c-format
 msgid "seek to end of .incbin file failed `%s'"
 msgstr ""
 
-#: read.c:5794
+#: read.c:5795
 #, c-format
 msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
 msgstr ""
 
 #, c-format
 msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
 msgstr ""
 
-#: read.c:5801
+#: read.c:5802
 #, c-format
 msgid "could not skip to %ld in file `%s'"
 msgstr ""
 
 #, c-format
 msgid "could not skip to %ld in file `%s'"
 msgstr ""
 
-#: read.c:5810
+#: read.c:5811
 #, c-format
 msgid "truncated file `%s', %ld of %ld bytes read"
 msgstr ""
 
 #, c-format
 msgid "truncated file `%s', %ld of %ld bytes read"
 msgstr ""
 
-#: read.c:5968
+#: read.c:5969
 msgid "missing .func"
 msgstr ""
 
 msgid "missing .func"
 msgstr ""
 
-#: read.c:5985
+#: read.c:5986
 msgid ".endfunc missing for previous .func"
 msgstr ""
 
 msgid ".endfunc missing for previous .func"
 msgstr ""
 
-#: read.c:6044
+#: read.c:6045
 #, c-format
 msgid ".bundle_align_mode alignment too large (maximum %u)"
 msgstr ""
 
 #, c-format
 msgid ".bundle_align_mode alignment too large (maximum %u)"
 msgstr ""
 
-#: read.c:6049
+#: read.c:6050
 msgid "cannot change .bundle_align_mode inside .bundle_lock"
 msgstr ""
 
 msgid "cannot change .bundle_align_mode inside .bundle_lock"
 msgstr ""
 
-#: read.c:6063
+#: read.c:6064
 msgid ".bundle_lock is meaningless without .bundle_align_mode"
 msgstr ""
 
 msgid ".bundle_lock is meaningless without .bundle_align_mode"
 msgstr ""
 
-#: read.c:6084
+#: read.c:6085
 msgid ".bundle_unlock without preceding .bundle_lock"
 msgstr ""
 
 msgid ".bundle_unlock without preceding .bundle_lock"
 msgstr ""
 
-#: read.c:6097
+#: read.c:6098
 #, c-format
 msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
 msgstr ""
 
 #, c-format
 msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
 msgstr ""
 
-#: read.c:6196
+#: read.c:6197
 #, c-format
 msgid "missing closing `%c'"
 msgstr ""
 
 #, c-format
 msgid "missing closing `%c'"
 msgstr ""
 
-#: read.c:6198
+#: read.c:6199
 msgid "stray `\\'"
 msgstr ""
 
 msgid "stray `\\'"
 msgstr ""
 
@@ -21550,52 +21890,52 @@ msgstr ""
 msgid "invalid operand (%s section) for `%s' when setting `%s'"
 msgstr ""
 
 msgid "invalid operand (%s section) for `%s' when setting `%s'"
 msgstr ""
 
-#: symbols.c:1259
+#: symbols.c:1266
 #, c-format
 msgid "symbol definition loop encountered at `%s'"
 msgstr ""
 
 #, c-format
 msgid "symbol definition loop encountered at `%s'"
 msgstr ""
 
-#: symbols.c:1286
+#: symbols.c:1293
 #, c-format
 msgid "cannot convert expression symbol %s to complex relocation"
 msgstr ""
 
 #, c-format
 msgid "cannot convert expression symbol %s to complex relocation"
 msgstr ""
 
-#: symbols.c:1563
+#: symbols.c:1576
 #, c-format
 msgid "division by zero when setting `%s'"
 msgstr ""
 
 #. See PR 20895 for a reproducer.
 #, c-format
 msgid "division by zero when setting `%s'"
 msgstr ""
 
 #. See PR 20895 for a reproducer.
-#: symbols.c:1603
+#: symbols.c:1616
 msgid "Invalid operation on symbol"
 msgstr ""
 
 msgid "Invalid operation on symbol"
 msgstr ""
 
-#: symbols.c:1653 write.c:2403
+#: symbols.c:1666 write.c:2407
 #, c-format
 msgid "can't resolve value for symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "can't resolve value for symbol `%s'"
 msgstr ""
 
-#: symbols.c:2112
+#: symbols.c:2125
 #, c-format
 msgid "\"%d\" (instance number %d of a %s label)"
 msgstr ""
 
 #, c-format
 msgid "\"%d\" (instance number %d of a %s label)"
 msgstr ""
 
-#: symbols.c:2141
+#: symbols.c:2154
 #, c-format
 msgid "attempt to get value of unresolved symbol `%s'"
 msgstr ""
 
 #. Do not reassign section symbols.
 #, c-format
 msgid "attempt to get value of unresolved symbol `%s'"
 msgstr ""
 
 #. Do not reassign section symbols.
-#: symbols.c:2429
+#: symbols.c:2442
 msgid "section symbols are already global"
 msgstr ""
 
 msgid "section symbols are already global"
 msgstr ""
 
-#: symbols.c:2542
+#: symbols.c:2555
 #, c-format
 msgid "Accessing function `%s' as thread-local object"
 msgstr ""
 
 #, c-format
 msgid "Accessing function `%s' as thread-local object"
 msgstr ""
 
-#: symbols.c:2546
+#: symbols.c:2559
 #, c-format
 msgid "Accessing `%s' as thread-local object"
 msgstr ""
 #, c-format
 msgid "Accessing `%s' as thread-local object"
 msgstr ""
@@ -21671,65 +22011,65 @@ msgid_plural "can't write %ld bytes to section %s of %s: '%s'"
 msgstr[0] ""
 msgstr[1] ""
 
 msgstr[0] ""
 msgstr[1] ""
 
-#: write.c:1648 write.c:1675 write.c:1711
+#: write.c:1648 write.c:1677 write.c:1714
 #, c-format
 msgid "can't fill %ld byte in section %s of %s: '%s'"
 msgid_plural "can't fill %ld bytes in section %s of %s: '%s'"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "can't fill %ld byte in section %s of %s: '%s'"
 msgid_plural "can't fill %ld bytes in section %s of %s: '%s'"
 msgstr[0] ""
 msgstr[1] ""
 
-#: write.c:1914
+#: write.c:1918
 msgid "unable to create reloc for build note"
 msgstr ""
 
 msgid "unable to create reloc for build note"
 msgstr ""
 
-#: write.c:1918
+#: write.c:1922
 msgid "<gnu build note>"
 msgstr ""
 
 msgid "<gnu build note>"
 msgstr ""
 
-#: write.c:2319
+#: write.c:2323
 #, c-format
 msgid "%s: global symbols not supported in common sections"
 msgstr ""
 
 #, c-format
 msgid "%s: global symbols not supported in common sections"
 msgstr ""
 
-#: write.c:2333
+#: write.c:2337
 #, c-format
 msgid "local label `%s' is not defined"
 msgstr ""
 
 #, c-format
 msgid "local label `%s' is not defined"
 msgstr ""
 
-#: write.c:2361
+#: write.c:2365
 #, c-format
 msgid "can't make global register symbol `%s'"
 msgstr ""
 
 #, c-format
 msgid "can't make global register symbol `%s'"
 msgstr ""
 
-#: write.c:2670
+#: write.c:2674
 #, c-format
 msgid "alignment padding (%lu byte) not a multiple of %ld"
 msgid_plural "alignment padding (%lu bytes) not a multiple of %ld"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "alignment padding (%lu byte) not a multiple of %ld"
 msgid_plural "alignment padding (%lu bytes) not a multiple of %ld"
 msgstr[0] ""
 msgstr[1] ""
 
-#: write.c:2837
+#: write.c:2841
 #, c-format
 msgid ".word %s-%s+%s didn't fit"
 msgstr ""
 
 #, c-format
 msgid ".word %s-%s+%s didn't fit"
 msgstr ""
 
-#: write.c:2931
+#: write.c:2935
 msgid "padding added"
 msgstr ""
 
 msgid "padding added"
 msgstr ""
 
-#: write.c:2982
+#: write.c:2986
 msgid "attempt to move .org backwards"
 msgstr ""
 
 msgid "attempt to move .org backwards"
 msgstr ""
 
-#: write.c:3007
+#: write.c:3011
 msgid ".space specifies non-absolute value"
 msgstr ""
 
 msgid ".space specifies non-absolute value"
 msgstr ""
 
-#: write.c:3022
+#: write.c:3026
 msgid ".space, .nops or .fill with negative value, ignored"
 msgstr ""
 
 msgid ".space, .nops or .fill with negative value, ignored"
 msgstr ""
 
-#: write.c:3094
+#: write.c:3098
 #, c-format
 msgid ""
 "Infinite loop encountered whilst attempting to compute the addresses of "
 #, c-format
 msgid ""
 "Infinite loop encountered whilst attempting to compute the addresses of "
index e22773e22b86ff2c63f371b933a534da30130f88..f02734744e1a9549fa89ca9a7d719e2d153166dc 100644 (file)
@@ -1,6 +1,9 @@
-#as: -march=rv32g -march-attr
+#as: -march=rv32g -march-attr -misa-spec=2.2
 #readelf: -A
 #source: empty.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
 #readelf: -A
 #source: empty.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index bc3295be7effb785613a3c80210399d92865143f..02b532d0a88c92703bd0877f5f6f0f0d2296e7a0 100644 (file)
@@ -1,6 +1,9 @@
-#as: -march=rv32gxargle -march-attr
+#as: -march=rv32gxargle -march-attr -misa-spec=2.2
 #readelf: -A
 #source: empty.s
 Attribute Section: riscv
 File Attributes
 #readelf: -A
 #source: empty.s
 Attribute Section: riscv
 File Attributes
-  Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0_xargle2p0"
+  Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0_xargle0p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 78b706a73adcd3b102a47913fe1821d2b66dd25a..ded529aa61768088f9e1eecba801677b965fd5be 100644 (file)
@@ -1,6 +1,9 @@
-#as: -march=rv32gxargle_xfoo -march-attr
+#as: -march=rv32gxargle_xfoo -march-attr -misa-spec=2.2
 #readelf: -A
 #source: empty.s
 Attribute Section: riscv
 File Attributes
 #readelf: -A
 #source: empty.s
 Attribute Section: riscv
 File Attributes
-  Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0_xargle2p0_xfoo2p0"
+  Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0_xargle0p0_xfoo0p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index c97bf03d5e4c1f65b8f15559886d2e8b69d935f7..df6c8182d5b96650d6b17b0d3460306a85185b4a 100644 (file)
@@ -1,6 +1,9 @@
-#as: -march-attr
+#as: -march-attr -misa-spec=2.2
 #readelf: -A
 #source: attribute-04.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
 #readelf: -A
 #source: attribute-04.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index f9b65f206b7867eafa7833af742c8b8324f2a499..247f52e0ed87259fc10e9ffc1ba724450fd03750 100644 (file)
@@ -1,4 +1,4 @@
-#as: -march-attr
+#as: -march-attr -misa-spec=2.2
 #readelf: -A
 #source: attribute-05.s
 Attribute Section: riscv
 #readelf: -A
 #source: attribute-05.s
 Attribute Section: riscv
@@ -7,5 +7,5 @@ File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
   Tag_RISCV_unaligned_access: Unaligned access
   Tag_RISCV_priv_spec: 1
   Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
   Tag_RISCV_unaligned_access: Unaligned access
   Tag_RISCV_priv_spec: 1
-  Tag_RISCV_priv_spec_minor: 2
-  Tag_RISCV_priv_spec_revision: 3
+  Tag_RISCV_priv_spec_minor: 9
+  Tag_RISCV_priv_spec_revision: 1
index 3b3b7f6d5616f468a5e8b36f4ec156af57c77f9a..492030979949f9502e3648c905fb55bacd1c4501 100644 (file)
@@ -1,6 +1,6 @@
        .attribute arch, "rv32g"
        .attribute priv_spec, 1
        .attribute arch, "rv32g"
        .attribute priv_spec, 1
-       .attribute priv_spec_minor, 2
-       .attribute priv_spec_revision, 3
+       .attribute priv_spec_minor, 9
+       .attribute priv_spec_revision, 1
        .attribute unaligned_access, 1
        .attribute stack_align, 16
        .attribute unaligned_access, 1
        .attribute stack_align, 16
index 1abeb47383d9946aaeb3c41f8c0df86440013b53..e1d62c45db76709657555a2136e2beb1bb5c0ed1 100644 (file)
@@ -1,6 +1,9 @@
-#as: -march=rv32g2p0 -march-attr
+#as: -march=rv32g2p0 -march-attr -misa-spec=2.2
 #readelf: -A
 #source: attribute-06.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0"
 #readelf: -A
 #source: attribute-06.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index dfd7e6bd6e58454bec411506f16de6c038997cf2..59f02b4c4e3526e00b7acf5486cb72d7ea827608 100644 (file)
@@ -1,6 +1,9 @@
-#as: -march=rv64g2p0 -march-attr
+#as: -march=rv64g2p0 -march-attr -misa-spec=2.2
 #readelf: -A
 #source: attribute-07.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv64i2p0"
 #readelf: -A
 #source: attribute-07.s
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv64i2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index c10ac0ca353b489e04b10379a89593c150c6c740..13b82a97a63aee118ae6816f3040d94c248b44e5 100644 (file)
@@ -4,3 +4,6 @@
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32e1p9"
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32e1p9"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
diff --git a/gas/testsuite/gas/riscv/attribute-09.d b/gas/testsuite/gas/riscv/attribute-09.d
new file mode 100644 (file)
index 0000000..53945a2
--- /dev/null
@@ -0,0 +1,9 @@
+#as: -march-attr -march=rv32i2p1m_zicsr -misa-spec=2.2
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+  Tag_RISCV_arch: "rv32i2p1_m2p0_zicsr0p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
diff --git a/gas/testsuite/gas/riscv/attribute-10.d b/gas/testsuite/gas/riscv/attribute-10.d
new file mode 100644 (file)
index 0000000..91691fd
--- /dev/null
@@ -0,0 +1,9 @@
+#as: -march-attr -march=rv32gc_zicsr -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+  Tag_RISCV_arch: "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 667f21acfc1dd9c34ed76657d8bbef8e6185936d..120e3dee6ca740312de6dd3eaba3f338e1ce4a9d 100644 (file)
@@ -4,5 +4,8 @@
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
   Tag_unknown_255: "test"
   Tag_unknown_256: 123 \(0x7b\)
   Tag_unknown_255: "test"
   Tag_unknown_256: 123 \(0x7b\)
index df9642f1e2f9bbac5a67af6b072fbbce5680c359..c03d45986e854c6f3d796e87d4389dfdd4720878 100644 (file)
@@ -1,4 +1,4 @@
-#as: -march=rv32if
+#as: -march=rv32if -mpriv-spec=1.11
 #objdump: --dwarf=frames
 
 
 #objdump: --dwarf=frames
 
 
diff --git a/gas/testsuite/gas/riscv/march-fail-s-with-version b/gas/testsuite/gas/riscv/march-fail-s-with-version
deleted file mode 100644 (file)
index a514d4a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Assembler messages:
-.*: Invalid or unknown s ISA extension: 'sfoo'
\ No newline at end of file
index da5356636934b73b397e728faa45e3188506107c..d9939eb7f124853a1973cf69e987f51ebd116932 100644 (file)
@@ -1,3 +1,3 @@
-#as: -march=rv32i -mcsr-check
+#as: -march=rv32i -mcsr-check -mpriv-spec=1.11
 #source: priv-reg.s
 #warning_output: priv-reg-fail-fext.l
 #source: priv-reg.s
 #warning_output: priv-reg-fail-fext.l
index 76818c812c14a192be2b3c2a6b20d8ac13e3d00d..d74863ef444a7b700bbba0c069269db8abd3484d 100644 (file)
@@ -2,3 +2,28 @@
 .*Warning: Invalid CSR `fflags' for the current ISA
 .*Warning: Invalid CSR `frm' for the current ISA
 .*Warning: Invalid CSR `fcsr' for the current ISA
 .*Warning: Invalid CSR `fflags' for the current ISA
 .*Warning: Invalid CSR `frm' for the current ISA
 .*Warning: Invalid CSR `fcsr' for the current ISA
+
+.*Warning: Invalid CSR `ubadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sptbr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mucounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `dscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hstatus' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hedeleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hideleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hie' for the privilege spec `1.11'
+.*Warning: Invalid CSR `htvec' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hepc' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hcause' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hip' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mscounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mhcounteren' for the privilege spec `1.11'
index ae190c053c6b44a7e01ec7019df13be6b29dd927..b0f67264f2e06452dcc0e0ba53b4d2869a476091 100644 (file)
@@ -1,3 +1,3 @@
-#as: -march=rv32if -mcsr-check
+#as: -march=rv32if -mcsr-check -mpriv-spec=1.11
 #source: priv-reg-fail-read-only-01.s
 #warning_output: priv-reg-fail-read-only-01.l
 #source: priv-reg-fail-read-only-01.s
 #warning_output: priv-reg-fail-read-only-01.l
index 7e52bd7bea362be9500eca13f8cddbdf479ab576..2dc82f4ec03aeb3895435c278f7635420a8e3643 100644 (file)
 .*Warning: Read-only CSR is written `csrw marchid,a1'
 .*Warning: Read-only CSR is written `csrw mimpid,a1'
 .*Warning: Read-only CSR is written `csrw mhartid,a1'
 .*Warning: Read-only CSR is written `csrw marchid,a1'
 .*Warning: Read-only CSR is written `csrw mimpid,a1'
 .*Warning: Read-only CSR is written `csrw mhartid,a1'
+
+.*Warning: Invalid CSR `ubadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sptbr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mucounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `dscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hstatus' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hedeleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hideleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hie' for the privilege spec `1.11'
+.*Warning: Invalid CSR `htvec' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hepc' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hcause' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hip' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mscounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mhcounteren' for the privilege spec `1.11'
index 501a52ef518533a993c2e86883d074de4b815c0d..af0fc4e14a42b4b44fe58db96f194a76e2c156e6 100644 (file)
@@ -1,7 +1,8 @@
        .macro csr val
        csrw \val, a1
        .endm
        .macro csr val
        csrw \val, a1
        .endm
-# 1.9.1 registers
+
+       # Supported the current priv spec 1.11.
        csr ustatus
        csr uie
        csr utvec
        csr ustatus
        csr uie
        csr utvec
@@ -9,7 +10,7 @@
        csr uscratch
        csr uepc
        csr ucause
        csr uscratch
        csr uepc
        csr ucause
-       csr ubadaddr
+       csr utval               # Added in 1.10
        csr uip
 
        csr fflags
        csr uip
 
        csr fflags
        csr sideleg
        csr sie
        csr stvec
        csr sideleg
        csr sie
        csr stvec
+       csr scounteren          # Added in 1.10
 
        csr sscratch
        csr sepc
        csr scause
 
        csr sscratch
        csr sepc
        csr scause
-       csr sbadaddr
+       csr stval               # Added in 1.10
        csr sip
 
        csr sip
 
-       csr sptbr
-
-       csr hstatus
-       csr hedeleg
-       csr hideleg
-       csr hie
-       csr htvec
-
-       csr hscratch
-       csr hepc
-       csr hcause
-       csr hbadaddr
-       csr hip
+       csr satp                # Added in 1.10
 
        csr mvendorid
        csr marchid
 
        csr mvendorid
        csr marchid
        csr mhartid
 
        csr mstatus
        csr mhartid
 
        csr mstatus
-       csr misa
+       csr misa                # 0xf10 in 1.9, but changed to 0x301 since 1.9.1.
        csr medeleg
        csr mideleg
        csr mie
        csr mtvec
        csr medeleg
        csr mideleg
        csr mie
        csr mtvec
+       csr mcounteren          # Added in 1.10
 
        csr mscratch
        csr mepc
        csr mcause
 
        csr mscratch
        csr mepc
        csr mcause
-       csr mbadaddr
+       csr mtval               # Added in 1.10
        csr mip
 
        csr mip
 
-       csr mbase
-       csr mbound
-       csr mibase
-       csr mibound
-       csr mdbase
-       csr mdbound
+       csr pmpcfg0             # Added in 1.10
+       csr pmpcfg1             # Added in 1.10
+       csr pmpcfg2             # Added in 1.10
+       csr pmpcfg3             # Added in 1.10
+       csr pmpaddr0            # Added in 1.10
+       csr pmpaddr1            # Added in 1.10
+       csr pmpaddr2            # Added in 1.10
+       csr pmpaddr3            # Added in 1.10
+       csr pmpaddr4            # Added in 1.10
+       csr pmpaddr5            # Added in 1.10
+       csr pmpaddr6            # Added in 1.10
+       csr pmpaddr7            # Added in 1.10
+       csr pmpaddr8            # Added in 1.10
+       csr pmpaddr9            # Added in 1.10
+       csr pmpaddr10           # Added in 1.10
+       csr pmpaddr11           # Added in 1.10
+       csr pmpaddr12           # Added in 1.10
+       csr pmpaddr13           # Added in 1.10
+       csr pmpaddr14           # Added in 1.10
+       csr pmpaddr15           # Added in 1.10
 
        csr mcycle
        csr minstret
 
        csr mcycle
        csr minstret
        csr mhpmcounter30h
        csr mhpmcounter31h
 
        csr mhpmcounter30h
        csr mhpmcounter31h
 
-       csr mucounteren
-       csr mscounteren
-       csr mhcounteren
-
+       csr mcountinhibit       # Added in 1.11
        csr mhpmevent3
        csr mhpmevent4
        csr mhpmevent5
        csr mhpmevent3
        csr mhpmevent4
        csr mhpmevent5
 
        csr dcsr
        csr dpc
 
        csr dcsr
        csr dpc
-       csr dscratch
-# 1.10 registers
-       csr utval
-
-       csr scounteren
-       csr stval
-       csr satp
+       csr dscratch0           # Added in 1.11
+       csr dscratch1           # Added in 1.11
 
 
-       csr mcounteren
-       csr mtval
+       # Supported in previous priv spec, but dropped now.
+       csr ubadaddr            # 0x043 in 1.9.1, but the value is utval since 1.10
+       csr sbadaddr            # 0x143 in 1.9.1, but the value is stval since 1.10
+       csr sptbr               # 0x180 in 1.9.1, but the value is satp since 1.10
+       csr mbadaddr            # 0x343 in 1.9.1, but the value is mtval since 1.10
+       csr mucounteren         # 0x320 in 1.9.1, dropped in 1.10, but the value is mcountinhibit since 1.11
+       csr dscratch            # 0x7b2 in 1.10,  but the value is dscratch0 since 1.11
 
 
-       csr pmpcfg0
-       csr pmpcfg1
-       csr pmpcfg2
-       csr pmpcfg3
-       csr pmpaddr0
-       csr pmpaddr1
-       csr pmpaddr2
-       csr pmpaddr3
-       csr pmpaddr4
-       csr pmpaddr5
-       csr pmpaddr6
-       csr pmpaddr7
-       csr pmpaddr8
-       csr pmpaddr9
-       csr pmpaddr10
-       csr pmpaddr11
-       csr pmpaddr12
-       csr pmpaddr13
-       csr pmpaddr14
-       csr pmpaddr15
+       csr hstatus             # 0x200, dropped in 1.10
+       csr hedeleg             # 0x202, dropped in 1.10
+       csr hideleg             # 0x203, dropped in 1.10
+       csr hie                 # 0x204, dropped in 1.10
+       csr htvec               # 0x205, dropped in 1.10
+       csr hscratch            # 0x240, dropped in 1.10
+       csr hepc                # 0x241, dropped in 1.10
+       csr hcause              # 0x242, dropped in 1.10
+       csr hbadaddr            # 0x243, dropped in 1.10
+       csr hip                 # 0x244, dropped in 1.10
+       csr mbase               # 0x380, dropped in 1.10
+       csr mbound              # 0x381, dropped in 1.10
+       csr mibase              # 0x382, dropped in 1.10
+       csr mibound             # 0x383, dropped in 1.10
+       csr mdbase              # 0x384, dropped in 1.10
+       csr mdbound             # 0x385, dropped in 1.10
+       csr mscounteren         # 0x321, dropped in 1.10
+       csr mhcounteren         # 0x322, dropped in 1.10
index 3c4715f04829cc892a30ab4881e5e3f3f03a8140..ec206e4d6d1bcb620fe8c46bed23e807147c1dad 100644 (file)
@@ -1,3 +1,3 @@
-#as: -march=rv32if -mcsr-check
+#as: -march=rv32if -mcsr-check -mpriv-spec=1.11
 #source: priv-reg-fail-read-only-02.s
 #warning_output: priv-reg-fail-read-only-02.l
 #source: priv-reg-fail-read-only-02.s
 #warning_output: priv-reg-fail-read-only-02.l
index d71b2615c5f1463f347f9a92d070f664f9db4890..eced438ea47ffdbb0c829efd99aadee0c75c5e68 100644 (file)
@@ -1,3 +1,3 @@
-#as: -march=rv64if -mcsr-check
+#as: -march=rv64if -mcsr-check -mpriv-spec=1.11
 #source: priv-reg.s
 #warning_output: priv-reg-fail-rv32-only.l
 #source: priv-reg.s
 #warning_output: priv-reg-fail-rv32-only.l
index fa5a1b4a4b401fb10aae84f99faa7e85e6d8ff84..19f13a0ee5cce4d072108549d586197ac6ecf6c8 100644 (file)
 .*Warning: Invalid CSR `mhpmcounter29h' for the current ISA
 .*Warning: Invalid CSR `mhpmcounter30h' for the current ISA
 .*Warning: Invalid CSR `mhpmcounter31h' for the current ISA
 .*Warning: Invalid CSR `mhpmcounter29h' for the current ISA
 .*Warning: Invalid CSR `mhpmcounter30h' for the current ISA
 .*Warning: Invalid CSR `mhpmcounter31h' for the current ISA
+
+.*Warning: Invalid CSR `ubadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sptbr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mucounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `dscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hstatus' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hedeleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hideleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hie' for the privilege spec `1.11'
+.*Warning: Invalid CSR `htvec' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hepc' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hcause' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hip' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mscounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mhcounteren' for the privilege spec `1.11'
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.d b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.d
new file mode 100644 (file)
index 0000000..07cf05a
--- /dev/null
@@ -0,0 +1,11 @@
+#as: -march=rv32if -mcsr-check -mpriv-spec=1.10 -march-attr
+#source: priv-reg.s
+#warning_output: priv-reg-fail-version-1p10.l
+#readelf: -A
+
+Attribute Section: riscv
+File Attributes
+  Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: 1
+  Tag_RISCV_priv_spec_minor: 10
+#...
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l
new file mode 100644 (file)
index 0000000..4146174
--- /dev/null
@@ -0,0 +1,27 @@
+.*Assembler messages:
+.*Warning: Invalid CSR `mcountinhibit' for the privilege spec `1.10'
+.*Warning: Invalid CSR `dscratch0' for the privilege spec `1.10'
+.*Warning: Invalid CSR `dscratch1' for the privilege spec `1.10'
+.*Warning: Invalid CSR `ubadaddr' for the privilege spec `1.10'
+.*Warning: Invalid CSR `sbadaddr' for the privilege spec `1.10'
+.*Warning: Invalid CSR `sptbr' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mbadaddr' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mucounteren' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hstatus' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hedeleg' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hideleg' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hie' for the privilege spec `1.10'
+.*Warning: Invalid CSR `htvec' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hscratch' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hepc' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hcause' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hbadaddr' for the privilege spec `1.10'
+.*Warning: Invalid CSR `hip' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mbase' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mbound' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mibase' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mibound' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mdbase' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mdbound' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mscounteren' for the privilege spec `1.10'
+.*Warning: Invalid CSR `mhcounteren' for the privilege spec `1.10'
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.d b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.d
new file mode 100644 (file)
index 0000000..bf4b1db
--- /dev/null
@@ -0,0 +1,11 @@
+#as: -march=rv32if -mcsr-check -mpriv-spec=1.11 -march-attr
+#source: priv-reg.s
+#warning_output: priv-reg-fail-version-1p11.l
+#readelf: -A
+
+Attribute Section: riscv
+File Attributes
+  Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: 1
+  Tag_RISCV_priv_spec_minor: 11
+#...
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l
new file mode 100644 (file)
index 0000000..eadcb5c
--- /dev/null
@@ -0,0 +1,25 @@
+.*Assembler messages:
+.*Warning: Invalid CSR `ubadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `sptbr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mucounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `dscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hstatus' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hedeleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hideleg' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hie' for the privilege spec `1.11'
+.*Warning: Invalid CSR `htvec' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hscratch' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hepc' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hcause' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hbadaddr' for the privilege spec `1.11'
+.*Warning: Invalid CSR `hip' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mibound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbase' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mdbound' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mscounteren' for the privilege spec `1.11'
+.*Warning: Invalid CSR `mhcounteren' for the privilege spec `1.11'
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d
new file mode 100644 (file)
index 0000000..c914334
--- /dev/null
@@ -0,0 +1,11 @@
+#as: -march=rv32if -mcsr-check -mpriv-spec=1.9 -march-attr
+#source: priv-reg.s
+#warning_output: priv-reg-fail-version-1p9.l
+#readelf: -A
+
+Attribute Section: riscv
+File Attributes
+  Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: 1
+  Tag_RISCV_priv_spec_minor: 9
+#...
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l
new file mode 100644 (file)
index 0000000..d7cee80
--- /dev/null
@@ -0,0 +1,30 @@
+.*Assembler messages:
+.*Warning: Invalid CSR `utval' for the privilege spec `1.9'
+.*Warning: Invalid CSR `scounteren' for the privilege spec `1.9'
+.*Warning: Invalid CSR `stval' for the privilege spec `1.9'
+.*Warning: Invalid CSR `satp' for the privilege spec `1.9'
+.*Warning: Invalid CSR `mcounteren' for the privilege spec `1.9'
+.*Warning: Invalid CSR `mtval' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpcfg0' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpcfg1' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpcfg2' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpcfg3' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr0' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr1' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr2' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr3' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr4' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr5' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr6' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr7' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr8' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr9' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr10' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr11' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr12' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr13' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr14' for the privilege spec `1.9'
+.*Warning: Invalid CSR `pmpaddr15' for the privilege spec `1.9'
+.*Warning: Invalid CSR `mcountinhibit' for the privilege spec `1.9'
+.*Warning: Invalid CSR `dscratch0' for the privilege spec `1.9'
+.*Warning: Invalid CSR `dscratch1' for the privilege spec `1.9'
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d
new file mode 100644 (file)
index 0000000..e2c33d8
--- /dev/null
@@ -0,0 +1,12 @@
+#as: -march=rv32if -mcsr-check -mpriv-spec=1.9.1 -march-attr
+#source: priv-reg.s
+#warning_output: priv-reg-fail-version-1p9p1.l
+#readelf: -A
+
+Attribute Section: riscv
+File Attributes
+  Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: 1
+  Tag_RISCV_priv_spec_minor: 9
+  Tag_RISCV_priv_spec_revision: 1
+#...
diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l
new file mode 100644 (file)
index 0000000..907ed73
--- /dev/null
@@ -0,0 +1,30 @@
+.*Assembler messages:
+.*Warning: Invalid CSR `utval' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `scounteren' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `stval' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `satp' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `mcounteren' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `mtval' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpcfg0' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpcfg1' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpcfg2' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpcfg3' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr0' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr1' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr2' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr3' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr4' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr5' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr6' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr7' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr8' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr9' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr10' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr11' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr12' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr13' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr14' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `pmpaddr15' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `mcountinhibit' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `dscratch0' for the privilege spec `1.9.1'
+.*Warning: Invalid CSR `dscratch1' for the privilege spec `1.9.1'
diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p10.d b/gas/testsuite/gas/riscv/priv-reg-version-1p10.d
new file mode 100644 (file)
index 0000000..0071f75
--- /dev/null
@@ -0,0 +1,257 @@
+#as: -march=rv32if -mpriv-spec=1.10
+#source: priv-reg.s
+#objdump: -dr -Mpriv-spec=1.10
+
+.*:[   ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[      ]+[0-9a-f]+:[   ]+00002573[     ]+csrr[         ]+a0,ustatus
+[      ]+[0-9a-f]+:[   ]+00402573[     ]+csrr[         ]+a0,uie
+[      ]+[0-9a-f]+:[   ]+00502573[     ]+csrr[         ]+a0,utvec
+[      ]+[0-9a-f]+:[   ]+04002573[     ]+csrr[         ]+a0,uscratch
+[      ]+[0-9a-f]+:[   ]+04102573[     ]+csrr[         ]+a0,uepc
+[      ]+[0-9a-f]+:[   ]+04202573[     ]+csrr[         ]+a0,ucause
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,utval
+[      ]+[0-9a-f]+:[   ]+04402573[     ]+csrr[         ]+a0,uip
+[      ]+[0-9a-f]+:[   ]+00102573[     ]+frflags[      ]+a0
+[      ]+[0-9a-f]+:[   ]+00202573[     ]+frrm[         ]+a0
+[      ]+[0-9a-f]+:[   ]+00302573[     ]+frcsr[        ]+a0
+[      ]+[0-9a-f]+:[   ]+c0002573[     ]+rdcycle[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c0102573[     ]+rdtime[       ]+a0
+[      ]+[0-9a-f]+:[   ]+c0202573[     ]+rdinstret[    ]+a0
+[      ]+[0-9a-f]+:[   ]+c0302573[     ]+csrr[         ]+a0,hpmcounter3
+[      ]+[0-9a-f]+:[   ]+c0402573[     ]+csrr[         ]+a0,hpmcounter4
+[      ]+[0-9a-f]+:[   ]+c0502573[     ]+csrr[         ]+a0,hpmcounter5
+[      ]+[0-9a-f]+:[   ]+c0602573[     ]+csrr[         ]+a0,hpmcounter6
+[      ]+[0-9a-f]+:[   ]+c0702573[     ]+csrr[         ]+a0,hpmcounter7
+[      ]+[0-9a-f]+:[   ]+c0802573[     ]+csrr[         ]+a0,hpmcounter8
+[      ]+[0-9a-f]+:[   ]+c0902573[     ]+csrr[         ]+a0,hpmcounter9
+[      ]+[0-9a-f]+:[   ]+c0a02573[     ]+csrr[         ]+a0,hpmcounter10
+[      ]+[0-9a-f]+:[   ]+c0b02573[     ]+csrr[         ]+a0,hpmcounter11
+[      ]+[0-9a-f]+:[   ]+c0c02573[     ]+csrr[         ]+a0,hpmcounter12
+[      ]+[0-9a-f]+:[   ]+c0d02573[     ]+csrr[         ]+a0,hpmcounter13
+[      ]+[0-9a-f]+:[   ]+c0e02573[     ]+csrr[         ]+a0,hpmcounter14
+[      ]+[0-9a-f]+:[   ]+c0f02573[     ]+csrr[         ]+a0,hpmcounter15
+[      ]+[0-9a-f]+:[   ]+c1002573[     ]+csrr[         ]+a0,hpmcounter16
+[      ]+[0-9a-f]+:[   ]+c1102573[     ]+csrr[         ]+a0,hpmcounter17
+[      ]+[0-9a-f]+:[   ]+c1202573[     ]+csrr[         ]+a0,hpmcounter18
+[      ]+[0-9a-f]+:[   ]+c1302573[     ]+csrr[         ]+a0,hpmcounter19
+[      ]+[0-9a-f]+:[   ]+c1402573[     ]+csrr[         ]+a0,hpmcounter20
+[      ]+[0-9a-f]+:[   ]+c1502573[     ]+csrr[         ]+a0,hpmcounter21
+[      ]+[0-9a-f]+:[   ]+c1602573[     ]+csrr[         ]+a0,hpmcounter22
+[      ]+[0-9a-f]+:[   ]+c1702573[     ]+csrr[         ]+a0,hpmcounter23
+[      ]+[0-9a-f]+:[   ]+c1802573[     ]+csrr[         ]+a0,hpmcounter24
+[      ]+[0-9a-f]+:[   ]+c1902573[     ]+csrr[         ]+a0,hpmcounter25
+[      ]+[0-9a-f]+:[   ]+c1a02573[     ]+csrr[         ]+a0,hpmcounter26
+[      ]+[0-9a-f]+:[   ]+c1b02573[     ]+csrr[         ]+a0,hpmcounter27
+[      ]+[0-9a-f]+:[   ]+c1c02573[     ]+csrr[         ]+a0,hpmcounter28
+[      ]+[0-9a-f]+:[   ]+c1d02573[     ]+csrr[         ]+a0,hpmcounter29
+[      ]+[0-9a-f]+:[   ]+c1e02573[     ]+csrr[         ]+a0,hpmcounter30
+[      ]+[0-9a-f]+:[   ]+c1f02573[     ]+csrr[         ]+a0,hpmcounter31
+[      ]+[0-9a-f]+:[   ]+c8002573[     ]+rdcycleh[     ]+a0
+[      ]+[0-9a-f]+:[   ]+c8102573[     ]+rdtimeh[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c8202573[     ]+rdinstreth[   ]+a0
+[      ]+[0-9a-f]+:[   ]+c8302573[     ]+csrr[         ]+a0,hpmcounter3h
+[      ]+[0-9a-f]+:[   ]+c8402573[     ]+csrr[         ]+a0,hpmcounter4h
+[      ]+[0-9a-f]+:[   ]+c8502573[     ]+csrr[         ]+a0,hpmcounter5h
+[      ]+[0-9a-f]+:[   ]+c8602573[     ]+csrr[         ]+a0,hpmcounter6h
+[      ]+[0-9a-f]+:[   ]+c8702573[     ]+csrr[         ]+a0,hpmcounter7h
+[      ]+[0-9a-f]+:[   ]+c8802573[     ]+csrr[         ]+a0,hpmcounter8h
+[      ]+[0-9a-f]+:[   ]+c8902573[     ]+csrr[         ]+a0,hpmcounter9h
+[      ]+[0-9a-f]+:[   ]+c8a02573[     ]+csrr[         ]+a0,hpmcounter10h
+[      ]+[0-9a-f]+:[   ]+c8b02573[     ]+csrr[         ]+a0,hpmcounter11h
+[      ]+[0-9a-f]+:[   ]+c8c02573[     ]+csrr[         ]+a0,hpmcounter12h
+[      ]+[0-9a-f]+:[   ]+c8d02573[     ]+csrr[         ]+a0,hpmcounter13h
+[      ]+[0-9a-f]+:[   ]+c8e02573[     ]+csrr[         ]+a0,hpmcounter14h
+[      ]+[0-9a-f]+:[   ]+c8f02573[     ]+csrr[         ]+a0,hpmcounter15h
+[      ]+[0-9a-f]+:[   ]+c9002573[     ]+csrr[         ]+a0,hpmcounter16h
+[      ]+[0-9a-f]+:[   ]+c9102573[     ]+csrr[         ]+a0,hpmcounter17h
+[      ]+[0-9a-f]+:[   ]+c9202573[     ]+csrr[         ]+a0,hpmcounter18h
+[      ]+[0-9a-f]+:[   ]+c9302573[     ]+csrr[         ]+a0,hpmcounter19h
+[      ]+[0-9a-f]+:[   ]+c9402573[     ]+csrr[         ]+a0,hpmcounter20h
+[      ]+[0-9a-f]+:[   ]+c9502573[     ]+csrr[         ]+a0,hpmcounter21h
+[      ]+[0-9a-f]+:[   ]+c9602573[     ]+csrr[         ]+a0,hpmcounter22h
+[      ]+[0-9a-f]+:[   ]+c9702573[     ]+csrr[         ]+a0,hpmcounter23h
+[      ]+[0-9a-f]+:[   ]+c9802573[     ]+csrr[         ]+a0,hpmcounter24h
+[      ]+[0-9a-f]+:[   ]+c9902573[     ]+csrr[         ]+a0,hpmcounter25h
+[      ]+[0-9a-f]+:[   ]+c9a02573[     ]+csrr[         ]+a0,hpmcounter26h
+[      ]+[0-9a-f]+:[   ]+c9b02573[     ]+csrr[         ]+a0,hpmcounter27h
+[      ]+[0-9a-f]+:[   ]+c9c02573[     ]+csrr[         ]+a0,hpmcounter28h
+[      ]+[0-9a-f]+:[   ]+c9d02573[     ]+csrr[         ]+a0,hpmcounter29h
+[      ]+[0-9a-f]+:[   ]+c9e02573[     ]+csrr[         ]+a0,hpmcounter30h
+[      ]+[0-9a-f]+:[   ]+c9f02573[     ]+csrr[         ]+a0,hpmcounter31h
+[      ]+[0-9a-f]+:[   ]+10002573[     ]+csrr[         ]+a0,sstatus
+[      ]+[0-9a-f]+:[   ]+10202573[     ]+csrr[         ]+a0,sedeleg
+[      ]+[0-9a-f]+:[   ]+10302573[     ]+csrr[         ]+a0,sideleg
+[      ]+[0-9a-f]+:[   ]+10402573[     ]+csrr[         ]+a0,sie
+[      ]+[0-9a-f]+:[   ]+10502573[     ]+csrr[         ]+a0,stvec
+[      ]+[0-9a-f]+:[   ]+10602573[     ]+csrr[         ]+a0,scounteren
+[      ]+[0-9a-f]+:[   ]+14002573[     ]+csrr[         ]+a0,sscratch
+[      ]+[0-9a-f]+:[   ]+14102573[     ]+csrr[         ]+a0,sepc
+[      ]+[0-9a-f]+:[   ]+14202573[     ]+csrr[         ]+a0,scause
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,stval
+[      ]+[0-9a-f]+:[   ]+14402573[     ]+csrr[         ]+a0,sip
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,satp
+[      ]+[0-9a-f]+:[   ]+f1102573[     ]+csrr[         ]+a0,mvendorid
+[      ]+[0-9a-f]+:[   ]+f1202573[     ]+csrr[         ]+a0,marchid
+[      ]+[0-9a-f]+:[   ]+f1302573[     ]+csrr[         ]+a0,mimpid
+[      ]+[0-9a-f]+:[   ]+f1402573[     ]+csrr[         ]+a0,mhartid
+[      ]+[0-9a-f]+:[   ]+30002573[     ]+csrr[         ]+a0,mstatus
+[      ]+[0-9a-f]+:[   ]+30102573[     ]+csrr[         ]+a0,misa
+[      ]+[0-9a-f]+:[   ]+30202573[     ]+csrr[         ]+a0,medeleg
+[      ]+[0-9a-f]+:[   ]+30302573[     ]+csrr[         ]+a0,mideleg
+[      ]+[0-9a-f]+:[   ]+30402573[     ]+csrr[         ]+a0,mie
+[      ]+[0-9a-f]+:[   ]+30502573[     ]+csrr[         ]+a0,mtvec
+[      ]+[0-9a-f]+:[   ]+30602573[     ]+csrr[         ]+a0,mcounteren
+[      ]+[0-9a-f]+:[   ]+34002573[     ]+csrr[         ]+a0,mscratch
+[      ]+[0-9a-f]+:[   ]+34102573[     ]+csrr[         ]+a0,mepc
+[      ]+[0-9a-f]+:[   ]+34202573[     ]+csrr[         ]+a0,mcause
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mtval
+[      ]+[0-9a-f]+:[   ]+34402573[     ]+csrr[         ]+a0,mip
+[      ]+[0-9a-f]+:[   ]+3a002573[     ]+csrr[         ]+a0,pmpcfg0
+[      ]+[0-9a-f]+:[   ]+3a102573[     ]+csrr[         ]+a0,pmpcfg1
+[      ]+[0-9a-f]+:[   ]+3a202573[     ]+csrr[         ]+a0,pmpcfg2
+[      ]+[0-9a-f]+:[   ]+3a302573[     ]+csrr[         ]+a0,pmpcfg3
+[      ]+[0-9a-f]+:[   ]+3b002573[     ]+csrr[         ]+a0,pmpaddr0
+[      ]+[0-9a-f]+:[   ]+3b102573[     ]+csrr[         ]+a0,pmpaddr1
+[      ]+[0-9a-f]+:[   ]+3b202573[     ]+csrr[         ]+a0,pmpaddr2
+[      ]+[0-9a-f]+:[   ]+3b302573[     ]+csrr[         ]+a0,pmpaddr3
+[      ]+[0-9a-f]+:[   ]+3b402573[     ]+csrr[         ]+a0,pmpaddr4
+[      ]+[0-9a-f]+:[   ]+3b502573[     ]+csrr[         ]+a0,pmpaddr5
+[      ]+[0-9a-f]+:[   ]+3b602573[     ]+csrr[         ]+a0,pmpaddr6
+[      ]+[0-9a-f]+:[   ]+3b702573[     ]+csrr[         ]+a0,pmpaddr7
+[      ]+[0-9a-f]+:[   ]+3b802573[     ]+csrr[         ]+a0,pmpaddr8
+[      ]+[0-9a-f]+:[   ]+3b902573[     ]+csrr[         ]+a0,pmpaddr9
+[      ]+[0-9a-f]+:[   ]+3ba02573[     ]+csrr[         ]+a0,pmpaddr10
+[      ]+[0-9a-f]+:[   ]+3bb02573[     ]+csrr[         ]+a0,pmpaddr11
+[      ]+[0-9a-f]+:[   ]+3bc02573[     ]+csrr[         ]+a0,pmpaddr12
+[      ]+[0-9a-f]+:[   ]+3bd02573[     ]+csrr[         ]+a0,pmpaddr13
+[      ]+[0-9a-f]+:[   ]+3be02573[     ]+csrr[         ]+a0,pmpaddr14
+[      ]+[0-9a-f]+:[   ]+3bf02573[     ]+csrr[         ]+a0,pmpaddr15
+[      ]+[0-9a-f]+:[   ]+b0002573[     ]+csrr[         ]+a0,mcycle
+[      ]+[0-9a-f]+:[   ]+b0202573[     ]+csrr[         ]+a0,minstret
+[      ]+[0-9a-f]+:[   ]+b0302573[     ]+csrr[         ]+a0,mhpmcounter3
+[      ]+[0-9a-f]+:[   ]+b0402573[     ]+csrr[         ]+a0,mhpmcounter4
+[      ]+[0-9a-f]+:[   ]+b0502573[     ]+csrr[         ]+a0,mhpmcounter5
+[      ]+[0-9a-f]+:[   ]+b0602573[     ]+csrr[         ]+a0,mhpmcounter6
+[      ]+[0-9a-f]+:[   ]+b0702573[     ]+csrr[         ]+a0,mhpmcounter7
+[      ]+[0-9a-f]+:[   ]+b0802573[     ]+csrr[         ]+a0,mhpmcounter8
+[      ]+[0-9a-f]+:[   ]+b0902573[     ]+csrr[         ]+a0,mhpmcounter9
+[      ]+[0-9a-f]+:[   ]+b0a02573[     ]+csrr[         ]+a0,mhpmcounter10
+[      ]+[0-9a-f]+:[   ]+b0b02573[     ]+csrr[         ]+a0,mhpmcounter11
+[      ]+[0-9a-f]+:[   ]+b0c02573[     ]+csrr[         ]+a0,mhpmcounter12
+[      ]+[0-9a-f]+:[   ]+b0d02573[     ]+csrr[         ]+a0,mhpmcounter13
+[      ]+[0-9a-f]+:[   ]+b0e02573[     ]+csrr[         ]+a0,mhpmcounter14
+[      ]+[0-9a-f]+:[   ]+b0f02573[     ]+csrr[         ]+a0,mhpmcounter15
+[      ]+[0-9a-f]+:[   ]+b1002573[     ]+csrr[         ]+a0,mhpmcounter16
+[      ]+[0-9a-f]+:[   ]+b1102573[     ]+csrr[         ]+a0,mhpmcounter17
+[      ]+[0-9a-f]+:[   ]+b1202573[     ]+csrr[         ]+a0,mhpmcounter18
+[      ]+[0-9a-f]+:[   ]+b1302573[     ]+csrr[         ]+a0,mhpmcounter19
+[      ]+[0-9a-f]+:[   ]+b1402573[     ]+csrr[         ]+a0,mhpmcounter20
+[      ]+[0-9a-f]+:[   ]+b1502573[     ]+csrr[         ]+a0,mhpmcounter21
+[      ]+[0-9a-f]+:[   ]+b1602573[     ]+csrr[         ]+a0,mhpmcounter22
+[      ]+[0-9a-f]+:[   ]+b1702573[     ]+csrr[         ]+a0,mhpmcounter23
+[      ]+[0-9a-f]+:[   ]+b1802573[     ]+csrr[         ]+a0,mhpmcounter24
+[      ]+[0-9a-f]+:[   ]+b1902573[     ]+csrr[         ]+a0,mhpmcounter25
+[      ]+[0-9a-f]+:[   ]+b1a02573[     ]+csrr[         ]+a0,mhpmcounter26
+[      ]+[0-9a-f]+:[   ]+b1b02573[     ]+csrr[         ]+a0,mhpmcounter27
+[      ]+[0-9a-f]+:[   ]+b1c02573[     ]+csrr[         ]+a0,mhpmcounter28
+[      ]+[0-9a-f]+:[   ]+b1d02573[     ]+csrr[         ]+a0,mhpmcounter29
+[      ]+[0-9a-f]+:[   ]+b1e02573[     ]+csrr[         ]+a0,mhpmcounter30
+[      ]+[0-9a-f]+:[   ]+b1f02573[     ]+csrr[         ]+a0,mhpmcounter31
+[      ]+[0-9a-f]+:[   ]+b8002573[     ]+csrr[         ]+a0,mcycleh
+[      ]+[0-9a-f]+:[   ]+b8202573[     ]+csrr[         ]+a0,minstreth
+[      ]+[0-9a-f]+:[   ]+b8302573[     ]+csrr[         ]+a0,mhpmcounter3h
+[      ]+[0-9a-f]+:[   ]+b8402573[     ]+csrr[         ]+a0,mhpmcounter4h
+[      ]+[0-9a-f]+:[   ]+b8502573[     ]+csrr[         ]+a0,mhpmcounter5h
+[      ]+[0-9a-f]+:[   ]+b8602573[     ]+csrr[         ]+a0,mhpmcounter6h
+[      ]+[0-9a-f]+:[   ]+b8702573[     ]+csrr[         ]+a0,mhpmcounter7h
+[      ]+[0-9a-f]+:[   ]+b8802573[     ]+csrr[         ]+a0,mhpmcounter8h
+[      ]+[0-9a-f]+:[   ]+b8902573[     ]+csrr[         ]+a0,mhpmcounter9h
+[      ]+[0-9a-f]+:[   ]+b8a02573[     ]+csrr[         ]+a0,mhpmcounter10h
+[      ]+[0-9a-f]+:[   ]+b8b02573[     ]+csrr[         ]+a0,mhpmcounter11h
+[      ]+[0-9a-f]+:[   ]+b8c02573[     ]+csrr[         ]+a0,mhpmcounter12h
+[      ]+[0-9a-f]+:[   ]+b8d02573[     ]+csrr[         ]+a0,mhpmcounter13h
+[      ]+[0-9a-f]+:[   ]+b8e02573[     ]+csrr[         ]+a0,mhpmcounter14h
+[      ]+[0-9a-f]+:[   ]+b8f02573[     ]+csrr[         ]+a0,mhpmcounter15h
+[      ]+[0-9a-f]+:[   ]+b9002573[     ]+csrr[         ]+a0,mhpmcounter16h
+[      ]+[0-9a-f]+:[   ]+b9102573[     ]+csrr[         ]+a0,mhpmcounter17h
+[      ]+[0-9a-f]+:[   ]+b9202573[     ]+csrr[         ]+a0,mhpmcounter18h
+[      ]+[0-9a-f]+:[   ]+b9302573[     ]+csrr[         ]+a0,mhpmcounter19h
+[      ]+[0-9a-f]+:[   ]+b9402573[     ]+csrr[         ]+a0,mhpmcounter20h
+[      ]+[0-9a-f]+:[   ]+b9502573[     ]+csrr[         ]+a0,mhpmcounter21h
+[      ]+[0-9a-f]+:[   ]+b9602573[     ]+csrr[         ]+a0,mhpmcounter22h
+[      ]+[0-9a-f]+:[   ]+b9702573[     ]+csrr[         ]+a0,mhpmcounter23h
+[      ]+[0-9a-f]+:[   ]+b9802573[     ]+csrr[         ]+a0,mhpmcounter24h
+[      ]+[0-9a-f]+:[   ]+b9902573[     ]+csrr[         ]+a0,mhpmcounter25h
+[      ]+[0-9a-f]+:[   ]+b9a02573[     ]+csrr[         ]+a0,mhpmcounter26h
+[      ]+[0-9a-f]+:[   ]+b9b02573[     ]+csrr[         ]+a0,mhpmcounter27h
+[      ]+[0-9a-f]+:[   ]+b9c02573[     ]+csrr[         ]+a0,mhpmcounter28h
+[      ]+[0-9a-f]+:[   ]+b9d02573[     ]+csrr[         ]+a0,mhpmcounter29h
+[      ]+[0-9a-f]+:[   ]+b9e02573[     ]+csrr[         ]+a0,mhpmcounter30h
+[      ]+[0-9a-f]+:[   ]+b9f02573[     ]+csrr[         ]+a0,mhpmcounter31h
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,0x320
+[      ]+[0-9a-f]+:[   ]+32302573[     ]+csrr[         ]+a0,mhpmevent3
+[      ]+[0-9a-f]+:[   ]+32402573[     ]+csrr[         ]+a0,mhpmevent4
+[      ]+[0-9a-f]+:[   ]+32502573[     ]+csrr[         ]+a0,mhpmevent5
+[      ]+[0-9a-f]+:[   ]+32602573[     ]+csrr[         ]+a0,mhpmevent6
+[      ]+[0-9a-f]+:[   ]+32702573[     ]+csrr[         ]+a0,mhpmevent7
+[      ]+[0-9a-f]+:[   ]+32802573[     ]+csrr[         ]+a0,mhpmevent8
+[      ]+[0-9a-f]+:[   ]+32902573[     ]+csrr[         ]+a0,mhpmevent9
+[      ]+[0-9a-f]+:[   ]+32a02573[     ]+csrr[         ]+a0,mhpmevent10
+[      ]+[0-9a-f]+:[   ]+32b02573[     ]+csrr[         ]+a0,mhpmevent11
+[      ]+[0-9a-f]+:[   ]+32c02573[     ]+csrr[         ]+a0,mhpmevent12
+[      ]+[0-9a-f]+:[   ]+32d02573[     ]+csrr[         ]+a0,mhpmevent13
+[      ]+[0-9a-f]+:[   ]+32e02573[     ]+csrr[         ]+a0,mhpmevent14
+[      ]+[0-9a-f]+:[   ]+32f02573[     ]+csrr[         ]+a0,mhpmevent15
+[      ]+[0-9a-f]+:[   ]+33002573[     ]+csrr[         ]+a0,mhpmevent16
+[      ]+[0-9a-f]+:[   ]+33102573[     ]+csrr[         ]+a0,mhpmevent17
+[      ]+[0-9a-f]+:[   ]+33202573[     ]+csrr[         ]+a0,mhpmevent18
+[      ]+[0-9a-f]+:[   ]+33302573[     ]+csrr[         ]+a0,mhpmevent19
+[      ]+[0-9a-f]+:[   ]+33402573[     ]+csrr[         ]+a0,mhpmevent20
+[      ]+[0-9a-f]+:[   ]+33502573[     ]+csrr[         ]+a0,mhpmevent21
+[      ]+[0-9a-f]+:[   ]+33602573[     ]+csrr[         ]+a0,mhpmevent22
+[      ]+[0-9a-f]+:[   ]+33702573[     ]+csrr[         ]+a0,mhpmevent23
+[      ]+[0-9a-f]+:[   ]+33802573[     ]+csrr[         ]+a0,mhpmevent24
+[      ]+[0-9a-f]+:[   ]+33902573[     ]+csrr[         ]+a0,mhpmevent25
+[      ]+[0-9a-f]+:[   ]+33a02573[     ]+csrr[         ]+a0,mhpmevent26
+[      ]+[0-9a-f]+:[   ]+33b02573[     ]+csrr[         ]+a0,mhpmevent27
+[      ]+[0-9a-f]+:[   ]+33c02573[     ]+csrr[         ]+a0,mhpmevent28
+[      ]+[0-9a-f]+:[   ]+33d02573[     ]+csrr[         ]+a0,mhpmevent29
+[      ]+[0-9a-f]+:[   ]+33e02573[     ]+csrr[         ]+a0,mhpmevent30
+[      ]+[0-9a-f]+:[   ]+33f02573[     ]+csrr[         ]+a0,mhpmevent31
+[      ]+[0-9a-f]+:[   ]+7a002573[     ]+csrr[         ]+a0,tselect
+[      ]+[0-9a-f]+:[   ]+7a102573[     ]+csrr[         ]+a0,tdata1
+[      ]+[0-9a-f]+:[   ]+7a202573[     ]+csrr[         ]+a0,tdata2
+[      ]+[0-9a-f]+:[   ]+7a302573[     ]+csrr[         ]+a0,tdata3
+[      ]+[0-9a-f]+:[   ]+7b002573[     ]+csrr[         ]+a0,dcsr
+[      ]+[0-9a-f]+:[   ]+7b102573[     ]+csrr[         ]+a0,dpc
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch
+[      ]+[0-9a-f]+:[   ]+7b302573[     ]+csrr[         ]+a0,0x7b3
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,utval
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,stval
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,satp
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mtval
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,0x320
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch
+[      ]+[0-9a-f]+:[   ]+20002573[     ]+csrr[         ]+a0,0x200
+[      ]+[0-9a-f]+:[   ]+20202573[     ]+csrr[         ]+a0,0x202
+[      ]+[0-9a-f]+:[   ]+20302573[     ]+csrr[         ]+a0,0x203
+[      ]+[0-9a-f]+:[   ]+20402573[     ]+csrr[         ]+a0,0x204
+[      ]+[0-9a-f]+:[   ]+20502573[     ]+csrr[         ]+a0,0x205
+[      ]+[0-9a-f]+:[   ]+24002573[     ]+csrr[         ]+a0,0x240
+[      ]+[0-9a-f]+:[   ]+24102573[     ]+csrr[         ]+a0,0x241
+[      ]+[0-9a-f]+:[   ]+24202573[     ]+csrr[         ]+a0,0x242
+[      ]+[0-9a-f]+:[   ]+24302573[     ]+csrr[         ]+a0,0x243
+[      ]+[0-9a-f]+:[   ]+24402573[     ]+csrr[         ]+a0,0x244
+[      ]+[0-9a-f]+:[   ]+38002573[     ]+csrr[         ]+a0,0x380
+[      ]+[0-9a-f]+:[   ]+38102573[     ]+csrr[         ]+a0,0x381
+[      ]+[0-9a-f]+:[   ]+38202573[     ]+csrr[         ]+a0,0x382
+[      ]+[0-9a-f]+:[   ]+38302573[     ]+csrr[         ]+a0,0x383
+[      ]+[0-9a-f]+:[   ]+38402573[     ]+csrr[         ]+a0,0x384
+[      ]+[0-9a-f]+:[   ]+38502573[     ]+csrr[         ]+a0,0x385
+[      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[         ]+a0,0x321
+[      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[         ]+a0,0x322
diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p11.d b/gas/testsuite/gas/riscv/priv-reg-version-1p11.d
new file mode 100644 (file)
index 0000000..225f4c4
--- /dev/null
@@ -0,0 +1,257 @@
+#as: -march=rv32if -mpriv-spec=1.11
+#source: priv-reg.s
+#objdump: -dr -Mpriv-spec=1.11
+
+.*:[   ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[      ]+[0-9a-f]+:[   ]+00002573[     ]+csrr[         ]+a0,ustatus
+[      ]+[0-9a-f]+:[   ]+00402573[     ]+csrr[         ]+a0,uie
+[      ]+[0-9a-f]+:[   ]+00502573[     ]+csrr[         ]+a0,utvec
+[      ]+[0-9a-f]+:[   ]+04002573[     ]+csrr[         ]+a0,uscratch
+[      ]+[0-9a-f]+:[   ]+04102573[     ]+csrr[         ]+a0,uepc
+[      ]+[0-9a-f]+:[   ]+04202573[     ]+csrr[         ]+a0,ucause
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,utval
+[      ]+[0-9a-f]+:[   ]+04402573[     ]+csrr[         ]+a0,uip
+[      ]+[0-9a-f]+:[   ]+00102573[     ]+frflags[      ]+a0
+[      ]+[0-9a-f]+:[   ]+00202573[     ]+frrm[         ]+a0
+[      ]+[0-9a-f]+:[   ]+00302573[     ]+frcsr[        ]+a0
+[      ]+[0-9a-f]+:[   ]+c0002573[     ]+rdcycle[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c0102573[     ]+rdtime[       ]+a0
+[      ]+[0-9a-f]+:[   ]+c0202573[     ]+rdinstret[    ]+a0
+[      ]+[0-9a-f]+:[   ]+c0302573[     ]+csrr[         ]+a0,hpmcounter3
+[      ]+[0-9a-f]+:[   ]+c0402573[     ]+csrr[         ]+a0,hpmcounter4
+[      ]+[0-9a-f]+:[   ]+c0502573[     ]+csrr[         ]+a0,hpmcounter5
+[      ]+[0-9a-f]+:[   ]+c0602573[     ]+csrr[         ]+a0,hpmcounter6
+[      ]+[0-9a-f]+:[   ]+c0702573[     ]+csrr[         ]+a0,hpmcounter7
+[      ]+[0-9a-f]+:[   ]+c0802573[     ]+csrr[         ]+a0,hpmcounter8
+[      ]+[0-9a-f]+:[   ]+c0902573[     ]+csrr[         ]+a0,hpmcounter9
+[      ]+[0-9a-f]+:[   ]+c0a02573[     ]+csrr[         ]+a0,hpmcounter10
+[      ]+[0-9a-f]+:[   ]+c0b02573[     ]+csrr[         ]+a0,hpmcounter11
+[      ]+[0-9a-f]+:[   ]+c0c02573[     ]+csrr[         ]+a0,hpmcounter12
+[      ]+[0-9a-f]+:[   ]+c0d02573[     ]+csrr[         ]+a0,hpmcounter13
+[      ]+[0-9a-f]+:[   ]+c0e02573[     ]+csrr[         ]+a0,hpmcounter14
+[      ]+[0-9a-f]+:[   ]+c0f02573[     ]+csrr[         ]+a0,hpmcounter15
+[      ]+[0-9a-f]+:[   ]+c1002573[     ]+csrr[         ]+a0,hpmcounter16
+[      ]+[0-9a-f]+:[   ]+c1102573[     ]+csrr[         ]+a0,hpmcounter17
+[      ]+[0-9a-f]+:[   ]+c1202573[     ]+csrr[         ]+a0,hpmcounter18
+[      ]+[0-9a-f]+:[   ]+c1302573[     ]+csrr[         ]+a0,hpmcounter19
+[      ]+[0-9a-f]+:[   ]+c1402573[     ]+csrr[         ]+a0,hpmcounter20
+[      ]+[0-9a-f]+:[   ]+c1502573[     ]+csrr[         ]+a0,hpmcounter21
+[      ]+[0-9a-f]+:[   ]+c1602573[     ]+csrr[         ]+a0,hpmcounter22
+[      ]+[0-9a-f]+:[   ]+c1702573[     ]+csrr[         ]+a0,hpmcounter23
+[      ]+[0-9a-f]+:[   ]+c1802573[     ]+csrr[         ]+a0,hpmcounter24
+[      ]+[0-9a-f]+:[   ]+c1902573[     ]+csrr[         ]+a0,hpmcounter25
+[      ]+[0-9a-f]+:[   ]+c1a02573[     ]+csrr[         ]+a0,hpmcounter26
+[      ]+[0-9a-f]+:[   ]+c1b02573[     ]+csrr[         ]+a0,hpmcounter27
+[      ]+[0-9a-f]+:[   ]+c1c02573[     ]+csrr[         ]+a0,hpmcounter28
+[      ]+[0-9a-f]+:[   ]+c1d02573[     ]+csrr[         ]+a0,hpmcounter29
+[      ]+[0-9a-f]+:[   ]+c1e02573[     ]+csrr[         ]+a0,hpmcounter30
+[      ]+[0-9a-f]+:[   ]+c1f02573[     ]+csrr[         ]+a0,hpmcounter31
+[      ]+[0-9a-f]+:[   ]+c8002573[     ]+rdcycleh[     ]+a0
+[      ]+[0-9a-f]+:[   ]+c8102573[     ]+rdtimeh[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c8202573[     ]+rdinstreth[   ]+a0
+[      ]+[0-9a-f]+:[   ]+c8302573[     ]+csrr[         ]+a0,hpmcounter3h
+[      ]+[0-9a-f]+:[   ]+c8402573[     ]+csrr[         ]+a0,hpmcounter4h
+[      ]+[0-9a-f]+:[   ]+c8502573[     ]+csrr[         ]+a0,hpmcounter5h
+[      ]+[0-9a-f]+:[   ]+c8602573[     ]+csrr[         ]+a0,hpmcounter6h
+[      ]+[0-9a-f]+:[   ]+c8702573[     ]+csrr[         ]+a0,hpmcounter7h
+[      ]+[0-9a-f]+:[   ]+c8802573[     ]+csrr[         ]+a0,hpmcounter8h
+[      ]+[0-9a-f]+:[   ]+c8902573[     ]+csrr[         ]+a0,hpmcounter9h
+[      ]+[0-9a-f]+:[   ]+c8a02573[     ]+csrr[         ]+a0,hpmcounter10h
+[      ]+[0-9a-f]+:[   ]+c8b02573[     ]+csrr[         ]+a0,hpmcounter11h
+[      ]+[0-9a-f]+:[   ]+c8c02573[     ]+csrr[         ]+a0,hpmcounter12h
+[      ]+[0-9a-f]+:[   ]+c8d02573[     ]+csrr[         ]+a0,hpmcounter13h
+[      ]+[0-9a-f]+:[   ]+c8e02573[     ]+csrr[         ]+a0,hpmcounter14h
+[      ]+[0-9a-f]+:[   ]+c8f02573[     ]+csrr[         ]+a0,hpmcounter15h
+[      ]+[0-9a-f]+:[   ]+c9002573[     ]+csrr[         ]+a0,hpmcounter16h
+[      ]+[0-9a-f]+:[   ]+c9102573[     ]+csrr[         ]+a0,hpmcounter17h
+[      ]+[0-9a-f]+:[   ]+c9202573[     ]+csrr[         ]+a0,hpmcounter18h
+[      ]+[0-9a-f]+:[   ]+c9302573[     ]+csrr[         ]+a0,hpmcounter19h
+[      ]+[0-9a-f]+:[   ]+c9402573[     ]+csrr[         ]+a0,hpmcounter20h
+[      ]+[0-9a-f]+:[   ]+c9502573[     ]+csrr[         ]+a0,hpmcounter21h
+[      ]+[0-9a-f]+:[   ]+c9602573[     ]+csrr[         ]+a0,hpmcounter22h
+[      ]+[0-9a-f]+:[   ]+c9702573[     ]+csrr[         ]+a0,hpmcounter23h
+[      ]+[0-9a-f]+:[   ]+c9802573[     ]+csrr[         ]+a0,hpmcounter24h
+[      ]+[0-9a-f]+:[   ]+c9902573[     ]+csrr[         ]+a0,hpmcounter25h
+[      ]+[0-9a-f]+:[   ]+c9a02573[     ]+csrr[         ]+a0,hpmcounter26h
+[      ]+[0-9a-f]+:[   ]+c9b02573[     ]+csrr[         ]+a0,hpmcounter27h
+[      ]+[0-9a-f]+:[   ]+c9c02573[     ]+csrr[         ]+a0,hpmcounter28h
+[      ]+[0-9a-f]+:[   ]+c9d02573[     ]+csrr[         ]+a0,hpmcounter29h
+[      ]+[0-9a-f]+:[   ]+c9e02573[     ]+csrr[         ]+a0,hpmcounter30h
+[      ]+[0-9a-f]+:[   ]+c9f02573[     ]+csrr[         ]+a0,hpmcounter31h
+[      ]+[0-9a-f]+:[   ]+10002573[     ]+csrr[         ]+a0,sstatus
+[      ]+[0-9a-f]+:[   ]+10202573[     ]+csrr[         ]+a0,sedeleg
+[      ]+[0-9a-f]+:[   ]+10302573[     ]+csrr[         ]+a0,sideleg
+[      ]+[0-9a-f]+:[   ]+10402573[     ]+csrr[         ]+a0,sie
+[      ]+[0-9a-f]+:[   ]+10502573[     ]+csrr[         ]+a0,stvec
+[      ]+[0-9a-f]+:[   ]+10602573[     ]+csrr[         ]+a0,scounteren
+[      ]+[0-9a-f]+:[   ]+14002573[     ]+csrr[         ]+a0,sscratch
+[      ]+[0-9a-f]+:[   ]+14102573[     ]+csrr[         ]+a0,sepc
+[      ]+[0-9a-f]+:[   ]+14202573[     ]+csrr[         ]+a0,scause
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,stval
+[      ]+[0-9a-f]+:[   ]+14402573[     ]+csrr[         ]+a0,sip
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,satp
+[      ]+[0-9a-f]+:[   ]+f1102573[     ]+csrr[         ]+a0,mvendorid
+[      ]+[0-9a-f]+:[   ]+f1202573[     ]+csrr[         ]+a0,marchid
+[      ]+[0-9a-f]+:[   ]+f1302573[     ]+csrr[         ]+a0,mimpid
+[      ]+[0-9a-f]+:[   ]+f1402573[     ]+csrr[         ]+a0,mhartid
+[      ]+[0-9a-f]+:[   ]+30002573[     ]+csrr[         ]+a0,mstatus
+[      ]+[0-9a-f]+:[   ]+30102573[     ]+csrr[         ]+a0,misa
+[      ]+[0-9a-f]+:[   ]+30202573[     ]+csrr[         ]+a0,medeleg
+[      ]+[0-9a-f]+:[   ]+30302573[     ]+csrr[         ]+a0,mideleg
+[      ]+[0-9a-f]+:[   ]+30402573[     ]+csrr[         ]+a0,mie
+[      ]+[0-9a-f]+:[   ]+30502573[     ]+csrr[         ]+a0,mtvec
+[      ]+[0-9a-f]+:[   ]+30602573[     ]+csrr[         ]+a0,mcounteren
+[      ]+[0-9a-f]+:[   ]+34002573[     ]+csrr[         ]+a0,mscratch
+[      ]+[0-9a-f]+:[   ]+34102573[     ]+csrr[         ]+a0,mepc
+[      ]+[0-9a-f]+:[   ]+34202573[     ]+csrr[         ]+a0,mcause
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mtval
+[      ]+[0-9a-f]+:[   ]+34402573[     ]+csrr[         ]+a0,mip
+[      ]+[0-9a-f]+:[   ]+3a002573[     ]+csrr[         ]+a0,pmpcfg0
+[      ]+[0-9a-f]+:[   ]+3a102573[     ]+csrr[         ]+a0,pmpcfg1
+[      ]+[0-9a-f]+:[   ]+3a202573[     ]+csrr[         ]+a0,pmpcfg2
+[      ]+[0-9a-f]+:[   ]+3a302573[     ]+csrr[         ]+a0,pmpcfg3
+[      ]+[0-9a-f]+:[   ]+3b002573[     ]+csrr[         ]+a0,pmpaddr0
+[      ]+[0-9a-f]+:[   ]+3b102573[     ]+csrr[         ]+a0,pmpaddr1
+[      ]+[0-9a-f]+:[   ]+3b202573[     ]+csrr[         ]+a0,pmpaddr2
+[      ]+[0-9a-f]+:[   ]+3b302573[     ]+csrr[         ]+a0,pmpaddr3
+[      ]+[0-9a-f]+:[   ]+3b402573[     ]+csrr[         ]+a0,pmpaddr4
+[      ]+[0-9a-f]+:[   ]+3b502573[     ]+csrr[         ]+a0,pmpaddr5
+[      ]+[0-9a-f]+:[   ]+3b602573[     ]+csrr[         ]+a0,pmpaddr6
+[      ]+[0-9a-f]+:[   ]+3b702573[     ]+csrr[         ]+a0,pmpaddr7
+[      ]+[0-9a-f]+:[   ]+3b802573[     ]+csrr[         ]+a0,pmpaddr8
+[      ]+[0-9a-f]+:[   ]+3b902573[     ]+csrr[         ]+a0,pmpaddr9
+[      ]+[0-9a-f]+:[   ]+3ba02573[     ]+csrr[         ]+a0,pmpaddr10
+[      ]+[0-9a-f]+:[   ]+3bb02573[     ]+csrr[         ]+a0,pmpaddr11
+[      ]+[0-9a-f]+:[   ]+3bc02573[     ]+csrr[         ]+a0,pmpaddr12
+[      ]+[0-9a-f]+:[   ]+3bd02573[     ]+csrr[         ]+a0,pmpaddr13
+[      ]+[0-9a-f]+:[   ]+3be02573[     ]+csrr[         ]+a0,pmpaddr14
+[      ]+[0-9a-f]+:[   ]+3bf02573[     ]+csrr[         ]+a0,pmpaddr15
+[      ]+[0-9a-f]+:[   ]+b0002573[     ]+csrr[         ]+a0,mcycle
+[      ]+[0-9a-f]+:[   ]+b0202573[     ]+csrr[         ]+a0,minstret
+[      ]+[0-9a-f]+:[   ]+b0302573[     ]+csrr[         ]+a0,mhpmcounter3
+[      ]+[0-9a-f]+:[   ]+b0402573[     ]+csrr[         ]+a0,mhpmcounter4
+[      ]+[0-9a-f]+:[   ]+b0502573[     ]+csrr[         ]+a0,mhpmcounter5
+[      ]+[0-9a-f]+:[   ]+b0602573[     ]+csrr[         ]+a0,mhpmcounter6
+[      ]+[0-9a-f]+:[   ]+b0702573[     ]+csrr[         ]+a0,mhpmcounter7
+[      ]+[0-9a-f]+:[   ]+b0802573[     ]+csrr[         ]+a0,mhpmcounter8
+[      ]+[0-9a-f]+:[   ]+b0902573[     ]+csrr[         ]+a0,mhpmcounter9
+[      ]+[0-9a-f]+:[   ]+b0a02573[     ]+csrr[         ]+a0,mhpmcounter10
+[      ]+[0-9a-f]+:[   ]+b0b02573[     ]+csrr[         ]+a0,mhpmcounter11
+[      ]+[0-9a-f]+:[   ]+b0c02573[     ]+csrr[         ]+a0,mhpmcounter12
+[      ]+[0-9a-f]+:[   ]+b0d02573[     ]+csrr[         ]+a0,mhpmcounter13
+[      ]+[0-9a-f]+:[   ]+b0e02573[     ]+csrr[         ]+a0,mhpmcounter14
+[      ]+[0-9a-f]+:[   ]+b0f02573[     ]+csrr[         ]+a0,mhpmcounter15
+[      ]+[0-9a-f]+:[   ]+b1002573[     ]+csrr[         ]+a0,mhpmcounter16
+[      ]+[0-9a-f]+:[   ]+b1102573[     ]+csrr[         ]+a0,mhpmcounter17
+[      ]+[0-9a-f]+:[   ]+b1202573[     ]+csrr[         ]+a0,mhpmcounter18
+[      ]+[0-9a-f]+:[   ]+b1302573[     ]+csrr[         ]+a0,mhpmcounter19
+[      ]+[0-9a-f]+:[   ]+b1402573[     ]+csrr[         ]+a0,mhpmcounter20
+[      ]+[0-9a-f]+:[   ]+b1502573[     ]+csrr[         ]+a0,mhpmcounter21
+[      ]+[0-9a-f]+:[   ]+b1602573[     ]+csrr[         ]+a0,mhpmcounter22
+[      ]+[0-9a-f]+:[   ]+b1702573[     ]+csrr[         ]+a0,mhpmcounter23
+[      ]+[0-9a-f]+:[   ]+b1802573[     ]+csrr[         ]+a0,mhpmcounter24
+[      ]+[0-9a-f]+:[   ]+b1902573[     ]+csrr[         ]+a0,mhpmcounter25
+[      ]+[0-9a-f]+:[   ]+b1a02573[     ]+csrr[         ]+a0,mhpmcounter26
+[      ]+[0-9a-f]+:[   ]+b1b02573[     ]+csrr[         ]+a0,mhpmcounter27
+[      ]+[0-9a-f]+:[   ]+b1c02573[     ]+csrr[         ]+a0,mhpmcounter28
+[      ]+[0-9a-f]+:[   ]+b1d02573[     ]+csrr[         ]+a0,mhpmcounter29
+[      ]+[0-9a-f]+:[   ]+b1e02573[     ]+csrr[         ]+a0,mhpmcounter30
+[      ]+[0-9a-f]+:[   ]+b1f02573[     ]+csrr[         ]+a0,mhpmcounter31
+[      ]+[0-9a-f]+:[   ]+b8002573[     ]+csrr[         ]+a0,mcycleh
+[      ]+[0-9a-f]+:[   ]+b8202573[     ]+csrr[         ]+a0,minstreth
+[      ]+[0-9a-f]+:[   ]+b8302573[     ]+csrr[         ]+a0,mhpmcounter3h
+[      ]+[0-9a-f]+:[   ]+b8402573[     ]+csrr[         ]+a0,mhpmcounter4h
+[      ]+[0-9a-f]+:[   ]+b8502573[     ]+csrr[         ]+a0,mhpmcounter5h
+[      ]+[0-9a-f]+:[   ]+b8602573[     ]+csrr[         ]+a0,mhpmcounter6h
+[      ]+[0-9a-f]+:[   ]+b8702573[     ]+csrr[         ]+a0,mhpmcounter7h
+[      ]+[0-9a-f]+:[   ]+b8802573[     ]+csrr[         ]+a0,mhpmcounter8h
+[      ]+[0-9a-f]+:[   ]+b8902573[     ]+csrr[         ]+a0,mhpmcounter9h
+[      ]+[0-9a-f]+:[   ]+b8a02573[     ]+csrr[         ]+a0,mhpmcounter10h
+[      ]+[0-9a-f]+:[   ]+b8b02573[     ]+csrr[         ]+a0,mhpmcounter11h
+[      ]+[0-9a-f]+:[   ]+b8c02573[     ]+csrr[         ]+a0,mhpmcounter12h
+[      ]+[0-9a-f]+:[   ]+b8d02573[     ]+csrr[         ]+a0,mhpmcounter13h
+[      ]+[0-9a-f]+:[   ]+b8e02573[     ]+csrr[         ]+a0,mhpmcounter14h
+[      ]+[0-9a-f]+:[   ]+b8f02573[     ]+csrr[         ]+a0,mhpmcounter15h
+[      ]+[0-9a-f]+:[   ]+b9002573[     ]+csrr[         ]+a0,mhpmcounter16h
+[      ]+[0-9a-f]+:[   ]+b9102573[     ]+csrr[         ]+a0,mhpmcounter17h
+[      ]+[0-9a-f]+:[   ]+b9202573[     ]+csrr[         ]+a0,mhpmcounter18h
+[      ]+[0-9a-f]+:[   ]+b9302573[     ]+csrr[         ]+a0,mhpmcounter19h
+[      ]+[0-9a-f]+:[   ]+b9402573[     ]+csrr[         ]+a0,mhpmcounter20h
+[      ]+[0-9a-f]+:[   ]+b9502573[     ]+csrr[         ]+a0,mhpmcounter21h
+[      ]+[0-9a-f]+:[   ]+b9602573[     ]+csrr[         ]+a0,mhpmcounter22h
+[      ]+[0-9a-f]+:[   ]+b9702573[     ]+csrr[         ]+a0,mhpmcounter23h
+[      ]+[0-9a-f]+:[   ]+b9802573[     ]+csrr[         ]+a0,mhpmcounter24h
+[      ]+[0-9a-f]+:[   ]+b9902573[     ]+csrr[         ]+a0,mhpmcounter25h
+[      ]+[0-9a-f]+:[   ]+b9a02573[     ]+csrr[         ]+a0,mhpmcounter26h
+[      ]+[0-9a-f]+:[   ]+b9b02573[     ]+csrr[         ]+a0,mhpmcounter27h
+[      ]+[0-9a-f]+:[   ]+b9c02573[     ]+csrr[         ]+a0,mhpmcounter28h
+[      ]+[0-9a-f]+:[   ]+b9d02573[     ]+csrr[         ]+a0,mhpmcounter29h
+[      ]+[0-9a-f]+:[   ]+b9e02573[     ]+csrr[         ]+a0,mhpmcounter30h
+[      ]+[0-9a-f]+:[   ]+b9f02573[     ]+csrr[         ]+a0,mhpmcounter31h
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mcountinhibit
+[      ]+[0-9a-f]+:[   ]+32302573[     ]+csrr[         ]+a0,mhpmevent3
+[      ]+[0-9a-f]+:[   ]+32402573[     ]+csrr[         ]+a0,mhpmevent4
+[      ]+[0-9a-f]+:[   ]+32502573[     ]+csrr[         ]+a0,mhpmevent5
+[      ]+[0-9a-f]+:[   ]+32602573[     ]+csrr[         ]+a0,mhpmevent6
+[      ]+[0-9a-f]+:[   ]+32702573[     ]+csrr[         ]+a0,mhpmevent7
+[      ]+[0-9a-f]+:[   ]+32802573[     ]+csrr[         ]+a0,mhpmevent8
+[      ]+[0-9a-f]+:[   ]+32902573[     ]+csrr[         ]+a0,mhpmevent9
+[      ]+[0-9a-f]+:[   ]+32a02573[     ]+csrr[         ]+a0,mhpmevent10
+[      ]+[0-9a-f]+:[   ]+32b02573[     ]+csrr[         ]+a0,mhpmevent11
+[      ]+[0-9a-f]+:[   ]+32c02573[     ]+csrr[         ]+a0,mhpmevent12
+[      ]+[0-9a-f]+:[   ]+32d02573[     ]+csrr[         ]+a0,mhpmevent13
+[      ]+[0-9a-f]+:[   ]+32e02573[     ]+csrr[         ]+a0,mhpmevent14
+[      ]+[0-9a-f]+:[   ]+32f02573[     ]+csrr[         ]+a0,mhpmevent15
+[      ]+[0-9a-f]+:[   ]+33002573[     ]+csrr[         ]+a0,mhpmevent16
+[      ]+[0-9a-f]+:[   ]+33102573[     ]+csrr[         ]+a0,mhpmevent17
+[      ]+[0-9a-f]+:[   ]+33202573[     ]+csrr[         ]+a0,mhpmevent18
+[      ]+[0-9a-f]+:[   ]+33302573[     ]+csrr[         ]+a0,mhpmevent19
+[      ]+[0-9a-f]+:[   ]+33402573[     ]+csrr[         ]+a0,mhpmevent20
+[      ]+[0-9a-f]+:[   ]+33502573[     ]+csrr[         ]+a0,mhpmevent21
+[      ]+[0-9a-f]+:[   ]+33602573[     ]+csrr[         ]+a0,mhpmevent22
+[      ]+[0-9a-f]+:[   ]+33702573[     ]+csrr[         ]+a0,mhpmevent23
+[      ]+[0-9a-f]+:[   ]+33802573[     ]+csrr[         ]+a0,mhpmevent24
+[      ]+[0-9a-f]+:[   ]+33902573[     ]+csrr[         ]+a0,mhpmevent25
+[      ]+[0-9a-f]+:[   ]+33a02573[     ]+csrr[         ]+a0,mhpmevent26
+[      ]+[0-9a-f]+:[   ]+33b02573[     ]+csrr[         ]+a0,mhpmevent27
+[      ]+[0-9a-f]+:[   ]+33c02573[     ]+csrr[         ]+a0,mhpmevent28
+[      ]+[0-9a-f]+:[   ]+33d02573[     ]+csrr[         ]+a0,mhpmevent29
+[      ]+[0-9a-f]+:[   ]+33e02573[     ]+csrr[         ]+a0,mhpmevent30
+[      ]+[0-9a-f]+:[   ]+33f02573[     ]+csrr[         ]+a0,mhpmevent31
+[      ]+[0-9a-f]+:[   ]+7a002573[     ]+csrr[         ]+a0,tselect
+[      ]+[0-9a-f]+:[   ]+7a102573[     ]+csrr[         ]+a0,tdata1
+[      ]+[0-9a-f]+:[   ]+7a202573[     ]+csrr[         ]+a0,tdata2
+[      ]+[0-9a-f]+:[   ]+7a302573[     ]+csrr[         ]+a0,tdata3
+[      ]+[0-9a-f]+:[   ]+7b002573[     ]+csrr[         ]+a0,dcsr
+[      ]+[0-9a-f]+:[   ]+7b102573[     ]+csrr[         ]+a0,dpc
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch0
+[      ]+[0-9a-f]+:[   ]+7b302573[     ]+csrr[         ]+a0,dscratch1
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,utval
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,stval
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,satp
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mtval
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mcountinhibit
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch0
+[      ]+[0-9a-f]+:[   ]+20002573[     ]+csrr[         ]+a0,0x200
+[      ]+[0-9a-f]+:[   ]+20202573[     ]+csrr[         ]+a0,0x202
+[      ]+[0-9a-f]+:[   ]+20302573[     ]+csrr[         ]+a0,0x203
+[      ]+[0-9a-f]+:[   ]+20402573[     ]+csrr[         ]+a0,0x204
+[      ]+[0-9a-f]+:[   ]+20502573[     ]+csrr[         ]+a0,0x205
+[      ]+[0-9a-f]+:[   ]+24002573[     ]+csrr[         ]+a0,0x240
+[      ]+[0-9a-f]+:[   ]+24102573[     ]+csrr[         ]+a0,0x241
+[      ]+[0-9a-f]+:[   ]+24202573[     ]+csrr[         ]+a0,0x242
+[      ]+[0-9a-f]+:[   ]+24302573[     ]+csrr[         ]+a0,0x243
+[      ]+[0-9a-f]+:[   ]+24402573[     ]+csrr[         ]+a0,0x244
+[      ]+[0-9a-f]+:[   ]+38002573[     ]+csrr[         ]+a0,0x380
+[      ]+[0-9a-f]+:[   ]+38102573[     ]+csrr[         ]+a0,0x381
+[      ]+[0-9a-f]+:[   ]+38202573[     ]+csrr[         ]+a0,0x382
+[      ]+[0-9a-f]+:[   ]+38302573[     ]+csrr[         ]+a0,0x383
+[      ]+[0-9a-f]+:[   ]+38402573[     ]+csrr[         ]+a0,0x384
+[      ]+[0-9a-f]+:[   ]+38502573[     ]+csrr[         ]+a0,0x385
+[      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[         ]+a0,0x321
+[      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[         ]+a0,0x322
diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p9.d b/gas/testsuite/gas/riscv/priv-reg-version-1p9.d
new file mode 100644 (file)
index 0000000..fd2a56b
--- /dev/null
@@ -0,0 +1,257 @@
+#as: -march=rv32if -mpriv-spec=1.9
+#source: priv-reg.s
+#objdump: -dr -Mpriv-spec=1.9
+
+.*:[   ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[      ]+[0-9a-f]+:[   ]+00002573[     ]+csrr[         ]+a0,ustatus
+[      ]+[0-9a-f]+:[   ]+00402573[     ]+csrr[         ]+a0,uie
+[      ]+[0-9a-f]+:[   ]+00502573[     ]+csrr[         ]+a0,utvec
+[      ]+[0-9a-f]+:[   ]+04002573[     ]+csrr[         ]+a0,uscratch
+[      ]+[0-9a-f]+:[   ]+04102573[     ]+csrr[         ]+a0,uepc
+[      ]+[0-9a-f]+:[   ]+04202573[     ]+csrr[         ]+a0,ucause
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,ubadaddr
+[      ]+[0-9a-f]+:[   ]+04402573[     ]+csrr[         ]+a0,uip
+[      ]+[0-9a-f]+:[   ]+00102573[     ]+frflags[      ]+a0
+[      ]+[0-9a-f]+:[   ]+00202573[     ]+frrm[         ]+a0
+[      ]+[0-9a-f]+:[   ]+00302573[     ]+frcsr[        ]+a0
+[      ]+[0-9a-f]+:[   ]+c0002573[     ]+rdcycle[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c0102573[     ]+rdtime[       ]+a0
+[      ]+[0-9a-f]+:[   ]+c0202573[     ]+rdinstret[    ]+a0
+[      ]+[0-9a-f]+:[   ]+c0302573[     ]+csrr[         ]+a0,hpmcounter3
+[      ]+[0-9a-f]+:[   ]+c0402573[     ]+csrr[         ]+a0,hpmcounter4
+[      ]+[0-9a-f]+:[   ]+c0502573[     ]+csrr[         ]+a0,hpmcounter5
+[      ]+[0-9a-f]+:[   ]+c0602573[     ]+csrr[         ]+a0,hpmcounter6
+[      ]+[0-9a-f]+:[   ]+c0702573[     ]+csrr[         ]+a0,hpmcounter7
+[      ]+[0-9a-f]+:[   ]+c0802573[     ]+csrr[         ]+a0,hpmcounter8
+[      ]+[0-9a-f]+:[   ]+c0902573[     ]+csrr[         ]+a0,hpmcounter9
+[      ]+[0-9a-f]+:[   ]+c0a02573[     ]+csrr[         ]+a0,hpmcounter10
+[      ]+[0-9a-f]+:[   ]+c0b02573[     ]+csrr[         ]+a0,hpmcounter11
+[      ]+[0-9a-f]+:[   ]+c0c02573[     ]+csrr[         ]+a0,hpmcounter12
+[      ]+[0-9a-f]+:[   ]+c0d02573[     ]+csrr[         ]+a0,hpmcounter13
+[      ]+[0-9a-f]+:[   ]+c0e02573[     ]+csrr[         ]+a0,hpmcounter14
+[      ]+[0-9a-f]+:[   ]+c0f02573[     ]+csrr[         ]+a0,hpmcounter15
+[      ]+[0-9a-f]+:[   ]+c1002573[     ]+csrr[         ]+a0,hpmcounter16
+[      ]+[0-9a-f]+:[   ]+c1102573[     ]+csrr[         ]+a0,hpmcounter17
+[      ]+[0-9a-f]+:[   ]+c1202573[     ]+csrr[         ]+a0,hpmcounter18
+[      ]+[0-9a-f]+:[   ]+c1302573[     ]+csrr[         ]+a0,hpmcounter19
+[      ]+[0-9a-f]+:[   ]+c1402573[     ]+csrr[         ]+a0,hpmcounter20
+[      ]+[0-9a-f]+:[   ]+c1502573[     ]+csrr[         ]+a0,hpmcounter21
+[      ]+[0-9a-f]+:[   ]+c1602573[     ]+csrr[         ]+a0,hpmcounter22
+[      ]+[0-9a-f]+:[   ]+c1702573[     ]+csrr[         ]+a0,hpmcounter23
+[      ]+[0-9a-f]+:[   ]+c1802573[     ]+csrr[         ]+a0,hpmcounter24
+[      ]+[0-9a-f]+:[   ]+c1902573[     ]+csrr[         ]+a0,hpmcounter25
+[      ]+[0-9a-f]+:[   ]+c1a02573[     ]+csrr[         ]+a0,hpmcounter26
+[      ]+[0-9a-f]+:[   ]+c1b02573[     ]+csrr[         ]+a0,hpmcounter27
+[      ]+[0-9a-f]+:[   ]+c1c02573[     ]+csrr[         ]+a0,hpmcounter28
+[      ]+[0-9a-f]+:[   ]+c1d02573[     ]+csrr[         ]+a0,hpmcounter29
+[      ]+[0-9a-f]+:[   ]+c1e02573[     ]+csrr[         ]+a0,hpmcounter30
+[      ]+[0-9a-f]+:[   ]+c1f02573[     ]+csrr[         ]+a0,hpmcounter31
+[      ]+[0-9a-f]+:[   ]+c8002573[     ]+rdcycleh[     ]+a0
+[      ]+[0-9a-f]+:[   ]+c8102573[     ]+rdtimeh[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c8202573[     ]+rdinstreth[   ]+a0
+[      ]+[0-9a-f]+:[   ]+c8302573[     ]+csrr[         ]+a0,hpmcounter3h
+[      ]+[0-9a-f]+:[   ]+c8402573[     ]+csrr[         ]+a0,hpmcounter4h
+[      ]+[0-9a-f]+:[   ]+c8502573[     ]+csrr[         ]+a0,hpmcounter5h
+[      ]+[0-9a-f]+:[   ]+c8602573[     ]+csrr[         ]+a0,hpmcounter6h
+[      ]+[0-9a-f]+:[   ]+c8702573[     ]+csrr[         ]+a0,hpmcounter7h
+[      ]+[0-9a-f]+:[   ]+c8802573[     ]+csrr[         ]+a0,hpmcounter8h
+[      ]+[0-9a-f]+:[   ]+c8902573[     ]+csrr[         ]+a0,hpmcounter9h
+[      ]+[0-9a-f]+:[   ]+c8a02573[     ]+csrr[         ]+a0,hpmcounter10h
+[      ]+[0-9a-f]+:[   ]+c8b02573[     ]+csrr[         ]+a0,hpmcounter11h
+[      ]+[0-9a-f]+:[   ]+c8c02573[     ]+csrr[         ]+a0,hpmcounter12h
+[      ]+[0-9a-f]+:[   ]+c8d02573[     ]+csrr[         ]+a0,hpmcounter13h
+[      ]+[0-9a-f]+:[   ]+c8e02573[     ]+csrr[         ]+a0,hpmcounter14h
+[      ]+[0-9a-f]+:[   ]+c8f02573[     ]+csrr[         ]+a0,hpmcounter15h
+[      ]+[0-9a-f]+:[   ]+c9002573[     ]+csrr[         ]+a0,hpmcounter16h
+[      ]+[0-9a-f]+:[   ]+c9102573[     ]+csrr[         ]+a0,hpmcounter17h
+[      ]+[0-9a-f]+:[   ]+c9202573[     ]+csrr[         ]+a0,hpmcounter18h
+[      ]+[0-9a-f]+:[   ]+c9302573[     ]+csrr[         ]+a0,hpmcounter19h
+[      ]+[0-9a-f]+:[   ]+c9402573[     ]+csrr[         ]+a0,hpmcounter20h
+[      ]+[0-9a-f]+:[   ]+c9502573[     ]+csrr[         ]+a0,hpmcounter21h
+[      ]+[0-9a-f]+:[   ]+c9602573[     ]+csrr[         ]+a0,hpmcounter22h
+[      ]+[0-9a-f]+:[   ]+c9702573[     ]+csrr[         ]+a0,hpmcounter23h
+[      ]+[0-9a-f]+:[   ]+c9802573[     ]+csrr[         ]+a0,hpmcounter24h
+[      ]+[0-9a-f]+:[   ]+c9902573[     ]+csrr[         ]+a0,hpmcounter25h
+[      ]+[0-9a-f]+:[   ]+c9a02573[     ]+csrr[         ]+a0,hpmcounter26h
+[      ]+[0-9a-f]+:[   ]+c9b02573[     ]+csrr[         ]+a0,hpmcounter27h
+[      ]+[0-9a-f]+:[   ]+c9c02573[     ]+csrr[         ]+a0,hpmcounter28h
+[      ]+[0-9a-f]+:[   ]+c9d02573[     ]+csrr[         ]+a0,hpmcounter29h
+[      ]+[0-9a-f]+:[   ]+c9e02573[     ]+csrr[         ]+a0,hpmcounter30h
+[      ]+[0-9a-f]+:[   ]+c9f02573[     ]+csrr[         ]+a0,hpmcounter31h
+[      ]+[0-9a-f]+:[   ]+10002573[     ]+csrr[         ]+a0,sstatus
+[      ]+[0-9a-f]+:[   ]+10202573[     ]+csrr[         ]+a0,sedeleg
+[      ]+[0-9a-f]+:[   ]+10302573[     ]+csrr[         ]+a0,sideleg
+[      ]+[0-9a-f]+:[   ]+10402573[     ]+csrr[         ]+a0,sie
+[      ]+[0-9a-f]+:[   ]+10502573[     ]+csrr[         ]+a0,stvec
+[      ]+[0-9a-f]+:[   ]+10602573[     ]+csrr[         ]+a0,0x106
+[      ]+[0-9a-f]+:[   ]+14002573[     ]+csrr[         ]+a0,sscratch
+[      ]+[0-9a-f]+:[   ]+14102573[     ]+csrr[         ]+a0,sepc
+[      ]+[0-9a-f]+:[   ]+14202573[     ]+csrr[         ]+a0,scause
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,sbadaddr
+[      ]+[0-9a-f]+:[   ]+14402573[     ]+csrr[         ]+a0,sip
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,sptbr
+[      ]+[0-9a-f]+:[   ]+f1102573[     ]+csrr[         ]+a0,mvendorid
+[      ]+[0-9a-f]+:[   ]+f1202573[     ]+csrr[         ]+a0,marchid
+[      ]+[0-9a-f]+:[   ]+f1302573[     ]+csrr[         ]+a0,mimpid
+[      ]+[0-9a-f]+:[   ]+f1402573[     ]+csrr[         ]+a0,mhartid
+[      ]+[0-9a-f]+:[   ]+30002573[     ]+csrr[         ]+a0,mstatus
+[      ]+[0-9a-f]+:[   ]+f1002573[     ]+csrr[         ]+a0,misa
+[      ]+[0-9a-f]+:[   ]+30202573[     ]+csrr[         ]+a0,medeleg
+[      ]+[0-9a-f]+:[   ]+30302573[     ]+csrr[         ]+a0,mideleg
+[      ]+[0-9a-f]+:[   ]+30402573[     ]+csrr[         ]+a0,mie
+[      ]+[0-9a-f]+:[   ]+30502573[     ]+csrr[         ]+a0,mtvec
+[      ]+[0-9a-f]+:[   ]+30602573[     ]+csrr[         ]+a0,0x306
+[      ]+[0-9a-f]+:[   ]+34002573[     ]+csrr[         ]+a0,mscratch
+[      ]+[0-9a-f]+:[   ]+34102573[     ]+csrr[         ]+a0,mepc
+[      ]+[0-9a-f]+:[   ]+34202573[     ]+csrr[         ]+a0,mcause
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mbadaddr
+[      ]+[0-9a-f]+:[   ]+34402573[     ]+csrr[         ]+a0,mip
+[      ]+[0-9a-f]+:[   ]+3a002573[     ]+csrr[         ]+a0,0x3a0
+[      ]+[0-9a-f]+:[   ]+3a102573[     ]+csrr[         ]+a0,0x3a1
+[      ]+[0-9a-f]+:[   ]+3a202573[     ]+csrr[         ]+a0,0x3a2
+[      ]+[0-9a-f]+:[   ]+3a302573[     ]+csrr[         ]+a0,0x3a3
+[      ]+[0-9a-f]+:[   ]+3b002573[     ]+csrr[         ]+a0,0x3b0
+[      ]+[0-9a-f]+:[   ]+3b102573[     ]+csrr[         ]+a0,0x3b1
+[      ]+[0-9a-f]+:[   ]+3b202573[     ]+csrr[         ]+a0,0x3b2
+[      ]+[0-9a-f]+:[   ]+3b302573[     ]+csrr[         ]+a0,0x3b3
+[      ]+[0-9a-f]+:[   ]+3b402573[     ]+csrr[         ]+a0,0x3b4
+[      ]+[0-9a-f]+:[   ]+3b502573[     ]+csrr[         ]+a0,0x3b5
+[      ]+[0-9a-f]+:[   ]+3b602573[     ]+csrr[         ]+a0,0x3b6
+[      ]+[0-9a-f]+:[   ]+3b702573[     ]+csrr[         ]+a0,0x3b7
+[      ]+[0-9a-f]+:[   ]+3b802573[     ]+csrr[         ]+a0,0x3b8
+[      ]+[0-9a-f]+:[   ]+3b902573[     ]+csrr[         ]+a0,0x3b9
+[      ]+[0-9a-f]+:[   ]+3ba02573[     ]+csrr[         ]+a0,0x3ba
+[      ]+[0-9a-f]+:[   ]+3bb02573[     ]+csrr[         ]+a0,0x3bb
+[      ]+[0-9a-f]+:[   ]+3bc02573[     ]+csrr[         ]+a0,0x3bc
+[      ]+[0-9a-f]+:[   ]+3bd02573[     ]+csrr[         ]+a0,0x3bd
+[      ]+[0-9a-f]+:[   ]+3be02573[     ]+csrr[         ]+a0,0x3be
+[      ]+[0-9a-f]+:[   ]+3bf02573[     ]+csrr[         ]+a0,0x3bf
+[      ]+[0-9a-f]+:[   ]+b0002573[     ]+csrr[         ]+a0,mcycle
+[      ]+[0-9a-f]+:[   ]+b0202573[     ]+csrr[         ]+a0,minstret
+[      ]+[0-9a-f]+:[   ]+b0302573[     ]+csrr[         ]+a0,mhpmcounter3
+[      ]+[0-9a-f]+:[   ]+b0402573[     ]+csrr[         ]+a0,mhpmcounter4
+[      ]+[0-9a-f]+:[   ]+b0502573[     ]+csrr[         ]+a0,mhpmcounter5
+[      ]+[0-9a-f]+:[   ]+b0602573[     ]+csrr[         ]+a0,mhpmcounter6
+[      ]+[0-9a-f]+:[   ]+b0702573[     ]+csrr[         ]+a0,mhpmcounter7
+[      ]+[0-9a-f]+:[   ]+b0802573[     ]+csrr[         ]+a0,mhpmcounter8
+[      ]+[0-9a-f]+:[   ]+b0902573[     ]+csrr[         ]+a0,mhpmcounter9
+[      ]+[0-9a-f]+:[   ]+b0a02573[     ]+csrr[         ]+a0,mhpmcounter10
+[      ]+[0-9a-f]+:[   ]+b0b02573[     ]+csrr[         ]+a0,mhpmcounter11
+[      ]+[0-9a-f]+:[   ]+b0c02573[     ]+csrr[         ]+a0,mhpmcounter12
+[      ]+[0-9a-f]+:[   ]+b0d02573[     ]+csrr[         ]+a0,mhpmcounter13
+[      ]+[0-9a-f]+:[   ]+b0e02573[     ]+csrr[         ]+a0,mhpmcounter14
+[      ]+[0-9a-f]+:[   ]+b0f02573[     ]+csrr[         ]+a0,mhpmcounter15
+[      ]+[0-9a-f]+:[   ]+b1002573[     ]+csrr[         ]+a0,mhpmcounter16
+[      ]+[0-9a-f]+:[   ]+b1102573[     ]+csrr[         ]+a0,mhpmcounter17
+[      ]+[0-9a-f]+:[   ]+b1202573[     ]+csrr[         ]+a0,mhpmcounter18
+[      ]+[0-9a-f]+:[   ]+b1302573[     ]+csrr[         ]+a0,mhpmcounter19
+[      ]+[0-9a-f]+:[   ]+b1402573[     ]+csrr[         ]+a0,mhpmcounter20
+[      ]+[0-9a-f]+:[   ]+b1502573[     ]+csrr[         ]+a0,mhpmcounter21
+[      ]+[0-9a-f]+:[   ]+b1602573[     ]+csrr[         ]+a0,mhpmcounter22
+[      ]+[0-9a-f]+:[   ]+b1702573[     ]+csrr[         ]+a0,mhpmcounter23
+[      ]+[0-9a-f]+:[   ]+b1802573[     ]+csrr[         ]+a0,mhpmcounter24
+[      ]+[0-9a-f]+:[   ]+b1902573[     ]+csrr[         ]+a0,mhpmcounter25
+[      ]+[0-9a-f]+:[   ]+b1a02573[     ]+csrr[         ]+a0,mhpmcounter26
+[      ]+[0-9a-f]+:[   ]+b1b02573[     ]+csrr[         ]+a0,mhpmcounter27
+[      ]+[0-9a-f]+:[   ]+b1c02573[     ]+csrr[         ]+a0,mhpmcounter28
+[      ]+[0-9a-f]+:[   ]+b1d02573[     ]+csrr[         ]+a0,mhpmcounter29
+[      ]+[0-9a-f]+:[   ]+b1e02573[     ]+csrr[         ]+a0,mhpmcounter30
+[      ]+[0-9a-f]+:[   ]+b1f02573[     ]+csrr[         ]+a0,mhpmcounter31
+[      ]+[0-9a-f]+:[   ]+b8002573[     ]+csrr[         ]+a0,mcycleh
+[      ]+[0-9a-f]+:[   ]+b8202573[     ]+csrr[         ]+a0,minstreth
+[      ]+[0-9a-f]+:[   ]+b8302573[     ]+csrr[         ]+a0,mhpmcounter3h
+[      ]+[0-9a-f]+:[   ]+b8402573[     ]+csrr[         ]+a0,mhpmcounter4h
+[      ]+[0-9a-f]+:[   ]+b8502573[     ]+csrr[         ]+a0,mhpmcounter5h
+[      ]+[0-9a-f]+:[   ]+b8602573[     ]+csrr[         ]+a0,mhpmcounter6h
+[      ]+[0-9a-f]+:[   ]+b8702573[     ]+csrr[         ]+a0,mhpmcounter7h
+[      ]+[0-9a-f]+:[   ]+b8802573[     ]+csrr[         ]+a0,mhpmcounter8h
+[      ]+[0-9a-f]+:[   ]+b8902573[     ]+csrr[         ]+a0,mhpmcounter9h
+[      ]+[0-9a-f]+:[   ]+b8a02573[     ]+csrr[         ]+a0,mhpmcounter10h
+[      ]+[0-9a-f]+:[   ]+b8b02573[     ]+csrr[         ]+a0,mhpmcounter11h
+[      ]+[0-9a-f]+:[   ]+b8c02573[     ]+csrr[         ]+a0,mhpmcounter12h
+[      ]+[0-9a-f]+:[   ]+b8d02573[     ]+csrr[         ]+a0,mhpmcounter13h
+[      ]+[0-9a-f]+:[   ]+b8e02573[     ]+csrr[         ]+a0,mhpmcounter14h
+[      ]+[0-9a-f]+:[   ]+b8f02573[     ]+csrr[         ]+a0,mhpmcounter15h
+[      ]+[0-9a-f]+:[   ]+b9002573[     ]+csrr[         ]+a0,mhpmcounter16h
+[      ]+[0-9a-f]+:[   ]+b9102573[     ]+csrr[         ]+a0,mhpmcounter17h
+[      ]+[0-9a-f]+:[   ]+b9202573[     ]+csrr[         ]+a0,mhpmcounter18h
+[      ]+[0-9a-f]+:[   ]+b9302573[     ]+csrr[         ]+a0,mhpmcounter19h
+[      ]+[0-9a-f]+:[   ]+b9402573[     ]+csrr[         ]+a0,mhpmcounter20h
+[      ]+[0-9a-f]+:[   ]+b9502573[     ]+csrr[         ]+a0,mhpmcounter21h
+[      ]+[0-9a-f]+:[   ]+b9602573[     ]+csrr[         ]+a0,mhpmcounter22h
+[      ]+[0-9a-f]+:[   ]+b9702573[     ]+csrr[         ]+a0,mhpmcounter23h
+[      ]+[0-9a-f]+:[   ]+b9802573[     ]+csrr[         ]+a0,mhpmcounter24h
+[      ]+[0-9a-f]+:[   ]+b9902573[     ]+csrr[         ]+a0,mhpmcounter25h
+[      ]+[0-9a-f]+:[   ]+b9a02573[     ]+csrr[         ]+a0,mhpmcounter26h
+[      ]+[0-9a-f]+:[   ]+b9b02573[     ]+csrr[         ]+a0,mhpmcounter27h
+[      ]+[0-9a-f]+:[   ]+b9c02573[     ]+csrr[         ]+a0,mhpmcounter28h
+[      ]+[0-9a-f]+:[   ]+b9d02573[     ]+csrr[         ]+a0,mhpmcounter29h
+[      ]+[0-9a-f]+:[   ]+b9e02573[     ]+csrr[         ]+a0,mhpmcounter30h
+[      ]+[0-9a-f]+:[   ]+b9f02573[     ]+csrr[         ]+a0,mhpmcounter31h
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mucounteren
+[      ]+[0-9a-f]+:[   ]+32302573[     ]+csrr[         ]+a0,mhpmevent3
+[      ]+[0-9a-f]+:[   ]+32402573[     ]+csrr[         ]+a0,mhpmevent4
+[      ]+[0-9a-f]+:[   ]+32502573[     ]+csrr[         ]+a0,mhpmevent5
+[      ]+[0-9a-f]+:[   ]+32602573[     ]+csrr[         ]+a0,mhpmevent6
+[      ]+[0-9a-f]+:[   ]+32702573[     ]+csrr[         ]+a0,mhpmevent7
+[      ]+[0-9a-f]+:[   ]+32802573[     ]+csrr[         ]+a0,mhpmevent8
+[      ]+[0-9a-f]+:[   ]+32902573[     ]+csrr[         ]+a0,mhpmevent9
+[      ]+[0-9a-f]+:[   ]+32a02573[     ]+csrr[         ]+a0,mhpmevent10
+[      ]+[0-9a-f]+:[   ]+32b02573[     ]+csrr[         ]+a0,mhpmevent11
+[      ]+[0-9a-f]+:[   ]+32c02573[     ]+csrr[         ]+a0,mhpmevent12
+[      ]+[0-9a-f]+:[   ]+32d02573[     ]+csrr[         ]+a0,mhpmevent13
+[      ]+[0-9a-f]+:[   ]+32e02573[     ]+csrr[         ]+a0,mhpmevent14
+[      ]+[0-9a-f]+:[   ]+32f02573[     ]+csrr[         ]+a0,mhpmevent15
+[      ]+[0-9a-f]+:[   ]+33002573[     ]+csrr[         ]+a0,mhpmevent16
+[      ]+[0-9a-f]+:[   ]+33102573[     ]+csrr[         ]+a0,mhpmevent17
+[      ]+[0-9a-f]+:[   ]+33202573[     ]+csrr[         ]+a0,mhpmevent18
+[      ]+[0-9a-f]+:[   ]+33302573[     ]+csrr[         ]+a0,mhpmevent19
+[      ]+[0-9a-f]+:[   ]+33402573[     ]+csrr[         ]+a0,mhpmevent20
+[      ]+[0-9a-f]+:[   ]+33502573[     ]+csrr[         ]+a0,mhpmevent21
+[      ]+[0-9a-f]+:[   ]+33602573[     ]+csrr[         ]+a0,mhpmevent22
+[      ]+[0-9a-f]+:[   ]+33702573[     ]+csrr[         ]+a0,mhpmevent23
+[      ]+[0-9a-f]+:[   ]+33802573[     ]+csrr[         ]+a0,mhpmevent24
+[      ]+[0-9a-f]+:[   ]+33902573[     ]+csrr[         ]+a0,mhpmevent25
+[      ]+[0-9a-f]+:[   ]+33a02573[     ]+csrr[         ]+a0,mhpmevent26
+[      ]+[0-9a-f]+:[   ]+33b02573[     ]+csrr[         ]+a0,mhpmevent27
+[      ]+[0-9a-f]+:[   ]+33c02573[     ]+csrr[         ]+a0,mhpmevent28
+[      ]+[0-9a-f]+:[   ]+33d02573[     ]+csrr[         ]+a0,mhpmevent29
+[      ]+[0-9a-f]+:[   ]+33e02573[     ]+csrr[         ]+a0,mhpmevent30
+[      ]+[0-9a-f]+:[   ]+33f02573[     ]+csrr[         ]+a0,mhpmevent31
+[      ]+[0-9a-f]+:[   ]+7a002573[     ]+csrr[         ]+a0,tselect
+[      ]+[0-9a-f]+:[   ]+7a102573[     ]+csrr[         ]+a0,tdata1
+[      ]+[0-9a-f]+:[   ]+7a202573[     ]+csrr[         ]+a0,tdata2
+[      ]+[0-9a-f]+:[   ]+7a302573[     ]+csrr[         ]+a0,tdata3
+[      ]+[0-9a-f]+:[   ]+7b002573[     ]+csrr[         ]+a0,dcsr
+[      ]+[0-9a-f]+:[   ]+7b102573[     ]+csrr[         ]+a0,dpc
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch
+[      ]+[0-9a-f]+:[   ]+7b302573[     ]+csrr[         ]+a0,0x7b3
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,ubadaddr
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,sbadaddr
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,sptbr
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mbadaddr
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mucounteren
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch
+[      ]+[0-9a-f]+:[   ]+20002573[     ]+csrr[         ]+a0,hstatus
+[      ]+[0-9a-f]+:[   ]+20202573[     ]+csrr[         ]+a0,hedeleg
+[      ]+[0-9a-f]+:[   ]+20302573[     ]+csrr[         ]+a0,hideleg
+[      ]+[0-9a-f]+:[   ]+20402573[     ]+csrr[         ]+a0,hie
+[      ]+[0-9a-f]+:[   ]+20502573[     ]+csrr[         ]+a0,htvec
+[      ]+[0-9a-f]+:[   ]+24002573[     ]+csrr[         ]+a0,hscratch
+[      ]+[0-9a-f]+:[   ]+24102573[     ]+csrr[         ]+a0,hepc
+[      ]+[0-9a-f]+:[   ]+24202573[     ]+csrr[         ]+a0,hcause
+[      ]+[0-9a-f]+:[   ]+24302573[     ]+csrr[         ]+a0,hbadaddr
+[      ]+[0-9a-f]+:[   ]+24402573[     ]+csrr[         ]+a0,hip
+[      ]+[0-9a-f]+:[   ]+38002573[     ]+csrr[         ]+a0,mbase
+[      ]+[0-9a-f]+:[   ]+38102573[     ]+csrr[         ]+a0,mbound
+[      ]+[0-9a-f]+:[   ]+38202573[     ]+csrr[         ]+a0,mibase
+[      ]+[0-9a-f]+:[   ]+38302573[     ]+csrr[         ]+a0,mibound
+[      ]+[0-9a-f]+:[   ]+38402573[     ]+csrr[         ]+a0,mdbase
+[      ]+[0-9a-f]+:[   ]+38502573[     ]+csrr[         ]+a0,mdbound
+[      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[         ]+a0,mscounteren
+[      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[         ]+a0,mhcounteren
diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d b/gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d
new file mode 100644 (file)
index 0000000..6162803
--- /dev/null
@@ -0,0 +1,257 @@
+#as: -march=rv32if -mpriv-spec=1.9.1
+#source: priv-reg.s
+#objdump: -dr -Mpriv-spec=1.9.1
+
+.*:[   ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[      ]+[0-9a-f]+:[   ]+00002573[     ]+csrr[         ]+a0,ustatus
+[      ]+[0-9a-f]+:[   ]+00402573[     ]+csrr[         ]+a0,uie
+[      ]+[0-9a-f]+:[   ]+00502573[     ]+csrr[         ]+a0,utvec
+[      ]+[0-9a-f]+:[   ]+04002573[     ]+csrr[         ]+a0,uscratch
+[      ]+[0-9a-f]+:[   ]+04102573[     ]+csrr[         ]+a0,uepc
+[      ]+[0-9a-f]+:[   ]+04202573[     ]+csrr[         ]+a0,ucause
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,ubadaddr
+[      ]+[0-9a-f]+:[   ]+04402573[     ]+csrr[         ]+a0,uip
+[      ]+[0-9a-f]+:[   ]+00102573[     ]+frflags[      ]+a0
+[      ]+[0-9a-f]+:[   ]+00202573[     ]+frrm[         ]+a0
+[      ]+[0-9a-f]+:[   ]+00302573[     ]+frcsr[        ]+a0
+[      ]+[0-9a-f]+:[   ]+c0002573[     ]+rdcycle[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c0102573[     ]+rdtime[       ]+a0
+[      ]+[0-9a-f]+:[   ]+c0202573[     ]+rdinstret[    ]+a0
+[      ]+[0-9a-f]+:[   ]+c0302573[     ]+csrr[         ]+a0,hpmcounter3
+[      ]+[0-9a-f]+:[   ]+c0402573[     ]+csrr[         ]+a0,hpmcounter4
+[      ]+[0-9a-f]+:[   ]+c0502573[     ]+csrr[         ]+a0,hpmcounter5
+[      ]+[0-9a-f]+:[   ]+c0602573[     ]+csrr[         ]+a0,hpmcounter6
+[      ]+[0-9a-f]+:[   ]+c0702573[     ]+csrr[         ]+a0,hpmcounter7
+[      ]+[0-9a-f]+:[   ]+c0802573[     ]+csrr[         ]+a0,hpmcounter8
+[      ]+[0-9a-f]+:[   ]+c0902573[     ]+csrr[         ]+a0,hpmcounter9
+[      ]+[0-9a-f]+:[   ]+c0a02573[     ]+csrr[         ]+a0,hpmcounter10
+[      ]+[0-9a-f]+:[   ]+c0b02573[     ]+csrr[         ]+a0,hpmcounter11
+[      ]+[0-9a-f]+:[   ]+c0c02573[     ]+csrr[         ]+a0,hpmcounter12
+[      ]+[0-9a-f]+:[   ]+c0d02573[     ]+csrr[         ]+a0,hpmcounter13
+[      ]+[0-9a-f]+:[   ]+c0e02573[     ]+csrr[         ]+a0,hpmcounter14
+[      ]+[0-9a-f]+:[   ]+c0f02573[     ]+csrr[         ]+a0,hpmcounter15
+[      ]+[0-9a-f]+:[   ]+c1002573[     ]+csrr[         ]+a0,hpmcounter16
+[      ]+[0-9a-f]+:[   ]+c1102573[     ]+csrr[         ]+a0,hpmcounter17
+[      ]+[0-9a-f]+:[   ]+c1202573[     ]+csrr[         ]+a0,hpmcounter18
+[      ]+[0-9a-f]+:[   ]+c1302573[     ]+csrr[         ]+a0,hpmcounter19
+[      ]+[0-9a-f]+:[   ]+c1402573[     ]+csrr[         ]+a0,hpmcounter20
+[      ]+[0-9a-f]+:[   ]+c1502573[     ]+csrr[         ]+a0,hpmcounter21
+[      ]+[0-9a-f]+:[   ]+c1602573[     ]+csrr[         ]+a0,hpmcounter22
+[      ]+[0-9a-f]+:[   ]+c1702573[     ]+csrr[         ]+a0,hpmcounter23
+[      ]+[0-9a-f]+:[   ]+c1802573[     ]+csrr[         ]+a0,hpmcounter24
+[      ]+[0-9a-f]+:[   ]+c1902573[     ]+csrr[         ]+a0,hpmcounter25
+[      ]+[0-9a-f]+:[   ]+c1a02573[     ]+csrr[         ]+a0,hpmcounter26
+[      ]+[0-9a-f]+:[   ]+c1b02573[     ]+csrr[         ]+a0,hpmcounter27
+[      ]+[0-9a-f]+:[   ]+c1c02573[     ]+csrr[         ]+a0,hpmcounter28
+[      ]+[0-9a-f]+:[   ]+c1d02573[     ]+csrr[         ]+a0,hpmcounter29
+[      ]+[0-9a-f]+:[   ]+c1e02573[     ]+csrr[         ]+a0,hpmcounter30
+[      ]+[0-9a-f]+:[   ]+c1f02573[     ]+csrr[         ]+a0,hpmcounter31
+[      ]+[0-9a-f]+:[   ]+c8002573[     ]+rdcycleh[     ]+a0
+[      ]+[0-9a-f]+:[   ]+c8102573[     ]+rdtimeh[      ]+a0
+[      ]+[0-9a-f]+:[   ]+c8202573[     ]+rdinstreth[   ]+a0
+[      ]+[0-9a-f]+:[   ]+c8302573[     ]+csrr[         ]+a0,hpmcounter3h
+[      ]+[0-9a-f]+:[   ]+c8402573[     ]+csrr[         ]+a0,hpmcounter4h
+[      ]+[0-9a-f]+:[   ]+c8502573[     ]+csrr[         ]+a0,hpmcounter5h
+[      ]+[0-9a-f]+:[   ]+c8602573[     ]+csrr[         ]+a0,hpmcounter6h
+[      ]+[0-9a-f]+:[   ]+c8702573[     ]+csrr[         ]+a0,hpmcounter7h
+[      ]+[0-9a-f]+:[   ]+c8802573[     ]+csrr[         ]+a0,hpmcounter8h
+[      ]+[0-9a-f]+:[   ]+c8902573[     ]+csrr[         ]+a0,hpmcounter9h
+[      ]+[0-9a-f]+:[   ]+c8a02573[     ]+csrr[         ]+a0,hpmcounter10h
+[      ]+[0-9a-f]+:[   ]+c8b02573[     ]+csrr[         ]+a0,hpmcounter11h
+[      ]+[0-9a-f]+:[   ]+c8c02573[     ]+csrr[         ]+a0,hpmcounter12h
+[      ]+[0-9a-f]+:[   ]+c8d02573[     ]+csrr[         ]+a0,hpmcounter13h
+[      ]+[0-9a-f]+:[   ]+c8e02573[     ]+csrr[         ]+a0,hpmcounter14h
+[      ]+[0-9a-f]+:[   ]+c8f02573[     ]+csrr[         ]+a0,hpmcounter15h
+[      ]+[0-9a-f]+:[   ]+c9002573[     ]+csrr[         ]+a0,hpmcounter16h
+[      ]+[0-9a-f]+:[   ]+c9102573[     ]+csrr[         ]+a0,hpmcounter17h
+[      ]+[0-9a-f]+:[   ]+c9202573[     ]+csrr[         ]+a0,hpmcounter18h
+[      ]+[0-9a-f]+:[   ]+c9302573[     ]+csrr[         ]+a0,hpmcounter19h
+[      ]+[0-9a-f]+:[   ]+c9402573[     ]+csrr[         ]+a0,hpmcounter20h
+[      ]+[0-9a-f]+:[   ]+c9502573[     ]+csrr[         ]+a0,hpmcounter21h
+[      ]+[0-9a-f]+:[   ]+c9602573[     ]+csrr[         ]+a0,hpmcounter22h
+[      ]+[0-9a-f]+:[   ]+c9702573[     ]+csrr[         ]+a0,hpmcounter23h
+[      ]+[0-9a-f]+:[   ]+c9802573[     ]+csrr[         ]+a0,hpmcounter24h
+[      ]+[0-9a-f]+:[   ]+c9902573[     ]+csrr[         ]+a0,hpmcounter25h
+[      ]+[0-9a-f]+:[   ]+c9a02573[     ]+csrr[         ]+a0,hpmcounter26h
+[      ]+[0-9a-f]+:[   ]+c9b02573[     ]+csrr[         ]+a0,hpmcounter27h
+[      ]+[0-9a-f]+:[   ]+c9c02573[     ]+csrr[         ]+a0,hpmcounter28h
+[      ]+[0-9a-f]+:[   ]+c9d02573[     ]+csrr[         ]+a0,hpmcounter29h
+[      ]+[0-9a-f]+:[   ]+c9e02573[     ]+csrr[         ]+a0,hpmcounter30h
+[      ]+[0-9a-f]+:[   ]+c9f02573[     ]+csrr[         ]+a0,hpmcounter31h
+[      ]+[0-9a-f]+:[   ]+10002573[     ]+csrr[         ]+a0,sstatus
+[      ]+[0-9a-f]+:[   ]+10202573[     ]+csrr[         ]+a0,sedeleg
+[      ]+[0-9a-f]+:[   ]+10302573[     ]+csrr[         ]+a0,sideleg
+[      ]+[0-9a-f]+:[   ]+10402573[     ]+csrr[         ]+a0,sie
+[      ]+[0-9a-f]+:[   ]+10502573[     ]+csrr[         ]+a0,stvec
+[      ]+[0-9a-f]+:[   ]+10602573[     ]+csrr[         ]+a0,0x106
+[      ]+[0-9a-f]+:[   ]+14002573[     ]+csrr[         ]+a0,sscratch
+[      ]+[0-9a-f]+:[   ]+14102573[     ]+csrr[         ]+a0,sepc
+[      ]+[0-9a-f]+:[   ]+14202573[     ]+csrr[         ]+a0,scause
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,sbadaddr
+[      ]+[0-9a-f]+:[   ]+14402573[     ]+csrr[         ]+a0,sip
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,sptbr
+[      ]+[0-9a-f]+:[   ]+f1102573[     ]+csrr[         ]+a0,mvendorid
+[      ]+[0-9a-f]+:[   ]+f1202573[     ]+csrr[         ]+a0,marchid
+[      ]+[0-9a-f]+:[   ]+f1302573[     ]+csrr[         ]+a0,mimpid
+[      ]+[0-9a-f]+:[   ]+f1402573[     ]+csrr[         ]+a0,mhartid
+[      ]+[0-9a-f]+:[   ]+30002573[     ]+csrr[         ]+a0,mstatus
+[      ]+[0-9a-f]+:[   ]+30102573[     ]+csrr[         ]+a0,misa
+[      ]+[0-9a-f]+:[   ]+30202573[     ]+csrr[         ]+a0,medeleg
+[      ]+[0-9a-f]+:[   ]+30302573[     ]+csrr[         ]+a0,mideleg
+[      ]+[0-9a-f]+:[   ]+30402573[     ]+csrr[         ]+a0,mie
+[      ]+[0-9a-f]+:[   ]+30502573[     ]+csrr[         ]+a0,mtvec
+[      ]+[0-9a-f]+:[   ]+30602573[     ]+csrr[         ]+a0,0x306
+[      ]+[0-9a-f]+:[   ]+34002573[     ]+csrr[         ]+a0,mscratch
+[      ]+[0-9a-f]+:[   ]+34102573[     ]+csrr[         ]+a0,mepc
+[      ]+[0-9a-f]+:[   ]+34202573[     ]+csrr[         ]+a0,mcause
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mbadaddr
+[      ]+[0-9a-f]+:[   ]+34402573[     ]+csrr[         ]+a0,mip
+[      ]+[0-9a-f]+:[   ]+3a002573[     ]+csrr[         ]+a0,0x3a0
+[      ]+[0-9a-f]+:[   ]+3a102573[     ]+csrr[         ]+a0,0x3a1
+[      ]+[0-9a-f]+:[   ]+3a202573[     ]+csrr[         ]+a0,0x3a2
+[      ]+[0-9a-f]+:[   ]+3a302573[     ]+csrr[         ]+a0,0x3a3
+[      ]+[0-9a-f]+:[   ]+3b002573[     ]+csrr[         ]+a0,0x3b0
+[      ]+[0-9a-f]+:[   ]+3b102573[     ]+csrr[         ]+a0,0x3b1
+[      ]+[0-9a-f]+:[   ]+3b202573[     ]+csrr[         ]+a0,0x3b2
+[      ]+[0-9a-f]+:[   ]+3b302573[     ]+csrr[         ]+a0,0x3b3
+[      ]+[0-9a-f]+:[   ]+3b402573[     ]+csrr[         ]+a0,0x3b4
+[      ]+[0-9a-f]+:[   ]+3b502573[     ]+csrr[         ]+a0,0x3b5
+[      ]+[0-9a-f]+:[   ]+3b602573[     ]+csrr[         ]+a0,0x3b6
+[      ]+[0-9a-f]+:[   ]+3b702573[     ]+csrr[         ]+a0,0x3b7
+[      ]+[0-9a-f]+:[   ]+3b802573[     ]+csrr[         ]+a0,0x3b8
+[      ]+[0-9a-f]+:[   ]+3b902573[     ]+csrr[         ]+a0,0x3b9
+[      ]+[0-9a-f]+:[   ]+3ba02573[     ]+csrr[         ]+a0,0x3ba
+[      ]+[0-9a-f]+:[   ]+3bb02573[     ]+csrr[         ]+a0,0x3bb
+[      ]+[0-9a-f]+:[   ]+3bc02573[     ]+csrr[         ]+a0,0x3bc
+[      ]+[0-9a-f]+:[   ]+3bd02573[     ]+csrr[         ]+a0,0x3bd
+[      ]+[0-9a-f]+:[   ]+3be02573[     ]+csrr[         ]+a0,0x3be
+[      ]+[0-9a-f]+:[   ]+3bf02573[     ]+csrr[         ]+a0,0x3bf
+[      ]+[0-9a-f]+:[   ]+b0002573[     ]+csrr[         ]+a0,mcycle
+[      ]+[0-9a-f]+:[   ]+b0202573[     ]+csrr[         ]+a0,minstret
+[      ]+[0-9a-f]+:[   ]+b0302573[     ]+csrr[         ]+a0,mhpmcounter3
+[      ]+[0-9a-f]+:[   ]+b0402573[     ]+csrr[         ]+a0,mhpmcounter4
+[      ]+[0-9a-f]+:[   ]+b0502573[     ]+csrr[         ]+a0,mhpmcounter5
+[      ]+[0-9a-f]+:[   ]+b0602573[     ]+csrr[         ]+a0,mhpmcounter6
+[      ]+[0-9a-f]+:[   ]+b0702573[     ]+csrr[         ]+a0,mhpmcounter7
+[      ]+[0-9a-f]+:[   ]+b0802573[     ]+csrr[         ]+a0,mhpmcounter8
+[      ]+[0-9a-f]+:[   ]+b0902573[     ]+csrr[         ]+a0,mhpmcounter9
+[      ]+[0-9a-f]+:[   ]+b0a02573[     ]+csrr[         ]+a0,mhpmcounter10
+[      ]+[0-9a-f]+:[   ]+b0b02573[     ]+csrr[         ]+a0,mhpmcounter11
+[      ]+[0-9a-f]+:[   ]+b0c02573[     ]+csrr[         ]+a0,mhpmcounter12
+[      ]+[0-9a-f]+:[   ]+b0d02573[     ]+csrr[         ]+a0,mhpmcounter13
+[      ]+[0-9a-f]+:[   ]+b0e02573[     ]+csrr[         ]+a0,mhpmcounter14
+[      ]+[0-9a-f]+:[   ]+b0f02573[     ]+csrr[         ]+a0,mhpmcounter15
+[      ]+[0-9a-f]+:[   ]+b1002573[     ]+csrr[         ]+a0,mhpmcounter16
+[      ]+[0-9a-f]+:[   ]+b1102573[     ]+csrr[         ]+a0,mhpmcounter17
+[      ]+[0-9a-f]+:[   ]+b1202573[     ]+csrr[         ]+a0,mhpmcounter18
+[      ]+[0-9a-f]+:[   ]+b1302573[     ]+csrr[         ]+a0,mhpmcounter19
+[      ]+[0-9a-f]+:[   ]+b1402573[     ]+csrr[         ]+a0,mhpmcounter20
+[      ]+[0-9a-f]+:[   ]+b1502573[     ]+csrr[         ]+a0,mhpmcounter21
+[      ]+[0-9a-f]+:[   ]+b1602573[     ]+csrr[         ]+a0,mhpmcounter22
+[      ]+[0-9a-f]+:[   ]+b1702573[     ]+csrr[         ]+a0,mhpmcounter23
+[      ]+[0-9a-f]+:[   ]+b1802573[     ]+csrr[         ]+a0,mhpmcounter24
+[      ]+[0-9a-f]+:[   ]+b1902573[     ]+csrr[         ]+a0,mhpmcounter25
+[      ]+[0-9a-f]+:[   ]+b1a02573[     ]+csrr[         ]+a0,mhpmcounter26
+[      ]+[0-9a-f]+:[   ]+b1b02573[     ]+csrr[         ]+a0,mhpmcounter27
+[      ]+[0-9a-f]+:[   ]+b1c02573[     ]+csrr[         ]+a0,mhpmcounter28
+[      ]+[0-9a-f]+:[   ]+b1d02573[     ]+csrr[         ]+a0,mhpmcounter29
+[      ]+[0-9a-f]+:[   ]+b1e02573[     ]+csrr[         ]+a0,mhpmcounter30
+[      ]+[0-9a-f]+:[   ]+b1f02573[     ]+csrr[         ]+a0,mhpmcounter31
+[      ]+[0-9a-f]+:[   ]+b8002573[     ]+csrr[         ]+a0,mcycleh
+[      ]+[0-9a-f]+:[   ]+b8202573[     ]+csrr[         ]+a0,minstreth
+[      ]+[0-9a-f]+:[   ]+b8302573[     ]+csrr[         ]+a0,mhpmcounter3h
+[      ]+[0-9a-f]+:[   ]+b8402573[     ]+csrr[         ]+a0,mhpmcounter4h
+[      ]+[0-9a-f]+:[   ]+b8502573[     ]+csrr[         ]+a0,mhpmcounter5h
+[      ]+[0-9a-f]+:[   ]+b8602573[     ]+csrr[         ]+a0,mhpmcounter6h
+[      ]+[0-9a-f]+:[   ]+b8702573[     ]+csrr[         ]+a0,mhpmcounter7h
+[      ]+[0-9a-f]+:[   ]+b8802573[     ]+csrr[         ]+a0,mhpmcounter8h
+[      ]+[0-9a-f]+:[   ]+b8902573[     ]+csrr[         ]+a0,mhpmcounter9h
+[      ]+[0-9a-f]+:[   ]+b8a02573[     ]+csrr[         ]+a0,mhpmcounter10h
+[      ]+[0-9a-f]+:[   ]+b8b02573[     ]+csrr[         ]+a0,mhpmcounter11h
+[      ]+[0-9a-f]+:[   ]+b8c02573[     ]+csrr[         ]+a0,mhpmcounter12h
+[      ]+[0-9a-f]+:[   ]+b8d02573[     ]+csrr[         ]+a0,mhpmcounter13h
+[      ]+[0-9a-f]+:[   ]+b8e02573[     ]+csrr[         ]+a0,mhpmcounter14h
+[      ]+[0-9a-f]+:[   ]+b8f02573[     ]+csrr[         ]+a0,mhpmcounter15h
+[      ]+[0-9a-f]+:[   ]+b9002573[     ]+csrr[         ]+a0,mhpmcounter16h
+[      ]+[0-9a-f]+:[   ]+b9102573[     ]+csrr[         ]+a0,mhpmcounter17h
+[      ]+[0-9a-f]+:[   ]+b9202573[     ]+csrr[         ]+a0,mhpmcounter18h
+[      ]+[0-9a-f]+:[   ]+b9302573[     ]+csrr[         ]+a0,mhpmcounter19h
+[      ]+[0-9a-f]+:[   ]+b9402573[     ]+csrr[         ]+a0,mhpmcounter20h
+[      ]+[0-9a-f]+:[   ]+b9502573[     ]+csrr[         ]+a0,mhpmcounter21h
+[      ]+[0-9a-f]+:[   ]+b9602573[     ]+csrr[         ]+a0,mhpmcounter22h
+[      ]+[0-9a-f]+:[   ]+b9702573[     ]+csrr[         ]+a0,mhpmcounter23h
+[      ]+[0-9a-f]+:[   ]+b9802573[     ]+csrr[         ]+a0,mhpmcounter24h
+[      ]+[0-9a-f]+:[   ]+b9902573[     ]+csrr[         ]+a0,mhpmcounter25h
+[      ]+[0-9a-f]+:[   ]+b9a02573[     ]+csrr[         ]+a0,mhpmcounter26h
+[      ]+[0-9a-f]+:[   ]+b9b02573[     ]+csrr[         ]+a0,mhpmcounter27h
+[      ]+[0-9a-f]+:[   ]+b9c02573[     ]+csrr[         ]+a0,mhpmcounter28h
+[      ]+[0-9a-f]+:[   ]+b9d02573[     ]+csrr[         ]+a0,mhpmcounter29h
+[      ]+[0-9a-f]+:[   ]+b9e02573[     ]+csrr[         ]+a0,mhpmcounter30h
+[      ]+[0-9a-f]+:[   ]+b9f02573[     ]+csrr[         ]+a0,mhpmcounter31h
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mucounteren
+[      ]+[0-9a-f]+:[   ]+32302573[     ]+csrr[         ]+a0,mhpmevent3
+[      ]+[0-9a-f]+:[   ]+32402573[     ]+csrr[         ]+a0,mhpmevent4
+[      ]+[0-9a-f]+:[   ]+32502573[     ]+csrr[         ]+a0,mhpmevent5
+[      ]+[0-9a-f]+:[   ]+32602573[     ]+csrr[         ]+a0,mhpmevent6
+[      ]+[0-9a-f]+:[   ]+32702573[     ]+csrr[         ]+a0,mhpmevent7
+[      ]+[0-9a-f]+:[   ]+32802573[     ]+csrr[         ]+a0,mhpmevent8
+[      ]+[0-9a-f]+:[   ]+32902573[     ]+csrr[         ]+a0,mhpmevent9
+[      ]+[0-9a-f]+:[   ]+32a02573[     ]+csrr[         ]+a0,mhpmevent10
+[      ]+[0-9a-f]+:[   ]+32b02573[     ]+csrr[         ]+a0,mhpmevent11
+[      ]+[0-9a-f]+:[   ]+32c02573[     ]+csrr[         ]+a0,mhpmevent12
+[      ]+[0-9a-f]+:[   ]+32d02573[     ]+csrr[         ]+a0,mhpmevent13
+[      ]+[0-9a-f]+:[   ]+32e02573[     ]+csrr[         ]+a0,mhpmevent14
+[      ]+[0-9a-f]+:[   ]+32f02573[     ]+csrr[         ]+a0,mhpmevent15
+[      ]+[0-9a-f]+:[   ]+33002573[     ]+csrr[         ]+a0,mhpmevent16
+[      ]+[0-9a-f]+:[   ]+33102573[     ]+csrr[         ]+a0,mhpmevent17
+[      ]+[0-9a-f]+:[   ]+33202573[     ]+csrr[         ]+a0,mhpmevent18
+[      ]+[0-9a-f]+:[   ]+33302573[     ]+csrr[         ]+a0,mhpmevent19
+[      ]+[0-9a-f]+:[   ]+33402573[     ]+csrr[         ]+a0,mhpmevent20
+[      ]+[0-9a-f]+:[   ]+33502573[     ]+csrr[         ]+a0,mhpmevent21
+[      ]+[0-9a-f]+:[   ]+33602573[     ]+csrr[         ]+a0,mhpmevent22
+[      ]+[0-9a-f]+:[   ]+33702573[     ]+csrr[         ]+a0,mhpmevent23
+[      ]+[0-9a-f]+:[   ]+33802573[     ]+csrr[         ]+a0,mhpmevent24
+[      ]+[0-9a-f]+:[   ]+33902573[     ]+csrr[         ]+a0,mhpmevent25
+[      ]+[0-9a-f]+:[   ]+33a02573[     ]+csrr[         ]+a0,mhpmevent26
+[      ]+[0-9a-f]+:[   ]+33b02573[     ]+csrr[         ]+a0,mhpmevent27
+[      ]+[0-9a-f]+:[   ]+33c02573[     ]+csrr[         ]+a0,mhpmevent28
+[      ]+[0-9a-f]+:[   ]+33d02573[     ]+csrr[         ]+a0,mhpmevent29
+[      ]+[0-9a-f]+:[   ]+33e02573[     ]+csrr[         ]+a0,mhpmevent30
+[      ]+[0-9a-f]+:[   ]+33f02573[     ]+csrr[         ]+a0,mhpmevent31
+[      ]+[0-9a-f]+:[   ]+7a002573[     ]+csrr[         ]+a0,tselect
+[      ]+[0-9a-f]+:[   ]+7a102573[     ]+csrr[         ]+a0,tdata1
+[      ]+[0-9a-f]+:[   ]+7a202573[     ]+csrr[         ]+a0,tdata2
+[      ]+[0-9a-f]+:[   ]+7a302573[     ]+csrr[         ]+a0,tdata3
+[      ]+[0-9a-f]+:[   ]+7b002573[     ]+csrr[         ]+a0,dcsr
+[      ]+[0-9a-f]+:[   ]+7b102573[     ]+csrr[         ]+a0,dpc
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch
+[      ]+[0-9a-f]+:[   ]+7b302573[     ]+csrr[         ]+a0,0x7b3
+[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,ubadaddr
+[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,sbadaddr
+[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,sptbr
+[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mbadaddr
+[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mucounteren
+[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch
+[      ]+[0-9a-f]+:[   ]+20002573[     ]+csrr[         ]+a0,hstatus
+[      ]+[0-9a-f]+:[   ]+20202573[     ]+csrr[         ]+a0,hedeleg
+[      ]+[0-9a-f]+:[   ]+20302573[     ]+csrr[         ]+a0,hideleg
+[      ]+[0-9a-f]+:[   ]+20402573[     ]+csrr[         ]+a0,hie
+[      ]+[0-9a-f]+:[   ]+20502573[     ]+csrr[         ]+a0,htvec
+[      ]+[0-9a-f]+:[   ]+24002573[     ]+csrr[         ]+a0,hscratch
+[      ]+[0-9a-f]+:[   ]+24102573[     ]+csrr[         ]+a0,hepc
+[      ]+[0-9a-f]+:[   ]+24202573[     ]+csrr[         ]+a0,hcause
+[      ]+[0-9a-f]+:[   ]+24302573[     ]+csrr[         ]+a0,hbadaddr
+[      ]+[0-9a-f]+:[   ]+24402573[     ]+csrr[         ]+a0,hip
+[      ]+[0-9a-f]+:[   ]+38002573[     ]+csrr[         ]+a0,mbase
+[      ]+[0-9a-f]+:[   ]+38102573[     ]+csrr[         ]+a0,mbound
+[      ]+[0-9a-f]+:[   ]+38202573[     ]+csrr[         ]+a0,mibase
+[      ]+[0-9a-f]+:[   ]+38302573[     ]+csrr[         ]+a0,mibound
+[      ]+[0-9a-f]+:[   ]+38402573[     ]+csrr[         ]+a0,mdbase
+[      ]+[0-9a-f]+:[   ]+38502573[     ]+csrr[         ]+a0,mdbound
+[      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[         ]+a0,mscounteren
+[      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[         ]+a0,mhcounteren
diff --git a/gas/testsuite/gas/riscv/priv-reg.d b/gas/testsuite/gas/riscv/priv-reg.d
deleted file mode 100644 (file)
index 8fc41d2..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-#as: -march=rv32if
-#objdump: -dr
-
-.*:[   ]+file format .*
-
-
-Disassembly of section .text:
-
-0+000 <.text>:
-[      ]+[0-9a-f]+:[   ]+00002573[     ]+csrr[         ]+a0,ustatus
-[      ]+[0-9a-f]+:[   ]+00402573[     ]+csrr[         ]+a0,uie
-[      ]+[0-9a-f]+:[   ]+00502573[     ]+csrr[         ]+a0,utvec
-[      ]+[0-9a-f]+:[   ]+04002573[     ]+csrr[         ]+a0,uscratch
-[      ]+[0-9a-f]+:[   ]+04102573[     ]+csrr[         ]+a0,uepc
-[      ]+[0-9a-f]+:[   ]+04202573[     ]+csrr[         ]+a0,ucause
-[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,utval
-[      ]+[0-9a-f]+:[   ]+04402573[     ]+csrr[         ]+a0,uip
-[      ]+[0-9a-f]+:[   ]+00102573[     ]+frflags[      ]+a0
-[      ]+[0-9a-f]+:[   ]+00202573[     ]+frrm[         ]+a0
-[      ]+[0-9a-f]+:[   ]+00302573[     ]+frcsr[        ]+a0
-[      ]+[0-9a-f]+:[   ]+c0002573[     ]+rdcycle[      ]+a0
-[      ]+[0-9a-f]+:[   ]+c0102573[     ]+rdtime[       ]+a0
-[      ]+[0-9a-f]+:[   ]+c0202573[     ]+rdinstret[    ]+a0
-[      ]+[0-9a-f]+:[   ]+c0302573[     ]+csrr[         ]+a0,hpmcounter3
-[      ]+[0-9a-f]+:[   ]+c0402573[     ]+csrr[         ]+a0,hpmcounter4
-[      ]+[0-9a-f]+:[   ]+c0502573[     ]+csrr[         ]+a0,hpmcounter5
-[      ]+[0-9a-f]+:[   ]+c0602573[     ]+csrr[         ]+a0,hpmcounter6
-[      ]+[0-9a-f]+:[   ]+c0702573[     ]+csrr[         ]+a0,hpmcounter7
-[      ]+[0-9a-f]+:[   ]+c0802573[     ]+csrr[         ]+a0,hpmcounter8
-[      ]+[0-9a-f]+:[   ]+c0902573[     ]+csrr[         ]+a0,hpmcounter9
-[      ]+[0-9a-f]+:[   ]+c0a02573[     ]+csrr[         ]+a0,hpmcounter10
-[      ]+[0-9a-f]+:[   ]+c0b02573[     ]+csrr[         ]+a0,hpmcounter11
-[      ]+[0-9a-f]+:[   ]+c0c02573[     ]+csrr[         ]+a0,hpmcounter12
-[      ]+[0-9a-f]+:[   ]+c0d02573[     ]+csrr[         ]+a0,hpmcounter13
-[      ]+[0-9a-f]+:[   ]+c0e02573[     ]+csrr[         ]+a0,hpmcounter14
-[      ]+[0-9a-f]+:[   ]+c0f02573[     ]+csrr[         ]+a0,hpmcounter15
-[      ]+[0-9a-f]+:[   ]+c1002573[     ]+csrr[         ]+a0,hpmcounter16
-[      ]+[0-9a-f]+:[   ]+c1102573[     ]+csrr[         ]+a0,hpmcounter17
-[      ]+[0-9a-f]+:[   ]+c1202573[     ]+csrr[         ]+a0,hpmcounter18
-[      ]+[0-9a-f]+:[   ]+c1302573[     ]+csrr[         ]+a0,hpmcounter19
-[      ]+[0-9a-f]+:[   ]+c1402573[     ]+csrr[         ]+a0,hpmcounter20
-[      ]+[0-9a-f]+:[   ]+c1502573[     ]+csrr[         ]+a0,hpmcounter21
-[      ]+[0-9a-f]+:[   ]+c1602573[     ]+csrr[         ]+a0,hpmcounter22
-[      ]+[0-9a-f]+:[   ]+c1702573[     ]+csrr[         ]+a0,hpmcounter23
-[      ]+[0-9a-f]+:[   ]+c1802573[     ]+csrr[         ]+a0,hpmcounter24
-[      ]+[0-9a-f]+:[   ]+c1902573[     ]+csrr[         ]+a0,hpmcounter25
-[      ]+[0-9a-f]+:[   ]+c1a02573[     ]+csrr[         ]+a0,hpmcounter26
-[      ]+[0-9a-f]+:[   ]+c1b02573[     ]+csrr[         ]+a0,hpmcounter27
-[      ]+[0-9a-f]+:[   ]+c1c02573[     ]+csrr[         ]+a0,hpmcounter28
-[      ]+[0-9a-f]+:[   ]+c1d02573[     ]+csrr[         ]+a0,hpmcounter29
-[      ]+[0-9a-f]+:[   ]+c1e02573[     ]+csrr[         ]+a0,hpmcounter30
-[      ]+[0-9a-f]+:[   ]+c1f02573[     ]+csrr[         ]+a0,hpmcounter31
-[      ]+[0-9a-f]+:[   ]+c8002573[     ]+rdcycleh[     ]+a0
-[      ]+[0-9a-f]+:[   ]+c8102573[     ]+rdtimeh[      ]+a0
-[      ]+[0-9a-f]+:[   ]+c8202573[     ]+rdinstreth[   ]+a0
-[      ]+[0-9a-f]+:[   ]+c8302573[     ]+csrr[         ]+a0,hpmcounter3h
-[      ]+[0-9a-f]+:[   ]+c8402573[     ]+csrr[         ]+a0,hpmcounter4h
-[      ]+[0-9a-f]+:[   ]+c8502573[     ]+csrr[         ]+a0,hpmcounter5h
-[      ]+[0-9a-f]+:[   ]+c8602573[     ]+csrr[         ]+a0,hpmcounter6h
-[      ]+[0-9a-f]+:[   ]+c8702573[     ]+csrr[         ]+a0,hpmcounter7h
-[      ]+[0-9a-f]+:[   ]+c8802573[     ]+csrr[         ]+a0,hpmcounter8h
-[      ]+[0-9a-f]+:[   ]+c8902573[     ]+csrr[         ]+a0,hpmcounter9h
-[      ]+[0-9a-f]+:[   ]+c8a02573[     ]+csrr[         ]+a0,hpmcounter10h
-[      ]+[0-9a-f]+:[   ]+c8b02573[     ]+csrr[         ]+a0,hpmcounter11h
-[      ]+[0-9a-f]+:[   ]+c8c02573[     ]+csrr[         ]+a0,hpmcounter12h
-[      ]+[0-9a-f]+:[   ]+c8d02573[     ]+csrr[         ]+a0,hpmcounter13h
-[      ]+[0-9a-f]+:[   ]+c8e02573[     ]+csrr[         ]+a0,hpmcounter14h
-[      ]+[0-9a-f]+:[   ]+c8f02573[     ]+csrr[         ]+a0,hpmcounter15h
-[      ]+[0-9a-f]+:[   ]+c9002573[     ]+csrr[         ]+a0,hpmcounter16h
-[      ]+[0-9a-f]+:[   ]+c9102573[     ]+csrr[         ]+a0,hpmcounter17h
-[      ]+[0-9a-f]+:[   ]+c9202573[     ]+csrr[         ]+a0,hpmcounter18h
-[      ]+[0-9a-f]+:[   ]+c9302573[     ]+csrr[         ]+a0,hpmcounter19h
-[      ]+[0-9a-f]+:[   ]+c9402573[     ]+csrr[         ]+a0,hpmcounter20h
-[      ]+[0-9a-f]+:[   ]+c9502573[     ]+csrr[         ]+a0,hpmcounter21h
-[      ]+[0-9a-f]+:[   ]+c9602573[     ]+csrr[         ]+a0,hpmcounter22h
-[      ]+[0-9a-f]+:[   ]+c9702573[     ]+csrr[         ]+a0,hpmcounter23h
-[      ]+[0-9a-f]+:[   ]+c9802573[     ]+csrr[         ]+a0,hpmcounter24h
-[      ]+[0-9a-f]+:[   ]+c9902573[     ]+csrr[         ]+a0,hpmcounter25h
-[      ]+[0-9a-f]+:[   ]+c9a02573[     ]+csrr[         ]+a0,hpmcounter26h
-[      ]+[0-9a-f]+:[   ]+c9b02573[     ]+csrr[         ]+a0,hpmcounter27h
-[      ]+[0-9a-f]+:[   ]+c9c02573[     ]+csrr[         ]+a0,hpmcounter28h
-[      ]+[0-9a-f]+:[   ]+c9d02573[     ]+csrr[         ]+a0,hpmcounter29h
-[      ]+[0-9a-f]+:[   ]+c9e02573[     ]+csrr[         ]+a0,hpmcounter30h
-[      ]+[0-9a-f]+:[   ]+c9f02573[     ]+csrr[         ]+a0,hpmcounter31h
-[      ]+[0-9a-f]+:[   ]+10002573[     ]+csrr[         ]+a0,sstatus
-[      ]+[0-9a-f]+:[   ]+10202573[     ]+csrr[         ]+a0,sedeleg
-[      ]+[0-9a-f]+:[   ]+10302573[     ]+csrr[         ]+a0,sideleg
-[      ]+[0-9a-f]+:[   ]+10402573[     ]+csrr[         ]+a0,sie
-[      ]+[0-9a-f]+:[   ]+10502573[     ]+csrr[         ]+a0,stvec
-[      ]+[0-9a-f]+:[   ]+10602573[     ]+csrr[         ]+a0,scounteren
-[      ]+[0-9a-f]+:[   ]+14002573[     ]+csrr[         ]+a0,sscratch
-[      ]+[0-9a-f]+:[   ]+14102573[     ]+csrr[         ]+a0,sepc
-[      ]+[0-9a-f]+:[   ]+14202573[     ]+csrr[         ]+a0,scause
-[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,stval
-[      ]+[0-9a-f]+:[   ]+14402573[     ]+csrr[         ]+a0,sip
-[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,satp
-[      ]+[0-9a-f]+:[   ]+f1102573[     ]+csrr[         ]+a0,mvendorid
-[      ]+[0-9a-f]+:[   ]+f1202573[     ]+csrr[         ]+a0,marchid
-[      ]+[0-9a-f]+:[   ]+f1302573[     ]+csrr[         ]+a0,mimpid
-[      ]+[0-9a-f]+:[   ]+f1402573[     ]+csrr[         ]+a0,mhartid
-[      ]+[0-9a-f]+:[   ]+30002573[     ]+csrr[         ]+a0,mstatus
-[      ]+[0-9a-f]+:[   ]+30102573[     ]+csrr[         ]+a0,misa
-[      ]+[0-9a-f]+:[   ]+30202573[     ]+csrr[         ]+a0,medeleg
-[      ]+[0-9a-f]+:[   ]+30302573[     ]+csrr[         ]+a0,mideleg
-[      ]+[0-9a-f]+:[   ]+30402573[     ]+csrr[         ]+a0,mie
-[      ]+[0-9a-f]+:[   ]+30502573[     ]+csrr[         ]+a0,mtvec
-[      ]+[0-9a-f]+:[   ]+30602573[     ]+csrr[         ]+a0,mcounteren
-[      ]+[0-9a-f]+:[   ]+34002573[     ]+csrr[         ]+a0,mscratch
-[      ]+[0-9a-f]+:[   ]+34102573[     ]+csrr[         ]+a0,mepc
-[      ]+[0-9a-f]+:[   ]+34202573[     ]+csrr[         ]+a0,mcause
-[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mtval
-[      ]+[0-9a-f]+:[   ]+34402573[     ]+csrr[         ]+a0,mip
-[      ]+[0-9a-f]+:[   ]+3a002573[     ]+csrr[         ]+a0,pmpcfg0
-[      ]+[0-9a-f]+:[   ]+3a102573[     ]+csrr[         ]+a0,pmpcfg1
-[      ]+[0-9a-f]+:[   ]+3a202573[     ]+csrr[         ]+a0,pmpcfg2
-[      ]+[0-9a-f]+:[   ]+3a302573[     ]+csrr[         ]+a0,pmpcfg3
-[      ]+[0-9a-f]+:[   ]+3b002573[     ]+csrr[         ]+a0,pmpaddr0
-[      ]+[0-9a-f]+:[   ]+3b102573[     ]+csrr[         ]+a0,pmpaddr1
-[      ]+[0-9a-f]+:[   ]+3b202573[     ]+csrr[         ]+a0,pmpaddr2
-[      ]+[0-9a-f]+:[   ]+3b302573[     ]+csrr[         ]+a0,pmpaddr3
-[      ]+[0-9a-f]+:[   ]+3b402573[     ]+csrr[         ]+a0,pmpaddr4
-[      ]+[0-9a-f]+:[   ]+3b502573[     ]+csrr[         ]+a0,pmpaddr5
-[      ]+[0-9a-f]+:[   ]+3b602573[     ]+csrr[         ]+a0,pmpaddr6
-[      ]+[0-9a-f]+:[   ]+3b702573[     ]+csrr[         ]+a0,pmpaddr7
-[      ]+[0-9a-f]+:[   ]+3b802573[     ]+csrr[         ]+a0,pmpaddr8
-[      ]+[0-9a-f]+:[   ]+3b902573[     ]+csrr[         ]+a0,pmpaddr9
-[      ]+[0-9a-f]+:[   ]+3ba02573[     ]+csrr[         ]+a0,pmpaddr10
-[      ]+[0-9a-f]+:[   ]+3bb02573[     ]+csrr[         ]+a0,pmpaddr11
-[      ]+[0-9a-f]+:[   ]+3bc02573[     ]+csrr[         ]+a0,pmpaddr12
-[      ]+[0-9a-f]+:[   ]+3bd02573[     ]+csrr[         ]+a0,pmpaddr13
-[      ]+[0-9a-f]+:[   ]+3be02573[     ]+csrr[         ]+a0,pmpaddr14
-[      ]+[0-9a-f]+:[   ]+3bf02573[     ]+csrr[         ]+a0,pmpaddr15
-[      ]+[0-9a-f]+:[   ]+b0002573[     ]+csrr[         ]+a0,mcycle
-[      ]+[0-9a-f]+:[   ]+b0202573[     ]+csrr[         ]+a0,minstret
-[      ]+[0-9a-f]+:[   ]+b0302573[     ]+csrr[         ]+a0,mhpmcounter3
-[      ]+[0-9a-f]+:[   ]+b0402573[     ]+csrr[         ]+a0,mhpmcounter4
-[      ]+[0-9a-f]+:[   ]+b0502573[     ]+csrr[         ]+a0,mhpmcounter5
-[      ]+[0-9a-f]+:[   ]+b0602573[     ]+csrr[         ]+a0,mhpmcounter6
-[      ]+[0-9a-f]+:[   ]+b0702573[     ]+csrr[         ]+a0,mhpmcounter7
-[      ]+[0-9a-f]+:[   ]+b0802573[     ]+csrr[         ]+a0,mhpmcounter8
-[      ]+[0-9a-f]+:[   ]+b0902573[     ]+csrr[         ]+a0,mhpmcounter9
-[      ]+[0-9a-f]+:[   ]+b0a02573[     ]+csrr[         ]+a0,mhpmcounter10
-[      ]+[0-9a-f]+:[   ]+b0b02573[     ]+csrr[         ]+a0,mhpmcounter11
-[      ]+[0-9a-f]+:[   ]+b0c02573[     ]+csrr[         ]+a0,mhpmcounter12
-[      ]+[0-9a-f]+:[   ]+b0d02573[     ]+csrr[         ]+a0,mhpmcounter13
-[      ]+[0-9a-f]+:[   ]+b0e02573[     ]+csrr[         ]+a0,mhpmcounter14
-[      ]+[0-9a-f]+:[   ]+b0f02573[     ]+csrr[         ]+a0,mhpmcounter15
-[      ]+[0-9a-f]+:[   ]+b1002573[     ]+csrr[         ]+a0,mhpmcounter16
-[      ]+[0-9a-f]+:[   ]+b1102573[     ]+csrr[         ]+a0,mhpmcounter17
-[      ]+[0-9a-f]+:[   ]+b1202573[     ]+csrr[         ]+a0,mhpmcounter18
-[      ]+[0-9a-f]+:[   ]+b1302573[     ]+csrr[         ]+a0,mhpmcounter19
-[      ]+[0-9a-f]+:[   ]+b1402573[     ]+csrr[         ]+a0,mhpmcounter20
-[      ]+[0-9a-f]+:[   ]+b1502573[     ]+csrr[         ]+a0,mhpmcounter21
-[      ]+[0-9a-f]+:[   ]+b1602573[     ]+csrr[         ]+a0,mhpmcounter22
-[      ]+[0-9a-f]+:[   ]+b1702573[     ]+csrr[         ]+a0,mhpmcounter23
-[      ]+[0-9a-f]+:[   ]+b1802573[     ]+csrr[         ]+a0,mhpmcounter24
-[      ]+[0-9a-f]+:[   ]+b1902573[     ]+csrr[         ]+a0,mhpmcounter25
-[      ]+[0-9a-f]+:[   ]+b1a02573[     ]+csrr[         ]+a0,mhpmcounter26
-[      ]+[0-9a-f]+:[   ]+b1b02573[     ]+csrr[         ]+a0,mhpmcounter27
-[      ]+[0-9a-f]+:[   ]+b1c02573[     ]+csrr[         ]+a0,mhpmcounter28
-[      ]+[0-9a-f]+:[   ]+b1d02573[     ]+csrr[         ]+a0,mhpmcounter29
-[      ]+[0-9a-f]+:[   ]+b1e02573[     ]+csrr[         ]+a0,mhpmcounter30
-[      ]+[0-9a-f]+:[   ]+b1f02573[     ]+csrr[         ]+a0,mhpmcounter31
-[      ]+[0-9a-f]+:[   ]+b8002573[     ]+csrr[         ]+a0,mcycleh
-[      ]+[0-9a-f]+:[   ]+b8202573[     ]+csrr[         ]+a0,minstreth
-[      ]+[0-9a-f]+:[   ]+b8302573[     ]+csrr[         ]+a0,mhpmcounter3h
-[      ]+[0-9a-f]+:[   ]+b8402573[     ]+csrr[         ]+a0,mhpmcounter4h
-[      ]+[0-9a-f]+:[   ]+b8502573[     ]+csrr[         ]+a0,mhpmcounter5h
-[      ]+[0-9a-f]+:[   ]+b8602573[     ]+csrr[         ]+a0,mhpmcounter6h
-[      ]+[0-9a-f]+:[   ]+b8702573[     ]+csrr[         ]+a0,mhpmcounter7h
-[      ]+[0-9a-f]+:[   ]+b8802573[     ]+csrr[         ]+a0,mhpmcounter8h
-[      ]+[0-9a-f]+:[   ]+b8902573[     ]+csrr[         ]+a0,mhpmcounter9h
-[      ]+[0-9a-f]+:[   ]+b8a02573[     ]+csrr[         ]+a0,mhpmcounter10h
-[      ]+[0-9a-f]+:[   ]+b8b02573[     ]+csrr[         ]+a0,mhpmcounter11h
-[      ]+[0-9a-f]+:[   ]+b8c02573[     ]+csrr[         ]+a0,mhpmcounter12h
-[      ]+[0-9a-f]+:[   ]+b8d02573[     ]+csrr[         ]+a0,mhpmcounter13h
-[      ]+[0-9a-f]+:[   ]+b8e02573[     ]+csrr[         ]+a0,mhpmcounter14h
-[      ]+[0-9a-f]+:[   ]+b8f02573[     ]+csrr[         ]+a0,mhpmcounter15h
-[      ]+[0-9a-f]+:[   ]+b9002573[     ]+csrr[         ]+a0,mhpmcounter16h
-[      ]+[0-9a-f]+:[   ]+b9102573[     ]+csrr[         ]+a0,mhpmcounter17h
-[      ]+[0-9a-f]+:[   ]+b9202573[     ]+csrr[         ]+a0,mhpmcounter18h
-[      ]+[0-9a-f]+:[   ]+b9302573[     ]+csrr[         ]+a0,mhpmcounter19h
-[      ]+[0-9a-f]+:[   ]+b9402573[     ]+csrr[         ]+a0,mhpmcounter20h
-[      ]+[0-9a-f]+:[   ]+b9502573[     ]+csrr[         ]+a0,mhpmcounter21h
-[      ]+[0-9a-f]+:[   ]+b9602573[     ]+csrr[         ]+a0,mhpmcounter22h
-[      ]+[0-9a-f]+:[   ]+b9702573[     ]+csrr[         ]+a0,mhpmcounter23h
-[      ]+[0-9a-f]+:[   ]+b9802573[     ]+csrr[         ]+a0,mhpmcounter24h
-[      ]+[0-9a-f]+:[   ]+b9902573[     ]+csrr[         ]+a0,mhpmcounter25h
-[      ]+[0-9a-f]+:[   ]+b9a02573[     ]+csrr[         ]+a0,mhpmcounter26h
-[      ]+[0-9a-f]+:[   ]+b9b02573[     ]+csrr[         ]+a0,mhpmcounter27h
-[      ]+[0-9a-f]+:[   ]+b9c02573[     ]+csrr[         ]+a0,mhpmcounter28h
-[      ]+[0-9a-f]+:[   ]+b9d02573[     ]+csrr[         ]+a0,mhpmcounter29h
-[      ]+[0-9a-f]+:[   ]+b9e02573[     ]+csrr[         ]+a0,mhpmcounter30h
-[      ]+[0-9a-f]+:[   ]+b9f02573[     ]+csrr[         ]+a0,mhpmcounter31h
-[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mcountinhibit
-[      ]+[0-9a-f]+:[   ]+32302573[     ]+csrr[         ]+a0,mhpmevent3
-[      ]+[0-9a-f]+:[   ]+32402573[     ]+csrr[         ]+a0,mhpmevent4
-[      ]+[0-9a-f]+:[   ]+32502573[     ]+csrr[         ]+a0,mhpmevent5
-[      ]+[0-9a-f]+:[   ]+32602573[     ]+csrr[         ]+a0,mhpmevent6
-[      ]+[0-9a-f]+:[   ]+32702573[     ]+csrr[         ]+a0,mhpmevent7
-[      ]+[0-9a-f]+:[   ]+32802573[     ]+csrr[         ]+a0,mhpmevent8
-[      ]+[0-9a-f]+:[   ]+32902573[     ]+csrr[         ]+a0,mhpmevent9
-[      ]+[0-9a-f]+:[   ]+32a02573[     ]+csrr[         ]+a0,mhpmevent10
-[      ]+[0-9a-f]+:[   ]+32b02573[     ]+csrr[         ]+a0,mhpmevent11
-[      ]+[0-9a-f]+:[   ]+32c02573[     ]+csrr[         ]+a0,mhpmevent12
-[      ]+[0-9a-f]+:[   ]+32d02573[     ]+csrr[         ]+a0,mhpmevent13
-[      ]+[0-9a-f]+:[   ]+32e02573[     ]+csrr[         ]+a0,mhpmevent14
-[      ]+[0-9a-f]+:[   ]+32f02573[     ]+csrr[         ]+a0,mhpmevent15
-[      ]+[0-9a-f]+:[   ]+33002573[     ]+csrr[         ]+a0,mhpmevent16
-[      ]+[0-9a-f]+:[   ]+33102573[     ]+csrr[         ]+a0,mhpmevent17
-[      ]+[0-9a-f]+:[   ]+33202573[     ]+csrr[         ]+a0,mhpmevent18
-[      ]+[0-9a-f]+:[   ]+33302573[     ]+csrr[         ]+a0,mhpmevent19
-[      ]+[0-9a-f]+:[   ]+33402573[     ]+csrr[         ]+a0,mhpmevent20
-[      ]+[0-9a-f]+:[   ]+33502573[     ]+csrr[         ]+a0,mhpmevent21
-[      ]+[0-9a-f]+:[   ]+33602573[     ]+csrr[         ]+a0,mhpmevent22
-[      ]+[0-9a-f]+:[   ]+33702573[     ]+csrr[         ]+a0,mhpmevent23
-[      ]+[0-9a-f]+:[   ]+33802573[     ]+csrr[         ]+a0,mhpmevent24
-[      ]+[0-9a-f]+:[   ]+33902573[     ]+csrr[         ]+a0,mhpmevent25
-[      ]+[0-9a-f]+:[   ]+33a02573[     ]+csrr[         ]+a0,mhpmevent26
-[      ]+[0-9a-f]+:[   ]+33b02573[     ]+csrr[         ]+a0,mhpmevent27
-[      ]+[0-9a-f]+:[   ]+33c02573[     ]+csrr[         ]+a0,mhpmevent28
-[      ]+[0-9a-f]+:[   ]+33d02573[     ]+csrr[         ]+a0,mhpmevent29
-[      ]+[0-9a-f]+:[   ]+33e02573[     ]+csrr[         ]+a0,mhpmevent30
-[      ]+[0-9a-f]+:[   ]+33f02573[     ]+csrr[         ]+a0,mhpmevent31
-[      ]+[0-9a-f]+:[   ]+7a002573[     ]+csrr[         ]+a0,tselect
-[      ]+[0-9a-f]+:[   ]+7a102573[     ]+csrr[         ]+a0,tdata1
-[      ]+[0-9a-f]+:[   ]+7a202573[     ]+csrr[         ]+a0,tdata2
-[      ]+[0-9a-f]+:[   ]+7a302573[     ]+csrr[         ]+a0,tdata3
-[      ]+[0-9a-f]+:[   ]+7b002573[     ]+csrr[         ]+a0,dcsr
-[      ]+[0-9a-f]+:[   ]+7b102573[     ]+csrr[         ]+a0,dpc
-[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch0
-[      ]+[0-9a-f]+:[   ]+7b302573[     ]+csrr[         ]+a0,dscratch1
-[      ]+[0-9a-f]+:[   ]+04302573[     ]+csrr[         ]+a0,utval
-[      ]+[0-9a-f]+:[   ]+14302573[     ]+csrr[         ]+a0,stval
-[      ]+[0-9a-f]+:[   ]+18002573[     ]+csrr[         ]+a0,satp
-[      ]+[0-9a-f]+:[   ]+34302573[     ]+csrr[         ]+a0,mtval
-[      ]+[0-9a-f]+:[   ]+32002573[     ]+csrr[         ]+a0,mcountinhibit
-[      ]+[0-9a-f]+:[   ]+7b202573[     ]+csrr[         ]+a0,dscratch0
-[      ]+[0-9a-f]+:[   ]+20002573[     ]+csrr[         ]+a0,hstatus
-[      ]+[0-9a-f]+:[   ]+20202573[     ]+csrr[         ]+a0,hedeleg
-[      ]+[0-9a-f]+:[   ]+20302573[     ]+csrr[         ]+a0,hideleg
-[      ]+[0-9a-f]+:[   ]+20402573[     ]+csrr[         ]+a0,hie
-[      ]+[0-9a-f]+:[   ]+20502573[     ]+csrr[         ]+a0,htvec
-[      ]+[0-9a-f]+:[   ]+24002573[     ]+csrr[         ]+a0,hscratch
-[      ]+[0-9a-f]+:[   ]+24102573[     ]+csrr[         ]+a0,hepc
-[      ]+[0-9a-f]+:[   ]+24202573[     ]+csrr[         ]+a0,hcause
-[      ]+[0-9a-f]+:[   ]+24302573[     ]+csrr[         ]+a0,hbadaddr
-[      ]+[0-9a-f]+:[   ]+24402573[     ]+csrr[         ]+a0,hip
-[      ]+[0-9a-f]+:[   ]+38002573[     ]+csrr[         ]+a0,mbase
-[      ]+[0-9a-f]+:[   ]+38102573[     ]+csrr[         ]+a0,mbound
-[      ]+[0-9a-f]+:[   ]+38202573[     ]+csrr[         ]+a0,mibase
-[      ]+[0-9a-f]+:[   ]+38302573[     ]+csrr[         ]+a0,mibound
-[      ]+[0-9a-f]+:[   ]+38402573[     ]+csrr[         ]+a0,mdbase
-[      ]+[0-9a-f]+:[   ]+38502573[     ]+csrr[         ]+a0,mdbound
-[      ]+[0-9a-f]+:[   ]+32102573[     ]+csrr[         ]+a0,mscounteren
-[      ]+[0-9a-f]+:[   ]+32202573[     ]+csrr[         ]+a0,mhcounteren
index dae6520f1f854cabadc4282ec75a6225a263c4ad..4b0dd025f0badf73a1a7fcf73111a3bef6235f01 100644 (file)
@@ -240,7 +240,7 @@ static struct riscv_register_feature riscv_csr_feature =
 {
  "org.gnu.gdb.riscv.csr",
  {
 {
  "org.gnu.gdb.riscv.csr",
  {
-#define DECLARE_CSR(NAME,VALUE,CLASS) \
+#define DECLARE_CSR(NAME,VALUE,CLASS,DEFINE_VER,ABORT_VER) \
   { RISCV_ ## VALUE ## _REGNUM, { # NAME }, false },
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
   { RISCV_ ## VALUE ## _REGNUM, { # NAME }, false },
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
@@ -498,7 +498,7 @@ riscv_register_name (struct gdbarch *gdbarch, int regnum)
 
   if (regnum >= RISCV_FIRST_CSR_REGNUM && regnum <= RISCV_LAST_CSR_REGNUM)
     {
 
   if (regnum >= RISCV_FIRST_CSR_REGNUM && regnum <= RISCV_LAST_CSR_REGNUM)
     {
-#define DECLARE_CSR(NAME,VALUE,CLASS) \
+#define DECLARE_CSR(NAME,VALUE,CLASS,DEFINE_VER,ABORT_VER) \
       case RISCV_ ## VALUE ## _REGNUM: return # NAME;
 
       switch (regnum)
       case RISCV_ ## VALUE ## _REGNUM: return # NAME;
 
       switch (regnum)
@@ -828,7 +828,7 @@ riscv_is_regnum_a_named_csr (int regnum)
 
   switch (regnum)
     {
 
   switch (regnum)
     {
-#define DECLARE_CSR(name, num, class) case RISCV_ ## num ## _REGNUM:
+#define DECLARE_CSR(name, num, class, define_ver, abort_ver) case RISCV_ ## num ## _REGNUM:
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
       return true;
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
       return true;
index 90bae0810a85a46d0ca1071acb439890ba7050ab..e415fb4a7a1bac1545f7d1dcce6c095ff55eb995 100644 (file)
@@ -44,7 +44,7 @@ enum
   RISCV_LAST_FP_REGNUM = 64,   /* Last Floating Point Register */
 
   RISCV_FIRST_CSR_REGNUM = 65,  /* First CSR */
   RISCV_LAST_FP_REGNUM = 64,   /* Last Floating Point Register */
 
   RISCV_FIRST_CSR_REGNUM = 65,  /* First CSR */
-#define DECLARE_CSR(name, num, class) \
+#define DECLARE_CSR(name, num, class, define_version, abort_version) \
   RISCV_ ## num ## _REGNUM = RISCV_FIRST_CSR_REGNUM + num,
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
   RISCV_ ## num ## _REGNUM = RISCV_FIRST_CSR_REGNUM + num,
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
index 9f2599f81c4fc8e49abba5ae48d0b00eaf0540c1..c309780544e8ef18855eea631b915a108b6497fc 100644 (file)
@@ -1,3 +1,23 @@
+2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
+
+       * opcode/riscv.h: Include "bfd.h" to support bfd_boolean.
+       (enum riscv_isa_spec_class): New enum class.  All supported ISA spec
+       belong to one of the class
+       (struct riscv_ext_version): New structure holds version information
+       for the specific ISA.
+       * opcode/riscv-opc.h (DECLARE_CSR): There are two version information,
+       define_version and abort_version.  The define_version means which
+       privilege spec is started to define the CSR, and the abort_version
+       means which privilege spec is started to abort the CSR.  If the CSR is
+       valid for the newest spec, then the abort_version should be
+       PRIV_SPEC_CLASS_DRAFT.
+       (DECLARE_CSR_ALIAS): Same as DECLARE_CSR, but only for the obselete CSR.
+       * opcode/riscv.h (enum riscv_priv_spec_class): New enum class.  Define
+       the current supported privilege spec versions.
+       (struct riscv_csr_extra): Add new fields to store more information
+       about the CSR.  We use these information to find the suitable CSR
+       address when user choosing a specific privilege spec.
+
 2020-05-19  Alexander Fedotov  <alfedotov@gmail.com>
 
        PR 25992
 2020-05-19  Alexander Fedotov  <alfedotov@gmail.com>
 
        PR 25992
index fe00bb6b5627f005da8eecbb461653e7951c70d6..a6a5de388736c3300b85d91766653ec0079c7f3a 100644 (file)
 #define CSR_SIDELEG 0x103
 #define CSR_SIE 0x104
 #define CSR_STVEC 0x105
 #define CSR_SIDELEG 0x103
 #define CSR_SIE 0x104
 #define CSR_STVEC 0x105
-/* scounteren is present int priv spec 1.10.  */
 #define CSR_SCOUNTEREN 0x106
 #define CSR_SSCRATCH 0x140
 #define CSR_SEPC 0x141
 #define CSR_SCOUNTEREN 0x106
 #define CSR_SSCRATCH 0x140
 #define CSR_SEPC 0x141
 #define CSR_MIMPID 0xf13
 #define CSR_MHARTID 0xf14
 #define CSR_MSTATUS 0x300
 #define CSR_MIMPID 0xf13
 #define CSR_MHARTID 0xf14
 #define CSR_MSTATUS 0x300
-/* misa is 0xf10 in 1.9, but 0x301 in 1.9.1.  */
 #define CSR_MISA 0x301
 #define CSR_MEDELEG 0x302
 #define CSR_MIDELEG 0x303
 #define CSR_MIE 0x304
 #define CSR_MTVEC 0x305
 #define CSR_MISA 0x301
 #define CSR_MEDELEG 0x302
 #define CSR_MIDELEG 0x303
 #define CSR_MIE 0x304
 #define CSR_MTVEC 0x305
-/* mcounteren is present in priv spec 1.10.  */
 #define CSR_MCOUNTEREN 0x306
 #define CSR_MSCRATCH 0x340
 #define CSR_MEPC 0x341
 #define CSR_MCAUSE 0x342
 #define CSR_MTVAL 0x343
 #define CSR_MIP 0x344
 #define CSR_MCOUNTEREN 0x306
 #define CSR_MSCRATCH 0x340
 #define CSR_MEPC 0x341
 #define CSR_MCAUSE 0x342
 #define CSR_MTVAL 0x343
 #define CSR_MIP 0x344
-/* pmpcfg0 to pmpcfg3, pmpaddr0 to pmpaddr15 are present in priv spec 1.10.  */
 #define CSR_PMPCFG0 0x3a0
 #define CSR_PMPCFG1 0x3a1
 #define CSR_PMPCFG2 0x3a2
 #define CSR_PMPCFG0 0x3a0
 #define CSR_PMPCFG1 0x3a1
 #define CSR_PMPCFG2 0x3a2
 #define CSR_MHPMCOUNTER29H 0xb9d
 #define CSR_MHPMCOUNTER30H 0xb9e
 #define CSR_MHPMCOUNTER31H 0xb9f
 #define CSR_MHPMCOUNTER29H 0xb9d
 #define CSR_MHPMCOUNTER30H 0xb9e
 #define CSR_MHPMCOUNTER31H 0xb9f
-/* mcountinhibit is present in priv spec 1.11.  */
 #define CSR_MCOUNTINHIBIT 0x320
 #define CSR_MHPMEVENT3 0x323
 #define CSR_MHPMEVENT4 0x324
 #define CSR_MCOUNTINHIBIT 0x320
 #define CSR_MHPMEVENT3 0x323
 #define CSR_MHPMEVENT4 0x324
 #define CSR_TDATA3 0x7a3
 #define CSR_DCSR 0x7b0
 #define CSR_DPC 0x7b1
 #define CSR_TDATA3 0x7a3
 #define CSR_DCSR 0x7b0
 #define CSR_DPC 0x7b1
-/* dscratch0 and dscratch1 are present in priv spec 1.11.  */
 #define CSR_DSCRATCH0 0x7b2
 #define CSR_DSCRATCH1 0x7b3
 #define CSR_DSCRATCH0 0x7b2
 #define CSR_DSCRATCH1 0x7b3
-/* These registers are present in priv spec 1.9.1, but are dropped in 1.10.  */
 #define CSR_HSTATUS 0x200
 #define CSR_HEDELEG 0x202
 #define CSR_HIDELEG 0x203
 #define CSR_HSTATUS 0x200
 #define CSR_HEDELEG 0x202
 #define CSR_HIDELEG 0x203
@@ -1124,262 +1117,256 @@ DECLARE_INSN(custom3_rd_rs1, MATCH_CUSTOM3_RD_RS1, MASK_CUSTOM3_RD_RS1)
 DECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2, MASK_CUSTOM3_RD_RS1_RS2)
 #endif
 #ifdef DECLARE_CSR
 DECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2, MASK_CUSTOM3_RD_RS1_RS2)
 #endif
 #ifdef DECLARE_CSR
-DECLARE_CSR(ustatus, CSR_USTATUS, CSR_CLASS_I)
-DECLARE_CSR(uie, CSR_UIE, CSR_CLASS_I)
-DECLARE_CSR(utvec, CSR_UTVEC, CSR_CLASS_I)
-DECLARE_CSR(uscratch, CSR_USCRATCH, CSR_CLASS_I)
-DECLARE_CSR(uepc, CSR_UEPC, CSR_CLASS_I)
-DECLARE_CSR(ucause, CSR_UCAUSE, CSR_CLASS_I)
-DECLARE_CSR(utval, CSR_UTVAL, CSR_CLASS_I)
-DECLARE_CSR(uip, CSR_UIP, CSR_CLASS_I)
-DECLARE_CSR(fflags, CSR_FFLAGS, CSR_CLASS_F)
-DECLARE_CSR(frm, CSR_FRM, CSR_CLASS_F)
-DECLARE_CSR(fcsr, CSR_FCSR, CSR_CLASS_F)
-DECLARE_CSR(cycle, CSR_CYCLE, CSR_CLASS_I)
-DECLARE_CSR(time, CSR_TIME, CSR_CLASS_I)
-DECLARE_CSR(instret, CSR_INSTRET, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30, CSR_CLASS_I)
-DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31, CSR_CLASS_I)
-DECLARE_CSR(cycleh, CSR_CYCLEH, CSR_CLASS_I_32)
-DECLARE_CSR(timeh, CSR_TIMEH, CSR_CLASS_I_32)
-DECLARE_CSR(instreth, CSR_INSTRETH, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H, CSR_CLASS_I_32)
-DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H, CSR_CLASS_I_32)
-DECLARE_CSR(sstatus, CSR_SSTATUS, CSR_CLASS_I)
-DECLARE_CSR(sedeleg, CSR_SEDELEG, CSR_CLASS_I)
-DECLARE_CSR(sideleg, CSR_SIDELEG, CSR_CLASS_I)
-DECLARE_CSR(sie, CSR_SIE, CSR_CLASS_I)
-DECLARE_CSR(stvec, CSR_STVEC, CSR_CLASS_I)
-DECLARE_CSR(scounteren, CSR_SCOUNTEREN, CSR_CLASS_I)
-DECLARE_CSR(sscratch, CSR_SSCRATCH, CSR_CLASS_I)
-DECLARE_CSR(sepc, CSR_SEPC, CSR_CLASS_I)
-DECLARE_CSR(scause, CSR_SCAUSE, CSR_CLASS_I)
-DECLARE_CSR(stval, CSR_STVAL, CSR_CLASS_I)
-DECLARE_CSR(sip, CSR_SIP, CSR_CLASS_I)
-DECLARE_CSR(satp, CSR_SATP, CSR_CLASS_I)
-DECLARE_CSR(mvendorid, CSR_MVENDORID, CSR_CLASS_I)
-DECLARE_CSR(marchid, CSR_MARCHID, CSR_CLASS_I)
-DECLARE_CSR(mimpid, CSR_MIMPID, CSR_CLASS_I)
-DECLARE_CSR(mhartid, CSR_MHARTID, CSR_CLASS_I)
-DECLARE_CSR(mstatus, CSR_MSTATUS, CSR_CLASS_I)
-DECLARE_CSR(misa, CSR_MISA, CSR_CLASS_I)
-DECLARE_CSR(medeleg, CSR_MEDELEG, CSR_CLASS_I)
-DECLARE_CSR(mideleg, CSR_MIDELEG, CSR_CLASS_I)
-DECLARE_CSR(mie, CSR_MIE, CSR_CLASS_I)
-DECLARE_CSR(mtvec, CSR_MTVEC, CSR_CLASS_I)
-DECLARE_CSR(mcounteren, CSR_MCOUNTEREN, CSR_CLASS_I)
-DECLARE_CSR(mscratch, CSR_MSCRATCH, CSR_CLASS_I)
-DECLARE_CSR(mepc, CSR_MEPC, CSR_CLASS_I)
-DECLARE_CSR(mcause, CSR_MCAUSE, CSR_CLASS_I)
-DECLARE_CSR(mtval, CSR_MTVAL, CSR_CLASS_I)
-DECLARE_CSR(mip, CSR_MIP, CSR_CLASS_I)
-DECLARE_CSR(pmpcfg0, CSR_PMPCFG0, CSR_CLASS_I)
-DECLARE_CSR(pmpcfg1, CSR_PMPCFG1, CSR_CLASS_I_32)
-DECLARE_CSR(pmpcfg2, CSR_PMPCFG2, CSR_CLASS_I)
-DECLARE_CSR(pmpcfg3, CSR_PMPCFG3, CSR_CLASS_I_32)
-DECLARE_CSR(pmpaddr0, CSR_PMPADDR0, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr1, CSR_PMPADDR1, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr2, CSR_PMPADDR2, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr3, CSR_PMPADDR3, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr4, CSR_PMPADDR4, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr5, CSR_PMPADDR5, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr6, CSR_PMPADDR6, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr7, CSR_PMPADDR7, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr8, CSR_PMPADDR8, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr9, CSR_PMPADDR9, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr10, CSR_PMPADDR10, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr11, CSR_PMPADDR11, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr12, CSR_PMPADDR12, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr13, CSR_PMPADDR13, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr14, CSR_PMPADDR14, CSR_CLASS_I)
-DECLARE_CSR(pmpaddr15, CSR_PMPADDR15, CSR_CLASS_I)
-DECLARE_CSR(mcycle, CSR_MCYCLE, CSR_CLASS_I)
-DECLARE_CSR(minstret, CSR_MINSTRET, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30, CSR_CLASS_I)
-DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31, CSR_CLASS_I)
-DECLARE_CSR(mcycleh, CSR_MCYCLEH, CSR_CLASS_I_32)
-DECLARE_CSR(minstreth, CSR_MINSTRETH, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H, CSR_CLASS_I_32)
-DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H, CSR_CLASS_I_32)
-DECLARE_CSR(mcountinhibit, CSR_MCOUNTINHIBIT, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30, CSR_CLASS_I)
-DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31, CSR_CLASS_I)
-DECLARE_CSR(tselect, CSR_TSELECT, CSR_CLASS_I)
-DECLARE_CSR(tdata1, CSR_TDATA1, CSR_CLASS_I)
-DECLARE_CSR(tdata2, CSR_TDATA2, CSR_CLASS_I)
-DECLARE_CSR(tdata3, CSR_TDATA3, CSR_CLASS_I)
-DECLARE_CSR(dcsr, CSR_DCSR, CSR_CLASS_I)
-DECLARE_CSR(dpc, CSR_DPC, CSR_CLASS_I)
-DECLARE_CSR(dscratch0, CSR_DSCRATCH0, CSR_CLASS_I)
-DECLARE_CSR(dscratch1, CSR_DSCRATCH1, CSR_CLASS_I)
-/* These registers are present in priv spec 1.9.1, dropped in 1.10.  */
-DECLARE_CSR(hstatus, CSR_HSTATUS, CSR_CLASS_I)
-DECLARE_CSR(hedeleg, CSR_HEDELEG, CSR_CLASS_I)
-DECLARE_CSR(hideleg, CSR_HIDELEG, CSR_CLASS_I)
-DECLARE_CSR(hie, CSR_HIE, CSR_CLASS_I)
-DECLARE_CSR(htvec, CSR_HTVEC, CSR_CLASS_I)
-DECLARE_CSR(hscratch, CSR_HSCRATCH, CSR_CLASS_I)
-DECLARE_CSR(hepc, CSR_HEPC, CSR_CLASS_I)
-DECLARE_CSR(hcause, CSR_HCAUSE, CSR_CLASS_I)
-DECLARE_CSR(hbadaddr, CSR_HBADADDR, CSR_CLASS_I)
-DECLARE_CSR(hip, CSR_HIP, CSR_CLASS_I)
-DECLARE_CSR(mbase, CSR_MBASE, CSR_CLASS_I)
-DECLARE_CSR(mbound, CSR_MBOUND, CSR_CLASS_I)
-DECLARE_CSR(mibase, CSR_MIBASE, CSR_CLASS_I)
-DECLARE_CSR(mibound, CSR_MIBOUND, CSR_CLASS_I)
-DECLARE_CSR(mdbase, CSR_MDBASE, CSR_CLASS_I)
-DECLARE_CSR(mdbound, CSR_MDBOUND, CSR_CLASS_I)
-DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN, CSR_CLASS_I)
-DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN, CSR_CLASS_I)
+DECLARE_CSR(ustatus, CSR_USTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(uie, CSR_UIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(utvec, CSR_UTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(uscratch, CSR_USCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(uepc, CSR_UEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(ucause, CSR_UCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(utval, CSR_UTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(uip, CSR_UIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(fflags, CSR_FFLAGS, CSR_CLASS_F, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(frm, CSR_FRM, CSR_CLASS_F, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(fcsr, CSR_FCSR, CSR_CLASS_F, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(cycle, CSR_CYCLE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(time, CSR_TIME, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(instret, CSR_INSTRET, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(cycleh, CSR_CYCLEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(timeh, CSR_TIMEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(instreth, CSR_INSTRETH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sstatus, CSR_SSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sedeleg, CSR_SEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sideleg, CSR_SIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sie, CSR_SIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(stvec, CSR_STVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(scounteren, CSR_SCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sscratch, CSR_SSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sepc, CSR_SEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(scause, CSR_SCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(stval, CSR_STVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(sip, CSR_SIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(satp, CSR_SATP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mvendorid, CSR_MVENDORID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(marchid, CSR_MARCHID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mimpid, CSR_MIMPID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhartid, CSR_MHARTID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mstatus, CSR_MSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(misa, CSR_MISA, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(medeleg, CSR_MEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mideleg, CSR_MIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mie, CSR_MIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mtvec, CSR_MTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mcounteren, CSR_MCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mscratch, CSR_MSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mepc, CSR_MEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mcause, CSR_MCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mtval, CSR_MTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mip, CSR_MIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpcfg0, CSR_PMPCFG0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpcfg1, CSR_PMPCFG1, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpcfg2, CSR_PMPCFG2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpcfg3, CSR_PMPCFG3, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr0, CSR_PMPADDR0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr1, CSR_PMPADDR1, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr2, CSR_PMPADDR2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr3, CSR_PMPADDR3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr4, CSR_PMPADDR4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr5, CSR_PMPADDR5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr6, CSR_PMPADDR6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr7, CSR_PMPADDR7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr8, CSR_PMPADDR8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr9, CSR_PMPADDR9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr10, CSR_PMPADDR10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr11, CSR_PMPADDR11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr12, CSR_PMPADDR12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr13, CSR_PMPADDR13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr14, CSR_PMPADDR14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(pmpaddr15, CSR_PMPADDR15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mcycle, CSR_MCYCLE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(minstret, CSR_MINSTRET, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mcycleh, CSR_MCYCLEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(minstreth, CSR_MINSTRETH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mcountinhibit, CSR_MCOUNTINHIBIT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(tselect, CSR_TSELECT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(tdata1, CSR_TDATA1, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(tdata2, CSR_TDATA2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(tdata3, CSR_TDATA3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(dcsr, CSR_DCSR, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(dpc, CSR_DPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(dscratch0, CSR_DSCRATCH0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(dscratch1, CSR_DSCRATCH1, CSR_CLASS_I, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(hstatus, CSR_HSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hedeleg, CSR_HEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hideleg, CSR_HIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hie, CSR_HIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(htvec, CSR_HTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hscratch, CSR_HSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hepc, CSR_HEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hcause, CSR_HCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hbadaddr, CSR_HBADADDR, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(hip, CSR_HIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mbase, CSR_MBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mbound, CSR_MBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mibase, CSR_MIBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mibound, CSR_MIBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mdbase, CSR_MDBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mdbound, CSR_MDBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
 #endif
 #ifdef DECLARE_CSR_ALIAS
 #endif
 #ifdef DECLARE_CSR_ALIAS
-/* Ubadaddr is 0x043 in 1.9.1, but 0x043 is utval in 1.10.  */
-DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL, CSR_CLASS_I)
-/* Sbadaddr is 0x143 in 1.9.1, but 0x143 is stval in 1.10.  */
-DECLARE_CSR_ALIAS(sbadaddr, CSR_STVAL, CSR_CLASS_I)
-/* Sptbr is 0x180 in 1.9.1, but 0x180 is satp in 1.10.  */
-DECLARE_CSR_ALIAS(sptbr, CSR_SATP, CSR_CLASS_I)
-/* Mbadaddr is 0x343 in 1.9.1, but 0x343 is mtval in 1.10.  */
-DECLARE_CSR_ALIAS(mbadaddr, CSR_MTVAL, CSR_CLASS_I)
-/* Mucounteren is 0x320 in 1.10, but 0x320 is mcountinhibit in 1.11.  */
-DECLARE_CSR_ALIAS(mucounteren, CSR_MCOUNTINHIBIT, CSR_CLASS_I)
-/* Dscratch is 0x7b2 in 1.10, but 0x7b2 is dscratch0 in 1.11.  */
-DECLARE_CSR_ALIAS(dscratch, CSR_DSCRATCH0, CSR_CLASS_I)
+DECLARE_CSR_ALIAS(misa, 0xf10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P9P1)
+DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR_ALIAS(sbadaddr, CSR_STVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR_ALIAS(sptbr, CSR_SATP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR_ALIAS(mbadaddr, CSR_MTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR_ALIAS(mucounteren, CSR_MCOUNTINHIBIT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P10)
+DECLARE_CSR_ALIAS(dscratch, CSR_DSCRATCH0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9, PRIV_SPEC_CLASS_1P11)
 #endif
 #ifdef DECLARE_CAUSE
 DECLARE_CAUSE("misaligned fetch", CAUSE_MISALIGNED_FETCH)
 #endif
 #ifdef DECLARE_CAUSE
 DECLARE_CAUSE("misaligned fetch", CAUSE_MISALIGNED_FETCH)
index ac6e861dd9c3576d13276a292b1d2917b2c812d7..feeaa6e8dca63bb2f611671c561ec1750d69c416 100644 (file)
@@ -24,6 +24,7 @@
 #include "riscv-opc.h"
 #include <stdlib.h>
 #include <stdint.h>
 #include "riscv-opc.h"
 #include <stdlib.h>
 #include <stdint.h>
+#include "bfd.h"
 
 typedef uint64_t insn_t;
 
 
 typedef uint64_t insn_t;
 
@@ -343,6 +344,73 @@ struct riscv_opcode
   unsigned long pinfo;
 };
 
   unsigned long pinfo;
 };
 
+/* The current supported ISA spec versions.  */
+
+enum riscv_isa_spec_class
+{
+  ISA_SPEC_CLASS_NONE,
+
+  ISA_SPEC_CLASS_2P2,
+  ISA_SPEC_CLASS_20190608,
+  ISA_SPEC_CLASS_20191213
+};
+
+/* This structure holds version information for specific ISA.  */
+
+struct riscv_ext_version
+{
+  const char *name;
+  enum riscv_isa_spec_class isa_spec_class;
+  unsigned int major_version;
+  unsigned int minor_version;
+};
+
+/* All RISC-V CSR belong to one of these classes.  */
+
+enum riscv_csr_class
+{
+  CSR_CLASS_NONE,
+
+  CSR_CLASS_I,
+  CSR_CLASS_I_32,      /* rv32 only */
+  CSR_CLASS_F,         /* f-ext only */
+};
+
+/* The current supported privilege spec versions.  */
+
+enum riscv_priv_spec_class
+{
+  PRIV_SPEC_CLASS_NONE,
+
+  PRIV_SPEC_CLASS_1P9,
+  PRIV_SPEC_CLASS_1P9P1,
+  PRIV_SPEC_CLASS_1P10,
+  PRIV_SPEC_CLASS_1P11,
+  PRIV_SPEC_CLASS_DRAFT
+};
+
+/* This structure holds all restricted conditions for a CSR.  */
+
+struct riscv_csr_extra
+{
+  /* Class to which this CSR belongs.  Used to decide whether or
+     not this CSR is legal in the current -march context.  */
+  enum riscv_csr_class csr_class;
+
+  /* CSR may have differnet numbers in the previous priv spec.  */
+  unsigned address;
+
+  /* Record the CSR is defined/valid in which versions.  */
+  enum riscv_priv_spec_class define_version;
+
+  /* Record the CSR is aborted/invalid from which versions.  If it isn't
+     aborted in the current version, then it should be CSR_CLASS_VDRAFT.  */
+  enum riscv_priv_spec_class abort_version;
+
+  /* The CSR may have more than one setting.  */
+  struct riscv_csr_extra *next;
+};
+
 /* Instruction is a simple alias (e.g. "mv" for "addi").  */
 #define        INSN_ALIAS              0x00000001
 
 /* Instruction is a simple alias (e.g. "mv" for "addi").  */
 #define        INSN_ALIAS              0x00000001
 
@@ -420,5 +488,13 @@ extern const char * const riscv_fpr_names_abi[NFPR];
 
 extern const struct riscv_opcode riscv_opcodes[];
 extern const struct riscv_opcode riscv_insn_types[];
 
 extern const struct riscv_opcode riscv_opcodes[];
 extern const struct riscv_opcode riscv_insn_types[];
+extern const struct riscv_ext_version riscv_ext_version_table[];
+
+extern bfd_boolean
+riscv_get_isa_spec_class (const char *, enum riscv_isa_spec_class *);
+extern bfd_boolean
+riscv_get_priv_spec_class (const char *, enum riscv_priv_spec_class *);
+extern const char *
+riscv_get_priv_spec_name (enum riscv_priv_spec_class);
 
 #endif /* _RISCV_H_ */
 
 #endif /* _RISCV_H_ */
index b4ee76c2606d490d2f68a119f0045e33ceb25adb..d95d5cfc2171edc4874b961e98b8269aeb749d4b 100644 (file)
@@ -1,3 +1,19 @@
+2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
+
+       * testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated
+        priv attributes according to the -mpriv-spec option.
+       * testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-priv-spec-a.s: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-priv-spec-b.s: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-priv-spec.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-stack-align.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-strict-align-01.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-strict-align-02.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-strict-align-03.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-strict-align-04.d: Likewise.
+       * testsuite/ld-riscv-elf/attr-merge-strict-align-05.d: Likewise.
+
 2020-05-20  Alan Modra  <amodra@gmail.com>
 
        PR 25993
 2020-05-20  Alan Modra  <amodra@gmail.com>
 
        PR 25993
index 5baaba4c16f9545cd25dfd59fadfbbf0869dedeb..032f9641ad23dbac98f091f6031e2638d2f9eb41 100644 (file)
@@ -7,3 +7,6 @@
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0"
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index a7d79a1ea2bf7bf0dd44eb3105228a7e8dcdd555..54a7621f2c378b948df46876f332adb17439e969 100644 (file)
@@ -7,3 +7,6 @@
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0"
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index d46dee808de3637e268c0014e6b304ee23e8d4a0..67f0437e32875e72124e6e1192ca6b55e284cd28 100644 (file)
@@ -7,3 +7,6 @@
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_xbar2p0_xfoo2p0"
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: "rv32i2p0_m2p0_xbar2p0_xfoo2p0"
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 1ad95002e5cf5051659fb2ef2a4d0cd8c96b2f24..0b7ffea1fc2ef9b09f7c017d097b6c2eace8524b 100644 (file)
@@ -1,3 +1,3 @@
        .attribute priv_spec, 1
        .attribute priv_spec, 1
-       .attribute priv_spec_minor, 2
-       .attribute priv_spec_revision, 3
+       .attribute priv_spec_minor, 9
+       .attribute priv_spec_revision, 1
index 1ad95002e5cf5051659fb2ef2a4d0cd8c96b2f24..0b7ffea1fc2ef9b09f7c017d097b6c2eace8524b 100644 (file)
@@ -1,3 +1,3 @@
        .attribute priv_spec, 1
        .attribute priv_spec, 1
-       .attribute priv_spec_minor, 2
-       .attribute priv_spec_revision, 3
+       .attribute priv_spec_minor, 9
+       .attribute priv_spec_revision, 1
index dc4c4e08f9b24dd9089df6cac657b292b63725ac..0aa6fe0701bb1083ce42584261e0af5256edca17 100644 (file)
@@ -8,5 +8,5 @@ Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_priv_spec: 1
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_priv_spec: 1
-  Tag_RISCV_priv_spec_minor: 2
-  Tag_RISCV_priv_spec_revision: 3
+  Tag_RISCV_priv_spec_minor: 9
+  Tag_RISCV_priv_spec_revision: 1
index 7a5bc8148bb0b0c5f9bd302848bdf2e1bc8d959e..5585fac3b7b96a3e7bed24a80962ec8696ab6332 100644 (file)
@@ -8,3 +8,6 @@ Attribute Section: riscv
 File Attributes
   Tag_RISCV_stack_align: 16-bytes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
 File Attributes
   Tag_RISCV_stack_align: 16-bytes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 10399307bbbe8d9a72b28d0fbf018832350ad424..91011a2ba4ddf934337adf55668f5cedcfa4f348 100644 (file)
@@ -8,3 +8,6 @@ Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 12ca1c4dd31a294c96025537b618ddfed16c9e48..5bdea27948b6e621ae0ec38f7c9d5adb0fd8e1e5 100644 (file)
@@ -8,3 +8,6 @@ Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index e41351da0112b5d96e241778006afd3fe449e88b..ac886fb768180a1166527c478cc5288ae0f2fac4 100644 (file)
@@ -8,3 +8,6 @@ Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index ac2a766cfcaaea2ac0cd56cfa71bd6911e8f5958..dd45f76317ad82cec81c710e6eab86d275454710 100644 (file)
@@ -7,3 +7,6 @@
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
 Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 608c05e8c38b12466eb82a330d054e7bbce45c96..ef0c154a1210da8e04f3665f51d836f94b3ba4c8 100644 (file)
@@ -8,3 +8,6 @@ Attribute Section: riscv
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
 File Attributes
   Tag_RISCV_arch: [a-zA-Z0-9_\"].*
   Tag_RISCV_unaligned_access: Unaligned access
+  Tag_RISCV_priv_spec: [0-9_\"].*
+  Tag_RISCV_priv_spec_minor: [0-9_\"].*
+#...
index 4d4c77dbd4a072ca35c59f9974f22450ecab1c17..d788d8c35af2734c7cf6d624df9d8ab08cda4bcf 100644 (file)
@@ -1,3 +1,34 @@
+2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
+
+       * riscv-opc.c (riscv_ext_version_table): The table used to store
+       all information about the supported spec and the corresponding ISA
+       versions.  Currently, only Zicsr is supported to verify the
+       correctness of Z sub extension settings.  Others will be supported
+       in the future patches.
+       (struct isa_spec_t, isa_specs): List for all supported ISA spec
+       classes and the corresponding strings.
+       (riscv_get_isa_spec_class): New function.  Get the corresponding ISA
+       spec class by giving a ISA spec string.
+       * riscv-opc.c (struct priv_spec_t): New structure.
+       (struct priv_spec_t priv_specs): List for all supported privilege spec
+       classes and the corresponding strings.
+       (riscv_get_priv_spec_class): New function.  Get the corresponding
+       privilege spec class by giving a spec string.
+       (riscv_get_priv_spec_name): New function.  Get the corresponding
+       privilege spec string by giving a CSR version class.
+       * riscv-dis.c: Updated since DECLARE_CSR is changed.
+       * riscv-dis.c: Add new disassembler option -Mpriv-spec to dump the CSR
+       according to the chosen version.  Build a hash table riscv_csr_hash to
+       store the valid CSR for the chosen pirv verison.  Dump the direct
+       CSR address rather than it's name if it is invalid.
+       (parse_riscv_dis_option_without_args): New function.  Parse the options
+       without arguments.
+       (parse_riscv_dis_option): Call parse_riscv_dis_option_without_args to
+       parse the options without arguments first, and then handle the options
+       with arguments.  Add the new option -Mpriv-spec, which has argument.
+       * riscv-dis.c (print_riscv_disassembler_options): Add description
+       about the new OBJDUMP option.
+
 2020-05-19  Peter Bergner  <bergner@linux.ibm.com>
 
        * ppc-opc.c (insert_ls, extract_ls): Handle 3-bit L fields and new
 2020-05-19  Peter Bergner  <bergner@linux.ibm.com>
 
        * ppc-opc.c (insert_ls, extract_ls): Handle 3-bit L fields and new
index 62bcd32dfdb3bc9ddbbda3668d2d05bc011aedf5..8ff1e9c975151802ad6a870e25269467c7b37c4d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2020-04-30 13:57+0100\n"
+"POT-Creation-Date: 2020-05-20 15:53+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"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -75,7 +75,7 @@ msgid ""
 msgstr ""
 
 #: aarch64-dis.c:3552 mips-dis.c:2778 mips-dis.c:2788 mips-dis.c:2791
 msgstr ""
 
 #: aarch64-dis.c:3552 mips-dis.c:2778 mips-dis.c:2788 mips-dis.c:2791
-#: nfp-dis.c:2981 riscv-dis.c:556
+#: nfp-dis.c:2981 riscv-dis.c:616
 #, c-format
 msgid "\n"
 msgstr ""
 #, c-format
 msgid "\n"
 msgstr ""
@@ -663,7 +663,7 @@ msgstr ""
 
 #: bpf-asm.c:181 epiphany-asm.c:456 fr30-asm.c:311 frv-asm.c:1264
 #: ip2k-asm.c:512 iq2000-asm.c:460 lm32-asm.c:350 m32c-asm.c:1585
 
 #: bpf-asm.c:181 epiphany-asm.c:456 fr30-asm.c:311 frv-asm.c:1264
 #: ip2k-asm.c:512 iq2000-asm.c:460 lm32-asm.c:350 m32c-asm.c:1585
-#: m32r-asm.c:329 mep-asm.c:1288 mt-asm.c:596 or1k-asm.c:580 xc16x-asm.c:377
+#: m32r-asm.c:329 mep-asm.c:1288 mt-asm.c:596 or1k-asm.c:571 xc16x-asm.c:377
 #: xstormy16-asm.c:277
 #, c-format
 msgid "internal error: unrecognized field %d while parsing"
 #: xstormy16-asm.c:277
 #, c-format
 msgid "internal error: unrecognized field %d while parsing"
@@ -671,7 +671,7 @@ msgstr ""
 
 #: bpf-asm.c:233 epiphany-asm.c:508 fr30-asm.c:363 frv-asm.c:1316
 #: ip2k-asm.c:564 iq2000-asm.c:512 lm32-asm.c:402 m32c-asm.c:1637
 
 #: bpf-asm.c:233 epiphany-asm.c:508 fr30-asm.c:363 frv-asm.c:1316
 #: ip2k-asm.c:564 iq2000-asm.c:512 lm32-asm.c:402 m32c-asm.c:1637
-#: m32r-asm.c:381 mep-asm.c:1340 mt-asm.c:648 or1k-asm.c:632 xc16x-asm.c:429
+#: m32r-asm.c:381 mep-asm.c:1340 mt-asm.c:648 or1k-asm.c:623 xc16x-asm.c:429
 #: xstormy16-asm.c:329
 msgid "missing mnemonic in syntax string"
 msgstr ""
 #: xstormy16-asm.c:329
 msgid "missing mnemonic in syntax string"
 msgstr ""
@@ -686,8 +686,8 @@ msgstr ""
 #: m32c-asm.c:1772 m32c-asm.c:1776 m32c-asm.c:1865 m32c-asm.c:1972
 #: m32r-asm.c:516 m32r-asm.c:520 m32r-asm.c:609 m32r-asm.c:716 mep-asm.c:1475
 #: mep-asm.c:1479 mep-asm.c:1568 mep-asm.c:1675 mt-asm.c:783 mt-asm.c:787
 #: m32c-asm.c:1772 m32c-asm.c:1776 m32c-asm.c:1865 m32c-asm.c:1972
 #: m32r-asm.c:516 m32r-asm.c:520 m32r-asm.c:609 m32r-asm.c:716 mep-asm.c:1475
 #: mep-asm.c:1479 mep-asm.c:1568 mep-asm.c:1675 mt-asm.c:783 mt-asm.c:787
-#: mt-asm.c:876 mt-asm.c:983 or1k-asm.c:767 or1k-asm.c:771 or1k-asm.c:860
-#: or1k-asm.c:967 xc16x-asm.c:564 xc16x-asm.c:568 xc16x-asm.c:657
+#: mt-asm.c:876 mt-asm.c:983 or1k-asm.c:758 or1k-asm.c:762 or1k-asm.c:851
+#: or1k-asm.c:958 xc16x-asm.c:564 xc16x-asm.c:568 xc16x-asm.c:657
 #: xc16x-asm.c:764 xstormy16-asm.c:464 xstormy16-asm.c:468 xstormy16-asm.c:557
 #: xstormy16-asm.c:664
 msgid "unrecognized instruction"
 #: xc16x-asm.c:764 xstormy16-asm.c:464 xstormy16-asm.c:468 xstormy16-asm.c:557
 #: xstormy16-asm.c:664
 msgid "unrecognized instruction"
@@ -695,7 +695,7 @@ msgstr ""
 
 #: bpf-asm.c:415 epiphany-asm.c:690 fr30-asm.c:545 frv-asm.c:1498
 #: ip2k-asm.c:746 iq2000-asm.c:694 lm32-asm.c:584 m32c-asm.c:1819
 
 #: bpf-asm.c:415 epiphany-asm.c:690 fr30-asm.c:545 frv-asm.c:1498
 #: ip2k-asm.c:746 iq2000-asm.c:694 lm32-asm.c:584 m32c-asm.c:1819
-#: m32r-asm.c:563 mep-asm.c:1522 mt-asm.c:830 or1k-asm.c:814 xc16x-asm.c:611
+#: m32r-asm.c:563 mep-asm.c:1522 mt-asm.c:830 or1k-asm.c:805 xc16x-asm.c:611
 #: xstormy16-asm.c:511
 #, c-format
 msgid "syntax error (expected char `%c', found `%c')"
 #: xstormy16-asm.c:511
 #, c-format
 msgid "syntax error (expected char `%c', found `%c')"
@@ -703,7 +703,7 @@ msgstr ""
 
 #: bpf-asm.c:425 epiphany-asm.c:700 fr30-asm.c:555 frv-asm.c:1508
 #: ip2k-asm.c:756 iq2000-asm.c:704 lm32-asm.c:594 m32c-asm.c:1829
 
 #: bpf-asm.c:425 epiphany-asm.c:700 fr30-asm.c:555 frv-asm.c:1508
 #: ip2k-asm.c:756 iq2000-asm.c:704 lm32-asm.c:594 m32c-asm.c:1829
-#: m32r-asm.c:573 mep-asm.c:1532 mt-asm.c:840 or1k-asm.c:824 xc16x-asm.c:621
+#: m32r-asm.c:573 mep-asm.c:1532 mt-asm.c:840 or1k-asm.c:815 xc16x-asm.c:621
 #: xstormy16-asm.c:521
 #, c-format
 msgid "syntax error (expected char `%c', found end of instruction)"
 #: xstormy16-asm.c:521
 #, c-format
 msgid "syntax error (expected char `%c', found end of instruction)"
@@ -711,21 +711,21 @@ msgstr ""
 
 #: bpf-asm.c:455 epiphany-asm.c:730 fr30-asm.c:585 frv-asm.c:1538
 #: ip2k-asm.c:786 iq2000-asm.c:734 lm32-asm.c:624 m32c-asm.c:1859
 
 #: bpf-asm.c:455 epiphany-asm.c:730 fr30-asm.c:585 frv-asm.c:1538
 #: ip2k-asm.c:786 iq2000-asm.c:734 lm32-asm.c:624 m32c-asm.c:1859
-#: m32r-asm.c:603 mep-asm.c:1562 mt-asm.c:870 or1k-asm.c:854 xc16x-asm.c:651
+#: m32r-asm.c:603 mep-asm.c:1562 mt-asm.c:870 or1k-asm.c:845 xc16x-asm.c:651
 #: xstormy16-asm.c:551
 msgid "junk at end of line"
 msgstr ""
 
 #: bpf-asm.c:567 epiphany-asm.c:842 fr30-asm.c:697 frv-asm.c:1650
 #: ip2k-asm.c:898 iq2000-asm.c:846 lm32-asm.c:736 m32c-asm.c:1971
 #: xstormy16-asm.c:551
 msgid "junk at end of line"
 msgstr ""
 
 #: bpf-asm.c:567 epiphany-asm.c:842 fr30-asm.c:697 frv-asm.c:1650
 #: ip2k-asm.c:898 iq2000-asm.c:846 lm32-asm.c:736 m32c-asm.c:1971
-#: m32r-asm.c:715 mep-asm.c:1674 mt-asm.c:982 or1k-asm.c:966 xc16x-asm.c:763
+#: m32r-asm.c:715 mep-asm.c:1674 mt-asm.c:982 or1k-asm.c:957 xc16x-asm.c:763
 #: xstormy16-asm.c:663
 msgid "unrecognized form of instruction"
 msgstr ""
 
 #: bpf-asm.c:581 epiphany-asm.c:856 fr30-asm.c:711 frv-asm.c:1664
 #: ip2k-asm.c:912 iq2000-asm.c:860 lm32-asm.c:750 m32c-asm.c:1985
 #: xstormy16-asm.c:663
 msgid "unrecognized form of instruction"
 msgstr ""
 
 #: bpf-asm.c:581 epiphany-asm.c:856 fr30-asm.c:711 frv-asm.c:1664
 #: ip2k-asm.c:912 iq2000-asm.c:860 lm32-asm.c:750 m32c-asm.c:1985
-#: m32r-asm.c:729 mep-asm.c:1688 mt-asm.c:996 or1k-asm.c:980 xc16x-asm.c:777
+#: m32r-asm.c:729 mep-asm.c:1688 mt-asm.c:996 or1k-asm.c:971 xc16x-asm.c:777
 #: xstormy16-asm.c:677
 #, c-format
 msgid "bad instruction `%.50s...'"
 #: xstormy16-asm.c:677
 #, c-format
 msgid "bad instruction `%.50s...'"
@@ -733,7 +733,7 @@ msgstr ""
 
 #: bpf-asm.c:584 epiphany-asm.c:859 fr30-asm.c:714 frv-asm.c:1667
 #: ip2k-asm.c:915 iq2000-asm.c:863 lm32-asm.c:753 m32c-asm.c:1988
 
 #: bpf-asm.c:584 epiphany-asm.c:859 fr30-asm.c:714 frv-asm.c:1667
 #: ip2k-asm.c:915 iq2000-asm.c:863 lm32-asm.c:753 m32c-asm.c:1988
-#: m32r-asm.c:732 mep-asm.c:1691 mt-asm.c:999 or1k-asm.c:983 xc16x-asm.c:780
+#: m32r-asm.c:732 mep-asm.c:1691 mt-asm.c:999 or1k-asm.c:974 xc16x-asm.c:780
 #: xstormy16-asm.c:680
 #, c-format
 msgid "bad instruction `%.50s'"
 #: xstormy16-asm.c:680
 #, c-format
 msgid "bad instruction `%.50s'"
@@ -766,7 +766,7 @@ msgstr ""
 
 #: bpf-dis.c:203 epiphany-dis.c:279 fr30-dis.c:300 frv-dis.c:397 ip2k-dis.c:289
 #: iq2000-dis.c:190 lm32-dis.c:148 m32c-dis.c:892 m32r-dis.c:280 mep-dis.c:1188
 
 #: bpf-dis.c:203 epiphany-dis.c:279 fr30-dis.c:300 frv-dis.c:397 ip2k-dis.c:289
 #: iq2000-dis.c:190 lm32-dis.c:148 m32c-dis.c:892 m32r-dis.c:280 mep-dis.c:1188
-#: mt-dis.c:291 or1k-dis.c:184 xc16x-dis.c:421 xstormy16-dis.c:169
+#: mt-dis.c:291 or1k-dis.c:175 xc16x-dis.c:421 xstormy16-dis.c:169
 #, c-format
 msgid "internal error: unrecognized field %d while printing insn"
 msgstr ""
 #, c-format
 msgid "internal error: unrecognized field %d while printing insn"
 msgstr ""
@@ -797,7 +797,7 @@ msgstr ""
 
 #: bpf-ibld.c:628 epiphany-ibld.c:883 fr30-ibld.c:738 frv-ibld.c:864
 #: ip2k-ibld.c:615 iq2000-ibld.c:721 lm32-ibld.c:642 m32c-ibld.c:1739
 
 #: bpf-ibld.c:628 epiphany-ibld.c:883 fr30-ibld.c:738 frv-ibld.c:864
 #: ip2k-ibld.c:615 iq2000-ibld.c:721 lm32-ibld.c:642 m32c-ibld.c:1739
-#: m32r-ibld.c:673 mep-ibld.c:1216 mt-ibld.c:757 or1k-ibld.c:745
+#: m32r-ibld.c:673 mep-ibld.c:1216 mt-ibld.c:757 or1k-ibld.c:736
 #: xc16x-ibld.c:760 xstormy16-ibld.c:686
 #, c-format
 msgid "internal error: unrecognized field %d while building insn"
 #: xc16x-ibld.c:760 xstormy16-ibld.c:686
 #, c-format
 msgid "internal error: unrecognized field %d while building insn"
@@ -805,7 +805,7 @@ msgstr ""
 
 #: bpf-ibld.c:712 epiphany-ibld.c:1178 fr30-ibld.c:944 frv-ibld.c:1182
 #: ip2k-ibld.c:691 iq2000-ibld.c:897 lm32-ibld.c:747 m32c-ibld.c:2901
 
 #: bpf-ibld.c:712 epiphany-ibld.c:1178 fr30-ibld.c:944 frv-ibld.c:1182
 #: ip2k-ibld.c:691 iq2000-ibld.c:897 lm32-ibld.c:747 m32c-ibld.c:2901
-#: m32r-ibld.c:811 mep-ibld.c:1816 mt-ibld.c:978 or1k-ibld.c:913
+#: m32r-ibld.c:811 mep-ibld.c:1816 mt-ibld.c:978 or1k-ibld.c:895
 #: xc16x-ibld.c:981 xstormy16-ibld.c:833
 #, c-format
 msgid "internal error: unrecognized field %d while decoding insn"
 #: xc16x-ibld.c:981 xstormy16-ibld.c:833
 #, c-format
 msgid "internal error: unrecognized field %d while decoding insn"
@@ -813,7 +813,7 @@ msgstr ""
 
 #: bpf-ibld.c:781 epiphany-ibld.c:1322 fr30-ibld.c:1091 frv-ibld.c:1461
 #: ip2k-ibld.c:766 iq2000-ibld.c:1029 lm32-ibld.c:837 m32c-ibld.c:3519
 
 #: bpf-ibld.c:781 epiphany-ibld.c:1322 fr30-ibld.c:1091 frv-ibld.c:1461
 #: ip2k-ibld.c:766 iq2000-ibld.c:1029 lm32-ibld.c:837 m32c-ibld.c:3519
-#: m32r-ibld.c:925 mep-ibld.c:2287 mt-ibld.c:1179 or1k-ibld.c:1018
+#: m32r-ibld.c:925 mep-ibld.c:2287 mt-ibld.c:1179 or1k-ibld.c:991
 #: xc16x-ibld.c:1203 xstormy16-ibld.c:944
 #, c-format
 msgid "internal error: unrecognized field %d while getting int operand"
 #: xc16x-ibld.c:1203 xstormy16-ibld.c:944
 #, c-format
 msgid "internal error: unrecognized field %d while getting int operand"
@@ -821,7 +821,7 @@ msgstr ""
 
 #: bpf-ibld.c:832 epiphany-ibld.c:1448 fr30-ibld.c:1220 frv-ibld.c:1722
 #: ip2k-ibld.c:823 iq2000-ibld.c:1143 lm32-ibld.c:909 m32c-ibld.c:4119
 
 #: bpf-ibld.c:832 epiphany-ibld.c:1448 fr30-ibld.c:1220 frv-ibld.c:1722
 #: ip2k-ibld.c:823 iq2000-ibld.c:1143 lm32-ibld.c:909 m32c-ibld.c:4119
-#: m32r-ibld.c:1021 mep-ibld.c:2740 mt-ibld.c:1362 or1k-ibld.c:1105
+#: m32r-ibld.c:1021 mep-ibld.c:2740 mt-ibld.c:1362 or1k-ibld.c:1069
 #: xc16x-ibld.c:1407 xstormy16-ibld.c:1037
 #, c-format
 msgid "internal error: unrecognized field %d while getting vma operand"
 #: xc16x-ibld.c:1407 xstormy16-ibld.c:1037
 #, c-format
 msgid "internal error: unrecognized field %d while getting vma operand"
@@ -829,7 +829,7 @@ msgstr ""
 
 #: bpf-ibld.c:890 epiphany-ibld.c:1581 fr30-ibld.c:1352 frv-ibld.c:1990
 #: ip2k-ibld.c:883 iq2000-ibld.c:1264 lm32-ibld.c:988 m32c-ibld.c:4707
 
 #: bpf-ibld.c:890 epiphany-ibld.c:1581 fr30-ibld.c:1352 frv-ibld.c:1990
 #: ip2k-ibld.c:883 iq2000-ibld.c:1264 lm32-ibld.c:988 m32c-ibld.c:4707
-#: m32r-ibld.c:1123 mep-ibld.c:3154 mt-ibld.c:1552 or1k-ibld.c:1199
+#: m32r-ibld.c:1123 mep-ibld.c:3154 mt-ibld.c:1552 or1k-ibld.c:1154
 #: xc16x-ibld.c:1612 xstormy16-ibld.c:1137
 #, c-format
 msgid "internal error: unrecognized field %d while setting int operand"
 #: xc16x-ibld.c:1612 xstormy16-ibld.c:1137
 #, c-format
 msgid "internal error: unrecognized field %d while setting int operand"
@@ -837,7 +837,7 @@ msgstr ""
 
 #: bpf-ibld.c:938 epiphany-ibld.c:1704 fr30-ibld.c:1474 frv-ibld.c:2248
 #: ip2k-ibld.c:933 iq2000-ibld.c:1375 lm32-ibld.c:1057 m32c-ibld.c:5285
 
 #: bpf-ibld.c:938 epiphany-ibld.c:1704 fr30-ibld.c:1474 frv-ibld.c:2248
 #: ip2k-ibld.c:933 iq2000-ibld.c:1375 lm32-ibld.c:1057 m32c-ibld.c:5285
-#: m32r-ibld.c:1215 mep-ibld.c:3558 mt-ibld.c:1732 or1k-ibld.c:1283
+#: m32r-ibld.c:1215 mep-ibld.c:3558 mt-ibld.c:1732 or1k-ibld.c:1229
 #: xc16x-ibld.c:1807 xstormy16-ibld.c:1227
 #, c-format
 msgid "internal error: unrecognized field %d while setting vma operand"
 #: xc16x-ibld.c:1807 xstormy16-ibld.c:1227
 #, c-format
 msgid "internal error: unrecognized field %d while setting vma operand"
@@ -1881,29 +1881,29 @@ msgstr ""
 msgid "internal relocation type invalid"
 msgstr ""
 
 msgid "internal relocation type invalid"
 msgstr ""
 
-#: or1k-desc.c:2213
+#: or1k-desc.c:2040
 #, c-format
 msgid ""
 "internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
 "values: `%d' vs. `%d'"
 msgstr ""
 
 #, c-format
 msgid ""
 "internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
 "values: `%d' vs. `%d'"
 msgstr ""
 
-#: or1k-desc.c:2296
+#: or1k-desc.c:2123
 #, c-format
 msgid "internal error: or1k_cgen_cpu_open: unsupported argument `%d'"
 msgstr ""
 
 #, c-format
 msgid "internal error: or1k_cgen_cpu_open: unsupported argument `%d'"
 msgstr ""
 
-#: or1k-desc.c:2315
+#: or1k-desc.c:2142
 #, c-format
 msgid "internal error: or1k_cgen_cpu_open: no endianness specified"
 msgstr ""
 
 #, c-format
 msgid "internal error: or1k_cgen_cpu_open: no endianness specified"
 msgstr ""
 
-#: ppc-dis.c:376
+#: ppc-dis.c:381
 #, c-format
 msgid "warning: ignoring unknown -M%s option"
 msgstr ""
 
 #, c-format
 msgid "warning: ignoring unknown -M%s option"
 msgstr ""
 
-#: ppc-dis.c:965
+#: ppc-dis.c:972
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -1935,101 +1935,126 @@ msgstr ""
 msgid "attempt to set 'at' bits when using + or - modifier"
 msgstr ""
 
 msgid "attempt to set 'at' bits when using + or - modifier"
 msgstr ""
 
-#: ppc-opc.c:658
+#: ppc-opc.c:677
 msgid "invalid R operand"
 msgstr ""
 
 msgid "invalid R operand"
 msgstr ""
 
-#: ppc-opc.c:713
+#: ppc-opc.c:732
 msgid "invalid mask field"
 msgstr ""
 
 msgid "invalid mask field"
 msgstr ""
 
-#: ppc-opc.c:736
+#: ppc-opc.c:755
 msgid "invalid mfcr mask"
 msgstr ""
 
 msgid "invalid mfcr mask"
 msgstr ""
 
-#: ppc-opc.c:812
+#: ppc-opc.c:873 ppc-opc.c:891
 msgid "illegal L operand value"
 msgstr ""
 
 msgid "illegal L operand value"
 msgstr ""
 
-#: ppc-opc.c:851
+#: ppc-opc.c:914
+msgid "illegal WC operand value"
+msgstr ""
+
+#: ppc-opc.c:1011
 msgid "incompatible L operand value"
 msgstr ""
 
 msgid "incompatible L operand value"
 msgstr ""
 
-#: ppc-opc.c:891 ppc-opc.c:926
+#: ppc-opc.c:1051 ppc-opc.c:1086
 msgid "illegal bitmask"
 msgstr ""
 
 msgid "illegal bitmask"
 msgstr ""
 
-#: ppc-opc.c:1013
+#: ppc-opc.c:1173
 msgid "address register in load range"
 msgstr ""
 
 msgid "address register in load range"
 msgstr ""
 
-#: ppc-opc.c:1079
+#: ppc-opc.c:1213
+msgid "illegal PL operand value"
+msgstr ""
+
+#: ppc-opc.c:1274
 msgid "index register in load range"
 msgstr ""
 
 msgid "index register in load range"
 msgstr ""
 
-#: ppc-opc.c:1108 ppc-opc.c:1194
+#: ppc-opc.c:1303 ppc-opc.c:1389
 msgid "source and target register operands must be different"
 msgstr ""
 
 msgid "source and target register operands must be different"
 msgstr ""
 
-#: ppc-opc.c:1139
+#: ppc-opc.c:1334
 msgid "invalid register operand when updating"
 msgstr ""
 
 msgid "invalid register operand when updating"
 msgstr ""
 
-#: ppc-opc.c:1257
+#: ppc-opc.c:1452
 msgid "illegal immediate value"
 msgstr ""
 
 msgid "illegal immediate value"
 msgstr ""
 
-#: ppc-opc.c:1362
+#: ppc-opc.c:1557
 msgid "invalid bat number"
 msgstr ""
 
 msgid "invalid bat number"
 msgstr ""
 
-#: ppc-opc.c:1397
+#: ppc-opc.c:1592
 msgid "invalid sprg number"
 msgstr ""
 
 msgid "invalid sprg number"
 msgstr ""
 
-#: ppc-opc.c:1434
+#: ppc-opc.c:1629
 msgid "invalid tbr number"
 msgstr ""
 
 msgid "invalid tbr number"
 msgstr ""
 
-#: ppc-opc.c:1581
+#: ppc-opc.c:1715 ppc-opc.c:1761
+msgid "VSR overlaps ACC operand"
+msgstr ""
+
+#: ppc-opc.c:1868
 msgid "invalid constant"
 msgstr ""
 
 msgid "invalid constant"
 msgstr ""
 
-#: ppc-opc.c:1683 ppc-opc.c:1706 ppc-opc.c:1729 ppc-opc.c:1752
+#: ppc-opc.c:1970 ppc-opc.c:1993 ppc-opc.c:2016 ppc-opc.c:2039
 msgid "UIMM = 00000 is illegal"
 msgstr ""
 
 msgid "UIMM = 00000 is illegal"
 msgstr ""
 
-#: ppc-opc.c:1775
+#: ppc-opc.c:2062
 msgid "UIMM values >7 are illegal"
 msgstr ""
 
 msgid "UIMM values >7 are illegal"
 msgstr ""
 
-#: ppc-opc.c:1798
+#: ppc-opc.c:2085
 msgid "UIMM values >15 are illegal"
 msgstr ""
 
 msgid "UIMM values >15 are illegal"
 msgstr ""
 
-#: ppc-opc.c:1821
+#: ppc-opc.c:2108
 msgid "GPR odd is illegal"
 msgstr ""
 
 msgid "GPR odd is illegal"
 msgstr ""
 
-#: ppc-opc.c:1844 ppc-opc.c:1867
+#: ppc-opc.c:2131 ppc-opc.c:2154
 msgid "invalid offset"
 msgstr ""
 
 msgid "invalid offset"
 msgstr ""
 
-#: ppc-opc.c:1890
+#: ppc-opc.c:2177
 msgid "invalid Ddd value"
 msgstr ""
 
 msgid "invalid Ddd value"
 msgstr ""
 
-#: riscv-dis.c:68
+#. The option without '=' should be defined above.
+#: riscv-dis.c:84 riscv-dis.c:108
 #, c-format
 msgid "unrecognized disassembler option: %s"
 msgstr ""
 
 #, c-format
 msgid "unrecognized disassembler option: %s"
 msgstr ""
 
-#: riscv-dis.c:346
+#. Invalid options with '=', no option name before '=',
+#. and no value after '='.
+#: riscv-dis.c:92
+#, c-format
+msgid "unrecognized disassembler option with '=': %s"
+msgstr ""
+
+#: riscv-dis.c:102
+#, c-format
+msgid "unknown privilege spec set by %s=%s"
+msgstr ""
+
+#: riscv-dis.c:402
 #, c-format
 msgid "# internal error, undefined modifier (%c)"
 msgstr ""
 
 #, c-format
 msgid "# internal error, undefined modifier (%c)"
 msgstr ""
 
-#: riscv-dis.c:545
+#: riscv-dis.c:601
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -2037,19 +2062,27 @@ msgid ""
 "with the -M switch (multiple options should be separated by commas):\n"
 msgstr ""
 
 "with the -M switch (multiple options should be separated by commas):\n"
 msgstr ""
 
-#: riscv-dis.c:549
+#: riscv-dis.c:605
+#, c-format
+msgid ""
+"\n"
+"  numeric         Print numeric register names, rather than ABI names.\n"
+msgstr ""
+
+#: riscv-dis.c:608
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
-"  numeric       Print numeric register names, rather than ABI names.\n"
+"  no-aliases      Disassemble only into canonical instructions, rather\n"
+"                  than into pseudoinstructions.\n"
 msgstr ""
 
 msgstr ""
 
-#: riscv-dis.c:552
+#: riscv-dis.c:612
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
-"  no-aliases    Disassemble only into canonical instructions, rather\n"
-"                than into pseudoinstructions.\n"
+"  priv-spec=PRIV  Print the CSR according to the chosen privilege spec\n"
+"                  (1.9, 1.9.1, 1.10, 1.11).\n"
 msgstr ""
 
 #: rx-dis.c:139 rx-dis.c:163 rx-dis.c:171 rx-dis.c:179 rx-dis.c:187
 msgstr ""
 
 #: rx-dis.c:139 rx-dis.c:163 rx-dis.c:171 rx-dis.c:179 rx-dis.c:187
index d7a184c4f971f6f14669baab98ba55cf13b5ad5e..f26a46e0b34aa8c2e59530714f18d1126317a92b 100644 (file)
@@ -31,6 +31,8 @@
 #include "bfd_stdint.h"
 #include <ctype.h>
 
 #include "bfd_stdint.h"
 #include <ctype.h>
 
+static enum riscv_priv_spec_class default_priv_spec = PRIV_SPEC_CLASS_NONE;
+
 struct riscv_private_data
 {
   bfd_vma gp;
 struct riscv_private_data
 {
   bfd_vma gp;
@@ -52,8 +54,8 @@ set_default_riscv_dis_options (void)
   no_aliases = 0;
 }
 
   no_aliases = 0;
 }
 
-static void
-parse_riscv_dis_option (const char *option)
+static bfd_boolean
+parse_riscv_dis_option_without_args (const char *option)
 {
   if (strcmp (option, "no-aliases") == 0)
     no_aliases = 1;
 {
   if (strcmp (option, "no-aliases") == 0)
     no_aliases = 1;
@@ -62,6 +64,44 @@ parse_riscv_dis_option (const char *option)
       riscv_gpr_names = riscv_gpr_names_numeric;
       riscv_fpr_names = riscv_fpr_names_numeric;
     }
       riscv_gpr_names = riscv_gpr_names_numeric;
       riscv_fpr_names = riscv_fpr_names_numeric;
     }
+  else
+    return FALSE;
+  return TRUE;
+}
+
+static void
+parse_riscv_dis_option (const char *option)
+{
+  char *equal, *value;
+
+  if (parse_riscv_dis_option_without_args (option))
+    return;
+
+  equal = strchr (option, '=');
+  if (equal == NULL)
+    {
+      /* The option without '=' should be defined above.  */
+      opcodes_error_handler (_("unrecognized disassembler option: %s"), option);
+      return;
+    }
+  if (equal == option
+      || *(equal + 1) == '\0')
+    {
+      /* Invalid options with '=', no option name before '=',
+       and no value after '='.  */
+      opcodes_error_handler (_("unrecognized disassembler option with '=': %s"),
+                            option);
+      return;
+    }
+
+  *equal = '\0';
+  value = equal + 1;
+  if (strcmp (option, "priv-spec") == 0)
+    {
+      if (!riscv_get_priv_spec_class (value, &default_priv_spec))
+       opcodes_error_handler (_("unknown privilege spec set by %s=%s"),
+                              option, value);
+    }
   else
     {
       /* xgettext:c-format */
   else
     {
       /* xgettext:c-format */
@@ -322,16 +362,32 @@ print_insn_args (const char *d, insn_t l, bfd_vma pc, disassemble_info *info)
 
        case 'E':
          {
 
        case 'E':
          {
-           const char* csr_name = NULL;
+           static const char *riscv_csr_hash[4096];    /* Total 2^12 CSR.  */
+           static bfd_boolean init_csr = FALSE;
            unsigned int csr = EXTRACT_OPERAND (CSR, l);
            unsigned int csr = EXTRACT_OPERAND (CSR, l);
-           switch (csr)
+
+           if (!init_csr)
              {
              {
-#define DECLARE_CSR(name, num, class) case num: csr_name = #name; break;
+               unsigned int i;
+               for (i = 0; i < 4096; i++)
+                 riscv_csr_hash[i] = NULL;
+
+               /* Set to the newest privilege version.  */
+               if (default_priv_spec == PRIV_SPEC_CLASS_NONE)
+                 default_priv_spec = PRIV_SPEC_CLASS_DRAFT - 1;
+
+#define DECLARE_CSR(name, num, class, define_version, abort_version) \
+               if (default_priv_spec >= define_version              \
+                   && default_priv_spec < abort_version)            \
+                 riscv_csr_hash[num] = #name;
+#define DECLARE_CSR_ALIAS(name, num, class, define_version, abort_version) \
+               DECLARE_CSR (name, num, class, define_version, abort_version)
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
              }
 #include "opcode/riscv-opc.h"
 #undef DECLARE_CSR
              }
-           if (csr_name)
-             print (info->stream, "%s", csr_name);
+
+           if (riscv_csr_hash[csr] != NULL)
+             print (info->stream, "%s", riscv_csr_hash[csr]);
            else
              print (info->stream, "0x%x", csr);
            break;
            else
              print (info->stream, "0x%x", csr);
            break;
@@ -547,11 +603,15 @@ The following RISC-V-specific disassembler options are supported for use\n\
 with the -M switch (multiple options should be separated by commas):\n"));
 
   fprintf (stream, _("\n\
 with the -M switch (multiple options should be separated by commas):\n"));
 
   fprintf (stream, _("\n\
-  numeric       Print numeric register names, rather than ABI names.\n"));
+  numeric         Print numeric register names, rather than ABI names.\n"));
+
+  fprintf (stream, _("\n\
+  no-aliases      Disassemble only into canonical instructions, rather\n\
+                  than into pseudoinstructions.\n"));
 
   fprintf (stream, _("\n\
 
   fprintf (stream, _("\n\
-  no-aliases    Disassemble only into canonical instructions, rather\n\
-                than into pseudoinstructions.\n"));
+  priv-spec=PRIV  Print the CSR according to the chosen privilege spec\n\
+                  (1.9, 1.9.1, 1.10, 1.11).\n"));
 
   fprintf (stream, _("\n"));
 }
 
   fprintf (stream, _("\n"));
 }
index ceedcafc191ea99516e758345810478de2bcced6..f011f1bbb7e8dea0ee0b58d356c1e56402d8f30a 100644 (file)
@@ -884,3 +884,147 @@ const struct riscv_opcode riscv_insn_types[] =
 /* Terminate the list.  */
 {0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}
 };
 /* Terminate the list.  */
 {0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}
 };
+
+/* All standard extensions defined in all supported ISA spec.  */
+const struct riscv_ext_version riscv_ext_version_table[] =
+{
+/* name, ISA spec, major version, minor_version.  */
+{"e", ISA_SPEC_CLASS_20191213, 1, 9},
+{"e", ISA_SPEC_CLASS_20190608, 1, 9},
+{"e", ISA_SPEC_CLASS_2P2,      1, 9},
+
+{"i", ISA_SPEC_CLASS_20191213, 2, 1},
+{"i", ISA_SPEC_CLASS_20190608, 2, 1},
+{"i", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"m", ISA_SPEC_CLASS_20191213, 2, 0},
+{"m", ISA_SPEC_CLASS_20190608, 2, 0},
+{"m", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"a", ISA_SPEC_CLASS_20191213, 2, 1},
+{"a", ISA_SPEC_CLASS_20190608, 2, 0},
+{"a", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"f", ISA_SPEC_CLASS_20191213, 2, 2},
+{"f", ISA_SPEC_CLASS_20190608, 2, 2},
+{"f", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"d", ISA_SPEC_CLASS_20191213, 2, 2},
+{"d", ISA_SPEC_CLASS_20190608, 2, 2},
+{"d", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"q", ISA_SPEC_CLASS_20191213, 2, 2},
+{"q", ISA_SPEC_CLASS_20190608, 2, 2},
+{"q", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"c", ISA_SPEC_CLASS_20191213, 2, 0},
+{"c", ISA_SPEC_CLASS_20190608, 2, 0},
+{"c", ISA_SPEC_CLASS_2P2,      2, 0},
+
+{"p", ISA_SPEC_CLASS_20191213, 0, 2},
+{"p", ISA_SPEC_CLASS_20190608, 0, 2},
+{"p", ISA_SPEC_CLASS_2P2,      0, 1},
+
+{"v", ISA_SPEC_CLASS_20191213, 0, 7},
+{"v", ISA_SPEC_CLASS_20190608, 0, 7},
+{"v", ISA_SPEC_CLASS_2P2,      0, 7},
+
+{"n", ISA_SPEC_CLASS_20190608, 1, 1},
+{"n", ISA_SPEC_CLASS_2P2,      1, 1},
+
+{"zicsr", ISA_SPEC_CLASS_20191213, 2, 0},
+{"zicsr", ISA_SPEC_CLASS_20190608, 2, 0},
+
+/* Terminate the list.  */
+{NULL, 0, 0, 0}
+};
+
+struct isa_spec_t
+{
+  const char *name;
+  enum riscv_isa_spec_class class;
+};
+
+/* List for all supported ISA spec versions.  */
+static const struct isa_spec_t isa_specs[] =
+{
+  {"2.2",      ISA_SPEC_CLASS_2P2},
+  {"20190608", ISA_SPEC_CLASS_20190608},
+  {"20191213", ISA_SPEC_CLASS_20191213},
+
+/* Terminate the list.  */
+  {NULL, 0}
+};
+
+/* Get the corresponding ISA spec class by giving a ISA spec string.  */
+
+bfd_boolean
+riscv_get_isa_spec_class (const char *s,
+                         enum riscv_isa_spec_class *class)
+{
+  const struct isa_spec_t *version;
+
+  if (s == NULL)
+    return FALSE;
+
+  for (version = &isa_specs[0]; version->name != NULL; ++version)
+    if (strcmp (version->name, s) == 0)
+      {
+       *class = version->class;
+       return TRUE;
+      }
+
+  /* Can not find the supported ISA spec.  */
+  return FALSE;
+}
+
+struct priv_spec_t
+{
+  const char *name;
+  enum riscv_priv_spec_class class;
+};
+
+/* List for all supported privilege versions.  */
+static const struct priv_spec_t priv_specs[] =
+{
+  {"1.9",   PRIV_SPEC_CLASS_1P9},
+  {"1.9.1", PRIV_SPEC_CLASS_1P9P1},
+  {"1.10",  PRIV_SPEC_CLASS_1P10},
+  {"1.11",  PRIV_SPEC_CLASS_1P11},
+
+/* Terminate the list.  */
+  {NULL, 0}
+};
+
+/* Get the corresponding CSR version class by giving a privilege
+   version string.  */
+
+bfd_boolean
+riscv_get_priv_spec_class (const char *s,
+                          enum riscv_priv_spec_class *class)
+{
+  const struct priv_spec_t *version;
+
+  if (s == NULL)
+    return FALSE;
+
+  for (version = &priv_specs[0]; version->name != NULL; ++version)
+    if (strcmp (version->name, s) == 0)
+      {
+       *class = version->class;
+       return TRUE;
+      }
+
+  /* Can not find the supported privilege version.  */
+  return FALSE;
+}
+
+/* Get the corresponding privilege version string by giving a CSR
+   version class.  */
+
+const char *
+riscv_get_priv_spec_name (enum riscv_priv_spec_class class)
+{
+  /* The first enum is PRIV_SPEC_CLASS_NONE.  */
+  return priv_specs[class - 1].name;
+}
This page took 0.389786 seconds and 4 git commands to generate.