aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog15
-rw-r--r--bfd/Makefile.am4
-rw-r--r--bfd/Makefile.in6
-rw-r--r--bfd/archures.c5
-rw-r--r--bfd/bfd-in2.h3
-rw-r--r--bfd/config.bfd7
-rwxr-xr-xbfd/configure1
-rw-r--r--bfd/configure.ac1
-rw-r--r--bfd/cpu-nfp.c62
-rw-r--r--bfd/elf-bfd.h1
-rwxr-xr-xbfd/elf64-nfp.c276
-rw-r--r--bfd/po/SRC-POTFILES.in2
-rw-r--r--bfd/po/bfd.pot602
-rw-r--r--bfd/targets.c3
-rw-r--r--binutils/ChangeLog13
-rw-r--r--binutils/NEWS2
-rw-r--r--binutils/po/binutils.pot3429
-rw-r--r--binutils/readelf.c37
-rw-r--r--binutils/testsuite/binutils-all/nfp/objdump.exp52
-rw-r--r--binutils/testsuite/binutils-all/nfp/test1.d973
-rw-r--r--binutils/testsuite/binutils-all/nfp/test1_nfp6000.nffwbin0 -> 9880 bytes
-rw-r--r--binutils/testsuite/binutils-all/nfp/test2_ctx8.d16
-rw-r--r--binutils/testsuite/binutils-all/nfp/test2_nfp6000.nffwbin0 -> 1472 bytes
-rw-r--r--binutils/testsuite/binutils-all/nfp/test2_no-pc_ctx4.d16
-rw-r--r--include/ChangeLog8
-rw-r--r--include/dis-asm.h1
-rw-r--r--include/elf/common.h1
-rwxr-xr-xinclude/elf/nfp.h292
-rw-r--r--include/opcode/nfp.h180
-rw-r--r--opcodes/ChangeLog11
-rw-r--r--opcodes/Makefile.am1
-rw-r--r--opcodes/Makefile.in2
-rwxr-xr-xopcodes/configure1
-rw-r--r--opcodes/configure.ac1
-rw-r--r--opcodes/disassemble.c9
-rw-r--r--opcodes/disassemble.h1
-rw-r--r--opcodes/nfp-dis.c2990
-rw-r--r--opcodes/po/POTFILES.in1
-rw-r--r--opcodes/po/opcodes.pot735
39 files changed, 7302 insertions, 2458 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2b7dfb4..11baf5d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,18 @@
+2018-04-30 Francois H. Theron <francois.theron@netronome.com>
+
+ * Makefile.am: Added NFP files to build.
+ * archures.c: Added bfd_arch_nfp
+ * config.bfd: Added NFP support.
+ * configure.ac: Added NFP support.
+ * cpu-nfp.c: New, for NFP support.
+ * elf-bfd.h: Added elf_section_info()
+ * elf64-nfp.c: New, for NFP support.
+ * po/SRC-POTFILES.in: Added NFP source files.
+ * targets.c: Added nfp_elf64_vec
+ * bfd-in2.h: Regenerate.
+ * Makefile.in: Regenerate.
+ * configure: Regenerate.
+
2018-04-27 Alan Modra <amodra@gmail.com>
* bfd-in2.h: Regenerate.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 4f5610d..8500a4f 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -135,6 +135,7 @@ ALL_MACHINES = \
cpu-msp430.lo \
cpu-mt.lo \
cpu-nds32.lo \
+ cpu-nfp.lo \
cpu-nios2.lo \
cpu-ns32k.lo \
cpu-or1k.lo \
@@ -218,6 +219,7 @@ ALL_MACHINES_CFILES = \
cpu-msp430.c \
cpu-mt.c \
cpu-nds32.c \
+ cpu-nfp.c \
cpu-ns32k.c \
cpu-nios2.c \
cpu-or1k.c \
@@ -555,6 +557,7 @@ BFD64_BACKENDS = \
elf64-mips.lo \
elfxx-mips.lo \
elf64-mmix.lo \
+ elf64-nfp.lo \
elf64-ppc.lo \
elf32-riscv.lo \
elf64-riscv.lo \
@@ -590,6 +593,7 @@ BFD64_BACKENDS_CFILES = \
elf64-ia64-vms.c \
elf64-mips.c \
elf64-mmix.c \
+ elf64-nfp.c \
elf64-ppc.c \
elf64-s390.c \
elf64-sparc.c \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 3acbdaa..ccd9ce1 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -468,6 +468,7 @@ ALL_MACHINES = \
cpu-msp430.lo \
cpu-mt.lo \
cpu-nds32.lo \
+ cpu-nfp.lo \
cpu-nios2.lo \
cpu-ns32k.lo \
cpu-or1k.lo \
@@ -551,6 +552,7 @@ ALL_MACHINES_CFILES = \
cpu-msp430.c \
cpu-mt.c \
cpu-nds32.c \
+ cpu-nfp.c \
cpu-ns32k.c \
cpu-nios2.c \
cpu-or1k.c \
@@ -890,6 +892,7 @@ BFD64_BACKENDS = \
elf64-mips.lo \
elfxx-mips.lo \
elf64-mmix.lo \
+ elf64-nfp.lo \
elf64-ppc.lo \
elf32-riscv.lo \
elf64-riscv.lo \
@@ -925,6 +928,7 @@ BFD64_BACKENDS_CFILES = \
elf64-ia64-vms.c \
elf64-mips.c \
elf64-mmix.c \
+ elf64-nfp.c \
elf64-ppc.c \
elf64-s390.c \
elf64-sparc.c \
@@ -1259,6 +1263,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-msp430.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nds32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nfp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or1k.Plo@am__quote@
@@ -1382,6 +1387,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ia64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mips.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mmix.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-nfp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ppc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-riscv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-s390.Plo@am__quote@
diff --git a/bfd/archures.c b/bfd/archures.c
index 2536949..4c20664 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -511,6 +511,9 @@ DESCRIPTION
.#define bfd_mach_wasm32 1
. bfd_arch_pru, {* PRU. *}
.#define bfd_mach_pru 0
+. bfd_arch_nfp, {* Netronome Flow Processor *}
+.#define bfd_mach_nfp3200 0x3200
+.#define bfd_mach_nfp6000 0x6000
. bfd_arch_last
. };
*/
@@ -601,6 +604,7 @@ extern const bfd_arch_info_type bfd_ft32_arch;
extern const bfd_arch_info_type bfd_msp430_arch;
extern const bfd_arch_info_type bfd_mt_arch;
extern const bfd_arch_info_type bfd_nds32_arch;
+extern const bfd_arch_info_type bfd_nfp_arch;
extern const bfd_arch_info_type bfd_nios2_arch;
extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_or1k_arch;
@@ -689,6 +693,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
&bfd_msp430_arch,
&bfd_mt_arch,
&bfd_nds32_arch,
+ &bfd_nfp_arch,
&bfd_nios2_arch,
&bfd_ns32k_arch,
&bfd_or1k_arch,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 40d33ea..4822686 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2381,6 +2381,9 @@ enum bfd_architecture
#define bfd_mach_wasm32 1
bfd_arch_pru, /* PRU. */
#define bfd_mach_pru 0
+ bfd_arch_nfp, /* Netronome Flow Processor */
+#define bfd_mach_nfp3200 0x3200
+#define bfd_mach_nfp6000 0x6000
bfd_arch_last
};
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 0b40636..bbd4194 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -182,6 +182,7 @@ m68*) targ_archs=bfd_m68k_arch ;;
microblaze*) targ_archs=bfd_microblaze_arch ;;
mips*) targ_archs=bfd_mips_arch ;;
nds32*) targ_archs=bfd_nds32_arch ;;
+nfp) targ_archs=bfd_nfp_arch ;;
nios2*) targ_archs=bfd_nios2_arch ;;
or1k*|or1knd*) targ_archs=bfd_or1k_arch ;;
pdp11*) targ_archs=bfd_pdp11_arch ;;
@@ -992,6 +993,12 @@ case "${targ}" in
targ_selvecs=nds32_elf32_le_vec
;;
+#ifdef BFD64
+ nfp-*-*)
+ targ_defvec=nfp_elf64_vec
+ ;;
+#endif
+
ns32k-pc532-mach* | ns32k-pc532-ux*)
targ_defvec=ns32k_aout_pc532mach_vec
targ_underscore=yes
diff --git a/bfd/configure b/bfd/configure
index ab9e8ee..5aca725 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -14482,6 +14482,7 @@ do
nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
+ nfp_elf64_vec) tb="$tb elf64-nfp.lo elf64.lo $elf" ;;
nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index ae79461..3cef5f9 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -559,6 +559,7 @@ do
nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
+ nfp_elf64_vec) tb="$tb elf64-nfp.lo elf64.lo $elf" ;;
nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
diff --git a/bfd/cpu-nfp.c b/bfd/cpu-nfp.c
new file mode 100644
index 0000000..ef97f86
--- /dev/null
+++ b/bfd/cpu-nfp.c
@@ -0,0 +1,62 @@
+/* BFD library support routines for the NFP.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+
+static const bfd_arch_info_type *
+bfd_nfp_compatible (const bfd_arch_info_type * a,
+ const bfd_arch_info_type * b)
+{
+ if (a->arch != b->arch)
+ return NULL;
+
+ if (a->mach != b->mach)
+ return NULL;
+
+ return a;
+}
+
+#define N(machine, print, default, next) \
+{ \
+ 32, \
+ 64, \
+ 8, \
+ bfd_arch_nfp, \
+ machine, \
+ "nfp", \
+ print, \
+ 3, \
+ default, \
+ bfd_nfp_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ next \
+}
+
+static const bfd_arch_info_type arch_info_struct[] =
+{
+ N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL)
+};
+
+const bfd_arch_info_type bfd_nfp_arch =
+ N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct[0]);
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 9c900b7..7b74690 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1671,6 +1671,7 @@ struct bfd_elf_section_data
#define elf_linked_to_section(sec) (elf_section_data(sec)->linked_to)
#define elf_section_type(sec) (elf_section_data(sec)->this_hdr.sh_type)
#define elf_section_flags(sec) (elf_section_data(sec)->this_hdr.sh_flags)
+#define elf_section_info(sec) (elf_section_data(sec)->this_hdr.sh_info)
#define elf_group_name(sec) (elf_section_data(sec)->group.name)
#define elf_group_id(sec) (elf_section_data(sec)->group.id)
#define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group)
diff --git a/bfd/elf64-nfp.c b/bfd/elf64-nfp.c
new file mode 100755
index 0000000..3cdda3d
--- /dev/null
+++ b/bfd/elf64-nfp.c
@@ -0,0 +1,276 @@
+/* NFP-specific support for 64-bit ELF
+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+#include "elf/nfp.h"
+#include "bfd_stdint.h"
+
+
+static bfd_reloc_status_type
+elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED,
+ arelent * reloc_entry,
+ asymbol * symbol,
+ void *data ATTRIBUTE_UNUSED,
+ asection * input_section,
+ bfd * output_bfd,
+ char **error_message ATTRIBUTE_UNUSED);
+
+/* We don't actually apply any relocations in this toolset
+ so we make them all do nothing, but at least display useful
+ names.
+ Most of these are mainly used by the NFP toolchain to resolve things
+ before the final ELF file is created. */
+static reloc_howto_type elf_nfp_howto_table[] =
+{
+ HOWTO (R_NFP_NOTYPE, /* Type. */
+ 0, /* Rightshift. */
+ 3, /* Size. */
+ 0, /* Bitsize. */
+ FALSE, /* PC_relative. */
+ 0, /* Bitpos. */
+ complain_overflow_dont,/* Complain_on_overflow. */
+ elf64_nfp_reloc, /* Special_function. */
+ "R_NFP_NOTYPE", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0, /* Src_mask. */
+ 0, /* Dst_mask. */
+ FALSE), /* PCrel_offset. */
+ HOWTO (R_NFP_W32LE, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32LE",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SRC8_A, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SRC8_A",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SRC8_B, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SRC8_B",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_IMMED8_I, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_IMMED8_I",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SC, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SC",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_IMMED_LO16_I_A, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_IMMED_LO16_I_A",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_IMMED_LO16_I_B, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_IMMED_LO16_I_B",
+ TRUE, 0, 0, FALSE),
+ HOWTO (R_NFP_SRC7_B, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SRC7_B",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SRC7_A, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SRC7_A",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SRC8_I_B, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SRC8_I_B",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SRC8_I_A, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SRC8_I_A",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_IMMED_HI16_I_A, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_IMMED_HI16_I_A",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_IMMED_HI16_I_B, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_IMMED_HI16_I_B",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W64LE, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W64LE",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_SH_INFO, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_SH_INFO",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W32BE, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32BE",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W64BE, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W64BE",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W32_29_24, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32_29_24",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W32LE_AND, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32LE_AND",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W32BE_AND, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32BE_AND",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W32LE_OR, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32LE_OR",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W32BE_OR, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W32BE_OR",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W64LE_AND, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W64LE_AND",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W64BE_AND, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W64BE_AND",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W64LE_OR, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W64LE_OR",
+ FALSE, 0, 0, FALSE),
+ HOWTO (R_NFP_W64BE_OR, 0, 3, 0, FALSE, 0,
+ complain_overflow_dont, elf64_nfp_reloc,
+ "R_NFP_W64BE_OR",
+ FALSE, 0, 0, FALSE)
+};
+
+static bfd_boolean
+elf64_nfp_object_p (bfd * abfd)
+{
+ /* If the e_machine value is one of the unofficial ones, we convert
+ it first and set e_flags accordingly for later consistency. */
+ if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_3200)
+ {
+ elf_elfheader (abfd)->e_machine = EM_NFP;
+ elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0);
+ elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_3200);
+ }
+ else if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_6000)
+ {
+ elf_elfheader (abfd)->e_machine = EM_NFP;
+ elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0);
+ elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_6000);
+ }
+
+ if (elf_elfheader (abfd)->e_machine == EM_NFP)
+ {
+ int e_mach = EF_NFP_MACH (elf_elfheader (abfd)->e_flags);
+
+ switch (e_mach)
+ {
+ case E_NFP_MACH_3200:
+ case E_NFP_MACH_6000:
+ if (!bfd_default_set_arch_mach (abfd, bfd_arch_nfp, e_mach))
+ return FALSE;
+ default:
+ break;
+ }
+ }
+
+ return TRUE;
+}
+
+static bfd_boolean
+elf64_nfp_section_from_shdr (bfd * abfd,
+ Elf_Internal_Shdr * hdr,
+ const char *name, int shindex)
+{
+ switch (hdr->sh_type)
+ {
+ case SHT_NFP_INITREG:
+ case SHT_NFP_MECONFIG:
+ case SHT_NFP_UDEBUG:
+ return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
+ default:
+ return FALSE;
+ }
+}
+
+bfd_reloc_status_type
+elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED,
+ arelent * reloc_entry ATTRIBUTE_UNUSED,
+ asymbol * symbol ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED,
+ asection * input_section ATTRIBUTE_UNUSED,
+ bfd * output_bfd ATTRIBUTE_UNUSED,
+ char **error_message ATTRIBUTE_UNUSED)
+{
+ return bfd_reloc_ok;
+}
+
+static bfd_boolean
+elf64_nfp_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED,
+ arelent * cache_ptr, Elf_Internal_Rela * dst)
+{
+ unsigned int r_type;
+
+ r_type = ELF64_R_TYPE (dst->r_info);
+ if (r_type >= R_NFP_MAX)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, r_type);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
+ cache_ptr->howto = &elf_nfp_howto_table[r_type];
+ return TRUE;
+}
+
+static reloc_howto_type *
+elf64_nfp_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code ATTRIBUTE_UNUSED)
+{
+ return NULL;
+}
+
+static reloc_howto_type *
+elf64_nfp_reloc_name_lookup (bfd * abfd ATTRIBUTE_UNUSED,
+ const char *r_name ATTRIBUTE_UNUSED)
+{
+ return NULL;
+}
+
+#define ELF_ARCH bfd_arch_nfp
+#define ELF_MACHINE_CODE EM_NFP
+#define ELF_MACHINE_ALT1 E_NFP_MACH_6000
+#define ELF_MACHINE_ALT2 E_NFP_MACH_3200
+#define ELF_MAXPAGESIZE 1
+#define TARGET_LITTLE_NAME "elf64-nfp"
+#define TARGET_LITTLE_SYM nfp_elf64_vec
+
+#define elf_backend_object_p elf64_nfp_object_p
+#define elf_backend_section_from_shdr elf64_nfp_section_from_shdr
+#define elf_info_to_howto elf64_nfp_info_to_howto
+#define bfd_elf64_bfd_reloc_type_lookup elf64_nfp_reloc_type_lookup
+#define bfd_elf64_bfd_reloc_name_lookup elf64_nfp_reloc_name_lookup
+
+#include "elf64-target.h"
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index 27139e5..7e82a33 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -85,6 +85,7 @@ cpu-moxie.c
cpu-msp430.c
cpu-mt.c
cpu-nds32.c
+cpu-nfp.c
cpu-nios2.c
cpu-ns32k.c
cpu-or1k.c
@@ -209,6 +210,7 @@ elf64-hppa.h
elf64-ia64-vms.c
elf64-mips.c
elf64-mmix.c
+elf64-nfp.c
elf64-ppc.c
elf64-s390.c
elf64-sparc.c
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index a6b2adb..36e0e67 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2018-04-24 11:57+0100\n"
+"POT-Creation-Date: 2018-04-30 11:54+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"
@@ -67,7 +67,7 @@ msgstr ""
#: aoutx.h:4405 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2773
#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:1040
#: elf-hppa.h:1068 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:519
-#: elf32-arm.c:1852 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698
+#: elf32-arm.c:1944 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698
#: elf32-cr16.c:653 elf32-cr16.c:683 elf32-cr16c.c:186 elf32-cris.c:467
#: elf32-crx.c:429 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
#: elf32-dlx.c:548 elf32-epiphany.c:376 elf32-fr30.c:381 elf32-frv.c:2558
@@ -88,11 +88,11 @@ msgstr ""
#: elf32-xstormy16.c:395 elf32-xtensa.c:454 elf32-xtensa.c:488
#: elf64-alpha.c:1112 elf64-alpha.c:4101 elf64-alpha.c:4249
#: elf64-ia64-vms.c:254 elf64-ia64-vms.c:3440 elf64-mips.c:3623
-#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-ppc.c:2281 elf64-ppc.c:2555
-#: elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:285
-#: elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955 elfxx-sparc.c:589
-#: elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912 elfxx-tilegx.c:952
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126
+#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-nfp.c:239 elf64-ppc.c:2281
+#: elf64-ppc.c:2555 elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378
+#: elf64-x86-64.c:285 elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955
+#: elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912
+#: elfxx-tilegx.c:952 /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2224 elf32-ia64.c:211
#: elf32-ia64.c:3863 elf64-ia64.c:211 elf64-ia64.c:3863
#, c-format
@@ -264,148 +264,12 @@ msgstr ""
msgid "using multiple gp values"
msgstr ""
-#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8972 elf32-mcore.c:100
-#: elf32-mcore.c:455 elf32-ppc.c:8751 elf32-ppc.c:9883 elf64-ppc.c:14922
+#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8979 elf32-mcore.c:100
+#: elf32-mcore.c:455 elf32-ppc.c:8751 elf32-ppc.c:9883 elf64-ppc.c:14932
#, c-format
msgid "%pB: %s unsupported"
msgstr ""
-#: coff-arm.c:1037
-#, c-format
-msgid "%pB: unable to find THUMB glue '%s' for `%s'"
-msgstr ""
-
-#: coff-arm.c:1066
-#, c-format
-msgid "%pB: unable to find ARM glue '%s' for `%s'"
-msgstr ""
-
-#: coff-arm.c:1367
-#, c-format
-msgid ""
-"%pB(%s): warning: interworking not enabled; first occurrence: %pB: arm call "
-"to thumb"
-msgstr ""
-
-#: coff-arm.c:1457
-#, c-format
-msgid ""
-"%pB(%s): warning: interworking not enabled; first occurrence: %pB: thumb "
-"call to arm; consider relinking with --support-old-code enabled"
-msgstr ""
-
-#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127
-#, c-format
-msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
-msgstr ""
-
-#: coff-arm.c:2076
-#, c-format
-msgid "%pB: illegal symbol index in reloc: %ld"
-msgstr ""
-
-#: coff-arm.c:2208
-#, c-format
-msgid "error: %pB is compiled for APCS-%d, whereas %pB is compiled for APCS-%d"
-msgstr ""
-
-#: coff-arm.c:2221 elf32-arm.c:19614
-#, c-format
-msgid ""
-"error: %pB passes floats in float registers, whereas %pB passes them in "
-"integer registers"
-msgstr ""
-
-#: coff-arm.c:2226 elf32-arm.c:19618
-#, c-format
-msgid ""
-"error: %pB passes floats in integer registers, whereas %pB passes them in "
-"float registers"
-msgstr ""
-
-#: coff-arm.c:2238
-#, c-format
-msgid ""
-"error: %pB is compiled as position independent code, whereas target %pB is "
-"absolute position"
-msgstr ""
-
-#: coff-arm.c:2243
-#, c-format
-msgid ""
-"error: %pB is compiled as absolute position code, whereas target %pB is "
-"position independent"
-msgstr ""
-
-#: coff-arm.c:2270 elf32-arm.c:19683
-#, c-format
-msgid "warning: %pB supports interworking, whereas %pB does not"
-msgstr ""
-
-#: coff-arm.c:2275 elf32-arm.c:19689
-#, c-format
-msgid "warning: %pB does not support interworking, whereas %pB does"
-msgstr ""
-
-#: coff-arm.c:2298
-#, c-format
-msgid "private flags = %x:"
-msgstr ""
-
-#: coff-arm.c:2306 elf32-arm.c:14191
-#, c-format
-msgid " [floats passed in float registers]"
-msgstr ""
-
-#: coff-arm.c:2308
-#, c-format
-msgid " [floats passed in integer registers]"
-msgstr ""
-
-#: coff-arm.c:2311 elf32-arm.c:14194
-#, c-format
-msgid " [position independent]"
-msgstr ""
-
-#: coff-arm.c:2313
-#, c-format
-msgid " [absolute position]"
-msgstr ""
-
-#: coff-arm.c:2317
-#, c-format
-msgid " [interworking flag not initialised]"
-msgstr ""
-
-#: coff-arm.c:2319
-#, c-format
-msgid " [interworking supported]"
-msgstr ""
-
-#: coff-arm.c:2321
-#, c-format
-msgid " [interworking not supported]"
-msgstr ""
-
-#: coff-arm.c:2366 elf32-arm.c:13052
-#, c-format
-msgid ""
-"warning: not setting interworking flag of %pB since it has already been "
-"specified as non-interworking"
-msgstr ""
-
-#: coff-arm.c:2369 elf32-arm.c:13056
-#, c-format
-msgid "warning: clearing the interworking flag of %pB due to outside request"
-msgstr ""
-
-#: coff-arm.c:2426 elf32-arm.c:13101
-#, c-format
-msgid ""
-"warning: clearing the interworking flag of %pB because non-interworking code "
-"in %pB has been linked with it"
-msgstr ""
-
#: coff-mips.c:640 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330
#: elf64-mips.c:3131 elfn32-mips.c:2956
msgid "GP relative relocation when _gp not defined"
@@ -481,6 +345,11 @@ msgstr ""
msgid "unsupported relocation type %#x"
msgstr ""
+#: coff-tic80.c:672 cofflink.c:3127
+#, c-format
+msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
+msgstr ""
+
#: coffcode.h:954
#, c-format
msgid "%pB: unable to load COMDAT section name"
@@ -1018,7 +887,7 @@ msgstr ""
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf-m10300.c:2094 elf32-arm.c:12566 elf32-i386.c:3457 elf32-m32r.c:2539
+#: elf-m10300.c:2094 elf32-arm.c:13225 elf32-i386.c:3457 elf32-m32r.c:2539
#: elf32-m68k.c:3899 elf32-s390.c:3208 elf32-sh.c:3796 elf32-tilepro.c:3409
#: elf32-xtensa.c:2947 elf64-s390.c:3125 elf64-x86-64.c:3804 elfxx-sparc.c:3908
#: elfxx-tilegx.c:3793 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5258
@@ -1046,7 +915,7 @@ msgid "internal error: suspicious relocation type used in shared library"
msgstr ""
#: elf-m10300.c:2649 elf32-avr.c:2487 elf32-frv.c:5641 elf64-ia64-vms.c:364
-#: elfxx-sparc.c:2797 reloc.c:8078 reloc16.c:155 elf32-ia64.c:362
+#: elfxx-sparc.c:2797 reloc.c:8095 reloc16.c:155 elf32-ia64.c:362
#: elf64-ia64.c:362
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
@@ -1256,53 +1125,53 @@ msgstr ""
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr ""
-#: elf.c:4394
+#: elf.c:4401
#, c-format
msgid "%pB: GNU_MBIN section `%pA' has invalid sh_info field: %d"
msgstr ""
-#: elf.c:4940
+#: elf.c:4947
#, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr ""
-#: elf.c:4947
+#: elf.c:4954
#, c-format
msgid "\t TLS: %pA"
msgstr ""
-#: elf.c:4951
+#: elf.c:4958
#, c-format
msgid "\tnon-TLS: %pA"
msgstr ""
-#: elf.c:5447
+#: elf.c:5454
#, c-format
msgid ""
"%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:5475
+#: elf.c:5482
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:5563
+#: elf.c:5570
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr ""
-#: elf.c:5700
+#: elf.c:5707
#, c-format
msgid "%pB: section `%pA' can't be allocated in segment %d"
msgstr ""
-#: elf.c:5748
+#: elf.c:5755
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:5981
+#: elf.c:5988
#, c-format
msgid ""
"%pB: error: non-load segment %d includes file header and/or program header"
@@ -1311,47 +1180,47 @@ 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.
-#: elf.c:6158
+#: elf.c:6165
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr ""
-#: elf.c:6503
+#: elf.c:6510
#, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr ""
-#: elf.c:6847
+#: elf.c:6854
#, c-format
msgid ""
"%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this "
"intentional?"
msgstr ""
-#: elf.c:7461
+#: elf.c:7468
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr ""
-#: elf.c:7960
+#: elf.c:7967
#, c-format
msgid ""
"unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:8293
+#: elf.c:8300
#, c-format
msgid "%pB: .gnu.version_r invalid entry"
msgstr ""
-#: elf.c:8420
+#: elf.c:8427
#, c-format
msgid "%pB: .gnu.version_d invalid entry"
msgstr ""
#: elf32-arc.c:442 elf32-frv.c:6630 elf32-iq2000.c:870 elf32-m32c.c:914
#: elf32-mt.c:562 elf32-rl78.c:1261 elf32-rx.c:3200 elf32-visium.c:841
-#: elf64-ppc.c:6184
+#: elf64-ppc.c:6194
#, c-format
msgid "private flags = 0x%lx:"
msgstr ""
@@ -1455,7 +1324,7 @@ msgstr ""
msgid "%pB(%pA): internal error: unknown error"
msgstr ""
-#: elf32-arc.c:1985 elf32-arm.c:14552 elf32-metag.c:2257 elfxx-mips.c:8905
+#: elf32-arc.c:1985 elf32-arm.c:15270 elf32-metag.c:2257 elfxx-mips.c:8905
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7394
#: /work/sources/binutils/current/bfd/elfnn-riscv.c:474
#, c-format
@@ -1474,7 +1343,7 @@ msgstr ""
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr ""
-#: elf32-arm.c:4030 elf32-arm.c:4064 elf32-arm.c:4083 elf32-arm.c:4135
+#: elf32-arm.c:4294 elf32-arm.c:4328 elf32-arm.c:4347 elf32-arm.c:4399
#, c-format
msgid ""
"%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE "
@@ -1482,141 +1351,141 @@ msgid ""
"movw instruction"
msgstr ""
-#: elf32-arm.c:4095 elf32-arm.c:4149 elf32-arm.c:8813 elf32-arm.c:8903
+#: elf32-arm.c:4359 elf32-arm.c:4413 elf32-arm.c:9082 elf32-arm.c:9172
#, c-format
msgid ""
"%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call "
"to %s"
msgstr ""
-#: elf32-arm.c:4423
+#: elf32-arm.c:4687
#, c-format
msgid "no address assigned to the veneers output section %s"
msgstr ""
-#: elf32-arm.c:4498 elf32-arm.c:6634 elf32-hppa.c:577 elf32-m68hc1x.c:165
-#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4737
+#: elf32-arm.c:4762 elf32-arm.c:6898 elf32-hppa.c:577 elf32-m68hc1x.c:165
+#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4747
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:3099
#, c-format
msgid "%pB: cannot create stub entry %s"
msgstr ""
-#: elf32-arm.c:5683
+#: elf32-arm.c:5947
#, c-format
msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
msgstr ""
-#: elf32-arm.c:5692
+#: elf32-arm.c:5956
#, c-format
msgid ""
"%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
msgstr ""
-#: elf32-arm.c:5731
+#: elf32-arm.c:5995
#, c-format
msgid ""
"%pB: invalid standard symbol `%s'; it must be a global or weak function "
"symbol"
msgstr ""
-#: elf32-arm.c:5737
+#: elf32-arm.c:6001
#, c-format
msgid "%pB: absent standard symbol `%s'"
msgstr ""
-#: elf32-arm.c:5749
+#: elf32-arm.c:6013
#, c-format
msgid "%pB: `%s' and its special symbol are in different sections"
msgstr ""
-#: elf32-arm.c:5761
+#: elf32-arm.c:6025
#, c-format
msgid "%pB: entry function `%s' not output"
msgstr ""
-#: elf32-arm.c:5768
+#: elf32-arm.c:6032
#, c-format
msgid "%pB: entry function `%s' is empty"
msgstr ""
-#: elf32-arm.c:5897
+#: elf32-arm.c:6161
#, c-format
msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
msgstr ""
-#: elf32-arm.c:5943
+#: elf32-arm.c:6207
#, c-format
msgid ""
"%pB: invalid import library entry: `%s'; symbol should be absolute, global "
"and refer to Thumb functions"
msgstr ""
-#: elf32-arm.c:5965
+#: elf32-arm.c:6229
#, c-format
msgid "entry function `%s' disappeared from secure code"
msgstr ""
-#: elf32-arm.c:5989
+#: elf32-arm.c:6253
#, c-format
msgid "`%s' refers to a non entry function"
msgstr ""
-#: elf32-arm.c:6004
+#: elf32-arm.c:6268
#, c-format
msgid "%pB: visibility of symbol `%s' has changed"
msgstr ""
-#: elf32-arm.c:6013
+#: elf32-arm.c:6277
#, c-format
msgid "%pB: incorrect size for symbol `%s'"
msgstr ""
-#: elf32-arm.c:6032
+#: elf32-arm.c:6296
#, c-format
msgid "offset of veneer for entry function `%s' not a multiple of its size"
msgstr ""
-#: elf32-arm.c:6052
+#: elf32-arm.c:6316
msgid ""
"new entry function(s) introduced but no output import library specified:"
msgstr ""
-#: elf32-arm.c:6060
+#: elf32-arm.c:6324
#, c-format
msgid "start address of `%s' is different from previous link"
msgstr ""
-#: elf32-arm.c:6767 elf32-arm.c:6803
+#: elf32-arm.c:7031 elf32-arm.c:7067
#, c-format
msgid "unable to find %s glue '%s' for '%s'"
msgstr ""
-#: elf32-arm.c:7518
+#: elf32-arm.c:7782
#, 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:7749
+#: elf32-arm.c:8013
#, c-format
msgid ""
"%pB: warning: selected VFP11 erratum workaround is not necessary for target "
"architecture"
msgstr ""
-#: elf32-arm.c:7776
+#: elf32-arm.c:8040
#, c-format
msgid ""
"%pB: warning: selected STM32L4XX erratum workaround is not necessary for "
"target architecture"
msgstr ""
-#: elf32-arm.c:8313 elf32-arm.c:8333 elf32-arm.c:8399 elf32-arm.c:8418
+#: elf32-arm.c:8577 elf32-arm.c:8597 elf32-arm.c:8663 elf32-arm.c:8682
#, c-format
msgid "%pB: unable to find %s veneer `%s'"
msgstr ""
-#: elf32-arm.c:8625
+#: elf32-arm.c:8889
#, c-format
msgid ""
"%pB(%pA+%#x): error: multiple load detected in non-last IT block "
@@ -1624,182 +1493,201 @@ msgid ""
"it to generate only one instruction per IT block"
msgstr ""
-#: elf32-arm.c:8723
+#: elf32-arm.c:8989
#, c-format
msgid "invalid TARGET2 relocation type '%s'"
msgstr ""
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9465
+#: elf32-arm.c:9791
#, c-format
msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
msgstr ""
-#: elf32-arm.c:9730 elf32-arm.c:9772
+#: elf32-arm.c:10095 elf32-arm.c:10137
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
msgstr ""
-#: elf32-arm.c:10114
+#: elf32-arm.c:10481
msgid "shared object"
msgstr ""
-#: elf32-arm.c:10117
+#: elf32-arm.c:10484
msgid "PIE executable"
msgstr ""
-#: elf32-arm.c:10120
+#: elf32-arm.c:10487
#, 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:10251 elf32-arm.c:10678
+#: elf32-arm.c:10624 elf32-arm.c:11051
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11547 elf32-arm.c:11573
+#: elf32-arm.c:11954 elf32-arm.c:11980
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by "
"TLS_GOTDESC"
msgstr ""
-#: elf32-arm.c:11605 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366
+#: elf32-arm.c:12026 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
msgstr ""
-#: elf32-arm.c:11819
+#: elf32-arm.c:12240
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group "
"relocations"
msgstr ""
-#: elf32-arm.c:11860 elf32-arm.c:11952 elf32-arm.c:12040 elf32-arm.c:12130
+#: elf32-arm.c:12281 elf32-arm.c:12373 elf32-arm.c:12461 elf32-arm.c:12551
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group "
"relocation %s"
msgstr ""
-#: elf32-arm.c:12398 elf32-sh.c:3685
+#: elf32-arm.c:13057 elf32-sh.c:3685
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
msgstr ""
-#: elf32-arm.c:12511 elf32-m68k.c:3936 elf32-xtensa.c:2689
+#: elf32-arm.c:13170 elf32-m68k.c:3936 elf32-xtensa.c:2689
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6466
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr ""
-#: elf32-arm.c:12513 elf32-m68k.c:3938 elf32-xtensa.c:2691
+#: elf32-arm.c:13172 elf32-m68k.c:3938 elf32-xtensa.c:2691
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6468
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:12596 elf32-tic6x.c:2708
+#: elf32-arm.c:13255 elf32-tic6x.c:2708
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6802
msgid "out of range"
msgstr ""
-#: elf32-arm.c:12600 elf32-nios2.c:4500 elf32-pru.c:835 elf32-tic6x.c:2712
+#: elf32-arm.c:13259 elf32-nios2.c:4500 elf32-pru.c:835 elf32-tic6x.c:2712
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6806
msgid "unsupported relocation"
msgstr ""
-#: elf32-arm.c:12608 elf32-nios2.c:4510 elf32-pru.c:845 elf32-tic6x.c:2720
+#: elf32-arm.c:13267 elf32-nios2.c:4510 elf32-pru.c:845 elf32-tic6x.c:2720
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6814
msgid "unknown error"
msgstr ""
-#: elf32-arm.c:13188
+#: elf32-arm.c:13711
+#, c-format
+msgid ""
+"warning: not setting interworking flag of %pB since it has already been "
+"specified as non-interworking"
+msgstr ""
+
+#: elf32-arm.c:13715
+#, c-format
+msgid "warning: clearing the interworking flag of %pB due to outside request"
+msgstr ""
+
+#: elf32-arm.c:13760
+#, 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:13847
#, c-format
msgid "%pB: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:13196
+#: elf32-arm.c:13855
#, c-format
msgid "warning: %pB: unknown EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:13463
+#: elf32-arm.c:14122
#, c-format
msgid "error: %pB: unknown CPU architecture"
msgstr ""
-#: elf32-arm.c:13501 elf32-nios2.c:2946
+#: elf32-arm.c:14160 elf32-nios2.c:2946
#, c-format
msgid "error: %pB: conflicting CPU architectures %d/%d"
msgstr ""
-#: elf32-arm.c:13598
+#: elf32-arm.c:14257
#, c-format
msgid ""
"Error: %pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:13627
+#: elf32-arm.c:14286
#, c-format
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:13785
+#: elf32-arm.c:14444
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr ""
-#: elf32-arm.c:13811
+#: elf32-arm.c:14470
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:13950
+#: elf32-arm.c:14609
#, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr ""
-#: elf32-arm.c:13959
+#: elf32-arm.c:14618
#, c-format
msgid "error: %pB: conflicting use of R9"
msgstr ""
-#: elf32-arm.c:13971
+#: elf32-arm.c:14630
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:13984
+#: elf32-arm.c:14643
#, 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:14015
+#: elf32-arm.c:14674
#, 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:14027
+#: elf32-arm.c:14686
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:14044
+#: elf32-arm.c:14703
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr ""
-#: elf32-arm.c:14080
+#: elf32-arm.c:14739
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
@@ -1809,7 +1697,7 @@ 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.
-#: elf32-arm.c:14167 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410
+#: elf32-arm.c:14826 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410
#: elf32-m68k.c:1201 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537
#: elf32-xgate.c:672 elfxx-mips.c:15792
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6968
@@ -1817,122 +1705,137 @@ msgstr ""
msgid "private flags = %lx:"
msgstr ""
-#: elf32-arm.c:14176
+#: elf32-arm.c:14835
#, c-format
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.c:14184
+#: elf32-arm.c:14843
#, c-format
msgid " [VFP float format]"
msgstr ""
-#: elf32-arm.c:14186
+#: elf32-arm.c:14845
#, c-format
msgid " [Maverick float format]"
msgstr ""
-#: elf32-arm.c:14188
+#: elf32-arm.c:14847
#, c-format
msgid " [FPA float format]"
msgstr ""
-#: elf32-arm.c:14197
+#: elf32-arm.c:14850
+#, c-format
+msgid " [floats passed in float registers]"
+msgstr ""
+
+#: elf32-arm.c:14853 elf32-arm.c:14939
+#, c-format
+msgid " [position independent]"
+msgstr ""
+
+#: elf32-arm.c:14856
#, c-format
msgid " [new ABI]"
msgstr ""
-#: elf32-arm.c:14200
+#: elf32-arm.c:14859
#, c-format
msgid " [old ABI]"
msgstr ""
-#: elf32-arm.c:14203
+#: elf32-arm.c:14862
#, c-format
msgid " [software FP]"
msgstr ""
-#: elf32-arm.c:14212
+#: elf32-arm.c:14871
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:14215 elf32-arm.c:14226
+#: elf32-arm.c:14874 elf32-arm.c:14885
#, c-format
msgid " [sorted symbol table]"
msgstr ""
-#: elf32-arm.c:14217 elf32-arm.c:14228
+#: elf32-arm.c:14876 elf32-arm.c:14887
#, c-format
msgid " [unsorted symbol table]"
msgstr ""
-#: elf32-arm.c:14223
+#: elf32-arm.c:14882
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:14231
+#: elf32-arm.c:14890
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr ""
-#: elf32-arm.c:14234
+#: elf32-arm.c:14893
#, c-format
msgid " [mapping symbols precede others]"
msgstr ""
-#: elf32-arm.c:14241
+#: elf32-arm.c:14900
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:14245
+#: elf32-arm.c:14904
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:14249
+#: elf32-arm.c:14908
#, c-format
msgid " [Version5 EABI]"
msgstr ""
-#: elf32-arm.c:14252
+#: elf32-arm.c:14911
#, c-format
msgid " [soft-float ABI]"
msgstr ""
-#: elf32-arm.c:14255
+#: elf32-arm.c:14914
#, c-format
msgid " [hard-float ABI]"
msgstr ""
-#: elf32-arm.c:14261
+#: elf32-arm.c:14920
#, c-format
msgid " [BE8]"
msgstr ""
-#: elf32-arm.c:14264
+#: elf32-arm.c:14923
#, c-format
msgid " [LE8]"
msgstr ""
-#: elf32-arm.c:14270
+#: elf32-arm.c:14929
#, c-format
msgid " <EABI version unrecognised>"
msgstr ""
-#: elf32-arm.c:14277
+#: elf32-arm.c:14936
#, c-format
msgid " [relocatable executable]"
msgstr ""
-#: elf32-arm.c:14282 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971
+#: elf32-arm.c:14942
+#, c-format
+msgid " [FDPIC ABI supplement]"
+msgstr ""
+
+#: elf32-arm.c:14947 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971
#, c-format
msgid "<Unrecognised flag bits set>"
msgstr ""
-#: elf32-arm.c:14399 elf32-i386.c:1517 elf32-s390.c:960 elf32-tic6x.c:2783
+#: elf32-arm.c:15064 elf32-i386.c:1517 elf32-s390.c:960 elf32-tic6x.c:2783
#: elf32-tilepro.c:1479 elf32-xtensa.c:1024 elf64-s390.c:882
#: elf64-x86-64.c:1826 elfxx-sparc.c:1424 elfxx-tilegx.c:1700
#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7260
@@ -1941,92 +1844,122 @@ msgstr ""
msgid "%pB: bad symbol index: %d"
msgstr ""
-#: elf32-arm.c:15667 elf32-hppa.c:2088 elf32-lm32.c:1998 elf32-m32r.c:2110
+#: elf32-arm.c:15455
+#, c-format
+msgid ""
+"FDPIC does not yet support %s relocation to become dynamic for executable"
+msgstr ""
+
+#: elf32-arm.c:16505 elf32-hppa.c:2088 elf32-lm32.c:1998 elf32-m32r.c:2110
#: elf32-metag.c:2797 elf32-nds32.c:3840 elf32-or1k.c:2285 elf32-ppc.c:6550
#: elf32-s390.c:1855 elf32-sh.c:2975 elf32-tic6x.c:3239 elf32-tilepro.c:2245
-#: elf64-ppc.c:10249 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491
+#: elf64-ppc.c:10259 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491
#: elfxx-x86.c:571 /work/sources/binutils/current/bfd/elfnn-aarch64.c:8610
#: /work/sources/binutils/current/bfd/elfnn-riscv.c:1117
#, c-format
msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
msgstr ""
-#: elf32-arm.c:15912
+#: elf32-arm.c:16801
#, c-format
msgid "errors encountered processing file %pB"
msgstr ""
-#: elf32-arm.c:16349 elflink.c:12416 elflink.c:12463
+#: elf32-arm.c:17248 elflink.c:12416 elflink.c:12463
#, c-format
msgid "could not find section %s"
msgstr ""
-#: elf32-arm.c:17525
+#: elf32-arm.c:18459
#, 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:17552
+#: elf32-arm.c:18486
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
-#: elf32-arm.c:18379 elf32-arm.c:18401
+#: elf32-arm.c:19313 elf32-arm.c:19335
#, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr ""
-#: elf32-arm.c:18452
+#: elf32-arm.c:19386
#, 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:18491
+#: elf32-arm.c:19425
#, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr ""
-#: elf32-arm.c:19513
+#: elf32-arm.c:20519
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr ""
-#: elf32-arm.c:19589
+#: elf32-arm.c:20595
#, c-format
msgid ""
"error: source object %pB has EABI version %d, but target %pB has EABI "
"version %d"
msgstr ""
-#: elf32-arm.c:19604
+#: elf32-arm.c:20610
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr ""
-#: elf32-arm.c:19628 elf32-arm.c:19632 elf32-arm.c:19642
+#: elf32-arm.c:20620
+#, c-format
+msgid ""
+"error: %pB passes floats in float registers, whereas %pB passes them in "
+"integer registers"
+msgstr ""
+
+#: elf32-arm.c:20624
+#, c-format
+msgid ""
+"error: %pB passes floats in integer registers, whereas %pB passes them in "
+"float registers"
+msgstr ""
+
+#: elf32-arm.c:20634 elf32-arm.c:20638 elf32-arm.c:20648
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:19646
+#: elf32-arm.c:20652
#, c-format
msgid "error: %pB does not use %s instructions, whereas %pB does"
msgstr ""
-#: elf32-arm.c:19665
+#: elf32-arm.c:20671
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr ""
-#: elf32-arm.c:19669
+#: elf32-arm.c:20675
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr ""
+#: elf32-arm.c:20689
+#, c-format
+msgid "warning: %pB supports interworking, whereas %pB does not"
+msgstr ""
+
+#: elf32-arm.c:20695
+#, c-format
+msgid "warning: %pB does not support interworking, whereas %pB does"
+msgstr ""
+
#: elf32-avr.c:1513 elf32-bfin.c:3135 elf32-cris.c:2041 elf32-epiphany.c:577
#: elf32-fr30.c:602 elf32-frv.c:4057 elf32-ft32.c:502 elf32-ip2k.c:1493
#: elf32-iq2000.c:701 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998
@@ -2873,7 +2806,7 @@ msgstr ""
msgid "%pB: unmatched OMIT_FP in %pA"
msgstr ""
-#: elf32-nds32.c:12642 reloc.c:8292
+#: elf32-nds32.c:12642 reloc.c:8309
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
msgstr ""
@@ -3033,7 +2966,7 @@ msgstr ""
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:5687 elf64-ppc.c:8949
+#: elf32-ppc.c:5687 elf64-ppc.c:8959
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr ""
@@ -3062,7 +2995,7 @@ msgstr ""
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8727 elf64-ppc.c:15724
+#: elf32-ppc.c:8727 elf64-ppc.c:15734
msgid "%H: warning: %s unexpected insn %#x.\n"
msgstr ""
@@ -3114,13 +3047,13 @@ msgstr ""
msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
-#: elf32-ppc.c:11013 elf64-ppc.c:16216
+#: elf32-ppc.c:11013 elf64-ppc.c:16226
msgid ""
"%X%P: text relocations and GNU indirect functions will result in a segfault "
"at runtime\n"
msgstr ""
-#: elf32-ppc.c:11017 elf64-ppc.c:16220
+#: elf32-ppc.c:11017 elf64-ppc.c:16230
msgid ""
"%P: warning: text relocations and GNU indirect functions may result in a "
"segfault at runtime\n"
@@ -3415,7 +3348,7 @@ msgstr ""
msgid "overlay stub relocation overflow"
msgstr ""
-#: elf32-spu.c:1984 elf64-ppc.c:13805
+#: elf32-spu.c:1984 elf64-ppc.c:13815
msgid "stubs don't match calculated size"
msgstr ""
@@ -4164,134 +4097,134 @@ msgid ""
"internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr ""
-#: elf64-ppc.c:5068
+#: elf64-ppc.c:5078
#, c-format
msgid "symbol '%s' has invalid st_other for ABI version 1"
msgstr ""
-#: elf64-ppc.c:5243
+#: elf64-ppc.c:5253
#, c-format
msgid "%pB .opd not allowed in ABI version %d"
msgstr ""
-#: elf64-ppc.c:5757
+#: elf64-ppc.c:5767
#, c-format
msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
msgstr ""
-#: elf64-ppc.c:6152
+#: elf64-ppc.c:6162
#, c-format
msgid "%pB uses unknown e_flags 0x%lx"
msgstr ""
-#: elf64-ppc.c:6160
+#: elf64-ppc.c:6170
#, c-format
msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
msgstr ""
-#: elf64-ppc.c:6188
+#: elf64-ppc.c:6198
#, c-format
msgid " [abiv%ld]"
msgstr ""
-#: elf64-ppc.c:7376
+#: elf64-ppc.c:7386
msgid ""
"%P: copy reloc against `%pT' requires lazy plt linking; avoid setting "
"LD_BIND_NOW=1 or upgrade gcc\n"
msgstr ""
-#: elf64-ppc.c:7645
+#: elf64-ppc.c:7655
#, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr ""
-#: elf64-ppc.c:7872
+#: elf64-ppc.c:7882
#, c-format
msgid "dynreloc miscount for %pB, section %pA"
msgstr ""
-#: elf64-ppc.c:7961
+#: elf64-ppc.c:7971
#, c-format
msgid "%pB: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:7971
+#: elf64-ppc.c:7981
#, c-format
msgid "%pB: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:7993
+#: elf64-ppc.c:8003
#, c-format
msgid "%pB: undefined sym `%s' in .opd section"
msgstr ""
-#: elf64-ppc.c:8477
+#: elf64-ppc.c:8487
msgid ""
"warning: --plt-localentry is especially dangerous without ld.so support to "
"detect ABI violations"
msgstr ""
-#: elf64-ppc.c:8726
+#: elf64-ppc.c:8736
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
-#: elf64-ppc.c:9101 elf64-ppc.c:9738
+#: elf64-ppc.c:9111 elf64-ppc.c:9748
#, c-format
msgid "%s defined on removed toc entry"
msgstr ""
-#: elf64-ppc.c:9466
+#: elf64-ppc.c:9476
#, c-format
msgid "%H: toc optimization is not supported for %s instruction\n"
msgstr ""
-#: elf64-ppc.c:9695
+#: elf64-ppc.c:9705
#, c-format
msgid "%H: %s references optimized away TOC entry\n"
msgstr ""
-#: elf64-ppc.c:10526
+#: elf64-ppc.c:10536
#, c-format
msgid "warning: discarding dynamic section %s"
msgstr ""
-#: elf64-ppc.c:11113
+#: elf64-ppc.c:11123
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:11201
+#: elf64-ppc.c:11211
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr ""
-#: elf64-ppc.c:11260
+#: elf64-ppc.c:11270
#, c-format
msgid "can't find branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:11324 elf64-ppc.c:11452 elf64-ppc.c:13421
+#: elf64-ppc.c:11334 elf64-ppc.c:11462 elf64-ppc.c:13431
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:11675
+#: elf64-ppc.c:11685
#, c-format
msgid "can't build branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:12451
+#: elf64-ppc.c:12461
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:13819
+#: elf64-ppc.c:13829
#, c-format
msgid "linker stubs in %u group\n"
msgid_plural "linker stubs in %u groups\n"
msgstr[0] ""
msgstr[1] ""
-#: elf64-ppc.c:13823
+#: elf64-ppc.c:13833
#, c-format
msgid ""
" branch %lu\n"
@@ -4303,54 +4236,54 @@ msgid ""
" global entry %lu"
msgstr ""
-#: elf64-ppc.c:14142
+#: elf64-ppc.c:14152
#, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:14144
+#: elf64-ppc.c:14154
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:14788
+#: elf64-ppc.c:14798
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; recompile with -fPIC\n"
msgstr ""
-#: elf64-ppc.c:14794
+#: elf64-ppc.c:14804
#, c-format
msgid ""
"%H: call to `%pT' lacks nop, can't restore toc; (-mcmodel=small toc adjust "
"stub)\n"
msgstr ""
-#: elf64-ppc.c:15489
+#: elf64-ppc.c:15499
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr ""
-#: elf64-ppc.c:15601
+#: elf64-ppc.c:15611
#, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:15827
+#: elf64-ppc.c:15837
#, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr ""
-#: elf64-ppc.c:15850
+#: elf64-ppc.c:15860
#, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:15947
+#: elf64-ppc.c:15957
#, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr ""
-#: elf64-ppc.c:16293 elf64-ppc.c:16312
+#: elf64-ppc.c:16303 elf64-ppc.c:16322
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
@@ -5679,32 +5612,32 @@ msgstr ""
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
-#: reloc.c:8125
+#: reloc.c:8142
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr ""
-#: reloc.c:8226
+#: reloc.c:8243
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
-#: reloc.c:8302
+#: reloc.c:8319
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
msgstr ""
-#: reloc.c:8311
+#: reloc.c:8328
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr ""
-#: reloc.c:8373
+#: reloc.c:8390
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8377
+#: reloc.c:8394
#, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr ""
@@ -8449,86 +8382,91 @@ msgid ""
"%pB: Data Directory size (%lx) exceeds space left in section (%<PRIx64>)"
msgstr ""
-#: peigen.c:3021 pepigen.c:3021 pex64igen.c:3021
+#: peigen.c:3001 pepigen.c:3001 pex64igen.c:3001
+#, c-format
+msgid "%pB: Data Directory size (%#lx) is negative"
+msgstr ""
+
+#: peigen.c:3030 pepigen.c:3030 pex64igen.c:3030
msgid "failed to update file offsets in debug directory"
msgstr ""
-#: peigen.c:3027 pepigen.c:3027 pex64igen.c:3027
+#: peigen.c:3036 pepigen.c:3036 pex64igen.c:3036
#, c-format
msgid "%pB: failed to read debug data section"
msgstr ""
-#: peigen.c:3843 pepigen.c:3843 pex64igen.c:3843
+#: peigen.c:3852 pepigen.c:3852 pex64igen.c:3852
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr ""
-#: peigen.c:3978 pepigen.c:3978 pex64igen.c:3978
+#: peigen.c:3987 pepigen.c:3987 pex64igen.c:3987
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr ""
-#: peigen.c:3996 pepigen.c:3996 pex64igen.c:3996
+#: peigen.c:4005 pepigen.c:4005 pex64igen.c:4005
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr ""
-#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038
+#: peigen.c:4047 pepigen.c:4047 pex64igen.c:4047
msgid ".rsrc merge failure: duplicate leaf"
msgstr ""
-#: peigen.c:4040 pepigen.c:4040 pex64igen.c:4040
+#: peigen.c:4049 pepigen.c:4049 pex64igen.c:4049
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr ""
-#: peigen.c:4106 pepigen.c:4106 pex64igen.c:4106
+#: peigen.c:4115 pepigen.c:4115 pex64igen.c:4115
msgid ".rsrc merge failure: dirs with differing characteristics"
msgstr ""
-#: peigen.c:4113 pepigen.c:4113 pex64igen.c:4113
+#: peigen.c:4122 pepigen.c:4122 pex64igen.c:4122
msgid ".rsrc merge failure: differing directory versions"
msgstr ""
#. Corrupted .rsrc section - cannot merge.
-#: peigen.c:4230 pepigen.c:4230 pex64igen.c:4230
+#: peigen.c:4239 pepigen.c:4239 pex64igen.c:4239
#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
msgstr ""
-#: peigen.c:4238 pepigen.c:4238 pex64igen.c:4238
+#: peigen.c:4247 pepigen.c:4247 pex64igen.c:4247
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
msgstr ""
-#: peigen.c:4377 pepigen.c:4377 pex64igen.c:4377
+#: peigen.c:4386 pepigen.c:4386 pex64igen.c:4386
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
msgstr ""
-#: peigen.c:4397 pepigen.c:4397 pex64igen.c:4397
+#: peigen.c:4406 pepigen.c:4406 pex64igen.c:4406
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
msgstr ""
-#: peigen.c:4418 pepigen.c:4418 pex64igen.c:4418
+#: peigen.c:4427 pepigen.c:4427 pex64igen.c:4427
#, c-format
msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
msgstr ""
-#: peigen.c:4438 pepigen.c:4438 pex64igen.c:4438
+#: peigen.c:4447 pepigen.c:4447 pex64igen.c:4447
#, c-format
msgid ""
"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
"idata$6 is missing"
msgstr ""
-#: peigen.c:4480 pepigen.c:4480 pex64igen.c:4480
+#: peigen.c:4489 pepigen.c:4489 pex64igen.c:4489
#, c-format
msgid ""
"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
"idata$6 is missing"
msgstr ""
-#: peigen.c:4505 pepigen.c:4505 pex64igen.c:4505
+#: peigen.c:4514 pepigen.c:4514 pex64igen.c:4514
#, c-format
msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
msgstr ""
diff --git a/bfd/targets.c b/bfd/targets.c
index e490f5f..230048a 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -734,6 +734,7 @@ extern const bfd_target nds32_elf32_be_vec;
extern const bfd_target nds32_elf32_le_vec;
extern const bfd_target nds32_elf32_linux_be_vec;
extern const bfd_target nds32_elf32_linux_le_vec;
+extern const bfd_target nfp_elf64_vec;
extern const bfd_target nios2_elf32_be_vec;
extern const bfd_target nios2_elf32_le_vec;
extern const bfd_target ns32k_aout_pc532mach_vec;
@@ -1107,6 +1108,8 @@ static const bfd_target * const _bfd_target_vector[] =
&nds32_elf32_linux_be_vec,
&nds32_elf32_linux_le_vec,
+ &nfp_elf64_vec,
+
&nios2_elf32_be_vec,
&nios2_elf32_le_vec,
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index ec97a0d..61bbd2f 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,16 @@
+2018-04-30 Francois H. Theron <francois.theron@netronome.com>
+
+ * readelf.c: Very basic support for EM_NFP and its section types.
+ * testsuite/binutils-all/nfp: New directory.
+ * testsuite/binutils-all/nfp/objdump.exp: New file. Run new
+ tests.
+ * testsuite/binutils-all/nfp/test2_ctx8.d: New file.
+ * testsuite/binutils-all/nfp/test2_no-pc_ctx4.d: New file.
+ * testsuite/binutils-all/nfp/test1.d: New file.
+ * testsuite/binutils-all/nfp/nfp6000.nffw: New file.
+ * testsuite/binutils-all/nfp/test2_nfp6000.nffw: New file.
+ * NEWS: Mention the new support.
+
2018-04-27 Maciej W. Rozycki <macro@mips.com>
* testsuite/lib/binutils-common.exp (match_target): New procedure.
diff --git a/binutils/NEWS b/binutils/NEWS
index c0fa05f..da841de 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,7 @@
-*- text -*-
+* Add support for disassembling netronome Flow Processor (NFP) firmware files.
+
Changes in 2.30:
* Add --debug-dump=links option to readelf and --dwarf=links option to objdump
diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot
index 29e3c92..de74776 100644
--- a/binutils/po/binutils.pot
+++ b/binutils/po/binutils.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2018-01-13 13:43+0000\n"
+"POT-Creation-Date: 2018-04-30 11:22+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"
@@ -54,10 +54,10 @@ msgid ""
"\n"
msgstr ""
-#: addr2line.c:100 ar.c:336 ar.c:373 coffdump.c:473 dlltool.c:4006
-#: dllwrap.c:518 elfedit.c:677 nlmconv.c:1112 objcopy.c:658 objcopy.c:711
-#: readelf.c:4385 size.c:97 srconv.c:1706 strings.c:668 sysdump.c:648
-#: windmc.c:227 windres.c:688
+#: addr2line.c:100 ar.c:336 ar.c:373 coffdump.c:473 dlltool.c:3989
+#: dllwrap.c:518 elfedit.c:677 objcopy.c:658 objcopy.c:711 readelf.c:4440
+#: size.c:97 srconv.c:1706 strings.c:668 sysdump.c:648 windmc.c:227
+#: windres.c:688
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
@@ -93,7 +93,7 @@ msgstr ""
msgid "%s: cannot find section %s"
msgstr ""
-#: addr2line.c:465 nm.c:1683 objdump.c:3856
+#: addr2line.c:465 nm.c:1683 objdump.c:3886
#, c-format
msgid "unknown demangling style `%s'"
msgstr ""
@@ -394,7 +394,7 @@ msgstr ""
msgid "Cannot convert existing thin library %s to normal format"
msgstr ""
-#: ar.c:1000 ar.c:1064 ar.c:1394 objcopy.c:3288
+#: ar.c:1000 ar.c:1064 ar.c:1394 objcopy.c:3297
#, c-format
msgid "internal stat error on %s"
msgstr ""
@@ -404,7 +404,7 @@ msgstr ""
msgid "%s is not a valid archive"
msgstr ""
-#: ar.c:1056 objcopy.c:3252
+#: ar.c:1056 objcopy.c:3261
#, c-format
msgid "illegal pathname found in archive member: %s"
msgstr ""
@@ -688,7 +688,7 @@ msgstr ""
msgid "Symbol %s, tag %d, number %d"
msgstr ""
-#: coffdump.c:345 readelf.c:16221 readelf.c:16309
+#: coffdump.c:345 readelf.c:16292 readelf.c:16380
#, c-format
msgid "Type"
msgstr ""
@@ -1008,484 +1008,484 @@ msgstr ""
msgid "debug_write_type: illegal type encountered"
msgstr ""
-#: dlltool.c:916 dlltool.c:942 dlltool.c:973
+#: dlltool.c:901 dlltool.c:926 dlltool.c:956
#, c-format
msgid "Internal error: Unknown machine type: %d"
msgstr ""
-#: dlltool.c:1014
+#: dlltool.c:997
#, c-format
msgid "Can't open def file: %s"
msgstr ""
-#: dlltool.c:1019
+#: dlltool.c:1002
#, c-format
msgid "Processing def file: %s"
msgstr ""
-#: dlltool.c:1023
+#: dlltool.c:1006
msgid "Processed def file"
msgstr ""
-#: dlltool.c:1047
+#: dlltool.c:1030
#, c-format
msgid "Syntax error in def file %s:%d"
msgstr ""
-#: dlltool.c:1084
+#: dlltool.c:1067
#, c-format
msgid "%s: Path components stripped from image name, '%s'."
msgstr ""
-#: dlltool.c:1102
+#: dlltool.c:1085
#, c-format
msgid "NAME: %s base: %x"
msgstr ""
-#: dlltool.c:1105 dlltool.c:1126
+#: dlltool.c:1088 dlltool.c:1109
msgid "Can't have LIBRARY and NAME"
msgstr ""
-#: dlltool.c:1123
+#: dlltool.c:1106
#, c-format
msgid "LIBRARY: %s base: %x"
msgstr ""
-#: dlltool.c:1279
+#: dlltool.c:1262
#, c-format
msgid "VERSION %d.%d\n"
msgstr ""
-#: dlltool.c:1327
+#: dlltool.c:1310
#, c-format
msgid "run: %s %s"
msgstr ""
-#: dlltool.c:1368 resrc.c:288
+#: dlltool.c:1351 resrc.c:288
#, c-format
msgid "wait: %s"
msgstr ""
-#: dlltool.c:1373 dllwrap.c:416 resrc.c:293
+#: dlltool.c:1356 dllwrap.c:416 resrc.c:293
#, c-format
msgid "subprocess got fatal signal %d"
msgstr ""
-#: dlltool.c:1379 dllwrap.c:423 resrc.c:300
+#: dlltool.c:1362 dllwrap.c:423 resrc.c:300
#, c-format
msgid "%s exited with status %d"
msgstr ""
-#: dlltool.c:1410
+#: dlltool.c:1393
#, c-format
msgid "Sucking in info from %s section in %s"
msgstr ""
-#: dlltool.c:1550
+#: dlltool.c:1533
#, c-format
msgid "Excluding symbol: %s"
msgstr ""
-#: dlltool.c:1639 dlltool.c:1650 nm.c:1108 nm.c:1118 nm.c:1127
+#: dlltool.c:1622 dlltool.c:1633 nm.c:1108 nm.c:1118 nm.c:1127
#, c-format
msgid "%s: no symbols"
msgstr ""
#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1676
+#: dlltool.c:1659
#, c-format
msgid "Done reading %s"
msgstr ""
-#: dlltool.c:1686
+#: dlltool.c:1669
#, c-format
msgid "Unable to open object file: %s: %s"
msgstr ""
-#: dlltool.c:1689
+#: dlltool.c:1672
#, c-format
msgid "Scanning object file %s"
msgstr ""
-#: dlltool.c:1709
+#: dlltool.c:1692
#, c-format
msgid "Cannot produce mcore-elf dll from archive file: %s"
msgstr ""
-#: dlltool.c:1811
+#: dlltool.c:1794
msgid "Adding exports to output file"
msgstr ""
-#: dlltool.c:1863
+#: dlltool.c:1846
msgid "Added exports to output file"
msgstr ""
-#: dlltool.c:2031
+#: dlltool.c:2014
#, c-format
msgid "Generating export file: %s"
msgstr ""
-#: dlltool.c:2036
+#: dlltool.c:2019
#, c-format
msgid "Unable to open temporary assembler file: %s"
msgstr ""
-#: dlltool.c:2041
+#: dlltool.c:2024
#, c-format
msgid "Opened temporary file: %s"
msgstr ""
-#: dlltool.c:2217
+#: dlltool.c:2200
msgid "failed to read the number of entries from base file"
msgstr ""
-#: dlltool.c:2268
+#: dlltool.c:2251
msgid "Generated exports file"
msgstr ""
-#: dlltool.c:2478
+#: dlltool.c:2461
#, c-format
msgid "bfd_open failed open stub file: %s: %s"
msgstr ""
-#: dlltool.c:2482
+#: dlltool.c:2465
#, c-format
msgid "Creating stub file: %s"
msgstr ""
-#: dlltool.c:2953
+#: dlltool.c:2936
#, c-format
msgid "bfd_open failed reopen stub file: %s: %s"
msgstr ""
-#: dlltool.c:2967 dlltool.c:3046
+#: dlltool.c:2950 dlltool.c:3029
#, c-format
msgid "failed to open temporary head file: %s"
msgstr ""
-#: dlltool.c:3031 dlltool.c:3117
+#: dlltool.c:3014 dlltool.c:3100
#, c-format
msgid "failed to open temporary head file: %s: %s"
msgstr ""
-#: dlltool.c:3132
+#: dlltool.c:3115
#, c-format
msgid "failed to open temporary tail file: %s"
msgstr ""
-#: dlltool.c:3191
+#: dlltool.c:3174
#, c-format
msgid "failed to open temporary tail file: %s: %s"
msgstr ""
-#: dlltool.c:3214
+#: dlltool.c:3197
#, c-format
msgid "Can't create .lib file: %s: %s"
msgstr ""
-#: dlltool.c:3218
+#: dlltool.c:3201
#, c-format
msgid "Creating library file: %s"
msgstr ""
-#: dlltool.c:3305 dlltool.c:3311
+#: dlltool.c:3288 dlltool.c:3294
#, c-format
msgid "cannot delete %s: %s"
msgstr ""
-#: dlltool.c:3317
+#: dlltool.c:3300
msgid "Created lib file"
msgstr ""
-#: dlltool.c:3529
+#: dlltool.c:3512
#, c-format
msgid "Can't open .lib file: %s: %s"
msgstr ""
-#: dlltool.c:3537 dlltool.c:3559
+#: dlltool.c:3520 dlltool.c:3542
#, c-format
msgid "%s is not a library"
msgstr ""
-#: dlltool.c:3577
+#: dlltool.c:3560
#, c-format
msgid "Import library `%s' specifies two or more dlls"
msgstr ""
-#: dlltool.c:3588
+#: dlltool.c:3571
#, c-format
msgid "Unable to determine dll name for `%s' (not an import library?)"
msgstr ""
-#: dlltool.c:3820
+#: dlltool.c:3803
#, c-format
msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
msgstr ""
-#: dlltool.c:3826
+#: dlltool.c:3809
#, c-format
msgid "Error, duplicate EXPORT with ordinals: %s"
msgstr ""
-#: dlltool.c:3929
+#: dlltool.c:3912
msgid "Processing definitions"
msgstr ""
-#: dlltool.c:3956
+#: dlltool.c:3939
msgid "Processed definitions"
msgstr ""
#. xgetext:c-format
-#: dlltool.c:3963 dllwrap.c:477
+#: dlltool.c:3946 dllwrap.c:477
#, c-format
msgid "Usage %s <option(s)> <object-file(s)>\n"
msgstr ""
#. xgetext:c-format
-#: dlltool.c:3965
+#: dlltool.c:3948
#, c-format
msgid ""
" -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
msgstr ""
-#: dlltool.c:3966
+#: dlltool.c:3949
#, c-format
msgid ""
" possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, "
"ppc, thumb\n"
msgstr ""
-#: dlltool.c:3967
+#: dlltool.c:3950
#, c-format
msgid " -e --output-exp <outname> Generate an export file.\n"
msgstr ""
-#: dlltool.c:3968
+#: dlltool.c:3951
#, c-format
msgid " -l --output-lib <outname> Generate an interface library.\n"
msgstr ""
-#: dlltool.c:3969
+#: dlltool.c:3952
#, c-format
msgid " -y --output-delaylib <outname> Create a delay-import library.\n"
msgstr ""
-#: dlltool.c:3970
+#: dlltool.c:3953
#, c-format
msgid " -a --add-indirect Add dll indirects to export file.\n"
msgstr ""
-#: dlltool.c:3971
+#: dlltool.c:3954
#, c-format
msgid ""
" -D --dllname <name> Name of input dll to put into interface lib.\n"
msgstr ""
-#: dlltool.c:3972
+#: dlltool.c:3955
#, c-format
msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
msgstr ""
-#: dlltool.c:3973
+#: dlltool.c:3956
#, c-format
msgid " -z --output-def <deffile> Name of .def file to be created.\n"
msgstr ""
-#: dlltool.c:3974
+#: dlltool.c:3957
#, c-format
msgid " --export-all-symbols Export all symbols to .def\n"
msgstr ""
-#: dlltool.c:3975
+#: dlltool.c:3958
#, c-format
msgid " --no-export-all-symbols Only export listed symbols\n"
msgstr ""
-#: dlltool.c:3976
+#: dlltool.c:3959
#, c-format
msgid " --exclude-symbols <list> Don't export <list>\n"
msgstr ""
-#: dlltool.c:3977
+#: dlltool.c:3960
#, c-format
msgid " --no-default-excludes Clear default exclude symbols\n"
msgstr ""
-#: dlltool.c:3978
+#: dlltool.c:3961
#, c-format
msgid " -b --base-file <basefile> Read linker generated base file.\n"
msgstr ""
-#: dlltool.c:3979
+#: dlltool.c:3962
#, c-format
msgid " -x --no-idata4 Don't generate idata$4 section.\n"
msgstr ""
-#: dlltool.c:3980
+#: dlltool.c:3963
#, c-format
msgid " -c --no-idata5 Don't generate idata$5 section.\n"
msgstr ""
-#: dlltool.c:3981
+#: dlltool.c:3964
#, c-format
msgid ""
" --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata"
"$5.\n"
msgstr ""
-#: dlltool.c:3982
+#: dlltool.c:3965
#, c-format
msgid ""
" -U --add-underscore Add underscores to all symbols in interface "
"library.\n"
msgstr ""
-#: dlltool.c:3983
+#: dlltool.c:3966
#, c-format
msgid ""
" --add-stdcall-underscore Add underscores to stdcall symbols in "
"interface library.\n"
msgstr ""
-#: dlltool.c:3984
+#: dlltool.c:3967
#, c-format
msgid ""
" --no-leading-underscore All symbols shouldn't be prefixed by an "
"underscore.\n"
msgstr ""
-#: dlltool.c:3985
+#: dlltool.c:3968
#, c-format
msgid ""
" --leading-underscore All symbols should be prefixed by an "
"underscore.\n"
msgstr ""
-#: dlltool.c:3986
+#: dlltool.c:3969
#, c-format
msgid " -k --kill-at Kill @<n> from exported names.\n"
msgstr ""
-#: dlltool.c:3987
+#: dlltool.c:3970
#, c-format
msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
msgstr ""
-#: dlltool.c:3988
+#: dlltool.c:3971
#, c-format
msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
msgstr ""
-#: dlltool.c:3989
+#: dlltool.c:3972
#, c-format
msgid " -S --as <name> Use <name> for assembler.\n"
msgstr ""
-#: dlltool.c:3990
+#: dlltool.c:3973
#, c-format
msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
msgstr ""
-#: dlltool.c:3991
+#: dlltool.c:3974
#, c-format
msgid ""
" -C --compat-implib Create backward compatible import library.\n"
msgstr ""
-#: dlltool.c:3992
+#: dlltool.c:3975
#, c-format
msgid ""
" -n --no-delete Keep temp files (repeat for extra "
"preservation).\n"
msgstr ""
-#: dlltool.c:3993
+#: dlltool.c:3976
#, c-format
msgid ""
" -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
msgstr ""
-#: dlltool.c:3994
+#: dlltool.c:3977
#, c-format
msgid ""
" -I --identify <implib> Report the name of the DLL associated with "
"<implib>.\n"
msgstr ""
-#: dlltool.c:3995
+#: dlltool.c:3978
#, c-format
msgid ""
" --identify-strict Causes --identify to report error when multiple "
"DLLs.\n"
msgstr ""
-#: dlltool.c:3996
+#: dlltool.c:3979
#, c-format
msgid " -v --verbose Be verbose.\n"
msgstr ""
-#: dlltool.c:3997
+#: dlltool.c:3980
#, c-format
msgid " -V --version Display the program version.\n"
msgstr ""
-#: dlltool.c:3998
+#: dlltool.c:3981
#, c-format
msgid " -h --help Display this information.\n"
msgstr ""
-#: dlltool.c:3999
+#: dlltool.c:3982
#, c-format
msgid " @<file> Read options from <file>.\n"
msgstr ""
-#: dlltool.c:4001
+#: dlltool.c:3984
#, c-format
msgid ""
" -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
msgstr ""
-#: dlltool.c:4002
+#: dlltool.c:3985
#, c-format
msgid " -L --linker <name> Use <name> as the linker.\n"
msgstr ""
-#: dlltool.c:4003
+#: dlltool.c:3986
#, c-format
msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
msgstr ""
-#: dlltool.c:4149
+#: dlltool.c:4132
#, c-format
msgid "Unable to open def-file: %s"
msgstr ""
-#: dlltool.c:4154
+#: dlltool.c:4137
#, c-format
msgid "Path components stripped from dllname, '%s'."
msgstr ""
-#: dlltool.c:4202
+#: dlltool.c:4185
#, c-format
msgid "Unable to open base-file: %s"
msgstr ""
-#: dlltool.c:4237
+#: dlltool.c:4220
#, c-format
msgid "Machine '%s' not supported"
msgstr ""
-#: dlltool.c:4317
+#: dlltool.c:4300
#, c-format
msgid "Warning, machine type (%d) not supported for delayimport."
msgstr ""
-#: dlltool.c:4385 dllwrap.c:206
+#: dlltool.c:4368 dllwrap.c:206
#, c-format
msgid "Tried file: %s"
msgstr ""
-#: dlltool.c:4392 dllwrap.c:213
+#: dlltool.c:4375 dllwrap.c:213
#, c-format
msgid "Using file: %s"
msgstr ""
@@ -1764,7 +1764,10 @@ msgid ""
"Internal error: %s:%d: LEB value (%s) too large for containing variable\n"
msgstr ""
-#: dwarf.c:396
+#. Read AMOUNT bytes from PTR and store them in VAL as an unsigned value.
+#. Checks to make sure that the read will not reach or pass END
+#. and that VAL is big enough to hold AMOUNT bytes.
+#: dwarf.c:399
#, c-format
msgid "internal error: attempt to read %d byte of data in to %d sized variable"
msgid_plural ""
@@ -1772,52 +1775,52 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:519 dwarf.c:4362
+#: dwarf.c:525 dwarf.c:4387
msgid "Badly formed extended line op encountered!\n"
msgstr ""
-#: dwarf.c:526
+#: dwarf.c:532
#, c-format
msgid " Extended opcode %d: "
msgstr ""
-#: dwarf.c:531
+#: dwarf.c:537
#, c-format
msgid ""
"End of Sequence\n"
"\n"
msgstr ""
-#: dwarf.c:539
+#: dwarf.c:545
#, c-format
msgid "Length (%d) of DW_LNE_set_address op is too long\n"
msgstr ""
-#: dwarf.c:545
+#: dwarf.c:551
#, c-format
msgid "set Address to 0x%s\n"
msgstr ""
-#: dwarf.c:552
+#: dwarf.c:558
#, c-format
msgid "define new File Table entry\n"
msgstr ""
-#: dwarf.c:553 dwarf.c:3651
+#: dwarf.c:559 dwarf.c:3676
#, c-format
msgid " Entry\tDir\tTime\tSize\tName\n"
msgstr ""
-#: dwarf.c:572
+#: dwarf.c:578
msgid "DW_LNE_define_file: Bad opcode length\n"
msgstr ""
-#: dwarf.c:576
+#: dwarf.c:582
#, c-format
msgid "set Discriminator to %s\n"
msgstr ""
-#: dwarf.c:651
+#: dwarf.c:657
#, c-format
msgid " UNKNOWN DW_LNE_HP_SFC opcode (%u)\n"
msgstr ""
@@ -1826,1364 +1829,1372 @@ msgstr ""
#. the limited range of the unsigned char data type used
#. for op_code.
#. && op_code <= DW_LNE_hi_user
-#: dwarf.c:668
+#: dwarf.c:674
#, c-format
msgid "user defined: "
msgstr ""
-#: dwarf.c:670
+#: dwarf.c:676
#, c-format
msgid "UNKNOWN: "
msgstr ""
-#: dwarf.c:671
+#: dwarf.c:677
#, c-format
msgid "length %d ["
msgstr ""
-#: dwarf.c:689 dwarf.c:765 dwarf.c:1703
+#: dwarf.c:695 dwarf.c:771 dwarf.c:1709
msgid "<no .debug_str section>"
msgstr ""
-#: dwarf.c:693
+#: dwarf.c:699
#, c-format
msgid "DW_FORM_strp offset too big: %s\n"
msgstr ""
-#: dwarf.c:695 dwarf.c:723 dwarf.c:1708
+#: dwarf.c:701 dwarf.c:729 dwarf.c:1714
msgid "<offset is too big>"
msgstr ""
-#: dwarf.c:705 dwarf.c:1717
+#: dwarf.c:711 dwarf.c:1723
msgid "<no NUL byte at end of .debug_str section>"
msgstr ""
-#: dwarf.c:717
+#: dwarf.c:723
msgid "<no .debug_line_str section>"
msgstr ""
-#: dwarf.c:721
+#: dwarf.c:727
#, c-format
msgid "DW_FORM_line_strp offset too big: %s\n"
msgstr ""
-#: dwarf.c:733
+#: dwarf.c:739
msgid "<no NUL byte at end of .debug_line_str section>"
msgstr ""
-#: dwarf.c:751
+#: dwarf.c:757
msgid "<no .debug_str_offsets.dwo section>"
msgstr ""
-#: dwarf.c:752
+#: dwarf.c:758
msgid "<no .debug_str_offsets section>"
msgstr ""
-#: dwarf.c:758
+#: dwarf.c:764
#, c-format
msgid "DW_FORM_GNU_str_index offset too big: %s\n"
msgstr ""
-#: dwarf.c:760
+#: dwarf.c:766
msgid "<index offset is too big>"
msgstr ""
-#: dwarf.c:764
+#: dwarf.c:770
msgid "<no .debug_str.dwo section>"
msgstr ""
-#: dwarf.c:771
+#: dwarf.c:777
#, c-format
msgid "DW_FORM_GNU_str_index indirect offset too big: %s\n"
msgstr ""
-#: dwarf.c:773
+#: dwarf.c:779
msgid "<indirect index offset is too big>"
msgstr ""
-#: dwarf.c:782
+#: dwarf.c:788
msgid "<no NUL byte at end of section>"
msgstr ""
-#: dwarf.c:793
+#: dwarf.c:799
msgid "<no .debug_addr section>"
msgstr ""
-#: dwarf.c:797
+#: dwarf.c:803
#, c-format
msgid "Offset into section %s too big: %s\n"
msgstr ""
#. Report the missing single zero which ends the section.
-#: dwarf.c:975
+#: dwarf.c:981
msgid ".debug_abbrev section not zero terminated\n"
msgstr ""
-#: dwarf.c:990
+#: dwarf.c:996
#, c-format
msgid "User TAG value: %#lx"
msgstr ""
-#: dwarf.c:992
+#: dwarf.c:998
#, c-format
msgid "Unknown TAG value: %#lx"
msgstr ""
-#: dwarf.c:1012
+#: dwarf.c:1018
#, c-format
msgid "Unknown FORM value: %lx"
msgstr ""
-#: dwarf.c:1028
+#: dwarf.c:1034
#, c-format
msgid "Unknown IDX value: %lx"
msgstr ""
-#: dwarf.c:1042
+#: dwarf.c:1048
#, c-format
msgid "%c%s byte block: "
msgstr ""
-#: dwarf.c:1396
+#: dwarf.c:1402
#, c-format
msgid "(DW_OP_call_ref in frame info)"
msgstr ""
-#: dwarf.c:1418
+#: dwarf.c:1424
#, c-format
msgid "size: %s "
msgstr ""
-#: dwarf.c:1421
+#: dwarf.c:1427
#, c-format
msgid "offset: %s "
msgstr ""
-#: dwarf.c:1440
+#: dwarf.c:1446
#, c-format
msgid "DW_OP_GNU_push_tls_address or DW_OP_HP_unknown"
msgstr ""
-#: dwarf.c:1465
+#: dwarf.c:1471
#, c-format
msgid "(%s in frame info)"
msgstr ""
-#: dwarf.c:1611
+#: dwarf.c:1617
#, c-format
msgid "(User defined location op 0x%x)"
msgstr ""
-#: dwarf.c:1613
+#: dwarf.c:1619
#, c-format
msgid "(Unknown location op 0x%x)"
msgstr ""
-#: dwarf.c:1696
+#: dwarf.c:1702
msgid "<following link not possible>"
msgstr ""
-#: dwarf.c:1699
+#: dwarf.c:1705
msgid "<could not load separate string section>"
msgstr ""
-#: dwarf.c:1707
+#: dwarf.c:1713
#, c-format
msgid "DW_FORM_GNU_strp_alt offset too big: %s\n"
msgstr ""
-#: dwarf.c:1740
+#: dwarf.c:1746
#, c-format
msgid "Unknown AT value: %lx"
msgstr ""
-#: dwarf.c:1771
+#: dwarf.c:1777
msgid "Corrupt attribute\n"
msgstr ""
-#: dwarf.c:1786
+#: dwarf.c:1792
msgid "Internal error: DWARF version is not 2, 3 or 4.\n"
msgstr ""
-#: dwarf.c:1924
+#: dwarf.c:1930
msgid "DW_FORM_data8 is unsupported when sizeof (dwarf_vma) != 8\n"
msgstr ""
-#: dwarf.c:1968 dwarf.c:1993 dwarf.c:2014 dwarf.c:2036
+#: dwarf.c:1974 dwarf.c:1999 dwarf.c:2020 dwarf.c:2042
msgid "Block ends prematurely\n"
msgstr ""
-#: dwarf.c:1979 dwarf.c:2000 dwarf.c:2021 dwarf.c:2045
+#: dwarf.c:1985 dwarf.c:2006 dwarf.c:2027 dwarf.c:2051
#, c-format
msgid "Corrupt attribute block length: %lx\n"
msgstr ""
-#: dwarf.c:2056
+#: dwarf.c:2062
#, c-format
msgid "%c(indirect string, offset: 0x%s): %s"
msgstr ""
-#: dwarf.c:2063
+#: dwarf.c:2069
#, c-format
msgid "%c(indirect line string, offset: 0x%s): %s"
msgstr ""
-#: dwarf.c:2074
+#: dwarf.c:2080
#, c-format
msgid "%c(indexed string: 0x%s): %s"
msgstr ""
-#: dwarf.c:2083
+#: dwarf.c:2089
#, c-format
msgid "%c(alt indirect string, offset: 0x%s) %s"
msgstr ""
-#: dwarf.c:2108
+#: dwarf.c:2114
#, c-format
msgid "%c(addr_index: 0x%s): %s"
msgstr ""
-#: dwarf.c:2114
+#: dwarf.c:2120
#, c-format
msgid "Unrecognized form: %lu\n"
msgstr ""
-#: dwarf.c:2238 dwarf.c:2263 dwarf.c:2279
+#: dwarf.c:2181
+msgid "More location offset attributes than DW_AT_GNU_locview attributes\n"
+msgstr ""
+
+#: dwarf.c:2193
+msgid "More DW_AT_GNU_locview attributes than location offset attributes\n"
+msgstr ""
+
+#: dwarf.c:2253 dwarf.c:2278 dwarf.c:2294
#, c-format
msgid "Unsupported form (%s) for attribute %s\n"
msgstr ""
-#: dwarf.c:2240 dwarf.c:2265 dwarf.c:4284 dwarf.c:4594 readelf.c:5738
-#: readelf.c:5813 readelf.c:5831 readelf.c:5849 readelf.c:10236 readelf.c:10868
-#: readelf.c:15349 readelf.c:15381
+#: dwarf.c:2255 dwarf.c:2280 dwarf.c:4309 dwarf.c:4619 readelf.c:5793
+#: readelf.c:5868 readelf.c:5886 readelf.c:5904 readelf.c:10306 readelf.c:10938
+#: readelf.c:15420 readelf.c:15452
msgid "<unknown>"
msgstr ""
-#: dwarf.c:2302
+#: dwarf.c:2317
#, c-format
msgid "(not inlined)"
msgstr ""
-#: dwarf.c:2305
+#: dwarf.c:2320
#, c-format
msgid "(inlined)"
msgstr ""
-#: dwarf.c:2308
+#: dwarf.c:2323
#, c-format
msgid "(declared as inline but ignored)"
msgstr ""
-#: dwarf.c:2311
+#: dwarf.c:2326
#, c-format
msgid "(declared as inline and inlined)"
msgstr ""
-#: dwarf.c:2314
+#: dwarf.c:2329
#, c-format
msgid " (Unknown inline attribute value: %s)"
msgstr ""
-#: dwarf.c:2361
+#: dwarf.c:2386
#, c-format
msgid "(implementation defined: %s)"
msgstr ""
-#: dwarf.c:2364
+#: dwarf.c:2389
#, c-format
msgid "(Unknown: %s)"
msgstr ""
-#: dwarf.c:2409
+#: dwarf.c:2434
#, c-format
msgid "(user defined type)"
msgstr ""
-#: dwarf.c:2411
+#: dwarf.c:2436
#, c-format
msgid "(unknown type)"
msgstr ""
-#: dwarf.c:2424
+#: dwarf.c:2449
#, c-format
msgid "(unknown accessibility)"
msgstr ""
-#: dwarf.c:2436
+#: dwarf.c:2461
#, c-format
msgid "(unknown visibility)"
msgstr ""
-#: dwarf.c:2449
+#: dwarf.c:2474
#, c-format
msgid "(user specified)"
msgstr ""
-#: dwarf.c:2451
+#: dwarf.c:2476
#, c-format
msgid "(unknown endianity)"
msgstr ""
-#: dwarf.c:2463
+#: dwarf.c:2488
#, c-format
msgid "(unknown virtuality)"
msgstr ""
-#: dwarf.c:2475
+#: dwarf.c:2500
#, c-format
msgid "(unknown case)"
msgstr ""
-#: dwarf.c:2493
+#: dwarf.c:2518
#, c-format
msgid "(user defined)"
msgstr ""
-#: dwarf.c:2495
+#: dwarf.c:2520
#, c-format
msgid "(unknown convention)"
msgstr ""
-#: dwarf.c:2504
+#: dwarf.c:2529
#, c-format
msgid "(undefined)"
msgstr ""
-#: dwarf.c:2514
+#: dwarf.c:2539
#, c-format
msgid "(unsigned)"
msgstr ""
-#: dwarf.c:2515
+#: dwarf.c:2540
#, c-format
msgid "(leading overpunch)"
msgstr ""
-#: dwarf.c:2516
+#: dwarf.c:2541
#, c-format
msgid "(trailing overpunch)"
msgstr ""
-#: dwarf.c:2517
+#: dwarf.c:2542
#, c-format
msgid "(leading separate)"
msgstr ""
-#: dwarf.c:2518
+#: dwarf.c:2543
#, c-format
msgid "(trailing separate)"
msgstr ""
-#: dwarf.c:2519 dwarf.c:2530 dwarf.c:2540
+#: dwarf.c:2544 dwarf.c:2555 dwarf.c:2565
#, c-format
msgid "(unrecognised)"
msgstr ""
-#: dwarf.c:2527
+#: dwarf.c:2552
#, c-format
msgid "(no)"
msgstr ""
-#: dwarf.c:2528
+#: dwarf.c:2553
#, c-format
msgid "(in class)"
msgstr ""
-#: dwarf.c:2529
+#: dwarf.c:2554
#, c-format
msgid "(out of class)"
msgstr ""
-#: dwarf.c:2538
+#: dwarf.c:2563
#, c-format
msgid "(label)"
msgstr ""
-#: dwarf.c:2539
+#: dwarf.c:2564
#, c-format
msgid "(range)"
msgstr ""
-#: dwarf.c:2566
+#: dwarf.c:2591
#, c-format
msgid " (location list)"
msgstr ""
-#: dwarf.c:2587 dwarf.c:5551 dwarf.c:5708 dwarf.c:5890
+#: dwarf.c:2612 dwarf.c:5576 dwarf.c:5733 dwarf.c:5915
#, c-format
msgid " [without DW_AT_frame_base]"
msgstr ""
-#: dwarf.c:2620
+#: dwarf.c:2645
#, c-format
msgid ""
"Offset %s used as value for DW_AT_import attribute of DIE at offset 0x%lx is "
"too big.\n"
msgstr ""
-#: dwarf.c:2630
+#: dwarf.c:2655
#, c-format
msgid "\t[Abbrev Number: %ld"
msgstr ""
-#: dwarf.c:2715
+#: dwarf.c:2740
#, c-format
msgid ""
"Raw dump of debug contents of section %s (loaded from %s):\n"
"\n"
msgstr ""
-#: dwarf.c:2718
+#: dwarf.c:2743
#, c-format
msgid ""
"Raw dump of debug contents of section %s:\n"
"\n"
msgstr ""
-#: dwarf.c:2723
+#: dwarf.c:2748
#, c-format
msgid ""
"Contents of the %s section (loaded from %s):\n"
"\n"
msgstr ""
-#: dwarf.c:2726
+#: dwarf.c:2751
#, c-format
msgid ""
"Contents of the %s section:\n"
"\n"
msgstr ""
-#: dwarf.c:2775
+#: dwarf.c:2800
#, c-format
msgid "Reserved length value (0x%s) found in section %s\n"
msgstr ""
-#: dwarf.c:2787
+#: dwarf.c:2812
#, c-format
msgid "Corrupt unit length (0x%s) found in section %s\n"
msgstr ""
-#: dwarf.c:2795
+#: dwarf.c:2820
#, c-format
msgid "No comp units in %s section ?\n"
msgstr ""
-#: dwarf.c:2804
+#: dwarf.c:2829
#, c-format
msgid "Not enough memory for a debug info array of %u entries\n"
msgstr ""
-#: dwarf.c:2833
+#: dwarf.c:2858
#, c-format
msgid "Unable to locate %s section!\n"
msgstr ""
-#: dwarf.c:2913
+#: dwarf.c:2938
#, c-format
msgid "Invalid pointer size (%d) in compunit header, using %d instead\n"
msgstr ""
-#: dwarf.c:2956
+#: dwarf.c:2981
#, c-format
msgid " Compilation Unit @ offset 0x%s:\n"
msgstr ""
-#: dwarf.c:2958
+#: dwarf.c:2983
#, c-format
msgid " Length: 0x%s (%s)\n"
msgstr ""
-#: dwarf.c:2961
+#: dwarf.c:2986
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:2962
+#: dwarf.c:2987
#, c-format
msgid " Abbrev Offset: 0x%s\n"
msgstr ""
-#: dwarf.c:2964
+#: dwarf.c:2989
#, c-format
msgid " Pointer Size: %d\n"
msgstr ""
-#: dwarf.c:2969
+#: dwarf.c:2994
#, c-format
msgid " Signature: 0x%s\n"
msgstr ""
-#: dwarf.c:2972
+#: dwarf.c:2997
#, c-format
msgid " Type Offset: 0x%s\n"
msgstr ""
-#: dwarf.c:2980
+#: dwarf.c:3005
#, c-format
msgid " Section contributions:\n"
msgstr ""
-#: dwarf.c:2981
+#: dwarf.c:3006
#, c-format
msgid " .debug_abbrev.dwo: 0x%s 0x%s\n"
msgstr ""
-#: dwarf.c:2984
+#: dwarf.c:3009
#, c-format
msgid " .debug_line.dwo: 0x%s 0x%s\n"
msgstr ""
-#: dwarf.c:2987
+#: dwarf.c:3012
#, c-format
msgid " .debug_loc.dwo: 0x%s 0x%s\n"
msgstr ""
-#: dwarf.c:2990
+#: dwarf.c:3015
#, c-format
msgid " .debug_str_offsets.dwo: 0x%s 0x%s\n"
msgstr ""
-#: dwarf.c:3000 dwarf.c:4768 dwarf.c:6316 dwarf.c:8348
+#: dwarf.c:3025 dwarf.c:4793 dwarf.c:6341 dwarf.c:8407
#, c-format
msgid "Debug info is corrupted, %s header at %#lx has length %s\n"
msgstr ""
-#: dwarf.c:3013
+#: dwarf.c:3038
#, c-format
msgid "CU at offset %s contains corrupt or unsupported version number: %d.\n"
msgstr ""
-#: dwarf.c:3022
+#: dwarf.c:3047
#, c-format
msgid "CU at offset %s contains corrupt or unsupported unit type: %d.\n"
msgstr ""
-#: dwarf.c:3032
+#: dwarf.c:3057
#, c-format
msgid ""
"Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section "
"size (%lx)\n"
msgstr ""
-#: dwarf.c:3038
+#: dwarf.c:3063
#, c-format
msgid ""
"Debug info is corrupted, abbrev size (%lx) is larger than abbrev section "
"size (%lx)\n"
msgstr ""
-#: dwarf.c:3084
+#: dwarf.c:3109
#, c-format
msgid " <%d><%lx>: Abbrev Number: 0\n"
msgstr ""
-#: dwarf.c:3094
+#: dwarf.c:3119
#, c-format
msgid "Bogus end-of-siblings marker detected at offset %lx in %s section\n"
msgstr ""
-#: dwarf.c:3098
+#: dwarf.c:3123
msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
msgstr ""
-#: dwarf.c:3117
+#: dwarf.c:3142
#, c-format
msgid " <%d><%lx>: Abbrev Number: %lu"
msgstr ""
-#: dwarf.c:3121
+#: dwarf.c:3146
#, c-format
msgid " <%d><%lx>: ...\n"
msgstr ""
-#: dwarf.c:3140
+#: dwarf.c:3165
#, c-format
msgid ""
"DIE at offset 0x%lx refers to abbreviation number %lu which does not exist\n"
msgstr ""
-#: dwarf.c:3213
+#: dwarf.c:3238
msgid "DIE has locviews without loclist\n"
msgstr ""
-#: dwarf.c:3328
+#: dwarf.c:3353
#, c-format
msgid ""
"The length field (0x%lx) in the debug_line header is wrong - the section is "
"too small\n"
msgstr ""
-#: dwarf.c:3342
+#: dwarf.c:3367
msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
msgstr ""
-#: dwarf.c:3354 dwarf.c:5983 dwarf.c:6728
+#: dwarf.c:3379 dwarf.c:6008 dwarf.c:6754
#, c-format
msgid "The %s section contains unsupported segment selector size: %d.\n"
msgstr ""
-#: dwarf.c:3371
+#: dwarf.c:3396
msgid "Invalid maximum operations per insn.\n"
msgstr ""
-#: dwarf.c:3387
+#: dwarf.c:3412
#, c-format
msgid "Line length %s extends beyond end of section\n"
msgstr ""
-#: dwarf.c:3418
+#: dwarf.c:3443
#, c-format
msgid "Corrupt %s format table entry\n"
msgstr ""
-#: dwarf.c:3427
+#: dwarf.c:3452
#, c-format
msgid "Corrupt %s list\n"
msgstr ""
-#: dwarf.c:3433
+#: dwarf.c:3458
#, c-format
msgid ""
"\n"
" The %s Table is empty.\n"
msgstr ""
-#: dwarf.c:3437
+#: dwarf.c:3462
#, c-format
msgid ""
"\n"
" The %s Table (offset 0x%lx):\n"
msgstr ""
-#: dwarf.c:3440
+#: dwarf.c:3465
#, c-format
msgid " Entry"
msgstr ""
-#: dwarf.c:3455
+#: dwarf.c:3480
#, c-format
msgid "\tName"
msgstr ""
-#: dwarf.c:3458
+#: dwarf.c:3483
#, c-format
msgid "\tDir"
msgstr ""
-#: dwarf.c:3461
+#: dwarf.c:3486
#, c-format
msgid "\tTime"
msgstr ""
-#: dwarf.c:3464
+#: dwarf.c:3489
#, c-format
msgid "\tSize"
msgstr ""
-#: dwarf.c:3467
+#: dwarf.c:3492
#, c-format
msgid "\tMD5"
msgstr ""
-#: dwarf.c:3470
+#: dwarf.c:3495
#, c-format
msgid "\t(Unknown format content type %s)"
msgstr ""
-#: dwarf.c:3506
+#: dwarf.c:3531
#, c-format
msgid "Corrupt %s entries list\n"
msgstr ""
-#: dwarf.c:3554 dwarf.c:3970
+#: dwarf.c:3579 dwarf.c:3995
msgid ""
"Partial .debug_line. section encountered without a prior full .debug_line "
"section\n"
msgstr ""
-#: dwarf.c:3567 dwarf.c:5086
+#: dwarf.c:3592 dwarf.c:5111
#, c-format
msgid " Offset: 0x%lx\n"
msgstr ""
-#: dwarf.c:3568
+#: dwarf.c:3593
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: dwarf.c:3569
+#: dwarf.c:3594
#, c-format
msgid " DWARF Version: %d\n"
msgstr ""
-#: dwarf.c:3570
+#: dwarf.c:3595
#, c-format
msgid " Prologue Length: %d\n"
msgstr ""
-#: dwarf.c:3571
+#: dwarf.c:3596
#, c-format
msgid " Minimum Instruction Length: %d\n"
msgstr ""
-#: dwarf.c:3573
+#: dwarf.c:3598
#, c-format
msgid " Maximum Ops per Instruction: %d\n"
msgstr ""
-#: dwarf.c:3574
+#: dwarf.c:3599
#, c-format
msgid " Initial value of 'is_stmt': %d\n"
msgstr ""
-#: dwarf.c:3575
+#: dwarf.c:3600
#, c-format
msgid " Line Base: %d\n"
msgstr ""
-#: dwarf.c:3576
+#: dwarf.c:3601
#, c-format
msgid " Line Range: %d\n"
msgstr ""
-#: dwarf.c:3577
+#: dwarf.c:3602
#, c-format
msgid " Opcode Base: %d\n"
msgstr ""
-#: dwarf.c:3582 dwarf.c:3986
+#: dwarf.c:3607 dwarf.c:4011
msgid "Line range of 0 is invalid, using 1 instead\n"
msgstr ""
-#: dwarf.c:3594
+#: dwarf.c:3619
msgid "Line Base extends beyond end of section\n"
msgstr ""
-#: dwarf.c:3598
+#: dwarf.c:3623
#, c-format
msgid ""
"\n"
" Opcodes:\n"
msgstr ""
-#: dwarf.c:3601
+#: dwarf.c:3626
#, c-format
msgid " Opcode %d has %d arg\n"
msgid_plural " Opcode %d has %d args\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:3614
+#: dwarf.c:3639
msgid "Directory"
msgstr ""
-#: dwarf.c:3616
+#: dwarf.c:3641
msgid "File name"
msgstr ""
-#: dwarf.c:3621
+#: dwarf.c:3646
#, c-format
msgid ""
"\n"
" The Directory Table is empty.\n"
msgstr ""
-#: dwarf.c:3626
+#: dwarf.c:3651
#, c-format
msgid ""
"\n"
" The Directory Table (offset 0x%lx):\n"
msgstr ""
-#: dwarf.c:3646
+#: dwarf.c:3671
#, c-format
msgid ""
"\n"
" The File Name Table is empty.\n"
msgstr ""
-#: dwarf.c:3649
+#: dwarf.c:3674
#, c-format
msgid ""
"\n"
" The File Name Table (offset 0x%lx):\n"
msgstr ""
-#: dwarf.c:3675
+#: dwarf.c:3700
msgid "Corrupt file name table entry\n"
msgstr ""
-#: dwarf.c:3691
+#: dwarf.c:3716
#, c-format
msgid " No Line Number Statements.\n"
msgstr ""
-#: dwarf.c:3694
+#: dwarf.c:3719
#, c-format
msgid " Line Number Statements:\n"
msgstr ""
-#: dwarf.c:3717
+#: dwarf.c:3742
#, c-format
msgid " Special opcode %d: advance Address by %s to 0x%s%s"
msgstr ""
-#: dwarf.c:3722 dwarf.c:3743 dwarf.c:3783 dwarf.c:3803 dwarf.c:3856
-#: dwarf.c:3876
+#: dwarf.c:3747 dwarf.c:3768 dwarf.c:3808 dwarf.c:3828 dwarf.c:3881
+#: dwarf.c:3901
msgid " (reset view)"
msgstr ""
-#: dwarf.c:3737
+#: dwarf.c:3762
#, c-format
msgid " Special opcode %d: advance Address by %s to 0x%s[%d]%s"
msgstr ""
-#: dwarf.c:3747
+#: dwarf.c:3772
#, c-format
msgid " and Line by %s to %d"
msgstr ""
-#: dwarf.c:3750 dwarf.c:3764
+#: dwarf.c:3775 dwarf.c:3789
#, c-format
msgid " (view %u)\n"
msgstr ""
-#: dwarf.c:3762
+#: dwarf.c:3787
#, c-format
msgid " Copy"
msgstr ""
-#: dwarf.c:3779
+#: dwarf.c:3804
#, c-format
msgid " Advance PC by %s to 0x%s%s\n"
msgstr ""
-#: dwarf.c:3798
+#: dwarf.c:3823
#, c-format
msgid " Advance PC by %s to 0x%s[%d]%s\n"
msgstr ""
-#: dwarf.c:3811
+#: dwarf.c:3836
#, c-format
msgid " Advance Line by %s to %d\n"
msgstr ""
-#: dwarf.c:3819
+#: dwarf.c:3844
#, c-format
msgid " Set File Name to entry %s in the File Name Table\n"
msgstr ""
-#: dwarf.c:3827
+#: dwarf.c:3852
#, c-format
msgid " Set column to %s\n"
msgstr ""
-#: dwarf.c:3835
+#: dwarf.c:3860
#, c-format
msgid " Set is_stmt to %s\n"
msgstr ""
-#: dwarf.c:3840
+#: dwarf.c:3865
#, c-format
msgid " Set basic block\n"
msgstr ""
-#: dwarf.c:3852
+#: dwarf.c:3877
#, c-format
msgid " Advance PC by constant %s to 0x%s%s\n"
msgstr ""
-#: dwarf.c:3871
+#: dwarf.c:3896
#, c-format
msgid " Advance PC by constant %s to 0x%s[%d]%s\n"
msgstr ""
-#: dwarf.c:3884
+#: dwarf.c:3909
#, c-format
msgid " Advance PC by fixed size amount %s to 0x%s\n"
msgstr ""
-#: dwarf.c:3891
+#: dwarf.c:3916
#, c-format
msgid " Set prologue_end to true\n"
msgstr ""
-#: dwarf.c:3895
+#: dwarf.c:3920
#, c-format
msgid " Set epilogue_begin to true\n"
msgstr ""
-#: dwarf.c:3901
+#: dwarf.c:3926
#, c-format
msgid " Set ISA to %s\n"
msgstr ""
-#: dwarf.c:3905 dwarf.c:4557
+#: dwarf.c:3930 dwarf.c:4582
#, c-format
msgid " Unknown opcode %d with operands: "
msgstr ""
-#: dwarf.c:3999
+#: dwarf.c:4024
#, c-format
msgid "opcode base of %d extends beyond end of section\n"
msgstr ""
-#: dwarf.c:4027 dwarf.c:4050 dwarf.c:4080
+#: dwarf.c:4052 dwarf.c:4075 dwarf.c:4105
msgid "Corrupt directories list\n"
msgstr ""
-#: dwarf.c:4100 dwarf.c:4123 dwarf.c:4170
+#: dwarf.c:4125 dwarf.c:4148 dwarf.c:4195
msgid "Corrupt file name list\n"
msgstr ""
-#: dwarf.c:4190
+#: dwarf.c:4215
msgid "directory table ends unexpectedly\n"
msgstr ""
-#: dwarf.c:4235
+#: dwarf.c:4260
msgid "file table ends unexpectedly\n"
msgstr ""
-#: dwarf.c:4274
+#: dwarf.c:4299
#, c-format
msgid "CU: %s:\n"
msgstr ""
-#: dwarf.c:4287 dwarf.c:4485
+#: dwarf.c:4312 dwarf.c:4510
#, c-format
msgid "directory index %u > number of directories %s\n"
msgstr ""
-#: dwarf.c:4289 dwarf.c:4588 elfcomm.c:891 readelf.c:306 readelf.c:646
-#: readelf.c:6732 readelf.c:7283 readelf.c:9247 readelf.c:11252 readelf.c:11319
-#: readelf.c:11662 readelf.c:14287 readelf.c:14382 readelf.c:14964
-#: readelf.c:14983 readelf.c:15107 readelf.c:15358 readelf.c:16464
-#: readelf.c:16467
+#: dwarf.c:4314 dwarf.c:4613 elfcomm.c:891 readelf.c:307 readelf.c:648
+#: readelf.c:6787 readelf.c:7338 readelf.c:9302 readelf.c:11322 readelf.c:11389
+#: readelf.c:11732 readelf.c:14358 readelf.c:14453 readelf.c:15035
+#: readelf.c:15054 readelf.c:15178 readelf.c:15429 readelf.c:16535
+#: readelf.c:16538
#, c-format
msgid "<corrupt>"
msgstr ""
-#: dwarf.c:4295
+#: dwarf.c:4320
#, c-format
msgid "CU: %s/%s:\n"
msgstr ""
-#: dwarf.c:4300
+#: dwarf.c:4325
#, c-format
msgid ""
"File name Line number Starting address "
"View\n"
msgstr ""
-#: dwarf.c:4416
+#: dwarf.c:4441
#, c-format
msgid "UNKNOWN (%u): length %d\n"
msgstr ""
-#: dwarf.c:4469
+#: dwarf.c:4494
#, c-format
msgid ""
"\n"
" [Use file table entry %d]\n"
msgstr ""
-#: dwarf.c:4473
+#: dwarf.c:4498
#, c-format
msgid "file index %u > number of files %u\n"
msgstr ""
-#: dwarf.c:4474
+#: dwarf.c:4499
#, c-format
msgid ""
"\n"
" <over large file table index %u>"
msgstr ""
-#: dwarf.c:4480
+#: dwarf.c:4505
#, c-format
msgid ""
"\n"
" [Use file %s in directory table entry %d]\n"
msgstr ""
-#: dwarf.c:4487
+#: dwarf.c:4512
#, c-format
msgid ""
"\n"
" <over large directory table entry %u>\n"
msgstr ""
-#: dwarf.c:4553
+#: dwarf.c:4578
#, c-format
msgid " Set ISA to %lu\n"
msgstr ""
-#: dwarf.c:4587
+#: dwarf.c:4612
#, c-format
msgid "corrupt file index %u encountered\n"
msgstr ""
-#: dwarf.c:4717
+#: dwarf.c:4742
msgid "no info"
msgstr ""
-#: dwarf.c:4718
+#: dwarf.c:4743
msgid "type"
msgstr ""
-#: dwarf.c:4719
+#: dwarf.c:4744
msgid "variable"
msgstr ""
-#: dwarf.c:4720
+#: dwarf.c:4745
msgid "function"
msgstr ""
-#: dwarf.c:4721
+#: dwarf.c:4746
msgid "other"
msgstr ""
-#: dwarf.c:4722
+#: dwarf.c:4747
msgid "unused5"
msgstr ""
-#: dwarf.c:4723
+#: dwarf.c:4748
msgid "unused6"
msgstr ""
-#: dwarf.c:4724
+#: dwarf.c:4749
msgid "unused7"
msgstr ""
-#: dwarf.c:4784 dwarf.c:6329
+#: dwarf.c:4809 dwarf.c:6354
#, c-format
msgid ""
".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
msgstr ""
-#: dwarf.c:4789
+#: dwarf.c:4814
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: dwarf.c:4791
+#: dwarf.c:4816
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:4793
+#: dwarf.c:4818
#, c-format
msgid " Offset into .debug_info section: 0x%lx\n"
msgstr ""
-#: dwarf.c:4795
+#: dwarf.c:4820
#, c-format
msgid " Size of area in .debug_info section: %ld\n"
msgstr ""
-#: dwarf.c:4804
+#: dwarf.c:4829
msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
msgstr ""
-#: dwarf.c:4812
+#: dwarf.c:4837
#, c-format
msgid ""
"\n"
" Offset Kind Name\n"
msgstr ""
-#: dwarf.c:4814
+#: dwarf.c:4839
#, c-format
msgid ""
"\n"
" Offset\tName\n"
msgstr ""
-#: dwarf.c:4850
+#: dwarf.c:4875
msgid "s"
msgstr ""
-#: dwarf.c:4850
+#: dwarf.c:4875
msgid "g"
msgstr ""
-#: dwarf.c:4910
+#: dwarf.c:4935
#, c-format
msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
msgstr ""
-#: dwarf.c:4916
+#: dwarf.c:4941
#, c-format
msgid " DW_MACINFO_end_file\n"
msgstr ""
-#: dwarf.c:4924
+#: dwarf.c:4949
#, c-format
msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:4933
+#: dwarf.c:4958
#, c-format
msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:4945
+#: dwarf.c:4970
#, c-format
msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
msgstr ""
-#: dwarf.c:5078
+#: dwarf.c:5103
#, c-format
msgid "Only GNU extension to DWARF 4 or 5 of %s is currently supported.\n"
msgstr ""
-#: dwarf.c:5088
+#: dwarf.c:5113
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:5089
+#: dwarf.c:5114
#, c-format
msgid " Offset size: %d\n"
msgstr ""
-#: dwarf.c:5093
+#: dwarf.c:5118
#, c-format
msgid " Offset into .debug_line: 0x%lx\n"
msgstr ""
-#: dwarf.c:5107
+#: dwarf.c:5132
#, c-format
msgid " Extension opcode arguments:\n"
msgstr ""
-#: dwarf.c:5115
+#: dwarf.c:5140
#, c-format
msgid " DW_MACRO_%02x has no arguments\n"
msgstr ""
-#: dwarf.c:5118
+#: dwarf.c:5143
#, c-format
msgid " DW_MACRO_%02x arguments: "
msgstr ""
-#: dwarf.c:5144
+#: dwarf.c:5169
#, c-format
msgid "Invalid extension opcode form %s\n"
msgstr ""
-#: dwarf.c:5161
+#: dwarf.c:5186
msgid ".debug_macro section not zero terminated\n"
msgstr ""
-#: dwarf.c:5182
+#: dwarf.c:5207
msgid "DW_MACRO_start_file used, but no .debug_line offset provided.\n"
msgstr ""
-#: dwarf.c:5188
+#: dwarf.c:5213
#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d\n"
msgstr ""
-#: dwarf.c:5191
+#: dwarf.c:5216
#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d filename: %s%s%s\n"
msgstr ""
-#: dwarf.c:5199
+#: dwarf.c:5224
#, c-format
msgid " DW_MACRO_end_file\n"
msgstr ""
-#: dwarf.c:5207
+#: dwarf.c:5232
#, c-format
msgid " DW_MACRO_define - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:5216
+#: dwarf.c:5241
#, c-format
msgid " DW_MACRO_undef - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:5225
+#: dwarf.c:5250
#, c-format
msgid " DW_MACRO_define_strp - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:5234
+#: dwarf.c:5259
#, c-format
msgid " DW_MACRO_undef_strp - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:5240
+#: dwarf.c:5265
#, c-format
msgid " DW_MACRO_import - offset : 0x%lx\n"
msgstr ""
-#: dwarf.c:5248
+#: dwarf.c:5273
#, c-format
msgid " DW_MACRO_define_sup - lineno : %d macro offset : 0x%lx\n"
msgstr ""
-#: dwarf.c:5256
+#: dwarf.c:5281
#, c-format
msgid " DW_MACRO_undef_sup - lineno : %d macro offset : 0x%lx\n"
msgstr ""
-#: dwarf.c:5262
+#: dwarf.c:5287
#, c-format
msgid " DW_MACRO_import_sup - offset : 0x%lx\n"
msgstr ""
-#: dwarf.c:5269
+#: dwarf.c:5294
#, c-format
msgid " Unknown macro opcode %02x seen\n"
msgstr ""
-#: dwarf.c:5281
+#: dwarf.c:5306
#, c-format
msgid " DW_MACRO_%02x\n"
msgstr ""
-#: dwarf.c:5284
+#: dwarf.c:5309
#, c-format
msgid " DW_MACRO_%02x -"
msgstr ""
-#: dwarf.c:5333
+#: dwarf.c:5358
#, c-format
msgid " Number TAG (0x%lx)\n"
msgstr ""
-#: dwarf.c:5342
+#: dwarf.c:5367
msgid "has children"
msgstr ""
-#: dwarf.c:5342
+#: dwarf.c:5367
msgid "no children"
msgstr ""
-#: dwarf.c:5411
+#: dwarf.c:5436
#, c-format
msgid "location view pair\n"
msgstr ""
-#: dwarf.c:5443
+#: dwarf.c:5468
#, c-format
msgid "No debug information available for loc lists of entry: %u\n"
msgstr ""
-#: dwarf.c:5455 dwarf.c:5607 dwarf.c:5777
+#: dwarf.c:5480 dwarf.c:5632 dwarf.c:5802
#, c-format
msgid "Invalid pointer size (%d) in debug info for entry %d\n"
msgstr ""
-#: dwarf.c:5467 dwarf.c:5524 dwarf.c:5533 dwarf.c:5619 dwarf.c:5687
-#: dwarf.c:5788 dwarf.c:5867 dwarf.c:5875
+#: dwarf.c:5492 dwarf.c:5549 dwarf.c:5558 dwarf.c:5644 dwarf.c:5712
+#: dwarf.c:5813 dwarf.c:5892 dwarf.c:5900
#, c-format
msgid "Location list starting at offset 0x%lx is not terminated.\n"
msgstr ""
-#: dwarf.c:5488 dwarf.c:5647 dwarf.c:5828 dwarf.c:6550 dwarf.c:6606
+#: dwarf.c:5513 dwarf.c:5672 dwarf.c:5853 dwarf.c:6576 dwarf.c:6632
#, c-format
msgid "<End of list>\n"
msgstr ""
-#: dwarf.c:5500 dwarf.c:5659 dwarf.c:6611
+#: dwarf.c:5525 dwarf.c:5684 dwarf.c:6637
#, c-format
msgid "(base address)\n"
msgstr ""
-#: dwarf.c:5518 dwarf.c:5640 dwarf.c:5816
+#: dwarf.c:5543 dwarf.c:5665 dwarf.c:5841
#, c-format
msgid ""
"views at %8.8lx for:\n"
" %*s "
msgstr ""
-#: dwarf.c:5554 dwarf.c:5711
+#: dwarf.c:5579 dwarf.c:5736
msgid " (start == end)"
msgstr ""
-#: dwarf.c:5556 dwarf.c:5713
+#: dwarf.c:5581 dwarf.c:5738
msgid " (start > end)"
msgstr ""
-#: dwarf.c:5594
+#: dwarf.c:5619
#, c-format
msgid "No debug information available for loclists lists of entry: %u\n"
msgstr ""
-#: dwarf.c:5664
+#: dwarf.c:5689
#, c-format
msgid "View pair entry in loclist with locviews attribute\n"
msgstr ""
-#: dwarf.c:5673
+#: dwarf.c:5698
#, c-format
msgid "views for:\n"
msgstr ""
-#: dwarf.c:5677
+#: dwarf.c:5702
#, c-format
msgid "Invalid location list entry type %d\n"
msgstr ""
-#: dwarf.c:5722
+#: dwarf.c:5747
#, c-format
msgid "Trailing view pair not used in a range"
msgstr ""
-#: dwarf.c:5765
+#: dwarf.c:5790
#, c-format
msgid "No debug information for loc lists of entry: %u\n"
msgstr ""
-#: dwarf.c:5835
+#: dwarf.c:5860
#, c-format
msgid "(base address selection entry)\n"
msgstr ""
-#: dwarf.c:5859
+#: dwarf.c:5884
#, c-format
msgid "Unknown location list entry type 0x%x.\n"
msgstr ""
-#: dwarf.c:5952 dwarf.c:6205 dwarf.c:6426 dwarf.c:6498 dwarf.c:6668
+#: dwarf.c:5977 dwarf.c:6230 dwarf.c:6451 dwarf.c:6523 dwarf.c:6694
#, c-format
msgid ""
"\n"
"The %s section is empty.\n"
msgstr ""
-#: dwarf.c:5972
+#: dwarf.c:5997
#, c-format
msgid "The %s section contains corrupt or unsupported version number: %d.\n"
msgstr ""
-#: dwarf.c:5992
+#: dwarf.c:6017
#, c-format
msgid "The %s section contains unsupported offset entry count: %d.\n"
msgstr ""
-#: dwarf.c:6003 dwarf.c:6432 dwarf.c:6746
+#: dwarf.c:6028 dwarf.c:6457 dwarf.c:6772
#, c-format
msgid ""
"Unable to load/parse the .debug_info section, so cannot interpret the %s "
"section.\n"
msgstr ""
-#: dwarf.c:6051
+#: dwarf.c:6076
msgid "No location lists in .debug_info section!\n"
msgstr ""
-#: dwarf.c:6056
+#: dwarf.c:6081
#, c-format
msgid "Location lists in %s section start at 0x%s\n"
msgstr ""
-#: dwarf.c:6066
+#: dwarf.c:6091
#, c-format
msgid ""
" Warning: This section has relocations - addresses seen here may not be "
@@ -3191,761 +3202,771 @@ msgid ""
"\n"
msgstr ""
-#: dwarf.c:6068
+#: dwarf.c:6093
#, c-format
msgid " Offset Begin End Expression\n"
msgstr ""
-#: dwarf.c:6123
+#: dwarf.c:6148
#, c-format
msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
msgstr ""
-#: dwarf.c:6127
+#: dwarf.c:6152
#, c-format
msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
msgstr ""
-#: dwarf.c:6136
+#: dwarf.c:6161
#, c-format
msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
msgstr ""
-#: dwarf.c:6143
+#: dwarf.c:6168
#, c-format
msgid "View Offset 0x%lx is bigger than .debug_loc section size.\n"
msgstr ""
-#: dwarf.c:6160
+#: dwarf.c:6185
msgid "DWO is not yet supported.\n"
msgstr ""
-#: dwarf.c:6177
+#: dwarf.c:6202
msgid "Hole and overlap detection requires adjacent view lists and loclists.\n"
msgstr ""
-#: dwarf.c:6186
+#: dwarf.c:6211
#, c-format
msgid "There is %ld unused byte at the end of section %s\n"
msgid_plural "There are %ld unused bytes at the end of section %s\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:6342
+#: dwarf.c:6367
msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
msgstr ""
-#: dwarf.c:6346
+#: dwarf.c:6371
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: dwarf.c:6348
+#: dwarf.c:6373
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:6349
+#: dwarf.c:6374
#, c-format
msgid " Offset into .debug_info: 0x%lx\n"
msgstr ""
-#: dwarf.c:6351
+#: dwarf.c:6376
#, c-format
msgid " Pointer Size: %d\n"
msgstr ""
-#: dwarf.c:6352
+#: dwarf.c:6377
#, c-format
msgid " Segment Size: %d\n"
msgstr ""
-#: dwarf.c:6359
+#: dwarf.c:6384
#, c-format
msgid "Invalid address size in %s section!\n"
msgstr ""
-#: dwarf.c:6369
+#: dwarf.c:6394
msgid "Pointer size + Segment size is not a power of two.\n"
msgstr ""
-#: dwarf.c:6374
+#: dwarf.c:6399
#, c-format
msgid ""
"\n"
" Address Length\n"
msgstr ""
-#: dwarf.c:6376
+#: dwarf.c:6401
#, c-format
msgid ""
"\n"
" Address Length\n"
msgstr ""
-#: dwarf.c:6452
+#: dwarf.c:6477
#, c-format
msgid "Corrupt address base (%lx) found in debug section %u\n"
msgstr ""
-#: dwarf.c:6468
+#: dwarf.c:6493
#, c-format
msgid " For compilation unit at offset 0x%s:\n"
msgstr ""
-#: dwarf.c:6471
+#: dwarf.c:6496
#, c-format
msgid "\tIndex\tAddress\n"
msgstr ""
-#: dwarf.c:6478
+#: dwarf.c:6503
#, c-format
msgid "\t%d:\t"
msgstr ""
-#: dwarf.c:6569 dwarf.c:6643
+#: dwarf.c:6595 dwarf.c:6669
msgid "(start == end)"
msgstr ""
-#: dwarf.c:6571 dwarf.c:6645
+#: dwarf.c:6597 dwarf.c:6671
msgid "(start > end)"
msgstr ""
-#: dwarf.c:6594
+#: dwarf.c:6620
#, c-format
msgid "Range list starting at offset 0x%lx is not terminated.\n"
msgstr ""
-#: dwarf.c:6630
+#: dwarf.c:6656
#, c-format
msgid "Invalid range list entry type %d\n"
msgstr ""
-#: dwarf.c:6707
+#: dwarf.c:6733
#, c-format
msgid ""
"The length field (0x%lx) in the debug_rnglists header is wrong - the section "
"is too small\n"
msgstr ""
-#: dwarf.c:6718
+#: dwarf.c:6744
msgid "Only DWARF version 5 debug_rnglists info is currently supported.\n"
msgstr ""
-#: dwarf.c:6737
+#: dwarf.c:6763
#, c-format
msgid "The %s section contains unsupported offset entry count: %u.\n"
msgstr ""
#. This can happen when the file was compiled with -gsplit-debug
#. which removes references to range lists from the primary .o file.
-#: dwarf.c:6759
+#: dwarf.c:6785
#, c-format
msgid "No range lists in .debug_info section.\n"
msgstr ""
-#: dwarf.c:6784
+#: dwarf.c:6810
#, c-format
msgid "Range lists in %s section start at 0x%lx\n"
msgstr ""
-#: dwarf.c:6789
+#: dwarf.c:6815
#, c-format
msgid " Offset Begin End\n"
msgstr ""
-#: dwarf.c:6808
+#: dwarf.c:6834
#, c-format
msgid "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"
msgstr ""
-#: dwarf.c:6816
+#: dwarf.c:6841
+#, c-format
+msgid "Corrupt offset (%#8.8lx) in range entry %u\n"
+msgstr ""
+
+#: dwarf.c:6849
#, c-format
msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
msgstr ""
-#: dwarf.c:6823
+#: dwarf.c:6856
#, c-format
msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
msgstr ""
-#: dwarf.c:6895
+#: dwarf.c:6929
#, c-format
msgid "Unfeasibly large register number: %u\n"
msgstr ""
-#: dwarf.c:6908
+#: dwarf.c:6942
#, c-format
msgid "Out of memory allocating %u columns in dwarf frame arrays\n"
msgstr ""
-#: dwarf.c:7226
+#: dwarf.c:7285
msgid "No terminator for augmentation name\n"
msgstr ""
-#: dwarf.c:7238
+#: dwarf.c:7297
#, c-format
msgid "Invalid pointer size (%d) in CIE data\n"
msgstr ""
-#: dwarf.c:7246
+#: dwarf.c:7305
#, c-format
msgid "Invalid segment size (%d) in CIE data\n"
msgstr ""
-#: dwarf.c:7275
+#: dwarf.c:7334
#, c-format
msgid "Augmentation data too long: 0x%s, expected at most %#lx\n"
msgstr ""
-#: dwarf.c:7354
+#: dwarf.c:7413
#, c-format
msgid " Augmentation data: "
msgstr ""
-#: dwarf.c:7371
+#: dwarf.c:7430
msgid "bad register: "
msgstr ""
-#: dwarf.c:7541
+#: dwarf.c:7600
msgid "Failed to read CIE information\n"
msgstr ""
-#: dwarf.c:7552 dwarf.c:7576 dwarf.c:7603
+#: dwarf.c:7611 dwarf.c:7635 dwarf.c:7662
msgid "Invalid max register\n"
msgstr ""
#. PR 17512: file: 9e196b3e.
-#: dwarf.c:7618
+#: dwarf.c:7677
#, c-format
msgid "Probably corrupt segment size: %d - using 4 instead\n"
msgstr ""
-#: dwarf.c:7642
+#: dwarf.c:7701
#, c-format
msgid "Corrupt augmentation data length: 0x%s\n"
msgstr ""
-#: dwarf.c:7764
+#: dwarf.c:7823
#, c-format
msgid "Corrupt CFA_def expression value: %lu\n"
msgstr ""
#. PR 17512: file:306-192417-0.005.
-#: dwarf.c:7778
+#: dwarf.c:7837
#, c-format
msgid "Corrupt CFA expression value: %lu\n"
msgstr ""
-#: dwarf.c:8081
+#: dwarf.c:8140
msgid "Invalid column number in saved frame state\n"
msgstr ""
-#: dwarf.c:8128
+#: dwarf.c:8187
#, c-format
msgid " DW_CFA_def_cfa_expression: <corrupt len %lu>\n"
msgstr ""
-#: dwarf.c:8152
+#: dwarf.c:8211
#, c-format
msgid " DW_CFA_expression: <corrupt len %lu>\n"
msgstr ""
-#: dwarf.c:8284
+#: dwarf.c:8343
#, c-format
msgid " DW_CFA_??? (User defined call frame op: %#x)\n"
msgstr ""
-#: dwarf.c:8286
+#: dwarf.c:8345
#, c-format
msgid "Unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
msgstr ""
-#: dwarf.c:8357 dwarf.c:8754
+#: dwarf.c:8416 dwarf.c:8813
#, c-format
msgid "Version %ld\n"
msgstr ""
-#: dwarf.c:8363
+#: dwarf.c:8422
msgid "Only DWARF version 5 .debug_names is currently supported.\n"
msgstr ""
-#: dwarf.c:8370
+#: dwarf.c:8429
#, c-format
msgid "Padding field of .debug_names must be 0 (found 0x%x)\n"
msgstr ""
-#: dwarf.c:8375
+#: dwarf.c:8434
msgid "Compilation unit count must be >= 1 in .debug_names\n"
msgstr ""
-#: dwarf.c:8386
+#: dwarf.c:8445
#, c-format
msgid ""
"Augmentation string length %u must be rounded up to a multiple of 4 in ."
"debug_names.\n"
msgstr ""
-#: dwarf.c:8391
+#: dwarf.c:8450
#, c-format
msgid "Augmentation string:"
msgstr ""
-#: dwarf.c:8402
+#: dwarf.c:8461
#, c-format
msgid "CU table:\n"
msgstr ""
-#: dwarf.c:8408 dwarf.c:8418
+#: dwarf.c:8467 dwarf.c:8477
#, c-format
msgid "[%3u] 0x%lx\n"
msgstr ""
-#: dwarf.c:8412
+#: dwarf.c:8471
#, c-format
msgid "TU table:\n"
msgstr ""
-#: dwarf.c:8422
+#: dwarf.c:8481
#, c-format
msgid "Foreign TU table:\n"
msgstr ""
-#: dwarf.c:8428
+#: dwarf.c:8487
#, c-format
msgid "[%3u] "
msgstr ""
-#: dwarf.c:8448
+#: dwarf.c:8507
#, c-format
msgid ""
"Entry pool offset (0x%lx) exceeds unit size 0x%lx for unit 0x%lx in the "
"debug_names\n"
msgstr ""
-#: dwarf.c:8465
+#: dwarf.c:8524
#, c-format
msgid "Used %zu of %lu bucket.\n"
msgid_plural "Used %zu of %lu buckets.\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:8492
+#: dwarf.c:8551
#, c-format
msgid ""
"Out of %lu items there are %zu bucket clashes (longest of %zu entries).\n"
msgstr ""
-#: dwarf.c:8530
+#: dwarf.c:8589
#, c-format
msgid "Duplicate abbreviation tag %lu in unit 0x%lx in the debug_names\n"
msgstr ""
-#: dwarf.c:8556 dwarf.c:8880
+#: dwarf.c:8615 dwarf.c:8939
#, c-format
msgid ""
"\n"
"Symbol table:\n"
msgstr ""
-#: dwarf.c:8609
+#: dwarf.c:8668
#, c-format
msgid "Undefined abbreviation tag %lu in unit 0x%lx in the debug_names\n"
msgstr ""
-#: dwarf.c:8645
+#: dwarf.c:8704
#, c-format
msgid " <no entries>"
msgstr ""
-#: dwarf.c:8677
+#: dwarf.c:8736
msgid "The debuglink filename is corrupt/missing\n"
msgstr ""
-#: dwarf.c:8681
+#: dwarf.c:8740
#, c-format
msgid " Separate debug info file: %s\n"
msgstr ""
-#: dwarf.c:8692
+#: dwarf.c:8751
msgid "CRC offset missing/truncated\n"
msgstr ""
-#: dwarf.c:8698
+#: dwarf.c:8757
#, c-format
msgid " CRC value: %#x\n"
msgstr ""
-#: dwarf.c:8702
+#: dwarf.c:8761
#, c-format
msgid "There are %#lx extraneous bytes at the end of the section\n"
msgstr ""
-#: dwarf.c:8716
+#: dwarf.c:8775
#, c-format
msgid "Build-ID is too short (%#lx bytes)\n"
msgstr ""
-#: dwarf.c:8720
+#: dwarf.c:8779
#, c-format
msgid " Build-ID (%#lx bytes):"
msgstr ""
-#: dwarf.c:8749
+#: dwarf.c:8808
#, c-format
msgid "Truncated header in the %s section.\n"
msgstr ""
-#: dwarf.c:8760
+#: dwarf.c:8819
#, c-format
msgid "Unsupported version %lu.\n"
msgstr ""
-#: dwarf.c:8764
+#: dwarf.c:8823
msgid "The address table data in version 3 may be wrong.\n"
msgstr ""
-#: dwarf.c:8766
+#: dwarf.c:8825
msgid "Version 4 does not support case insensitive lookups.\n"
msgstr ""
-#: dwarf.c:8768
+#: dwarf.c:8827
msgid "Version 5 does not include inlined functions.\n"
msgstr ""
-#: dwarf.c:8770
+#: dwarf.c:8829
msgid "Version 6 does not include symbol attributes.\n"
msgstr ""
-#: dwarf.c:8788
+#: dwarf.c:8847
#, c-format
msgid "Corrupt header in the %s section.\n"
msgstr ""
-#: dwarf.c:8795
+#: dwarf.c:8854
#, c-format
msgid "TU offset (%x) is less than CU offset (%x)\n"
msgstr ""
-#: dwarf.c:8804
+#: dwarf.c:8863
#, c-format
msgid "Address table offset (%x) is less than TU offset (%x)\n"
msgstr ""
-#: dwarf.c:8814
+#: dwarf.c:8873
#, c-format
msgid "Symbol table offset (%x) is less then Address table offset (%x)\n"
msgstr ""
-#: dwarf.c:8823
+#: dwarf.c:8882
#, c-format
msgid "Constant pool offset (%x) is less than symbol table offset (%x)\n"
msgstr ""
-#: dwarf.c:8838
+#: dwarf.c:8897
msgid "Address table extends beyond end of section.\n"
msgstr ""
-#: dwarf.c:8842
+#: dwarf.c:8901
#, c-format
msgid ""
"\n"
"CU table:\n"
msgstr ""
-#: dwarf.c:8848
+#: dwarf.c:8907
#, c-format
msgid "[%3u] 0x%lx - 0x%lx\n"
msgstr ""
-#: dwarf.c:8853
+#: dwarf.c:8912
#, c-format
msgid ""
"\n"
"TU table:\n"
msgstr ""
-#: dwarf.c:8860
+#: dwarf.c:8919
#, c-format
msgid "[%3u] 0x%lx 0x%lx "
msgstr ""
-#: dwarf.c:8867
+#: dwarf.c:8926
#, c-format
msgid ""
"\n"
"Address table:\n"
msgstr ""
-#: dwarf.c:8877
+#: dwarf.c:8936
#, c-format
msgid "%lu\n"
msgstr ""
-#: dwarf.c:8897
+#: dwarf.c:8956
#, c-format
msgid "[%3u] <corrupt offset: %x>"
msgstr ""
-#: dwarf.c:8898
+#: dwarf.c:8957
#, c-format
msgid "Corrupt name offset of 0x%x found for symbol table slot %d\n"
msgstr ""
-#: dwarf.c:8909
+#: dwarf.c:8968
#, c-format
msgid "<invalid CU vector offset: %x>\n"
msgstr ""
-#: dwarf.c:8910
+#: dwarf.c:8969
#, c-format
msgid "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
msgstr ""
-#: dwarf.c:8923
+#: dwarf.c:8982
#, c-format
msgid "Invalid number of CUs (0x%x) for symbol table slot %d\n"
msgstr ""
-#: dwarf.c:8948
+#: dwarf.c:9007
msgid "static"
msgstr ""
-#: dwarf.c:8948
+#: dwarf.c:9007
msgid "global"
msgstr ""
-#: dwarf.c:8986 dwarf.c:8997
+#: dwarf.c:9045 dwarf.c:9056
msgid "Internal error: out of space in the shndx pool.\n"
msgstr ""
-#: dwarf.c:9061
+#: dwarf.c:9120
#, c-format
msgid "Section %s is empty\n"
msgstr ""
-#: dwarf.c:9067
+#: dwarf.c:9126
#, c-format
msgid "Section %s is too small to contain a CU/TU header\n"
msgstr ""
-#: dwarf.c:9085
+#: dwarf.c:9144
#, c-format
msgid "Section %s is too small for %d slot\n"
msgid_plural "Section %s is too small for %d slots\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:9096
+#: dwarf.c:9155
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:9098
+#: dwarf.c:9157
#, c-format
msgid " Number of columns: %d\n"
msgstr ""
-#: dwarf.c:9099
+#: dwarf.c:9158
#, c-format
msgid " Number of used entries: %d\n"
msgstr ""
-#: dwarf.c:9100
+#: dwarf.c:9159
#, c-format
msgid ""
" Number of slots: %d\n"
"\n"
msgstr ""
-#: dwarf.c:9105
+#: dwarf.c:9164
#, c-format
msgid "Section %s too small for %d hash table entries\n"
msgstr ""
-#: dwarf.c:9127
+#: dwarf.c:9186
msgid "Section index pool located before start of section\n"
msgstr ""
-#: dwarf.c:9132
+#: dwarf.c:9191
#, c-format
msgid " [%3d] Signature: 0x%s Sections: "
msgstr ""
-#: dwarf.c:9139
+#: dwarf.c:9198
#, c-format
msgid "Section %s too small for shndx pool\n"
msgstr ""
-#: dwarf.c:9181
+#: dwarf.c:9240
#, c-format
msgid "Overlarge number of columns: %x\n"
msgstr ""
-#: dwarf.c:9187
+#: dwarf.c:9246
#, c-format
msgid "Section %s too small for offset and size tables\n"
msgstr ""
-#: dwarf.c:9194
+#: dwarf.c:9253
#, c-format
msgid " Offset table\n"
msgstr ""
-#: dwarf.c:9196 dwarf.c:9286
+#: dwarf.c:9255 dwarf.c:9356
msgid "signature"
msgstr ""
-#: dwarf.c:9196 dwarf.c:9286
+#: dwarf.c:9255 dwarf.c:9356
msgid "dwo_id"
msgstr ""
-#: dwarf.c:9234
+#: dwarf.c:9293
#, c-format
msgid "Row index (%u) is larger than number of used entries (%u)\n"
msgstr ""
-#: dwarf.c:9246
+#: dwarf.c:9307
+#, c-format
+msgid "Signature (%p) extends beyond end of space in section\n"
+msgstr ""
+
+#: dwarf.c:9316
#, c-format
msgid "Row index (%u) * num columns (%u) > space remaining in section\n"
msgstr ""
-#: dwarf.c:9252 dwarf.c:9309
+#: dwarf.c:9322 dwarf.c:9379
#, c-format
msgid " [%3d] 0x%s"
msgstr ""
-#: dwarf.c:9266 dwarf.c:9322
+#: dwarf.c:9336 dwarf.c:9392
#, c-format
msgid "Overlarge Dwarf section index detected: %u\n"
msgstr ""
-#: dwarf.c:9284
+#: dwarf.c:9354
#, c-format
msgid " Size table\n"
msgstr ""
-#: dwarf.c:9337
+#: dwarf.c:9407
#, c-format
msgid " Unsupported version (%d)\n"
msgstr ""
-#: dwarf.c:9409
+#: dwarf.c:9479
#, c-format
msgid "Displaying the debug contents of section %s is not yet supported.\n"
msgstr ""
-#: dwarf.c:9440
+#: dwarf.c:9510
#, c-format
msgid ""
"Attempt to allocate an array with an excessive number of elements: 0x%lx\n"
msgstr ""
-#: dwarf.c:9458
+#: dwarf.c:9528
#, c-format
msgid ""
"Attempt to re-allocate an array with an excessive number of elements: 0x%lx\n"
msgstr ""
-#: dwarf.c:9474
+#: dwarf.c:9544
#, c-format
msgid ""
"Attempt to allocate a zero'ed array with an excessive number of elements: 0x"
"%lx\n"
msgstr ""
-#: dwarf.c:9572
+#: dwarf.c:9642
#, c-format
msgid "Unable to reopen separate debug info file: %s\n"
msgstr ""
-#: dwarf.c:9584
+#: dwarf.c:9654
#, c-format
msgid "Separate debug info file %s found, but CRC does not match - ignoring\n"
msgstr ""
-#: dwarf.c:9679
+#: dwarf.c:9749
#, c-format
msgid "Corrupt debuglink section: %s\n"
msgstr ""
-#: dwarf.c:9717
+#: dwarf.c:9787
msgid "Out of memory"
msgstr ""
#. Failed to find the file.
-#: dwarf.c:9766
+#: dwarf.c:9836
#, c-format
msgid "could not find separate debug file '%s'\n"
msgstr ""
-#: dwarf.c:9767 dwarf.c:9771 dwarf.c:9776 dwarf.c:9780 dwarf.c:9783
-#: dwarf.c:9786 dwarf.c:9789
+#: dwarf.c:9837 dwarf.c:9841 dwarf.c:9846 dwarf.c:9850 dwarf.c:9853
+#: dwarf.c:9856 dwarf.c:9859
#, c-format
msgid "tried: %s\n"
msgstr ""
-#: dwarf.c:9801
+#: dwarf.c:9871
#, c-format
msgid "failed to open separate debug file: %s\n"
msgstr ""
#. FIXME: We do not check to see if there are any other separate debug info
#. files that would also match.
-#: dwarf.c:9809
+#: dwarf.c:9879
#, c-format
msgid ""
"%s: Found separate debug info file: %s\n"
"\n"
msgstr ""
-#: dwarf.c:9828
+#: dwarf.c:9898
msgid "Out of memory allocating dwo filename\n"
msgstr ""
-#: dwarf.c:9834
+#: dwarf.c:9904
#, c-format
msgid "Unable to load dwo file: %s\n"
msgstr ""
#. FIXME: We should check the dwo_id.
-#: dwarf.c:9841
+#: dwarf.c:9911
#, c-format
msgid ""
"%s: Found separate debug object file: %s\n"
"\n"
msgstr ""
-#: dwarf.c:9869
+#: dwarf.c:9943
#, c-format
msgid "The %s section contains a link to a dwo file:\n"
msgstr ""
-#: dwarf.c:9871
+#: dwarf.c:9945
#, c-format
msgid " Name: %s\n"
msgstr ""
-#: dwarf.c:9872
+#: dwarf.c:9946
#, c-format
msgid " Directory: %s\n"
msgstr ""
-#: dwarf.c:9872
+#: dwarf.c:9946
msgid "<not-found>"
msgstr ""
-#: dwarf.c:9874
+#: dwarf.c:9948
#, c-format
msgid " ID: "
msgstr ""
-#: dwarf.c:9876
+#: dwarf.c:9950
#, c-format
msgid " ID: <unknown>\n"
msgstr ""
-#: dwarf.c:10033 dwarf.c:10075
+#: dwarf.c:10109 dwarf.c:10151
#, c-format
msgid "Unrecognized debug option '%s'\n"
msgstr ""
@@ -4033,7 +4054,7 @@ msgstr ""
msgid "%s: failed to seek to first archive header\n"
msgstr ""
-#: elfcomm.c:640 elfcomm.c:867 elfedit.c:379 readelf.c:18888
+#: elfcomm.c:640 elfcomm.c:867 elfedit.c:379 readelf.c:18972
#, c-format
msgid "%s: failed to read archive header\n"
msgstr ""
@@ -4080,7 +4101,7 @@ msgstr ""
msgid "%s: failed to seek to next file name\n"
msgstr ""
-#: elfcomm.c:872 elfedit.c:386 readelf.c:18894
+#: elfcomm.c:872 elfedit.c:386 readelf.c:18978
#, c-format
msgid "%s: did not find a valid archive header\n"
msgstr ""
@@ -4146,12 +4167,12 @@ msgstr ""
msgid "%s: Failed to seek to ELF header\n"
msgstr ""
-#: elfedit.c:370 readelf.c:18880
+#: elfedit.c:370 readelf.c:18964
#, c-format
msgid "%s: failed to seek to next archive header\n"
msgstr ""
-#: elfedit.c:401 elfedit.c:410 readelf.c:18908 readelf.c:18917
+#: elfedit.c:401 elfedit.c:410 readelf.c:18992 readelf.c:19001
#, c-format
msgid "%s: bad archive file name\n"
msgstr ""
@@ -4166,22 +4187,22 @@ msgstr ""
msgid "%s: failed to seek to archive member\n"
msgstr ""
-#: elfedit.c:493 readelf.c:19026
+#: elfedit.c:493 readelf.c:19110
#, c-format
msgid "'%s': No such file\n"
msgstr ""
-#: elfedit.c:495 readelf.c:19028
+#: elfedit.c:495 readelf.c:19112
#, c-format
msgid "Could not locate '%s'. System error message: %s\n"
msgstr ""
-#: elfedit.c:502 readelf.c:19035
+#: elfedit.c:502 readelf.c:19119
#, c-format
msgid "'%s' is not an ordinary file\n"
msgstr ""
-#: elfedit.c:528 readelf.c:19057
+#: elfedit.c:528 readelf.c:19141
#, c-format
msgid "%s: Failed to read file's magic number\n"
msgstr ""
@@ -4249,444 +4270,10 @@ msgstr ""
msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
msgstr ""
-#: ieee.c:310
-msgid "unexpected end of debugging information"
-msgstr ""
-
-#: ieee.c:397
-msgid "invalid number"
-msgstr ""
-
-#: ieee.c:450
-msgid "invalid string length"
-msgstr ""
-
-#: ieee.c:505 ieee.c:546
-msgid "expression stack overflow"
-msgstr ""
-
-#: ieee.c:525
-msgid "unsupported IEEE expression operator"
-msgstr ""
-
-#: ieee.c:540
-msgid "unknown section"
-msgstr ""
-
-#: ieee.c:561
-msgid "expression stack underflow"
-msgstr ""
-
-#: ieee.c:575
-msgid "expression stack mismatch"
-msgstr ""
-
-#: ieee.c:612
-msgid "unknown builtin type"
-msgstr ""
-
-#: ieee.c:757
-msgid "BCD float type not supported"
-msgstr ""
-
-#: ieee.c:894
-msgid "unexpected number"
-msgstr ""
-
-#: ieee.c:901
-msgid "unexpected record type"
-msgstr ""
-
-#: ieee.c:934
-msgid "blocks left on stack at end"
-msgstr ""
-
-#: ieee.c:1207
-msgid "unknown BB type"
-msgstr ""
-
-#: ieee.c:1216
-msgid "stack overflow"
-msgstr ""
-
-#: ieee.c:1239
-msgid "stack underflow"
-msgstr ""
-
-#: ieee.c:1351 ieee.c:1421 ieee.c:2119
-msgid "illegal variable index"
-msgstr ""
-
-#: ieee.c:1399
-msgid "illegal type index"
-msgstr ""
-
-#: ieee.c:1409 ieee.c:1446
-msgid "unknown TY code"
-msgstr ""
-
-#: ieee.c:1428
-msgid "undefined variable in TY"
-msgstr ""
-
-#. Pascal file name. FIXME.
-#: ieee.c:1840
-msgid "Pascal file name not supported"
-msgstr ""
-
-#: ieee.c:1888
-msgid "unsupported qualifier"
-msgstr ""
-
-#: ieee.c:2157
-msgid "undefined variable in ATN"
-msgstr ""
-
-#: ieee.c:2200
-msgid "unknown ATN type"
-msgstr ""
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2322
-msgid "unsupported ATN11"
-msgstr ""
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2349
-msgid "unsupported ATN12"
-msgstr ""
-
-#: ieee.c:2409
-msgid "unexpected string in C++ misc"
-msgstr ""
-
-#: ieee.c:2422
-msgid "bad misc record"
-msgstr ""
-
-#: ieee.c:2463
-msgid "unrecognized C++ misc record"
-msgstr ""
-
-#: ieee.c:2578
-msgid "undefined C++ object"
-msgstr ""
-
-#: ieee.c:2612
-msgid "unrecognized C++ object spec"
-msgstr ""
-
-#: ieee.c:2648
-msgid "unsupported C++ object type"
-msgstr ""
-
-#: ieee.c:2658
-msgid "C++ base class not defined"
-msgstr ""
-
-#: ieee.c:2670 ieee.c:2775
-msgid "C++ object has no fields"
-msgstr ""
-
-#: ieee.c:2689
-msgid "C++ base class not found in container"
-msgstr ""
-
-#: ieee.c:2796
-msgid "C++ data member not found in container"
-msgstr ""
-
-#: ieee.c:2837 ieee.c:2987
-msgid "unknown C++ visibility"
-msgstr ""
-
-#: ieee.c:2871
-msgid "bad C++ field bit pos or size"
-msgstr ""
-
-#: ieee.c:2963
-msgid "bad type for C++ method function"
-msgstr ""
-
-#: ieee.c:2973
-msgid "no type information for C++ method function"
-msgstr ""
-
-#: ieee.c:3012
-msgid "C++ static virtual method"
-msgstr ""
-
-#: ieee.c:3107
-msgid "unrecognized C++ object overhead spec"
-msgstr ""
-
-#: ieee.c:3146
-msgid "undefined C++ vtable"
-msgstr ""
-
-#: ieee.c:3215
-msgid "C++ default values not in a function"
-msgstr ""
-
-#: ieee.c:3255
-msgid "unrecognized C++ default type"
-msgstr ""
-
-#: ieee.c:3286
-msgid "reference parameter is not a pointer"
-msgstr ""
-
-#: ieee.c:3369
-msgid "unrecognized C++ reference type"
-msgstr ""
-
-#: ieee.c:3451
-msgid "C++ reference not found"
-msgstr ""
-
-#: ieee.c:3459
-msgid "C++ reference is not pointer"
-msgstr ""
-
-#: ieee.c:3485 ieee.c:3493
-msgid "missing required ASN"
-msgstr ""
-
-#: ieee.c:3520 ieee.c:3528
-msgid "missing required ATN65"
-msgstr ""
-
-#: ieee.c:3542
-msgid "bad ATN65 record"
-msgstr ""
-
-#: ieee.c:4170
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr ""
-
-#: ieee.c:4214
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr ""
-
-#: ieee.c:5212
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr ""
-
-#: ieee.c:5246
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr ""
-
-#: ieee.c:5280
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr ""
-
#: mclex.c:240
msgid "Duplicate symbol entered into keyword list."
msgstr ""
-#: nlmconv.c:272 srconv.c:1788
-msgid "input and output files must be different"
-msgstr ""
-
-#: nlmconv.c:319
-msgid "input file named both on command line and with INPUT"
-msgstr ""
-
-#: nlmconv.c:328
-msgid "no input file"
-msgstr ""
-
-#: nlmconv.c:358
-msgid "no name for output file"
-msgstr ""
-
-#: nlmconv.c:372
-msgid "warning: input and output formats are not compatible"
-msgstr ""
-
-#: nlmconv.c:402
-msgid "make .bss section"
-msgstr ""
-
-#: nlmconv.c:412
-msgid "make .nlmsections section"
-msgstr ""
-
-#: nlmconv.c:440
-msgid "set .bss vma"
-msgstr ""
-
-#: nlmconv.c:447
-msgid "set .data size"
-msgstr ""
-
-#: nlmconv.c:627
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr ""
-
-#: nlmconv.c:647
-msgid "set start address"
-msgstr ""
-
-#: nlmconv.c:696
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:698
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:700
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:720 nlmconv.c:906
-msgid "custom section"
-msgstr ""
-
-#: nlmconv.c:740 nlmconv.c:935
-msgid "help section"
-msgstr ""
-
-#: nlmconv.c:762 nlmconv.c:953
-msgid "message section"
-msgstr ""
-
-#: nlmconv.c:777 nlmconv.c:986
-msgid "module section"
-msgstr ""
-
-#: nlmconv.c:796 nlmconv.c:1002
-msgid "rpc section"
-msgstr ""
-
-#. There is no place to record this information.
-#: nlmconv.c:832
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr ""
-
-#: nlmconv.c:853 nlmconv.c:1021
-msgid "shared section"
-msgstr ""
-
-#: nlmconv.c:861
-msgid "warning: No version number given"
-msgstr ""
-
-#: nlmconv.c:901 nlmconv.c:930 nlmconv.c:948 nlmconv.c:997 nlmconv.c:1016
-#, c-format
-msgid "%s: read: %s"
-msgstr ""
-
-#: nlmconv.c:923
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr ""
-
-#: nlmconv.c:1099
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr ""
-
-#: nlmconv.c:1100
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr ""
-
-#: nlmconv.c:1101
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" @<file> Read options from <file>.\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-
-#: nlmconv.c:1142
-#, c-format
-msgid "support not compiled in for %s"
-msgstr ""
-
-#: nlmconv.c:1179
-msgid "make section"
-msgstr ""
-
-#: nlmconv.c:1193
-msgid "set section size"
-msgstr ""
-
-#: nlmconv.c:1199
-msgid "set section alignment"
-msgstr ""
-
-#: nlmconv.c:1203
-msgid "set section flags"
-msgstr ""
-
-#: nlmconv.c:1214
-msgid "set .nlmsections size"
-msgstr ""
-
-#: nlmconv.c:1293 nlmconv.c:1301 nlmconv.c:1310 nlmconv.c:1315
-msgid "set .nlmsection contents"
-msgstr ""
-
-#: nlmconv.c:1795
-msgid "stub section sizes"
-msgstr ""
-
-#: nlmconv.c:1842
-msgid "writing stub"
-msgstr ""
-
-#: nlmconv.c:1876
-msgid "Unable to locate PPC_TOC16 reloc information"
-msgstr ""
-
-#: nlmconv.c:1930
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr ""
-
-#: nlmconv.c:1938 nlmconv.c:1994 nlmconv.c:2017
-#, c-format
-msgid "Out of range relocation: %lx"
-msgstr ""
-
-#: nlmconv.c:2008
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr ""
-
-#: nlmconv.c:2033
-#, c-format
-msgid "Unsupported relocation size: %d"
-msgstr ""
-
-#: nlmconv.c:2145
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr ""
-
-#: nlmconv.c:2160
-#, c-format
-msgid "Execution of %s failed"
-msgstr ""
-
#: nm.c:237 size.c:76 strings.c:639
#, c-format
msgid "Usage: %s [option(s)] [file(s)]\n"
@@ -4762,17 +4349,17 @@ msgstr ""
msgid "%s: invalid output format"
msgstr ""
-#: nm.c:362 readelf.c:10785 readelf.c:10830
+#: nm.c:362 readelf.c:10855 readelf.c:10900
#, c-format
msgid "<processor specific>: %d"
msgstr ""
-#: nm.c:364 readelf.c:10794 readelf.c:10849
+#: nm.c:364 readelf.c:10864 readelf.c:10919
#, c-format
msgid "<OS specific>: %d"
msgstr ""
-#: nm.c:366 readelf.c:10797 readelf.c:10852
+#: nm.c:366 readelf.c:10867 readelf.c:10922
#, c-format
msgid "<unknown>: %d"
msgstr ""
@@ -5139,7 +4726,7 @@ msgstr ""
msgid "cannot open '%s': %s"
msgstr ""
-#: objcopy.c:1058 objcopy.c:4667
+#: objcopy.c:1058 objcopy.c:4673
#, c-format
msgid "%s: fread failed"
msgstr ""
@@ -5372,232 +4959,232 @@ msgstr ""
msgid "can't add padding"
msgstr ""
-#: objcopy.c:3090
+#: objcopy.c:3099
msgid "error: failed to copy merged notes into output"
msgstr ""
-#: objcopy.c:3095
+#: objcopy.c:3104
msgid "could not find any mergeable note sections"
msgstr ""
-#: objcopy.c:3107
+#: objcopy.c:3116
#, c-format
msgid "cannot fill debug link section `%s'"
msgstr ""
-#: objcopy.c:3164
+#: objcopy.c:3173
msgid "error copying private BFD data"
msgstr ""
-#: objcopy.c:3175
+#: objcopy.c:3184
#, c-format
msgid "this target does not support %lu alternative machine codes"
msgstr ""
-#: objcopy.c:3179
+#: objcopy.c:3188
msgid "treating that number as an absolute e_machine value instead"
msgstr ""
-#: objcopy.c:3183
+#: objcopy.c:3192
msgid "ignoring the alternative value"
msgstr ""
-#: objcopy.c:3215 objcopy.c:3268
+#: objcopy.c:3224 objcopy.c:3277
#, c-format
msgid "cannot create tempdir for archive copying (error: %s)"
msgstr ""
-#: objcopy.c:3301
+#: objcopy.c:3310
msgid "Unable to recognise the format of file"
msgstr ""
-#: objcopy.c:3428
+#: objcopy.c:3437
#, c-format
msgid "error: the input file '%s' is empty"
msgstr ""
-#: objcopy.c:3596
+#: objcopy.c:3605
#, c-format
msgid "Multiple renames of section %s"
msgstr ""
-#: objcopy.c:3642
+#: objcopy.c:3651
msgid "error in private header data"
msgstr ""
-#: objcopy.c:3720
+#: objcopy.c:3729
msgid "failed to create output section"
msgstr ""
-#: objcopy.c:3735
+#: objcopy.c:3744
msgid "failed to set size"
msgstr ""
-#: objcopy.c:3754
+#: objcopy.c:3763
msgid "failed to set vma"
msgstr ""
-#: objcopy.c:3779
+#: objcopy.c:3788
msgid "failed to set alignment"
msgstr ""
-#: objcopy.c:3811
+#: objcopy.c:3820
msgid "failed to copy private data"
msgstr ""
-#: objcopy.c:3967
+#: objcopy.c:3976
msgid "relocation count is negative"
msgstr ""
#. User must pad the section up in order to do this.
-#: objcopy.c:4064
+#: objcopy.c:4073
#, c-format
msgid ""
"cannot reverse bytes: length of section %s must be evenly divisible by %d"
msgstr ""
-#: objcopy.c:4272
+#: objcopy.c:4278
msgid "can't create debugging section"
msgstr ""
-#: objcopy.c:4285
+#: objcopy.c:4291
msgid "can't set debugging section contents"
msgstr ""
-#: objcopy.c:4293
+#: objcopy.c:4299
#, c-format
msgid "don't know how to write debugging information for %s"
msgstr ""
-#: objcopy.c:4464
+#: objcopy.c:4470
msgid "could not create temporary file to hold stripped copy"
msgstr ""
-#: objcopy.c:4536
+#: objcopy.c:4542
#, c-format
msgid "%s: bad version in PE subsystem"
msgstr ""
-#: objcopy.c:4566
+#: objcopy.c:4572
#, c-format
msgid "unknown PE subsystem: %s"
msgstr ""
-#: objcopy.c:4620 objcopy.c:4882 objcopy.c:4962 objcopy.c:5103 objcopy.c:5135
-#: objcopy.c:5158 objcopy.c:5162 objcopy.c:5182
+#: objcopy.c:4626 objcopy.c:4888 objcopy.c:4968 objcopy.c:5109 objcopy.c:5141
+#: objcopy.c:5164 objcopy.c:5168 objcopy.c:5188
#, c-format
msgid "bad format for %s"
msgstr ""
-#: objcopy.c:4649
+#: objcopy.c:4655
#, c-format
msgid "cannot open: %s: %s"
msgstr ""
-#: objcopy.c:4700
+#: objcopy.c:4706
msgid "byte number must be non-negative"
msgstr ""
-#: objcopy.c:4706
+#: objcopy.c:4712
#, c-format
msgid "architecture %s unknown"
msgstr ""
-#: objcopy.c:4714
+#: objcopy.c:4720
msgid "interleave must be positive"
msgstr ""
-#: objcopy.c:4723
+#: objcopy.c:4729
msgid "interleave width must be positive"
msgstr ""
-#: objcopy.c:5035
+#: objcopy.c:5041
#, c-format
msgid "unrecognized --compress-debug-sections type `%s'"
msgstr ""
-#: objcopy.c:5056
+#: objcopy.c:5062
#, c-format
msgid "unrecognized --elf-stt-common= option `%s'"
msgstr ""
-#: objcopy.c:5072
+#: objcopy.c:5078
#, c-format
msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
msgstr ""
-#: objcopy.c:5233
+#: objcopy.c:5239
#, c-format
msgid "unknown long section names option '%s'"
msgstr ""
-#: objcopy.c:5251
+#: objcopy.c:5257
msgid "unable to parse alternative machine code"
msgstr ""
-#: objcopy.c:5300
+#: objcopy.c:5306
msgid "number of bytes to reverse must be positive and even"
msgstr ""
-#: objcopy.c:5303
+#: objcopy.c:5309
#, c-format
msgid "Warning: ignoring previous --reverse-bytes value of %d"
msgstr ""
-#: objcopy.c:5318
+#: objcopy.c:5324
#, c-format
msgid "%s: invalid reserve value for --heap"
msgstr ""
-#: objcopy.c:5324
+#: objcopy.c:5330
#, c-format
msgid "%s: invalid commit value for --heap"
msgstr ""
-#: objcopy.c:5349
+#: objcopy.c:5355
#, c-format
msgid "%s: invalid reserve value for --stack"
msgstr ""
-#: objcopy.c:5355
+#: objcopy.c:5361
#, c-format
msgid "%s: invalid commit value for --stack"
msgstr ""
-#: objcopy.c:5384
+#: objcopy.c:5390
msgid "interleave start byte must be set with --byte"
msgstr ""
-#: objcopy.c:5387
+#: objcopy.c:5393
msgid "byte number must be less than interleave"
msgstr ""
-#: objcopy.c:5390
+#: objcopy.c:5396
msgid "interleave width must be less than or equal to interleave - byte`"
msgstr ""
-#: objcopy.c:5419
+#: objcopy.c:5425
#, c-format
msgid "unknown input EFI target: %s"
msgstr ""
-#: objcopy.c:5450
+#: objcopy.c:5456
#, c-format
msgid "unknown output EFI target: %s"
msgstr ""
-#: objcopy.c:5463
+#: objcopy.c:5469
#, c-format
msgid "warning: could not locate '%s'. System error message: %s"
msgstr ""
-#: objcopy.c:5475
+#: objcopy.c:5481
#, c-format
msgid ""
"warning: could not create temporary file whilst copying '%s', (error: %s)"
msgstr ""
-#: objcopy.c:5508 objcopy.c:5522
+#: objcopy.c:5514 objcopy.c:5528
#, c-format
msgid "%s %s%c0x%s never used"
msgstr ""
@@ -5749,7 +5336,7 @@ msgstr ""
msgid "failed to read symbol table from: %s"
msgstr ""
-#: objdump.c:619 objdump.c:3453
+#: objdump.c:619 objdump.c:3483
msgid "error message was"
msgstr ""
@@ -5758,179 +5345,179 @@ msgstr ""
msgid "%s: not a dynamic object"
msgstr ""
-#: objdump.c:1165 objdump.c:1189
+#: objdump.c:1188 objdump.c:1212
#, c-format
msgid " (File Offset: 0x%lx)"
msgstr ""
-#: objdump.c:1431
+#: objdump.c:1454
#, c-format
msgid "source file %s is more recent than object file\n"
msgstr ""
-#: objdump.c:1883
+#: objdump.c:1906
#, c-format
msgid "disassemble_fn returned length %d"
msgstr ""
-#: objdump.c:2189 objdump.c:3079
+#: objdump.c:2212 objdump.c:3109
#, c-format
msgid "Reading section %s failed because: %s"
msgstr ""
-#: objdump.c:2206
+#: objdump.c:2229
#, c-format
msgid ""
"\n"
"Disassembly of section %s:\n"
msgstr ""
-#: objdump.c:2383
+#: objdump.c:2406
#, c-format
msgid "can't use supplied machine %s"
msgstr ""
-#: objdump.c:2404
+#: objdump.c:2427
#, c-format
msgid "can't disassemble for architecture %s\n"
msgstr ""
-#: objdump.c:2489 objdump.c:2511
+#: objdump.c:2515 objdump.c:2537
#, c-format
msgid ""
"\n"
"Can't get contents for section '%s'.\n"
msgstr ""
-#: objdump.c:2695
+#: objdump.c:2721
#, c-format
msgid "File %s does not contain any dwarf debug information\n"
msgstr ""
-#: objdump.c:2758
+#: objdump.c:2788
#, c-format
msgid ""
"No %s section present\n"
"\n"
msgstr ""
-#: objdump.c:2764
+#: objdump.c:2794
#, c-format
msgid "reading %s section of %s failed: %s"
msgstr ""
-#: objdump.c:2808
+#: objdump.c:2838
#, c-format
msgid ""
"Contents of %s section:\n"
"\n"
msgstr ""
-#: objdump.c:2941
+#: objdump.c:2971
#, c-format
msgid "architecture: %s, "
msgstr ""
-#: objdump.c:2944
+#: objdump.c:2974
#, c-format
msgid "flags 0x%08x:\n"
msgstr ""
-#: objdump.c:2957
+#: objdump.c:2987
#, c-format
msgid ""
"\n"
"start address 0x"
msgstr ""
-#: objdump.c:2983
+#: objdump.c:3013
msgid "option -P/--private not supported by this file"
msgstr ""
-#: objdump.c:3007
+#: objdump.c:3037
#, c-format
msgid "target specific dump '%s' not supported"
msgstr ""
-#: objdump.c:3071
+#: objdump.c:3101
#, c-format
msgid "Contents of section %s:"
msgstr ""
-#: objdump.c:3073
+#: objdump.c:3103
#, c-format
msgid " (Starting at file offset: 0x%lx)"
msgstr ""
-#: objdump.c:3183
+#: objdump.c:3213
#, c-format
msgid "no symbols\n"
msgstr ""
-#: objdump.c:3190
+#: objdump.c:3220
#, c-format
msgid "no information for symbol number %ld\n"
msgstr ""
-#: objdump.c:3193
+#: objdump.c:3223
#, c-format
msgid "could not determine the type of symbol number %ld\n"
msgstr ""
-#: objdump.c:3452
+#: objdump.c:3482
#, c-format
msgid "failed to read relocs in: %s"
msgstr ""
-#: objdump.c:3552
+#: objdump.c:3582
#, c-format
msgid ""
"\n"
"%s: file format %s\n"
msgstr ""
-#: objdump.c:3614
+#: objdump.c:3644
#, c-format
msgid "%s: printing debugging information failed"
msgstr ""
-#: objdump.c:3705
+#: objdump.c:3735
#, c-format
msgid "In archive %s:\n"
msgstr ""
#. Prevent corrupted files from spinning us into an
#. infinite loop. 100 is an arbitrary heuristic.
-#: objdump.c:3710
+#: objdump.c:3740
msgid "Archive nesting is too deep"
msgstr ""
-#: objdump.c:3714
+#: objdump.c:3744
#, c-format
msgid "In nested archive %s:\n"
msgstr ""
-#: objdump.c:3871
+#: objdump.c:3901
msgid "error: the start address should be before the end address"
msgstr ""
-#: objdump.c:3876
+#: objdump.c:3906
msgid "error: the stop address should be after the start address"
msgstr ""
-#: objdump.c:3888
+#: objdump.c:3918
msgid "error: prefix strip must be non-negative"
msgstr ""
-#: objdump.c:3893
+#: objdump.c:3923
msgid "error: instruction width must be positive"
msgstr ""
-#: objdump.c:3905
+#: objdump.c:3935
msgid "unrecognized -E option"
msgstr ""
-#: objdump.c:3916
+#: objdump.c:3946
#, c-format
msgid "unrecognized --endian type `%s'"
msgstr ""
@@ -5953,225 +5540,225 @@ msgid ""
" dyld_info Display dyld information\n"
msgstr ""
-#: od-macho.c:298
+#: od-macho.c:297
msgid "Mach-O header:\n"
msgstr ""
-#: od-macho.c:299
+#: od-macho.c:298
#, c-format
msgid " magic : %08lx\n"
msgstr ""
-#: od-macho.c:300
+#: od-macho.c:299
#, c-format
msgid " cputype : %08lx (%s)\n"
msgstr ""
-#: od-macho.c:302
+#: od-macho.c:301
#, c-format
msgid " cpusubtype: %08lx\n"
msgstr ""
-#: od-macho.c:303
+#: od-macho.c:302
#, c-format
msgid " filetype : %08lx (%s)\n"
msgstr ""
-#: od-macho.c:306
+#: od-macho.c:305
#, c-format
msgid " ncmds : %08lx (%lu)\n"
msgstr ""
-#: od-macho.c:307
+#: od-macho.c:306
#, c-format
msgid " sizeofcmds: %08lx (%lu)\n"
msgstr ""
-#: od-macho.c:308
+#: od-macho.c:307
#, c-format
msgid " flags : %08lx ("
msgstr ""
-#: od-macho.c:310
+#: od-macho.c:309
msgid ")\n"
msgstr ""
-#: od-macho.c:311
+#: od-macho.c:310
#, c-format
msgid " reserved : %08x\n"
msgstr ""
-#: od-macho.c:330
+#: od-macho.c:329
msgid "Segments and Sections:\n"
msgstr ""
-#: od-macho.c:331
+#: od-macho.c:330
msgid " #: Segment name Section name Address\n"
msgstr ""
-#: od-macho.c:973
+#: od-macho.c:972
msgid "cannot read rebase dyld info"
msgstr ""
-#: od-macho.c:978
+#: od-macho.c:977
msgid "cannot read bind dyld info"
msgstr ""
-#: od-macho.c:983
+#: od-macho.c:982
msgid "cannot read weak bind dyld info"
msgstr ""
-#: od-macho.c:988
+#: od-macho.c:987
msgid "cannot read lazy bind dyld info"
msgstr ""
-#: od-macho.c:993
+#: od-macho.c:992
msgid "cannot read export symbols dyld info"
msgstr ""
-#: od-macho.c:1073 od-macho.c:1083 od-macho.c:1157 od-macho.c:1209
+#: od-macho.c:1072 od-macho.c:1082 od-macho.c:1156 od-macho.c:1208
#, c-format
msgid " [bad block length]\n"
msgstr ""
-#: od-macho.c:1077
+#: od-macho.c:1076
#, c-format
msgid " %u index entry:\n"
msgid_plural " %u index entries:\n"
msgstr[0] ""
msgstr[1] ""
-#: od-macho.c:1093
+#: od-macho.c:1092
#, c-format
msgid " index entry %u: type: %08x, offset: %08x\n"
msgstr ""
-#: od-macho.c:1164
+#: od-macho.c:1163
#, c-format
msgid " version: %08x\n"
msgstr ""
-#: od-macho.c:1165
+#: od-macho.c:1164
#, c-format
msgid " flags: %08x\n"
msgstr ""
-#: od-macho.c:1166
+#: od-macho.c:1165
#, c-format
msgid " hash offset: %08x\n"
msgstr ""
-#: od-macho.c:1168
+#: od-macho.c:1167
#, c-format
msgid " ident offset: %08x (- %08x)\n"
msgstr ""
-#: od-macho.c:1170
+#: od-macho.c:1169
#, c-format
msgid " identity: %s\n"
msgstr ""
-#: od-macho.c:1171
+#: od-macho.c:1170
#, c-format
msgid " nbr special slots: %08x (at offset %08x)\n"
msgstr ""
-#: od-macho.c:1174
+#: od-macho.c:1173
#, c-format
msgid " nbr code slots: %08x\n"
msgstr ""
-#: od-macho.c:1175
+#: od-macho.c:1174
#, c-format
msgid " code limit: %08x\n"
msgstr ""
-#: od-macho.c:1176
+#: od-macho.c:1175
#, c-format
msgid " hash size: %02x\n"
msgstr ""
-#: od-macho.c:1177
+#: od-macho.c:1176
#, c-format
msgid " hash type: %02x (%s)\n"
msgstr ""
-#: od-macho.c:1180
+#: od-macho.c:1179
#, c-format
msgid " spare1: %02x\n"
msgstr ""
-#: od-macho.c:1181
+#: od-macho.c:1180
#, c-format
msgid " page size: %02x\n"
msgstr ""
-#: od-macho.c:1182
+#: od-macho.c:1181
#, c-format
msgid " spare2: %08x\n"
msgstr ""
-#: od-macho.c:1184
+#: od-macho.c:1183
#, c-format
msgid " scatter offset: %08x\n"
msgstr ""
-#: od-macho.c:1196
+#: od-macho.c:1195
#, c-format
msgid " [truncated block]\n"
msgstr ""
-#: od-macho.c:1204
+#: od-macho.c:1203
#, c-format
msgid " magic : %08x (%s)\n"
msgstr ""
-#: od-macho.c:1206
+#: od-macho.c:1205
#, c-format
msgid " length: %08x\n"
msgstr ""
-#: od-macho.c:1237
+#: od-macho.c:1236
msgid "cannot read code signature data"
msgstr ""
-#: od-macho.c:1265
+#: od-macho.c:1264
msgid "cannot read segment split info"
msgstr ""
-#: od-macho.c:1271
+#: od-macho.c:1270
msgid "segment split info is not nul terminated"
msgstr ""
-#: od-macho.c:1279
+#: od-macho.c:1278
#, c-format
msgid " 32 bit pointers:\n"
msgstr ""
-#: od-macho.c:1282
+#: od-macho.c:1281
#, c-format
msgid " 64 bit pointers:\n"
msgstr ""
-#: od-macho.c:1285
+#: od-macho.c:1284
#, c-format
msgid " PPC hi-16:\n"
msgstr ""
-#: od-macho.c:1288
+#: od-macho.c:1287
#, c-format
msgid " Unhandled location type %u\n"
msgstr ""
-#: od-macho.c:1312
+#: od-macho.c:1311
msgid "cannot read function starts"
msgstr ""
-#: od-macho.c:1376
+#: od-macho.c:1375
msgid "cannot read data_in_code"
msgstr ""
-#: od-macho.c:1414
+#: od-macho.c:1413
msgid "cannot read twolevel hints"
msgstr ""
@@ -6203,7 +5790,7 @@ msgstr ""
msgid " time and date: 0x%08x - "
msgstr ""
-#: od-xcoff.c:422 readelf.c:17081
+#: od-xcoff.c:422 readelf.c:17152
#, c-format
msgid "not set\n"
msgstr ""
@@ -6646,311 +6233,311 @@ msgstr ""
msgid "%ld: unexpected .ef\n"
msgstr ""
-#: rddbg.c:87
+#: rddbg.c:80
#, c-format
msgid "%s: no recognized debugging information"
msgstr ""
-#: rddbg.c:194
+#: rddbg.c:187
#, c-format
msgid "%s: %s: stab entry %ld is corrupt, strx = 0x%x, type = %d\n"
msgstr ""
-#: rddbg.c:218
+#: rddbg.c:211
#, c-format
msgid "%s: %s: stab entry %ld is corrupt\n"
msgstr ""
-#: rddbg.c:417
+#: rddbg.c:379
#, c-format
msgid "Last stabs entries before error:\n"
msgstr ""
-#: readelf.c:304
+#: readelf.c:305
msgid "<none>"
msgstr ""
-#: readelf.c:305
+#: readelf.c:306
msgid "<no-strings>"
msgstr ""
-#: readelf.c:382
+#: readelf.c:383
#, c-format
msgid "Size truncation prevents reading %s elements of size %s for %s\n"
msgstr ""
-#: readelf.c:392
+#: readelf.c:393
#, c-format
msgid "Size overflow prevents reading %s elements of size %s for %s\n"
msgstr ""
-#: readelf.c:404
+#: readelf.c:405
#, c-format
msgid "Reading %s bytes extends past end of file for %s\n"
msgstr ""
-#: readelf.c:412
+#: readelf.c:413
#, c-format
msgid "Unable to seek to 0x%lx for %s\n"
msgstr ""
-#: readelf.c:428
+#: readelf.c:429
#, c-format
msgid "Out of memory allocating %s bytes for %s\n"
msgstr ""
-#: readelf.c:439
+#: readelf.c:440
#, c-format
msgid "Unable to read in %s bytes of %s\n"
msgstr ""
-#: readelf.c:868
+#: readelf.c:881
msgid "Don't know about relocations on this machine architecture\n"
msgstr ""
-#: readelf.c:895 readelf.c:1000
+#: readelf.c:908 readelf.c:1013
msgid "32-bit relocation data"
msgstr ""
-#: readelf.c:907 readelf.c:937 readelf.c:1011 readelf.c:1040
+#: readelf.c:920 readelf.c:950 readelf.c:1024 readelf.c:1053
msgid "out of memory parsing relocs\n"
msgstr ""
-#: readelf.c:925 readelf.c:1029
+#: readelf.c:938 readelf.c:1042
msgid "64-bit relocation data"
msgstr ""
-#: readelf.c:1159
+#: readelf.c:1172
#, c-format
msgid ""
" Offset Info Type Sym. Value Symbol's Name + Addend\n"
msgstr ""
-#: readelf.c:1161
+#: readelf.c:1174
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
msgstr ""
-#: readelf.c:1166
+#: readelf.c:1179
#, c-format
msgid " Offset Info Type Sym. Value Symbol's Name\n"
msgstr ""
-#: readelf.c:1168
+#: readelf.c:1181
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name\n"
msgstr ""
-#: readelf.c:1176
+#: readelf.c:1189
#, c-format
msgid ""
" Offset Info Type Symbol's Value "
"Symbol's Name + Addend\n"
msgstr ""
-#: readelf.c:1178
+#: readelf.c:1191
#, c-format
msgid ""
" Offset Info Type Sym. Value Sym. Name + "
"Addend\n"
msgstr ""
-#: readelf.c:1183
+#: readelf.c:1196
#, c-format
msgid ""
" Offset Info Type Symbol's Value "
"Symbol's Name\n"
msgstr ""
-#: readelf.c:1185
+#: readelf.c:1198
#, c-format
msgid ""
" Offset Info Type Sym. Value Sym. Name\n"
msgstr ""
-#: readelf.c:1555 readelf.c:1745 readelf.c:1753
+#: readelf.c:1575 readelf.c:1765 readelf.c:1773
#, c-format
msgid "unrecognized: %-7lx"
msgstr ""
-#: readelf.c:1581
+#: readelf.c:1601
#, c-format
msgid "<unknown addend: %lx>"
msgstr ""
-#: readelf.c:1590
+#: readelf.c:1610
#, c-format
msgid " bad symbol index: %08lx in reloc"
msgstr ""
-#: readelf.c:1691
+#: readelf.c:1711
#, c-format
msgid "<string table index: %3ld>"
msgstr ""
-#: readelf.c:1694
+#: readelf.c:1714
#, c-format
msgid "<corrupt string table index: %3ld>"
msgstr ""
-#: readelf.c:2180
+#: readelf.c:2200
#, c-format
msgid "Processor Specific: %lx"
msgstr ""
-#: readelf.c:2207
+#: readelf.c:2227
#, c-format
msgid "Operating System specific: %lx"
msgstr ""
-#: readelf.c:2211 readelf.c:3947
+#: readelf.c:2231 readelf.c:3987
#, c-format
msgid "<unknown>: %lx"
msgstr ""
-#: readelf.c:2224
+#: readelf.c:2244
msgid "NONE (None)"
msgstr ""
-#: readelf.c:2225
+#: readelf.c:2245
msgid "REL (Relocatable file)"
msgstr ""
-#: readelf.c:2226
+#: readelf.c:2246
msgid "EXEC (Executable file)"
msgstr ""
-#: readelf.c:2227
+#: readelf.c:2247
msgid "DYN (Shared object file)"
msgstr ""
-#: readelf.c:2228
+#: readelf.c:2248
msgid "CORE (Core file)"
msgstr ""
-#: readelf.c:2232
+#: readelf.c:2252
#, c-format
msgid "Processor Specific: (%x)"
msgstr ""
-#: readelf.c:2234
+#: readelf.c:2254
#, c-format
msgid "OS Specific: (%x)"
msgstr ""
-#: readelf.c:2236
+#: readelf.c:2256
#, c-format
msgid "<unknown>: %x"
msgstr ""
#. Please keep this switch table sorted by increasing EM_ value.
#. 0
-#: readelf.c:2250 readelf.c:15426 readelf.c:15437
+#: readelf.c:2270 readelf.c:15497 readelf.c:15508
msgid "None"
msgstr ""
-#: readelf.c:2479
+#: readelf.c:2500
#, c-format
msgid "<unknown>: 0x%x"
msgstr ""
-#: readelf.c:2759
+#: readelf.c:2786
msgid ", <unknown>"
msgstr ""
-#: readelf.c:3128 readelf.c:9543
+#: readelf.c:3155 readelf.c:9598
msgid "unknown"
msgstr ""
-#: readelf.c:3129
+#: readelf.c:3156
msgid "unknown mac"
msgstr ""
-#: readelf.c:3197
+#: readelf.c:3224
msgid ", <unknown MeP cpu type>"
msgstr ""
-#: readelf.c:3207
+#: readelf.c:3234
msgid "<unknown MeP copro type>"
msgstr ""
-#: readelf.c:3218
+#: readelf.c:3245
#, c-format
msgid ", unknown flags bits: %#x"
msgstr ""
-#: readelf.c:3227
+#: readelf.c:3254
msgid ", relocatable"
msgstr ""
-#: readelf.c:3230
+#: readelf.c:3257
msgid ", relocatable-lib"
msgstr ""
-#: readelf.c:3312
+#: readelf.c:3339
msgid ", unknown v850 architecture variant"
msgstr ""
-#: readelf.c:3378
+#: readelf.c:3405
msgid ", unknown CPU"
msgstr ""
-#: readelf.c:3393
+#: readelf.c:3420
msgid ", unknown ABI"
msgstr ""
-#: readelf.c:3418 readelf.c:3474
+#: readelf.c:3445 readelf.c:3513
msgid ", unknown ISA"
msgstr ""
-#: readelf.c:3584
+#: readelf.c:3623
#, c-format
msgid "Unrecognised IA64 VMS Command Code: %x\n"
msgstr ""
-#: readelf.c:3648
+#: readelf.c:3687
msgid ": architecture variant: "
msgstr ""
-#: readelf.c:3667
+#: readelf.c:3706
msgid ": unknown"
msgstr ""
-#: readelf.c:3671
+#: readelf.c:3710
msgid ": unknown extra flag bits also present"
msgstr ""
-#: readelf.c:3720
+#: readelf.c:3760
msgid "Standalone App"
msgstr ""
-#: readelf.c:3729
+#: readelf.c:3769
msgid "Bare-metal C6000"
msgstr ""
-#: readelf.c:3739 readelf.c:4644 readelf.c:4660 readelf.c:16757 readelf.c:16797
+#: readelf.c:3779 readelf.c:4699 readelf.c:4715 readelf.c:16828 readelf.c:16868
#, c-format
msgid "<unknown: %x>"
msgstr ""
#. This message is probably going to be displayed in a 15
#. character wide field, so put the hex value first.
-#: readelf.c:4274
+#: readelf.c:4329
#, c-format
msgid "%08x: <unknown>"
msgstr ""
-#: readelf.c:4332
+#: readelf.c:4387
#, c-format
msgid "Usage: readelf <option(s)> elf-file(s)\n"
msgstr ""
-#: readelf.c:4333
+#: readelf.c:4388
#, c-format
msgid " Display information about the contents of ELF format files\n"
msgstr ""
-#: readelf.c:4334
+#: readelf.c:4389
#, c-format
msgid ""
" Options are:\n"
@@ -6994,7 +6581,7 @@ msgid ""
" Display the contents of DWARF debug sections\n"
msgstr ""
-#: readelf.c:4368
+#: readelf.c:4423
#, c-format
msgid ""
" --dwarf-depth=N Do not display DIEs at depth N or greater\n"
@@ -7002,14 +6589,14 @@ msgid ""
" or deeper\n"
msgstr ""
-#: readelf.c:4373
+#: readelf.c:4428
#, c-format
msgid ""
" -i --instruction-dump=<number|name>\n"
" Disassemble the contents of section <number|name>\n"
msgstr ""
-#: readelf.c:4377
+#: readelf.c:4432
#, c-format
msgid ""
" -I --histogram Display histogram of bucket list lengths\n"
@@ -7019,553 +6606,553 @@ msgid ""
" -v --version Display the version number of readelf\n"
msgstr ""
-#: readelf.c:4406 readelf.c:4437 readelf.c:4441
+#: readelf.c:4461 readelf.c:4492 readelf.c:4496
msgid "Out of memory allocating dump request table.\n"
msgstr ""
-#: readelf.c:4618
+#: readelf.c:4673
#, c-format
msgid "Invalid option '-%c'\n"
msgstr ""
-#: readelf.c:4640 readelf.c:4656 readelf.c:10210
+#: readelf.c:4695 readelf.c:4711 readelf.c:10280
msgid "none"
msgstr ""
-#: readelf.c:4657
+#: readelf.c:4712
msgid "2's complement, little endian"
msgstr ""
-#: readelf.c:4658
+#: readelf.c:4713
msgid "2's complement, big endian"
msgstr ""
-#: readelf.c:4678
+#: readelf.c:4733
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr ""
-#: readelf.c:4688
+#: readelf.c:4743
#, c-format
msgid "ELF Header:\n"
msgstr ""
-#: readelf.c:4689
+#: readelf.c:4744
#, c-format
msgid " Magic: "
msgstr ""
-#: readelf.c:4693
+#: readelf.c:4748
#, c-format
msgid " Class: %s\n"
msgstr ""
-#: readelf.c:4695
+#: readelf.c:4750
#, c-format
msgid " Data: %s\n"
msgstr ""
-#: readelf.c:4697
+#: readelf.c:4752
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: readelf.c:4702
+#: readelf.c:4757
#, c-format
msgid "<unknown: %lx>"
msgstr ""
-#: readelf.c:4704
+#: readelf.c:4759
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: readelf.c:4706
+#: readelf.c:4761
#, c-format
msgid " ABI Version: %d\n"
msgstr ""
-#: readelf.c:4708
+#: readelf.c:4763
#, c-format
msgid " Type: %s\n"
msgstr ""
-#: readelf.c:4710
+#: readelf.c:4765
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: readelf.c:4712
+#: readelf.c:4767
#, c-format
msgid " Version: 0x%lx\n"
msgstr ""
-#: readelf.c:4715
+#: readelf.c:4770
#, c-format
msgid " Entry point address: "
msgstr ""
-#: readelf.c:4717
+#: readelf.c:4772
#, c-format
msgid ""
"\n"
" Start of program headers: "
msgstr ""
-#: readelf.c:4719
+#: readelf.c:4774
#, c-format
msgid ""
" (bytes into file)\n"
" Start of section headers: "
msgstr ""
-#: readelf.c:4721
+#: readelf.c:4776
#, c-format
msgid " (bytes into file)\n"
msgstr ""
-#: readelf.c:4723
+#: readelf.c:4778
#, c-format
msgid " Flags: 0x%lx%s\n"
msgstr ""
-#: readelf.c:4726
+#: readelf.c:4781
#, c-format
msgid " Size of this header: %ld (bytes)\n"
msgstr ""
-#: readelf.c:4728
+#: readelf.c:4783
#, c-format
msgid " Size of program headers: %ld (bytes)\n"
msgstr ""
-#: readelf.c:4730
+#: readelf.c:4785
#, c-format
msgid " Number of program headers: %ld"
msgstr ""
-#: readelf.c:4737
+#: readelf.c:4792
#, c-format
msgid " Size of section headers: %ld (bytes)\n"
msgstr ""
-#: readelf.c:4739
+#: readelf.c:4794
#, c-format
msgid " Number of section headers: %ld"
msgstr ""
-#: readelf.c:4744
+#: readelf.c:4799
#, c-format
msgid " Section header string table index: %ld"
msgstr ""
-#: readelf.c:4751
+#: readelf.c:4806
#, c-format
msgid " <corrupt: out of range>"
msgstr ""
-#: readelf.c:4791 readelf.c:4838
+#: readelf.c:4846 readelf.c:4893
msgid ""
"The e_phentsize field in the ELF header is less than the size of an ELF "
"program header\n"
msgstr ""
-#: readelf.c:4795 readelf.c:4842
+#: readelf.c:4850 readelf.c:4897
msgid ""
"The e_phentsize field in the ELF header is larger than the size of an ELF "
"program header\n"
msgstr ""
-#: readelf.c:4798 readelf.c:4845
+#: readelf.c:4853 readelf.c:4900
msgid "program headers"
msgstr ""
-#: readelf.c:4884
+#: readelf.c:4939
#, c-format
msgid "Too many program headers - %#x - the file is not that big\n"
msgstr ""
-#: readelf.c:4893
+#: readelf.c:4948
#, c-format
msgid "Out of memory reading %u program headers\n"
msgstr ""
-#: readelf.c:4924
+#: readelf.c:4979
msgid ""
"possibly corrupt ELF header - it has a non-zero program header offset, but "
"no program headers\n"
msgstr ""
-#: readelf.c:4929
+#: readelf.c:4984
#, c-format
msgid ""
"\n"
"There are no program headers in this file.\n"
msgstr ""
-#: readelf.c:4935
+#: readelf.c:4990
#, c-format
msgid ""
"\n"
"Elf file type is %s\n"
msgstr ""
-#: readelf.c:4936
+#: readelf.c:4991
#, c-format
msgid "Entry point 0x%s\n"
msgstr ""
-#: readelf.c:4937
+#: readelf.c:4992
#, c-format
msgid "There is %d program header, starting at offset %s\n"
msgid_plural "There are %d program headers, starting at offset %s\n"
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:4950 readelf.c:4952
+#: readelf.c:5005 readelf.c:5007
#, c-format
msgid ""
"\n"
"Program Headers:\n"
msgstr ""
-#: readelf.c:4956
+#: readelf.c:5011
#, c-format
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr ""
-#: readelf.c:4959
+#: readelf.c:5014
#, c-format
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align\n"
msgstr ""
-#: readelf.c:4963
+#: readelf.c:5018
#, c-format
msgid " Type Offset VirtAddr PhysAddr\n"
msgstr ""
-#: readelf.c:4965
+#: readelf.c:5020
#, c-format
msgid " FileSiz MemSiz Flags Align\n"
msgstr ""
-#: readelf.c:5064
+#: readelf.c:5119
msgid "LOAD segments must be sorted in order of increasing VirtAddr\n"
msgstr ""
-#: readelf.c:5067
+#: readelf.c:5122
msgid "the segment's file size is larger than its memory size\n"
msgstr ""
-#: readelf.c:5074
+#: readelf.c:5129
msgid "the PHDR segment must occur before any LOAD segment\n"
msgstr ""
-#: readelf.c:5086
+#: readelf.c:5141
msgid "the PHDR segment is not covered by a LOAD segment\n"
msgstr ""
-#: readelf.c:5092
+#: readelf.c:5147
msgid "more than one dynamic segment\n"
msgstr ""
-#: readelf.c:5111
+#: readelf.c:5166
msgid "no .dynamic section in the dynamic segment\n"
msgstr ""
-#: readelf.c:5126
+#: readelf.c:5181
msgid "the .dynamic section is not contained within the dynamic segment\n"
msgstr ""
-#: readelf.c:5129
+#: readelf.c:5184
msgid "the .dynamic section is not the first section in the dynamic segment.\n"
msgstr ""
-#: readelf.c:5139
+#: readelf.c:5194
msgid "the dynamic segment offset + size exceeds the size of the file\n"
msgstr ""
-#: readelf.c:5147
+#: readelf.c:5202
msgid "Unable to find program interpreter name\n"
msgstr ""
-#: readelf.c:5154
+#: readelf.c:5209
msgid ""
"Internal error: failed to create format string to display program "
"interpreter\n"
msgstr ""
-#: readelf.c:5158
+#: readelf.c:5213
msgid "Unable to read program interpreter name\n"
msgstr ""
-#: readelf.c:5161
+#: readelf.c:5216
#, c-format
msgid " [Requesting program interpreter: %s]\n"
msgstr ""
-#: readelf.c:5172
+#: readelf.c:5227
#, c-format
msgid ""
"\n"
" Section to Segment mapping:\n"
msgstr ""
-#: readelf.c:5173
+#: readelf.c:5228
#, c-format
msgid " Segment Sections...\n"
msgstr ""
-#: readelf.c:5209
+#: readelf.c:5264
msgid "Cannot interpret virtual addresses without program headers.\n"
msgstr ""
-#: readelf.c:5225
+#: readelf.c:5280
#, c-format
msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
msgstr ""
-#: readelf.c:5250 readelf.c:5314
+#: readelf.c:5305 readelf.c:5369
msgid ""
"The e_shentsize field in the ELF header is less than the size of an ELF "
"section header\n"
msgstr ""
-#: readelf.c:5254 readelf.c:5319
+#: readelf.c:5309 readelf.c:5374
msgid ""
"The e_shentsize field in the ELF header is larger than the size of an ELF "
"section header\n"
msgstr ""
-#: readelf.c:5258 readelf.c:5324
+#: readelf.c:5313 readelf.c:5379
msgid "section headers"
msgstr ""
-#: readelf.c:5268 readelf.c:5334
+#: readelf.c:5323 readelf.c:5389
#, c-format
msgid "Out of memory reading %u section headers\n"
msgstr ""
-#: readelf.c:5287 readelf.c:5353
+#: readelf.c:5342 readelf.c:5408
#, c-format
msgid "Section %u has an out of range sh_link value of %u\n"
msgstr ""
-#: readelf.c:5289 readelf.c:5355
+#: readelf.c:5344 readelf.c:5410
#, c-format
msgid "Section %u has an out of range sh_info value of %u\n"
msgstr ""
-#: readelf.c:5384 readelf.c:5497
+#: readelf.c:5439 readelf.c:5552
#, c-format
msgid "Section %s has an invalid sh_entsize of 0x%lx\n"
msgstr ""
-#: readelf.c:5392 readelf.c:5505
+#: readelf.c:5447 readelf.c:5560
#, c-format
msgid "Section %s has an invalid sh_size of 0x%lx\n"
msgstr ""
-#: readelf.c:5402 readelf.c:5515
+#: readelf.c:5457 readelf.c:5570
#, c-format
msgid ""
"Size (0x%lx) of section %s is not a multiple of its sh_entsize (0x%lx)\n"
msgstr ""
-#: readelf.c:5410 readelf.c:5523
+#: readelf.c:5465 readelf.c:5578
msgid "symbols"
msgstr ""
-#: readelf.c:5424 readelf.c:5537
+#: readelf.c:5479 readelf.c:5592
msgid "symbol table section indicies"
msgstr ""
-#: readelf.c:5430 readelf.c:5543
+#: readelf.c:5485 readelf.c:5598
#, c-format
msgid "Index section %s has an sh_size of 0x%lx - expected 0x%lx\n"
msgstr ""
-#: readelf.c:5443 readelf.c:5556
+#: readelf.c:5498 readelf.c:5611
#, c-format
msgid "Out of memory reading %lu symbols\n"
msgstr ""
-#: readelf.c:5737 readelf.c:5812 readelf.c:5830 readelf.c:5848
+#: readelf.c:5792 readelf.c:5867 readelf.c:5885 readelf.c:5903
msgid "Internal error: not enough buffer room for section flag info"
msgstr ""
-#: readelf.c:5855
+#: readelf.c:5910
#, c-format
msgid "UNKNOWN (%*.*lx)"
msgstr ""
-#: readelf.c:5874 readelf.c:5889
+#: readelf.c:5929 readelf.c:5944
msgid "Compressed section is too small even for a compression header\n"
msgstr ""
-#: readelf.c:5913
+#: readelf.c:5968
msgid ""
"possibly corrupt ELF file header - it has a non-zero section header offset, "
"but no section headers\n"
msgstr ""
-#: readelf.c:5918
+#: readelf.c:5973
#, c-format
msgid ""
"\n"
"There are no sections in this file.\n"
msgstr ""
-#: readelf.c:5924
+#: readelf.c:5979
#, c-format
msgid "There is %d section header, starting at offset 0x%lx:\n"
msgid_plural "There are %d section headers, starting at offset 0x%lx:\n"
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:5953 readelf.c:6728 readelf.c:7174 readelf.c:7583 readelf.c:8026
-#: readelf.c:9130 readelf.c:11631 readelf.c:13597 readelf.c:17458
+#: readelf.c:6008 readelf.c:6783 readelf.c:7229 readelf.c:7638 readelf.c:8081
+#: readelf.c:9185 readelf.c:11701 readelf.c:13668 readelf.c:17529
msgid "string table"
msgstr ""
#. Note: coded this way so that there is a single string for translation.
-#: readelf.c:6024
+#: readelf.c:6079
#, c-format
msgid "Section %d has invalid sh_entsize of %s\n"
msgstr ""
-#: readelf.c:6025
+#: readelf.c:6080
#, c-format
msgid "(Using the expected size of %u for the rest of this dump)\n"
msgstr ""
-#: readelf.c:6046
+#: readelf.c:6101
msgid "File contains multiple dynamic symbol tables\n"
msgstr ""
-#: readelf.c:6058
+#: readelf.c:6113
msgid "File contains multiple dynamic string tables\n"
msgstr ""
-#: readelf.c:6064
+#: readelf.c:6119
msgid "dynamic strings"
msgstr ""
-#: readelf.c:6154
+#: readelf.c:6209
#, c-format
msgid ""
"\n"
"Section Headers:\n"
msgstr ""
-#: readelf.c:6156
+#: readelf.c:6211
#, c-format
msgid ""
"\n"
"Section Header:\n"
msgstr ""
-#: readelf.c:6162 readelf.c:6173 readelf.c:6184
+#: readelf.c:6217 readelf.c:6228 readelf.c:6239
#, c-format
msgid " [Nr] Name\n"
msgstr ""
-#: readelf.c:6163
+#: readelf.c:6218
#, c-format
msgid " Type Addr Off Size ES Lk Inf Al\n"
msgstr ""
-#: readelf.c:6167
+#: readelf.c:6222
#, c-format
msgid ""
" [Nr] Name Type Addr Off Size ES Flg Lk "
"Inf Al\n"
msgstr ""
-#: readelf.c:6174
+#: readelf.c:6229
#, c-format
msgid " Type Address Off Size ES Lk Inf Al\n"
msgstr ""
-#: readelf.c:6178
+#: readelf.c:6233
#, c-format
msgid ""
" [Nr] Name Type Address Off Size ES "
"Flg Lk Inf Al\n"
msgstr ""
-#: readelf.c:6185
+#: readelf.c:6240
#, c-format
msgid " Type Address Offset Link\n"
msgstr ""
-#: readelf.c:6186
+#: readelf.c:6241
#, c-format
msgid " Size EntSize Info Align\n"
msgstr ""
-#: readelf.c:6190
+#: readelf.c:6245
#, c-format
msgid " [Nr] Name Type Address Offset\n"
msgstr ""
-#: readelf.c:6191
+#: readelf.c:6246
#, c-format
msgid " Size EntSize Flags Link Info Align\n"
msgstr ""
-#: readelf.c:6196
+#: readelf.c:6251
#, c-format
msgid " Flags\n"
msgstr ""
-#: readelf.c:6218
+#: readelf.c:6273
#, c-format
msgid "[%2u]: Link field (%u) should index a symtab section.\n"
msgstr ""
-#: readelf.c:6231
+#: readelf.c:6286
#, c-format
msgid "[%2u]: Link field (%u) should index a string section.\n"
msgstr ""
-#: readelf.c:6239 readelf.c:6250
+#: readelf.c:6294 readelf.c:6305
#, c-format
msgid "[%2u]: Unexpected value (%u) in link field.\n"
msgstr ""
-#: readelf.c:6281
+#: readelf.c:6336
#, c-format
msgid "[%2u]: Info field (%u) should index a relocatable section.\n"
msgstr ""
-#: readelf.c:6293 readelf.c:6320
+#: readelf.c:6348 readelf.c:6375
#, c-format
msgid "[%2u]: Unexpected value (%u) in info field.\n"
msgstr ""
-#: readelf.c:6315
+#: readelf.c:6370
#, c-format
msgid "[%2u]: Expected link to another section in info field"
msgstr ""
-#: readelf.c:6330
+#: readelf.c:6385
#, c-format
msgid "Size of section %u is larger than the entire file!\n"
msgstr ""
-#: readelf.c:6399
+#: readelf.c:6454
#, c-format
msgid "section %u: sh_link value of %u is larger than the number of sections\n"
msgstr ""
-#: readelf.c:6501
+#: readelf.c:6556
msgid "compression header"
msgstr ""
-#: readelf.c:6510
+#: readelf.c:6565
#, c-format
msgid " [<unknown>: 0x%x], "
msgstr ""
@@ -7573,7 +7160,7 @@ msgstr ""
#. The ordering of the letters shown here matches the ordering of the
#. corresponding SHF_xxx values, and hence the order in which these
#. letters will be displayed to the user.
-#: readelf.c:6524
+#: readelf.c:6579
#, c-format
msgid ""
"Key to Flags:\n"
@@ -7583,276 +7170,276 @@ msgid ""
" "
msgstr ""
-#: readelf.c:6531
+#: readelf.c:6586
#, c-format
msgid "l (large), "
msgstr ""
-#: readelf.c:6533
+#: readelf.c:6588
#, c-format
msgid "y (purecode), "
msgstr ""
-#: readelf.c:6535
+#: readelf.c:6590
#, c-format
msgid "v (VLE), "
msgstr ""
-#: readelf.c:6552
+#: readelf.c:6607
#, c-format
msgid "[0x%x: "
msgstr ""
-#: readelf.c:6594
+#: readelf.c:6649
#, c-format
msgid ""
"\n"
"There are no sections to group in this file.\n"
msgstr ""
-#: readelf.c:6601
+#: readelf.c:6656
msgid "Section headers are not available!\n"
msgstr ""
-#: readelf.c:6611
+#: readelf.c:6666
#, c-format
msgid "Out of memory reading %u section group headers\n"
msgstr ""
-#: readelf.c:6627
+#: readelf.c:6682
#, c-format
msgid ""
"\n"
"There are no section groups in this file.\n"
msgstr ""
-#: readelf.c:6636
+#: readelf.c:6691
#, c-format
msgid "Out of memory reading %lu groups\n"
msgstr ""
-#: readelf.c:6666
+#: readelf.c:6721
#, c-format
msgid "Bad sh_link in group section `%s'\n"
msgstr ""
-#: readelf.c:6680
+#: readelf.c:6735
#, c-format
msgid "Corrupt header in group section `%s'\n"
msgstr ""
-#: readelf.c:6686 readelf.c:6697
+#: readelf.c:6741 readelf.c:6752
#, c-format
msgid "Bad sh_info in group section `%s'\n"
msgstr ""
-#: readelf.c:6738
+#: readelf.c:6793
#, c-format
msgid ""
"Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"
msgstr ""
-#: readelf.c:6747
+#: readelf.c:6802
msgid "section data"
msgstr ""
-#: readelf.c:6758
+#: readelf.c:6813
#, c-format
msgid ""
"\n"
"%sgroup section [%5u] `%s' [%s] contains %u sections:\n"
msgstr ""
-#: readelf.c:6761
+#: readelf.c:6816
#, c-format
msgid " [Index] Name\n"
msgstr ""
-#: readelf.c:6779
+#: readelf.c:6834
#, c-format
msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
msgstr ""
-#: readelf.c:6782
+#: readelf.c:6837
msgid ""
"Further error messages about overlarge group section indicies suppressed\n"
msgstr ""
-#: readelf.c:6795
+#: readelf.c:6850
#, c-format
msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
msgstr ""
-#: readelf.c:6799
+#: readelf.c:6854
msgid ""
"Further error messages about already contained group sections suppressed\n"
msgstr ""
-#: readelf.c:6811
+#: readelf.c:6866
#, c-format
msgid "section 0 in group section [%5u]\n"
msgstr ""
-#: readelf.c:6880
+#: readelf.c:6935
msgid "dynamic section image fixups"
msgstr ""
-#: readelf.c:6888
+#: readelf.c:6943
#, c-format
msgid "corrupt library name index of 0x%lx found in dynamic entry"
msgstr ""
-#: readelf.c:6892
+#: readelf.c:6947
#, c-format
msgid ""
"\n"
"Image fixups for needed library #%d: %s - ident: %lx\n"
msgstr ""
-#: readelf.c:6895
+#: readelf.c:6950
#, c-format
msgid "Seg Offset Type SymVec DataType\n"
msgstr ""
-#: readelf.c:6928
+#: readelf.c:6983
msgid "dynamic section image relocations"
msgstr ""
-#: readelf.c:6932
+#: readelf.c:6987
#, c-format
msgid ""
"\n"
"Image relocs\n"
msgstr ""
-#: readelf.c:6934
+#: readelf.c:6989
#, c-format
msgid ""
"Seg Offset Type Addend Seg Sym Off\n"
msgstr ""
-#: readelf.c:6990
+#: readelf.c:7045
msgid "dynamic string section"
msgstr ""
-#: readelf.c:7091
+#: readelf.c:7146
#, c-format
msgid ""
"\n"
"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
msgstr ""
-#: readelf.c:7108
+#: readelf.c:7163
#, c-format
msgid ""
"\n"
"There are no dynamic relocations in this file.\n"
msgstr ""
-#: readelf.c:7133
+#: readelf.c:7188
#, c-format
msgid ""
"\n"
"Relocation section "
msgstr ""
-#: readelf.c:7141
+#: readelf.c:7196
#, c-format
msgid " at offset 0x%lx contains %lu entry:\n"
msgid_plural " at offset 0x%lx contains %lu entries:\n"
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:7202
+#: readelf.c:7257
#, c-format
msgid ""
"\n"
"There are no static relocations in this file."
msgstr ""
-#: readelf.c:7203
+#: readelf.c:7258
#, c-format
msgid ""
"\n"
"To see the dynamic relocations add --use-dynamic to the command line.\n"
msgstr ""
-#: readelf.c:7209
+#: readelf.c:7264
#, c-format
msgid ""
"\n"
"There are no relocations in this file.\n"
msgstr ""
-#: readelf.c:7379
+#: readelf.c:7434
#, c-format
msgid "Invalid offset %lx in table entry %ld\n"
msgstr ""
-#: readelf.c:7397
+#: readelf.c:7452
#, c-format
msgid "\tUnknown version.\n"
msgstr ""
-#: readelf.c:7460 readelf.c:7884
+#: readelf.c:7515 readelf.c:7939
msgid "unwind table"
msgstr ""
-#: readelf.c:7510
+#: readelf.c:7565
#, c-format
msgid "Skipping unknown relocation type: %u\n"
msgstr ""
-#: readelf.c:7517
+#: readelf.c:7572
#, c-format
msgid "Skipping unexpected relocation type: %s\n"
msgstr ""
-#: readelf.c:7526
+#: readelf.c:7581
#, c-format
msgid "Skipping reloc with overlarge offset: %lx\n"
msgstr ""
-#: readelf.c:7577 readelf.c:8020
+#: readelf.c:7632 readelf.c:8075
msgid "Multiple auxillary string tables encountered\n"
msgstr ""
-#: readelf.c:7591 readelf.c:8034 readelf.c:9138
+#: readelf.c:7646 readelf.c:8089 readelf.c:9193
#, c-format
msgid ""
"\n"
"There are no unwind sections in this file.\n"
msgstr ""
-#: readelf.c:7665
+#: readelf.c:7720
#, c-format
msgid ""
"\n"
"Could not find unwind info section for "
msgstr ""
-#: readelf.c:7677
+#: readelf.c:7732
msgid "unwind info"
msgstr ""
-#: readelf.c:7680
+#: readelf.c:7735
#, c-format
msgid ""
"\n"
"Unwind section "
msgstr ""
-#: readelf.c:7687
+#: readelf.c:7742
#, c-format
msgid " at offset 0x%lx contains %lu entries:\n"
msgstr ""
-#: readelf.c:7966
+#: readelf.c:8021
#, c-format
msgid "Skipping unexpected relocation type %s\n"
msgstr ""
-#: readelf.c:8042 readelf.c:9145
+#: readelf.c:8097 readelf.c:9200
#, c-format
msgid ""
"\n"
@@ -7863,188 +7450,188 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:8181
+#: readelf.c:8236
msgid "unwind data"
msgstr ""
-#: readelf.c:8254
+#: readelf.c:8309
#, c-format
msgid "Skipping unexpected relocation at offset 0x%lx\n"
msgstr ""
-#: readelf.c:8276
+#: readelf.c:8331
#, c-format
msgid "Unknown section relocation type %d encountered\n"
msgstr ""
-#: readelf.c:8284
+#: readelf.c:8339
#, c-format
msgid "Bad symbol index in unwind relocation (%lu > %lu)\n"
msgstr ""
-#: readelf.c:8299
+#: readelf.c:8354
#, c-format
msgid "Skipping unknown ARM relocation type: %d\n"
msgstr ""
-#: readelf.c:8309
+#: readelf.c:8364
#, c-format
msgid "Skipping unexpected ARM relocation type %s\n"
msgstr ""
-#: readelf.c:8318
+#: readelf.c:8373
#, c-format
msgid "Skipping unknown C6000 relocation type: %d\n"
msgstr ""
-#: readelf.c:8328
+#: readelf.c:8383
#, c-format
msgid "Skipping unexpected C6000 relocation type %s\n"
msgstr ""
#. This function currently only supports ARM and TI unwinders.
-#: readelf.c:8337
+#: readelf.c:8392
msgid "Only TI and ARM unwinders are currently supported\n"
msgstr ""
-#: readelf.c:8400
+#: readelf.c:8455
#, c-format
msgid "[Truncated opcode]\n"
msgstr ""
-#: readelf.c:8448 readelf.c:8664
+#: readelf.c:8503 readelf.c:8719
#, c-format
msgid "Refuse to unwind"
msgstr ""
-#: readelf.c:8471
+#: readelf.c:8526
#, c-format
msgid " [Reserved]"
msgstr ""
-#: readelf.c:8499
+#: readelf.c:8554
#, c-format
msgid " finish"
msgstr ""
-#: readelf.c:8504 readelf.c:8597
+#: readelf.c:8559 readelf.c:8652
#, c-format
msgid "[Spare]"
msgstr ""
-#: readelf.c:8538
+#: readelf.c:8593
msgid "corrupt change to vsp"
msgstr ""
-#: readelf.c:8619 readelf.c:8769
+#: readelf.c:8674 readelf.c:8824
#, c-format
msgid " [unsupported opcode]"
msgstr ""
-#: readelf.c:8712
+#: readelf.c:8767
#, c-format
msgid "pop frame {"
msgstr ""
-#: readelf.c:8723
+#: readelf.c:8778
msgid "[pad]"
msgstr ""
-#: readelf.c:8751
+#: readelf.c:8806
msgid "Corrupt stack pointer adjustment detected\n"
msgstr ""
-#: readelf.c:8758
+#: readelf.c:8813
#, c-format
msgid "sp = sp + %ld"
msgstr ""
-#: readelf.c:8828
+#: readelf.c:8883
#, c-format
msgid " Personality routine: "
msgstr ""
-#: readelf.c:8860
+#: readelf.c:8915
#, c-format
msgid " [Truncated data]\n"
msgstr ""
-#: readelf.c:8884
+#: readelf.c:8939
#, c-format
msgid "Corrupt ARM compact model table entry: %x \n"
msgstr ""
-#: readelf.c:8889
+#: readelf.c:8944
#, c-format
msgid " Compact model index: %d\n"
msgstr ""
-#: readelf.c:8915
+#: readelf.c:8970
msgid "Unknown ARM compact model index encountered\n"
msgstr ""
-#: readelf.c:8916
+#: readelf.c:8971
#, c-format
msgid " [reserved]\n"
msgstr ""
-#: readelf.c:8931
+#: readelf.c:8986
#, c-format
msgid " Restore stack from frame pointer\n"
msgstr ""
-#: readelf.c:8933
+#: readelf.c:8988
#, c-format
msgid " Stack increment %d\n"
msgstr ""
-#: readelf.c:8934
+#: readelf.c:8989
#, c-format
msgid " Registers restored: "
msgstr ""
-#: readelf.c:8939
+#: readelf.c:8994
#, c-format
msgid " Return register: %s\n"
msgstr ""
-#: readelf.c:8943
+#: readelf.c:8998
#, c-format
msgid " [reserved (%d)]\n"
msgstr ""
-#: readelf.c:8947
+#: readelf.c:9002
#, c-format
msgid ""
"Unsupported architecture type %d encountered when decoding unwind table\n"
msgstr ""
-#: readelf.c:9002
+#: readelf.c:9057
#, c-format
msgid "corrupt index table entry: %x\n"
msgstr ""
-#: readelf.c:9042
+#: readelf.c:9097
#, c-format
msgid "Unwind entry contains corrupt offset (0x%lx) into section %s\n"
msgstr ""
-#: readelf.c:9058
+#: readelf.c:9113
#, c-format
msgid "Could not locate .ARM.extab section containing 0x%lx.\n"
msgstr ""
-#: readelf.c:9103
+#: readelf.c:9158
#, c-format
msgid ""
"Unsupported architecture type %d encountered when processing unwind table\n"
msgstr ""
-#: readelf.c:9125
+#: readelf.c:9180
msgid "Multiple string tables found in file.\n"
msgstr ""
-#: readelf.c:9191
+#: readelf.c:9246
#, c-format
msgid ""
"\n"
@@ -8052,37 +7639,37 @@ msgid ""
"supported.\n"
msgstr ""
-#: readelf.c:9203
+#: readelf.c:9258
#, c-format
msgid "NONE"
msgstr ""
-#: readelf.c:9228
+#: readelf.c:9283
#, c-format
msgid "Interface Version: %s"
msgstr ""
#. Note: coded this way so that there is a single string for translation.
-#: readelf.c:9234
+#: readelf.c:9289
#, c-format
msgid "<corrupt: %s>"
msgstr ""
-#: readelf.c:9252
+#: readelf.c:9307
#, c-format
msgid "Time Stamp: %s"
msgstr ""
-#: readelf.c:9430 readelf.c:9478
+#: readelf.c:9485 readelf.c:9533
msgid "dynamic section"
msgstr ""
-#: readelf.c:9450 readelf.c:9499
+#: readelf.c:9505 readelf.c:9554
#, c-format
msgid "Out of memory allocating space for %lu dynamic entries\n"
msgstr ""
-#: readelf.c:9559
+#: readelf.c:9614
#, c-format
msgid ""
"\n"
@@ -8090,38 +7677,38 @@ msgid ""
msgstr ""
#. See PR 21379 for a reproducer.
-#: readelf.c:9597
+#: readelf.c:9652
#, c-format
msgid "Invalid DT_SYMTAB entry: %lx"
msgstr ""
-#: readelf.c:9615
+#: readelf.c:9670
msgid "Unable to determine the number of symbols to load\n"
msgstr ""
-#: readelf.c:9651
+#: readelf.c:9706
msgid "Unable to determine the length of the dynamic string table\n"
msgstr ""
-#: readelf.c:9657
+#: readelf.c:9712
msgid "dynamic string table"
msgstr ""
-#: readelf.c:9679
+#: readelf.c:9734
#, c-format
msgid "Bad value (%d) for SYMINENT entry\n"
msgstr ""
-#: readelf.c:9698
+#: readelf.c:9753
msgid "symbol information"
msgstr ""
-#: readelf.c:9705
+#: readelf.c:9760
#, c-format
msgid "Out of memory allocating %lu byte for dynamic symbol info\n"
msgstr ""
-#: readelf.c:9724
+#: readelf.c:9779
#, c-format
msgid ""
"\n"
@@ -8132,87 +7719,87 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:9731
+#: readelf.c:9786
#, c-format
msgid " Tag Type Name/Value\n"
msgstr ""
-#: readelf.c:9765
+#: readelf.c:9820
#, c-format
msgid "Auxiliary library"
msgstr ""
-#: readelf.c:9769
+#: readelf.c:9824
#, c-format
msgid "Filter library"
msgstr ""
-#: readelf.c:9773
+#: readelf.c:9828
#, c-format
msgid "Configuration file"
msgstr ""
-#: readelf.c:9777
+#: readelf.c:9832
#, c-format
msgid "Dependency audit library"
msgstr ""
-#: readelf.c:9781
+#: readelf.c:9836
#, c-format
msgid "Audit library"
msgstr ""
-#: readelf.c:9799 readelf.c:9827 readelf.c:9855
+#: readelf.c:9854 readelf.c:9882 readelf.c:9910
#, c-format
msgid "Flags:"
msgstr ""
-#: readelf.c:9802 readelf.c:9830 readelf.c:9857
+#: readelf.c:9857 readelf.c:9885 readelf.c:9912
#, c-format
msgid " None\n"
msgstr ""
-#: readelf.c:10048
+#: readelf.c:10118
#, c-format
msgid "Shared library: [%s]"
msgstr ""
-#: readelf.c:10051
+#: readelf.c:10121
#, c-format
msgid " program interpreter"
msgstr ""
-#: readelf.c:10055
+#: readelf.c:10125
#, c-format
msgid "Library soname: [%s]"
msgstr ""
-#: readelf.c:10059
+#: readelf.c:10129
#, c-format
msgid "Library rpath: [%s]"
msgstr ""
-#: readelf.c:10063
+#: readelf.c:10133
#, c-format
msgid "Library runpath: [%s]"
msgstr ""
-#: readelf.c:10097
+#: readelf.c:10167
#, c-format
msgid " (bytes)\n"
msgstr ""
-#: readelf.c:10127
+#: readelf.c:10197
#, c-format
msgid "Not needed object: [%s]\n"
msgstr ""
-#: readelf.c:10152
+#: readelf.c:10222
#, c-format
msgid "<corrupt time val: %lx"
msgstr ""
-#: readelf.c:10269
+#: readelf.c:10339
#, c-format
msgid ""
"\n"
@@ -8223,71 +7810,71 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:10277
+#: readelf.c:10347
#, c-format
msgid " Addr: 0x"
msgstr ""
-#: readelf.c:10279 readelf.c:10415 readelf.c:10571
+#: readelf.c:10349 readelf.c:10485 readelf.c:10641
#, c-format
msgid " Offset: %#08lx Link: %u (%s)\n"
msgstr ""
-#: readelf.c:10285
+#: readelf.c:10355
msgid "version definition section"
msgstr ""
-#: readelf.c:10314
+#: readelf.c:10384
#, c-format
msgid " %#06lx: Rev: %d Flags: %s"
msgstr ""
-#: readelf.c:10317
+#: readelf.c:10387
#, c-format
msgid " Index: %d Cnt: %d "
msgstr ""
-#: readelf.c:10334
+#: readelf.c:10404
#, c-format
msgid "Name: %s\n"
msgstr ""
-#: readelf.c:10336
+#: readelf.c:10406
#, c-format
msgid "Name index: %ld\n"
msgstr ""
-#: readelf.c:10345
+#: readelf.c:10415
#, c-format
msgid "Invalid vda_next field of %lx\n"
msgstr ""
-#: readelf.c:10365
+#: readelf.c:10435
#, c-format
msgid " %#06lx: Parent %d: %s\n"
msgstr ""
-#: readelf.c:10368
+#: readelf.c:10438
#, c-format
msgid " %#06lx: Parent %d, name index: %ld\n"
msgstr ""
-#: readelf.c:10373
+#: readelf.c:10443
#, c-format
msgid " Version def aux past end of section\n"
msgstr ""
-#: readelf.c:10380
+#: readelf.c:10450
#, c-format
msgid "Invalid vd_next field of %lx\n"
msgstr ""
-#: readelf.c:10391
+#: readelf.c:10461
#, c-format
msgid " Version definition past end of section\n"
msgstr ""
-#: readelf.c:10406
+#: readelf.c:10476
#, c-format
msgid ""
"\n"
@@ -8298,73 +7885,73 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:10413
+#: readelf.c:10483
#, c-format
msgid " Addr: 0x"
msgstr ""
-#: readelf.c:10422
+#: readelf.c:10492
msgid "Version Needs section"
msgstr ""
-#: readelf.c:10447
+#: readelf.c:10517
#, c-format
msgid " %#06lx: Version: %d"
msgstr ""
-#: readelf.c:10450
+#: readelf.c:10520
#, c-format
msgid " File: %s"
msgstr ""
-#: readelf.c:10452
+#: readelf.c:10522
#, c-format
msgid " File: %lx"
msgstr ""
-#: readelf.c:10454
+#: readelf.c:10524
#, c-format
msgid " Cnt: %d\n"
msgstr ""
-#: readelf.c:10477
+#: readelf.c:10547
#, c-format
msgid " %#06lx: Name: %s"
msgstr ""
-#: readelf.c:10480
+#: readelf.c:10550
#, c-format
msgid " %#06lx: Name index: %lx"
msgstr ""
-#: readelf.c:10483
+#: readelf.c:10553
#, c-format
msgid " Flags: %s Version: %d\n"
msgstr ""
-#: readelf.c:10489
+#: readelf.c:10559
#, c-format
msgid "Invalid vna_next field of %lx\n"
msgstr ""
-#: readelf.c:10502
+#: readelf.c:10572
msgid "Missing Version Needs auxillary information\n"
msgstr ""
-#: readelf.c:10507
+#: readelf.c:10577
#, c-format
msgid "Invalid vn_next field of %lx\n"
msgstr ""
-#: readelf.c:10517
+#: readelf.c:10587
msgid "Missing Version Needs information\n"
msgstr ""
-#: readelf.c:10555
+#: readelf.c:10625
msgid "version string table"
msgstr ""
-#: readelf.c:10562
+#: readelf.c:10632
#, c-format
msgid ""
"\n"
@@ -8375,184 +7962,184 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:10569
+#: readelf.c:10639
#, c-format
msgid " Addr: "
msgstr ""
-#: readelf.c:10580
+#: readelf.c:10650
msgid "version symbol data"
msgstr ""
-#: readelf.c:10600
+#: readelf.c:10670
msgid "*invalid*"
msgstr ""
-#: readelf.c:10608
+#: readelf.c:10678
msgid " 0 (*local*) "
msgstr ""
-#: readelf.c:10612
+#: readelf.c:10682
msgid " 1 (*global*) "
msgstr ""
-#: readelf.c:10623
+#: readelf.c:10693
msgid "invalid index into symbol array\n"
msgstr ""
-#: readelf.c:10645 readelf.c:11272
+#: readelf.c:10715 readelf.c:11342
msgid "version need"
msgstr ""
-#: readelf.c:10656
+#: readelf.c:10726
msgid "version need aux (2)"
msgstr ""
-#: readelf.c:10702 readelf.c:11220
+#: readelf.c:10772 readelf.c:11290
msgid "version def"
msgstr ""
-#: readelf.c:10730 readelf.c:11243
+#: readelf.c:10800 readelf.c:11313
msgid "version def aux"
msgstr ""
-#: readelf.c:10738
+#: readelf.c:10808
msgid "*both*"
msgstr ""
-#: readelf.c:10768
+#: readelf.c:10838
#, c-format
msgid ""
"\n"
"No version information found in this file.\n"
msgstr ""
-#: readelf.c:10867
+#: readelf.c:10937
#, c-format
msgid "Unrecognized visibility value: %u"
msgstr ""
-#: readelf.c:10928
+#: readelf.c:10998
#, c-format
msgid "Unrecognized IA64 VMS ST Function type: %d\n"
msgstr ""
-#: readelf.c:10952
+#: readelf.c:11022
#, c-format
msgid "Unrecognized IA64 VMS ST Linkage: %d\n"
msgstr ""
-#: readelf.c:10972
+#: readelf.c:11042
#, c-format
msgid "<localentry>: %d"
msgstr ""
-#: readelf.c:11007
+#: readelf.c:11077
#, c-format
msgid "<other>: %x"
msgstr ""
-#: readelf.c:11046
+#: readelf.c:11116
#, c-format
msgid "bad section index[%3d]"
msgstr ""
-#: readelf.c:11067
+#: readelf.c:11137
#, c-format
msgid "Size truncation prevents reading %s elements of size %u\n"
msgstr ""
-#: readelf.c:11076
+#: readelf.c:11146
#, c-format
msgid "Invalid number of dynamic entries: %s\n"
msgstr ""
-#: readelf.c:11084
+#: readelf.c:11154
#, c-format
msgid "Out of memory reading %s dynamic entries\n"
msgstr ""
-#: readelf.c:11091
+#: readelf.c:11161
#, c-format
msgid "Unable to read in %s bytes of dynamic data\n"
msgstr ""
-#: readelf.c:11100
+#: readelf.c:11170
#, c-format
msgid "Out of memory allocating space for %s dynamic entries\n"
msgstr ""
-#: readelf.c:11127
+#: readelf.c:11197
#, c-format
msgid "<No info available for dynamic symbol number %lu>\n"
msgstr ""
-#: readelf.c:11159
+#: readelf.c:11229
#, c-format
msgid " <corrupt: %14ld>"
msgstr ""
-#: readelf.c:11185
+#: readelf.c:11255
msgid "version data"
msgstr ""
-#: readelf.c:11290
+#: readelf.c:11360
msgid "version need aux (3)"
msgstr ""
-#: readelf.c:11365 readelf.c:11417 readelf.c:11441 readelf.c:11471
-#: readelf.c:11495
+#: readelf.c:11435 readelf.c:11487 readelf.c:11511 readelf.c:11541
+#: readelf.c:11565
msgid "Unable to seek to start of dynamic information\n"
msgstr ""
-#: readelf.c:11371 readelf.c:11423
+#: readelf.c:11441 readelf.c:11493
msgid "Failed to read in number of buckets\n"
msgstr ""
-#: readelf.c:11377
+#: readelf.c:11447
msgid "Failed to read in number of chains\n"
msgstr ""
-#: readelf.c:11479
+#: readelf.c:11549
msgid "Failed to determine last chain length\n"
msgstr ""
-#: readelf.c:11526
+#: readelf.c:11596
#, c-format
msgid ""
"\n"
"Symbol table for image:\n"
msgstr ""
-#: readelf.c:11528 readelf.c:11554
+#: readelf.c:11598 readelf.c:11624
#, c-format
msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:11530 readelf.c:11556
+#: readelf.c:11600 readelf.c:11626
#, c-format
msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:11541 readelf.c:11737
+#: readelf.c:11611 readelf.c:11807
msgid "histogram chain is corrupt\n"
msgstr ""
-#: readelf.c:11552
+#: readelf.c:11622
#, c-format
msgid ""
"\n"
"Symbol table of `.gnu.hash' for image:\n"
msgstr ""
-#: readelf.c:11597
+#: readelf.c:11667
#, c-format
msgid ""
"\n"
"Symbol table '%s' has a sh_entsize of zero!\n"
msgstr ""
-#: readelf.c:11603
+#: readelf.c:11673
#, c-format
msgid ""
"\n"
@@ -8563,29 +8150,29 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:11610
+#: readelf.c:11680
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:11612
+#: readelf.c:11682
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:11687
+#: readelf.c:11757
#, c-format
msgid "local symbol %u found at index >= %s's sh_info value of %u\n"
msgstr ""
-#: readelf.c:11698
+#: readelf.c:11768
#, c-format
msgid ""
"\n"
"Dynamic symbol information is not available for displaying symbols.\n"
msgstr ""
-#: readelf.c:11711
+#: readelf.c:11781
#, c-format
msgid ""
"\n"
@@ -8596,20 +8183,20 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:11721
+#: readelf.c:11791
msgid "Out of memory allocating space for histogram buckets\n"
msgstr ""
-#: readelf.c:11727 readelf.c:11803
+#: readelf.c:11797 readelf.c:11873
#, c-format
msgid " Length Number %% of total Coverage\n"
msgstr ""
-#: readelf.c:11749
+#: readelf.c:11819
msgid "Out of memory allocating space for histogram counts\n"
msgstr ""
-#: readelf.c:11789
+#: readelf.c:11859
#, c-format
msgid ""
"\n"
@@ -8620,15 +8207,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:11799
+#: readelf.c:11869
msgid "Out of memory allocating space for gnu histogram buckets\n"
msgstr ""
-#: readelf.c:11825
+#: readelf.c:11895
msgid "Out of memory allocating space for gnu histogram counts\n"
msgstr ""
-#: readelf.c:11870
+#: readelf.c:11940
#, c-format
msgid ""
"\n"
@@ -8639,178 +8226,178 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:11877
+#: readelf.c:11947
#, c-format
msgid " Num: Name BoundTo Flags\n"
msgstr ""
-#: readelf.c:11884
+#: readelf.c:11954
#, c-format
msgid "<corrupt index>"
msgstr ""
-#: readelf.c:11888
+#: readelf.c:11958
#, c-format
msgid "<corrupt: %19ld>"
msgstr ""
-#: readelf.c:11977
+#: readelf.c:12047
#, c-format
msgid "MSP430 SYM_DIFF reloc contains invalid symbol index %lu\n"
msgstr ""
-#: readelf.c:12006
+#: readelf.c:12076
#, c-format
msgid "MSP430 reloc contains invalid symbol index %lu\n"
msgstr ""
#. PR 21137
-#: readelf.c:12017
+#: readelf.c:12087
#, c-format
msgid "MSP430 sym diff reloc contains invalid offset: 0x%lx\n"
msgstr ""
-#: readelf.c:12028
+#: readelf.c:12098
msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
msgstr ""
-#: readelf.c:12051
+#: readelf.c:12121
#, c-format
msgid "MN10300_SYM_DIFF reloc contains invalid symbol index %lu\n"
msgstr ""
-#: readelf.c:12065
+#: readelf.c:12135
#, c-format
msgid "MN10300 reloc contains invalid symbol index %lu\n"
msgstr ""
-#: readelf.c:12075
+#: readelf.c:12145
#, c-format
msgid "MN10300 sym diff reloc contains invalid offset: 0x%lx\n"
msgstr ""
-#: readelf.c:12085
+#: readelf.c:12155
msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc\n"
msgstr ""
-#: readelf.c:12108
+#: readelf.c:12178
#, c-format
msgid "RL78_SYM reloc contains invalid symbol index %lu\n"
msgstr ""
-#: readelf.c:12127 readelf.c:12136
+#: readelf.c:12197 readelf.c:12206
#, c-format
msgid "RL78 sym diff reloc contains invalid offset: 0x%lx\n"
msgstr ""
-#: readelf.c:12345
+#: readelf.c:12416
#, c-format
msgid ""
"Missing knowledge of 32-bit reloc types used in DWARF sections of machine "
"number %d\n"
msgstr ""
-#: readelf.c:12955
+#: readelf.c:13026
#, c-format
msgid "unable to apply unsupported reloc type %d to section %s\n"
msgstr ""
-#: readelf.c:12965
+#: readelf.c:13036
#, c-format
msgid "skipping invalid relocation offset 0x%lx in section %s\n"
msgstr ""
-#: readelf.c:12975
+#: readelf.c:13046
#, c-format
msgid "skipping invalid relocation symbol index 0x%lx in section %s\n"
msgstr ""
-#: readelf.c:12999
+#: readelf.c:13070
#, c-format
msgid "skipping unexpected symbol type %s in section %s relocation %ld\n"
msgstr ""
-#: readelf.c:13062
+#: readelf.c:13133
#, c-format
msgid ""
"\n"
"Assembly dump of section %s\n"
msgstr ""
-#: readelf.c:13080
+#: readelf.c:13151
#, c-format
msgid "Section '%s' has no data to dump.\n"
msgstr ""
-#: readelf.c:13086
+#: readelf.c:13157
msgid "section contents"
msgstr ""
-#: readelf.c:13161
+#: readelf.c:13232
#, c-format
msgid ""
"\n"
"String dump of section '%s':\n"
msgstr ""
-#: readelf.c:13177 readelf.c:13324 readelf.c:13499
+#: readelf.c:13248 readelf.c:13395 readelf.c:13570
#, c-format
msgid "section '%s' has unsupported compress type: %d\n"
msgstr ""
-#: readelf.c:13183 readelf.c:13330 readelf.c:13505
+#: readelf.c:13254 readelf.c:13401 readelf.c:13576
#, c-format
msgid "compressed section '%s' is corrupted\n"
msgstr ""
-#: readelf.c:13215 readelf.c:13364 readelf.c:13542
+#: readelf.c:13286 readelf.c:13435 readelf.c:13613
#, c-format
msgid "Unable to decompress section %s\n"
msgstr ""
-#: readelf.c:13240
+#: readelf.c:13311
#, c-format
msgid ""
" Note: This section has relocations against it, but these have NOT been "
"applied to this dump.\n"
msgstr ""
-#: readelf.c:13273 readelf.c:14368 readelf.c:14411 readelf.c:14459
-#: readelf.c:14491
+#: readelf.c:13344 readelf.c:14439 readelf.c:14482 readelf.c:14530
+#: readelf.c:14562
#, c-format
msgid "<corrupt>\n"
msgstr ""
-#: readelf.c:13281
+#: readelf.c:13352
#, c-format
msgid " No strings found in this section."
msgstr ""
-#: readelf.c:13309
+#: readelf.c:13380
#, c-format
msgid ""
"\n"
"Hex dump of section '%s':\n"
msgstr ""
-#: readelf.c:13397
+#: readelf.c:13468
#, c-format
msgid ""
" NOTE: This section has relocations against it, but these have NOT been "
"applied to this dump.\n"
msgstr ""
-#: readelf.c:13466
+#: readelf.c:13537
#, c-format
msgid "%s section data"
msgstr ""
-#: readelf.c:13490
+#: readelf.c:13561
#, c-format
msgid "compressed section %s is too small to contain a compression header"
msgstr ""
-#: readelf.c:13652
+#: readelf.c:13723
#, c-format
msgid ""
"\n"
@@ -8821,503 +8408,503 @@ msgstr ""
#. which has the NOBITS type - the bits in the file will be random.
#. This can happen when a file containing a .eh_frame section is
#. stripped with the --only-keep-debug command line option.
-#: readelf.c:13661
+#: readelf.c:13732
#, c-format
msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
msgstr ""
-#: readelf.c:13711
+#: readelf.c:13782
#, c-format
msgid "Unrecognized debug section: %s\n"
msgstr ""
-#: readelf.c:13739
+#: readelf.c:13810
#, c-format
msgid "Section '%s' was not dumped because it does not exist!\n"
msgstr ""
-#: readelf.c:13800
+#: readelf.c:13871
#, c-format
msgid "Section %d was not dumped because it does not exist!\n"
msgstr ""
-#: readelf.c:13857
+#: readelf.c:13928
msgid "<corrupt tag>\n"
msgstr ""
-#: readelf.c:13872
+#: readelf.c:13943
#, c-format
msgid "<corrupt string tag>"
msgstr ""
-#: readelf.c:13912
+#: readelf.c:13983
#, c-format
msgid "Absent/Non standard\n"
msgstr ""
-#: readelf.c:13915
+#: readelf.c:13986
#, c-format
msgid "Bare metal/mwdt\n"
msgstr ""
-#: readelf.c:13918
+#: readelf.c:13989
#, c-format
msgid "Bare metal/newlib\n"
msgstr ""
-#: readelf.c:13921
+#: readelf.c:13992
#, c-format
msgid "Linux/uclibc\n"
msgstr ""
-#: readelf.c:13924
+#: readelf.c:13995
#, c-format
msgid "Linux/glibc\n"
msgstr ""
-#: readelf.c:13927 readelf.c:14011
+#: readelf.c:13998 readelf.c:14082
#, c-format
msgid "Unknown\n"
msgstr ""
-#: readelf.c:13940 readelf.c:13971 readelf.c:14002
+#: readelf.c:14011 readelf.c:14042 readelf.c:14073
#, c-format
msgid "Absent\n"
msgstr ""
-#: readelf.c:13984
+#: readelf.c:14055
msgid "yes"
msgstr ""
-#: readelf.c:13984
+#: readelf.c:14055
msgid "no"
msgstr ""
-#: readelf.c:14025 readelf.c:14033
+#: readelf.c:14096 readelf.c:14104
msgid "default"
msgstr ""
-#: readelf.c:14026
+#: readelf.c:14097
msgid "smallest"
msgstr ""
-#: readelf.c:14032
+#: readelf.c:14103
msgid "OPTFP"
msgstr ""
-#: readelf.c:14226 readelf.c:14240 readelf.c:14259 readelf.c:14767
-#: readelf.c:15058 readelf.c:15071 readelf.c:15084
+#: readelf.c:14297 readelf.c:14311 readelf.c:14330 readelf.c:14838
+#: readelf.c:15129 readelf.c:15142 readelf.c:15155
#, c-format
msgid "None\n"
msgstr ""
-#: readelf.c:14227
+#: readelf.c:14298
#, c-format
msgid "Application\n"
msgstr ""
-#: readelf.c:14228
+#: readelf.c:14299
#, c-format
msgid "Realtime\n"
msgstr ""
-#: readelf.c:14229
+#: readelf.c:14300
#, c-format
msgid "Microcontroller\n"
msgstr ""
-#: readelf.c:14230
+#: readelf.c:14301
#, c-format
msgid "Application or Realtime\n"
msgstr ""
-#: readelf.c:14241 readelf.c:14261 readelf.c:14821 readelf.c:14839
-#: readelf.c:14914 readelf.c:14935 readelf.c:17091
+#: readelf.c:14312 readelf.c:14332 readelf.c:14892 readelf.c:14910
+#: readelf.c:14985 readelf.c:15006 readelf.c:17162
#, c-format
msgid "8-byte\n"
msgstr ""
-#: readelf.c:14242 readelf.c:14917 readelf.c:14938 readelf.c:17090
+#: readelf.c:14313 readelf.c:14988 readelf.c:15009 readelf.c:17161
#, c-format
msgid "4-byte\n"
msgstr ""
-#: readelf.c:14246 readelf.c:14265
+#: readelf.c:14317 readelf.c:14336
#, c-format
msgid "8-byte and up to %d-byte extended\n"
msgstr ""
-#: readelf.c:14260
+#: readelf.c:14331
#, c-format
msgid "8-byte, except leaf SP\n"
msgstr ""
-#: readelf.c:14277 readelf.c:14365 readelf.c:14954
+#: readelf.c:14348 readelf.c:14436 readelf.c:15025
#, c-format
msgid "flag = %d, vendor = "
msgstr ""
-#: readelf.c:14298
+#: readelf.c:14369
#, c-format
msgid "True\n"
msgstr ""
-#: readelf.c:14320
+#: readelf.c:14391
#, c-format
msgid "<unknown: %d>\n"
msgstr ""
-#: readelf.c:14369
+#: readelf.c:14440
msgid "corrupt vendor attribute\n"
msgstr ""
-#: readelf.c:14421
+#: readelf.c:14492
#, c-format
msgid "unspecified hard/soft float, "
msgstr ""
-#: readelf.c:14424
+#: readelf.c:14495
#, c-format
msgid "hard float, "
msgstr ""
-#: readelf.c:14427
+#: readelf.c:14498
#, c-format
msgid "soft float, "
msgstr ""
-#: readelf.c:14430
+#: readelf.c:14501
#, c-format
msgid "single-precision hard float, "
msgstr ""
-#: readelf.c:14437
+#: readelf.c:14508
#, c-format
msgid "unspecified long double\n"
msgstr ""
-#: readelf.c:14440
+#: readelf.c:14511
#, c-format
msgid "128-bit IBM long double\n"
msgstr ""
-#: readelf.c:14443
+#: readelf.c:14514
#, c-format
msgid "64-bit long double\n"
msgstr ""
-#: readelf.c:14446
+#: readelf.c:14517
#, c-format
msgid "128-bit IEEE long double\n"
msgstr ""
-#: readelf.c:14469 readelf.c:14501
+#: readelf.c:14540 readelf.c:14572
#, c-format
msgid "unspecified\n"
msgstr ""
-#: readelf.c:14472
+#: readelf.c:14543
#, c-format
msgid "generic\n"
msgstr ""
-#: readelf.c:14507
+#: readelf.c:14578
#, c-format
msgid "memory\n"
msgstr ""
-#: readelf.c:14536
+#: readelf.c:14607
#, c-format
msgid "any\n"
msgstr ""
-#: readelf.c:14539
+#: readelf.c:14610
#, c-format
msgid "software\n"
msgstr ""
-#: readelf.c:14542
+#: readelf.c:14613
#, c-format
msgid "hardware\n"
msgstr ""
-#: readelf.c:14668
+#: readelf.c:14739
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: readelf.c:14671
+#: readelf.c:14742
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: readelf.c:14674
+#: readelf.c:14745
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: readelf.c:14677
+#: readelf.c:14748
#, c-format
msgid "Soft float\n"
msgstr ""
-#: readelf.c:14680
+#: readelf.c:14751
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: readelf.c:14683
+#: readelf.c:14754
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: readelf.c:14686
+#: readelf.c:14757
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: readelf.c:14689
+#: readelf.c:14760
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: readelf.c:14692
+#: readelf.c:14763
#, c-format
msgid "NaN 2008 compatibility\n"
msgstr ""
-#: readelf.c:14731
+#: readelf.c:14802
#, c-format
msgid "Any MSA or not\n"
msgstr ""
-#: readelf.c:14734
+#: readelf.c:14805
#, c-format
msgid "128-bit MSA\n"
msgstr ""
-#: readelf.c:14800
+#: readelf.c:14871
#, c-format
msgid "Not used\n"
msgstr ""
-#: readelf.c:14803
+#: readelf.c:14874
#, c-format
msgid "2 bytes\n"
msgstr ""
-#: readelf.c:14806
+#: readelf.c:14877
#, c-format
msgid "4 bytes\n"
msgstr ""
-#: readelf.c:14824 readelf.c:14842 readelf.c:14920 readelf.c:14941
+#: readelf.c:14895 readelf.c:14913 readelf.c:14991 readelf.c:15012
#, c-format
msgid "16-byte\n"
msgstr ""
-#: readelf.c:14857
+#: readelf.c:14928
#, c-format
msgid "DSBT addressing not used\n"
msgstr ""
-#: readelf.c:14860
+#: readelf.c:14931
#, c-format
msgid "DSBT addressing used\n"
msgstr ""
-#: readelf.c:14875
+#: readelf.c:14946
#, c-format
msgid "Data addressing position-dependent\n"
msgstr ""
-#: readelf.c:14878
+#: readelf.c:14949
#, c-format
msgid "Data addressing position-independent, GOT near DP\n"
msgstr ""
-#: readelf.c:14881
+#: readelf.c:14952
#, c-format
msgid "Data addressing position-independent, GOT far from DP\n"
msgstr ""
-#: readelf.c:14896
+#: readelf.c:14967
#, c-format
msgid "Code addressing position-dependent\n"
msgstr ""
-#: readelf.c:14899
+#: readelf.c:14970
#, c-format
msgid "Code addressing position-independent\n"
msgstr ""
-#: readelf.c:15059
+#: readelf.c:15130
#, c-format
msgid "MSP430\n"
msgstr ""
-#: readelf.c:15060
+#: readelf.c:15131
#, c-format
msgid "MSP430X\n"
msgstr ""
-#: readelf.c:15072 readelf.c:15085
+#: readelf.c:15143 readelf.c:15156
#, c-format
msgid "Small\n"
msgstr ""
-#: readelf.c:15073 readelf.c:15086
+#: readelf.c:15144 readelf.c:15157
#, c-format
msgid "Large\n"
msgstr ""
-#: readelf.c:15087
+#: readelf.c:15158
#, c-format
msgid "Restricted Large\n"
msgstr ""
-#: readelf.c:15093
+#: readelf.c:15164
#, c-format
msgid " <unknown tag %d>: "
msgstr ""
-#: readelf.c:15148
+#: readelf.c:15219
msgid "attributes"
msgstr ""
-#: readelf.c:15160
+#: readelf.c:15231
#, c-format
msgid "Unknown attributes version '%c'(%d) - expecting 'A'\n"
msgstr ""
-#: readelf.c:15179
+#: readelf.c:15250
msgid "Tag section ends prematurely\n"
msgstr ""
-#: readelf.c:15188
+#: readelf.c:15259
#, c-format
msgid "Bad attribute length (%u > %u)\n"
msgstr ""
-#: readelf.c:15196
+#: readelf.c:15267
#, c-format
msgid "Attribute length of %u is too small\n"
msgstr ""
-#: readelf.c:15207
+#: readelf.c:15278
msgid "Corrupt attribute section name\n"
msgstr ""
-#: readelf.c:15212
+#: readelf.c:15283
#, c-format
msgid "Attribute Section: "
msgstr ""
-#: readelf.c:15239
+#: readelf.c:15310
msgid "Unused bytes at end of section\n"
msgstr ""
-#: readelf.c:15249
+#: readelf.c:15320
#, c-format
msgid "Bad subsection length (%u > %u)\n"
msgstr ""
-#: readelf.c:15257
+#: readelf.c:15328
#, c-format
msgid "Bad subsection length (%u < 6)\n"
msgstr ""
-#: readelf.c:15272
+#: readelf.c:15343
#, c-format
msgid "File Attributes\n"
msgstr ""
-#: readelf.c:15275
+#: readelf.c:15346
#, c-format
msgid "Section Attributes:"
msgstr ""
-#: readelf.c:15278
+#: readelf.c:15349
#, c-format
msgid "Symbol Attributes:"
msgstr ""
-#: readelf.c:15294
+#: readelf.c:15365
#, c-format
msgid "Unknown tag: %d\n"
msgstr ""
-#: readelf.c:15315
+#: readelf.c:15386
#, c-format
msgid " Unknown attribute:\n"
msgstr ""
-#: readelf.c:15357
+#: readelf.c:15428
msgid "MIPS GOT entry extends beyond the end of available data\n"
msgstr ""
-#: readelf.c:15428 readelf.c:15500
+#: readelf.c:15499 readelf.c:15571
msgid "Unknown"
msgstr ""
-#: readelf.c:15547
+#: readelf.c:15618
msgid "Corrupt MIPS ABI Flags section.\n"
msgstr ""
-#: readelf.c:15553
+#: readelf.c:15624
msgid "MIPS ABI Flags section"
msgstr ""
-#: readelf.c:15612 readelf.c:16160
+#: readelf.c:15683 readelf.c:16231
msgid "Global Offset Table data"
msgstr ""
-#: readelf.c:15616
+#: readelf.c:15687
#, c-format
msgid ""
"\n"
"Static GOT:\n"
msgstr ""
-#: readelf.c:15617 readelf.c:16165
+#: readelf.c:15688 readelf.c:16236
#, c-format
msgid " Canonical gp value: "
msgstr ""
-#: readelf.c:15631 readelf.c:16169 readelf.c:16296
+#: readelf.c:15702 readelf.c:16240 readelf.c:16367
#, c-format
msgid " Reserved entries:\n"
msgstr ""
-#: readelf.c:15632
+#: readelf.c:15703
#, c-format
msgid " %*s %10s %*s\n"
msgstr ""
-#: readelf.c:15633 readelf.c:15663 readelf.c:16171 readelf.c:16199
-#: readelf.c:16217 readelf.c:16298 readelf.c:16307
+#: readelf.c:15704 readelf.c:15734 readelf.c:16242 readelf.c:16270
+#: readelf.c:16288 readelf.c:16369 readelf.c:16378
msgid "Address"
msgstr ""
-#: readelf.c:15633 readelf.c:15663 readelf.c:16171 readelf.c:16199
-#: readelf.c:16218
+#: readelf.c:15704 readelf.c:15734 readelf.c:16242 readelf.c:16270
+#: readelf.c:16289
msgid "Access"
msgstr ""
-#: readelf.c:15634 readelf.c:15664
+#: readelf.c:15705 readelf.c:15735
msgid "Value"
msgstr ""
-#: readelf.c:15661 readelf.c:16197
+#: readelf.c:15732 readelf.c:16268
#, c-format
msgid " Local entries:\n"
msgstr ""
-#: readelf.c:15743 readelf.c:16410
+#: readelf.c:15814 readelf.c:16481
msgid "liblist section data"
msgstr ""
-#: readelf.c:15746
+#: readelf.c:15817
#, c-format
msgid ""
"\n"
@@ -9328,38 +8915,38 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:15750
+#: readelf.c:15821
msgid ""
" Library Time Stamp Checksum Version Flags\n"
msgstr ""
-#: readelf.c:15776
+#: readelf.c:15847
#, c-format
msgid "<corrupt: %9ld>"
msgstr ""
-#: readelf.c:15781
+#: readelf.c:15852
msgid " NONE"
msgstr ""
-#: readelf.c:15834
+#: readelf.c:15905
msgid "No MIPS_OPTIONS header found\n"
msgstr ""
-#: readelf.c:15839
+#: readelf.c:15910
msgid "options"
msgstr ""
-#: readelf.c:15846
+#: readelf.c:15917
msgid "Out of memory allocating space for MIPS options\n"
msgstr ""
-#: readelf.c:15868
+#: readelf.c:15939
#, c-format
msgid "Invalid size (%u) for MIPS option\n"
msgstr ""
-#: readelf.c:15877
+#: readelf.c:15948
#, c-format
msgid ""
"\n"
@@ -9370,24 +8957,24 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:16048
+#: readelf.c:16119
msgid "conflict list found without a dynamic symbol table\n"
msgstr ""
-#: readelf.c:16056
+#: readelf.c:16127
#, c-format
msgid "Overlarge number of conflicts detected: %lx\n"
msgstr ""
-#: readelf.c:16064
+#: readelf.c:16135
msgid "Out of memory allocating space for dynamic conflicts\n"
msgstr ""
-#: readelf.c:16074 readelf.c:16089
+#: readelf.c:16145 readelf.c:16160
msgid "conflict"
msgstr ""
-#: readelf.c:16099
+#: readelf.c:16170
#, c-format
msgid ""
"\n"
@@ -9398,124 +8985,124 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:16103
+#: readelf.c:16174
msgid " Num: Index Value Name"
msgstr ""
-#: readelf.c:16110
+#: readelf.c:16181
#, c-format
msgid "<corrupt symbol index>"
msgstr ""
-#: readelf.c:16121 readelf.c:16246 readelf.c:16331
+#: readelf.c:16192 readelf.c:16317 readelf.c:16402
#, c-format
msgid "<corrupt: %14ld>"
msgstr ""
-#: readelf.c:16144
+#: readelf.c:16215
#, c-format
msgid ""
"The GOT symbol offset (%lu) is greater than the symbol table size (%lu)\n"
msgstr ""
-#: readelf.c:16153
+#: readelf.c:16224
#, c-format
msgid "Too many GOT symbols: %lu\n"
msgstr ""
-#: readelf.c:16164
+#: readelf.c:16235
#, c-format
msgid ""
"\n"
"Primary GOT:\n"
msgstr ""
-#: readelf.c:16170
+#: readelf.c:16241
#, c-format
msgid " %*s %10s %*s Purpose\n"
msgstr ""
-#: readelf.c:16172 readelf.c:16200 readelf.c:16219 readelf.c:16298
-#: readelf.c:16308
+#: readelf.c:16243 readelf.c:16271 readelf.c:16290 readelf.c:16369
+#: readelf.c:16379
msgid "Initial"
msgstr ""
-#: readelf.c:16174
+#: readelf.c:16245
#, c-format
msgid " Lazy resolver\n"
msgstr ""
-#: readelf.c:16189
+#: readelf.c:16260
#, c-format
msgid " Module pointer (GNU extension)\n"
msgstr ""
-#: readelf.c:16215
+#: readelf.c:16286
#, c-format
msgid " Global entries:\n"
msgstr ""
-#: readelf.c:16220 readelf.c:16309
+#: readelf.c:16291 readelf.c:16380
msgid "Sym.Val."
msgstr ""
#. Note for translators: "Ndx" = abbreviated form of "Index".
-#: readelf.c:16223 readelf.c:16309
+#: readelf.c:16294 readelf.c:16380
msgid "Ndx"
msgstr ""
-#: readelf.c:16223 readelf.c:16309
+#: readelf.c:16294 readelf.c:16380
msgid "Name"
msgstr ""
-#: readelf.c:16233
+#: readelf.c:16304
#, c-format
msgid "<no dynamic symbols>"
msgstr ""
-#: readelf.c:16249
+#: readelf.c:16320
#, c-format
msgid "<symbol index %lu exceeds number of dynamic symbols>"
msgstr ""
-#: readelf.c:16291
+#: readelf.c:16362
msgid "Procedure Linkage Table data"
msgstr ""
-#: readelf.c:16297
+#: readelf.c:16368
#, c-format
msgid " %*s %*s Purpose\n"
msgstr ""
-#: readelf.c:16300
+#: readelf.c:16371
#, c-format
msgid " PLT lazy resolver\n"
msgstr ""
-#: readelf.c:16302
+#: readelf.c:16373
#, c-format
msgid " Module pointer\n"
msgstr ""
-#: readelf.c:16305
+#: readelf.c:16376
#, c-format
msgid " Entries:\n"
msgstr ""
-#: readelf.c:16319
+#: readelf.c:16390
#, c-format
msgid "<corrupt symbol index: %lu>"
msgstr ""
-#: readelf.c:16357
+#: readelf.c:16428
msgid "NDS32 elf flags section"
msgstr ""
-#: readelf.c:16421
+#: readelf.c:16492
msgid "liblist string table"
msgstr ""
-#: readelf.c:16433
+#: readelf.c:16504
#, c-format
msgid ""
"\n"
@@ -9526,361 +9113,361 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:16439
+#: readelf.c:16510
msgid " Library Time Stamp Checksum Version Flags"
msgstr ""
-#: readelf.c:16489
+#: readelf.c:16560
msgid "NT_AUXV (auxiliary vector)"
msgstr ""
-#: readelf.c:16491
+#: readelf.c:16562
msgid "NT_PRSTATUS (prstatus structure)"
msgstr ""
-#: readelf.c:16493
+#: readelf.c:16564
msgid "NT_FPREGSET (floating point registers)"
msgstr ""
-#: readelf.c:16495
+#: readelf.c:16566
msgid "NT_PRPSINFO (prpsinfo structure)"
msgstr ""
-#: readelf.c:16497
+#: readelf.c:16568
msgid "NT_TASKSTRUCT (task structure)"
msgstr ""
-#: readelf.c:16499
+#: readelf.c:16570
msgid "NT_PRXFPREG (user_xfpregs structure)"
msgstr ""
-#: readelf.c:16501
+#: readelf.c:16572
msgid "NT_PPC_VMX (ppc Altivec registers)"
msgstr ""
-#: readelf.c:16503
+#: readelf.c:16574
msgid "NT_PPC_VSX (ppc VSX registers)"
msgstr ""
-#: readelf.c:16505
+#: readelf.c:16576
msgid "NT_PPC_TAR (ppc TAR register)"
msgstr ""
-#: readelf.c:16507
+#: readelf.c:16578
msgid "NT_PPC_PPR (ppc PPR register)"
msgstr ""
-#: readelf.c:16509
+#: readelf.c:16580
msgid "NT_PPC_DSCR (ppc DSCR register)"
msgstr ""
-#: readelf.c:16511
+#: readelf.c:16582
msgid "NT_PPC_EBB (ppc EBB registers)"
msgstr ""
-#: readelf.c:16513
+#: readelf.c:16584
msgid "NT_PPC_PMU (ppc PMU registers)"
msgstr ""
-#: readelf.c:16515
+#: readelf.c:16586
msgid "NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
msgstr ""
-#: readelf.c:16517
+#: readelf.c:16588
msgid "NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
msgstr ""
-#: readelf.c:16519
+#: readelf.c:16590
msgid "NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
msgstr ""
-#: readelf.c:16521
+#: readelf.c:16592
msgid "NT_PPC_TM_VSX (ppc checkpointed VSX registers)"
msgstr ""
-#: readelf.c:16523
+#: readelf.c:16594
msgid "NT_PPC_TM_SPR (ppc TM special purpose registers)"
msgstr ""
-#: readelf.c:16525
+#: readelf.c:16596
msgid "NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
msgstr ""
-#: readelf.c:16527
+#: readelf.c:16598
msgid "NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
msgstr ""
-#: readelf.c:16529
+#: readelf.c:16600
msgid "NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
msgstr ""
-#: readelf.c:16531
+#: readelf.c:16602
msgid "NT_386_TLS (x86 TLS information)"
msgstr ""
-#: readelf.c:16533
+#: readelf.c:16604
msgid "NT_386_IOPERM (x86 I/O permissions)"
msgstr ""
-#: readelf.c:16535
+#: readelf.c:16606
msgid "NT_X86_XSTATE (x86 XSAVE extended state)"
msgstr ""
-#: readelf.c:16537
+#: readelf.c:16608
msgid "NT_S390_HIGH_GPRS (s390 upper register halves)"
msgstr ""
-#: readelf.c:16539
+#: readelf.c:16610
msgid "NT_S390_TIMER (s390 timer register)"
msgstr ""
-#: readelf.c:16541
+#: readelf.c:16612
msgid "NT_S390_TODCMP (s390 TOD comparator register)"
msgstr ""
-#: readelf.c:16543
+#: readelf.c:16614
msgid "NT_S390_TODPREG (s390 TOD programmable register)"
msgstr ""
-#: readelf.c:16545
+#: readelf.c:16616
msgid "NT_S390_CTRS (s390 control registers)"
msgstr ""
-#: readelf.c:16547
+#: readelf.c:16618
msgid "NT_S390_PREFIX (s390 prefix register)"
msgstr ""
-#: readelf.c:16549
+#: readelf.c:16620
msgid "NT_S390_LAST_BREAK (s390 last breaking event address)"
msgstr ""
-#: readelf.c:16551
+#: readelf.c:16622
msgid "NT_S390_SYSTEM_CALL (s390 system call restart data)"
msgstr ""
-#: readelf.c:16553
+#: readelf.c:16624
msgid "NT_S390_TDB (s390 transaction diagnostic block)"
msgstr ""
-#: readelf.c:16555
+#: readelf.c:16626
msgid "NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
msgstr ""
-#: readelf.c:16557
+#: readelf.c:16628
msgid "NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
msgstr ""
-#: readelf.c:16559
+#: readelf.c:16630
msgid "NT_S390_GS_CB (s390 guarded-storage registers)"
msgstr ""
-#: readelf.c:16561
+#: readelf.c:16632
msgid "NT_S390_GS_BC (s390 guarded-storage broadcast control)"
msgstr ""
-#: readelf.c:16563
+#: readelf.c:16634
msgid "NT_ARM_VFP (arm VFP registers)"
msgstr ""
-#: readelf.c:16565
+#: readelf.c:16636
msgid "NT_ARM_TLS (AArch TLS registers)"
msgstr ""
-#: readelf.c:16567
+#: readelf.c:16638
msgid "NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
msgstr ""
-#: readelf.c:16569
+#: readelf.c:16640
msgid "NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
msgstr ""
-#: readelf.c:16571
+#: readelf.c:16642
msgid "NT_PSTATUS (pstatus structure)"
msgstr ""
-#: readelf.c:16573
+#: readelf.c:16644
msgid "NT_FPREGS (floating point registers)"
msgstr ""
-#: readelf.c:16575
+#: readelf.c:16646
msgid "NT_PSINFO (psinfo structure)"
msgstr ""
-#: readelf.c:16577
+#: readelf.c:16648
msgid "NT_LWPSTATUS (lwpstatus_t structure)"
msgstr ""
-#: readelf.c:16579
+#: readelf.c:16650
msgid "NT_LWPSINFO (lwpsinfo_t structure)"
msgstr ""
-#: readelf.c:16581
+#: readelf.c:16652
msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
msgstr ""
-#: readelf.c:16583
+#: readelf.c:16654
msgid "NT_SIGINFO (siginfo_t data)"
msgstr ""
-#: readelf.c:16585
+#: readelf.c:16656
msgid "NT_FILE (mapped files)"
msgstr ""
-#: readelf.c:16593
+#: readelf.c:16664
msgid "NT_VERSION (version)"
msgstr ""
-#: readelf.c:16595
+#: readelf.c:16666
msgid "NT_ARCH (architecture)"
msgstr ""
-#: readelf.c:16597
+#: readelf.c:16668
msgid "OPEN"
msgstr ""
-#: readelf.c:16599
+#: readelf.c:16670
msgid "func"
msgstr ""
-#: readelf.c:16604 readelf.c:16723 readelf.c:17064 readelf.c:17208
-#: readelf.c:17266 readelf.c:17343
+#: readelf.c:16675 readelf.c:16794 readelf.c:17135 readelf.c:17279
+#: readelf.c:17337 readelf.c:17414
#, c-format
msgid "Unknown note type: (0x%08x)"
msgstr ""
-#: readelf.c:16625
+#: readelf.c:16696
#, c-format
msgid " Cannot decode 64-bit note in 32-bit build\n"
msgstr ""
-#: readelf.c:16633
+#: readelf.c:16704
msgid " Malformed note - too short for header\n"
msgstr ""
-#: readelf.c:16642
+#: readelf.c:16713
msgid " Malformed note - does not end with \\0\n"
msgstr ""
-#: readelf.c:16655
+#: readelf.c:16726
msgid " Malformed note - too short for supplied file count\n"
msgstr ""
-#: readelf.c:16659
+#: readelf.c:16730
#, c-format
msgid " Page size: "
msgstr ""
-#: readelf.c:16663
+#: readelf.c:16734
#, c-format
msgid " %*s%*s%*s\n"
msgstr ""
-#: readelf.c:16664
+#: readelf.c:16735
msgid "Start"
msgstr ""
-#: readelf.c:16665
+#: readelf.c:16736
msgid "End"
msgstr ""
-#: readelf.c:16666
+#: readelf.c:16737
msgid "Page Offset"
msgstr ""
-#: readelf.c:16674
+#: readelf.c:16745
msgid " Malformed note - filenames end too early\n"
msgstr ""
-#: readelf.c:16706
+#: readelf.c:16777
msgid "NT_GNU_ABI_TAG (ABI version tag)"
msgstr ""
-#: readelf.c:16708
+#: readelf.c:16779
msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
msgstr ""
-#: readelf.c:16710
+#: readelf.c:16781
msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
msgstr ""
-#: readelf.c:16712
+#: readelf.c:16783
msgid "NT_GNU_GOLD_VERSION (gold version)"
msgstr ""
-#: readelf.c:16714
+#: readelf.c:16785
msgid "NT_GNU_PROPERTY_TYPE_0"
msgstr ""
-#: readelf.c:16716
+#: readelf.c:16787
msgid "NT_GNU_BUILD_ATTRIBUTE_OPEN"
msgstr ""
-#: readelf.c:16718
+#: readelf.c:16789
msgid "NT_GNU_BUILD_ATTRIBUTE_FUNC"
msgstr ""
-#: readelf.c:16812
+#: readelf.c:16883
#, c-format
msgid " Properties: "
msgstr ""
-#: readelf.c:16816
+#: readelf.c:16887
#, c-format
msgid "<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"
msgstr ""
-#: readelf.c:16828
+#: readelf.c:16899
#, c-format
msgid "<corrupt descsz: %#lx>\n"
msgstr ""
-#: readelf.c:16839
+#: readelf.c:16910
#, c-format
msgid "<corrupt type (%#x) datasz: %#x>\n"
msgstr ""
-#: readelf.c:16855 readelf.c:16863 readelf.c:16871 readelf.c:16888
-#: readelf.c:16896
+#: readelf.c:16926 readelf.c:16934 readelf.c:16942 readelf.c:16959
+#: readelf.c:16967
#, c-format
msgid "<corrupt length: %#x> "
msgstr ""
-#: readelf.c:16886
+#: readelf.c:16957
#, c-format
msgid "stack size: "
msgstr ""
-#: readelf.c:16905
+#: readelf.c:16976
#, c-format
msgid "<unknown type %#x data: "
msgstr ""
-#: readelf.c:16907
+#: readelf.c:16978
#, c-format
msgid "<procesor-specific type %#x data: "
msgstr ""
-#: readelf.c:16909
+#: readelf.c:16980
#, c-format
msgid "<application-specific type %#x data: "
msgstr ""
-#: readelf.c:16938
+#: readelf.c:17009
#, c-format
msgid " Build ID: "
msgstr ""
-#: readelf.c:16953
+#: readelf.c:17024
#, c-format
msgid " <corrupt GNU_ABI_TAG>\n"
msgstr ""
-#: readelf.c:16990
+#: readelf.c:17061
#, c-format
msgid " OS: %s, ABI: %ld.%ld.%ld\n"
msgstr ""
-#: readelf.c:16999
+#: readelf.c:17070
#, c-format
msgid " Version: "
msgstr ""
@@ -9890,458 +9477,458 @@ msgstr ""
#. is a series of entries, where each entry is a single byte followed
#. by a nul terminated string. The byte gives the bit number to test
#. if enabled in the bitmask.
-#: readelf.c:17015
+#: readelf.c:17086
#, c-format
msgid " Hardware Capabilities: "
msgstr ""
-#: readelf.c:17018
+#: readelf.c:17089
msgid "<corrupt GNU_HWCAP>\n"
msgstr ""
-#: readelf.c:17023
+#: readelf.c:17094
#, c-format
msgid "num entries: %ld, enabled mask: %lx\n"
msgstr ""
-#: readelf.c:17039
+#: readelf.c:17110
#, c-format
msgid " Description data: "
msgstr ""
-#: readelf.c:17057
+#: readelf.c:17128
msgid "Alignment of 8-byte objects"
msgstr ""
-#: readelf.c:17058
+#: readelf.c:17129
msgid "Sizeof double and long double"
msgstr ""
-#: readelf.c:17059
+#: readelf.c:17130
msgid "Type of FPU support needed"
msgstr ""
-#: readelf.c:17060
+#: readelf.c:17131
msgid "Use of SIMD instructions"
msgstr ""
-#: readelf.c:17061
+#: readelf.c:17132
msgid "Use of cache"
msgstr ""
-#: readelf.c:17062
+#: readelf.c:17133
msgid "Use of MMU"
msgstr ""
-#: readelf.c:17098
+#: readelf.c:17169
#, c-format
msgid "4-bytes\n"
msgstr ""
-#: readelf.c:17099
+#: readelf.c:17170
#, c-format
msgid "8-bytes\n"
msgstr ""
-#: readelf.c:17106
+#: readelf.c:17177
#, c-format
msgid "FPU-2.0\n"
msgstr ""
-#: readelf.c:17107
+#: readelf.c:17178
#, c-format
msgid "FPU-3.0\n"
msgstr ""
-#: readelf.c:17116
+#: readelf.c:17187
#, c-format
msgid "yes\n"
msgstr ""
-#: readelf.c:17126
+#: readelf.c:17197
#, c-format
msgid "unknown value: %x\n"
msgstr ""
-#: readelf.c:17168
+#: readelf.c:17239
msgid "NT_THRMISC (thrmisc structure)"
msgstr ""
-#: readelf.c:17170
+#: readelf.c:17241
msgid "NT_PROCSTAT_PROC (proc data)"
msgstr ""
-#: readelf.c:17172
+#: readelf.c:17243
msgid "NT_PROCSTAT_FILES (files data)"
msgstr ""
-#: readelf.c:17174
+#: readelf.c:17245
msgid "NT_PROCSTAT_VMMAP (vmmap data)"
msgstr ""
-#: readelf.c:17176
+#: readelf.c:17247
msgid "NT_PROCSTAT_GROUPS (groups data)"
msgstr ""
-#: readelf.c:17178
+#: readelf.c:17249
msgid "NT_PROCSTAT_UMASK (umask data)"
msgstr ""
-#: readelf.c:17180
+#: readelf.c:17251
msgid "NT_PROCSTAT_RLIMIT (rlimit data)"
msgstr ""
-#: readelf.c:17182
+#: readelf.c:17253
msgid "NT_PROCSTAT_OSREL (osreldate data)"
msgstr ""
-#: readelf.c:17184
+#: readelf.c:17255
msgid "NT_PROCSTAT_PSSTRINGS (ps_strings data)"
msgstr ""
-#: readelf.c:17186
+#: readelf.c:17257
msgid "NT_PROCSTAT_AUXV (auxv data)"
msgstr ""
-#: readelf.c:17188
+#: readelf.c:17259
msgid "NT_PTLWPINFO (ptrace_lwpinfo structure)"
msgstr ""
-#: readelf.c:17199
+#: readelf.c:17270
msgid "NetBSD procinfo structure"
msgstr ""
-#: readelf.c:17225 readelf.c:17239
+#: readelf.c:17296 readelf.c:17310
msgid "PT_GETREGS (reg structure)"
msgstr ""
-#: readelf.c:17227 readelf.c:17241
+#: readelf.c:17298 readelf.c:17312
msgid "PT_GETFPREGS (fpreg structure)"
msgstr ""
-#: readelf.c:17260
+#: readelf.c:17331
msgid "NT_STAPSDT (SystemTap probe descriptors)"
msgstr ""
-#: readelf.c:17293
+#: readelf.c:17364
#, c-format
msgid " Provider: %s\n"
msgstr ""
-#: readelf.c:17294
+#: readelf.c:17365
#, c-format
msgid " Name: %s\n"
msgstr ""
-#: readelf.c:17295
+#: readelf.c:17366
#, c-format
msgid " Location: "
msgstr ""
-#: readelf.c:17297
+#: readelf.c:17368
#, c-format
msgid ", Base: "
msgstr ""
-#: readelf.c:17299
+#: readelf.c:17370
#, c-format
msgid ", Semaphore: "
msgstr ""
-#: readelf.c:17302
+#: readelf.c:17373
#, c-format
msgid " Arguments: %s\n"
msgstr ""
-#: readelf.c:17315
+#: readelf.c:17386
msgid "NT_VMS_MHD (module header)"
msgstr ""
-#: readelf.c:17317
+#: readelf.c:17388
msgid "NT_VMS_LNM (language name)"
msgstr ""
-#: readelf.c:17319
+#: readelf.c:17390
msgid "NT_VMS_SRC (source files)"
msgstr ""
-#: readelf.c:17323
+#: readelf.c:17394
msgid "NT_VMS_EIDC (consistency check)"
msgstr ""
-#: readelf.c:17325
+#: readelf.c:17396
msgid "NT_VMS_FPMODE (FP mode)"
msgstr ""
-#: readelf.c:17329
+#: readelf.c:17400
msgid "NT_VMS_IMGNAM (image name)"
msgstr ""
-#: readelf.c:17331
+#: readelf.c:17402
msgid "NT_VMS_IMGID (image id)"
msgstr ""
-#: readelf.c:17333
+#: readelf.c:17404
msgid "NT_VMS_LINKID (link id)"
msgstr ""
-#: readelf.c:17335
+#: readelf.c:17406
msgid "NT_VMS_IMGBID (build id)"
msgstr ""
-#: readelf.c:17337
+#: readelf.c:17408
msgid "NT_VMS_GSTNAM (sym table name)"
msgstr ""
-#: readelf.c:17357
+#: readelf.c:17428
#, c-format
msgid " Creation date : %.17s\n"
msgstr ""
-#: readelf.c:17358
+#: readelf.c:17429
#, c-format
msgid " Last patch date: %.17s\n"
msgstr ""
-#: readelf.c:17359
+#: readelf.c:17430
#, c-format
msgid " Module name : %s\n"
msgstr ""
-#: readelf.c:17360
+#: readelf.c:17431
#, c-format
msgid " Module version : %s\n"
msgstr ""
-#: readelf.c:17363
+#: readelf.c:17434
#, c-format
msgid " Invalid size\n"
msgstr ""
-#: readelf.c:17366
+#: readelf.c:17437
#, c-format
msgid " Language: %s\n"
msgstr ""
-#: readelf.c:17370
+#: readelf.c:17441
#, c-format
msgid " Floating Point mode: "
msgstr ""
-#: readelf.c:17375
+#: readelf.c:17446
#, c-format
msgid " Link time: "
msgstr ""
-#: readelf.c:17381
+#: readelf.c:17452
#, c-format
msgid " Patch time: "
msgstr ""
-#: readelf.c:17387
+#: readelf.c:17458
#, c-format
msgid " Major id: %u, minor id: %u\n"
msgstr ""
-#: readelf.c:17390
+#: readelf.c:17461
#, c-format
msgid " Last modified : "
msgstr ""
-#: readelf.c:17393
+#: readelf.c:17464
#, c-format
msgid ""
"\n"
" Link flags : "
msgstr ""
-#: readelf.c:17396
+#: readelf.c:17467
#, c-format
msgid " Header flags: 0x%08x\n"
msgstr ""
-#: readelf.c:17398
+#: readelf.c:17469
#, c-format
msgid " Image id : %s\n"
msgstr ""
-#: readelf.c:17402
+#: readelf.c:17473
#, c-format
msgid " Image name: %s\n"
msgstr ""
-#: readelf.c:17405
+#: readelf.c:17476
#, c-format
msgid " Global symbol table name: %s\n"
msgstr ""
-#: readelf.c:17408
+#: readelf.c:17479
#, c-format
msgid " Image id: %s\n"
msgstr ""
-#: readelf.c:17411
+#: readelf.c:17482
#, c-format
msgid " Linker id: %s\n"
msgstr ""
-#: readelf.c:17562 readelf.c:17570
+#: readelf.c:17640 readelf.c:17648
#, c-format
msgid " Applies to region from %#lx to %#lx\n"
msgstr ""
-#: readelf.c:17565 readelf.c:17572
+#: readelf.c:17643 readelf.c:17650
#, c-format
msgid " Applies to region from %#lx\n"
msgstr ""
-#: readelf.c:17601
+#: readelf.c:17679
#, c-format
msgid " <invalid description size: %lx>\n"
msgstr ""
-#: readelf.c:17602
+#: readelf.c:17680
#, c-format
msgid " <invalid descsz>"
msgstr ""
-#: readelf.c:17616
+#: readelf.c:17700
#, c-format
msgid "Gap in build notes detected from %#lx to %#lx\n"
msgstr ""
-#: readelf.c:17619 readelf.c:17630
+#: readelf.c:17703 readelf.c:17714
#, c-format
msgid " Applies to region from %#lx"
msgstr ""
-#: readelf.c:17624 readelf.c:17635
+#: readelf.c:17708 readelf.c:17719
#, c-format
msgid " to %#lx"
msgstr ""
-#: readelf.c:17641
+#: readelf.c:17725
#, c-format
msgid " (%s)"
msgstr ""
-#: readelf.c:17662 readelf.c:17677
+#: readelf.c:17746 readelf.c:17761
#, c-format
msgid "corrupt name field in GNU build attribute note: size = %ld\n"
msgstr ""
-#: readelf.c:17663 readelf.c:17678
+#: readelf.c:17747 readelf.c:17762
msgid " <corrupt name>"
msgstr ""
-#: readelf.c:17697
+#: readelf.c:17781
#, c-format
msgid "unrecognised attribute type in name field: %d\n"
msgstr ""
-#: readelf.c:17698
+#: readelf.c:17782
msgid "<unknown name type>"
msgstr ""
-#: readelf.c:17708
+#: readelf.c:17792
msgid "<version>"
msgstr ""
-#: readelf.c:17713
+#: readelf.c:17797
msgid "<stack prot>"
msgstr ""
-#: readelf.c:17718
+#: readelf.c:17802
msgid "<relro>"
msgstr ""
-#: readelf.c:17723
+#: readelf.c:17807
msgid "<stack size>"
msgstr ""
-#: readelf.c:17728
+#: readelf.c:17812
msgid "<tool>"
msgstr ""
-#: readelf.c:17733
+#: readelf.c:17817
msgid "<ABI>"
msgstr ""
-#: readelf.c:17738
+#: readelf.c:17822
msgid "<PIC>"
msgstr ""
-#: readelf.c:17743
+#: readelf.c:17827
msgid "<short enum>"
msgstr ""
-#: readelf.c:17762
+#: readelf.c:17846
#, c-format
msgid "unrecognised byte in name field: %d\n"
msgstr ""
-#: readelf.c:17763
+#: readelf.c:17847
#, c-format
msgid "<unknown:_%d>"
msgstr ""
-#: readelf.c:17775
+#: readelf.c:17859
#, c-format
msgid "attribute does not have an expected type (%c)\n"
msgstr ""
-#: readelf.c:17779
+#: readelf.c:17863
#, c-format
msgid "corrupt name field: namesz: %lu but parsing gets to %ld\n"
msgstr ""
-#: readelf.c:17806
+#: readelf.c:17890
#, c-format
msgid "corrupt numeric name field: too many bytes in the value: %x\n"
msgstr ""
-#: readelf.c:17974
+#: readelf.c:18058
#, c-format
msgid " description data: "
msgstr ""
-#: readelf.c:18013
+#: readelf.c:18097
msgid "notes"
msgstr ""
-#: readelf.c:18021
+#: readelf.c:18105
#, c-format
msgid ""
"\n"
"Displaying notes found in: %s\n"
msgstr ""
-#: readelf.c:18023
+#: readelf.c:18107
#, c-format
msgid ""
"\n"
"Displaying notes found at file offset 0x%08lx with length 0x%08lx:\n"
msgstr ""
-#: readelf.c:18035
+#: readelf.c:18119
#, c-format
msgid "Corrupt note: alignment %ld, expecting 4 or 8\n"
msgstr ""
-#: readelf.c:18040
+#: readelf.c:18124
#, c-format
msgid " %-20s %10s\tDescription\n"
msgstr ""
-#: readelf.c:18040
+#: readelf.c:18124
msgid "Owner"
msgstr ""
-#: readelf.c:18040
+#: readelf.c:18124
msgid "Data size"
msgstr ""
-#: readelf.c:18058 readelf.c:18087
+#: readelf.c:18142 readelf.c:18171
#, c-format
msgid "Corrupt note: only %ld byte remains, not enough for a full note\n"
msgid_plural ""
@@ -10349,25 +9936,25 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:18115
+#: readelf.c:18199
#, c-format
msgid "note with invalid namesz and/or descsz found at offset 0x%lx\n"
msgstr ""
-#: readelf.c:18117
+#: readelf.c:18201
#, c-format
msgid " type: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx, alignment: %u\n"
msgstr ""
-#: readelf.c:18135
+#: readelf.c:18219
msgid "Out of memory allocating space for inote name\n"
msgstr ""
-#: readelf.c:18198
+#: readelf.c:18282
msgid "v850 notes"
msgstr ""
-#: readelf.c:18205
+#: readelf.c:18289
#, c-format
msgid ""
"\n"
@@ -10375,75 +9962,75 @@ msgid ""
"length 0x%lx:\n"
msgstr ""
-#: readelf.c:18222
+#: readelf.c:18306
#, c-format
msgid "Corrupt note: name size is too big: %lx\n"
msgstr ""
-#: readelf.c:18232
+#: readelf.c:18316
#, c-format
msgid "corrupt descsz found in note at offset 0x%lx\n"
msgstr ""
-#: readelf.c:18234 readelf.c:18247
+#: readelf.c:18318 readelf.c:18331
#, c-format
msgid " type: 0x%lx, namesize: 0x%lx, descsize: 0x%lx\n"
msgstr ""
-#: readelf.c:18245
+#: readelf.c:18329
#, c-format
msgid "corrupt namesz found in note at offset 0x%lx\n"
msgstr ""
-#: readelf.c:18323
+#: readelf.c:18407
#, c-format
msgid "No note segments present in the core file.\n"
msgstr ""
-#: readelf.c:18331
+#: readelf.c:18415
#, c-format
msgid " Unknown GNU attribute: %s\n"
msgstr ""
-#: readelf.c:18466
+#: readelf.c:18550
msgid ""
"This instance of readelf has been built without support for a\n"
"64 bit data type and so it cannot read 64 bit ELF files.\n"
msgstr ""
-#: readelf.c:18589
+#: readelf.c:18673
#, c-format
msgid "%s: Failed to read file header\n"
msgstr ""
-#: readelf.c:18603
+#: readelf.c:18687
#, c-format
msgid ""
"\n"
"File: %s\n"
msgstr ""
-#: readelf.c:18789
+#: readelf.c:18873
#, c-format
msgid "%s: unable to dump the index as none was found\n"
msgstr ""
-#: readelf.c:18795
+#: readelf.c:18879
#, c-format
msgid "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"
msgstr ""
-#: readelf.c:18814
+#: readelf.c:18898
#, c-format
msgid "Contents of binary %s at offset "
msgstr ""
-#: readelf.c:18824
+#: readelf.c:18908
#, c-format
msgid "%s: end of the symbol table reached before the end of the index\n"
msgstr ""
-#: readelf.c:18841
+#: readelf.c:18925
#, c-format
msgid ""
"%s: %ld byte remains in the symbol table, but without corresponding entries "
@@ -10454,36 +10041,36 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:18854
+#: readelf.c:18938
#, c-format
msgid "%s: failed to seek back to start of object files in the archive\n"
msgstr ""
-#: readelf.c:18938 readelf.c:19050
+#: readelf.c:19022 readelf.c:19134
#, c-format
msgid "Input file '%s' is not readable.\n"
msgstr ""
-#: readelf.c:18962
+#: readelf.c:19046
#, c-format
msgid "%s: contains corrupt thin archive: %s\n"
msgstr ""
-#: readelf.c:18975
+#: readelf.c:19059
#, c-format
msgid "%s: failed to seek to archive member.\n"
msgstr ""
-#: readelf.c:19042
+#: readelf.c:19126
msgid "Out of memory allocating file data structure\n"
msgstr ""
-#: readelf.c:19078
+#: readelf.c:19162
#, c-format
msgid "File %s is not an archive so its index cannot be displayed.\n"
msgstr ""
-#: readelf.c:19137
+#: readelf.c:19221
msgid "Nothing to do.\n"
msgstr ""
@@ -11008,140 +10595,144 @@ msgid ""
" -v --version Print the program's version number\n"
msgstr ""
+#: srconv.c:1788
+msgid "input and output files must be different"
+msgstr ""
+
#: srconv.c:1844
#, c-format
msgid "unable to open output file %s"
msgstr ""
-#: stabs.c:331 stabs.c:1726
+#: stabs.c:342 stabs.c:1770
msgid "numeric overflow"
msgstr ""
-#: stabs.c:341
+#: stabs.c:352
#, c-format
msgid "Bad stab: %s\n"
msgstr ""
-#: stabs.c:349
+#: stabs.c:360
#, c-format
msgid "Warning: %s: %s\n"
msgstr ""
-#: stabs.c:459
+#: stabs.c:472
#, c-format
msgid "N_LBRAC not within function\n"
msgstr ""
-#: stabs.c:498
+#: stabs.c:511
#, c-format
msgid "Too many N_RBRACs\n"
msgstr ""
-#: stabs.c:730
+#: stabs.c:744
msgid "unknown C++ encoded name"
msgstr ""
#. Complain and keep going, so compilers can invent new
#. cross-reference types.
-#: stabs.c:1271
+#: stabs.c:1305
msgid "unrecognized cross reference type"
msgstr ""
#. Does this actually ever happen? Is that why we are worrying
#. about dealing with it rather than just calling error_type?
-#: stabs.c:1818
+#: stabs.c:1862
msgid "missing index type"
msgstr ""
-#: stabs.c:2146
+#: stabs.c:2214
msgid "unknown virtual character for baseclass"
msgstr ""
-#: stabs.c:2164
+#: stabs.c:2235
msgid "unknown visibility character for baseclass"
msgstr ""
-#: stabs.c:2354
+#: stabs.c:2440
msgid "unnamed $vb type"
msgstr ""
-#: stabs.c:2360
+#: stabs.c:2446
msgid "unrecognized C++ abbreviation"
msgstr ""
-#: stabs.c:2436
+#: stabs.c:2531
msgid "unknown visibility character for field"
msgstr ""
-#: stabs.c:2696
+#: stabs.c:2800
msgid "const/volatile indicator missing"
msgstr ""
-#: stabs.c:2938
+#: stabs.c:3043
#, c-format
msgid "No mangling for \"%s\"\n"
msgstr ""
-#: stabs.c:3238
+#: stabs.c:3356
msgid "Undefined N_EXCL"
msgstr ""
-#: stabs.c:3318
+#: stabs.c:3436
#, c-format
msgid "Type file number %d out of range\n"
msgstr ""
-#: stabs.c:3323
+#: stabs.c:3441
#, c-format
msgid "Type index number %d out of range\n"
msgstr ""
-#: stabs.c:3402
+#: stabs.c:3520
#, c-format
msgid "Unrecognized XCOFF type %d\n"
msgstr ""
-#: stabs.c:3695
+#: stabs.c:3813
#, c-format
msgid "bad mangled name `%s'\n"
msgstr ""
-#: stabs.c:3790
+#: stabs.c:3908
#, c-format
msgid "no argument types in mangled string\n"
msgstr ""
-#: stabs.c:5140
+#: stabs.c:5258
#, c-format
msgid "Demangled name is not a function\n"
msgstr ""
-#: stabs.c:5182
+#: stabs.c:5300
#, c-format
msgid "Unexpected type in v3 arglist demangling\n"
msgstr ""
-#: stabs.c:5254
+#: stabs.c:5372
#, c-format
msgid "Unrecognized demangle component %d\n"
msgstr ""
-#: stabs.c:5306
+#: stabs.c:5424
#, c-format
msgid "Failed to print demangled template\n"
msgstr ""
-#: stabs.c:5386
+#: stabs.c:5504
#, c-format
msgid "Couldn't get demangled builtin type\n"
msgstr ""
-#: stabs.c:5435
+#: stabs.c:5553
#, c-format
msgid "Unexpected demangled varargs\n"
msgstr ""
-#: stabs.c:5442
+#: stabs.c:5560
#, c-format
msgid "Unrecognized demangled builtin type\n"
msgstr ""
diff --git a/binutils/readelf.c b/binutils/readelf.c
index eecc05b..0c676f2 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -131,6 +131,7 @@
#include "elf/mt.h"
#include "elf/msp430.h"
#include "elf/nds32.h"
+#include "elf/nfp.h"
#include "elf/nios2.h"
#include "elf/or1k.h"
#include "elf/pj.h"
@@ -776,6 +777,7 @@ guess_is_rela (unsigned int e_machine)
case EM_CYGNUS_M32R:
case EM_SCORE:
case EM_XGATE:
+ case EM_NFP:
return FALSE;
/* Targets that use RELA relocations. */
@@ -1560,6 +1562,13 @@ dump_relocations (Filedata * filedata,
case EM_TI_PRU:
rtype = elf_pru_reloc_type (type);
break;
+
+ case EM_NFP:
+ if (EF_NFP_MACH (filedata->file_header.e_flags) == E_NFP_MACH_3200)
+ rtype = elf_nfp3200_reloc_type (type);
+ else
+ rtype = elf_nfp_reloc_type (type);
+ break;
}
if (rtype == NULL)
@@ -2472,6 +2481,7 @@ get_machine_name (unsigned e_machine)
case EM_RISCV: return "RISC-V";
case EM_LANAI: return "Lanai 32-bit processor";
case EM_BPF: return "Linux BPF";
+ case EM_NFP: return "Netronome Flow Processor";
/* Large numbers... */
case EM_MT: return "Morpho Techologies MT processor";
@@ -3440,6 +3450,18 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
decode_NDS32_machine_flags (e_flags, buf, sizeof buf);
break;
+ case EM_NFP:
+ switch (EF_NFP_MACH (e_flags))
+ {
+ case E_NFP_MACH_3200:
+ strcat (buf, ", NFP-32xx");
+ break;
+ case E_NFP_MACH_6000:
+ strcat (buf, ", NFP-6xxx");
+ break;
+ }
+ break;
+
case EM_RISCV:
if (e_flags & EF_RISCV_RVC)
strcat (buf, ", RVC");
@@ -4136,6 +4158,18 @@ get_msp430x_section_type_name (unsigned int sh_type)
}
static const char *
+get_nfp_section_type_name (unsigned int sh_type)
+{
+ switch (sh_type)
+ {
+ case SHT_NFP_MECONFIG: return "NFP_MECONFIG";
+ case SHT_NFP_INITREG: return "NFP_INITREG";
+ case SHT_NFP_UDEBUG: return "NFP_UDEBUG";
+ default: return NULL;
+ }
+}
+
+static const char *
get_v850_section_type_name (unsigned int sh_type)
{
switch (sh_type)
@@ -4221,6 +4255,9 @@ get_section_type_name (Filedata * filedata, unsigned int sh_type)
case EM_MSP430:
result = get_msp430x_section_type_name (sh_type);
break;
+ case EM_NFP:
+ result = get_nfp_section_type_name (sh_type);
+ break;
case EM_V800:
case EM_V850:
case EM_CYGNUS_V850:
diff --git a/binutils/testsuite/binutils-all/nfp/objdump.exp b/binutils/testsuite/binutils-all/nfp/objdump.exp
new file mode 100644
index 0000000..3762d90
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nfp/objdump.exp
@@ -0,0 +1,52 @@
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+if {![istarget nfp*-*-*]} {
+ return
+}
+
+if {![is_remote host] && [which $OBJDUMP] == 0} then {
+ perror "$OBJDUMP does not exist"
+ return
+}
+
+send_user "Version [binutil_version $OBJDUMP]"
+
+set outfile "tmpdir/dump.out"
+
+set testname "NFP dissasembler NFP-6xxx instructions"
+set dumpfile "$srcdir/$subdir/test1.d"
+remote_exec host "${OBJDUMP} -d $srcdir/$subdir/test1_nfp6000.nffw" "" "/dev/null" "$outfile"
+if { [regexp_diff "${outfile}" "${dumpfile}"] } then {
+ fail $testname
+ return
+}
+
+set testname "NFP dissasembler options: no-pc,ctx4"
+set dumpfile "$srcdir/$subdir/test2_no-pc_ctx4.d"
+remote_exec host "${OBJDUMP} -M no-pc,ctx4 -d $srcdir/$subdir/test2_nfp6000.nffw" "" "/dev/null" "$outfile"
+if { [regexp_diff "${outfile}" "${dumpfile}"] } then {
+ fail $testname
+ return
+}
+
+set testname "NFP dissasembler options: ctx8"
+set dumpfile "$srcdir/$subdir/test2_ctx8.d"
+remote_exec host "${OBJDUMP} -M ctx8 -d $srcdir/$subdir/test2_nfp6000.nffw" "" "/dev/null" "$outfile"
+if { [regexp_diff "${outfile}" "${dumpfile}"] } then {
+ fail $testname
+ return
+}
diff --git a/binutils/testsuite/binutils-all/nfp/test1.d b/binutils/testsuite/binutils-all/nfp/test1.d
new file mode 100644
index 0000000..3915ed1
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nfp/test1.d
@@ -0,0 +1,973 @@
+
+.*: file format elf64-nfp
+
+
+Disassembly of section \.text\.i32\.me0:
+
+0000000000000000 <\.text\.i32\.me0>:
+ 0: 000540f0012cd000 \.0 immed\[gprA_0, 0x1234\]
+ 8: 0002c0f0012cd280 \.1 immed\[n\$reg_0, 0x1234\]
+ 10: 000220f0012cd281 \.2 immed\[n\$reg_1, 0x1234\]
+ 18: 000660f0012cd200 \.3 immed\[\*l\$index0, 0x1234\]
+ 20: 0007c0f0012cd220 \.4 immed\[\*l\$index1, 0x1234\]
+ 28: 000fa0f0012cd230 \.5 immed\[\*l\$index1\+\+, 0x1234\]
+ 30: 000f40f0012cd231 \.6 immed\[\*l\$index1--, 0x1234\]
+ 38: 0008c8f0012cd200 \.7 immed\[\*l\$index2, 0x1234\]
+ 40: 0000a8f0012cd210 \.8 immed\[\*l\$index2\+\+, 0x1234\]
+ 48: 000048f0012cd211 \.9 immed\[\*l\$index2--, 0x1234\]
+ 50: 000968f0012cd220 \.10 immed\[\*l\$index3, 0x1234\]
+ 58: 0007e0f0012cd203 \.11 immed\[\*l\$index0\[3\], 0x1234\]
+ 60: 000540f0012cd225 \.12 immed\[\*l\$index1\[5\], 0x1234\]
+ 68: 000b28f0012cd207 \.13 immed\[\*l\$index2\[7\], 0x1234\]
+ 70: 000de8f0012cd229 \.14 immed\[\*l\$index3\[9\], 0x1234\]
+ 78: 000000f00ff003ff \.15 immed\[gprB_0, 0xffff\]
+ 80: 000d60f220000bff \.16 immed_b1\[gprB_2, 0xff\]
+ 88: 000f60f6200007ff \.17 immed_b3\[gprB_1, 0xff\]
+ 90: 000080f080000f00 \.18 immed\[gprB_3, 0xffffffff\]
+ 98: 000100f086600f77 \.19 immed\[gprB_3, 0xffff9988\]
+ a0: 000940f0012cd180 \.20 immed\[\$xfer_0, 0x1234\]
+ a8: 000a00f0043c8581 \.21 immed\[\$xfer_1, 0x4321\]
+ b0: 000180f0056de1ce \.22 immed\[\$xfer_30, 0x5678\]
+ b8: 0007c0f0400e8401 \.23 immed_w0\[gprA_1, 0xa1\]
+ c0: 000440f4400e8802 \.24 immed_w1\[gprA_2, 0xa2\]
+ c8: 000d00f4000e8c03 \.25 immed\[gprA_3, 0xa3, <<16\]
+ d0: 000520f001200334 \.26 immed\[gprB_0, 0x1234\]
+ d8: 000fa0f0400007b1 \.27 immed_w0\[gprB_1, 0xb1\]
+ e0: 000c20f440000bb2 \.28 immed_w1\[gprB_2, 0xb2\]
+ e8: 000560f400000fb3 \.29 immed\[gprB_3, 0xb3, <<16\]
+ f0: 000660f200000fb3 \.30 immed\[gprB_3, 0xb3, <<8\]
+ f8: 0001b0f200000fb3 \.31 immed\[gprB_3, 0xb3, <<8\], predicate_cc
+ 100: 0001c2f200000fb3 \.32 immed\[gprB_3, 0xb3, <<8\], gpr_wrboth
+ 108: 000ba0a0300c2f00 \.33 alu\[--, --, B, 0xb\]
+ 110: 0005a081f200da00 \.34 alu_shf\[--, --, B, 0x16, <<1\]
+ 118: 000be081d2018600 \.35 alu_shf\[--, --, B, 0x21, <<3\]
+ 120: 000240801201b200 \.36 alu_shf\[--, --, B, 0x2c, <<31\]
+ 128: 000fa081f800da00 \.37 alu_shf\[\$xfer_0, --, B, 0x16, <<1\]
+ 130: 0009e081f840da00 \.38 alu_shf\[\$xfer_4, --, B, 0x16, <<1\]
+ 138: 00006081fc80da00 \.39 alu_shf\[\$xfer_24, --, B, 0x16, <<1\]
+ 140: 000a2081fcf0da00 \.40 alu_shf\[\$xfer_31, --, B, 0x16, <<1\]
+ 148: 0004a0a0280c2f00 \.41 alu\[n\$reg_0, --, B, 0xb\]
+ 150: 0001e0a0281c2f00 \.42 alu\[n\$reg_1, --, B, 0xb\]
+ 158: 000880a0a00c2400 \.43 alu\[\*l\$index0, gprA_0, \+, 0x9\]
+ 160: 000100a0a43c2400 \.44 alu\[\*n\$index\+\+, gprA_0, \+, 0x9\]
+ 168: 000b208bc500a600 \.45 alu_shf\[\*l\$index0, gprA_0, OR, 0x9, <<4\]
+ 170: 000b00a0a20c2400 \.46 alu\[\*l\$index1, gprA_0, \+, 0x9\]
+ 178: 000740a0a30c2400 \.47 alu\[\*l\$index1\+\+, gprA_0, \+, 0x9\]
+ 180: 000200a0a31c2400 \.48 alu\[\*l\$index1--, gprA_0, \+, 0x9\]
+ 188: 000628a0a00c2400 \.49 alu\[\*l\$index2, gprA_0, \+, 0x9\]
+ 190: 000988aa210c2400 \.50 alu\[\*l\$index2\+\+, gprA_0, OR, 0x9\]
+ 198: 000f28a0a11c2400 \.51 alu\[\*l\$index2--, gprA_0, \+, 0x9\]
+ 1a0: 0005a8a0a20c2400 \.52 alu\[\*l\$index3, gprA_0, \+, 0x9\]
+ 1a8: 000480a0a03c2400 \.53 alu\[\*l\$index0\[3\], gprA_0, \+, 0x9\]
+ 1b0: 000800a0a25c2400 \.54 alu\[\*l\$index1\[5\], gprA_0, \+, 0x9\]
+ 1b8: 000c68a0a07c2400 \.55 alu\[\*l\$index2\[7\], gprA_0, \+, 0x9\]
+ 1c0: 000aa8a0a29c2400 \.56 alu\[\*l\$index3\[9\], gprA_0, \+, 0x9\]
+ 1c8: 000cc4b0c008a400 \.57 alu\[gprB_0, \*l\$index3\[9\], \+, gprA_0\]
+ 1d0: 000fe4b0c008c000 \.58 alu\[gprB_0, \*l\$index3\+\+, \+, gprA_0\]
+ 1d8: 000ac4b0c008c400 \.59 alu\[gprB_0, \*l\$index3--, \+, gprA_0\]
+ 1e0: 000bc4b080000229 \.60 alu\[gprB_0, \*l\$index3\[9\], \+, gprB_0\]
+ 1e8: 000724b080000230 \.61 alu\[gprB_0, \*l\$index3\+\+, \+, gprB_0\]
+ 1f0: 0007c4b080000231 \.62 alu\[gprB_0, \*l\$index3--, \+, gprB_0\]
+ 1f8: 000664b080000211 \.63 alu\[gprB_0, \*l\$index2--, \+, gprB_0\]
+ 200: 000a60b080000231 \.64 alu\[gprB_0, \*l\$index1--, \+, gprB_0\]
+ 208: 000bc0b080000211 \.65 alu\[gprB_0, \*l\$index0--, \+, gprB_0\]
+ 210: 000340b080000200 \.66 alu\[gprB_0, \*l\$index0, \+, gprB_0\]
+ 218: 000ee4b080000200 \.67 alu\[gprB_0, \*l\$index2, \+, gprB_0\]
+ 220: 000100b080000241 \.68 alu\[gprB_0, \*n\$index, \+, gprB_0\]
+ 228: 0004809bf0000241 \.69 alu_shf\[gprB_0, \*n\$index, OR, gprB_0, <<1\]
+ 230: 000f20a0001fff00 \.70 alu\[gprA_1, --, B, 0xff\]
+ 238: 0005c0b0002fff00 \.71 alu\[gprB_2, --, B, 0xff\]
+ 240: 000940a0000d6f00 \.72 alu\[gprA_0, --, B, 0x5b\]
+ 248: 000440a2000d6f00 \.73 alu\[gprA_0, --, ~B, 0x5b\]
+ 250: 000de081f032f200 \.74 alu_shf\[gprA_3, --, B, 0x5c, <<1\]
+ 258: 000de091d012f600 \.75 alu_shf\[gprB_1, --, B, 0x5d, <<3\]
+ 260: 000d60901022fa00 \.76 alu_shf\[gprB_2, --, B, 0x5e, <<31\]
+ 268: 000e40a0c0000402 \.77 alu\[gprA_0, gprB_1, \+, gprA_2\]
+ 270: 000340a2c0000402 \.78 alu\[gprA_0, gprB_1, \+16, gprA_2\]
+ 278: 000040a4c0000402 \.79 alu\[gprA_0, gprB_1, \+8, gprA_2\]
+ 280: 0007a0a8c0000402 \.80 alu\[gprA_0, gprB_1, \+carry, gprA_2\]
+ 288: 000d40a6c0000402 \.81 alu\[gprA_0, gprB_1, -carry, gprA_2\]
+ 290: 000aa0aac0000402 \.82 alu\[gprA_0, gprB_1, -, gprA_2\]
+ 298: 0009a0acc0000402 \.83 alu\[gprA_0, gprB_1, B-A, gprA_2\]
+ 2a0: 000da0aa40000402 \.84 alu\[gprA_0, gprB_1, OR, gprA_2\]
+ 2a8: 000740a440000402 \.85 alu\[gprA_0, gprB_1, AND, gprA_2\]
+ 2b0: 000a40a640000402 \.86 alu\[gprA_0, gprB_1, ~AND, gprA_2\]
+ 2b8: 0000a0a840000402 \.87 alu\[gprA_0, gprB_1, AND~, gprA_2\]
+ 2c0: 000ea0ac40000402 \.88 alu\[gprA_0, gprB_1, XOR, gprA_2\]
+ 2c8: 000321a0c0000402 \.89 alu\[gprA_0, gprB_1, \+, gprA_2\], no_cc
+ 2d0: 000990a0c0000402 \.90 alu\[gprA_0, gprB_1, \+, gprA_2\], predicate_cc
+ 2d8: 0009e2a0c0000402 \.91 alu\[gprA_0, gprB_1, \+, gprA_2\], gpr_wrboth
+ 2e0: 000353a0c0000402 \.92 alu\[gprA_0, gprB_1, \+, gprA_2\], no_cc, gpr_wrboth, predicate_cc
+ 2e8: 000d418b70080602 \.93 alu_shf\[gprA_0, gprB_1, OR, gprA_2, <<9\], no_cc
+ 2f0: 0006708a90080502 \.94 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>9\], predicate_cc
+ 2f8: 000ea28a90080402 \.95 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>rot9\], gpr_wrboth
+ 300: 000e138b70080402 \.96 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>rot23\], no_cc, gpr_wrboth, predicate_cc
+ 308: 000ba08a00080602 \.97 alu_shf\[gprA_0, gprB_1, OR, gprA_2, <<indirect\]
+ 310: 0000208a00080502 \.98 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>indirect\]
+ 318: 000ba0a0300c2f00 \.99 alu\[--, --, B, 0xb\]
+ 320: 000ae09d40380101 \.100 asr\[gprB_3, gprA_1, >>20\]
+ 328: 000ba0a0300c2f00 \.101 alu\[--, --, B, 0xb\]
+ 330: 000ea09d40310500 \.102 asr\[gprB_3, \*n\$index, >>20\]
+ 338: 000ba0a0300c2f00 \.103 alu\[--, --, B, 0xb\]
+ 340: 0007a09d40314100 \.104 asr\[gprB_3, \*l\$index0, >>20\]
+ 348: 000ba0a0300c2f00 \.105 alu\[--, --, B, 0xb\]
+ 350: 0000249d40316100 \.106 asr\[gprB_3, \*l\$index3, >>20\]
+ 358: 000ba0a0300c2f00 \.107 alu\[--, --, B, 0xb\]
+ 360: 000a049d40314100 \.108 asr\[gprB_3, \*l\$index2, >>20\]
+ 368: 000ba0a0300c2f00 \.109 alu\[--, --, B, 0xb\]
+ 370: 0004a08d45010d00 \.110 asr\[\*l\$index0, \*n\$index\+\+, >>20\]
+ 378: 000ba0a0300c2f00 \.111 alu\[--, --, B, 0xb\]
+ 380: 000ee08d45810d00 \.112 asr\[\*l\$index1, \*n\$index\+\+, >>20\]
+ 388: 000ba0a0300c2f00 \.113 alu\[--, --, B, 0xb\]
+ 390: 000a088d45010d00 \.114 asr\[\*l\$index2, \*n\$index\+\+, >>20\]
+ 398: 000ba0a0300c2f00 \.115 alu\[--, --, B, 0xb\]
+ 3a0: 0007819d40380101 \.116 asr\[gprB_3, gprA_1, >>20\], no_cc
+ 3a8: 000ba0a0300c2f00 \.117 alu\[--, --, B, 0xb\]
+ 3b0: 000d309d40380101 \.118 asr\[gprB_3, gprA_1, >>20\], predicate_cc
+ 3b8: 000ba0a0300c2f00 \.119 alu\[--, --, B, 0xb\]
+ 3c0: 000ba28d40380101 \.120 asr\[gprA_3, gprA_1, >>20\], gpr_wrboth
+ 3c8: 0008c0d818c08120 \.121 beq\[\.99\]
+ 3d0: 000d00d877c08120 \.122 beq\[\.479\]
+ 3d8: 000440d877e08120 \.123 beq\[\.479\], defer\[2\]
+ 3e0: 000000f0000c0300 \.124 nop
+ 3e8: 000000f0000c0300 \.125 nop
+ 3f0: 000540d877c08021 \.126 bne\[\.479\]
+ 3f8: 0004c0d877c08022 \.127 bmi\[\.479\]
+ 400: 000420d877c08023 \.128 bpl\[\.479\]
+ 408: 0007c0d877c08024 \.129 bcs\[\.479\]
+ 410: 0007c0d877c08024 \.130 bcs\[\.479\]
+ 418: 000720d877c08025 \.131 bcc\[\.479\]
+ 420: 000720d877c08025 \.132 bcc\[\.479\]
+ 428: 0006a0d877c08026 \.133 bvs\[\.479\]
+ 430: 000640d877c08027 \.134 bvc\[\.479\]
+ 438: 0001c0d877c08028 \.135 bge\[\.479\]
+ 440: 000120d877c08029 \.136 blt\[\.479\]
+ 448: 000040d877c0802b \.137 bgt\[\.479\]
+ 450: 0000a0d877c0802a \.138 ble\[\.479\]
+ 458: 000c60d818c08038 \.139 br\[\.99\]
+ 460: 000920d818d08038 \.140 br\[\.99\], defer\[1\]
+ 468: 000000f0000c0300 \.141 nop
+ 470: 000bc0d077c09000 \.142 br_bclr\[gprA_0, 3, \.479\]
+ 478: 000980d077c0e004 \.143 br_bclr\[gprA_4, 23, \.479\]
+ 480: 0002a0d077c0082c \.144 br_bclr\[gprB_2, 11, \.479\]
+ 488: 000300d077c02423 \.145 br_bclr\[gprB_9, 2, \.479\]
+ 490: 000260d077c02421 \.146 br_bclr\[gprB_9, 0, \.479\]
+ 498: 000280d077c02420 \.147 br_bclr\[gprB_9, 31, \.479\]
+ 4a0: 000f00d077f02423 \.148 br_bclr\[gprB_9, 2, \.479\], defer\[3\]
+ 4a8: 000000f0000c0300 \.149 nop
+ 4b0: 000000f0000c0300 \.150 nop
+ 4b8: 000000f0000c0300 \.151 nop
+ 4c0: 000680d077c42c2b \.152 br_bset\[gprB_11, 10, \.479\]
+ 4c8: 0006e0d077c4ac0b \.153 br_bset\[gprA_11, 10, \.479\]
+ 4d0: 0002a0c877d81020 \.154 br=byte\[gprB_4, 0, 0x0, \.479\], defer\[1\]
+ 4d8: 000000f0000c0300 \.155 nop
+ 4e0: 000a60c877c81520 \.156 br=byte\[gprB_5, 1, 0x0, \.479\]
+ 4e8: 0001e0c877c81620 \.157 br=byte\[gprB_5, 2, 0x0, \.479\]
+ 4f0: 0001a4c877c94220 \.158 br=byte\[\*l\$index2, 2, 0x0, \.479\]
+ 4f8: 000620c877c96220 \.159 br=byte\[\*l\$index1, 2, 0x0, \.479\]
+ 500: 000540c877c81b20 \.160 br=byte\[gprB_6, 3, 0x0, \.479\]
+ 508: 0000c0c877cc16ff \.161 br=byte\[gprB_5, 2, 0xff, \.479\]
+ 510: 000420c877c816a2 \.162 br=byte\[gprB_5, 2, 0x42, \.479\]
+ 518: 000380c877c416ff \.163 br!=byte\[gprB_5, 2, 0xff, \.479\]
+ 520: 0002a0c877c01620 \.164 br!=byte\[gprB_5, 2, 0x0, \.479\]
+ 528: 000c20d877c00236 \.165 br_cls_state\[cls_ring0_status, \.479\]
+ 530: 0001a0d877e20236 \.166 br_cls_state\[cls_ring8_status, \.479\], defer\[2\]
+ 538: 000000f0000c0300 \.167 nop
+ 540: 000000f0000c0300 \.168 nop
+ 548: 000be0d877c38236 \.169 br_cls_state\[cls_ring14_status, \.479\]
+ 550: 0007c0d877c3c236 \.170 br_cls_state\[cls_ring15_status, \.479\]
+ 558: 000720d877c3c237 \.171 br_!cls_state\[cls_ring15_status, \.479\]
+ 560: 000cc0d877c00237 \.172 br_!cls_state\[cls_ring0_status, \.479\]
+ 568: 000c00d877c00030 \.173 br=ctx\[0, \.479\]
+ 570: 000dc0d877c08030 \.174 br=ctx\[2, \.479\]
+ 578: 000f00d877c18030 \.175 br=ctx\[6, \.479\]
+ 580: 000a40d877d18030 \.176 br=ctx\[6, \.479\], defer\[1\]
+ 588: 000000f0000c0300 \.177 nop
+ 590: 000d40d877c00234 \.178 br_inp_state\[nn_empty, \.479\]
+ 598: 000160d877c04234 \.179 br_inp_state\[nn_full, \.479\]
+ 5a0: 000c80d877c08234 \.180 br_inp_state\[ctm_ring0_status, \.479\]
+ 5a8: 000100d877e28234 \.181 br_inp_state\[ctm_ring8_status, \.479\], defer\[2\]
+ 5b0: 000000f0000c0300 \.182 nop
+ 5b8: 000000f0000c0300 \.183 nop
+ 5c0: 000a80d877c38234 \.184 br_inp_state\[ctm_ring12_status, \.479\]
+ 5c8: 0006a0d877c3c234 \.185 br_inp_state\[ctm_ring13_status, \.479\]
+ 5d0: 000640d877c3c235 \.186 br_!inp_state\[ctm_ring13_status, \.479\]
+ 5d8: 000c60d877c08235 \.187 br_!inp_state\[ctm_ring0_status, \.479\]
+ 5e0: 000260d877c04232 \.188 br_signal\[1, \.479\]
+ 5e8: 000f80d877c08232 \.189 br_signal\[2, \.479\]
+ 5f0: 0005a0d877c3c232 \.190 br_signal\[15, \.479\]
+ 5f8: 000540d877c3c233 \.191 br_!signal\[15, \.479\]
+ 600: 000b60d877f2c232 \.192 br_signal\[11, \.479\], defer\[3\]
+ 608: 000000f0000c0300 \.193 nop
+ 610: 000000f0000c0300 \.194 nop
+ 618: 000000f0000c0300 \.195 nop
+ 620: 000e40a0c0000402 \.196 alu\[gprA_0, gprB_1, \+, gprA_2\]
+ 628: 0004408e02081200 \.197 byte_align_le\[--, gprB_4\]
+ 630: 0008c08e00981200 \.198 byte_align_le\[gprA_9, gprB_4\]
+ 638: 0004c08e00a81200 \.199 byte_align_le\[gprA_10, gprB_4\]
+ 640: 0001808e00b81200 \.200 byte_align_le\[gprA_11, gprB_4\]
+ 648: 000e40a0c0000402 \.201 alu\[gprA_0, gprB_1, \+, gprA_2\]
+ 650: 000c808e02001100 \.202 byte_align_be\[--, gprB_4\]
+ 658: 0000008e00901100 \.203 byte_align_be\[gprA_9, gprB_4\]
+ 660: 000c008e00a01100 \.204 byte_align_be\[gprA_10, gprB_4\]
+ 668: 0009408e00b01100 \.205 byte_align_be\[gprA_11, gprB_4\]
+ 670: 000d80a0300c0300 \.206 alu\[--, --, B, 0x0\]
+ 678: 000400a5b00c0000 \.207 cam_clear
+ 680: 000360bb80900007 \.208 cam_lookup\[gprB_9, gprA_7\]
+ 688: 0003a0bb80900200 \.209 cam_lookup\[gprB_9, \*l\$index0\]
+ 690: 000e04bb80900200 \.210 cam_lookup\[gprB_9, \*l\$index2\]
+ 698: 000f84bb80900203 \.211 cam_lookup\[gprB_9, \*l\$index2\[3\]\]
+ 6a0: 000bc0bb80900210 \.212 cam_lookup\[gprB_9, \*l\$index0\+\+\]
+ 6a8: 000280aba0000241 \.213 cam_lookup\[\*l\$index0, \*n\$index\]
+ 6b0: 000ec0aba1000241 \.214 cam_lookup\[\*l\$index0\+\+, \*n\$index\]
+ 6b8: 000288aba3000243 \.215 cam_lookup\[\*l\$index3\+\+, \*n\$index\+\+\]
+ 6c0: 000aa0aba0200243 \.216 cam_lookup\[\*l\$index0\[2\], \*n\$index\+\+\]
+ 6c8: 000060bb80901407 \.217 cam_lookup\[gprB_9, gprA_7\], lm_addr0\[1\]
+ 6d0: 000060bb80902807 \.218 cam_lookup\[gprB_9, gprA_7\], lm_addr1\[2\]
+ 6d8: 000660bb80907407 \.219 cam_lookup\[gprB_9, gprA_7\], lm_addr2\[3\]
+ 6e0: 000660bb80904807 \.220 cam_lookup\[gprB_9, gprA_7\], lm_addr3\[0\]
+ 6e8: 000222ab80900007 \.221 cam_lookup\[gprA_9, gprA_7\], gpr_wrboth
+ 6f0: 0004b0bb80900007 \.222 cam_lookup\[gprB_9, gprA_7\], predicate_cc
+ 6f8: 000a00a7809c0000 \.223 cam_read_tag\[gprA_9, 0x0\]
+ 700: 000da2a7809c0000 \.224 cam_read_tag\[gprA_9, 0x0\], gpr_wrboth
+ 708: 000dd0a7809c0000 \.225 cam_read_tag\[gprA_9, 0x0\], predicate_cc
+ 710: 000900a7809c2800 \.226 cam_read_tag\[gprA_9, 0xa\]
+ 718: 000a00a7809c3c00 \.227 cam_read_tag\[gprA_9, 0xf\]
+ 720: 0003e0af809c0000 \.228 cam_read_state\[gprA_9, 0x0\]
+ 728: 000442af809c0000 \.229 cam_read_state\[gprA_9, 0x0\], gpr_wrboth
+ 730: 000392af809c0000 \.230 cam_read_state\[gprA_9, 0x0\], gpr_wrboth, predicate_cc
+ 738: 0000e0af809c2800 \.231 cam_read_state\[gprA_9, 0xa\]
+ 740: 0003e0af809c3c00 \.232 cam_read_state\[gprA_9, 0xf\]
+ 748: 000920a9f0101700 \.233 cam_write\[0x0, gprB_5, 1\]
+ 750: 000da0a9f01a0300 \.234 cam_write\[0x0, n\$reg_0, 1\]
+ 758: 000e80a9f0190700 \.235 cam_write\[0x0, \*n\$index, 1\]
+ 760: 0004c4a9f0180300 \.236 cam_write\[0x0, \*l\$index2, 1\]
+ 768: 0008e4a9f0184300 \.237 cam_write\[0x0, \*l\$index2\+\+, 1\]
+ 770: 000dc4a9f0184700 \.238 cam_write\[0x0, \*l\$index2--, 1\]
+ 778: 000840a9f0b01704 \.239 cam_write\[0x4, gprB_5, 11\]
+ 780: 000be0a9f0f0170f \.240 cam_write\[0xf, gprB_5, 15\]
+ 788: 0008a0adb01c0000 \.241 cam_write_state\[0x0, 1\]
+ 790: 000d80adb0bc1000 \.242 cam_write_state\[0x4, 11\]
+ 798: 000de0adb0fc3c00 \.243 cam_write_state\[0xf, 15\]
+ 7a0: 0000c0fc142c000d \.244 local_csr_wr\[CRCRemainder, gprA_13\]
+ 7a8: 000d20a918060348 \.245 crc_le\[crc_ccitt, \$xfer_0, \$xfer_0\]
+ 7b0: 000000f0000c0300 \.246 nop
+ 7b8: 000d40a918160748 \.247 crc_le\[crc_ccitt, \$xfer_1, \$xfer_1\]
+ 7c0: 000000f0000c0300 \.248 nop
+ 7c8: 000d40a918260b48 \.249 crc_le\[crc_ccitt, \$xfer_2, \$xfer_2\]
+ 7d0: 000000f0000c0300 \.250 nop
+ 7d8: 000d20a918360f48 \.251 crc_le\[crc_ccitt, \$xfer_3, \$xfer_3\]
+ 7e0: 000000f0000c0300 \.252 nop
+ 7e8: 000000f0000c0300 \.253 nop
+ 7f0: 000000f0000c0300 \.254 nop
+ 7f8: 000000f0000c0300 \.255 nop
+ 800: 000000f0000c0300 \.256 nop
+ 808: 000f60fc140c0000 \.257 local_csr_rd\[CRCRemainder\]
+ 810: 000ce0f0000c000e \.258 immed\[gprA_14, 0x0\]
+ 818: 000940a918060340 \.259 crc_be\[crc_ccitt, \$xfer_0, \$xfer_0\]
+ 820: 000000f0000c0300 \.260 nop
+ 828: 000920a918461340 \.261 crc_be\[crc_ccitt, \$xfer_4, \$xfer_4\]
+ 830: 000000f0000c0300 \.262 nop
+ 838: 000060a900061340 \.263 crc_be\[crc_ccitt, gprA_0, \$xfer_4\]
+ 840: 000000f0000c0300 \.264 nop
+ 848: 000c60a900001340 \.265 crc_be\[crc_ccitt, gprA_0, gprB_4\]
+ 850: 000000f0000c0300 \.266 nop
+ 858: 000000f0000c0300 \.267 nop
+ 860: 000000f0000c0300 \.268 nop
+ 868: 000000f0000c0300 \.269 nop
+ 870: 000000f0000c0300 \.270 nop
+ 878: 000600a918260380 \.271 crc_be\[crc_32, \$xfer_2, \$xfer_0\]
+ 880: 000000f0000c0300 \.272 nop
+ 888: 0004c0a9183613a0 \.273 crc_be\[crc_iscsi, \$xfer_3, \$xfer_4\]
+ 890: 000000f0000c0300 \.274 nop
+ 898: 0004c0a9000613c0 \.275 crc_be\[crc_10, gprA_0, \$xfer_4\]
+ 8a0: 000000f0000c0300 \.276 nop
+ 8a8: 000960a9000013e0 \.277 crc_be\[crc_5, gprA_0, gprB_4\]
+ 8b0: 000000f0000c0300 \.278 nop
+ 8b8: 000ea0a918862700 \.279 crc_be\[--, \$xfer_8, \$xfer_9\]
+ 8c0: 000000f0000c0300 \.280 nop
+ 8c8: 000240a918760784 \.281 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_0_2
+ 8d0: 000000f0000c0300 \.282 nop
+ 8d8: 0002a0a918760785 \.283 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_0_1
+ 8e0: 000000f0000c0300 \.284 nop
+ 8e8: 000320a918760786 \.285 crc_be\[crc_32, \$xfer_7, \$xfer_1\], byte_0
+ 8f0: 000000f0000c0300 \.286 nop
+ 8f8: 0000c0a918760781 \.287 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_1_3
+ 900: 000000f0000c0300 \.288 nop
+ 908: 000140a918760782 \.289 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_2_3
+ 910: 000000f0000c0300 \.290 nop
+ 918: 0001a0a918760783 \.291 crc_be\[crc_32, \$xfer_7, \$xfer_1\], byte_3
+ 920: 000000f0000c0300 \.292 nop
+ 928: 000782a900160780 \.293 crc_be\[crc_32, gprA_1, \$xfer_1\], gpr_wrboth
+ 930: 000000f0000c0300 \.294 nop
+ 938: 000ae3a900160780 \.295 crc_be\[crc_32, gprA_1, \$xfer_1\], no_cc, gpr_wrboth
+ 940: 000000f0000c0300 \.296 nop
+ 948: 000b73a900560780 \.297 crc_be\[crc_32, gprA_5, \$xfer_1\], no_cc, gpr_wrboth, predicate_cc
+ 950: 000000f0000c0300 \.298 nop
+ 958: 000122a900560781 \.299 crc_be\[crc_32, gprA_5, \$xfer_1\], bytes_1_3, gpr_wrboth
+ 960: 000000f0000c0300 \.300 nop
+ 968: 000000f0000c0300 \.301 nop
+ 970: 000000f0000c0300 \.302 nop
+ 978: 000000f0000c0300 \.303 nop
+ 980: 000000f0000c0300 \.304 nop
+ 988: 000000f0000c0300 \.305 nop
+ 990: 0005a0e000080000 \.306 ctx_arb\[--\]
+ 998: 000600e000000001 \.307 ctx_arb\[voluntary\]
+ 9a0: 000220e000020000 \.308 ctx_arb\[bpt\]
+ 9a8: 000460e000000220 \.309 ctx_arb\[sig5, sig9\]
+ 9b0: 000d20e000200220 \.310 ctx_arb\[sig5, sig9\], defer\[2\]
+ 9b8: 000180a0300c0f00 \.311 alu\[--, --, B, 0x3\]
+ 9c0: 0007a0a0300c1f00 \.312 alu\[--, --, B, 0x7\]
+ 9c8: 0006a0e000010220 \.313 ctx_arb\[sig5, sig9\], any
+ 9d0: 000a60e077c40220 \.314 ctx_arb\[sig5, sig9\], br\[\.479\]
+ 9d8: 0006409010500701 \.315 dbl_shf\[gprB_5, gprA_1, gprB_1, >>1\]
+ 9e0: 000d4090a0500701 \.316 dbl_shf\[gprB_5, gprA_1, gprB_1, >>10\]
+ 9e8: 000c4091f0500701 \.317 dbl_shf\[gprB_5, gprA_1, gprB_1, >>31\]
+ 9f0: 000740a440000402 \.318 alu\[gprA_0, gprB_1, AND, gprA_2\]
+ 9f8: 0000c09000500701 \.319 dbl_shf\[gprB_5, gprA_1, gprB_1, >>indirect\]
+ a00: 000b219010500701 \.320 dbl_shf\[gprB_5, gprA_1, gprB_1, >>1\], no_cc
+ a08: 000cf19010500701 \.321 dbl_shf\[gprB_5, gprA_1, gprB_1, >>1\], no_cc, predicate_cc
+ a10: 0000d28010500701 \.322 dbl_shf\[gprA_5, gprA_1, gprB_1, >>1\], gpr_wrboth, predicate_cc
+ a18: 000200a700f03f00 \.323 ffs\[gprA_15, gprB_15\]
+ a20: 000fe0b740fc000f \.324 ffs\[gprB_15, gprA_15\]
+ a28: 000ec0b700f61300 \.325 ffs\[gprB_15, \$xfer_4\]
+ a30: 000660b700f88300 \.326 ffs\[gprB_15, \*l\$index1\]
+ a38: 0007e4b700f8c300 \.327 ffs\[gprB_15, \*l\$index3\+\+\]
+ a40: 0002c4b700f8c700 \.328 ffs\[gprB_15, \*l\$index3--\]
+ a48: 0004c4b700f8a700 \.329 ffs\[gprB_15, \*l\$index3\[9\]\]
+ a50: 000880a720000300 \.330 ffs\[\*l\$index0, gprB_0\]
+ a58: 000108a722090700 \.331 ffs\[\*l\$index3, \*n\$index\]
+ a60: 000128a723190f00 \.332 ffs\[\*l\$index3--, \*n\$index\+\+\]
+ a68: 0003c3a740fc000f \.333 ffs\[gprA_15, gprA_15\], no_cc, gpr_wrboth
+ a70: 000972a740fc000f \.334 ffs\[gprA_15, gprA_15\], gpr_wrboth, predicate_cc
+ a78: 000320f0000c0803 \.335 immed\[gprA_3, 0x2\]
+ a80: 000480e8004d4803 \.336 jump\[gprA_3, \.338\]
+ a88: 0006a0d854408038 \.337 br\[\.337\]
+ a90: 000460f000002701 \.338 immed\[gprB_9, 0x1\]
+ a98: 0006a0d854408038 \.339 br\[\.337\]
+ aa0: 0005e0f000002702 \.340 immed\[gprB_9, 0x2\]
+ aa8: 0006a0d854408038 \.341 br\[\.337\]
+ ab0: 000500f000002703 \.342 immed\[gprB_9, 0x3\]
+ ab8: 0006a0d854408038 \.343 br\[\.337\]
+ ac0: 000040c001000000 \.344 ld_field\[gprA_0, 0001, gprB_0\]
+ ac8: 0007e2c001000000 \.345 ld_field\[gprA_0, 0001, gprB_0\], gpr_wrboth
+ ad0: 000e40c401000000 \.346 ld_field\[gprA_0, 0001, gprB_0\], load_cc
+ ad8: 000790c001000000 \.347 ld_field\[gprA_0, 0001, gprB_0\], predicate_cc
+ ae0: 0005c0c005000000 \.348 ld_field\[gprA_0, 0101, gprB_0\]
+ ae8: 000080c005100000 \.349 ld_field_w_clr\[gprA_0, 0101, gprB_0\]
+ af0: 0002a2c001100000 \.350 ld_field_w_clr\[gprA_0, 0001, gprB_0\], gpr_wrboth
+ af8: 000b00c401100000 \.351 ld_field_w_clr\[gprA_0, 0001, gprB_0\], load_cc
+ b00: 0002d0c001100000 \.352 ld_field_w_clr\[gprA_0, 0001, gprB_0\], predicate_cc
+ b08: 000fc0c00f000000 \.353 ld_field\[gprA_0, 1111, gprB_0\]
+ b10: 0005e0c1fb000200 \.354 ld_field\[gprA_0, 1011, gprB_0, <<1\]
+ b18: 000460c01b000100 \.355 ld_field\[gprA_0, 1011, gprB_0, >>1\]
+ b20: 000e60c1fb000100 \.356 ld_field\[gprA_0, 1011, gprB_0, >>31\]
+ b28: 000bc0c09b000000 \.357 ld_field\[gprA_0, 1011, gprB_0, >>rot9\]
+ b30: 000e80c09b100000 \.358 ld_field_w_clr\[gprA_0, 1011, gprB_0, >>rot9\]
+ b38: 0001c0c17b000000 \.359 ld_field\[gprA_0, 1011, gprB_0, >>rot23\]
+ b40: 0002c0c41b000000 \.360 ld_field\[gprA_0, 1011, gprB_0, >>rot1\], load_cc
+ b48: 000780c41b100000 \.361 ld_field_w_clr\[gprA_0, 1011, gprB_0, >>rot1\], load_cc
+ b50: 000400f0001f7c01 \.362 immed\[gprA_1, 0x1df\]
+ b58: 000200f0001007df \.363 immed\[gprB_1, 0x1df\]
+ b60: 0005a2f0001007df \.364 immed\[gprB_1, 0x1df\], gpr_wrboth
+ b68: 0005d0f0001007df \.365 immed\[gprB_1, 0x1df\], predicate_cc
+ b70: 000020fc010c0000 \.366 local_csr_rd\[ALUOut\]
+ b78: 000e60f0000c000b \.367 immed\[gprA_11, 0x0\]
+ b80: 000ce0fc160c0000 \.368 local_csr_rd\[MiscControl\]
+ b88: 000e60f0000c000b \.369 immed\[gprA_11, 0x0\]
+ b90: 000ae0fc076c0b02 \.370 local_csr_wr\[XferIndex, 0x2\]
+ b98: 0008a0fc076c0003 \.371 local_csr_wr\[XferIndex, gprA_3\]
+ ba0: 000520fc07600f00 \.372 local_csr_wr\[XferIndex, gprB_3\]
+ ba8: 000f20fc01a00f00 \.373 local_csr_wr\[CtxEnables, gprB_3\]
+ bb0: 000480f800000c02 \.374 mul_step\[gprA_2, gprB_3\], start
+ bb8: 000880f980000c02 \.375 mul_step\[gprA_2, gprB_3\], 32x32_step1
+ bc0: 000dc0f980100c02 \.376 mul_step\[gprA_2, gprB_3\], 32x32_step2
+ bc8: 0001c0f980200c02 \.377 mul_step\[gprA_2, gprB_3\], 32x32_step3
+ bd0: 000480f980300c02 \.378 mul_step\[gprA_2, gprB_3\], 32x32_step4
+ bd8: 000940f9804c0002 \.379 mul_step\[gprA_2, --\], 32x32_last
+ be0: 000ce0f9805c0003 \.380 mul_step\[gprA_3, --\], 32x32_last2
+ be8: 0001a0f800000802 \.381 mul_step\[gprA_2, gprB_2\], start
+ bf0: 000aa0f900000802 \.382 mul_step\[gprA_2, gprB_2\], 16x16_step1
+ bf8: 000fe0f900100802 \.383 mul_step\[gprA_2, gprB_2\], 16x16_step2
+ c00: 000f20f9004c0000 \.384 mul_step\[gprA_0, --\], 16x16_last
+ c08: 0001a0f800000802 \.385 mul_step\[gprA_2, gprB_2\], start
+ c10: 0006a0f880000802 \.386 mul_step\[gprA_2, gprB_2\], 24x8_step1
+ c18: 000320f8804c0000 \.387 mul_step\[gprA_0, --\], 24x8_last
+ c20: 0001a0f800000802 \.388 mul_step\[gprA_2, gprB_2\], start
+ c28: 0006a0f880000802 \.389 mul_step\[gprA_2, gprB_2\], 24x8_step1
+ c30: 0004f0f8804c0000 \.390 mul_step\[gprA_0, --\], 24x8_last, predicate_cc
+ c38: 0001a0f800000802 \.391 mul_step\[gprA_2, gprB_2\], start
+ c40: 0006a0f880000802 \.392 mul_step\[gprA_2, gprB_2\], 24x8_step1
+ c48: 0009e3f8804c0000 \.393 mul_step\[gprA_0, --\], 24x8_last, no_cc, gpr_wrboth
+ c50: 000b80a330000000 \.394 pop_count1\[gprB_0\]
+ c58: 000c80a3b0000000 \.395 pop_count2\[gprB_0\]
+ c60: 000d80a180000000 \.396 pop_count3\[gprA_0, gprB_0\]
+ c68: 000b80a330000000 \.397 pop_count1\[gprB_0\]
+ c70: 000c80a3b0000000 \.398 pop_count2\[gprB_0\]
+ c78: 000743a180000000 \.399 pop_count3\[gprA_0, gprB_0\], no_cc, gpr_wrboth
+ c80: 0004a4a330088000 \.400 pop_count1\[\*l\$index3\]
+ c88: 0003a4a3b0088000 \.401 pop_count2\[\*l\$index3\]
+ c90: 0000e5a1a438c000 \.402 pop_count3\[\*n\$index\+\+, \*l\$index3\+\+\], no_cc
+ c98: 000b80a330000000 \.403 pop_count1\[gprB_0\]
+ ca0: 000c80a3b0000000 \.404 pop_count2\[gprB_0\]
+ ca8: 000731a180000000 \.405 pop_count3\[gprA_0, gprB_0\], no_cc, predicate_cc
+ cb0: 000480e8000c0000 \.406 rtn\[gprA_0\]
+ cb8: 000620e8000a0700 \.407 rtn\[n\$reg_1\]
+ cc0: 000600e800088300 \.408 rtn\[\*l\$index1\]
+ cc8: 000a64e800080300 \.409 rtn\[\*l\$index2\]
+ cd0: 000dc0e800200300 \.410 rtn\[gprB_0\], defer\[2\]
+ cd8: 0008a0a0300c0700 \.411 alu\[--, --, B, 0x1\]
+ ce0: 0004a0a0300c0b00 \.412 alu\[--, --, B, 0x2\]
+ ce8: 000000f0000c0300 \.413 nop
+ cf0: 000000f0000c0300 \.414 nop
+ cf8: 000000f0000c0300 \.415 nop
+ d00: 000000f0000c0300 \.416 nop
+ d08: 0003501842300c09 \.417 arm\[read, \$xfer_3, gprA_9, gprB_3, 2\], ctx_swap\[sig4\]
+ d10: 0005501842302403 \.418 arm\[read, \$xfer_3, gprA_3, gprB_9, 2\], ctx_swap\[sig4\]
+ d18: 0004801842300c09 \.419 arm\[read, \$xfer_3, gprA_9, <<8, gprB_3, 2\], ctx_swap\[sig4\]
+ d20: 000f241842302403 \.420 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], ctx_swap\[sig4\]
+ d28: 0004a0a0300c0b00 \.421 alu\[--, --, B, 0x2\]
+ d30: 0008861842302403 \.422 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], indirect_ref, ctx_swap\[sig4\]
+ d38: 0004a0a0300c0b00 \.423 alu\[--, --, B, 0x2\]
+ d40: 000e8618e2302703 \.424 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], indirect_ref, sig_done\[sig14\]
+ d48: 0007841842302503 \.425 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], ctx_swap\[sig4\], defer\[1\]
+ d50: 0008a0a0300c0700 \.426 alu\[--, --, B, 0x1\]
+ d58: 000f101843c00c09 \.427 arm\[read, \$xfer_28, gprA_9, gprB_3, 2\], ctx_swap\[sig4\]
+ d60: 000910184e800c09 \.428 arm\[read, \$xfer_8, gprA_9, gprB_3, 8\], ctx_swap\[sig4\]
+ d68: 000a106440800c09 \.429 cls\[add, \$xfer_8, gprA_9, gprB_3, 1\], ctx_swap\[sig4\]
+ d70: 0000f0664080a009 \.430 cls\[sub, \$xfer_8, gprA_9, 0x8, 1\], ctx_swap\[sig4\]
+ d78: 000160644284a009 \.431 cls\[add64, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ d80: 000404664284a408 \.432 cls\[sub64, \$xfer_8, 0x9, <<8, gprA_8, 2\], ctx_swap\[sig4\]
+ d88: 0008a0a0300c0700 \.433 alu\[--, --, B, 0x1\]
+ d90: 00032c650340a708 \.434 cls\[add_imm, 0x14, 0x9, <<8, gprA_8, 2\]
+ d98: 0007506040880c09 \.435 cls\[swap/test_compare_write, \$xfer_8, gprA_9, gprB_3, 1\], ctx_swap\[sig4\]
+ da0: 00023c6500007f9a \.436 cls\[add_imm, 0x1f9a, --, 1\]
+ da8: 000038653c583f14 \.437 cls\[add_imm, 0xf14, 0xf16\]
+ db0: 000b54640013c30f \.438 cls\[add, \$xfer_1, 0xf00f, 1\]
+ db8: 0002901c10a08000 \.439 ct\[xpb_read, \$xfer_10, gprA_0, 0x0, 1\], ctx_swap\[sig1\]
+ dc0: 0007501e10a48000 \.440 ct\[reflect_read_sig_init, \$xfer_10, gprA_0, 0x0, 1\], ctx_swap\[sig1\]
+ dc8: 000a501c10a48000 \.441 ct\[ring_get, \$xfer_10, gprA_0, 0x0, 1\], ctx_swap\[sig1\]
+ dd0: 000000f0000c0300 \.442 nop
+ dd8: 000cc0474a80a009 \.443 mem\[add64, \$xfer_8, gprA_9, <<8, 0x8, 6\], ctx_swap\[sig4\]
+ de0: 000d40404280a009 \.444 mem\[read, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ de8: 000c405c4280a009 \.445 mem\[read32, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ df0: 000ea0554280a009 \.446 mem\[ctm\.pe_dma_to_memory_indirect/emem\.get/imem\.lb_bucket_read_local, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ df8: 0009204c408ca309 \.447 mem\[lock128/lock384, \$xfer_8, gprA_9, <<8, 0x8, 1\], sig_done\[sig4\]
+ e00: 000f20e000000030 \.448 ctx_arb\[sig4, sig5\]
+ e08: 0000a04c488ca309 \.449 mem\[lock256/lock512, \$xfer_8, gprA_9, <<8, 0x8, 5\], sig_done\[sig4\]
+ e10: 000f20e000000030 \.450 ctx_arb\[sig4, sig5\]
+ e18: 000ae04d4084a009 \.451 mem\[microq128_pop, \$xfer_8, gprA_9, <<8, 0x8, 1\], ctx_swap\[sig4\]
+ e20: 0002204d4080a009 \.452 mem\[microq128_get, \$xfer_8, gprA_9, <<8, 0x8, 1\], ctx_swap\[sig4\]
+ e28: 000ba04d4880a009 \.453 mem\[microq256_get, \$xfer_8, gprA_9, <<8, 0x8, 5\], ctx_swap\[sig4\]
+ e30: 0003805700028309 \.454 mem\[ctm\.pe_dma_from_memory_buffer/emem\.fast_journal/imem\.lb_push_stats_local, \$xfer_0, gprA_9, <<8, 0x40, 1\]
+ e38: 0005e04e4000a309 \.455 mem\[queue128_lock, \$xfer_0, gprA_9, <<8, 0x8, 1\], sig_done\[sig4\]
+ e40: 000f20e000000030 \.456 ctx_arb\[sig4, sig5\]
+ e48: 0001a04e0004a309 \.457 mem\[queue128_unlock, \$xfer_0, gprA_9, <<8, 0x8, 1\]
+ e50: 000c604e4800a309 \.458 mem\[queue256_lock, \$xfer_0, gprA_9, <<8, 0x8, 5\], sig_done\[sig4\]
+ e58: 000f20e000000030 \.459 ctx_arb\[sig4, sig5\]
+ e60: 0008204e0804a309 \.460 mem\[queue256_unlock, \$xfer_0, gprA_9, <<8, 0x8, 5\]
+ e68: 0008a05000001309 \.461 mem\[ctm\.packet_wait_packet_status/emem\.rd_qdesc/imem\.stats_log, \$xfer_0, gprA_9, <<8, gprB_4, 1\]
+ e70: 000b840092200c02 \.462 ila\[read, \$xfer_2, gprB_3, <<8, gprA_2, 2\], ctx_swap\[sig9\]
+ e78: 0005440182240f02 \.463 ila\[write_check_error, \$xfer_2, gprB_3, <<8, gprA_2, 2\], sig_done\[sig8\]
+ e80: 000d60e000000300 \.464 ctx_arb\[sig8, sig9\]
+ e88: 0007800410600000 \.465 nbi\[read, \$xfer_6, gprA_0, <<8, gprB_0, 1\], ctx_swap\[sig1\]
+ e90: 0002600c62000000 \.466 pcie\[read, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ e98: 0004c40d62000000 \.467 pcie\[write, \$xfer_0, gprB_0, <<8, gprA_0, 2\], ctx_swap\[sig6\]
+ ea0: 000d601462000000 \.468 crypto\[read, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ ea8: 0006601562000000 \.469 crypto\[write, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ eb0: 0000601662000000 \.470 crypto\[write_fifo, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ eb8: 000d840d60000050 \.471 pcie\[write, \$xfer_0, gprB_0, <<8, \*l\$index0, 1\], ctx_swap\[sig6\]
+ ec0: 0009e40d60000058 \.472 pcie\[write, \$xfer_0, gprB_0, <<8, \*l\$index1, 1\], ctx_swap\[sig6\]
+ ec8: 0009040d60000059 \.473 pcie\[write, \$xfer_0, gprB_0, <<8, \*l\$index1\[1\], 1\], ctx_swap\[sig6\]
+ ed0: 000000f0000c0300 \.474 nop
+ ed8: 000000f0000c0300 \.475 nop
+ ee0: 000000f0000c0300 \.476 nop
+ ee8: 000000f0000c0300 \.477 nop
+ ef0: 000000f0000c0300 \.478 nop
+ ef8: 000220e000020000 \.479 ctx_arb\[bpt\]
+ f00: 000420e000010000 \.480 ctx_arb\[kill\]
+
+Disassembly of section \.text\.i33\.me9:
+
+0000000000000000 <\.text\.i33\.me9>:
+ 0: 000540f0012cd000 \.0 immed\[gprA_0, 0x1234\]
+ 8: 0002c0f0012cd280 \.1 immed\[n\$reg_0, 0x1234\]
+ 10: 000220f0012cd281 \.2 immed\[n\$reg_1, 0x1234\]
+ 18: 000660f0012cd200 \.3 immed\[\*l\$index0, 0x1234\]
+ 20: 0007c0f0012cd220 \.4 immed\[\*l\$index1, 0x1234\]
+ 28: 000fa0f0012cd230 \.5 immed\[\*l\$index1\+\+, 0x1234\]
+ 30: 000f40f0012cd231 \.6 immed\[\*l\$index1--, 0x1234\]
+ 38: 0008c8f0012cd200 \.7 immed\[\*l\$index2, 0x1234\]
+ 40: 0000a8f0012cd210 \.8 immed\[\*l\$index2\+\+, 0x1234\]
+ 48: 000048f0012cd211 \.9 immed\[\*l\$index2--, 0x1234\]
+ 50: 000968f0012cd220 \.10 immed\[\*l\$index3, 0x1234\]
+ 58: 0007e0f0012cd203 \.11 immed\[\*l\$index0\[3\], 0x1234\]
+ 60: 000540f0012cd225 \.12 immed\[\*l\$index1\[5\], 0x1234\]
+ 68: 000b28f0012cd207 \.13 immed\[\*l\$index2\[7\], 0x1234\]
+ 70: 000de8f0012cd229 \.14 immed\[\*l\$index3\[9\], 0x1234\]
+ 78: 000000f00ff003ff \.15 immed\[gprB_0, 0xffff\]
+ 80: 000d60f220000bff \.16 immed_b1\[gprB_2, 0xff\]
+ 88: 000f60f6200007ff \.17 immed_b3\[gprB_1, 0xff\]
+ 90: 000080f080000f00 \.18 immed\[gprB_3, 0xffffffff\]
+ 98: 000100f086600f77 \.19 immed\[gprB_3, 0xffff9988\]
+ a0: 000940f0012cd180 \.20 immed\[\$xfer_0, 0x1234\]
+ a8: 000a00f0043c8581 \.21 immed\[\$xfer_1, 0x4321\]
+ b0: 000b40f0056de19e \.22 immed\[\$xfer_30, 0x5678\]
+ b8: 0007c0f0400e8401 \.23 immed_w0\[gprA_1, 0xa1\]
+ c0: 000440f4400e8802 \.24 immed_w1\[gprA_2, 0xa2\]
+ c8: 000d00f4000e8c03 \.25 immed\[gprA_3, 0xa3, <<16\]
+ d0: 000520f001200334 \.26 immed\[gprB_0, 0x1234\]
+ d8: 000fa0f0400007b1 \.27 immed_w0\[gprB_1, 0xb1\]
+ e0: 000c20f440000bb2 \.28 immed_w1\[gprB_2, 0xb2\]
+ e8: 000560f400000fb3 \.29 immed\[gprB_3, 0xb3, <<16\]
+ f0: 000660f200000fb3 \.30 immed\[gprB_3, 0xb3, <<8\]
+ f8: 0001b0f200000fb3 \.31 immed\[gprB_3, 0xb3, <<8\], predicate_cc
+ 100: 0001c2f200000fb3 \.32 immed\[gprB_3, 0xb3, <<8\], gpr_wrboth
+ 108: 000ba0a0300c2f00 \.33 alu\[--, --, B, 0xb\]
+ 110: 0005a081f200da00 \.34 alu_shf\[--, --, B, 0x16, <<1\]
+ 118: 000be081d2018600 \.35 alu_shf\[--, --, B, 0x21, <<3\]
+ 120: 000240801201b200 \.36 alu_shf\[--, --, B, 0x2c, <<31\]
+ 128: 000fa081f800da00 \.37 alu_shf\[\$xfer_0, --, B, 0x16, <<1\]
+ 130: 0009e081f840da00 \.38 alu_shf\[\$xfer_4, --, B, 0x16, <<1\]
+ 138: 0009a081f980da00 \.39 alu_shf\[\$xfer_24, --, B, 0x16, <<1\]
+ 140: 0003e081f9f0da00 \.40 alu_shf\[\$xfer_31, --, B, 0x16, <<1\]
+ 148: 0004a0a0280c2f00 \.41 alu\[n\$reg_0, --, B, 0xb\]
+ 150: 0001e0a0281c2f00 \.42 alu\[n\$reg_1, --, B, 0xb\]
+ 158: 000880a0a00c2400 \.43 alu\[\*l\$index0, gprA_0, \+, 0x9\]
+ 160: 000100a0a43c2400 \.44 alu\[\*n\$index\+\+, gprA_0, \+, 0x9\]
+ 168: 000b208bc500a600 \.45 alu_shf\[\*l\$index0, gprA_0, OR, 0x9, <<4\]
+ 170: 000b00a0a20c2400 \.46 alu\[\*l\$index1, gprA_0, \+, 0x9\]
+ 178: 000740a0a30c2400 \.47 alu\[\*l\$index1\+\+, gprA_0, \+, 0x9\]
+ 180: 000200a0a31c2400 \.48 alu\[\*l\$index1--, gprA_0, \+, 0x9\]
+ 188: 000628a0a00c2400 \.49 alu\[\*l\$index2, gprA_0, \+, 0x9\]
+ 190: 000988aa210c2400 \.50 alu\[\*l\$index2\+\+, gprA_0, OR, 0x9\]
+ 198: 000f28a0a11c2400 \.51 alu\[\*l\$index2--, gprA_0, \+, 0x9\]
+ 1a0: 0005a8a0a20c2400 \.52 alu\[\*l\$index3, gprA_0, \+, 0x9\]
+ 1a8: 000480a0a03c2400 \.53 alu\[\*l\$index0\[3\], gprA_0, \+, 0x9\]
+ 1b0: 000800a0a25c2400 \.54 alu\[\*l\$index1\[5\], gprA_0, \+, 0x9\]
+ 1b8: 000c68a0a07c2400 \.55 alu\[\*l\$index2\[7\], gprA_0, \+, 0x9\]
+ 1c0: 000aa8a0a29c2400 \.56 alu\[\*l\$index3\[9\], gprA_0, \+, 0x9\]
+ 1c8: 000cc4b0c008a400 \.57 alu\[gprB_0, \*l\$index3\[9\], \+, gprA_0\]
+ 1d0: 000fe4b0c008c000 \.58 alu\[gprB_0, \*l\$index3\+\+, \+, gprA_0\]
+ 1d8: 000ac4b0c008c400 \.59 alu\[gprB_0, \*l\$index3--, \+, gprA_0\]
+ 1e0: 000bc4b080000229 \.60 alu\[gprB_0, \*l\$index3\[9\], \+, gprB_0\]
+ 1e8: 000724b080000230 \.61 alu\[gprB_0, \*l\$index3\+\+, \+, gprB_0\]
+ 1f0: 0007c4b080000231 \.62 alu\[gprB_0, \*l\$index3--, \+, gprB_0\]
+ 1f8: 000664b080000211 \.63 alu\[gprB_0, \*l\$index2--, \+, gprB_0\]
+ 200: 000a60b080000231 \.64 alu\[gprB_0, \*l\$index1--, \+, gprB_0\]
+ 208: 000bc0b080000211 \.65 alu\[gprB_0, \*l\$index0--, \+, gprB_0\]
+ 210: 000340b080000200 \.66 alu\[gprB_0, \*l\$index0, \+, gprB_0\]
+ 218: 000ee4b080000200 \.67 alu\[gprB_0, \*l\$index2, \+, gprB_0\]
+ 220: 000100b080000241 \.68 alu\[gprB_0, \*n\$index, \+, gprB_0\]
+ 228: 0004809bf0000241 \.69 alu_shf\[gprB_0, \*n\$index, OR, gprB_0, <<1\]
+ 230: 000f20a0001fff00 \.70 alu\[gprA_1, --, B, 0xff\]
+ 238: 0005c0b0002fff00 \.71 alu\[gprB_2, --, B, 0xff\]
+ 240: 000940a0000d6f00 \.72 alu\[gprA_0, --, B, 0x5b\]
+ 248: 000440a2000d6f00 \.73 alu\[gprA_0, --, ~B, 0x5b\]
+ 250: 000de081f032f200 \.74 alu_shf\[gprA_3, --, B, 0x5c, <<1\]
+ 258: 000de091d012f600 \.75 alu_shf\[gprB_1, --, B, 0x5d, <<3\]
+ 260: 000d60901022fa00 \.76 alu_shf\[gprB_2, --, B, 0x5e, <<31\]
+ 268: 000e40a0c0000402 \.77 alu\[gprA_0, gprB_1, \+, gprA_2\]
+ 270: 000340a2c0000402 \.78 alu\[gprA_0, gprB_1, \+16, gprA_2\]
+ 278: 000040a4c0000402 \.79 alu\[gprA_0, gprB_1, \+8, gprA_2\]
+ 280: 0007a0a8c0000402 \.80 alu\[gprA_0, gprB_1, \+carry, gprA_2\]
+ 288: 000d40a6c0000402 \.81 alu\[gprA_0, gprB_1, -carry, gprA_2\]
+ 290: 000aa0aac0000402 \.82 alu\[gprA_0, gprB_1, -, gprA_2\]
+ 298: 0009a0acc0000402 \.83 alu\[gprA_0, gprB_1, B-A, gprA_2\]
+ 2a0: 000da0aa40000402 \.84 alu\[gprA_0, gprB_1, OR, gprA_2\]
+ 2a8: 000740a440000402 \.85 alu\[gprA_0, gprB_1, AND, gprA_2\]
+ 2b0: 000a40a640000402 \.86 alu\[gprA_0, gprB_1, ~AND, gprA_2\]
+ 2b8: 0000a0a840000402 \.87 alu\[gprA_0, gprB_1, AND~, gprA_2\]
+ 2c0: 000ea0ac40000402 \.88 alu\[gprA_0, gprB_1, XOR, gprA_2\]
+ 2c8: 000321a0c0000402 \.89 alu\[gprA_0, gprB_1, \+, gprA_2\], no_cc
+ 2d0: 000990a0c0000402 \.90 alu\[gprA_0, gprB_1, \+, gprA_2\], predicate_cc
+ 2d8: 0009e2a0c0000402 \.91 alu\[gprA_0, gprB_1, \+, gprA_2\], gpr_wrboth
+ 2e0: 000353a0c0000402 \.92 alu\[gprA_0, gprB_1, \+, gprA_2\], no_cc, gpr_wrboth, predicate_cc
+ 2e8: 000d418b70080602 \.93 alu_shf\[gprA_0, gprB_1, OR, gprA_2, <<9\], no_cc
+ 2f0: 0006708a90080502 \.94 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>9\], predicate_cc
+ 2f8: 000ea28a90080402 \.95 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>rot9\], gpr_wrboth
+ 300: 000e138b70080402 \.96 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>rot23\], no_cc, gpr_wrboth, predicate_cc
+ 308: 000ba08a00080602 \.97 alu_shf\[gprA_0, gprB_1, OR, gprA_2, <<indirect\]
+ 310: 0000208a00080502 \.98 alu_shf\[gprA_0, gprB_1, OR, gprA_2, >>indirect\]
+ 318: 000ba0a0300c2f00 \.99 alu\[--, --, B, 0xb\]
+ 320: 000ae09d40380101 \.100 asr\[gprB_3, gprA_1, >>20\]
+ 328: 000ba0a0300c2f00 \.101 alu\[--, --, B, 0xb\]
+ 330: 000ea09d40310500 \.102 asr\[gprB_3, \*n\$index, >>20\]
+ 338: 000ba0a0300c2f00 \.103 alu\[--, --, B, 0xb\]
+ 340: 0007a09d40314100 \.104 asr\[gprB_3, \*l\$index0, >>20\]
+ 348: 000ba0a0300c2f00 \.105 alu\[--, --, B, 0xb\]
+ 350: 0000249d40316100 \.106 asr\[gprB_3, \*l\$index3, >>20\]
+ 358: 000ba0a0300c2f00 \.107 alu\[--, --, B, 0xb\]
+ 360: 000a049d40314100 \.108 asr\[gprB_3, \*l\$index2, >>20\]
+ 368: 000ba0a0300c2f00 \.109 alu\[--, --, B, 0xb\]
+ 370: 0004a08d45010d00 \.110 asr\[\*l\$index0, \*n\$index\+\+, >>20\]
+ 378: 000ba0a0300c2f00 \.111 alu\[--, --, B, 0xb\]
+ 380: 000ee08d45810d00 \.112 asr\[\*l\$index1, \*n\$index\+\+, >>20\]
+ 388: 000ba0a0300c2f00 \.113 alu\[--, --, B, 0xb\]
+ 390: 000a088d45010d00 \.114 asr\[\*l\$index2, \*n\$index\+\+, >>20\]
+ 398: 000ba0a0300c2f00 \.115 alu\[--, --, B, 0xb\]
+ 3a0: 0007819d40380101 \.116 asr\[gprB_3, gprA_1, >>20\], no_cc
+ 3a8: 000ba0a0300c2f00 \.117 alu\[--, --, B, 0xb\]
+ 3b0: 000d309d40380101 \.118 asr\[gprB_3, gprA_1, >>20\], predicate_cc
+ 3b8: 000ba0a0300c2f00 \.119 alu\[--, --, B, 0xb\]
+ 3c0: 000ba28d40380101 \.120 asr\[gprA_3, gprA_1, >>20\], gpr_wrboth
+ 3c8: 0008c0d818c08120 \.121 beq\[\.99\]
+ 3d0: 000d00d877c08120 \.122 beq\[\.479\]
+ 3d8: 000440d877e08120 \.123 beq\[\.479\], defer\[2\]
+ 3e0: 000000f0000c0300 \.124 nop
+ 3e8: 000000f0000c0300 \.125 nop
+ 3f0: 000540d877c08021 \.126 bne\[\.479\]
+ 3f8: 0004c0d877c08022 \.127 bmi\[\.479\]
+ 400: 000420d877c08023 \.128 bpl\[\.479\]
+ 408: 0007c0d877c08024 \.129 bcs\[\.479\]
+ 410: 0007c0d877c08024 \.130 bcs\[\.479\]
+ 418: 000720d877c08025 \.131 bcc\[\.479\]
+ 420: 000720d877c08025 \.132 bcc\[\.479\]
+ 428: 0006a0d877c08026 \.133 bvs\[\.479\]
+ 430: 000640d877c08027 \.134 bvc\[\.479\]
+ 438: 0001c0d877c08028 \.135 bge\[\.479\]
+ 440: 000120d877c08029 \.136 blt\[\.479\]
+ 448: 000040d877c0802b \.137 bgt\[\.479\]
+ 450: 0000a0d877c0802a \.138 ble\[\.479\]
+ 458: 000c60d818c08038 \.139 br\[\.99\]
+ 460: 000920d818d08038 \.140 br\[\.99\], defer\[1\]
+ 468: 000000f0000c0300 \.141 nop
+ 470: 000bc0d077c09000 \.142 br_bclr\[gprA_0, 3, \.479\]
+ 478: 000980d077c0e004 \.143 br_bclr\[gprA_4, 23, \.479\]
+ 480: 0002a0d077c0082c \.144 br_bclr\[gprB_2, 11, \.479\]
+ 488: 000300d077c02423 \.145 br_bclr\[gprB_9, 2, \.479\]
+ 490: 000260d077c02421 \.146 br_bclr\[gprB_9, 0, \.479\]
+ 498: 000280d077c02420 \.147 br_bclr\[gprB_9, 31, \.479\]
+ 4a0: 000f00d077f02423 \.148 br_bclr\[gprB_9, 2, \.479\], defer\[3\]
+ 4a8: 000000f0000c0300 \.149 nop
+ 4b0: 000000f0000c0300 \.150 nop
+ 4b8: 000000f0000c0300 \.151 nop
+ 4c0: 000680d077c42c2b \.152 br_bset\[gprB_11, 10, \.479\]
+ 4c8: 0006e0d077c4ac0b \.153 br_bset\[gprA_11, 10, \.479\]
+ 4d0: 0002a0c877d81020 \.154 br=byte\[gprB_4, 0, 0x0, \.479\], defer\[1\]
+ 4d8: 000000f0000c0300 \.155 nop
+ 4e0: 000a60c877c81520 \.156 br=byte\[gprB_5, 1, 0x0, \.479\]
+ 4e8: 0001e0c877c81620 \.157 br=byte\[gprB_5, 2, 0x0, \.479\]
+ 4f0: 0001a4c877c94220 \.158 br=byte\[\*l\$index2, 2, 0x0, \.479\]
+ 4f8: 000620c877c96220 \.159 br=byte\[\*l\$index1, 2, 0x0, \.479\]
+ 500: 000540c877c81b20 \.160 br=byte\[gprB_6, 3, 0x0, \.479\]
+ 508: 0000c0c877cc16ff \.161 br=byte\[gprB_5, 2, 0xff, \.479\]
+ 510: 000420c877c816a2 \.162 br=byte\[gprB_5, 2, 0x42, \.479\]
+ 518: 000380c877c416ff \.163 br!=byte\[gprB_5, 2, 0xff, \.479\]
+ 520: 0002a0c877c01620 \.164 br!=byte\[gprB_5, 2, 0x0, \.479\]
+ 528: 000c20d877c00236 \.165 br_cls_state\[cls_ring0_status, \.479\]
+ 530: 0001a0d877e20236 \.166 br_cls_state\[cls_ring8_status, \.479\], defer\[2\]
+ 538: 000000f0000c0300 \.167 nop
+ 540: 000000f0000c0300 \.168 nop
+ 548: 000be0d877c38236 \.169 br_cls_state\[cls_ring14_status, \.479\]
+ 550: 0007c0d877c3c236 \.170 br_cls_state\[cls_ring15_status, \.479\]
+ 558: 000720d877c3c237 \.171 br_!cls_state\[cls_ring15_status, \.479\]
+ 560: 000cc0d877c00237 \.172 br_!cls_state\[cls_ring0_status, \.479\]
+ 568: 000c00d877c00030 \.173 br=ctx\[0, \.479\]
+ 570: 000dc0d877c08030 \.174 br=ctx\[2, \.479\]
+ 578: 000f00d877c18030 \.175 br=ctx\[6, \.479\]
+ 580: 000a40d877d18030 \.176 br=ctx\[6, \.479\], defer\[1\]
+ 588: 000000f0000c0300 \.177 nop
+ 590: 000d40d877c00234 \.178 br_inp_state\[nn_empty, \.479\]
+ 598: 000160d877c04234 \.179 br_inp_state\[nn_full, \.479\]
+ 5a0: 000c80d877c08234 \.180 br_inp_state\[ctm_ring0_status, \.479\]
+ 5a8: 000100d877e28234 \.181 br_inp_state\[ctm_ring8_status, \.479\], defer\[2\]
+ 5b0: 000000f0000c0300 \.182 nop
+ 5b8: 000000f0000c0300 \.183 nop
+ 5c0: 000a80d877c38234 \.184 br_inp_state\[ctm_ring12_status, \.479\]
+ 5c8: 0006a0d877c3c234 \.185 br_inp_state\[ctm_ring13_status, \.479\]
+ 5d0: 000640d877c3c235 \.186 br_!inp_state\[ctm_ring13_status, \.479\]
+ 5d8: 000c60d877c08235 \.187 br_!inp_state\[ctm_ring0_status, \.479\]
+ 5e0: 000260d877c04232 \.188 br_signal\[1, \.479\]
+ 5e8: 000f80d877c08232 \.189 br_signal\[2, \.479\]
+ 5f0: 0005a0d877c3c232 \.190 br_signal\[15, \.479\]
+ 5f8: 000540d877c3c233 \.191 br_!signal\[15, \.479\]
+ 600: 000b60d877f2c232 \.192 br_signal\[11, \.479\], defer\[3\]
+ 608: 000000f0000c0300 \.193 nop
+ 610: 000000f0000c0300 \.194 nop
+ 618: 000000f0000c0300 \.195 nop
+ 620: 000e40a0c0000402 \.196 alu\[gprA_0, gprB_1, \+, gprA_2\]
+ 628: 0004408e02081200 \.197 byte_align_le\[--, gprB_4\]
+ 630: 0008c08e00981200 \.198 byte_align_le\[gprA_9, gprB_4\]
+ 638: 0004c08e00a81200 \.199 byte_align_le\[gprA_10, gprB_4\]
+ 640: 0001808e00b81200 \.200 byte_align_le\[gprA_11, gprB_4\]
+ 648: 000e40a0c0000402 \.201 alu\[gprA_0, gprB_1, \+, gprA_2\]
+ 650: 000c808e02001100 \.202 byte_align_be\[--, gprB_4\]
+ 658: 0000008e00901100 \.203 byte_align_be\[gprA_9, gprB_4\]
+ 660: 000c008e00a01100 \.204 byte_align_be\[gprA_10, gprB_4\]
+ 668: 0009408e00b01100 \.205 byte_align_be\[gprA_11, gprB_4\]
+ 670: 000d80a0300c0300 \.206 alu\[--, --, B, 0x0\]
+ 678: 000400a5b00c0000 \.207 cam_clear
+ 680: 000360bb80900007 \.208 cam_lookup\[gprB_9, gprA_7\]
+ 688: 0003a0bb80900200 \.209 cam_lookup\[gprB_9, \*l\$index0\]
+ 690: 000e04bb80900200 \.210 cam_lookup\[gprB_9, \*l\$index2\]
+ 698: 000f84bb80900203 \.211 cam_lookup\[gprB_9, \*l\$index2\[3\]\]
+ 6a0: 000bc0bb80900210 \.212 cam_lookup\[gprB_9, \*l\$index0\+\+\]
+ 6a8: 000280aba0000241 \.213 cam_lookup\[\*l\$index0, \*n\$index\]
+ 6b0: 000ec0aba1000241 \.214 cam_lookup\[\*l\$index0\+\+, \*n\$index\]
+ 6b8: 000288aba3000243 \.215 cam_lookup\[\*l\$index3\+\+, \*n\$index\+\+\]
+ 6c0: 000aa0aba0200243 \.216 cam_lookup\[\*l\$index0\[2\], \*n\$index\+\+\]
+ 6c8: 000060bb80901407 \.217 cam_lookup\[gprB_9, gprA_7\], lm_addr0\[1\]
+ 6d0: 000060bb80902807 \.218 cam_lookup\[gprB_9, gprA_7\], lm_addr1\[2\]
+ 6d8: 000660bb80907407 \.219 cam_lookup\[gprB_9, gprA_7\], lm_addr2\[3\]
+ 6e0: 000660bb80904807 \.220 cam_lookup\[gprB_9, gprA_7\], lm_addr3\[0\]
+ 6e8: 000222ab80900007 \.221 cam_lookup\[gprA_9, gprA_7\], gpr_wrboth
+ 6f0: 0004b0bb80900007 \.222 cam_lookup\[gprB_9, gprA_7\], predicate_cc
+ 6f8: 000a00a7809c0000 \.223 cam_read_tag\[gprA_9, 0x0\]
+ 700: 000da2a7809c0000 \.224 cam_read_tag\[gprA_9, 0x0\], gpr_wrboth
+ 708: 000dd0a7809c0000 \.225 cam_read_tag\[gprA_9, 0x0\], predicate_cc
+ 710: 000900a7809c2800 \.226 cam_read_tag\[gprA_9, 0xa\]
+ 718: 000a00a7809c3c00 \.227 cam_read_tag\[gprA_9, 0xf\]
+ 720: 0003e0af809c0000 \.228 cam_read_state\[gprA_9, 0x0\]
+ 728: 000442af809c0000 \.229 cam_read_state\[gprA_9, 0x0\], gpr_wrboth
+ 730: 000392af809c0000 \.230 cam_read_state\[gprA_9, 0x0\], gpr_wrboth, predicate_cc
+ 738: 0000e0af809c2800 \.231 cam_read_state\[gprA_9, 0xa\]
+ 740: 0003e0af809c3c00 \.232 cam_read_state\[gprA_9, 0xf\]
+ 748: 000920a9f0101700 \.233 cam_write\[0x0, gprB_5, 1\]
+ 750: 000da0a9f01a0300 \.234 cam_write\[0x0, n\$reg_0, 1\]
+ 758: 000e80a9f0190700 \.235 cam_write\[0x0, \*n\$index, 1\]
+ 760: 0004c4a9f0180300 \.236 cam_write\[0x0, \*l\$index2, 1\]
+ 768: 0008e4a9f0184300 \.237 cam_write\[0x0, \*l\$index2\+\+, 1\]
+ 770: 000dc4a9f0184700 \.238 cam_write\[0x0, \*l\$index2--, 1\]
+ 778: 000840a9f0b01704 \.239 cam_write\[0x4, gprB_5, 11\]
+ 780: 000be0a9f0f0170f \.240 cam_write\[0xf, gprB_5, 15\]
+ 788: 0008a0adb01c0000 \.241 cam_write_state\[0x0, 1\]
+ 790: 000d80adb0bc1000 \.242 cam_write_state\[0x4, 11\]
+ 798: 000de0adb0fc3c00 \.243 cam_write_state\[0xf, 15\]
+ 7a0: 0000c0fc142c000d \.244 local_csr_wr\[CRCRemainder, gprA_13\]
+ 7a8: 000d20a918060348 \.245 crc_le\[crc_ccitt, \$xfer_0, \$xfer_0\]
+ 7b0: 000000f0000c0300 \.246 nop
+ 7b8: 000d40a918160748 \.247 crc_le\[crc_ccitt, \$xfer_1, \$xfer_1\]
+ 7c0: 000000f0000c0300 \.248 nop
+ 7c8: 000d40a918260b48 \.249 crc_le\[crc_ccitt, \$xfer_2, \$xfer_2\]
+ 7d0: 000000f0000c0300 \.250 nop
+ 7d8: 000d20a918360f48 \.251 crc_le\[crc_ccitt, \$xfer_3, \$xfer_3\]
+ 7e0: 000000f0000c0300 \.252 nop
+ 7e8: 000000f0000c0300 \.253 nop
+ 7f0: 000000f0000c0300 \.254 nop
+ 7f8: 000000f0000c0300 \.255 nop
+ 800: 000000f0000c0300 \.256 nop
+ 808: 000f60fc140c0000 \.257 local_csr_rd\[CRCRemainder\]
+ 810: 000ce0f0000c000e \.258 immed\[gprA_14, 0x0\]
+ 818: 000940a918060340 \.259 crc_be\[crc_ccitt, \$xfer_0, \$xfer_0\]
+ 820: 000000f0000c0300 \.260 nop
+ 828: 000920a918461340 \.261 crc_be\[crc_ccitt, \$xfer_4, \$xfer_4\]
+ 830: 000000f0000c0300 \.262 nop
+ 838: 000060a900061340 \.263 crc_be\[crc_ccitt, gprA_0, \$xfer_4\]
+ 840: 000000f0000c0300 \.264 nop
+ 848: 000c60a900001340 \.265 crc_be\[crc_ccitt, gprA_0, gprB_4\]
+ 850: 000000f0000c0300 \.266 nop
+ 858: 000000f0000c0300 \.267 nop
+ 860: 000000f0000c0300 \.268 nop
+ 868: 000000f0000c0300 \.269 nop
+ 870: 000000f0000c0300 \.270 nop
+ 878: 000600a918260380 \.271 crc_be\[crc_32, \$xfer_2, \$xfer_0\]
+ 880: 000000f0000c0300 \.272 nop
+ 888: 0004c0a9183613a0 \.273 crc_be\[crc_iscsi, \$xfer_3, \$xfer_4\]
+ 890: 000000f0000c0300 \.274 nop
+ 898: 0004c0a9000613c0 \.275 crc_be\[crc_10, gprA_0, \$xfer_4\]
+ 8a0: 000000f0000c0300 \.276 nop
+ 8a8: 000960a9000013e0 \.277 crc_be\[crc_5, gprA_0, gprB_4\]
+ 8b0: 000000f0000c0300 \.278 nop
+ 8b8: 000ea0a918862700 \.279 crc_be\[--, \$xfer_8, \$xfer_9\]
+ 8c0: 000000f0000c0300 \.280 nop
+ 8c8: 000240a918760784 \.281 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_0_2
+ 8d0: 000000f0000c0300 \.282 nop
+ 8d8: 0002a0a918760785 \.283 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_0_1
+ 8e0: 000000f0000c0300 \.284 nop
+ 8e8: 000320a918760786 \.285 crc_be\[crc_32, \$xfer_7, \$xfer_1\], byte_0
+ 8f0: 000000f0000c0300 \.286 nop
+ 8f8: 0000c0a918760781 \.287 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_1_3
+ 900: 000000f0000c0300 \.288 nop
+ 908: 000140a918760782 \.289 crc_be\[crc_32, \$xfer_7, \$xfer_1\], bytes_2_3
+ 910: 000000f0000c0300 \.290 nop
+ 918: 0001a0a918760783 \.291 crc_be\[crc_32, \$xfer_7, \$xfer_1\], byte_3
+ 920: 000000f0000c0300 \.292 nop
+ 928: 000782a900160780 \.293 crc_be\[crc_32, gprA_1, \$xfer_1\], gpr_wrboth
+ 930: 000000f0000c0300 \.294 nop
+ 938: 000ae3a900160780 \.295 crc_be\[crc_32, gprA_1, \$xfer_1\], no_cc, gpr_wrboth
+ 940: 000000f0000c0300 \.296 nop
+ 948: 000b73a900560780 \.297 crc_be\[crc_32, gprA_5, \$xfer_1\], no_cc, gpr_wrboth, predicate_cc
+ 950: 000000f0000c0300 \.298 nop
+ 958: 000122a900560781 \.299 crc_be\[crc_32, gprA_5, \$xfer_1\], bytes_1_3, gpr_wrboth
+ 960: 000000f0000c0300 \.300 nop
+ 968: 000000f0000c0300 \.301 nop
+ 970: 000000f0000c0300 \.302 nop
+ 978: 000000f0000c0300 \.303 nop
+ 980: 000000f0000c0300 \.304 nop
+ 988: 000000f0000c0300 \.305 nop
+ 990: 0005a0e000080000 \.306 ctx_arb\[--\]
+ 998: 000600e000000001 \.307 ctx_arb\[voluntary\]
+ 9a0: 000220e000020000 \.308 ctx_arb\[bpt\]
+ 9a8: 000460e000000220 \.309 ctx_arb\[sig5, sig9\]
+ 9b0: 000d20e000200220 \.310 ctx_arb\[sig5, sig9\], defer\[2\]
+ 9b8: 000180a0300c0f00 \.311 alu\[--, --, B, 0x3\]
+ 9c0: 0007a0a0300c1f00 \.312 alu\[--, --, B, 0x7\]
+ 9c8: 0006a0e000010220 \.313 ctx_arb\[sig5, sig9\], any
+ 9d0: 000a60e077c40220 \.314 ctx_arb\[sig5, sig9\], br\[\.479\]
+ 9d8: 0006409010500701 \.315 dbl_shf\[gprB_5, gprA_1, gprB_1, >>1\]
+ 9e0: 000d4090a0500701 \.316 dbl_shf\[gprB_5, gprA_1, gprB_1, >>10\]
+ 9e8: 000c4091f0500701 \.317 dbl_shf\[gprB_5, gprA_1, gprB_1, >>31\]
+ 9f0: 000740a440000402 \.318 alu\[gprA_0, gprB_1, AND, gprA_2\]
+ 9f8: 0000c09000500701 \.319 dbl_shf\[gprB_5, gprA_1, gprB_1, >>indirect\]
+ a00: 000b219010500701 \.320 dbl_shf\[gprB_5, gprA_1, gprB_1, >>1\], no_cc
+ a08: 000cf19010500701 \.321 dbl_shf\[gprB_5, gprA_1, gprB_1, >>1\], no_cc, predicate_cc
+ a10: 0000d28010500701 \.322 dbl_shf\[gprA_5, gprA_1, gprB_1, >>1\], gpr_wrboth, predicate_cc
+ a18: 000200a700f03f00 \.323 ffs\[gprA_15, gprB_15\]
+ a20: 000fe0b740fc000f \.324 ffs\[gprB_15, gprA_15\]
+ a28: 000ec0b700f61300 \.325 ffs\[gprB_15, \$xfer_4\]
+ a30: 000660b700f88300 \.326 ffs\[gprB_15, \*l\$index1\]
+ a38: 0007e4b700f8c300 \.327 ffs\[gprB_15, \*l\$index3\+\+\]
+ a40: 0002c4b700f8c700 \.328 ffs\[gprB_15, \*l\$index3--\]
+ a48: 0004c4b700f8a700 \.329 ffs\[gprB_15, \*l\$index3\[9\]\]
+ a50: 000880a720000300 \.330 ffs\[\*l\$index0, gprB_0\]
+ a58: 000108a722090700 \.331 ffs\[\*l\$index3, \*n\$index\]
+ a60: 000128a723190f00 \.332 ffs\[\*l\$index3--, \*n\$index\+\+\]
+ a68: 0003c3a740fc000f \.333 ffs\[gprA_15, gprA_15\], no_cc, gpr_wrboth
+ a70: 000972a740fc000f \.334 ffs\[gprA_15, gprA_15\], gpr_wrboth, predicate_cc
+ a78: 000320f0000c0803 \.335 immed\[gprA_3, 0x2\]
+ a80: 000480e8004d4803 \.336 jump\[gprA_3, \.338\]
+ a88: 0006a0d854408038 \.337 br\[\.337\]
+ a90: 000460f000002701 \.338 immed\[gprB_9, 0x1\]
+ a98: 0006a0d854408038 \.339 br\[\.337\]
+ aa0: 0005e0f000002702 \.340 immed\[gprB_9, 0x2\]
+ aa8: 0006a0d854408038 \.341 br\[\.337\]
+ ab0: 000500f000002703 \.342 immed\[gprB_9, 0x3\]
+ ab8: 0006a0d854408038 \.343 br\[\.337\]
+ ac0: 000040c001000000 \.344 ld_field\[gprA_0, 0001, gprB_0\]
+ ac8: 0007e2c001000000 \.345 ld_field\[gprA_0, 0001, gprB_0\], gpr_wrboth
+ ad0: 000e40c401000000 \.346 ld_field\[gprA_0, 0001, gprB_0\], load_cc
+ ad8: 000790c001000000 \.347 ld_field\[gprA_0, 0001, gprB_0\], predicate_cc
+ ae0: 0005c0c005000000 \.348 ld_field\[gprA_0, 0101, gprB_0\]
+ ae8: 000080c005100000 \.349 ld_field_w_clr\[gprA_0, 0101, gprB_0\]
+ af0: 0002a2c001100000 \.350 ld_field_w_clr\[gprA_0, 0001, gprB_0\], gpr_wrboth
+ af8: 000b00c401100000 \.351 ld_field_w_clr\[gprA_0, 0001, gprB_0\], load_cc
+ b00: 0002d0c001100000 \.352 ld_field_w_clr\[gprA_0, 0001, gprB_0\], predicate_cc
+ b08: 000fc0c00f000000 \.353 ld_field\[gprA_0, 1111, gprB_0\]
+ b10: 0005e0c1fb000200 \.354 ld_field\[gprA_0, 1011, gprB_0, <<1\]
+ b18: 000460c01b000100 \.355 ld_field\[gprA_0, 1011, gprB_0, >>1\]
+ b20: 000e60c1fb000100 \.356 ld_field\[gprA_0, 1011, gprB_0, >>31\]
+ b28: 000bc0c09b000000 \.357 ld_field\[gprA_0, 1011, gprB_0, >>rot9\]
+ b30: 000e80c09b100000 \.358 ld_field_w_clr\[gprA_0, 1011, gprB_0, >>rot9\]
+ b38: 0001c0c17b000000 \.359 ld_field\[gprA_0, 1011, gprB_0, >>rot23\]
+ b40: 0002c0c41b000000 \.360 ld_field\[gprA_0, 1011, gprB_0, >>rot1\], load_cc
+ b48: 000780c41b100000 \.361 ld_field_w_clr\[gprA_0, 1011, gprB_0, >>rot1\], load_cc
+ b50: 000400f0001f7c01 \.362 immed\[gprA_1, 0x1df\]
+ b58: 000200f0001007df \.363 immed\[gprB_1, 0x1df\]
+ b60: 0005a2f0001007df \.364 immed\[gprB_1, 0x1df\], gpr_wrboth
+ b68: 0005d0f0001007df \.365 immed\[gprB_1, 0x1df\], predicate_cc
+ b70: 000020fc010c0000 \.366 local_csr_rd\[ALUOut\]
+ b78: 000e60f0000c000b \.367 immed\[gprA_11, 0x0\]
+ b80: 000ce0fc160c0000 \.368 local_csr_rd\[MiscControl\]
+ b88: 000e60f0000c000b \.369 immed\[gprA_11, 0x0\]
+ b90: 000ae0fc076c0b02 \.370 local_csr_wr\[XferIndex, 0x2\]
+ b98: 0008a0fc076c0003 \.371 local_csr_wr\[XferIndex, gprA_3\]
+ ba0: 000520fc07600f00 \.372 local_csr_wr\[XferIndex, gprB_3\]
+ ba8: 000f20fc01a00f00 \.373 local_csr_wr\[CtxEnables, gprB_3\]
+ bb0: 000480f800000c02 \.374 mul_step\[gprA_2, gprB_3\], start
+ bb8: 000880f980000c02 \.375 mul_step\[gprA_2, gprB_3\], 32x32_step1
+ bc0: 000dc0f980100c02 \.376 mul_step\[gprA_2, gprB_3\], 32x32_step2
+ bc8: 0001c0f980200c02 \.377 mul_step\[gprA_2, gprB_3\], 32x32_step3
+ bd0: 000480f980300c02 \.378 mul_step\[gprA_2, gprB_3\], 32x32_step4
+ bd8: 000940f9804c0002 \.379 mul_step\[gprA_2, --\], 32x32_last
+ be0: 000ce0f9805c0003 \.380 mul_step\[gprA_3, --\], 32x32_last2
+ be8: 0001a0f800000802 \.381 mul_step\[gprA_2, gprB_2\], start
+ bf0: 000aa0f900000802 \.382 mul_step\[gprA_2, gprB_2\], 16x16_step1
+ bf8: 000fe0f900100802 \.383 mul_step\[gprA_2, gprB_2\], 16x16_step2
+ c00: 000f20f9004c0000 \.384 mul_step\[gprA_0, --\], 16x16_last
+ c08: 0001a0f800000802 \.385 mul_step\[gprA_2, gprB_2\], start
+ c10: 0006a0f880000802 \.386 mul_step\[gprA_2, gprB_2\], 24x8_step1
+ c18: 000320f8804c0000 \.387 mul_step\[gprA_0, --\], 24x8_last
+ c20: 0001a0f800000802 \.388 mul_step\[gprA_2, gprB_2\], start
+ c28: 0006a0f880000802 \.389 mul_step\[gprA_2, gprB_2\], 24x8_step1
+ c30: 0004f0f8804c0000 \.390 mul_step\[gprA_0, --\], 24x8_last, predicate_cc
+ c38: 0001a0f800000802 \.391 mul_step\[gprA_2, gprB_2\], start
+ c40: 0006a0f880000802 \.392 mul_step\[gprA_2, gprB_2\], 24x8_step1
+ c48: 0009e3f8804c0000 \.393 mul_step\[gprA_0, --\], 24x8_last, no_cc, gpr_wrboth
+ c50: 000b80a330000000 \.394 pop_count1\[gprB_0\]
+ c58: 000c80a3b0000000 \.395 pop_count2\[gprB_0\]
+ c60: 000d80a180000000 \.396 pop_count3\[gprA_0, gprB_0\]
+ c68: 000b80a330000000 \.397 pop_count1\[gprB_0\]
+ c70: 000c80a3b0000000 \.398 pop_count2\[gprB_0\]
+ c78: 000743a180000000 \.399 pop_count3\[gprA_0, gprB_0\], no_cc, gpr_wrboth
+ c80: 0004a4a330088000 \.400 pop_count1\[\*l\$index3\]
+ c88: 0003a4a3b0088000 \.401 pop_count2\[\*l\$index3\]
+ c90: 0000e5a1a438c000 \.402 pop_count3\[\*n\$index\+\+, \*l\$index3\+\+\], no_cc
+ c98: 000b80a330000000 \.403 pop_count1\[gprB_0\]
+ ca0: 000c80a3b0000000 \.404 pop_count2\[gprB_0\]
+ ca8: 000731a180000000 \.405 pop_count3\[gprA_0, gprB_0\], no_cc, predicate_cc
+ cb0: 000480e8000c0000 \.406 rtn\[gprA_0\]
+ cb8: 000620e8000a0700 \.407 rtn\[n\$reg_1\]
+ cc0: 000600e800088300 \.408 rtn\[\*l\$index1\]
+ cc8: 000a64e800080300 \.409 rtn\[\*l\$index2\]
+ cd0: 000dc0e800200300 \.410 rtn\[gprB_0\], defer\[2\]
+ cd8: 0008a0a0300c0700 \.411 alu\[--, --, B, 0x1\]
+ ce0: 0004a0a0300c0b00 \.412 alu\[--, --, B, 0x2\]
+ ce8: 000000f0000c0300 \.413 nop
+ cf0: 000000f0000c0300 \.414 nop
+ cf8: 000000f0000c0300 \.415 nop
+ d00: 000000f0000c0300 \.416 nop
+ d08: 0003501842300c09 \.417 arm\[read, \$xfer_3, gprA_9, gprB_3, 2\], ctx_swap\[sig4\]
+ d10: 0005501842302403 \.418 arm\[read, \$xfer_3, gprA_3, gprB_9, 2\], ctx_swap\[sig4\]
+ d18: 0004801842300c09 \.419 arm\[read, \$xfer_3, gprA_9, <<8, gprB_3, 2\], ctx_swap\[sig4\]
+ d20: 000f241842302403 \.420 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], ctx_swap\[sig4\]
+ d28: 0004a0a0300c0b00 \.421 alu\[--, --, B, 0x2\]
+ d30: 0008861842302403 \.422 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], indirect_ref, ctx_swap\[sig4\]
+ d38: 0004a0a0300c0b00 \.423 alu\[--, --, B, 0x2\]
+ d40: 000e8618e2302703 \.424 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], indirect_ref, sig_done\[sig14\]
+ d48: 0007841842302503 \.425 arm\[read, \$xfer_3, gprB_9, <<8, gprA_3, 2\], ctx_swap\[sig4\], defer\[1\]
+ d50: 0008a0a0300c0700 \.426 alu\[--, --, B, 0x1\]
+ d58: 000f101843c00c09 \.427 arm\[read, \$xfer_28, gprA_9, gprB_3, 2\], ctx_swap\[sig4\]
+ d60: 000910184e800c09 \.428 arm\[read, \$xfer_8, gprA_9, gprB_3, 8\], ctx_swap\[sig4\]
+ d68: 000a106440800c09 \.429 cls\[add, \$xfer_8, gprA_9, gprB_3, 1\], ctx_swap\[sig4\]
+ d70: 0000f0664080a009 \.430 cls\[sub, \$xfer_8, gprA_9, 0x8, 1\], ctx_swap\[sig4\]
+ d78: 000160644284a009 \.431 cls\[add64, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ d80: 000404664284a408 \.432 cls\[sub64, \$xfer_8, 0x9, <<8, gprA_8, 2\], ctx_swap\[sig4\]
+ d88: 0008a0a0300c0700 \.433 alu\[--, --, B, 0x1\]
+ d90: 00032c650340a708 \.434 cls\[add_imm, 0x14, 0x9, <<8, gprA_8, 2\]
+ d98: 0007506040880c09 \.435 cls\[swap/test_compare_write, \$xfer_8, gprA_9, gprB_3, 1\], ctx_swap\[sig4\]
+ da0: 00023c6500007f9a \.436 cls\[add_imm, 0x1f9a, --, 1\]
+ da8: 000038653c583f14 \.437 cls\[add_imm, 0xf14, 0xf16\]
+ db0: 000b54640013c30f \.438 cls\[add, \$xfer_1, 0xf00f, 1\]
+ db8: 0002901c10a08000 \.439 ct\[xpb_read, \$xfer_10, gprA_0, 0x0, 1\], ctx_swap\[sig1\]
+ dc0: 0007501e10a48000 \.440 ct\[reflect_read_sig_init, \$xfer_10, gprA_0, 0x0, 1\], ctx_swap\[sig1\]
+ dc8: 000a501c10a48000 \.441 ct\[ring_get, \$xfer_10, gprA_0, 0x0, 1\], ctx_swap\[sig1\]
+ dd0: 000000f0000c0300 \.442 nop
+ dd8: 000cc0474a80a009 \.443 mem\[add64, \$xfer_8, gprA_9, <<8, 0x8, 6\], ctx_swap\[sig4\]
+ de0: 000d40404280a009 \.444 mem\[read, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ de8: 000c405c4280a009 \.445 mem\[read32, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ df0: 000ea0554280a009 \.446 mem\[ctm\.pe_dma_to_memory_indirect/emem\.get/imem\.lb_bucket_read_local, \$xfer_8, gprA_9, <<8, 0x8, 2\], ctx_swap\[sig4\]
+ df8: 0009204c408ca309 \.447 mem\[lock128/lock384, \$xfer_8, gprA_9, <<8, 0x8, 1\], sig_done\[sig4\]
+ e00: 000f20e000000030 \.448 ctx_arb\[sig4, sig5\]
+ e08: 0000a04c488ca309 \.449 mem\[lock256/lock512, \$xfer_8, gprA_9, <<8, 0x8, 5\], sig_done\[sig4\]
+ e10: 000f20e000000030 \.450 ctx_arb\[sig4, sig5\]
+ e18: 000ae04d4084a009 \.451 mem\[microq128_pop, \$xfer_8, gprA_9, <<8, 0x8, 1\], ctx_swap\[sig4\]
+ e20: 0002204d4080a009 \.452 mem\[microq128_get, \$xfer_8, gprA_9, <<8, 0x8, 1\], ctx_swap\[sig4\]
+ e28: 000ba04d4880a009 \.453 mem\[microq256_get, \$xfer_8, gprA_9, <<8, 0x8, 5\], ctx_swap\[sig4\]
+ e30: 0003805700028309 \.454 mem\[ctm\.pe_dma_from_memory_buffer/emem\.fast_journal/imem\.lb_push_stats_local, \$xfer_0, gprA_9, <<8, 0x40, 1\]
+ e38: 0005e04e4000a309 \.455 mem\[queue128_lock, \$xfer_0, gprA_9, <<8, 0x8, 1\], sig_done\[sig4\]
+ e40: 000f20e000000030 \.456 ctx_arb\[sig4, sig5\]
+ e48: 0001a04e0004a309 \.457 mem\[queue128_unlock, \$xfer_0, gprA_9, <<8, 0x8, 1\]
+ e50: 000c604e4800a309 \.458 mem\[queue256_lock, \$xfer_0, gprA_9, <<8, 0x8, 5\], sig_done\[sig4\]
+ e58: 000f20e000000030 \.459 ctx_arb\[sig4, sig5\]
+ e60: 0008204e0804a309 \.460 mem\[queue256_unlock, \$xfer_0, gprA_9, <<8, 0x8, 5\]
+ e68: 0008a05000001309 \.461 mem\[ctm\.packet_wait_packet_status/emem\.rd_qdesc/imem\.stats_log, \$xfer_0, gprA_9, <<8, gprB_4, 1\]
+ e70: 000b840092200c02 \.462 ila\[read, \$xfer_2, gprB_3, <<8, gprA_2, 2\], ctx_swap\[sig9\]
+ e78: 0005440182240f02 \.463 ila\[write_check_error, \$xfer_2, gprB_3, <<8, gprA_2, 2\], sig_done\[sig8\]
+ e80: 000d60e000000300 \.464 ctx_arb\[sig8, sig9\]
+ e88: 0007800410600000 \.465 nbi\[read, \$xfer_6, gprA_0, <<8, gprB_0, 1\], ctx_swap\[sig1\]
+ e90: 0002600c62000000 \.466 pcie\[read, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ e98: 0004c40d62000000 \.467 pcie\[write, \$xfer_0, gprB_0, <<8, gprA_0, 2\], ctx_swap\[sig6\]
+ ea0: 000d601462000000 \.468 crypto\[read, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ ea8: 0006601562000000 \.469 crypto\[write, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ eb0: 0000601662000000 \.470 crypto\[write_fifo, \$xfer_0, gprA_0, <<8, gprB_0, 2\], ctx_swap\[sig6\]
+ eb8: 000d840d60000050 \.471 pcie\[write, \$xfer_0, gprB_0, <<8, \*l\$index0, 1\], ctx_swap\[sig6\]
+ ec0: 0009e40d60000058 \.472 pcie\[write, \$xfer_0, gprB_0, <<8, \*l\$index1, 1\], ctx_swap\[sig6\]
+ ec8: 0009040d60000059 \.473 pcie\[write, \$xfer_0, gprB_0, <<8, \*l\$index1\[1\], 1\], ctx_swap\[sig6\]
+ ed0: 000000f0000c0300 \.474 nop
+ ed8: 000000f0000c0300 \.475 nop
+ ee0: 000000f0000c0300 \.476 nop
+ ee8: 000000f0000c0300 \.477 nop
+ ef0: 000000f0000c0300 \.478 nop
+ ef8: 000220e000020000 \.479 ctx_arb\[bpt\]
+ f00: 000420e000010000 \.480 ctx_arb\[kill\]
diff --git a/binutils/testsuite/binutils-all/nfp/test1_nfp6000.nffw b/binutils/testsuite/binutils-all/nfp/test1_nfp6000.nffw
new file mode 100644
index 0000000..869a6b2
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nfp/test1_nfp6000.nffw
Binary files differ
diff --git a/binutils/testsuite/binutils-all/nfp/test2_ctx8.d b/binutils/testsuite/binutils-all/nfp/test2_ctx8.d
new file mode 100644
index 0000000..b3a1751
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nfp/test2_ctx8.d
@@ -0,0 +1,16 @@
+
+.*: file format elf64-nfp
+
+
+Disassembly of section \.text\.i32\.me0:
+
+0000000000000000 <\.text\.i32\.me0>:
+ 0: 000d80a0300c0300 \.0 alu\[--, --, B, 0x0\]
+ 8: 0008a0a0300c0700 \.1 alu\[--, --, B, 0x1\]
+ 10: 0004a0a0300c0b00 \.2 alu\[--, --, B, 0x2\]
+ 18: 000180a0300c0f00 \.3 alu\[--, --, B, 0x3\]
+ 20: 0004a0a018cc1300 \.4 alu\[\$xfer_12, --, B, 0x4\]
+ 28: 0001c0a019fc1700 \.5 alu\[\$xfer_15, --, B, 0x5\]
+ 30: 000400a0b00c198c \.6 alu\[--, \$xfer_12, \+, 0x6\]
+ 38: 0008c0a0b00c1d9f \.7 alu\[--, \$xfer_15, \+, 0x7\]
+ 40: 000220e000020000 \.8 ctx_arb\[bpt\]
diff --git a/binutils/testsuite/binutils-all/nfp/test2_nfp6000.nffw b/binutils/testsuite/binutils-all/nfp/test2_nfp6000.nffw
new file mode 100644
index 0000000..28da2fd
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nfp/test2_nfp6000.nffw
Binary files differ
diff --git a/binutils/testsuite/binutils-all/nfp/test2_no-pc_ctx4.d b/binutils/testsuite/binutils-all/nfp/test2_no-pc_ctx4.d
new file mode 100644
index 0000000..3f7450a
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nfp/test2_no-pc_ctx4.d
@@ -0,0 +1,16 @@
+
+.*: file format elf64-nfp
+
+
+Disassembly of section \.text\.i32\.me0:
+
+0000000000000000 <\.text\.i32\.me0>:
+ 0: 000d80a0300c0300 alu\[--, --, B, 0x0\]
+ 8: 0008a0a0300c0700 alu\[--, --, B, 0x1\]
+ 10: 0004a0a0300c0b00 alu\[--, --, B, 0x2\]
+ 18: 000180a0300c0f00 alu\[--, --, B, 0x3\]
+ 20: 0004a0a018cc1300 alu\[\$xfer_12, --, B, 0x4\]
+ 28: 0001c0a019fc1700 alu\[\$xfer_31, --, B, 0x5\]
+ 30: 000400a0b00c198c alu\[--, \$xfer_12, \+, 0x6\]
+ 38: 0008c0a0b00c1d9f alu\[--, \$xfer_31, \+, 0x7\]
+ 40: 000220e000020000 ctx_arb\[bpt\]
diff --git a/include/ChangeLog b/include/ChangeLog
index 3e45748..cf0b626 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,11 @@
+2018-04-30 Francois H. Theron <francois.theron@netronome.com>
+
+ * dis-asm.h: Added print_nfp_disassembler_options prototype.
+ * elf/common.h: Added EM_NFP, officially assigned. See Google Group
+ Generic System V Application Binary Interface.
+ * elf/nfp.h: New, for NFP support.
+ * opcode/nfp.h: New, for NFP support.
+
2018-04-25 Christophe Lyon <christophe.lyon@st.com>
Mickaël Guêné <mickael.guene@st.com>
diff --git a/include/dis-asm.h b/include/dis-asm.h
index 760ed3e..cb72b7d 100644
--- a/include/dis-asm.h
+++ b/include/dis-asm.h
@@ -254,6 +254,7 @@ extern disassembler_ftype cris_get_disassembler (bfd *);
extern void print_aarch64_disassembler_options (FILE *);
extern void print_i386_disassembler_options (FILE *);
extern void print_mips_disassembler_options (FILE *);
+extern void print_nfp_disassembler_options (FILE *);
extern void print_ppc_disassembler_options (FILE *);
extern void print_riscv_disassembler_options (FILE *);
extern void print_arm_disassembler_options (FILE *);
diff --git a/include/elf/common.h b/include/elf/common.h
index 469fe5a..ae4a7b2 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -339,6 +339,7 @@
#define EM_RISCV 243 /* RISC-V */
#define EM_LANAI 244 /* Lanai 32-bit processor. */
#define EM_BPF 247 /* Linux BPF – in-kernel virtual machine. */
+#define EM_NFP 250 /* Netronome Flow Processor. */
/* If it is necessary to assign new unofficial EM_* values, please pick large
random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
diff --git a/include/elf/nfp.h b/include/elf/nfp.h
new file mode 100755
index 0000000..07d4bcc
--- /dev/null
+++ b/include/elf/nfp.h
@@ -0,0 +1,292 @@
+/* NFP ELF support for BFD.
+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _ELF_NFP_H
+#define _ELF_NFP_H
+
+#include "bfd.h"
+#include "elf/common.h"
+#include "elf/reloc-macros.h"
+#include "bfd_stdint.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define ET_NFP_PARTIAL_REL (ET_LOPROC + ET_REL)
+#define ET_NFP_PARTIAL_EXEC (ET_LOPROC + ET_EXEC)
+
+/* NFP e_flags - chip family
+ Valid values for FAMILY are:
+ 0x3200 - NFP-32xx
+ 0x6000 - NFP-6xxx/NFP-4xxx. */
+#define EF_NFP_MACH(ef_nfp) (((ef_nfp) >> 8) & 0xFFFF)
+#define EF_NFP_SET_MACH(nfp_fam) (((nfp_fam) & 0xFFFF) << 8)
+
+#define E_NFP_MACH_3200 0x3200
+#define E_NFP_MACH_6000 0x6000
+
+#define NFP_3200_CPPTGT_MSF0 1
+#define NFP_3200_CPPTGT_QDR 2
+#define NFP_3200_CPPTGT_MSF1 3
+#define NFP_3200_CPPTGT_HASH 4
+#define NFP_3200_CPPTGT_MU 7
+#define NFP_3200_CPPTGT_GS 8
+#define NFP_3200_CPPTGT_PCIE 9
+#define NFP_3200_CPPTGT_ARM 10
+#define NFP_3200_CPPTGT_CRYPTO 12
+#define NFP_3200_CPPTGT_CAP 13
+#define NFP_3200_CPPTGT_CT 14
+#define NFP_3200_CPPTGT_CLS 15
+
+#define NFP_6000_CPPTGT_NBI 1
+#define NFP_6000_CPPTGT_VQDR 2
+#define NFP_6000_CPPTGT_ILA 6
+#define NFP_6000_CPPTGT_MU 7
+#define NFP_6000_CPPTGT_PCIE 9
+#define NFP_6000_CPPTGT_ARM 10
+#define NFP_6000_CPPTGT_CRYPTO 12
+#define NFP_6000_CPPTGT_CTXPB 14
+#define NFP_6000_CPPTGT_CLS 15
+
+/* NFP Section types
+ MECONFIG - NFP-32xx only, ME CSR configurations
+ INITREG - A generic register initialisation section (chip or ME CSRs/GPRs)
+ UDEBUG - Legacy-style debug data section. */
+#define SHT_NFP_MECONFIG (SHT_LOPROC + 1)
+#define SHT_NFP_INITREG (SHT_LOPROC + 2)
+#define SHT_NFP_UDEBUG SHT_LOUSER
+
+/* NFP SECTION flags
+ ELF-64 sh_flags is 64-bit, but there is no info on what the upper 32 bits
+ are expected to be used for, it is not marked reserved either.
+ We'll use them for NFP-specific flags since we don't use ELF-32.
+
+ INIT - Sections that are loaded and executed before the final text
+ microcode. Non-code INIT sections are loaded first, then other
+ memory secions, then INIT2 sections, then INIT-code sections.
+ INIT2 - Sections that are loaded before INIT-code sections, used for
+ transient configuration before executing INIT-code section
+ microcode.
+ SCS - The number of additional ME codestores being shared with the group's
+ base ME of the section, e.g. 0 for no SCS, 1 for dual and 3 for
+ quad. If this is 0 it is possible that stagger-style SCS codestore
+ sections are being used. For stagger-style each section is simply
+ loaded directly to the ME it is assigned to. If these flags are
+ used, virtual address space loading will be used - one large section
+ loaded to the group's base ME will be packed across shared MEs by
+ hardware. This is not available on all ME versions.
+
+ NFP_ELF_SHF_GET_SCS (val) returns the number of additional codestores
+ being shared with the group's base ME, e.g. 0 for no SCS,
+ 1 for dual SCS, 3 for quad SCS. */
+
+#define SHF_NFP_INIT 0x80000000
+#define SHF_NFP_INIT2 0x40000000
+#define SHF_NFP_SCS(shf) (((shf) >> 32) & 0xFF)
+#define SHF_NFP_SET_SCS(v) (((BFD_HOST_U_64_BIT)((v) & 0xFF)) << 32)
+
+/* NFP Section Info
+ For PROGBITS and NOBITS sections:
+ MEMTYPE - the memory type
+ DOMAIN - The island ID and ME number where the data will be loaded.
+ For NFP-32xx, this is an island number or linear ME number.
+ For NFP-6xxx, DOMAIN<15:8> == island ID, DOMAIN<7:0> is 0 based
+ ME number (if applicable).
+ For INITREG sections:
+ ISLAND - island ID (if it's a ME target, ME numbers are in the
+ section data)
+ CPPTGT - CPP Target ID
+ CPPACTRD - CPP Read Action
+ CPPTOKRD - CPP Read Token
+ CPPACTWR - CPP Write Action
+ CPPTOKWR - CPP Write Token
+ ORDER - Controls the order in which the loader processes sections with
+ the same info fields. */
+
+#define SHI_NFP_DOMAIN(shi) (((shi) >> 16) & 0xFFFF)
+#define SHI_NFP_MEMTYPE(shi) ( (shi) & 0xFFFF)
+#define SHI_NFP_SET_DOMAIN(v) (((v) & 0xFFFF) << 16)
+#define SHI_NFP_SET_MEMTYPE(v) ( (v) & 0xFFFF)
+
+#define SHI_NFP_IREG_ISLAND(shi) (((shi) >> 26) & 0x3F)
+#define SHI_NFP_IREG_CPPTGT(shi) (((shi) >> 22) & 0xF)
+#define SHI_NFP_IREG_CPPACTRD(shi) (((shi) >> 17) & 0x1F)
+#define SHI_NFP_IREG_CPPTOKRD(shi) (((shi) >> 15) & 0x3)
+#define SHI_NFP_IREG_CPPACTWR(shi) (((shi) >> 10) & 0x1F)
+#define SHI_NFP_IREG_CPPTOKWR(shi) (((shi) >> 8) & 0x3)
+#define SHI_NFP_IREG_ORDER(shi) ( (shi) & 0xFF)
+#define SHI_NFP_SET_IREG_ISLAND(v) (((v) & 0x3F) << 26)
+#define SHI_NFP_SET_IREG_CPPTGT(v) (((v) & 0xF) << 22)
+#define SHI_NFP_SET_IREG_CPPACTRD(v) (((v) & 0x1F) << 17)
+#define SHI_NFP_SET_IREG_CPPTOKRD(v) (((v) & 0x3) << 15)
+#define SHI_NFP_SET_IREG_CPPACTWR(v) (((v) & 0x1F) << 10)
+#define SHI_NFP_SET_IREG_CPPTOKWR(v) (((v) & 0x3) << 8)
+#define SHI_NFP_SET_IREG_ORDER(v) ( (v) & 0xFF)
+
+/* CtXpb/reflect_read_sig_init/reflect_write_sig_init
+ identifies Init-CSR sections for ME CSRs. */
+#define SHI_NFP_6000_IS_IREG_MECSR(shi) ( \
+ SHI_NFP_IREG_CPPTGT (shi) == NFP_6000_CPPTGT_CTXPB \
+ && SHI_NFP_IREG_CPPACTRD (shi) == 2 \
+ && SHI_NFP_IREG_CPPTOKRD (shi) == 1 \
+ && SHI_NFP_IREG_CPPACTWR (shi) == 3 \
+ && SHI_NFP_IREG_CPPTOKWR (shi) == 1 \
+)
+
+/* Transient INITREG sections will be validated against the target
+ but will not be kept - validate, write or read and discard.
+ They will still be handled last (in order). */
+#define SHI_NFP_IREG_ORDER_TRANSIENT 0xFF
+
+/* Below are some extra macros to translate SHI fields in more specific
+ contexts.
+
+ For NFP-32xx, DOMAIN is set to a global linear ME number (0 to 39).
+ An NFP-32xx has 8 MEs per island and up to 5 islands. */
+
+#define SHI_NFP_3200_ISLAND(shi) ((SHI_NFP_DOMAIN (shi) >> 3) & 0x7)
+#define SHI_NFP_3200_MENUM(shi) ( SHI_NFP_DOMAIN (shi) & 0x7)
+#define SHI_NFP_SET_3200_ISLAND(v) SHI_NFP_SET_DOMAIN (((v) & 0x7) << 3)
+#define SHI_NFP_SET_3200_MENUM(v) SHI_NFP_SET_DOMAIN ( (v) & 0x7)
+
+#define SHI_NFP_ISLAND(shi) ((SHI_NFP_DOMAIN (shi) >> 8) & 0xFF)
+#define SHI_NFP_MENUM(shi) ( SHI_NFP_DOMAIN (shi) & 0xFF)
+#define SHI_NFP_SET_ISLAND(shi) SHI_NFP_SET_DOMAIN (((shi) & 0xFF) << 8)
+#define SHI_NFP_SET_MENUM(shi) SHI_NFP_SET_DOMAIN ( (shi) & 0xFF)
+
+#define SHI_NFP_MEMTYPE_NONE 0
+#define SHI_NFP_MEMTYPE_USTORE 1
+#define SHI_NFP_MEMTYPE_LMEM 2
+#define SHI_NFP_MEMTYPE_CLS 3
+#define SHI_NFP_MEMTYPE_DRAM 4
+#define SHI_NFP_MEMTYPE_MU 4
+#define SHI_NFP_MEMTYPE_SRAM 5
+#define SHI_NFP_MEMTYPE_GS 6
+#define SHI_NFP_MEMTYPE_PPC_LMEM 7
+#define SHI_NFP_MEMTYPE_PPC_SMEM 8
+#define SHI_NFP_MEMTYPE_EMU_CACHE 9
+
+/* VTP_FORCE is for use by the NFP Linker+Loader only. */
+#define NFP_IREG_VTP_FORCE 0
+#define NFP_IREG_VTP_CONST 1
+#define NFP_IREG_VTP_REQUIRED 2
+#define NFP_IREG_VTP_VOLATILE_INIT 3
+#define NFP_IREG_VTP_VOLATILE_NOINIT 4
+#define NFP_IREG_VTP_INVALID 5
+
+/* Init-CSR entry w0 fields:
+ NLW - Not Last Word
+ CTX - ME context number (if applicable)
+ VTP - Value type
+ COH - CPP Offset High 8 bits. */
+#define NFP_IREG_ENTRY_WO_NLW(w0) (((w0) >> 31) & 0x1)
+#define NFP_IREG_ENTRY_WO_CTX(w0) (((w0) >> 28) & 0x7)
+#define NFP_IREG_ENTRY_WO_VTP(w0) (((w0) >> 25) & 0x7)
+#define NFP_IREG_ENTRY_WO_COH(w0) (((w0) >> 0) & 0xFF)
+
+typedef struct
+{
+ uint32_t w0;
+ uint32_t cpp_offset_lo;
+ uint32_t val;
+ uint32_t mask;
+} Elf_Nfp_InitRegEntry;
+
+typedef struct
+{
+ uint32_t ctx_enables;
+ uint32_t entry;
+ uint32_t misc_control;
+ uint32_t reserved;
+} Elf_Nfp_MeConfig;
+
+/* Relocations. */
+START_RELOC_NUMBERS (elf_nfp3200_reloc_type)
+ RELOC_NUMBER (R_NFP3200_NOTYPE, 0)
+ RELOC_NUMBER (R_NFP3200_W32LE, 1)
+ RELOC_NUMBER (R_NFP3200_SRC8_A, 2)
+ RELOC_NUMBER (R_NFP3200_SRC8_B, 3)
+ RELOC_NUMBER (R_NFP3200_IMMED8_I, 4)
+ RELOC_NUMBER (R_NFP3200_SC, 5)
+ RELOC_NUMBER (R_NFP3200_IMMED_LO16_I_A, 6)
+ RELOC_NUMBER (R_NFP3200_IMMED_LO16_I_B, 7)
+ RELOC_NUMBER (R_NFP3200_SRC7_B, 8)
+ RELOC_NUMBER (R_NFP3200_SRC7_A, 9)
+ RELOC_NUMBER (R_NFP3200_SRC8_I_B, 10)
+ RELOC_NUMBER (R_NFP3200_SRC8_I_A, 11)
+ RELOC_NUMBER (R_NFP3200_IMMED_HI16_I_A, 12)
+ RELOC_NUMBER (R_NFP3200_IMMED_HI16_I_B, 13)
+ RELOC_NUMBER (R_NFP3200_RSVD_0, 14)
+ RELOC_NUMBER (R_NFP3200_RSVD_1, 15)
+ RELOC_NUMBER (R_NFP3200_RSVD_2, 16)
+ RELOC_NUMBER (R_NFP3200_RSVD_3, 17)
+ RELOC_NUMBER (R_NFP3200_RSVD_4, 18)
+ RELOC_NUMBER (R_NFP3200_RSVD_5, 19)
+ RELOC_NUMBER (R_NFP3200_RSVD_6, 20)
+ RELOC_NUMBER (R_NFP3200_W64LE, 21)
+ RELOC_NUMBER (R_NFP3200_W32BE, 22)
+ RELOC_NUMBER (R_NFP3200_W64BE, 23)
+ RELOC_NUMBER (R_NFP3200_W32LE_AND, 24)
+ RELOC_NUMBER (R_NFP3200_W32BE_AND, 25)
+ RELOC_NUMBER (R_NFP3200_W32LE_OR, 26)
+ RELOC_NUMBER (R_NFP3200_W32BE_OR, 27)
+ RELOC_NUMBER (R_NFP3200_W64LE_AND, 28)
+ RELOC_NUMBER (R_NFP3200_W64BE_AND, 29)
+ RELOC_NUMBER (R_NFP3200_W64LE_OR, 30)
+ RELOC_NUMBER (R_NFP3200_W64BE_OR, 31)
+END_RELOC_NUMBERS (R_NFP3200_MAX)
+
+START_RELOC_NUMBERS (elf_nfp_reloc_type)
+ RELOC_NUMBER (R_NFP_NOTYPE, 0)
+ RELOC_NUMBER (R_NFP_W32LE, 1)
+ RELOC_NUMBER (R_NFP_SRC8_A, 2)
+ RELOC_NUMBER (R_NFP_SRC8_B, 3)
+ RELOC_NUMBER (R_NFP_IMMED8_I, 4)
+ RELOC_NUMBER (R_NFP_SC, 5)
+ RELOC_NUMBER (R_NFP_IMMED_LO16_I_A, 6)
+ RELOC_NUMBER (R_NFP_IMMED_LO16_I_B, 7)
+ RELOC_NUMBER (R_NFP_SRC7_B, 8)
+ RELOC_NUMBER (R_NFP_SRC7_A, 9)
+ RELOC_NUMBER (R_NFP_SRC8_I_B, 10)
+ RELOC_NUMBER (R_NFP_SRC8_I_A, 11)
+ RELOC_NUMBER (R_NFP_IMMED_HI16_I_A, 12)
+ RELOC_NUMBER (R_NFP_IMMED_HI16_I_B, 13)
+ RELOC_NUMBER (R_NFP_W64LE, 14)
+ RELOC_NUMBER (R_NFP_SH_INFO, 15)
+ RELOC_NUMBER (R_NFP_W32BE, 16)
+ RELOC_NUMBER (R_NFP_W64BE, 17)
+ RELOC_NUMBER (R_NFP_W32_29_24, 18)
+ RELOC_NUMBER (R_NFP_W32LE_AND, 19)
+ RELOC_NUMBER (R_NFP_W32BE_AND, 20)
+ RELOC_NUMBER (R_NFP_W32LE_OR, 21)
+ RELOC_NUMBER (R_NFP_W32BE_OR, 22)
+ RELOC_NUMBER (R_NFP_W64LE_AND, 23)
+ RELOC_NUMBER (R_NFP_W64BE_AND, 24)
+ RELOC_NUMBER (R_NFP_W64LE_OR, 25)
+ RELOC_NUMBER (R_NFP_W64BE_OR, 26)
+END_RELOC_NUMBERS (R_NFP_MAX)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ELF_NFP_H */
diff --git a/include/opcode/nfp.h b/include/opcode/nfp.h
new file mode 100644
index 0000000..6d9efaf
--- /dev/null
+++ b/include/opcode/nfp.h
@@ -0,0 +1,180 @@
+/* nfp.h. NFP opcode list.
+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+ This file is part of the GNU opcodes library.
+
+ GDB, GAS, and the GNU binutils are free software; you can redistribute
+ them and/or modify them under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either version 3,
+ or (at your option) any later version.
+
+ GDB, GAS, and the GNU binutils are distributed in the hope that they
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this file; see the file COPYING3. If not, write to the Free
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _NFP_H_
+#define _NFP_H_
+
+#include "bfd.h"
+#include "elf/nfp.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* The bfd_vma type has the description below, so we use that and BFD_VMA_FMT
+ instead of uint64_t or bfd_uint64_t.
+ "Represent a target address. Also used as a generic unsigned type
+ which is guaranteed to be big enough to hold any arithmetic types
+ we need to deal with."
+
+ We use ME versions for most of this rather than NFP family and revision
+ numbers. The version numbers are currently 2.7 and 2.8 and to avoid long
+ names with many underscores we'll just use 27 and 28 until some feature
+ number makes it necessary to do something different. */
+
+#define NFP_ME27_INSTR_MASK_CMD ((bfd_vma) 0x008000000000)
+#define NFP_ME27_INSTR_CMD ((bfd_vma) 0x000000000000)
+#define NFP_ME27_INSTR_IS_CMD(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_CMD) == NFP_ME27_INSTR_CMD)
+
+#define NFP_ME27_INSTR_MASK_ALU_SHF ((bfd_vma) 0x1ee000000000)
+#define NFP_ME27_INSTR_ALU_SHF ((bfd_vma) 0x008000000000)
+#define NFP_ME27_INSTR_IS_ALU_SHF(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_ALU_SHF) == NFP_ME27_INSTR_ALU_SHF)
+
+#define NFP_ME27_INSTR_MASK_ALU ((bfd_vma) 0x1ee000000000)
+#define NFP_ME27_INSTR_ALU ((bfd_vma) 0x00a000000000)
+#define NFP_ME27_INSTR_IS_ALU(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_ALU) == NFP_ME27_INSTR_ALU)
+
+#define NFP_ME27_INSTR_MASK_IMMED ((bfd_vma) 0x1ff900000000)
+#define NFP_ME27_INSTR_IMMED ((bfd_vma) 0x00f000000000)
+#define NFP_ME27_INSTR_IS_IMMED(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_IMMED) == NFP_ME27_INSTR_IMMED)
+
+#define NFP_ME27_INSTR_MASK_LD_FIELD ((bfd_vma) 0x1ffa00e00000)
+#define NFP_ME27_INSTR_LD_FIELD ((bfd_vma) 0x00c000000000)
+#define NFP_ME27_INSTR_IS_LD_FIELD(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_LD_FIELD) == NFP_ME27_INSTR_LD_FIELD)
+
+#define NFP_ME27_INSTR_MASK_CTX_ARB ((bfd_vma) 0x00f800000000)
+#define NFP_ME27_INSTR_CTX_ARB ((bfd_vma) 0x00e000000000)
+#define NFP_ME27_INSTR_IS_CTX_ARB(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_CTX_ARB) == NFP_ME27_INSTR_CTX_ARB)
+
+#define NFP_ME27_INSTR_MASK_LOCAL_CSR ((bfd_vma) 0x1ffe00100000)
+#define NFP_ME27_INSTR_LOCAL_CSR ((bfd_vma) 0x00fc00000000)
+#define NFP_ME27_INSTR_IS_LOCAL_CSR(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_LOCAL_CSR) == NFP_ME27_INSTR_LOCAL_CSR)
+
+#define NFP_ME27_INSTR_MASK_BRANCH ((bfd_vma) 0x00f8000c3ce0)
+#define NFP_ME27_INSTR_BRANCH ((bfd_vma) 0x00d800000020)
+#define NFP_ME27_INSTR_IS_BRANCH(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_BRANCH) == NFP_ME27_INSTR_BRANCH)
+
+#define NFP_ME27_INSTR_MASK_BR_BYTE ((bfd_vma) 0x00f800000000)
+#define NFP_ME27_INSTR_BR_BYTE ((bfd_vma) 0x00c800000000)
+#define NFP_ME27_INSTR_IS_BR_BYTE(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_BR_BYTE) == NFP_ME27_INSTR_BR_BYTE)
+
+#define NFP_ME27_INSTR_MASK_BR_BIT ((bfd_vma) 0x00f800080300)
+#define NFP_ME27_INSTR_BR_BIT ((bfd_vma) 0x00d000000000)
+#define NFP_ME27_INSTR_IS_BR_BIT(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_BR_BIT) == NFP_ME27_INSTR_BR_BIT)
+
+#define NFP_ME27_INSTR_MASK_BR_ALU ((bfd_vma) 0x1fff80000000)
+#define NFP_ME27_INSTR_BR_ALU ((bfd_vma) 0x00e800000000)
+#define NFP_ME27_INSTR_IS_BR_ALU(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_BR_ALU) == NFP_ME27_INSTR_BR_ALU)
+
+#define NFP_ME27_INSTR_MASK_MULT ((bfd_vma) 0x1efe3f000000)
+#define NFP_ME27_INSTR_MULT ((bfd_vma) 0x00f800000000)
+#define NFP_ME27_INSTR_IS_MULT(instr) \
+ ((instr & NFP_ME27_INSTR_MASK_MULT) == NFP_ME27_INSTR_MULT)
+
+
+#define NFP_ME28_INSTR_MASK_CMD ((bfd_vma) 0x008000000000)
+#define NFP_ME28_INSTR_CMD ((bfd_vma) 0x000000000000)
+#define NFP_ME28_INSTR_IS_CMD(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_CMD) == NFP_ME28_INSTR_CMD)
+
+#define NFP_ME28_INSTR_MASK_ALU_SHF ((bfd_vma) 0x00e000000000)
+#define NFP_ME28_INSTR_ALU_SHF ((bfd_vma) 0x008000000000)
+#define NFP_ME28_INSTR_IS_ALU_SHF(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_ALU_SHF) == NFP_ME28_INSTR_ALU_SHF)
+
+#define NFP_ME28_INSTR_MASK_ALU ((bfd_vma) 0x00e000000000)
+#define NFP_ME28_INSTR_ALU ((bfd_vma) 0x00a000000000)
+#define NFP_ME28_INSTR_IS_ALU(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_ALU) == NFP_ME28_INSTR_ALU)
+
+#define NFP_ME28_INSTR_MASK_IMMED ((bfd_vma) 0x01f900000000)
+#define NFP_ME28_INSTR_IMMED ((bfd_vma) 0x00f000000000)
+#define NFP_ME28_INSTR_IS_IMMED(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_IMMED) == NFP_ME28_INSTR_IMMED)
+
+#define NFP_ME28_INSTR_MASK_LD_FIELD ((bfd_vma) 0x01fa00e00000)
+#define NFP_ME28_INSTR_LD_FIELD ((bfd_vma) 0x00c000000000)
+#define NFP_ME28_INSTR_IS_LD_FIELD(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_LD_FIELD) == NFP_ME28_INSTR_LD_FIELD)
+
+#define NFP_ME28_INSTR_MASK_CTX_ARB ((bfd_vma) 0x00f800000000)
+#define NFP_ME28_INSTR_CTX_ARB ((bfd_vma) 0x00e000000000)
+#define NFP_ME28_INSTR_IS_CTX_ARB(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_CTX_ARB) == NFP_ME28_INSTR_CTX_ARB)
+
+#define NFP_ME28_INSTR_MASK_LOCAL_CSR ((bfd_vma) 0x01fe00100000)
+#define NFP_ME28_INSTR_LOCAL_CSR ((bfd_vma) 0x00fc00000000)
+#define NFP_ME28_INSTR_IS_LOCAL_CSR(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_LOCAL_CSR) == NFP_ME28_INSTR_LOCAL_CSR)
+
+#define NFP_ME28_INSTR_MASK_BRANCH ((bfd_vma) 0x00f8000c3ce0)
+#define NFP_ME28_INSTR_BRANCH ((bfd_vma) 0x00d800000020)
+#define NFP_ME28_INSTR_IS_BRANCH(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_BRANCH) == NFP_ME28_INSTR_BRANCH)
+
+#define NFP_ME28_INSTR_MASK_BR_BYTE ((bfd_vma) 0x00f800000000)
+#define NFP_ME28_INSTR_BR_BYTE ((bfd_vma) 0x00c800000000)
+#define NFP_ME28_INSTR_IS_BR_BYTE(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_BR_BYTE) == NFP_ME28_INSTR_BR_BYTE)
+
+#define NFP_ME28_INSTR_MASK_BR_BIT ((bfd_vma) 0x00f800080300)
+#define NFP_ME28_INSTR_BR_BIT ((bfd_vma) 0x00d000000000)
+#define NFP_ME28_INSTR_IS_BR_BIT(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_BR_BIT) == NFP_ME28_INSTR_BR_BIT)
+
+#define NFP_ME28_INSTR_MASK_BR_ALU ((bfd_vma) 0x00ff80000000)
+#define NFP_ME28_INSTR_BR_ALU ((bfd_vma) 0x00e800000000)
+#define NFP_ME28_INSTR_IS_BR_ALU(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_BR_ALU) == NFP_ME28_INSTR_BR_ALU)
+
+#define NFP_ME28_INSTR_MASK_MULT ((bfd_vma) 0x00fe3f000000)
+#define NFP_ME28_INSTR_MULT ((bfd_vma) 0x00f800000000)
+#define NFP_ME28_INSTR_IS_MULT(instr) \
+ ((instr & NFP_ME28_INSTR_MASK_MULT) == NFP_ME28_INSTR_MULT)
+
+typedef struct
+{
+ int cpp_target;
+ int cpp_action;
+ int cpp_token;
+ unsigned int len_fixed;
+ unsigned int len_mask;
+ const char *mnemonic;
+}
+nfp_cmd_mnemonic;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NFP_H_ */
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index be522a1..e0834bf 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,14 @@
+2018-04-30 Francois H. Theron <francois.theron@netronome.com>
+
+ Makefile.am: Added nfp-dis.c.
+ configure.ac: Added bfd_nfp_arch.
+ disassemble.h: Added print_insn_nfp prototype.
+ disassemble.c: Added ARCH_nfp and call to print_insn_nfp
+ nfp-dis.c: New, for NFP support.
+ po/POTFILES.in: Added nfp-dis.c to the list.
+ Makefile.in: Regenerate.
+ configure: Regenerate.
+
2018-04-26 Jan Beulich <jbeulich@suse.com>
* i386-opc.tbl: Fold various non-memory operand AVX512VL
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index 05def3f..0c7d09d 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -200,6 +200,7 @@ TARGET_LIBOPCODES_CFILES = \
mt-opc.c \
nds32-asm.c \
nds32-dis.c \
+ nfp-dis.c \
nios2-dis.c \
nios2-opc.c \
ns32k-dis.c \
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index ca82230..0d85bd4 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -502,6 +502,7 @@ TARGET_LIBOPCODES_CFILES = \
mt-opc.c \
nds32-asm.c \
nds32-dis.c \
+ nfp-dis.c \
nios2-dis.c \
nios2-opc.c \
ns32k-dis.c \
@@ -902,6 +903,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mt-opc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nds32-asm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nds32-dis.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfp-dis.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nios2-dis.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nios2-opc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ns32k-dis.Plo@am__quote@
diff --git a/opcodes/configure b/opcodes/configure
index 6e58d0c..c7a8805 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -12671,6 +12671,7 @@ if test x${all_targets} = xfalse ; then
bfd_mt_arch) ta="$ta mt-asm.lo mt-desc.lo mt-dis.lo mt-ibld.lo mt-opc.lo" using_cgen=yes ;;
bfd_msp430_arch) ta="$ta msp430-dis.lo msp430-decode.lo" ;;
bfd_nds32_arch) ta="$ta nds32-asm.lo nds32-dis.lo" ;;
+ bfd_nfp_arch) ta="$ta nfp-dis.lo" ;;
bfd_nios2_arch) ta="$ta nios2-dis.lo nios2-opc.lo" ;;
bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
bfd_or1k_arch) ta="$ta or1k-asm.lo or1k-desc.lo or1k-dis.lo or1k-ibld.lo or1k-opc.lo" using_cgen=yes ;;
diff --git a/opcodes/configure.ac b/opcodes/configure.ac
index 2bd880f..e42b661 100644
--- a/opcodes/configure.ac
+++ b/opcodes/configure.ac
@@ -295,6 +295,7 @@ if test x${all_targets} = xfalse ; then
bfd_mt_arch) ta="$ta mt-asm.lo mt-desc.lo mt-dis.lo mt-ibld.lo mt-opc.lo" using_cgen=yes ;;
bfd_msp430_arch) ta="$ta msp430-dis.lo msp430-decode.lo" ;;
bfd_nds32_arch) ta="$ta nds32-asm.lo nds32-dis.lo" ;;
+ bfd_nfp_arch) ta="$ta nfp-dis.lo" ;;
bfd_nios2_arch) ta="$ta nios2-dis.lo nios2-opc.lo" ;;
bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
bfd_or1k_arch) ta="$ta or1k-asm.lo or1k-desc.lo or1k-dis.lo or1k-ibld.lo or1k-opc.lo" using_cgen=yes ;;
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 4cb90f1..100ccd3 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -64,6 +64,7 @@
#define ARCH_mt
#define ARCH_msp430
#define ARCH_nds32
+#define ARCH_nfp
#define ARCH_nios2
#define ARCH_ns32k
#define ARCH_or1k
@@ -275,6 +276,11 @@ disassembler (enum bfd_architecture a,
disassemble = print_insn_nds32;
break;
#endif
+#ifdef ARCH_nfp
+ case bfd_arch_nfp:
+ disassemble = print_insn_nfp;
+ break;
+#endif
#ifdef ARCH_ns32k
case bfd_arch_ns32k:
disassemble = print_insn_ns32k;
@@ -537,6 +543,9 @@ disassembler_usage (FILE *stream ATTRIBUTE_UNUSED)
#ifdef ARCH_mips
print_mips_disassembler_options (stream);
#endif
+#ifdef ARCH_nfp
+ print_nfp_disassembler_options (stream);
+#endif
#ifdef ARCH_powerpc
print_ppc_disassembler_options (stream);
#endif
diff --git a/opcodes/disassemble.h b/opcodes/disassemble.h
index 5284033..9d78b21 100644
--- a/opcodes/disassemble.h
+++ b/opcodes/disassemble.h
@@ -72,6 +72,7 @@ extern int print_insn_moxie (bfd_vma, disassemble_info *);
extern int print_insn_msp430 (bfd_vma, disassemble_info *);
extern int print_insn_mt (bfd_vma, disassemble_info *);
extern int print_insn_nds32 (bfd_vma, disassemble_info *);
+extern int print_insn_nfp (bfd_vma, disassemble_info *);
extern int print_insn_ns32k (bfd_vma, disassemble_info *);
extern int print_insn_or1k (bfd_vma, disassemble_info *);
extern int print_insn_pdp11 (bfd_vma, disassemble_info *);
diff --git a/opcodes/nfp-dis.c b/opcodes/nfp-dis.c
new file mode 100644
index 0000000..30442db
--- /dev/null
+++ b/opcodes/nfp-dis.c
@@ -0,0 +1,2990 @@
+/* Print NFP instructions for objdump.
+ Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+ This file is part of the GNU opcodes library.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* There will be many magic numbers here that are based on hardware.
+ Making #define macros for each encoded bit field will probably reduce
+ readability far more than the simple numbers will, so we make sure that
+ the context of the magic numbers make it clear what they are used for. */
+
+#include "sysdep.h"
+#include <stdio.h>
+#include "disassemble.h"
+#include "libiberty.h"
+#include "elf/nfp.h"
+#include "opcode/nfp.h"
+#include "opintl.h"
+#include "elf-bfd.h"
+#include "bfd.h"
+#include "bfd_stdint.h"
+#include "libbfd.h"
+
+#define _NFP_ERR_STOP -1
+#define _NFP_ERR_CONT -8
+
+/* The bfd_vma type has the description below, so we use that and BFD_VMA_FMT
+ instead of uint64_t or bfd_uint64_t.
+ "Represent a target address. Also used as a generic unsigned type
+ which is guaranteed to be big enough to hold any arithmetic types
+ we need to deal with." */
+
+#define _BTST(v, b) (((v) >> b) & 1)
+#define _BF(v, msb, lsb) (((v) >> (lsb)) & ((1U << ((msb) - (lsb) + 1)) - 1))
+#define _BFS(v, msb, lsb, lshift) (_BF(v, msb, lsb) << (lshift))
+
+#define _NFP_ME27_28_CSR_CTX_ENABLES 0x18
+#define _NFP_ME27_28_CSR_MISC_CONTROL 0x160
+
+typedef struct
+{
+ unsigned char ctx4_mode:1;
+ unsigned char addr_3rdparty32:1;
+ unsigned char scs_cnt:2;
+ unsigned char _future:4;
+}
+nfp_priv_mecfg;
+
+typedef struct
+{
+ unsigned char show_pc;
+ unsigned char ctx_mode;
+}
+nfp_opts;
+
+/* mecfgs[island][menum][is-text] */
+typedef struct
+{
+ nfp_priv_mecfg mecfgs[64][12][2];
+}
+nfp_priv_data;
+
+static const char *nfp_mealu_shf_op[8] =
+{
+ /* 0b000 (0) */ "B",
+ /* 0b001 (1) */ "~B",
+ /* 0b010 (2) */ "AND",
+ /* 0b011 (3) */ "~AND",
+ /* 0b100 (4) */ "AND~",
+ /* 0b101 (5) */ "OR",
+ /* 0b110 (6) */ "asr",
+ /* 0b111 (7) */ "byte_align"
+};
+
+static const char *nfp_me27_28_alu_op[32] =
+{
+ /* 0b00000 (0) */ "B",
+ /* 0b00001 (1) */ "+",
+ NULL,
+ /* 0b00011 (3) */ "pop_count3",
+ /* 0b00100 (4) */ "~B",
+ /* 0b00101 (5) */ "+16",
+ /* 0b00110 (6) */ "pop_count1",
+ /* 0b00111 (7) */ "pop_count2",
+ /* 0b01000 (8) */ "AND",
+ /* 0b01001 (9) */ "+8",
+ NULL,
+ /* 0b01011 (11) */ "cam_clear",
+ /* 0b01100 (12) */ "~AND",
+ /* 0b01101 (13) */ "-carry",
+ /* 0b01110 (14) */ "ffs",
+ /* 0b01111 (15) */ "cam_read_tag",
+ /* 0b10000 (16) */ "AND~",
+ /* 0b10001 (17) */ "+carry",
+ /* 0b10010 (18) */ "CRC",
+ /* 0b10011 (19) */ "cam_write",
+ /* 0b10100 (20) */ "OR",
+ /* 0b10101 (21) */ "-",
+ NULL,
+ /* 0b10111 (23) */ "cam_lookup",
+ /* 0b11000 (24) */ "XOR",
+ /* 0b11001 (25) */ "B-A",
+ NULL,
+ /* 0b11011 (27) */ "cam_write_state",
+ NULL,
+ NULL,
+ NULL,
+ /* 0b11111 (31) */ "cam_read_state"
+};
+
+static const char *nfp_me27_28_crc_op[8] =
+{
+ /* 0b000 (0) */ "--",
+ NULL,
+ /* 0b010 (2) */ "crc_ccitt",
+ NULL,
+ /* 0b100 (4) */ "crc_32",
+ /* 0b101 (5) */ "crc_iscsi",
+ /* 0b110 (6) */ "crc_10",
+ /* 0b111 (7) */ "crc_5"
+};
+
+static const char *nfp_me27_28_crc_bytes[8] =
+{
+ /* 0b000 (0) */ "bytes_0_3",
+ /* 0b001 (1) */ "bytes_1_3",
+ /* 0b010 (2) */ "bytes_2_3",
+ /* 0b011 (3) */ "byte_3",
+ /* 0b100 (4) */ "bytes_0_2",
+ /* 0b101 (5) */ "bytes_0_1",
+ /* 0b110 (6) */ "byte_0"
+};
+
+static const char *nfp_me27_28_mecsrs[] =
+{
+ /* 0x000 (0) */ "UstorAddr",
+ /* 0x004 (1) */ "UstorDataLwr",
+ /* 0x008 (2) */ "UstorDataUpr",
+ /* 0x00c (3) */ "UstorErrStat",
+ /* 0x010 (4) */ "ALUOut",
+ /* 0x014 (5) */ "CtxArbCtrl",
+ /* 0x018 (6) */ "CtxEnables",
+ /* 0x01c (7) */ "CondCodeEn",
+ /* 0x020 (8) */ "CSRCtxPtr",
+ /* 0x024 (9) */ "PcBreakpoint0",
+ /* 0x028 (10) */ "PcBreakpoint1",
+ /* 0x02c (11) */ "PcBreakpointStatus",
+ /* 0x030 (12) */ "RegErrStatus",
+ /* 0x034 (13) */ "LMErrStatus",
+ /* 0x038 (14) */ "LMeccErrorMask",
+ NULL,
+ /* 0x040 (16) */ "IndCtxStatus",
+ /* 0x044 (17) */ "ActCtxStatus",
+ /* 0x048 (18) */ "IndCtxSglEvt",
+ /* 0x04c (19) */ "ActCtxSglEvt",
+ /* 0x050 (20) */ "IndCtxWkpEvt",
+ /* 0x054 (21) */ "ActCtxWkpEvt",
+ /* 0x058 (22) */ "IndCtxFtrCnt",
+ /* 0x05c (23) */ "ActCtxFtrCnt",
+ /* 0x060 (24) */ "IndLMAddr0",
+ /* 0x064 (25) */ "ActLMAddr0",
+ /* 0x068 (26) */ "IndLMAddr1",
+ /* 0x06c (27) */ "ActLMAddr1",
+ /* 0x070 (28) */ "ByteIndex",
+ /* 0x074 (29) */ "XferIndex",
+ /* 0x078 (30) */ "IndFtrCntSgl",
+ /* 0x07c (31) */ "ActFtrCntSgl",
+ /* 0x080 (32) */ "NNPut",
+ /* 0x084 (33) */ "NNGet",
+ NULL,
+ NULL,
+ /* 0x090 (36) */ "IndLMAddr2",
+ /* 0x094 (37) */ "ActLMAddr2",
+ /* 0x098 (38) */ "IndLMAddr3",
+ /* 0x09c (39) */ "ActLMAddr3",
+ /* 0x0a0 (40) */ "IndLMAddr2BytIdx",
+ /* 0x0a4 (41) */ "ActLMAddr2BytIdx",
+ /* 0x0a8 (42) */ "IndLMAddr3BytIdx",
+ /* 0x0ac (43) */ "ActLMAddr3BytIdx",
+ /* 0x0b0 (44) */ "IndPredCC",
+ NULL,
+ NULL,
+ NULL,
+ /* 0x0c0 (48) */ "TimestampLow",
+ /* 0x0c4 (49) */ "TimestampHgh",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ /* 0x0e0 (56) */ "IndLMAddr0BytIdx",
+ /* 0x0e4 (57) */ "ActLMAddr0BytIdx",
+ /* 0x0e8 (58) */ "IndLMAddr1BytIdx",
+ /* 0x0ec (59) */ "ActLMAddr1BytIdx",
+ NULL,
+ /* 0x0f4 (61) */ "XfrAndBytIdx",
+ NULL,
+ NULL,
+ /* 0x100 (64) */ "NxtNghbrSgl",
+ /* 0x104 (65) */ "PrvNghbrSgl",
+ /* 0x108 (66) */ "SameMESignal",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ /* 0x140 (80) */ "CRCRemainder",
+ /* 0x144 (81) */ "ProfileCnt",
+ /* 0x148 (82) */ "PseudoRndNum",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ /* 0x160 (88) */ "MiscControl",
+ /* 0x164 (89) */ "PcBreakpoint0Mask",
+ /* 0x168 (90) */ "PcBreakpoint1Mask",
+ NULL,
+ /* 0x170 (92) */ "Mailbox0",
+ /* 0x174 (93) */ "Mailbox1",
+ /* 0x178 (94) */ "Mailbox2",
+ /* 0x17c (95) */ "Mailbox3",
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ /* 0x190 (100) */ "CmdIndirectRef0"
+};
+
+const char *nfp_me27_28_br_ops[32] =
+{
+ /* 0b00000 (0) */ "beq",
+ /* 0b00001 (1) */ "bne",
+ /* 0b00010 (2) */ "bmi",
+ /* 0b00011 (3) */ "bpl",
+ /* 0b00100 (4) */ "bcs",
+ /* 0b00101 (5) */ "bcc",
+ /* 0b00110 (6) */ "bvs",
+ /* 0b00111 (7) */ "bvc",
+ /* 0b01000 (8) */ "bge",
+ /* 0b01001 (9) */ "blt",
+ /* 0b01010 (10) */ "ble",
+ /* 0b01011 (11) */ "bgt",
+ /* (12) */ NULL,
+ /* (13) */ NULL,
+ /* (14) */ NULL,
+ /* (15) */ NULL,
+ /* 0b10000 (16) */ "br=ctx",
+ /* 0b10001 (17) */ "br!=ctx",
+ /* 0b10010 (18) */ "br_signal",
+ /* 0b10011 (19) */ "br_!signal",
+ /* 0b10100 (20) */ "br_inp_state",
+ /* 0b10101 (21) */ "br_!inp_state",
+ /* 0b10110 (22) */ "br_cls_state",
+ /* 0b10111 (23) */ "br_!cls_state",
+ /* 0b11000 (24) */ "br",
+ /* (25) */ NULL,
+ /* (26) */ NULL,
+ /* (27) */ NULL,
+ /* (28) */ NULL,
+ /* (29) */ NULL,
+ /* (30) */ NULL,
+ /* (31) */ NULL
+};
+
+static const char *nfp_me27_br_inpstates[16] =
+{
+ /* 0 */ "nn_empty",
+ /* 1 */ "nn_full",
+ /* 2 */ "scr_ring0_status",
+ /* 3 */ "scr_ring1_status",
+ /* 4 */ "scr_ring2_status",
+ /* 5 */ "scr_ring3_status",
+ /* 6 */ "scr_ring4_status",
+ /* 7 */ "scr_ring5_status",
+ /* 8 */ "scr_ring6_status",
+ /* 9 */ "scr_ring7_status",
+ /* 10 */ "scr_ring8_status",
+ /* 11 */ "scr_ring9_status",
+ /* 12 */ "scr_ring10_status",
+ /* 13 */ "scr_ring11_status",
+ /* 14 */ "fci_not_empty",
+ /* 15 */ "fci_full"
+};
+
+static const char *nfp_me28_br_inpstates[16] =
+{
+ /* 0 */ "nn_empty",
+ /* 1 */ "nn_full",
+ /* 2 */ "ctm_ring0_status",
+ /* 3 */ "ctm_ring1_status",
+ /* 4 */ "ctm_ring2_status",
+ /* 5 */ "ctm_ring3_status",
+ /* 6 */ "ctm_ring4_status",
+ /* 7 */ "ctm_ring5_status",
+ /* 8 */ "ctm_ring6_status",
+ /* 9 */ "ctm_ring7_status",
+ /* 10 */ "ctm_ring8_status",
+ /* 11 */ "ctm_ring9_status",
+ /* 12 */ "ctm_ring10_status",
+ /* 13 */ "ctm_ring11_status",
+ /* 14 */ "ctm_ring12_status",
+ /* 15 */ "ctm_ring13_status"
+};
+
+static const char *nfp_me27_28_mult_steps[8] =
+{
+ /* 0 */ "step1",
+ /* 1 */ "step2",
+ /* 2 */ "step3",
+ /* 3 */ "step4",
+ /* 4 */ "last",
+ /* 5 */ "last2",
+ NULL,
+ NULL
+};
+
+static const char *nfp_me27_28_mult_types[4] =
+{
+ "start",
+ "24x8",
+ "16x16",
+ "32x32"
+};
+
+/* The cmd_mnemonics arrays are sorted here in its definition so that we can
+ use bsearch () on the first three fields. There can be multiple matches
+ and we assume that bsearch can return any of them, so we manually step
+ back to the first one. */
+
+static const nfp_cmd_mnemonic nfp_me27_mnemonics[] =
+{
+ {NFP_3200_CPPTGT_MSF0, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_MSF0, 0, 2, 0, 0, "read64"},
+ {NFP_3200_CPPTGT_MSF0, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_MSF0, 1, 1, 0, 0, "fast_wr"},
+ {NFP_3200_CPPTGT_MSF0, 1, 2, 0, 0, "write64"},
+ {NFP_3200_CPPTGT_QDR, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_QDR, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_QDR, 2, 0, 0, 0, "write_atomic"},
+ {NFP_3200_CPPTGT_QDR, 2, 1, 0, 0, "swap"},
+ {NFP_3200_CPPTGT_QDR, 3, 0, 0, 0, "set"},
+ {NFP_3200_CPPTGT_QDR, 3, 1, 0, 0, "test_and_set"},
+ {NFP_3200_CPPTGT_QDR, 4, 0, 0, 0, "clr"},
+ {NFP_3200_CPPTGT_QDR, 4, 1, 0, 0, "test_and_clr"},
+ {NFP_3200_CPPTGT_QDR, 5, 0, 0, 0, "add"},
+ {NFP_3200_CPPTGT_QDR, 5, 1, 0, 0, "test_and_add"},
+ {NFP_3200_CPPTGT_QDR, 6, 0, 0, 0, "read_queue"},
+ {NFP_3200_CPPTGT_QDR, 6, 1, 0, 0, "read_queue_ring"},
+ {NFP_3200_CPPTGT_QDR, 6, 2, 0, 0, "write_queue"},
+ {NFP_3200_CPPTGT_QDR, 6, 3, 0, 0, "write_queue_ring"},
+ {NFP_3200_CPPTGT_QDR, 7, 0, 0, 0, "incr"},
+ {NFP_3200_CPPTGT_QDR, 7, 1, 0, 0, "test_and_incr"},
+ {NFP_3200_CPPTGT_QDR, 8, 0, 0, 0, "decr"},
+ {NFP_3200_CPPTGT_QDR, 8, 1, 0, 0, "test_and_decr"},
+ {NFP_3200_CPPTGT_QDR, 9, 0, 0, 0, "put"},
+ {NFP_3200_CPPTGT_QDR, 9, 1, 0, 0, "get"},
+ {NFP_3200_CPPTGT_QDR, 9, 2, 0, 0, "put_imm"},
+ {NFP_3200_CPPTGT_QDR, 9, 3, 0, 0, "pop"},
+ {NFP_3200_CPPTGT_QDR, 10, 0, 0, 0, "journal"},
+ {NFP_3200_CPPTGT_QDR, 10, 1, 0, 0, "fast_journal"},
+ {NFP_3200_CPPTGT_QDR, 11, 0, 0, 0, "dequeue"},
+ {NFP_3200_CPPTGT_QDR, 12, 0, 0, 0, "enqueue"},
+ {NFP_3200_CPPTGT_QDR, 12, 1, 0, 0, "enueue_tail"},
+ {NFP_3200_CPPTGT_QDR, 12, 2, 0, 0, "nfp_enqueue"},
+ {NFP_3200_CPPTGT_QDR, 12, 3, 0, 0, "nfp_enueue_tail"},
+ {NFP_3200_CPPTGT_QDR, 13, 0, 0, 0, "csr_wr"},
+ {NFP_3200_CPPTGT_QDR, 13, 1, 0, 0, "csr_rd"},
+ {NFP_3200_CPPTGT_QDR, 14, 0, 0, 0, "wr_qdesc"},
+ {NFP_3200_CPPTGT_QDR, 14, 1, 0, 0, "nfp_wr_qdesc"},
+ {NFP_3200_CPPTGT_QDR, 14, 2, 0, 0, "wr_qdesc_count"},
+ {NFP_3200_CPPTGT_QDR, 14, 3, 0, 0, "push_qdesc"},
+ {NFP_3200_CPPTGT_QDR, 15, 0, 0, 0, "rd_qdesc_other"},
+ {NFP_3200_CPPTGT_QDR, 15, 1, 0, 0, "rd_qdesc_tail"},
+ {NFP_3200_CPPTGT_QDR, 15, 2, 0, 0, "rd_qdesc_head"},
+ {NFP_3200_CPPTGT_QDR, 15, 3, 0, 0, "nfp_rd_qdesc"},
+ {NFP_3200_CPPTGT_MSF1, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_MSF1, 0, 2, 0, 0, "read64"},
+ {NFP_3200_CPPTGT_MSF1, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_MSF1, 1, 1, 0, 0, "fast_wr"},
+ {NFP_3200_CPPTGT_MSF1, 1, 2, 0, 0, "write64"},
+ {NFP_3200_CPPTGT_HASH, 0, 0, 0, 0, "hash_48"},
+ {NFP_3200_CPPTGT_HASH, 0, 1, 0, 0, "hash_64"},
+ {NFP_3200_CPPTGT_HASH, 0, 2, 0, 0, "hash_128"},
+ {NFP_3200_CPPTGT_MU, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_MU, 0, 1, 0, 0, "read_le"},
+ {NFP_3200_CPPTGT_MU, 0, 2, 0, 0, "read_swap"},
+ {NFP_3200_CPPTGT_MU, 0, 3, 0, 0, "read_swap_le"},
+ {NFP_3200_CPPTGT_MU, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_MU, 1, 1, 0, 0, "write_le"},
+ {NFP_3200_CPPTGT_MU, 1, 2, 0, 0, "write_swap"},
+ {NFP_3200_CPPTGT_MU, 1, 3, 0, 0, "write_swap_le"},
+ {NFP_3200_CPPTGT_MU, 2, 0, 0, 0, "write8"},
+ {NFP_3200_CPPTGT_MU, 2, 1, 0, 0, "write8_le"},
+ {NFP_3200_CPPTGT_MU, 2, 2, 0, 0, "write8_swap"},
+ {NFP_3200_CPPTGT_MU, 2, 3, 0, 0, "write8_swap_le"},
+ {NFP_3200_CPPTGT_MU, 3, 0, 0, 0, "read_atomic"},
+ {NFP_3200_CPPTGT_MU, 3, 1, 0, 0, "read8"},
+ {NFP_3200_CPPTGT_MU, 3, 2, 0, 0, "compare_write"},
+ {NFP_3200_CPPTGT_MU, 3, 3, 0, 0, "test_and_compare_write"},
+ {NFP_3200_CPPTGT_MU, 4, 0, 0, 0, "write_atomic"},
+ {NFP_3200_CPPTGT_MU, 4, 1, 0, 0, "swap"},
+ {NFP_3200_CPPTGT_MU, 4, 2, 0, 0, "write_atomic_imm"},
+ {NFP_3200_CPPTGT_MU, 4, 3, 0, 0, "swap_imm"},
+ {NFP_3200_CPPTGT_MU, 5, 0, 0, 0, "set"},
+ {NFP_3200_CPPTGT_MU, 5, 1, 0, 0, "test_and_set"},
+ {NFP_3200_CPPTGT_MU, 5, 2, 0, 0, "set_imm"},
+ {NFP_3200_CPPTGT_MU, 5, 3, 0, 0, "test_and_set_imm"},
+ {NFP_3200_CPPTGT_MU, 6, 0, 0, 0, "clr"},
+ {NFP_3200_CPPTGT_MU, 6, 1, 0, 0, "test_and_clr"},
+ {NFP_3200_CPPTGT_MU, 6, 2, 0, 0, "clr_imm"},
+ {NFP_3200_CPPTGT_MU, 6, 3, 0, 0, "test_and_clr_imm"},
+ {NFP_3200_CPPTGT_MU, 7, 0, 0, 4, "add"},
+ {NFP_3200_CPPTGT_MU, 7, 0, 4, 4, "add64"},
+ {NFP_3200_CPPTGT_MU, 7, 1, 0, 4, "test_and_add"},
+ {NFP_3200_CPPTGT_MU, 7, 1, 4, 4, "test_and_add64"},
+ {NFP_3200_CPPTGT_MU, 7, 2, 0, 4, "add_imm"},
+ {NFP_3200_CPPTGT_MU, 7, 2, 4, 4, "add64_imm"},
+ {NFP_3200_CPPTGT_MU, 7, 3, 0, 4, "test_and_add_imm"},
+ {NFP_3200_CPPTGT_MU, 7, 3, 4, 4, "test_and_add64_imm"},
+ {NFP_3200_CPPTGT_MU, 8, 0, 0, 4, "add_sat"},
+ {NFP_3200_CPPTGT_MU, 8, 0, 4, 4, "add64_sat"},
+ {NFP_3200_CPPTGT_MU, 8, 1, 0, 4, "test_and_add_sat"},
+ {NFP_3200_CPPTGT_MU, 8, 1, 4, 4, "test_and_add64_sat"},
+ {NFP_3200_CPPTGT_MU, 8, 2, 0, 4, "add_imm_sat"},
+ {NFP_3200_CPPTGT_MU, 8, 2, 4, 4, "add_imm_sat"},
+ {NFP_3200_CPPTGT_MU, 8, 3, 0, 0, "test_and_add_sat_imm"},
+ {NFP_3200_CPPTGT_MU, 9, 0, 0, 4, "sub"},
+ {NFP_3200_CPPTGT_MU, 9, 0, 4, 4, "sub64"},
+ {NFP_3200_CPPTGT_MU, 9, 1, 0, 4, "test_and_sub"},
+ {NFP_3200_CPPTGT_MU, 9, 1, 4, 4, "test_and_sub64"},
+ {NFP_3200_CPPTGT_MU, 9, 2, 0, 4, "sub_imm"},
+ {NFP_3200_CPPTGT_MU, 9, 2, 4, 4, "sub64_imm"},
+ {NFP_3200_CPPTGT_MU, 9, 3, 0, 0, "tes_and_sub_imm"},
+ {NFP_3200_CPPTGT_MU, 10, 0, 0, 4, "sub_sat"},
+ {NFP_3200_CPPTGT_MU, 10, 0, 4, 4, "sub64_sat"},
+ {NFP_3200_CPPTGT_MU, 10, 1, 0, 4, "test_and_sub_sat"},
+ {NFP_3200_CPPTGT_MU, 10, 1, 4, 4, "test_and_sub64_sat"},
+ {NFP_3200_CPPTGT_MU, 10, 2, 0, 4, "sub_imm_sat"},
+ {NFP_3200_CPPTGT_MU, 10, 2, 4, 4, "sub64_imm_sat"},
+ {NFP_3200_CPPTGT_MU, 10, 3, 0, 0, "test_and_sub_sat_imm"},
+ {NFP_3200_CPPTGT_MU, 11, 0, 0, 0, "release_ticket"},
+ {NFP_3200_CPPTGT_MU, 11, 1, 0, 0, "release_ticket_ind"},
+ {NFP_3200_CPPTGT_MU, 12, 0, 0, 0, "cam_lookup"},
+ {NFP_3200_CPPTGT_MU, 12, 1, 0, 0, "cam_lookup_add"},
+ {NFP_3200_CPPTGT_MU, 12, 2, 0, 0, "tcam_lookup"},
+ {NFP_3200_CPPTGT_MU, 12, 3, 0, 3, "lock"},
+ {NFP_3200_CPPTGT_MU, 12, 3, 2, 3, "cam_lookup_add_inc"},
+ {NFP_3200_CPPTGT_MU, 13, 0, 0, 4, "microq128_get"},
+ {NFP_3200_CPPTGT_MU, 13, 0, 4, 4, "microq256_get"},
+ {NFP_3200_CPPTGT_MU, 13, 1, 0, 4, "microq128_pop"},
+ {NFP_3200_CPPTGT_MU, 13, 1, 4, 4, "microq256_pop"},
+ {NFP_3200_CPPTGT_MU, 13, 2, 0, 4, "microq128_put"},
+ {NFP_3200_CPPTGT_MU, 13, 2, 4, 4, "microq256_put"},
+ {NFP_3200_CPPTGT_MU, 14, 0, 0, 4, "queue128_lock"},
+ {NFP_3200_CPPTGT_MU, 14, 0, 4, 4, "queue256_lock"},
+ {NFP_3200_CPPTGT_MU, 14, 1, 0, 4, "queue128_unlock"},
+ {NFP_3200_CPPTGT_MU, 14, 1, 4, 4, "queue256_unlock"},
+ {NFP_3200_CPPTGT_MU, 15, 0, 0, 0, "xor"},
+ {NFP_3200_CPPTGT_MU, 15, 1, 0, 0, "test_and_xor"},
+ {NFP_3200_CPPTGT_MU, 15, 2, 0, 0, "xor_imm"},
+ {NFP_3200_CPPTGT_MU, 15, 3, 0, 0, "test_and_xor_imm"},
+ {NFP_3200_CPPTGT_MU, 16, 0, 0, 0, "rd_qdesc"},
+ {NFP_3200_CPPTGT_MU, 16, 1, 0, 0, "wr_qdesc"},
+ {NFP_3200_CPPTGT_MU, 16, 2, 0, 0, "push_qdesc"},
+ {NFP_3200_CPPTGT_MU, 16, 3, 0, 0, "tag_writeback"},
+ {NFP_3200_CPPTGT_MU, 17, 0, 0, 0, "enqueue"},
+ {NFP_3200_CPPTGT_MU, 17, 1, 0, 0, "enqueue_tail"},
+ {NFP_3200_CPPTGT_MU, 17, 2, 0, 0, "dequeue"},
+ {NFP_3200_CPPTGT_MU, 18, 0, 0, 0, "read_queue"},
+ {NFP_3200_CPPTGT_MU, 18, 1, 0, 0, "read_queue_ring"},
+ {NFP_3200_CPPTGT_MU, 18, 2, 0, 0, "write_queue"},
+ {NFP_3200_CPPTGT_MU, 18, 3, 0, 0, "write_queue_ring"},
+ {NFP_3200_CPPTGT_MU, 19, 0, 0, 0, "add_tail"},
+ {NFP_3200_CPPTGT_MU, 19, 1, 0, 0, "qadd_thread"},
+ {NFP_3200_CPPTGT_MU, 19, 2, 0, 0, "qadd_work"},
+ {NFP_3200_CPPTGT_MU, 19, 3, 0, 0, "qadd_work_imm"},
+ {NFP_3200_CPPTGT_MU, 20, 0, 0, 0, "put"},
+ {NFP_3200_CPPTGT_MU, 20, 1, 0, 0, "put_tag"},
+ {NFP_3200_CPPTGT_MU, 20, 2, 0, 0, "journal"},
+ {NFP_3200_CPPTGT_MU, 20, 3, 0, 0, "journal_tag"},
+ {NFP_3200_CPPTGT_MU, 21, 0, 0, 0, "get"},
+ {NFP_3200_CPPTGT_MU, 21, 1, 0, 0, "get_eop"},
+ {NFP_3200_CPPTGT_MU, 21, 2, 0, 0, "get_safe"},
+ {NFP_3200_CPPTGT_MU, 21, 3, 0, 0, "get_tag_safe"},
+ {NFP_3200_CPPTGT_MU, 22, 0, 0, 0, "pop"},
+ {NFP_3200_CPPTGT_MU, 22, 1, 0, 0, "pop_eop"},
+ {NFP_3200_CPPTGT_MU, 22, 2, 0, 0, "pop_safe"},
+ {NFP_3200_CPPTGT_MU, 22, 3, 0, 0, "pop_tag_safe"},
+ {NFP_3200_CPPTGT_MU, 23, 0, 0, 0, "fast_journal"},
+ {NFP_3200_CPPTGT_MU, 23, 1, 0, 0, "fast_journal_sig"},
+ {NFP_3200_CPPTGT_GS, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_GS, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_GS, 2, 0, 0, 0, "write_atomic"},
+ {NFP_3200_CPPTGT_GS, 2, 1, 0, 0, "swap"},
+ {NFP_3200_CPPTGT_GS, 3, 0, 0, 0, "set"},
+ {NFP_3200_CPPTGT_GS, 3, 1, 0, 0, "test_and_set"},
+ {NFP_3200_CPPTGT_GS, 4, 0, 0, 0, "clr"},
+ {NFP_3200_CPPTGT_GS, 4, 1, 0, 0, "test_and_clr"},
+ {NFP_3200_CPPTGT_GS, 5, 0, 0, 0, "add"},
+ {NFP_3200_CPPTGT_GS, 5, 1, 0, 0, "test_and_add"},
+ {NFP_3200_CPPTGT_GS, 6, 0, 0, 0, "sub"},
+ {NFP_3200_CPPTGT_GS, 6, 1, 0, 0, "test_and_sub"},
+ {NFP_3200_CPPTGT_GS, 7, 0, 0, 0, "inc"},
+ {NFP_3200_CPPTGT_GS, 7, 1, 0, 0, "test_and_inc"},
+ {NFP_3200_CPPTGT_GS, 8, 0, 0, 0, "dec"},
+ {NFP_3200_CPPTGT_GS, 8, 1, 0, 0, "test_and_dec"},
+ {NFP_3200_CPPTGT_GS, 9, 0, 0, 0, "get"},
+ {NFP_3200_CPPTGT_GS, 10, 0, 0, 0, "put"},
+ {NFP_3200_CPPTGT_PCIE, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_PCIE, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_PCIE, 2, 0, 0, 0, "read_internal"},
+ {NFP_3200_CPPTGT_PCIE, 3, 0, 0, 0, "write_internal"},
+ {NFP_3200_CPPTGT_ARM, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_ARM, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_CRYPTO, 0, 0, 0, 0, "read"},
+ {NFP_3200_CPPTGT_CRYPTO, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_CRYPTO, 2, 0, 0, 0, "write_fifo"},
+ {NFP_3200_CPPTGT_CAP, 0, 0, 0, 0, "read_enum"},
+ {NFP_3200_CPPTGT_CAP, 0, 1, 0, 0, "read"},
+ {NFP_3200_CPPTGT_CAP, 0, 2, 0, 0, "read_reflect"},
+ {NFP_3200_CPPTGT_CAP, 1, 0, 0, 0, "write_enum"},
+ {NFP_3200_CPPTGT_CAP, 1, 1, 0, 0, "write"},
+ {NFP_3200_CPPTGT_CAP, 1, 2, 0, 0, "write_reflect"},
+ {NFP_3200_CPPTGT_CAP, 2, 0, 0, 0, "fast_wr_alu"},
+ {NFP_3200_CPPTGT_CAP, 3, 0, 0, 0, "fast_wr"},
+ {NFP_3200_CPPTGT_CT, 1, 0, 0, 0, "write"},
+ {NFP_3200_CPPTGT_CLS, 0, 0, 0, 0, "read_be"},
+ {NFP_3200_CPPTGT_CLS, 0, 1, 0, 0, "read_le"},
+ {NFP_3200_CPPTGT_CLS, 0, 2, 0, 0, "test_and_compare_write"},
+ {NFP_3200_CPPTGT_CLS, 0, 3, 0, 0, "xor"},
+ {NFP_3200_CPPTGT_CLS, 1, 0, 0, 0, "write_be"},
+ {NFP_3200_CPPTGT_CLS, 1, 1, 0, 0, "write_le"},
+ {NFP_3200_CPPTGT_CLS, 1, 2, 0, 0, "write8_be"},
+ {NFP_3200_CPPTGT_CLS, 1, 3, 0, 0, "write8_le"},
+ {NFP_3200_CPPTGT_CLS, 2, 0, 0, 0, "set"},
+ {NFP_3200_CPPTGT_CLS, 2, 1, 0, 0, "clr"},
+ {NFP_3200_CPPTGT_CLS, 2, 2, 0, 0, "test_and_set"},
+ {NFP_3200_CPPTGT_CLS, 2, 3, 0, 0, "test_and_clr"},
+ {NFP_3200_CPPTGT_CLS, 3, 0, 0, 0, "set_imm"},
+ {NFP_3200_CPPTGT_CLS, 3, 1, 0, 0, "clr_imm"},
+ {NFP_3200_CPPTGT_CLS, 3, 2, 0, 0, "test_and_set_imm"},
+ {NFP_3200_CPPTGT_CLS, 3, 3, 0, 0, "test_and_clr_imm"},
+ {NFP_3200_CPPTGT_CLS, 4, 0, 0, 0, "add"},
+ {NFP_3200_CPPTGT_CLS, 4, 1, 0, 0, "add64"},
+ {NFP_3200_CPPTGT_CLS, 4, 2, 0, 0, "add_sat"},
+ {NFP_3200_CPPTGT_CLS, 4, 3, 0, 0, "test_and_add_sat"},
+ {NFP_3200_CPPTGT_CLS, 5, 0, 0, 0, "add_imm"},
+ {NFP_3200_CPPTGT_CLS, 5, 1, 0, 0, "add64_imm"},
+ {NFP_3200_CPPTGT_CLS, 5, 2, 0, 0, "add_imm_sat"},
+ {NFP_3200_CPPTGT_CLS, 5, 3, 0, 0, "test_and_add_imm_sat"},
+ {NFP_3200_CPPTGT_CLS, 6, 0, 0, 0, "sub"},
+ {NFP_3200_CPPTGT_CLS, 6, 1, 0, 0, "sub64"},
+ {NFP_3200_CPPTGT_CLS, 6, 2, 0, 0, "sub_sat"},
+ {NFP_3200_CPPTGT_CLS, 6, 3, 0, 0, "test_and_sub_sat"},
+ {NFP_3200_CPPTGT_CLS, 7, 0, 0, 0, "sub_imm"},
+ {NFP_3200_CPPTGT_CLS, 7, 1, 0, 0, "sub64_imm"},
+ {NFP_3200_CPPTGT_CLS, 7, 2, 0, 0, "sub_imm_sat"},
+ {NFP_3200_CPPTGT_CLS, 7, 3, 0, 0, "test_and_sub_imm_sat"},
+ {NFP_3200_CPPTGT_CLS, 8, 0, 0, 0, "queue_lock"},
+ {NFP_3200_CPPTGT_CLS, 8, 1, 0, 0, "queue_unlock"},
+ {NFP_3200_CPPTGT_CLS, 8, 2, 0, 0, "hash_mask"},
+ {NFP_3200_CPPTGT_CLS, 8, 3, 0, 0, "hash_mask_clear"},
+ {NFP_3200_CPPTGT_CLS, 9, 0, 0, 0, "get"},
+ {NFP_3200_CPPTGT_CLS, 9, 1, 0, 0, "pop"},
+ {NFP_3200_CPPTGT_CLS, 9, 2, 0, 0, "get_safe"},
+ {NFP_3200_CPPTGT_CLS, 9, 3, 0, 0, "pop_safe"},
+ {NFP_3200_CPPTGT_CLS, 10, 0, 0, 0, "put"},
+ {NFP_3200_CPPTGT_CLS, 10, 1, 0, 0, "put_offset"},
+ {NFP_3200_CPPTGT_CLS, 10, 2, 0, 0, "journal"},
+ {NFP_3200_CPPTGT_CLS, 10, 3, 0, 0, "add_tail"},
+ {NFP_3200_CPPTGT_CLS, 11, 0, 0, 0, "cam_lookup32"},
+ {NFP_3200_CPPTGT_CLS, 11, 1, 0, 0, "cam_lookup32_add"},
+ {NFP_3200_CPPTGT_CLS, 11, 2, 0, 0, "cam_lookup24"},
+ {NFP_3200_CPPTGT_CLS, 11, 3, 0, 0, "cam_lookup24_add"},
+ {NFP_3200_CPPTGT_CLS, 12, 0, 0, 0, "cam_lookup8"},
+ {NFP_3200_CPPTGT_CLS, 12, 1, 0, 0, "cam_lookup8_add"},
+ {NFP_3200_CPPTGT_CLS, 12, 2, 0, 0, "cam_lookup16"},
+ {NFP_3200_CPPTGT_CLS, 12, 3, 0, 0, "cam_lookup16_add"},
+ {NFP_3200_CPPTGT_CLS, 13, 0, 0, 0, "tcam_lookup32"},
+ {NFP_3200_CPPTGT_CLS, 13, 1, 0, 0, "tcam_lookup24"},
+ {NFP_3200_CPPTGT_CLS, 13, 2, 0, 0, "tcam_lookup16"},
+ {NFP_3200_CPPTGT_CLS, 13, 3, 0, 0, "tcam_lookup8"},
+ {NFP_3200_CPPTGT_CLS, 14, 0, 0, 0, "reflect_from_sig_src"},
+ {NFP_3200_CPPTGT_CLS, 14, 1, 0, 0, "reflect_from_sig_dst"},
+ {NFP_3200_CPPTGT_CLS, 14, 2, 0, 0, "reflect_from_sig_both"},
+ {NFP_3200_CPPTGT_CLS, 15, 0, 0, 0, "reflect_to_sig_src"},
+ {NFP_3200_CPPTGT_CLS, 15, 1, 0, 0, "reflect_to_sig_dst"},
+ {NFP_3200_CPPTGT_CLS, 15, 2, 0, 0, "reflect_to_sig_both"}
+};
+
+static const nfp_cmd_mnemonic nfp_me28_mnemonics[] =
+{
+ {NFP_6000_CPPTGT_NBI, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_NBI, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_NBI, 3, 0, 0, 0, "packet_ready_drop"},
+ {NFP_6000_CPPTGT_NBI, 3, 1, 0, 0, "packet_ready_unicast"},
+ {NFP_6000_CPPTGT_NBI, 3, 2, 0, 0, "packet_ready_multicast_dont_free"},
+ {NFP_6000_CPPTGT_NBI, 3, 3, 0, 0, "packet_ready_multicast_free_on_last"},
+ {NFP_6000_CPPTGT_ILA, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_ILA, 0, 1, 0, 0, "read_check_error"},
+ {NFP_6000_CPPTGT_ILA, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_ILA, 1, 1, 0, 0, "write_check_error"},
+ {NFP_6000_CPPTGT_ILA, 2, 0, 0, 0, "read_int"},
+ {NFP_6000_CPPTGT_ILA, 3, 0, 0, 7, "write_int"},
+ {NFP_6000_CPPTGT_ILA, 3, 0, 3, 7, "write_dma"},
+ {NFP_6000_CPPTGT_MU, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_MU, 0, 1, 0, 0, "read_le"},
+ {NFP_6000_CPPTGT_MU, 0, 2, 0, 0, "read_swap"},
+ {NFP_6000_CPPTGT_MU, 0, 3, 0, 0, "read_swap_le"},
+ {NFP_6000_CPPTGT_MU, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_MU, 1, 1, 0, 0, "write_le"},
+ {NFP_6000_CPPTGT_MU, 1, 2, 0, 0, "write_swap"},
+ {NFP_6000_CPPTGT_MU, 1, 3, 0, 0, "write_swap_le"},
+ {NFP_6000_CPPTGT_MU, 2, 0, 0, 0, "write8"},
+ {NFP_6000_CPPTGT_MU, 2, 1, 0, 0, "write8_le"},
+ {NFP_6000_CPPTGT_MU, 2, 2, 0, 0, "write8_swap"},
+ {NFP_6000_CPPTGT_MU, 2, 3, 0, 0, "write8_swap_le"},
+ {NFP_6000_CPPTGT_MU, 3, 0, 0, 0, "atomic_read"},
+ {NFP_6000_CPPTGT_MU, 3, 1, 0, 0, "read8"},
+ {NFP_6000_CPPTGT_MU, 3, 2, 0, 0,
+ "compare_write_or_incr/mask_compare_write"},
+ {NFP_6000_CPPTGT_MU, 3, 3, 0, 0,
+ "test_compare_write_or_incr/test_mask_compare_write"},
+ {NFP_6000_CPPTGT_MU, 4, 0, 0, 0, "atomic_write"},
+ {NFP_6000_CPPTGT_MU, 4, 1, 0, 0, "swap"},
+ {NFP_6000_CPPTGT_MU, 4, 2, 0, 0, "atomic_write_imm"},
+ {NFP_6000_CPPTGT_MU, 4, 3, 0, 0, "swap_imm"},
+ {NFP_6000_CPPTGT_MU, 5, 0, 0, 0, "set"},
+ {NFP_6000_CPPTGT_MU, 5, 1, 0, 0, "test_set"},
+ {NFP_6000_CPPTGT_MU, 5, 2, 0, 0, "set_imm"},
+ {NFP_6000_CPPTGT_MU, 5, 3, 0, 0, "test_set_imm"},
+ {NFP_6000_CPPTGT_MU, 6, 0, 0, 0, "clr"},
+ {NFP_6000_CPPTGT_MU, 6, 1, 0, 0, "test_clr"},
+ {NFP_6000_CPPTGT_MU, 6, 2, 0, 0, "clr_imm"},
+ {NFP_6000_CPPTGT_MU, 6, 3, 0, 0, "test_clr_imm"},
+ {NFP_6000_CPPTGT_MU, 7, 0, 0, 4, "add"},
+ {NFP_6000_CPPTGT_MU, 7, 0, 4, 4, "add64"},
+ {NFP_6000_CPPTGT_MU, 7, 1, 0, 4, "test_add"},
+ {NFP_6000_CPPTGT_MU, 7, 1, 4, 4, "test_add64"},
+ {NFP_6000_CPPTGT_MU, 7, 2, 0, 4, "add_imm"},
+ {NFP_6000_CPPTGT_MU, 7, 2, 4, 4, "add64_imm"},
+ {NFP_6000_CPPTGT_MU, 7, 3, 0, 4, "test_add_imm"},
+ {NFP_6000_CPPTGT_MU, 7, 3, 4, 4, "test_add64_imm"},
+ {NFP_6000_CPPTGT_MU, 8, 0, 0, 4, "addsat"},
+ {NFP_6000_CPPTGT_MU, 8, 0, 4, 4, "addsat64"},
+ {NFP_6000_CPPTGT_MU, 8, 1, 0, 4, "test_addsat"},
+ {NFP_6000_CPPTGT_MU, 8, 1, 4, 4, "test_addsat64"},
+ {NFP_6000_CPPTGT_MU, 8, 2, 0, 4, "addsat_imm"},
+ {NFP_6000_CPPTGT_MU, 8, 2, 4, 4, "addsat64_imm"},
+ {NFP_6000_CPPTGT_MU, 8, 3, 0, 4, "test_addsat_imm"},
+ {NFP_6000_CPPTGT_MU, 8, 3, 4, 4, "test_addsat64_imm"},
+ {NFP_6000_CPPTGT_MU, 9, 0, 0, 4, "sub"},
+ {NFP_6000_CPPTGT_MU, 9, 0, 4, 4, "sub64"},
+ {NFP_6000_CPPTGT_MU, 9, 1, 0, 4, "test_sub"},
+ {NFP_6000_CPPTGT_MU, 9, 1, 4, 4, "test_sub64"},
+ {NFP_6000_CPPTGT_MU, 9, 2, 0, 4, "sub_imm"},
+ {NFP_6000_CPPTGT_MU, 9, 2, 4, 4, "sub64_imm"},
+ {NFP_6000_CPPTGT_MU, 9, 3, 0, 4, "test_sub_imm"},
+ {NFP_6000_CPPTGT_MU, 9, 3, 4, 4, "test_sub64_imm"},
+ {NFP_6000_CPPTGT_MU, 10, 0, 0, 4, "subsat"},
+ {NFP_6000_CPPTGT_MU, 10, 0, 4, 4, "subsat64"},
+ {NFP_6000_CPPTGT_MU, 10, 1, 0, 4, "test_subsat"},
+ {NFP_6000_CPPTGT_MU, 10, 1, 4, 4, "test_subsat64"},
+ {NFP_6000_CPPTGT_MU, 10, 2, 0, 4, "subsat_imm"},
+ {NFP_6000_CPPTGT_MU, 10, 2, 4, 4, "subsat64_imm"},
+ {NFP_6000_CPPTGT_MU, 10, 3, 0, 4, "test_subsat_imm"},
+ {NFP_6000_CPPTGT_MU, 10, 3, 4, 4, "test_subsat64_imm"},
+ {NFP_6000_CPPTGT_MU, 11, 0, 0, 0, "ticket_release"},
+ {NFP_6000_CPPTGT_MU, 11, 1, 0, 0, "ticket_release_ind"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 0, 7, "cam128_lookup8/cam384_lookup8"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 1, 7, "cam128_lookup16/cam384_lookup16"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 2, 7, "cam128_lookup24/cam384_lookup24"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 3, 7, "cam128_lookup32/cam384_lookup32"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 4, 7, "cam256_lookup8/cam512_lookup8"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 5, 7, "cam256_lookup16/cam512_lookup16"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 6, 7, "cam256_lookup24/cam512_lookup24"},
+ {NFP_6000_CPPTGT_MU, 12, 0, 7, 7, "cam256_lookup32/cam512_lookup32"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 0, 7,
+ "cam128_lookup8_add/cam384_lookup8_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 1, 7,
+ "cam128_lookup16_add/cam384_lookup16_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 2, 7,
+ "cam128_lookup24_add/cam384_lookup24_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 3, 7,
+ "cam128_lookup32_add/cam384_lookup32_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 4, 7,
+ "cam256_lookup8_add/cam512_lookup8_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 5, 7,
+ "cam256_lookup16_add/cam512_lookup16_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 6, 7,
+ "cam256_lookup24_add/cam512_lookup24_add"},
+ {NFP_6000_CPPTGT_MU, 12, 1, 7, 7,
+ "cam256_lookup32_add/cam512_lookup32_add"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 0, 7, "tcam128_lookup8/tcam384_lookup8"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 1, 7, "tcam128_lookup16/tcam384_lookup16"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 2, 7, "tcam128_lookup24/tcam384_lookup24"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 3, 7, "tcam128_lookup32/tcam384_lookup32"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 4, 7, "tcam256_lookup8/tcam512_lookup8"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 5, 7, "tcam256_lookup16/tcam512_lookup16"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 6, 7, "tcam256_lookup24/tcam512_lookup24"},
+ {NFP_6000_CPPTGT_MU, 12, 2, 7, 7, "tcam256_lookup32/tcam512_lookup32"},
+ {NFP_6000_CPPTGT_MU, 12, 3, 0, 7, "lock128/lock384"},
+ {NFP_6000_CPPTGT_MU, 12, 3, 2, 7,
+ "cam128_lookup24_add_inc/cam384_lookup24_add_inc"},
+ {NFP_6000_CPPTGT_MU, 12, 3, 4, 7, "lock256/lock512"},
+ {NFP_6000_CPPTGT_MU, 12, 3, 6, 7,
+ "cam256_lookup24_add_inc/cam512_lookup24_add_inc"},
+ {NFP_6000_CPPTGT_MU, 13, 0, 0, 7, "microq128_get"},
+ {NFP_6000_CPPTGT_MU, 13, 0, 4, 7, "microq256_get"},
+ {NFP_6000_CPPTGT_MU, 13, 1, 0, 7, "microq128_pop"},
+ {NFP_6000_CPPTGT_MU, 13, 1, 4, 7, "microq256_pop"},
+ {NFP_6000_CPPTGT_MU, 13, 2, 0, 7, "microq128_put"},
+ {NFP_6000_CPPTGT_MU, 13, 2, 4, 7, "microq256_put"},
+ {NFP_6000_CPPTGT_MU, 14, 0, 0, 7, "queue128_lock"},
+ {NFP_6000_CPPTGT_MU, 14, 0, 4, 7, "queue256_lock"},
+ {NFP_6000_CPPTGT_MU, 14, 1, 0, 7, "queue128_unlock"},
+ {NFP_6000_CPPTGT_MU, 14, 1, 4, 7, "queue256_unlock"},
+ {NFP_6000_CPPTGT_MU, 15, 0, 0, 0, "xor"},
+ {NFP_6000_CPPTGT_MU, 15, 1, 0, 0, "test_xor"},
+ {NFP_6000_CPPTGT_MU, 15, 2, 0, 0, "xor_imm"},
+ {NFP_6000_CPPTGT_MU, 15, 3, 0, 0, "test_xor_imm"},
+ {NFP_6000_CPPTGT_MU, 16, 0, 0, 0,
+ "ctm.packet_wait_packet_status/emem.rd_qdesc/imem.stats_log"},
+ {NFP_6000_CPPTGT_MU, 16, 1, 0, 0,
+ "ctm.packet_read_packet_status/emem.wr_qdesc/imem.stats_log_sat"},
+ {NFP_6000_CPPTGT_MU, 16, 2, 0, 0,
+ "emem.push_qdesc/imem.stats_log_event"},
+ {NFP_6000_CPPTGT_MU, 16, 3, 0, 0, "imem.stats_log_sat_event"},
+ {NFP_6000_CPPTGT_MU, 17, 0, 0, 0,
+ "ctm.packet_alloc/emem.enqueue/imem.stats_push"},
+ {NFP_6000_CPPTGT_MU, 17, 1, 0, 0,
+ "ctm.packet_credit_get/emem.enqueue_tail/imem.stats_push_clear"},
+ {NFP_6000_CPPTGT_MU, 17, 2, 0, 0, "ctm.packet_alloc_poll/emem.dequeue"},
+ {NFP_6000_CPPTGT_MU, 17, 3, 0, 0, "ctm.packet_add_thread"},
+ {NFP_6000_CPPTGT_MU, 18, 0, 0, 0,
+ "ctm.packet_free/emem.read_queue/imem.lb_write_desc"},
+ {NFP_6000_CPPTGT_MU, 18, 1, 0, 0,
+ "ctm.packet_free_and_signal/emem.read_queue_ring/imem.lb_read_desc"},
+ {NFP_6000_CPPTGT_MU, 18, 2, 0, 0,
+ "ctm.packet_free_and_return_pointer/emem.write_queue"},
+ {NFP_6000_CPPTGT_MU, 18, 3, 0, 0,
+ "ctm.packet_return_pointer/emem.write_queue_ring"},
+ {NFP_6000_CPPTGT_MU, 19, 0, 0, 0,
+ "ctm.packet_complete_drop/emem.add_tail/imem.lb_write_idtable"},
+ {NFP_6000_CPPTGT_MU, 19, 1, 0, 0,
+ "ctm.packet_complete_unicast/emem.qadd_thread/imem.lb_read_idtable"},
+ {NFP_6000_CPPTGT_MU, 19, 2, 0, 0,
+ "ctm.packet_complete_multicast/emem.qadd_work"},
+ {NFP_6000_CPPTGT_MU, 19, 3, 0, 0,
+ "ctm.packet_complete_multicast_free/emem.qadd_work_imm"},
+ {NFP_6000_CPPTGT_MU, 20, 0, 0, 0,
+ "ctm.pe_dma_to_memory_packet/emem.put/imem.lb_bucket_write_local"},
+ {NFP_6000_CPPTGT_MU, 20, 1, 0, 0,
+ "ctm.pe_dma_to_memory_packet_swap/imem.lb_bucket_write_dcache"},
+ {NFP_6000_CPPTGT_MU, 20, 2, 0, 0,
+ "ctm.pe_dma_to_memory_packet_free/emem.journal"},
+ {NFP_6000_CPPTGT_MU, 20, 3, 0, 0,
+ "ctm.pe_dma_to_memory_packet_free_swap"},
+ {NFP_6000_CPPTGT_MU, 21, 0, 0, 0,
+ "ctm.pe_dma_to_memory_indirect/emem.get/imem.lb_bucket_read_local"},
+ {NFP_6000_CPPTGT_MU, 21, 1, 0, 0,
+ "ctm.pe_dma_to_memory_indirect_swap/emem.get_eop/"
+ "imem.lb_bucket_read_dcache"},
+ {NFP_6000_CPPTGT_MU, 21, 2, 0, 0,
+ "ctm.pe_dma_to_memory_indirect_free/emem.get_freely"},
+ {NFP_6000_CPPTGT_MU, 21, 3, 0, 0,
+ "ctm.pe_dma_to_memory_indirect_free_swap"},
+ {NFP_6000_CPPTGT_MU, 22, 0, 0, 0,
+ "ctm.pe_dma_to_memory_buffer/emem.pop/imem.lb_lookup_bundleid"},
+ {NFP_6000_CPPTGT_MU, 22, 1, 0, 0,
+ "ctm.pe_dma_to_memory_buffer_le/emem.pop_eop/imem.lb_lookup_dcache"},
+ {NFP_6000_CPPTGT_MU, 22, 2, 0, 0,
+ "ctm.pe_dma_to_memory_buffer_swap/emem.pop_freely/imem.lb_lookup_idtable"},
+ {NFP_6000_CPPTGT_MU, 22, 3, 0, 0, "ctm.pe_dma_to_memory_buffer_le_swap"},
+ {NFP_6000_CPPTGT_MU, 23, 0, 0, 0,
+ "ctm.pe_dma_from_memory_buffer/emem.fast_journal/imem.lb_push_stats_local"},
+ {NFP_6000_CPPTGT_MU, 23, 1, 0, 0,
+ "ctm.pe_dma_from_memory_buffer_le/emem.fast_journal_sig/"
+ "imem.lb_push_stats_dcache"},
+ {NFP_6000_CPPTGT_MU, 23, 2, 0, 0,
+ "ctm.pe_dma_from_memory_buffer_swap/imem.lb_push_stats_local_clr"},
+ {NFP_6000_CPPTGT_MU, 23, 3, 0, 0,
+ "ctm.pe_dma_from_memory_buffer_le_swap/imem.lb_push_stats_dcache_clr"},
+ {NFP_6000_CPPTGT_MU, 26, 0, 0, 0, "emem.lookup/imem.lookup"},
+ {NFP_6000_CPPTGT_MU, 28, 0, 0, 0, "read32"},
+ {NFP_6000_CPPTGT_MU, 28, 1, 0, 0, "read32_le"},
+ {NFP_6000_CPPTGT_MU, 28, 2, 0, 0, "read32_swap"},
+ {NFP_6000_CPPTGT_MU, 28, 3, 0, 0, "read32_swap_le"},
+ {NFP_6000_CPPTGT_MU, 29, 1, 0, 0, "cam_lookup_add_lock"},
+ {NFP_6000_CPPTGT_MU, 29, 2, 0, 0, "cam_lookup_add_extend"},
+ {NFP_6000_CPPTGT_MU, 29, 3, 0, 0, "cam_lookup_add_inc"},
+ {NFP_6000_CPPTGT_MU, 30, 2, 0, 0, "meter"},
+ {NFP_6000_CPPTGT_MU, 31, 0, 0, 0, "write32"},
+ {NFP_6000_CPPTGT_MU, 31, 1, 0, 0, "write32_le"},
+ {NFP_6000_CPPTGT_MU, 31, 2, 0, 0, "write32_swap"},
+ {NFP_6000_CPPTGT_MU, 31, 3, 0, 0, "write32_swap_le"},
+ {NFP_6000_CPPTGT_PCIE, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_PCIE, 0, 1, 0, 0, "read_rid"},
+ {NFP_6000_CPPTGT_PCIE, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_PCIE, 1, 1, 0, 0, "write_rid"},
+ {NFP_6000_CPPTGT_PCIE, 1, 2, 0, 0, "write_vdm"},
+ {NFP_6000_CPPTGT_PCIE, 2, 0, 0, 0, "read_int"},
+ {NFP_6000_CPPTGT_PCIE, 3, 0, 0, 0, "write_int"},
+ {NFP_6000_CPPTGT_ARM, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_ARM, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_CRYPTO, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_CRYPTO, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_CRYPTO, 2, 0, 0, 0, "write_fifo"},
+ {NFP_6000_CPPTGT_CTXPB, 0, 0, 0, 0, "xpb_read"},
+ {NFP_6000_CPPTGT_CTXPB, 0, 1, 0, 0, "ring_get"},
+ {NFP_6000_CPPTGT_CTXPB, 0, 2, 0, 0, "interthread_signal"},
+ {NFP_6000_CPPTGT_CTXPB, 1, 0, 0, 0, "xpb_write"},
+ {NFP_6000_CPPTGT_CTXPB, 1, 1, 0, 0, "ring_put"},
+ {NFP_6000_CPPTGT_CTXPB, 1, 2, 0, 0, "ctnn_write"},
+ {NFP_6000_CPPTGT_CTXPB, 2, 0, 0, 0, "reflect_read_none"},
+ {NFP_6000_CPPTGT_CTXPB, 2, 1, 0, 0, "reflect_read_sig_init"},
+ {NFP_6000_CPPTGT_CTXPB, 2, 2, 0, 0, "reflect_read_sig_remote"},
+ {NFP_6000_CPPTGT_CTXPB, 2, 3, 0, 0, "reflect_read_sig_both"},
+ {NFP_6000_CPPTGT_CTXPB, 3, 0, 0, 0, "reflect_write_none"},
+ {NFP_6000_CPPTGT_CTXPB, 3, 1, 0, 0, "reflect_write_sig_init"},
+ {NFP_6000_CPPTGT_CTXPB, 3, 2, 0, 0, "reflect_write_sig_remote"},
+ {NFP_6000_CPPTGT_CTXPB, 3, 3, 0, 0, "reflect_write_sig_both"},
+ {NFP_6000_CPPTGT_CLS, 0, 0, 0, 0, "read"},
+ {NFP_6000_CPPTGT_CLS, 0, 1, 0, 0, "read_le"},
+ {NFP_6000_CPPTGT_CLS, 0, 2, 0, 0, "swap/test_compare_write"},
+ {NFP_6000_CPPTGT_CLS, 0, 3, 0, 0, "xor"},
+ {NFP_6000_CPPTGT_CLS, 1, 0, 0, 0, "write"},
+ {NFP_6000_CPPTGT_CLS, 1, 1, 0, 0, "write_le"},
+ {NFP_6000_CPPTGT_CLS, 1, 2, 0, 0, "write8_be"},
+ {NFP_6000_CPPTGT_CLS, 1, 3, 0, 0, "write8_le"},
+ {NFP_6000_CPPTGT_CLS, 2, 0, 0, 0, "set"},
+ {NFP_6000_CPPTGT_CLS, 2, 1, 0, 0, "clr"},
+ {NFP_6000_CPPTGT_CLS, 2, 2, 0, 0, "test_set"},
+ {NFP_6000_CPPTGT_CLS, 2, 3, 0, 0, "test_clr"},
+ {NFP_6000_CPPTGT_CLS, 3, 0, 0, 0, "set_imm"},
+ {NFP_6000_CPPTGT_CLS, 3, 1, 0, 0, "clr_imm"},
+ {NFP_6000_CPPTGT_CLS, 3, 2, 0, 0, "test_set_imm"},
+ {NFP_6000_CPPTGT_CLS, 3, 3, 0, 0, "test_clr_imm"},
+ {NFP_6000_CPPTGT_CLS, 4, 0, 0, 0, "add"},
+ {NFP_6000_CPPTGT_CLS, 4, 1, 0, 0, "add64"},
+ {NFP_6000_CPPTGT_CLS, 4, 2, 0, 0, "addsat"},
+ {NFP_6000_CPPTGT_CLS, 5, 0, 0, 0, "add_imm"},
+ {NFP_6000_CPPTGT_CLS, 5, 1, 0, 0, "add64_imm"},
+ {NFP_6000_CPPTGT_CLS, 5, 2, 0, 0, "addsat_imm"},
+ {NFP_6000_CPPTGT_CLS, 6, 0, 0, 0, "sub"},
+ {NFP_6000_CPPTGT_CLS, 6, 1, 0, 0, "sub64"},
+ {NFP_6000_CPPTGT_CLS, 6, 2, 0, 0, "subsat"},
+ {NFP_6000_CPPTGT_CLS, 7, 0, 0, 0, "sub_imm"},
+ {NFP_6000_CPPTGT_CLS, 7, 1, 0, 0, "sub64_imm"},
+ {NFP_6000_CPPTGT_CLS, 7, 2, 0, 0, "subsat_imm"},
+ {NFP_6000_CPPTGT_CLS, 8, 0, 0, 0, "queue_lock"},
+ {NFP_6000_CPPTGT_CLS, 8, 1, 0, 0, "queue_unlock"},
+ {NFP_6000_CPPTGT_CLS, 8, 2, 0, 0, "hash_mask"},
+ {NFP_6000_CPPTGT_CLS, 8, 3, 0, 0, "hash_mask_clear"},
+ {NFP_6000_CPPTGT_CLS, 9, 0, 0, 0, "get"},
+ {NFP_6000_CPPTGT_CLS, 9, 1, 0, 0, "pop"},
+ {NFP_6000_CPPTGT_CLS, 9, 2, 0, 0, "get_safe"},
+ {NFP_6000_CPPTGT_CLS, 9, 3, 0, 0, "pop_safe"},
+ {NFP_6000_CPPTGT_CLS, 10, 0, 0, 0, "ring_put"},
+ {NFP_6000_CPPTGT_CLS, 10, 2, 0, 0, "ring_journal"},
+ {NFP_6000_CPPTGT_CLS, 11, 0, 0, 0, "cam_lookup32"},
+ {NFP_6000_CPPTGT_CLS, 11, 1, 0, 0, "cam_lookup32_add"},
+ {NFP_6000_CPPTGT_CLS, 11, 2, 0, 0, "cam_lookup24"},
+ {NFP_6000_CPPTGT_CLS, 11, 3, 0, 0, "cam_lookup24_add"},
+ {NFP_6000_CPPTGT_CLS, 12, 0, 0, 0, "cam_lookup8"},
+ {NFP_6000_CPPTGT_CLS, 12, 1, 0, 0, "cam_lookup8_add"},
+ {NFP_6000_CPPTGT_CLS, 12, 2, 0, 0, "cam_lookup16"},
+ {NFP_6000_CPPTGT_CLS, 12, 3, 0, 0, "cam_lookup16_add"},
+ {NFP_6000_CPPTGT_CLS, 13, 0, 0, 0, "tcam_lookup32"},
+ {NFP_6000_CPPTGT_CLS, 13, 1, 0, 0, "tcam_lookup24"},
+ {NFP_6000_CPPTGT_CLS, 13, 2, 0, 0, "tcam_lookup16"},
+ {NFP_6000_CPPTGT_CLS, 13, 3, 0, 0, "tcam_lookup8"},
+ {NFP_6000_CPPTGT_CLS, 14, 0, 0, 0, "reflect_write_sig_local"},
+ {NFP_6000_CPPTGT_CLS, 14, 1, 0, 0, "reflect_write_sig_remote"},
+ {NFP_6000_CPPTGT_CLS, 14, 2, 0, 0, "reflect_write_sig_both"},
+ {NFP_6000_CPPTGT_CLS, 15, 0, 0, 0, "reflect_read_sig_remote"},
+ {NFP_6000_CPPTGT_CLS, 15, 1, 0, 0, "reflect_read_sig_local"},
+ {NFP_6000_CPPTGT_CLS, 15, 2, 0, 0, "reflect_read_sig_both"},
+ {NFP_6000_CPPTGT_CLS, 16, 1, 0, 0, "cam_lookup32_add_lock"},
+ {NFP_6000_CPPTGT_CLS, 16, 2, 0, 0, "cam_lookup24_add_inc"},
+ {NFP_6000_CPPTGT_CLS, 16, 3, 0, 0, "cam_lookup32_add_extend"},
+ {NFP_6000_CPPTGT_CLS, 17, 0, 0, 0, "meter"},
+ {NFP_6000_CPPTGT_CLS, 17, 2, 0, 0, "statistic"},
+ {NFP_6000_CPPTGT_CLS, 17, 3, 0, 0, "statistic_imm"},
+ {NFP_6000_CPPTGT_CLS, 20, 0, 0, 0, "test_add"},
+ {NFP_6000_CPPTGT_CLS, 20, 1, 0, 0, "test_add64"},
+ {NFP_6000_CPPTGT_CLS, 20, 2, 0, 0, "test_addsat"},
+ {NFP_6000_CPPTGT_CLS, 21, 0, 0, 0, "test_add_imm"},
+ {NFP_6000_CPPTGT_CLS, 21, 1, 0, 0, "test_add64_imm"},
+ {NFP_6000_CPPTGT_CLS, 21, 2, 0, 0, "test_addsat_imm"},
+ {NFP_6000_CPPTGT_CLS, 22, 0, 0, 0, "test_sub"},
+ {NFP_6000_CPPTGT_CLS, 22, 1, 0, 0, "test_sub64"},
+ {NFP_6000_CPPTGT_CLS, 22, 2, 0, 0, "test_subsat"},
+ {NFP_6000_CPPTGT_CLS, 23, 0, 0, 0, "test_sub_imm"},
+ {NFP_6000_CPPTGT_CLS, 23, 1, 0, 0, "test_sub64_imm"},
+ {NFP_6000_CPPTGT_CLS, 23, 2, 0, 0, "test_subsat_imm"},
+ {NFP_6000_CPPTGT_CLS, 24, 0, 0, 0, "ring_read"},
+ {NFP_6000_CPPTGT_CLS, 24, 1, 0, 0, "ring_write"},
+ {NFP_6000_CPPTGT_CLS, 24, 2, 0, 0, "ring_ordered_lock"},
+ {NFP_6000_CPPTGT_CLS, 24, 3, 0, 0, "ring_ordered_unlock"},
+ {NFP_6000_CPPTGT_CLS, 25, 0, 0, 0, "ring_workq_add_thread"},
+ {NFP_6000_CPPTGT_CLS, 25, 1, 0, 0, "ring_workq_add_work"}
+};
+
+static int
+nfp_me_print_invalid (bfd_vma instr, struct disassemble_info *dinfo)
+{
+ const char * err_msg = N_("<invalid_instruction>:");
+ dinfo->fprintf_func (dinfo->stream, "%s 0x%" BFD_VMA_FMT "x", err_msg, instr);
+ return _NFP_ERR_CONT;
+}
+
+static bfd_boolean
+nfp_me_is_imm_opnd10 (unsigned int opnd)
+{
+ return _BF (opnd, 9, 8) == 0x3;
+}
+
+static bfd_boolean
+nfp_me_is_imm_opnd8 (unsigned int opnd)
+{
+ return _BTST (opnd, 5);
+}
+
+static unsigned int
+nfp_me_imm_opnd10 (unsigned int opnd)
+{
+ return nfp_me_is_imm_opnd10 (opnd) ? (opnd & 0xff) : ~0U;
+}
+
+static unsigned int
+nfp_me_imm_opnd8 (unsigned int opnd, unsigned int imm8_msb)
+{
+ unsigned int v = (imm8_msb << 7) | _BFS (opnd, 7, 6, 5) | _BF (opnd, 4, 0);
+
+ return nfp_me_is_imm_opnd8 (opnd) ? v : ~0U;
+}
+
+/* Print an unrestricted/10-bit operand.
+ This can mostly be generic across NFP families at the moment. */
+static bfd_boolean
+nfp_me_print_opnd10 (unsigned int opnd, char bank, int num_ctx, int lmem_ext,
+ struct disassemble_info *dinfo)
+{
+ unsigned int n = _BF (opnd, (num_ctx == 8) ? 3 : 4, 0);
+
+ /* Absolute GPR. */
+ if (_BF (opnd, 9, 7) == 0x1)
+ dinfo->fprintf_func (dinfo->stream, "@gpr%c_%d", bank, _BF (opnd, 6, 0));
+
+ /* Relative GPR. */
+ else if (_BF (opnd, 9, 6) == 0x0)
+ dinfo->fprintf_func (dinfo->stream, "gpr%c_%d", bank, n);
+
+ /* Indexed Xfer. */
+ else if (_BF (opnd, 9, 7) == 0x2)
+ {
+ dinfo->fprintf_func (dinfo->stream, "*$index");
+ if (_BF (opnd, 2, 1) == 0x1)
+ dinfo->fprintf_func (dinfo->stream, "++");
+ else if (_BF (opnd, 2, 1) == 0x2)
+ dinfo->fprintf_func (dinfo->stream, "--");
+ }
+
+ /* Relative Xfer. */
+ else if (_BF (opnd, 9, 7) == 0x3)
+ {
+ if (_BTST (opnd, 6))
+ n += (num_ctx == 8 ? 16 : 32);
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d", n);
+ }
+
+ /* Indexed Next Neighbour. */
+ else if (_BF (opnd, 9, 6) == 0x9)
+ {
+ dinfo->fprintf_func (dinfo->stream, "*n$index");
+ if (_BTST (opnd, 1))
+ dinfo->fprintf_func (dinfo->stream, "++");
+ }
+
+ /* Relative Next Neighbour. */
+ else if (_BF (opnd, 9, 6) == 0xa)
+ {
+ dinfo->fprintf_func (dinfo->stream, "n$reg_%d", n);
+ }
+
+ /* Indexed LMEM. */
+ else if (_BF (opnd, 9, 6) == 0x8)
+ {
+ n = _BF (opnd, 5, 5) + (lmem_ext * 2);
+ dinfo->fprintf_func (dinfo->stream, "*l$index%d", n);
+ if (_BTST (opnd, 4))
+ dinfo->fprintf_func (dinfo->stream, _BTST (opnd, 0) ? "--" : "++");
+ else if (_BF (opnd, 3, 0))
+ dinfo->fprintf_func (dinfo->stream, "[%d]", _BF (opnd, 3, 0));
+ }
+
+ /* 8-bit Constant value. */
+ else if (_BF (opnd, 9, 8) == 0x3)
+ dinfo->fprintf_func (dinfo->stream, "0x%x", _BF (opnd, 7, 0));
+
+ else
+ {
+ dinfo->fprintf_func (dinfo->stream, "<opnd:0x%x>", opnd);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/* Print a restricted/8-bit operand.
+ This can mostly be generic across NFP families at the moment. */
+
+static bfd_boolean
+nfp_me_print_opnd8 (unsigned int opnd, char bank, int num_ctx, int lmem_ext,
+ unsigned int imm8_msb, struct disassemble_info *dinfo)
+{
+ unsigned int n = _BF (opnd, (num_ctx == 8) ? 3 : 4, 0);
+
+ /* Relative GPR. */
+ if (_BF (opnd, 7, 5) == 0x0)
+ dinfo->fprintf_func (dinfo->stream, "gpr%c_%d", bank, n);
+
+ /* Relative Xfer. */
+ else if (_BF (opnd, 7, 5) == 0x4)
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d", n);
+
+ /* Relative Xfer. */
+ else if (_BF (opnd, 7, 5) == 0x6)
+ {
+ n += (num_ctx == 8 ? 16 : 32);
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d", n);
+ }
+
+ /* Indexed Xfer. */
+ else if ((_BF (opnd, 7, 4) == 0x4) && (!_BTST (opnd, 0)))
+ {
+ dinfo->fprintf_func (dinfo->stream, "*$index");
+ if (_BF (opnd, 2, 1) == 0x1)
+ dinfo->fprintf_func (dinfo->stream, "++");
+ else if (_BF (opnd, 2, 1) == 0x2)
+ dinfo->fprintf_func (dinfo->stream, "--");
+ }
+
+ /* Indexed NN. */
+ else if ((_BF (opnd, 7, 4) == 0x4) && (_BTST (opnd, 0)))
+ {
+ dinfo->fprintf_func (dinfo->stream, "*n$index");
+ if (_BTST (opnd, 1))
+ dinfo->fprintf_func (dinfo->stream, "++");
+ }
+
+ /* Indexed LMEM. */
+ else if (_BF (opnd, 7, 4) == 0x5)
+ {
+ n = _BF (opnd, 3, 3) + (lmem_ext * 2);
+ dinfo->fprintf_func (dinfo->stream, "*l$index%d", n);
+ if (_BF (opnd, 2, 0))
+ dinfo->fprintf_func (dinfo->stream, "[%d]", _BF (opnd, 2, 0));
+ }
+
+ /* 7+1-bit Constant value. */
+ else if (_BTST (opnd, 5))
+ {
+ n = (imm8_msb << 7) | _BFS (opnd, 7, 6, 5) | _BF (opnd, 4, 0);
+ dinfo->fprintf_func (dinfo->stream, "0x%x", n);
+ }
+
+ else
+ {
+ dinfo->fprintf_func (dinfo->stream, "<opnd:0x%x>", opnd);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static int
+nfp_me27_28_print_alu_shf (bfd_vma instr, unsigned int pred_cc,
+ unsigned int dst_lmext, unsigned int src_lmext,
+ unsigned int gpr_wrboth,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int op = _BF (instr, 35, 33);
+ unsigned int srcA = _BF (instr, 7, 0);
+ unsigned int srcB = _BF (instr, 17, 10);
+ unsigned int dst = _BF (instr, 27, 20);
+ unsigned int sc = _BF (instr, 9, 8);
+ unsigned int imm_msb = _BTST (instr, 18);
+ unsigned int swap = _BTST (instr, 19);
+ unsigned int shift = _BF (instr, 32, 28);
+ char dst_bank = 'A' + _BTST (instr, 36);
+ unsigned int nocc = _BTST (instr, 40);
+ bfd_boolean err = FALSE;
+
+ if (swap)
+ {
+ unsigned int tmp = srcA;
+ srcA = srcB;
+ srcB = tmp;
+ }
+
+ /* alu_shf, dbl_shf, asr. */
+ if (op < 7)
+ {
+ if (sc == 3)
+ dinfo->fprintf_func (dinfo->stream, "dbl_shf[");
+ else if (op == 6)
+ dinfo->fprintf_func (dinfo->stream, "asr[");
+ else
+ dinfo->fprintf_func (dinfo->stream, "alu_shf[");
+
+ /* dest operand */
+ if (nfp_me_is_imm_opnd8 (dst))
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd8 (dst, dst_bank, num_ctx,
+ dst_lmext, imm_msb, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ /* A operand. */
+ if (op != 6)
+ {
+ if ((op < 2) && (sc != 3)) /* Not dbl_shf. */
+ dinfo->fprintf_func (dinfo->stream, "--"); /* B or ~B operator. */
+ else
+ err = err || !nfp_me_print_opnd8 (srcA, (swap) ? 'B' : 'A',
+ num_ctx, src_lmext, imm_msb,
+ dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ /* Operator (not for dbl_shf). */
+ if (sc != 3)
+ {
+ dinfo->fprintf_func (dinfo->stream, "%s, ",
+ nfp_mealu_shf_op[op]);
+ }
+ }
+
+ /* B operand. */
+ err = err || !nfp_me_print_opnd8 (srcB, (swap) ? 'A' : 'B',
+ num_ctx, src_lmext, imm_msb, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ /* Shift */
+ if (sc == 0)
+ dinfo->fprintf_func (dinfo->stream, ">>rot%d", shift);
+ else if (sc == 2)
+ {
+ if (shift)
+ dinfo->fprintf_func (dinfo->stream, "<<%d", (32 - shift));
+ else
+ dinfo->fprintf_func (dinfo->stream, "<<indirect");
+ }
+ else
+ {
+ if (shift)
+ dinfo->fprintf_func (dinfo->stream, ">>%d", shift);
+ else
+ dinfo->fprintf_func (dinfo->stream, ">>indirect");
+ }
+ }
+ /* Byte Align. */
+ else if (op == 7)
+ {
+ dinfo->fprintf_func (dinfo->stream, "byte_align_%s[",
+ ((sc == 2) ? "le" : "be"));
+
+ /* Dest operand. */
+ if (nfp_me_is_imm_opnd8 (dst))
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd8 (dst, dst_bank, num_ctx,
+ dst_lmext, imm_msb, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ if (sc == 2)
+ err = err || !nfp_me_print_opnd8 (srcA, (swap) ? 'B' : 'A', num_ctx,
+ 0, imm_msb, dinfo);
+ else
+ err = err || !nfp_me_print_opnd8 (srcB, (swap) ? 'A' : 'B', num_ctx,
+ 0, imm_msb, dinfo);
+ }
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+ if (nocc)
+ dinfo->fprintf_func (dinfo->stream, ", no_cc");
+ if (gpr_wrboth)
+ dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
+ if (pred_cc)
+ dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_alu (bfd_vma instr, unsigned int pred_cc,
+ unsigned int dst_lmext, unsigned int src_lmext,
+ unsigned int gpr_wrboth,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int op = _BF (instr, 35, 31);
+ unsigned int srcA = _BF (instr, 9, 0);
+ unsigned int srcB = _BF (instr, 19, 10);
+ unsigned int dst = _BF (instr, 29, 20);
+ unsigned int swap = _BTST (instr, 30);
+ char dst_bank = 'A' + _BTST (instr, 36);
+ unsigned int nocc = _BTST (instr, 40);
+ int do_close_bracket = 1;
+ bfd_boolean err = FALSE;
+
+ if (swap)
+ {
+ unsigned int tmp = srcA;
+ srcA = srcB;
+ srcB = tmp;
+ }
+
+ switch (op)
+ {
+ case 3: /* pop_count3[dst, srcB] */
+ case 6: /* pop_count1[srcB] */
+ case 7: /* pop_count2[srcB] */
+ case 14: /* ffs[dst, srcB] */
+ case 15: /* cam_read_tag[dst, srcB] */
+ case 31: /* cam_read_state[dst, srcB] */
+ dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_alu_op[op]);
+
+ /* No dest for pop_count1/2. */
+ if ((op != 6) && (op != 7))
+ {
+ /* dest operand */
+ if (nfp_me_is_imm_opnd10 (dst))
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd10 (dst, dst_bank, num_ctx,
+ dst_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ }
+
+ /* B operand. */
+ err = err || !nfp_me_print_opnd10 (srcB, (swap) ? 'A' : 'B',
+ num_ctx, src_lmext, dinfo);
+ break;
+
+ /* cam_clear. */
+ case 11:
+ do_close_bracket = 0;
+ dinfo->fprintf_func (dinfo->stream, "cam_clear");
+ break;
+
+ /* cam_lookup. */
+ case 23:
+ do_close_bracket = 0;
+ dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_alu_op[op]);
+
+ /* Dest operand. */
+ if (nfp_me_is_imm_opnd10 (dst))
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd10 (dst, dst_bank, num_ctx,
+ dst_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ /* A operand. */
+ err = err || !nfp_me_print_opnd10 (srcA, (swap) ? 'B' : 'A',
+ num_ctx, src_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (_BF (srcB, 1, 0))
+ {
+ unsigned int n = _BTST (srcB, 1);
+ if (_BTST (srcB, 4)) /* Only for MEv28. */
+ n += 2;
+ dinfo->fprintf_func (dinfo->stream, ", lm_addr%d[%d]", n,
+ _BF (srcB, 3, 2));
+ }
+
+ break;
+
+ case 19: /* cam_write. */
+ case 27: /* cam_write_state. */
+ dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_alu_op[op]);
+ err = err || !nfp_me_print_opnd10 (srcB, (swap) ? 'A' : 'B',
+ num_ctx, src_lmext, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ if (op == 19)
+ {
+ err = err || !nfp_me_print_opnd10 (srcA, (swap) ? 'B' : 'A',
+ num_ctx, src_lmext, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ }
+ dinfo->fprintf_func (dinfo->stream, "%d", (dst & 0xf));
+ break;
+
+ /* CRC. */
+ case 18:
+ do_close_bracket = 0;
+ dinfo->fprintf_func (dinfo->stream, "crc_%s[",
+ _BTST (instr, 3) ? "le" : "be");
+ if (!nfp_me27_28_crc_op[_BF (instr, 7, 5)])
+ {
+ dinfo->fprintf_func (dinfo->stream, _(", <invalid CRC operator>, "));
+ err = TRUE;
+ }
+ else
+ {
+ dinfo->fprintf_func (dinfo->stream, "%s, ",
+ nfp_me27_28_crc_op[_BF (instr, 7, 5)]);
+ }
+
+ /* Dest operand. */
+ if (nfp_me_is_imm_opnd10 (dst))
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd10 (dst, dst_bank, num_ctx,
+ dst_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ /* B operand. */
+ err = err || !nfp_me_print_opnd10 (srcB, (swap) ? 'A' : 'B',
+ num_ctx, src_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+ if (_BF (instr, 2, 0))
+ dinfo->fprintf_func (dinfo->stream, ", %s",
+ nfp_me27_28_crc_bytes[_BF (instr, 2, 0)]);
+ if (_BTST (instr, 4))
+ dinfo->fprintf_func (dinfo->stream, ", bit_swap");
+ break;
+
+ default:
+ /* s += 'alu[%s, %s, %s, %s]' % (dst, srcAs, op, srcBs). */
+ dinfo->fprintf_func (dinfo->stream, "alu[");
+
+ /* Dest operand. */
+ if (nfp_me_is_imm_opnd10 (dst))
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd10 (dst, dst_bank, num_ctx,
+ dst_lmext, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ /* A operand. */
+ if ((op == 0) || (op == 4)) /* B only operators. */
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd10 (srcA, (swap) ? 'B' : 'A',
+ num_ctx, src_lmext, dinfo);
+
+ if (!nfp_me27_28_alu_op[op])
+ {
+ dinfo->fprintf_func (dinfo->stream, ", <operator:0x%x>, ", op);
+ err = TRUE;
+ }
+ else
+ {
+ dinfo->fprintf_func (dinfo->stream, ", %s, ",
+ nfp_me27_28_alu_op[op]);
+ }
+
+ /* B operand. */
+ err = err || !nfp_me_print_opnd10 (srcB, (swap) ? 'A' : 'B',
+ num_ctx, src_lmext, dinfo);
+ break;
+ }
+
+ if (do_close_bracket)
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (nocc)
+ dinfo->fprintf_func (dinfo->stream, ", no_cc");
+ if (gpr_wrboth)
+ dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
+ if (pred_cc)
+ dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_immed (bfd_vma instr, unsigned int pred_cc,
+ unsigned int dst_lmext,
+ unsigned int gpr_wrboth,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 9, 0);
+ unsigned int srcB = _BF (instr, 19, 10);
+ unsigned int imm = _BF (instr, 27, 20);
+ unsigned int by = _BTST (instr, 29);
+ unsigned int wd = _BTST (instr, 30);
+ unsigned int inv = _BTST (instr, 31);
+ unsigned int byte_shift = _BF (instr, 34, 33);
+ bfd_boolean err = FALSE;
+
+ if (nfp_me_is_imm_opnd10 (srcB))
+ {
+ imm = (imm << 8) | nfp_me_imm_opnd10 (srcB);
+ if (nfp_me_is_imm_opnd10 (srcA) && (imm == 0))
+ {
+ dinfo->fprintf_func (dinfo->stream, "nop");
+ return 0;
+ }
+ }
+ else
+ {
+ imm = (imm << 8) | nfp_me_imm_opnd10 (srcA);
+ }
+
+ if (inv)
+ imm = (imm ^ 0xffff) | 0xffff0000U;
+
+ if (by)
+ {
+ dinfo->fprintf_func (dinfo->stream, "immed_b%d[", byte_shift);
+ imm &= 0xff;
+ }
+ else if (wd)
+ {
+ dinfo->fprintf_func (dinfo->stream, "immed_w%d[", (byte_shift / 2));
+ imm &= 0xffff;
+ }
+ else
+ dinfo->fprintf_func (dinfo->stream, "immed[");
+
+ /* Dest. */
+ if (nfp_me_is_imm_opnd10 (srcA) && nfp_me_is_imm_opnd10 (srcB))
+ dinfo->fprintf_func (dinfo->stream, "--"); /* No Dest. */
+ else if (nfp_me_is_imm_opnd10 (srcA))
+ err = err || !nfp_me_print_opnd10 (srcB, 'B', num_ctx, dst_lmext, dinfo);
+ else
+ err = err || !nfp_me_print_opnd10 (srcA, 'A', num_ctx, dst_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", 0x%x", imm);
+
+ if ((!by) && (!wd) && (byte_shift))
+ dinfo->fprintf_func (dinfo->stream, ", <<%d", (byte_shift * 8));
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (gpr_wrboth)
+ dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
+ if (pred_cc)
+ dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_ld_field (bfd_vma instr, unsigned int pred_cc,
+ unsigned int dst_lmext, unsigned int src_lmext,
+ unsigned int gpr_wrboth,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int load_cc = _BTST (instr, 34);
+ unsigned int shift = _BF (instr, 32, 28);
+ unsigned int byte_mask = _BF (instr, 27, 24);
+ unsigned int zerof = _BTST (instr, 20);
+ unsigned int swap = _BTST (instr, 19);
+ unsigned int imm_msb = _BTST (instr, 18);
+ unsigned int src = _BF (instr, 17, 10);
+ unsigned int sc = _BF (instr, 9, 8);
+ unsigned int dst = _BF (instr, 7, 0);
+ bfd_boolean err = FALSE;
+
+ if (swap)
+ {
+ unsigned int tmp = src;
+ src = dst;
+ dst = tmp;
+ }
+
+ if (zerof)
+ dinfo->fprintf_func (dinfo->stream, "ld_field_w_clr[");
+ else
+ dinfo->fprintf_func (dinfo->stream, "ld_field[");
+
+ err = err || !nfp_me_print_opnd8 (dst, (swap) ? 'B' : 'A', num_ctx,
+ dst_lmext, imm_msb, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d%d%d%d, ",
+ _BTST (byte_mask, 3),
+ _BTST (byte_mask, 2),
+ _BTST (byte_mask, 1), _BTST (byte_mask, 0));
+ err = err || !nfp_me_print_opnd8 (src, (swap) ? 'A' : 'B', num_ctx,
+ src_lmext, imm_msb, dinfo);
+
+ if ((sc == 0) && (shift != 0))
+ dinfo->fprintf_func (dinfo->stream, ", >>rot%d", shift);
+ else if (sc == 1)
+ {
+ if (shift)
+ dinfo->fprintf_func (dinfo->stream, ", >>%d", shift);
+ else
+ dinfo->fprintf_func (dinfo->stream, ", >>indirect");
+ }
+ else if (sc == 2)
+ {
+ if (shift)
+ dinfo->fprintf_func (dinfo->stream, ", <<%d", (32 - shift));
+ else
+ dinfo->fprintf_func (dinfo->stream, ", <<indirect");
+ }
+ else if (sc == 3)
+ dinfo->fprintf_func (dinfo->stream, ", >>dbl%d", shift);
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (load_cc)
+ dinfo->fprintf_func (dinfo->stream, ", load_cc");
+ if (gpr_wrboth)
+ dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
+ if (pred_cc)
+ dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
+{
+ unsigned int resume_addr = _BFS (instr, 40, 40, 13) | _BF (instr, 34, 22);
+ unsigned int defer = _BF (instr, 21, 20);
+ unsigned int no_load = _BTST (instr, 19);
+ unsigned int resume = _BTST (instr, 18);
+ unsigned int bpt = _BTST (instr, 17);
+ unsigned int sig_or = _BTST (instr, 16);
+ unsigned int ev_mask = _BF (instr, 15, 0);
+
+ dinfo->fprintf_func (dinfo->stream, "ctx_arb[");
+ if (bpt)
+ dinfo->fprintf_func (dinfo->stream, "bpt");
+ else if (ev_mask == 1)
+ dinfo->fprintf_func (dinfo->stream, "voluntary");
+ else if ((!no_load) && (ev_mask == 0))
+ {
+ dinfo->fprintf_func (dinfo->stream, "kill");
+ sig_or = 0;
+ }
+ else if (ev_mask == 0)
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ {
+ int first_print = 1;
+ unsigned int n;
+
+ for (n = 1; n < 16; n++)
+ {
+ if (!_BTST (ev_mask, n))
+ continue;
+ dinfo->fprintf_func (dinfo->stream, "%ssig%d",
+ (first_print) ? "" : ", ", n);
+ first_print = 0;
+ }
+ }
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (sig_or)
+ dinfo->fprintf_func (dinfo->stream, ", any");
+ if (resume)
+ dinfo->fprintf_func (dinfo->stream, ", br[.%d]", resume_addr);
+ if (defer)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
+
+ return 0;
+}
+
+static int
+nfp_me27_28_print_local_csr (bfd_vma instr,
+ unsigned int src_lmext,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 9, 0);
+ unsigned int srcB = _BF (instr, 19, 10);
+ unsigned int wr = _BTST (instr, 21);
+ unsigned int csr_num = _BF (instr, 32, 22);
+ unsigned int src = srcA;
+ char src_bank = 'A';
+ bfd_boolean err = FALSE;
+
+ if (nfp_me_is_imm_opnd10 (srcA) && !nfp_me_is_imm_opnd10 (srcB))
+ {
+ src_bank = 'B';
+ src = srcB;
+ }
+
+ /* MEv28 does not have urd/uwr. */
+ if (csr_num == 1)
+ {
+ if (wr)
+ {
+ dinfo->fprintf_func (dinfo->stream, "uwr[*u$index%d++, ",
+ (int) _BTST (instr, 20));
+ err = err || !nfp_me_print_opnd10 (src, src_bank, num_ctx,
+ src_lmext, dinfo);
+ }
+ else
+ {
+ dinfo->fprintf_func (dinfo->stream, "urd[");
+ err = err || !nfp_me_print_opnd10 (src, src_bank, num_ctx,
+ src_lmext, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", *u$index%d++",
+ (int) _BTST (instr, 20));
+ }
+ dinfo->fprintf_func (dinfo->stream, "]");
+ }
+ else
+ {
+ const char *nm = NULL;
+
+ if (csr_num < ARRAY_SIZE (nfp_me27_28_mecsrs))
+ nm = nfp_me27_28_mecsrs[csr_num];
+
+ dinfo->fprintf_func (dinfo->stream, "local_csr_%s[",
+ (wr) ? "wr" : "rd");
+ if (nm)
+ dinfo->fprintf_func (dinfo->stream, "%s", nm);
+ else
+ dinfo->fprintf_func (dinfo->stream, "0x%x", (csr_num * 4));
+
+ if (wr)
+ {
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ err = err || !nfp_me_print_opnd10 (src, src_bank, num_ctx,
+ src_lmext, dinfo);
+ }
+ dinfo->fprintf_func (dinfo->stream, "]");
+ }
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_branch (bfd_vma instr,
+ const char *br_inpstates[16],
+ struct disassemble_info *dinfo)
+{
+ unsigned int br_op = _BF (instr, 4, 0);
+ unsigned int ctx_sig_state = _BF (instr, 17, 14);
+ unsigned int defer = _BF (instr, 21, 20);
+ unsigned int br_addr = _BFS (instr, 40, 40, 13) | _BF (instr, 34, 22);
+ int ret = 0;
+
+ if (!nfp_me27_28_br_ops[br_op])
+ {
+ dinfo->fprintf_func (dinfo->stream, _("<invalid branch>["));
+ ret = _NFP_ERR_CONT;
+ }
+ else
+ dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_br_ops[br_op]);
+
+ switch (br_op)
+ {
+ case 16: /* br=ctx */
+ case 17: /* br!=ctx */
+ case 18: /* br_signal */
+ case 19: /* br_!signal */
+ dinfo->fprintf_func (dinfo->stream, "%d, ", ctx_sig_state);
+ break;
+ case 20: /* "br_inp_state" */
+ case 21: /* "br_!inp_state" */
+ dinfo->fprintf_func (dinfo->stream, "%s, ",
+ br_inpstates[ctx_sig_state]);
+ break;
+ case 22: /* "br_cls_state" */
+ case 23: /* "br_!cls_state" */
+ dinfo->fprintf_func (dinfo->stream, "cls_ring%d_status, ",
+ ctx_sig_state);
+ break;
+ default:
+ break;
+ }
+
+ dinfo->fprintf_func (dinfo->stream, ".%d]", br_addr);
+
+ if (defer)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
+
+ return ret;
+}
+
+static int
+nfp_me27_28_print_br_byte (bfd_vma instr,
+ unsigned int src_lmext, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 7, 0);
+ unsigned int by = _BF (instr, 9, 8);
+ unsigned int srcB = _BF (instr, 17, 10);
+ unsigned int imm_msb = _BTST (instr, 18);
+ unsigned int eq = _BTST (instr, 19);
+ unsigned int defer = _BF (instr, 21, 20);
+ unsigned int br_addr = _BFS (instr, 40, 40, 13) | _BF (instr, 34, 22);
+ bfd_boolean err = FALSE;
+
+ if (eq)
+ dinfo->fprintf_func (dinfo->stream, "br=byte[");
+ else
+ dinfo->fprintf_func (dinfo->stream, "br!=byte[");
+
+ if (nfp_me_is_imm_opnd8 (srcA))
+ err = err || !nfp_me_print_opnd8 (srcB, 'B', num_ctx,
+ src_lmext, imm_msb, dinfo);
+ else
+ err = err || !nfp_me_print_opnd8 (srcA, 'A', num_ctx,
+ src_lmext, imm_msb, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", %d, ", by);
+
+ if (nfp_me_is_imm_opnd8 (srcA))
+ err = err || !nfp_me_print_opnd8 (srcA, 'A', num_ctx,
+ src_lmext, imm_msb, dinfo);
+ else
+ err = err || !nfp_me_print_opnd8 (srcB, 'B', num_ctx,
+ src_lmext, imm_msb, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", .%d]", br_addr);
+
+ if (defer)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_br_bit (bfd_vma instr, unsigned int src_lmext,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 7, 0);
+ unsigned int srcB = _BF (instr, 17, 10);
+ unsigned int b = _BTST (instr, 18);
+ unsigned int defer = _BF (instr, 21, 20);
+ unsigned int br_addr = _BFS (instr, 40, 40, 13) | _BF (instr, 34, 22);
+ bfd_boolean err = FALSE;
+
+ if (b)
+ dinfo->fprintf_func (dinfo->stream, "br_bset[");
+ else
+ dinfo->fprintf_func (dinfo->stream, "br_bclr[");
+
+ if (nfp_me_is_imm_opnd8 (srcA))
+ {
+ err = err
+ || !nfp_me_print_opnd8 (srcB, 'B', num_ctx, src_lmext, 0, dinfo);
+ b = (nfp_me_imm_opnd8 (srcA, 0) - 1) & 0x1f;
+ }
+ else
+ {
+ err = err
+ || !nfp_me_print_opnd8 (srcA, 'A', num_ctx, src_lmext, 0, dinfo);
+ b = (nfp_me_imm_opnd8 (srcB, 0) - 1) & 0x1f;
+ }
+
+ dinfo->fprintf_func (dinfo->stream, ", %d, .%d]", b, br_addr);
+
+ if (defer)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_br_alu (bfd_vma instr, unsigned int src_lmext,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 9, 0);
+ unsigned int srcB = _BF (instr, 19, 10);
+ unsigned int defer = _BF (instr, 21, 20);
+ unsigned int imm = _BF (instr, 30, 22);
+ bfd_boolean err = FALSE;
+
+ if (nfp_me_is_imm_opnd10 (srcA))
+ imm = (imm << 8) | nfp_me_imm_opnd10 (srcA);
+ else
+ imm = (imm << 8) | nfp_me_imm_opnd10 (srcB);
+
+ if (!imm)
+ dinfo->fprintf_func (dinfo->stream, "rtn[");
+ else
+ dinfo->fprintf_func (dinfo->stream, "jump[");
+
+ if (nfp_me_is_imm_opnd10 (srcA))
+ err = err || !nfp_me_print_opnd10 (srcB, 'B', num_ctx, src_lmext, dinfo);
+ else
+ err = err || !nfp_me_print_opnd10 (srcA, 'A', num_ctx, src_lmext, dinfo);
+
+ if (imm)
+ dinfo->fprintf_func (dinfo->stream, ", .%d", imm);
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (defer)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_28_print_mult (bfd_vma instr, unsigned int pred_cc,
+ unsigned int dst_lmext, unsigned int src_lmext,
+ unsigned int gpr_wrboth,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 9, 0);
+ unsigned int srcB = _BF (instr, 19, 10);
+ unsigned int mstep = _BF (instr, 22, 20);
+ char dst_bank = 'A' + _BTST (instr, 23);
+ unsigned int swap = _BTST (instr, 30);
+ unsigned int mtype = _BF (instr, 32, 31);
+ unsigned int nocc = _BTST (instr, 40);
+ bfd_boolean err = FALSE;
+
+ if (swap)
+ {
+ unsigned int tmp = srcA;
+ srcA = srcB;
+ srcB = tmp;
+ }
+
+ dinfo->fprintf_func (dinfo->stream, "mul_step[");
+
+ if (mstep >= 4)
+ err = err
+ || !nfp_me_print_opnd10 (srcA, dst_bank, num_ctx, dst_lmext, dinfo);
+ else
+ err = err || !nfp_me_print_opnd10 (srcA, (swap) ? 'B' : 'A', num_ctx,
+ src_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, ", ");
+
+ if (mstep >= 4)
+ dinfo->fprintf_func (dinfo->stream, "--");
+ else
+ err = err || !nfp_me_print_opnd10 (srcB, (swap) ? 'A' : 'B', num_ctx,
+ src_lmext, dinfo);
+
+ dinfo->fprintf_func (dinfo->stream, "], %s", nfp_me27_28_mult_types[mtype]);
+ if (mtype > 0)
+ {
+ const char *s = nfp_me27_28_mult_steps[mstep];
+ if (!s)
+ {
+ s = "<invalid mul_step>";
+ err = TRUE;
+ }
+ dinfo->fprintf_func (dinfo->stream, "_%s", s);
+ }
+
+ if (nocc)
+ dinfo->fprintf_func (dinfo->stream, ", no_cc");
+ if (gpr_wrboth)
+ dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
+ if (pred_cc)
+ dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+_nfp_cmp_mnmnc (const void *arg_a, const void *arg_b)
+{
+ const nfp_cmd_mnemonic *a = arg_a;
+ const nfp_cmd_mnemonic *b = arg_b;
+
+ if (a->cpp_target != b->cpp_target)
+ return (a->cpp_target > b->cpp_target) - (a->cpp_target < b->cpp_target);
+
+ if (a->cpp_action != b->cpp_action)
+ return (a->cpp_action > b->cpp_action) - (a->cpp_action < b->cpp_action);
+
+ return (a->cpp_token > b->cpp_token) - (a->cpp_token < b->cpp_token);
+}
+
+static const char *
+nfp_me_find_mnemonic (unsigned int cpp_tgt, unsigned int cpp_act,
+ unsigned int cpp_tok, unsigned int cpp_len,
+ const nfp_cmd_mnemonic * mnemonics,
+ size_t mnemonics_cnt)
+{
+ nfp_cmd_mnemonic search_key = { cpp_tgt, cpp_act, cpp_tok, 0, 0, NULL };
+ const nfp_cmd_mnemonic *cmd = NULL;
+
+ cmd = bsearch (&search_key, mnemonics, mnemonics_cnt,
+ sizeof (nfp_cmd_mnemonic), _nfp_cmp_mnmnc);
+
+ if (!cmd)
+ return NULL;
+
+ /* Make sure we backtrack to the first entry that still matches the three
+ bsearched fields - then we simply iterate and compare cpp_len. */
+ while ((cmd > mnemonics) && (_nfp_cmp_mnmnc (&cmd[-1], &search_key) == 0))
+ --cmd;
+
+ /* Now compare by cpp_len and make sure we stay in range. */
+ for (; (cmd < (mnemonics + mnemonics_cnt))
+ && (_nfp_cmp_mnmnc (cmd, &search_key) == 0); ++cmd)
+ {
+ if ((cpp_len & cmd->len_mask) == cmd->len_fixed)
+ return cmd->mnemonic;
+ }
+
+ return NULL;
+}
+
+/* NFP-32xx (ME Version 2.7). */
+
+static int
+nfp_me27_print_cmd (bfd_vma instr, int third_party_32bit,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 7, 0);
+ unsigned int ctxswap_defer = _BF (instr, 9, 8);
+ unsigned int srcB = _BF (instr, 17, 10);
+ unsigned int token = _BF (instr, 19, 18);
+ unsigned int xfer = _BFS (instr, 40, 40, 5) | _BF (instr, 24, 20);
+ unsigned int cpp_len = _BF (instr, 27, 25);
+ unsigned int sig = _BF (instr, 31, 28);
+ unsigned int tgtcmd = _BF (instr, 38, 32);
+ unsigned int indref = _BTST (instr, 41);
+ unsigned int mode = _BF (instr, 44, 42);
+
+ bfd_boolean err = FALSE;
+ int cpp_target = -1;
+ int cpp_action = -1;
+ const char *mnemonic = NULL;
+ unsigned int imm;
+ unsigned int valBA;
+ int visswap = ((mode == 1) || (mode == 3));
+
+ imm = (sig << 10) | (cpp_len << 7) | ((xfer & 0x1f) << 2) | token;
+ valBA = (srcB << 8) | srcA;
+
+ if (mode == 6)
+ {
+ token = 0;
+ sig = 0;
+ xfer = 0;
+ }
+
+ /* Convert tgtcmd to action/token tuple. */
+ if (_BF (tgtcmd, 6, 5) == 0x0)
+ {
+ switch (_BF (tgtcmd, 4, 2))
+ {
+ case 0:
+ cpp_target = NFP_3200_CPPTGT_CAP;
+ dinfo->fprintf_func (dinfo->stream, "cap[");
+ break;
+ case 1:
+ cpp_target = NFP_3200_CPPTGT_MSF0;
+ dinfo->fprintf_func (dinfo->stream, "msf0[");
+ break;
+ case 2:
+ cpp_target = NFP_3200_CPPTGT_MSF1;
+ dinfo->fprintf_func (dinfo->stream, "msf1[");
+ break;
+ case 3:
+ cpp_target = NFP_3200_CPPTGT_PCIE;
+ dinfo->fprintf_func (dinfo->stream, "pcie[");
+ break;
+ case 4:
+ cpp_target = NFP_3200_CPPTGT_HASH;
+ break;
+ case 5:
+ cpp_target = NFP_3200_CPPTGT_CRYPTO;
+ dinfo->fprintf_func (dinfo->stream, "crypto[");
+ break;
+ case 6:
+ cpp_target = NFP_3200_CPPTGT_ARM;
+ dinfo->fprintf_func (dinfo->stream, "arm[");
+ break;
+ case 7:
+ cpp_target = NFP_3200_CPPTGT_CT;
+ dinfo->fprintf_func (dinfo->stream, "ct[");
+ break;
+ }
+ cpp_action = _BF (tgtcmd, 1, 0);
+ }
+ else
+ {
+ switch (_BF (tgtcmd, 6, 4))
+ {
+ case 2:
+ cpp_target = NFP_3200_CPPTGT_GS;
+ dinfo->fprintf_func (dinfo->stream, "scratch[");
+ break;
+ case 3:
+ cpp_target = NFP_3200_CPPTGT_QDR; /* A.k.a. SRAM. */
+ dinfo->fprintf_func (dinfo->stream, "sram[");
+ break;
+ case 4:
+ case 5:
+ cpp_target = NFP_3200_CPPTGT_MU;
+ dinfo->fprintf_func (dinfo->stream, "mem[");
+ break;
+ case 6:
+ case 7:
+ cpp_target = NFP_3200_CPPTGT_CLS;
+ dinfo->fprintf_func (dinfo->stream, "cls[");
+ break;
+ }
+ cpp_action = _BF (tgtcmd, 3, 0);
+ }
+
+ if (cpp_target < 0)
+ {
+ dinfo->fprintf_func (dinfo->stream, _("<invalid cmd target %d:%d:%d>[]"),
+ cpp_target, cpp_action, token);
+ return _NFP_ERR_CONT;
+ }
+
+ mnemonic = nfp_me_find_mnemonic (cpp_target, cpp_action, token, cpp_len,
+ nfp_me27_mnemonics,
+ ARRAY_SIZE (nfp_me27_mnemonics));
+
+ if (!mnemonic)
+ {
+ dinfo->fprintf_func (dinfo->stream, _("<invalid cmd action %d:%d:%d>[]"),
+ cpp_target, cpp_action, token);
+ return _NFP_ERR_CONT;
+ }
+
+ if (cpp_target == NFP_3200_CPPTGT_HASH)
+ {
+ dinfo->fprintf_func (dinfo->stream, "%s[$xfer_%d, %d",
+ mnemonic, xfer, cpp_len);
+ goto print_opt_toks;
+ }
+
+ dinfo->fprintf_func (dinfo->stream, "%s, ", mnemonic);
+
+ if (visswap)
+ {
+ unsigned int tmp = srcA;
+ srcA = srcB;
+ srcB = tmp;
+ }
+
+ switch (mode)
+ {
+ case 0: /* (A << 8) + B. */
+ case 1: /* (B << 8) + A. */
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
+ err = err
+ || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", <<8, ");
+ err = err
+ || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
+ break;
+ case 2: /* Accelerated 3rd party (A[ << 8]) + B. */
+ case 3: /* Accelerated 3rd party (B[ << 8]) + A. */
+ dinfo->fprintf_func (dinfo->stream, "0x%x, ", (indref << 6) | xfer);
+ err = err
+ || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
+ if (third_party_32bit)
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ else
+ dinfo->fprintf_func (dinfo->stream, ", <<8, ");
+ err = err
+ || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
+ break;
+ case 4: /* A + B. */
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
+ err = err || !nfp_me_print_opnd8 (srcA, 'A', num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ err = err || !nfp_me_print_opnd8 (srcB, 'B', num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
+ break;
+ case 5: /* Immediate address. */
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d, 0x%x, %d", xfer, valBA,
+ (cpp_len + 1));
+ break;
+ case 6: /* Immediate address and data. */
+ dinfo->fprintf_func (dinfo->stream, "0x%x, 0x%x", valBA, imm);
+ break;
+ case 7: /* Immediate data. */
+ dinfo->fprintf_func (dinfo->stream, "0x%x, --, %d",
+ ((xfer << 16) | valBA), (cpp_len + 1));
+ break;
+ }
+
+ print_opt_toks:
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (indref && (mode != 2) && (mode != 3))
+ dinfo->fprintf_func (dinfo->stream, ", indirect_ref");
+
+ if (ctxswap_defer != 3)
+ {
+ dinfo->fprintf_func (dinfo->stream, ", ctx_swap[");
+ if (sig)
+ dinfo->fprintf_func (dinfo->stream, "sig%d]", sig);
+ else
+ dinfo->fprintf_func (dinfo->stream, "--]");
+
+ if (ctxswap_defer != 0)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", ctxswap_defer);
+ }
+ else if (sig)
+ dinfo->fprintf_func (dinfo->stream, ", sig_done[sig%d]", sig);
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me27_print_alu_shf (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_alu_shf (instr, 0, 0, 0, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_alu (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_alu_shf (instr, 0, 0, 0, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_immed (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_immed (instr, 0, 0, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_ld_field (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_ld_field (instr, 0, 0, 0, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_ctx_arb (instr, dinfo);
+}
+
+static int
+nfp_me27_print_local_csr (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_local_csr (instr, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_branch (bfd_vma instr, struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_branch (instr, nfp_me27_br_inpstates, dinfo);
+}
+
+static int
+nfp_me27_print_br_byte (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_br_byte (instr, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_br_bit (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_br_bit (instr, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_br_alu (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_br_alu (instr, 0, num_ctx, dinfo);
+}
+
+static int
+nfp_me27_print_mult (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_mult (instr, 0, 0, 0, 0, num_ctx, dinfo);
+}
+
+/*NFP-6xxx/4xxx (ME Version 2.8). */
+
+static int
+nfp_me28_print_cmd (bfd_vma instr, int third_party_32bit,
+ int num_ctx, struct disassemble_info *dinfo)
+{
+ unsigned int srcA = _BF (instr, 7, 0);
+ unsigned int ctxswap_defer = _BF (instr, 9, 8);
+ unsigned int srcB = _BF (instr, 17, 10);
+ unsigned int token = _BF (instr, 19, 18);
+ unsigned int xfer = _BFS (instr, 40, 40, 5) | _BF (instr, 24, 20);
+ unsigned int cpp_len = _BF (instr, 27, 25);
+ unsigned int sig = _BF (instr, 31, 28);
+ unsigned int tgtcmd = _BF (instr, 38, 32);
+ unsigned int indref = _BTST (instr, 41);
+ unsigned int mode = _BF (instr, 44, 42);
+
+ bfd_boolean err = FALSE;
+ int cpp_target = -1;
+ int cpp_action = -1;
+ const char *mnemonic = NULL;
+ unsigned int imm;
+ unsigned int valBA;
+ int visswap = ((mode == 1) || (mode == 3));
+
+ imm = (sig << 10) | (cpp_len << 7) | ((xfer & 0x1f) << 2) | token;
+ valBA = (srcB << 8) | srcA;
+
+ if (mode == 6)
+ {
+ token = 0;
+ sig = 0;
+ xfer = 0;
+ }
+
+ /* Convert tgtcmd to action/token tuple. */
+ if (_BF (tgtcmd, 6, 5) == 0x0)
+ {
+ switch (_BF (tgtcmd, 4, 2))
+ {
+ case 0:
+ cpp_target = NFP_6000_CPPTGT_ILA;
+ dinfo->fprintf_func (dinfo->stream, "ila[");
+ break;
+ case 1:
+ cpp_target = NFP_6000_CPPTGT_NBI;
+ dinfo->fprintf_func (dinfo->stream, "nbi[");
+ break;
+ case 3:
+ cpp_target = NFP_6000_CPPTGT_PCIE;
+ dinfo->fprintf_func (dinfo->stream, "pcie[");
+ break;
+ case 5:
+ cpp_target = NFP_6000_CPPTGT_CRYPTO;
+ dinfo->fprintf_func (dinfo->stream, "crypto[");
+ break;
+ case 6:
+ cpp_target = NFP_6000_CPPTGT_ARM;
+ dinfo->fprintf_func (dinfo->stream, "arm[");
+ break;
+ case 7:
+ cpp_target = NFP_6000_CPPTGT_CTXPB;
+ dinfo->fprintf_func (dinfo->stream, "ct[");
+ break;
+ }
+ cpp_action = _BF (tgtcmd, 1, 0);
+ }
+ else
+ {
+ /* One bit overlap between "t" and "a" fields, for sram it's "t" and
+ for mem/cls it's "a". */
+ cpp_action = _BF (tgtcmd, 4, 0);
+ switch (_BF (tgtcmd, 6, 4))
+ {
+ case 3:
+ cpp_target = NFP_6000_CPPTGT_VQDR;
+ cpp_action = _BF (tgtcmd, 3, 0);
+ dinfo->fprintf_func (dinfo->stream, "sram[");
+ break;
+ case 4:
+ case 5:
+ cpp_target = NFP_6000_CPPTGT_MU;
+ dinfo->fprintf_func (dinfo->stream, "mem[");
+ break;
+ case 6:
+ case 7:
+ cpp_target = NFP_6000_CPPTGT_CLS;
+ dinfo->fprintf_func (dinfo->stream, "cls[");
+ break;
+ }
+ }
+
+ if (cpp_target < 0)
+ {
+ dinfo->fprintf_func (dinfo->stream, _("<invalid cmd target %d:%d:%d>[]"),
+ cpp_target, cpp_action, token);
+ return _NFP_ERR_CONT;
+ }
+
+ mnemonic = nfp_me_find_mnemonic (cpp_target, cpp_action, token, cpp_len,
+ nfp_me28_mnemonics,
+ ARRAY_SIZE (nfp_me28_mnemonics));
+
+ if (!mnemonic)
+ {
+ dinfo->fprintf_func (dinfo->stream, _("<invalid cmd action %d:%d:%d>[]"),
+ cpp_target, cpp_action, token);
+ return _NFP_ERR_CONT;
+ }
+
+ dinfo->fprintf_func (dinfo->stream, "%s, ", mnemonic);
+
+ if (visswap)
+ {
+ unsigned int tmp = srcA;
+ srcA = srcB;
+ srcB = tmp;
+ }
+
+ switch (mode)
+ {
+ case 0: /* (A << 8) + B. */
+ case 1: /* (B << 8) + A. */
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
+ err = err
+ || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", <<8, ");
+ err = err
+ || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
+ break;
+ case 2: /* Accelerated 3rd party (A[ << 8]) + B. */
+ case 3: /* Accelerated 3rd party (B[ << 8]) + A. */
+ dinfo->fprintf_func (dinfo->stream, "0x%x, ", (indref << 6) | xfer);
+ err = err
+ || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
+ if (third_party_32bit)
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ else
+ dinfo->fprintf_func (dinfo->stream, ", <<8, ");
+ err = err
+ || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
+ break;
+ case 4: /* A + B. */
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
+ err = err || !nfp_me_print_opnd8 (srcA, 'A', num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", ");
+ err = err || !nfp_me_print_opnd8 (srcB, 'B', num_ctx, 0, 0, dinfo);
+ dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
+ break;
+ case 5: /* Immediate address. */
+ dinfo->fprintf_func (dinfo->stream, "$xfer_%d, 0x%x, %d", xfer, valBA,
+ (cpp_len + 1));
+ break;
+ case 6: /* Immediate address and data. */
+ dinfo->fprintf_func (dinfo->stream, "0x%x, 0x%x", valBA, imm);
+ break;
+ case 7: /* Immediate data. */
+ dinfo->fprintf_func (dinfo->stream, "0x%x, --, %d",
+ ((xfer << 16) | valBA), (cpp_len + 1));
+ break;
+ }
+
+ dinfo->fprintf_func (dinfo->stream, "]");
+
+ if (indref && (mode != 2) && (mode != 3))
+ dinfo->fprintf_func (dinfo->stream, ", indirect_ref");
+
+ if (ctxswap_defer != 3)
+ {
+ dinfo->fprintf_func (dinfo->stream, ", ctx_swap[");
+ if (sig)
+ dinfo->fprintf_func (dinfo->stream, "sig%d]", sig);
+ else
+ dinfo->fprintf_func (dinfo->stream, "--]");
+
+ if (ctxswap_defer != 0)
+ dinfo->fprintf_func (dinfo->stream, ", defer[%d]", ctxswap_defer);
+ }
+ else if (sig)
+ dinfo->fprintf_func (dinfo->stream, ", sig_done[sig%d]", sig);
+
+ if (err)
+ return _NFP_ERR_CONT;
+ return 0;
+}
+
+static int
+nfp_me28_print_alu_shf (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int gpr_wrboth = _BTST (instr, 41);
+ unsigned int src_lmext = _BTST (instr, 42);
+ unsigned int dst_lmext = _BTST (instr, 43);
+ unsigned int pred_cc = _BTST (instr, 44);
+
+ return nfp_me27_28_print_alu_shf (instr, pred_cc, dst_lmext,
+ src_lmext, gpr_wrboth, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_alu (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int gpr_wrboth = _BTST (instr, 41);
+ unsigned int src_lmext = _BTST (instr, 42);
+ unsigned int dst_lmext = _BTST (instr, 43);
+ unsigned int pred_cc = _BTST (instr, 44);
+
+ return nfp_me27_28_print_alu (instr, pred_cc, dst_lmext, src_lmext,
+ gpr_wrboth, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_immed (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int gpr_wrboth = _BTST (instr, 41);
+ unsigned int dst_lmext = _BTST (instr, 43);
+ unsigned int pred_cc = _BTST (instr, 44);
+
+ return nfp_me27_28_print_immed (instr, pred_cc, dst_lmext, gpr_wrboth,
+ num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_ld_field (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int gpr_wrboth = _BTST (instr, 41);
+ unsigned int src_lmext = _BTST (instr, 42);
+ unsigned int dst_lmext = _BTST (instr, 43);
+ unsigned int pred_cc = _BTST (instr, 44);
+
+ return nfp_me27_28_print_ld_field (instr, pred_cc, dst_lmext,
+ src_lmext, gpr_wrboth, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_ctx_arb (bfd_vma instr, struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_ctx_arb (instr, dinfo);
+}
+
+static int
+nfp_me28_print_local_csr (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int src_lmext = _BTST (instr, 42);
+
+ return nfp_me27_28_print_local_csr (instr, src_lmext, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_branch (bfd_vma instr, struct disassemble_info *dinfo)
+{
+ return nfp_me27_28_print_branch (instr, nfp_me28_br_inpstates, dinfo);
+}
+
+static int
+nfp_me28_print_br_byte (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int src_lmext = _BTST (instr, 42);
+ return nfp_me27_28_print_br_byte (instr, src_lmext, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_br_bit (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int src_lmext = _BTST (instr, 42);
+ return nfp_me27_28_print_br_bit (instr, src_lmext, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_br_alu (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int src_lmext = _BTST (instr, 42);
+ return nfp_me27_28_print_br_alu (instr, src_lmext, num_ctx, dinfo);
+}
+
+static int
+nfp_me28_print_mult (bfd_vma instr, int num_ctx,
+ struct disassemble_info *dinfo)
+{
+ unsigned int gpr_wrboth = _BTST (instr, 41);
+ unsigned int src_lmext = _BTST (instr, 42);
+ unsigned int dst_lmext = _BTST (instr, 43);
+ unsigned int pred_cc = _BTST (instr, 44);
+
+ return nfp_me27_28_print_mult (instr, pred_cc, dst_lmext, src_lmext,
+ gpr_wrboth, num_ctx, dinfo);
+}
+
+static bfd_boolean
+init_nfp3200_priv (nfp_priv_data * priv, struct disassemble_info *dinfo)
+{
+ Elf_Internal_Shdr *sec = NULL;
+ Elf_Nfp_MeConfig mecfg_ent;
+ unsigned char buffer[sizeof (Elf_Nfp_MeConfig)];
+ file_ptr roff = 0;
+ unsigned int sec_cnt = 0;
+ unsigned int sec_idx;
+ size_t menum_linear = 0;
+
+ if (!dinfo->section)
+ /* No section info, will use default values. */
+ return TRUE;
+
+ sec_cnt = elf_numsections (dinfo->section->owner);
+
+ /* Find the MECONFIG section. It's index is also in e_flags, but it has
+ a unique SHT and we'll use that. */
+ for (sec_idx = 0; sec_idx < sec_cnt; sec_idx++)
+ {
+ sec = elf_elfsections (dinfo->section->owner)[sec_idx];
+
+ if (sec->sh_type == SHT_NFP_MECONFIG)
+ break;
+ }
+
+ if (sec_idx == sec_cnt)
+ {
+ dinfo->fprintf_func (dinfo->stream, _("File has no ME-Config section."));
+ return FALSE;
+ }
+
+ for (roff = 0; (bfd_size_type) roff < sec->sh_size;
+ roff += sec->sh_entsize, menum_linear++)
+ {
+ nfp_priv_mecfg *mecfg;
+ int isl = menum_linear >> 3;
+ int menum = menum_linear & 7;
+
+ if (menum_linear >= 40)
+ {
+ dinfo->fprintf_func (dinfo->stream,
+ _("File has invalid ME-Config section."));
+ return FALSE;
+ }
+
+ mecfg = &priv->mecfgs[isl][menum][1];
+
+ if (!_bfd_generic_get_section_contents (dinfo->section->owner,
+ sec->bfd_section, buffer,
+ roff, sizeof (buffer)))
+ return FALSE;
+
+ mecfg_ent.ctx_enables = bfd_getl32 (buffer + offsetof (Elf_Nfp_MeConfig,
+ ctx_enables));
+ mecfg_ent.misc_control = bfd_getl32 (buffer
+ + offsetof (Elf_Nfp_MeConfig, misc_control));
+
+ mecfg->ctx4_mode = _BTST (mecfg_ent.ctx_enables, 31);
+ mecfg->addr_3rdparty32 = _BTST (mecfg_ent.misc_control, 4);
+ mecfg->scs_cnt = _BTST (mecfg_ent.misc_control, 2);
+ }
+
+ return TRUE;
+}
+
+static bfd_boolean
+init_nfp6000_mecsr_sec (nfp_priv_data * priv, Elf_Internal_Shdr * sec,
+ int is_for_text, struct disassemble_info *dinfo)
+{
+ Elf_Nfp_InitRegEntry ireg;
+ unsigned char buffer[sizeof (Elf_Nfp_InitRegEntry)];
+ file_ptr ireg_off = 0;
+ size_t isl, menum;
+
+ if (sec->sh_entsize != sizeof (ireg))
+ return FALSE;
+
+ isl = SHI_NFP_IREG_ISLAND (sec->sh_info);
+
+ /* For these sections we know that the address will only be 32 bits
+ so we only need cpp_offset_lo.
+ Address is encoded as follows:
+ <31:30> 0
+ <29:24> island (already got this from sh_info)
+ <23:17> 0
+ <16:16> XferCsrRegSel (1 for these sections)
+ <15:14> 0
+ <13:10> DataMasterID (MEnum = this - 4)
+ <9:2> register (index)
+ <1:0> 0b0 (register byte address if appened to the previous field). */
+ for (ireg_off = 0; (bfd_size_type) ireg_off < sec->sh_size;
+ ireg_off += sec->sh_entsize)
+ {
+ uint32_t csr_off;
+ nfp_priv_mecfg *mecfg;
+
+ if (!_bfd_generic_get_section_contents (dinfo->section->owner,
+ sec->bfd_section, buffer,
+ ireg_off, sizeof (buffer)))
+ return FALSE;
+
+ ireg.cpp_offset_lo = bfd_getl32 (buffer
+ + offsetof (Elf_Nfp_InitRegEntry, cpp_offset_lo));
+ ireg.mask = bfd_getl32 (buffer + offsetof (Elf_Nfp_InitRegEntry, mask));
+ ireg.val = bfd_getl32 (buffer + offsetof (Elf_Nfp_InitRegEntry, val));
+ ireg.w0 = bfd_getl32 (buffer + offsetof (Elf_Nfp_InitRegEntry, w0));
+
+ if (NFP_IREG_ENTRY_WO_NLW (ireg.w0))
+ continue;
+
+ /* Only consider entries that are permanent for runtime. */
+ if ((NFP_IREG_ENTRY_WO_VTP (ireg.w0) != NFP_IREG_VTP_CONST)
+ && (NFP_IREG_ENTRY_WO_VTP (ireg.w0) != NFP_IREG_VTP_FORCE))
+ continue;
+
+ menum = _BF (ireg.cpp_offset_lo, 13, 10) - 4;
+ csr_off = _BF (ireg.cpp_offset_lo, 9, 0);
+
+ mecfg = &priv->mecfgs[isl][menum][is_for_text];
+ switch (csr_off)
+ {
+ case _NFP_ME27_28_CSR_CTX_ENABLES:
+ mecfg->ctx4_mode = _BTST (ireg.val, 31);
+ break;
+ case _NFP_ME27_28_CSR_MISC_CONTROL:
+ mecfg->addr_3rdparty32 = _BTST (ireg.val, 4);
+ mecfg->scs_cnt = _BTST (ireg.val, 2);
+ break;
+ default:
+ break;
+ }
+ }
+
+ return TRUE;
+}
+
+static bfd_boolean
+init_nfp6000_priv (nfp_priv_data * priv, struct disassemble_info *dinfo)
+{
+ int mecfg_orders[64][2];
+ size_t isl;
+ unsigned int sec_cnt = 0;
+ unsigned int sec_idx;
+ int is_for_text;
+
+ memset (mecfg_orders, -1, sizeof (mecfg_orders));
+
+ if (!dinfo->section)
+ /* No section info, will use default values. */
+ return TRUE;
+
+ sec_cnt = elf_numsections (dinfo->section->owner);
+
+ /* Go through all MECSR init sections to find ME configs. */
+ for (sec_idx = 0; sec_idx < sec_cnt; sec_idx++)
+ {
+ Elf_Internal_Shdr *sec;
+ int sec_order;
+
+ sec = elf_elfsections (dinfo->section->owner)[sec_idx];
+ sec_order = (int) SHI_NFP_IREG_ORDER (sec->sh_info);
+
+ is_for_text = (sec->sh_flags & (SHF_NFP_INIT | SHF_NFP_INIT2)) == 0;
+
+ /* If we have an init2 section, that is the one that applies to the
+ ME when executing init code. So we make it's order higher than
+ any plain init section. */
+ if (sec->sh_flags & SHF_NFP_INIT2)
+ sec_order += SHI_NFP_IREG_ORDER (~0U) + 1;
+
+ if (sec->sh_type != SHT_NFP_INITREG)
+ continue;
+ if (!SHI_NFP_6000_IS_IREG_MECSR (sec->sh_info))
+ continue;
+
+ isl = SHI_NFP_IREG_ISLAND (sec->sh_info);
+ if ((sec_order < mecfg_orders[isl][is_for_text]))
+ /* Lower order or transient, skip it. */
+ continue;
+
+ mecfg_orders[isl][is_for_text] = sec_order;
+
+ if (!init_nfp6000_mecsr_sec (priv, sec, is_for_text, dinfo))
+ {
+ dinfo->fprintf_func (dinfo->stream,
+ _("Error processing section %u "), sec_idx);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+static int
+parse_disassembler_options (nfp_opts * opts, struct disassemble_info *dinfo)
+{
+ const char *option;
+
+ if (dinfo->disassembler_options == NULL)
+ return 0;
+
+ FOR_EACH_DISASSEMBLER_OPTION (option, dinfo->disassembler_options)
+ {
+ if (disassembler_options_cmp (option, "no-pc") == 0)
+ opts->show_pc = 0;
+ else if (disassembler_options_cmp (option, "ctx4") == 0)
+ {
+ if (!opts->ctx_mode)
+ opts->ctx_mode = 4;
+ }
+ else if (disassembler_options_cmp (option, "ctx8") == 0)
+ opts->ctx_mode = 8;
+ else
+ {
+ dinfo->fprintf_func (dinfo->stream, _("Invalid NFP option: %s"), option);
+ return _NFP_ERR_STOP;
+ }
+ }
+
+ return 0;
+}
+
+/* Called on first disassembly attempt so that dinfo->section is valid
+ so that we can get the bfd owner to find ME configs. */
+
+static nfp_priv_data *
+init_nfp_priv (struct disassemble_info *dinfo)
+{
+ nfp_priv_data *priv;
+ int ret = FALSE;
+
+ if (dinfo->private_data)
+ return (nfp_priv_data *) dinfo->private_data;
+
+#if 0 /* Right now only section-related info is kept in priv.
+ So don't even calloc it if we don't need it. */
+ if (!dinfo->section)
+ return NULL;
+#endif
+
+ /* Alloc with no free, seems to be either this or a static global variable
+ and this at least keeps a large struct unallocated until really needed. */
+ priv = calloc (1, sizeof (*priv));
+ if (!priv)
+ return NULL;
+
+ switch (dinfo->mach)
+ {
+ case E_NFP_MACH_3200:
+ ret = init_nfp3200_priv (priv, dinfo);
+ break;
+ case E_NFP_MACH_6000:
+ ret = init_nfp6000_priv (priv, dinfo);
+ break;
+ }
+
+ if (!ret)
+ {
+ free (priv);
+ return NULL;
+ }
+
+ dinfo->private_data = priv;
+ return priv;
+}
+
+static int
+_print_instrs (bfd_vma addr, struct disassemble_info *dinfo, nfp_opts * opts)
+{
+ nfp_priv_data *priv = init_nfp_priv (dinfo);
+ bfd_byte buffer[8];
+ int err;
+ bfd_vma instr = 0;
+ size_t island, menum;
+ int num_ctx, scs_cnt, addr_3rdparty32, pc, tmpi, tmpj;
+ int is_text = 1;
+
+ err = dinfo->read_memory_func (addr, buffer, 8, dinfo);
+ if (err)
+ return _NFP_ERR_STOP;
+
+ if (!dinfo->section)
+ {
+ num_ctx = 8;
+ scs_cnt = 0;
+ addr_3rdparty32 = 0;
+ }
+ else
+ {
+ unsigned int sh_info = 0;
+ nfp_priv_mecfg *mecfg;
+
+ /* We have a section, presumably all ELF sections. Try to find
+ proper ME configs to produce better disassembly. */
+ if (!priv)
+ return _NFP_ERR_STOP; /* Sanity check */
+
+ is_text = (elf_section_flags (dinfo->section)
+ & (SHF_NFP_INIT | SHF_NFP_INIT2)) == 0;
+
+ sh_info = elf_section_info (dinfo->section);
+
+ switch (dinfo->mach)
+ {
+ case E_NFP_MACH_3200:
+ island = SHI_NFP_3200_ISLAND (sh_info);
+ menum = SHI_NFP_3200_MENUM (sh_info);
+ break;
+ default:
+ island = SHI_NFP_ISLAND (sh_info);
+ menum = SHI_NFP_MENUM (sh_info);
+ break;
+ }
+
+ mecfg = &priv->mecfgs[island][menum][is_text];
+ num_ctx = (mecfg->ctx4_mode) ? 4 : 8;
+ addr_3rdparty32 = mecfg->addr_3rdparty32;
+ scs_cnt = mecfg->scs_cnt;
+ }
+
+ if (opts->ctx_mode)
+ num_ctx = opts->ctx_mode;
+
+ dinfo->bytes_per_line = 8;
+ dinfo->bytes_per_chunk = 8;
+
+ instr = bfd_getl64 (buffer);
+
+ if (opts->show_pc)
+ {
+ pc = (int) (addr >> 3);
+
+ /* Guess max PC for formatting */
+ tmpj = (int) (dinfo->buffer_length >> 3);
+ if (scs_cnt == 1)
+ {
+ pc *= 2;
+ tmpj *= 2;
+ if (! !(menum & 1))
+ {
+ pc++;
+ tmpj++;
+ }
+ }
+
+ for (tmpi = 1; tmpj > 9; tmpj /= 10)
+ tmpi++;
+
+ tmpj = pc;
+ for (; tmpj > 9; tmpj /= 10)
+ tmpi--;
+
+ dinfo->fprintf_func (dinfo->stream, "%*c%d ", tmpi, '.', pc);
+ }
+
+ switch (dinfo->mach)
+ {
+ case E_NFP_MACH_3200:
+ if (NFP_ME27_INSTR_IS_CMD (instr))
+ err = nfp_me27_print_cmd (instr, addr_3rdparty32, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_ALU_SHF (instr))
+ err = nfp_me27_print_alu_shf (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_ALU (instr))
+ err = nfp_me27_print_alu (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_IMMED (instr))
+ err = nfp_me27_print_immed (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_LD_FIELD (instr))
+ err = nfp_me27_print_ld_field (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_CTX_ARB (instr))
+ err = nfp_me27_print_ctx_arb (instr, dinfo);
+ else if (NFP_ME27_INSTR_IS_LOCAL_CSR (instr))
+ err = nfp_me27_print_local_csr (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_BRANCH (instr))
+ err = nfp_me27_print_branch (instr, dinfo);
+ else if (NFP_ME27_INSTR_IS_BR_BYTE (instr))
+ err = nfp_me27_print_br_byte (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_BR_BIT (instr))
+ err = nfp_me27_print_br_bit (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_BR_ALU (instr))
+ err = nfp_me27_print_br_alu (instr, num_ctx, dinfo);
+ else if (NFP_ME27_INSTR_IS_MULT (instr))
+ err = nfp_me27_print_mult (instr, num_ctx, dinfo);
+ else
+ err = nfp_me_print_invalid (instr, dinfo);
+ break;
+
+ case E_NFP_MACH_6000:
+ if (NFP_ME28_INSTR_IS_CMD (instr))
+ err = nfp_me28_print_cmd (instr, addr_3rdparty32, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_ALU_SHF (instr))
+ err = nfp_me28_print_alu_shf (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_ALU (instr))
+ err = nfp_me28_print_alu (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_IMMED (instr))
+ err = nfp_me28_print_immed (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_LD_FIELD (instr))
+ err = nfp_me28_print_ld_field (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_CTX_ARB (instr))
+ err = nfp_me28_print_ctx_arb (instr, dinfo);
+ else if (NFP_ME28_INSTR_IS_LOCAL_CSR (instr))
+ err = nfp_me28_print_local_csr (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_BRANCH (instr))
+ err = nfp_me28_print_branch (instr, dinfo);
+ else if (NFP_ME28_INSTR_IS_BR_BYTE (instr))
+ err = nfp_me28_print_br_byte (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_BR_BIT (instr))
+ err = nfp_me28_print_br_bit (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_BR_ALU (instr))
+ err = nfp_me28_print_br_alu (instr, num_ctx, dinfo);
+ else if (NFP_ME28_INSTR_IS_MULT (instr))
+ err = nfp_me28_print_mult (instr, num_ctx, dinfo);
+ else
+ err = nfp_me_print_invalid (instr, dinfo);
+ break;
+ }
+
+ if (err < 0)
+ return err;
+ return 8;
+}
+
+int
+print_insn_nfp (bfd_vma addr, struct disassemble_info *dinfo)
+{
+ nfp_opts opts;
+ int err;
+
+ opts.show_pc = 1;
+ opts.ctx_mode = 0;
+ err = parse_disassembler_options (&opts, dinfo);
+ if (err < 0)
+ goto end;
+
+ err = _print_instrs (addr, dinfo, &opts);
+
+end:
+ if (err != 8)
+ dinfo->fprintf_func (dinfo->stream, "\t # ERROR");
+ if (err == _NFP_ERR_CONT)
+ return 8;
+ return err;
+}
+
+void
+print_nfp_disassembler_options (FILE * stream)
+{
+ fprintf (stream, _("\n\
+The following NFP specific disassembler options are supported for use\n\
+with the -M switch (multiple options should be separated by commas):\n"));
+
+ fprintf (stream, _("\n\
+ no-pc Don't print program counter prefix.\n\
+ ctx4 Force disassembly using 4-context mode.\n\
+ ctx8 Force 8-context mode, takes presedence.\""));
+
+ fprintf (stream, _("\n"));
+}
diff --git a/opcodes/po/POTFILES.in b/opcodes/po/POTFILES.in
index cc3997d..7f250b0 100644
--- a/opcodes/po/POTFILES.in
+++ b/opcodes/po/POTFILES.in
@@ -154,6 +154,7 @@ mt-opc.c
mt-opc.h
nds32-asm.c
nds32-dis.c
+nfp-dis.c
nios2-dis.c
nios2-opc.c
ns32k-dis.c
diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot
index c7f0543..af9ea5d 100644
--- a/opcodes/po/opcodes.pot
+++ b/opcodes/po/opcodes.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2018-01-13 13:45+0000\n"
+"POT-Creation-Date: 2018-04-30 11:54+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"
@@ -18,9 +18,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#. Invalid option.
-#: aarch64-dis.c:81 arc-dis.c:781 arm-dis.c:6155
+#: aarch64-dis.c:81 arc-dis.c:782 arm-dis.c:6158
#, c-format
-msgid "Unrecognised disassembler option: %s\n"
+msgid "unrecognised disassembler option: %s"
msgstr ""
#: aarch64-dis.c:3264
@@ -53,7 +53,7 @@ msgid ""
msgstr ""
#: aarch64-dis.c:3279 mips-dis.c:2601 mips-dis.c:2609 mips-dis.c:2611
-#: riscv-dis.c:509
+#: nfp-dis.c:2989 riscv-dis.c:509
#, c-format
msgid "\n"
msgstr ""
@@ -138,7 +138,7 @@ msgstr ""
msgid "invalid post-increment amount"
msgstr ""
-#: aarch64-opc.c:1694 aarch64-opc.c:2171
+#: aarch64-opc.c:1694 aarch64-opc.c:2172
msgid "invalid shift amount"
msgstr ""
@@ -146,118 +146,118 @@ msgstr ""
msgid "invalid extend/shift operator"
msgstr ""
-#: aarch64-opc.c:1753 aarch64-opc.c:1992 aarch64-opc.c:2027 aarch64-opc.c:2046
-#: aarch64-opc.c:2054 aarch64-opc.c:2125 aarch64-opc.c:2301 aarch64-opc.c:2401
-#: aarch64-opc.c:2414
+#: aarch64-opc.c:1753 aarch64-opc.c:1993 aarch64-opc.c:2028 aarch64-opc.c:2047
+#: aarch64-opc.c:2055 aarch64-opc.c:2126 aarch64-opc.c:2302 aarch64-opc.c:2402
+#: aarch64-opc.c:2415
msgid "immediate out of range"
msgstr ""
-#: aarch64-opc.c:1775 aarch64-opc.c:1817 aarch64-opc.c:1866 aarch64-opc.c:1900
+#: aarch64-opc.c:1775 aarch64-opc.c:1817 aarch64-opc.c:1867 aarch64-opc.c:1901
msgid "invalid addressing mode"
msgstr ""
-#: aarch64-opc.c:1858
+#: aarch64-opc.c:1859
msgid "index register xzr is not allowed"
msgstr ""
-#: aarch64-opc.c:1980 aarch64-opc.c:2002 aarch64-opc.c:2204 aarch64-opc.c:2212
-#: aarch64-opc.c:2278 aarch64-opc.c:2307
+#: aarch64-opc.c:1981 aarch64-opc.c:2003 aarch64-opc.c:2205 aarch64-opc.c:2213
+#: aarch64-opc.c:2279 aarch64-opc.c:2308
msgid "invalid shift operator"
msgstr ""
-#: aarch64-opc.c:1986
+#: aarch64-opc.c:1987
msgid "shift amount must be 0 or 12"
msgstr ""
-#: aarch64-opc.c:2009
+#: aarch64-opc.c:2010
msgid "shift amount must be a multiple of 16"
msgstr ""
-#: aarch64-opc.c:2021
+#: aarch64-opc.c:2022
msgid "negative immediate value not allowed"
msgstr ""
-#: aarch64-opc.c:2136
+#: aarch64-opc.c:2137
msgid "immediate zero expected"
msgstr ""
-#: aarch64-opc.c:2150
+#: aarch64-opc.c:2151
msgid "rotate expected to be 0, 90, 180 or 270"
msgstr ""
-#: aarch64-opc.c:2160
+#: aarch64-opc.c:2161
msgid "rotate expected to be 90 or 270"
msgstr ""
-#: aarch64-opc.c:2220
+#: aarch64-opc.c:2221
msgid "shift is not permitted"
msgstr ""
-#: aarch64-opc.c:2245
+#: aarch64-opc.c:2246
msgid "invalid value for immediate"
msgstr ""
-#: aarch64-opc.c:2270
+#: aarch64-opc.c:2271
msgid "shift amount must be 0 or 16"
msgstr ""
-#: aarch64-opc.c:2291
+#: aarch64-opc.c:2292
msgid "floating-point immediate expected"
msgstr ""
-#: aarch64-opc.c:2325
+#: aarch64-opc.c:2326
msgid "no shift amount allowed for 8-bit constants"
msgstr ""
-#: aarch64-opc.c:2335
+#: aarch64-opc.c:2336
msgid "shift amount must be 0 or 8"
msgstr ""
-#: aarch64-opc.c:2348
+#: aarch64-opc.c:2349
msgid "immediate too big for element size"
msgstr ""
-#: aarch64-opc.c:2355
+#: aarch64-opc.c:2356
msgid "invalid arithmetic immediate"
msgstr ""
-#: aarch64-opc.c:2369
+#: aarch64-opc.c:2370
msgid "floating-point value must be 0.5 or 1.0"
msgstr ""
-#: aarch64-opc.c:2379
+#: aarch64-opc.c:2380
msgid "floating-point value must be 0.5 or 2.0"
msgstr ""
-#: aarch64-opc.c:2389
+#: aarch64-opc.c:2390
msgid "floating-point value must be 0.0 or 1.0"
msgstr ""
-#: aarch64-opc.c:2420
+#: aarch64-opc.c:2421
msgid "invalid replicated MOV immediate"
msgstr ""
-#: aarch64-opc.c:2535
+#: aarch64-opc.c:2536
msgid "extend operator expected"
msgstr ""
-#: aarch64-opc.c:2548
+#: aarch64-opc.c:2549
msgid "missing extend operator"
msgstr ""
-#: aarch64-opc.c:2554
+#: aarch64-opc.c:2555
msgid "'LSL' operator not allowed"
msgstr ""
-#: aarch64-opc.c:2575
+#: aarch64-opc.c:2576
msgid "W register expected"
msgstr ""
-#: aarch64-opc.c:2586
+#: aarch64-opc.c:2587
msgid "shift operator expected"
msgstr ""
-#: aarch64-opc.c:2593
+#: aarch64-opc.c:2594
msgid "'ROR' operator not allowed"
msgstr ""
@@ -277,12 +277,12 @@ msgid ""
"\t\t\t\t"
msgstr ""
-#: arc-dis.c:823
+#: arc-dis.c:825
#, c-format
-msgid "Unrecognised disassembler CPU option: %s\n"
+msgid "unrecognised disassembler CPU option: %s"
msgstr ""
-#: arc-dis.c:1385
+#: arc-dis.c:1387
#, c-format
msgid ""
"\n"
@@ -290,42 +290,42 @@ msgid ""
"with -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: arc-dis.c:1397
+#: arc-dis.c:1399
#, c-format
msgid " dsp Recognize DSP instructions.\n"
msgstr ""
-#: arc-dis.c:1399
+#: arc-dis.c:1401
#, c-format
msgid " spfp Recognize FPX SP instructions.\n"
msgstr ""
-#: arc-dis.c:1401
+#: arc-dis.c:1403
#, c-format
msgid " dpfp Recognize FPX DP instructions.\n"
msgstr ""
-#: arc-dis.c:1403
+#: arc-dis.c:1405
#, c-format
msgid " quarkse_em Recognize FPU QuarkSE-EM instructions.\n"
msgstr ""
-#: arc-dis.c:1405
+#: arc-dis.c:1407
#, c-format
msgid " fpuda Recognize double assist FPU instructions.\n"
msgstr ""
-#: arc-dis.c:1407
+#: arc-dis.c:1409
#, c-format
msgid " fpus Recognize single precision FPU instructions.\n"
msgstr ""
-#: arc-dis.c:1409
+#: arc-dis.c:1411
#, c-format
msgid " fpud Recognize double precision FPU instructions.\n"
msgstr ""
-#: arc-dis.c:1411
+#: arc-dis.c:1413
#, c-format
msgid " hex Use only hexadecimal number to print immediates.\n"
msgstr ""
@@ -527,12 +527,12 @@ msgstr ""
msgid "<illegal precision>"
msgstr ""
-#: arm-dis.c:6148
+#: arm-dis.c:6149
#, c-format
-msgid "Unrecognised register name set: %s\n"
+msgid "unrecognised register name set: %s"
msgstr ""
-#: arm-dis.c:6852
+#: arm-dis.c:6855
#, c-format
msgid ""
"\n"
@@ -545,12 +545,12 @@ msgstr ""
msgid "undefined"
msgstr ""
-#: avr-dis.c:215
+#: avr-dis.c:216
#, c-format
-msgid "Internal disassembler error"
+msgid "internal disassembler error"
msgstr ""
-#: avr-dis.c:268
+#: avr-dis.c:270
#, c-format
msgid "unknown constraint `%c'"
msgstr ""
@@ -568,7 +568,12 @@ msgstr ""
msgid "operand out of range (%lu not between %lu and %lu)"
msgstr ""
-#: d30v-dis.c:254
+#: d30v-dis.c:229
+#, c-format
+msgid "illegal id (%d)"
+msgstr ""
+
+#: d30v-dis.c:256
#, c-format
msgid "<unknown register %d>"
msgstr ""
@@ -619,95 +624,112 @@ msgstr ""
msgid "Not a pc-relative address."
msgstr ""
-#: epiphany-asm.c:455 fr30-asm.c:310 frv-asm.c:1263 ip2k-asm.c:511
-#: iq2000-asm.c:459 lm32-asm.c:349 m32c-asm.c:1584 m32r-asm.c:328
-#: mep-asm.c:1287 mt-asm.c:595 or1k-asm.c:503 xc16x-asm.c:376
-#: xstormy16-asm.c:276
+#: 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:504 xc16x-asm.c:377
+#: xstormy16-asm.c:277
#, c-format
-msgid "Unrecognized field %d while parsing.\n"
+msgid "internal error: unrecognized field %d while parsing"
msgstr ""
-#: epiphany-asm.c:506 fr30-asm.c:361 frv-asm.c:1314 ip2k-asm.c:562
-#: iq2000-asm.c:510 lm32-asm.c:400 m32c-asm.c:1635 m32r-asm.c:379
-#: mep-asm.c:1338 mt-asm.c:646 or1k-asm.c:554 xc16x-asm.c:427
-#: xstormy16-asm.c:327
+#: 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:556 xc16x-asm.c:429
+#: xstormy16-asm.c:329
msgid "missing mnemonic in syntax string"
msgstr ""
#. We couldn't parse it.
-#: epiphany-asm.c:641 epiphany-asm.c:645 epiphany-asm.c:734 epiphany-asm.c:841
-#: fr30-asm.c:496 fr30-asm.c:500 fr30-asm.c:589 fr30-asm.c:696 frv-asm.c:1449
-#: frv-asm.c:1453 frv-asm.c:1542 frv-asm.c:1649 ip2k-asm.c:697 ip2k-asm.c:701
-#: ip2k-asm.c:790 ip2k-asm.c:897 iq2000-asm.c:645 iq2000-asm.c:649
-#: iq2000-asm.c:738 iq2000-asm.c:845 lm32-asm.c:535 lm32-asm.c:539
-#: lm32-asm.c:628 lm32-asm.c:735 m32c-asm.c:1770 m32c-asm.c:1774
-#: m32c-asm.c:1863 m32c-asm.c:1970 m32r-asm.c:514 m32r-asm.c:518 m32r-asm.c:607
-#: m32r-asm.c:714 mep-asm.c:1473 mep-asm.c:1477 mep-asm.c:1566 mep-asm.c:1673
-#: mt-asm.c:781 mt-asm.c:785 mt-asm.c:874 mt-asm.c:981 or1k-asm.c:689
-#: or1k-asm.c:693 or1k-asm.c:782 or1k-asm.c:889 xc16x-asm.c:562 xc16x-asm.c:566
-#: xc16x-asm.c:655 xc16x-asm.c:762 xstormy16-asm.c:462 xstormy16-asm.c:466
-#: xstormy16-asm.c:555 xstormy16-asm.c:662
+#: epiphany-asm.c:643 epiphany-asm.c:647 epiphany-asm.c:736 epiphany-asm.c:843
+#: fr30-asm.c:498 fr30-asm.c:502 fr30-asm.c:591 fr30-asm.c:698 frv-asm.c:1451
+#: frv-asm.c:1455 frv-asm.c:1544 frv-asm.c:1651 ip2k-asm.c:699 ip2k-asm.c:703
+#: ip2k-asm.c:792 ip2k-asm.c:899 iq2000-asm.c:647 iq2000-asm.c:651
+#: iq2000-asm.c:740 iq2000-asm.c:847 lm32-asm.c:537 lm32-asm.c:541
+#: lm32-asm.c:630 lm32-asm.c:737 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:691
+#: or1k-asm.c:695 or1k-asm.c:784 or1k-asm.c:891 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"
msgstr ""
-#: epiphany-asm.c:688 fr30-asm.c:543 frv-asm.c:1496 ip2k-asm.c:744
-#: iq2000-asm.c:692 lm32-asm.c:582 m32c-asm.c:1817 m32r-asm.c:561
-#: mep-asm.c:1520 mt-asm.c:828 or1k-asm.c:736 xc16x-asm.c:609
-#: xstormy16-asm.c:509
+#: 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:738 xc16x-asm.c:611
+#: xstormy16-asm.c:511
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr ""
-#: epiphany-asm.c:698 fr30-asm.c:553 frv-asm.c:1506 ip2k-asm.c:754
-#: iq2000-asm.c:702 lm32-asm.c:592 m32c-asm.c:1827 m32r-asm.c:571
-#: mep-asm.c:1530 mt-asm.c:838 or1k-asm.c:746 xc16x-asm.c:619
-#: xstormy16-asm.c:519
+#: 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:748 xc16x-asm.c:621
+#: xstormy16-asm.c:521
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr ""
-#: epiphany-asm.c:728 fr30-asm.c:583 frv-asm.c:1536 ip2k-asm.c:784
-#: iq2000-asm.c:732 lm32-asm.c:622 m32c-asm.c:1857 m32r-asm.c:601
-#: mep-asm.c:1560 mt-asm.c:868 or1k-asm.c:776 xc16x-asm.c:649
-#: xstormy16-asm.c:549
+#: 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:778 xc16x-asm.c:651
+#: xstormy16-asm.c:551
msgid "junk at end of line"
msgstr ""
-#: epiphany-asm.c:840 fr30-asm.c:695 frv-asm.c:1648 ip2k-asm.c:896
-#: iq2000-asm.c:844 lm32-asm.c:734 m32c-asm.c:1969 m32r-asm.c:713
-#: mep-asm.c:1672 mt-asm.c:980 or1k-asm.c:888 xc16x-asm.c:761
-#: xstormy16-asm.c:661
+#: 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:890 xc16x-asm.c:763
+#: xstormy16-asm.c:663
msgid "unrecognized form of instruction"
msgstr ""
-#: epiphany-asm.c:854 fr30-asm.c:709 frv-asm.c:1662 ip2k-asm.c:910
-#: iq2000-asm.c:858 lm32-asm.c:748 m32c-asm.c:1983 m32r-asm.c:727
-#: mep-asm.c:1686 mt-asm.c:994 or1k-asm.c:902 xc16x-asm.c:775
-#: xstormy16-asm.c:675
+#: 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:904 xc16x-asm.c:777
+#: xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s...'"
msgstr ""
-#: epiphany-asm.c:857 fr30-asm.c:712 frv-asm.c:1665 ip2k-asm.c:913
-#: iq2000-asm.c:861 lm32-asm.c:751 m32c-asm.c:1986 m32r-asm.c:730
-#: mep-asm.c:1689 mt-asm.c:997 or1k-asm.c:905 xc16x-asm.c:778
-#: xstormy16-asm.c:678
+#: 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:907 xc16x-asm.c:780
+#: xstormy16-asm.c:680
#, c-format
msgid "bad instruction `%.50s'"
msgstr ""
+#: epiphany-desc.c:2109
+#, c-format
+msgid ""
+"internal error: epiphany_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: epiphany-desc.c:2192
+#, c-format
+msgid "internal error: epiphany_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: epiphany-desc.c:2211
+#, c-format
+msgid "internal error: epiphany_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#. Default text to print if an instruction isn't recognized.
#: epiphany-dis.c:41 fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41
-#: lm32-dis.c:41 m32c-dis.c:41 m32r-dis.c:41 mep-dis.c:41 mmix-dis.c:276
+#: lm32-dis.c:41 m32c-dis.c:41 m32r-dis.c:41 mep-dis.c:41 mmix-dis.c:275
#: mt-dis.c:41 nds32-dis.c:39 or1k-dis.c:41 xc16x-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr ""
-#: epiphany-dis.c:278 fr30-dis.c:299 frv-dis.c:396 ip2k-dis.c:288
-#: iq2000-dis.c:189 lm32-dis.c:147 m32c-dis.c:891 m32r-dis.c:279 mep-dis.c:1187
-#: mt-dis.c:290 or1k-dis.c:141 xc16x-dis.c:420 xstormy16-dis.c:168
+#: 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:142 xc16x-dis.c:421 xstormy16-dis.c:169
#, c-format
-msgid "Unrecognized field %d while printing insn.\n"
+msgid "internal error: unrecognized field %d while printing insn"
msgstr ""
#: epiphany-ibld.c:164 fr30-ibld.c:164 frv-ibld.c:164 ip2k-ibld.c:164
@@ -726,52 +748,52 @@ msgstr ""
msgid "operand out of range (0x%lx not between 0 and 0x%lx)"
msgstr ""
-#: epiphany-ibld.c:879 fr30-ibld.c:734 frv-ibld.c:860 ip2k-ibld.c:611
-#: iq2000-ibld.c:717 lm32-ibld.c:638 m32c-ibld.c:1735 m32r-ibld.c:669
-#: mep-ibld.c:1212 mt-ibld.c:753 or1k-ibld.c:650 xc16x-ibld.c:756
-#: xstormy16-ibld.c:682
+#: epiphany-ibld.c:880 fr30-ibld.c:735 frv-ibld.c:861 ip2k-ibld.c:612
+#: iq2000-ibld.c:718 lm32-ibld.c:639 m32c-ibld.c:1736 m32r-ibld.c:670
+#: mep-ibld.c:1213 mt-ibld.c:754 or1k-ibld.c:651 xc16x-ibld.c:757
+#: xstormy16-ibld.c:683
#, c-format
-msgid "Unrecognized field %d while building insn.\n"
+msgid "internal error: unrecognized field %d while building insn"
msgstr ""
-#: epiphany-ibld.c:1173 fr30-ibld.c:939 frv-ibld.c:1177 ip2k-ibld.c:686
-#: iq2000-ibld.c:892 lm32-ibld.c:742 m32c-ibld.c:2896 m32r-ibld.c:806
-#: mep-ibld.c:1811 mt-ibld.c:973 or1k-ibld.c:755 xc16x-ibld.c:976
-#: xstormy16-ibld.c:828
+#: epiphany-ibld.c:1175 fr30-ibld.c:941 frv-ibld.c:1179 ip2k-ibld.c:688
+#: iq2000-ibld.c:894 lm32-ibld.c:744 m32c-ibld.c:2898 m32r-ibld.c:808
+#: mep-ibld.c:1813 mt-ibld.c:975 or1k-ibld.c:757 xc16x-ibld.c:978
+#: xstormy16-ibld.c:830
#, c-format
-msgid "Unrecognized field %d while decoding insn.\n"
+msgid "internal error: unrecognized field %d while decoding insn"
msgstr ""
-#: epiphany-ibld.c:1316 fr30-ibld.c:1085 frv-ibld.c:1455 ip2k-ibld.c:760
-#: iq2000-ibld.c:1023 lm32-ibld.c:831 m32c-ibld.c:3513 m32r-ibld.c:919
-#: mep-ibld.c:2281 mt-ibld.c:1173 or1k-ibld.c:838 xc16x-ibld.c:1197
-#: xstormy16-ibld.c:938
+#: epiphany-ibld.c:1319 fr30-ibld.c:1088 frv-ibld.c:1458 ip2k-ibld.c:763
+#: iq2000-ibld.c:1026 lm32-ibld.c:834 m32c-ibld.c:3516 m32r-ibld.c:922
+#: mep-ibld.c:2284 mt-ibld.c:1176 or1k-ibld.c:841 xc16x-ibld.c:1200
+#: xstormy16-ibld.c:941
#, c-format
-msgid "Unrecognized field %d while getting int operand.\n"
+msgid "internal error: unrecognized field %d while getting int operand"
msgstr ""
-#: epiphany-ibld.c:1441 fr30-ibld.c:1213 frv-ibld.c:1715 ip2k-ibld.c:816
-#: iq2000-ibld.c:1136 lm32-ibld.c:902 m32c-ibld.c:4112 m32r-ibld.c:1014
-#: mep-ibld.c:2733 mt-ibld.c:1355 or1k-ibld.c:903 xc16x-ibld.c:1400
-#: xstormy16-ibld.c:1030
+#: epiphany-ibld.c:1445 fr30-ibld.c:1217 frv-ibld.c:1719 ip2k-ibld.c:820
+#: iq2000-ibld.c:1140 lm32-ibld.c:906 m32c-ibld.c:4116 m32r-ibld.c:1018
+#: mep-ibld.c:2737 mt-ibld.c:1359 or1k-ibld.c:907 xc16x-ibld.c:1404
+#: xstormy16-ibld.c:1034
#, c-format
-msgid "Unrecognized field %d while getting vma operand.\n"
+msgid "internal error: unrecognized field %d while getting vma operand"
msgstr ""
-#: epiphany-ibld.c:1573 fr30-ibld.c:1344 frv-ibld.c:1982 ip2k-ibld.c:875
-#: iq2000-ibld.c:1256 lm32-ibld.c:980 m32c-ibld.c:4699 m32r-ibld.c:1115
-#: mep-ibld.c:3146 mt-ibld.c:1544 or1k-ibld.c:975 xc16x-ibld.c:1604
-#: xstormy16-ibld.c:1129
+#: epiphany-ibld.c:1578 fr30-ibld.c:1349 frv-ibld.c:1987 ip2k-ibld.c:880
+#: iq2000-ibld.c:1261 lm32-ibld.c:985 m32c-ibld.c:4704 m32r-ibld.c:1120
+#: mep-ibld.c:3151 mt-ibld.c:1549 or1k-ibld.c:980 xc16x-ibld.c:1609
+#: xstormy16-ibld.c:1134
#, c-format
-msgid "Unrecognized field %d while setting int operand.\n"
+msgid "internal error: unrecognized field %d while setting int operand"
msgstr ""
-#: epiphany-ibld.c:1695 fr30-ibld.c:1465 frv-ibld.c:2239 ip2k-ibld.c:924
-#: iq2000-ibld.c:1366 lm32-ibld.c:1048 m32c-ibld.c:5276 m32r-ibld.c:1206
-#: mep-ibld.c:3549 mt-ibld.c:1723 or1k-ibld.c:1037 xc16x-ibld.c:1798
-#: xstormy16-ibld.c:1218
+#: epiphany-ibld.c:1701 fr30-ibld.c:1471 frv-ibld.c:2245 ip2k-ibld.c:930
+#: iq2000-ibld.c:1372 lm32-ibld.c:1054 m32c-ibld.c:5282 m32r-ibld.c:1212
+#: mep-ibld.c:3555 mt-ibld.c:1729 or1k-ibld.c:1043 xc16x-ibld.c:1804
+#: xstormy16-ibld.c:1224
#, c-format
-msgid "Unrecognized field %d while setting vma operand.\n"
+msgid "internal error: unrecognized field %d while setting vma operand"
msgstr ""
#: fr30-asm.c:93 m32c-asm.c:872 m32c-asm.c:879
@@ -790,6 +812,23 @@ msgstr ""
msgid "Register list is not valid"
msgstr ""
+#: fr30-desc.c:1586
+#, c-format
+msgid ""
+"internal error: fr30_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: fr30-desc.c:1669
+#, c-format
+msgid "internal error: fr30_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: fr30-desc.c:1688
+#, c-format
+msgid "internal error: fr30_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: frv-asm.c:608
msgid "missing `]'"
msgstr ""
@@ -806,32 +845,58 @@ msgstr ""
msgid "register number must be even"
msgstr ""
-#: h8300-dis.c:313
+#: frv-desc.c:6326
#, c-format
-msgid "Hmmmm 0x%x"
+msgid ""
+"internal error: frv_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
msgstr ""
-#: h8300-dis.c:690
+#: frv-desc.c:6409
#, c-format
-msgid "Don't understand 0x%x \n"
+msgid "internal error: frv_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: frv-desc.c:6428
+#, c-format
+msgid "internal error: frv_cgen_cpu_open: no endianness specified"
msgstr ""
-#: h8500-dis.c:123
+#: frv-opc.c:459
#, c-format
-msgid "can't cope with insert %d\n"
+msgid "internal error: bad vliw->next_slot value"
msgstr ""
-#. Couldn't understand anything.
-#: h8500-dis.c:323
+#: frv-opc.c:769
#, c-format
-msgid "%02x\t\t*unknown*"
+msgid "internal error: bad major code"
+msgstr ""
+
+#: frv-opc.c:819
+#, c-format
+msgid "internal error: bad insn unit"
+msgstr ""
+
+#: h8300-dis.c:63
+#, c-format
+msgid "internal error, h8_disassemble_init"
+msgstr ""
+
+#: h8300-dis.c:314
+#, c-format
+msgid "Hmmmm 0x%x"
+msgstr ""
+
+#: h8300-dis.c:691
+#, c-format
+msgid "Don't understand 0x%x \n"
msgstr ""
-#: i386-dis.c:12330
+#: i386-dis.c:12380
msgid "<internal disassembler error>"
msgstr ""
-#: i386-dis.c:12625
+#: i386-dis.c:12675
#, c-format
msgid ""
"\n"
@@ -840,149 +905,154 @@ msgid ""
"with the -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: i386-dis.c:12629
+#: i386-dis.c:12679
#, c-format
msgid " x86-64 Disassemble in 64bit mode\n"
msgstr ""
-#: i386-dis.c:12630
+#: i386-dis.c:12680
#, c-format
msgid " i386 Disassemble in 32bit mode\n"
msgstr ""
-#: i386-dis.c:12631
+#: i386-dis.c:12681
#, c-format
msgid " i8086 Disassemble in 16bit mode\n"
msgstr ""
-#: i386-dis.c:12632
+#: i386-dis.c:12682
#, c-format
msgid " att Display instruction in AT&T syntax\n"
msgstr ""
-#: i386-dis.c:12633
+#: i386-dis.c:12683
#, c-format
msgid " intel Display instruction in Intel syntax\n"
msgstr ""
-#: i386-dis.c:12634
+#: i386-dis.c:12684
#, c-format
msgid ""
" att-mnemonic\n"
" Display instruction in AT&T mnemonic\n"
msgstr ""
-#: i386-dis.c:12636
+#: i386-dis.c:12686
#, c-format
msgid ""
" intel-mnemonic\n"
" Display instruction in Intel mnemonic\n"
msgstr ""
-#: i386-dis.c:12638
+#: i386-dis.c:12688
#, c-format
msgid " addr64 Assume 64bit address size\n"
msgstr ""
-#: i386-dis.c:12639
+#: i386-dis.c:12689
#, c-format
msgid " addr32 Assume 32bit address size\n"
msgstr ""
-#: i386-dis.c:12640
+#: i386-dis.c:12690
#, c-format
msgid " addr16 Assume 16bit address size\n"
msgstr ""
-#: i386-dis.c:12641
+#: i386-dis.c:12691
#, c-format
msgid " data32 Assume 32bit data size\n"
msgstr ""
-#: i386-dis.c:12642
+#: i386-dis.c:12692
#, c-format
msgid " data16 Assume 16bit data size\n"
msgstr ""
-#: i386-dis.c:12643
+#: i386-dis.c:12693
#, c-format
msgid " suffix Always display instruction suffix in AT&T syntax\n"
msgstr ""
-#: i386-dis.c:12644
+#: i386-dis.c:12694
#, c-format
msgid " amd64 Display instruction in AMD64 ISA\n"
msgstr ""
-#: i386-dis.c:12645
+#: i386-dis.c:12695
#, c-format
msgid " intel64 Display instruction in Intel64 ISA\n"
msgstr ""
-#: i386-dis.c:13190
+#: i386-dis.c:13235
msgid "64-bit address is disabled"
msgstr ""
-#: i386-gen.c:711 ia64-gen.c:306
+#: i386-gen.c:718
#, c-format
-msgid "%s: Error: "
+msgid "%s: error: "
msgstr ""
-#: i386-gen.c:890
+#: i386-gen.c:897
#, c-format
-msgid "%s: %d: Unknown bitfield: %s\n"
+msgid "%s: %d: unknown bitfield: %s\n"
msgstr ""
-#: i386-gen.c:892
+#: i386-gen.c:899
#, c-format
-msgid "Unknown bitfield: %s\n"
+msgid "unknown bitfield: %s\n"
msgstr ""
-#: i386-gen.c:955
+#: i386-gen.c:962
#, c-format
-msgid "%s: %d: Missing `)' in bitfield: %s\n"
+msgid "%s: %d: missing `)' in bitfield: %s\n"
msgstr ""
-#: i386-gen.c:1256
+#: i386-gen.c:1263
#, c-format
msgid "can't find i386-opc.tbl for reading, errno = %s\n"
msgstr ""
-#: i386-gen.c:1387
+#: i386-gen.c:1394
#, c-format
msgid "can't find i386-reg.tbl for reading, errno = %s\n"
msgstr ""
-#: i386-gen.c:1465
+#: i386-gen.c:1472
#, c-format
msgid "can't create i386-init.h, errno = %s\n"
msgstr ""
-#: i386-gen.c:1555 ia64-gen.c:2829
+#: i386-gen.c:1562 ia64-gen.c:2829
#, c-format
msgid "unable to change directory to \"%s\", errno = %s\n"
msgstr ""
-#: i386-gen.c:1567 i386-gen.c:1570
+#: i386-gen.c:1574 i386-gen.c:1577
#, c-format
msgid "CpuMax != %d!\n"
msgstr ""
-#: i386-gen.c:1574
+#: i386-gen.c:1581
#, c-format
msgid "%d unused bits in i386_cpu_flags.\n"
msgstr ""
-#: i386-gen.c:1581
+#: i386-gen.c:1588
#, c-format
msgid "%d unused bits in i386_operand_type.\n"
msgstr ""
-#: i386-gen.c:1595
+#: i386-gen.c:1602
#, c-format
msgid "can't create i386-tbl.h, errno = %s\n"
msgstr ""
+#: ia64-gen.c:306
+#, c-format
+msgid "%s: Error: "
+msgstr ""
+
#: ia64-gen.c:319
#, c-format
msgid "%s: Warning: "
@@ -1136,6 +1206,23 @@ msgstr ""
msgid "Attempt to find bit index of 0"
msgstr ""
+#: ip2k-desc.c:1015
+#, c-format
+msgid ""
+"internal error: ip2k_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: ip2k-desc.c:1098
+#, c-format
+msgid "internal error: ip2k_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: ip2k-desc.c:1117
+#, c-format
+msgid "internal error: ip2k_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: iq2000-asm.c:112 iq2000-asm.c:142
msgid "immediate value cannot be register"
msgstr ""
@@ -1148,6 +1235,23 @@ msgstr ""
msgid "21-bit offset out of range"
msgstr ""
+#: iq2000-desc.c:2020
+#, c-format
+msgid ""
+"internal error: iq2000_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: iq2000-desc.c:2103
+#, c-format
+msgid "internal error: iq2000_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: iq2000-desc.c:2122
+#, c-format
+msgid "internal error: iq2000_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: lm32-asm.c:166
msgid "expecting gp relative address: gp(symbol)"
msgstr ""
@@ -1164,6 +1268,23 @@ msgstr ""
msgid "expecting got relative address: gotofflo16(symbol)"
msgstr ""
+#: lm32-desc.c:1002
+#, c-format
+msgid ""
+"internal error: lm32_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: lm32-desc.c:1085
+#, c-format
+msgid "internal error: lm32_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: lm32-desc.c:1104
+#, c-format
+msgid "internal error: lm32_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: m10200-dis.c:157 m10300-dis.c:580
#, c-format
msgid "unknown\t0x%04lx"
@@ -1248,6 +1369,40 @@ msgstr ""
msgid "Invalid size specifier"
msgstr ""
+#: m32c-desc.c:63033
+#, c-format
+msgid ""
+"internal error: m32c_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: m32c-desc.c:63116
+#, c-format
+msgid "internal error: m32c_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: m32c-desc.c:63135
+#, c-format
+msgid "internal error: m32c_cgen_cpu_open: no endianness specified"
+msgstr ""
+
+#: m32r-desc.c:1365
+#, c-format
+msgid ""
+"internal error: m32r_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: m32r-desc.c:1448
+#, c-format
+msgid "internal error: m32r_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: m32r-desc.c:1467
+#, c-format
+msgid "internal error: m32r_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: m68k-dis.c:1292
#, c-format
msgid "<function code %d>"
@@ -1258,11 +1413,6 @@ msgstr ""
msgid "<internal error in opcode table: %s %s>\n"
msgstr ""
-#: m88k-dis.c:678
-#, c-format
-msgid "# <dis error: %08lx>"
-msgstr ""
-
#: mep-asm.c:129
msgid "Only $tp or $13 allowed for this opcode"
msgstr ""
@@ -1296,6 +1446,23 @@ msgstr ""
msgid "Value is not aligned enough"
msgstr ""
+#: mep-desc.c:6226
+#, c-format
+msgid ""
+"internal error: mep_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: mep-desc.c:6309
+#, c-format
+msgid "internal error: mep_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: mep-desc.c:6328
+#, c-format
+msgid "internal error: mep_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: mips-dis.c:1751 mips-dis.c:1977
#, c-format
msgid "# internal error, undefined operand in `%s %s'"
@@ -1404,25 +1571,30 @@ msgid ""
" "
msgstr ""
-#: mmix-dis.c:34
+#: mmix-dis.c:33
#, c-format
-msgid "Bad case %d (%s) in %s:%d\n"
+msgid "bad case %d (%s) in %s:%d"
msgstr ""
-#: mmix-dis.c:44
+#: mmix-dis.c:42
#, c-format
-msgid "Internal: Non-debugged code (test-case missing): %s:%d"
+msgid "internal: non-debugged code (test-case missing): %s:%d"
msgstr ""
-#: mmix-dis.c:53
+#: mmix-dis.c:52
msgid "(unknown)"
msgstr ""
-#: mmix-dis.c:511
+#: mmix-dis.c:510
#, c-format
msgid "*unknown operands type: %d*"
msgstr ""
+#: msp430-decode.opc:145 rl78-decode.opc:106
+#, c-format
+msgid "internal error: immediate() called with invalid byte count %d"
+msgstr ""
+
#: msp430-dis.c:59
#, c-format
msgid "Warning: disassembly unreliable - not enough bytes available"
@@ -1467,6 +1639,105 @@ msgstr ""
msgid "invalid operand. type may have values 0,1,2 only."
msgstr ""
+#: mt-desc.c:1146
+#, c-format
+msgid ""
+"internal error: mt_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: mt-desc.c:1229
+#, c-format
+msgid "internal error: mt_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: mt-desc.c:1248
+#, c-format
+msgid "internal error: mt_cgen_cpu_open: no endianness specified"
+msgstr ""
+
+#: nds32-asm.c:1508
+#, c-format
+msgid "internal error: unknown operand, %s"
+msgstr ""
+
+#: nds32-asm.c:2062
+#, c-format
+msgid "internal error: don't know how to handle parsing results"
+msgstr ""
+
+#: nds32-asm.c:2070
+#, c-format
+msgid "internal error: unknown hardware resource"
+msgstr ""
+
+#: nfp-dis.c:934
+msgid "<invalid_instruction>"
+msgstr ""
+
+#: nfp-dis.c:1337
+msgid ", <invalid CRC operator>, "
+msgstr ""
+
+#: nfp-dis.c:1689
+msgid "<invalid branch>["
+msgstr ""
+
+#: nfp-dis.c:2058 nfp-dis.c:2329
+#, c-format
+msgid "<invalid cmd target %d:%d:%d>[]"
+msgstr ""
+
+#: nfp-dis.c:2069 nfp-dis.c:2340
+#, c-format
+msgid "<invalid cmd action %d:%d:%d>[]"
+msgstr ""
+
+#: nfp-dis.c:2561
+msgid "File has no ME-Config section."
+msgstr ""
+
+#: nfp-dis.c:2575
+msgid "File has invalid ME-Config section."
+msgstr ""
+
+#: nfp-dis.c:2719
+#, c-format
+msgid "Error processing section %u "
+msgstr ""
+
+#: nfp-dis.c:2748
+#, c-format
+msgid "Invalid NFP option: %s"
+msgstr ""
+
+#: nfp-dis.c:2980
+#, c-format
+msgid ""
+"\n"
+"The following NFP specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+
+#: nfp-dis.c:2984
+#, c-format
+msgid ""
+"\n"
+" no-pc\t\t Don't print program counter prefix.\n"
+" ctx4\t\t Force disassembly using 4-context mode.\n"
+" ctx8\t\t Force 8-context mode, takes presedence.\""
+msgstr ""
+
+#: nios2-dis.c:135
+#, c-format
+msgid "out of memory"
+msgstr ""
+
+#: nios2-dis.c:263
+#, c-format
+msgid "internal error: broken opcode descriptor for `%s %s'"
+msgstr ""
+
#. I and Z are output operands and can`t be immediate
#. A is an address and we can`t have the address of
#. an immediate either. We don't know how much to increase
@@ -1477,12 +1748,29 @@ msgstr ""
msgid "$<undefined>"
msgstr ""
-#: ppc-dis.c:359
+#: or1k-desc.c:1948
+#, c-format
+msgid ""
+"internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: or1k-desc.c:2031
+#, c-format
+msgid "internal error: or1k_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: or1k-desc.c:2050
+#, c-format
+msgid "internal error: or1k_cgen_cpu_open: no endianness specified"
+msgstr ""
+
+#: ppc-dis.c:363
#, c-format
-msgid "warning: ignoring unknown -M%s option\n"
+msgid "warning: ignoring unknown -M%s option"
msgstr ""
-#: ppc-dis.c:880
+#: ppc-dis.c:875
#, c-format
msgid ""
"\n"
@@ -1582,10 +1870,9 @@ msgstr ""
msgid "invalid Ddd value"
msgstr ""
-#. Invalid option.
#: riscv-dis.c:68
#, c-format
-msgid "Unrecognized disassembler option: %s\n"
+msgid "unrecognized disassembler option: %s"
msgstr ""
#: riscv-dis.c:346
@@ -1628,7 +1915,12 @@ msgstr ""
msgid "Print unknown instructions according to length from first two bits"
msgstr ""
-#: s390-dis.c:409
+#: s390-dis.c:76
+#, c-format
+msgid "unknown S/390 disassembler option: %s"
+msgstr ""
+
+#: s390-dis.c:410
#, c-format
msgid ""
"\n"
@@ -1641,34 +1933,29 @@ msgstr ""
msgid "<illegal instruction>"
msgstr ""
-#: sparc-dis.c:309
-#, c-format
-msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-msgstr ""
-
-#: sparc-dis.c:320
+#: sparc-dis.c:308 sparc-dis.c:318
#, c-format
-msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
+msgid "internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr ""
-#: sparc-dis.c:379
+#: sparc-dis.c:377
#, c-format
-msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
+msgid "internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
msgstr ""
#. Mark as non-valid instruction.
-#: sparc-dis.c:1100
+#: sparc-dis.c:1098
msgid "unknown"
msgstr ""
#: v850-dis.c:453
#, c-format
-msgid "unknown operand shift: %x\n"
+msgid "unknown operand shift: %x"
msgstr ""
-#: v850-dis.c:465
+#: v850-dis.c:469
#, c-format
-msgid "unknown reg: %d\n"
+msgid "unknown reg: %d"
msgstr ""
#. The functions used to insert and extract complicated operands.
@@ -1780,6 +2067,23 @@ msgstr ""
msgid "Missing 'seg:' prefix"
msgstr ""
+#: xc16x-desc.c:3349
+#, c-format
+msgid ""
+"internal error: xc16x_cgen_rebuild_tables: conflicting insn-chunk-bitsize "
+"values: `%d' vs. `%d'"
+msgstr ""
+
+#: xc16x-desc.c:3432
+#, c-format
+msgid "internal error: xc16x_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: xc16x-desc.c:3451
+#, c-format
+msgid "internal error: xc16x_cgen_cpu_open: no endianness specified"
+msgstr ""
+
#: xstormy16-asm.c:71
msgid "Bad register in preincrement"
msgstr ""
@@ -1819,3 +2123,20 @@ msgstr ""
#: xstormy16-asm.c:165
msgid "Syntax error: No trailing ')'"
msgstr ""
+
+#: xstormy16-desc.c:1317
+#, c-format
+msgid ""
+"internal error: xstormy16_cgen_rebuild_tables: conflicting insn-chunk-"
+"bitsize values: `%d' vs. `%d'"
+msgstr ""
+
+#: xstormy16-desc.c:1400
+#, c-format
+msgid "internal error: xstormy16_cgen_cpu_open: unsupported argument `%d'"
+msgstr ""
+
+#: xstormy16-desc.c:1419
+#, c-format
+msgid "internal error: xstormy16_cgen_cpu_open: no endianness specified"
+msgstr ""