From fe944acf8f858cfe6bcfd00670a88847a464717c Mon Sep 17 00:00:00 2001 From: "Francois H. Theron" Date: Mon, 30 Apr 2018 17:02:59 +0100 Subject: [PATCH] This patch adds support to objdump for disassembly of NFP (Netronome Flow Processor) ELF files (.nffw) as well as some basic readelf support. bfd * 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. binutils* 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. include * 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. opcodes 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. --- bfd/ChangeLog | 15 + bfd/Makefile.am | 4 + bfd/Makefile.in | 6 + bfd/archures.c | 5 + bfd/bfd-in2.h | 3 + bfd/config.bfd | 7 + bfd/configure | 1 + bfd/configure.ac | 1 + bfd/cpu-nfp.c | 62 + bfd/elf-bfd.h | 1 + bfd/elf64-nfp.c | 276 ++ bfd/po/SRC-POTFILES.in | 2 + bfd/po/bfd.pot | 602 ++- bfd/targets.c | 3 + binutils/ChangeLog | 13 + binutils/NEWS | 2 + binutils/po/binutils.pot | 3429 ++++++++--------- binutils/readelf.c | 37 + .../testsuite/binutils-all/nfp/objdump.exp | 52 + binutils/testsuite/binutils-all/nfp/test1.d | 973 +++++ .../binutils-all/nfp/test1_nfp6000.nffw | Bin 0 -> 9880 bytes .../testsuite/binutils-all/nfp/test2_ctx8.d | 16 + .../binutils-all/nfp/test2_nfp6000.nffw | Bin 0 -> 1472 bytes .../binutils-all/nfp/test2_no-pc_ctx4.d | 16 + include/ChangeLog | 8 + include/dis-asm.h | 1 + include/elf/common.h | 1 + include/elf/nfp.h | 292 ++ include/opcode/nfp.h | 180 + opcodes/ChangeLog | 11 + opcodes/Makefile.am | 1 + opcodes/Makefile.in | 2 + opcodes/configure | 1 + opcodes/configure.ac | 1 + opcodes/disassemble.c | 9 + opcodes/disassemble.h | 1 + opcodes/nfp-dis.c | 2990 ++++++++++++++ opcodes/po/POTFILES.in | 1 + opcodes/po/opcodes.pot | 735 +++- 39 files changed, 7302 insertions(+), 2458 deletions(-) create mode 100644 bfd/cpu-nfp.c create mode 100755 bfd/elf64-nfp.c create mode 100644 binutils/testsuite/binutils-all/nfp/objdump.exp create mode 100644 binutils/testsuite/binutils-all/nfp/test1.d create mode 100644 binutils/testsuite/binutils-all/nfp/test1_nfp6000.nffw create mode 100644 binutils/testsuite/binutils-all/nfp/test2_ctx8.d create mode 100644 binutils/testsuite/binutils-all/nfp/test2_nfp6000.nffw create mode 100644 binutils/testsuite/binutils-all/nfp/test2_no-pc_ctx4.d create mode 100755 include/elf/nfp.h create mode 100644 include/opcode/nfp.h create mode 100644 opcodes/nfp-dis.c diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2b7dfb454e..11baf5db57 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +2018-04-30 Francois H. Theron + + * 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 * bfd-in2.h: Regenerate. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 4f5610defe..8500a4fa74 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 3acbdaa216..ccd9ce1201 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 2536949fef..4c20664257 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 40d33ea728..48226860c7 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 0b40636eb5..bbd4194153 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 ab9e8eef17..5aca725edc 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 ae794618b7..3cef5f9a9e 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 0000000000..ef97f8619b --- /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 + + 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 9c900b7656..7b746900ba 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 0000000000..3cdda3d36b --- /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 + + 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 27139e5562..7e82a33c1e 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 a6b2adb801..36e0e6721d 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 \n" "Language-Team: LANGUAGE \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 %# 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 %# 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 %# adjusted to %#" 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=%#, is this " "intentional?" msgstr "" -#: elf.c:7461 +#: elf.c:7468 #, c-format msgid "%pB: warning: segment alignment of %# 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+%#): 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+%#): 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+%#): %s relocation not permitted in shared object" msgstr "" -#: elf32-arm.c:11819 +#: elf32-arm.c:12240 #, c-format msgid "" "%pB(%pA+%#): 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+%#): overflow whilst splitting %# 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+%#): %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+%#): %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+%#): %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 " " 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 "" 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(%#): error: cannot create STM32L4XX veneer; jump out of range by " "% 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 (%)" 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 e490f5f81d..230048a2a7 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 ec97a0d987..61bbd2f629 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,16 @@ +2018-04-30 Francois H. Theron + + * 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 * testsuite/lib/binutils-common.exp (match_target): New procedure. diff --git a/binutils/NEWS b/binutils/NEWS index c0fa05f25e..da841de556 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 29e3c92205..de74776e75 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 \n" "Language-Team: LANGUAGE \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 \n" msgstr "" #. xgetext:c-format -#: dlltool.c:3965 +#: dlltool.c:3948 #, c-format msgid "" " -m --machine Create as DLL for . [default: %s]\n" msgstr "" -#: dlltool.c:3966 +#: dlltool.c:3949 #, c-format msgid "" " possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, " "ppc, thumb\n" msgstr "" -#: dlltool.c:3967 +#: dlltool.c:3950 #, c-format msgid " -e --output-exp Generate an export file.\n" msgstr "" -#: dlltool.c:3968 +#: dlltool.c:3951 #, c-format msgid " -l --output-lib Generate an interface library.\n" msgstr "" -#: dlltool.c:3969 +#: dlltool.c:3952 #, c-format msgid " -y --output-delaylib 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 of input dll to put into interface lib.\n" msgstr "" -#: dlltool.c:3972 +#: dlltool.c:3955 #, c-format msgid " -d --input-def Name of .def file to be read in.\n" msgstr "" -#: dlltool.c:3973 +#: dlltool.c:3956 #, c-format msgid " -z --output-def 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 Don't export \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 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 @ from exported names.\n" msgstr "" -#: dlltool.c:3987 +#: dlltool.c:3970 #, c-format msgid " -A --add-stdcall-alias Add aliases without @.\n" msgstr "" -#: dlltool.c:3988 +#: dlltool.c:3971 #, c-format msgid " -p --ext-prefix-alias Add aliases with .\n" msgstr "" -#: dlltool.c:3989 +#: dlltool.c:3972 #, c-format msgid " -S --as Use for assembler.\n" msgstr "" -#: dlltool.c:3990 +#: dlltool.c:3973 #, c-format msgid " -f --as-flags Pass 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 Use to construct temp file names.\n" msgstr "" -#: dlltool.c:3994 +#: dlltool.c:3977 #, c-format msgid "" " -I --identify Report the name of the DLL associated with " ".\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 " @ Read options from .\n" msgstr "" -#: dlltool.c:4001 +#: dlltool.c:3984 #, c-format msgid "" " -M --mcore-elf Process mcore-elf object files into .\n" msgstr "" -#: dlltool.c:4002 +#: dlltool.c:3985 #, c-format msgid " -L --linker Use as the linker.\n" msgstr "" -#: dlltool.c:4003 +#: dlltool.c:3986 #, c-format msgid " -F --linker-flags Pass 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 "" 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 "" msgstr "" -#: dwarf.c:705 dwarf.c:1717 +#: dwarf.c:711 dwarf.c:1723 msgid "" msgstr "" -#: dwarf.c:717 +#: dwarf.c:723 msgid "" 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 "" msgstr "" -#: dwarf.c:751 +#: dwarf.c:757 msgid "" msgstr "" -#: dwarf.c:752 +#: dwarf.c:758 msgid "" 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 "" msgstr "" -#: dwarf.c:764 +#: dwarf.c:770 msgid "" 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 "" msgstr "" -#: dwarf.c:782 +#: dwarf.c:788 msgid "" msgstr "" -#: dwarf.c:793 +#: dwarf.c:799 msgid "" 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 "" msgstr "" -#: dwarf.c:1699 +#: dwarf.c:1705 msgid "" 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 "" 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 "" 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" " " 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" " \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 "\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: \n" msgstr "" -#: dwarf.c:8152 +#: dwarf.c:8211 #, c-format msgid " DW_CFA_expression: \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 " " 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] " 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 "\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 "" msgstr "" -#: dwarf.c:9874 +#: dwarf.c:9948 #, c-format msgid " ID: " msgstr "" -#: dwarf.c:9876 +#: dwarf.c:9950 #, c-format msgid " ID: \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= Set the input binary file format\n" -" -O --output-target= Set the output binary file format\n" -" -T --header-file= Read for NLM header information\n" -" -l --linker= Use for any linking\n" -" -d --debug Display on stderr the linker command line\n" -" @ Read options from .\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 ": %d" msgstr "" -#: nm.c:364 readelf.c:10794 readelf.c:10849 +#: nm.c:364 readelf.c:10864 readelf.c:10919 #, c-format msgid ": %d" msgstr "" -#: nm.c:366 readelf.c:10797 readelf.c:10852 +#: nm.c:366 readelf.c:10867 readelf.c:10922 #, c-format msgid ": %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 "" msgstr "" -#: readelf.c:305 +#: readelf.c:306 msgid "" 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 "" 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 "" msgstr "" -#: readelf.c:1694 +#: readelf.c:1714 #, c-format msgid "" 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 ": %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 ": %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 ": 0x%x" msgstr "" -#: readelf.c:2759 +#: readelf.c:2786 msgid ", " 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 ", " msgstr "" -#: readelf.c:3207 +#: readelf.c:3234 msgid "" 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 "" 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: " msgstr "" -#: readelf.c:4332 +#: readelf.c:4387 #, c-format msgid "Usage: readelf 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=\n" " Disassemble the contents of section \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 "" 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 " " 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 " [: 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 "" 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 ": %d" msgstr "" -#: readelf.c:11007 +#: readelf.c:11077 #, c-format msgid ": %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 "\n" msgstr "" -#: readelf.c:11159 +#: readelf.c:11229 #, c-format msgid " " 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 "" msgstr "" -#: readelf.c:11888 +#: readelf.c:11958 #, c-format msgid "" 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 "\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 "\n" msgstr "" -#: readelf.c:13872 +#: readelf.c:13943 #, c-format msgid "" 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 "\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 " : " 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 "" 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 "" msgstr "" -#: readelf.c:16121 readelf.c:16246 readelf.c:16331 +#: readelf.c:16192 readelf.c:16317 readelf.c:16402 #, c-format msgid "" 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 "" msgstr "" -#: readelf.c:16249 +#: readelf.c:16320 #, c-format msgid "" 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 "" 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 "\n" msgstr "" -#: readelf.c:16828 +#: readelf.c:16899 #, c-format msgid "\n" msgstr "" -#: readelf.c:16839 +#: readelf.c:16910 #, c-format msgid "\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 " " msgstr "" -#: readelf.c:16886 +#: readelf.c:16957 #, c-format msgid "stack size: " msgstr "" -#: readelf.c:16905 +#: readelf.c:16976 #, c-format msgid "\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 "\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 " \n" msgstr "" -#: readelf.c:17602 +#: readelf.c:17680 #, c-format msgid " " 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 " " 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 "" msgstr "" -#: readelf.c:17708 +#: readelf.c:17792 msgid "" msgstr "" -#: readelf.c:17713 +#: readelf.c:17797 msgid "" msgstr "" -#: readelf.c:17718 +#: readelf.c:17802 msgid "" msgstr "" -#: readelf.c:17723 +#: readelf.c:17807 msgid "" msgstr "" -#: readelf.c:17728 +#: readelf.c:17812 msgid "" msgstr "" -#: readelf.c:17733 +#: readelf.c:17817 msgid "" msgstr "" -#: readelf.c:17738 +#: readelf.c:17822 msgid "" msgstr "" -#: readelf.c:17743 +#: readelf.c:17827 msgid "" 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 "" 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 eecc05b3fa..0c676f2b22 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"); @@ -4135,6 +4157,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) { @@ -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 0000000000..3762d90aac --- /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 0000000000..3915ed1357 --- /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\] + 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\] + 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 0000000000000000000000000000000000000000..869a6b2dd328552334645bcda9467bc2d58f014f GIT binary patch literal 9880 zcmeHNU2GiH6+ScjGrQhh@5VM}X{<6fOX8H&Y#fuOk|ib^eylc$To+neMe2BK2O@o^$TZUFXF|4?LzS3ROQUkr}Y+D3K9d`qu_E&_OEO9ukz z=>hYuIKGYS%T1nqy?wl0wl81+OLYQZ)yh8fHFb7g{e-QxrOxnyb&v}}X{m*54>N@$%$-doq{#EfOM~@Bt=;-ky&r#Rt@Tt+Rqr1Dio*mAwvE5+bq^^I#GPqyWACA zk3!+cCr8-Ol?8lvHI6VYV)$|k9eS*v_`dkd<4Jr~e;k+VJ}lRH#FrPo{qzryA2~Lp z@98@A^`YVChmYxd-nG1AX?a|RE!8&p8(MuB}N@9&uB(TcgHo#Gm13rVl+^E zjPo(dFkT|s!q|to8J~$$h|$sLen$A$7&{ZRgYj01RzsC^1!1lxNWX1@Yovc>!f%?a zibXV*HqTaY6V}IUAE(kwz2ORWhQIvn*+|7wNEvT5Dz--IxklrT5vI_qjdX`n)DzMX ze}sOck-_o4pCIFoo}}Nx^&Kq>GAN=PI!=C-V zAjC7Mgxs5uWB%!wU7iECfj40{$Gm}dsAQGr5|n4mX|&7b8f{@5ihA5^@VJe*c$_ym z#+!|_j}h?$D{t`ptM`)7;eYi(D%*(bxfBWHhj9{lpxfP*l9M9(tZCsj#(#EXCXin> zOtvr@U7Un}=FOp6W{qsG*QXUF4{51u|-M&ov}sEM<_|$XH{&sAU7h^!Dxr+K1MxEIhSi|c)vT2 z{`GMiqlnUWMk7j{jJ85MT)9FIxZ^}$V-!StEyQCcfeYD19raO-W5OO=K%IphpcSW` zF`!WCz8sK3)Xr$Cq%&GPUcor(t!gjf13TxS7p26zKnMF(W^rsD{;K-=UGrn}sBgU$ zh`!Vde;S*g1{Q%j^tWOh>#^GU=dpR4Xp;4?9;>Z$WAj!BcDCzpkBa-kKC(x>f%`*0 zOL6QueQj*fNzk5;fVM{8VAO$ZXD2C7Kmzjm*eT#u@HFsatS9pA`|DwS^g&MnXe!im z8fYbfn3ujdZx7FFHBb-FC!+KaqXA?)GfCa9AC#6A%bOCinO_zYoKcowm!hPxKZ6Wmn;-xJUbb;$`ivTh&(*@oqLa2KS z^-Ia}uPIC#O<2D(dA|V)AH$6lVm_Xx3?u3V`;WMcdH`O$Y&X(=m8LGAQ-Qj;EE-5_ zVLy0h>-2GyF-lsWkC^9jhw9B&M%?tKHA7f;#z~F`xB%?ram3jh$genv3-T)k&+f|W z;Ly9`U>JI?{O(L;)~)leRAvSIX!lfREv#E8TbZ4M-G1OrtlQ(vQxv|tT$wdul)k%C znMK_YwUyr!kY|2hevj9uccuKElcE&uY+131`a;p{td4O%PkmZzcGjrjiEZn7de1uj zs@sh?nch=QjJV;g0J+n4h+v&CUv5UvGaK*PchbLEpc`yk;Lb%Unm^eEkx0tZS8@ zcI|`yI^)_0+|pWU_B8fk-`?e)27PO3-=o=+K_8WvcLerTyDvqGk%RXSSdzo*Ln=8s z_Cws7V}^k`IP#w6K7!W0{2al{ld8ZD`!+#`Qv_8SK4_9agbEj#=_`t#b+x!`QfWD(MOZ0(>xUKjRcr(QGTuNuz&QhPGM{jH#J2ICLYatd@o+}5ClN1jj=1l@7noDp zwsD^-eSQ`5Apu)$!~y*Ls_FWB!^S=Y{WomObCzi9obCGCI%i>BU$__Xh3T(a z2B>;C8S!v|<47tiI$>tqzw0;Ix`KYIay4;GTX7n&j6mKG(x$ee!!9jgmnIc0wuJQp zTFY2xHJP!NZM@ecb)W*wV;piiU@fD6Lv+|$hJO{VmIUO$Wr6pnScaAz+%FxVW%e7$ zttI3EC{ zgKNz+^aR$|5}CFM)SWe*`6~1n+xmn32=jdFaXZQL6%6!0<6*<&Pl`s0PrYg!z` ziaN+Yc;5kmMXz!(ZX84%a=Zt1m9g)jNKpKYO5e8--xL{#&?js9Q(-!U`oehMA(P*C zs(!<-S|bndkB2gBP{{DdP1vhHsy)4fJa>O$z#WN_yGbqI~D8(}<#WN_yGbqI~D8(~a8xQ`6 zib>wb0;u4FK>k?xsx28s2a@}126&eFDrL0QlM@(L+nDRP;xF6#`l}DSyh-9667QCH zLE-}vFG_qw;_4&*{MC5-eEu&l|4kC_ka)Mm3lblYcv0db5?A{%KmNjx`crs8nk3#K z@otG1Bt9VVqQpleu9{mEo%7v>FFtBZkJ8Q;)%D3Tf08EF^2uC>0)IK5zW!Q1*YgfZ z-YxNh#0Ml^l=z6m)kpmKs`2*ud@Y~rd50wLmUuzp0}?Mvd_>}EKjvGPPj~*c{B}t4 cZsz>EoS*-KBp;CEMM*v)$yM_q`1AAmZ*oIeuK)l5 literal 0 HcmV?d00001 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 0000000000..b3a1751a30 --- /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 0000000000000000000000000000000000000000..28da2fd89ae62c39d07797d15bc645dcdf5c3eb7 GIT binary patch literal 1472 zcma)*(Q4CR6vt1#6<4;3byMu1LMS5h!q9a^b|Dz6j)6mJ!5bBllUJlzhNmS&&EM`y^76+&s8YPIclKmn>kuGbp3+*pSr%DP0sOeBgWrw zNoYm=QG1y<^2`iIE}svr#xS!epdW2rKhFjWv&B`Fb^HNrUj4bwO!7G0$f0P-FK>>Qu$7L({b#XmazyLl{=v&p zf7mncS<|~c_t+hpo6!Ny?dDGN4u-H)4`!D!Ot1kuuCm2ju5cVLS^r*%_{Q&z;LM;e z8>Q0#r}%ag_KZ)c=-iBkMipqK`?*6DhI{~0MQ{a!l5hol`a0z*n2uAv1wMJ6@+SD9 znR1=;AEmqlwln&D)^SNmKbtvTGZ=NPY?!dgf1@hQFKE6TPUZ-!DzgcXH`vzsArBkT zn&6t?hTxXqj$lWyCs;k!{q=vY_B8*A?{`gbO>jeSOK?Z9BiIwH+URePf&0Z=;69jn c&@|VC-Vl0A=pCUuLidEOx>wP!OjO1G3!o#Y3;+NC literal 0 HcmV?d00001 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 0000000000..3f7450a22e --- /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 3e45748e7d..cf0b626812 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,11 @@ +2018-04-30 Francois H. Theron + + * 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 Mickaël Guêné diff --git a/include/dis-asm.h b/include/dis-asm.h index 760ed3ebea..cb72b7db5d 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 469fe5a987..ae4a7b2b61 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 0000000000..07d4bccefa --- /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 + + 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 0000000000..6d9efaf666 --- /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 + + 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 be522a104f..e0834bf595 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,14 @@ +2018-04-30 Francois H. Theron + + 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 * i386-opc.tbl: Fold various non-memory operand AVX512VL diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am index 05def3f65e..0c7d09d759 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 ca82230961..0d85bd43fa 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 6e58d0c095..c7a88054b3 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 2bd880feea..e42b661fcf 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 4cb90f1cf6..100ccd3fac 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 5284033fd7..9d78b2193f 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 0000000000..30442db765 --- /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 + + 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 +#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_(":"); + 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); + 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); + 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, "<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, _(", , ")); + 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, ", , ", 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, ", <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, _("[")); + 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 = ""; + 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, _("[]"), + 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, _("[]"), + 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, _("[]"), + 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, _("[]"), + 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 cc3997d047..7f250b09cd 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 c7f0543da7..af9ea5d574 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 \n" "Language-Team: LANGUAGE \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 "" 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 "" 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 "" 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 "" @@ -1258,11 +1413,6 @@ msgstr "" msgid "\n" msgstr "" -#: m88k-dis.c:678 -#, c-format -msgid "# " -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 "" +msgstr "" + +#: nfp-dis.c:1337 +msgid ", , " +msgstr "" + +#: nfp-dis.c:1689 +msgid "[" +msgstr "" + +#: nfp-dis.c:2058 nfp-dis.c:2329 +#, c-format +msgid "[]" +msgstr "" + +#: nfp-dis.c:2069 nfp-dis.c:2340 +#, c-format +msgid "[]" +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 "$" 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 "" 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 "" -- 2.34.1