diff options
563 files changed, 15695 insertions, 12236 deletions
@@ -3971,20 +3971,17 @@ bfd_elf_set_group_contents (bfd *abfd, asection *sec, void *failedptrarg) break; } - /* We should always get here with loc == sec->contents + 4, but it is - possible to craft bogus SHT_GROUP sections that will cause segfaults - in objcopy without checking loc here and in the loop above. */ - if (loc == sec->contents) - BFD_ASSERT (0); - else + /* We should always get here with loc == sec->contents + 4. Return + an error for bogus SHT_GROUP sections. */ + loc -= 4; + if (loc != sec->contents) { - loc -= 4; - if (loc != sec->contents) - { - BFD_ASSERT (0); - memset (sec->contents + 4, 0, loc - sec->contents); - loc = sec->contents; - } + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: corrupted group section: `%pA'"), + abfd, sec); + bfd_set_error (bfd_error_bad_value); + *failedptr = true; + return; } H_PUT_32 (abfd, sec->flags & SEC_LINK_ONCE ? GRP_COMDAT : 0, loc); diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index 8af7190..30923ef 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -1931,7 +1931,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_got16_reloc, /* special_function */ + _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_GOT16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ @@ -2675,7 +2675,7 @@ static reloc_howto_type micromips_elf64_howto_table_rela[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_got16_reloc, /* special_function */ + _bfd_mips_elf_generic_reloc, /* special_function */ "R_MICROMIPS_GOT16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 6867d49..b9b3cf8 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -868,13 +868,6 @@ static const bfd_byte elf_x86_64_eh_frame_non_lazy_plt[] = DW_CFA_nop, DW_CFA_nop, DW_CFA_nop }; -static const sframe_frame_row_entry elf_x86_64_sframe_null_fre = -{ - 0, - {16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 12 bytes. */ - SFRAME_V1_FRE_INFO (SFRAME_BASE_REG_SP, 1, SFRAME_FRE_OFFSET_1B) /* FRE info. */ -}; - /* .sframe FRE covering the .plt section entry. */ static const sframe_frame_row_entry elf_x86_64_sframe_plt0_fre1 = { @@ -923,6 +916,14 @@ static const sframe_frame_row_entry elf_x86_64_sframe_sec_pltn_fre1 = SFRAME_V1_FRE_INFO (SFRAME_BASE_REG_SP, 1, SFRAME_FRE_OFFSET_1B) /* FRE info. */ }; +/* .sframe FRE covering the .plt.got section entry. */ +static const sframe_frame_row_entry elf_x86_64_sframe_pltgot_fre1 = +{ + 0, /* SFrame FRE start address. */ + {16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* 12 bytes. */ + SFRAME_V1_FRE_INFO (SFRAME_BASE_REG_SP, 1, SFRAME_FRE_OFFSET_1B) /* FRE info. */ +}; + /* SFrame helper object for non-lazy PLT. */ static const struct elf_x86_sframe_plt elf_x86_64_sframe_non_lazy_plt = { @@ -933,14 +934,14 @@ static const struct elf_x86_sframe_plt elf_x86_64_sframe_non_lazy_plt = LAZY_PLT_ENTRY_SIZE, 1, /* Number of FREs for PLTn. */ /* Array of SFrame FREs for plt. */ - { &elf_x86_64_sframe_sec_pltn_fre1, &elf_x86_64_sframe_null_fre }, + { &elf_x86_64_sframe_sec_pltn_fre1 }, 0, 0, /* There is no second PLT necessary. */ - { &elf_x86_64_sframe_null_fre }, + { }, NON_LAZY_PLT_ENTRY_SIZE, 1, /* Number of FREs for PLT GOT. */ /* Array of SFrame FREs for PLT GOT. */ - { &elf_x86_64_sframe_null_fre }, + { &elf_x86_64_sframe_pltgot_fre1 }, }; /* SFrame helper object for non-lazy IBT enabled PLT. */ @@ -953,14 +954,14 @@ static const struct elf_x86_sframe_plt elf_x86_64_sframe_non_lazy_ibt_plt = LAZY_PLT_ENTRY_SIZE, 1, /* Number of FREs for PLTn. */ /* Array of SFrame FREs for plt. */ - { &elf_x86_64_sframe_sec_pltn_fre1, &elf_x86_64_sframe_null_fre }, + { &elf_x86_64_sframe_sec_pltn_fre1 }, 0, 0, /* There is no second PLT necessary. */ - { &elf_x86_64_sframe_null_fre }, + { }, LAZY_PLT_ENTRY_SIZE, 1, /* Number of FREs for PLT GOT. */ /* Array of SFrame FREs for PLT GOT. */ - { &elf_x86_64_sframe_null_fre }, + { &elf_x86_64_sframe_pltgot_fre1 }, }; /* SFrame helper object for lazy PLT. */ @@ -981,7 +982,7 @@ static const struct elf_x86_sframe_plt elf_x86_64_sframe_plt = NON_LAZY_PLT_ENTRY_SIZE, 1, /* Number of FREs for PLT GOT. */ /* Array of SFrame FREs for PLT GOT. */ - { &elf_x86_64_sframe_null_fre }, + { &elf_x86_64_sframe_pltgot_fre1 }, }; /* SFrame helper object for lazy PLT with IBT. */ @@ -1002,7 +1003,7 @@ static const struct elf_x86_sframe_plt elf_x86_64_sframe_ibt_plt = LAZY_PLT_ENTRY_SIZE, 1, /* Number of FREs for PLT GOT. */ /* Array of SFrame FREs for PLT GOT. */ - { &elf_x86_64_sframe_null_fre }, + { &elf_x86_64_sframe_pltgot_fre1 }, }; /* These are the standard parameters. */ diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 25f989b..9df93e1 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -1911,7 +1911,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_got16_reloc, /* special_function */ + _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_GOT16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ @@ -2655,7 +2655,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_got16_reloc, /* special_function */ + _bfd_mips_elf_generic_reloc, /* special_function */ "R_MICROMIPS_GOT16", /* name */ false, /* partial_inplace */ 0, /* src_mask */ diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 1c494f5..790f0397 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -176,6 +176,11 @@ struct _bfd_riscv_elf_obj_tdata /* tls_type for each local got entry. */ char *local_got_tls_type; + + /* All GNU_PROPERTY_RISCV_FEATURE_1_AND properties. */ + uint32_t gnu_and_prop; + /* PLT type. */ + riscv_plt_type plt_type; }; #define _bfd_riscv_elf_tdata(abfd) \ @@ -232,6 +237,15 @@ struct riscv_elf_link_hash_table /* Relocations for variant CC symbols may be present. */ int variant_cc; + + /* The number of bytes in the PLT header and enties. */ + bfd_size_type plt_header_size; + bfd_size_type plt_entry_size; + + /* Functions to make PLT header and entries. */ + bool (*make_plt_header) (bfd *output_bfd, struct riscv_elf_link_hash_table *htab); + bool (*make_plt_entry) (bfd *output_bfd, asection *got, bfd_vma got_offset, + asection *plt, bfd_vma plt_offset); }; /* Instruction access functions. */ @@ -252,6 +266,12 @@ struct riscv_elf_link_hash_table && elf_hash_table_id (elf_hash_table (p)) == RISCV_ELF_DATA) \ ? (struct riscv_elf_link_hash_table *) (p)->hash : NULL) +/* Forward declaration PLT related functions. */ +static bool +riscv_make_plt_header (bfd *, struct riscv_elf_link_hash_table *); +static bool +riscv_make_plt_entry (bfd *, asection *, bfd_vma, asection *, bfd_vma); + void riscv_elfNN_set_options (struct bfd_link_info *link_info, struct riscv_elf_params *params) @@ -297,6 +317,12 @@ riscv_is_insn_reloc (const reloc_howto_type *howto) #define PLT_ENTRY_INSNS 4 #define PLT_HEADER_SIZE (PLT_HEADER_INSNS * 4) #define PLT_ENTRY_SIZE (PLT_ENTRY_INSNS * 4) + +#define PLT_ZICFILP_UNLABELED_HEADER_INSNS 12 +#define PLT_ZICFILP_UNLABELED_ENTRY_INSNS 4 +#define PLT_ZICFILP_UNLABELED_HEADER_SIZE (PLT_ZICFILP_UNLABELED_HEADER_INSNS * 4) +#define PLT_ZICFILP_UNLABELED_ENTRY_SIZE (PLT_ZICFILP_UNLABELED_ENTRY_INSNS * 4) + #define GOT_ENTRY_SIZE RISCV_ELF_WORD_BYTES #define TLS_GD_GOT_ENTRY_SIZE (RISCV_ELF_WORD_BYTES * 2) #define TLS_IE_GOT_ENTRY_SIZE RISCV_ELF_WORD_BYTES @@ -314,12 +340,42 @@ riscv_is_insn_reloc (const reloc_howto_type *howto) # define MATCH_LREG MATCH_LD #endif + +/* Check whether the compact PLT is used in this object. Tools need this + to dump the correct PLT header contents. */ + +static long +elfNN_riscv_get_synthetic_symtab (bfd *abfd, + long symcount, + asymbol **syms, + long dynsymcount, + asymbol **dynsyms, + asymbol **ret) +{ + /* Check Zicfilp PLT. */ + elf_property *prop; + prop = _bfd_elf_get_property (abfd, GNU_PROPERTY_RISCV_FEATURE_1_AND, 4); + if (prop) + { + if (prop->u.number & GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED) + _bfd_riscv_elf_tdata (abfd)->plt_type |= PLT_ZICFILP_UNLABELED; + } + + return _bfd_elf_get_synthetic_symtab (abfd, symcount, syms, + dynsymcount, dynsyms, ret); +} + /* Generate a PLT header. */ static bool -riscv_make_plt_header (bfd *output_bfd, bfd_vma gotplt_addr, bfd_vma addr, - uint32_t *entry) +riscv_make_plt_header (bfd *output_bfd, struct riscv_elf_link_hash_table *htab) { + asection *splt = htab->elf.splt; + bfd_vma addr = sec_addr (splt); + + asection *sgotplt = htab->elf.sgotplt; + bfd_vma gotplt_addr = sec_addr (sgotplt); + bfd_vma gotplt_offset_high = RISCV_PCREL_HIGH_PART (gotplt_addr, addr); bfd_vma gotplt_offset_low = RISCV_PCREL_LOW_PART (gotplt_addr, addr); @@ -340,6 +396,7 @@ riscv_make_plt_header (bfd *output_bfd, bfd_vma gotplt_addr, bfd_vma addr, l[w|d] t0, PTRSIZE(t0) # link map jr t3 */ + uint32_t entry[PLT_HEADER_INSNS]; entry[0] = RISCV_UTYPE (AUIPC, X_T2, gotplt_offset_high); entry[1] = RISCV_RTYPE (SUB, X_T1, X_T1, X_T3); entry[2] = RISCV_ITYPE (LREG, X_T3, X_T2, gotplt_offset_low); @@ -349,15 +406,78 @@ riscv_make_plt_header (bfd *output_bfd, bfd_vma gotplt_addr, bfd_vma addr, entry[6] = RISCV_ITYPE (LREG, X_T0, X_T0, RISCV_ELF_WORD_BYTES); entry[7] = RISCV_ITYPE (JALR, 0, X_T3, 0); + for (int i = 0; i < PLT_HEADER_INSNS; i++) + bfd_putl32 (entry[i], splt->contents + 4 * i); + + return true; +} + +static bool +riscv_make_plt_zicfilp_unlabeled_header (bfd *output_bfd, + struct riscv_elf_link_hash_table *htab) +{ + /* + lpad 0 # disable label checking + auipc t2, %hi(.got.plt) # Rewrite this to using + sub t1, t1, t3 # shifted .got.plt offset + hdr size + 16 + l[w|d] t3, %lo(1b)(t2) # _dl_runtime_resolve + addi t1, t1, -(hdr size + 12) # shifted .got.plt offset + addi t0, t2, %pcrel_lo(1b) # &.got.plt + srli t1, t1, log2(16/PTRSIZE) # .got.plt offset + l[w|d] t0, PTRSIZE(t0) # link map + jr t3 + nop + nop + nop */ + + /* RVE has no t3 register, so this won't work, and is not supported. */ + if (elf_elfheader (output_bfd)->e_flags & EF_RISCV_RVE) + { + _bfd_error_handler (_("%pB: warning: RVE PLT generation not supported"), + output_bfd); + return false; + } + + asection *gotplt = htab->elf.sgotplt; + bfd_vma gotplt_addr = sec_addr (gotplt); + + asection *splt = htab->elf.splt; + bfd_vma plt_header_addr = sec_addr (splt); + + bfd_vma auipc_addr = plt_header_addr + 4; + /* Add INSN_BYTES to skip the lpad instruction. */ + bfd_vma gotplt_offset_high = RISCV_PCREL_HIGH_PART (gotplt_addr, auipc_addr); + bfd_vma gotplt_offset_low = RISCV_PCREL_LOW_PART (gotplt_addr, auipc_addr); + + uint32_t header[PLT_ZICFILP_UNLABELED_HEADER_INSNS]; + header[0] = RISCV_UTYPE (LPAD, X_ZERO, 0); + header[1] = RISCV_UTYPE (AUIPC, X_T2, gotplt_offset_high); + header[2] = RISCV_RTYPE (SUB, X_T1, X_T1, X_T3); + header[3] = RISCV_ITYPE (LREG, X_T3, X_T2, gotplt_offset_low); + header[4] = RISCV_ITYPE (ADDI, X_T1, X_T1, + (uint32_t) -(PLT_ZICFILP_UNLABELED_HEADER_SIZE + 16)); + header[5] = RISCV_ITYPE (ADDI, X_T0, X_T2, gotplt_offset_low); + header[6] = RISCV_ITYPE (SRLI, X_T1, X_T1, 4 - RISCV_ELF_LOG_WORD_BYTES); + header[7] = RISCV_ITYPE (LREG, X_T0, X_T0, RISCV_ELF_WORD_BYTES); + header[8] = RISCV_ITYPE (JALR, 0, X_T3, 0); + header[9] = RISCV_NOP; + header[10] = RISCV_NOP; + header[11] = RISCV_NOP; + + for (int i = 0; i < PLT_ZICFILP_UNLABELED_HEADER_INSNS; i++) + bfd_putl32 (header[i], splt->contents + 4 * i); + return true; } /* Generate a PLT entry. */ static bool -riscv_make_plt_entry (bfd *output_bfd, bfd_vma got, bfd_vma addr, - uint32_t *entry) +riscv_make_plt_entry (bfd *output_bfd, asection *gotsec, bfd_vma got_offset, + asection *pltsec, bfd_vma plt_offset) { + bfd_vma got = sec_addr (gotsec) + got_offset; + bfd_vma addr = sec_addr (pltsec) + plt_offset; /* RVE has no t3 register, so this won't work, and is not supported. */ if (elf_elfheader (output_bfd)->e_flags & EF_RISCV_RVE) { @@ -371,11 +491,50 @@ riscv_make_plt_entry (bfd *output_bfd, bfd_vma got, bfd_vma addr, jalr t1, t3 nop */ + uint32_t entry[PLT_ENTRY_INSNS]; entry[0] = RISCV_UTYPE (AUIPC, X_T3, RISCV_PCREL_HIGH_PART (got, addr)); entry[1] = RISCV_ITYPE (LREG, X_T3, X_T3, RISCV_PCREL_LOW_PART (got, addr)); entry[2] = RISCV_ITYPE (JALR, X_T1, X_T3, 0); entry[3] = RISCV_NOP; + bfd_byte *loc = pltsec->contents + plt_offset; + for (int i = 0; i < PLT_ENTRY_INSNS; i++) + bfd_putl32 (entry[i], loc + 4 * i); + + return true; +} + +static bool +riscv_make_plt_zicfilp_unlabeled_entry (bfd *output_bfd, asection *got, + bfd_vma got_offset, asection *plt, + bfd_vma plt_offset) +{ + /* lpad 0 + 1: auipc t3, %pcrel_hi(function@.got.plt) + l[w|d] t3, %pcrel_lo(1b)(t3) + jalr t1, t3 */ + + /* RVE has no t3 register, so this won't work, and is not supported. */ + if (elf_elfheader (output_bfd)->e_flags & EF_RISCV_RVE) + { + _bfd_error_handler (_("%pB: warning: RVE PLT generation not supported"), + output_bfd); + return false; + } + + bfd_vma got_entry_addr = sec_addr(got) + got_offset; + bfd_vma plt_entry_addr = sec_addr(plt) + plt_offset; + bfd_vma auipc_addr = plt_entry_addr + 4; + uint32_t entry[PLT_ZICFILP_UNLABELED_ENTRY_INSNS]; + entry[0] = RISCV_UTYPE (LPAD, X_ZERO, 0); + entry[1] = RISCV_UTYPE (AUIPC, X_T3, RISCV_PCREL_HIGH_PART (got_entry_addr, auipc_addr)); + entry[2] = RISCV_ITYPE (LREG, X_T3, X_T3, RISCV_PCREL_LOW_PART (got_entry_addr, auipc_addr)); + entry[3] = RISCV_ITYPE (JALR, X_T1, X_T3, 0); + + bfd_byte *loc = plt->contents + plt_offset; + for (int i = 0; i < PLT_ZICFILP_UNLABELED_ENTRY_INSNS; i++) + bfd_putl32 (entry[i], loc + 4 * i); + return true; } @@ -489,6 +648,38 @@ riscv_elf_link_hash_table_free (bfd *obfd) _bfd_elf_link_hash_table_free (obfd); } +/* Set up the PLT generation stubs in the hash table. */ + +static void +setup_plt_values (struct bfd *output_bfd, + struct riscv_elf_link_hash_table *htab, + unsigned plt_type) +{ + switch (plt_type) + { + case PLT_NORMAL: + htab->plt_header_size = PLT_HEADER_SIZE; + htab->plt_entry_size = PLT_ENTRY_SIZE; + htab->make_plt_header = riscv_make_plt_header; + htab->make_plt_entry = riscv_make_plt_entry; + break; + + case PLT_ZICFILP_UNLABELED: + htab->plt_header_size = PLT_ZICFILP_UNLABELED_HEADER_SIZE; + htab->plt_entry_size = PLT_ZICFILP_UNLABELED_ENTRY_SIZE; + htab->make_plt_header = riscv_make_plt_zicfilp_unlabeled_header; + htab->make_plt_entry = riscv_make_plt_zicfilp_unlabeled_entry; + break; + + default: + _bfd_error_handler (_("%pB: error: unsupported PLT type: %u"), + output_bfd, + plt_type); + bfd_set_error (bfd_error_bad_value); + break; + } +} + /* Create a RISC-V ELF linker hash table. */ static struct bfd_link_hash_table * @@ -511,6 +702,8 @@ riscv_elf_link_hash_table_create (bfd *abfd) ret->max_alignment = (bfd_vma) -1; ret->max_alignment_for_gp = (bfd_vma) -1; + setup_plt_values (abfd, ret, PLT_NORMAL); + /* Create hash table for local ifunc. */ ret->loc_hash_table = htab_try_create (1024, riscv_elf_local_htab_hash, @@ -1259,12 +1452,12 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) asection *s = htab->elf.splt; if (s->size == 0) - s->size = PLT_HEADER_SIZE; + s->size = htab->plt_header_size; h->plt.offset = s->size; /* Make room for this entry. */ - s->size += PLT_ENTRY_SIZE; + s->size += htab->plt_entry_size; /* We also need to make an entry in the .got.plt section. */ htab->elf.sgotplt->size += GOT_ENTRY_SIZE; @@ -1456,6 +1649,7 @@ allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct bfd_link_info *info; + struct riscv_elf_link_hash_table *htab; if (h->root.type == bfd_link_hash_indirect) return true; @@ -1464,6 +1658,7 @@ allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, h = (struct elf_link_hash_entry *) h->root.u.i.link; info = (struct bfd_link_info *) inf; + htab = riscv_elf_hash_table (info); /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it here if it is defined and referenced in a non-shared object. */ @@ -1471,8 +1666,8 @@ allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, && h->def_regular) return _bfd_elf_allocate_ifunc_dyn_relocs (info, h, &h->dyn_relocs, - PLT_ENTRY_SIZE, - PLT_HEADER_SIZE, + htab->plt_entry_size, + htab->plt_header_size, GOT_ENTRY_SIZE, true); return true; @@ -2472,14 +2667,14 @@ riscv_elf_relocate_section (bfd *output_bfd, if (htab->elf.splt != NULL) { - plt_idx = (h->plt.offset - PLT_HEADER_SIZE) - / PLT_ENTRY_SIZE; + plt_idx = (h->plt.offset - htab->plt_header_size) + / htab->plt_entry_size; off = GOTPLT_HEADER_SIZE + (plt_idx * GOT_ENTRY_SIZE); base_got = htab->elf.sgotplt; } else { - plt_idx = h->plt.offset / PLT_ENTRY_SIZE; + plt_idx = h->plt.offset / htab->plt_entry_size; off = plt_idx * GOT_ENTRY_SIZE; base_got = htab->elf.igotplt; } @@ -3247,8 +3442,7 @@ riscv_elf_finish_dynamic_symbol (bfd *output_bfd, { /* We've decided to create a PLT entry for this symbol. */ bfd_byte *loc; - bfd_vma i, header_address, plt_idx, got_offset, got_address; - uint32_t plt_entry[PLT_ENTRY_INSNS]; + bfd_vma plt_idx, got_offset, got_address; Elf_Internal_Rela rela; asection *plt, *gotplt, *relplt; @@ -3278,36 +3472,29 @@ riscv_elf_finish_dynamic_symbol (bfd *output_bfd, || relplt == NULL) abort (); - /* Calculate the address of the PLT header. */ - header_address = sec_addr (plt); - /* Calculate the index of the entry and the offset of .got.plt entry. For static executables, we don't reserve anything. */ if (plt == htab->elf.splt) { - plt_idx = (h->plt.offset - PLT_HEADER_SIZE) / PLT_ENTRY_SIZE; + plt_idx = (h->plt.offset - htab->plt_header_size) + / htab->plt_entry_size; got_offset = GOTPLT_HEADER_SIZE + (plt_idx * GOT_ENTRY_SIZE); } else { - plt_idx = h->plt.offset / PLT_ENTRY_SIZE; + plt_idx = h->plt.offset / htab->plt_entry_size; got_offset = plt_idx * GOT_ENTRY_SIZE; } /* Calculate the address of the .got.plt entry. */ got_address = sec_addr (gotplt) + got_offset; - /* Find out where the .plt entry should go. */ - loc = plt->contents + h->plt.offset; /* Fill in the PLT entry itself. */ - if (! riscv_make_plt_entry (output_bfd, got_address, - header_address + h->plt.offset, - plt_entry)) + if (! htab->make_plt_entry (output_bfd, gotplt, got_offset, + plt, h->plt.offset)) return false; - for (i = 0; i < PLT_ENTRY_INSNS; i++) - bfd_putl32 (plt_entry[i], loc + 4*i); /* Fill in the initial value of the .got.plt entry. */ loc = gotplt->contents + (got_address - sec_addr (gotplt)); @@ -3595,19 +3782,12 @@ riscv_elf_finish_dynamic_sections (bfd *output_bfd, /* Fill in the head and tail entries in the procedure linkage table. */ if (splt->size > 0) { - int i; - uint32_t plt_header[PLT_HEADER_INSNS]; - ret = riscv_make_plt_header (output_bfd, - sec_addr (htab->elf.sgotplt), - sec_addr (splt), plt_header); + ret = htab->make_plt_header (output_bfd, htab); if (!ret) return ret; - for (i = 0; i < PLT_HEADER_INSNS; i++) - bfd_putl32 (plt_header[i], splt->contents + 4*i); - elf_section_data (splt->output_section)->this_hdr.sh_entsize - = PLT_ENTRY_SIZE; + = htab->plt_entry_size; } } @@ -3661,7 +3841,18 @@ static bfd_vma riscv_elf_plt_sym_val (bfd_vma i, const asection *plt, const arelent *rel ATTRIBUTE_UNUSED) { - return plt->vma + PLT_HEADER_SIZE + i * PLT_ENTRY_SIZE; + unsigned plt_type = _bfd_riscv_elf_tdata (plt->owner)->plt_type; + switch (plt_type) + { + case PLT_NORMAL: + return plt->vma + (PLT_HEADER_SIZE) + (i * PLT_ENTRY_SIZE); + + case PLT_ZICFILP_UNLABELED: + return plt->vma + PLT_ZICFILP_UNLABELED_HEADER_SIZE + (i * PLT_ZICFILP_UNLABELED_ENTRY_SIZE); + + default: + abort (); + } } /* Used to decide how to sort relocs in an optimal manner for the @@ -5753,6 +5944,43 @@ riscv_elf_merge_symbol_attribute (struct elf_link_hash_entry *h, h->other |= STO_RISCV_VARIANT_CC; } +/* Implement elf_backend_setup_gnu_properties for RISC-V. It serves as a + wrapper function for _bfd_riscv_elf_link_setup_gnu_properties to account + for the effect of GNU properties of the output_bfd. */ + +static bfd * +elfNN_riscv_link_setup_gnu_properties (struct bfd_link_info *info) +{ + uint32_t and_prop = _bfd_riscv_elf_tdata (info->output_bfd)->gnu_and_prop; + + bfd *pbfd = _bfd_riscv_elf_link_setup_gnu_properties (info, &and_prop); + + _bfd_riscv_elf_tdata (info->output_bfd)->gnu_and_prop = and_prop; + + if (and_prop & GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED) + _bfd_riscv_elf_tdata (info->output_bfd)->plt_type = PLT_ZICFILP_UNLABELED; + + setup_plt_values (info->output_bfd, riscv_elf_hash_table (info), + _bfd_riscv_elf_tdata (info->output_bfd)->plt_type); + + return pbfd; +} + +/* Implement elf_backend_merge_gnu_properties for RISC-V. It serves as a + wrapper function for _bfd_riscv_elf_merge_gnu_properties to account + for the effect of GNU properties of the output_bfd. */ + +static bool +elfNN_riscv_merge_gnu_properties (struct bfd_link_info *info, bfd *abfd, + bfd *bbfd ATTRIBUTE_UNUSED, + elf_property *aprop, elf_property *bprop) +{ + uint32_t and_prop = _bfd_riscv_elf_tdata (info->output_bfd)->gnu_and_prop; + + return _bfd_riscv_elf_merge_gnu_properties (info, abfd, aprop, bprop, + and_prop); +} + #define TARGET_LITTLE_SYM riscv_elfNN_vec #define TARGET_LITTLE_NAME "elfNN-littleriscv" #define TARGET_BIG_SYM riscv_elfNN_be_vec @@ -5785,6 +6013,7 @@ riscv_elf_merge_symbol_attribute (struct elf_link_hash_entry *h, #define elf_info_to_howto riscv_info_to_howto_rela #define bfd_elfNN_bfd_relax_section _bfd_riscv_relax_section #define bfd_elfNN_mkobject elfNN_riscv_mkobject +#define bfd_elfNN_get_synthetic_symtab elfNN_riscv_get_synthetic_symtab #define elf_backend_additional_program_headers \ riscv_elf_additional_program_headers #define elf_backend_modify_segment_map riscv_elf_modify_segment_map @@ -5792,6 +6021,9 @@ riscv_elf_merge_symbol_attribute (struct elf_link_hash_entry *h, #define elf_backend_init_index_section _bfd_elf_init_1_index_section +#define elf_backend_setup_gnu_properties elfNN_riscv_link_setup_gnu_properties +#define elf_backend_merge_gnu_properties elfNN_riscv_merge_gnu_properties + #define elf_backend_can_gc_sections 1 #define elf_backend_can_refcount 1 #define elf_backend_want_got_plt 1 diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 0884bb7..43d3c0d 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1342,20 +1342,34 @@ static struct riscv_profiles riscv_profiles_table[] = /* RVA23 contains all mandatory base ISA for RVA22U64 and the new extension 'v,zihintntl,zvfhmin,zvbb,zvkt,zicond,zimop,zcmop,zfa,zawrs' as mandatory extensions. */ - {"rva23u64", "rv64imafdcv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" + {"rva23u64", "rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop" "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb" - "_zfa_zawrs"}, + "_zfa_zawrs_supm"}, + + /* RVA23S contains all mandatory base ISA for RVA23U64 and the privileged + extensions as mandatory extensions. */ + {"rva23s64", "rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" + "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop" + "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb" + "_zfa_zawrs_supm_svbare_svade_ssccptr_sstvecd_sstvala_sscounterenw_svpbmt" + "_svinval_svnapot_sstc_sscofpmf_ssnpm_ssu64xl_sha"}, /* RVB23 contains all mandatory base ISA for RVA22U64 and the new extension 'zihintntl,zicond,zimop,zcmop,zfa,zawrs' as mandatory extensions. */ - {"rvb23u64", "rv64imafdc_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" + {"rvb23u64", "rv64imafdcb_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop" "_zicboz_zfhmin_zkt_zihintntl_zicond_zimop_zcmop_zcb" - "_zfa_zawrs"}, + "_zfa_zawrs_supm"}, - /* Currently we do not define S/M mode Profiles. */ + /* RVB23S contains all mandatory base ISA for RVB23U64 and the privileged + extensions as mandatory extensions. */ + {"rvb23s64", "rv64imafdcb_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" + "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop" + "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb" + "_zfa_zawrs_supm_svbare_svade_ssccptr_sstvecd_sstvala_sscounterenw_svpbmt" + "_svinval_svnapot_sstc_sscofpmf_ssu64xl"}, /* Terminate the list. */ {NULL, NULL} @@ -3366,3 +3380,174 @@ riscv_print_extensions (void) } printf ("\n"); } + +/* Find the first input bfd with GNU property and merge it with GPROP. If no + such input is found, add it to a new section at the last input. Update + GPROP accordingly. */ + +bfd * +_bfd_riscv_elf_link_setup_gnu_properties (struct bfd_link_info *info, + uint32_t *and_prop_p) +{ + asection *sec; + bfd *pbfd; + bfd *ebfd = NULL; + elf_property *prop; + + uint32_t and_prop = *and_prop_p; + + /* Find a normal input file with GNU property note. */ + for (pbfd = info->input_bfds; pbfd != NULL; pbfd = pbfd->link.next) + if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour + && bfd_count_sections (pbfd) != 0) + { + ebfd = pbfd; + + if (elf_properties (pbfd) != NULL) + break; + } + + /* If ebfd != NULL it is either an input with property note or the last + input. Either way if we have and_prop, we should add it (by + creating a section if needed). */ + if (ebfd != NULL && (and_prop)) + { + prop = _bfd_elf_get_property (ebfd, GNU_PROPERTY_RISCV_FEATURE_1_AND, 4); + + prop->u.number |= and_prop; + prop->pr_kind = property_number; + + /* pbfd being NULL implies ebfd is the last input. Create the GNU + property note section. */ + if (pbfd == NULL) + { + sec + = bfd_make_section_with_flags (ebfd, NOTE_GNU_PROPERTY_SECTION_NAME, + (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY + | SEC_READONLY | SEC_HAS_CONTENTS + | SEC_DATA)); + if (sec == NULL) + info->callbacks->einfo ( + _ ("%F%P: failed to create GNU property section\n")); + + elf_section_type (sec) = SHT_NOTE; + } + } + + pbfd = _bfd_elf_link_setup_gnu_properties (info); + + if (bfd_link_relocatable (info)) + return pbfd; + + /* If pbfd has any GNU_PROPERTY_RISCV_FEATURE_1_AND properties, update + and_prop accordingly. */ + if (pbfd != NULL) + { + elf_property_list *p; + elf_property_list *plist = elf_properties (pbfd); + + if ((p = _bfd_elf_find_property (plist, GNU_PROPERTY_RISCV_FEATURE_1_AND, + NULL)) + != NULL) + and_prop = p->property.u.number + & (GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED + | GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS); + } + + *and_prop_p = and_prop; + return pbfd; +} + +/* Define elf_backend_parse_gnu_properties for RISC-V. */ + +enum elf_property_kind +_bfd_riscv_elf_parse_gnu_properties (bfd *abfd, unsigned int type, + bfd_byte *ptr, unsigned int datasz) +{ + elf_property *prop; + + switch (type) + { + case GNU_PROPERTY_RISCV_FEATURE_1_AND: + if (datasz != 4) + { + _bfd_error_handler (_ ( + "error: %pB: <corrupt RISC-V used size: 0x%x>"), + abfd, datasz); + return property_corrupt; + } + prop = _bfd_elf_get_property (abfd, type, datasz); + /* Combine properties of the same type. */ + prop->u.number |= bfd_h_get_32 (abfd, ptr); + prop->pr_kind = property_number; + break; + + default: + return property_ignored; + } + + return property_number; +} + +/* Merge RISC-V GNU property BPROP with APROP also accounting for PROP. + If APROP isn't NULL, merge it with BPROP and/or PROP. Vice-versa if BROP + isn't NULL. Return TRUE if there is any update to APROP or if BPROP should + be merge with ABFD. */ + +bool +_bfd_riscv_elf_merge_gnu_properties + (struct bfd_link_info *info ATTRIBUTE_UNUSED, bfd *abfd ATTRIBUTE_UNUSED, + elf_property *aprop, elf_property *bprop, uint32_t and_prop) +{ + unsigned int orig_number; + bool updated = false; + unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type; + + switch (pr_type) + { + case GNU_PROPERTY_RISCV_FEATURE_1_AND: { + if (aprop != NULL && bprop != NULL) + { + orig_number = aprop->u.number; + aprop->u.number = (orig_number & bprop->u.number) | and_prop; + updated = orig_number != aprop->u.number; + /* Remove the property if all feature bits are cleared. */ + if (aprop->u.number == 0) + aprop->pr_kind = property_remove; + break; + } + /* If either is NULL, the AND would be 0 so, if there is + any PROP, asign it to the input that is not NULL. */ + if (and_prop) + { + if (aprop != NULL) + { + orig_number = aprop->u.number; + aprop->u.number = and_prop; + updated = orig_number != aprop->u.number; + } + else if (bprop != NULL) + { + bprop->u.number = and_prop; + updated = true; + } + /* Shouldn't happen because we checked one of APROP or BPROP != + * NULL. */ + else + abort (); + } + /* No PROP and BPROP is NULL, so remove APROP. */ + else if (!and_prop && bprop == NULL && aprop != NULL) + { + aprop->pr_kind = property_remove; + updated = true; + } + } + break; + + default: + abort (); + } + + return updated; +} diff --git a/bfd/elfxx-riscv.h b/bfd/elfxx-riscv.h index 1ce682a..db494d0 100644 --- a/bfd/elfxx-riscv.h +++ b/bfd/elfxx-riscv.h @@ -27,6 +27,12 @@ #define RISCV_UNKNOWN_VERSION -1 +typedef enum +{ + PLT_NORMAL = 0x0, /* Normal plts. */ + PLT_ZICFILP_UNLABELED = 0x1 /* Landing pad unlabeled plts. */ +} riscv_plt_type; + struct riscv_elf_params { /* Whether to relax code sequences to GP-relative addressing. */ @@ -128,3 +134,16 @@ extern void bfd_elf32_riscv_set_data_segment_info (struct bfd_link_info *, int *); extern void bfd_elf64_riscv_set_data_segment_info (struct bfd_link_info *, int *); + +extern bfd * +_bfd_riscv_elf_link_setup_gnu_properties (struct bfd_link_info *, uint32_t *); + +extern enum elf_property_kind +_bfd_riscv_elf_parse_gnu_properties (bfd *, unsigned int, bfd_byte *, + unsigned int); + +extern bool +_bfd_riscv_elf_merge_gnu_properties (struct bfd_link_info *, bfd *, + elf_property *, elf_property *, uint32_t); + +#define elf_backend_parse_gnu_properties _bfd_riscv_elf_parse_gnu_properties diff --git a/bfd/version.h b/bfd/version.h index 0f3b52f..ad165f4 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -16,7 +16,7 @@ In releases, the date is not included in either version strings or sonames. */ -#define BFD_VERSION_DATE 20250621 +#define BFD_VERSION_DATE 20250702 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/binutils/NEWS b/binutils/NEWS index a4599d9..a624106 100644 --- a/binutils/NEWS +++ b/binutils/NEWS @@ -1,5 +1,9 @@ -*- text -*- +* Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and + GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp + extensions. + * For RISC-V dis-assembler, the definition of mapping symbol $x is changed, so the file needs to be rebuilt since 2.45 once used .option arch directives. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 5b3ece5..8806cde 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -10930,7 +10930,7 @@ display_debug_links (struct dwarf_section * section, (padding) If needed to reach a 4 byte boundary. (uint32_t) CRC32 value. - The .gun_debugaltlink section is formatted as: + The .gnu_debugaltlink section is formatted as: (c-string) Filename. (binary) Build-ID. */ @@ -12330,7 +12330,7 @@ load_build_id_debug_file (const char * main_filename ATTRIBUTE_UNUSED, void * ma + strlen (".debug") /* The next string should be the same as the longest name found in the prefixes[] array below. */ - + strlen ("/usrlib64/debug/usr") + + strlen ("/usr/lib64/debug/usr/") + 1); void * handle; @@ -12341,7 +12341,7 @@ load_build_id_debug_file (const char * main_filename ATTRIBUTE_UNUSED, void * ma "/usr/lib/debug/", "/usr/lib/debug/usr/", "/usr/lib64/debug/", - "/usr/lib64/debug/usr" + "/usr/lib64/debug/usr/" }; long unsigned int i; diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 366e107..2e98ba4 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -4650,6 +4650,7 @@ copy_section (bfd *ibfd, sec_ptr isection, bfd *obfd) char *to = (char *) memhunk; char *end = (char *) memhunk + size; int i; + bfd_size_type memhunk_size = size; /* If the section address is not exactly divisible by the interleave, then we must bias the from address. If the copy_byte is less than @@ -4669,6 +4670,11 @@ copy_section (bfd *ibfd, sec_ptr isection, bfd *obfd) } size = (size + interleave - 1 - copy_byte) / interleave * copy_width; + + /* Don't extend the output section size. */ + if (size > memhunk_size) + size = memhunk_size; + osection->lma /= interleave; if (copy_byte < extra) osection->lma++; diff --git a/binutils/readelf.c b/binutils/readelf.c index dd1871d..f49092f 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -17779,13 +17779,17 @@ display_tag_value (signed int tag, else if (tag & 1) { /* PR 17531 file: 027-19978-0.004. */ - size_t maxlen = (end - p) - 1; + size_t maxlen = end - p; putchar ('"'); if (maxlen > 0) { + maxlen -= 1; /* Remove \0 from the character count. */ print_symbol_name ((int) maxlen, (const char *) p); - p += strnlen ((char *) p, maxlen) + 1; + size_t len = strnlen ((char *) p, maxlen); + if (len == maxlen && p[maxlen] != '\0') + printf (_("<corrupt string tag>")); + p += len + 1; } else { @@ -21288,6 +21292,33 @@ decode_aarch64_feature_1_and (unsigned int bitmask) } static void +decode_riscv_feature_1_and (unsigned int bitmask) +{ + while (bitmask) + { + unsigned int bit = bitmask & (- bitmask); + + bitmask &= ~ bit; + switch (bit) + { + case GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED: + printf ("CFI_LP_UNLABELED"); + break; + + case GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS: + printf ("CFI_SS"); + break; + + default: + printf (_("<unknown: %x>"), bit); + break; + } + if (bitmask) + printf (", "); + } +} + +static void decode_1_needed (unsigned int bitmask) { while (bitmask) @@ -21477,6 +21508,18 @@ print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote) goto next; } } + else if (filedata->file_header.e_machine == EM_RISCV) + { + if (type == GNU_PROPERTY_RISCV_FEATURE_1_AND) + { + printf ("RISC-V AND feature: "); + if (datasz != 4) + printf (_("<corrupt length: %#x> "), datasz); + else + decode_riscv_feature_1_and (byte_get (ptr, 4)); + goto next; + } + } } else { diff --git a/binutils/testsuite/binutils-all/riscv/property-cfi-lp-unlabeled.d b/binutils/testsuite/binutils-all/riscv/property-cfi-lp-unlabeled.d new file mode 100644 index 0000000..396b4cd --- /dev/null +++ b/binutils/testsuite/binutils-all/riscv/property-cfi-lp-unlabeled.d @@ -0,0 +1,8 @@ +#as: -defsym __property_zicfilp_unlabeled__=1 -march=rv64i -mabi=lp64 +#readelf: -n +#source: property.s + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description +[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0 +[ ]+Properties: RISC-V AND feature: CFI_LP_UNLABELED diff --git a/binutils/testsuite/binutils-all/riscv/property-cfi-ss.d b/binutils/testsuite/binutils-all/riscv/property-cfi-ss.d new file mode 100644 index 0000000..5bc844a --- /dev/null +++ b/binutils/testsuite/binutils-all/riscv/property-cfi-ss.d @@ -0,0 +1,8 @@ +#as: -defsym __property_zicfiss__=1 -march=rv64i -mabi=lp64 +#readelf: -n +#source: property.s + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description +[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0 +[ ]+Properties: RISC-V AND feature: CFI_SS diff --git a/binutils/testsuite/binutils-all/riscv/property.s b/binutils/testsuite/binutils-all/riscv/property.s new file mode 100644 index 0000000..1b62654 --- /dev/null +++ b/binutils/testsuite/binutils-all/riscv/property.s @@ -0,0 +1,41 @@ + .text + .globl _start + .type _start,@function +_start: + ret + +.ifdef __property_zicfilp_unlabeled__ + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x1 /* GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED. */ +4: + .p2align 3 +5: +.endif + +.ifdef __property_zicfiss__ + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x2 /* GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS. */ +4: + .p2align 3 +5: +.endif diff --git a/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils/testsuite/binutils-all/x86-64/x86-64.exp index 2df0269..05c7304 100644 --- a/binutils/testsuite/binutils-all/x86-64/x86-64.exp +++ b/binutils/testsuite/binutils-all/x86-64/x86-64.exp @@ -81,7 +81,7 @@ if {[catch "system \"bzip2 -dc $t > $tempfile\""] != 0} { fail $testname } else { send_log "cmp tmpdir/pr27708.out $srcdir/$subdir/pr27708.dump\n" - verbose "cmp tmpdir/pr27708.out $srcdir/$subdir/pr26808.dump" 1 + verbose "cmp tmpdir/pr27708.out $srcdir/$subdir/pr27708.dump" 1 set status [remote_exec build cmp "tmpdir/pr27708.out $srcdir/$subdir/pr27708.dump"] set exec_output [lindex $status 1] set exec_output [prune_warnings $exec_output] @@ -8,11 +8,13 @@ to have the same ISA as elf architecture attribute. Once used .option arch directives, the file need to be rebuilt since 2.45. -* Add support for RISC-V privileged version 1.13, Profiles. +* Add support for RISC-V privileged version 1.13, profiles 20/22/23, and + .bfloat16 directive. * Add support for RISC-V standard extensions: ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0, - sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0. + sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0, zilsd v1.0, + zclsd v1.0, smrnmi v1.0 instruction. * Add support for RISC-V vendor extensions: T-Head: xtheadvdot v1.0. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index e569b85..13649e8 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -10796,6 +10796,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { {"sme-f16f16", AARCH64_FEATURE (SME_F16F16), AARCH64_FEATURE (SME2)}, {"sme-b16b16", AARCH64_FEATURE (SME_B16B16), AARCH64_FEATURES (2, SVE_B16B16, SME2)}, + {"pops", AARCH64_FEATURE (PoPS), AARCH64_NO_FEATURES}, {NULL, AARCH64_NO_FEATURES, AARCH64_NO_FEATURES}, }; diff --git a/gas/doc/as.texi b/gas/doc/as.texi index 6644648..7d6cdcb 100644 --- a/gas/doc/as.texi +++ b/gas/doc/as.texi @@ -260,7 +260,8 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{--sectname-subst}] [@b{--size-check=[error|warning]}] [@b{--statistics}] - [@b{-v}] [@b{-version}] [@b{--version}] + [@b{-v}] [@b{--verbose}] + [@b{-version}] [@b{--version}] [@b{-W}] [@b{--no-warn}] [@b{--warn}] [@b{--fatal-warnings}] [@b{-w}] [@b{-x}] [@b{-Z}] [@b{@@@var{FILE}}] @@ -975,10 +976,11 @@ assembly. Remove local absolute symbols from the outgoing symbol table. @item -v -@itemx -version +@itemx --verbose Print the @command{as} version. @item --version +@itemx -version Print the @command{as} version and exit. @item -W diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index 0b68602..d7e9c95 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -247,6 +247,8 @@ automatically cause those extensions to be disabled. @tab Enable Privileged Access Never support. @item @code{pauth} @tab @tab Enable Pointer Authentication. +@item @code{pops} @tab + @tab Enable Point of Physical Storage. @item @code{predres} @tab @tab Enable the Execution and Data and Prediction instructions. @item @code{predres2} @tab @code{predres} diff --git a/gas/po/es.po b/gas/po/es.po index f974b45..e6a5cb12 100644 --- a/gas/po/es.po +++ b/gas/po/es.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the binutils package. # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2002 - 2012. # Francisco Javier Serrador <fserrador@gmail.com>, 2018. -#: config/tc-arm.c:642 +# Antonio Ceballos <aceballos@gmail.com>, 2025 msgid "" msgstr "" -"Project-Id-Version: gas 2.30.0\n" -"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2018-01-13 13:44+0000\n" -"PO-Revision-Date: 2018-04-29 15:57+0200\n" -"Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n" +"Project-Id-Version: gas 2.43.90\n" +"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" +"POT-Creation-Date: 2025-01-19 12:20+0000\n" +"PO-Revision-Date: 2025-06-22 10:10+0200\n" +"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n" "Language-Team: Spanish <es@tp.org.es>\n" "Language: es\n" "MIME-Version: 1.0\n" @@ -20,64 +20,79 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.0.4\n" -#: app.c:490 app.c:504 -msgid "end of file in comment" -msgstr "final de fichero en el comentario" +#: app.c:446 +#, c-format +msgid "multibyte character (%#x) encountered in input" +msgstr "carácter multibyte (%#x) encontrado en la entrada" + +#: app.c:448 +#, c-format +msgid "multibyte character (%#x) encountered in %s" +msgstr "carácter multibyte (%#x) encontrado en %s" + +#: app.c:450 +#, c-format +msgid "multibyte character (%#x) encountered in %s at or near line %u" +msgstr "carácter multibyte (%#x) encontrado en %s hacia la línea %u" + +#: app.c:454 +msgid "further multibyte character warnings suppressed" +msgstr "avisos de carácter multibyte adicionales suprimidos" -#: app.c:582 app.c:629 +#: app.c:665 app.c:710 #, c-format msgid "end of file in string; '%c' inserted" -msgstr "final de fichero dentro de cadena; '%c' insertado" +msgstr "final de fichero en cadena; '%c' insertado" -#: app.c:655 +#: app.c:741 #, c-format msgid "unknown escape '\\%c' in string; ignored" -msgstr "escape '\\%c' desconocido en la cadena; se descarta" +msgstr "escape '\\%c' desconocida en la cadena; se descarta" -#: app.c:829 input-scrub.c:363 +#: app.c:953 input-scrub.c:389 msgid "end of file not at end of a line; newline inserted" -msgstr "final de fichero no está al final de una línea: se insertó línea nueva" +msgstr "final de fichero no situado en final de línea: se inserta una nueva línea" -#: app.c:992 +#: app.c:1131 msgid "end of file in multiline comment" -msgstr "final de fichero en comentario multilíneas" +msgstr "final de fichero en comentario multilínea" -#: app.c:1067 +#: app.c:1207 msgid "end of file after a one-character quote; \\0 inserted" -msgstr "final de fichero tras una comilla de un carácter; se insertó \\0" +msgstr "final de fichero tras una comilla de un carácter; se inserta \\0" -#: app.c:1075 +#: app.c:1215 msgid "end of file in escape character" msgstr "final de fichero en carácter de escape" -#: app.c:1087 +#: app.c:1227 msgid "missing close quote; (assumed)" -msgstr "ausente la comilla que cierra; (se asume)" +msgstr "falta comilla de cierre; (se asume)" -#: app.c:1156 app.c:1211 app.c:1223 app.c:1303 +#: app.c:1295 app.c:1344 app.c:1356 app.c:1430 msgid "end of file in comment; newline inserted" -msgstr "final de fichero en comentario; línea nueva insertada" +msgstr "final de fichero en comentario; nueva línea insertada" -#: as.c:162 +#: as.c:157 msgid "missing emulation mode name" -msgstr "ausente el nombre del modo de emulación" +msgstr "falta el nombre del modo de emulación" -#: as.c:177 +#: as.c:172 #, c-format msgid "unrecognized emulation name `%s'" -msgstr "no reconocido el nombre de emulación «%s»" +msgstr "nombre de emulación no reconocido «%s»" -#: as.c:224 +#: as.c:212 #, c-format msgid "GNU assembler version %s (%s) using BFD version %s\n" -msgstr "GNU ensamblador versión %s (%s) utilizando BFD versión %s\n" +msgstr "versión de ensamblador GNU %s (%s) utilizando versión de BFD %s\n" -#: as.c:236 +#: as.c:228 #, c-format msgid "Usage: %s [option...] [asmfile...]\n" msgstr "Modo de empleo: %s [opción...] [ficheroasm...]\n" -#: as.c:238 +#: as.c:230 #, c-format msgid "" "Options:\n" @@ -87,6 +102,7 @@ msgid "" " \t d omit debugging directives\n" " \t g include general info\n" " \t h include high-level source\n" +" \t i include ginsn and synthesized CFI info\n" " \t l include assembly\n" " \t m include macro expansions\n" " \t n omit forms processing\n" @@ -95,93 +111,86 @@ msgid "" msgstr "" "Opciones:\n" " -a[sub-opción...]\t activa listados\n" -" \t Sub-casillas [por defecto hls]:\n" +" \t Subopciones [por defecto hls]:\n" " \t c omite condicionales falsos\n" " \t d omite directivas de depuración\n" -" \t g incluye informe general\n" -" \t h incluye código de alto nivel\n" +" \t g incluye información general\n" +" \t h incluye fuente de alto nivel\n" +" \t i incluye ginsn e información de CFI sintetizada\n" " \t l incluye ensamblador\n" " \t m incluye expansiones de macros\n" " \t n omite el procesamiento de formas\n" " \t s incluye símbolos\n" -" \t =FICH lista a FICHero (debe ser la última subcasilla)\n" +" \t =FICH lista a FICHero (ha de ser la última subopción)\n" -#: as.c:252 +#: as.c:245 #, c-format msgid " --alternate initially turn on alternate macro syntax\n" -msgstr " --alternate activa inicialmente la sintaxis alternativa de macros\n" - -#: as.c:255 -#, c-format -msgid "" -" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n" -" compress DWARF debug sections using zlib [default]\n" -msgstr "" -" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n" -" comprime secciones depurables DWARF empleando zlib [predef.]\n" +msgstr " --alternate activa inicialmente la sintaxis de macros alternativa\n" -#: as.c:258 +#: as.c:247 #, c-format msgid "" -" --nocompress-debug-sections\n" -" don't compress DWARF debug sections\n" +" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n" +" compress DWARF debug sections\n" msgstr "" -" --nocompress-debug-sections\n" -" no comprime las secciones de depuración DWARF\n" +" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n" +" comprime las secciones de depuración DWARF\n" -#: as.c:262 +#: as.c:250 #, c-format -msgid "" -" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n" -" compress DWARF debug sections using zlib\n" -msgstr "" -" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n" -" comprime secciones de depuración DWARF empleando zlib\n" +msgid "\t\t Default: %s\n" +msgstr "\t\t Por defecto: %s\n" -#: as.c:265 +#: as.c:255 #, c-format msgid "" " --nocompress-debug-sections\n" -" don't compress DWARF debug sections [default]\n" +" don't compress DWARF debug sections\n" msgstr "" " --nocompress-debug-sections\n" -" no comprime las secciones de depuración DWARF [predet.]\n" +" no comprime las secciones de depuración DWARF\n" -#: as.c:269 +#: as.c:258 #, c-format msgid " -D produce assembler debugging messages\n" msgstr " -D produce mensajes de depuración de ensamblador\n" -#: as.c:271 +#: as.c:260 +#, c-format +msgid " --dump-config display how the assembler is configured and then exit\n" +msgstr " --dump-config muestra cómo está configurado el ensamblador y termina\n" + +#: as.c:262 #, c-format msgid "" " --debug-prefix-map OLD=NEW\n" " map OLD to NEW in debug information\n" msgstr "" " --debug-prefix-map ANT=NUEVO\n" -" mapea ANT en NUEVO en la información de depuración\n" +" asocia ANT a NUEVO en la información de depuración\n" -#: as.c:274 +#: as.c:265 #, c-format msgid " --defsym SYM=VAL define symbol SYM to given value\n" msgstr " --defsym SIM=VAL define el símbolo SIM al valor dado\n" -#: as.c:290 +#: as.c:281 #, c-format msgid " emulate output (default %s)\n" msgstr " emula la salida (por defecto %s)\n" -#: as.c:295 +#: as.c:286 #, c-format msgid " --execstack require executable stack for this object\n" msgstr " --execstack requiere pila ejecutable para este objeto\n" -#: as.c:297 +#: as.c:288 #, c-format msgid " --noexecstack don't require executable stack for this object\n" msgstr " --noexecstack no requiere pila ejecutable para este objeto\n" -#: as.c:299 +#: as.c:290 #, c-format msgid "" " --size-check=[error|warning]\n" @@ -190,164 +199,226 @@ msgstr "" " --size-check=[error|warning]\n" "\t\t\t revisar directiva .size de ELF (--size-check=error por defecto)\n" -#: as.c:302 +#: as.c:293 #, c-format -msgid "" -" --elf-stt-common=[no|yes]\n" -" generate ELF common symbols with STT_COMMON type\n" -msgstr "" -" --elf-stt-common=[no|yes]\n" -" genera símbolos comunes ELF con tipo STT_COMMON\n" +msgid " --elf-stt-common=[no|yes] " +msgstr " --elf-stt-common=[no|yes] " + +#: as.c:296 as.c:307 config/tc-i386.c:17662 config/tc-i386.c:17682 +#: config/tc-i386.c:17691 +#, c-format +msgid "(default: yes)\n" +msgstr "(por defecto: yes)\n" + +#: as.c:298 as.c:309 config/tc-i386.c:17664 config/tc-i386.c:17684 +#: config/tc-i386.c:17693 +#, c-format +msgid "(default: no)\n" +msgstr "(por defecto: no)\n" + +#: as.c:299 +#, c-format +msgid " generate ELF common symbols with STT_COMMON type\n" +msgstr " genera símbolos comunes ELF con tipo STT_COMMON\n" -#: as.c:305 +#: as.c:301 #, c-format msgid " --sectname-subst enable section name substitution sequences\n" -msgstr " --sectname-subst activa secuencias sustitutivas de nombre seccional\n" +msgstr " --sectname-subst activa secuencias de sustitución de nombre de sección\n" -#: as.c:308 +#: as.c:304 +#, c-format +msgid " --generate-missing-build-notes=[no|yes] " +msgstr " --generate-missing-build-notes=[no|yes] " + +#: as.c:311 +#, c-format +msgid " generate GNU Build notes if none are present in the input\n" +msgstr " genera notas de GNU Build si no las hay en la entrada\n" + +#: as.c:313 +#, c-format +msgid " --gsframe generate SFrame stack trace information\n" +msgstr " --gsframe genera información de traza de pila SFrame\n" + +#: as.c:316 +#, c-format +msgid "" +" --scfi=experimental Synthesize DWARF CFI for hand-written asm\n" +" (experimental support)\n" +msgstr "" +" --scfi=experimental Sintetiza CFI DWARF asm hecho a mano\n" +" (soporte experimental)\n" + +#: as.c:322 #, c-format msgid " -f skip whitespace and comment preprocessing\n" -msgstr " -f omite espacios en blanco y comentarios de preprocesamiento\n" +msgstr "" +" -f se salta el procesamiento de espacios en blanco y\n" +" comentarios\n" -#: as.c:310 +#: as.c:324 #, c-format -msgid " -g --gen-debug generate debugging information\n" -msgstr " -g --gen-debug genera información de depuración\n" +msgid " -g, --gen-debug generate debugging information\n" +msgstr " -g, --gen-debug genera información de depuración\n" -#: as.c:312 +#: as.c:326 #, c-format msgid " --gstabs generate STABS debugging information\n" msgstr " --gstabs genera información de depuración de STABS\n" -#: as.c:314 +#: as.c:328 #, c-format msgid " --gstabs+ generate STABS debug info with GNU extensions\n" msgstr " --gstabs+ genera informe de depuración de STABS con extensiones GNU\n" -#: as.c:316 +#: as.c:330 #, c-format -msgid " --gdwarf-2 generate DWARF2 debugging information\n" -msgstr " --genana-2 genera información de depuración DWARF2\n" +msgid " --gdwarf-<N> generate DWARF<N> debugging information. 2 <= <N> <= 5\n" +msgstr " --gdwarf-<N> genera información de depuración DWARF<N>. 2 <= <N> <= 5\n" -#: as.c:318 +#: as.c:332 +#, c-format +msgid " --gdwarf-cie-version=<N> generate version 1, 3 or 4 DWARF CIEs\n" +msgstr " --gdwarf-cie-version=<N> genera CIEs DWARF versión 1, 3 o 4\n" + +#: as.c:334 #, c-format msgid " --gdwarf-sections generate per-function section names for DWARF line information\n" msgstr "" -" --genana-sections genera información de línea DWARF para nombre de sección por\n" -" función\n" +" --gdwarf-sections genera nombres de sección por función para la\n" +" información de línea DWARF\n" -#: as.c:320 +#: as.c:337 #, c-format -msgid " --hash-size=<value> set the hash table size close to <value>\n" -msgstr " --hash-size=<valor> establece el tamaño de la distribución de dispersión cerca a <valor>\n" +msgid " --gcodeview generate CodeView debugging information\n" +msgstr " --gcodeview genera información de depuración de CodeView\n" -#: as.c:322 +#: as.c:340 #, c-format -msgid " --help show this message and exit\n" -msgstr " --help muestra este mensaje y termina\n" +msgid " --hash-size=<N> ignored\n" +msgstr " --hash-size=<N> se descarta\n" -#: as.c:324 +#: as.c:342 +#, c-format +msgid " --help show all assembler options\n" +msgstr " --help muestra todas las opciones del ensamblador\n" + +#: as.c:344 #, c-format msgid " --target-help show target specific options\n" -msgstr " --target-help muestra las casillas específicas del objetivo\n" +msgstr " --target-help muestra las opciones específicas del objetivo\n" -#: as.c:326 +#: as.c:346 #, c-format msgid " -I DIR add DIR to search list for .include directives\n" msgstr " -I DIR añade DIR a la lista de búsqueda para directivas .include\n" -#: as.c:328 +#: as.c:348 #, c-format msgid " -J don't warn about signed overflow\n" msgstr " -J no avisa sobre desbordamiento con signo\n" -#: as.c:330 +#: as.c:350 #, c-format msgid " -K warn when differences altered for long displacements\n" -msgstr " -K avisa cuando hay diferencias alteradas por desubicaciones largas\n" +msgstr " -K avisa cuando hay diferencias alteradas por desplazamientos largos\n" -#: as.c:332 +#: as.c:352 #, c-format -msgid " -L,--keep-locals keep local symbols (e.g. starting with `L')\n" -msgstr " -L,--keep-locals conserva los símbolos locales (p.e. si inician con `L')\n" +msgid " -L, --keep-locals keep local symbols (e.g. starting with `L')\n" +msgstr " -L, --keep-locals conserva los símbolos locales (p.e. los que empeizan con `L')\n" -#: as.c:334 +#: as.c:354 #, c-format -msgid " -M,--mri assemble in MRI compatibility mode\n" -msgstr " -M,--mri ensambla en modo de compatibilidad MRI\n" +msgid " -M, --mri assemble in MRI compatibility mode\n" +msgstr " -M, --mri ensambla en modo de compatibilidad con MRI\n" -#: as.c:336 +#: as.c:356 #, c-format msgid " --MD FILE write dependency information in FILE (default none)\n" -msgstr " --MD FICHERO escribe la información de dependencias en el FICHERO (por defecto ninguno)\n" +msgstr " --MD FICHERO escribe la información de dependencias en FICHERO (por defecto ninguno)\n" -#: as.c:338 +#: as.c:358 +#, c-format +msgid "" +" --multibyte-handling=<method>\n" +" what to do with multibyte characters encountered in the input\n" +msgstr "" +" --multibyte-handling=<método>\n" +" qué hacer con los caracteres multibyte que aparezcan en la entrada\n" + +#: as.c:361 #, c-format msgid " -nocpp ignored\n" msgstr " -nocpp se descarta\n" -#: as.c:340 +#: as.c:363 #, c-format msgid " -no-pad-sections do not pad the end of sections to alignment boundaries\n" -msgstr " -no-pad-sections no concadena el final de secciones a bordes alineados\n" +msgstr " -no-pad-sections no rellena los finales de sección hasta los bordes de alineamiento\n" -#: as.c:342 +#: as.c:365 #, c-format msgid " -o OBJFILE name the object-file output OBJFILE (default a.out)\n" -msgstr " -o FICHOBJ nombra la salida del objeto fichero FICHOBJ (por defecto a.out)\n" +msgstr " -o FICHOBJ nombre del fichero objeto de salida FICHOBJ (por defecto a.out)\n" -#: as.c:344 +#: as.c:367 #, c-format msgid " -R fold data section into text section\n" -msgstr " -R encarpeta sección de datos dentro de la sección textual\n" +msgstr " -R junta la sección de datos con la de texto\n" -#: as.c:346 +#: as.c:369 #, c-format -msgid "" -" --reduce-memory-overheads \n" -" prefer smaller memory use at the cost of longer\n" -" assembly times\n" -msgstr "" -" --reduce-memory-overheads \n" -" prefiere un menor uso de memoria al costo de\n" -" tiempos de ensamblado más largos\n" +msgid " --reduce-memory-overheads ignored\n" +msgstr " --reduce-memory-overheads se descarta\n" -#: as.c:350 +#: as.c:371 #, c-format msgid " --statistics print various measured statistics from execution\n" -msgstr " --statistics escribe varias estadísticas medidas de la ejecución\n" +msgstr " --statistics imprime varias estadísticas medidas de la ejecución\n" -#: as.c:352 +#: as.c:373 #, c-format msgid " --strip-local-absolute strip local absolute symbols\n" -msgstr " --strip-local-absolute descubrir símbolos locales absolutos\n" +msgstr " --strip-local-absolute elimina símbolos locales absolutos\n" -#: as.c:354 +#: as.c:375 #, c-format msgid " --traditional-format Use same format as native assembler when possible\n" msgstr " --traditional-format Usa el mismo formato que el ensamblador nativo en lo posible\n" -#: as.c:356 +#: as.c:377 #, c-format msgid " --version print assembler version number and exit\n" -msgstr " --version escribe el número de versión del ensamblador y termina\n" +msgstr " --version imprime el número de versión del ensamblador y termina\n" -#: as.c:358 +#: as.c:379 #, c-format -msgid " -W --no-warn suppress warnings\n" -msgstr " -W --no-warn suprime avisos\n" +msgid " -W, --no-warn suppress warnings\n" +msgstr " -W, --no-warn suprime avisos\n" -#: as.c:360 +#: as.c:381 #, c-format msgid " --warn don't suppress warnings\n" msgstr " --warn no suprime avisos\n" -#: as.c:362 +#: as.c:383 #, c-format msgid " --fatal-warnings treat warnings as errors\n" msgstr " --fatal-warnings trata los avisos como errores\n" -#: as.c:365 +#: as.c:385 +#, c-format +msgid " --no-info suppress information messages\n" +msgstr " --no-info suprime mensajes de información\n" + +#: as.c:387 +#, c-format +msgid " --info don't suppress information messages\n" +msgstr " --info no suprime mensajes de información\n" + +#: as.c:390 #, c-format msgid "" " --itbl INSTTBL extend instruction set to include instructions\n" @@ -357,22 +428,22 @@ msgstr "" " instrucciones que coincidan con las especificaciones\n" " definidas en el fichero INSTTBL\n" -#: as.c:369 +#: as.c:394 #, c-format msgid " -w ignored\n" msgstr " -w se descarta\n" -#: as.c:371 +#: as.c:396 #, c-format msgid " -X ignored\n" msgstr " -X se descarta\n" -#: as.c:373 +#: as.c:398 #, c-format msgid " -Z generate object file even after errors\n" -msgstr " -Z generar fichero objeto par tras errores\n" +msgstr " -Z genera fichero objeto incluso si hay errores\n" -#: as.c:375 +#: as.c:400 #, c-format msgid "" " --listing-lhs-width set the width in words of the output data column of\n" @@ -381,7 +452,7 @@ msgstr "" " --listing-lhs-width establece la anchura en palabras de la columna de\n" " datos de salida en el listado\n" -#: as.c:378 +#: as.c:403 #, c-format msgid "" " --listing-lhs-width2 set the width in words of the continuation lines\n" @@ -393,7 +464,7 @@ msgstr "" " descarta si es más pequeño que la anchura de la\n" " primera línea\n" -#: as.c:382 +#: as.c:407 #, c-format msgid "" " --listing-rhs-width set the max width in characters of the lines from\n" @@ -402,7 +473,7 @@ msgstr "" " --listing-rhs-width establece la anchura máxima en caracteres de las\n" " líneas del fichero fuente\n" -#: as.c:385 +#: as.c:410 #, c-format msgid "" " --listing-cont-lines set the maximum number of continuation lines used\n" @@ -412,33 +483,48 @@ msgstr "" " utilizadas para la columna de datos de salida del\n" " listado\n" -#: as.c:388 +#: as.c:413 #, c-format msgid " @FILE read options from FILE\n" -msgstr " @FICHERO lee casillas del FICHERO\n" +msgstr " @FICHERO lee las opciones de FICHERO\n" -#: as.c:396 +#: as.c:421 #, c-format msgid "Report bugs to %s\n" msgstr "Comunica defectos a %s\n" -#: as.c:616 +#: as.c:647 +#, c-format +msgid "unrecognized option `-%c%s'" +msgstr "opción no reconocida `-%c%s'" + +#: as.c:649 +#, c-format +msgid "unrecognized option `--%s=%s'" +msgstr "opción no reconocida `--%s=%s'" + +#: as.c:651 #, c-format -msgid "unrecognized option -%c%s" -msgstr "opción no reconocida -%c%s" +msgid "unrecognized option `--%s'" +msgstr "opción no reconocida `--%s'" + +#: as.c:701 +#, c-format +msgid "unexpected argument to --multibyte-input-option: '%s'" +msgstr "argumento inesperado para --multibyte-input-option: '%s'" #. This output is intended to follow the GNU standards document. -#: as.c:658 +#: as.c:706 #, c-format msgid "GNU assembler %s\n" -msgstr "Ensamblador %s de GNU\n" +msgstr "Ensamblador GNU %s\n" -#: as.c:659 +#: as.c:707 #, c-format -msgid "Copyright (C) 2018 Free Software Foundation, Inc.\n" -msgstr "© 2018 Free Software Foundation, Inc.\n" +msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2025 Free Software Foundation, Inc.\n" -#: as.c:660 +#: as.c:708 #, c-format msgid "" "This program is free software; you may redistribute it under the terms of\n" @@ -449,7 +535,7 @@ msgstr "" "la Licencia Pública General de GNU versión 3 o posterior.\n" "Este programa no tiene ninguna garantía.\n" -#: as.c:665 +#: as.c:713 #, c-format msgid "" "This assembler was configured for a target of `%s' and default,\n" @@ -458,116 +544,150 @@ msgstr "" "Este ensamblador fue configurado para un objetivo de «%s» y por omisión,\n" "tipo «%s» de cpu.\n" -#: as.c:669 +#: as.c:717 #, c-format msgid "This assembler was configured for a target of `%s'.\n" msgstr "Este ensamblador se configuró para un objetivo «%s».\n" -#: as.c:677 +#: as.c:725 msgid "multiple emulation names specified" msgstr "se especificaron múltiples nombres de emulación" -#: as.c:679 +#: as.c:727 msgid "emulations not handled in this configuration" msgstr "las emulaciones no se manejan en esta configuración" -#: as.c:684 +#: as.c:732 #, c-format msgid "alias = %s\n" msgstr "alias = %s\n" -#: as.c:685 +#: as.c:733 #, c-format msgid "canonical = %s\n" msgstr "canónico = %s\n" -#: as.c:686 +#: as.c:734 #, c-format msgid "cpu-type = %s\n" msgstr "tipo-cpu = %s\n" -#: as.c:688 +#: as.c:736 #, c-format msgid "format = %s\n" msgstr "formato = %s\n" -#: as.c:691 +#: as.c:739 #, c-format msgid "bfd-target = %s\n" msgstr "objetivo-bfd = %s\n" -#: as.c:708 +#: as.c:750 +msgid "--compress-debug-sections=zstd: gas is not built with zstd support" +msgstr "--compress-debug-sections=zstd: gas no está construido con soporte zstd" + +#: as.c:754 #, c-format msgid "Invalid --compress-debug-sections option: `%s'" -msgstr "Opción invalida --compress-debug-sections: «%s»" +msgstr "Opción no valida de --compress-debug-sections: «%s»" -#: as.c:711 +#: as.c:757 #, c-format msgid "--compress-debug-sections=%s is unsupported" -msgstr "--compress-debug-sections=%s no es compatible" +msgstr "--compress-debug-sections=%s no está disponible" -#: as.c:736 +#: as.c:782 msgid "bad defsym; format is --defsym name=value" -msgstr "defsym equivocado; el formato es --defsym nombre=valor" +msgstr "defsym incorrecto; el formato es --defsym nombre=valor" -#: as.c:756 +#: as.c:800 msgid "no file name following -t option" msgstr "no hay un nombre de fichero a continuación de la opción -t" -#: as.c:771 +#: as.c:809 #, c-format msgid "failed to read instruction table %s\n" -msgstr "falló al leer la distribución de instrucciones %s\n" +msgstr "fallo al leer la table de instrucciones %s\n" -#: as.c:887 +#: as.c:831 +#, c-format +msgid "unknown DWARF option %s\n" +msgstr "Opción DWARF desconocida %s\n" + +#: as.c:833 +#, c-format +msgid "unknown option `%s'" +msgstr "opción desconocida «%s»" + +#: as.c:890 +#, c-format +msgid "Invalid --gdwarf-cie-version `%s'" +msgstr "Opción no válida de --gdwarf-cie-version «%s»" + +#: as.c:990 +#, c-format +msgid "Invalid --scfi= option: `%s'; suggested option: experimental" +msgstr "Opción no válida de --scfi= : «%s»; se sugiere esta opción: xperimental" + +#: as.c:1001 #, c-format msgid "Invalid --size-check= option: `%s'" -msgstr "Invalida opción --size-check=: «%s»" +msgstr "Opción no válida de --size-check=: «%s»" -#: as.c:896 +#: as.c:1010 #, c-format msgid "Invalid --elf-stt-common= option: `%s'" -msgstr "Invalida opción no reconocida --elf-stt-common «%s»" +msgstr "Opción no válida de --elf-stt-common=: «%s»" -#: as.c:969 +#: as.c:1024 #, c-format -msgid "invalid listing option `%c'" -msgstr "invalida listado de opción `%c'" +msgid "Invalid --generate-missing-build-notes option: `%s'" +msgstr "Opción no valida de --generate-missing-build-notes: «%s»" -#: as.c:1022 -msgid "--hash-size needs a numeric argument" -msgstr "--hash-size necesita un argumento numérico" +#: as.c:1102 +#, c-format +msgid "invalid listing option `%c'" +msgstr "opción de listado no válida `%c'" -#: as.c:1044 +#: as.c:1165 #, c-format msgid "%s: total time in assembly: %ld.%06ld\n" msgstr "%s: tiempo total en ensamblado: %ld.%06ld\n" -#: as.c:1325 +#: as.c:1263 +msgid "libbfd ABI mismatch" +msgstr "ABI de libbfd no coincidente" + +#: as.c:1427 +#, c-format +msgid "The input '%s' and output '%s' files are the same" +msgstr "Los ficheros de entrada «%s» y de salida «%s» son el mismo" + +#: as.c:1480 #, c-format msgid "%d warning" msgid_plural "%d warnings" msgstr[0] "%d aviso" msgstr[1] "%d avisos" -#: as.c:1327 +#: as.c:1482 #, c-format msgid "%d error" msgid_plural "%d errors" msgstr[0] "%d error" msgstr[1] "%d errores" -#: as.c:1331 +#: as.c:1486 #, c-format msgid "%s, treating warnings as errors" -msgstr "%s , tratando avisos como errores" +msgstr "%s , se tratan los avisos como errores" -#: as.c:1342 +#: as.c:1497 #, c-format msgid "%s, %s, generating bad object file\n" -msgstr "%s, %s, generando fichero objeto equivocado\n" +msgstr "%s, %s, generando fichero objeto incorrecto\n" -#: as.h:173 +#: as.h:134 #, c-format msgid "Case value %ld unexpected at line %d of file \"%s\"\n" msgstr "Valor de case %ld inesperado en la línea %d del fichero «%s»\n" @@ -576,528 +696,622 @@ msgstr "Valor de case %ld inesperado en la línea %d del fichero «%s»\n" #. * We have a GROSS internal error. #. * This should never happen. #. -#: atof-generic.c:418 config/tc-m68k.c:3582 +#: atof-generic.c:456 config/tc-m68k.c:3485 msgid "failed sanity check" -msgstr "falló la prueba de sanidad" - -#: cgen.c:107 config/tc-alpha.c:2099 config/tc-alpha.c:2123 -#: config/tc-arc.c:4013 config/tc-arc.c:4087 config/tc-d10v.c:550 -#: config/tc-d30v.c:537 config/tc-mn10200.c:1098 config/tc-mn10300.c:1752 -#: config/tc-ppc.c:2987 config/tc-ppc.c:3173 config/tc-ppc.c:3438 -#: config/tc-s390.c:1323 config/tc-s390.c:1446 config/tc-s390.c:1584 -#: config/tc-v850.c:2538 config/tc-v850.c:2609 config/tc-v850.c:2656 -#: config/tc-v850.c:2693 config/tc-v850.c:2730 config/tc-v850.c:2993 +msgstr "la inspección sanitaria ha fallado" + +#: cgen.c:106 config/tc-alpha.c:2097 config/tc-alpha.c:2121 +#: config/tc-arc.c:4075 config/tc-arc.c:4148 config/tc-d10v.c:550 +#: config/tc-d30v.c:534 config/tc-mn10200.c:1093 config/tc-mn10300.c:1753 +#: config/tc-ppc.c:3954 config/tc-s390.c:1824 config/tc-v850.c:2530 +#: config/tc-v850.c:2601 config/tc-v850.c:2648 config/tc-v850.c:2685 +#: config/tc-v850.c:2722 config/tc-v850.c:2986 msgid "too many fixups" -msgstr "demasiadas composturas" +msgstr "demasiadas reparaciones" -#: cgen.c:372 cgen.c:392 config/tc-d10v.c:461 config/tc-d30v.c:453 -#: config/tc-i370.c:2127 config/tc-mn10200.c:1040 config/tc-mn10300.c:1677 -#: config/tc-ppc.c:3029 config/tc-s390.c:1307 config/tc-v850.c:2647 -#: config/tc-v850.c:2681 config/tc-v850.c:2721 config/tc-v850.c:2966 -#: config/tc-z80.c:446 +#: cgen.c:371 cgen.c:393 config/tc-d10v.c:461 config/tc-d30v.c:450 +#: config/tc-mn10200.c:1035 config/tc-mn10300.c:1678 config/tc-ppc.c:3483 +#: config/tc-v850.c:2639 config/tc-v850.c:2673 config/tc-v850.c:2713 +#: config/tc-v850.c:2959 config/tc-z80.c:785 msgid "illegal operand" msgstr "operando ilegal" -#: cgen.c:396 config/tc-avr.c:899 config/tc-d10v.c:463 config/tc-d30v.c:455 -#: config/tc-h8300.c:502 config/tc-i370.c:2129 config/tc-mcore.c:661 -#: config/tc-microblaze.c:609 config/tc-mmix.c:495 config/tc-mn10200.c:1043 -#: config/tc-mn10300.c:1680 config/tc-msp430.c:417 config/tc-ppc.c:3031 -#: config/tc-s390.c:1312 config/tc-sh.c:1385 config/tc-sh64.c:2214 -#: config/tc-v850.c:2651 config/tc-v850.c:2685 config/tc-v850.c:2725 -#: config/tc-v850.c:2969 config/tc-xgate.c:895 config/tc-z80.c:557 +#: cgen.c:397 config/tc-avr.c:910 config/tc-d10v.c:463 config/tc-d30v.c:452 +#: config/tc-h8300.c:495 config/tc-mcore.c:662 config/tc-microblaze.c:585 +#: config/tc-mmix.c:485 config/tc-mn10200.c:1038 config/tc-mn10300.c:1681 +#: config/tc-msp430.c:417 config/tc-ppc.c:3485 config/tc-sh.c:988 +#: config/tc-v850.c:2643 config/tc-v850.c:2677 config/tc-v850.c:2717 +#: config/tc-v850.c:2962 config/tc-xgate.c:895 config/tc-z80.c:933 #: config/tc-z8k.c:349 msgid "missing operand" -msgstr "ausente operando" +msgstr "falta operando" -#: cgen.c:767 +#: cgen.c:774 msgid "a reloc on this operand implies an overflow" -msgstr "una reubicación en este operando implica un desbordamiento" +msgstr "la reubicación de este operando implica desbordamiento" -#: cgen.c:790 +#: cgen.c:797 msgid "operand mask overflow" msgstr "desbordamiento de máscara de operando" -#. We can't actually support subtracting a symbol. -#: cgen.c:851 config/tc-arm.c:1776 config/tc-arm.c:10346 config/tc-arm.c:10398 -#: config/tc-arm.c:10656 config/tc-arm.c:11493 config/tc-arm.c:12630 -#: config/tc-arm.c:12670 config/tc-arm.c:13013 config/tc-arm.c:13054 -#: config/tc-arm.c:17513 config/tc-arm.c:17554 config/tc-avr.c:1550 -#: config/tc-avr.c:1562 config/tc-avr.c:1826 config/tc-cris.c:4067 -#: config/tc-d10v.c:1507 config/tc-d30v.c:1912 config/tc-ft32.c:574 -#: config/tc-ft32.c:587 config/tc-mips.c:9438 config/tc-mips.c:10743 -#: config/tc-mips.c:11999 config/tc-mips.c:12658 config/tc-nds32.c:6587 -#: config/tc-pru.c:747 config/tc-pru.c:757 config/tc-spu.c:957 -#: config/tc-spu.c:981 config/tc-tilegx.c:1485 config/tc-tilepro.c:1346 -#: config/tc-v850.c:3451 config/tc-vax.c:282 config/tc-xstormy16.c:482 -#: config/tc-xtensa.c:5949 config/tc-xtensa.c:13095 +#: cgen.c:860 config/tc-arm.c:2042 config/tc-arm.c:11126 config/tc-arm.c:11178 +#: config/tc-arm.c:11466 config/tc-arm.c:12364 config/tc-arm.c:13513 +#: config/tc-arm.c:13553 config/tc-arm.c:13926 config/tc-arm.c:13968 +#: config/tc-arm.c:21213 config/tc-arm.c:21273 config/tc-mips.c:9707 +#: config/tc-mips.c:11025 config/tc-mips.c:12322 config/tc-mips.c:13003 +#: config/tc-spu.c:980 config/tc-xtensa.c:13107 msgid "expression too complex" msgstr "expresión demasiado compleja" -#: cgen.c:950 config/tc-ppc.c:7027 config/tc-s390.c:2365 config/tc-v850.c:3503 -#: config/tc-xstormy16.c:539 +#: cgen.c:961 config/tc-ppc.c:7491 config/tc-s390.c:2602 config/tc-v850.c:3492 +#: config/tc-xstormy16.c:541 msgid "unresolved expression that must be resolved" msgstr "expresión sin resolver que se debe resolver" -#: cgen.c:975 config/tc-xstormy16.c:564 +#: cgen.c:986 config/tc-bpf.c:884 config/tc-xstormy16.c:566 #, c-format msgid "internal error: can't install fix for reloc type %d (`%s')" -msgstr "error interno: no se puede instalar la compostura para el tipo reubicado %d («%s»)" +msgstr "error interno: no se puede instalar la reparación para el tipo reubicado %d («%s»)" -#: cgen.c:1026 config/tc-nios2.c:1360 config/tc-pru.c:788 +#: cgen.c:1039 config/tc-bpf.c:368 config/tc-pru.c:786 msgid "relocation is not supported" msgstr "no se admite la reubicación" -#: cond.c:82 +#: codeview.c:435 +#, c-format +msgid "could not open %s for reading" +msgstr "no se ha podido abrir %s para lectura" + +#: codeview.c:440 +msgid "md5_stream failed" +msgstr "md5_stream ha fallado" + +#: codeview.c:548 +msgid "value cannot be expressed as a .cv_scomp" +msgstr "el valor no puede expresarse como un .cv_scomp" + +#: codeview.c:556 +msgid "value cannot be expressed as a .cv_ucomp" +msgstr "el valor no puede expresarse como un .cv_ucomp" + +#: cond.c:84 msgid "invalid identifier for \".ifdef\"" msgstr "identificador inválido para \".ifdef\"" -#: cond.c:149 +#: cond.c:151 msgid "non-constant expression in \".if\" statement" -msgstr "expresión en declaración \".if\" no constante" +msgstr "expresión no constante en sentencia \".if\"" -#: cond.c:276 +#: cond.c:279 msgid "bad format for ifc or ifnc" -msgstr "formato equivocado para ifc ó ifnc" +msgstr "formato incorrecto para ifc ó ifnc" -#: cond.c:306 +#: cond.c:310 msgid "\".elseif\" without matching \".if\"" -msgstr "\".elseif\" sin coincidir con \".if\"" +msgstr "\".elseif\" sin su correspondiente \".if\"" -#: cond.c:310 +#: cond.c:314 msgid "\".elseif\" after \".else\"" -msgstr "\".elseif\" tras \".else\"" +msgstr "\".elseif\" después de \".else\"" -#: cond.c:313 cond.c:419 +#: cond.c:317 cond.c:423 msgid "here is the previous \".else\"" msgstr "aquí está el anterior \".else\"" -#: cond.c:316 cond.c:422 +#: cond.c:320 cond.c:426 msgid "here is the previous \".if\"" msgstr "aquí está el anterior \".if\"" -#: cond.c:345 +#: cond.c:349 msgid "non-constant expression in \".elseif\" statement" -msgstr "expresión no constante en \".elseif\" declarado" +msgstr "expresión no constante en sentencia \".elseif\"" -#: cond.c:383 +#: cond.c:387 msgid "\".endif\" without \".if\"" msgstr "\".endif\" sin \".if\"" -#: cond.c:412 +#: cond.c:416 msgid "\".else\" without matching \".if\"" -msgstr "\".else\" sin coincidir un \".if\"" +msgstr "\".else\" sin su correspondiente \".if\"" -#: cond.c:416 +#: cond.c:420 msgid "duplicate \".else\"" -msgstr "duplica \".else\"" +msgstr "\".else\" duplicado" -#: cond.c:467 +#: cond.c:471 msgid ".ifeqs syntax error" -msgstr "error sintáctico en .ifeqs" +msgstr "error de sintaxis en .ifeqs" -#: cond.c:548 +#: cond.c:559 msgid "end of macro inside conditional" msgstr "fin de macro dentro de un condicional" -#: cond.c:550 +#: cond.c:561 msgid "end of file inside conditional" msgstr "final de fichero dentro de un condicional" -#: cond.c:553 +#: cond.c:565 msgid "here is the start of the unterminated conditional" -msgstr "aquí es el inicio del condicional sin terminar" +msgstr "aquí está el comienzo del condicional sin terminar" -#: cond.c:557 +#: cond.c:569 msgid "here is the \"else\" of the unterminated conditional" msgstr "aquí está el \"else\" del condicional sin terminar" -#: config/atof-ieee.c:139 +#: config/atof-ieee.c:148 msgid "cannot create floating-point number" msgstr "no se puede crear el número de coma flotante" -#: config/atof-ieee.c:286 -msgid "NaNs are not supported by this target\n" -msgstr "No se admiten NaNs en este objetivo\n" +#: config/atof-ieee.c:335 +msgid "NaNs are not supported by this target" +msgstr "No se admiten NaNs en este objetivo" + +#: config/atof-ieee.c:354 +msgid "NaN flavors are not supported by this target" +msgstr "No se admiten variantes de NaNs en este objetivo" -#: config/atof-ieee.c:325 config/atof-ieee.c:366 -msgid "Infinities are not supported by this target\n" -msgstr "No se admiten infinitos en este objetivo\n" +#: config/atof-ieee.c:392 +msgid "Infinities are not supported by this target" +msgstr "No se admiten infinitos en este objetivo" -#: config/atof-ieee.c:781 config/atof-vax.c:449 config/tc-arm.c:1152 -#: config/tc-ia64.c:11608 config/tc-tic30.c:1263 config/tc-tic4x.c:2585 +#: config/atof-ieee.c:825 config/atof-vax.c:449 config/tc-arm.c:1271 +#: config/tc-ia64.c:11573 config/tc-tic30.c:1241 config/tc-tic4x.c:2569 msgid "Unrecognized or unsupported floating point constant" msgstr "No reconoce o no admite constante de coma flotante" #: config/obj-aout.c:81 #, c-format msgid "Attempt to put a common symbol into set %s" -msgstr "Intentaba poner un símbolo común en el conjunto %s" +msgstr "Intento de poner un símbolo común en el conjunto %s" #: config/obj-aout.c:85 #, c-format msgid "Attempt to put an undefined symbol into set %s" -msgstr "Intentaba poner un símbolo indefinido en el conjunto %s" +msgstr "Intento de poner un símbolo indefinido en el conjunto %s" -#: config/obj-aout.c:112 config/obj-coff.c:1382 +#: config/obj-aout.c:112 config/obj-coff.c:1378 #, c-format msgid "Symbol `%s' can not be both weak and common" msgstr "El símbolo «%s» no puede ser débil y común al mismo tiempo" -#: config/obj-coff.c:135 dw2gencfi.c:334 -#, c-format -msgid "Inserting \"%s\" into structure table failed: %s" -msgstr "Falló la inserción de «%s» en la distribución de estructuras: %s" - -#: config/obj-coff.c:214 config/obj-coff.c:1681 config/tc-ppc.c:5647 -#: config/tc-tic54x.c:3980 read.c:2960 +#: config/obj-coff.c:206 config/obj-coff.c:1693 config/tc-tic54x.c:4002 +#: read.c:3047 #, c-format msgid "error setting flags for \"%s\": %s" -msgstr "error al establecer las casillas para «%s»: %s" +msgstr "error al establecer las opciones para «%s»: %s" #. Zero is used as an end marker in the file. -#: config/obj-coff.c:435 +#: config/obj-coff.c:424 msgid "Line numbers must be positive integers\n" msgstr "Los números de línea deben ser enteros positivos\n" -#: config/obj-coff.c:467 +#: config/obj-coff.c:456 msgid ".ln pseudo-op inside .def/.endef: ignored." -msgstr ".ln como pseudo-operador dentro de .def/.endef: se descarta." +msgstr "pseudo-operador .ln dentro de .def/.endef: se descarta." -#: config/obj-coff.c:509 ecoff.c:3245 +#: config/obj-coff.c:497 ecoff.c:3232 msgid ".loc outside of .text" msgstr ".loc fuera de .text" -#: config/obj-coff.c:516 +#: config/obj-coff.c:504 msgid ".loc pseudo-op inside .def/.endef: ignored." msgstr "pseudo-operador .loc dentro de .def/.endef: se descarta." -#: config/obj-coff.c:596 +#: config/obj-coff.c:584 msgid ".def pseudo-op used inside of .def/.endef: ignored." msgstr "se usó el pseudo-operador .def dentro de .def/.endef: se descarta." -#: config/obj-coff.c:629 +#: config/obj-coff.c:617 msgid ".endef pseudo-op used outside of .def/.endef: ignored." msgstr "se usó el pseudo-operador .endef fuera de .def/.endef: se descarta." -#: config/obj-coff.c:668 +#: config/obj-coff.c:656 #, c-format msgid "`%s' symbol without preceding function" -msgstr "símbolo «%s» sin una función precedente" +msgstr "símbolo «%s» sin función que lo preceda" -#: config/obj-coff.c:755 +#: config/obj-coff.c:743 #, c-format msgid "unexpected storage class %d" msgstr "clase de almacenamiento %d inesperada" -#: config/obj-coff.c:863 +#: config/obj-coff.c:850 msgid ".dim pseudo-op used outside of .def/.endef: ignored." msgstr "se usó el pseudo-operador .dim fuera de .def/.endef: se descarta." -#: config/obj-coff.c:883 +#: config/obj-coff.c:870 msgid "badly formed .dim directive ignored" -msgstr "se descarta la directiva .dim formada equivocadamente" +msgstr "se descarta la directiva .dim formada incorrectamente" -#: config/obj-coff.c:932 +#: config/obj-coff.c:919 msgid ".size pseudo-op used outside of .def/.endef: ignored." -msgstr "se utiliza el pseudo-operador .size fuera de .def/.endef: descartado." +msgstr "pseudo-operador .size utilizado fuera de .def/.endef: descartado." -#: config/obj-coff.c:947 +#: config/obj-coff.c:934 msgid ".scl pseudo-op used outside of .def/.endef: ignored." -msgstr "se utiliza el pseudo-operador .scl fuera de .def/.endef: descartado." +msgstr "pseudo-operador .scl utilizado fuera de .def/.endef: descartado." -#: config/obj-coff.c:964 +#: config/obj-coff.c:951 msgid ".tag pseudo-op used outside of .def/.endef: ignored." -msgstr "se utiliza el pseudo-operador .tag fuera de .def/.endef; descartado." +msgstr "pseudo-operador .tag utilizado fuera de .def/.endef; descartado." -#: config/obj-coff.c:981 +#: config/obj-coff.c:968 #, c-format msgid "tag not found for .tag %s" -msgstr "no se encontró una marca para .tag %s" +msgstr "no se encontró etiqueta para .tag %s" -#: config/obj-coff.c:994 +#: config/obj-coff.c:981 msgid ".type pseudo-op used outside of .def/.endef: ignored." -msgstr "se utiliza el pseudo-operador .type fuera de .def/.endef; descartado." +msgstr "pseudo-operador .type utilizado fuera de .def/.endef; descartado." -#: config/obj-coff.c:1013 +#: config/obj-coff.c:1000 msgid ".val pseudo-op used outside of .def/.endef: ignored." -msgstr "se utiliza el pseudo-operador .val fuera de .def/.endef; descartado." +msgstr "pseudo-operador .val utilizado fuera de .def/.endef; descartado." -#: config/obj-coff.c:1160 +#: config/obj-coff.c:1147 msgid "badly formed .weak directive ignored" -msgstr "se descarta la directiva .weak formada equivocadamente" +msgstr "se descarta la directiva .weak formada incorrectamente" -#: config/obj-coff.c:1338 +#: config/obj-coff.c:1334 msgid "mismatched .eb" msgstr ".eb sin coincidencia" -#: config/obj-coff.c:1361 +#: config/obj-coff.c:1357 #, c-format msgid "C_EFCN symbol for %s out of scope" -msgstr "C_EFCN comoo símbolo para %s fuera de ámbito" +msgstr "símbolo C_EFCN para %s fuera de ámbito" -#: config/obj-coff.c:1415 +#: config/obj-coff.c:1412 #, c-format msgid "Warning: internal error: forgetting to set endndx of %s" -msgstr "Aviso: error interno: se olvida definir endndx de %s" +msgstr "Aviso: error interno: se olvida establecer el endndx de %s" #. STYP_INFO #. STYP_LIB #. STYP_OVER -#: config/obj-coff.c:1646 +#: config/obj-coff.c:1655 #, c-format msgid "unsupported section attribute '%c'" -msgstr "no se admite el atributo seccional '%c'" +msgstr "no se admite el atributo de sección '%c'" -#: config/obj-coff.c:1650 config/tc-ppc.c:5629 +#: config/obj-coff.c:1659 #, c-format msgid "unknown section attribute '%c'" -msgstr "desconoce atributo seccional '%c'" +msgstr "atributo de sección desconocido '%c'" -#: config/obj-coff.c:1693 config/obj-macho.c:267 +#: config/obj-coff.c:1705 config/obj-macho.c:269 #, c-format msgid "Ignoring changed section attributes for %s" -msgstr "Se descartan los atributos seccional cambiados para %s" +msgstr "Se descartan los atributos sección cambiados para %s" -#: config/obj-coff.c:1831 +#: config/obj-coff.c:1849 #, c-format msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n" msgstr "0x%lx: «%s» tipo = %ld, clase = %d, segmento = %d\n" -#: config/obj-ecoff.c:124 +#: config/obj-ecoff.c:125 msgid "Can't set GP value" msgstr "No se puede establecer el valor GP" -#: config/obj-ecoff.c:131 +#: config/obj-ecoff.c:132 msgid "Can't set register masks" msgstr "No se pueden establecer las máscaras de registro" -#: config/obj-elf.c:348 config/tc-sparc.c:4564 config/tc-v850.c:511 +#: config/obj-elf.c:272 config/tc-sparc.c:4383 config/tc-v850.c:508 #, c-format msgid "bad .common segment %s" -msgstr "segmento .common %s equivocado" +msgstr "segmento .common %s incorrecto" -#: config/obj-elf.c:424 +#: config/obj-elf.c:348 config/tc-aarch64.c:2278 config/tc-kvx.c:2235 msgid "Missing symbol name in directive" -msgstr "Ausente nombre simbólico en la directiva" +msgstr "Falta el nombre de símbolo en la directiva" -#: config/obj-elf.c:646 +#: config/obj-elf.c:678 #, c-format msgid "setting incorrect section type for %s" -msgstr "se establece un tipo seccional incorrecto para %s" +msgstr "se establece un tipo de sección incorrecto para %s" -#: config/obj-elf.c:651 +#: config/obj-elf.c:683 #, c-format msgid "ignoring incorrect section type for %s" -msgstr "se descarta el tipo seccional incorrecto para %s" +msgstr "se descarta el tipo de sección incorrecto para %s" -#: config/obj-elf.c:702 +#: config/obj-elf.c:742 #, c-format msgid "setting incorrect section attributes for %s" -msgstr "se establecen atributos seccional incorrectos para %s" +msgstr "se establecen atributos de sección incorrectos para %s" -#: config/obj-elf.c:713 +#. This is a special section with known type. User +#. assembly might get the section type wrong; Even high +#. profile projects like glibc have done so in the past. +#. So don't error in this case. +#: config/obj-elf.c:836 #, c-format -msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s" -msgstr "SHF_ALLOC no está establecido para sección GNU_MBIND: %s" +msgid "ignoring changed section type for %s" +msgstr "se descarta el tipo de sección cambiado para %s" -#: config/obj-elf.c:762 +#. Do error when assembly isn't self-consistent. +#: config/obj-elf.c:839 #, c-format -msgid "ignoring changed section type for %s" -msgstr "se descarta el tipo seccional cambiado para %s" +msgid "changed section type for %s" +msgstr "tipo de sección cambiado para %s" -#: config/obj-elf.c:774 +#: config/obj-elf.c:854 #, c-format msgid "ignoring changed section attributes for %s" -msgstr "se descartan los atributos seccional cambiados para %s" +msgstr "se descartan los atributos de sección cambiados para %s" + +#: config/obj-elf.c:856 +#, c-format +msgid "changed section attributes for %s" +msgstr "atributos de sección cambiados para %s" -#: config/obj-elf.c:781 +#: config/obj-elf.c:865 #, c-format -msgid "ignoring changed section entity size for %s" -msgstr "se descarta el tamaño de entidad seccional cambiado para %s" +msgid "changed section entity size for %s" +msgstr "tamaño de entidad de sección cambiado para %s" -#: config/obj-elf.c:845 -msgid "unrecognized .section attribute: want a,e,w,x,M,S,G,T or number" -msgstr "no reconocido atributo .section: requiere a,e,w,x,M,S,G,T o número" +#: config/obj-elf.c:947 +msgid "unrecognized .section attribute: want a,e,o,w,x,M,S,G,T or number" +msgstr "atributo de .section no reconocido: se desea a,e,o,w,x,M,S,G,T o número" -#: config/obj-elf.c:905 +#: config/obj-elf.c:1033 msgid "extraneous characters at end of numeric section type" -msgstr "extraños caracteres al final de tipo seccional numérico" +msgstr "caracteres extraños al final de tipo de sección numérico" -#: config/obj-elf.c:911 read.c:2944 +#: config/obj-elf.c:1039 read.c:3031 msgid "unrecognized section type" -msgstr "no reconocido el tipo seccional" +msgstr "tipo de sección no reconocido" -#: config/obj-elf.c:943 +#: config/obj-elf.c:1064 msgid "unrecognized section attribute" -msgstr "no reconocido el atributo seccional" +msgstr "atributo de sección no reconocido" -#: config/obj-elf.c:974 config/tc-alpha.c:4208 +#: config/obj-elf.c:1096 config/tc-alpha.c:4208 msgid "missing name" -msgstr "ausente nombre" +msgstr "falta el nombre" + +#: config/obj-elf.c:1166 +msgid "group name not parseable" +msgstr "nombre de grupo no analizable" + +#: config/obj-elf.c:1173 +#, c-format +msgid "section %s already has a group (%s)" +msgstr "la sección %s ya tiene un grupo (%s)" + +#: config/obj-elf.c:1226 +#, c-format +msgid "section name '%s' already defined as another symbol" +msgstr "el nombre de sección «%s» ya está definido como otro símbolo" + +#: config/obj-elf.c:1331 +msgid "invalid merge / string entity size" +msgstr "mezcla / tamaño de entidad de cadena no válido(s)" -#: config/obj-elf.c:1134 -msgid "invalid merge entity size" -msgstr "tamaño de entidad de mezcla inválido" +#: config/obj-elf.c:1345 +msgid "entity size for SHF_MERGE / SHF_STRINGS not specified" +msgstr "no se especificó el tamaño de entidad para SHF_MERGE / SHF_STRINGS" -#: config/obj-elf.c:1141 -msgid "entity size for SHF_MERGE not specified" -msgstr "no se especificó el tamaño de entidad para SHF_MERGE" +#: config/obj-elf.c:1350 +msgid "bogus SHF_MERGE / SHF_STRINGS for SHT_NOBITS section" +msgstr "SHF_MERGE / SHF_STRINGS falso para sección SHT_NOBITS" -#: config/obj-elf.c:1147 +#: config/obj-elf.c:1391 msgid "? section flag ignored with G present" -msgstr "se descarta la opción seccional ? con G presente" +msgstr "se descarta la opción de sección ? con G presente" -#: config/obj-elf.c:1171 +#: config/obj-elf.c:1428 msgid "group name for SHF_GROUP not specified" -msgstr "no se especificó el tamaño de entidad para SHF_GROUP" +msgstr "no se especificó el nombre de grupo para SHF_GROUP" -#: config/obj-elf.c:1196 +#: config/obj-elf.c:1454 #, c-format msgid "unsupported mbind section info: %s" -msgstr "informe seccional mbind no admitido: %s" +msgstr "información de sección mbind no admitida: %s" + +#: config/obj-elf.c:1507 +#, c-format +msgid "unsupported section id: %s" +msgstr "id de sección: %s" -#: config/obj-elf.c:1211 +#: config/obj-elf.c:1533 msgid "character following name is not '#'" -msgstr "el carácter a continuación del nombre no es '#'" +msgstr "el carácter que sigue al nombre no es '#'" -#: config/obj-elf.c:1331 +#: config/obj-elf.c:1561 +#, c-format +msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s" +msgstr "SHF_ALLOC no está establecido para sección GNU_MBIND: %s" + +#: config/obj-elf.c:1568 +#, c-format +msgid "%s section is supported only by GNU and FreeBSD targets" +msgstr "la sección %s solo se admite en objetivos GNU y FreeBSD" + +#: config/obj-elf.c:1706 msgid ".previous without corresponding .section; ignored" msgstr ".previous sin .section correspondiente; se descarta" -#: config/obj-elf.c:1357 +#: config/obj-elf.c:1732 msgid ".popsection without corresponding .pushsection; ignored" msgstr ".popsection sin .pushsection correspondiente; se descarta" -#: config/obj-elf.c:1403 -msgid "expected comma after name in .symver" -msgstr "se esperaba una coma tras nombre en .symver" +#: config/obj-elf.c:1776 config/obj-elf.c:1870 +#, c-format +msgid "missing version name in `%s' for symbol `%s'" +msgstr "falta el nombre de versión en «%s» para el símbolo «%s»" -#: config/obj-elf.c:1419 config/obj-elf.c:2291 +#: config/obj-elf.c:1795 #, c-format -msgid "`%s' can't be versioned to common symbol '%s'" -msgstr "«%s» no puede ser versionado al símbolo común «%s»" +msgid "only one version name with `@@@' is allowed for symbol `%s'" +msgstr "solo se permite un nombre de versión con «@@@» para el símbolo «%s»" -#: config/obj-elf.c:1434 +#: config/obj-elf.c:1803 #, c-format -msgid "missing version name in `%s' for symbol `%s'" -msgstr "ausente el nombre de versión en «%s» para el símbolo «%s»" +msgid "invalid version name '%s' for symbol `%s'" +msgstr "nombre de versión «%s» no válido para el símbolo «%s»" -#: config/obj-elf.c:1445 +#: config/obj-elf.c:1844 +msgid "expected comma after name in .symver" +msgstr "se esperaba una coma tras el nombre en .symver" + +#: config/obj-elf.c:1861 config/obj-elf.c:2805 #, c-format -msgid "multiple versions [`%s'|`%s'] for symbol `%s'" -msgstr "versiones múltiples [«%s»|«%s»] para el símbolo «%s»" +msgid "`%s' can't be versioned to common symbol '%s'" +msgstr "«%s» no puede ser versionado al símbolo común «%s»" -#: config/obj-elf.c:1481 +#: config/obj-elf.c:1938 #, c-format msgid "expected `%s' to have already been set for .vtable_inherit" msgstr "se esperaba que «%s» ya estuviera definido para .vtable_inherit" -#: config/obj-elf.c:1491 +#: config/obj-elf.c:1948 msgid "expected comma after name in .vtable_inherit" -msgstr "se esperaba una coma tras nombre en .vtable_inherit" +msgstr "se esperaba una coma tras el nombre en .vtable_inherit" -#: config/obj-elf.c:1543 +#: config/obj-elf.c:2009 msgid "expected comma after name in .vtable_entry" -msgstr "se esperaba una coma tras nombre en .vtable_entry" +msgstr "se esperaba una coma tras el nombre en .vtable_entry" -#: config/obj-elf.c:1673 +#: config/obj-elf.c:2148 #, c-format msgid "Attribute name not recognised: %s" -msgstr "No reconocido el nombre del atributo: %s" +msgstr "Nombre de atributo no reconocido: %s" -#: config/obj-elf.c:1690 +#: config/obj-elf.c:2165 msgid "expected numeric constant" msgstr "se esperaba una constante numérica" -#: config/obj-elf.c:1699 config/tc-arm.c:6473 +#: config/obj-elf.c:2174 config/tc-arm.c:6970 msgid "expected comma" msgstr "se esperaba una coma" -#: config/obj-elf.c:1732 +#: config/obj-elf.c:2205 config/tc-arc.c:4946 config/tc-arc.c:4957 +#: config/tc-arc.c:5029 config/tc-arc.c:5080 config/tc-arm.c:32197 +#: config/tc-arm.c:32208 config/tc-csky.c:1697 config/tc-csky.c:1709 +#: config/tc-csky.c:1880 config/tc-mips.c:20645 config/tc-msp430.c:5148 +#: config/tc-riscv.c:5523 config/tc-riscv.c:5566 config/tc-sparc.c:1134 +#: config/tc-tic6x.c:4384 +#, c-format +msgid "error adding attribute: %s" +msgstr "error al añadir atributo: %s" + +#: config/obj-elf.c:2211 msgid "bad string constant" -msgstr "constante de cadena equivocada" +msgstr "constante de cadena incorrecta" -#: config/obj-elf.c:1736 +#: config/obj-elf.c:2215 msgid "expected <tag> , <value>" -msgstr "se esperaba <etiq> , <valor>" +msgstr "se esperaba <etiqueta> , <valor>" -#: config/obj-elf.c:1856 +#: config/obj-elf.c:2344 msgid "expected quoted string" msgstr "se esperaba una cadena entre comillas" -#: config/obj-elf.c:1876 +#: config/obj-elf.c:2364 #, c-format msgid "expected comma after name `%s' in .size directive" -msgstr "se esperaba una coma tras nombre «%s» en la directiva .size" +msgstr "se esperaba una coma tras el nombre «%s» en la directiva .size" -#: config/obj-elf.c:1885 +#: config/obj-elf.c:2373 msgid "missing expression in .size directive" -msgstr "ausentea expresión en la directiva .size" +msgstr "falta expresión en la directiva .size" -#: config/obj-elf.c:2008 +#: config/obj-elf.c:2500 #, c-format msgid "symbol '%s' is already defined" msgstr "el símbolo «%s» ya está definido" -#: config/obj-elf.c:2029 +#: config/obj-elf.c:2520 #, c-format msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets" -msgstr "el tipo simbólico «%s» sólo se admite en objetivos GNU y FreeBSD" +msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU y FreeBSD" -#: config/obj-elf.c:2041 +#: config/obj-elf.c:2524 +#, c-format +msgid "symbol type \"%s\" is not supported by MIPS targets" +msgstr "el tipo de símbolo «%s» no está disponible en objetivos MIPS" + +#: config/obj-elf.c:2536 #, c-format msgid "symbol type \"%s\" is supported only by GNU targets" -msgstr "el tipo simbólico «%s» sólo se admite en objetivos GNU" +msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU" -#: config/obj-elf.c:2052 +#: config/obj-elf.c:2546 config/tc-kvx.c:2279 #, c-format msgid "unrecognized symbol type \"%s\"" -msgstr "no reconocido el tipo simbólico «%s»" +msgstr "tipo de símbolo no reconocido «%s»" + +#: config/obj-elf.c:2567 +#, c-format +msgid "cannot change type of common symbol '%s'" +msgstr "no puede cambiersa el tipo del símbolo común «%s»" -#: config/obj-elf.c:2219 config/obj-elf.c:2222 +#: config/obj-elf.c:2579 +#, c-format +msgid "symbol '%s' already has its type set" +msgstr "el símbolo «%s» ya tiene su tipo establecido" + +#: config/obj-elf.c:2681 +#, c-format +msgid "undefined linked-to symbol `%s' on section `%s'" +msgstr "símbolo enlazado-a `%s' en la sección `%s'" + +#: config/obj-elf.c:2778 config/obj-elf.c:2781 #, c-format msgid ".size expression for %s does not evaluate to a constant" msgstr "la expresión .size para %s no evalúa a una constante" -#: config/obj-elf.c:2256 +#: config/obj-elf.c:2870 #, c-format -msgid "invalid attempt to declare external version name as default in symbol `%s'" -msgstr "intento inválido de declarar un nombre de versión externo como valor por defecto en el símbolo «%s»" +msgid "symbol '%s' with multiple versions cannot be used in relocation" +msgstr "el símbolo «%s» con varias versiones no puede utilizarse en una reubicación" -#: config/obj-elf.c:2325 ecoff.c:3600 +#: config/obj-elf.c:2888 ecoff.c:3576 #, c-format msgid "symbol `%s' can not be both weak and common" msgstr "el símbolo «%s» no puede ser débil y común al mismo tiempo" -#: config/obj-elf.c:2437 +#: config/obj-elf.c:2932 #, c-format msgid "assuming all members of group `%s' are COMDAT" msgstr "se asume que todos los miembros del grupo «%s» son COMDAT" -#: config/obj-elf.c:2449 +#: config/obj-elf.c:2944 #, c-format msgid "can't create group: %s" -msgstr "no se puede crear un grupo: %s" +msgstr "no se puede crear el grupo: %s" + +#: config/obj-elf.c:3021 +#, c-format +msgid "invalid attempt to declare external version name as default in symbol `%s'" +msgstr "intento no válido de declarar un nombre de versión externo como predeterminado en el símbolo «%s»" -#: config/obj-elf.c:2603 +#: config/obj-elf.c:3031 +#, c-format +msgid "multiple versions [`%s'|`%s'] for symbol `%s'" +msgstr "varias versiones [«%s»|«%s»] para el símbolo «%s»" + +#: config/obj-elf.c:3120 #, c-format msgid "failed to set up debugging information: %s" msgstr "falló al establecer la información de depuración: %s" -#: config/obj-elf.c:2623 +#: config/obj-elf.c:3140 #, c-format msgid "can't start writing .mdebug section: %s" msgstr "no se puede iniciar la escritura de la sección .mdebug: %s" -#: config/obj-elf.c:2631 +#: config/obj-elf.c:3148 #, c-format msgid "could not write .mdebug section: %s" msgstr "no se puede escribir la sección .mdebug: %s" -#: config/obj-evax.c:127 +#: config/obj-evax.c:122 #, c-format msgid "no entry symbol for global function '%s'" -msgstr "no hay símbolo entrante para función global «%s»" +msgstr "no hay símbolo de entrada para la función global «%s»" #. make a temp string. #: config/obj-macho.c:119 @@ -1108,7 +1322,15 @@ msgstr "el nombre %s «%s» es demasiado largo (máximo 16 caracteres)" #: config/obj-macho.c:130 #, c-format msgid "expected a %s name followed by a `,'" -msgstr "esperaba una nombre %s seguido por una `,'" +msgstr "se esperaba un nombre de %s seguido por una `,'" + +#: config/obj-macho.c:144 +msgid "segment" +msgstr "segmento" + +#: config/obj-macho.c:153 +msgid "section" +msgstr "sección" #: config/obj-macho.c:195 #, c-format @@ -1118,159 +1340,159 @@ msgstr "no se puede invalidar tipo de sección rellenado a cero para `%s,%s'" #: config/obj-macho.c:249 #, c-format msgid "failed to set flags for \"%s\": %s" -msgstr "fallaba al establecer marcas para «%s»: %s" +msgstr "no se han podido establecer las opciones para «%s»: %s" -#: config/obj-macho.c:340 +#: config/obj-macho.c:342 #, c-format msgid "unknown or invalid section type '%s'" -msgstr "tipo seccional inválido o desconocido '%s'" +msgstr "tipo de sección inválido o desconocido '%s'" -#: config/obj-macho.c:379 +#: config/obj-macho.c:381 #, c-format msgid "unknown or invalid section attribute '%s'" -msgstr "desconoce o invalida atributo seccional «%s»" +msgstr "atributo de sección desconocido o no válido «%s»" -#: config/obj-macho.c:400 +#: config/obj-macho.c:402 msgid "unexpected section size information" -msgstr "información inesperada de tamaño seccional" +msgstr "información inesperada de tamaño de sección" -#: config/obj-macho.c:412 +#: config/obj-macho.c:414 msgid "missing sizeof_stub expression" -msgstr "ausentea expresión sizeof_stub" +msgstr "falta expresión sizeof_stub" -#: config/obj-macho.c:476 config/tc-ia64.c:1083 config/tc-ia64.c:11770 -#: config/tc-score.c:6103 expr.c:1172 expr.c:1325 read.c:1715 +#: config/obj-macho.c:478 config/tc-ia64.c:1080 config/tc-ia64.c:11734 +#: config/tc-score.c:6073 expr.c:1260 read.c:1784 msgid "expected symbol name" -msgstr "se esperaba un nombre simbólico" +msgstr "se esperaba un nombre de símbolo" -#: config/obj-macho.c:489 read.c:494 +#: config/obj-macho.c:491 read.c:558 msgid "bad or irreducible absolute expression" -msgstr "expresión absoluta equivocada o irreducible" +msgstr "expresión absoluta incorrecta o irreducible" -#: config/obj-macho.c:495 config/tc-score.c:6120 read.c:1753 +#: config/obj-macho.c:497 config/tc-score.c:6090 read.c:1823 msgid "missing size expression" -msgstr "ausentea expresión de tamaño" +msgstr "falta expresión de tamaño" -#: config/obj-macho.c:504 config/tc-ia64.c:1118 read.c:1759 +#: config/obj-macho.c:506 config/tc-ia64.c:1115 read.c:1829 #, c-format msgid "size (%ld) out of range, ignored" -msgstr "tamaño (%ld) fuera de límite, se descarta" +msgstr "tamaño (%ld) fuera de rango, se descarta" -#: config/obj-macho.c:514 config/tc-score.c:6264 dwarf2dbg.c:954 ecoff.c:3359 -#: read.c:1771 read.c:1876 read.c:2627 read.c:3270 read.c:3649 symbols.c:340 -#: symbols.c:436 +#: config/obj-macho.c:516 config/tc-score.c:6216 dwarf2dbg.c:1431 ecoff.c:3345 +#: read.c:1841 read.c:1944 read.c:2718 read.c:3311 read.c:3906 symbols.c:579 +#: symbols.c:674 #, c-format msgid "symbol `%s' is already defined" msgstr "el símbolo «%s» ya está definido" -#: config/obj-macho.c:524 read.c:1786 +#: config/obj-macho.c:526 read.c:1856 #, c-format msgid "size of \"%s\" is already %ld; not changing to %ld" -msgstr "la longitud de «%s» ya es %ld; no se cambia a %ld" +msgstr "El tamaño de «%s» ya es %ld; no se va a cambiar a %ld" -#: config/obj-macho.c:535 +#: config/obj-macho.c:537 msgid "align value not recognized, using size" -msgstr "alineamiento valorada no reconocida, empleando tamaño" +msgstr "valor de alineamiento no reconocido; se usará el tamaño" -#: config/obj-macho.c:540 config/obj-macho.c:903 +#: config/obj-macho.c:542 config/obj-macho.c:905 #, c-format msgid "Alignment (%lu) too large: 15 assumed." -msgstr "Alineación (%lu) demasiado grande: asumido 15." +msgstr "Alineación (%lu) demasiado grande: se asume 15." -#: config/obj-macho.c:606 +#: config/obj-macho.c:608 #, c-format msgid "BFD is out of sync with GAS, unhandled well-known section type `%s'" -msgstr "BFD está fuera de sincronización con GAS, tipo seccional inmanipulado bien conocido `%s'" +msgstr "BFD está fuera de sincronización con GAS, tipo de sección conocido no manejado `%s'" -#: config/obj-macho.c:808 +#: config/obj-macho.c:810 #, c-format msgid "%s is not used for the selected target" -msgstr "%s no está utilizado para el objetivo seleccionado" +msgstr "%s no utilizado para el objetivo seleccionado" -#: config/obj-macho.c:873 +#: config/obj-macho.c:875 msgid "internal error: base section index out of range" -msgstr "error inteno: sección base indizado fuera de límite" +msgstr "error interno: índice de sección base fuera de rango" -#: config/obj-macho.c:959 +#: config/obj-macho.c:961 #, c-format msgid "internal error: bad file property ID %d" -msgstr "error interno: equivocación del ID propietaria de fichero %d" +msgstr "error interno: ID %d de propiedad de fichero incorrecto" -#: config/obj-macho.c:967 +#: config/obj-macho.c:969 msgid "failed to set subsections by symbols" -msgstr "fallado al obtener subsecciones por símbolos" +msgstr "no se han podido establecer subsecciones por símbolos" -#: config/obj-macho.c:1030 +#: config/obj-macho.c:1032 #, c-format msgid "'%s' previously declared as '%s'." -msgstr "«%s» previamente definido como «%s»." +msgstr "«%s» previamente declarado como «%s»." -#: config/obj-macho.c:1082 config/obj-macho.c:1402 config/obj-macho.c:1486 +#: config/obj-macho.c:1084 config/obj-macho.c:1404 config/obj-macho.c:1488 #, c-format msgid "'%s' can't be a weak_definition (currently only supported in sections of type coalesced)" -msgstr "" +msgstr "«%s» no puede ser una weak_definition (actualmente solo disponible en secciones de tipo fusionado)" -#: config/obj-macho.c:1167 +#: config/obj-macho.c:1169 msgid "use of .indirect_symbols requires `-dynamic'" -msgstr "utilice símbolos indirectos requiere `-dinamic'" +msgstr "el empleo de .indirect_symbols requiere `-dinamic'" -#: config/obj-macho.c:1184 +#: config/obj-macho.c:1186 #, c-format msgid "attempt to add an indirect_symbol to a stub or reference section with a zero-sized element at %s" -msgstr "trata añadir un símbolo indirecto (indirect_symbol) a un reguardo o sección referenciado con un elemento de tamaño cero en %s" +msgstr "intento de añadir un indirect_symbol a un «stub» o sección de referencia con un elemento de tamaño cero en %s" -#: config/obj-macho.c:1214 +#: config/obj-macho.c:1216 msgid "an .indirect_symbol must be in a symbol pointer or stub section." -msgstr "" +msgstr "los .indirect_symbol tienen que estar en punteros de símbolo o secciones «stub»." -#: config/obj-macho.c:1483 +#: config/obj-macho.c:1485 #, c-format msgid "'%s' can't be a weak_definition (since it is undefined)" -msgstr "" +msgstr "«%s» no puede ser una weak_definition (pues está indefinido)" -#: config/obj-macho.c:1489 +#: config/obj-macho.c:1491 #, c-format msgid "Non-global symbol: '%s' can't be a weak_definition." -msgstr "" +msgstr "Símbolo no global: «%s» no puede ser una weak_definition" -#: config/obj-macho.c:1495 +#: config/obj-macho.c:1497 #, c-format msgid "internal error: [%s] unexpected code [%lx] in frob symbol" -msgstr "" +msgstr "error interno: [%s] código inesperado [%lx] en símbolo «frob»" -#: config/obj-macho.c:1536 +#: config/obj-macho.c:1538 #, c-format msgid "unrecognized stab type '%c'" -msgstr "no reconoció un tipo estadístico '%c'" +msgstr "tipo de «stab» no reconocido '%c'" -#: config/obj-macho.c:1587 +#: config/obj-macho.c:1589 #, c-format msgid "`%s' can't be undefined in `%s' - `%s' {%s section}" -msgstr "«%s» no puede ser indefinido en «%s» - «%s» {%s sección}" +msgstr "«%s» no puede estar indefinido en «%s» - «%s» {sección %s}" -#: config/obj-macho.c:1595 +#: config/obj-macho.c:1597 #, c-format msgid "`%s' can't be undefined in `%s' {%s section} - `%s'" -msgstr "«%s» no puede ser indefinido en «%s» {%s sección} - «%s»" +msgstr "«%s» no puede estar indefinido en «%s» {sección %s} - «%s»" -#: config/obj-macho.c:1602 +#: config/obj-macho.c:1604 #, c-format msgid "`%s' and `%s' can't be undefined in `%s' - `%s'" msgstr "«%s» y «%s» no pueden estar indefinidos en «%s» - «%s»" -#: config/obj-macho.c:1804 +#: config/obj-macho.c:1806 #, c-format msgid "the number of .indirect_symbols defined in section %s does not match the number expected (%d defined, %d expected)" -msgstr "el número de símbolos indirectos definidos en la sección %s no coincide con el número esperado (%d definido, %d esperado)" +msgstr "el número de .indirect_symbols definidos en la sección %s no coincide con el número esperado (%d definido, %d esperado)" -#: config/obj-macho.c:1824 +#: config/obj-macho.c:1826 #, c-format msgid "internal error: failed to allocate %d indirectsymbol pointers" -msgstr "error interno: fallado al asignar %d punteros simbólicos directos" +msgstr "error interno: no se ha podido asignar %d punteros de símbolo indirectos" -#: config/obj-macho.c:1838 config/obj-macho.c:1861 +#: config/obj-macho.c:1840 config/obj-macho.c:1863 msgid "internal error: more indirect mach-o symbols than expected" -msgstr "error interno: más símbolos indirectos mach-o que los esperados" +msgstr "error interno: más símbolos «mach-o» indirectos que los esperados" #: config/obj-som.c:56 msgid "Only one .compiler pseudo-op per file!" @@ -1282,16 +1504,16 @@ msgstr "Se esperaba una cadena entrecomillada" #: config/obj-som.c:86 msgid ".compiler directive missing language and version" -msgstr "ausente el lenguaje y la versión en la directiva .compiler" +msgstr "faltan el lenguaje y la versión en la directiva .compiler" #: config/obj-som.c:96 msgid ".compiler directive missing version" -msgstr "ausente la versión en la directiva .compiler" +msgstr "falta la versión en la directiva .compiler" #: config/obj-som.c:112 #, c-format msgid "FATAL: Attaching compiler header %s" -msgstr "FATAL: Al adjuntar el encabezado de compilador %s" +msgstr "FATAL: Adjuntando el encabezado de compilador %s" #: config/obj-som.c:127 msgid "Only one .version pseudo-op per file!" @@ -1300,7 +1522,7 @@ msgstr "¡Sólo un pseudo-operador .version por fichero!" #: config/obj-som.c:151 #, c-format msgid "attaching version header %s: %s" -msgstr "al adjuntar el encabezado de versión %s: %s" +msgstr "adjuntando el encabezado de versión %s: %s" #: config/obj-som.c:169 msgid "Only one .copyright pseudo-op per file!" @@ -1311,995 +1533,1310 @@ msgstr "¡Sólo un pseudo-operador .copyright por fichero!" msgid "attaching copyright header %s: %s" msgstr "adjuntando encabezado de copyright %s: %s" -#: config/tc-aarch64.c:373 -msgid "integer 32-bit register expected" -msgstr "esperado registro 32-bit entero" +#: config/tc-aarch64.c:427 +#, c-format +msgid "expected an unsuffixed ZA tile at operand %d" +msgstr "se esperaba una matriz ZA sin sufijo en el operando %d" -#: config/tc-aarch64.c:376 -msgid "integer 64-bit register expected" -msgstr "esperado registro 64-bit entero" +#: config/tc-aarch64.c:431 +#, c-format +msgid "missing horizontal or vertical suffix at operand %d" +msgstr "falta el sufijo horizontal o vertical en el operando %d" -#: config/tc-aarch64.c:379 -msgid "integer register expected" -msgstr "esperado registro entero" +#: config/tc-aarch64.c:436 +#, c-format +msgid "expected 'za' rather than a ZA tile at operand %d" +msgstr "se esperaba 'za' en lugar de una matriz ZA en el operando %d" -#: config/tc-aarch64.c:382 -msgid "64-bit integer or SP register expected" -msgstr "esperado PS o registro 64-bit entero" +#: config/tc-aarch64.c:440 +#, c-format +msgid "expected a predicate-as-counter rather than predicate-as-mask register at operand %d" +msgstr "se esperaba un registro de predicado-como-contador en vez de un predicado-como-máscara en el operando %d" -#: config/tc-aarch64.c:385 config/tc-mcore.c:839 config/tc-mcore.c:1355 -#: config/tc-mcore.c:1409 -msgid "base register expected" -msgstr "se esperaba un registro base" +#: config/tc-aarch64.c:445 +#, c-format +msgid "expected a predicate-as-mask rather than predicate-as-counter register at operand %d" +msgstr "se esperaba un registro de predicado-como-máscara en vez de un predicado-como-contador en el operando %d" -#: config/tc-aarch64.c:388 -msgid "integer or zero register expected" -msgstr "esperado registro entero o cero" +#: config/tc-aarch64.c:450 +#, c-format +msgid "expected a 64-bit integer register at operand %d" +msgstr "se esperaba un registro entero de 64 bits para el operando %d" -#: config/tc-aarch64.c:391 -msgid "offset register expected" -msgstr "esperaba registro desplazamiento" +#: config/tc-aarch64.c:452 +#, c-format +msgid "expected an integer or zero register at operand %d" +msgstr "se esperaba un registro entero o cero para el operando %d" -#: config/tc-aarch64.c:394 -msgid "integer or SP register expected" -msgstr "esperado registro entero o PS" +#: config/tc-aarch64.c:454 +#, c-format +msgid "expected an integer or stack pointer register at operand %d" +msgstr "se esperaba un registro entero o de puntero a pila para el operando %d" -#: config/tc-aarch64.c:397 -msgid "integer, zero or SP register expected" -msgstr "esperado entero, cero o registro PS" +#: config/tc-aarch64.c:458 +#, c-format +msgid "expected a scalar SIMD or floating-point register at operand %d" +msgstr "se esperaba un registro de escalar SIMD o de coma flotante para el operando %d" -#: config/tc-aarch64.c:400 -msgid "8-bit SIMD scalar register expected" -msgstr "esperado registro SIMD de 8-bit escalar" +#: config/tc-aarch64.c:461 +#, c-format +msgid "expected an Advanced SIMD vector register at operand %d" +msgstr "se esperaba un registro de vector SIMD avanzado para el operando %d" -#: config/tc-aarch64.c:403 -msgid "16-bit SIMD scalar or floating-point half precision register expected" -msgstr "esperado registro SIMD de 16-bit escalar o coma flotante a precisión media" +#: config/tc-aarch64.c:463 +#, c-format +msgid "expected an SVE vector register at operand %d" +msgstr "se esperaba un registro de vector SVE para el operando %d" -#: config/tc-aarch64.c:407 -msgid "32-bit SIMD scalar or floating-point single precision register expected" -msgstr "esperado registro SIMD de 32 bit escalar o coma flotante a precisión simple" +#. Use this error for "predicate-as-mask only" and "either kind of +#. predicate". We report a more specific error if P is used where +#. PN is expected, and vice versa, so the issue at this point is +#. "predicate-like" vs. "not predicate-like". +#: config/tc-aarch64.c:470 +#, c-format +msgid "expected an SVE predicate register at operand %d" +msgstr "se esperaba un registro de predicado SVE para el operando %d" -#: config/tc-aarch64.c:411 -msgid "64-bit SIMD scalar or floating-point double precision register expected" -msgstr "esperado registro SIMD de 64-bit escalar o coma flotante a precisión doble" +#: config/tc-aarch64.c:472 +#, c-format +msgid "expected an SVE predicate-as-counter register at operand %d" +msgstr "se esperaba un registro de predicado-como-contador SVE para el operando %d" -#: config/tc-aarch64.c:415 -msgid "128-bit SIMD scalar or floating-point quad precision register expected" -msgstr "esperado registro SIMD de 128-bit escalar o coma flotante a precisión cuadruple" +#: config/tc-aarch64.c:474 +#, c-format +msgid "expected a vector register at operand %d" +msgstr "se esperaba un registro de vector para el operando %d" -#: config/tc-aarch64.c:420 config/tc-arm.c:4401 -msgid "register expected" -msgstr "se esperaba un registro" +#: config/tc-aarch64.c:476 +#, c-format +msgid "expected an SVE vector or predicate register at operand %d" +msgstr "se esperaba un registro de vector SVE para el operando %d" -#. any [BHSDQ]P FP -#: config/tc-aarch64.c:423 -msgid "SIMD scalar or floating-point register expected" -msgstr "SIMD escalar de coma flotante registrada esperada" +#: config/tc-aarch64.c:478 +#, c-format +msgid "expected a vector or predicate register at operand %d" +msgstr "se esperaba un registro de vector o de predicado para el operando %d" -#. any V reg -#: config/tc-aarch64.c:426 -msgid "vector register expected" -msgstr "vector registrador esperado" +#: config/tc-aarch64.c:482 +#, c-format +msgid "expected a ZA array vector at operand %d" +msgstr "se esperaba un registro de matriz ZA para el operando %d" -#: config/tc-aarch64.c:429 -msgid "SVE vector register expected" -msgstr "SVE como vector esperaba registro" +#: config/tc-aarch64.c:484 +#, c-format +msgid "expected ZT0 or a ZA mask at operand %d" +msgstr "se esperaba una mścara ZT0 o ZA para el operando %d" + +#: config/tc-aarch64.c:486 +#, c-format +msgid "expected a ZA tile at operand %d" +msgstr "se esperaba una matriz ZA para el operando %d" + +#: config/tc-aarch64.c:488 +#, c-format +msgid "expected a ZA tile slice at operand %d" +msgstr "se esperaba una rodaja de registro de matriz ZA para el operando %d" + +#: config/tc-aarch64.c:492 +#, c-format +msgid "expected an integer register or Advanced SIMD vector register at operand %d" +msgstr "se esperaba un registro entero o un registro de vector SIMD avanzado para el operando %d" -#: config/tc-aarch64.c:432 -msgid "SVE predicate register expected" -msgstr "SVE predicado registrado esperado" +#: config/tc-aarch64.c:495 +#, c-format +msgid "expected an integer register or SVE vector register at operand %d" +msgstr "se esperaba un registro entero o un registro de vector SVE para el operando %d" + +#: config/tc-aarch64.c:498 +#, c-format +msgid "expected an integer or vector register at operand %d" +msgstr "se esperaba un registro entero o un registro de vector para el operando %d" + +#: config/tc-aarch64.c:500 +#, c-format +msgid "expected an integer or predicate register at operand %d" +msgstr "se esperaba un registro entero o un registro de predicado para el operando %d" + +#: config/tc-aarch64.c:502 +#, c-format +msgid "expected an integer, vector or predicate register at operand %d" +msgstr "se esperaba un registro entero de vector o de predicado para el operando %d" -#: config/tc-aarch64.c:435 +#: config/tc-aarch64.c:507 #, c-format -msgid "invalid register type %d" -msgstr "registro inválido de tipo %d" +msgid "expected an SVE vector register or ZA tile slice at operand %d" +msgstr "se esperaba un registro de vector SVE o una rodaja de matriz ZA para el operando %d" -#: config/tc-aarch64.c:595 config/tc-aarch64.c:597 config/tc-arm.c:1061 -#: config/tc-score.c:6514 expr.c:1385 read.c:2609 +#: config/tc-aarch64.c:715 config/tc-aarch64.c:717 config/tc-arm.c:1188 +#: config/tc-score.c:6435 expr.c:1423 read.c:2700 msgid "bad expression" -msgstr "expresión equivocada" +msgstr "expresión incorrecta" -#: config/tc-aarch64.c:607 config/tc-arm.c:1072 config/tc-i860.c:1003 -#: config/tc-sparc.c:3440 +#: config/tc-aarch64.c:728 config/tc-sparc.c:3380 msgid "bad segment" -msgstr "segmento equivocado" +msgstr "segmento incorrecto" -#: config/tc-aarch64.c:825 +#: config/tc-aarch64.c:876 +msgid "bad vector arrangement type" +msgstr "tipo de disposición de vector incorrecto" + +#: config/tc-aarch64.c:1048 #, c-format msgid "bad size %d in vector width specifier" -msgstr "tamaño equivocado %d en el especificador de anchura vectorial" +msgstr "tamaño incorrecto %d en el especificador de anchura del vector" -#: config/tc-aarch64.c:858 +#: config/tc-aarch64.c:1081 #, c-format msgid "unexpected character `%c' in element size" -msgstr "carácter inesperado `%c' dentro del tamaño elemental" +msgstr "carácter inesperado `%c' en el tamaño del elemento" -#: config/tc-aarch64.c:860 +#: config/tc-aarch64.c:1083 msgid "missing element size" -msgstr "ausencia de tamaño de elemento" +msgstr "falta el tamaño del elemento" -#: config/tc-aarch64.c:869 +#: config/tc-aarch64.c:1093 #, c-format msgid "invalid element size %d and vector size combination %c" -msgstr "no válida tamaño de elemento %d y combinación de tamaño vectorial %c" +msgstr "combinación no válida del tamaño del elemento %d y del tamaño del vector %c" -#: config/tc-aarch64.c:904 +#: config/tc-aarch64.c:1129 #, c-format msgid "unexpected character `%c' in predication type" -msgstr "carácter inesperado `%c' en tipo de predicado" +msgstr "carácter inesperado `%c' en tipo de predicación" -#: config/tc-aarch64.c:907 +#: config/tc-aarch64.c:1132 msgid "missing predication type" -msgstr "ausente tipo predicativo" +msgstr "falta el tipo de predicación" + +#: config/tc-aarch64.c:1176 config/tc-aarch64.c:2324 config/tc-aarch64.c:2585 +#: config/tc-arm.c:1765 config/tc-arm.c:3972 config/tc-arm.c:5205 +#: config/tc-arm.c:7251 +msgid "constant expression required" +msgstr "se requiere una expresión constante" + +#: config/tc-aarch64.c:1230 +msgid "syntax error in register list" +msgstr "error de sintaxis en la lista de registros" -#: config/tc-aarch64.c:1002 +#: config/tc-aarch64.c:1260 +msgid "ZA tile number out of range" +msgstr "número de matriz ZA fuera de rango" + +#: config/tc-aarch64.c:1304 msgid "this type of register can't be indexed" -msgstr "este tipo de registro no puede ser indizado" +msgstr "este tipo de registro no se puede indexar" -#: config/tc-aarch64.c:1008 +#: config/tc-aarch64.c:1310 msgid "index not allowed inside register list" -msgstr "índice no permitido dentro de listado de registro" - -#: config/tc-aarch64.c:1018 config/tc-aarch64.c:1966 config/tc-aarch64.c:2155 -#: config/tc-arm.c:1569 config/tc-arm.c:3681 config/tc-arm.c:4798 -msgid "constant expression required" -msgstr "se requiere una expresión constante" +msgstr "índice no permitido dentro del listado de registros" #. Indexed vector register expected. -#: config/tc-aarch64.c:1030 +#: config/tc-aarch64.c:1325 msgid "indexed vector register expected" -msgstr "esperado registro vectorial indizado" +msgstr "se esperaba un registro de vector indexado" -#: config/tc-aarch64.c:1037 +#: config/tc-aarch64.c:1332 msgid "invalid use of vector register" -msgstr "utolización no válida de registro vectorial" +msgstr "utilización no válida de registro de vector" -#: config/tc-aarch64.c:1129 config/tc-arm.c:1837 -msgid "expecting {" -msgstr "esperando {" - -#: config/tc-aarch64.c:1154 +#: config/tc-aarch64.c:1454 msgid "invalid vector register in list" -msgstr "registro vectorial inválido en listado" +msgstr "registro de vector inválido en listado" -#: config/tc-aarch64.c:1161 +#: config/tc-aarch64.c:1462 msgid "invalid scalar register in list" -msgstr "registrador escalar inválido en lista" +msgstr "registro escalar inválido en listado" -#: config/tc-aarch64.c:1174 +#: config/tc-aarch64.c:1475 msgid "invalid range in vector register list" -msgstr "límite inválido en listado de registro vectorial" +msgstr "rango no válido en listado de registros de vector" -#: config/tc-aarch64.c:1187 +#: config/tc-aarch64.c:1488 msgid "type mismatch in vector register list" -msgstr "tipo incoincidente dentro de listado registrado vectorial" +msgstr "discordancia de tipos en listado de registros de vector" -#: config/tc-aarch64.c:1204 +#: config/tc-aarch64.c:1509 msgid "end of vector register list not found" -msgstr "final de listado de registro vectorial no encontrado" - -#: config/tc-aarch64.c:1220 -msgid "constant expression required." -msgstr "requerida expresión constante." +msgstr "final del listado de registros de vector no encontrado" -#: config/tc-aarch64.c:1230 +#: config/tc-aarch64.c:1527 msgid "expected index" -msgstr "índice esperado" +msgstr "se esperaba índice" -#: config/tc-aarch64.c:1237 +#: config/tc-aarch64.c:1534 msgid "too many registers in vector register list" -msgstr "muchos registros internos a listado de registro vectorial" +msgstr "demasiados registros en el listado de registros de vector" -#: config/tc-aarch64.c:1242 +#: config/tc-aarch64.c:1539 msgid "empty vector register list" -msgstr "listado de registro vectorial vacío" +msgstr "listado de registros de vector vacío" -#: config/tc-aarch64.c:1264 config/tc-arm.c:2223 +#: config/tc-aarch64.c:1609 config/tc-arm.c:2534 #, c-format msgid "ignoring attempt to redefine built-in register '%s'" -msgstr "se descarta el intento de redefinir el símbolo interno «%s»" +msgstr "se descarta el intento de redefinir el registro interno «%s»" -#: config/tc-aarch64.c:1270 config/tc-arm.c:2228 +#: config/tc-aarch64.c:1615 config/tc-arm.c:2539 #, c-format msgid "ignoring redefinition of register alias '%s'" msgstr "se descarta la redefinición del alias de registro «%s»" -#: config/tc-aarch64.c:1316 config/tc-arm.c:2294 +#: config/tc-aarch64.c:1660 config/tc-arm.c:2604 #, c-format msgid "unknown register '%s' -- .req ignored" msgstr "registro «%s» desconocido -- se descarta .req" -#: config/tc-aarch64.c:1374 config/tc-arm.c:2502 +#: config/tc-aarch64.c:1718 config/tc-arm.c:2812 msgid "invalid syntax for .req directive" -msgstr "sintaxis no válida .reg para directiva" +msgstr "sintaxis no válida para directiva .reg" -#: config/tc-aarch64.c:1399 config/tc-arm.c:2540 +#: config/tc-aarch64.c:1739 config/tc-arm.c:2845 msgid "invalid syntax for .unreq directive" -msgstr "sintaxis no válida .unreq para directiva" +msgstr "sintaxis no válida para directiva .unreq" -#: config/tc-aarch64.c:1405 config/tc-arm.c:2547 +#: config/tc-aarch64.c:1745 config/tc-arm.c:2852 #, c-format msgid "unknown register alias '%s'" -msgstr "desconoce alias de registro «%s»" +msgstr "alias de registro desconocido «%s»" -#: config/tc-aarch64.c:1407 +#: config/tc-aarch64.c:1747 #, c-format msgid "ignoring attempt to undefine built-in register '%s'" -msgstr "trata ignorando a registro interno indefinido «%s»" +msgstr "se descarta el intento de suprimir la definición del registro interno «%s»" -#: config/tc-aarch64.c:1731 config/tc-arm.c:3293 config/tc-arm.c:3320 -#: config/tc-arm.c:3333 +#: config/tc-aarch64.c:2061 config/tc-arm.c:3583 config/tc-arm.c:3610 +#: config/tc-arm.c:3623 msgid "literal pool overflow" msgstr "desbordamiento en el conjunto de literales" -#: config/tc-aarch64.c:1913 config/tc-aarch64.c:5916 config/tc-arm.c:3554 -#: config/tc-arm.c:6996 +#: config/tc-aarch64.c:2242 config/tc-aarch64.c:7473 config/tc-arm.c:3845 +#: config/tc-arm.c:7677 msgid "unrecognized relocation suffix" -msgstr "no reconocido el sufijo de reubicación" +msgstr "sufijo de reubicación no reconocido" -#: config/tc-aarch64.c:1915 +#: config/tc-aarch64.c:2244 msgid "unimplemented relocation suffix" -msgstr "sufijo reubicable implementable" +msgstr "sufijo de reubicación no implementado" -#: config/tc-aarch64.c:2123 config/tc-aarch64.c:2316 config/tc-aarch64.c:2374 +#: config/tc-aarch64.c:2552 config/tc-aarch64.c:2743 config/tc-aarch64.c:2787 +#: config/tc-csky.c:2336 msgid "immediate operand required" msgstr "operando inmediato requerido" -#: config/tc-aarch64.c:2131 +#: config/tc-aarch64.c:2561 msgid "missing immediate expression" -msgstr "expresión inmediata ausente" +msgstr "falta expresión inmediata" -#: config/tc-aarch64.c:2354 config/tc-aarch64.c:5740 config/tc-aarch64.c:5760 +#: config/tc-aarch64.c:2767 config/tc-aarch64.c:7296 config/tc-aarch64.c:7316 msgid "invalid floating-point constant" -msgstr "constante de coma flotante inválido" +msgstr "constante de coma flotante no válida" -#: config/tc-aarch64.c:2984 config/tc-arm.c:5137 config/tc-arm.c:5146 +#: config/tc-aarch64.c:3575 config/tc-arm.c:5452 config/tc-arm.c:5462 msgid "shift expression expected" -msgstr "esperado desplazamiento expresional" +msgstr "se esperaba expresión de desplazamiento" -#: config/tc-aarch64.c:2992 +#: config/tc-aarch64.c:3583 msgid "shift operator expected" -msgstr "esperado desplazamiento operador" +msgstr "se esperaba operador de desplazamiento" -#: config/tc-aarch64.c:3000 +#: config/tc-aarch64.c:3591 msgid "invalid use of 'MSL'" -msgstr "utilización no válido de 'MSL'" +msgstr "utilización no válida de 'MSL'" -#: config/tc-aarch64.c:3008 +#: config/tc-aarch64.c:3599 msgid "invalid use of 'MUL'" msgstr "utilización no válida de 'MUL'" -#: config/tc-aarch64.c:3017 +#: config/tc-aarch64.c:3608 msgid "extending shift is not permitted" -msgstr "desplazamiento extendido no está permitido" +msgstr "no está permitido extender el desplazamiento" -#: config/tc-aarch64.c:3025 +#: config/tc-aarch64.c:3616 msgid "'ROR' shift is not permitted" -msgstr "espaciado 'ROR' no está permitido" +msgstr "el desplazamiento 'ROR' no está permitido" -#: config/tc-aarch64.c:3033 +#: config/tc-aarch64.c:3624 msgid "only 'LSL' shift is permitted" -msgstr "sólo está permitido el desplazamiento LSL" +msgstr "solo está permitido el desplazamiento 'LSL'" -#: config/tc-aarch64.c:3041 +#: config/tc-aarch64.c:3632 msgid "only 'MUL' is permitted" -msgstr "sólo 'MUL' está permitido" +msgstr "solo 'MUL' está permitido" -#: config/tc-aarch64.c:3059 +#: config/tc-aarch64.c:3650 msgid "only 'MUL VL' is permitted" -msgstr "sólo 'MUL VL' está permitido" +msgstr "solo 'MUL VL' está permitido" -#: config/tc-aarch64.c:3067 +#: config/tc-aarch64.c:3658 msgid "invalid shift for the register offset addressing mode" -msgstr "desplazamiento inválido para el modo direccional de desplazamiento de registro" +msgstr "desplazamiento inválido para el modo de direccionamiento de desplazamiento de registro" -#: config/tc-aarch64.c:3075 +#: config/tc-aarch64.c:3666 msgid "invalid shift operator" -msgstr "invalida operador desplazado" +msgstr "operador de desplazamiento no válido" -#: config/tc-aarch64.c:3108 +#: config/tc-aarch64.c:3700 msgid "missing shift amount" -msgstr "ausente cantidad abandonada" +msgstr "falta la cantidad de desplazamiento" -#: config/tc-aarch64.c:3115 +#: config/tc-aarch64.c:3707 msgid "constant shift amount required" msgstr "cantidad de desplazamiento constante requerida" -#: config/tc-aarch64.c:3124 +#: config/tc-aarch64.c:3716 msgid "shift amount out of range 0 to 63" -msgstr "cantidad desplazada fuera de rango 0 a 63" +msgstr "cantidad de desplazamiento fuera del rango 0 a 63" -#: config/tc-aarch64.c:3173 +#: config/tc-aarch64.c:3766 msgid "unexpected shift operator" -msgstr "desplazamiento operador inesperado" +msgstr "operador de desplazamiento inesperado" -#: config/tc-aarch64.c:3209 +#: config/tc-aarch64.c:3802 msgid "unexpected register in the immediate operand" -msgstr "registro no esperado dentro del operando inmediato" +msgstr "registro no esperado en el operando inmediato" -#: config/tc-aarch64.c:3234 +#: config/tc-aarch64.c:3827 msgid "integer register expected in the extended/shifted operand register" -msgstr "registro entero esperado dentro del registro operando extendido/desplazado" +msgstr "se esperaba registro entero en el registro de operando extendido/desplazado" + +#: config/tc-aarch64.c:3865 +msgid "integer register expected in the shifted operand register" +msgstr "se esperaba registro entero en el registro de operando desplazado" -#: config/tc-aarch64.c:3269 config/tc-aarch64.c:3403 config/tc-aarch64.c:3532 -#: config/tc-aarch64.c:3687 config/tc-aarch64.c:3728 +#: config/tc-aarch64.c:3897 config/tc-aarch64.c:4084 config/tc-aarch64.c:4225 +#: config/tc-aarch64.c:4425 config/tc-aarch64.c:4467 msgid "unknown relocation modifier" msgstr "modificador de reubicación desconocido" -#: config/tc-aarch64.c:3276 config/tc-aarch64.c:3422 config/tc-aarch64.c:3539 -#: config/tc-aarch64.c:3694 config/tc-aarch64.c:3735 +#: config/tc-aarch64.c:3904 config/tc-aarch64.c:4103 config/tc-aarch64.c:4232 +#: config/tc-aarch64.c:4432 config/tc-aarch64.c:4474 msgid "this relocation modifier is not allowed on this instruction" -msgstr "esta modificador de reubicación no está permitido en esta instrucción" +msgstr "este modificador de reubicación no está permitido en esta instrucción" -#: config/tc-aarch64.c:3430 config/tc-aarch64.c:3550 +#: config/tc-aarch64.c:4112 config/tc-aarch64.c:4244 msgid "invalid relocation expression" msgstr "expresión de reubicación no válida" -#: config/tc-aarch64.c:3448 +#: config/tc-aarch64.c:4129 msgid "invalid address" msgstr "dirección no válida" -#: config/tc-aarch64.c:3504 +#: config/tc-aarch64.c:4147 +msgid "expected a 64-bit base register" +msgstr "se esperaba un registro de base de 64 bits" + +#: config/tc-aarch64.c:4149 +msgid "invalid base register" +msgstr "registro de base no válido" + +#: config/tc-aarch64.c:4151 +msgid "expected a base register" +msgstr "se esperaba un registro de base" + +#: config/tc-aarch64.c:4167 config/tc-aarch64.c:4305 +msgid "invalid offset register" +msgstr "registro de desplazamiento no válido" + +#: config/tc-aarch64.c:4194 msgid "invalid use of 32-bit register offset" -msgstr "utilización no válida de desplazamiento registrado de 32-bit" +msgstr "utilización no válida de desplazamiento de registro de 32 bits" -#: config/tc-aarch64.c:3510 +#: config/tc-aarch64.c:4203 msgid "offset has different size from base" -msgstr "desplazamiento tiene distinto tamaño desde base" +msgstr "el desplazamiento tiene distinto tamaño que la base" -#: config/tc-aarch64.c:3516 +#: config/tc-aarch64.c:4209 msgid "invalid use of 64-bit register offset" -msgstr "utilización no válida de desplazamiento registrado de 64-bit" +msgstr "utilización no válida de desplazamiento de registro de 64 bits" #. [Xn],#expr -#: config/tc-aarch64.c:3563 config/tc-aarch64.c:3620 +#: config/tc-aarch64.c:4258 config/tc-aarch64.c:4316 msgid "invalid expression in the address" msgstr "expresión no válida en la dirección" -#: config/tc-aarch64.c:3577 config/tc-arm.c:5673 config/tc-arm.c:6251 +#: config/tc-aarch64.c:4272 config/tc-arm.c:6051 config/tc-arm.c:6650 msgid "']' expected" -msgstr "']' esperado" +msgstr "se esperaba ']'" -#: config/tc-aarch64.c:3585 +#: config/tc-aarch64.c:4280 msgid "register offset not allowed in pre-indexed addressing mode" -msgstr "desplazamiento registrado no permitido en modo direccionado pre-indizado" +msgstr "desplazamiento de registro no permitido en modo direccionamiento pre-indexado" -#: config/tc-aarch64.c:3600 config/tc-arm.c:5709 +#: config/tc-aarch64.c:4295 config/tc-arm.c:6087 msgid "cannot combine pre- and post-indexing" -msgstr "no se puede combinar pre y post-indizado" +msgstr "no se puede combinar pre y post-indexación" #. Reject [Rn]! -#: config/tc-aarch64.c:3632 +#: config/tc-aarch64.c:4340 msgid "missing offset in the pre-indexed address" -msgstr "desplazamiento ausente dentro de dirección pre-indizada" +msgstr "falta el desplazamiento en dirección pre-indexada" + +#: config/tc-aarch64.c:4683 +msgid "expected '['" +msgstr "se esperaba '['" + +#: config/tc-aarch64.c:4691 +msgid "expected a 32-bit selection register" +msgstr "se esperaba un registro de selección de 32 bits" + +#: config/tc-aarch64.c:4698 +msgid "missing immediate offset" +msgstr "falta desplazamiento inmediato" + +#: config/tc-aarch64.c:4704 config/tc-aarch64.c:4713 +msgid "expected a constant immediate offset" +msgstr "se esperaba un desplazamiento inmediato constante" + +#: config/tc-aarch64.c:4718 +msgid "the last offset is less than the first offset" +msgstr "el último desplazamiento es menor que el primer desplazamiento" + +#: config/tc-aarch64.c:4724 +msgid "the last offset is equal to the first offset" +msgstr "el último desplazamiento es igual que el primer desplazamiento" -#: config/tc-aarch64.c:3861 -msgid "unknown or missing option to PSB" -msgstr "desconocido o ausente opción a PSB" +#: config/tc-aarch64.c:4746 +msgid "invalid vector group size" +msgstr "tamaño de grupo de vectores no válido" -#: config/tc-aarch64.c:3869 -msgid "the specified option is not accepted for PSB" -msgstr "la opción especificada no está aceptada para PSB" +#: config/tc-aarch64.c:4753 +msgid "expected ']'" +msgstr "se esperaba ']'" -#: config/tc-aarch64.c:3926 +#: config/tc-aarch64.c:4813 config/tc-aarch64.c:4921 +msgid "expected '}'" +msgstr "se esperaba '}'" + +#: config/tc-aarch64.c:4872 +msgid "ZA tile masks do not operate at .Q granularity" +msgstr "las máscaras de matriz ZA no operan con granularidad .Q" + +#: config/tc-aarch64.c:4878 +msgid "missing ZA tile size" +msgstr "falta el tamaño de la matriz ZA" + +#: config/tc-aarch64.c:4883 +msgid "invalid ZA tile" +msgstr "matriz ZA no válida" + +#: config/tc-aarch64.c:4908 +msgid "expected '{'" +msgstr "se esperaba '{'" + +#: config/tc-aarch64.c:4949 +msgid "expected SM or ZA operand" +msgstr "se esperaba un operando SM o ZA" + +#: config/tc-aarch64.c:5012 #, c-format msgid "selected processor does not support PSTATE field name '%s'" -msgstr "procesador seleccionado no admite el nombre de campo PSTATE '%s'" +msgstr "el procesador seleccionado no admite el nombre de campo PSTATE '%s'" -#: config/tc-aarch64.c:3929 config/tc-aarch64.c:3962 +#: config/tc-aarch64.c:5017 config/tc-aarch64.c:5062 #, c-format msgid "selected processor does not support system register name '%s'" -msgstr "procesador seleccionado no admite el nombre registrado del sistema «%s»" +msgstr "el procesador seleccionado no admite el nombre de registro del sistema «%s»" + +#: config/tc-aarch64.c:5020 +#, c-format +msgid "128-bit-wide accsess not allowed on selected system register '%s'" +msgstr "el acceso de ancho de 128 bits no está permitido en el registro del sistema seleccionado «%s»" -#: config/tc-aarch64.c:3932 +#: config/tc-aarch64.c:5023 config/tc-aarch64.c:5065 #, c-format msgid "system register name '%s' is deprecated and may be removed in a future release" -msgstr "" +msgstr "el nombre de registro del sistema «%s» está obsoleto y puede desaparecer en futuras versiones" -#: config/tc-aarch64.c:4004 +#: config/tc-aarch64.c:5104 msgid "immediate value out of range " -msgstr "valor inmediato fuera de límite " +msgstr "valor inmediato fuera de rango " -#: config/tc-aarch64.c:4512 +#: config/tc-aarch64.c:5707 messages.c:151 #, c-format msgid "Info: " -msgstr "Informe: " +msgstr "Info: " + +#: config/tc-aarch64.c:5725 +#, c-format +msgid "missing braces at operand %d" +msgstr "faltan las llaves para el operando %d" + +#: config/tc-aarch64.c:5736 +#, c-format +msgid "unexpected register type at operand %d" +msgstr "tipo de registro no esperado para el operando %d" + +#: config/tc-aarch64.c:5747 +#, c-format +msgid "invalid register list at operand %d" +msgstr "lista de registros no válida para el operando %d" -#: config/tc-aarch64.c:4545 config/tc-score.c:2750 config/tc-score.c:6503 +#: config/tc-aarch64.c:5760 +#, c-format +msgid "expected a register at operand %d" +msgstr "se esperaba un registro para el operando %d" + +#: config/tc-aarch64.c:5767 +#, c-format +msgid "expected '{' at operand %d" +msgstr "se esperaba '{' para el operando %d" + +#: config/tc-aarch64.c:5769 +#, c-format +msgid "expected a register or register list at operand %d" +msgstr "se esperaba un registro o una lista de registros para el operando %d" + +#: config/tc-aarch64.c:5794 +#, c-format +msgid "this `%s' should have an immediately preceding `%s' -- `%s'" +msgstr "este «%s» debería ir inmediatamente precedido de «%s» -- «%s»" + +#: config/tc-aarch64.c:5800 +#, c-format +msgid "the preceding `%s' should be followed by `%s` rather than `%s` -- `%s'" +msgstr "el «%s» precedente debería ir seguido de «%s» en lugar de «%s» -- «%s»" + +#: config/tc-aarch64.c:5812 config/tc-aarch64.c:5827 config/tc-score.c:2748 +#: config/tc-score.c:6424 #, c-format msgid "%s -- `%s'" msgstr "%s -- «%s»" -#: config/tc-aarch64.c:4547 +#: config/tc-aarch64.c:5829 #, c-format msgid "%s at operand %d -- `%s'" -msgstr "%s en operando %d -- «%s»" +msgstr "%s en el operando %d -- «%s»" -#: config/tc-aarch64.c:4553 +#: config/tc-aarch64.c:5835 #, c-format msgid "operand %d must be %s -- `%s'" -msgstr "operando %d debe ser %s -- `%s'" +msgstr "el operando %d debe ser %s -- `%s'" -#: config/tc-aarch64.c:4559 +#: config/tc-aarch64.c:5841 #, c-format msgid "operand mismatch -- `%s'" -msgstr "operando no coincide -- «%s»" +msgstr "el operando no coincide -- «%s»" #. Print the hint. -#: config/tc-aarch64.c:4619 +#: config/tc-aarch64.c:5901 msgid " did you mean this?" -msgstr " ¿significó ésto?" +msgstr " ¿quiso decir ésto?" -#: config/tc-aarch64.c:4622 config/tc-aarch64.c:4649 +#: config/tc-aarch64.c:5904 config/tc-aarch64.c:5931 #, c-format msgid " %s" msgstr " %s" -#: config/tc-aarch64.c:4627 +#: config/tc-aarch64.c:5909 msgid " other valid variant(s):" msgstr " otra(s) variante(s) válida(s):" -#: config/tc-aarch64.c:4656 +#: config/tc-aarch64.c:5938 +#, fuzzy, c-format +#| msgid "operand %d must be the same register as operand 1 -- `%s'" +msgid "operand %d must have the same immediate value as operand 1 -- `%s'" +msgstr "operando %d debe ser el mismo registro que operando 1 -- «%s»" + +#: config/tc-aarch64.c:5944 #, c-format msgid "operand %d must be the same register as operand 1 -- `%s'" msgstr "operando %d debe ser el mismo registro que operando 1 -- «%s»" -#: config/tc-aarch64.c:4662 +#: config/tc-aarch64.c:5949 +#, fuzzy, c-format +#| msgid "%s at operand %d -- `%s'" +msgid "%s%d-%s%d expected at operand %d -- `%s'" +msgstr "%s en operando %d -- «%s»" + +#: config/tc-aarch64.c:5956 #, c-format msgid "%s out of range %d to %d at operand %d -- `%s'" -msgstr "%s fuera de límite %d a %d en operando %d -- «%s»" +msgstr "%s fuera de rango %d a %d en operando %d -- «%s»" -#: config/tc-aarch64.c:4663 config/tc-aarch64.c:4667 config/tc-aarch64.c:6447 +#: config/tc-aarch64.c:5957 config/tc-aarch64.c:5961 config/tc-aarch64.c:8372 msgid "immediate value" msgstr "valor inmediato" -#: config/tc-aarch64.c:4666 +#: config/tc-aarch64.c:5960 #, c-format msgid "%s must be %d at operand %d -- `%s'" msgstr "%s debe ser %d al operando %d -- «%s»" -#: config/tc-aarch64.c:4673 -#, c-format -msgid "invalid number of registers in the list; only 1 register is expected at operand %d -- `%s'" -msgstr "número inválido de registros listados; solo 1 registro está esperado al operando %d -- `%s'" +#: config/tc-aarch64.c:5967 +#, fuzzy, c-format +#| msgid "Unexpected character '%c' after operand %d to %s." +msgid "unexpected vector group size at operand %d -- `%s'" +msgstr "Carácter inesperado '%c' antes de operando %d para %s." -#: config/tc-aarch64.c:4677 -#, c-format -msgid "invalid number of registers in the list; %d registers are expected at operand %d -- `%s'" +#: config/tc-aarch64.c:5970 +#, fuzzy, c-format +#| msgid "operand %d must be the same register as operand 1 -- `%s'" +msgid "operand %d must have a vector group size of %d -- `%s'" +msgstr "operando %d debe ser el mismo registro que operando 1 -- «%s»" + +#: config/tc-aarch64.c:5976 +#, fuzzy, c-format +#| msgid "expecting a register for operand %d" +msgid "expected a single-register list at operand %d -- `%s'" +msgstr "se esperaba un registro para el operando %d" + +#: config/tc-aarch64.c:5979 +#, fuzzy, c-format +#| msgid "operand %d must be the same register as operand 1 -- `%s'" +msgid "expected a list of %d registers at operand %d -- `%s'" +msgstr "operando %d debe ser el mismo registro que operando 1 -- «%s»" + +#: config/tc-aarch64.c:5982 +#, fuzzy, c-format +#| msgid "%s out of range %d to %d at operand %d -- `%s'" +msgid "expected a list of %d or %d registers at operand %d -- `%s'" +msgstr "%s fuera de rango %d a %d en operando %d -- «%s»" + +#: config/tc-aarch64.c:5986 +#, fuzzy, c-format +#| msgid "invalid number of registers in the list; %d registers are expected at operand %d -- `%s'" +msgid "invalid number of registers in the list at operand %d -- `%s'" msgstr "número inválido de registros listados; %d registros están esperados en operando %d -- `%s'" -#: config/tc-aarch64.c:4683 +#: config/tc-aarch64.c:5992 +#, fuzzy, c-format +#| msgid "%s must be %d at operand %d -- `%s'" +msgid "the register list must have a stride of %d at operand %d -- `%s'" +msgstr "%s debe ser %d al operando %d -- «%s»" + +#: config/tc-aarch64.c:5995 +#, fuzzy, c-format +#| msgid "%s out of range %d to %d at operand %d -- `%s'" +msgid "the register list must have a stride of %d or %d at operand %d -- `%s`" +msgstr "%s fuera de rango %d a %d en operando %d -- «%s»" + +#: config/tc-aarch64.c:5999 +#, fuzzy, c-format +#| msgid "invalid register operand: %s" +msgid "invalid register stride at operand %d -- `%s'" +msgstr "operando registrado inválido: %s" + +#: config/tc-aarch64.c:6004 #, c-format msgid "immediate value must be a multiple of %d at operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4970 -msgid "bad vector arrangement type" -msgstr "tipo alineamiento vectorial equivocado" - -#: config/tc-aarch64.c:5087 +#: config/tc-aarch64.c:6448 msgid "the specified relocation type is not allowed for MOVK" msgstr "el tipo reubicante especificado no está permitido para MOVK" -#: config/tc-aarch64.c:5129 config/tc-aarch64.c:5139 +#: config/tc-aarch64.c:6496 config/tc-aarch64.c:6507 msgid "the specified relocation type is not allowed for 32-bit register" msgstr "el tipo reubicante especificado no está asignado para registro de 32-bit" -#: config/tc-aarch64.c:5310 +#: config/tc-aarch64.c:6602 +#, fuzzy +#| msgid "TLS relocation size does not match operand size" +msgid "relocation qualifier does not match instruction size" +msgstr "TLS para tamaño de la reubicación no coincide con el tamaño de operando" + +#: config/tc-aarch64.c:6703 msgid "comma expected between operands" msgstr "coma esperaba entre operandos" -#: config/tc-aarch64.c:5444 +#: config/tc-aarch64.c:6739 +#, fuzzy +#| msgid "invalid base register in load/store" +msgid "invalid Rt register number in 64-byte load/store" +msgstr "registro base inválido en carga/almacenamiento" + +#: config/tc-aarch64.c:6876 msgid "the top half of a 128-bit FP/SIMD register is expected" msgstr "" -#: config/tc-aarch64.c:5515 config/tc-arm.c:1906 config/tc-arm.c:1951 -#: config/tc-h8300.c:1048 +#: config/tc-aarch64.c:6989 config/tc-aarch64.c:7039 config/tc-arm.c:2207 +#: config/tc-arm.c:2252 config/tc-h8300.c:1041 msgid "invalid register list" msgstr "lista de registros no válida" -#: config/tc-aarch64.c:5535 +#: config/tc-aarch64.c:7046 +msgid "expected element type rather than vector type" +msgstr "" + +#: config/tc-aarch64.c:7064 msgid "missing type suffix" msgstr "sufijo ausente de tipo" -#: config/tc-aarch64.c:5554 +#: config/tc-aarch64.c:7086 +#, fuzzy +#| msgid "C0 - C15 expected" +msgid "C8 - C9 expected" +msgstr "C0 - C15 se esperaban" + +#: config/tc-aarch64.c:7092 +#, fuzzy +#| msgid "C0 - C15 expected" +msgid "C0 - C7 expected" +msgstr "C0 - C15 se esperaban" + +#: config/tc-aarch64.c:7098 msgid "C0 - C15 expected" msgstr "C0 - C15 se esperaban" -#: config/tc-aarch64.c:5655 config/tc-aarch64.c:5679 +#: config/tc-aarch64.c:7210 config/tc-aarch64.c:7234 msgid "immediate zero expected" -msgstr "esperado cero inmediaro" +msgstr "se esperaba cero inmediaro" -#: config/tc-aarch64.c:5775 +#: config/tc-aarch64.c:7331 msgid "shift not allowed for bitmask immediate" msgstr "desplazamiento no permitido para mascarada bit inmediato" -#: config/tc-aarch64.c:5829 +#: config/tc-aarch64.c:7385 msgid "can't mix relocation modifier with explicit shift" msgstr "no se puede entremezclar reubicación modificado con desplazamiento explícito" -#: config/tc-aarch64.c:5877 +#: config/tc-aarch64.c:7434 config/tc-arm.c:15723 config/tc-arm.c:15748 +#: config/tc-arm.c:15759 config/tc-arm.c:15766 msgid "invalid condition" msgstr "condición no válida" -#: config/tc-aarch64.c:5903 +#: config/tc-aarch64.c:7460 msgid "invalid pc-relative address" msgstr "dirección relativa a pc no válida" #. Only permit "=value" in the literal load instructions. #. The literal will be generated by programmer_friendly_fixup. -#: config/tc-aarch64.c:5911 +#: config/tc-aarch64.c:7468 msgid "invalid use of \"=immediate\"" msgstr "empleo no válido de \"=immediate\"" -#: config/tc-aarch64.c:5976 config/tc-aarch64.c:6008 config/tc-aarch64.c:6026 -#: config/tc-aarch64.c:6048 config/tc-aarch64.c:6068 config/tc-aarch64.c:6087 -#: config/tc-aarch64.c:6106 config/tc-aarch64.c:6141 config/tc-aarch64.c:6148 -#: config/tc-aarch64.c:6177 config/tc-aarch64.c:6202 config/tc-aarch64.c:6218 -#: config/tc-aarch64.c:6242 +#: config/tc-aarch64.c:7531 config/tc-aarch64.c:7556 config/tc-aarch64.c:7578 +#: config/tc-aarch64.c:7610 config/tc-aarch64.c:7628 config/tc-aarch64.c:7652 +#: config/tc-aarch64.c:7672 config/tc-aarch64.c:7692 config/tc-aarch64.c:7711 +#: config/tc-aarch64.c:7734 config/tc-aarch64.c:7788 config/tc-aarch64.c:7795 +#: config/tc-aarch64.c:7823 config/tc-aarch64.c:7845 config/tc-aarch64.c:7870 +#: config/tc-aarch64.c:7888 config/tc-aarch64.c:7896 config/tc-aarch64.c:7913 +#: config/tc-aarch64.c:7937 msgid "invalid addressing mode" msgstr "modo de direccionamiento inválido" -#: config/tc-aarch64.c:5992 +#: config/tc-aarch64.c:7594 msgid "the optional immediate offset can only be 0" msgstr "el desplazamiento opcional inmediato puede solo ser 0 " -#: config/tc-aarch64.c:6031 config/tc-aarch64.c:6053 config/tc-aarch64.c:6073 +#: config/tc-aarch64.c:7633 config/tc-aarch64.c:7657 config/tc-aarch64.c:7677 +#: config/tc-aarch64.c:7697 msgid "relocation not allowed" msgstr "reubicación no permitida" -#: config/tc-aarch64.c:6116 +#: config/tc-aarch64.c:7744 msgid "writeback value must be an immediate constant" msgstr "valor retroescritura debe ser una contante inmediata" +#: config/tc-aarch64.c:7755 config/tc-aarch64.c:7965 +msgid "unknown or missing PSTATE field name" +msgstr "nombre de campo PSTATE desconocido o ausante" + #. Make sure this has priority over #. "invalid addressing mode". -#: config/tc-aarch64.c:6156 +#: config/tc-aarch64.c:7803 msgid "constant offset required" msgstr "desplazamiento constante requerido" -#: config/tc-aarch64.c:6252 +#: config/tc-aarch64.c:7951 msgid "unknown or missing system register name" msgstr "nombre de registro de sistema ausente o desconocido" -#: config/tc-aarch64.c:6262 -msgid "unknown or missing PSTATE field name" -msgstr "nombre de campo PSTATE desconocido o ausante" - -#: config/tc-aarch64.c:6286 +#: config/tc-aarch64.c:8004 msgid "unknown or missing operation name" msgstr "operación nombrada desconocida o ausente" -#: config/tc-aarch64.c:6299 +#: config/tc-aarch64.c:8017 msgid "the specified option is not accepted in ISB" msgstr "la opción especifica ninguna opción" -#: config/tc-aarch64.c:6325 config/tc-aarch64.c:7458 config/tc-arm.c:7211 +#: config/tc-aarch64.c:8029 config/tc-aarch64.c:8046 +#, fuzzy +#| msgid "the specified option is not accepted in ISB" +msgid "the specified option is not accepted in DSB" +msgstr "la opción especifica ninguna opción" + +#: config/tc-aarch64.c:8060 +#, fuzzy +#| msgid "immediate must be 1 or 2" +msgid "immediate value must be 16, 20, 24, 28" +msgstr "el inmediato debe ser 1 o 2" + +#: config/tc-aarch64.c:8097 config/tc-aarch64.c:8132 +#, fuzzy +#| msgid "missing table index" +msgid "missing register index" +msgstr "distribución indizada ausente" + +#: config/tc-aarch64.c:8119 +#, fuzzy +#| msgid "expected ',' after symbol name" +msgid "expected '}' after ZT0" +msgstr "se esperaba ',' tras nombre simbólico" + +#: config/tc-aarch64.c:8246 config/tc-aarch64.c:9603 config/tc-arm.c:7945 #, c-format msgid "unhandled operand code %d" msgstr "código de operando %d sin manipular" -#: config/tc-aarch64.c:6367 +#: config/tc-aarch64.c:8292 msgid "unexpected comma before the omitted optional operand" msgstr "punto inesperado antes de operando opcional omitido" -#: config/tc-aarch64.c:6395 +#: config/tc-aarch64.c:8320 msgid "unexpected characters following instruction" msgstr "caracteres inesperados continuando instrucción" -#: config/tc-aarch64.c:6473 config/tc-arm.c:5248 config/tc-arm.c:5809 -#: config/tc-arm.c:7973 +#: config/tc-aarch64.c:8398 config/tc-arm.c:5577 config/tc-arm.c:6195 +#: config/tc-arm.c:8757 msgid "constant expression expected" msgstr "se esperaba una expresión constante" -#: config/tc-aarch64.c:6480 +#: config/tc-aarch64.c:8405 msgid "literal pool insertion failed" msgstr "falló la inserción en el conjunto de literales" -#: config/tc-aarch64.c:6549 config/tc-aarch64.c:6561 +#: config/tc-aarch64.c:8476 config/tc-aarch64.c:8529 #, c-format msgid "unpredictable transfer with writeback -- `%s'" msgstr "transferencia impredecible con retroescritura -- «%s»" -#: config/tc-aarch64.c:6565 +#. ldiapp, stilp +#: config/tc-aarch64.c:8488 +#, fuzzy, c-format +#| msgid "unpredictable transfer with writeback -- `%s'" +msgid "unpredictable load pair transfer with register overlap -- `%s'" +msgstr "transferencia impredecible con retroescritura -- «%s»" + +#: config/tc-aarch64.c:8506 +#, fuzzy, c-format +#| msgid "unpredictable transfer with writeback -- `%s'" +msgid "unpredictable transfer with writeback (load) -- `%s'" +msgstr "transferencia impredecible con retroescritura -- «%s»" + +#: config/tc-aarch64.c:8510 +#, fuzzy, c-format +#| msgid "unpredictable transfer with writeback -- `%s'" +msgid "unpredictable transfer with writeback (store) -- `%s'" +msgstr "transferencia impredecible con retroescritura -- «%s»" + +#: config/tc-aarch64.c:8533 config/tc-aarch64.c:8547 #, c-format msgid "unpredictable load of register pair -- `%s'" msgstr "carga impredicible de par registrado -- «%s»" -#: config/tc-aarch64.c:6642 +#: config/tc-aarch64.c:8554 config/tc-aarch64.c:8567 +#, fuzzy, c-format +#| msgid "unpredictable transfer with writeback -- `%s'" +msgid "unpredictable: identical transfer and status registers --`%s'" +msgstr "transferencia impredecible con retroescritura -- «%s»" + +#: config/tc-aarch64.c:8562 config/tc-aarch64.c:8576 +#, fuzzy, c-format +#| msgid "unpredictable load of register pair -- `%s'" +msgid "unpredictable: identical base and status registers --`%s'" +msgstr "carga impredicible de par registrado -- «%s»" + +#: config/tc-aarch64.c:8596 +#, c-format +msgid "previous `%s' sequence has not been closed" +msgstr "" + +#: config/tc-aarch64.c:8685 +#, fuzzy, c-format +#| msgid "unknown mnemonic `%s' -- `%s'" +msgid "unknown mnemonic -- `%s'" +msgstr "mnemónico inválido `%s' -- `%s'" + +#: config/tc-aarch64.c:8695 #, c-format msgid "unknown mnemonic `%s' -- `%s'" msgstr "mnemónico inválido `%s' -- `%s'" -#: config/tc-aarch64.c:6650 +#: config/tc-aarch64.c:8703 #, c-format msgid "unexpected comma after the mnemonic name `%s' -- `%s'" msgstr "coma inesperada tras el nombre nemónico «%s» -- «%s»" -#: config/tc-aarch64.c:6708 +#: config/tc-aarch64.c:8760 #, c-format msgid "selected processor does not support `%s'" msgstr "procesador seleccionado no admite «%s»" -#: config/tc-aarch64.c:7121 config/tc-arm.c:22852 +#: config/tc-aarch64.c:9262 config/tc-arm.c:27396 msgid "GOT already in the symbol table" msgstr "GOT ya está en la distribución simbólicos" -#: config/tc-aarch64.c:7283 +#: config/tc-aarch64.c:9425 msgid "immediate cannot be moved by a single instruction" msgstr "inmediato no puede ser trasadado por una instrucción simple" -#: config/tc-aarch64.c:7326 config/tc-aarch64.c:7371 config/tc-aarch64.c:7397 -#: config/tc-arm.c:15411 config/tc-arm.c:15438 config/tc-arm.c:16080 -#: config/tc-arm.c:16694 config/tc-arm.c:17516 config/tc-arm.c:17556 -#: config/tc-metag.c:2444 config/tc-metag.c:2453 config/tc-metag.c:2492 -#: config/tc-metag.c:2501 config/tc-metag.c:3021 config/tc-metag.c:3030 +#: config/tc-aarch64.c:9469 config/tc-aarch64.c:9514 config/tc-aarch64.c:9540 +#: config/tc-arm.c:16267 config/tc-arm.c:17964 config/tc-arm.c:18544 +#: config/tc-arm.c:18571 config/tc-arm.c:19358 config/tc-arm.c:20193 +#: config/tc-arm.c:21216 config/tc-arm.c:21276 config/tc-metag.c:2443 +#: config/tc-metag.c:2452 config/tc-metag.c:2491 config/tc-metag.c:2500 +#: config/tc-metag.c:3019 config/tc-metag.c:3028 msgid "immediate out of range" -msgstr "inmediato fuera de límite" +msgstr "inmediato fuera de rango" -#: config/tc-aarch64.c:7390 config/tc-metag.c:4656 config/tc-xtensa.c:4183 +#: config/tc-aarch64.c:9533 config/tc-metag.c:4654 config/tc-xtensa.c:4229 msgid "invalid immediate" msgstr "inmediato inválido" -#: config/tc-aarch64.c:7453 config/tc-tic6x.c:3861 config/tc-tic6x.c:3926 -#: config/tc-tic6x.c:3953 config/tc-tic6x.c:3981 +#: config/tc-aarch64.c:9598 config/tc-tic6x.c:3854 config/tc-tic6x.c:3919 +#: config/tc-tic6x.c:3946 config/tc-tic6x.c:3974 msgid "immediate offset out of range" -msgstr "el desplazamiento inmediato está fuera de límite" +msgstr "el desplazamiento inmediato está fuera de rango" -#: config/tc-aarch64.c:7527 config/tc-arm.c:23190 config/tc-arm.c:23258 -#: config/tc-arm.c:23540 +#: config/tc-aarch64.c:9672 config/tc-arm.c:27734 config/tc-arm.c:27802 +#: config/tc-arm.c:28084 #, c-format msgid "undefined symbol %s used as an immediate value" msgstr "símbolo indefinido %s utilizado como un valor inmediato" -#: config/tc-aarch64.c:7539 +#: config/tc-aarch64.c:9684 msgid "pc-relative load offset not word aligned" msgstr "el desplazamiento de carga relativa a pc sin word alineado" -#: config/tc-aarch64.c:7542 +#: config/tc-aarch64.c:9687 msgid "pc-relative load offset out of range" msgstr "el desplazamiento de carga pc-relativa fuera de rango" -#: config/tc-aarch64.c:7554 +#: config/tc-aarch64.c:9699 msgid "pc-relative address offset out of range" msgstr "la dirección pc-relativa desplazada fuera del rango" -#: config/tc-aarch64.c:7566 config/tc-aarch64.c:7581 +#: config/tc-aarch64.c:9711 config/tc-aarch64.c:9726 msgid "conditional branch target not word aligned" msgstr "destino condicional ramificado no alineado con palabra" -#: config/tc-aarch64.c:7569 config/tc-aarch64.c:7584 config/tc-arm.c:23831 +#: config/tc-aarch64.c:9714 config/tc-aarch64.c:9729 config/tc-arm.c:28379 msgid "conditional branch out of range" -msgstr "ramificación condicional fuera de límite" +msgstr "ramificación condicional fuera de rango" -#: config/tc-aarch64.c:7597 +#: config/tc-aarch64.c:9742 msgid "branch target not word aligned" msgstr "ramificación destino no alineado con palabra" -#: config/tc-aarch64.c:7600 config/tc-arm.c:822 config/tc-mips.c:15683 -#: config/tc-mips.c:15699 config/tc-mips.c:15789 +#: config/tc-aarch64.c:9745 config/tc-arm.c:916 config/tc-arm.c:29185 +#: config/tc-kvx.c:1725 config/tc-kvx.c:1731 config/tc-mips.c:16075 +#: config/tc-mips.c:16091 config/tc-mips.c:16181 msgid "branch out of range" -msgstr "ramificación fuera de límite" +msgstr "ramificación fuera de rango" -#: config/tc-aarch64.c:7652 config/tc-arm.c:23431 config/tc-arm.c:23446 -#: config/tc-arm.c:23461 config/tc-arm.c:23472 config/tc-arm.c:23495 -#: config/tc-arm.c:24293 config/tc-moxie.c:716 config/tc-pj.c:452 -#: config/tc-sh.c:4293 +#: config/tc-aarch64.c:9804 config/tc-arm.c:27975 config/tc-arm.c:27990 +#: config/tc-arm.c:28005 config/tc-arm.c:28016 config/tc-arm.c:28039 +#: config/tc-arm.c:28889 config/tc-moxie.c:714 config/tc-pj.c:449 +#: config/tc-sh.c:3713 msgid "offset out of range" -msgstr "desplazamiento fuera de límite" +msgstr "desplazamiento fuera de rango" -#: config/tc-aarch64.c:7667 +#: config/tc-aarch64.c:9819 msgid "unsigned value out of range" msgstr "valor sin signo fuera del límite" -#: config/tc-aarch64.c:7675 +#: config/tc-aarch64.c:9830 msgid "signed value out of range" -msgstr "valor firmado fuera de límite" +msgstr "valor firmado fuera de rango" -#: config/tc-aarch64.c:7817 +#: config/tc-aarch64.c:9985 #, c-format msgid "unexpected %s fixup" msgstr "corrección inesperada %s" -#: config/tc-aarch64.c:7883 config/tc-arm.c:24802 config/tc-arm.c:24823 -#: config/tc-mips.c:18038 config/tc-or1k.c:348 config/tc-score.c:7480 +#: config/tc-aarch64.c:10049 config/tc-arm.c:29604 config/tc-arm.c:29625 +#: config/tc-mips.c:18444 config/tc-or1k.c:342 config/tc-score.c:7391 #, c-format msgid "cannot represent %s relocation in this object file format" msgstr "no se puede representar la reubicación %s en este formato de fichero objeto" -#: config/tc-aarch64.c:7916 +#: config/tc-aarch64.c:10096 #, c-format msgid "cannot do %u-byte relocation" msgstr "no puede hacer reubicación %u-bytes" -#: config/tc-aarch64.c:8227 config/tc-arm.c:25283 config/tc-score.c:6297 -#: config/tc-score.c:6527 config/tc-score.c:6532 -msgid "virtual memory exhausted" -msgstr "memoria agotada" - -#: config/tc-aarch64.c:8385 config/tc-arm.c:25622 +#: config/tc-aarch64.c:10524 config/tc-arm.c:30425 msgid "assemble for big-endian" msgstr "ensamblar para big-endian" -#: config/tc-aarch64.c:8386 config/tc-arm.c:25623 +#: config/tc-aarch64.c:10525 config/tc-arm.c:30426 msgid "assemble for little-endian" msgstr "ensamblar para little-endian" -#: config/tc-aarch64.c:8389 +#: config/tc-aarch64.c:10528 msgid "temporary switch for dumping" msgstr "intercambiado temporal para volcado" -#: config/tc-aarch64.c:8391 +#: config/tc-aarch64.c:10530 msgid "output verbose error messages" msgstr "mensajes de error detallado saliente" -#: config/tc-aarch64.c:8393 +#: config/tc-aarch64.c:10532 msgid "do not output verbose error messages" msgstr "no sacar mensajes de error detallados" -#: config/tc-aarch64.c:8601 config/tc-arm.c:26444 +#: config/tc-aarch64.c:10876 config/tc-arm.c:31614 msgid "invalid architectural extension" msgstr "extensión de arquitectura no válida" -#: config/tc-aarch64.c:8626 config/tc-arm.c:26476 +#: config/tc-aarch64.c:10901 config/tc-arm.c:31646 msgid "must specify extensions to add before specifying those to remove" msgstr "se deben especificar extensiones para agregar antes de especificar las que se borrarán" -#: config/tc-aarch64.c:8634 config/tc-arm.c:26484 +#: config/tc-aarch64.c:10909 config/tc-arm.c:31654 msgid "missing architectural extension" msgstr "ausente la extensión de la arquitectura" -#: config/tc-aarch64.c:8661 config/tc-arm.c:26536 +#: config/tc-aarch64.c:10937 config/tc-arm.c:31740 #, c-format msgid "unknown architectural extension `%s'" msgstr "desconoce extensión arquitectural «%s»" -#: config/tc-aarch64.c:8685 config/tc-arm.c:26570 config/tc-metag.c:5834 +#: config/tc-aarch64.c:10962 config/tc-arm.c:31790 config/tc-metag.c:5832 #, c-format msgid "missing cpu name `%s'" msgstr "ausente el nombre de cpu «%s»" -#: config/tc-aarch64.c:8699 config/tc-aarch64.c:8916 config/tc-arm.c:26605 -#: config/tc-arm.c:27369 config/tc-metag.c:5845 +#: config/tc-aarch64.c:10973 config/tc-aarch64.c:11194 config/tc-arm.c:31825 +#: config/tc-arm.c:32645 config/tc-csky.c:1218 config/tc-metag.c:5843 #, c-format msgid "unknown cpu `%s'" msgstr "desconoce cpu `%s'" -#: config/tc-aarch64.c:8717 config/tc-arm.c:26623 +#: config/tc-aarch64.c:10991 config/tc-arm.c:31843 #, c-format msgid "missing architecture name `%s'" msgstr "ausente el nombre de arquitectura «%s»" -#: config/tc-aarch64.c:8731 config/tc-aarch64.c:8963 config/tc-arm.c:26640 -#: config/tc-arm.c:27404 config/tc-arm.c:27434 config/tc-score.c:7715 +#: config/tc-aarch64.c:11002 config/tc-aarch64.c:11239 config/tc-arm.c:31865 +#: config/tc-arm.c:32685 config/tc-arm.c:32721 config/tc-score.c:7626 #, c-format msgid "unknown architecture `%s'\n" msgstr "desconoce arquitectura «%s» \n" -#: config/tc-aarch64.c:8754 +#: config/tc-aarch64.c:11029 #, c-format msgid "missing abi name `%s'" msgstr "ausentando nombre abi «%s»" -#: config/tc-aarch64.c:8765 +#: config/tc-aarch64.c:11040 #, c-format msgid "unknown abi `%s'\n" msgstr "desconoce abi «%s»\n" -#: config/tc-aarch64.c:8771 +#: config/tc-aarch64.c:11053 msgid "<abi name>\t specify for ABI <abi name>" msgstr "<nombre abi>\t\t específicamente para ABI <nombre abi>" -#: config/tc-aarch64.c:8774 config/tc-arm.c:26727 config/tc-metag.c:5911 +#: config/tc-aarch64.c:11055 config/tc-arm.c:31952 config/tc-metag.c:5909 msgid "<cpu name>\t assemble for CPU <cpu name>" msgstr "<nombre cpu>\t ensambla para el CPU <nombre cpu>" -#: config/tc-aarch64.c:8776 config/tc-arm.c:26729 +#: config/tc-aarch64.c:11057 config/tc-arm.c:31954 msgid "<arch name>\t assemble for architecture <arch name>" msgstr "<nombre arq>\t ensambla para la arquitectura <nombre arq>" -#: config/tc-aarch64.c:8815 config/tc-aarch64.c:8835 config/tc-arm.c:26785 -#: config/tc-arm.c:26803 config/tc-arm.c:26823 config/tc-metag.c:5936 +#: config/tc-aarch64.c:11096 config/tc-aarch64.c:11115 config/tc-arm.c:32022 +#: config/tc-arm.c:32040 config/tc-arm.c:32060 config/tc-metag.c:5933 #, c-format msgid "option `-%c%s' is deprecated: %s" msgstr "la opción `-%c%s' es obsoleta: %s" -#: config/tc-aarch64.c:8855 +#: config/tc-aarch64.c:11135 #, c-format msgid " AArch64-specific assembler options:\n" msgstr " Opciones de ensamblador específicas de AArch64:\n" -#: config/tc-aarch64.c:8866 config/tc-arc.c:3536 config/tc-arm.c:26854 +#: config/tc-aarch64.c:11146 config/tc-arc.c:3598 config/tc-arm.c:32091 #, c-format msgid " -EB assemble code for a big-endian cpu\n" msgstr " -EB ensambla código para un cpu big-endian\n" -#: config/tc-aarch64.c:8871 config/tc-arc.c:3538 config/tc-arm.c:26859 +#: config/tc-aarch64.c:11151 config/tc-arc.c:3600 config/tc-arm.c:32096 #, c-format msgid " -EL assemble code for a little-endian cpu\n" msgstr " -EL ensambla código para un cpu little-endian\n" -#: config/tc-alpha.c:653 +#: config/tc-alpha.c:648 #, c-format msgid "No !literal!%ld was found" msgstr "Ningún !literal!%ld fue encontrado" -#: config/tc-alpha.c:660 +#: config/tc-alpha.c:655 #, c-format msgid "No !tlsgd!%ld was found" msgstr "Ningún !tlsgd!%ld fue encontrado" -#: config/tc-alpha.c:667 +#: config/tc-alpha.c:662 #, c-format msgid "No !tlsldm!%ld was found" msgstr "Ningún !tlsldm!%ld fue encontrado" -#: config/tc-alpha.c:676 +#: config/tc-alpha.c:671 #, c-format msgid "No ldah !gpdisp!%ld was found" msgstr "Ningún ldah !gpdisp!%ld fue encontrado" -#: config/tc-alpha.c:726 +#: config/tc-alpha.c:721 #, c-format msgid "too many !literal!%ld for %s" msgstr "demasiados !literal!%ld para %s" -#: config/tc-alpha.c:756 +#: config/tc-alpha.c:751 #, c-format msgid "No lda !gpdisp!%ld was found" msgstr "No se encontró un lda !gpdisp!%ld" #. Only support one relocation op per insn. -#: config/tc-alpha.c:915 +#: config/tc-alpha.c:910 msgid "More than one relocation op per insn" msgstr "Más de un operador de reubicación por insn" -#: config/tc-alpha.c:930 config/tc-arc.c:1197 +#: config/tc-alpha.c:925 config/tc-arc.c:1137 msgid "No relocation operand" msgstr "No hay un operando de reubicación" -#: config/tc-alpha.c:940 +#: config/tc-alpha.c:935 #, c-format msgid "Unknown relocation operand: !%s" msgstr "Operando de reubicación desconocido: !%s" -#: config/tc-alpha.c:950 +#: config/tc-alpha.c:945 #, c-format msgid "no sequence number after !%s" msgstr "no hay un número de secuencia tras !%s" -#: config/tc-alpha.c:960 +#: config/tc-alpha.c:955 #, c-format msgid "!%s does not use a sequence number" msgstr "!%s no utiliza un número de secuencia" -#: config/tc-alpha.c:970 +#: config/tc-alpha.c:965 #, c-format msgid "Bad sequence number: !%s!%s" -msgstr "Secuencia de números equivocada: !%s!%s" +msgstr "Secuencia de números incorrecta: !%s!%s" -#: config/tc-alpha.c:1186 config/tc-alpha.c:3360 +#: config/tc-alpha.c:1185 config/tc-alpha.c:3359 #, c-format msgid "inappropriate arguments for opcode `%s'" msgstr "argumentos inapropiados para el código operacional «%s»" -#: config/tc-alpha.c:1188 config/tc-alpha.c:3362 +#: config/tc-alpha.c:1187 config/tc-alpha.c:3361 #, c-format msgid "opcode `%s' not supported for target %s" msgstr "no se admite el código operacional «%s» para el objetivo %s" -#: config/tc-alpha.c:1192 config/tc-alpha.c:3366 config/tc-avr.c:1904 -#: config/tc-msp430.c:3988 config/tc-wasm32.c:753 +#: config/tc-alpha.c:1191 config/tc-alpha.c:3365 config/tc-avr.c:1914 +#: config/tc-msp430.c:4363 config/tc-wasm32.c:753 #, c-format msgid "unknown opcode `%s'" msgstr "código operacional desconocido «%s»" -#: config/tc-alpha.c:1273 config/tc-alpha.c:1532 +#: config/tc-alpha.c:1271 config/tc-alpha.c:1530 msgid "overflow in literal (.lita) table" msgstr "desbordamiento en la distribución (.lita) literal" -#: config/tc-alpha.c:1280 config/tc-alpha.c:1304 config/tc-alpha.c:1545 -#: config/tc-alpha.c:2232 config/tc-alpha.c:2277 config/tc-alpha.c:2346 -#: config/tc-alpha.c:2429 config/tc-alpha.c:2654 config/tc-alpha.c:2752 +#: config/tc-alpha.c:1278 config/tc-alpha.c:1302 config/tc-alpha.c:1543 +#: config/tc-alpha.c:2230 config/tc-alpha.c:2275 config/tc-alpha.c:2344 +#: config/tc-alpha.c:2427 config/tc-alpha.c:2652 config/tc-alpha.c:2750 msgid "macro requires $at register while noat in effect" msgstr "la macro requiere el registro $at mientras noat está en efecto" -#: config/tc-alpha.c:1282 config/tc-alpha.c:1306 config/tc-alpha.c:1547 +#: config/tc-alpha.c:1280 config/tc-alpha.c:1304 config/tc-alpha.c:1545 msgid "macro requires $at while $at in use" msgstr "la macro requiere $at mientras $at está en uso" -#: config/tc-alpha.c:1491 +#: config/tc-alpha.c:1489 msgid "bignum invalid; zero assumed" msgstr "bignum inválido; se asume cero" -#: config/tc-alpha.c:1493 +#: config/tc-alpha.c:1491 msgid "floating point number invalid; zero assumed" msgstr "número de coma flotante inválido; se asume cero" -#: config/tc-alpha.c:1498 +#: config/tc-alpha.c:1496 msgid "can't handle expression" msgstr "no se puede manipular la expresión" -#: config/tc-alpha.c:1538 +#: config/tc-alpha.c:1536 msgid "overflow in literal (.lit8) table" msgstr "desbordamiento en la distribución (.lit8) literal" -#: config/tc-alpha.c:1835 +#: config/tc-alpha.c:1833 #, c-format msgid "too many ldah insns for !gpdisp!%ld" msgstr "demasiadas insns ldah para !gpdisp!%ld" -#: config/tc-alpha.c:1837 config/tc-alpha.c:1849 +#: config/tc-alpha.c:1835 config/tc-alpha.c:1847 #, c-format msgid "both insns for !gpdisp!%ld must be in the same section" msgstr "ambas insns para !gpdisp!%ld deben estar en la misma sección" -#: config/tc-alpha.c:1847 +#: config/tc-alpha.c:1845 #, c-format msgid "too many lda insns for !gpdisp!%ld" msgstr "demasiadas insns lda para !gpdisp!%ld" -#: config/tc-alpha.c:1903 +#: config/tc-alpha.c:1901 #, c-format msgid "too many lituse insns for !lituse_tlsgd!%ld" msgstr "demasiadas insns lituse para !lituse_tlsgd!%ld" -#: config/tc-alpha.c:1906 +#: config/tc-alpha.c:1904 #, c-format msgid "too many lituse insns for !lituse_tlsldm!%ld" msgstr "demasiadas insns lituse para !lituse_tlsldm!%ld" -#: config/tc-alpha.c:1923 +#: config/tc-alpha.c:1921 #, c-format msgid "duplicate !tlsgd!%ld" msgstr "!tlsgd!%ld duplicado" -#: config/tc-alpha.c:1925 +#: config/tc-alpha.c:1923 #, c-format msgid "sequence number in use for !tlsldm!%ld" msgstr "número de secuencia en uso para !tlsldm!%ld" -#: config/tc-alpha.c:1939 +#: config/tc-alpha.c:1937 #, c-format msgid "duplicate !tlsldm!%ld" msgstr "duplica !tlsldm!%ld" -#: config/tc-alpha.c:1941 +#: config/tc-alpha.c:1939 #, c-format msgid "sequence number in use for !tlsgd!%ld" msgstr "número de secuencia en uso para !tlsgd!%ld" -#: config/tc-alpha.c:1996 config/tc-arc.c:2806 config/tc-mn10200.c:854 -#: config/tc-mn10300.c:1150 config/tc-ppc.c:1953 config/tc-s390.c:675 -#: config/tc-tilegx.c:427 config/tc-tilegx.c:477 config/tc-tilepro.c:383 +#: config/tc-alpha.c:1994 config/tc-arc.c:2870 config/tc-mn10200.c:848 +#: config/tc-mn10300.c:1150 config/tc-ppc.c:2065 config/tc-tilegx.c:422 +#: config/tc-tilegx.c:472 config/tc-tilepro.c:375 msgid "operand" msgstr "operando" -#: config/tc-alpha.c:2135 +#: config/tc-alpha.c:2133 msgid "invalid relocation for instruction" msgstr "reubicación no válida para la instrucción" -#: config/tc-alpha.c:2149 +#: config/tc-alpha.c:2147 msgid "invalid relocation for field" msgstr "reubicación no válida para el campo" -#: config/tc-alpha.c:2981 +#: config/tc-alpha.c:2979 msgid "can not resolve expression" msgstr "no se puede resolver la expresión" -#: config/tc-alpha.c:3514 config/tc-i370.c:1056 config/tc-microblaze.c:200 -#: config/tc-ppc.c:2275 config/tc-ppc.c:5394 +#: config/tc-alpha.c:3514 config/tc-microblaze.c:183 config/tc-ppc.c:2407 #, c-format msgid ".COMMon length (%ld.) <0! Ignored." msgstr "¡Longitud de .COMM (%ld.) <0! Se descarta." -#: config/tc-alpha.c:3525 config/tc-ia64.c:1094 config/tc-sparc.c:4435 -#: config/tc-v850.c:306 +#: config/tc-alpha.c:3525 config/tc-ia64.c:1091 config/tc-sparc.c:4273 +#: config/tc-v850.c:303 msgid "Ignoring attempt to re-define symbol" msgstr "Se descarta el intento de redefinir el símbolo" -#: config/tc-alpha.c:3617 config/tc-sparc.c:4443 +#: config/tc-alpha.c:3617 config/tc-sparc.c:4281 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld." msgstr "La longitud de .comm «%s» ya es %ld. No se cambia a %ld." @@ -2312,7 +2849,7 @@ msgstr "la directiva .ent no tiene nombre" msgid "nested .ent directives" msgstr "directivas .ent anidadas" -#: config/tc-alpha.c:3776 ecoff.c:3008 +#: config/tc-alpha.c:3776 ecoff.c:2996 msgid ".end directive has no name" msgstr "la directiva .end no tiene nombre" @@ -2324,30 +2861,30 @@ msgstr "directiva .end sin una directiva .ent coincidente" msgid ".end directive names different symbol than .ent" msgstr "la directiva .end nombra un símbolo diferente de .ent" -#: config/tc-alpha.c:3829 ecoff.c:3145 +#: config/tc-alpha.c:3829 ecoff.c:3132 msgid ".fmask outside of .ent" msgstr ".fmask fuera de .ent" -#: config/tc-alpha.c:3831 config/tc-score.c:5598 ecoff.c:3209 +#: config/tc-alpha.c:3831 config/tc-score.c:5582 ecoff.c:3196 msgid ".mask outside of .ent" msgstr ".mask fuera de .ent" -#: config/tc-alpha.c:3839 ecoff.c:3152 +#: config/tc-alpha.c:3839 ecoff.c:3139 msgid "bad .fmask directive" -msgstr "directiva .fmask equivocada" +msgstr "directiva .fmask incorrecta" -#: config/tc-alpha.c:3841 ecoff.c:3216 +#: config/tc-alpha.c:3841 ecoff.c:3203 msgid "bad .mask directive" -msgstr "directiva .mask equivocada" +msgstr "directiva .mask incorrecta" -#: config/tc-alpha.c:3874 config/tc-mips.c:19507 config/tc-score.c:5739 -#: ecoff.c:3173 +#: config/tc-alpha.c:3874 config/tc-mips.c:19926 config/tc-score.c:5716 +#: ecoff.c:3160 msgid ".frame outside of .ent" msgstr ".frame fuera de .ent" -#: config/tc-alpha.c:3885 config/tc-mips.c:19518 ecoff.c:3184 +#: config/tc-alpha.c:3885 config/tc-mips.c:19937 ecoff.c:3171 msgid "bad .frame directive" -msgstr "directiva .frame equivocada" +msgstr "directiva .frame incorrecta" #: config/tc-alpha.c:3919 msgid ".prologue directive without a preceding .ent directive" @@ -2381,7 +2918,7 @@ msgstr "desconoce argumento para .usepv" #: config/tc-alpha.c:4274 #, c-format msgid "unknown section attribute %s" -msgstr "atributo seccional %s desconocido" +msgstr "atributo de sección %s desconocido" #: config/tc-alpha.c:4369 msgid "previous .ent not closed by a .end" @@ -2397,16 +2934,16 @@ msgstr "la directiva .handler no tiene nombre" #: config/tc-alpha.c:4446 msgid "Bad .frame directive 1./2. param" -msgstr "Parámetro 1./2. de directiva .frame equivocado" +msgstr "Parámetro 1./2. de directiva .frame incorrecto" #: config/tc-alpha.c:4456 #, c-format msgid "Bad RA (%d) register for .frame" -msgstr "RA equivocado (%d) registrador para marco .frame" +msgstr "RA incorrecto (%d) registrador para marco .frame" #: config/tc-alpha.c:4461 msgid "Bad .frame directive 3./4. param" -msgstr "Parámetro 3./4. de directiva .frame equivocado" +msgstr "Parámetro 3./4. de directiva .frame incorrecto" #: config/tc-alpha.c:4497 msgid ".pdesc directive not in link (.link) section" @@ -2418,7 +2955,7 @@ msgstr "la directiva .pdesc no tiene un símbolo de entrada" #: config/tc-alpha.c:4515 msgid ".pdesc has a bad entry symbol" -msgstr ".pdesc tiene un símbolo de entrada equivocado" +msgstr ".pdesc tiene un símbolo de entrada incorrecto" #: config/tc-alpha.c:4526 msgid ".pdesc doesn't match with last .ent" @@ -2448,13 +2985,13 @@ msgstr "No hay un símbolo tras .linkage" msgid "No symbol after .code_address" msgstr "No hay un símbolo tras .code_address" -#: config/tc-alpha.c:4771 config/tc-score.c:5604 +#: config/tc-alpha.c:4771 config/tc-score.c:5588 msgid "Bad .mask directive" -msgstr "Directiva .mask equivocada" +msgstr "Directiva .mask incorrecta" #: config/tc-alpha.c:4789 msgid "Bad .fmask directive" -msgstr "Directiva .fmask equivocada" +msgstr "Directiva .fmask incorrecta" #: config/tc-alpha.c:4946 #, c-format @@ -2474,19 +3011,19 @@ msgstr "Intentó establecer .set al modo no reconocido «%s»" #: config/tc-alpha.c:5017 #, c-format msgid "Bad base register, using $%d." -msgstr "Registro base equivocado, se usa $%d." +msgstr "Registro base incorrecto, se usa $%d." -#: config/tc-alpha.c:5038 config/tc-nios2.c:351 config/tc-nios2.c:476 +#: config/tc-alpha.c:5038 #, c-format msgid "Alignment too large: %d. assumed" msgstr "Alineación demasiado grande: %d asumido" -#: config/tc-alpha.c:5042 config/tc-d30v.c:2057 config/tc-nios2.c:355 -#: config/tc-nios2.c:480 config/tc-pru.c:220 config/tc-pru.c:336 +#: config/tc-alpha.c:5042 config/tc-d30v.c:2034 config/tc-pru.c:220 +#: config/tc-pru.c:336 msgid "Alignment negative: 0 assumed" msgstr "Alineación negativa: se asume 0" -#: config/tc-alpha.c:5137 config/tc-alpha.c:5630 +#: config/tc-alpha.c:5137 config/tc-alpha.c:5628 #, c-format msgid "Unknown CPU identifier `%s'" msgstr "Desconoce identificador de CPU «%s»" @@ -2498,26 +3035,35 @@ msgstr "Escoja el valor GP de %lx\n" #: config/tc-alpha.c:5342 msgid "bad .section directive: want a,s,w,x,M,S,G,T in string" -msgstr "directiva .section equivocada: se quiere a,s,w,x,M,S,G,T en la cadena" - -#: config/tc-alpha.c:5431 -#, c-format -msgid "internal error: can't hash opcode `%s': %s" -msgstr "error interno: no se puede dispersar el código operacional «%s»: %s" - -#: config/tc-alpha.c:5467 -#, c-format -msgid "internal error: can't hash macro `%s': %s" -msgstr "error interno: no se puede dispersar la macro «%s»: %s" +msgstr "directiva .section incorrecta: se quiere a,s,w,x,M,S,G,T en la cadena" + +#: config/tc-alpha.c:5430 config/tc-alpha.c:5466 config/tc-arc.c:768 +#: config/tc-arc.c:2564 config/tc-arc.c:2596 config/tc-arc.c:2702 +#: config/tc-cr16.c:807 config/tc-cr16.c:826 config/tc-cris.c:1223 +#: config/tc-crx.c:510 config/tc-crx.c:532 config/tc-crx.c:543 +#: config/tc-dlx.c:289 config/tc-hppa.c:8252 config/tc-i386.c:3490 +#: config/tc-i386.c:3535 config/tc-ia64.c:5360 config/tc-ia64.c:7399 +#: config/tc-ia64.c:7458 config/tc-kvx.c:1478 config/tc-m68k.c:4556 +#: config/tc-m68k.c:4568 config/tc-mips.c:3709 config/tc-mips.c:3742 +#: config/tc-mips.c:3768 config/tc-nds32.c:3440 config/tc-ns32k.c:1906 +#: config/tc-ppc.c:1745 config/tc-ppc.c:1785 config/tc-pru.c:1576 +#: config/tc-pru.c:1580 config/tc-s390.c:611 config/tc-s390.c:649 +#: config/tc-sparc.c:961 config/tc-sparc.c:993 config/tc-tic30.c:121 +#: config/tc-tic30.c:131 config/tc-tic30.c:141 config/tc-tic30.c:151 +#: config/tc-tic4x.c:1219 config/tc-tilegx.c:316 config/tc-tilepro.c:252 +#: config/tc-vax.c:965 config/tc-vax.c:970 ecoff.c:1582 +#, fuzzy, c-format +#| msgid "duplicated `%s'" +msgid "duplicate %s" +msgstr "duplicado «%s»" -#: config/tc-alpha.c:5551 config/tc-arc.c:2459 config/tc-arc.c:2473 -#: config/tc-arm.c:7288 config/tc-arm.c:7300 config/tc-i960.c:706 -#: config/tc-xtensa.c:5432 config/tc-xtensa.c:5508 config/tc-xtensa.c:5625 -#: config/tc-z80.c:1935 +#: config/tc-alpha.c:5549 config/tc-arc.c:2532 config/tc-arc.c:2546 +#: config/tc-arm.c:888 config/tc-xtensa.c:5473 config/tc-xtensa.c:5549 +#: config/tc-xtensa.c:5666 config/tc-z80.c:3677 msgid "syntax error" -msgstr "error sintáctico" +msgstr "error de sintaxis" -#: config/tc-alpha.c:5681 +#: config/tc-alpha.c:5679 msgid "" "Alpha options:\n" "-32addr\t\t\ttreat addresses as 32-bit values\n" @@ -2535,7 +3081,7 @@ msgstr "" "-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264 | -m21264a | -m21264b\n" "\t\t\testas variantes incluyen códigos operacionales PALcode\n" -#: config/tc-alpha.c:5691 +#: config/tc-alpha.c:5689 msgid "" "VMS options:\n" "-+\t\t\tencode (don't truncate) names longer than 64 characters\n" @@ -2547,203 +3093,209 @@ msgstr "" "-H\t\t\tmuestra el símbolo nuevo tras truncado por dispersión\n" "-replace/-noreplace\tactiva o desactiva la optimización de llamadas a procedimiento\n" -#: config/tc-alpha.c:5942 config/tc-arc.c:3086 +#: config/tc-alpha.c:5946 config/tc-arc.c:3145 #, c-format msgid "unhandled relocation type %s" msgstr "tipo reubicado %s sin manipular" -#: config/tc-alpha.c:5955 config/tc-arc.c:3094 +#: config/tc-alpha.c:5959 config/tc-arc.c:3153 msgid "non-absolute expression in constant field" msgstr "expresión no absoluta en campo constante" -#: config/tc-alpha.c:5969 +#: config/tc-alpha.c:5973 #, c-format msgid "type %d reloc done?\n" msgstr "¿tipo %d de reubicación hecha?\n" -#: config/tc-alpha.c:6016 config/tc-alpha.c:6023 +#: config/tc-alpha.c:6020 config/tc-alpha.c:6027 msgid "Used $at without \".set noat\"" msgstr "Se utilizó $at sin \".set noat\"" -#: config/tc-alpha.c:6192 +#: config/tc-alpha.c:6196 #, c-format msgid "!samegp reloc against symbol without .prologue: %s" msgstr "reubicación !samegp contra un símbolo sin .prologue: %s" -#: config/tc-alpha.c:6236 config/tc-arc.c:3217 config/tc-tilegx.c:1751 -#: config/tc-tilepro.c:1531 config/tc-wasm32.c:813 config/tc-xtensa.c:6118 +#: config/tc-alpha.c:6240 config/tc-arc.c:3276 config/tc-csky.c:5668 +#: config/tc-tilegx.c:1745 config/tc-tilepro.c:1522 config/tc-wasm32.c:813 +#: config/tc-xtensa.c:6176 #, c-format msgid "cannot represent `%s' relocation in object file" msgstr "no se puede representar la reubicación «%s» en el fichero objeto" -#: config/tc-alpha.c:6242 config/tc-arc.c:3223 +#: config/tc-alpha.c:6246 config/tc-arc.c:3282 #, c-format msgid "internal error? cannot generate `%s' relocation" msgstr "error interno? incapaz de generar «%s» reubicado" -#: config/tc-alpha.c:6338 +#: config/tc-alpha.c:6342 #, c-format msgid "frame reg expected, using $%d." msgstr "se esperaba un registro de marco, se usa $%d." -#: config/tc-arc.c:771 -#, c-format -msgid "internal error: can't hash opcode '%s': %s" -msgstr "error interno: no se puede dispersar el código operacional «%s»: %s" - -#: config/tc-arc.c:779 config/tc-arc.c:2556 config/tc-arc.c:2574 -#: config/tc-arc.c:2627 config/tc-arc.c:2651 config/tc-arc.c:4850 -#: config/tc-arc.c:4917 config/tc-cr16.c:805 config/tc-cr16.c:828 -#: config/tc-cris.c:1195 config/tc-crx.c:535 config/tc-crx.c:562 -#: config/tc-crx.c:580 config/tc-pdp11.c:193 -msgid "Virtual memory exhausted" -msgstr "Memoria agotada" - -#: config/tc-arc.c:829 +#: config/tc-arc.c:831 #, c-format msgid "invalid %s option for %s cpu" msgstr "opción %s no válida para %s cpu" -#: config/tc-arc.c:834 +#: config/tc-arc.c:836 msgid "conflicting ISA extension attributes." msgstr "extensión ISA en conflicto de atributos." -#: config/tc-arc.c:853 +#: config/tc-arc.c:856 msgid "Multiple .cpu directives found" msgstr "Encontradas directivas .cpu múltiples" -#: config/tc-arc.c:871 +#: config/tc-arc.c:874 msgid "Command-line value overrides \".cpu\" directive" msgstr "" -#: config/tc-arc.c:888 +#: config/tc-arc.c:890 #, c-format msgid "unknown architecture: %s\n" msgstr "desconoce arquitectura: %s\n" -#: config/tc-arc.c:1187 +#: config/tc-arc.c:901 config/tc-ia64.c:7468 config/tc-tilegx.c:262 +msgid "Could not set architecture and machine" +msgstr "No se pueden establecer la arquitectura y la máquina" + +#: config/tc-arc.c:1126 msgid "No valid label relocation operand" msgstr "Operando etiquetado reubicado no válido" -#: config/tc-arc.c:1209 +#: config/tc-arc.c:1150 #, c-format msgid "Unknown relocation operand: @%s" msgstr "Operando de reubicación desconocido: @%s" -#: config/tc-arc.c:1222 +#: config/tc-arc.c:1163 #, c-format msgid "Unable to parse TLS base: %s" msgstr "Imposible interpretar base TLS: %s" -#: config/tc-arc.c:1246 +#: config/tc-arc.c:1186 #, c-format msgid "@%s is not a complex relocation." msgstr "@%s no es una reubicación compleja." -#: config/tc-arc.c:1252 +#: config/tc-arc.c:1193 #, c-format msgid "Bad expression: @%s + %s." -msgstr "Expresión equivocada: @%s + %s." +msgstr "Expresión incorrecta: @%s + %s." -#: config/tc-arc.c:1313 +#: config/tc-arc.c:1343 msgid "Brackets in operand field incorrect" msgstr "Corchetes en campo operativo incorrecto" -#: config/tc-arc.c:1315 config/tc-xtensa.c:2038 +#: config/tc-arc.c:1345 config/tc-xtensa.c:2072 msgid "extra comma" msgstr "coma extra" -#: config/tc-arc.c:1317 config/tc-pru.c:1443 config/tc-pru.c:1710 -#: config/tc-xtensa.c:2042 +#: config/tc-arc.c:1347 config/tc-pru.c:1457 config/tc-pru.c:1705 +#: config/tc-xtensa.c:2076 msgid "missing argument" msgstr "ausente el argumento" -#: config/tc-arc.c:1319 config/tc-xtensa.c:2044 +#: config/tc-arc.c:1349 config/tc-xtensa.c:2078 msgid "missing comma or colon" msgstr "ausentea coma o punto y coma" -#: config/tc-arc.c:1388 +#: config/tc-arc.c:1418 msgid "extra dot" msgstr "punto adicional" -#: config/tc-arc.c:1390 +#: config/tc-arc.c:1420 msgid "unrecognized flag" msgstr "marca no reconocida" -#: config/tc-arc.c:1392 +#: config/tc-arc.c:1422 msgid "failed to parse flags" msgstr "fallaba interpretar marcas" -#: config/tc-arc.c:1418 +#: config/tc-arc.c:1448 msgid "Unhandled reloc type" msgstr "Tipo reubicado no manipulado" -#: config/tc-arc.c:2427 +#: config/tc-arc.c:1967 +#, fuzzy +#| msgid "immediate out of range" +msgid "immediate is out of bounds" +msgstr "inmediato fuera de rango" + +#: config/tc-arc.c:1975 +#, fuzzy +#| msgid "immediate offset not 2-byte-aligned" +msgid "immediate is not 32bit aligned" +msgstr "el desplazamiento inmediato no está alineado a 2 bytes" + +#: config/tc-arc.c:1982 +#, fuzzy +#| msgid "immediate offset not 2-byte-aligned" +msgid "immediate is not 16bit aligned" +msgstr "el desplazamiento inmediato no está alineado a 2 bytes" + +#: config/tc-arc.c:2063 +#, fuzzy +#| msgid "operand is not an absolute constant" +msgid "operand is not duplicate of the previous one" +msgstr "operando no es una constante absoluta" + +#: config/tc-arc.c:2083 +#, fuzzy +#| msgid "Operand mismatch" +msgid "flag mismatch" +msgstr "No coinciden los operandos" + +#: config/tc-arc.c:2095 config/tc-pru.c:1413 config/tc-pru.c:1438 +#: config/tc-xtensa.c:2142 +msgid "too many arguments" +msgstr "demasiados argumentos" + +#: config/tc-arc.c:2500 #, c-format msgid "%s for instruction '%s'" msgstr "%s para instrucción «%s»" -#: config/tc-arc.c:2429 +#: config/tc-arc.c:2502 #, c-format msgid "inappropriate arguments for opcode '%s'" msgstr "argumentos inapropiados para código operacional «%s»" -#: config/tc-arc.c:2431 +#: config/tc-arc.c:2504 #, c-format msgid "opcode '%s' not supported for target %s" msgstr "no se admite el código operacional «%s» para el destino %s" -#: config/tc-arc.c:2435 config/tc-tic6x.c:3195 +#: config/tc-arc.c:2508 config/tc-tic6x.c:3188 #, c-format msgid "unknown opcode '%s'" msgstr "desconoce código operacional «%s»" -#: config/tc-arc.c:2493 -#, c-format -msgid "Inserting \"%s\" into register table failed: %s" -msgstr "Insertando «%s» dentro de tabla de registro fallada: %s" - -#: config/tc-arc.c:2529 -#, c-format -msgid "Inserting \"%s\" into address type table failed: %s" -msgstr "Insertando «%s» dentro de distribución de tipo direccional fallada: %s" - -#: config/tc-arc.c:2548 config/tc-arc.c:5015 config/tc-h8300.c:81 -#: config/tc-h8300.c:90 config/tc-h8300.c:100 config/tc-h8300.c:110 -#: config/tc-h8300.c:120 config/tc-h8300.c:131 config/tc-h8300.c:248 -#: config/tc-hppa.c:6821 config/tc-hppa.c:6827 config/tc-hppa.c:6833 -#: config/tc-hppa.c:6839 config/tc-hppa.c:8228 config/tc-lm32.c:197 -#: config/tc-mips.c:3588 config/tc-mips.c:4097 config/tc-mn10300.c:935 -#: config/tc-mn10300.c:940 config/tc-mn10300.c:2440 config/tc-xc16x.c:79 -#: config/tc-xc16x.c:86 config/tc-xc16x.c:93 +#: config/tc-arc.c:2614 config/tc-arc.c:5093 config/tc-h8300.c:78 +#: config/tc-h8300.c:87 config/tc-h8300.c:97 config/tc-h8300.c:107 +#: config/tc-h8300.c:117 config/tc-h8300.c:128 config/tc-h8300.c:243 +#: config/tc-hppa.c:6826 config/tc-hppa.c:6832 config/tc-hppa.c:6838 +#: config/tc-hppa.c:6844 config/tc-hppa.c:8231 config/tc-kvx.c:1438 +#: config/tc-lm32.c:197 config/tc-mips.c:3699 config/tc-mips.c:4193 +#: config/tc-mn10300.c:935 config/tc-mn10300.c:940 config/tc-mn10300.c:2438 +#: config/tc-riscv.c:1897 config/tc-riscv.c:5716 msgid "could not set architecture and machine" msgstr "no se pueden establecer la arquitectura y la máquina" -#: config/tc-arc.c:2644 config/tc-arc.c:4837 -#, c-format -msgid "internal error: can't hash aux register '%s': %s" -msgstr "error interno: no se puede dispersar registro aux «%s»: %s" - -#: config/tc-arc.c:2751 +#: config/tc-arc.c:2815 #, c-format msgid "unhandled reloc %s in md_pcrel_from_section" msgstr "compostura de reubicación %s en md_pcrel_from_section" -#: config/tc-arc.c:2816 +#: config/tc-arc.c:2880 msgid "Unaligned operand. Needs to be 32bit aligned" msgstr "Operando no alineado. Requiere ser alineado a 32bit" -#: config/tc-arc.c:2821 +#: config/tc-arc.c:2885 msgid "Unaligned operand. Needs to be 16bit aligned" msgstr "Operando no alineado. Requiere ser alineado a 16-bit" -#: config/tc-arc.c:2898 config/tc-cr16.c:573 config/tc-crx.c:345 -#: config/tc-mn10200.c:766 write.c:1024 -#, c-format -msgid "can't resolve `%s' {%s section} - `%s' {%s section}" -msgstr "no se puede resolver «%s» {sección %s} - «%s» {sección %s}" - -#: config/tc-arc.c:2957 +#: config/tc-arc.c:3016 #, c-format msgid "PC relative relocation not allowed for (internal) type %d" msgstr "PC relativo reubicadado no asumido para tipo (interno) %d" @@ -2752,44 +3304,44 @@ msgstr "PC relativo reubicadado no asumido para tipo (interno) %d" #. the insn. #. FIXME! Check for the conditionality of #. the insn. -#: config/tc-arc.c:3002 config/tc-arc.c:3980 +#: config/tc-arc.c:3061 config/tc-arc.c:4042 msgid "TLS_*_S9 relocs are not supported yet" msgstr "TLS_*_S9 como reubicaciones no son aún admitidas" #. I cannot fix an GOTPC relocation because I need to relax it #. from ld rx,[pcl,@sym@gotpc] to add rx,pcl,@sym@gotpc. -#: config/tc-arc.c:3038 +#: config/tc-arc.c:3097 msgid "Unsupported operation on reloc" msgstr "Operación no soportado en reubicación" -#: config/tc-arc.c:3114 config/tc-arc.c:3130 +#: config/tc-arc.c:3173 config/tc-arc.c:3189 msgid "unknown fixup size" msgstr "desconoce tamaño arreglado" -#: config/tc-arc.c:3264 +#: config/tc-arc.c:3323 msgid "no relaxation found for this instruction." msgstr "ninguna relajación encontrada para esta instrucción." -#: config/tc-arc.c:3514 +#: config/tc-arc.c:3576 #, c-format msgid "ARC-specific assembler options:\n" msgstr "" "Opciones ensambladoras específicas ARC:\n" "\n" -#: config/tc-arc.c:3540 +#: config/tc-arc.c:3602 #, c-format msgid " -mrelax enable relaxation\n" msgstr " -mrelax activa relajación\n" -#: config/tc-arc.c:3543 +#: config/tc-arc.c:3605 #, c-format msgid "" "The following ARC-specific assembler options are deprecated and are accepted\n" "for compatibility only:\n" msgstr "" -#: config/tc-arc.c:3546 +#: config/tc-arc.c:3608 #, c-format msgid "" " -mEA\n" @@ -2844,927 +3396,1180 @@ msgstr "" " -muser-mode-only\n" " -mxy\n" -#: config/tc-arc.c:3636 +#: config/tc-arc.c:3698 #, c-format msgid "Unable to find %s relocation for instruction %s" msgstr "Incapaz encontrar %s reubicacion para instrucción %s" -#: config/tc-arc.c:3931 +#: config/tc-arc.c:3993 #, c-format msgid "Unable to use @plt relocation for insn %s" msgstr "Incapaz de utilizar @plt para reubicación para insn %s" -#: config/tc-arc.c:3950 +#: config/tc-arc.c:4012 #, c-format msgid "Unable to use @pcl relocation for insn %s" msgstr "Incapaz de emplear reubicación @pcl para insn %s" -#: config/tc-arc.c:4006 +#: config/tc-arc.c:4068 #, c-format msgid "invalid relocation %s for field" msgstr "reubicación no válida %s para campo" -#: config/tc-arc.c:4117 +#: config/tc-arc.c:4178 #, c-format msgid "Insn %s has a jump/branch instruction %s in its delay slot." msgstr "Insn %s tiene una instrucción omitida/rama %s dentro de su ranura de retardo." -#: config/tc-arc.c:4122 +#: config/tc-arc.c:4183 #, c-format msgid "Insn %s has an instruction %s with limm in its delay slot." msgstr "Insn %s tiene una instrucción %s con limm en ranura de retardo." -#: config/tc-arc.c:4232 config/tc-microblaze.c:2531 config/tc-mn10300.c:1069 -#: config/tc-sh.c:801 config/tc-z80.c:700 read.c:4600 +#: config/tc-arc.c:4293 config/tc-microblaze.c:2628 config/tc-mn10300.c:1069 +#: config/tc-sh.c:418 config/tc-z80.c:1120 read.c:4837 #, c-format msgid "unsupported BFD relocation size %u" msgstr "no se admite el tamaño de reubicación BFD %u" -#: config/tc-arc.c:4252 +#: config/tc-arc.c:4313 #, c-format msgid "Jump/Branch instruction detected at the end of the ZOL label @%s" msgstr "Omisión/Rama de instrucción detectada al final de la etiqueta ZOL @%s" -#: config/tc-arc.c:4259 +#: config/tc-arc.c:4320 #, c-format msgid "Kernel instruction detected at the end of the ZOL label @%s" msgstr "Instrucción núcleo detectada el final de la etiqueta ZOL @%s" -#: config/tc-arc.c:4264 +#: config/tc-arc.c:4325 #, c-format msgid "A jump instruction with long immediate detected at the end of the ZOL label @%s" msgstr "Una instrucción omitida con longitud inmediata detectada al final de la etiqueta ZOL @%s" -#: config/tc-arc.c:4270 +#: config/tc-arc.c:4331 #, c-format msgid "An illegal use of delay slot detected at the end of the ZOL label @%s" msgstr "" -#: config/tc-arc.c:4375 +#: config/tc-arc.c:4440 msgid "expected comma after instruction name" msgstr "esperaba coma después del nombre de instrucción" -#: config/tc-arc.c:4387 +#: config/tc-arc.c:4452 msgid "expected comma after major opcode" msgstr "esperaba coma tras operación de código mayor" -#: config/tc-arc.c:4573 +#: config/tc-arc.c:4637 #, c-format msgid "Pseudocode already used %s" msgstr "Pseudocódigo ya utilizado %s" -#: config/tc-arc.c:4581 +#: config/tc-arc.c:4645 #, c-format msgid "major opcode not in range [0x%02x - 0x%02x]" msgstr "" -#: config/tc-arc.c:4585 +#: config/tc-arc.c:4649 msgid "minor opcode not in range [0x00 - 0x3f]" msgstr "código operacional menor no dentro del rango [0x00 - 0x3f]" -#: config/tc-arc.c:4591 +#: config/tc-arc.c:4655 msgid "Improper use of OP1_IMM_IMPLIED" msgstr "Utilización impropia de OP1_IMM_IMPLIED" -#: config/tc-arc.c:4597 +#: config/tc-arc.c:4661 msgid "Improper use of OP1_MUST_BE_IMM" msgstr "Utilización impropia de OP1_MUST_BE_IMM" -#: config/tc-arc.c:4609 +#: config/tc-arc.c:4673 msgid "Couldn't generate extension instruction opcodes" msgstr "No pudo generar instrucciones extensas de códigos de operación" -#: config/tc-arc.c:4645 +#: config/tc-arc.c:4708 msgid "expected comma after name" msgstr "esperaba una coma tras el nombre" -#: config/tc-arc.c:4656 +#: config/tc-arc.c:4719 #, c-format msgid "%s second argument cannot be a negative number %d" msgstr "segundo argumento %s no puede ser un número %d negativo" -#: config/tc-arc.c:4671 +#: config/tc-arc.c:4734 msgid "expected comma after register number" msgstr "esperaba coma tras número del registro" -#: config/tc-arc.c:4692 +#: config/tc-arc.c:4755 msgid "invalid mode" msgstr "modo inválido" -#: config/tc-arc.c:4710 +#: config/tc-arc.c:4773 msgid "expected comma after register mode" msgstr "esperaba coma tras modo registro" -#: config/tc-arc.c:4725 +#: config/tc-arc.c:4788 msgid "shortcut designator invalid" msgstr "designador de atajo inválido" -#: config/tc-arc.c:4824 +#: config/tc-arc.c:4886 #, c-format msgid "core register %s value (%d) too large" msgstr "registro %s core con valor (%d) es demasiado grande" -#: config/tc-arc.c:4843 +#: config/tc-arc.c:4898 +#, fuzzy, c-format +#| msgid "duplicate macro %s" +msgid "duplicate aux register %s" +msgstr "macro duplicado %s" + +#: config/tc-arc.c:4903 #, c-format msgid "condition code %s value (%d) too large" msgstr "código %s condicional con valor (%d) es demasiado grande" -#: config/tc-arc.c:4862 +#: config/tc-arc.c:4920 msgid "Unknown extension" msgstr "Desconoce extensión" -#: config/tc-arc.c:4967 +#: config/tc-arc.c:5027 msgid "Overwrite explicitly set Tag_ARC_CPU_base" msgstr "" -#: config/tc-arm.c:619 +#: config/tc-arc.c:5077 +msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file" +msgstr "" + +#: config/tc-arm.c:702 msgid "ARM register expected" msgstr "ARM como registro esperado" -#: config/tc-arm.c:620 +#: config/tc-arm.c:703 msgid "bad or missing co-processor number" -msgstr "número de co-procesador equivocado o ausentente" +msgstr "número de co-procesador incorrecto o ausentente" -#: config/tc-arm.c:621 +#: config/tc-arm.c:704 msgid "co-processor register expected" msgstr "se esperaba un registro de co-procesador" -#: config/tc-arm.c:622 -msgid "FPA register expected" -msgstr "FPA como registros esperado" - -#: config/tc-arm.c:623 +#: config/tc-arm.c:705 msgid "VFP single precision register expected" msgstr "Se esperaba un registro de precisión simple VFP" -#: config/tc-arm.c:624 +#: config/tc-arm.c:706 msgid "VFP/Neon double precision register expected" msgstr "Se esperaba un registro de precisión doble VFP/Neon" -#: config/tc-arm.c:625 +#: config/tc-arm.c:707 msgid "Neon quad precision register expected" msgstr "Se esperaba un registro de precisión cuádruple Neon" -#: config/tc-arm.c:626 +#: config/tc-arm.c:708 msgid "VFP single or double precision register expected" msgstr "Se esperaba un registro de precisión simple o doble VFP" -#: config/tc-arm.c:627 +#: config/tc-arm.c:709 msgid "Neon double or quad precision register expected" msgstr "Se esperaba un registro de precisión doble o cuádruple Neon" -#: config/tc-arm.c:628 +#: config/tc-arm.c:710 msgid "Neon single or double precision register expected" msgstr "Se esperaba un registro de precisión simple o doble Neon" -#: config/tc-arm.c:629 +#: config/tc-arm.c:711 msgid "VFP single, double or Neon quad precision register expected" msgstr "Se esperaba un registro de precisión simple o doble VFP, o cuádruple Neon" -#: config/tc-arm.c:631 +#: config/tc-arm.c:713 msgid "VFP system register expected" msgstr "VFP como registro esperado" -#: config/tc-arm.c:632 -msgid "Maverick MVF register expected" -msgstr "Maverick MVF como registro esperado" - -#: config/tc-arm.c:633 -msgid "Maverick MVD register expected" -msgstr "Maverick MVD como registro esperado" - -#: config/tc-arm.c:634 -msgid "Maverick MVFX register expected" -msgstr "Maverick MVFX como registro esperado" - -#: config/tc-arm.c:635 -msgid "Maverick MVDX register expected" -msgstr "Maverick MVDX como registro esperado" - -#: config/tc-arm.c:636 -msgid "Maverick MVAX register expected" -msgstr "Maverick MVAX como registro esperado" - -#: config/tc-arm.c:637 -msgid "Maverick DSPSC register expected" -msgstr "Maverick DSPSC como registro esperado" - -#: config/tc-arm.c:638 +#: config/tc-arm.c:714 msgid "iWMMXt data register expected" msgstr "se esperaba un registro de datos iWMMXt" -#: config/tc-arm.c:639 config/tc-arm.c:7061 +#: config/tc-arm.c:715 config/tc-arm.c:7745 msgid "iWMMXt control register expected" msgstr "se esperaba un registro de control iWMMXt" -#: config/tc-arm.c:640 +#: config/tc-arm.c:716 msgid "iWMMXt scalar register expected" msgstr "se esperaba un registro escalar iWMMXt" -#: config/tc-arm.c:641 +#: config/tc-arm.c:717 msgid "XScale accumulator register expected" msgstr "XScale como registro acumulado esperado" +#: config/tc-arm.c:718 +#, fuzzy +#| msgid "SVE vector register expected" +msgid "MVE vector register expected" +msgstr "SVE como vector esperaba registro" + +#: config/tc-arm.c:720 +#, fuzzy +#| msgid "ARM register expected" +msgid "ZR register expected" +msgstr "ARM como registro esperado" + +#: config/tc-arm.c:721 +#, fuzzy +#| msgid "base register expected" +msgid "Pseudo register expected" +msgstr "se esperaba un registro base" + #. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message. -#: config/tc-arm.c:803 config/tc-score.c:259 +#: config/tc-arm.c:889 config/tc-score.c:255 msgid "bad arguments to instruction" -msgstr "argumentos equivocados para la instrucción" +msgstr "argumentos incorrectos para la instrucción" -#: config/tc-arm.c:804 +#: config/tc-arm.c:890 msgid "r13 not allowed here" msgstr "no se permite r13 aquí" -#: config/tc-arm.c:805 +#: config/tc-arm.c:891 msgid "r15 not allowed here" msgstr "no se permite r15 aquí" -#: config/tc-arm.c:806 +#: config/tc-arm.c:892 +#, fuzzy +#| msgid "odd register cannot be used here" +msgid "Odd register not allowed here" +msgstr "no se puede usar aquí un registro impar" + +#: config/tc-arm.c:893 +#, fuzzy +#| msgid "r13 not allowed here" +msgid "Even register not allowed here" +msgstr "no se permite r13 aquí" + +#: config/tc-arm.c:894 msgid "instruction cannot be conditional" msgstr "la instrucción no puede ser condicional" -#: config/tc-arm.c:807 +#: config/tc-arm.c:895 msgid "registers may not be the same" msgstr "los registros quizá no son el mismo" -#: config/tc-arm.c:808 +#: config/tc-arm.c:896 msgid "lo register required" msgstr "se requiere el registro lo" -#: config/tc-arm.c:809 +#: config/tc-arm.c:897 msgid "instruction not supported in Thumb16 mode" msgstr "la instrucción no se admite en modo Thumb16" -#: config/tc-arm.c:810 +#: config/tc-arm.c:898 msgid "instruction does not accept this addressing mode" msgstr "la instrucción no acepta este modo de direccionamiento" -#: config/tc-arm.c:811 +#: config/tc-arm.c:899 msgid "branch must be last instruction in IT block" msgstr "branch debe ser la última instrucción en el bloque IT" -#: config/tc-arm.c:812 +#: config/tc-arm.c:900 +#, fuzzy +#| msgid "must branch to an address a multiple of 4" +msgid "branch out of range or not a multiple of 2" +msgstr "se debe ramificar a una dirección que sea múltiplo de 4" + +#: config/tc-arm.c:901 +#, fuzzy +#| msgid "instruction not allowed in IT block" +msgid "instruction not allowed in VPT block" +msgstr "no se permite la instrucción en el bloque IT" + +#: config/tc-arm.c:902 msgid "instruction not allowed in IT block" msgstr "no se permite la instrucción en el bloque IT" -#: config/tc-arm.c:813 +#: config/tc-arm.c:903 +#, fuzzy +#| msgid "No instruction or missing opcode." +msgid "instruction missing MVE vector predication code" +msgstr "No hay instrucción o ausente el código operacional." + +#: config/tc-arm.c:904 msgid "selected FPU does not support instruction" msgstr "la FPU seleccionada no admite la instrucción" -#: config/tc-arm.c:814 +#: config/tc-arm.c:905 msgid "thumb conditional instruction should be in IT block" msgstr "instrucción condicional pulgar debería estar en el bloque IT" -#: config/tc-arm.c:815 +#: config/tc-arm.c:907 +#, fuzzy +#| msgid "thumb conditional instruction should be in IT block" +msgid "vector predicated instruction should be in VPT/VPST block" +msgstr "instrucción condicional pulgar debería estar en el bloque IT" + +#: config/tc-arm.c:908 msgid "incorrect condition in IT block" msgstr "condición incorrecta en el bloque IT" -#: config/tc-arm.c:816 +#: config/tc-arm.c:909 +#, fuzzy +#| msgid "incorrect condition in IT block" +msgid "incorrect condition in VPT/VPST block" +msgstr "condición incorrecta en el bloque IT" + +#: config/tc-arm.c:910 msgid "IT falling in the range of a previous IT block" msgstr "IT cayendo dentro de límite de un bloque IT anterior" -#: config/tc-arm.c:817 +#: config/tc-arm.c:911 msgid "missing .fnstart before unwinding directive" msgstr "ausente .fnstart antes de directiva unwinding" -#: config/tc-arm.c:819 +#: config/tc-arm.c:913 msgid "cannot use register index with PC-relative addressing" msgstr "no se puede usar el índice de registro con direccionamiento relativo al PC" -#: config/tc-arm.c:821 +#: config/tc-arm.c:915 msgid "cannot use writeback with PC-relative addressing" msgstr "no se puede usar retroescritura con el direccionamiento relativo al PC" -#: config/tc-arm.c:823 +#: config/tc-arm.c:917 msgid "selected processor does not support fp16 instruction" msgstr "procesador seleccionado no admite instrucción fp16" -#: config/tc-arm.c:824 +#: config/tc-arm.c:918 +#, fuzzy +#| msgid "selected processor does not support fp16 instruction" +msgid "selected processor does not support bf16 instruction" +msgstr "procesador seleccionado no admite instrucción fp16" + +#: config/tc-arm.c:919 +#, fuzzy +#| msgid "selected processor does not support fp16 instruction" +msgid "selected processor does not support cde instruction" +msgstr "procesador seleccionado no admite instrucción fp16" + +#: config/tc-arm.c:920 +msgid "coprocessor for insn is not enabled for cde" +msgstr "" + +#: config/tc-arm.c:921 msgid "using " msgstr "empleando " -#: config/tc-arm.c:825 +#: config/tc-arm.c:922 msgid "relocation valid in thumb1 code only" msgstr "validación de reubicación en código thumb1 único" -#: config/tc-arm.c:1032 +#: config/tc-arm.c:923 +msgid "Warning: instruction is UNPREDICTABLE in an IT block" +msgstr "" + +#: config/tc-arm.c:925 +msgid "Warning: instruction is UNPREDICTABLE in a VPT block" +msgstr "" + +#: config/tc-arm.c:927 +msgid "Warning: instruction is UNPREDICTABLE with PC operand" +msgstr "" + +#: config/tc-arm.c:929 +msgid "Warning: instruction is UNPREDICTABLE with SP operand" +msgstr "" + +#: config/tc-arm.c:931 +#, fuzzy +#| msgid "bad type in Neon instruction" +msgid "bad type in SIMD instruction" +msgstr "equivocación de tipo en instrucción Neon" + +#: config/tc-arm.c:933 +msgid "GAS auto-detection mode and -march=all is deprecated for MVE, please use a valid -march or -mcpu option." +msgstr "" + +#: config/tc-arm.c:935 +msgid "Warning: 32-bit element size and same destination and source operands makes instruction UNPREDICTABLE" +msgstr "" + +#: config/tc-arm.c:937 +msgid "bad element type for instruction" +msgstr "tipo elemental incorrecto para instrucción" + +#: config/tc-arm.c:938 +#, fuzzy +#| msgid "SVE vector register expected" +msgid "MVE vector register Q[0..7] expected" +msgstr "SVE como vector esperaba registro" + +#: config/tc-arm.c:939 +#, fuzzy +#| msgid "selected processor does not support DSP extension" +msgid "selected processor does not support PACBTI extention" +msgstr "procesador seleccionado no admite la extensión DSP" + +#: config/tc-arm.c:1159 msgid "immediate expression requires a # prefix" msgstr "expresión inmediata requiere un # prefijado" -#: config/tc-arm.c:1061 read.c:3816 +#: config/tc-arm.c:1188 read.c:4077 msgid "missing expression" msgstr "ausentea expresión" -#: config/tc-arm.c:1091 config/tc-arm.c:5260 config/tc-i960.c:1298 -#: config/tc-score.c:1210 +#: config/tc-arm.c:1202 config/tc-arm.c:5590 config/tc-score.c:1205 msgid "invalid constant" msgstr "constante no válida" -#: config/tc-arm.c:1223 +#: config/tc-arm.c:1337 msgid "expected #constant" msgstr "se esperaba #constant" -#: config/tc-arm.c:1387 +#: config/tc-arm.c:1509 config/tc-arm.c:1540 #, c-format -msgid "unexpected character `%c' in type specifier" -msgstr "carácter inesperado `%c' en el especificador de tipo" +msgid "bad size %d in type specifier" +msgstr "tamaño incorrecto %d en el especificador de tipo" -#: config/tc-arm.c:1404 +#: config/tc-arm.c:1516 +#, fuzzy +#| msgid "unexpected character `%c' in element size" +msgid "unexpected type character `b' -- did you mean `bf'?" +msgstr "carácter inesperado `%c' dentro del tamaño elemental" + +#: config/tc-arm.c:1523 #, c-format -msgid "bad size %d in type specifier" -msgstr "tamaño equivocado %d en el especificador de tipo" +msgid "unexpected character `%c' in type specifier" +msgstr "carácter inesperado `%c' en el especificador de tipo" -#: config/tc-arm.c:1454 +#: config/tc-arm.c:1590 msgid "only one type should be specified for operand" -msgstr "sólo se debe especificar un tipo para operando" +msgstr "solo se debe especificar un tipo para operando" -#: config/tc-arm.c:1460 +#: config/tc-arm.c:1596 msgid "vector type expected" msgstr "se esperaba un tipo vector" -#: config/tc-arm.c:1534 +#: config/tc-arm.c:1705 +#, fuzzy +#| msgid "expected EP register" +msgid "expected MVE register [q0..q7]" +msgstr "se esperaba el registro EP" + +#: config/tc-arm.c:1725 msgid "can't redefine type for operand" msgstr "no se puede redefinir el tipo para operando" -#: config/tc-arm.c:1547 +#: config/tc-arm.c:1741 +#, fuzzy +#| msgid "only D registers may be indexed" +msgid "only D and Q registers may be indexed" +msgstr "solo se pueden indizar los registros D" + +#: config/tc-arm.c:1743 msgid "only D registers may be indexed" -msgstr "sólo se pueden indizar los registros D" +msgstr "solo se pueden indizar los registros D" -#: config/tc-arm.c:1553 +#: config/tc-arm.c:1749 msgid "can't change index for operand" -msgstr "no se puede modificar el índice para operando" +msgstr "no se puede modificar el índice para el operando" -#: config/tc-arm.c:1616 +#: config/tc-arm.c:1812 msgid "register operand expected, but got scalar" msgstr "se esperaba un operando de registro, pero se recibió un escalar" -#: config/tc-arm.c:1653 +#: config/tc-arm.c:1863 msgid "scalar must have an index" msgstr "el escalar debe tener un índice" -#: config/tc-arm.c:1658 config/tc-arm.c:16583 config/tc-arm.c:16643 -#: config/tc-arm.c:17097 +#: config/tc-arm.c:1868 config/tc-arm.c:20038 config/tc-arm.c:20121 +#: config/tc-arm.c:20794 msgid "scalar index out of range" -msgstr "índice escalar fuera de límite" +msgstr "índice escalar fuera de rango" -#: config/tc-arm.c:1708 +#: config/tc-arm.c:1947 +#, fuzzy +#| msgid "'APSR', 'CPSR' or 'SPSR' expected" +msgid "r0-r12, lr or APSR expected" +msgstr "'APSR', 'CPSR' o 'SPSR' esperado" + +#: config/tc-arm.c:1974 config/tc-arm.c:4376 msgid "bad range in register list" -msgstr "límite equivocado en la lista de registros" +msgstr "límite incorrecto en la lista de registros" -#: config/tc-arm.c:1716 config/tc-arm.c:1725 config/tc-arm.c:1766 +#: config/tc-arm.c:1982 config/tc-arm.c:1991 config/tc-arm.c:2032 +#: config/tc-arm.c:4360 config/tc-arm.c:4380 #, c-format msgid "Warning: duplicated register (r%d) in register list" msgstr "Aviso: registro duplicado (r%d) en la lista de registros" -#: config/tc-arm.c:1728 +#: config/tc-arm.c:1994 msgid "Warning: register range not in ascending order" msgstr "Aviso: el límite de registros no está en orden ascendente" -#: config/tc-arm.c:1739 +#: config/tc-arm.c:2005 msgid "missing `}'" msgstr "ausente `}'" -#: config/tc-arm.c:1755 +#: config/tc-arm.c:2021 msgid "invalid register mask" msgstr "máscara de registro no válida" -#: config/tc-arm.c:1890 config/tc-arm.c:1934 +#: config/tc-arm.c:2098 +msgid "expecting {" +msgstr "esperando {" + +#: config/tc-arm.c:2165 config/tc-arm.c:2273 +#, fuzzy +#| msgid "expected }" +msgid "VPR expected last" +msgstr "se esperaba }" + +#: config/tc-arm.c:2171 +#, fuzzy +#| msgid "VFP single precision register expected" +msgid "VFP single precision register or VPR expected" +msgstr "Se esperaba un registro de precisión simple VFP" + +#. regtype == REG_TYPE_VFD. +#: config/tc-arm.c:2174 +#, fuzzy +#| msgid "VFP/Neon double precision register expected" +msgid "VFP/Neon double precision register or VPR expected" +msgstr "Se esperaba un registro de precisión doble VFP/Neon" + +#: config/tc-arm.c:2191 config/tc-arm.c:2235 msgid "register out of range in list" -msgstr "registro fuera de límite en la lista" +msgstr "registro fuera de rango en la lista" -#: config/tc-arm.c:1912 config/tc-arm.c:4197 config/tc-arm.c:4331 +#: config/tc-arm.c:2213 config/tc-arm.c:4526 config/tc-arm.c:4660 msgid "register list not in ascending order" msgstr "la lista de registros no está en orden ascendente" -#: config/tc-arm.c:1943 +#: config/tc-arm.c:2244 msgid "register range not in ascending order" msgstr "el límite de registros no está en orden ascendente" -#: config/tc-arm.c:1976 +#: config/tc-arm.c:2283 msgid "non-contiguous register range" msgstr "el límite de registros no es contiguo" -#: config/tc-arm.c:2035 +#: config/tc-arm.c:2343 +#, fuzzy +#| msgid "register stride must be 1 or 2" +msgid "register stride must be 1" +msgstr "el registro estribo debe ser 1 o 2" + +#: config/tc-arm.c:2344 msgid "register stride must be 1 or 2" msgstr "el registro estribo debe ser 1 o 2" -#: config/tc-arm.c:2036 +#: config/tc-arm.c:2345 msgid "mismatched element/structure types in list" msgstr "los tipos de elementos/estructura no coinciden en la lista" -#: config/tc-arm.c:2104 +#: config/tc-arm.c:2415 msgid "don't use Rn-Rm syntax with non-unit stride" msgstr "no use la sintaxis Rn-Rm sin un estribo que no sea unidad" -#: config/tc-arm.c:2159 +#: config/tc-arm.c:2470 msgid "error parsing element/structure list" msgstr "error al decodificar la lista de elementos/estructura" -#: config/tc-arm.c:2165 +#: config/tc-arm.c:2476 msgid "expected }" msgstr "se esperaba }" -#: config/tc-arm.c:2256 +#: config/tc-arm.c:2566 msgid "attempt to redefine typed alias" msgstr "se intentó redefinir el alias con tipo" -#: config/tc-arm.c:2391 +#: config/tc-arm.c:2701 msgid "bad type for register" -msgstr "tipo equivocado para el registro" +msgstr "tipo incorrecto para el registro" -#: config/tc-arm.c:2402 config/tc-nios2.c:1804 +#: config/tc-arm.c:2712 msgid "expression must be constant" msgstr "la expresión debe ser constante" -#: config/tc-arm.c:2419 +#: config/tc-arm.c:2729 msgid "can't redefine the type of a register alias" msgstr "no se redefinir el tipo de un alias de registro" -#: config/tc-arm.c:2426 +#: config/tc-arm.c:2736 msgid "you must specify a single type only" -msgstr "sólo debe especificar un tipo único" +msgstr "solo debe especificar un tipo único" -#: config/tc-arm.c:2439 +#: config/tc-arm.c:2749 msgid "can't redefine the index of a scalar alias" msgstr "no se puede redefinir el índice de un alias escalar" -#: config/tc-arm.c:2447 +#: config/tc-arm.c:2757 msgid "scalar index must be constant" msgstr "el índice escalar debe ser constante" -#: config/tc-arm.c:2456 +#: config/tc-arm.c:2766 msgid "expecting ]" msgstr "se esperaba ]" -#: config/tc-arm.c:2508 +#: config/tc-arm.c:2818 msgid "invalid syntax for .dn directive" msgstr "sintaxis no válida para la directiva .dn" -#: config/tc-arm.c:2514 +#: config/tc-arm.c:2824 msgid "invalid syntax for .qn directive" msgstr "sintaxis no válida para la directiva .qn" -#: config/tc-arm.c:2549 +#: config/tc-arm.c:2854 #, c-format msgid "ignoring attempt to use .unreq on fixed register name: '%s'" msgstr "se descarta el intento de usar .unreq en un nombre de registro interno fijo: «%s»" -#: config/tc-arm.c:2814 +#: config/tc-arm.c:3116 #, c-format msgid "Failed to find real start of function: %s\n" msgstr "Falló al buscar el inicio real de la función: %s\n" -#: config/tc-arm.c:2831 +#: config/tc-arm.c:3133 msgid "selected processor does not support THUMB opcodes" msgstr "procesador seleccionado no admite códigos operacionales THUMB" -#: config/tc-arm.c:2844 +#: config/tc-arm.c:3146 msgid "selected processor does not support ARM opcodes" msgstr "procesador seleccionado no admite códigos operacionales ARM" -#: config/tc-arm.c:2856 +#: config/tc-arm.c:3158 #, c-format msgid "invalid instruction size selected (%d)" msgstr "tamaño de instrucción seleccionado inválido (%d)" -#: config/tc-arm.c:2888 +#: config/tc-arm.c:3190 #, c-format msgid "invalid operand to .code directive (%d) (expecting 16 or 32)" msgstr "operando inválido para la directiva .code (%d) (se esperaba 16 o 32)" -#: config/tc-arm.c:2943 +#: config/tc-arm.c:3246 #, c-format msgid "expected comma after name \"%s\"" msgstr "se esperaba una coma tras nombre «%s»" -#: config/tc-arm.c:2993 config/tc-m32r.c:584 +#: config/tc-arm.c:3296 config/tc-m32r.c:584 #, c-format msgid "symbol `%s' already defined" msgstr "el símbolo «%s» ya está definido" -#: config/tc-arm.c:3026 +#: config/tc-arm.c:3329 #, c-format msgid "unrecognized syntax mode \"%s\"" msgstr "no reconocido el modo de sintaxis «%s»" -#: config/tc-arm.c:3069 +#: config/tc-arm.c:3359 msgid ".ref pseudo-op only available with -mccs flag." msgstr "" -#: config/tc-arm.c:3110 +#: config/tc-arm.c:3400 msgid ".asmfunc repeated." msgstr ".asmfunc repetido." -#: config/tc-arm.c:3114 +#: config/tc-arm.c:3404 msgid ".asmfunc without function." msgstr "símbolo .asmfunc función." -#: config/tc-arm.c:3120 +#: config/tc-arm.c:3410 msgid ".asmfunc pseudo-op only available with -mccs flag." msgstr ".asmfunc pseudo-op solo disponible con marca -mccs." -#: config/tc-arm.c:3131 +#: config/tc-arm.c:3421 msgid ".endasmfunc without a .asmfunc." msgstr ".endasmfunc sin un .asmfunc." -#: config/tc-arm.c:3135 +#: config/tc-arm.c:3425 msgid ".endasmfunc without function." msgstr ".endasmfunc sin función." -#: config/tc-arm.c:3146 +#: config/tc-arm.c:3436 msgid ".endasmfunc pseudo-op only available with -mccs flag." msgstr "" -#: config/tc-arm.c:3155 +#: config/tc-arm.c:3445 msgid ".def pseudo-op only available with -mccs flag." msgstr "" -#: config/tc-arm.c:3313 +#: config/tc-arm.c:3603 msgid "invalid type for literal pool" msgstr "tipo inválido para de conjunto de literales" -#: config/tc-arm.c:3393 config/tc-tic54x.c:5354 +#: config/tc-arm.c:3683 config/tc-tic54x.c:5379 #, c-format msgid "Invalid label '%s'" msgstr "Etiqueta no válida «%s»" -#: config/tc-arm.c:3569 +#: config/tc-arm.c:3860 msgid "(plt) is only valid on branch targets" -msgstr "(plt) sólo es válido en objetivos ramas" +msgstr "(plt) solo es válido en objetivos ramas" -#: config/tc-arm.c:3575 config/tc-s390.c:1209 config/tc-s390.c:1865 -#: config/tc-xtensa.c:1664 +#: config/tc-arm.c:3866 config/tc-csky.c:7672 config/tc-s390.c:1304 +#: config/tc-s390.c:2099 config/tc-xtensa.c:1698 #, c-format msgid "%s relocations do not fit in %d byte" msgid_plural "%s relocations do not fit in %d bytes" msgstr[0] "%s reubicaciones no caben en %d byte" msgstr[1] "%s reubicaciones no caben en %d bytes" -#: config/tc-arm.c:3657 +#: config/tc-arm.c:3948 msgid ".inst.n operand too big. Use .inst.w instead" msgstr "operando de .inst.n es demasiado grande. Use en su lugar .inst.w" -#: config/tc-arm.c:3677 +#: config/tc-arm.c:3968 msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead" msgstr "no se puede determinar el tamaño de la instrucción Thumb. Use en su lugar .inst.n/.inst.w" -#: config/tc-arm.c:3707 +#: config/tc-arm.c:3998 msgid "width suffixes are invalid in ARM mode" msgstr "los sufijos de anchura son inválidos en modo ARM" -#: config/tc-arm.c:3749 dwarf2dbg.c:990 +#: config/tc-arm.c:4042 dwarf2dbg.c:1467 msgid "expected 0 or 1" msgstr "se esperaba 0 ó 1" -#: config/tc-arm.c:3753 +#: config/tc-arm.c:4046 msgid "missing comma" msgstr "ausentea coma" -#: config/tc-arm.c:3786 +#: config/tc-arm.c:4079 msgid "duplicate .fnstart directive" msgstr "directiva .fnstart duplicada" -#: config/tc-arm.c:3817 config/tc-tic6x.c:412 +#: config/tc-arm.c:4109 config/tc-tic6x.c:410 msgid "duplicate .handlerdata directive" msgstr "directiva .handlerdata duplicada" -#: config/tc-arm.c:3836 +#: config/tc-arm.c:4128 msgid ".fnend directive without .fnstart" msgstr "directiva .fnend sin .fnstart" -#: config/tc-arm.c:3903 config/tc-tic6x.c:393 +#: config/tc-arm.c:4195 config/tc-tic6x.c:391 msgid "personality routine specified for cantunwind frame" msgstr "se especificó una rutina personality para el marco cantunwind" -#: config/tc-arm.c:3920 config/tc-tic6x.c:454 +#: config/tc-arm.c:4212 config/tc-tic6x.c:452 msgid "duplicate .personalityindex directive" msgstr "directiva .personalityindex duplicada" -#: config/tc-arm.c:3927 config/tc-tic6x.c:461 +#: config/tc-arm.c:4219 config/tc-tic6x.c:459 msgid "bad personality routine number" -msgstr "número de rutina personality equivocado" +msgstr "número de rutina personality incorrecto" -#: config/tc-arm.c:3949 config/tc-tic6x.c:478 +#: config/tc-arm.c:4241 config/tc-tic6x.c:476 msgid "duplicate .personality directive" msgstr "directiva .personality duplicada" -#: config/tc-arm.c:3973 config/tc-arm.c:4101 config/tc-arm.c:4149 -msgid "expected register list" -msgstr "se esperaba una lista de registros" +#: config/tc-arm.c:4267 +#, fuzzy, c-format +#| msgid "Unknown register pair: `%d'" +msgid "Unknown register no. encountered: %d\n" +msgstr "Par de registro desconocido: '%d'" -#: config/tc-arm.c:4055 -msgid "expected , <constant>" -msgstr "se esperaba , <constante>" +#: config/tc-arm.c:4363 +#, fuzzy +#| msgid "Warning: register range not in ascending order" +msgid "Warning: register list not in ascending order" +msgstr "Aviso: el límite de registros no está en orden ascendente" -#: config/tc-arm.c:4064 -msgid "number of registers must be in the range [1:4]" -msgstr "el número de registros debe estar en el límite [1:4]" +#: config/tc-arm.c:4370 config/tc-epiphany.c:382 config/tc-m68k.c:5866 +#: config/tc-m68k.c:5895 +msgid "bad register list" +msgstr "lista de registros incorrecta" -#: config/tc-arm.c:4211 config/tc-arm.c:4345 +#: config/tc-arm.c:4428 config/tc-arm.c:4478 +msgid "expected register list" +msgstr "se esperaba una lista de registros" + +#: config/tc-arm.c:4540 config/tc-arm.c:4674 msgid "bad register range" -msgstr "límite de registro equivocado" +msgstr "límite de registro incorrecto" -#: config/tc-arm.c:4411 -msgid "FPA .unwind_save does not take a register list" -msgstr ".unwind_save de FPA no toma una lista de registros" +#: config/tc-arm.c:4729 +msgid "register expected" +msgstr "se esperaba un registro" -#: config/tc-arm.c:4439 +#: config/tc-arm.c:4762 msgid ".unwind_save does not support this kind of register" msgstr ".unwind_save no admite este tipo de registro" -#: config/tc-arm.c:4478 +#: config/tc-arm.c:4801 msgid "SP and PC not permitted in .unwind_movsp directive" msgstr "PS y PC no se permiten .unwind_movsp como directiva" -#: config/tc-arm.c:4483 +#: config/tc-arm.c:4806 msgid "unexpected .unwind_movsp directive" msgstr "directiva inesperada .unwind_movsp" -#: config/tc-arm.c:4510 +#: config/tc-arm.c:4833 msgid "stack increment must be multiple of 4" msgstr "operando de pila debe ser un múltiplo de 4" -#: config/tc-arm.c:4542 +#: config/tc-arm.c:4881 msgid "expected <reg>, <reg>" msgstr "se esperaba <reg>, <reg>" -#: config/tc-arm.c:4560 +#: config/tc-arm.c:4899 msgid "register must be either sp or set by a previousunwind_movsp directive" msgstr "el registro debe ser sp o establecido por una directiva previousunwind_movsp" -#: config/tc-arm.c:4599 +#: config/tc-arm.c:4938 msgid "expected <offset>, <opcode>" msgstr "se esperaba <desplazamiento>, <códigoop>" -#: config/tc-arm.c:4611 +#: config/tc-arm.c:4950 msgid "unwind opcode too long" msgstr "código operacional de desenredo demasiado largo" -#: config/tc-arm.c:4616 +#: config/tc-arm.c:4955 msgid "invalid unwind opcode" msgstr "código operacional de desenredo inválido" -#: config/tc-arm.c:4804 config/tc-arm.c:5815 config/tc-arm.c:10659 -#: config/tc-arm.c:11192 config/tc-arm.c:13219 config/tc-arm.c:14801 -#: config/tc-arm.c:24170 config/tc-arm.c:24234 config/tc-arm.c:24242 -#: config/tc-metag.c:5176 config/tc-z8k.c:1151 config/tc-z8k.c:1161 +#: config/tc-arm.c:5070 config/tc-arm.c:31769 +#, fuzzy, c-format +#| msgid "unrecognized option \"%s\"" +msgid "unrecognised float16 format \"%s\"" +msgstr "opción no reconocida «%s»" + +#: config/tc-arm.c:5081 +msgid "float16 format cannot be set more than once, ignoring." +msgstr "" + +#: config/tc-arm.c:5094 +msgid "the floating-point format has not been set (or has been disabled)" +msgstr "" + +#: config/tc-arm.c:5211 config/tc-arm.c:6201 config/tc-arm.c:11469 +#: config/tc-arm.c:12002 config/tc-arm.c:14133 config/tc-arm.c:16084 +#: config/tc-arm.c:16119 config/tc-arm.c:17047 config/tc-arm.c:18960 +#: config/tc-arm.c:18968 config/tc-arm.c:18975 config/tc-arm.c:20635 +#: config/tc-arm.c:28766 config/tc-arm.c:28830 config/tc-arm.c:28838 +#: config/tc-metag.c:5174 config/tc-z8k.c:1161 config/tc-z8k.c:1171 msgid "immediate value out of range" -msgstr "valor inmediato fuera de límite" +msgstr "valor inmediato fuera de rango" -#: config/tc-arm.c:4974 -msgid "invalid FPA immediate expression" -msgstr "expresión inmediata FPA no válida" +#: config/tc-arm.c:5474 +#, fuzzy +#| msgid "r13 not allowed here" +msgid "'UXTW' not allowed here" +msgstr "no se permite r13 aquí" -#: config/tc-arm.c:5160 +#: config/tc-arm.c:5482 msgid "'LSL' or 'ASR' required" msgstr "'LSL' o 'ASR' requerido" -#: config/tc-arm.c:5168 +#: config/tc-arm.c:5490 msgid "'LSL' required" msgstr "'LSL' requerido" -#: config/tc-arm.c:5176 +#: config/tc-arm.c:5498 msgid "'ASR' required" msgstr "'ASR' requerido" -#: config/tc-arm.c:5255 +#: config/tc-arm.c:5505 +#, fuzzy +#| msgid "')' required" +msgid "'UXTW' required" +msgstr "')' requerido" + +#: config/tc-arm.c:5584 msgid "invalid rotation" msgstr "rotación no válida" -#: config/tc-arm.c:5435 config/tc-arm.c:5604 +#: config/tc-arm.c:5766 config/tc-arm.c:5979 msgid "unknown group relocation" msgstr "desconoce reubicación de grupo" -#: config/tc-arm.c:5471 +#: config/tc-arm.c:5802 msgid "alignment must be constant" msgstr "el alineamiento debe ser constante" -#: config/tc-arm.c:5635 +#: config/tc-arm.c:6013 msgid "this group relocation is not allowed on this instruction" msgstr "esta reubicación de grupo no se permite en esta instrucción" -#: config/tc-arm.c:5691 +#: config/tc-arm.c:6069 msgid "'}' expected at end of 'option' field" msgstr "'}' esperado al final 'option' del campo" -#: config/tc-arm.c:5696 +#: config/tc-arm.c:6074 msgid "cannot combine index with option" msgstr "no se puede combinar index con option" -#: config/tc-arm.c:5953 +#: config/tc-arm.c:6339 msgid "unexpected bit specified after APSR" msgstr "se especificó un bit inesperado tras APSR" -#: config/tc-arm.c:5965 +#: config/tc-arm.c:6351 msgid "selected processor does not support DSP extension" msgstr "procesador seleccionado no admite la extensión DSP" -#: config/tc-arm.c:5977 +#: config/tc-arm.c:6363 msgid "bad bitmask specified after APSR" -msgstr "se especificó una máscara de bit equivocada tras APSR" +msgstr "se especificó una máscara de bit incorrecta tras APSR" -#: config/tc-arm.c:6001 +#: config/tc-arm.c:6387 msgid "writing to APSR without specifying a bitmask is deprecated" msgstr "escribir a APSR sin especificar una máscara de bit es obsoleto" -#: config/tc-arm.c:6013 config/tc-arm.c:12353 config/tc-arm.c:12398 -#: config/tc-arm.c:12402 +#: config/tc-arm.c:6399 config/tc-arm.c:13236 config/tc-arm.c:13281 +#: config/tc-arm.c:13285 msgid "selected processor does not support requested special purpose register" msgstr "procesador seleccionado no admite registro de propósito especial solicitado" -#: config/tc-arm.c:6018 +#: config/tc-arm.c:6404 msgid "flag for {c}psr instruction expected" msgstr "se esperaba una opción para la instrucción {c}psr" -#: config/tc-arm.c:6043 +#: config/tc-arm.c:6468 msgid "unrecognized CPS flag" msgstr "no se reconoce la opción CPS" -#: config/tc-arm.c:6050 +#: config/tc-arm.c:6475 msgid "missing CPS flags" msgstr "ausenten las casillas CPS" -#: config/tc-arm.c:6073 config/tc-arm.c:6079 +#: config/tc-arm.c:6498 config/tc-arm.c:6504 msgid "valid endian specifiers are be or le" msgstr "los especificadores endian válidos son be o le" -#: config/tc-arm.c:6101 +#: config/tc-arm.c:6526 msgid "missing rotation field after comma" msgstr "ausente el campo rotation tras la coma" -#: config/tc-arm.c:6116 +#: config/tc-arm.c:6541 msgid "rotation can only be 0, 8, 16, or 24" -msgstr "la rotación sólo puede ser 0, 8 , 16 o 24" +msgstr "la rotación solo puede ser 0, 8 , 16 o 24" -#: config/tc-arm.c:6145 +#: config/tc-arm.c:6570 msgid "condition required" msgstr "se requiere una condición" -#: config/tc-arm.c:6213 config/tc-arm.c:8943 +#: config/tc-arm.c:6612 config/tc-arm.c:9731 msgid "'[' expected" msgstr "'[' esperado" -#: config/tc-arm.c:6226 +#: config/tc-arm.c:6625 msgid "',' expected" msgstr "',' esperada" -#: config/tc-arm.c:6243 +#: config/tc-arm.c:6642 msgid "invalid shift" msgstr "desplazamiento inválido" -#: config/tc-arm.c:6316 +#: config/tc-arm.c:6722 +#, fuzzy +#| msgid "expected EP register" +msgid "expected ARM or MVE vector register" +msgstr "se esperaba el registro EP" + +#: config/tc-arm.c:6771 msgid "can't use Neon quad register here" msgstr "no se puede usar un registro Neon cuádruple aquí" -#: config/tc-arm.c:6383 +#: config/tc-arm.c:6840 msgid "expected <Rm> or <Dm> or <Qm> operand" msgstr "se esperaba un operando <Rm> o <Dm> o <Qm>" -#: config/tc-arm.c:6463 +#: config/tc-arm.c:6940 +#, fuzzy +#| msgid "VFP single or double precision register expected" +msgid "VFP single, double or MVE vector register expected" +msgstr "Se esperaba un registro de precisión simple o doble VFP" + +#: config/tc-arm.c:6960 msgid "parse error" msgstr "error de decodificación" +#: config/tc-arm.c:7256 +#, fuzzy +#| msgid "immediate 1 or 2 expected" +msgid "immediate value 48 or 64 expected" +msgstr "se esperaba un inmediato 1 o 2" + #. ISB can only take SY as an option. -#: config/tc-arm.c:6732 +#: config/tc-arm.c:7305 msgid "invalid barrier type" -msgstr "tipo de barrera equivocado" +msgstr "tipo de barrera incorrecto" -#: config/tc-arm.c:6829 +#: config/tc-arm.c:7474 msgid "only floating point zero is allowed as immediate value" msgstr "solo utiliza punto flotante cero permitido como valor inmediato" -#: config/tc-arm.c:6899 +#: config/tc-arm.c:7569 msgid "immediate value is out of range" -msgstr "el valor inmediato está fuera de límite" +msgstr "el valor inmediato está fuera de rango" -#: config/tc-arm.c:7046 +#: config/tc-arm.c:7730 msgid "iWMMXt data or control register expected" msgstr "se esperaba un registro de datos o control iWMMXt" -#: config/tc-arm.c:7086 +#: config/tc-arm.c:7771 msgid "Banked registers are not available with this architecture." msgstr "Los registros en bancos no están disponibles para esta arquitectura." -#: config/tc-arm.c:7314 config/tc-score.c:264 +#: config/tc-arm.c:8019 +#, fuzzy +#| msgid "source operand must be 8 bit register" +msgid "operand must be LR register" +msgstr "operando de origen debe ser un registro de 8 bit" + +#: config/tc-arm.c:8024 +#, fuzzy +#| msgid "source operand must be 8 bit register" +msgid "operand must be SP register" +msgstr "operando de origen debe ser un registro de 8 bit" + +#: config/tc-arm.c:8029 +#, fuzzy +#| msgid "second operand must be 1" +msgid "operand must be r12" +msgstr "el segundo operando debe ser 1" + +#: config/tc-arm.c:8100 config/tc-score.c:260 msgid "garbage following instruction" msgstr "basura a continuación de la instrucción" #. If REG is R13 (the stack pointer), warn that its use is #. deprecated. -#: config/tc-arm.c:7364 +#: config/tc-arm.c:8150 msgid "use of r13 is deprecated" msgstr "el uso de r13 es obsoleto" -#: config/tc-arm.c:7382 -msgid "ARMv8.2 scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE" -msgstr "" +#: config/tc-arm.c:8168 config/tc-arm.c:20335 +#, fuzzy +#| msgid "Dot Product instructions cannot be conditional, the behaviour is UNPREDICTABLE" +msgid "scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE" +msgstr "Instrucciones Dot Product no puede ser condicional, el comportamiento es IMPREDECIBLE" -#: config/tc-arm.c:7457 +#: config/tc-arm.c:8243 msgid "D register out of range for selected VFP version" -msgstr "D como registro fuera de límite para versión VFP seleccionada" +msgstr "D como registro fuera de rango para versión VFP seleccionada" -#: config/tc-arm.c:7554 config/tc-arm.c:10378 +#: config/tc-arm.c:8340 config/tc-arm.c:11158 msgid "Instruction does not support =N addresses" msgstr "La instrucción no admite las direcciones =N" -#: config/tc-arm.c:7562 +#: config/tc-arm.c:8348 msgid "instruction does not accept preindexed addressing" -msgstr "instrucción no acepta el direccionamiento preindizado" +msgstr "instrucción no acepta el direccionamiento preindexado" #. unindexed - only for coprocessor -#: config/tc-arm.c:7578 config/tc-arm.c:10441 +#: config/tc-arm.c:8364 config/tc-arm.c:11221 msgid "instruction does not accept unindexed addressing" msgstr "instrucción no acepta el direccionamiento sin indizar" -#: config/tc-arm.c:7586 +#: config/tc-arm.c:8372 msgid "destination register same as write-back base" msgstr "registro destino es el mismo que la base de retroescritura" -#: config/tc-arm.c:7587 +#: config/tc-arm.c:8373 msgid "source register same as write-back base" msgstr "registro origen es el mismo que la base de retroescritura" -#: config/tc-arm.c:7637 +#: config/tc-arm.c:8423 msgid "use of PC in this instruction is deprecated" msgstr "uso de PC en esta instrucción está obsoleto" -#: config/tc-arm.c:7660 +#: config/tc-arm.c:8446 msgid "instruction does not accept scaled register index" msgstr "instrucción no acepta el índice de registro escalado" -#: config/tc-arm.c:7965 +#: config/tc-arm.c:8749 msgid "invalid pseudo operation" msgstr "pseudo operación no válida" -#: config/tc-arm.c:8203 +#. FIXME: The code that was here previously could not +#. work. Firstly, it tried to convert a floating point +#. number into an extended precision format, but only +#. provided a buffer of 5 littlenums, which was too +#. small. Secondly, it then didn't deal with the value +#. converted correctly, just reading out the first 4 +#. littlenum fields and assuming that could be used +#. directly. +#. +#. I think the code was intended to handle expressions +#. such as: +#. +#. LDR r0, =1.0 +#. VLDR d0, =55.3 +#. +#. but the parsers currently don't permit floating-point +#. literal values to be written this way, so this code +#. is probably unreachable. To be safe, we simply +#. return an error here. +#: config/tc-arm.c:8791 +#, fuzzy +#| msgid "Complex expression not supported" +msgid "constant expression not supported" +msgstr "No se admiten las expresiones complejas" + +#: config/tc-arm.c:8995 msgid "invalid co-processor operand" msgstr "operando co-procesador inválido" -#: config/tc-arm.c:8219 +#: config/tc-arm.c:9011 msgid "instruction does not support unindexed addressing" msgstr "instrucción no admite el direccionamiento sin indizar" -#: config/tc-arm.c:8234 +#: config/tc-arm.c:9026 msgid "pc may not be used with write-back" msgstr "quizá un pc no está siendo utilizado con retroescritura" -#: config/tc-arm.c:8239 +#: config/tc-arm.c:9031 msgid "instruction does not support writeback" msgstr "instrucción no admite retroescritura" -#: config/tc-arm.c:8345 +#: config/tc-arm.c:9137 msgid "Rn must not overlap other operands" msgstr "Rn no debe sobreescribir otros operandos" -#: config/tc-arm.c:8350 +#: config/tc-arm.c:9142 msgid "swp{b} use is obsoleted for ARMv8 and later" msgstr "utilización swp{b} es obsoleta para ARMv8 y posterior" -#: config/tc-arm.c:8353 +#: config/tc-arm.c:9145 msgid "swp{b} use is deprecated for ARMv6 and ARMv7" msgstr "utilización de swp{b} es obsoleto para ARMv6 y ARMv7" -#: config/tc-arm.c:8470 config/tc-arm.c:8489 config/tc-arm.c:8502 -#: config/tc-arm.c:11029 config/tc-arm.c:11060 config/tc-arm.c:11082 +#: config/tc-arm.c:9257 config/tc-arm.c:9276 config/tc-arm.c:9289 +#: config/tc-arm.c:11839 config/tc-arm.c:11870 config/tc-arm.c:11892 msgid "bit-field extends past end of register" msgstr "el campo de bits se extiende más allá del final del registro" -#: config/tc-arm.c:8532 +#: config/tc-arm.c:9319 msgid "the only valid suffixes here are '(plt)' and '(tlscall)'" msgstr "los únicos sufijos válidos aquí son '(plt)' y '(tlscall)'" -#: config/tc-arm.c:8585 +#: config/tc-arm.c:9372 msgid "use of r15 in blx in ARM mode is not really useful" msgstr "el uso de r15 en blx en modo ARM no es realmente útil" -#: config/tc-arm.c:8607 +#: config/tc-arm.c:9394 msgid "use of r15 in bx in ARM mode is not really useful" msgstr "el uso de r15 en bx en modo ARM no es realmente útil" -#: config/tc-arm.c:8632 +#: config/tc-arm.c:9420 msgid "use of r15 in bxj is not really useful" msgstr "el uso de r15 en bxj no es realmente útil" -#: config/tc-arm.c:8680 +#: config/tc-arm.c:9468 msgid "This coprocessor register access is deprecated in ARMv8" msgstr "Este acceso a registro del coprocesador es obsoleto en ARMv8" -#: config/tc-arm.c:8888 config/tc-arm.c:8897 +#: config/tc-arm.c:9676 config/tc-arm.c:9685 msgid "writeback of base register is UNPREDICTABLE" msgstr "retroescritura del registro base es IMPREDECIBLE" -#: config/tc-arm.c:8891 +#: config/tc-arm.c:9679 msgid "writeback of base register when in register list is UNPREDICTABLE" msgstr "retroescritura del registro base cuando está en la lista de registros es IMPREDECIBLE" -#: config/tc-arm.c:8901 +#: config/tc-arm.c:9689 msgid "if writeback register is in list, it must be the lowest reg in the list" msgstr "si el registro de retroescritura está en la lista, debe ser el registro más bajo en la lista" -#: config/tc-arm.c:8938 +#: config/tc-arm.c:9726 msgid "first transfer register must be even" msgstr "primer registro de transferencia debe ser par" -#: config/tc-arm.c:8941 +#: config/tc-arm.c:9729 msgid "can only transfer two consecutive registers" msgstr "solamente se pueden transferir dos registros consecutivos" @@ -3772,1223 +4577,1531 @@ msgstr "solamente se pueden transferir dos registros consecutivos" #. have been called in the first place. #. If op 2 were present and equal to PC, this function wouldn't #. have been called in the first place. -#: config/tc-arm.c:8942 config/tc-arm.c:9012 config/tc-arm.c:9676 -#: config/tc-arm.c:11844 +#: config/tc-arm.c:9730 config/tc-arm.c:9800 config/tc-arm.c:10531 +#: config/tc-arm.c:12725 msgid "r14 not allowed here" msgstr "no se permite r14 aquí" -#: config/tc-arm.c:8954 +#: config/tc-arm.c:9742 msgid "base register written back, and overlaps second transfer register" msgstr "registro base se escribió hacia atrás, y sobrescribe el segundo registro transferencial" -#: config/tc-arm.c:8964 +#: config/tc-arm.c:9752 msgid "index register overlaps transfer register" msgstr "registro índice sobrescribe el registro de transferencia" -#: config/tc-arm.c:8993 config/tc-arm.c:9643 +#: config/tc-arm.c:9781 config/tc-arm.c:10498 msgid "offset must be zero in ARM encoding" msgstr "desplazamiento debe ser cero en codificación ARM" -#: config/tc-arm.c:9006 config/tc-arm.c:9670 +#: config/tc-arm.c:9794 config/tc-arm.c:10525 msgid "even register required" msgstr "requerido registro par" -#: config/tc-arm.c:9009 +#: config/tc-arm.c:9797 msgid "can only load two consecutive registers" msgstr "solamente se pueden cargar dos registros consecutivos" -#: config/tc-arm.c:9027 +#: config/tc-arm.c:9815 msgid "ldr to register 15 must be 4-byte aligned" msgstr "ldr al registro 15 debe ser alineado a 4-bytes" -#: config/tc-arm.c:9050 config/tc-arm.c:9082 +#: config/tc-arm.c:9838 config/tc-arm.c:9870 msgid "this instruction requires a post-indexed address" msgstr "esta instrucción requiere una dirección post-indizada" -#: config/tc-arm.c:9109 +#: config/tc-arm.c:9897 msgid "Rd and Rm should be different in mla" msgstr "Rd y Rm deben ser diferentes en mla" -#: config/tc-arm.c:9136 config/tc-arm.c:12217 +#: config/tc-arm.c:9924 config/tc-arm.c:13100 msgid ":lower16: not allowed in this instruction" msgstr ":lower16: no permitido dentro de esta instrucción" -#: config/tc-arm.c:9138 config/tc-arm.c:12222 +#: config/tc-arm.c:9926 config/tc-arm.c:13105 msgid ":upper16: not allowed in this instruction" msgstr ":upper16: no permitido dentro de esta instrucción" -#: config/tc-arm.c:9155 +#: config/tc-arm.c:9943 msgid "operand 1 must be FPSCR" msgstr "operando 1 debe ser FPSCR" -#: config/tc-arm.c:9247 config/tc-arm.c:12336 +#: config/tc-arm.c:9996 config/tc-arm.c:10005 config/tc-arm.c:10059 +#: config/tc-arm.c:10068 +#, fuzzy +#| msgid "selected processor does not support fp16 instruction" +msgid "selected processor does not support instruction" +msgstr "procesador seleccionado no admite instrucción fp16" + +#: config/tc-arm.c:10008 config/tc-arm.c:10071 +#, fuzzy +#| msgid "writeback of base register is UNPREDICTABLE" +msgid "accessing MVE system register without MVE is UNPREDICTABLE" +msgstr "retroescritura del registro base es IMPREDECIBLE" + +#: config/tc-arm.c:10099 config/tc-arm.c:13219 msgid "bad register for mrs" -msgstr "registro equivocado para mrs" +msgstr "registro incorrecto para mrs" -#: config/tc-arm.c:9254 config/tc-arm.c:12360 +#: config/tc-arm.c:10106 config/tc-arm.c:13243 msgid "'APSR', 'CPSR' or 'SPSR' expected" msgstr "'APSR', 'CPSR' o 'SPSR' esperado" -#: config/tc-arm.c:9295 +#: config/tc-arm.c:10147 msgid "Rd and Rm should be different in mul" msgstr "Rd y Rm deben ser diferentes en mul" -#: config/tc-arm.c:9314 config/tc-arm.c:9588 config/tc-arm.c:12499 +#: config/tc-arm.c:10166 config/tc-arm.c:10443 config/tc-arm.c:13382 msgid "rdhi and rdlo must be different" msgstr "rdhi y rdlo deben ser diferentes" -#: config/tc-arm.c:9320 +#: config/tc-arm.c:10172 msgid "rdhi, rdlo and rm must all be different" msgstr "rdhi, rdlo y rm deben ser todos diferentes" -#: config/tc-arm.c:9386 +#: config/tc-arm.c:10238 msgid "'[' expected after PLD mnemonic" msgstr "'[' esperado tras mnemónico PLD" -#: config/tc-arm.c:9388 config/tc-arm.c:9403 +#: config/tc-arm.c:10240 config/tc-arm.c:10255 msgid "post-indexed expression used in preload instruction" msgstr "se utilizó una expresión post-indizada en la instrucción de precarga" -#: config/tc-arm.c:9390 config/tc-arm.c:9405 +#: config/tc-arm.c:10242 config/tc-arm.c:10257 msgid "writeback used in preload instruction" msgstr "se utilicó retroescritura en la instrucción de precarga" -#: config/tc-arm.c:9392 config/tc-arm.c:9407 +#: config/tc-arm.c:10244 config/tc-arm.c:10259 msgid "unindexed addressing used in preload instruction" msgstr "se utilizó un direccionamiento sin indizar en la instrucción de precarga" -#: config/tc-arm.c:9401 +#: config/tc-arm.c:10253 msgid "'[' expected after PLI mnemonic" msgstr "'[' esperado tras mnemónico PLI" -#: config/tc-arm.c:9416 config/tc-arm.c:12668 +#: config/tc-arm.c:10268 config/tc-arm.c:13551 msgid "push/pop do not support {reglist}^" msgstr "push/pop no admiten {reglist}^" -#: config/tc-arm.c:9494 config/tc-arm.c:12815 +#: config/tc-arm.c:10346 config/tc-arm.c:13728 msgid "setend use is deprecated for ARMv8" msgstr "utilice setend está obsoleto para ARMv8" -#: config/tc-arm.c:9515 config/tc-arm.c:12876 config/tc-arm.c:12908 -#: config/tc-arm.c:12951 +#: config/tc-arm.c:10367 config/tc-arm.c:13789 config/tc-arm.c:13821 +#: config/tc-arm.c:13864 msgid "extraneous shift as part of operand to shift insn" msgstr "desplazamiento extraño como parte de operando para la insn desplazamiento" -#: config/tc-arm.c:9546 config/tc-arm.c:9555 +#: config/tc-arm.c:10377 config/tc-arm.c:13927 +#, fuzzy +#| msgid "5-bit immediate too large" +msgid "immediate too large (bigger than 0xF)" +msgstr "5-bit inmediato demasiado grande" + +#: config/tc-arm.c:10401 config/tc-arm.c:10410 msgid "selected processor does not support SETPAN instruction" msgstr "procesador seleccionado no admite instrucción SETPAN" -#: config/tc-arm.c:9614 +#: config/tc-arm.c:10469 msgid "SRS base register must be r13" msgstr "SRS al registro base debe ser r13" -#: config/tc-arm.c:9673 +#: config/tc-arm.c:10528 msgid "can only store two consecutive registers" msgstr "solamente se pueden almacenar dos registros consecutivos" -#: config/tc-arm.c:9787 config/tc-arm.c:9804 +#: config/tc-arm.c:10650 config/tc-arm.c:10671 msgid "only two consecutive VFP SP registers allowed here" msgstr "solamente se permiten dos registros PS VFP consecutivos aquí" -#: config/tc-arm.c:9832 config/tc-arm.c:9847 +#: config/tc-arm.c:10699 config/tc-arm.c:10714 msgid "this addressing mode requires base-register writeback" msgstr "este modo de direccionamiento requiere retroescritura del registro-base" #. If srcsize is 16, inst.operands[1].imm must be in the range 0-16. #. i.e. immbits must be in range 0 - 16. -#: config/tc-arm.c:9964 +#: config/tc-arm.c:10843 msgid "immediate value out of range, expected range [0, 16]" -msgstr "valor inmediato fuera de límite, se esperaba el límite [0, 16]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [0, 16]" #. If srcsize is 32, inst.operands[1].imm must be in the range 1-32. #. i.e. immbits must be in range 0 - 31. -#: config/tc-arm.c:9971 +#: config/tc-arm.c:10850 msgid "immediate value out of range, expected range [1, 32]" -msgstr "valor inmediato fuera de límite, se esperaba el límite [1, 32]" - -#: config/tc-arm.c:10037 -msgid "this instruction does not support indexing" -msgstr "esta instrucción no admite indizado" +msgstr "valor inmediato fuera de rango, se esperaba el límite [1, 32]" -#: config/tc-arm.c:10060 +#: config/tc-arm.c:10891 msgid "only r15 allowed here" -msgstr "sólo se permite r15 aquí" +msgstr "solo se permite r15 aquí" -#: config/tc-arm.c:10195 +#: config/tc-arm.c:11026 msgid "immediate operand requires iWMMXt2" msgstr "operando inmediato requiere iWMMXt2" -#: config/tc-arm.c:10339 +#: config/tc-arm.c:11119 msgid "shift by register not allowed in thumb mode" msgstr "no se permite desplazar por registro en modo pulgar" -#: config/tc-arm.c:10351 config/tc-arm.c:13059 config/tc-arm.c:23513 +#: config/tc-arm.c:11131 config/tc-arm.c:13973 config/tc-arm.c:28057 msgid "shift expression is too large" msgstr "la expresión de desplazamiento es demasiado grande" -#: config/tc-arm.c:10384 +#: config/tc-arm.c:11164 msgid "cannot use register index with this instruction" -msgstr "no se puede utilizar registro indizado con esta instrucción" +msgstr "no se puede utilizar registro indexado con esta instrucción" -#: config/tc-arm.c:10386 +#: config/tc-arm.c:11166 msgid "Thumb does not support negative register indexing" -msgstr "Thumb no admite el indizado negativo de registro" +msgstr "Thumb no admite el indexado negativo de registro" -#: config/tc-arm.c:10388 +#: config/tc-arm.c:11168 msgid "Thumb does not support register post-indexing" -msgstr "Thumb no admite el post-indizado de registro" +msgstr "Thumb no admite el post-indexado de registro" -#: config/tc-arm.c:10390 +#: config/tc-arm.c:11170 msgid "Thumb does not support register indexing with writeback" -msgstr "Thumb no admite el indizado de registro con retroescritura" +msgstr "Thumb no admite el indexado de registro con retroescritura" -#: config/tc-arm.c:10392 +#: config/tc-arm.c:11172 msgid "Thumb supports only LSL in shifted register indexing" -msgstr "Thumb sólo admite LSL en el indizado desplazado de registro" +msgstr "Thumb solo admite LSL en el indexado desplazado de registro" -#: config/tc-arm.c:10401 config/tc-arm.c:16374 +#: config/tc-arm.c:11181 config/tc-arm.c:19703 msgid "shift out of range" -msgstr "desplazamiento fuera de límite" +msgstr "desplazamiento fuera de rango" -#: config/tc-arm.c:10410 +#: config/tc-arm.c:11190 msgid "cannot use writeback with this instruction" msgstr "no se puede usar retroescritura con esta instrucción" -#: config/tc-arm.c:10431 +#: config/tc-arm.c:11211 msgid "cannot use post-indexing with PC-relative addressing" -msgstr "no se puede usar post-indizado con el direccionamiento relativo al PC" +msgstr "no se puede usar post-indexado con el direccionamiento relativo al PC" -#: config/tc-arm.c:10432 +#: config/tc-arm.c:11212 msgid "cannot use post-indexing with this instruction" -msgstr "no se puede usar post-indizado con esta instrucción" +msgstr "no se puede usar post-indexado con esta instrucción" + +#: config/tc-arm.c:11450 +#, fuzzy +#| msgid "cannot honor width suffix -- `%s'" +msgid "cannot honor width suffix" +msgstr "no se puede honrar el sufijo de anchura -- «%s»" -#: config/tc-arm.c:10654 +#: config/tc-arm.c:11464 msgid "only SUBS PC, LR, #const allowed" -msgstr "sólo se permiten SUBS PC, LR, #const" +msgstr "solo se permiten SUBS PC, LR, #const" -#: config/tc-arm.c:10737 config/tc-arm.c:10897 config/tc-arm.c:10994 -#: config/tc-arm.c:12297 config/tc-arm.c:12605 +#: config/tc-arm.c:11547 config/tc-arm.c:11707 config/tc-arm.c:11804 +#: config/tc-arm.c:13180 config/tc-arm.c:13488 msgid "shift must be constant" msgstr "el desplazamiento debe ser constante" -#: config/tc-arm.c:10742 +#: config/tc-arm.c:11552 msgid "shift value over 3 not allowed in thumb mode" msgstr "no se permite el valor de desplazamiento sobre 3 en modo pulgar" -#: config/tc-arm.c:10744 +#: config/tc-arm.c:11554 msgid "only LSL shift allowed in thumb mode" msgstr "solamente se permite el desplazamiento LSL en modo pulgar" -#: config/tc-arm.c:10768 config/tc-arm.c:10912 config/tc-arm.c:11009 -#: config/tc-arm.c:12310 +#: config/tc-arm.c:11578 config/tc-arm.c:11722 config/tc-arm.c:11819 +#: config/tc-arm.c:13193 msgid "unshifted register required" msgstr "se requiere un registro sin desplazar" -#: config/tc-arm.c:10783 config/tc-arm.c:11020 config/tc-arm.c:12460 +#: config/tc-arm.c:11593 config/tc-arm.c:11830 config/tc-arm.c:13343 msgid "dest must overlap one source register" msgstr "dest debe sobreescribir un registro fuente" -#: config/tc-arm.c:10915 +#: config/tc-arm.c:11725 config/tc-csky.c:6026 msgid "dest and source1 must be the same register" msgstr "dest y source1 deben ser el mismo registro" -#: config/tc-arm.c:11155 +#: config/tc-arm.c:11965 msgid "selected architecture does not support wide conditional branch instruction" msgstr "arquitectura seleccionada no admite la rama de instrucción condicional instrucción ancha" -#: config/tc-arm.c:11188 +#: config/tc-arm.c:11998 msgid "instruction is always unconditional" msgstr "la instrucción es siempre incondicional" -#: config/tc-arm.c:11309 +#: config/tc-arm.c:12173 msgid "selected processor does not support 'A' form of this instruction" msgstr "procesador seleccionado no admite la forma 'A' de esta instrucción" -#: config/tc-arm.c:11312 +#: config/tc-arm.c:12176 msgid "Thumb does not support the 2-argument form of this instruction" msgstr "Thumb no admite la forma con 2 argumentos de esta instrucción" -#: config/tc-arm.c:11433 +#: config/tc-arm.c:12301 msgid "SP not allowed in register list" msgstr "PS no admitido dentro de listado de registro" -#: config/tc-arm.c:11437 config/tc-arm.c:11543 +#: config/tc-arm.c:12305 msgid "having the base register in the register list when using write back is UNPREDICTABLE" msgstr "teniendo el registro base en la lista de registros al usar retroescritura se vuelve IMPREDECIBLE" -#: config/tc-arm.c:11445 +#: config/tc-arm.c:12313 msgid "LR and PC should not both be in register list" msgstr "LR y PC no deberían estar ambos dentro de registros listados" -#: config/tc-arm.c:11453 +#: config/tc-arm.c:12321 msgid "PC not allowed in register list" msgstr "PC no admitido dentro del listado de registro" -#: config/tc-arm.c:11495 +#: config/tc-arm.c:12366 msgid "Thumb load/store multiple does not support {reglist}^" msgstr "Thumb carga/almacenaje múltiples no compatible {reglist}^" -#: config/tc-arm.c:11520 config/tc-arm.c:11597 +#: config/tc-arm.c:12444 config/tc-arm.c:12478 #, c-format msgid "value stored for r%d is UNKNOWN" msgstr "valor almacenado para r%d es DESCONOCIDO" -#: config/tc-arm.c:11590 +#: config/tc-arm.c:12471 msgid "Thumb-2 instruction only valid in unified syntax" -msgstr "Thumb-2 como instrucción sólo válida en sintaxis unificada" +msgstr "Thumb-2 como instrucción solo válida en sintaxis unificada" -#: config/tc-arm.c:11594 config/tc-arm.c:11604 +#: config/tc-arm.c:12475 config/tc-arm.c:12485 msgid "this instruction will write back the base register" msgstr "esta instrucción escribirá hacia atrás el registro base" -#: config/tc-arm.c:11607 +#: config/tc-arm.c:12488 msgid "this instruction will not write back the base register" msgstr "esta instrucción no escribirá hacia atrás el registro base" -#: config/tc-arm.c:11638 +#: config/tc-arm.c:12519 msgid "r14 not allowed as first register when second register is omitted" msgstr "no se permite r14 como primer registro cuando se omite el segundo registro" -#: config/tc-arm.c:11738 +#: config/tc-arm.c:12619 msgid "This instruction may be unpredictable if executed on M-profile cores with interrupts enabled." msgstr "Esta instrucción puede ser impredecible si se ejecuta en núcleos M-profile con interrupciones activadas." -#: config/tc-arm.c:11767 config/tc-arm.c:11780 config/tc-arm.c:11816 +#: config/tc-arm.c:12648 config/tc-arm.c:12661 config/tc-arm.c:12697 msgid "Thumb does not support this addressing mode" msgstr "Thumb no admite este modo de direccionamiento" -#: config/tc-arm.c:11784 +#: config/tc-arm.c:12665 msgid "byte or halfword not valid for base register" msgstr "byte o media palabra no válido para registro base" -#: config/tc-arm.c:11787 +#: config/tc-arm.c:12668 msgid "r15 based store not allowed" msgstr "no se permite el almacenamiento basado en r15" -#: config/tc-arm.c:11789 +#: config/tc-arm.c:12670 msgid "invalid base register for register offset" msgstr "registro base inválido para el desplazamiento del registro" -#: config/tc-arm.c:11846 +#: config/tc-arm.c:12727 msgid "r12 not allowed here" msgstr "r12 no permitido aquí" -#: config/tc-arm.c:11852 +#: config/tc-arm.c:12733 msgid "base register written back, and overlaps one of transfer registers" msgstr "registro base escrito atrás, y cubre uno de registros transferenciales" -#: config/tc-arm.c:11980 +#: config/tc-arm.c:12861 #, c-format msgid "Use of r%u as a source register is deprecated when r%u is the destination register." msgstr "Utilización de r%u como registro origen es obsoleto cuando r%u es el registro destino." -#: config/tc-arm.c:12173 +#: config/tc-arm.c:13056 msgid "shifts in CMP/MOV instructions are only supported in unified syntax" -msgstr "los desplazamientos en las instrucciones CMP/MOV sólo se admiten en la sintaxis unificada" +msgstr "los desplazamientos en las instrucciones CMP/MOV solo se admiten en la sintaxis unificada" -#: config/tc-arm.c:12201 +#: config/tc-arm.c:13084 msgid "only lo regs allowed with immediate" -msgstr "sólo se permiten registros lo con inmediatos" +msgstr "solo se permiten registros lo con inmediatos" -#: config/tc-arm.c:12378 +#: config/tc-arm.c:13261 msgid "Thumb encoding does not support an immediate here" msgstr "Thumb como codificación no admite un inmediato aquí" -#: config/tc-arm.c:12465 +#: config/tc-arm.c:13348 msgid "Thumb-2 MUL must not set flags" msgstr "MUL de Thumb-2 no debe establecer casillas" -#: config/tc-arm.c:12530 +#: config/tc-arm.c:13413 msgid "Thumb does not support NOP with hints" msgstr "Thumb no admite NOP con pistas" -#: config/tc-arm.c:12690 +#: config/tc-arm.c:13573 config/tc-arm.c:13585 msgid "invalid register list to push/pop instruction" msgstr "lista de registros no válida para la instrucción push/pop" -#: config/tc-arm.c:12935 +#: config/tc-arm.c:13848 msgid "source1 and dest must be same register" msgstr "source1 y dest deben ser el mismo registro" -#: config/tc-arm.c:12960 +#: config/tc-arm.c:13873 msgid "ror #imm not supported" msgstr "no se admite ror #imm" -#: config/tc-arm.c:13011 +#: config/tc-arm.c:13924 msgid "SMC is not permitted on this architecture" msgstr "No se admite SMC en esta arquitectura" -#: config/tc-arm.c:13176 +#: config/tc-arm.c:14090 msgid "Thumb encoding does not support rotation" msgstr "Thumb como codificación no admite rotación" -#: config/tc-arm.c:13196 +#: config/tc-arm.c:14110 msgid "instruction requires register index" msgstr "la instrucción requiere un índice de registro" -#: config/tc-arm.c:13206 +#: config/tc-arm.c:14120 msgid "instruction does not allow shifted index" msgstr "la instrucción no permite un índice desplazado" -#: config/tc-arm.c:13392 +#: config/tc-arm.c:14276 config/tc-arm.c:29201 +msgid "out of range label-relative fixup value" +msgstr "" + +#: config/tc-arm.c:14600 msgid "invalid neon suffix for non neon instruction" msgstr "sufijo neón inválido para la instrucción que no es neon" -#: config/tc-arm.c:13754 config/tc-arm.c:14100 config/tc-arm.c:15717 -#: config/tc-arm.c:17342 +#: config/tc-arm.c:14995 config/tc-arm.c:15348 config/tc-arm.c:16833 +#: config/tc-arm.c:16913 config/tc-arm.c:16970 config/tc-arm.c:18851 +#: config/tc-arm.c:21039 config/tc-arm.c:21226 msgid "invalid instruction shape" msgstr "instrucción shape no válida" -#: config/tc-arm.c:13999 +#: config/tc-arm.c:15247 msgid "types specified in both the mnemonic and operands" msgstr "tipo especificado en ambos mnemónico y operandos" -#: config/tc-arm.c:14036 +#: config/tc-arm.c:15284 msgid "operand types can't be inferred" msgstr "no se pueden inferir los tipos de operando" -#: config/tc-arm.c:14042 +#: config/tc-arm.c:15290 msgid "type specifier has the wrong number of parts" -msgstr "tipo especificador tiene el número equivocado de partes" +msgstr "tipo especificador tiene el número incorrecto de partes" -#: config/tc-arm.c:14128 config/tc-arm.c:15905 config/tc-arm.c:15912 +#: config/tc-arm.c:15376 config/tc-arm.c:19112 config/tc-arm.c:19119 msgid "operand size must match register width" msgstr "el tamaño del operador debe coincidir con la anchura del registro" -#: config/tc-arm.c:14139 -msgid "bad type in Neon instruction" -msgstr "equivocación de tipo en instrucción Neon" - -#: config/tc-arm.c:14150 +#: config/tc-arm.c:15398 msgid "inconsistent types in Neon instruction" msgstr "tipos inconsistentes en la instrucción Neon" -#: config/tc-arm.c:14521 config/tc-arm.c:14536 config/tc-arm.c:16921 -msgid "register list must contain at least 1 and at most 16 registers" -msgstr "la lista de registros debe contener por lo menos 1 y cuando mucho 16 registros" +#: config/tc-arm.c:15819 +#, fuzzy +#| msgid "zero flag is not valid for this instruction" +msgid "Type is not allowed for this instruction" +msgstr "marca cero no es válida para esta instrucción" + +#: config/tc-arm.c:15894 +#, fuzzy +#| msgid "SVE vector register expected" +msgid "MVE vector or ARM register expected" +msgstr "SVE como vector esperaba registro" + +#: config/tc-arm.c:16011 +#, fuzzy +#| msgid "immediate must be 1 or 2" +msgid "immediate must be either 1, 2, 4 or 8" +msgstr "el inmediato debe ser 1 o 2" -#: config/tc-arm.c:14679 config/tc-arm.c:14715 config/tc-arm.c:15354 -#: config/tc-arm.c:16761 +#: config/tc-arm.c:16168 +#, fuzzy +#| msgid "immediate value out of range, expected range [1, 32]" +msgid "immediate operand expected in the range [1,8]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [1, 32]" + +#: config/tc-arm.c:16169 +#, fuzzy +#| msgid "immediate value out of range, expected range [0, 16]" +msgid "immediate operand expected in the range [1,16]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [0, 16]" + +#: config/tc-arm.c:16311 +#, fuzzy +#| msgid "expected }" +msgid "expected LR" +msgstr "se esperaba }" + +#: config/tc-arm.c:16810 config/tc-arm.c:16890 config/tc-arm.c:18487 +#: config/tc-arm.c:20320 msgid "immediate out of range for shift" -msgstr "inmediato fuera de límite para desplazamiento" +msgstr "inmediato fuera de rango para desplazamiento" -#: config/tc-arm.c:14835 +#: config/tc-arm.c:17104 msgid "first and second operands shall be the same register" msgstr "el primer y segundo operandos deben ser el mismo registro" -#: config/tc-arm.c:15120 config/tc-arm.c:16210 +#: config/tc-arm.c:17218 config/tc-arm.c:17280 +#, fuzzy +#| msgid "destination register same as write-back base" +msgid "destination register and offset register may not be the same" +msgstr "registro destino es el mismo que la base de retroescritura" + +#: config/tc-arm.c:17230 config/tc-arm.c:17349 +#, fuzzy +#| msgid "immediate value out of range, expected range [0, 16]" +msgid "immediate must be a multiple of 4 in the range of +/-[0,508]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [0, 16]" + +#: config/tc-arm.c:17232 +#, fuzzy +#| msgid "immediate value out of range, expected range [0, 16]" +msgid "immediate must be a multiple of 8 in the range of +/-[0,1016]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [0, 16]" + +#: config/tc-arm.c:17253 +msgid "can not shift offsets when accessing less than half-word" +msgstr "" + +#: config/tc-arm.c:17255 +msgid "shift immediate must be 1, 2 or 3 for half-word, word or double-word accesses respectively" +msgstr "" + +#: config/tc-arm.c:17342 +#, fuzzy +#| msgid "number of registers must be in the range [1:4]" +msgid "immediate must be in the range of +/-[0,127]" +msgstr "el número de registros debe estar en el límite [1:4]" + +#: config/tc-arm.c:17345 +#, fuzzy +#| msgid "immediate value out of range, expected range [0, 16]" +msgid "immediate must be a multiple of 2 in the range of +/-[0,254]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [0, 16]" + +#: config/tc-arm.c:17359 config/tc-arm.c:18185 +#, fuzzy +#| msgid "SVE vector register expected" +msgid "MVE vector register in the range [Q0..Q7] expected" +msgstr "SVE como vector esperaba registro" + +#: config/tc-arm.c:17675 config/tc-arm.c:19542 msgid "scalar out of range for multiply instruction" -msgstr "escalar fuera de límite para la instrucción multiply" +msgstr "escalar fuera de rango para la instrucción multiply" + +#: config/tc-arm.c:17763 +#, fuzzy +#| msgid "scalar index must be constant" +msgid "index must be in the range 0 to 3" +msgstr "el índice escalar debe ser constante" + +#: config/tc-arm.c:17766 +#, fuzzy +#| msgid "first transfer register must be even" +msgid "indexed register must be less than 8" +msgstr "primer registro de transferencia debe ser par" + +#: config/tc-arm.c:17967 config/tc-arm.c:21290 +msgid "Warning: 32-bit element size and same first and third operand makes instruction UNPREDICTABLE" +msgstr "" -#: config/tc-arm.c:15244 +#: config/tc-arm.c:18326 msgid "instruction form not available on this architecture." msgstr "relleno de instrucción no disponible en esta arquitectura." -#: config/tc-arm.c:15247 +#: config/tc-arm.c:18329 msgid "this instruction implies use of ARMv8.1 AdvSIMD." msgstr "" -#: config/tc-arm.c:15330 config/tc-arm.c:15342 +#: config/tc-arm.c:18436 config/tc-arm.c:18461 msgid "immediate out of range for insert" -msgstr "inmediato fuera de límite para insert" +msgstr "inmediato fuera de rango para insert" -#: config/tc-arm.c:15475 +#: config/tc-arm.c:18608 msgid "immediate out of range for narrowing operation" -msgstr "inmediato fuera de límite para la operación de estrechamiento" +msgstr "inmediato fuera de rango para la operación de estrechamiento" -#: config/tc-arm.c:15621 +#: config/tc-arm.c:18755 msgid "operands 0 and 1 must be the same register" msgstr "los operandos 0 y 1 debe ser el mismo registro" -#: config/tc-arm.c:15727 config/tc-arm.c:17440 +#: config/tc-arm.c:18861 config/tc-arm.c:21138 msgid "invalid rounding mode" msgstr "modo entorno inválido" -#: config/tc-arm.c:16054 +#: config/tc-arm.c:19332 msgid "operand size must be specified for immediate VMOV" msgstr "el tamaño de operando se debe especificar para el inmediato VMOV" -#: config/tc-arm.c:16064 +#: config/tc-arm.c:19342 msgid "immediate has bits set outside the operand size" msgstr "el inmediato tiene bits definidos fuera del tamaño de operando" -#: config/tc-arm.c:16226 +#: config/tc-arm.c:19577 msgid "vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:16356 +#: config/tc-arm.c:19685 msgid "Instruction form not available on this architecture." msgstr "Relleno de instrucción no disponible en esta arquitectura." -#: config/tc-arm.c:16400 +#: config/tc-arm.c:19739 +msgid "Warning: 64-bit element size and same destination and source operands makes instruction UNPREDICTABLE" +msgstr "" + +#: config/tc-arm.c:19744 msgid "elements must be smaller than reversal region" msgstr "los elementos deben ser menores que la región de reversa" -#: config/tc-arm.c:16582 config/tc-arm.c:16642 +#: config/tc-arm.c:19836 +msgid "Index one must be [2,3] and index two must be two less than index one." +msgstr "" + +#: config/tc-arm.c:19839 +#, fuzzy +#| msgid "registers may not be the same" +msgid "Destination registers may not be the same" +msgstr "los registros quizá no son el mismo" + +#: config/tc-arm.c:20037 config/tc-arm.c:20120 msgid "bad type for scalar" -msgstr "tipo equivocado para el escalar" +msgstr "tipo incorrecto para el escalar" + +#: config/tc-arm.c:20176 +msgid "immediate constant is valid both as a bit-pattern and a floating point value (using the fp value)" +msgstr "" -#: config/tc-arm.c:16719 config/tc-arm.c:16727 +#: config/tc-arm.c:20228 config/tc-arm.c:20239 msgid "VFP registers must be adjacent" msgstr "VFP como registros deben ser adyacentes" -#: config/tc-arm.c:16770 +#: config/tc-arm.c:20329 msgid "invalid suffix" msgstr "sufijo inválido" -#: config/tc-arm.c:16888 +#: config/tc-arm.c:20483 msgid "bad list length for table lookup" -msgstr "longitud de lista equivocada para la búsqueda de tabla" +msgstr "longitud de lista incorrecta para la búsqueda de tabla" -#: config/tc-arm.c:16918 +#: config/tc-arm.c:20516 msgid "writeback (!) must be used for VLDMDB and VSTMDB" msgstr "se debe usar retroescritura (!) para VLDMDB y VSTMDB" -#: config/tc-arm.c:16946 +#: config/tc-arm.c:20519 config/tc-arm.c:20545 +msgid "register list must contain at least 1 and at most 16 registers" +msgstr "la lista de registros debe contener por lo menos 1 y cuando mucho 16 registros" + +#: config/tc-arm.c:20540 +#, fuzzy +#| msgid "register list must contain at least 1 and at most 16 registers" +msgid "register list must contain at least 1 and at most 32 registers" +msgstr "la lista de registros debe contener por lo menos 1 y cuando mucho 16 registros" + +#: config/tc-arm.c:20593 config/tc-arm.c:20626 msgid "Use of PC here is UNPREDICTABLE" msgstr "El uso de PC aquí es IMPREDECIBLE" -#: config/tc-arm.c:16948 +#: config/tc-arm.c:20595 msgid "Use of PC here is deprecated" msgstr "El uso de PC aquí es obsoleto" -#: config/tc-arm.c:17015 +#: config/tc-arm.c:20629 +#, fuzzy +#| msgid "instruction does not accept scaled register index" +msgid "instruction does not accept register index" +msgstr "instrucción no acepta el índice de registro escalado" + +#: config/tc-arm.c:20632 +#, fuzzy +#| msgid "instruction does not accept preindexed addressing" +msgid "instruction does not accept PC-relative addressing" +msgstr "instrucción no acepta el direccionamiento preindexado" + +#: config/tc-arm.c:20654 config/tc-arm.c:20663 +#, fuzzy +#| msgid "Instruction not supported by this architecture" +msgid "Instruction not permitted on this architecture" +msgstr "La instrucción no se admite en esta arquitectura" + +#: config/tc-arm.c:20712 msgid "bad alignment" -msgstr "alineamiento equivocada" +msgstr "alineamiento incorrecta" -#: config/tc-arm.c:17032 +#: config/tc-arm.c:20729 msgid "bad list type for instruction" -msgstr "tipo de lista equivocado para la instrucción" +msgstr "tipo de lista incorrecto para la instrucción" -#: config/tc-arm.c:17034 -msgid "bad element type for instruction" -msgstr "tipo elemental equivocado para instrucción" - -#: config/tc-arm.c:17076 +#: config/tc-arm.c:20773 msgid "unsupported alignment for instruction" msgstr "no se admite la alineamiento para la instrucción" -#: config/tc-arm.c:17095 config/tc-arm.c:17189 config/tc-arm.c:17201 -#: config/tc-arm.c:17211 config/tc-arm.c:17225 +#: config/tc-arm.c:20792 config/tc-arm.c:20886 config/tc-arm.c:20898 +#: config/tc-arm.c:20908 config/tc-arm.c:20922 msgid "bad list length" -msgstr "longitud de lista equivocada" +msgstr "longitud de lista incorrecta" -#: config/tc-arm.c:17100 +#: config/tc-arm.c:20797 msgid "stride of 2 unavailable when element size is 8" msgstr "no está disponible el estribo de 2 cuando el tamaño del elemento es 8" -#: config/tc-arm.c:17133 config/tc-arm.c:17209 +#: config/tc-arm.c:20830 config/tc-arm.c:20906 msgid "can't use alignment with this instruction" msgstr "no se puede usar la alineamiento con esta instrucción" -#: config/tc-arm.c:17281 +#: config/tc-arm.c:20978 msgid "post-index must be a register" msgstr "el post-índice debe ser un registro" -#: config/tc-arm.c:17283 +#: config/tc-arm.c:20980 msgid "bad register for post-index" -msgstr "registro equivocado para el post-índice" +msgstr "registro incorrecto para el post-índice" -#: config/tc-arm.c:17504 +#: config/tc-arm.c:21202 msgid "scalar out of range" -msgstr "escalar fuera de límite" +msgstr "escalar fuera de rango" -#: config/tc-arm.c:17577 +#: config/tc-arm.c:21335 msgid "Dot Product instructions cannot be conditional, the behaviour is UNPREDICTABLE" msgstr "Instrucciones Dot Product no puede ser condicional, el comportamiento es IMPREDECIBLE" -#: config/tc-arm.c:18150 config/tc-arm.c:18236 +#: config/tc-arm.c:21410 config/tc-arm.c:21438 config/tc-arm.c:22120 +#, fuzzy +#| msgid "immediate must be 1 or 2" +msgid "index must be 0 or 1" +msgstr "el inmediato debe ser 1 o 2" + +#: config/tc-arm.c:21413 config/tc-arm.c:21441 config/tc-arm.c:22123 +#, fuzzy +#| msgid "ending register must be r15" +msgid "indexed register must be less than 16" +msgstr "el registro final debe ser r15" + +#: config/tc-arm.c:21479 +msgid "Register must be r0-r14 except r13, or APSR_nzcv." +msgstr "" + +#: config/tc-arm.c:21482 +#, fuzzy +#| msgid "Register must be address register" +msgid "Register must be an even register between r0-r10." +msgstr "El registro debe ser un registro direccional" + +#: config/tc-arm.c:21507 +#, fuzzy +#| msgid "co-processor offset out of range" +msgid "CDE Coprocessor must be in range 0-7" +msgstr "desplazamiento de coprocesador fuera de rango" + +#: config/tc-arm.c:21541 +#, fuzzy +#| msgid "invalid destination register" +msgid "cx1d requires consecutive destination registers." +msgstr "invalida registro destino" + +#: config/tc-arm.c:21571 +#, fuzzy +#| msgid "invalid destination register" +msgid "cx2d requires consecutive destination registers." +msgstr "invalida registro destino" + +#: config/tc-arm.c:21610 +#, fuzzy +#| msgid "invalid destination register" +msgid "cx3d requires consecutive destination registers." +msgstr "invalida registro destino" + +#: config/tc-arm.c:21802 +#, fuzzy +#| msgid "last register must be r7" +msgid "'q' register must be in range 0-7" +msgstr "el último registro debe ser r7" + +#: config/tc-arm.c:21805 +#, fuzzy +#| msgid "ending register must be r15" +msgid "'d' register must be in range 0-15" +msgstr "el registro final debe ser r15" + +#: config/tc-arm.c:21807 +#, fuzzy +#| msgid "number of registers must be in the range [1:4]" +msgid "'s' register must be in range 0-31" +msgstr "el número de registros debe estar en el límite [1:4]" + +#: config/tc-arm.c:21862 +#, fuzzy +#| msgid "instruction requires register index" +msgid "vcx instructions with Q registers require MVE" +msgstr "la instrucción requiere un índice de registro" + +#: config/tc-arm.c:21867 +msgid "vcx instructions with S or D registers require either MVE or Armv8-M floating point extension." +msgstr "" + +#: config/tc-arm.c:21883 +msgid "vcx1 with S or D registers takes immediate within 0-2047" +msgstr "" + +#: config/tc-arm.c:21899 +msgid "vcx2 with S or D registers takes immediate within 0-63" +msgstr "" + +#: config/tc-arm.c:21914 +msgid "vcx2 with S or D registers takes immediate within 0-7" +msgstr "" + +#: config/tc-arm.c:22504 config/tc-arm.c:22625 msgid "conditional infixes are deprecated in unified syntax" msgstr "los infijos condicionales son obsoletos en la sintaxis unificada" -#: config/tc-arm.c:18387 +#: config/tc-arm.c:22836 msgid "Warning: conditional outside an IT block for Thumb." msgstr "Aviso: condicional fuera de un bloque IT para Thumb." -#: config/tc-arm.c:18539 +#: config/tc-arm.c:23164 msgid "Short branches, Undefined, SVC, LDM/STM" msgstr "" -#: config/tc-arm.c:18540 +#: config/tc-arm.c:23165 msgid "Miscellaneous 16-bit instructions" msgstr "Instrucciones 16-bit miscelánea" -#: config/tc-arm.c:18541 +#: config/tc-arm.c:23166 msgid "ADR" msgstr "DIR" -#: config/tc-arm.c:18542 +#: config/tc-arm.c:23167 msgid "Literal loads" msgstr "Cargas literales" -#: config/tc-arm.c:18543 +#: config/tc-arm.c:23168 msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc" msgstr "Registro-Superior ADD, MOV, CMP, BX, BLX utilizando pc" -#: config/tc-arm.c:18544 +#: config/tc-arm.c:23169 msgid "Hi-register ADD, MOV, CMP using pc" msgstr "Registro-Superior ADD, MOV, CMP utilizando pc" #. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue' #. field in asm_opcode. 'tvalue' is used at the stage this check happen. -#: config/tc-arm.c:18547 +#: config/tc-arm.c:23172 msgid "ADD/SUB sp, sp #imm" msgstr "ADD/SUB sp, sp #imm" -#: config/tc-arm.c:18566 -msgid "IT blocks containing 32-bit Thumb instructions are deprecated in ARMv8" +#: config/tc-arm.c:23194 +msgid "IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R" msgstr "" -#: config/tc-arm.c:18578 +#: config/tc-arm.c:23206 #, c-format -msgid "IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: %s" +msgid "IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: %s" msgstr "" -#: config/tc-arm.c:18591 -msgid "IT blocks containing more than one conditional instruction are deprecated in ARMv8" +#: config/tc-arm.c:23220 +msgid "IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R" msgstr "" -#: config/tc-arm.c:18706 +#: config/tc-arm.c:23338 #, c-format msgid "bad instruction `%s'" -msgstr "instrucción equivocada «%s»" +msgstr "instrucción incorrecta «%s»" -#: config/tc-arm.c:18712 +#: config/tc-arm.c:23344 msgid "s suffix on comparison instruction is deprecated" msgstr "sufijo s sobre comparación de instrucción es obsoleto" -#: config/tc-arm.c:18732 +#: config/tc-arm.c:23364 msgid "SVC is not permitted on this architecture" msgstr "No se admite SVC en esta arquitectura" -#: config/tc-arm.c:18734 +#: config/tc-arm.c:23366 #, c-format msgid "selected processor does not support `%s' in Thumb mode" msgstr "procesador seleccionado no admite «%s» dentro de modo Thumb" -#: config/tc-arm.c:18740 +#: config/tc-arm.c:23372 msgid "Thumb does not support conditional execution" msgstr "Thumb no admite la ejecución condicional" -#: config/tc-arm.c:18760 +#: config/tc-arm.c:23392 #, c-format msgid "selected processor does not support 32bit wide variant of instruction `%s'" msgstr "procesador seleccionado no admite variante de 32 bit de instrucción «%s»" -#: config/tc-arm.c:18763 +#: config/tc-arm.c:23395 #, c-format msgid "selected processor does not support `%s' in Thumb-2 mode" msgstr "procesador seleccionado no admite «%s» modo Thumb-2" -#: config/tc-arm.c:18788 +#: config/tc-arm.c:23420 #, c-format msgid "cannot honor width suffix -- `%s'" msgstr "no se puede honrar el sufijo de anchura -- «%s»" -#: config/tc-arm.c:18830 +#: config/tc-arm.c:23462 #, c-format msgid "selected processor does not support `%s' in ARM mode" msgstr "procesador seleccionado no admite «%s» en modo ARM" -#: config/tc-arm.c:18835 +#: config/tc-arm.c:23467 #, c-format msgid "width suffixes are invalid in ARM mode -- `%s'" msgstr "los sufijos de anchura son inválidos en modo ARM -- «%s»" -#: config/tc-arm.c:18868 +#: config/tc-arm.c:23500 #, c-format msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'" -msgstr "se intentó usar una instrucción ARM en un procesador que sólo es Thumb -- «%s»" +msgstr "se intentó usar una instrucción ARM en un procesador que solo es Thumb -- «%s»" -#: config/tc-arm.c:18885 +#: config/tc-arm.c:23518 #, c-format msgid "section '%s' finished with an open IT block." msgstr "la sección «%s» terminó con un bloque IT abierto." -#: config/tc-arm.c:18890 +#: config/tc-arm.c:23521 +#, fuzzy, c-format +#| msgid "section '%s' finished with an open IT block." +msgid "section '%s' finished with an open VPT/VPST block." +msgstr "la sección «%s» terminó con un bloque IT abierto." + +#: config/tc-arm.c:23528 msgid "file finished with an open IT block." msgstr "el fichero terminó con un bloque IT abierto." -#: config/tc-arm.c:22166 +#: config/tc-arm.c:23530 +#, fuzzy +#| msgid "file finished with an open IT block." +msgid "file finished with an open VPT/VPST block." +msgstr "el fichero terminó con un bloque IT abierto." + +#: config/tc-arm.c:26696 #, c-format msgid "alignments greater than %d bytes not supported in .text sections." msgstr "no se admiten las alineaciones más grandes que %d bytes en las secciones .text." -#: config/tc-arm.c:22433 config/tc-ia64.c:3594 +#: config/tc-arm.c:26962 config/tc-ia64.c:3588 #, c-format msgid "Group section `%s' has no group signature" msgstr "Sección de grupo «%s» no tiene firma de grupo" -#: config/tc-arm.c:22479 +#: config/tc-arm.c:27008 msgid "handlerdata in cantunwind frame" msgstr "handlerdata en un marco cantunwind" -#: config/tc-arm.c:22496 +#: config/tc-arm.c:27026 msgid "too many unwind opcodes for personality routine 0" msgstr "demasiados códigos operacionales de desenredo para la rutina personality 0" -#: config/tc-arm.c:22527 +#: config/tc-arm.c:27059 msgid "attempt to recreate an unwind entry" msgstr "trata recrear una entrada relajada" -#: config/tc-arm.c:22537 +#: config/tc-arm.c:27070 msgid "too many unwind opcodes" msgstr "demasiados códigos operacionales de desenredo" -#: config/tc-arm.c:22830 +#: config/tc-arm.c:27374 #, c-format msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s" msgstr "" -#: config/tc-arm.c:23192 config/tc-arm.c:23260 +#: config/tc-arm.c:27736 config/tc-arm.c:27804 #, c-format msgid "symbol %s is in a different section" msgstr "el símbolo %s está en una sección diferente" -#: config/tc-arm.c:23194 config/tc-arm.c:23262 +#: config/tc-arm.c:27738 config/tc-arm.c:27806 #, c-format msgid "symbol %s is weak and may be overridden later" msgstr "el símbolo %s es débil y se puede sobreescribir tras" -#: config/tc-arm.c:23239 config/tc-arm.c:23609 +#: config/tc-arm.c:27783 config/tc-arm.c:28155 #, c-format msgid "invalid constant (%lx) after fixup" msgstr "constante no válida (%lx) tras la compostura" -#: config/tc-arm.c:23295 +#: config/tc-arm.c:27839 #, c-format msgid "unable to compute ADRL instructions for PC offset of 0x%lx" msgstr "incapaz de calcular las instrucciones ADRL para el desplazamiento de PC de 0x%lx" -#: config/tc-arm.c:23331 config/tc-arm.c:23361 +#: config/tc-arm.c:27875 config/tc-arm.c:27905 msgid "invalid literal constant: pool needs to be closer" msgstr "constante literal no válida: el conjunto necesita estar más cerca" -#: config/tc-arm.c:23334 config/tc-arm.c:23383 +#: config/tc-arm.c:27878 config/tc-arm.c:27927 #, c-format msgid "bad immediate value for offset (%ld)" -msgstr "valor inmediato equivocado para el desplazamiento (%ld)" +msgstr "valor inmediato incorrecto para el desplazamiento (%ld)" -#: config/tc-arm.c:23364 +#: config/tc-arm.c:27908 #, c-format msgid "bad immediate value for 8-bit offset (%ld)" -msgstr "valor inmediato equivocado para el desplazamiento de 8-bit (%ld)" +msgstr "valor inmediato incorrecto para el desplazamiento de 8-bit (%ld)" -#: config/tc-arm.c:23424 +#: config/tc-arm.c:27968 msgid "offset not a multiple of 4" msgstr "desplazamiento no un múltiplo de 4" -#: config/tc-arm.c:23625 +#: config/tc-arm.c:28171 msgid "invalid smc expression" msgstr "expresión smc no válida" -#: config/tc-arm.c:23634 +#: config/tc-arm.c:28181 msgid "invalid hvc expression" msgstr "expresión hvc no válida" -#: config/tc-arm.c:23645 config/tc-arm.c:23654 +#: config/tc-arm.c:28192 config/tc-arm.c:28201 msgid "invalid swi expression" msgstr "expresión swi no válida" -#: config/tc-arm.c:23664 +#: config/tc-arm.c:28211 msgid "invalid expression in load/store multiple" msgstr "expresión no válida en load/store múltiples" -#: config/tc-arm.c:23726 +#: config/tc-arm.c:28273 #, c-format msgid "blx to '%s' an ARM ISA state function changed to bl" msgstr "blx a «%s» cambió una función estatal ISA de ARM a bl" -#: config/tc-arm.c:23745 +#: config/tc-arm.c:28292 msgid "misaligned branch destination" msgstr "destinaciones ramificadas desalineadas" -#: config/tc-arm.c:23865 +#: config/tc-arm.c:28413 #, c-format msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl" msgstr "blx a la función Thumb «%s» cambió del estado ISA Thumb a bl" -#: config/tc-arm.c:23915 +#: config/tc-arm.c:28462 msgid "Thumb2 branch out of range" -msgstr "Thumb2 ramificado fuera de límite" +msgstr "Thumb2 ramificado fuera de rango" + +#: config/tc-arm.c:28514 config/tc-arm.c:28547 +#, fuzzy +#| msgid "%s not supported in MIPS16 mode" +msgid "Relocation supported only in FDPIC mode" +msgstr "%s no admitido dentro del modo MIPS16" -#: config/tc-arm.c:23999 +#: config/tc-arm.c:28577 msgid "rel31 relocation overflow" msgstr "desbordamiento de reubicación rel31" -#: config/tc-arm.c:24020 config/tc-arm.c:24024 config/tc-arm.c:24063 +#: config/tc-arm.c:28599 config/tc-arm.c:28605 config/tc-arm.c:28609 +#: config/tc-arm.c:28656 msgid "co-processor offset out of range" -msgstr "desplazamiento de coprocesador fuera de límite" +msgstr "desplazamiento de coprocesador fuera de rango" -#: config/tc-arm.c:24080 +#: config/tc-arm.c:28673 #, c-format msgid "invalid offset, target not word aligned (0x%08lX)" msgstr "desplazamiento inválido, el objetivo no está alineado a word (0x%08lX)" -#: config/tc-arm.c:24087 config/tc-arm.c:24096 config/tc-arm.c:24104 -#: config/tc-arm.c:24112 config/tc-arm.c:24120 +#: config/tc-arm.c:28679 +msgid "section does not have enough alignment to ensure safe PC-relative loads" +msgstr "" + +#: config/tc-arm.c:28683 config/tc-arm.c:28692 config/tc-arm.c:28700 +#: config/tc-arm.c:28708 config/tc-arm.c:28716 #, c-format msgid "invalid offset, value too big (0x%08lX)" msgstr "desplazamiento inválido, valor demasiado grande (0x%08lX)" -#: config/tc-arm.c:24161 +#: config/tc-arm.c:28757 msgid "invalid Hi register with immediate" msgstr "registro Hi inválido con el inmediato" -#: config/tc-arm.c:24177 +#: config/tc-arm.c:28773 msgid "invalid immediate for stack address calculation" msgstr "inmediato inválido para el cálculo de la dirección de la pila" -#: config/tc-arm.c:24196 +#: config/tc-arm.c:28792 msgid "address calculation needs a strongly defined nearby symbol" msgstr "" -#: config/tc-arm.c:24212 +#: config/tc-arm.c:28808 msgid "symbol too far away" msgstr "símbolo fuera muy lejos" -#: config/tc-arm.c:24224 +#: config/tc-arm.c:28820 #, c-format msgid "invalid immediate for address calculation (value = 0x%08lX)" msgstr "inmediato inválido para el cálculo de la dirección (valor = 0x%08lX)" -#: config/tc-arm.c:24254 +#: config/tc-arm.c:28850 #, c-format msgid "invalid immediate: %ld is out of range" -msgstr "inmediato inválido: %ld está fuera de límite" +msgstr "inmediato inválido: %ld está fuera de rango" -#: config/tc-arm.c:24266 +#: config/tc-arm.c:28862 #, c-format msgid "invalid shift value: %ld" msgstr "valor de desplazamiento inválido: %ld" -#: config/tc-arm.c:24336 config/tc-arm.c:24407 +#: config/tc-arm.c:28932 config/tc-arm.c:29003 #, c-format msgid "the offset 0x%08lX is not representable" msgstr "el desplazamiento 0x%08lX no es representable" -#: config/tc-arm.c:24368 +#: config/tc-arm.c:28964 #, c-format msgid "Unable to process relocation for thumb opcode: %lx" msgstr "Incapaz de procesar reubicación para código operacional pulgar: %lx" -#: config/tc-arm.c:24447 +#: config/tc-arm.c:29043 #, c-format msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)" -msgstr "desplazamiento equivocado 0x%08lX (sólo hay 12 bits disponibles para esta magnitud)" +msgstr "desplazamiento incorrecto 0x%08lX (solo hay 12 bits disponibles para esta magnitud)" -#: config/tc-arm.c:24486 +#: config/tc-arm.c:29082 #, c-format msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)" -msgstr "desplazamiento equivocado 0x%08lX (sólo hay 8 bits disponibles para esta magnitud)" +msgstr "desplazamiento incorrecto 0x%08lX (solo hay 8 bits disponibles para esta magnitud)" -#: config/tc-arm.c:24526 +#: config/tc-arm.c:29122 #, c-format msgid "bad offset 0x%08lX (must be word-aligned)" -msgstr "desplazamiento equivocado 0x%08lX (debe ser alineado a word)" +msgstr "desplazamiento incorrecto 0x%08lX (debe ser alineado a word)" -#: config/tc-arm.c:24531 +#: config/tc-arm.c:29127 #, c-format msgid "bad offset 0x%08lX (must be an 8-bit number of words)" -msgstr "desplazamiento equivocado 0x%08lX (debe ser un número de 8-bit de words)" +msgstr "desplazamiento incorrecto 0x%08lX (debe ser un número de 8-bit de words)" -#: config/tc-arm.c:24562 config/tc-score.c:7391 +#: config/tc-arm.c:29348 config/tc-score.c:7302 #, c-format msgid "bad relocation fixup type (%d)" msgstr "tipo de compostura de reubicación inválido (%d)" -#: config/tc-arm.c:24680 +#: config/tc-arm.c:29465 msgid "literal referenced across section boundary" -msgstr "se referencía una literal a través de un límite seccional" +msgstr "se referencía una literal a través de un límite de sección" -#: config/tc-arm.c:24751 +#: config/tc-arm.c:29545 msgid "internal relocation (type: IMMEDIATE) not fixed up" msgstr "reubicación interna (tipo: IMMEDIATE) no compuesta" -#: config/tc-arm.c:24756 +#: config/tc-arm.c:29550 msgid "ADRL used for a symbol not defined in the same file" msgstr "ADRL utilizado para un símbolo que no está definido en el mismo fichero" -#: config/tc-arm.c:24771 +#: config/tc-arm.c:29557 +#, fuzzy, c-format +#| msgid "ADRL used for a symbol not defined in the same file" +msgid "%s used for a symbol not defined in the same file" +msgstr "ADRL utilizado para un símbolo que no está definido en el mismo fichero" + +#: config/tc-arm.c:29573 #, c-format msgid "undefined local label `%s'" msgstr "etiqueta local indefinida «%s»" -#: config/tc-arm.c:24777 +#: config/tc-arm.c:29579 msgid "internal_relocation (type: OFFSET_IMM) not fixed up" msgstr "reubicación_interna (tipo OFFSET_IMM) no compuesta" -#: config/tc-arm.c:24799 config/tc-cris.c:4006 config/tc-ft32.c:709 -#: config/tc-mcore.c:1928 config/tc-microblaze.c:1978 config/tc-mmix.c:2895 -#: config/tc-moxie.c:825 config/tc-ns32k.c:2248 config/tc-score.c:7478 +#: config/tc-arm.c:29601 config/tc-cris.c:3999 config/tc-csky.c:1152 +#: config/tc-ft32.c:707 config/tc-mcore.c:1932 config/tc-microblaze.c:2062 +#: config/tc-mmix.c:2898 config/tc-moxie.c:823 config/tc-ns32k.c:2245 +#: config/tc-score.c:7389 msgid "<unknown>" msgstr "<desconocido>" -#: config/tc-arm.c:25188 +#: config/tc-arm.c:30000 #, c-format msgid "%s: unexpected function type: %d" msgstr "%s: tipo de función inesperado: %d" -#: config/tc-arm.c:25325 +#: config/tc-arm.c:30140 msgid "use of old and new-style options to set CPU type" msgstr "se utilizan casillas de estilo antiguo y nuevo para establecer el tipo de CPU" -#: config/tc-arm.c:25340 +#: config/tc-arm.c:30159 msgid "use of old and new-style options to set FPU type" msgstr "se utilizan casillas de estilo antiguo y nuevo para establecer el tipo de FPU" -#: config/tc-arm.c:25424 +#: config/tc-arm.c:30232 msgid "hard-float conflicts with specified fpu" msgstr "hard-float tiene conflictos con la unidad de coma flotante (fpu) especificada" -#: config/tc-arm.c:25612 +#: config/tc-arm.c:30415 msgid "generate PIC code" msgstr "genera código PIC" -#: config/tc-arm.c:25613 +#: config/tc-arm.c:30416 msgid "assemble Thumb code" msgstr "ensambla código Thumb" -#: config/tc-arm.c:25614 +#: config/tc-arm.c:30417 msgid "support ARM/Thumb interworking" msgstr "admite la interoperación ARM/Thumb" -#: config/tc-arm.c:25616 +#: config/tc-arm.c:30419 msgid "code uses 32-bit program counter" msgstr "el código utiliza un contador de programa de 32-bit" -#: config/tc-arm.c:25617 +#: config/tc-arm.c:30420 msgid "code uses 26-bit program counter" msgstr "el código utiliza un contador de programa de 26-bit" -#: config/tc-arm.c:25618 +#: config/tc-arm.c:30421 msgid "floating point args are in fp regs" msgstr "los argumentos de coma flotante están en los registros de coma flotante" -#: config/tc-arm.c:25620 +#: config/tc-arm.c:30423 msgid "re-entrant code" msgstr "código reentrante" -#: config/tc-arm.c:25621 +#: config/tc-arm.c:30424 msgid "code is ATPCS conformant" msgstr "el código es conforme a ATPCS" #. These are recognized by the assembler, but have no affect on code. -#: config/tc-arm.c:25627 +#: config/tc-arm.c:30430 msgid "use frame pointer" msgstr "usa puntero de marco" -#: config/tc-arm.c:25628 +#: config/tc-arm.c:30431 msgid "use stack size checking" msgstr "usa revisión del tamaño de la pila" -#: config/tc-arm.c:25631 +#: config/tc-arm.c:30434 msgid "do not warn on use of deprecated feature" msgstr "no avisa del uso de una opción obsoleta" -#: config/tc-arm.c:25633 +#: config/tc-arm.c:30437 +msgid "warn about performance deprecated IT instructions in ARMv8-A and ARMv8-R" +msgstr "" + +#: config/tc-arm.c:30441 msgid "warn about symbols that match instruction names [default]" msgstr "" -#: config/tc-arm.c:25634 +#: config/tc-arm.c:30442 msgid "disable warnings about symobls that match instructions" msgstr "" #. DON'T add any new processors to this list -- we want the whole list #. to go away... Add them to the processors table instead. -#: config/tc-arm.c:25650 config/tc-arm.c:25651 +#: config/tc-arm.c:30458 config/tc-arm.c:30459 msgid "use -mcpu=arm1" msgstr "emplea -mcpu=arm1" -#: config/tc-arm.c:25652 config/tc-arm.c:25653 +#: config/tc-arm.c:30460 config/tc-arm.c:30461 msgid "use -mcpu=arm2" msgstr "emplea -mcpu=arm2" -#: config/tc-arm.c:25654 config/tc-arm.c:25655 +#: config/tc-arm.c:30462 config/tc-arm.c:30463 msgid "use -mcpu=arm250" msgstr "emplea -mcpu=arm250" -#: config/tc-arm.c:25656 config/tc-arm.c:25657 +#: config/tc-arm.c:30464 config/tc-arm.c:30465 msgid "use -mcpu=arm3" msgstr "emplea -mcpu=arm3" -#: config/tc-arm.c:25658 config/tc-arm.c:25659 +#: config/tc-arm.c:30466 config/tc-arm.c:30467 msgid "use -mcpu=arm6" msgstr "emplea -mcpu=arm6" -#: config/tc-arm.c:25660 config/tc-arm.c:25661 +#: config/tc-arm.c:30468 config/tc-arm.c:30469 msgid "use -mcpu=arm600" msgstr "emplea -mcpu=arm600" -#: config/tc-arm.c:25662 config/tc-arm.c:25663 +#: config/tc-arm.c:30470 config/tc-arm.c:30471 msgid "use -mcpu=arm610" msgstr "emplea -mcpu=arm610" -#: config/tc-arm.c:25664 config/tc-arm.c:25665 +#: config/tc-arm.c:30472 config/tc-arm.c:30473 msgid "use -mcpu=arm620" msgstr "emplea -mcpu=arm620" -#: config/tc-arm.c:25666 config/tc-arm.c:25667 +#: config/tc-arm.c:30474 config/tc-arm.c:30475 msgid "use -mcpu=arm7" msgstr "emplea -mcpu=arm7" -#: config/tc-arm.c:25668 config/tc-arm.c:25669 +#: config/tc-arm.c:30476 config/tc-arm.c:30477 msgid "use -mcpu=arm70" msgstr "emplea -mcpu=arm70" -#: config/tc-arm.c:25670 config/tc-arm.c:25671 +#: config/tc-arm.c:30478 config/tc-arm.c:30479 msgid "use -mcpu=arm700" msgstr "emplea -mcpu=arm700" -#: config/tc-arm.c:25672 config/tc-arm.c:25673 +#: config/tc-arm.c:30480 config/tc-arm.c:30481 msgid "use -mcpu=arm700i" msgstr "emplea -mcpu=arm700i" -#: config/tc-arm.c:25674 config/tc-arm.c:25675 +#: config/tc-arm.c:30482 config/tc-arm.c:30483 msgid "use -mcpu=arm710" msgstr "emplea -mcpu=arm710" -#: config/tc-arm.c:25676 config/tc-arm.c:25677 +#: config/tc-arm.c:30484 config/tc-arm.c:30485 msgid "use -mcpu=arm710c" msgstr "emplea -mcpu=arm710c" -#: config/tc-arm.c:25678 config/tc-arm.c:25679 +#: config/tc-arm.c:30486 config/tc-arm.c:30487 msgid "use -mcpu=arm720" msgstr "emplea -mcpu=arm720" -#: config/tc-arm.c:25680 config/tc-arm.c:25681 +#: config/tc-arm.c:30488 config/tc-arm.c:30489 msgid "use -mcpu=arm7d" msgstr "emplea -mcpu=arm7d" -#: config/tc-arm.c:25682 config/tc-arm.c:25683 +#: config/tc-arm.c:30490 config/tc-arm.c:30491 msgid "use -mcpu=arm7di" msgstr "emplea -mcpu=arm7di" -#: config/tc-arm.c:25684 config/tc-arm.c:25685 +#: config/tc-arm.c:30492 config/tc-arm.c:30493 msgid "use -mcpu=arm7m" msgstr "emplea -mcpu=arm7m" -#: config/tc-arm.c:25686 config/tc-arm.c:25687 +#: config/tc-arm.c:30494 config/tc-arm.c:30495 msgid "use -mcpu=arm7dm" msgstr "emplea -mcpu=arm7dm" -#: config/tc-arm.c:25688 config/tc-arm.c:25689 +#: config/tc-arm.c:30496 config/tc-arm.c:30497 msgid "use -mcpu=arm7dmi" msgstr "emplea -mcpu=arm7dmi" -#: config/tc-arm.c:25690 config/tc-arm.c:25691 +#: config/tc-arm.c:30498 config/tc-arm.c:30499 msgid "use -mcpu=arm7100" msgstr "emplea -mcpu=arm7100" -#: config/tc-arm.c:25692 config/tc-arm.c:25693 +#: config/tc-arm.c:30500 config/tc-arm.c:30501 msgid "use -mcpu=arm7500" msgstr "emplea -mcpu=arm7500" -#: config/tc-arm.c:25694 config/tc-arm.c:25695 +#: config/tc-arm.c:30502 config/tc-arm.c:30503 msgid "use -mcpu=arm7500fe" msgstr "emplea -mcpu=arm7500fe" -#: config/tc-arm.c:25696 config/tc-arm.c:25697 config/tc-arm.c:25698 -#: config/tc-arm.c:25699 +#: config/tc-arm.c:30504 config/tc-arm.c:30505 config/tc-arm.c:30506 +#: config/tc-arm.c:30507 msgid "use -mcpu=arm7tdmi" msgstr "emplea -mcpu=arm7tdmi" -#: config/tc-arm.c:25700 config/tc-arm.c:25701 +#: config/tc-arm.c:30508 config/tc-arm.c:30509 msgid "use -mcpu=arm710t" msgstr "emplea -mcpu=arm710t" -#: config/tc-arm.c:25702 config/tc-arm.c:25703 +#: config/tc-arm.c:30510 config/tc-arm.c:30511 msgid "use -mcpu=arm720t" msgstr "emplea -mcpu=arm720t" -#: config/tc-arm.c:25704 config/tc-arm.c:25705 +#: config/tc-arm.c:30512 config/tc-arm.c:30513 msgid "use -mcpu=arm740t" msgstr "emplea -mcpu=arm740t" -#: config/tc-arm.c:25706 config/tc-arm.c:25707 +#: config/tc-arm.c:30514 config/tc-arm.c:30515 msgid "use -mcpu=arm8" msgstr "emplea -mcpu=arm8" -#: config/tc-arm.c:25708 config/tc-arm.c:25709 +#: config/tc-arm.c:30516 config/tc-arm.c:30517 msgid "use -mcpu=arm810" msgstr "emplea -mcpu=arm810" -#: config/tc-arm.c:25710 config/tc-arm.c:25711 +#: config/tc-arm.c:30518 config/tc-arm.c:30519 msgid "use -mcpu=arm9" msgstr "emplea -mcpu=arm9" -#: config/tc-arm.c:25712 config/tc-arm.c:25713 +#: config/tc-arm.c:30520 config/tc-arm.c:30521 msgid "use -mcpu=arm9tdmi" msgstr "emplea -mcpu=arm9tdmi" -#: config/tc-arm.c:25714 config/tc-arm.c:25715 +#: config/tc-arm.c:30522 config/tc-arm.c:30523 msgid "use -mcpu=arm920" msgstr "emplea -mcpu=arm920" -#: config/tc-arm.c:25716 config/tc-arm.c:25717 +#: config/tc-arm.c:30524 config/tc-arm.c:30525 msgid "use -mcpu=arm940" msgstr "emplea -mcpu=arm940" -#: config/tc-arm.c:25718 +#: config/tc-arm.c:30526 msgid "use -mcpu=strongarm" msgstr "emplea -mcpu=strongarm" -#: config/tc-arm.c:25720 +#: config/tc-arm.c:30528 msgid "use -mcpu=strongarm110" msgstr "emplea -mcpu=strongarm110" -#: config/tc-arm.c:25722 +#: config/tc-arm.c:30530 msgid "use -mcpu=strongarm1100" msgstr "emplea -mcpu=strongarm1100" -#: config/tc-arm.c:25724 +#: config/tc-arm.c:30532 msgid "use -mcpu=strongarm1110" msgstr "emplea -mcpu=strongarm1110" -#: config/tc-arm.c:25725 +#: config/tc-arm.c:30533 msgid "use -mcpu=xscale" msgstr "emplea -mcpu=xscale" -#: config/tc-arm.c:25726 +#: config/tc-arm.c:30534 msgid "use -mcpu=iwmmxt" msgstr "emplea -mcpu=iwmmxt" -#: config/tc-arm.c:25727 +#: config/tc-arm.c:30535 msgid "use -mcpu=all" msgstr "emplea -mcpu=all" #. Architecture variants -- don't add any more to this list either. -#: config/tc-arm.c:25730 config/tc-arm.c:25731 +#: config/tc-arm.c:30538 config/tc-arm.c:30539 msgid "use -march=armv2" msgstr "emplea -march=armv2" -#: config/tc-arm.c:25732 config/tc-arm.c:25733 +#: config/tc-arm.c:30540 config/tc-arm.c:30541 msgid "use -march=armv2a" msgstr "emplea -march=armv2a" -#: config/tc-arm.c:25734 config/tc-arm.c:25735 +#: config/tc-arm.c:30542 config/tc-arm.c:30543 msgid "use -march=armv3" msgstr "emplea -march=armv3" -#: config/tc-arm.c:25736 config/tc-arm.c:25737 +#: config/tc-arm.c:30544 config/tc-arm.c:30545 msgid "use -march=armv3m" msgstr "emplea -march=armv3m" -#: config/tc-arm.c:25738 config/tc-arm.c:25739 +#: config/tc-arm.c:30546 config/tc-arm.c:30547 msgid "use -march=armv4" msgstr "emplea -march=armv4" -#: config/tc-arm.c:25740 config/tc-arm.c:25741 +#: config/tc-arm.c:30548 config/tc-arm.c:30549 msgid "use -march=armv4t" msgstr "emplea -march=armv4t" -#: config/tc-arm.c:25742 config/tc-arm.c:25743 +#: config/tc-arm.c:30550 config/tc-arm.c:30551 msgid "use -march=armv5" msgstr "emplea -march=armv5" -#: config/tc-arm.c:25744 config/tc-arm.c:25745 +#: config/tc-arm.c:30552 config/tc-arm.c:30553 msgid "use -march=armv5t" msgstr "emplea -march=armv5t" -#: config/tc-arm.c:25746 config/tc-arm.c:25747 +#: config/tc-arm.c:30554 config/tc-arm.c:30555 msgid "use -march=armv5te" msgstr "emplea -march=armv5te" -#. Floating point variants -- don't add any more to this list either. -#: config/tc-arm.c:25750 -msgid "use -mfpu=fpe" +#: config/tc-arm.c:30556 +#, fuzzy +#| msgid "use -mfpu=fpe" +msgid "use -mfpu=softvfp" msgstr "emplea -mfpu=fpe" -#: config/tc-arm.c:25751 -msgid "use -mfpu=fpa10" -msgstr "emplea -mfpu=fpa10" - -#: config/tc-arm.c:25752 -msgid "use -mfpu=fpa11" -msgstr "emplea -mfpu=fpa11" - -#: config/tc-arm.c:25754 -msgid "use either -mfpu=softfpa or -mfpu=softvfp" -msgstr "emplea -mfpu=softfpa ó -mfpu=softvfp" - -#: config/tc-arm.c:26508 +#: config/tc-arm.c:31713 msgid "extension does not apply to the base architecture" msgstr "extensión no se aplica a la arquitectura base" -#: config/tc-arm.c:26538 +#: config/tc-arm.c:31742 msgid "architectural extensions must be specified in alphabetical order" msgstr "extensiones de arquitectura deben ser especificadas en orden alfabético" -#: config/tc-arm.c:26656 config/tc-arm.c:27541 +#: config/tc-arm.c:31881 config/tc-arm.c:32864 #, c-format msgid "unknown floating point format `%s'\n" msgstr "desconoce formato de coma flotante «%s»\n" -#: config/tc-arm.c:26672 +#: config/tc-arm.c:31897 config/tc-csky.c:1264 #, c-format msgid "unknown floating point abi `%s'\n" msgstr "desconoce abi de coma flotante «%s» desconocida\n" -#: config/tc-arm.c:26688 +#: config/tc-arm.c:31913 #, c-format msgid "unknown EABI `%s'\n" msgstr "desconoce EABI «%s»\n" -#: config/tc-arm.c:26708 +#: config/tc-arm.c:31933 #, c-format msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never." msgstr "desconoce modo IT implícito «%s» , debe ser brazo, pulgar, siempre o nunca." -#: config/tc-arm.c:26731 config/tc-metag.c:5913 +#: config/tc-arm.c:31956 config/tc-metag.c:5911 msgid "<fpu name>\t assemble for FPU architecture <fpu name>" msgstr "<nombre fpu>\t ensambla para la arquitectura de Unidad de Coma Flotante <nombre fpu>" -#: config/tc-arm.c:26733 +#: config/tc-arm.c:31958 msgid "<abi>\t assemble for floating point ABI <abi>" msgstr "<abi>\t ensambla para la ABI de coma flotante <abi>" -#: config/tc-arm.c:26736 +#: config/tc-arm.c:31961 msgid "<ver>\t\t assemble for eabi version <ver>" msgstr "<ver>\t\t ensambla para la eabi versión <ver>" -#: config/tc-arm.c:26739 +#: config/tc-arm.c:31964 msgid "<mode>\t controls implicit insertion of IT instructions" msgstr "<modo>\t controla la inserción implícita de instrucciones IT" -#: config/tc-arm.c:26741 +#: config/tc-arm.c:31966 msgid "\t\t\t TI CodeComposer Studio syntax compatibility mode" msgstr "\t\t\t modo compatible de sintaxis TI CodeComposer Studio" -#: config/tc-arm.c:26843 +#: config/tc-arm.c:31969 +msgid "" +"[ieee|alternative]\n" +" set the encoding for half precision floating point numbers to IEEE\n" +" or Arm alternative format." +msgstr "" + +#: config/tc-arm.c:32080 #, c-format msgid " ARM-specific assembler options:\n" msgstr " Opciones de ensamblador específicas de ARM:\n" -#: config/tc-arm.c:26863 +#: config/tc-arm.c:32100 #, c-format msgid " --fix-v4bx Allow BX in ARMv4 code\n" msgstr " --fix-v4bx Permite BX en código ARMv4\n" -#: config/tc-arm.c:27160 +#: config/tc-arm.c:32104 +#, fuzzy, c-format +#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n" +msgid " --fdpic generate an FDPIC object file\n" +msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n" + +#: config/tc-arm.c:32425 msgid "no architecture contains all the instructions used\n" msgstr "ninguna arquitectura contiene todas las instrucciones utilizadas\n" -#: config/tc-arm.c:27479 +#: config/tc-arm.c:32617 +#, fuzzy +#| msgid "missing cpu name `%s'" +msgid ".cpu: missing cpu name" +msgstr "ausente el nombre de cpu «%s»" + +#: config/tc-arm.c:32665 +#, fuzzy +#| msgid "missing architecture name `%s'" +msgid ".arch: missing architecture name" +msgstr "ausente el nombre de arquitectura «%s»" + +#: config/tc-arm.c:32706 +#, fuzzy +#| msgid "missing architecture name `%s'" +msgid ".object_arch: missing architecture name" +msgstr "ausente el nombre de arquitectura «%s»" + +#: config/tc-arm.c:32743 +#, fuzzy +#| msgid "missing architectural extension" +msgid ".arch_extension: missing architecture extension" +msgstr "ausente la extensión de la arquitectura" + +#: config/tc-arm.c:32800 #, c-format msgid "architectural extension `%s' is not allowed for the current base architecture" msgstr "no se permite la extensión de arquitectura «%s» para la arquitectura base actual" -#: config/tc-arm.c:27508 +#: config/tc-arm.c:32823 #, c-format msgid "unknown architecture extension `%s'\n" msgstr "desconoce extensión de arquitectura «%s»\n" -#: config/tc-avr.c:594 +#: config/tc-arm.c:32844 +#, fuzzy +#| msgid "missing fpu name `%s'" +msgid ".fpu: missing fpu name" +msgstr "ausente el nombre fpu «%s»" + +#: config/tc-avr.c:597 #, c-format msgid "Known MCU names:" msgstr "Nombres MCU conocidos:" -#: config/tc-avr.c:659 +#: config/tc-avr.c:662 #, c-format msgid "" "AVR Assembler options:\n" @@ -5036,8 +6149,18 @@ msgstr "" " avrxmega7 - XMEGA, > 128K, ≤ 256K FLASH, > 64K RAM\n" " avrtinyo Núcleo -AVR Tiny con registros 16 gp\n" -#: config/tc-avr.c:682 -#, c-format +#: config/tc-avr.c:685 +#, fuzzy, c-format +#| msgid "" +#| " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" +#| " -mno-skip-bug disable warnings for skipping two-word instructions\n" +#| " (default for avr4, avr5)\n" +#| " -mno-wrap reject rjmp/rcall instructions with 8K wrap-around\n" +#| " (default for avr3, avr5)\n" +#| " -mrmw accept Read-Modify-Write instructions\n" +#| " -mlink-relax generate relocations for linker relaxation (default)\n" +#| " -mno-link-relax don't generate relocations for linker relaxation.\n" +#| " -mgcc-isr accept the __gcc_isr pseudo-instruction.\n" msgid "" " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" " -mno-skip-bug disable warnings for skipping two-word instructions\n" @@ -5048,6 +6171,8 @@ msgid "" " -mlink-relax generate relocations for linker relaxation (default)\n" " -mno-link-relax don't generate relocations for linker relaxation.\n" " -mgcc-isr accept the __gcc_isr pseudo-instruction.\n" +" -mno-dollar-line-separator\n" +" do not treat the $ character as a line separator.\n" msgstr "" " -mall-opcodes acepta todos los códigos operacionales AVR, aún si\n" " no lo admite el MCU\n" @@ -5060,507 +6185,560 @@ msgstr "" " -mno-link-relax no genera reubicación para relajación de enlazador.\n" " -mgcc-isr acepta la __gcc_isr pseudo-instrucción.\n" -#: config/tc-avr.c:721 +#: config/tc-avr.c:726 #, c-format msgid "unknown MCU: %s\n" msgstr "desconoce MCU: %s\n" -#: config/tc-avr.c:735 +#: config/tc-avr.c:740 #, c-format msgid "redefinition of mcu type `%s' to `%s'" msgstr "redefinición del tipo de mcu «%s» a «%s»" -#: config/tc-avr.c:858 +#: config/tc-avr.c:869 msgid "constant value required" msgstr "se requiere un valor constante" -#: config/tc-avr.c:861 +#: config/tc-avr.c:872 #, c-format msgid "number must be positive and less than %d" msgstr "el número debe ser positivo y menor que %d" -#: config/tc-avr.c:887 config/tc-avr.c:1024 +#: config/tc-avr.c:898 config/tc-avr.c:1035 #, c-format msgid "constant out of 8-bit range: %d" msgstr "constante fuera del límite de 8-bit: %d" -#: config/tc-avr.c:955 config/tc-score.c:1199 read.c:3814 +#: config/tc-avr.c:966 config/tc-score.c:1194 read.c:4075 msgid "illegal expression" msgstr "expresión ilegal" -#: config/tc-avr.c:984 config/tc-avr.c:1994 config/tc-pru.c:1874 +#: config/tc-avr.c:995 config/tc-avr.c:2004 config/tc-pru.c:1870 msgid "`)' required" msgstr "`)' requerido" -#: config/tc-avr.c:1094 +#: config/tc-avr.c:1105 msgid "register name or number from 16 to 31 required" msgstr "requerido nombre o número de registro desde 16 a 32" -#: config/tc-avr.c:1100 +#: config/tc-avr.c:1111 msgid "register name or number from 0 to 31 required" msgstr "requerido nombre o número de registro desde 0 a 31" -#: config/tc-avr.c:1108 +#: config/tc-avr.c:1119 msgid "register r16-r23 required" msgstr "se requiere los registros r16-r23" -#: config/tc-avr.c:1114 +#: config/tc-avr.c:1125 msgid "register number above 15 required" msgstr "se requiere un número de registro superior a 15" -#: config/tc-avr.c:1120 +#: config/tc-avr.c:1131 config/tc-csky.c:6417 config/tc-csky.c:6446 msgid "even register number required" msgstr "requerido número de registro par" -#: config/tc-avr.c:1126 +#: config/tc-avr.c:1137 msgid "register r24, r26, r28 or r30 required" msgstr "se requieren los registros r24, r26, r28 o r30" -#: config/tc-avr.c:1147 +#: config/tc-avr.c:1158 msgid "pointer register (X, Y or Z) required" msgstr "registro puntero (X, Y o Z) requerido" -#: config/tc-avr.c:1154 +#: config/tc-avr.c:1165 msgid "cannot both predecrement and postincrement" msgstr "no se puede predecrementar y postincrementar" -#: config/tc-avr.c:1162 +#: config/tc-avr.c:1173 msgid "addressing mode not supported" msgstr "no se admite el modo de direccionamiento" -#: config/tc-avr.c:1168 +#: config/tc-avr.c:1179 msgid "can't predecrement" msgstr "no se puede predecrementar" -#: config/tc-avr.c:1171 +#: config/tc-avr.c:1182 msgid "pointer register Z required" msgstr "se requiere el registro puntero Z" -#: config/tc-avr.c:1190 +#: config/tc-avr.c:1201 msgid "postincrement not supported" msgstr "no se admite el postincremento" -#: config/tc-avr.c:1200 +#: config/tc-avr.c:1211 msgid "pointer register (Y or Z) required" msgstr "se requiere un registro puntero (Y o Z)" -#: config/tc-avr.c:1322 config/tc-xgate.c:1352 +#: config/tc-avr.c:1333 config/tc-xgate.c:1354 #, c-format msgid "unknown constraint `%c'" msgstr "desconoce constante `%c'" -#: config/tc-avr.c:1385 config/tc-avr.c:2677 +#: config/tc-avr.c:1396 config/tc-avr.c:2686 msgid "`,' required" msgstr "`,' requerido" -#: config/tc-avr.c:1406 +#: config/tc-avr.c:1417 msgid "undefined combination of operands" msgstr "combinación indefinida de operandos" -#: config/tc-avr.c:1415 +#: config/tc-avr.c:1426 msgid "skipping two-word instruction" msgstr "se omite la instrucción de dos word" -#: config/tc-avr.c:1603 config/tc-avr.c:1619 config/tc-avr.c:1750 -#: config/tc-msp430.c:4125 config/tc-msp430.c:4144 +#: config/tc-avr.c:1614 config/tc-avr.c:1630 config/tc-avr.c:1761 +#: config/tc-msp430.c:4500 config/tc-msp430.c:4519 #, c-format msgid "odd address operand: %ld" msgstr "operando de direccón impar: %ld" -#: config/tc-avr.c:1611 config/tc-avr.c:1630 config/tc-avr.c:1648 -#: config/tc-avr.c:1659 config/tc-avr.c:1675 config/tc-avr.c:1683 -#: config/tc-avr.c:1778 config/tc-avr.c:1785 config/tc-d10v.c:503 -#: config/tc-d30v.c:553 config/tc-msp430.c:4133 config/tc-msp430.c:4151 +#: config/tc-avr.c:1622 config/tc-avr.c:1641 config/tc-avr.c:1659 +#: config/tc-avr.c:1670 config/tc-avr.c:1686 config/tc-avr.c:1694 +#: config/tc-avr.c:1789 config/tc-avr.c:1796 config/tc-d10v.c:503 +#: config/tc-d30v.c:550 config/tc-msp430.c:4508 config/tc-msp430.c:4526 #, c-format msgid "operand out of range: %ld" -msgstr "operando fuera de límite: %ld" +msgstr "operando fuera de rango: %ld" -#: config/tc-avr.c:1666 +#: config/tc-avr.c:1677 #, c-format msgid "operand out of range: 0x%lx" -msgstr "operando fuera de límite: 0x%lx" +msgstr "operando fuera de rango: 0x%lx" -#: config/tc-avr.c:1771 config/tc-d10v.c:1590 config/tc-d30v.c:2034 -#: config/tc-msp430.c:4222 +#: config/tc-avr.c:1782 config/tc-d10v.c:1592 config/tc-d30v.c:2011 +#: config/tc-msp430.c:4597 #, c-format msgid "line %d: unknown relocation type: 0x%x" msgstr "línea %d: tipo reubicado desconocida: 0x%x" -#: config/tc-avr.c:1799 +#: config/tc-avr.c:1810 msgid "only constant expression allowed" -msgstr "sólo se permite una expresión constante" +msgstr "solo se permite una expresión constante" #. xgettext:c-format. -#: config/tc-avr.c:1854 config/tc-bfin.c:825 config/tc-d10v.c:1462 -#: config/tc-d30v.c:1771 config/tc-metag.c:7022 config/tc-mn10200.c:779 -#: config/tc-mn10300.c:2177 config/tc-msp430.c:4270 config/tc-ppc.c:7251 -#: config/tc-spu.c:879 config/tc-spu.c:1090 config/tc-v850.c:3367 -#: config/tc-z80.c:2059 +#: config/tc-avr.c:1864 config/tc-bfin.c:813 config/tc-d10v.c:1461 +#: config/tc-d30v.c:1768 config/tc-metag.c:7016 config/tc-mn10200.c:775 +#: config/tc-mn10300.c:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7770 +#: config/tc-spu.c:878 config/tc-spu.c:1089 config/tc-v850.c:3360 +#: config/tc-z80.c:3871 #, c-format msgid "reloc %d not supported by object file format" msgstr "el formato del fichero objeto no admite la reubicación %d" -#: config/tc-avr.c:1876 config/tc-ft32.c:232 config/tc-h8300.c:1960 -#: config/tc-mcore.c:880 config/tc-microblaze.c:933 config/tc-moxie.c:182 -#: config/tc-pj.c:253 config/tc-sh.c:2591 config/tc-wasm32.c:747 -#: config/tc-z8k.c:1223 +#: config/tc-avr.c:1886 config/tc-ft32.c:232 config/tc-h8300.c:1928 +#: config/tc-mcore.c:881 config/tc-microblaze.c:913 config/tc-moxie.c:180 +#: config/tc-pj.c:253 config/tc-sh.c:2182 config/tc-wasm32.c:747 +#: config/tc-z8k.c:1233 msgid "can't find opcode " msgstr "no se puede encontrar el código operacional " -#: config/tc-avr.c:1895 +#: config/tc-avr.c:1905 #, c-format msgid "illegal opcode %s for mcu %s" msgstr "código operacional %s ilegal para el mcu %s" -#: config/tc-avr.c:1911 +#: config/tc-avr.c:1921 #, c-format msgid "pseudo instruction `%s' not supported" msgstr "pseudo instrucción «%s» no admitida" -#: config/tc-avr.c:1933 +#: config/tc-avr.c:1943 msgid "garbage at end of line" msgstr "basura al final de la línea" -#: config/tc-avr.c:2043 config/tc-pru.c:1906 +#: config/tc-avr.c:2053 config/tc-pru.c:1902 #, c-format msgid "illegal %s relocation size: %d" msgstr "reubicación de tamaño %s ilegal: %d" -#: config/tc-avr.c:2156 config/tc-avr.c:2211 +#: config/tc-avr.c:2166 config/tc-avr.c:2221 #, c-format msgid "unknown record type %d (in %s)" msgstr "tipo de registro desconociodo %d (en %s)" -#: config/tc-avr.c:2232 +#: config/tc-avr.c:2242 #, c-format msgid "Failed to create property section `%s'\n" msgstr "Fallado para crear secciones propietarias `%s'\n" -#: config/tc-avr.c:2669 +#: config/tc-avr.c:2678 #, c-format msgid "%s requires value 0-2 as operand 1" msgstr "" -#: config/tc-avr.c:2694 +#: config/tc-avr.c:2703 #, c-format msgid "`%s %d' after `%s %d' from %s:%u" msgstr "`%s %d' tras `%s %d' desde %s:%u" -#: config/tc-avr.c:2697 +#: config/tc-avr.c:2706 #, c-format msgid "`%s %d' but no chunk open yet" msgstr "«%s %d» pero no recorta abierto aún" -#: config/tc-avr.c:2785 +#: config/tc-avr.c:2794 #, c-format msgid "dangling `__gcc_isr %d'" msgstr "`__gcc_isr colgado %d'" -#: config/tc-avr.c:2787 +#: config/tc-avr.c:2796 msgid "dangling `__gcc_isr'" msgstr "colgado `__gcc_isr'" -#: config/tc-bfin.c:94 config/tc-frv.c:1603 config/tc-frv.c:1613 +#: config/tc-bfin.c:93 config/tc-frv.c:1603 config/tc-frv.c:1613 msgid "missing ')'" msgstr "ausente ')'" -#: config/tc-bfin.c:440 +#: config/tc-bfin.c:428 #, c-format msgid " Blackfin specific assembler options:\n" msgstr " Opciones de ensamblador específicas de Blackfin:\n" -#: config/tc-bfin.c:441 +#: config/tc-bfin.c:429 #, c-format msgid " -mcpu=<cpu[-sirevision]> specify the name of the target CPU\n" msgstr " -mcpu=<cpu[-sirevision]> especifica el nombre del CPU objetivo\n" -#: config/tc-bfin.c:442 +#: config/tc-bfin.c:430 #, c-format msgid " -mfdpic assemble for the FDPIC ABI\n" msgstr " -mfdpic ensambla para la ABI de FDPIC\n" -#: config/tc-bfin.c:443 +#: config/tc-bfin.c:431 #, c-format msgid " -mno-fdpic/-mnopic disable -mfdpic\n" msgstr " -mno-fdpic/-mnopic desactiva -mfdpic\n" -#: config/tc-bfin.c:456 +#: config/tc-bfin.c:444 msgid "Could not set architecture and machine." msgstr "No se pueden establecer la arquitectura y la máquina." -#: config/tc-bfin.c:603 +#: config/tc-bfin.c:591 msgid "Parse failed." msgstr "Falló la decodificación." -#: config/tc-bfin.c:678 +#: config/tc-bfin.c:666 msgid "pcrel too far BFD_RELOC_BFIN_10" msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_10" -#: config/tc-bfin.c:694 +#: config/tc-bfin.c:682 msgid "pcrel too far BFD_RELOC_BFIN_12" msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_12" -#: config/tc-bfin.c:714 +#: config/tc-bfin.c:702 msgid "pcrel too far BFD_RELOC_BFIN_24" msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_24" -#: config/tc-bfin.c:729 +#: config/tc-bfin.c:717 msgid "pcrel too far BFD_RELOC_BFIN_5" msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_5" -#: config/tc-bfin.c:741 +#: config/tc-bfin.c:729 msgid "pcrel too far BFD_RELOC_BFIN_11_PCREL" msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_11_PCREL" -#: config/tc-bfin.c:751 +#: config/tc-bfin.c:739 msgid "rel too far BFD_RELOC_8" msgstr "rel demasiado lejos de BFD_RELOC_8" -#: config/tc-bfin.c:758 +#: config/tc-bfin.c:746 msgid "rel too far BFD_RELOC_16" msgstr "rel demasiado lejos de BFD_RELOC_16" -#: config/tc-cr16.c:164 read.c:4667 +#: config/tc-bpf.c:194 +#, c-format +msgid "-mdialect=%s is not valid. Expected normal or pseudoc" +msgstr "" + +#: config/tc-bpf.c:209 +#, c-format +msgid "-misa-spec=%s is not valid. Expected v1, v2, v3, v4 o xbpf" +msgstr "" + +#: config/tc-bpf.c:229 +#, fuzzy, c-format +#| msgid "FT32 options:\n" +msgid "" +"\n" +"BPF options:\n" +msgstr "Opciones FT32:\n" + +#: config/tc-bpf.c:230 +#, c-format +msgid "" +"BPF options:\n" +" -EL generate code for a little endian machine\n" +" -EB generate code for a big endian machine\n" +" -mdialect=DIALECT set the assembly dialect (normal, pseudoc)\n" +" -misa-spec set the BPF ISA spec (v1, v2, v3, v4, xbpf)\n" +" -mxbpf alias for -misa-spec=xbpf\n" +msgstr "" + +#: config/tc-bpf.c:588 +msgid "signed instruction operand out of range, shall fit in 32 bits" +msgstr "" + +#: config/tc-bpf.c:962 +#, fuzzy +#| msgid "immediate out of range for insert" +msgid "immediate out of range, shall fit in 32 bits" +msgstr "inmediato fuera de rango para insert" + +#: config/tc-bpf.c:972 +#, fuzzy +#| msgid "pc-relative load offset out of range" +msgid "pc-relative offset out of range, shall fit in 32 bits" +msgstr "el desplazamiento de carga pc-relativa fuera de rango" + +#: config/tc-bpf.c:982 config/tc-bpf.c:992 +#, fuzzy +#| msgid "pc-relative load offset out of range" +msgid "pc-relative offset out of range, shall fit in 16 bits" +msgstr "el desplazamiento de carga pc-relativa fuera de rango" + +#: config/tc-bpf.c:1375 +#, fuzzy, c-format +#| msgid "unexpected `\"' in expression" +msgid "unexpected register name `%s' in expression" +msgstr "`«' o `»' inesperada dentro de expresión" + +#: config/tc-bpf.c:1706 +#, fuzzy, c-format +#| msgid "invalid condition code '%s'" +msgid "invalid %%-tag in BPF opcode '%s'\n" +msgstr "código condicional inválido «%s»" + +#: config/tc-bpf.c:1753 +#, fuzzy, c-format +#| msgid "unrecognised instruction %s" +msgid "unrecognized instruction `%s'" +msgstr "instrucción %s no reconocida" + +#: config/tc-cr16.c:168 msgid "using a bit field width of zero" msgstr "empleando una anchura de campo de bit de cero" -#: config/tc-cr16.c:172 read.c:4675 +#: config/tc-cr16.c:176 #, c-format msgid "field width \"%s\" too complex for a bitfield" msgstr "anchura de campo «%s» es demasiado compleja para un campo de bits" -#: config/tc-cr16.c:181 read.c:4683 +#: config/tc-cr16.c:186 #, c-format msgid "field width %lu too big to fit in %d byte: truncated to %d bits" msgid_plural "field width %lu too big to fit in %d bytes: truncated to %d bits" msgstr[0] "anchura de campo %lu es muy grande para caber en %d byte: se truncó a %d bits" msgstr[1] "anchura de campo %lu es muy grande para caber en %d bytes: se truncó a %d bits" -#: config/tc-cr16.c:208 read.c:4709 +#: config/tc-cr16.c:212 #, c-format msgid "field value \"%s\" too complex for a bitfield" msgstr "valor del campo «%s» es demasiado complejo para un campo de bits" -#: config/tc-cr16.c:389 +#: config/tc-cr16.c:394 #, c-format msgid "Unknown register pair - index relative mode: `%d'" -msgstr "Registros modo relativo par - indizado desconocido: '%d'" +msgstr "Registros modo relativo par - indexado desconocido: '%d'" -#: config/tc-cr16.c:603 config/tc-crx.c:361 +#: config/tc-cr16.c:601 config/tc-crx.c:331 #, c-format msgid "internal error: reloc %d (`%s') not supported by object file format" msgstr "error interno: reubicación %d («%s») no admitidó por formato del fichero objeto" -#: config/tc-cr16.c:696 config/tc-i386.c:10718 config/tc-s390.c:2106 +#: config/tc-cr16.c:694 config/tc-i386.c:17857 config/tc-s390.c:2340 msgid "GOT already in symbol table" msgstr "GOT ya está en la distribución simbólicos" -#: config/tc-cr16.c:813 config/tc-m68k.c:4657 config/tc-tilegx.c:319 -#: config/tc-tilepro.c:256 -#, c-format -msgid "Internal Error: Can't hash %s: %s" -msgstr "Error Interno: No se puede dispersar %s: %s" - -#: config/tc-cr16.c:839 config/tc-cris.c:1229 config/tc-crx.c:545 -#, c-format -msgid "Can't hash `%s': %s\n" -msgstr "No se puede dispersar «%s»: %s\n" - -#: config/tc-cr16.c:840 config/tc-cris.c:1230 config/tc-crx.c:546 -msgid "(unknown reason)" -msgstr "(razón desconocida)" - #. Missing or bad expr becomes absolute 0. -#: config/tc-cr16.c:892 config/tc-crx.c:619 +#: config/tc-cr16.c:878 config/tc-crx.c:568 #, c-format msgid "missing or invalid displacement expression `%s' taken as 0" msgstr "la expresión de desubicación ausentente o no válida «%s» se toma como 0" -#: config/tc-cr16.c:942 +#: config/tc-cr16.c:928 #, c-format msgid "GOT bad expression with %s." -msgstr "GOT como expresión equivocada con %s." +msgstr "GOT como expresión incorrecta con %s." -#: config/tc-cr16.c:1053 +#: config/tc-cr16.c:1039 #, c-format msgid "operand %d: illegal use expression: `%s`" msgstr "operando %d: expresión de uso ilegal: `%s`" -#: config/tc-cr16.c:1118 config/tc-crx.c:1129 +#: config/tc-cr16.c:1104 config/tc-crx.c:1078 #, c-format msgid "Unknown register: `%d'" msgstr "Registro desconocido: '%d'" #. Issue a error message when register is illegal. -#: config/tc-cr16.c:1126 +#: config/tc-cr16.c:1112 #, c-format msgid "Illegal register (`%s') in Instruction: `%s'" msgstr "Registro ilegal («%s») en Instruction: «%s»" -#: config/tc-cr16.c:1199 config/tc-cr16.c:1274 +#: config/tc-cr16.c:1186 config/tc-cr16.c:1261 #, c-format msgid "Illegal register `%s' in Instruction `%s'" msgstr "Registro ilegal «%s» en la Instruction «%s»" -#: config/tc-cr16.c:1227 config/tc-cr16.c:1238 +#: config/tc-cr16.c:1214 config/tc-cr16.c:1225 #, c-format msgid "Illegal register pair `%s' in Instruction `%s'" msgstr "Par de registro ilegal «%s» en la Instrucción «%s»" -#: config/tc-cr16.c:1263 config/tc-i960.c:833 +#: config/tc-cr16.c:1250 msgid "unmatched '['" msgstr "desemparejado '['" -#: config/tc-cr16.c:1269 config/tc-i960.c:840 +#: config/tc-cr16.c:1256 msgid "garbage after index spec ignored" msgstr "se descarta la basura tras la especificación del índice" -#: config/tc-cr16.c:1417 config/tc-crx.c:938 +#: config/tc-cr16.c:1404 config/tc-crx.c:887 #, c-format msgid "Illegal operands (whitespace): `%s'" msgstr "Operandos ilegales (espacios en blanco): «%s»" -#: config/tc-cr16.c:1429 config/tc-cr16.c:1436 config/tc-cr16.c:1453 -#: config/tc-crx.c:950 config/tc-crx.c:957 config/tc-crx.c:974 -#: config/tc-crx.c:1767 +#: config/tc-cr16.c:1416 config/tc-cr16.c:1423 config/tc-cr16.c:1440 +#: config/tc-crx.c:899 config/tc-crx.c:906 config/tc-crx.c:923 +#: config/tc-crx.c:1714 #, c-format msgid "Missing matching brackets : `%s'" msgstr "Ausenten las llaves coincidentes : «%s»" -#: config/tc-cr16.c:1485 config/tc-crx.c:1000 +#: config/tc-cr16.c:1472 config/tc-crx.c:949 #, c-format msgid "Unknown exception: `%s'" msgstr "Excepción desconocida: «%s»" -#: config/tc-cr16.c:1570 config/tc-crx.c:1096 +#: config/tc-cr16.c:1554 config/tc-crx.c:1045 #, c-format msgid "Illegal `cinv' parameter: `%c'" msgstr "Parámetro `cinv' ilegal: `%c'" -#: config/tc-cr16.c:1591 config/tc-cr16.c:1630 +#: config/tc-cr16.c:1575 config/tc-cr16.c:1614 #, c-format msgid "Unknown register pair: `%d'" msgstr "Par de registro desconocido: '%d'" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1599 +#: config/tc-cr16.c:1583 #, c-format msgid "Illegal register pair (`%s') in Instruction: `%s'" msgstr "Par de registro ilegal («%s») en la Instrucción: «%s»" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1638 +#: config/tc-cr16.c:1622 #, c-format msgid "Illegal index register pair (`%s') in Instruction: `%s'" msgstr "Par de registro de índice ilegal («%s») en la Instrucción: «%s»" -#: config/tc-cr16.c:1677 +#: config/tc-cr16.c:1661 #, c-format msgid "Unknown processor register : `%d'" msgstr "Registro de procesador desconocido: '%d'" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1685 +#: config/tc-cr16.c:1669 #, c-format msgid "Illegal processor register (`%s') in Instruction: `%s'" msgstr "Registro de procesador ilegal («%s») en la Instrucción: «%s»" -#: config/tc-cr16.c:1733 +#: config/tc-cr16.c:1717 #, c-format msgid "Unknown processor register (32 bit) : `%d'" msgstr "Registro de procesador desconocido (32 bit) : '%d'" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1741 +#: config/tc-cr16.c:1725 #, c-format msgid "Illegal 32 bit - processor register (`%s') in Instruction: `%s'" msgstr "Registro de procesador de 32 bit ilegal («%s») en la Instruction: «%s»" -#: config/tc-cr16.c:2107 config/tc-crx.c:1665 config/tc-crx.c:1682 +#: config/tc-cr16.c:2070 config/tc-crx.c:1612 config/tc-crx.c:1629 #, c-format msgid "Same src/dest register is used (`r%d'), result is undefined" msgstr "Se usa el mismo registro fuente/destino (`r%d'), el resultado es indefinido" -#: config/tc-cr16.c:2128 +#: config/tc-cr16.c:2092 msgid "RA register is saved twice." msgstr "El registro RA se guarda dos veces." -#: config/tc-cr16.c:2132 +#: config/tc-cr16.c:2096 #, c-format msgid "`%s' Illegal use of registers." msgstr "«%s» Uso inválido de registros." -#: config/tc-cr16.c:2146 +#: config/tc-cr16.c:2110 #, c-format msgid "`%s' Illegal count-register combination." msgstr "«%s» Combinación de registros-cuenta ilegal." -#: config/tc-cr16.c:2152 +#: config/tc-cr16.c:2116 #, c-format msgid "`%s' Illegal use of register." msgstr "«%s» Uso inválido de registro." -#: config/tc-cr16.c:2161 config/tc-crx.c:1674 +#: config/tc-cr16.c:2125 config/tc-crx.c:1621 #, c-format msgid "`%s' has undefined result" msgstr "«%s» tiene un resultado indefinido" -#: config/tc-cr16.c:2169 +#: config/tc-cr16.c:2133 #, c-format msgid "Same src/dest register is used (`r%d'),result is undefined" msgstr "Se usa el mismo registro fuente/destino (`r%d'), el resultado es indefinido" -#: config/tc-cr16.c:2340 config/tc-crx.c:1579 +#: config/tc-cr16.c:2304 config/tc-crx.c:1527 msgid "Incorrect number of operands" msgstr "Número incorrecto de operandos" -#: config/tc-cr16.c:2342 config/tc-crx.c:1581 +#: config/tc-cr16.c:2306 config/tc-crx.c:1529 #, c-format msgid "Illegal type of operand (arg %d)" msgstr "Tipo de operando ilegal (arg %d)" -#: config/tc-cr16.c:2348 config/tc-crx.c:1587 +#: config/tc-cr16.c:2312 config/tc-crx.c:1535 #, c-format msgid "Operand out of range (arg %d)" -msgstr "Operando fuera de límite (arg %d)" +msgstr "Operando fuera de rango (arg %d)" -#: config/tc-cr16.c:2351 config/tc-crx.c:1590 +#: config/tc-cr16.c:2315 config/tc-crx.c:1538 #, c-format msgid "Operand has odd displacement (arg %d)" msgstr "Operando tiene un desplazamiento impar (arg %d)" -#: config/tc-cr16.c:2354 config/tc-cr16.c:2385 config/tc-crx.c:1603 -#: config/tc-crx.c:1634 +#: config/tc-cr16.c:2318 config/tc-cr16.c:2349 config/tc-crx.c:1553 +#: config/tc-crx.c:1581 #, c-format msgid "Illegal operand (arg %d)" msgstr "Operando ilegal (arg %d)" #. Give an error if a frag containing code is not aligned to a 2-byte #. boundary. -#: config/tc-cr16.c:2487 config/tc-cr16.h:74 config/tc-crx.c:1956 -#: config/tc-crx.h:77 config/tc-ppc.c:3542 config/tc-ppc.c:6500 +#: config/tc-cr16.c:2451 config/tc-cr16.h:74 config/tc-crx.c:1903 +#: config/tc-crx.h:77 msgid "instruction address is not a multiple of 2" msgstr "la instrucción direccional no es un múltiplo de 2" -#: config/tc-cr16.c:2510 config/tc-cris.c:1556 config/tc-cris.c:1564 -#: config/tc-crx.c:1992 config/tc-dlx.c:692 config/tc-hppa.c:3212 -#: config/tc-hppa.c:3219 config/tc-i860.c:490 config/tc-i860.c:507 -#: config/tc-i860.c:987 config/tc-sparc.c:1813 config/tc-sparc.c:1821 +#: config/tc-cr16.c:2474 config/tc-cris.c:1550 config/tc-cris.c:1558 +#: config/tc-crx.c:1939 config/tc-dlx.c:681 config/tc-hppa.c:3206 +#: config/tc-hppa.c:3213 config/tc-sparc.c:1753 config/tc-sparc.c:1761 #, c-format msgid "Unknown opcode: `%s'" msgstr "Código operacional desconocido: «%s»" -#: config/tc-cris.c:550 config/tc-m68hc11.c:3893 +#: config/tc-cris.c:550 config/tc-m68hc11.c:3894 #, c-format msgid "internal inconsistency problem in %s: fr_symbol %lx" msgstr "problema de inconsistencia interna en %s: fr_symbol %lx" -#: config/tc-cris.c:554 config/tc-m68hc11.c:3897 config/tc-msp430.c:4620 +#: config/tc-cris.c:554 config/tc-m68hc11.c:3898 config/tc-msp430.c:4991 #, c-format msgid "internal inconsistency problem in %s: resolved symbol" msgstr "problema de inconsistencia interna en %s: símbolo resuelto" -#: config/tc-cris.c:564 config/tc-m68hc11.c:3903 +#: config/tc-cris.c:564 config/tc-m68hc11.c:3904 #, c-format msgid "internal inconsistency problem in %s: fr_subtype %d" msgstr "problema de inconsistencia interna en %s: fr_subtype %d" @@ -5601,211 +6779,211 @@ msgstr "ubicación de MULS/MULU peligrosa; déles una alineamiento superior" #. $acr", "nop"; but doesn't seem worth it at the moment.) #: config/tc-cris.c:1051 msgid "Out-of-range .word offset handling is not implemented for .arch common_v10_v32" -msgstr "El manejo del desplazamiento .word fuera de límite no está implementado para .arch common_v10_v32" +msgstr "El manejo del desplazamiento .word fuera de rango no está implementado para .arch common_v10_v32" #: config/tc-cris.c:1096 msgid ".word case-table handling failed: table too large" msgstr "Falló el manejo de la distribución de case .word: la distribución es demasiado grande" -#: config/tc-cris.c:1234 +#: config/tc-cris.c:1228 #, c-format msgid "Buggy opcode: `%s' \"%s\"\n" msgstr "Código operacional defectuoso: «%s» «%s»\n" -#: config/tc-cris.c:1662 +#: config/tc-cris.c:1656 #, c-format msgid "Immediate value not in 5 bit unsigned range: %ld" msgstr "El valor inmediato no está en el límite de 5 bit sin signo: %ld" -#: config/tc-cris.c:1678 +#: config/tc-cris.c:1672 #, c-format msgid "Immediate value not in 4 bit unsigned range: %ld" msgstr "El valor inmediato no está en el límite de 4 bit sin signo: %ld" -#: config/tc-cris.c:1730 +#: config/tc-cris.c:1724 #, c-format msgid "Immediate value not in 6 bit range: %ld" msgstr "El valor inmediato no está en el límite de 6 bit: %ld" -#: config/tc-cris.c:1746 +#: config/tc-cris.c:1740 #, c-format msgid "Immediate value not in 6 bit unsigned range: %ld" msgstr "El valor inmediato no está en el límite de 6 bit sin signo: %ld" #. Others have a generic warning. -#: config/tc-cris.c:1855 +#: config/tc-cris.c:1849 #, c-format msgid "Unimplemented register `%s' specified" msgstr "Registro no implementado «%s» especificado" #. We've come to the end of instructions with this #. opcode, so it must be an error. -#: config/tc-cris.c:2099 +#: config/tc-cris.c:2093 msgid "Illegal operands" msgstr "Operandos ilegales" -#: config/tc-cris.c:2140 config/tc-cris.c:2180 +#: config/tc-cris.c:2134 config/tc-cris.c:2174 #, c-format msgid "Immediate value not in 8 bit range: %ld" msgstr "El valor inmediato no está en el límite de 8 bit: %ld" -#: config/tc-cris.c:2150 config/tc-cris.c:2201 +#: config/tc-cris.c:2144 config/tc-cris.c:2195 #, c-format msgid "Immediate value not in 16 bit range: %ld" msgstr "El valor inmediato no está en el límite de 16 bit: %ld" -#: config/tc-cris.c:2185 +#: config/tc-cris.c:2179 #, c-format msgid "Immediate value not in 8 bit signed range: %ld" msgstr "El valor inmediato no está en el límite de 8 bit con signo: %ld" -#: config/tc-cris.c:2190 +#: config/tc-cris.c:2184 #, c-format msgid "Immediate value not in 8 bit unsigned range: %ld" msgstr "El valor inmediato no está en el límite de 8 bit sin signo: %ld" -#: config/tc-cris.c:2206 +#: config/tc-cris.c:2200 #, c-format msgid "Immediate value not in 16 bit signed range: %ld" msgstr "El valor inmediato no está en el límite de 16 bit con signo: %ld" -#: config/tc-cris.c:2211 +#: config/tc-cris.c:2205 #, c-format msgid "Immediate value not in 16 bit unsigned range: %ld" msgstr "El valor inmediato no está en el límite de 16 bit sin signo: %ld" -#: config/tc-cris.c:2237 +#: config/tc-cris.c:2231 msgid "TLS relocation size does not match operand size" msgstr "TLS para tamaño de la reubicación no coincide con el tamaño de operando" -#: config/tc-cris.c:2238 +#: config/tc-cris.c:2232 msgid "PIC relocation size does not match operand size" msgstr "PIC como tamaño reubicado no coincide con el tamaño de operando" -#: config/tc-cris.c:3385 +#: config/tc-cris.c:3379 msgid "Calling gen_cond_branch_32 for .arch common_v10_v32\n" msgstr "Se llama a gen_cond_branch_32 para .arch common_v10_v32\n" -#: config/tc-cris.c:3389 +#: config/tc-cris.c:3383 msgid "32-bit conditional branch generated" msgstr "generada una ramificación condicional de 32-bit" -#: config/tc-cris.c:3450 +#: config/tc-cris.c:3444 msgid "Complex expression not supported" msgstr "No se admiten las expresiones complejas" #. FIXME: Is this function mentioned in the internals.texi manual? If #. not, add it. -#: config/tc-cris.c:3600 +#: config/tc-cris.c:3594 msgid "Bad call to md_atof () - floating point formats are not supported" -msgstr "Llamada equivocada a md_atof () - no se admiten los formatos de coma flotante" +msgstr "Llamada incorrecta a md_atof () - no se admiten los formatos de coma flotante" -#: config/tc-cris.c:3641 +#: config/tc-cris.c:3635 msgid "PC-relative relocation must be trivially resolved" msgstr "Reubicación relativa al PC se debe resolver trivialmente" -#: config/tc-cris.c:3713 +#: config/tc-cris.c:3707 #, c-format msgid "Value not in 16 bit range: %ld" msgstr "El valor no está en el límite de 16 bit: %ld" -#: config/tc-cris.c:3721 +#: config/tc-cris.c:3715 #, c-format msgid "Value not in 16 bit signed range: %ld" msgstr "El valor no está en el límite de 16 bit con signo: %ld" -#: config/tc-cris.c:3729 +#: config/tc-cris.c:3723 #, c-format msgid "Value not in 8 bit range: %ld" msgstr "El valor no está en el límite de 8 bit: %ld" -#: config/tc-cris.c:3736 +#: config/tc-cris.c:3730 #, c-format msgid "Value not in 8 bit signed range: %ld" msgstr "El valor no está en el límite de 8 bit con signo: %ld" -#: config/tc-cris.c:3746 +#: config/tc-cris.c:3740 #, c-format msgid "Value not in 4 bit unsigned range: %ld" msgstr "El valor no está en el límite de 4 bit sin signo: %ld" -#: config/tc-cris.c:3753 +#: config/tc-cris.c:3747 #, c-format msgid "Value not in 5 bit unsigned range: %ld" msgstr "El valor no está en el límite de 5 bit sin signo: %ld" -#: config/tc-cris.c:3760 +#: config/tc-cris.c:3754 #, c-format msgid "Value not in 6 bit range: %ld" msgstr "El valor no está en el límite de 6 bit: %ld" -#: config/tc-cris.c:3767 +#: config/tc-cris.c:3761 #, c-format msgid "Value not in 6 bit unsigned range: %ld" msgstr "El valor no está en el límite de 6 bit sin signo: %ld" -#: config/tc-cris.c:3811 +#: config/tc-cris.c:3805 #, c-format msgid "Please use --help to see usage and options for this assembler.\n" msgstr "Por favor utilice --help para ver el modo de empleo y casillas para este ensamblador.\n" -#: config/tc-cris.c:3823 +#: config/tc-cris.c:3817 msgid "--no-underscore is invalid with a.out format" msgstr "--no-underscore es inválido con el formato a.out" -#: config/tc-cris.c:3835 +#: config/tc-cris.c:3829 msgid "--pic is invalid for this object format" msgstr "--pic es inválido en este formato de objeto" -#: config/tc-cris.c:3849 +#: config/tc-cris.c:3843 #, c-format msgid "invalid <arch> in --march=<arch>: %s" msgstr "arquitectura <arq> en --march=<arq> no válida: %s" -#: config/tc-cris.c:3958 config/tc-ft32.c:689 config/tc-moxie.c:778 +#: config/tc-cris.c:3952 config/tc-ft32.c:688 config/tc-moxie.c:776 msgid "Semantics error. This type of operand can not be relocated, it must be an assembly-time constant" msgstr "Error semántico. Este tipo de operando no se puede reubicar, debe ser una constante en el momento de ensamblado" -#: config/tc-cris.c:4007 config/tc-ft32.c:710 config/tc-moxie.c:826 +#: config/tc-cris.c:4000 config/tc-ft32.c:708 config/tc-moxie.c:824 #, c-format msgid "Cannot generate relocation type for symbol %s, code %s" msgstr "No se puede generar el tipo reubicado para el símbolo %s, código %s" #. The messages are formatted to line up with the generic options. -#: config/tc-cris.c:4020 +#: config/tc-cris.c:4013 #, c-format msgid "CRIS-specific options:\n" msgstr "Opciones específicas de CRIS:\n" -#: config/tc-cris.c:4022 +#: config/tc-cris.c:4015 msgid " -h, -H Don't execute, print this help text. Deprecated.\n" msgstr " -h, -H No ejecutar, escribir este texto de ayuda. Obsoleto.\n" -#: config/tc-cris.c:4024 +#: config/tc-cris.c:4017 msgid " -N Warn when branches are expanded to jumps.\n" msgstr " -N Avisa cuando las ramificaciones se expanden a saltos.\n" -#: config/tc-cris.c:4026 +#: config/tc-cris.c:4019 msgid " --underscore User symbols are normally prepended with underscore.\n" msgstr " --underscore Los símbolos de usuario generalmente se preceden con subrayado.\n" -#: config/tc-cris.c:4028 +#: config/tc-cris.c:4021 msgid " Registers will not need any prefix.\n" msgstr " Los registros no necesitarán ningún prefijo.\n" -#: config/tc-cris.c:4030 +#: config/tc-cris.c:4023 msgid " --no-underscore User symbols do not have any prefix.\n" msgstr " --no-underscore Usuarios de símbolos no tienen ningún prefijo.\n" -#: config/tc-cris.c:4032 +#: config/tc-cris.c:4025 msgid " Registers will require a `$'-prefix.\n" msgstr " Los registros requerirán un prefijo `$'.\n" -#: config/tc-cris.c:4035 +#: config/tc-cris.c:4028 msgid " --pic\t\t\tEnable generation of position-independent code.\n" msgstr " --pic\t\t\tActiva la generación de código independiente de posición.\n" -#: config/tc-cris.c:4038 +#: config/tc-cris.c:4031 msgid "" " --march=<arch>\t\tGenerate code for <arch>. Valid choices for <arch>\n" "\t\t\t\tare v0_v10, v10, v32 and common_v10_v32.\n" @@ -5813,148 +6991,416 @@ msgstr "" " --march=<arq>\t\tGenera código para <arq>. Las casillas válidas para <arq>\n" "\t\t\t\tson v0_v10, v10, v32 y common_v10_v32.\n" -#: config/tc-cris.c:4059 -msgid "Invalid relocation" -msgstr "Reubicación no válida" - -#: config/tc-cris.c:4096 +#: config/tc-cris.c:4080 msgid "Invalid pc-relative relocation" msgstr "Reubicación relativa a pc no válida" -#: config/tc-cris.c:4141 +#: config/tc-cris.c:4125 #, c-format msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large." msgstr "Signo ajustado .word (%ld) desborda: sentencia `switch' demasiado grande." -#: config/tc-cris.c:4171 +#: config/tc-cris.c:4155 #, c-format msgid ".syntax %s requires command-line option `--underscore'" msgstr ".syntax %s requiere de la opción de línea de mandatos `--underscore'" -#: config/tc-cris.c:4180 +#: config/tc-cris.c:4164 #, c-format msgid ".syntax %s requires command-line option `--no-underscore'" msgstr ".syntax %s requiere de la opción de línea de mandatos `--no-underscore'" -#: config/tc-cris.c:4217 +#: config/tc-cris.c:4201 msgid "Unknown .syntax operand" msgstr "Desconoce operando .syntax" -#: config/tc-cris.c:4227 +#: config/tc-cris.c:4211 msgid "Pseudodirective .file is only valid when generating ELF" msgstr "La pseudodirectiva .file es válida solamente cuando se genera ELF" -#: config/tc-cris.c:4239 +#: config/tc-cris.c:4223 msgid "Pseudodirective .loc is only valid when generating ELF" msgstr "La pseudodirectiva .loc es válida solamente cuando se genera ELF" -#: config/tc-cris.c:4254 +#: config/tc-cris.c:4238 #, c-format msgid "internal inconsistency problem: %s called for %d bytes" msgstr "problema de inconsistencia interna: se llamó %s por %d bytes" -#: config/tc-cris.c:4406 +#: config/tc-cris.c:4390 msgid "unknown operand to .arch" msgstr "operando desconocido para .arch" -#: config/tc-cris.c:4415 +#: config/tc-cris.c:4399 msgid ".arch <arch> requires a matching --march=... option" msgstr ".arch <arq> requiere una coincidencia --march=... opcional" -#: config/tc-crx.c:572 config/tc-crx.c:591 -#, c-format -msgid "Internal error: Can't hash %s: %s" -msgstr "Error interno: No se puede dispersar %s: %s" - -#: config/tc-crx.c:759 config/tc-crx.c:779 config/tc-crx.c:794 +#: config/tc-crx.c:708 config/tc-crx.c:728 config/tc-crx.c:743 #, c-format msgid "Illegal register `%s' in instruction `%s'" msgstr "Registro ilegítimo «%s» en instrucción «%s»" -#: config/tc-crx.c:822 +#: config/tc-crx.c:771 #, c-format msgid "Illegal Scale - `%d'" msgstr "Escala ilegal - '%d'" #. Issue a error message when register is illegal. -#: config/tc-crx.c:1137 +#: config/tc-crx.c:1086 #, c-format msgid "Illegal register (`%s') in instruction: `%s'" msgstr "Registro ilegítimo («%s») en instrucción: «%s»" -#: config/tc-crx.c:1264 +#: config/tc-crx.c:1215 #, c-format msgid "Illegal co-processor register in instruction `%s'" msgstr "Registro co-procesador ilegal en Instrucción `%s'" -#: config/tc-crx.c:1271 +#: config/tc-crx.c:1222 #, c-format msgid "Illegal co-processor special register in instruction `%s'" msgstr "Registro especial de co-procesador ilegal en la Instrucción «%s»" -#: config/tc-crx.c:1593 +#: config/tc-crx.c:1542 #, c-format msgid "Invalid DISPU4 operand value (arg %d)" msgstr "Valor de operando DISPU4 inválido (arg %d)" -#: config/tc-crx.c:1596 +#: config/tc-crx.c:1546 #, c-format msgid "Invalid CST4 operand value (arg %d)" msgstr "Valor de operando CST4 inválido (arg %d)" -#: config/tc-crx.c:1599 +#: config/tc-crx.c:1549 #, c-format msgid "Operand value is not within upper 64 KB (arg %d)" msgstr "El valor de operando no está en los 64 KB superiores (arg %d)" -#: config/tc-crx.c:1736 +#: config/tc-crx.c:1683 msgid "Invalid register in register list" msgstr "Registrador inválido en listado de registro" -#: config/tc-crx.c:1790 +#: config/tc-crx.c:1737 #, c-format msgid "Illegal register `%s' in cop-register list" msgstr "Registro ilegal «%s» en la lista de registros de coprocesador" -#: config/tc-crx.c:1798 +#: config/tc-crx.c:1745 #, c-format msgid "Illegal register `%s' in cop-special-register list" msgstr "Registro ilegal «%s» en la lista especial de registros de coprocesador" -#: config/tc-crx.c:1817 +#: config/tc-crx.c:1764 #, c-format msgid "Illegal register `%s' in user register list" msgstr "Registro ilegal «%s» en la lista de registros de usuario" -#: config/tc-crx.c:1836 +#: config/tc-crx.c:1783 #, c-format msgid "Illegal register `%s' in register list" msgstr "Registro ilegal «%s» en la lista de registros" -#: config/tc-crx.c:1842 +#: config/tc-crx.c:1789 #, c-format msgid "Maximum %d bits may be set in `mask16' operand" msgstr "Se pueden establecer %d bits `mask16' como máximo en operando" -#: config/tc-crx.c:1851 +#: config/tc-crx.c:1798 #, c-format msgid "rest of line ignored; first ignored character is `%c'" msgstr "se descarta el resto de la línea; el primer carácter descartado es `%c'" -#: config/tc-crx.c:1859 +#: config/tc-crx.c:1806 #, c-format msgid "Illegal `mask16' operand, operation is undefined - `%s'" msgstr "Operando `mask16' ilegal, la operación está indefinida - «%s»" #. HI can't be specified without LO (and vise-versa). -#: config/tc-crx.c:1865 +#: config/tc-crx.c:1812 msgid "HI/LO registers should be specified together" msgstr "Los registros HI/LO se deben especificar juntos" -#: config/tc-crx.c:1871 +#: config/tc-crx.c:1818 msgid "HI/LO registers should be specified without additional registers" msgstr "Los registros HI/LO se deben especificar sin registros adicionales" +#. Variable not in small data read only segment accessed +#. using small data read only anchor. +#: config/tc-csky.c:1149 config/tc-mcore.c:1927 config/tc-microblaze.c:2054 +#: config/tc-microblaze.c:2358 config/tc-microblaze.c:2381 +msgid "unknown" +msgstr "desconocido" + +#: config/tc-csky.c:1151 +#, fuzzy, c-format +#| msgid "pcrel for branch to %s too far (0x%lx)" +msgid "pcrel offset for branch to %s too far (0x%lx)" +msgstr "el pcrel para ramificar a %s muy lejos (0x%lx)" + +#: config/tc-csky.c:1235 +#, fuzzy, c-format +#| msgid "unknown architecture `%s'\n" +msgid "unknown architecture `%s'" +msgstr "desconoce arquitectura «%s» \n" + +#: config/tc-csky.c:1408 +#, fuzzy, c-format +#| msgid "wasm32 assembler options:\n" +msgid "C-SKY assembler options:\n" +msgstr "opciones ensamblador wasm32:\n" + +#: config/tc-csky.c:1410 +#, fuzzy, c-format +#| msgid " -march=ARCH enable instructions from architecture ARCH\n" +msgid " -march=ARCH\t\t\tselect architecture ARCH:" +msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n" + +#: config/tc-csky.c:1429 +#, c-format +msgid " -mcpu=CPU\t\t\tselect processor CPU:" +msgstr "" + +#: config/tc-csky.c:1456 +#, c-format +msgid " -mfloat-abi=ABI\t\tselect float ABI:" +msgstr "" + +#: config/tc-csky.c:1475 +#, fuzzy, c-format +#| msgid " -mlittle-endian generate little-endian code\n" +msgid " -EL -mlittle-endian\t\tgenerate little-endian output\n" +msgstr " -mlittle-endian genera código little-endian\n" + +#: config/tc-csky.c:1477 +#, fuzzy, c-format +#| msgid " -mbig-endian generate big-endian code\n" +msgid " -EB -mbig-endian\t\tgenerate big-endian output\n" +msgstr " -mbig-endian genera código big-endian\n" + +#: config/tc-csky.c:1479 +#, fuzzy, c-format +#| msgid " --pic\t\t\tEnable generation of position-independent code.\n" +msgid " -fpic -pic\t\t\tgenerate position-independent code\n" +msgstr " --pic\t\t\tActiva la generación de código independiente de posición.\n" + +#: config/tc-csky.c:1482 +#, c-format +msgid " -mljump\t\t\ttransform jbf, jbt, jbr to jmpi (CK800 only)\n" +msgstr "" + +#: config/tc-csky.c:1484 +#, c-format +msgid " -mno-ljump\n" +msgstr "" + +#: config/tc-csky.c:1488 +#, c-format +msgid " -mbranch-stub\t\t\tenable branch stubs for PC-relative calls\n" +msgstr "" + +#: config/tc-csky.c:1490 +#, c-format +msgid " -mno-branch-stub\n" +msgstr "" + +#: config/tc-csky.c:1494 +#, c-format +msgid " -force2bsr -mforce2bsr\ttransform jbsr to bsr\n" +msgstr "" + +#: config/tc-csky.c:1496 +#, c-format +msgid " -no-force2bsr -mno-force2bsr\n" +msgstr "" + +#: config/tc-csky.c:1498 +#, c-format +msgid " -jsri2bsr -mjsri2bsr\t\ttransform jsri to bsr\n" +msgstr "" + +#: config/tc-csky.c:1500 +#, c-format +msgid " -no-jsri2bsr -mno-jsri2bsr\n" +msgstr "" + +#: config/tc-csky.c:1503 +#, c-format +msgid " -mnolrw -mno-lrw\t\timplement lrw as movih + ori\n" +msgstr "" + +#: config/tc-csky.c:1505 +#, c-format +msgid " -melrw\t\t\tenable extended lrw (CK800 only)\n" +msgstr "" + +#: config/tc-csky.c:1507 +#, c-format +msgid " -mno-elrw\n" +msgstr "" + +#: config/tc-csky.c:1510 +#, c-format +msgid " -mlaf -mliterals-after-func\temit literals after each function\n" +msgstr "" + +#: config/tc-csky.c:1512 +#, c-format +msgid " -mno-laf -mno-literals-after-func\n" +msgstr "" + +#: config/tc-csky.c:1514 +#, c-format +msgid " -mlabr -mliterals-after-br\temit literals after branch instructions\n" +msgstr "" + +#: config/tc-csky.c:1516 +#, c-format +msgid " -mno-labr -mnoliterals-after-br\n" +msgstr "" + +#: config/tc-csky.c:1519 +#, c-format +msgid " -mistack\t\t\tenable interrupt stack instructions\n" +msgstr "" + +#: config/tc-csky.c:1521 +#, c-format +msgid " -mno-istack\n" +msgstr "" + +#: config/tc-csky.c:1524 +#, fuzzy, c-format +#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n" +msgid " -mhard-float\t\t\tenable hard float instructions\n" +msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n" + +#: config/tc-csky.c:1526 +#, c-format +msgid " -mmp\t\t\t\tenable multiprocessor instructions\n" +msgstr "" + +#: config/tc-csky.c:1528 +#, fuzzy, c-format +#| msgid "Illegal co-processor register in instruction `%s'" +msgid " -mcp\t\t\t\tenable coprocessor instructions\n" +msgstr "Registro co-procesador ilegal en Instrucción `%s'" + +#: config/tc-csky.c:1530 +#, c-format +msgid " -mcache\t\t\tenable cache prefetch instruction\n" +msgstr "" + +#: config/tc-csky.c:1532 +#, fuzzy, c-format +#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n" +msgid " -msecurity\t\t\tenable security instructions\n" +msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n" + +#: config/tc-csky.c:1534 +#, fuzzy, c-format +#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n" +msgid " -mtrust\t\t\tenable trust instructions\n" +msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n" + +#: config/tc-csky.c:1536 +#, c-format +msgid " -mdsp\t\t\t\tenable DSP instructions\n" +msgstr "" + +#: config/tc-csky.c:1538 +#, c-format +msgid " -medsp\t\t\tenable enhanced DSP instructions\n" +msgstr "" + +#: config/tc-csky.c:1540 +#, fuzzy, c-format +#| msgid "unable to widen instruction" +msgid " -mvdsp\t\t\tenable vector DSP instructions\n" +msgstr "incapaz de extender instrucción" + +#: config/tc-csky.c:1773 +msgid "C-SKY ABI v1 (ck510/ck610) does not support -mbranch-stub" +msgstr "" + +#: config/tc-csky.c:1778 +msgid "-mno-force2bsr is ignored with -mbranch-stub" +msgstr "" + +#: config/tc-csky.c:1786 +msgid "-mno-force2bsr is ignored for ck801/ck802" +msgstr "" + +#: config/tc-csky.c:1813 +msgid "-mljump is ignored for ck801/ck802" +msgstr "" + +#: config/tc-csky.c:2095 config/tc-mcore.c:689 +msgid "more than 65K literal pools" +msgstr "más de 65K de conjuntos literales" + +#: config/tc-csky.c:2342 read.c:3786 +#, c-format +msgid "bad floating literal: %s" +msgstr "literal de coma flotante incorrecta: %s" + +#: config/tc-csky.c:2490 config/tc-mcore.c:743 +msgid "missing ']'" +msgstr "ausente ']'" + +#: config/tc-csky.c:2518 config/tc-mips.c:14358 config/tc-mips.c:14422 +#: config/tc-mips.c:14433 config/tc-score.c:2688 config/tc-score.c:2735 +msgid "unrecognized opcode" +msgstr "no reconocido código operacional" + +#: config/tc-csky.c:3653 config/tc-mcore.c:1164 +msgid "translating mgeni to movi" +msgstr "se traslada ‘mgeni’ a ‘movi’" + +#: config/tc-csky.c:5301 config/tc-tilegx.c:1451 config/tc-tilepro.c:1310 +#, c-format +msgid "unsupported BFD relocation size %d" +msgstr "no se admite el tamaño de reubicación BFD %d" + +#: config/tc-csky.c:5924 +#, fuzzy +#| msgid "second operand must be 1" +msgid "second operand must be 4" +msgstr "el segundo operando debe ser 1" + +#: config/tc-csky.c:5948 config/tc-mcore.c:1527 +msgid "second operand must be 1" +msgstr "el segundo operando debe ser 1" + +#: config/tc-csky.c:6021 config/tc-xtensa.c:1988 +msgid "register number out of range" +msgstr "número de registro fuera de rango" + +#: config/tc-csky.c:6031 +#, fuzzy +#| msgid "first transfer register must be even" +msgid "64-bit operator src/dst register must be less than 15" +msgstr "primer registro de transferencia debe ser par" + +#: config/tc-csky.c:7858 +#, fuzzy +#| msgid "the first operand of `%s' must be `%s%s'" +msgid "the first operand must be a symbol" +msgstr "el primer operando de `%s' debe ser `%s%s'" + +#: config/tc-csky.c:7867 +#, fuzzy +#| msgid "missing size" +msgid "missing stack size" +msgstr "ausente el tamaño" + +#: config/tc-csky.c:7880 config/tc-score.c:4240 +msgid "value not in range [0, 0xffffffff]" +msgstr "el valor no está en el límite [0, 0xffffffff]" + +#: config/tc-csky.c:7890 config/tc-mcore.c:782 +msgid "operand must be a constant" +msgstr "operando debe ser una constante" + #: config/tc-d10v.c:216 #, c-format msgid "" @@ -5976,134 +7422,135 @@ msgstr "" msgid "operand is not an immediate" msgstr "operando no es un inmediato" -#: config/tc-d10v.c:591 +#: config/tc-d10v.c:590 #, c-format msgid "operand out of range: %lu" -msgstr "operando fuera de límite: %lu" +msgstr "operando fuera de rango: %lu" -#: config/tc-d10v.c:651 +#: config/tc-d10v.c:650 msgid "Instruction must be executed in parallel with another instruction." msgstr "La instrucción se debe ejecutar en paralelo con otra instrucción." -#: config/tc-d10v.c:705 config/tc-d10v.c:713 +#: config/tc-d10v.c:704 config/tc-d10v.c:712 #, c-format msgid "packing conflict: %s must dispatch sequentially" msgstr "conflicto de empaquetado: %s debe despachar secuencialmente" -#: config/tc-d10v.c:812 +#: config/tc-d10v.c:811 #, c-format msgid "resource conflict (R%d)" msgstr "conflicto de recurso (R%d)" -#: config/tc-d10v.c:815 +#: config/tc-d10v.c:814 #, c-format msgid "resource conflict (A%d)" msgstr "conflicto de recurso (A%d)" -#: config/tc-d10v.c:817 +#: config/tc-d10v.c:816 msgid "resource conflict (PSW)" msgstr "conflicto de recurso (PSW)" -#: config/tc-d10v.c:819 +#: config/tc-d10v.c:818 msgid "resource conflict (C flag)" msgstr "conflicto de recurso (opción C)" -#: config/tc-d10v.c:821 +#: config/tc-d10v.c:820 msgid "resource conflict (F flag)" msgstr "conflicto de recurso (opción F)" -#: config/tc-d10v.c:971 +#: config/tc-d10v.c:970 msgid "Instruction must be executed in parallel" msgstr "La instrucción se debe ejecutar en paralelo" -#: config/tc-d10v.c:974 +#: config/tc-d10v.c:973 msgid "Long instructions may not be combined." msgstr "Las instrucciones long no se pueden combinar." -#: config/tc-d10v.c:1007 +#: config/tc-d10v.c:1006 msgid "One of these instructions may not be executed in parallel." msgstr "Una de estas instrucciones no se puede ejecutar en paralelo." -#: config/tc-d10v.c:1011 config/tc-d30v.c:1037 +#: config/tc-d10v.c:1010 config/tc-d30v.c:1034 msgid "Two IU instructions may not be executed in parallel" msgstr "Dos instrucciones IU no se pueden ejecutar en paralelo" -#: config/tc-d10v.c:1013 config/tc-d10v.c:1021 config/tc-d10v.c:1035 -#: config/tc-d10v.c:1050 config/tc-d30v.c:1038 config/tc-d30v.c:1047 +#: config/tc-d10v.c:1012 config/tc-d10v.c:1020 config/tc-d10v.c:1034 +#: config/tc-d10v.c:1049 config/tc-d30v.c:1035 config/tc-d30v.c:1044 msgid "Swapping instruction order" msgstr "Se intercambia el orden de la instrucción" -#: config/tc-d10v.c:1019 config/tc-d30v.c:1044 +#: config/tc-d10v.c:1018 config/tc-d30v.c:1041 msgid "Two MU instructions may not be executed in parallel" msgstr "Dos instrucciones MU no se pueden ejecutar en paralelo" -#: config/tc-d10v.c:1039 config/tc-d30v.c:1064 +#: config/tc-d10v.c:1038 config/tc-d30v.c:1061 msgid "IU instruction may not be in the left container" msgstr "Una instrucción IU no puede estar en el contenedor izquierdo" # Parece que R es 'right' y L es 'left'. Revisar el código para comprobar # y mejorar esta traducción. cfuga -#: config/tc-d10v.c:1041 config/tc-d10v.c:1056 +#: config/tc-d10v.c:1040 config/tc-d10v.c:1055 msgid "Instruction in R container is squashed by flow control instruction in L container." msgstr "La instrucción en el contenedor R es aplastada por la instrucción de control de flujo en el contenedor L." -#: config/tc-d10v.c:1054 config/tc-d30v.c:1075 +#: config/tc-d10v.c:1053 config/tc-d30v.c:1072 msgid "MU instruction may not be in the right container" msgstr "Una instrucción MU no puede estar en el contenedor derecho" -#: config/tc-d10v.c:1060 config/tc-d30v.c:1087 +#: config/tc-d10v.c:1059 config/tc-d30v.c:1084 msgid "unknown execution type passed to write_2_short()" msgstr "se pasó un tipo de ejecución desconocido a write_2_short()" -#: config/tc-d10v.c:1189 config/tc-d10v.c:1362 +#: config/tc-d10v.c:1188 config/tc-d10v.c:1361 msgid "bad opcode or operands" -msgstr "código operacional u operandos equivocados" +msgstr "código operacional u operandos incorrectos" -#: config/tc-d10v.c:1264 +#: config/tc-d10v.c:1263 msgid "value out of range" -msgstr "valor fuera de límite" +msgstr "valor fuera de rango" -#: config/tc-d10v.c:1338 +#: config/tc-d10v.c:1337 msgid "illegal operand - register name found where none expected" msgstr "operando ilegal - se encontró un nombre de registro donde no se esperaba ninguno" -#: config/tc-d10v.c:1373 +#: config/tc-d10v.c:1372 msgid "Register number must be EVEN" msgstr "El número de registro debe ser PAR" -#: config/tc-d10v.c:1376 +#: config/tc-d10v.c:1375 msgid "Unsupported use of sp" msgstr "No se admite el uso de sp" -#: config/tc-d10v.c:1395 -#, c-format -msgid "cr%ld is a reserved control register" +#: config/tc-d10v.c:1394 +#, fuzzy, c-format +#| msgid "cr%ld is a reserved control register" +msgid "cr%d is a reserved control register" msgstr "cr%ld es un registro de control reservado" -#: config/tc-d10v.c:1570 +#: config/tc-d10v.c:1569 #, c-format msgid "line %d: rep or repi must include at least 4 instructions" msgstr "línea %d: rep o repi debe incluir por lo menos 4 instrucciones" -#: config/tc-d10v.c:1759 +#: config/tc-d10v.c:1761 msgid "can't find previous opcode " msgstr "no se puede encontrar el código operacional previo " -#: config/tc-d10v.c:1771 +#: config/tc-d10v.c:1773 #, c-format msgid "could not assemble: %s" msgstr "no se puede ensamblar: %s" -#: config/tc-d10v.c:1786 config/tc-d10v.c:1808 config/tc-d30v.c:1744 +#: config/tc-d10v.c:1788 config/tc-d10v.c:1810 config/tc-d30v.c:1741 msgid "Unable to mix instructions as specified" msgstr "No se pueden mezclar las instrucciones como se especificó" -#: config/tc-d30v.c:149 +#: config/tc-d30v.c:146 #, c-format msgid "Register name %s conflicts with symbol of the same name" msgstr "El nombre de registro %s tiene conflictos con el símbolo del mismo nombre" -#: config/tc-d30v.c:239 +#: config/tc-d30v.c:236 #, c-format msgid "" "\n" @@ -6122,131 +7569,106 @@ msgstr "" "-c Avisa sobre los símbolos cuyos nombres coincidan con nombres de registros.\n" "-C Lo opuesto de -C. -c es por defecto.\n" -#: config/tc-d30v.c:367 +#: config/tc-d30v.c:364 msgid "unexpected 12-bit reloc type" msgstr "tipo reubicado de 12-bit inesperado" -#: config/tc-d30v.c:374 +#: config/tc-d30v.c:371 msgid "unexpected 18-bit reloc type" msgstr "tipo reubicado de 18-bit inesperado" -#: config/tc-d30v.c:625 +#: config/tc-d30v.c:622 #, c-format msgid "%s NOP inserted" msgstr "%s NOP insertados" -#: config/tc-d30v.c:626 +#: config/tc-d30v.c:623 msgid "sequential" msgstr "secuencial" -#: config/tc-d30v.c:626 +#: config/tc-d30v.c:623 msgid "parallel" msgstr "paralelo" -#: config/tc-d30v.c:1033 +#: config/tc-d30v.c:1030 msgid "Instructions may not be executed in parallel" msgstr "Las instrucciones no se pueden ejecutar en paralelo" -#: config/tc-d30v.c:1046 +#: config/tc-d30v.c:1043 #, c-format msgid "Executing %s in IU may not work" msgstr "Ejecutar %s en IU podría no funcionar" -#: config/tc-d30v.c:1053 +#: config/tc-d30v.c:1050 #, c-format msgid "Executing %s in IU may not work in parallel execution" msgstr "Ejecutar %s en IU podría no funcionar en ejecución paralela" -#: config/tc-d30v.c:1066 +#: config/tc-d30v.c:1063 #, c-format msgid "special left instruction `%s' kills instruction `%s' in right container" msgstr "la instrucción especial izquierda «%s» mata a la instrucción «%s» en el contenedor derecho" -#: config/tc-d30v.c:1077 +#: config/tc-d30v.c:1074 #, c-format msgid "Executing %s in reverse serial with %s may not work" msgstr "Ejecutar %s en serie reversa con %s podría no funcionar" -#: config/tc-d30v.c:1080 +#: config/tc-d30v.c:1077 #, c-format msgid "Executing %s in IU in reverse serial may not work" msgstr "Ejecutar %s en IU en serie reversa podría no funcionar" -#: config/tc-d30v.c:1268 +#: config/tc-d30v.c:1265 msgid "Odd numbered register used as target of multi-register instruction" msgstr "Se usan registros numerados impares como objetivo para una instrucción multi-registro" -#: config/tc-d30v.c:1332 config/tc-d30v.c:1368 +#: config/tc-d30v.c:1329 config/tc-d30v.c:1365 #, c-format msgid "unknown condition code: %s" msgstr "desconoce código condicional: %s" -#: config/tc-d30v.c:1361 +#: config/tc-d30v.c:1358 #, c-format msgid "cmpu doesn't support condition code %s" msgstr "cmpu no admite el código de condición %s" -#: config/tc-d30v.c:1396 +#: config/tc-d30v.c:1393 #, c-format msgid "unknown opcode: %s" msgstr "desconoce código operacional: %s" -#: config/tc-d30v.c:1407 +#: config/tc-d30v.c:1404 #, c-format msgid "operands for opcode `%s' do not match any valid format" msgstr "los operandos para el código operacional «%s» no coincide con ningún formato válido" -#: config/tc-d30v.c:1622 config/tc-d30v.c:1639 +#: config/tc-d30v.c:1619 config/tc-d30v.c:1636 msgid "Cannot assemble instruction" msgstr "No se puede ensamblar la instrucción" -#: config/tc-d30v.c:1624 +#: config/tc-d30v.c:1621 msgid "First opcode is long. Unable to mix instructions as specified." msgstr "El primer código operacional es long. No se pueden mezclar las instrucciones como se especificó." -#: config/tc-d30v.c:1694 +#: config/tc-d30v.c:1691 msgid "word of NOPs added between word multiply and load" msgstr "word de NOPs agregados entre multiply de word y load" -#: config/tc-d30v.c:1696 +#: config/tc-d30v.c:1693 msgid "word of NOPs added between word multiply and 16-bit multiply" msgstr "word de NOPs agregados entre multiply de word y multiply de 16-bit" -#: config/tc-d30v.c:1728 +#: config/tc-d30v.c:1725 msgid "Instruction uses long version, so it cannot be mixed as specified" msgstr "La instrucción usa una versión long, así que no se puede mezclar como se especificó" -#: config/tc-d30v.c:1855 +#: config/tc-d30v.c:1852 #, c-format msgid "value too large to fit in %d bits" msgstr "valor demasiado grande para caber en %d bits" -#: config/tc-d30v.c:1923 -#, c-format -msgid "line %d: unable to place address of symbol '%s' into a byte" -msgstr "línea %d: no se puede colocar la dirección del símbolo «%s» en un byte" - -#: config/tc-d30v.c:1926 -#, c-format -msgid "line %d: unable to place value %lx into a byte" -msgstr "línea %d: no se puede colocar el valor %lx en un byte" - -#: config/tc-d30v.c:1934 -#, c-format -msgid "line %d: unable to place address of symbol '%s' into a short" -msgstr "línea %d: no se puede colocar la dirección del símbolo «%s» en un short" - -#: config/tc-d30v.c:1937 -#, c-format -msgid "line %d: unable to place value %lx into a short" -msgstr "línea %d: no se puede colocar el valor %lx en un short" - -#: config/tc-d30v.c:1945 -#, c-format -msgid "line %d: unable to place address of symbol '%s' into a quad" -msgstr "línea %d: no se puede colocar la dirección del símbolo «%s» en un quad" - -#: config/tc-d30v.c:2053 config/tc-pru.c:216 config/tc-pru.c:332 +#: config/tc-d30v.c:2030 config/tc-pru.c:216 config/tc-pru.c:332 #, c-format msgid "Alignment too large: %d assumed" msgstr "Alineación demasiado grande: se asume %d" @@ -6259,89 +7681,74 @@ msgstr "ausente .proc" msgid ".endfunc missing for previous .proc" msgstr "ausente .endfunc para el .proc previo" -#: config/tc-dlx.c:295 config/tc-i860.c:226 config/tc-mips.c:3600 -#: config/tc-nios2.c:3639 config/tc-nios2.c:3653 config/tc-nios2.c:3668 -#: config/tc-pru.c:1565 config/tc-pru.c:1579 config/tc-riscv.c:621 -#, c-format -msgid "internal error: can't hash `%s': %s\n" -msgstr "error interno: no se puede dispersar «%s»: %s\n" - -#. Probably a memory allocation problem? Give up now. -#: config/tc-dlx.c:302 config/tc-hppa.c:8270 config/tc-nios2.c:1440 -#: config/tc-nios2.c:3642 config/tc-nios2.c:3656 config/tc-nios2.c:3671 -#: config/tc-pru.c:1568 config/tc-pru.c:1582 config/tc-riscv.c:624 -#: config/tc-riscv.c:632 config/tc-sparc.c:1064 -msgid "Broken assembler. No assembly attempted." -msgstr "Ensamblador descompuesto. No se intentó ensamblar." - -#: config/tc-dlx.c:332 +#: config/tc-dlx.c:320 #, c-format msgid "Bad operand for a load instruction: <%s>" -msgstr "Operando equivocado para una instrucción load <%s>" +msgstr "Operando incorrecto para una instrucción load <%s>" -#: config/tc-dlx.c:446 +#: config/tc-dlx.c:434 #, c-format msgid "Bad operand for a store instruction: <%s>" -msgstr "Operando equivocado para una instrucción store <%s>" +msgstr "Operando incorrecto para una instrucción store <%s>" -#: config/tc-dlx.c:626 +#: config/tc-dlx.c:614 #, c-format msgid "Expression Error for operand modifier %%hi/%%lo\n" msgstr "Error de Expresión para el modificador de operando %%hi/%%lo\n" -#: config/tc-dlx.c:639 +#: config/tc-dlx.c:627 #, c-format msgid "Invalid expression after %%%%\n" msgstr "Expresión no válida tras %%%%\n" -#: config/tc-dlx.c:703 config/tc-tic4x.c:2473 +#: config/tc-dlx.c:692 config/tc-tic4x.c:2456 #, c-format msgid "Unknown opcode `%s'." msgstr "Desconoce código operacional «%s»." -#: config/tc-dlx.c:712 +#: config/tc-dlx.c:701 msgid "Can not set dlx_skip_hi16_flag" msgstr "No se puede establecer dlx_skip_hi16_flag" -#: config/tc-dlx.c:726 +#: config/tc-dlx.c:715 #, c-format msgid "Missing arguments for opcode <%s>." msgstr "Ausentes argumentos para el código operacional <%s>." -#: config/tc-dlx.c:760 +#: config/tc-dlx.c:749 #, c-format msgid "Too many operands: %s" msgstr "Demasiados operandos: %s" -#: config/tc-dlx.c:798 +#: config/tc-dlx.c:787 #, c-format msgid "Both the_insn.HI and the_insn.LO are set : %s" msgstr "Tanto the_insn.HI como the_insn.LO están activados: %s" -#: config/tc-dlx.c:868 +#: config/tc-dlx.c:857 msgid "failed regnum sanity check." -msgstr "falló la prueba de sanidad regnum." +msgstr "inspección sanitaria de regnum ha fallado." -#: config/tc-dlx.c:881 +#: config/tc-dlx.c:870 msgid "failed general register sanity check." -msgstr "falló la prueba de sanidad de registro general." +msgstr "la inspección sanitara de registros generales ha fallado." #. Types or values of args don't match. -#: config/tc-dlx.c:889 +#: config/tc-dlx.c:878 msgid "Invalid operands" msgstr "Operandos inválidos" -#: config/tc-dlx.c:1118 +#: config/tc-dlx.c:1097 #, c-format msgid "label \"$%d\" redefined" msgstr "etiqueta \"$%d\" redefinida" -#: config/tc-dlx.c:1156 +#: config/tc-dlx.c:1135 msgid "Invalid expression after # number\n" msgstr "Expresión no válida tras # número\n" -#: config/tc-dlx.c:1199 config/tc-i960.c:2637 config/tc-m32r.c:2276 -#: config/tc-nds32.c:6639 config/tc-sparc.c:4124 +#: config/tc-dlx.c:1180 config/tc-m32r.c:2273 config/tc-nds32.c:7840 +#: config/tc-sparc.c:4015 #, c-format msgid "internal error: can't export reloc type %d (`%s')" msgstr "error interno: no se puede exportar el tipo reubicado %d («%s»)" @@ -6351,32 +7758,28 @@ msgstr "error interno: no se puede exportar el tipo reubicado %d («%s»)" msgid "EPIPHANY specific command line options:\n" msgstr "Opciones de la línea de mandatos específicas de EPIPHANY:\n" -#: config/tc-epiphany.c:365 +#: config/tc-epiphany.c:367 msgid "register number too large for push/pop" msgstr "número de registro demasiado grande para push/pop" -#: config/tc-epiphany.c:369 +#: config/tc-epiphany.c:371 msgid "register is out of order" msgstr "el registro está fuera de orden" -#: config/tc-epiphany.c:380 config/tc-m68k.c:6033 config/tc-m68k.c:6062 -msgid "bad register list" -msgstr "lista de registros equivocada" - -#: config/tc-epiphany.c:383 +#: config/tc-epiphany.c:385 msgid "malformed reglist in push/pop" msgstr "lista de registros malformada en push/pop" #. Checks for behavioral restrictions on LD/ST instructions. -#: config/tc-epiphany.c:429 +#: config/tc-epiphany.c:431 msgid "destination register modified by displacement-post-modified address" msgstr "el registro de destino se modificó por la dirección de desplazamiento-post-modificada" -#: config/tc-epiphany.c:430 +#: config/tc-epiphany.c:432 msgid "ldrd/strd requires even:odd register pair" msgstr "ldrd/strd requiere un par de registros par:impar" -#: config/tc-epiphany.c:813 config/tc-m32r.c:1784 +#: config/tc-epiphany.c:820 config/tc-m32r.c:1785 msgid "Addend to unresolved symbol not on word boundary." msgstr "La adición para un símbolo sin resolver no está en un límite de word." @@ -6408,7 +7811,7 @@ msgstr "-G n Coloca datos ≤ n bytes en el área de datos small\n" #: config/tc-frv.c:458 #, c-format msgid "-mgpr-32 Mark generated file as only using 32 GPRs\n" -msgstr "-mgpr-32 Marca el fichero generado para sólo usar 32 GPRs\n" +msgstr "-mgpr-32 Marca el fichero generado para solo usar 32 GPRs\n" #: config/tc-frv.c:459 #, c-format @@ -6418,7 +7821,7 @@ msgstr "-mgpr-64 Marca el fichero generado para usar todos los 64 GPRs\n" #: config/tc-frv.c:460 #, c-format msgid "-mfpr-32 Mark generated file as only using 32 FPRs\n" -msgstr "-mfpr-32 Marca el fichero generado para sólo usar 32 FPRs\n" +msgstr "-mfpr-32 Marca el fichero generado para solo usar 32 FPRs\n" #: config/tc-frv.c:461 #, c-format @@ -6527,16 +7930,16 @@ msgstr "Violación de restricción de empaquetado VLIW" msgid "Relocation %s is not safe for %s" msgstr "La reubicación %s no es segura para %s" -#: config/tc-ft32.c:146 config/tc-moxie.c:104 +#: config/tc-ft32.c:146 config/tc-moxie.c:102 msgid "expecting register" msgstr "se espera un registro" -#: config/tc-ft32.c:167 config/tc-ft32.c:183 config/tc-moxie.c:123 -#: config/tc-moxie.c:139 +#: config/tc-ft32.c:167 config/tc-ft32.c:183 config/tc-moxie.c:121 +#: config/tc-moxie.c:137 msgid "illegal register number" msgstr "número de registro ilegal" -#: config/tc-ft32.c:239 config/tc-moxie.c:188 config/tc-pj.c:260 +#: config/tc-ft32.c:239 config/tc-moxie.c:186 config/tc-pj.c:260 #, c-format msgid "unknown opcode %s" msgstr "desconoce código operacional %s" @@ -6554,18 +7957,17 @@ msgstr "error interno en interpretación argumental" msgid "expected comma separator" msgstr "esperaba separador de coma" -#: config/tc-ft32.c:412 config/tc-moxie.c:232 config/tc-moxie.c:292 -#: config/tc-moxie.c:304 config/tc-moxie.c:337 config/tc-moxie.c:369 -#: config/tc-moxie.c:402 config/tc-moxie.c:456 config/tc-moxie.c:510 -#: config/tc-moxie.c:520 config/tc-moxie.c:543 config/tc-moxie.c:556 +#: config/tc-ft32.c:412 config/tc-moxie.c:230 config/tc-moxie.c:290 +#: config/tc-moxie.c:302 config/tc-moxie.c:335 config/tc-moxie.c:367 +#: config/tc-moxie.c:400 config/tc-moxie.c:454 config/tc-moxie.c:508 +#: config/tc-moxie.c:518 config/tc-moxie.c:541 config/tc-moxie.c:554 #: config/tc-pj.c:308 msgid "extra stuff on line ignored" msgstr "se descarta los elementos extra en la línea" -#: config/tc-ft32.c:472 config/tc-lm32.c:236 config/tc-moxie.c:587 -#: config/tc-nios2.c:284 +#: config/tc-ft32.c:472 config/tc-lm32.c:236 config/tc-moxie.c:585 msgid "bad call to md_atof" -msgstr "llamada equivocada a md_atof" +msgstr "llamada incorrecta a md_atof" #: config/tc-ft32.c:522 #, c-format @@ -6593,166 +7995,165 @@ msgstr "tamaño estimado\n" msgid "convert_frag\n" msgstr "convert_frag\n" -#: config/tc-h8300.c:178 +#: config/tc-h8300.c:176 #, c-format msgid "new section '%s' defined without attributes - this might cause problems" msgstr "se definió la sección nueva «%s» sin atributos - esto podría causar problemas" -#: config/tc-h8300.c:448 config/tc-h8300.c:456 +#: config/tc-h8300.c:441 config/tc-h8300.c:449 msgid "Reg not valid for H8/300" msgstr "El registro no es válido para H8/300" -#: config/tc-h8300.c:537 +#: config/tc-h8300.c:530 msgid "invalid operand size requested" msgstr "se solicitó un tamaño de operando inválido" -#: config/tc-h8300.c:642 +#: config/tc-h8300.c:635 msgid "Invalid register list for ldm/stm\n" msgstr "Lista de registros no válida para ldm/stm\n" -#: config/tc-h8300.c:668 config/tc-h8300.c:673 config/tc-h8300.c:680 +#: config/tc-h8300.c:661 config/tc-h8300.c:666 config/tc-h8300.c:673 msgid "mismatch between register and suffix" msgstr "no hay coincidencia entre el registro y el sufijo" -#: config/tc-h8300.c:685 +#: config/tc-h8300.c:678 msgid "invalid suffix after register." msgstr "sufijo inválido tras registro." -#: config/tc-h8300.c:707 +#: config/tc-h8300.c:700 msgid "address too high for vector table jmp/jsr" -msgstr "dirección demasiado alta para distribuciones vectoriales jmp/jsr" +msgstr "dirección demasiado alta para distribuciones de vectores jmp/jsr" -#: config/tc-h8300.c:734 config/tc-h8300.c:846 config/tc-h8300.c:856 +#: config/tc-h8300.c:727 config/tc-h8300.c:839 config/tc-h8300.c:849 msgid "Wrong size pointer register for architecture." -msgstr "Tamaño de registro puntero equivocado para la arquitectura." +msgstr "Tamaño de registro puntero incorrecto para la arquitectura." -#: config/tc-h8300.c:793 config/tc-h8300.c:801 config/tc-h8300.c:830 +#: config/tc-h8300.c:786 config/tc-h8300.c:794 config/tc-h8300.c:823 msgid "expected @(exp, reg16)" msgstr "se esperaba @(exp, reg16)" -#: config/tc-h8300.c:819 +#: config/tc-h8300.c:812 msgid "expected .L, .W or .B for register in indexed addressing mode" -msgstr "se esperaba .L, .W ó .B para el registro en modo de direccionamiento indizado" +msgstr "se esperaba .L, .W ó .B para el registro en modo de direccionamiento indexado" -#: config/tc-h8300.c:1013 +#: config/tc-h8300.c:1006 msgid "expected valid addressing mode for mova: \"@(disp, ea.sz),ERn\"" msgstr "se esperaba un modo de direccionamiento válido para mova: \"@(disp, ea.sz),ERn\"" -#: config/tc-h8300.c:1031 config/tc-h8300.c:1040 +#: config/tc-h8300.c:1024 config/tc-h8300.c:1033 msgid "expected register" msgstr "se esperaba un registro" -#: config/tc-h8300.c:1056 +#: config/tc-h8300.c:1049 msgid "expected closing paren" msgstr "se esperaba un paréntesis que cierra" -#: config/tc-h8300.c:1115 +#: config/tc-h8300.c:1108 #, c-format msgid "can't use high part of register in operand %d" msgstr "no se puede usar la parte alta del registro en operando %d" -#: config/tc-h8300.c:1272 +#: config/tc-h8300.c:1265 #, c-format msgid "Opcode `%s' with these operand types not available in %s mode" msgstr "El código operacional «%s» con esos tipos de operando no está disponible en el modo %s" -#: config/tc-h8300.c:1281 +#: config/tc-h8300.c:1274 msgid "mismatch between opcode size and operand size" msgstr "no hay coincidencia entre el tamaño del código operacional y el tamaño de operando" -#: config/tc-h8300.c:1317 +#: config/tc-h8300.c:1310 #, c-format msgid "operand %s0x%lx out of range." -msgstr "operando %s0x%lx fuera de límite." +msgstr "operando %s0x%lx fuera de rango." -#: config/tc-h8300.c:1434 +#: config/tc-h8300.c:1420 msgid "Can't work out size of operand.\n" msgstr "No se puede obtener el tamaño de operando.\n" -#: config/tc-h8300.c:1484 +#: config/tc-h8300.c:1470 #, c-format msgid "Opcode `%s' with these operand types not available in H8/300 mode" msgstr "El código operacional «%s» con esos tipos de operando no están disponibles en el modo H8/300" -#: config/tc-h8300.c:1489 +#: config/tc-h8300.c:1475 #, c-format msgid "Opcode `%s' with these operand types not available in H8/300H mode" msgstr "El código operacional «%s» con esos tipos de operando no está disponible en el modo H8/300H" -#: config/tc-h8300.c:1495 +#: config/tc-h8300.c:1481 #, c-format msgid "Opcode `%s' with these operand types not available in H8/300S mode" msgstr "El código operacional «%s» con esos tipos de operando no está disponible en el modo H8/300S" -#: config/tc-h8300.c:1556 config/tc-h8300.c:1576 +#: config/tc-h8300.c:1542 config/tc-h8300.c:1562 msgid "Need #1 or #2 here" msgstr "Necesita Nº1 o Nº2 aquí" -#: config/tc-h8300.c:1571 +#: config/tc-h8300.c:1557 msgid "#4 not valid on H8/300." msgstr "Nº4 no valida en H8/300." -#: config/tc-h8300.c:1686 config/tc-h8300.c:1768 +#: config/tc-h8300.c:1664 config/tc-h8300.c:1736 #, c-format msgid "branch operand has odd offset (%lx)\n" msgstr "operando de ramificación tiene un desplazamiento impar (%lx)\n" -#: config/tc-h8300.c:1806 +#: config/tc-h8300.c:1774 msgid "destination operand must be 16 bit register" msgstr "operando de destino debe ser un registro de 16 bit" -#: config/tc-h8300.c:1815 +#: config/tc-h8300.c:1783 msgid "source operand must be 8 bit register" msgstr "operando de origen debe ser un registro de 8 bit" -#: config/tc-h8300.c:1823 +#: config/tc-h8300.c:1791 msgid "destination operand must be 16bit absolute address" msgstr "operando de destino debe ser una dirección absoluta de 16bit" -#: config/tc-h8300.c:1830 +#: config/tc-h8300.c:1798 msgid "destination operand must be 8 bit register" msgstr "operando de destino debe ser un registro de 8 bit" -#: config/tc-h8300.c:1838 +#: config/tc-h8300.c:1806 msgid "source operand must be 16bit absolute address" msgstr "operando de origen debe ser una dirección absoluta de 16bit" #. This seems more sane than saying "too many operands". We'll #. get here only if the trailing trash starts with a comma. -#: config/tc-h8300.c:1846 config/tc-mips.c:14027 config/tc-mips.c:14095 -#: config/tc-mmix.c:479 config/tc-mmix.c:491 config/tc-mmix.c:2533 -#: config/tc-mmix.c:2557 config/tc-mmix.c:2830 +#: config/tc-h8300.c:1814 config/tc-mips.c:14374 config/tc-mips.c:14442 +#: config/tc-mmix.c:469 config/tc-mmix.c:481 config/tc-mmix.c:2537 +#: config/tc-mmix.c:2561 config/tc-mmix.c:2834 msgid "invalid operands" msgstr "operandos inválidos" -#: config/tc-h8300.c:1877 +#: config/tc-h8300.c:1845 msgid "operand/size mis-match" msgstr "no coinciden los operandos/tamaños" -#: config/tc-h8300.c:1977 config/tc-sh.c:2972 config/tc-sh64.c:2796 -#: config/tc-z8k.c:1233 +#: config/tc-h8300.c:1945 config/tc-sh.c:2537 config/tc-z8k.c:1243 msgid "unknown opcode" msgstr "desconoce código operacional" -#: config/tc-h8300.c:2010 +#: config/tc-h8300.c:1978 msgid "invalid operand in ldm" msgstr "operando inválido en ldm" -#: config/tc-h8300.c:2019 +#: config/tc-h8300.c:1987 msgid "invalid operand in stm" msgstr "operando inválido en stm" -#: config/tc-h8300.c:2218 +#: config/tc-h8300.c:2186 #, c-format msgid "Invalid argument to --mach option: %s" msgstr "Argumento inválido para opción --mach: %s" -#: config/tc-h8300.c:2229 +#: config/tc-h8300.c:2197 #, c-format msgid " H8300-specific assembler options:\n" msgstr " Opciones de ensamblador específicas de H8300:\n" -#: config/tc-h8300.c:2230 +#: config/tc-h8300.c:2198 #, c-format msgid "" " -mach=<name> Set the H8300 machine type to one of:\n" @@ -6761,37 +8162,32 @@ msgstr "" " -mach=<name> Establece el tipo de máquina H8300 a una de:\n" " h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n" -#: config/tc-h8300.c:2233 +#: config/tc-h8300.c:2201 #, c-format msgid " -h-tick-hex Support H'00 style hex constants\n" msgstr " -h-tick-hex admite contantes hex estilo H'00\n" -#: config/tc-h8300.c:2242 +#: config/tc-h8300.c:2210 #, c-format msgid "call to tc_aout_fix_to_chars \n" msgstr "llamada a tc_aout_fix_to_chars \n" -#: config/tc-h8300.c:2251 config/tc-xc16x.c:347 +#: config/tc-h8300.c:2219 #, c-format msgid "call to md_convert_frag \n" msgstr "llamada a md_convert_frag \n" -#: config/tc-h8300.c:2302 config/tc-xc16x.c:251 +#: config/tc-h8300.c:2270 #, c-format msgid "call to md_estimate_size_before_relax \n" msgstr "llamada a md_estimate_size_before_relax \n" -#: config/tc-h8300.c:2317 +#: config/tc-h8300.c:2285 msgid "Unexpected reference to a symbol in a non-code section" msgstr "Referencia inesperada a un símbolo en una sección que no es de código" -#: config/tc-h8300.c:2333 config/tc-xc16x.c:292 -msgid "Difference of symbols in different sections is not supported" -msgstr "Diferencias simbólicas en secciones diferentes no es compatible" - -#: config/tc-h8300.c:2355 config/tc-mcore.c:2204 config/tc-microblaze.c:2458 -#: config/tc-pj.c:491 config/tc-sh.c:4480 config/tc-tic6x.c:4520 -#: config/tc-xc16x.c:315 +#: config/tc-h8300.c:2322 config/tc-mcore.c:2208 config/tc-microblaze.c:2552 +#: config/tc-pj.c:488 config/tc-sh.c:3886 config/tc-tic6x.c:4515 #, c-format msgid "Cannot represent relocation type %s" msgstr "No se puede representar el tipo reubicado %s" @@ -6803,7 +8199,7 @@ msgstr "No se puede representar el tipo reubicado %s" #: config/tc-hppa.c:1027 config/tc-hppa.c:1041 #, c-format msgid "Field out of range [%d..%d] (%d)." -msgstr "Campo fuera de límite [%d..%d] (%d)." +msgstr "Campo fuera de rango [%d..%d] (%d)." #. Simple alignment checking for FIELD against ALIGN (a power of two). #. IGNORE is used to suppress the error message. @@ -6827,1262 +8223,1685 @@ msgstr "Selector de campo inválido. Asumiendo F%%." #: config/tc-hppa.c:1288 msgid "Bad segment in expression." -msgstr "Segmento equivocado dentro de expresión." +msgstr "Segmento incorrecto dentro de expresión." #: config/tc-hppa.c:1313 #, c-format msgid "Invalid Nullification: (%c)" msgstr "Nulificación Inválida: (%c)" -#: config/tc-hppa.c:1384 +#: config/tc-hppa.c:1379 msgid "Cannot handle fixup" msgstr "No se puede manipular la compostura" -#: config/tc-hppa.c:1682 +#: config/tc-hppa.c:1663 #, c-format msgid " -Q ignored\n" msgstr " -Q se descarta\n" -#: config/tc-hppa.c:1686 +#: config/tc-hppa.c:1667 #, c-format msgid " -c print a warning if a comment is found\n" msgstr " -c escribe un aviso si se encuentra un comentario\n" -#: config/tc-hppa.c:1752 +#: config/tc-hppa.c:1733 #, c-format msgid "no hppa_fixup entry for fixup type 0x%x" msgstr "no hay una entrada hppa_fixup para el tipo de compostura 0x%x" -#: config/tc-hppa.c:1931 +#: config/tc-hppa.c:1912 msgid "Unknown relocation encountered in md_apply_fix." msgstr "Se encontró una reubicación desconocida en md_apply_fix." -#: config/tc-hppa.c:2119 config/tc-hppa.c:2144 +#: config/tc-hppa.c:2100 config/tc-hppa.c:2125 #, c-format msgid "Undefined register: '%s'." msgstr "Registro indefinido: «%s»." -#: config/tc-hppa.c:2178 +#: config/tc-hppa.c:2159 #, c-format msgid "Non-absolute symbol: '%s'." msgstr "Símbolo no absoluto: «%s»." -#: config/tc-hppa.c:2193 +#: config/tc-hppa.c:2174 #, c-format msgid "Undefined absolute constant: '%s'." msgstr "Constante absoluta sin definir: «%s»." -#: config/tc-hppa.c:2224 config/tc-hppa.c:5692 +#: config/tc-hppa.c:2205 config/tc-hppa.c:5686 msgid "could not update architecture and machine" msgstr "no se pueden actualizar la arquitectura y la máquina" -#: config/tc-hppa.c:2262 +#: config/tc-hppa.c:2243 #, c-format msgid "Invalid FP Compare Condition: %s" msgstr "Condición de Comparación de FP Inválida: %s" -#: config/tc-hppa.c:2317 +#: config/tc-hppa.c:2298 #, c-format msgid "Invalid FTEST completer: %s" msgstr "Completador FTEST inválido: %s" -#: config/tc-hppa.c:2383 config/tc-hppa.c:2420 +#: config/tc-hppa.c:2364 config/tc-hppa.c:2401 #, c-format msgid "Invalid FP Operand Format: %3s" msgstr "Formato de Operando FP Inválido: %3s" -#: config/tc-hppa.c:2525 +#: config/tc-hppa.c:2519 msgid "Bad segment (should be absolute)." -msgstr "Segmento equivocado (debe ser absoluto)." +msgstr "Segmento incorrecto (debe ser absoluto)." -#: config/tc-hppa.c:2585 +#: config/tc-hppa.c:2579 #, c-format msgid "Invalid argument location: %s\n" msgstr "Ubicación de argumento no válida: %s\n" -#: config/tc-hppa.c:2614 +#: config/tc-hppa.c:2608 #, c-format msgid "Invalid argument description: %d" msgstr "Descripción de argumento no válida: %d" -#: config/tc-hppa.c:3443 +#: config/tc-hppa.c:3437 msgid "Invalid Indexed Load Completer." msgstr "Completador de Carga Indizado Inválido." -#: config/tc-hppa.c:3448 +#: config/tc-hppa.c:3442 msgid "Invalid Indexed Load Completer Syntax." msgstr "Sintaxis de Completador de Carga Indizado Inválido." -#: config/tc-hppa.c:3482 +#: config/tc-hppa.c:3476 msgid "Invalid Short Load/Store Completer." msgstr "Completador Short de Load/Store Inválido." -#: config/tc-hppa.c:3543 config/tc-hppa.c:3548 +#: config/tc-hppa.c:3537 config/tc-hppa.c:3542 msgid "Invalid Store Bytes Short Completer" msgstr "Completador Almacenaje de Bytes Cortos Inválido" -#: config/tc-hppa.c:3863 config/tc-hppa.c:3869 +#: config/tc-hppa.c:3857 config/tc-hppa.c:3863 msgid "Invalid left/right combination completer" msgstr "Completador de combinación derecha/izquierda inválido" -#: config/tc-hppa.c:3918 config/tc-hppa.c:3925 +#: config/tc-hppa.c:3912 config/tc-hppa.c:3919 msgid "Invalid permutation completer" msgstr "Completador de permutación inválido" -#: config/tc-hppa.c:4025 +#: config/tc-hppa.c:4019 #, c-format msgid "Invalid Add Condition: %s" msgstr "Condición de Adición Inválida: %s" -#: config/tc-hppa.c:4041 config/tc-hppa.c:4051 +#: config/tc-hppa.c:4035 config/tc-hppa.c:4045 msgid "Invalid Add and Branch Condition" msgstr "Condición de Adición y Ramificación Inválida" -#: config/tc-hppa.c:4072 config/tc-hppa.c:4217 +#: config/tc-hppa.c:4066 config/tc-hppa.c:4211 msgid "Invalid Compare/Subtract Condition" msgstr "Condición de Comparación/Sustracción Inválida" -#: config/tc-hppa.c:4112 +#: config/tc-hppa.c:4106 #, c-format msgid "Invalid Branch On Bit Condition: %c" msgstr "Condición de Ramificación en Bit Inválida: %c" -#: config/tc-hppa.c:4115 +#: config/tc-hppa.c:4109 msgid "Missing Branch On Bit Condition" msgstr "Ausentea Condición de Ramificación de Bit" -#: config/tc-hppa.c:4200 +#: config/tc-hppa.c:4194 #, c-format msgid "Invalid Compare/Subtract Condition: %s" msgstr "Condición de Comparación/Sustracción Inválida: %s" -#: config/tc-hppa.c:4232 +#: config/tc-hppa.c:4226 msgid "Invalid Compare and Branch Condition" msgstr "Condición de Comparación y Ramificación Inválida" -#: config/tc-hppa.c:4328 +#: config/tc-hppa.c:4322 msgid "Invalid Logical Instruction Condition." msgstr "Condición de Instrucción Lógica Inválida." -#: config/tc-hppa.c:4390 +#: config/tc-hppa.c:4384 msgid "Invalid Shift/Extract/Deposit Condition." msgstr "Condición Desplazar/Extraer/Depositar Inválida." -#: config/tc-hppa.c:4507 +#: config/tc-hppa.c:4501 msgid "Invalid Unit Instruction Condition." msgstr "Condición de Instrucción Unit Inválida." -#: config/tc-hppa.c:4986 config/tc-hppa.c:5018 config/tc-hppa.c:5049 -#: config/tc-hppa.c:5079 +#: config/tc-hppa.c:4980 config/tc-hppa.c:5012 config/tc-hppa.c:5043 +#: config/tc-hppa.c:5073 msgid "Branch to unaligned address" msgstr "Ramificación a dirección sin alinear" -#: config/tc-hppa.c:5261 +#: config/tc-hppa.c:5255 msgid "Invalid SFU identifier" msgstr "Identificador SFU inválido" -#: config/tc-hppa.c:5311 +#: config/tc-hppa.c:5305 msgid "Invalid COPR identifier" msgstr "Identificador COPR inválido" -#: config/tc-hppa.c:5441 +#: config/tc-hppa.c:5435 msgid "Invalid Floating Point Operand Format." msgstr "Formato de Operando de Coma Flotante Inválido." -#: config/tc-hppa.c:5561 config/tc-hppa.c:5581 config/tc-hppa.c:5601 -#: config/tc-hppa.c:5621 config/tc-hppa.c:5641 +#: config/tc-hppa.c:5555 config/tc-hppa.c:5575 config/tc-hppa.c:5595 +#: config/tc-hppa.c:5615 config/tc-hppa.c:5635 msgid "Invalid register for single precision fmpyadd or fmpysub" msgstr "Registro inválido para fmpyadd ó fmpysub de precisión simple" -#: config/tc-hppa.c:5709 +#: config/tc-hppa.c:5703 #, c-format msgid "Invalid operands %s" msgstr "Operandos inválidos %s" -#: config/tc-hppa.c:5719 +#: config/tc-hppa.c:5713 #, c-format msgid "Immediates %d and %d will give undefined behavior." msgstr "Los inmediatos %d y %d darán una conducta sin definir." -#: config/tc-hppa.c:5771 config/tc-hppa.c:6954 config/tc-hppa.c:7009 +#: config/tc-hppa.c:5765 config/tc-hppa.c:6959 config/tc-hppa.c:7014 msgid "Missing function name for .PROC (corrupted label chain)" msgstr "Ausente el nombre de función para .PROC (cadena de etiquetas corrupta)" -#: config/tc-hppa.c:5774 config/tc-hppa.c:7012 +#: config/tc-hppa.c:5768 config/tc-hppa.c:7017 msgid "Missing function name for .PROC" msgstr "Ausente el nombre de función para .PROC" -#: config/tc-hppa.c:5833 +#: config/tc-hppa.c:5827 msgid "Argument to .BLOCK/.BLOCKZ must be between 0 and 0x3fffffff" msgstr "El argumento para .BLOCK/.BLOCKZ debe estar entre 0 y 0x3fffffff" -#: config/tc-hppa.c:5924 +#: config/tc-hppa.c:5918 #, c-format msgid "Invalid .CALL argument: %s" msgstr "Argumento de .CALL inválido: %s" -#: config/tc-hppa.c:6069 +#: config/tc-hppa.c:6063 msgid ".callinfo is not within a procedure definition" msgstr "directiva .callinfo no está dentro de una definición de procedimiento" -#: config/tc-hppa.c:6087 +#: config/tc-hppa.c:6081 #, c-format msgid "FRAME parameter must be a multiple of 8: %d\n" msgstr "El parámetro FRAM debe ser un múltiplo de 8: %d\n" -#: config/tc-hppa.c:6104 +#: config/tc-hppa.c:6098 msgid "Value for ENTRY_GR must be in the range 3..18\n" msgstr "Valorar para ENTRY_GR debe estar en el límite 3..18\n" -#: config/tc-hppa.c:6115 +#: config/tc-hppa.c:6109 msgid "Value for ENTRY_FR must be in the range 12..21\n" msgstr "Valorar para ENTRY_FR debe estar en el límite 12..21\n" -#: config/tc-hppa.c:6124 +#: config/tc-hppa.c:6118 msgid "Value for ENTRY_SR must be 3\n" msgstr "Valorar para ENTRY_SR debe ser 3\n" -#: config/tc-hppa.c:6173 +#: config/tc-hppa.c:6167 #, c-format msgid "Invalid .CALLINFO argument: %s" msgstr "Argumento de .CALLINFO inválido: %s" -#: config/tc-hppa.c:6284 +#: config/tc-hppa.c:6289 msgid "The .ENTER pseudo-op is not supported" msgstr "No se admite el pseudo-operador .ENTER" -#: config/tc-hppa.c:6300 +#: config/tc-hppa.c:6305 msgid "Misplaced .entry. Ignored." msgstr ".entry mal ubicado. Se descarta." -#: config/tc-hppa.c:6304 +#: config/tc-hppa.c:6309 msgid "Missing .callinfo." msgstr "Ausente .callinfo." -#: config/tc-hppa.c:6368 +#: config/tc-hppa.c:6374 msgid ".REG expression must be a register" msgstr "la expresión .REG debe ser un registro" -#: config/tc-hppa.c:6384 +#: config/tc-hppa.c:6390 msgid "bad or irreducible absolute expression; zero assumed" -msgstr "expresión absoluta equivocada o irreducible; se asume cero" +msgstr "expresión absoluta incorrecta o irreducible; se asume cero" -#: config/tc-hppa.c:6395 +#: config/tc-hppa.c:6401 msgid ".REG must use a label" msgstr ".REG debe usar una etiqueta" -#: config/tc-hppa.c:6397 +#: config/tc-hppa.c:6403 msgid ".EQU must use a label" msgstr ".EQU debe usar una etiqueta" -#: config/tc-hppa.c:6453 +#: config/tc-hppa.c:6458 #, c-format msgid "Symbol '%s' could not be created." msgstr "No se puede crear el símbolo «%s»." -#: config/tc-hppa.c:6503 +#: config/tc-hppa.c:6508 msgid ".EXIT must appear within a procedure" msgstr ".EXIT debe aparecer dentro de un procedimiento" -#: config/tc-hppa.c:6507 +#: config/tc-hppa.c:6512 msgid "Missing .callinfo" msgstr "Ausente .callinfo" -#: config/tc-hppa.c:6511 +#: config/tc-hppa.c:6516 msgid "No .ENTRY for this .EXIT" msgstr "No hay .ENTRY para este .EXIT" -#: config/tc-hppa.c:6551 +#: config/tc-hppa.c:6556 #, c-format msgid "Using ENTRY rather than CODE in export directive for %s" msgstr "Utilizando ENTRY en lugar de CODE en la directiva export para %s" -#: config/tc-hppa.c:6670 +#: config/tc-hppa.c:6675 #, c-format msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s" msgstr "Argumento indefinido .EXPORT/.IMPORT (descartado): %s" -#: config/tc-hppa.c:6693 +#: config/tc-hppa.c:6698 #, c-format msgid "Cannot define export symbol: %s\n" msgstr "No se puede definir el símbolo de exportación: %s\n" -#: config/tc-hppa.c:6784 +#: config/tc-hppa.c:6789 msgid "Missing label name on .LABEL" msgstr "Ausente el nombre de etiqueta en .LABEL" -#: config/tc-hppa.c:6789 +#: config/tc-hppa.c:6794 msgid "extra .LABEL arguments ignored." msgstr "se descartan los argumentos extra de .LABEL." -#: config/tc-hppa.c:6805 +#: config/tc-hppa.c:6810 msgid "The .LEAVE pseudo-op is not supported" msgstr "No se admite el pseudo-operador .LEAVE" -#: config/tc-hppa.c:6843 +#: config/tc-hppa.c:6848 msgid "Unrecognized .LEVEL argument\n" msgstr "No reconocido el argumento de .LEVEL\n" -#: config/tc-hppa.c:6876 +#: config/tc-hppa.c:6881 #, c-format msgid "Cannot define static symbol: %s\n" msgstr "No se puede definir el símbolo estático: %s\n" -#: config/tc-hppa.c:6908 +#: config/tc-hppa.c:6913 msgid "Nested procedures" msgstr "Procedimientos anidados" -#: config/tc-hppa.c:6918 +#: config/tc-hppa.c:6923 msgid "Cannot allocate unwind descriptor\n" msgstr "No se puede asignar un descriptor de desenredo\n" -#: config/tc-hppa.c:7016 +#: config/tc-hppa.c:7021 msgid "misplaced .procend" msgstr ".procend mal ubicado" -#: config/tc-hppa.c:7019 +#: config/tc-hppa.c:7024 msgid "Missing .callinfo for this procedure" msgstr "Ausente .callinfo para este procedimiento" -#: config/tc-hppa.c:7022 +#: config/tc-hppa.c:7027 msgid "Missing .EXIT for a .ENTRY" msgstr "Ausente .EXIT para un .ENTRY" -#: config/tc-hppa.c:7059 +#: config/tc-hppa.c:7064 msgid "Not in a space.\n" msgstr "No está en un espacio.\n" -#: config/tc-hppa.c:7062 +#: config/tc-hppa.c:7067 msgid "Not in a subspace.\n" msgstr "No está en un subespacio.\n" -#: config/tc-hppa.c:7150 +#: config/tc-hppa.c:7155 msgid "Invalid .SPACE argument" msgstr "Argumento de .SPACE inválido" -#: config/tc-hppa.c:7196 +#: config/tc-hppa.c:7201 msgid "Can't change spaces within a procedure definition. Ignored" msgstr "No se pueden modificar espacios dentro de una definición de procedimiento. Se descarta" -#: config/tc-hppa.c:7321 +#: config/tc-hppa.c:7326 #, c-format msgid "Undefined space: '%s' Assuming space number = 0." msgstr "Espacio indefinido: «%s» Se asume que el número de espacio = 0." -#: config/tc-hppa.c:7344 +#: config/tc-hppa.c:7349 msgid "Must be in a space before changing or declaring subspaces.\n" msgstr "Debe estar en un espacio antes de modificar o declarar subespacios.\n" -#: config/tc-hppa.c:7348 +#: config/tc-hppa.c:7353 msgid "Can't change subspaces within a procedure definition. Ignored" msgstr "No se pueden modificar subespacios dentro de una definición de procedimiento. Se descarta" -#: config/tc-hppa.c:7382 +#: config/tc-hppa.c:7387 msgid "Parameters of an existing subspace can't be modified" msgstr "No se pueden modificar los parámetros de un subespacio existente" -#: config/tc-hppa.c:7433 +#: config/tc-hppa.c:7438 msgid "Alignment must be a power of 2" msgstr "Alineación debe ser una potencia de 2" -#: config/tc-hppa.c:7480 +#: config/tc-hppa.c:7485 msgid "FIRST not supported as a .SUBSPACE argument" msgstr "No se admite FIRST como un argumento de .SUBSPACE" -#: config/tc-hppa.c:7482 +#: config/tc-hppa.c:7487 msgid "Invalid .SUBSPACE argument" msgstr "Argumento de .SUBSPACE inválido" -#: config/tc-hppa.c:7672 +#: config/tc-hppa.c:7676 #, c-format msgid "Internal error: Unable to find containing space for %s." msgstr "Error interno: No se puede encontrar el espacio contenedor para %s." -#: config/tc-hppa.c:8234 +#: config/tc-hppa.c:8237 msgid "-R option not supported on this target." msgstr "No se admite la opción -R en este objetivo." -#: config/tc-hppa.c:8251 config/tc-sparc.c:1019 config/tc-sparc.c:1056 -#, c-format -msgid "Internal error: can't hash `%s': %s\n" -msgstr "Error interno: no se puede dispersar «%s»: %s\n" - -#: config/tc-hppa.c:8260 config/tc-i860.c:235 +#: config/tc-hppa.c:8259 #, c-format msgid "internal error: losing opcode: `%s' \"%s\"\n" msgstr "error interno: se pierde el código operacional: «%s» «%s»\n" -#: config/tc-i370.c:418 config/tc-ppc.c:1278 config/tc-s390.c:432 -#: config/tc-s390.c:439 -#, c-format -msgid "invalid switch -m%s" -msgstr "interruptor -m%s inválido" - -#: config/tc-i370.c:515 config/tc-s390.c:538 -#, c-format -msgid "Internal assembler error for instruction %s" -msgstr "Error interno del ensamblador para la instrucción %s" - -#: config/tc-i370.c:534 -#, c-format -msgid "Internal assembler error for macro %s" -msgstr "Error interno del ensamblador para la macro %s" - -#: config/tc-i370.c:629 config/tc-ppc.c:2129 -msgid "identifier+constant@got means identifier@got+constant" -msgstr "identificador+constante@got significa identificador@got+constante" - -#: config/tc-i370.c:683 config/tc-m68k.c:8071 read.c:4572 -#, c-format -msgid "%s relocations do not fit in %u byte" -msgid_plural "%s relocations do not fit in %u bytes" -msgstr[0] "%s reubicaciones no caben en %u byte" -msgstr[1] "%s reubicaciones no caben en %u bytes" - -#: config/tc-i370.c:927 config/tc-i370.c:968 -msgid "unsupported DC type" -msgstr "no se admite el tipo DC" - -#: config/tc-i370.c:939 config/tc-i370.c:949 config/tc-i370.c:1531 -#: config/tc-i370.c:1542 -msgid "missing end-quote" -msgstr "ausentea comilla final" - -#: config/tc-i370.c:998 -msgid "unsupported alignment" -msgstr "no se admite la alineamiento" - -#: config/tc-i370.c:1005 -msgid "this DS form not yet supported" -msgstr "aún no se admite esta forma DS" - -#: config/tc-i370.c:1047 config/tc-m32r.c:1488 config/tc-microblaze.c:192 -msgid "Expected comma after symbol-name: rest of line ignored." -msgstr "Se esperaba coma tras nombre del símbolo: se descarta el resto de la línea." - -#: config/tc-i370.c:1070 config/tc-m32r.c:1512 config/tc-microblaze.c:214 -#: config/tc-ppc.c:2289 config/tc-ppc.c:3808 config/tc-ppc.c:3850 -#: config/tc-ppc.c:5410 -msgid "ignoring bad alignment" -msgstr "se descarta la alineamiento equivocada" - -#: config/tc-i370.c:1081 config/tc-m32r.c:1539 config/tc-microblaze.c:225 -#, c-format -msgid "Ignoring attempt to re-define symbol `%s'." -msgstr "Se descarta el intento de redefinir el símbolo «%s»." - -#: config/tc-i370.c:1089 config/tc-microblaze.c:233 -#, c-format -msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld." -msgstr "La longitud de .lcomm «%s» ya es %ld. No se cambió a %ld." - -#: config/tc-i370.c:1108 config/tc-m32r.c:1524 config/tc-microblaze.c:249 -#: config/tc-v850.c:383 -msgid "Common alignment not a power of 2" -msgstr "La alineamiento común no es una potencia de 2" - -#: config/tc-i370.c:1246 -msgid "Missing or bad .using directive" -msgstr "Ausentea directiva .using o es equivocada" - -#: config/tc-i370.c:1291 -msgid "Literal Pool Overflow" -msgstr "Desbordamiento de Conjunto Literal" - -#: config/tc-i370.c:1589 -msgid "expression not a constant" -msgstr "la expresión no es una constante" - -#: config/tc-i370.c:1596 -msgid "Unknown/unsupported address literal type" -msgstr "Tipo direccional literal desconocida/incompatible" - -#: config/tc-i370.c:1619 -#, c-format -msgid ".ltorg without prior .using in section %s" -msgstr ".ltorg sin .using previo en la sección %s" - -#: config/tc-i370.c:1623 -#, c-format -msgid ".ltorg in section %s paired to .using in section %s" -msgstr ".ltorg en la sección %s emparejado con .using en la sección %s" - -#: config/tc-i370.c:1646 -#, c-format -msgid "bad alignment of %d bytes in literal pool" -msgstr "alineamiento equivocada de %d bytes en el conjunto de literales" - -#: config/tc-i370.c:1670 -msgid "bad literal size\n" -msgstr "tamaño de literal equivocado\n" - -#: config/tc-i370.c:1744 -msgid ".using: base address expression illegal or too complex" -msgstr ".using: la expresión direccional base es ilegal o demasiado compleja" +#: config/tc-hppa.c:8269 config/tc-sparc.c:999 +msgid "Broken assembler. No assembly attempted." +msgstr "Ensamblador descompuesto. No se intentó ensamblar." -#: config/tc-i370.c:1779 config/tc-i370.c:1788 +#: config/tc-i386.c:1558 #, c-format -msgid "dropping register %d in section %s does not match using register %d" -msgstr "soltando registro %d dentro de sección %s no coincide utilizando registro %d" +msgid "i386_output_nops called to generate nops of at most %d bytes!" +msgstr "" -#: config/tc-i370.c:1792 +#: config/tc-i386.c:1738 #, c-format -msgid "dropping register %d in section %s previously used in section %s" -msgstr "soltando el registro %d dentro de la sección %s previamente utilizada dentro de la sección %s" - -#: config/tc-i370.c:1848 config/tc-ppc.c:3630 -msgid "wrong number of operands" -msgstr "número equivocado de operandos" +msgid "invalid single nop size: %d (expect within [0, %d])" +msgstr "" -#: config/tc-i370.c:1930 config/tc-mn10200.c:896 config/tc-mn10300.c:1253 -#: config/tc-s390.c:1684 config/tc-v850.c:2328 -#, c-format -msgid "Unrecognized opcode: `%s'" -msgstr "No reconocido el código operacional: «%s»" +#: config/tc-i386.c:1787 +#, fuzzy +#| msgid "jump target out of range" +msgid "jump over nop padding out of range" +msgstr "omite objetivo fuera de rango" -#: config/tc-i370.c:2073 -msgid "not using any base register" -msgstr "no se usa ningún registro base" +#: config/tc-i386.c:2103 +#, fuzzy +#| msgid "same type of prefix used twice" +msgid "same oszc flag used twice" +msgstr "se utilizó dos veces el mismo tipo de prefijo" -#: config/tc-i370.c:2103 -#, c-format -msgid "expecting a register for operand %d" -msgstr "se espera un registro para operando %d" +#: config/tc-i386.c:2135 config/tc-i386.c:2146 +#, fuzzy +#| msgid "unrecognized symbol suffix" +msgid "unrecognized pseudo-suffix" +msgstr "símbolo sufijo no reconocido" -#. xgettext:c-format. -#: config/tc-i370.c:2209 config/tc-mn10200.c:1139 config/tc-mn10300.c:1821 -#: config/tc-ppc.c:3486 config/tc-s390.c:1597 config/tc-v850.c:3043 -#, c-format -msgid "junk at end of line: `%s'" -msgstr "basura al final de la línea: «%s»" +#: config/tc-i386.c:2182 +msgid "unrecognized oszc flags or illegal `,' in pseudo-suffix" +msgstr "" -#. Not used --- don't have any 8 byte instructions. -#: config/tc-i370.c:2224 -msgid "Internal Error: bad instruction length" -msgstr "Error interno: longitud equivocada de instrucción" +#: config/tc-i386.c:2199 +msgid "missing `}' or `,' in pseudo-suffix" +msgstr "" -#: config/tc-i386.c:2201 -#, c-format -msgid "%s shortened to %s" -msgstr "%s reducido a %s" +#: config/tc-i386.c:2867 +#, fuzzy, c-format +#| msgid "value 0x%I64x truncated to 0x%I64x" +msgid "0x%<PRIx64> shortened to 0x%<PRIx64>" +msgstr "valora 0x%I64x truncado a 0x%I64x" -#: config/tc-i386.c:2291 +#: config/tc-i386.c:2964 config/tc-i386.c:4580 config/tc-i386.c:4591 +#: config/tc-i386.c:10628 msgid "same type of prefix used twice" msgstr "se utilizó dos veces el mismo tipo de prefijo" -#: config/tc-i386.c:2318 +#: config/tc-i386.c:2976 config/tc-i386.c:3304 #, c-format msgid "64bit mode not supported on `%s'." msgstr "no se admite el modo de 64bit en «%s»." -#: config/tc-i386.c:2327 +#: config/tc-i386.c:2983 config/tc-i386.c:3311 #, c-format msgid "32bit mode not supported on `%s'." msgstr "no se admite el modo de 32bit en «%s»." -#: config/tc-i386.c:2367 +#: config/tc-i386.c:3035 msgid "bad argument to syntax directive." -msgstr "argumento equivocado para la directiva syntax." +msgstr "argumento incorrecto para la directiva syntax." -#: config/tc-i386.c:2430 +#: config/tc-i386.c:3092 #, c-format msgid "bad argument to %s_check directive." -msgstr "argumento equivocado para `%s_check' de directiva." +msgstr "argumento incorrecto para `%s_check' de directiva." -#: config/tc-i386.c:2434 +#: config/tc-i386.c:3096 #, c-format msgid "missing argument for %s_check directive" msgstr "argumento ausente para %s_check de directiva" -#: config/tc-i386.c:2474 +#: config/tc-i386.c:3123 #, c-format msgid "`%s' is not supported on `%s'" msgstr "«%s» no se admite en «%s»" -#: config/tc-i386.c:2576 +#: config/tc-i386.c:3191 +msgid "missing cpu architecture" +msgstr "ausente la arquitectura de cpu" + +#: config/tc-i386.c:3230 +msgid ".arch stack is empty" +msgstr "" + +#: config/tc-i386.c:3246 +#, c-format +msgid "this `.arch pop' requires `.code%u%s' to be in effect" +msgstr "" + +#: config/tc-i386.c:3357 +#, fuzzy +#| msgid "Unrecognized dependency specifier %d\n" +msgid "Unrecognized vector size specifier" +msgstr "No reconocido el especificador de dependencia %d\n" + +#: config/tc-i386.c:3394 #, c-format msgid "no such architecture: `%s'" msgstr "no hay tal arquitectura: «%s»" -#: config/tc-i386.c:2581 -msgid "missing cpu architecture" -msgstr "ausente la arquitectura de cpu" - -#: config/tc-i386.c:2598 +#: config/tc-i386.c:3410 #, c-format msgid "no such architecture modifier: `%s'" msgstr "no hay tal modificador de arquitectura: «%s»" -#: config/tc-i386.c:2613 config/tc-i386.c:2643 -msgid "Intel L1OM is 64bit ELF only" -msgstr "Intel L1OM es solamente 64bit ELF" - -#: config/tc-i386.c:2620 config/tc-i386.c:2650 -msgid "Intel K1OM is 64bit ELF only" -msgstr "Intel K1OM es solamente 64bit ELF" - -#: config/tc-i386.c:2627 config/tc-i386.c:2664 +#: config/tc-i386.c:3426 config/tc-i386.c:3449 msgid "Intel MCU is 32bit ELF only" msgstr "Intel MCU es solo 32bit ELF" -#: config/tc-i386.c:2671 config/tc-i386.c:10616 +#: config/tc-i386.c:3456 config/tc-i386.c:17765 msgid "unknown architecture" msgstr "desconoce arquitectura" -#: config/tc-i386.c:2708 config/tc-i386.c:2730 -#, c-format -msgid "can't hash %s: %s" -msgstr "no puede dispersar %s: %s" - -#: config/tc-i386.c:3023 +#: config/tc-i386.c:3831 msgid "there are no pc-relative size relocations" msgstr "no hay reubicaciones de tamaño pc-relativo" -#: config/tc-i386.c:3035 +#: config/tc-i386.c:3843 #, c-format msgid "unknown relocation (%u)" msgstr "reubicación desconocida (%u)" -#: config/tc-i386.c:3037 +#: config/tc-i386.c:3845 #, c-format msgid "%u-byte relocation cannot be applied to %u-byte field" msgstr "la reubicación de %u-bytes no se puede aplicar al campo %u-bytes" -#: config/tc-i386.c:3041 +#: config/tc-i386.c:3849 msgid "non-pc-relative relocation for pc-relative field" msgstr "reubicación no relativa a pc para el campo relativo a pc" -#: config/tc-i386.c:3046 +#: config/tc-i386.c:3854 msgid "relocated field and relocation type differ in signedness" msgstr "el campo reubicado y el tipo reubicado difieren en signo" -#: config/tc-i386.c:3055 +#: config/tc-i386.c:3863 msgid "there are no unsigned pc-relative relocations" msgstr "no hay reubicaciones relativas a pc sin signo" -#: config/tc-i386.c:3063 +#: config/tc-i386.c:3871 #, c-format msgid "cannot do %u byte pc-relative relocation" msgstr "no se puede hacer la reubicación relativa a pc de %u bytes" -#: config/tc-i386.c:3080 +#: config/tc-i386.c:3888 #, c-format msgid "cannot do %s %u byte relocation" msgstr "no se puede hacer la reubicación %s de %u bytes" -#: config/tc-i386.c:3549 config/tc-i386.c:3576 +#: config/tc-i386.c:4352 #, c-format -msgid "can't use register '%s%s' as operand %d in '%s'." -msgstr "no se puede utilizar el registro '%s%s' como operando %d en «%s»." +msgid "ambiguous broadcast for `%s', using %u-bit form" +msgstr "" -#: config/tc-i386.c:3616 config/tc-i386.c:3756 +#: config/tc-i386.c:4581 +msgid "conflicting use of `data16' prefix" +msgstr "" + +#: config/tc-i386.c:4668 +#, fuzzy, c-format +#| msgid "can't encode register '%s%s' in an instruction requiring REX prefix." +msgid "can't encode register '%s%s' in an instruction requiring %s prefix" +msgstr "no se puede codificar el registro '%s%s' en una instrucción que requiere el prefijo REX." + +#: config/tc-i386.c:4710 +#, fuzzy, c-format +#| msgid "`%s%s' not allowed with `%s%c'" +msgid "size override not allowed with `%s'" +msgstr "no se permite `%s%s' con `%s%c'" + +#: config/tc-i386.c:4717 +#, fuzzy, c-format +#| msgid "`%s%s' not allowed with `%s%c'" +msgid "address override not allowed with `%s'" +msgstr "no se permite `%s%s' con `%s%c'" + +#: config/tc-i386.c:4771 config/tc-i386.c:7240 #, c-format msgid "invalid instruction `%s' after `%s'" msgstr "instrucción «%s» no válida tras «%s»" -#: config/tc-i386.c:3622 +#: config/tc-i386.c:4777 #, c-format msgid "missing `lock' with `%s'" msgstr "ausente `lock' con «%s»" -#: config/tc-i386.c:3629 +#: config/tc-i386.c:4784 #, c-format msgid "instruction `%s' after `xacquire' not allowed" msgstr "instrucción «%s» tras «xacquire» no permitido" -#: config/tc-i386.c:3636 +#: config/tc-i386.c:4790 #, c-format msgid "memory destination needed for instruction `%s' after `xrelease'" msgstr "destino de memoria requerido para instrucción `%s' tras `xrelease'" -#: config/tc-i386.c:3730 -#, c-format -msgid "SSE instruction `%s' is used" -msgstr "SSE como instrucción «%s» está utilizada" +#: config/tc-i386.c:6224 +#, fuzzy +#| msgid "extra .LABEL arguments ignored." +msgid "`.noopt' arguments ignored" +msgstr "se descartan los argumentos extra de .LABEL." -#: config/tc-i386.c:3744 config/tc-i386.c:5581 +#: config/tc-i386.c:6410 #, c-format -msgid "ambiguous operand size for `%s'" -msgstr "tamaño de operando ambiguo para «%s»" - -#: config/tc-i386.c:3769 -msgid "expecting lockable instruction after `lock'" -msgstr "se espera una instrucción bloqueable tras `lock'" - -#: config/tc-i386.c:3779 -msgid "expecting valid branch instruction after `bnd'" -msgstr "esperando rama instruccional válida tras «bnd»" - -#: config/tc-i386.c:3783 -msgid "expecting indirect branch instruction after `notrack'" -msgstr "esperando rama instruccional indirecta tras «notrack»" - -#: config/tc-i386.c:3788 -msgid "32-bit address isn't allowed in 64-bit MPX instructions." -msgstr "dirección 32-bit no está permitido en instrucciones MPX de 64-bit." - -#: config/tc-i386.c:3792 -msgid "16-bit address isn't allowed in MPX instructions" -msgstr "dirección de 16-bit no está permitida dentro de instrucciones MPX" +msgid "`%s` changes flags which would affect control flow behavior" +msgstr "" -#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. -#: config/tc-i386.c:3847 +#: config/tc-i386.c:6452 #, c-format -msgid "translating to `%sp'" -msgstr "se traslada a `%sp'" +msgid "indirect `%s` with memory operand should be avoided" +msgstr "" -#: config/tc-i386.c:3854 +#: config/tc-i386.c:6462 #, c-format -msgid "instruction `%s' isn't supported in 16-bit mode." -msgstr "instrucción «%s» no admitido en modo 16-bit." +msgid "`%s` skips -mlfence-before-indirect-branch on `%s`" +msgstr "" -#: config/tc-i386.c:3914 +#: config/tc-i386.c:6481 #, c-format -msgid "can't encode register '%s%s' in an instruction requiring REX prefix." -msgstr "no se puede codificar el registro '%s%s' en una instrucción que requiere el prefijo REX." +msgid "`%s` skips -mlfence-before-ret on `%s`" +msgstr "" -#: config/tc-i386.c:3954 config/tc-i386.c:4140 +#: config/tc-i386.c:6831 +#, fuzzy, c-format +#| msgid "`%s' cannot be used with `%s'" +msgid "@%s operator cannot be used with `%s'" +msgstr "«%s» no puede ser utilizado con «%s»" + +#: config/tc-i386.c:6836 #, c-format -msgid "no such instruction: `%s'" -msgstr "no hay tal instrucción: «%s»" +msgid "@%s operator can be used with `%s', but format is wrong" +msgstr "" -#: config/tc-i386.c:3965 config/tc-i386.c:4173 +#: config/tc-i386.c:6841 #, c-format -msgid "invalid character %s in mnemonic" -msgstr "carácter inválido %s en el mnemónico" +msgid "@%s operator requires no SIB" +msgstr "" -#: config/tc-i386.c:3972 -msgid "expecting prefix; got nothing" -msgstr "se esperaba un prefijo; se obtuvo nada" +#: config/tc-i386.c:6845 +#, fuzzy, c-format +#| msgid "instruction requires register index" +msgid "@%s operator requires base register" +msgstr "la instrucción requiere un índice de registro" -#: config/tc-i386.c:3974 -msgid "expecting mnemonic; got nothing" -msgstr "se esperaba un mnemónico; se obtuvo nada" +#: config/tc-i386.c:6849 +#, fuzzy, c-format +#| msgid "First operand to .%s not a valid register" +msgid "@%s operator requires no base/index register" +msgstr "El primer operando de .%s no es un registro válido" -#: config/tc-i386.c:3989 config/tc-i386.c:4191 -#, c-format -msgid "`%s' is only supported in 64-bit mode" -msgstr "«%s» sólo se admite en modo de 64-bit" +#: config/tc-i386.c:6854 +#, fuzzy, c-format +#| msgid "First operand to .%s not a register" +msgid "@%s operator requires no base register" +msgstr "El primer operando de .%s no es un registro" -#: config/tc-i386.c:3990 config/tc-i386.c:4190 -#, c-format -msgid "`%s' is not supported in 64-bit mode" -msgstr "«%s» no se admite en modo de 64-bit" +#: config/tc-i386.c:6858 +#, fuzzy, c-format +#| msgid "First operand to .vframe must be a general register" +msgid "@%s operator requires `%sebx' as index register" +msgstr "El primer operando de .vfram debe ser un registro general" -#: config/tc-i386.c:4002 +#: config/tc-i386.c:6863 #, c-format -msgid "redundant %s prefix" -msgstr "prefijo %s redundante" +msgid "@%s operator requires `%seax' as base register" +msgstr "" -#: config/tc-i386.c:4197 +#: config/tc-i386.c:6868 #, c-format -msgid "`%s' is not supported on `%s%s'" -msgstr "«%s» no se admite en `%s%s'" - -#: config/tc-i386.c:4208 -msgid "use .code16 to ensure correct addressing mode" -msgstr "use .code16 para asegurar el modo de direccionamiento correcto" +msgid "@%s operator requires `%seax/%srax' as base register" +msgstr "" -#: config/tc-i386.c:4232 +#: config/tc-i386.c:6873 #, c-format -msgid "invalid character %s before operand %d" -msgstr "caracter inválido %s antes de operando %d" +msgid "@%s operator requires `%sebx' as base register" +msgstr "" -#: config/tc-i386.c:4246 -#, c-format -msgid "unbalanced parenthesis in operand %d." -msgstr "paréntesis sin balancear en operando %d." +#: config/tc-i386.c:6878 +#, fuzzy, c-format +#| msgid "syntax error; missing ')' after base register" +msgid "@%s operator requires `%srip' as base register" +msgstr "error de sintaxis; ausente ')' tras registro base" -#: config/tc-i386.c:4249 -#, c-format -msgid "unbalanced brackets in operand %d." -msgstr "llaves sin balancear en operando %d." +#: config/tc-i386.c:6883 +#, fuzzy, c-format +#| msgid "setx: temporary register same as destination register" +msgid "@%s operator requires `%seax' as dest register" +msgstr "setx: el registro temporal es el mismo que el registro destino" -#: config/tc-i386.c:4258 -#, c-format -msgid "invalid character %s in operand %d" -msgstr "carácter inválido %s en operando %d" +#: config/tc-i386.c:6888 +#, fuzzy, c-format +#| msgid "setx: temporary register same as destination register" +msgid "@%s operator requires `%srdi' as dest register" +msgstr "setx: el registro temporal es el mismo que el registro destino" -#: config/tc-i386.c:4285 +#: config/tc-i386.c:6893 #, c-format -msgid "spurious operands; (%d operands/instruction max)" -msgstr "operandos espurios; (%d operandos/instrucción máximo)" +msgid "@%s operator requires scale factor of 1" +msgstr "" -#: config/tc-i386.c:4309 -msgid "expecting operand after ','; got nothing" -msgstr "se esperaba un operando tras ','; se obtuvo nada" +#: config/tc-i386.c:6898 +#, fuzzy, c-format +#| msgid "First operand to .%s not a register" +msgid "@%s operator requires 32-bit base register" +msgstr "El primer operando de .%s no es un registro" -#: config/tc-i386.c:4314 -msgid "expecting operand before ','; got nothing" -msgstr "se esperaba un operando antes de ','; se obtuvo nada" +#: config/tc-i386.c:6903 +#, c-format +msgid "@%s operator requires 32-bit dest register" +msgstr "" -#: config/tc-i386.c:4693 -msgid "mask, index, and destination registers should be distinct" -msgstr "registros de máscaras, indizado, destino deberían ser distintos" +#: config/tc-i386.c:6908 +#, fuzzy, c-format +#| msgid "%s isa does not support 64-bit registers" +msgid "@%s operator requires 64-bit dest register" +msgstr "isa %s no admite registros de 64-bit" -#: config/tc-i386.c:4710 -msgid "index and destination registers should be distinct" -msgstr "registros indizados y destino deberían ser distintos" +#: config/tc-i386.c:6913 +#, fuzzy, c-format +#| msgid "%s isa does not support 64-bit registers" +msgid "@%s operator requires 32-bit or 64-bit dest register" +msgstr "isa %s no admite registros de 64-bit" -#: config/tc-i386.c:5239 +#: config/tc-i386.c:7081 msgid "operand size mismatch" msgstr "no coincide tamaño de operando" -#: config/tc-i386.c:5242 +#: config/tc-i386.c:7084 msgid "operand type mismatch" msgstr "no coincide el tipo de operando" -#: config/tc-i386.c:5245 +#: config/tc-i386.c:7087 msgid "register type mismatch" msgstr "no coincide el tipo de registro" -#: config/tc-i386.c:5248 +#: config/tc-i386.c:7090 msgid "number of operands mismatch" msgstr "no coincide el número de operandos" -#: config/tc-i386.c:5251 +#: config/tc-i386.c:7093 msgid "invalid instruction suffix" msgstr "invalida sufijo de instrucción" -#: config/tc-i386.c:5254 +#: config/tc-i386.c:7096 msgid "constant doesn't fit in 4 bits" msgstr "constante no cabe en 4 bits" -#: config/tc-i386.c:5257 -msgid "only supported with old gcc" -msgstr "admitido solo con gcc antiguo" - -#: config/tc-i386.c:5260 +#: config/tc-i386.c:7099 msgid "unsupported with Intel mnemonic" msgstr "no se admite con mnemónico Intel" -#: config/tc-i386.c:5263 +#: config/tc-i386.c:7102 msgid "unsupported syntax" msgstr "no se admite la sintaxis" -#: config/tc-i386.c:5266 +#: config/tc-i386.c:7105 +#, fuzzy +#| msgid "register r0 cannot be used here" +msgid "extended GPR cannot be used as base/index" +msgstr "el registro r0 no se puede usar aquí" + +#: config/tc-i386.c:7108 +#, fuzzy +#| msgid "unsupported" +msgid "{nf} unsupported" +msgstr "no se admite" + +#: config/tc-i386.c:7111 #, c-format msgid "unsupported instruction `%s'" msgstr "no admitió instrucción «%s»" -#: config/tc-i386.c:5270 +#: config/tc-i386.c:7115 config/tc-i386.c:7633 +#, c-format +msgid "`%s' is not supported on `%s%s'" +msgstr "«%s» no se admite en `%s%s'" + +#: config/tc-i386.c:7124 +#, fuzzy, c-format +#| msgid "`%s' is not supported in 64-bit mode" +msgid "`%s%c' is not supported in 64-bit mode" +msgstr "«%s» no se admite en modo de 64-bit" + +#: config/tc-i386.c:7128 +#, fuzzy, c-format +#| msgid "`%s' is only supported in 64-bit mode" +msgid "`%s%c' is only supported in 64-bit mode" +msgstr "«%s» solo se admite en modo de 64-bit" + +#: config/tc-i386.c:7135 config/tc-i386.c:7627 +#, c-format +msgid "`%s' is not supported in 64-bit mode" +msgstr "«%s» no se admite en modo de 64-bit" + +#: config/tc-i386.c:7138 config/tc-i386.c:7626 +#, c-format +msgid "`%s' is only supported in 64-bit mode" +msgstr "«%s» solo se admite en modo de 64-bit" + +#: config/tc-i386.c:7143 +msgid "no VEX/XOP encoding" +msgstr "" + +#: config/tc-i386.c:7146 +msgid "no EVEX encoding" +msgstr "" + +#: config/tc-i386.c:7149 +#, fuzzy +#| msgid "invalid VSIB address" +msgid "invalid SIB address" +msgstr "dirección VSIB no válida" + +#: config/tc-i386.c:7152 msgid "invalid VSIB address" msgstr "dirección VSIB no válida" -#: config/tc-i386.c:5273 +#: config/tc-i386.c:7155 msgid "mask, index, and destination registers must be distinct" msgstr "máscara, índice, y registro de destino debe ser distinto" -#: config/tc-i386.c:5276 +#: config/tc-i386.c:7158 +#, fuzzy +#| msgid "last register must be r7" +msgid "all tmm registers must be distinct" +msgstr "el último registro debe ser r7" + +#: config/tc-i386.c:7161 +#, fuzzy +#| msgid "mask, index, and destination registers must be distinct" +msgid "destination and source registers must be distinct" +msgstr "máscara, índice, y registro de destino debe ser distinto" + +#: config/tc-i386.c:7164 +#, fuzzy +#| msgid "mask, index, and destination registers must be distinct" +msgid "two dest registers must be distinct" +msgstr "máscara, índice, y registro de destino debe ser distinto" + +#: config/tc-i386.c:7167 +#, fuzzy +#| msgid "register r0 cannot be used here" +msgid "rex2 pseudo prefix cannot be used" +msgstr "el registro r0 no se puede usar aquí" + +#: config/tc-i386.c:7170 msgid "unsupported vector index register" msgstr "no se admite el registro de índice de vector" -#: config/tc-i386.c:5279 +#: config/tc-i386.c:7173 msgid "unsupported broadcast" msgstr "emisión no admitida" -#: config/tc-i386.c:5282 -msgid "broadcast not on source memory operand" -msgstr "emisión no en operando de memoria origen" - -#: config/tc-i386.c:5285 +#: config/tc-i386.c:7176 msgid "broadcast is needed for operand of such type" msgstr "emisión es necesaria para operando de tal tipo" -#: config/tc-i386.c:5288 +#: config/tc-i386.c:7179 msgid "unsupported masking" msgstr "máscara no soportada" -#: config/tc-i386.c:5291 +#: config/tc-i386.c:7182 msgid "mask not on destination operand" msgstr "máscara no sobre operando destino" -#: config/tc-i386.c:5294 +#: config/tc-i386.c:7185 msgid "default mask isn't allowed" msgstr "" -#: config/tc-i386.c:5297 +#: config/tc-i386.c:7188 msgid "unsupported static rounding/sae" msgstr "no admitida reubicación/sae estática" -#: config/tc-i386.c:5301 -msgid "RC/SAE operand must precede immediate operands" -msgstr "Operando RC/SAE debe preceder inmediatamente operandos" +#: config/tc-i386.c:7191 +#, c-format +msgid "vector size above %u required for `%s'" +msgstr "" -#: config/tc-i386.c:5303 -msgid "RC/SAE operand must follow immediate operands" -msgstr "Operando RC/SAE debe seguir inmediatamente operandos" +#: config/tc-i386.c:7195 +#, fuzzy +#| msgid "odd register cannot be used here" +msgid "'rsp' register cannot be used" +msgstr "no se puede usar aquí un registro impar" -#: config/tc-i386.c:5306 config/tc-metag.c:4789 config/tc-metag.c:5530 -#: config/tc-metag.c:5552 -msgid "invalid register operand" -msgstr "invalida registro operando" +#: config/tc-i386.c:7198 +#, fuzzy +#| msgid "MIPS internal Error" +msgid "internal error" +msgstr "Error interno de MIPS" -#: config/tc-i386.c:5309 +#: config/tc-i386.c:7201 #, c-format msgid "%s for `%s'" msgstr "%s para «%s»" -#: config/tc-i386.c:5320 +#: config/tc-i386.c:7230 +#, c-format +msgid "SSE instruction `%s' is used" +msgstr "SSE como instrucción «%s» está utilizada" + +#: config/tc-i386.c:7254 +msgid "expecting lockable instruction after `lock'" +msgstr "se espera una instrucción bloqueable tras `lock'" + +#: config/tc-i386.c:7287 +#, fuzzy, c-format +#| msgid "width suffixes are invalid in ARM mode -- `%s'" +msgid "data size prefix invalid with `%s'" +msgstr "los sufijos de anchura son inválidos en modo ARM -- «%s»" + +#: config/tc-i386.c:7298 +msgid "expecting valid branch instruction after `bnd'" +msgstr "esperando rama instruccional válida tras «bnd»" + +#: config/tc-i386.c:7302 +msgid "expecting indirect branch instruction after `notrack'" +msgstr "esperando rama instruccional indirecta tras «notrack»" + +#: config/tc-i386.c:7307 +msgid "32-bit address isn't allowed in 64-bit MPX instructions." +msgstr "dirección 32-bit no está permitido en instrucciones MPX de 64-bit." + +#: config/tc-i386.c:7311 +msgid "16-bit address isn't allowed in MPX instructions" +msgstr "dirección de 16-bit no está permitida dentro de instrucciones MPX" + +#: config/tc-i386.c:7321 +msgid "replacing `rep'/`repe' prefix by `bnd'" +msgstr "" + +#: config/tc-i386.c:7341 +#, c-format +msgid "input/output port address isn't allowed with `%s'" +msgstr "" + +#: config/tc-i386.c:7374 +#, fuzzy, c-format +#| msgid "invalid pc-relative address" +msgid "'%s' only supports RIP-relative address" +msgstr "dirección relativa a pc no válida" + +#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. +#: config/tc-i386.c:7423 +#, c-format +msgid "translating to `%sp'" +msgstr "se traslada a `%sp'" + +#: config/tc-i386.c:7430 +#, fuzzy, c-format +#| msgid "instruction `%s' isn't supported in 16-bit mode." +msgid "instruction `%s' isn't supported outside of protected mode." +msgstr "instrucción «%s» no admitido en modo 16-bit." + +#: config/tc-i386.c:7443 +#, fuzzy, c-format +#| msgid "invalid switch -m%s" +msgid "REX prefix invalid with `%s'" +msgstr "interruptor -m%s inválido" + +#: config/tc-i386.c:7450 +#, fuzzy, c-format +#| msgid "invalid switch -m%s" +msgid "{rex2} prefix invalid with `%s'" +msgstr "interruptor -m%s inválido" + +#: config/tc-i386.c:7576 config/tc-i386.c:7890 +#, c-format +msgid "no such instruction: `%s'" +msgstr "no hay tal instrucción: «%s»" + +#: config/tc-i386.c:7602 config/tc-i386.c:7941 +#, c-format +msgid "invalid character %s in mnemonic" +msgstr "carácter inválido %s en el mnemónico" + +#: config/tc-i386.c:7609 +msgid "expecting prefix; got nothing" +msgstr "se esperaba un prefijo; se obtuvo nada" + +#: config/tc-i386.c:7611 +msgid "expecting mnemonic; got nothing" +msgstr "se esperaba un mnemónico; se obtuvo nada" + +#: config/tc-i386.c:7647 +#, c-format +msgid "redundant %s prefix" +msgstr "prefijo %s redundante" + +#: config/tc-i386.c:7712 +#, fuzzy +#| msgid "insn cannot be combined with pmuls" +msgid "{nf} cannot be combined with {vex}/{vex3}" +msgstr "la insn no se pueden combinar con pmuls" + +#: config/tc-i386.c:7762 +#, c-format +msgid "ignoring `.s' suffix due to earlier `{%s}'" +msgstr "" + +#: config/tc-i386.c:7772 +msgid "ignoring `.d8' suffix due to earlier `{disp<N>}'" +msgstr "" + +#: config/tc-i386.c:7782 +msgid "ignoring `.d32' suffix due to earlier `{disp<N>}'" +msgstr "" + +#: config/tc-i386.c:7873 +#, c-format +msgid "found `%sd'; assuming `%sl' was meant" +msgstr "" + +#: config/tc-i386.c:7990 +#, c-format +msgid "invalid character %s before operand %d" +msgstr "caracter inválido %s antes de operando %d" + +#: config/tc-i386.c:8002 +#, fuzzy, c-format +#| msgid "unbalanced brackets in operand %d." +msgid "unbalanced double quotes in operand %d." +msgstr "llaves sin balancear en operando %d." + +#: config/tc-i386.c:8009 +#, c-format +msgid "unbalanced parenthesis in operand %d." +msgstr "paréntesis sin balancear en operando %d." + +#: config/tc-i386.c:8022 +#, c-format +msgid "invalid character %s in operand %d" +msgstr "carácter inválido %s en operando %d" + +#: config/tc-i386.c:8042 +#, c-format +msgid "spurious operands; (%d operands/instruction max)" +msgstr "operandos espurios; (%d operandos/instrucción máximo)" + +#: config/tc-i386.c:8052 config/tc-i386.c:13607 +#, c-format +msgid "too many memory references for `%s'" +msgstr "demasiadas referencias a memoria para «%s»" + +#: config/tc-i386.c:8073 config/tc-i386.c:13601 +msgid "expecting operand after ','; got nothing" +msgstr "se esperaba un operando tras ','; se obtuvo nada" + +#: config/tc-i386.c:8078 +msgid "expecting operand before ','; got nothing" +msgstr "se esperaba un operando antes de ','; se obtuvo nada" + +#: config/tc-i386.c:8368 +#, fuzzy, c-format +#| msgid "0x%lx out range of signed 32bit displacement" +msgid "0x%<PRIx64> out of range of signed 32bit displacement" +msgstr "0x%lx fuera de rango del desplazamiento de 32 bit con signo" + +#: config/tc-i386.c:8572 +msgid "mask, index, and destination registers should be distinct" +msgstr "registros de máscaras, indexado, destino deberían ser distintos" + +#: config/tc-i386.c:8589 +msgid "index and destination registers should be distinct" +msgstr "registros indexados y destino deberían ser distintos" + +#: config/tc-i386.c:9718 #, c-format msgid "indirect %s without `*'" msgstr "%s indirecto sin `*'" #. Warn them that a data or address size prefix doesn't #. affect assembly of the next line of code. -#: config/tc-i386.c:5328 +#: config/tc-i386.c:9725 #, c-format msgid "stand-alone `%s' prefix" msgstr "prefijo «%s» por sí solo" -#: config/tc-i386.c:5362 config/tc-i386.c:5378 -#, c-format -msgid "`%s' operand %d must use `%ses' segment" +#: config/tc-i386.c:9732 +#, fuzzy, c-format +#| msgid "`%s' cannot be used with `%s'" +msgid "mnemonic suffix used with `%s'" +msgstr "«%s» no puede ser utilizado con «%s»" + +#: config/tc-i386.c:9737 +msgid "NOTE: Such forms are deprecated and will be rejected by a future version of the assembler" +msgstr "" + +#: config/tc-i386.c:9822 +#, fuzzy, c-format +#| msgid "`%s' operand %d must use `%ses' segment" +msgid "`%s' operand %u must use `%ses' segment" msgstr "«%s» operando %d debe utilizar `%ses' como segmento" -#. We have to know the operand size for crc32. -#: config/tc-i386.c:5432 +#: config/tc-i386.c:9952 +msgid "generating 16-bit `iret' for .code16gcc directive" +msgstr "" + +#: config/tc-i386.c:9956 +#, c-format +msgid "generating 32-bit `%s', unlike earlier gas versions" +msgstr "" + +#: config/tc-i386.c:10120 #, c-format -msgid "ambiguous memory operand size for `%s`" -msgstr "tamaño de operando de memoria ambigua para `%s`" +msgid "ambiguous operand size for `%s'" +msgstr "tamaño de operando ambiguo para «%s»" + +#: config/tc-i386.c:10125 +#, fuzzy, c-format +#| msgid "no instruction mnemonic suffix given and no register operands; can't size instruction" +msgid "no instruction mnemonic suffix given and no register operands; can't size `%s'" +msgstr "no se dio un sufijo mnemónico de instrucción y ningún operando de registro; no se puede determinar el tamaño de la instrucción" + +#: config/tc-i386.c:10130 +#, fuzzy, c-format +#| msgid "unrecognized default cpu `%s'" +msgid "%s; using default for `%s'" +msgstr "no reconocido el cpu por defecto «%s»" -#: config/tc-i386.c:5554 -msgid "no instruction mnemonic suffix given and no register operands; can't size instruction" +#: config/tc-i386.c:10132 +#, fuzzy +#| msgid "ambiguous operand size for `%s'" +msgid "ambiguous operand size" +msgstr "tamaño de operando ambiguo para «%s»" + +#: config/tc-i386.c:10133 +#, fuzzy +#| msgid "no instruction mnemonic suffix given and no register operands; can't size instruction" +msgid "no instruction mnemonic suffix given and no register operands" msgstr "no se dio un sufijo mnemónico de instrucción y ningún operando de registro; no se puede determinar el tamaño de la instrucción" -#: config/tc-i386.c:5700 config/tc-i386.c:5773 config/tc-i386.c:5895 +#: config/tc-i386.c:10282 #, c-format -msgid "using `%s%s' instead of `%s%s' due to `%c' suffix" -msgstr "empleando `%s%s' en lugar de `%s%s' debido `%c' como sufijo" +msgid "16-bit addressing unavailable for `%s'" +msgstr "" + +#: config/tc-i386.c:10350 +#, fuzzy, c-format +#| msgid "invalid register operand: %s" +msgid "invalid register operand size for `%s'" +msgstr "operando registrado inválido: %s" -#: config/tc-i386.c:5721 config/tc-i386.c:5749 config/tc-i386.c:5820 -#: config/tc-i386.c:5870 +#. Any other register is bad. +#: config/tc-i386.c:10389 config/tc-i386.c:10413 config/tc-i386.c:10453 +#: config/tc-i386.c:10490 #, c-format msgid "`%s%s' not allowed with `%s%c'" msgstr "no se permite `%s%s' con `%s%c'" -#: config/tc-i386.c:5767 config/tc-i386.c:5794 config/tc-i386.c:5845 -#: config/tc-i386.c:5889 +#: config/tc-i386.c:10426 config/tc-i386.c:10465 config/tc-i386.c:10502 #, c-format msgid "incorrect register `%s%s' used with `%c' suffix" msgstr "registro incorrecto `%s%s' utilizado con `%c' como sufijo" -#: config/tc-i386.c:5958 +#: config/tc-i386.c:10592 msgid "no instruction mnemonic suffix given; can't determine immediate size" msgstr "no se dio un sufijo mnemónico de instrucción; no se puede determinar el tamaño inmediato" -#: config/tc-i386.c:6102 +#: config/tc-i386.c:10799 #, c-format -msgid "the second source register `%s%s' implicitly denotes `%s%.3s%d' to `%s%.3s%d' source group in `%s'" +msgid "operand %u `%s%s' implicitly denotes `%s%s' to `%s%s' group in `%s'" msgstr "" -#: config/tc-i386.c:6139 -#, c-format -msgid "you can't `pop %scs'" -msgstr "no se puede hacer `pop %scs'" - -#. Reversed arguments on faddp, fsubp, etc. -#: config/tc-i386.c:6168 +#. Reversed arguments on faddp or fmulp. +#: config/tc-i386.c:10846 #, c-format msgid "translating to `%s %s%s,%s%s'" msgstr "se traslada a `%s %s%s,%s%s'" #. Extraneous `l' suffix on fp insn. -#: config/tc-i386.c:6175 +#: config/tc-i386.c:10853 #, c-format msgid "translating to `%s %s%s'" msgstr "se traslada a `%s %s%s'" -#: config/tc-i386.c:6203 +#: config/tc-i386.c:10866 +#, fuzzy, c-format +#| msgid "you can't `pop %scs'" +msgid "you can't `%s %s%s'" +msgstr "no se puede hacer `pop %scs'" + +#: config/tc-i386.c:10923 #, c-format msgid "segment override on `%s' is ineffectual" msgstr "segmento invalidado en «%s» no tiene efecto" -#: config/tc-i386.c:6975 config/tc-i386.c:7076 config/tc-i386.c:7131 -msgid "skipping prefixes on this instruction" +#: config/tc-i386.c:11381 config/tc-loongarch.c:1245 config/tc-riscv.c:1979 +#, fuzzy +#| msgid "only constant offsets supported in absolute section" +msgid "relaxable branches not supported in absolute section" +msgstr "solo se admiten los desplazamientos constantes en la sección absoluta" + +#: config/tc-i386.c:11416 config/tc-i386.c:11559 config/tc-i386.c:11641 +#, fuzzy, c-format +#| msgid "skipping prefixes on this instruction" +msgid "skipping prefixes on `%s'" msgstr "omitiendo prefijos sobre esta instrucción" -#: config/tc-i386.c:7151 +#: config/tc-i386.c:11667 msgid "16-bit jump out of range" -msgstr "16-bit omitido fuera de límite" - -#: config/tc-i386.c:7160 -#, c-format -msgid "can't handle non absolute segment in `%s'" -msgstr "no se puede manipular un segmento no absoluto en «%s»" +msgstr "16-bit omitido fuera de rango" -#: config/tc-i386.c:7255 +#: config/tc-i386.c:11694 config/tc-i386.c:12436 msgid "pseudo prefix without instruction" msgstr "pseudo prefijo sin instrucción" -#: config/tc-i386.c:7847 config/tc-i386.c:7949 +#: config/tc-i386.c:11706 +#, fuzzy +#| msgid "pseudo prefix without instruction" +msgid "pseudo prefix ahead of label; ignoring" +msgstr "pseudo prefijo sin instrucción" + +#: config/tc-i386.c:12025 config/tc-i386.c:12058 config/tc-i386.c:12147 +#, c-format +msgid "`%s` skips -malign-branch-boundary on `%s`" +msgstr "" + +#: config/tc-i386.c:12316 +msgid "use .code16 to ensure correct addressing mode" +msgstr "use .code16 para asegurar el modo de direccionamiento correcto" + +#: config/tc-i386.c:12344 +#, fuzzy, c-format +#| msgid "instruction `%s' isn't supported in 16-bit mode." +msgid "Cannot convert `%s' in 16-bit mode" +msgstr "instrucción «%s» no admitido en modo 16-bit." + +#: config/tc-i386.c:12346 +#, c-format +msgid "Cannot convert `%s' with `-momit-lock-prefix=yes' in effect" +msgstr "" + +#: config/tc-i386.c:12591 config/tc-i386.c:12594 +#, c-format +msgid "instruction length of %u bytes exceeds the limit of 15" +msgstr "" + +#: config/tc-i386.c:13145 #, c-format msgid "@%s reloc is not supported with %d-bit output format" msgstr "no se admiten las reubicaciones @%s con el formato de salida de %d bits" -#: config/tc-i386.c:8000 +#: config/tc-i386.c:13203 #, c-format msgid "missing or invalid expression `%s'" msgstr "expresión ausentente o no válida «%s»" -#: config/tc-i386.c:8086 +#: config/tc-i386.c:13212 +#, fuzzy, c-format +#| msgid "invalid LOC expression" +msgid "invalid PLT expression `%s'" +msgstr "expresión LOC no válida" + +#: config/tc-i386.c:13311 +#, fuzzy +#| msgid "hard-float conflicts with specified fpu" +msgid "pseudo-prefix conflicts with encoding specifier" +msgstr "hard-float tiene conflictos con la unidad de coma flotante (fpu) especificada" + +#: config/tc-i386.c:13335 +msgid "illegal prefix used with VEX/XOP/EVEX" +msgstr "" + +#: config/tc-i386.c:13646 +#, c-format +msgid "opcode residual (%#<PRIx64>) too wide" +msgstr "" + +#: config/tc-i386.c:13662 +msgid "eGPR use conflicts with encoding specifier" +msgstr "" + +#: config/tc-i386.c:13683 config/tc-i386.c:13727 +#, fuzzy +#| msgid "Too many registers popped" +msgid "too many register/memory operands" +msgstr "Demasiados registros aparecidos" + +#: config/tc-i386.c:13694 config/tc-i386.c:13701 +#, fuzzy +#| msgid "too few operands" +msgid "too few register/memory operands" +msgstr "muy pocos operandos" + +#: config/tc-i386.c:13714 +#, fuzzy, c-format +#| msgid "constant doesn't fit in 4 bits" +msgid "constant doesn't fit in %d bits" +msgstr "constante no cabe en 4 bits" + +#: config/tc-i386.c:13778 +msgid "VSIB unavailable with legacy encoding" +msgstr "" + +#. We could allow two register operands, encoding the 2nd one in +#. an 8-bit immediate like for 4-register-operand insns, but that +#. would require ugly fiddling with process_operands() and/or +#. build_modrm_byte(). +#: config/tc-i386.c:13789 +#, fuzzy +#| msgid "Too many registers popped" +msgid "too many register operands with VSIB" +msgstr "Demasiados registros aparecidos" + +#: config/tc-i386.c:13808 +#, c-format +msgid "can't encode register '%s%s' with VEX/XOP/EVEX" +msgstr "" + +#: config/tc-i386.c:14013 +#, fuzzy +#| msgid "Conflicting operand modifiers" +msgid "conflicting .insn operands" +msgstr "Modificadores de operando en conflicto" + +#: config/tc-i386.c:14046 read.c:4318 +#, fuzzy +#| msgid "pseudo instruction `%s' not supported" +msgid "SCFI: hand-crafting instructions not supported" +msgstr "pseudo instrucción «%s» no admitida" + +#: config/tc-i386.c:14115 +#, fuzzy, c-format +#| msgid "duplicated `%s'" +msgid "duplicated `{%s}'" +msgstr "duplicado «%s»" + +#: config/tc-i386.c:14188 #, c-format msgid "Unsupported broadcast: `%s'" msgstr "No admitió emisión: «%s»" -#: config/tc-i386.c:8101 +#: config/tc-i386.c:14263 #, c-format msgid "`%s%s' can't be used for write mask" msgstr "`%s%s' no se puede ser empleado para máscara de escritura" -#: config/tc-i386.c:8124 +#: config/tc-i386.c:14283 #, c-format msgid "invalid write mask `%s'" msgstr "marca de escritura no válida «%s»" -#: config/tc-i386.c:8146 config/tc-i386.c:8809 +#: config/tc-i386.c:14304 #, c-format msgid "duplicated `%s'" msgstr "duplicado «%s»" -#: config/tc-i386.c:8156 +#: config/tc-i386.c:14314 #, c-format msgid "invalid zeroing-masking `%s'" msgstr "invalida mascarada a cero `%s'" -#: config/tc-i386.c:8169 +#: config/tc-i386.c:14332 #, c-format msgid "missing `}' in `%s'" msgstr "ausente `}' en «%s»" #. We don't know this one. -#: config/tc-i386.c:8177 +#: config/tc-i386.c:14344 #, c-format msgid "unknown vector operation: `%s'" -msgstr "operación vectorial desconocida: «%s»" +msgstr "operación de vector desconocida: «%s»" -#: config/tc-i386.c:8183 +#: config/tc-i386.c:14350 msgid "zeroing-masking only allowed with write mask" msgstr "" -#: config/tc-i386.c:8203 +#: config/tc-i386.c:14370 #, c-format msgid "at most %d immediate operands are allowed" -msgstr "sólo se permiten cuando mucho %d operandos inmediatos" +msgstr "solo se permiten cuando mucho %d operandos inmediatos" -#: config/tc-i386.c:8235 config/tc-i386.c:8482 +#: config/tc-i386.c:14409 config/tc-i386.c:14668 #, c-format msgid "junk `%s' after expression" msgstr "«%s» basura tras la expresión" -#: config/tc-i386.c:8256 +#: config/tc-i386.c:14422 +#, c-format +msgid "illegal immediate register operand %s" +msgstr "operando de registro inmediato ilegal %s" + +#: config/tc-i386.c:14436 #, c-format msgid "missing or invalid immediate expression `%s'" msgstr "expresión inmediata ausentente o no válida «%s»" -#: config/tc-i386.c:8279 config/tc-i386.c:8572 +#: config/tc-i386.c:14459 config/tc-i386.c:14747 #, c-format msgid "unimplemented segment %s in operand" msgstr "segmento %s sin implementar en operando" -#: config/tc-i386.c:8286 -#, c-format -msgid "illegal immediate register operand %s" -msgstr "operando de registro inmediato ilegal %s" - -#: config/tc-i386.c:8334 +#: config/tc-i386.c:14508 #, c-format msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'" msgstr "se esperaba un factor de escala de 1, 2, 4, u 8: se obtuvo «%s»" -#: config/tc-i386.c:8343 +#: config/tc-i386.c:14517 #, c-format msgid "scale factor of %d without an index register" msgstr "factor de escala de %d sin un registro índice" -#: config/tc-i386.c:8365 +#: config/tc-i386.c:14539 #, c-format msgid "at most %d displacement operands are allowed" -msgstr "sólo se permiten hasta %d operandos de desubicación" +msgstr "solo se permiten hasta %d operandos de desubicación" -#: config/tc-i386.c:8538 +#: config/tc-i386.c:14723 #, c-format msgid "missing or invalid displacement expression `%s'" msgstr "expresión de desubicación ausentente o no válida «%s»" -#: config/tc-i386.c:8555 -#, c-format -msgid "0x%lx out range of signed 32bit displacement" -msgstr "0x%lx fuera de límite del desplazamiento de 32 bit con signo" - -#: config/tc-i386.c:8707 +#: config/tc-i386.c:14898 #, c-format msgid "`%s' is not valid here (expected `%c%s%s%c')" msgstr "«%s» no es válido aquí (se esperaba `%c%s%s%c')" -#: config/tc-i386.c:8719 +#: config/tc-i386.c:14910 #, c-format msgid "`%s' is not a valid %s expression" msgstr "«%s» no es una expresión %s válida" -#: config/tc-i386.c:8754 +#: config/tc-i386.c:14924 +#, fuzzy, c-format +#| msgid "invalid suffix" +msgid "invalid `%s' prefix" +msgstr "sufijo inválido" + +#: config/tc-i386.c:14954 #, c-format msgid "`%s' cannot be used here" msgstr "`%s' no puede ser empleado aquí" -#: config/tc-i386.c:8761 +#: config/tc-i386.c:14961 msgid "register scaling is being ignored here" msgstr "registro escalado está siendo descartado aquí" -#: config/tc-i386.c:8822 +#: config/tc-i386.c:15009 #, c-format msgid "Missing '}': '%s'" msgstr "Ausente '}': «%s»" -#: config/tc-i386.c:8828 +#: config/tc-i386.c:15015 #, c-format msgid "Junk after '}': '%s'" msgstr "Basura tras '}': «%s»" -#: config/tc-i386.c:8956 +#: config/tc-i386.c:15090 #, c-format msgid "bad memory operand `%s'" -msgstr "operando de memoria equivocado «%s»" +msgstr "operando de memoria incorrecto «%s»" -#: config/tc-i386.c:8980 +#: config/tc-i386.c:15106 #, c-format msgid "junk `%s' after register" msgstr "«%s» basura tras registro" -#: config/tc-i386.c:8993 config/tc-i386.c:9130 config/tc-i386.c:9174 +#: config/tc-i386.c:15113 +#, fuzzy, c-format +#| msgid "`%s' cannot be used here" +msgid "`%s%s' cannot be used here" +msgstr "`%s' no puede ser empleado aquí" + +#: config/tc-i386.c:15136 +#, fuzzy, c-format +#| msgid "`%s' is deprecated, use `%s'" +msgid "`%s': misplaced `{%s}'" +msgstr "«%s» es obsoleta, emplee «%s»" + +#: config/tc-i386.c:15143 config/tc-i386.c:15317 config/tc-i386.c:15361 #, c-format msgid "bad register name `%s'" -msgstr "nombre de registro equivocado «%s»" +msgstr "nombre de registro incorrecto «%s»" -#: config/tc-i386.c:9001 +#: config/tc-i386.c:15151 msgid "immediate operand illegal with absolute jump" msgstr "operando inmediato ilegal con salto absoluto" -#: config/tc-i386.c:9032 -#, c-format -msgid "too many memory references for `%s'" -msgstr "demasiadas referencias a memoria para «%s»" +#: config/tc-i386.c:15158 +#, fuzzy, c-format +#| msgid "RC/SAE operand must follow immediate operands" +msgid "`%s': RC/SAE operand must follow immediate operands" +msgstr "Operando RC/SAE debe seguir inmediatamente operandos" + +#: config/tc-i386.c:15171 +#, fuzzy, c-format +#| msgid "`%s' is deprecated, use `%s'" +msgid "`%s': misplaced `%s'" +msgstr "«%s» es obsoleta, emplee «%s»" + +#: config/tc-i386.c:15222 +msgid "unbalanced figure braces" +msgstr "" -#: config/tc-i386.c:9119 +#: config/tc-i386.c:15306 #, c-format msgid "expecting `,' or `)' after index register in `%s'" msgstr "se esperaba `,' ó `)' tras registro índice en «%s»" -#: config/tc-i386.c:9147 +#: config/tc-i386.c:15334 #, c-format msgid "expecting `)' after scale factor in `%s'" msgstr "se esperaba `)' tras factor de escala en «%s»" -#: config/tc-i386.c:9155 +#: config/tc-i386.c:15342 #, c-format msgid "expecting index register or scale factor after `,'; got '%c'" msgstr "se esperaba un registro índice o un factor de escala tras `,'; se obtuvo '%c'" -#: config/tc-i386.c:9163 +#: config/tc-i386.c:15350 #, c-format msgid "expecting `,' or `)' after base register in `%s'" msgstr "se esperaba `,' ó `)' tras registro base en «%s»" #. It's not a memory operand; argh! -#: config/tc-i386.c:9212 +#: config/tc-i386.c:15400 #, c-format msgid "invalid char %s beginning operand %d `%s'" msgstr "carácter inválido %s al inicio de operando %d «%s»" -#: config/tc-i386.c:9434 +#: config/tc-i386.c:16059 +#, c-format +msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n" +msgstr "" + +#: config/tc-i386.c:16062 +#, c-format +msgid "%s:%u: add additional %d%s at 0x%llx to align %s within %d-byte boundary\n" +msgstr "" + +#: config/tc-i386.c:16068 +#, c-format +msgid "%s:%u: add %d%s-byte nop at 0x%llx to align %s within %d-byte boundary\n" +msgstr "" + +#: config/tc-i386.c:16135 msgid "long jump required" msgstr "se requiere un salto largo" -#: config/tc-i386.c:9489 +#: config/tc-i386.c:16190 msgid "jump target out of range" -msgstr "omite objetivo fuera de límite" +msgstr "omite objetivo fuera de rango" + +#: config/tc-i386.c:16668 +#, fuzzy, c-format +#| msgid "register r0 cannot be used here" +msgid "register '%s%s' cannot be used here" +msgstr "el registro r0 no se puede usar aquí" + +#: config/tc-i386.c:16934 +#, fuzzy, c-format +#| msgid "invalid -mtune= option: `%s'" +msgid "invalid -mx86-used-note= option: `%s'" +msgstr "opción -mtune= no válida: «%s»" -#: config/tc-i386.c:10064 +#: config/tc-i386.c:16957 msgid "no compiled in support for x86_64" msgstr "no se compiló el soporte para x86_64" -#: config/tc-i386.c:10084 +#: config/tc-i386.c:16976 msgid "no compiled in support for 32bit x86_64" msgstr "no se compiló el soporte para x86_64 de 32bit" -#: config/tc-i386.c:10088 -msgid "32bit x86_64 is only supported for ELF" -msgstr "x86_64 de 32bit sólo se admite para ELF" +#: config/tc-i386.c:16997 +#, fuzzy +#| msgid "no compiled in support for x86_64" +msgid "no compiled in support for ix86" +msgstr "no se compiló el soporte para x86_64" -#: config/tc-i386.c:10122 config/tc-i386.c:10206 +#: config/tc-i386.c:17030 config/tc-i386.c:17116 #, c-format msgid "invalid -march= option: `%s'" msgstr "opción -march= no válida: «%s»" -#: config/tc-i386.c:10216 config/tc-i386.c:10228 +#: config/tc-i386.c:17086 +#, fuzzy +#| msgid "Unrecognized dependency specifier %d\n" +msgid "Unrecognized vector size specifier ignored" +msgstr "No reconocido el especificador de dependencia %d\n" + +#: config/tc-i386.c:17126 config/tc-i386.c:17138 #, c-format msgid "invalid -mtune= option: `%s'" msgstr "opción -mtune= no válida: «%s»" -#: config/tc-i386.c:10237 +#: config/tc-i386.c:17147 #, c-format msgid "invalid -mmnemonic= option: `%s'" msgstr "opción -mmnemonic= no válida: «%s»" -#: config/tc-i386.c:10246 +#: config/tc-i386.c:17156 #, c-format msgid "invalid -msyntax= option: `%s'" msgstr "opción -msyntax= no válida: «%s»" -#: config/tc-i386.c:10273 +#: config/tc-i386.c:17184 #, c-format msgid "invalid -msse-check= option: `%s'" msgstr "opción -msse-check= no válida: «%s»" -#: config/tc-i386.c:10284 +#: config/tc-i386.c:17195 #, c-format msgid "invalid -moperand-check= option: `%s'" msgstr "opción -moperand-check= no válida: «%s»" -#: config/tc-i386.c:10293 +#: config/tc-i386.c:17204 #, c-format msgid "invalid -mavxscalar= option: `%s'" msgstr "opción -mavxscalar= no válida: «%s»" -#: config/tc-i386.c:10308 +#: config/tc-i386.c:17213 +#, fuzzy, c-format +#| msgid "invalid -mevexwig= option: `%s'" +msgid "invalid -mvexwig= option: `%s'" +msgstr "opción -mevexwig= no válida: «%s»" + +#: config/tc-i386.c:17228 #, c-format msgid "invalid -mevexlig= option: `%s'" msgstr "opción -mevexlig= inválido: «%s»" -#: config/tc-i386.c:10321 +#: config/tc-i386.c:17241 #, c-format msgid "invalid -mevexrcig= option: `%s'" msgstr "invalida opción -mevexrcig=: «%s»" -#: config/tc-i386.c:10330 +#: config/tc-i386.c:17250 #, c-format msgid "invalid -mevexwig= option: `%s'" msgstr "opción -mevexwig= no válida: «%s»" -#: config/tc-i386.c:10345 +#: config/tc-i386.c:17265 #, c-format msgid "invalid -momit-lock-prefix= option: `%s'" msgstr "opción -momit-lock-prefix= no válida: «%s»" -#: config/tc-i386.c:10354 +#: config/tc-i386.c:17274 #, c-format msgid "invalid -mfence-as-lock-add= option: `%s'" msgstr "opción -mfence-as-lock-add= no válida: «%s»" -#: config/tc-i386.c:10363 +#: config/tc-i386.c:17283 +#, fuzzy, c-format +#| msgid "invalid -mfence-as-lock-add= option: `%s'" +msgid "invalid -mlfence-after-load= option: `%s'" +msgstr "opción -mfence-as-lock-add= no válida: «%s»" + +#: config/tc-i386.c:17300 +#, fuzzy, c-format +#| msgid "invalid -mfence-as-lock-add= option: `%s'" +msgid "invalid -mlfence-before-indirect-branch= option: `%s'" +msgstr "opción -mfence-as-lock-add= no válida: «%s»" + +#: config/tc-i386.c:17314 +#, fuzzy, c-format +#| msgid "invalid -mfence-as-lock-add= option: `%s'" +msgid "invalid -mlfence-before-ret= option: `%s'" +msgstr "opción -mfence-as-lock-add= no válida: «%s»" + +#: config/tc-i386.c:17324 #, c-format msgid "invalid -mrelax-relocations= option: `%s'" msgstr "opción no válida -mrelax-relocations=: «%s»" -#: config/tc-i386.c:10486 +#: config/tc-i386.c:17353 #, c-format +msgid "invalid -malign-branch-boundary= value: %s" +msgstr "" + +#: config/tc-i386.c:17367 +#, fuzzy, c-format +#| msgid "invalid -momit-lock-prefix= option: `%s'" +msgid "invalid -malign-branch-prefix-size= value: %s" +msgstr "opción -momit-lock-prefix= no válida: «%s»" + +#: config/tc-i386.c:17394 +#, fuzzy, c-format +#| msgid "invalid -march= option: `%s'" +msgid "invalid -malign-branch= option: `%s'" +msgstr "opción -march= no válida: «%s»" + +#: config/tc-i386.c:17443 +#, fuzzy, c-format +#| msgid "invalid -msse-check= option: `%s'" +msgid "invalid -mtls-check= option: `%s'" +msgstr "opción -msse-check= no válida: «%s»" + +#: config/tc-i386.c:17569 +#, fuzzy, c-format +#| msgid "" +#| " -Q ignored\n" +#| " -V print assembler version number\n" +#| " -k ignored\n" msgid "" -" -Q ignored\n" +" -Qy, -Qn ignored\n" " -V print assembler version number\n" " -k ignored\n" msgstr "" @@ -8090,36 +9909,47 @@ msgstr "" " -V escribe el número de versión del ensamblador\n" " -k descartado\n" -#: config/tc-i386.c:10491 -#, c-format +#: config/tc-i386.c:17574 +#, fuzzy, c-format +#| msgid "" +#| " -n Do not optimize code alignment\n" +#| " -q quieten some warnings\n" msgid "" -" -n Do not optimize code alignment\n" +" -n do not optimize code alignment\n" +" -O{012s} attempt some code optimizations\n" " -q quieten some warnings\n" msgstr "" " -n No optimiza la alineamiento de código\n" " -q omite algunos avisos\n" -#: config/tc-i386.c:10495 +#: config/tc-i386.c:17579 #, c-format msgid " -s ignored\n" msgstr " -s se descarta\n" -#: config/tc-i386.c:10500 -#, c-format -msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n" +#: config/tc-i386.c:17584 +#, fuzzy, c-format +#| msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n" +msgid " --32/--64/--x32 generate 32bit/64bit/x32 object\n" msgstr " --32/--64/--x32 genera código 32bit/64bit/x32\n" -#: config/tc-i386.c:10504 +#: config/tc-i386.c:17587 +#, fuzzy, c-format +#| msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n" +msgid " --32/--64 generate 32bit/64bit object\n" +msgstr " --32/--64/--x32 genera código 32bit/64bit/x32\n" + +#: config/tc-i386.c:17592 #, c-format msgid " --divide do not treat `/' as a comment character\n" msgstr " --divide no trata `/' como un carácter de comentario\n" -#: config/tc-i386.c:10507 +#: config/tc-i386.c:17595 #, c-format msgid " --divide ignored\n" msgstr " --divide se descarta\n" -#: config/tc-i386.c:10510 +#: config/tc-i386.c:17598 #, c-format msgid "" " -march=CPU[,+EXTENSION...]\n" @@ -8128,70 +9958,113 @@ msgstr "" " -march=CPU[,+EXTENSIÓN...]\n" " genera código para el CPU y la EXTENSIÓN. CPU es uno de:\n" -#: config/tc-i386.c:10514 -#, c-format -msgid " EXTENSION is combination of:\n" +#: config/tc-i386.c:17602 +#, fuzzy, c-format +#| msgid " EXTENSION is combination of:\n" +msgid " EXTENSION is combination of (possibly \"no\"-prefixed):\n" msgstr " EXTENSIÓN es una combinación de:\n" -#: config/tc-i386.c:10517 +#: config/tc-i386.c:17605 #, c-format msgid " -mtune=CPU optimize for CPU, CPU is one of:\n" msgstr " -mtune=CPU optimiza para el CPU, donde CPU es uno de:\n" -#: config/tc-i386.c:10520 +#: config/tc-i386.c:17608 #, c-format msgid " -msse2avx encode SSE instructions with VEX prefix\n" msgstr " -msse2avx codifica instrucciones SSE con prefijo VEX\n" -#: config/tc-i386.c:10522 +#: config/tc-i386.c:17610 #, c-format msgid "" -" -msse-check=[none|error|warning]\n" +" -muse-unaligned-vector-move\n" +" encode aligned vector move as unaligned vector move\n" +msgstr "" + +#: config/tc-i386.c:17613 +#, fuzzy, c-format +#| msgid "" +#| " -msse-check=[none|error|warning]\n" +#| " check SSE instructions\n" +msgid "" +" -msse-check=[none|error|warning] (default: none)\n" " check SSE instructions\n" msgstr "" " -msse-check=[none|error|warning]\n" " revisa las instrucciones SSE\n" -#: config/tc-i386.c:10525 -#, c-format +#: config/tc-i386.c:17616 +#, fuzzy, c-format +#| msgid "" +#| " -moperand-check=[none|error|warning]\n" +#| " check operand combinations for validity\n" msgid "" -" -moperand-check=[none|error|warning]\n" +" -moperand-check=[none|error|warning] (default: warning)\n" " check operand combinations for validity\n" msgstr "" " -moperand-check=[none|error|warning]\n" " marca combinaciones operantes para validación\n" -#: config/tc-i386.c:10528 -#, c-format +#: config/tc-i386.c:17619 +#, fuzzy, c-format +#| msgid "" +#| " -mavxscalar=[128|256] encode scalar AVX instructions with specific vector\n" +#| " length\n" msgid "" -" -mavxscalar=[128|256] encode scalar AVX instructions with specific vector\n" +" -mavxscalar=[128|256] (default: 128)\n" +" encode scalar AVX instructions with specific vector\n" " length\n" msgstr "" " -mavxscalar=[128|256] codifica instrucciones AVX escalares con\n" -" una longitud vectorial específica\n" +" una longitud de vector específica\n" -#: config/tc-i386.c:10531 -#, c-format +#: config/tc-i386.c:17623 +#, fuzzy, c-format +#| msgid "" +#| " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n" +#| " for EVEX.W bit ignored instructions\n" +msgid "" +" -mvexwig=[0|1] (default: 0)\n" +" encode VEX instructions with specific VEX.W value\n" +" for VEX.W bit ignored instructions\n" +msgstr "" +" -mevexwig=[0|1] codifica instrucciones EVEX con valor EVEX.W específico\n" +" para instrucciones bit EVEX.W ignoradas\n" + +#: config/tc-i386.c:17627 +#, fuzzy, c-format +#| msgid "" +#| " -mevexlig=[128|256|512] encode scalar EVEX instructions with specific vector\n" +#| " length\n" msgid "" -" -mevexlig=[128|256|512] encode scalar EVEX instructions with specific vector\n" +" -mevexlig=[128|256|512] (default: 128)\n" +" encode scalar EVEX instructions with specific vector\n" " length\n" msgstr "" " -mevexlig=[128|256|512] codifica instrucciones EVEX escalares con\n" -" longitud vectorial específica\n" +" longitud de vector específica\n" -#: config/tc-i386.c:10534 -#, c-format +#: config/tc-i386.c:17631 +#, fuzzy, c-format +#| msgid "" +#| " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n" +#| " for EVEX.W bit ignored instructions\n" msgid "" -" -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n" +" -mevexwig=[0|1] (default: 0)\n" +" encode EVEX instructions with specific EVEX.W value\n" " for EVEX.W bit ignored instructions\n" msgstr "" " -mevexwig=[0|1] codifica instrucciones EVEX con valor EVEX.W específico\n" " para instrucciones bit EVEX.W ignoradas\n" -#: config/tc-i386.c:10537 -#, c-format +#: config/tc-i386.c:17635 +#, fuzzy, c-format +#| msgid "" +#| " -mevexrcig=[rne|rd|ru|rz]\n" +#| " encode EVEX instructions with specific EVEX.RC value\n" +#| " for SAE-only ignored instructions\n" msgid "" -" -mevexrcig=[rne|rd|ru|rz]\n" +" -mevexrcig=[rne|rd|ru|rz] (default: rne)\n" " encode EVEX instructions with specific EVEX.RC value\n" " for SAE-only ignored instructions\n" msgstr "" @@ -8199,57 +10072,92 @@ msgstr "" " codifica instrucciones EVEX con valor EVEX.RC específico\n" " para instrucciones ignoradas SAE-único\n" -#: config/tc-i386.c:10541 -#, c-format -msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n" +#: config/tc-i386.c:17639 +#, fuzzy, c-format +#| msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n" +msgid " -mmnemonic=[att|intel] " msgstr " -mmnemonic=[att|intel] usa mnemónicos AT&T/Intel\n" -#: config/tc-i386.c:10543 +#: config/tc-i386.c:17642 +#, c-format +msgid "(default: att)\n" +msgstr "" + +#: config/tc-i386.c:17644 #, c-format -msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n" +msgid "(default: intel)\n" +msgstr "" + +#: config/tc-i386.c:17645 +#, fuzzy, c-format +#| msgid " emulate output (default %s)\n" +msgid " use AT&T/Intel mnemonic (AT&T syntax only)\n" +msgstr " emula la salida (por defecto %s)\n" + +#: config/tc-i386.c:17647 +#, fuzzy, c-format +#| msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n" +msgid "" +" -msyntax=[att|intel] (default: att)\n" +" use AT&T/Intel syntax\n" msgstr " -msyntax=[att|intel] usa sintaxis AT&T/Intel\n" -#: config/tc-i386.c:10545 +#: config/tc-i386.c:17650 #, c-format msgid " -mindex-reg support pseudo index registers\n" msgstr " -mindex-reg admite registros de pseudo índice\n" -#: config/tc-i386.c:10547 +#: config/tc-i386.c:17652 #, c-format msgid " -mnaked-reg don't require `%%' prefix for registers\n" msgstr " -mnaked-reg no requiere el prefijo `%%' para registros\n" -#: config/tc-i386.c:10549 -#, c-format -msgid " -mold-gcc support old (<= 2.8.1) versions of gcc\n" -msgstr " -mold-gcc admite versiones antiguas de gcc (≤ 2.8.1)\n" - -#: config/tc-i386.c:10551 +#: config/tc-i386.c:17654 #, c-format msgid " -madd-bnd-prefix add BND prefix for all valid branches\n" msgstr "" -#: config/tc-i386.c:10553 +#: config/tc-i386.c:17657 #, c-format msgid " -mshared disable branch optimization for shared code\n" msgstr " -mshared desactiva rama optimizada para código compartido\n" -#: config/tc-i386.c:10556 +#: config/tc-i386.c:17659 +#, c-format +msgid " -mx86-used-note=[no|yes] " +msgstr "" + +#: config/tc-i386.c:17665 +#, fuzzy, c-format +#| msgid " -Z generate object file even after errors\n" +msgid " generate x86 used ISA and feature properties\n" +msgstr " -Z generar fichero objeto par tras errores\n" + +#: config/tc-i386.c:17669 #, c-format msgid " -mbig-obj generate big object files\n" msgstr " -mbig-obj genera ficheros objetos grandes\n" -#: config/tc-i386.c:10559 -#, c-format +#: config/tc-i386.c:17672 +#, fuzzy, c-format +#| msgid "" +#| " -mrelax-relocations=[no|yes]\n" +#| " generate relax relocations\n" msgid "" -" -momit-lock-prefix=[no|yes]\n" +" -momit-lock-prefix=[no|yes] (default: no)\n" " strip all lock prefixes\n" msgstr "" +" -mrelax-relocations=[no|sí]\n" +" genera reubicaciones relajadas\n" -#: config/tc-i386.c:10562 -#, c-format +#: config/tc-i386.c:17675 +#, fuzzy, c-format +#| msgid "" +#| " -mfence-as-lock-add=[no|yes]\n" +#| " encode lfence, mfence and sfence as\n" +#| " lock addl $0x0, (%%{re}sp)\n" msgid "" -" -mfence-as-lock-add=[no|yes]\n" +" -mfence-as-lock-add=[no|yes] (default: no)\n" " encode lfence, mfence and sfence as\n" " lock addl $0x0, (%%{re}sp)\n" msgstr "" @@ -8257,961 +10165,763 @@ msgstr "" " codifica lfence, mfence y sfence como\n" " bloqueo addl $0x0, (%%{re}sp\n" -#: config/tc-i386.c:10566 +#: config/tc-i386.c:17679 +#, fuzzy, c-format +#| msgid "invalid -mrelax-relocations= option: `%s'" +msgid " -mrelax-relocations=[no|yes] " +msgstr "opción no válida -mrelax-relocations=: «%s»" + +#: config/tc-i386.c:17685 +#, fuzzy, c-format +#| msgid "" +#| " -mrelax-relocations=[no|yes]\n" +#| " generate relax relocations\n" +msgid " generate relax relocations\n" +msgstr "" +" -mrelax-relocations=[no|sí]\n" +" genera reubicaciones relajadas\n" + +#: config/tc-i386.c:17688 +#, c-format +msgid " -mtls-check=[no|yes] " +msgstr "" + +#: config/tc-i386.c:17694 +#, fuzzy, c-format +#| msgid " EXTENSION is combination of:\n" +msgid " check TLS relocation\n" +msgstr " EXTENSIÓN es una combinación de:\n" + +#: config/tc-i386.c:17697 #, c-format msgid "" -" -mrelax-relocations=[no|yes]\n" -" generate relax relocations\n" +" -malign-branch-boundary=NUM (default: 0)\n" +" align branches within NUM byte boundary\n" +msgstr "" + +#: config/tc-i386.c:17700 +#, c-format +msgid "" +" -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n" +" TYPE is combination of jcc, fused, jmp, call, ret,\n" +" indirect\n" +" specify types of branches to align\n" +msgstr "" + +#: config/tc-i386.c:17705 +#, c-format +msgid "" +" -malign-branch-prefix-size=NUM (default: 5)\n" +" align branches with NUM prefixes per instruction\n" +msgstr "" + +#: config/tc-i386.c:17708 +#, c-format +msgid "" +" -mbranches-within-32B-boundaries\n" +" align branches within 32 byte boundary\n" +msgstr "" + +#: config/tc-i386.c:17711 +#, fuzzy, c-format +#| msgid "" +#| " -mrelax-relocations=[no|yes]\n" +#| " generate relax relocations\n" +msgid "" +" -mlfence-after-load=[no|yes] (default: no)\n" +" generate lfence after load\n" msgstr "" " -mrelax-relocations=[no|sí]\n" " genera reubicaciones relajadas\n" -#: config/tc-i386.c:10569 +#: config/tc-i386.c:17714 #, c-format -msgid " -mamd64 accept only AMD64 ISA\n" +msgid "" +" -mlfence-before-indirect-branch=[none|all|register|memory] (default: none)\n" +" generate lfence before indirect near branch\n" +msgstr "" + +#: config/tc-i386.c:17717 +#, fuzzy, c-format +#| msgid "" +#| " -mrelax-relocations=[no|yes]\n" +#| " generate relax relocations\n" +msgid "" +" -mlfence-before-ret=[none|or|not|shl|yes] (default: none)\n" +" generate lfence before ret\n" +msgstr "" +" -mrelax-relocations=[no|sí]\n" +" genera reubicaciones relajadas\n" + +#: config/tc-i386.c:17720 +#, fuzzy, c-format +#| msgid " -mamd64 accept only AMD64 ISA\n" +msgid " -mamd64 accept only AMD64 ISA [default]\n" msgstr "" " -mamd64 acepta solo ISA AMD64\n" "\n" -#: config/tc-i386.c:10571 +#: config/tc-i386.c:17722 #, c-format msgid " -mintel64 accept only Intel64 ISA\n" msgstr " -mintel64 acepta solo ISA Intel64\n" -#: config/tc-i386.c:10612 +#: config/tc-i386.c:17761 #, c-format msgid "Intel MCU doesn't support `%s' architecture" msgstr "Intel MCU no admite «%s» como arquitectura" -#: config/tc-i386.c:10669 -msgid "Intel L1OM is 64bit only" -msgstr "Intel L1OM es solo 64bit" - -#: config/tc-i386.c:10675 -msgid "Intel K1OM is 64bit only" -msgstr "Intel K1OM es solo 64bit" +#: config/tc-i386.c:17769 +#, fuzzy +#| msgid "CFI is not supported for this target" +msgid "SCFI is not supported for this ABI" +msgstr "CFI no admitido en este objetivo" -#: config/tc-i386.c:10681 +#: config/tc-i386.c:17820 msgid "Intel MCU is 32bit only" msgstr "Intel MCU es solo 32bit" -#: config/tc-i386.c:10838 +#: config/tc-i386.c:17932 +#, fuzzy, c-format +#| msgid "invalid destination register" +msgid "invalid %s relocation against register" +msgstr "invalida registro destino" + +#: config/tc-i386.c:18069 msgid "symbol size computation overflow" msgstr "desbordamiento de tamaño simbólico computacional" -#: config/tc-i386.c:10906 config/tc-sparc.c:3959 +#: config/tc-i386.c:18148 config/tc-sparc.c:3856 #, c-format msgid "can not do %d byte pc-relative relocation" msgstr "no se puede hacer la reubicación relativa a pc de %d bytes" -#: config/tc-i386.c:10924 +#: config/tc-i386.c:18166 #, c-format msgid "can not do %d byte relocation" msgstr "no se puede hacer la reubicación de %d bytes" -#: config/tc-i386.c:10992 +#: config/tc-i386.c:18234 #, c-format msgid "cannot represent relocation type %s in x32 mode" msgstr "no se puede representar el tipo reubicado %s en modo x32" -#: config/tc-i386.c:11029 config/tc-s390.c:2598 +#: config/tc-i386.c:18275 config/tc-s390.c:2835 #, c-format msgid "cannot represent relocation type %s" msgstr "no se puede representar el tipo reubicado %s" -#: config/tc-i386.c:11146 +#: config/tc-i386.c:18410 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string" -msgstr "directiva .section equivocada: se quiere a,l,w,x,M,S,G,T en la cadena" +msgstr "directiva .section incorrecta: se quiere a,l,w,x,M,S,G,T en la cadena" -#: config/tc-i386.c:11149 +#: config/tc-i386.c:18413 msgid "bad .section directive: want a,w,x,M,S,G,T in string" -msgstr "directiva .section equivocada: se quiere a,w,x,M,S,G,T en la cadena" +msgstr "directiva .section incorrecta: se quiere a,w,x,M,S,G,T en la cadena" -#: config/tc-i386.c:11168 +#: config/tc-i386.c:18423 msgid ".largecomm supported only in 64bit mode, producing .comm" -msgstr ".largecomm sólo se admite en modo de 64bit, se produce .comm" - -#: config/tc-i860.c:121 -msgid "Directive .dual available only with -mintel-syntax option" -msgstr "La directiva .dual sólo está disponible con la opción -mintel-syntax" - -#: config/tc-i860.c:131 -msgid "Directive .enddual available only with -mintel-syntax option" -msgstr "La directiva .enddual sólo es disponible con la opción -mintel-syntax" +msgstr ".largecomm solo se admite en modo de 64bit, se produce .comm" -#: config/tc-i860.c:144 -msgid "Directive .atmp available only with -mintel-syntax option" -msgstr "La directiva .atmp sólo es disponible con la opción -mintel-syntax" - -#: config/tc-i860.c:166 config/tc-i860.c:170 -msgid "Unknown temporary pseudo register" -msgstr "Pseudo registro temporal desconocido" - -#: config/tc-i860.c:246 -msgid "Defective assembler. No assembly attempted." -msgstr "Ensamblador defectuoso. No se intentó ensamblar." - -#: config/tc-i860.c:392 config/tc-i860.c:938 config/tc-m68k.c:3917 -#: config/tc-m68k.c:3949 config/tc-sparc.c:3199 -msgid "failed sanity check." -msgstr "falló la prueba de sanidad." - -#: config/tc-i860.c:399 -#, c-format -msgid "Expanded opcode after delayed branch: `%s'" -msgstr "Código operacional expandido tras la ramificación retardada: «%s»" - -#: config/tc-i860.c:403 -#, c-format -msgid "Expanded opcode in dual mode: `%s'" -msgstr "Código operacional expandido en modo dual: «%s»" - -#: config/tc-i860.c:407 -#, c-format -msgid "An instruction was expanded (%s)" -msgstr "Se expandió una instrucción (%s)" - -# ¿pipeline tiene traducción al español? cfuga -#: config/tc-i860.c:674 -msgid "Pipelined instruction: fsrc1 = fdest" -msgstr "Instrucción en `pipeline': fsrc1 = fdest" - -#: config/tc-i860.c:877 config/tc-i860.c:884 config/tc-i860.c:891 -msgid "Assembler does not yet support PIC" -msgstr "El ensamblador aún no admite PIC" - -#: config/tc-i860.c:955 -#, c-format -msgid "Illegal operands for %s" -msgstr "Operandos ilegales para %s" - -#: config/tc-i860.c:972 -#, c-format -msgid "'d.%s' must be 8-byte aligned" -msgstr "'d.%s' se debe alinear a 8-bytes" - -#: config/tc-i860.c:980 -#, c-format -msgid "Prefix 'd.' invalid for instruction `%s'" -msgstr "Prefijo 'd.' inválido para la instrucción «%s»" - -#: config/tc-i860.c:1034 config/tc-ip2k.c:230 -msgid "relaxation not supported\n" -msgstr "no se admite la relajación\n" - -#: config/tc-i860.c:1133 -#, c-format -msgid "" -" -EL\t\t\t generate code for little endian mode (default)\n" -" -EB\t\t\t generate code for big endian mode\n" -" -mwarn-expand\t\t warn if pseudo operations are expanded\n" -" -mxp\t\t\t enable i860XP support (disabled by default)\n" -" -mintel-syntax\t enable Intel syntax (default to AT&T/SVR4)\n" -msgstr "" -" -EL\t\t\t genera código para el modo little endian (por defecto)\n" -" -EB\t\t\t genera código para el modo big endian\n" -" -mwarn-expand\t\t avisa si se expanden las pseudo operaciones\n" -" -mxp\t\t\t activa el soporte para i860XP (desactivado por defecto)\n" -" -mintel-syntax\t activa la sintaxis Intel (AT&T/SVR4 por defecto)\n" - -#. SVR4 compatibility flags. -#: config/tc-i860.c:1141 -#, c-format -msgid "" -" -V\t\t\t print assembler version number\n" -" -Qy, -Qn\t\t ignored\n" -msgstr "" -" -V\t\t\t escrive el número de versión del ensamblador\n" -" -Qy, -Qn\t\t se descarta\n" - -#: config/tc-i860.c:1204 -msgid "This immediate requires 0 MOD 2 alignment" -msgstr "Este inmediato requiere alineamiento 0 MOD 2" - -#: config/tc-i860.c:1207 -msgid "This immediate requires 0 MOD 4 alignment" -msgstr "Este inmediato requiere alineamiento 0 MOD 4" - -#: config/tc-i860.c:1210 -msgid "This immediate requires 0 MOD 8 alignment" -msgstr "Este inmediato requiere alineamiento 0 MOD 8" - -#: config/tc-i860.c:1213 -msgid "This immediate requires 0 MOD 16 alignment" -msgstr "Este inmediato requiere alineamiento 0 MOD 16" - -#: config/tc-i860.c:1308 -msgid "5-bit immediate too large" -msgstr "5-bit inmediato demasiado grande" - -#: config/tc-i860.c:1311 -msgid "5-bit field must be absolute" -msgstr "5-bit de campo debe ser absoluto" - -#: config/tc-i860.c:1356 config/tc-i860.c:1379 -msgid "A branch offset requires 0 MOD 4 alignment" -msgstr "Un desplazamiento de ramificación requiere alineamiento 0 MOD 4" - -#: config/tc-i860.c:1400 -#, c-format -msgid "Unrecognized fix-up (0x%08lx)" -msgstr "No reconocida la compostura (0x%08lx)" - -#: config/tc-i960.c:483 -#, c-format -msgid "Hashing returned \"%s\"." -msgstr "Dispersión devolvió «%s»." - -#: config/tc-i960.c:579 config/tc-i960.c:1110 -msgid "expression syntax error" -msgstr "error sintáctico en la expresión" - -#: config/tc-i960.c:616 -msgid "attempt to branch into different segment" -msgstr "se intentó ramificar en un segmento diferente" - -#: config/tc-i960.c:620 -#, c-format -msgid "target of %s instruction must be a label" -msgstr "el objetivo de la instrucción %s debe ser una etiqueta" - -#: config/tc-i960.c:730 -msgid "unaligned register" -msgstr "registro desalineado" - -#: config/tc-i960.c:752 -msgid "no such sfr in this architecture" -msgstr "no hay un sfr en esta arquitectura" - -#: config/tc-i960.c:790 -msgid "illegal literal" -msgstr "literal ilegal" - -#: config/tc-i960.c:940 -msgid "invalid index register" -msgstr "registro índice inválido" - -#: config/tc-i960.c:963 -msgid "invalid scale factor" -msgstr "factor de escala inválido" - -#: config/tc-i960.c:1187 -msgid "architecture of opcode conflicts with that of earlier instruction(s)" -msgstr "la arquitectura del código operacional tiene conflictos con alguno de una(s) instrucción(es) anterior(es)" - -#: config/tc-i960.c:1421 config/tc-xtensa.c:12784 -msgid "too many operands" -msgstr "demasiados operandos" - -#. We never moved: there was no opcode either! -#: config/tc-i960.c:1469 -msgid "missing opcode" -msgstr "código operacional ausente" - -#: config/tc-i960.c:1609 -msgid "branch prediction invalid on this opcode" -msgstr "predicción de ramificación no válida en este código operacional" - -#: config/tc-i960.c:1647 -#, c-format -msgid "invalid opcode, \"%s\"." -msgstr "código operacional inválido, «%s»." - -#: config/tc-i960.c:1649 -#, c-format -msgid "improper number of operands. Expecting %d, got %d" -msgstr "número impropio de operandos. Esperando %d, obtuvo %d" - -#: config/tc-i960.c:1750 -#, c-format -msgid "Fixup of %ld too large for field width of %d" -msgstr "La compostura de %ld es demasiado grande para el campo de anchura %d" - -#: config/tc-i960.c:1860 -#, c-format -msgid "invalid architecture %s" -msgstr "arquitectura %s no válida" - -#: config/tc-i960.c:1880 -#, c-format -msgid "I960 options:\n" -msgstr "I960 con opciones:\n" - -#: config/tc-i960.c:1883 -#, c-format -msgid "" -"\n" -"\t\t\tspecify variant of 960 architecture\n" -"-b\t\t\tadd code to collect statistics about branches taken\n" -"-link-relax\t\tpreserve individual alignment directives so linker\n" -"\t\t\tcan do relaxing (b.out format only)\n" -"-no-relax\t\tdon't alter compare-and-branch instructions for\n" -"\t\t\tlong displacements\n" -msgstr "" -"\n" -"\t\t\t especifica la variante de la arquitectura 960\n" -"-b\t\t\t añade código para recolectar estadísticas sobre las ramificaciones tomadas\n" -"-link-relax\t\t preserva las directivas de alineamiento individuales del enlazador so\n" -"\t\t\t se puede relajar (sólo en el formato b.out)\n" -"-no-relax\t\t no altera las instrucciones comparar-y-ramificar para\n" -"\t\t\t desubicaciones largas\n" - -#: config/tc-i960.c:2145 -msgid "should have 1 or 2 operands" -msgstr "debe tener 1 o 2 operandos" - -#: config/tc-i960.c:2153 config/tc-i960.c:2168 -#, c-format -msgid "Redefining leafproc %s" -msgstr "Redefiniendo el proceso hoja %s" - -#: config/tc-i960.c:2198 -msgid "should have two operands" -msgstr "debe tener dos operandos" - -#: config/tc-i960.c:2208 -msgid "'entry_num' must be absolute number in [0,31]" -msgstr "'entry_num' debe ser un número absoluto en [0,31]" - -#: config/tc-i960.c:2216 -#, c-format -msgid "Redefining entrynum for sysproc %s" -msgstr "Redefiniendo el número de entrada para el proceso del sistema %s" - -#. Should not happen: see block comment above. -#: config/tc-i960.c:2316 -#, c-format -msgid "Trying to 'bal' to %s" -msgstr "Tratando hacer 'bal' a %s" - -#: config/tc-i960.c:2326 -msgid "Looks like a proc, but can't tell what kind.\n" -msgstr "Se ve como un proc, no se puede saber de qué tipo.\n" - -#: config/tc-i960.c:2344 -msgid "big endian mode is not supported" -msgstr "no se admite el modo big endian" - -#: config/tc-i960.c:2346 -#, c-format -msgid "ignoring unrecognized .endian type `%s'" -msgstr "ignorando tipo no reconocido .endian «%s»" - -#: config/tc-i960.c:2391 -msgid "can't use COBR format with external label" -msgstr "no se puede utilizar el formato COBR con una etiqueta externa" - -#: config/tc-i960.c:2566 -msgid "option --link-relax is only supported in b.out format" -msgstr "opción --link-relax está admitido únicamente en formato b.out" - -#: config/tc-i960.c:2593 -#, c-format -msgid "No 'bal' entry point for leafproc %s" -msgstr "No hay un punto de entrada 'bal' para el proceso hoja %s" - -#: config/tc-ia64.c:872 +#: config/tc-ia64.c:869 msgid "bad .section directive: want a,o,s,w,x,M,S,G,T in string" -msgstr "directiva .section equivocada: se quiere a,o,s,w,x,M,S,G,T en la cadena" +msgstr "directiva .section incorrecta: se quiere a,o,s,w,x,M,S,G,T en la cadena" -#: config/tc-ia64.c:924 +#: config/tc-ia64.c:921 msgid "Size of frame exceeds maximum of 96 registers" msgstr "El tamaño del marco excede el máximo de 96 registros" -#: config/tc-ia64.c:929 +#: config/tc-ia64.c:926 msgid "Size of rotating registers exceeds frame size" msgstr "El tamaño de los registros rotantes excede el tamaño del marco" -#: config/tc-ia64.c:1016 +#: config/tc-ia64.c:1013 msgid "Unwind directive not followed by an instruction." msgstr "La directiva de desenredo no está seguida por una instrucción." -#: config/tc-ia64.c:1025 config/tc-ia64.c:7610 +#: config/tc-ia64.c:1022 config/tc-ia64.c:7585 msgid "qualifying predicate not followed by instruction" msgstr "el predicado calificador no está seguido por una instrucción" -#: config/tc-ia64.c:1073 +#: config/tc-ia64.c:1070 msgid "expected ',' after section name" msgstr "esperaba ',' tras nombre de sección" -#: config/tc-ia64.c:1108 +#: config/tc-ia64.c:1105 msgid "expected ',' after symbol name" -msgstr "esperado ',' tras nombre simbólico" +msgstr "se esperaba ',' tras nombre de símbolo" -#: config/tc-ia64.c:1132 +#: config/tc-ia64.c:1129 msgid "expected ',' after symbol size" -msgstr "esperado ',' tras tamaño simbólico" +msgstr "se esperaba ',' tras tamaño de símbolo" -#: config/tc-ia64.c:1215 config/tc-ia64.c:1249 +#: config/tc-ia64.c:1212 config/tc-ia64.c:1246 msgid "record type is not valid" msgstr "el tipo de registro no es válido" -#: config/tc-ia64.c:1318 +#: config/tc-ia64.c:1315 msgid "Invalid record type for P3 format." msgstr "Tipo de registro inválido para el formato P3." -#: config/tc-ia64.c:1354 +#: config/tc-ia64.c:1351 msgid "Invalid record type for format P6" msgstr "Tipo de registro inválido para el formato P6" -#: config/tc-ia64.c:1534 config/tc-ia64.c:1586 +#: config/tc-ia64.c:1531 config/tc-ia64.c:1583 msgid "Invalid record type for format B1" msgstr "Tipo de registro inválido para el formato B1" -#: config/tc-ia64.c:1619 +#: config/tc-ia64.c:1616 msgid "Invalid record type for format X1" msgstr "Tipo de registro inválido para el formato X1" -#: config/tc-ia64.c:1661 +#: config/tc-ia64.c:1658 msgid "Invalid record type for format X3" msgstr "Tipo de registro inválido para el formato X3" -#: config/tc-ia64.c:1699 +#: config/tc-ia64.c:1696 msgid "Previous .save incomplete" msgstr ".save previo está incompleto" -#: config/tc-ia64.c:2524 +#: config/tc-ia64.c:2519 msgid "spill_mask record unimplemented." msgstr "no se admite el registro spill_mask." -#: config/tc-ia64.c:2581 +#: config/tc-ia64.c:2576 msgid "record_type_not_valid" msgstr "tipo_de_registro_no_valido" -#: config/tc-ia64.c:2665 +#: config/tc-ia64.c:2660 msgid "Ignoring attempt to spill beyond end of region" msgstr "Se descarta el intento de derramar más allá del fin de la región" -#: config/tc-ia64.c:2724 +#: config/tc-ia64.c:2719 msgid "Only constant space allocation is supported" msgstr "Sólo se admite el alojamiento de espacio constante" -#: config/tc-ia64.c:2738 +#: config/tc-ia64.c:2733 msgid "Only constant offsets are supported" msgstr "Sólo se admiten los desplazamientos constantes" -#: config/tc-ia64.c:2762 +#: config/tc-ia64.c:2757 msgid "Section switching in code is not supported." -msgstr "No se admite el cambio seccional en código." +msgstr "No se admite el cambio de sección en código." -#: config/tc-ia64.c:2804 +#: config/tc-ia64.c:2799 msgid "Insn slot not set in unwind record." msgstr "Ranura insn no especifica un registro desenredado." -#: config/tc-ia64.c:2878 +#: config/tc-ia64.c:2873 msgid "frgr_mem record before region record!" msgstr "¡Registro frgr_mem antes del registro de región!" -#: config/tc-ia64.c:2889 +#: config/tc-ia64.c:2884 msgid "fr_mem record before region record!" msgstr "¡Registro fr_mem antes del registro de región!" -#: config/tc-ia64.c:2898 +#: config/tc-ia64.c:2893 msgid "gr_mem record before region record!" msgstr "¡Registro gr_mem antes del registro de región!" -#: config/tc-ia64.c:2907 +#: config/tc-ia64.c:2902 msgid "br_mem record before region record!" msgstr "¡Registro br_mem antes del registro de región!" -#: config/tc-ia64.c:2917 +#: config/tc-ia64.c:2912 msgid "gr_gr record before region record!" msgstr "¡Registro gr_gr antes del registro de región!" -#: config/tc-ia64.c:2925 +#: config/tc-ia64.c:2920 msgid "br_gr record before region record!" msgstr "¡Registro br_gr antes del registro de región!" -#: config/tc-ia64.c:3043 +#: config/tc-ia64.c:3038 #, c-format msgid "First operand to .%s must be a predicate" msgstr "El primer operando de .%s debe ser un predicado" -#: config/tc-ia64.c:3047 +#: config/tc-ia64.c:3042 #, c-format msgid "Pointless use of p0 as first operand to .%s" msgstr "Uso sin sentido de p0 como el primer operando de .%s" -#: config/tc-ia64.c:3103 +#: config/tc-ia64.c:3098 #, c-format msgid "Operand %d to .%s must be a preserved register" msgstr "Operando %d de .%s debe ser un registro preservado" -#: config/tc-ia64.c:3139 +#: config/tc-ia64.c:3134 #, c-format msgid "Operand %d to .%s must be a writable register" msgstr "Operandos %d de .%s debe ser un registro modificable" -#: config/tc-ia64.c:3163 +#: config/tc-ia64.c:3158 #, c-format msgid "Radix `%s' unsupported or invalid" msgstr "No se admite el radical «%s» o es inválido" -#: config/tc-ia64.c:3193 config/tc-ia64.c:3198 +#: config/tc-ia64.c:3188 config/tc-ia64.c:3193 #, c-format msgid ".%s outside of %s" msgstr ".%s externo de %s" -#: config/tc-ia64.c:3284 +#: config/tc-ia64.c:3279 msgid "Tags on unwind pseudo-ops aren't supported, yet" msgstr "Aún no se admiten etiquetas en los pseudo-operadores de desenredo" -#: config/tc-ia64.c:3306 +#: config/tc-ia64.c:3301 msgid "First operand to .fframe must be a constant" msgstr "El primer operando de .fframe debe ser una constante" -#: config/tc-ia64.c:3326 +#: config/tc-ia64.c:3321 msgid "First operand to .vframe must be a general register" msgstr "El primer operando de .vfram debe ser un registro general" -#: config/tc-ia64.c:3334 +#: config/tc-ia64.c:3329 msgid "Operand of .vframe contradicts .prologue" msgstr "Operando de .vframe contradice a .prologue" -#: config/tc-ia64.c:3344 +#: config/tc-ia64.c:3339 msgid ".vframepsp is meaningless, assuming .vframesp was meant" msgstr ".vframepsp no tiene significado, se asume que se quería .vframesp" -#: config/tc-ia64.c:3352 +#: config/tc-ia64.c:3347 msgid "Operand to .vframesp must be a constant (sp-relative offset)" msgstr "Operando de .vframesp debe ser una constante (desplazamiento relativo al sp)" -#: config/tc-ia64.c:3379 +#: config/tc-ia64.c:3374 msgid "First operand to .save not a register" msgstr "El primer operando de .save no debe ser un registro" -#: config/tc-ia64.c:3385 +#: config/tc-ia64.c:3380 msgid "Second operand to .save not a valid register" msgstr "El segundo operando de .save no es un registro válido" -#: config/tc-ia64.c:3416 config/tc-ia64.c:3427 config/tc-ia64.c:3435 +#: config/tc-ia64.c:3411 config/tc-ia64.c:3422 config/tc-ia64.c:3430 msgid "Second operand of .save contradicts .prologue" msgstr "El segundo operando de .save contradice a .prologue" -#: config/tc-ia64.c:3442 +#: config/tc-ia64.c:3437 msgid "First operand to .save not a valid register" msgstr "El primer operando de .save no es un registro válido" -#: config/tc-ia64.c:3460 +#: config/tc-ia64.c:3455 msgid "First operand to .restore must be stack pointer (sp)" msgstr "El primer operando de .restore debe ser un puntero de pila (sp)" -#: config/tc-ia64.c:3469 +#: config/tc-ia64.c:3464 msgid "Second operand to .restore must be a constant >= 0" msgstr "El segundo operando de .restore debe ser una constante >= 0" -#: config/tc-ia64.c:3479 +#: config/tc-ia64.c:3474 #, c-format msgid "Epilogue count of %lu exceeds number of nested prologues (%u)" msgstr "La cuenta de epílogo de %lu excede el número de prólogos anidados (%u)" -#: config/tc-ia64.c:3565 +#: config/tc-ia64.c:3560 #, c-format msgid "Illegal section name `%s' (causes unwind section name clash)" -msgstr "Nombre seccional «%s» ilegal (causa una colisión con el nombre seccional de desenredo)" +msgstr "Nombre de sección «%s» ilegal (causa una colisión con el nombre de sección de desenredo)" -#: config/tc-ia64.c:3742 +#: config/tc-ia64.c:3735 msgid "First operand to .altrp not a valid branch register" msgstr "El primer operando de .altrp no es un registro de ramificación válido" -#: config/tc-ia64.c:3771 +#: config/tc-ia64.c:3764 #, c-format msgid "First operand to .%s not a register" msgstr "El primer operando de .%s no es un registro" -#: config/tc-ia64.c:3776 +#: config/tc-ia64.c:3769 #, c-format msgid "Second operand to .%s not a constant" msgstr "El segundo operando de .%s no es una constante" -#: config/tc-ia64.c:3843 +#: config/tc-ia64.c:3836 #, c-format msgid "First operand to .%s not a valid register" msgstr "El primer operando de .%s no es un registro válido" -#: config/tc-ia64.c:3866 +#: config/tc-ia64.c:3859 msgid "First operand to .save.g must be a positive 4-bit constant" msgstr "El primer operando de .save.g debe ser una constante positiva de 4-bits" -#: config/tc-ia64.c:3879 +#: config/tc-ia64.c:3872 msgid "Second operand to .save.g must be a general register" msgstr "El segundo operando de .save.g debe ser un registro general" -#: config/tc-ia64.c:3884 +#: config/tc-ia64.c:3877 #, c-format msgid "Second operand to .save.g must be the first of %d general registers" msgstr "El segundo operando de .save.g debe ser el primero de %d registros generales" -#: config/tc-ia64.c:3907 +#: config/tc-ia64.c:3900 msgid "Operand to .save.f must be a positive 20-bit constant" msgstr "Operando de .save.f debe ser una constante positiva de 20-bits" -#: config/tc-ia64.c:3930 +#: config/tc-ia64.c:3923 msgid "First operand to .save.b must be a positive 5-bit constant" msgstr "El primer operando de .save.b debe ser una constante positiva de 5-bits" -#: config/tc-ia64.c:3943 +#: config/tc-ia64.c:3936 msgid "Second operand to .save.b must be a general register" msgstr "El segundo operando de .save.b debe ser un registro general" -#: config/tc-ia64.c:3948 +#: config/tc-ia64.c:3941 #, c-format msgid "Second operand to .save.b must be the first of %d general registers" msgstr "El segundo operando de .save.b debe ser el primero de %d registros generales" -#: config/tc-ia64.c:3974 +#: config/tc-ia64.c:3967 msgid "First operand to .save.gf must be a non-negative 4-bit constant" msgstr "El primer operando de .save.gf debe ser una constante de 4-bits que no sea negativa" -#: config/tc-ia64.c:3982 +#: config/tc-ia64.c:3975 msgid "Second operand to .save.gf must be a non-negative 20-bit constant" msgstr "El segundo operando de .save.gf debe ser una constante de 20-bits que no sea negativa" -#: config/tc-ia64.c:3990 +#: config/tc-ia64.c:3983 msgid "Operands to .save.gf may not be both zero" msgstr "Ambos operandos de .save.gf no pueden ser cero al mismo tiempo" -#: config/tc-ia64.c:4007 +#: config/tc-ia64.c:4000 msgid "Operand to .spill must be a constant" msgstr "Operando de .spill debe ser una constante" -#: config/tc-ia64.c:4076 +#: config/tc-ia64.c:4069 #, c-format msgid "Operand %d to .%s must be a constant" msgstr "Operando %d de .%s debe ser una constante" -#: config/tc-ia64.c:4097 +#: config/tc-ia64.c:4090 #, c-format msgid "Missing .label_state %ld" msgstr "Ausente .label_state %ld" -#: config/tc-ia64.c:4151 +#: config/tc-ia64.c:4144 msgid "Operand to .label_state must be a constant" msgstr "Operando de .label_state debe ser una constante" -#: config/tc-ia64.c:4170 +#: config/tc-ia64.c:4163 msgid "Operand to .copy_state must be a constant" msgstr "Operando de .copy_state debe ser una constante" -#: config/tc-ia64.c:4193 +#: config/tc-ia64.c:4186 msgid "First operand to .unwabi must be a constant" msgstr "El primer operando de .unwabi debe ser una constante" -#: config/tc-ia64.c:4199 +#: config/tc-ia64.c:4192 msgid "Second operand to .unwabi must be a constant" msgstr "El segundo operando de .unwabi debe ser una constante" -#: config/tc-ia64.c:4234 +#: config/tc-ia64.c:4226 msgid "Missing .endp after previous .proc" msgstr "Ausente .endp tras .proc previo" -#: config/tc-ia64.c:4252 +#: config/tc-ia64.c:4243 msgid "Empty argument of .proc" msgstr "Argumento vacío de .proc" -#: config/tc-ia64.c:4257 +#: config/tc-ia64.c:4248 #, c-format msgid "`%s' was already defined" msgstr "«%s» ya está definida" -#: config/tc-ia64.c:4300 +#: config/tc-ia64.c:4291 msgid "Initial .body should precede any instructions" msgstr "El .body inicial debe preceder a cualquier instrucción" -#: config/tc-ia64.c:4319 +#: config/tc-ia64.c:4310 msgid ".prologue within prologue" msgstr ".prologue dentro del prólogo" -#: config/tc-ia64.c:4324 +#: config/tc-ia64.c:4315 msgid "Initial .prologue should precede any instructions" msgstr "El .prologue inicial debe preceder a cualquier instrucción" -#: config/tc-ia64.c:4334 +#: config/tc-ia64.c:4325 msgid "First operand to .prologue must be a positive 4-bit constant" msgstr "El primer operando de .prologue debe ser una constante positiva de 4-bits" -#: config/tc-ia64.c:4336 +#: config/tc-ia64.c:4327 msgid "Pointless use of zero first operand to .prologue" msgstr "Uso sin sentido del primer operando en cero de .prologue" -#: config/tc-ia64.c:4352 +#: config/tc-ia64.c:4343 msgid "Using a constant as second operand to .prologue is deprecated" msgstr "Utilizando una constante como el segundo operando de .prologue es obsoleto" -#: config/tc-ia64.c:4358 +#: config/tc-ia64.c:4349 msgid "Second operand to .prologue must be a general register" msgstr "El segundo operando de .prologue debe ser un registro general" -#: config/tc-ia64.c:4363 +#: config/tc-ia64.c:4354 #, c-format msgid "Second operand to .prologue must be the first of %d general registers" msgstr "El segundo operando de .prologue debe ser el primero de %d registros generales" -#: config/tc-ia64.c:4475 +#: config/tc-ia64.c:4467 #, c-format msgid "`%s' was not defined within procedure" msgstr "«%s» no se definió dentro del procedimiento" -#: config/tc-ia64.c:4511 +#: config/tc-ia64.c:4502 msgid "Empty argument of .endp" msgstr "Argumento vacío para .endp" -#: config/tc-ia64.c:4525 +#: config/tc-ia64.c:4516 #, c-format msgid "`%s' was not specified with previous .proc" msgstr "«%s» no se especificó con el .proc previo" -#: config/tc-ia64.c:4540 +#: config/tc-ia64.c:4531 #, c-format msgid "`%s' should be an operand to this .endp" msgstr "«%s» debe ser un operando para este .endp" -#: config/tc-ia64.c:4581 config/tc-ia64.c:4902 config/tc-ia64.c:5211 +#: config/tc-ia64.c:4572 config/tc-ia64.c:4879 config/tc-ia64.c:5185 msgid "Comma expected" msgstr "Se esperaba una coma" -#: config/tc-ia64.c:4621 +#: config/tc-ia64.c:4612 msgid "Expected '['" msgstr "Se esperaba '['" -#: config/tc-ia64.c:4630 config/tc-ia64.c:7744 +#: config/tc-ia64.c:4621 config/tc-ia64.c:7719 msgid "Expected ']'" msgstr "Se esperaba ']'" -#: config/tc-ia64.c:4635 +#: config/tc-ia64.c:4626 msgid "Number of elements must be positive" msgstr "El número de elementos debe ser positivos" -#: config/tc-ia64.c:4646 +#: config/tc-ia64.c:4637 #, c-format msgid "Used more than the declared %d rotating registers" msgstr "Se usaron más registros rotantes que los %d declarados" -#: config/tc-ia64.c:4654 +#: config/tc-ia64.c:4645 msgid "Used more than the available 96 rotating registers" msgstr "Se usaron más registros rotantes que los 96 disponibles" -#: config/tc-ia64.c:4661 +#: config/tc-ia64.c:4652 msgid "Used more than the available 48 rotating registers" msgstr "Se usaron más registros rotantes que los 48 disponibles" -#: config/tc-ia64.c:4689 +#: config/tc-ia64.c:4675 #, c-format msgid "Attempt to redefine register set `%s'" msgstr "Se intenta redefinir el conjunto de registros «%s»" -#: config/tc-ia64.c:4754 +#: config/tc-ia64.c:4739 #, c-format msgid "Unknown psr option `%s'" msgstr "Opción ‘psr’ desconocida «%s»" -#: config/tc-ia64.c:4788 -msgid "Missing section name" -msgstr "Ausente el nombre seccional" - -#: config/tc-ia64.c:4797 +#: config/tc-ia64.c:4774 msgid "Comma expected after section name" -msgstr "Se esperaba una coma tras nombre seccional" +msgstr "Se esperaba una coma tras nombre de sección" -#: config/tc-ia64.c:4808 +#: config/tc-ia64.c:4785 msgid "Creating sections with .xdataN/.xrealN/.xstringZ is deprecated." msgstr "Crear secciones con .xdataN/.xrealN/.xstringZ es obsoleto." -#: config/tc-ia64.c:4897 +#: config/tc-ia64.c:4874 msgid "Register name expected" msgstr "Se esperaba un nombre de registro" -#: config/tc-ia64.c:4910 +#: config/tc-ia64.c:4887 msgid "Register value annotation ignored" msgstr "Se descarta la anotación del valor del registro" -#: config/tc-ia64.c:4949 +#: config/tc-ia64.c:4926 msgid "Directive invalid within a bundle" msgstr "Directiva no válida dentro de una agrupación" -#: config/tc-ia64.c:5043 +#: config/tc-ia64.c:5020 msgid "Missing predicate relation type" msgstr "Ausente el tipo de relación del predicado" -#: config/tc-ia64.c:5049 +#: config/tc-ia64.c:5026 msgid "Unrecognized predicate relation type" msgstr "No reconocido el tipo de relación de predicado" -#: config/tc-ia64.c:5095 +#: config/tc-ia64.c:5072 msgid "Bad register range" -msgstr "Rango de registro equivocado" +msgstr "Rango de registro incorrecto" -#: config/tc-ia64.c:5104 config/tc-ia64.c:7690 +#: config/tc-ia64.c:5081 config/tc-ia64.c:7665 msgid "Predicate register expected" msgstr "Se esperaba un registro de predicado" -#: config/tc-ia64.c:5109 +#: config/tc-ia64.c:5086 msgid "Duplicate predicate register ignored" msgstr "Se descarta el registro de predicado duplicado" -#: config/tc-ia64.c:5125 +#: config/tc-ia64.c:5102 msgid "Predicate source and target required" msgstr "Se requieren el predicado fuente y destino" -#: config/tc-ia64.c:5127 config/tc-ia64.c:5139 +#: config/tc-ia64.c:5104 config/tc-ia64.c:5116 msgid "Use of p0 is not valid in this context" msgstr "El uso de p0 no es válido en este contexto" -#: config/tc-ia64.c:5134 +#: config/tc-ia64.c:5111 msgid "At least two PR arguments expected" msgstr "Se esperaban al menos dos argumentos PR" -#: config/tc-ia64.c:5148 +#: config/tc-ia64.c:5125 msgid "At least one PR argument expected" msgstr "Se esperaba al menos un argumento PR" -#: config/tc-ia64.c:5182 -#, c-format -msgid "Inserting \"%s\" into entry hint table failed: %s" -msgstr "Falló la inserción de «%s» en la distribución de entrada de pistas: %s" +#: config/tc-ia64.c:5157 +#, fuzzy, c-format +#| msgid "duplicate instruction %s" +msgid "duplicate entry hint %s" +msgstr "instrucción duplicada %s" #. FIXME -- need 62-bit relocation type -#: config/tc-ia64.c:5662 +#: config/tc-ia64.c:5632 msgid "62-bit relocation not yet implemented" msgstr "la reubicación de 62-bits aún no está implementada" #. XXX technically, this is wrong: we should not be issuing warning #. messages until we're sure this instruction pattern is going to #. be used! -#: config/tc-ia64.c:5748 +#: config/tc-ia64.c:5718 msgid "lower 16 bits of mask ignored" msgstr "16 bit por debajo de máscara descartados" -#: config/tc-ia64.c:5979 +#: config/tc-ia64.c:5947 msgid "stride must be a multiple of 64; lower 6 bits ignored" msgstr "zancada debe ser un múltiplo de 64, menor que 6 bits descartados" -#: config/tc-ia64.c:6097 +#: config/tc-ia64.c:6066 msgid "Expected separator `='" msgstr "Se esperaba el separador `='" -#: config/tc-ia64.c:6131 +#: config/tc-ia64.c:6102 msgid "Duplicate equal sign (=) in instruction" msgstr "Signo igual (=) duplicado en la instrucción" -#: config/tc-ia64.c:6138 +#: config/tc-ia64.c:6109 #, c-format msgid "Illegal operand separator `%c'" msgstr "Separador ilegal de operando `%c'" -#: config/tc-ia64.c:6253 +#: config/tc-ia64.c:6224 #, c-format msgid "Operand %u of `%s' should be %s" msgstr "Operando %u de «%s» debería ser %s" -#: config/tc-ia64.c:6257 +#: config/tc-ia64.c:6228 msgid "Wrong number of output operands" -msgstr "Número equivocado de operandos de salida" +msgstr "Número incorrecto de operandos de salida" -#: config/tc-ia64.c:6259 +#: config/tc-ia64.c:6230 msgid "Wrong number of input operands" -msgstr "Número equivocado de operandos de entrada" +msgstr "Número incorrecto de operandos de entrada" -#: config/tc-ia64.c:6261 +#: config/tc-ia64.c:6232 msgid "Operand mismatch" msgstr "No coinciden los operandos" -#: config/tc-ia64.c:6343 +#: config/tc-ia64.c:6314 #, c-format msgid "Invalid use of `%c%d' as output operand" msgstr "Uso inválido de `%c%d' como operando de salida" -#: config/tc-ia64.c:6346 +#: config/tc-ia64.c:6317 #, c-format msgid "Invalid use of `r%d' as base update address operand" msgstr "Uso inválido de `r%d' como operando direccional de actualización base" -#: config/tc-ia64.c:6370 +#: config/tc-ia64.c:6341 #, c-format msgid "Invalid duplicate use of `%c%d'" msgstr "Uso duplicado inválido de `%c%d'" -#: config/tc-ia64.c:6377 +#: config/tc-ia64.c:6348 #, c-format msgid "Invalid simultaneous use of `f%d' and `f%d'" msgstr "Uso simultáneo inválido de `f%d' y `f%d'" -#: config/tc-ia64.c:6383 +#: config/tc-ia64.c:6354 #, c-format msgid "Dangerous simultaneous use of `f%d' and `f%d'" msgstr "Uso simultáneo peligroso de `f%d' y `f%d'" -#: config/tc-ia64.c:6427 +#: config/tc-ia64.c:6398 msgid "Value truncated to 62 bits" msgstr "Valor truncado a 62 bits" -#: config/tc-ia64.c:6495 +#: config/tc-ia64.c:6466 #, c-format msgid "Bad operand value: %s" -msgstr "Valor de operando equivocado: %s" +msgstr "Valor de operando incorrecto: %s" #. Give an error if a frag containing code is not aligned to a 16 byte #. boundary. -#: config/tc-ia64.c:6570 config/tc-ia64.h:177 +#: config/tc-ia64.c:6541 config/tc-ia64.h:177 msgid "instruction address is not a multiple of 16" msgstr "la instrucción direccional no es un múltiplo de 16" -#: config/tc-ia64.c:6638 +#: config/tc-ia64.c:6609 #, c-format msgid "`%s' must be last in bundle" msgstr "«%s» debe ser el último en el grupo" -#: config/tc-ia64.c:6670 +#: config/tc-ia64.c:6641 #, c-format msgid "Internal error: don't know how to force %s to end of instruction group" msgstr "Error interno: no se sabe como forzar a %s al fin del grupo de instrucciones" -#: config/tc-ia64.c:6683 +#: config/tc-ia64.c:6654 #, c-format msgid "`%s' must be last in instruction group" msgstr "«%s» debe ser el último en el grupo de instrucciones" -#: config/tc-ia64.c:6713 +#: config/tc-ia64.c:6684 msgid "Label must be first in a bundle" msgstr "La etiqueta debe estar al inicio de un grupo" -#: config/tc-ia64.c:6790 +#: config/tc-ia64.c:6761 msgid "hint in B unit may be treated as nop" msgstr "la pista en la unidad B se puede tratar como nop" -#: config/tc-ia64.c:6801 +#: config/tc-ia64.c:6772 msgid "hint in B unit can't be used" msgstr "no se puede usar la pista en la unidad B" -#: config/tc-ia64.c:6815 +#: config/tc-ia64.c:6786 msgid "emit_one_bundle: unexpected dynamic op" msgstr "emit_one_bundle: operador dinámico inesperado" -#: config/tc-ia64.c:6940 +#: config/tc-ia64.c:6926 #, c-format msgid "`%s' does not fit into %s template" msgstr "«%s» no cabe en la plantilla %s" -#: config/tc-ia64.c:6955 +#: config/tc-ia64.c:6941 #, c-format msgid "`%s' does not fit into bundle" msgstr "«%s» no cabe en el grupo" -#: config/tc-ia64.c:6967 +#: config/tc-ia64.c:6953 #, c-format msgid "`%s' can't go in %s of %s template" msgstr "«%s» no puede ir en %s de la plantilla %s" -#: config/tc-ia64.c:6973 +#: config/tc-ia64.c:6959 msgid "Missing '}' at end of file" msgstr "Ausente '}' al final del fichero" -#: config/tc-ia64.c:7120 +#: config/tc-ia64.c:7106 #, c-format msgid "Unrecognized option '-x%s'" msgstr "No reconocida la opción '-x%s'" -#: config/tc-ia64.c:7147 +#: config/tc-ia64.c:7133 msgid "" "IA-64 options:\n" " --mconstant-gp\t mark output file as using the constant-GP model\n" @@ -9253,7 +10963,7 @@ msgstr "" " \t (por defecto)\n" #. Note for translators: "automagically" can be translated as "automatically" here. -#: config/tc-ia64.c:7164 +#: config/tc-ia64.c:7150 msgid "" " -xauto\t\t automagically remove dependency violations (default)\n" " -xnone\t\t turn off dependency violation checking\n" @@ -9272,234 +10982,210 @@ msgstr "" " -xdebugx\t\t depura el revisor de violación de dependencias y\n" "\t\t\t activa la revisión de violación de dependencias\n" -#: config/tc-ia64.c:7179 +#: config/tc-ia64.c:7165 msgid "--gstabs is not supported for ia64" msgstr "no se admite --gstabs para ia64" -#: config/tc-ia64.c:7417 -#, c-format -msgid "ia64.md_begin: can't hash `%s': %s" -msgstr "ia64.md_begin: no se puede dispersar «%s»: %s" - -#: config/tc-ia64.c:7481 -#, c-format -msgid "Inserting \"%s\" into constant hash table failed: %s" -msgstr "Falló la inserción de «%s» en la distribución de dispersión de constantes: %s" - -#: config/tc-ia64.c:7493 config/tc-riscv.c:609 config/tc-tilegx.c:263 -msgid "Could not set architecture and machine" -msgstr "No se pueden establecer la arquitectura y la máquina" - -#: config/tc-ia64.c:7625 +#: config/tc-ia64.c:7600 msgid "Explicit stops are ignored in auto mode" msgstr "Se descartan las paradas explícitas en modo automático" -#: config/tc-ia64.c:7634 +#: config/tc-ia64.c:7609 msgid "Found '{' when manual bundling is already turned on" msgstr "Se encontró '{' cuando la agrupación manual ya está activada" -#: config/tc-ia64.c:7647 +#: config/tc-ia64.c:7622 msgid "Found '{' after explicit switch to automatic mode" msgstr "Se encontró '{' tras cambio explícito al modo automático" -#: config/tc-ia64.c:7653 +#: config/tc-ia64.c:7628 msgid "Found '}' when manual bundling is off" msgstr "Se encontró '}' cuando la agrupación manual está desactivada" -#: config/tc-ia64.c:7680 +#: config/tc-ia64.c:7655 msgid "Expected ')'" msgstr "Se esperaba ')'" -#: config/tc-ia64.c:7685 +#: config/tc-ia64.c:7660 msgid "Qualifying predicate expected" msgstr "Se esperaba un predicado calificador" -#: config/tc-ia64.c:7704 +#: config/tc-ia64.c:7679 msgid "Tag must come before qualifying predicate." msgstr "La etiqueta debe venir antes del predicado calificador." -#: config/tc-ia64.c:7733 +#: config/tc-ia64.c:7708 msgid "Expected ':'" msgstr "Se esperaba ':'" -#: config/tc-ia64.c:7749 +#: config/tc-ia64.c:7724 msgid "Tag name expected" msgstr "Se esperaba un nombre de etiqueta" -#: config/tc-ia64.c:7850 +#: config/tc-ia64.c:7826 msgid "Rotating register index must be a non-negative constant" msgstr "El índice de registros rotantes debe ser una constante que no sea negativa" -#: config/tc-ia64.c:7855 +#: config/tc-ia64.c:7831 #, c-format msgid "Index out of range 0..%u" -msgstr "Índice fuera de límite 0..%u" +msgstr "Índice fuera de rango 0..%u" -#: config/tc-ia64.c:7867 +#: config/tc-ia64.c:7843 msgid "Indirect register index must be a general register" msgstr "El índice de registros indirectos debe ser un registro general" -#: config/tc-ia64.c:7876 +#: config/tc-ia64.c:7852 msgid "Index can only be applied to rotating or indirect registers" -msgstr "El índice sólo se puede aplicar a registros rotantes o indirectos" +msgstr "El índice solo se puede aplicar a registros rotantes o indirectos" -#: config/tc-ia64.c:7912 config/tc-xstormy16.c:145 +#: config/tc-ia64.c:7888 config/tc-xstormy16.c:145 msgid "Expected '('" msgstr "Se esperaba '('" -#: config/tc-ia64.c:7920 config/tc-pdp11.c:445 config/tc-pdp11.c:509 -#: config/tc-pdp11.c:543 config/tc-tilegx.c:1047 config/tc-tilepro.c:938 +#: config/tc-ia64.c:7896 config/tc-pdp11.c:466 config/tc-pdp11.c:530 +#: config/tc-pdp11.c:564 config/tc-tilegx.c:1044 config/tc-tilepro.c:932 #: config/tc-xstormy16.c:154 msgid "Missing ')'" msgstr "Ausente ')'" -#: config/tc-ia64.c:7938 config/tc-xstormy16.c:161 +#: config/tc-ia64.c:7914 config/tc-xstormy16.c:161 msgid "Not a symbolic expression" msgstr "No es una expresión simbólica" -#: config/tc-ia64.c:7943 config/tc-ia64.c:7957 +#: config/tc-ia64.c:7919 config/tc-ia64.c:7933 msgid "Illegal combination of relocation functions" msgstr "Combinación ilegal de funciones de reubicación" -#: config/tc-ia64.c:8046 +#: config/tc-ia64.c:8022 msgid "No current frame" msgstr "Sin marco actual" -#: config/tc-ia64.c:8048 +#: config/tc-ia64.c:8024 #, c-format msgid "Register number out of range 0..%u" -msgstr "Número de registro fuera de límite 0..%u" +msgstr "Número de registro fuera de rango 0..%u" -#: config/tc-ia64.c:8087 +#: config/tc-ia64.c:8063 msgid "Standalone `#' is illegal" msgstr "Un `#' solo es ilegal" -#: config/tc-ia64.c:8090 +#: config/tc-ia64.c:8066 msgid "Redundant `#' suffix operators" msgstr "Operadores de sufijo `#' redundantes" -#: config/tc-ia64.c:8248 +#: config/tc-ia64.c:8224 #, c-format msgid "Unhandled dependency %s for %s (%s), note %d" msgstr "Dependencia %s sin manipular para %s (%s), nota %d" -#: config/tc-ia64.c:9561 +#: config/tc-ia64.c:9537 #, c-format msgid "Unrecognized dependency specifier %d\n" msgstr "No reconocido el especificador de dependencia %d\n" -#: config/tc-ia64.c:10431 +#: config/tc-ia64.c:10398 msgid "Only the first path encountering the conflict is reported" msgstr "Solamente se reporta la primera ruta donde se encuentra el conflicto" -#: config/tc-ia64.c:10433 +#: config/tc-ia64.c:10400 msgid "This is the location of the conflicting usage" msgstr "Esta es la ubicación del uso conflictivo" -#: config/tc-ia64.c:10695 +#: config/tc-ia64.c:10662 #, c-format msgid "Unknown opcode `%s'" msgstr "Código operativo desconocido «%s»" -#: config/tc-ia64.c:10773 +#: config/tc-ia64.c:10740 #, c-format msgid "AR %d can only be accessed by %c-unit" -msgstr "AR %d sólo se puede acceder por %c-unit" +msgstr "AR %d solo se puede acceder por %c-unit" -#: config/tc-ia64.c:10785 +#: config/tc-ia64.c:10752 msgid "hint.b may be treated as nop" msgstr "hint.b quizá es tratado como nop" -#: config/tc-ia64.c:10788 +#: config/tc-ia64.c:10755 msgid "hint.b shouldn't be used" msgstr "no se debe usar hint.b" -#: config/tc-ia64.c:10827 +#: config/tc-ia64.c:10794 #, c-format msgid "`%s' cannot be predicated" msgstr "«%s» no puede ser predicado" -#: config/tc-ia64.c:10899 +#: config/tc-ia64.c:10867 msgid "Closing bracket missing" msgstr "Ausentea llave que cierra" -#: config/tc-ia64.c:10908 +#: config/tc-ia64.c:10876 msgid "Index must be a general register" msgstr "El índice debe ser un registro general" -#: config/tc-ia64.c:11073 +#: config/tc-ia64.c:11041 #, c-format msgid "Unsupported fixup size %d" msgstr "No se admite el tamaño de compostura %d" #. This should be an error, but since previously there wasn't any #. diagnostic here, don't make it fail because of this for now. -#: config/tc-ia64.c:11345 +#: config/tc-ia64.c:11313 #, c-format msgid "Cannot express %s%d%s relocation" msgstr "No se puede expresar la reubicación %s%d%s" -#: config/tc-ia64.c:11364 +#: config/tc-ia64.c:11332 msgid "No addend allowed in @fptr() relocation" msgstr "No se permite addend en la reubicación @fptr()" -#: config/tc-ia64.c:11403 +#: config/tc-ia64.c:11371 msgid "integer operand out of range" -msgstr "operando entero fuera de límite" +msgstr "operando entero fuera de rango" -#: config/tc-ia64.c:11470 +#: config/tc-ia64.c:11438 #, c-format msgid "%s must have a constant value" msgstr "%s debe tener un valor constante" -#: config/tc-ia64.c:11490 +#: config/tc-ia64.c:11458 msgid "cannot resolve @slotcount parameter" msgstr "no se puede resolver el parámetro @slotcount" -#: config/tc-ia64.c:11523 +#: config/tc-ia64.c:11491 msgid "invalid @slotcount value" msgstr "valor de @slotcount inválido" -#: config/tc-ia64.c:11560 config/tc-z8k.c:1378 +#: config/tc-ia64.c:11528 config/tc-z8k.c:1388 #, c-format msgid "Cannot represent %s relocation in object file" msgstr "No se puede representar la reubicación %s en el fichero objeto" -#: config/tc-ia64.c:11671 +#: config/tc-ia64.c:11636 msgid "Can't add stop bit to mark end of instruction group" msgstr "No se puede agregar el bit de parada para marcar el fin del grupo de instrucciones" -#: config/tc-ia64.c:11780 read.c:2599 read.c:3308 read.c:3660 stabs.c:464 +#: config/tc-ia64.c:11744 read.c:2690 read.c:3349 read.c:3917 stabs.c:461 #, c-format msgid "expected comma after \"%s\"" msgstr "se esperaba una coma tras «%s»" -#: config/tc-ia64.c:11822 +#: config/tc-ia64.c:11785 #, c-format msgid "`%s' is already the alias of %s `%s'" msgstr "el símbolo «%s» ya es el alias de %s «%s»" -#: config/tc-ia64.c:11832 +#: config/tc-ia64.c:11796 #, c-format msgid "%s `%s' already has an alias `%s'" msgstr "%s «%s» ya tiene un alias «%s»" -#: config/tc-ia64.c:11843 -#, c-format -msgid "inserting \"%s\" into %s alias hash table failed: %s" -msgstr "falló la inserción de «%s» en la distribución de dispersión de alias %s: %s" - -#: config/tc-ia64.c:11851 -#, c-format -msgid "inserting \"%s\" into %s name hash table failed: %s" -msgstr "falló la inserción de «%s» en la distribución de dispersión de nombres %s: %s" - -#: config/tc-ia64.c:11877 +#: config/tc-ia64.c:11829 #, c-format msgid "symbol `%s' aliased to `%s' is not used" msgstr "el símbolo «%s» que tiene como alias a «%s» no se utiliza" -#: config/tc-ia64.c:11900 +#: config/tc-ia64.c:11855 #, c-format msgid "section `%s' aliased to `%s' is not used" msgstr "la sección «%s» que tiene como alias a «%s» no se utiliza" @@ -9519,68 +11205,270 @@ msgstr " -mip2022 restringe a insns de IP2022 \n" msgid " -mip2022ext permit extended IP2022 insn\n" msgstr " -mip2022ext permite insns extendidas de IP2022\n" -#: config/tc-iq2000.c:362 +#: config/tc-ip2k.c:232 +msgid "relaxation not supported\n" +msgstr "no se admite la relajación\n" + +#: config/tc-iq2000.c:356 #, c-format msgid "the yielding instruction %s may not be in a delay slot." msgstr "la instrucción que produce %s no puede estar en una ranura de retardo." -#: config/tc-iq2000.c:370 +#: config/tc-iq2000.c:364 #, c-format msgid "Register number (R%ld) for double word access must be even." msgstr "El número de registro (R%ld) para el acceso de double word debe ser par." -#: config/tc-iq2000.c:379 config/tc-iq2000.c:384 config/tc-iq2000.c:389 -#: config/tc-iq2000.c:406 config/tc-mt.c:244 config/tc-mt.c:249 +#: config/tc-iq2000.c:373 config/tc-iq2000.c:378 config/tc-iq2000.c:383 +#: config/tc-iq2000.c:400 config/tc-mt.c:246 config/tc-mt.c:251 #, c-format msgid "operand references R%ld of previous load." msgstr "operando se refiere a R%ld de la carga previa." -#: config/tc-iq2000.c:394 +#: config/tc-iq2000.c:388 msgid "instruction implicitly accesses R31 of previous load." msgstr "instrucción accede implícitamente a R31 de carga anterior." -#: config/tc-iq2000.c:649 config/tc-mep.c:2008 +#: config/tc-iq2000.c:643 config/tc-mep.c:2008 msgid "Unmatched high relocation" msgstr "Reubicación high sin coincidencia" -#: config/tc-iq2000.c:826 config/tc-mips.c:19372 config/tc-score.c:5814 +#: config/tc-iq2000.c:820 config/tc-mips.c:19791 config/tc-score.c:5784 msgid ".end not in text section" msgstr ".end no está en la sección text" -#: config/tc-iq2000.c:830 config/tc-score.c:5817 +#: config/tc-iq2000.c:824 config/tc-score.c:5787 msgid ".end directive without a preceding .ent directive." msgstr "directiva .end sin una directiva .ent precedente." -#: config/tc-iq2000.c:839 config/tc-score.c:5825 +#: config/tc-iq2000.c:833 config/tc-score.c:5795 msgid ".end symbol does not match .ent symbol." msgstr ".end simbólico no coincide con el símbolo .ent." -#: config/tc-iq2000.c:842 config/tc-mips.c:19392 config/tc-score.c:5830 +#: config/tc-iq2000.c:836 config/tc-mips.c:19811 config/tc-score.c:5800 msgid ".end directive missing or unknown symbol" msgstr "ausente la directiva .end o hay un símbolo desconocido" -#: config/tc-iq2000.c:860 +#: config/tc-iq2000.c:854 msgid "Expected simple number." msgstr "Se esperaba un número simple." -#: config/tc-iq2000.c:889 config/tc-mips.c:19297 config/tc-score.c:5666 +#: config/tc-iq2000.c:883 config/tc-mips.c:19716 config/tc-score.c:5650 #, c-format msgid " *input_line_pointer == '%c' 0x%02x\n" msgstr " *input_line_pointer == '%c' 0x%02x\n" -#: config/tc-iq2000.c:891 +#: config/tc-iq2000.c:885 msgid "Invalid number" msgstr "Número inválido" -#: config/tc-iq2000.c:925 config/tc-score.c:5704 +#: config/tc-iq2000.c:919 config/tc-score.c:5681 msgid ".ent or .aent not in text section." msgstr ".ent o .aent no están en la sección text." -#: config/tc-iq2000.c:928 +#: config/tc-iq2000.c:922 msgid "missing `.end'" msgstr "ausente `.end'" -#: config/tc-m32c.c:142 +#: config/tc-kvx.c:1737 +#, fuzzy +#| msgid "signed value out of range" +msgid "signed16 PCREL value out of range" +msgstr "valor firmado fuera de rango" + +#: config/tc-kvx.c:1745 +#, fuzzy +#| msgid "signed value out of range" +msgid "signed43 PCREL value out of range" +msgstr "valor firmado fuera de rango" + +#: config/tc-kvx.c:1752 +#, fuzzy +#| msgid "signed value out of range" +msgid "signed37 PCREL value out of range" +msgstr "valor firmado fuera de rango" + +#: config/tc-loongarch.c:521 +#, c-format +msgid "insn name: %s\tformat: %s\tsyntax error" +msgstr "" + +#: config/tc-loongarch.c:524 +#, c-format +msgid "" +"insn name: %s\n" +"format: %s\n" +"we want macro but macro is NULL" +msgstr "" + +#: config/tc-loongarch.c:529 +#, c-format +msgid "" +"insn name: %s\n" +"format: %s\n" +"macro: %s\tsyntax error" +msgstr "" + +#: config/tc-loongarch.c:570 +#, c-format +msgid "Unsupported use of %s" +msgstr "No se admite el uso de %s" + +#: config/tc-loongarch.c:627 config/tc-riscv.c:4994 +msgid ".option pop with no .option push" +msgstr "opción .option pop sin opción .option push" + +#: config/tc-loongarch.c:637 config/tc-riscv.c:5007 +#, fuzzy, c-format +#| msgid "Unrecognized .option directive: %s\n" +msgid "unrecognized .option directive: %s" +msgstr "No reconoció directiva .option: %s\n" + +#: config/tc-loongarch.c:700 +#, fuzzy +#| msgid "Internal Error: bad instruction length" +msgid "internal error: we have no internal label yet" +msgstr "Error interno: longitud incorrecta de instrucción" + +#: config/tc-loongarch.c:805 +#, fuzzy +#| msgid "hint.b shouldn't be used" +msgid "This label shouldn't be with addend." +msgstr "no se debe usar hint.b" + +#: config/tc-loongarch.c:851 +#, fuzzy +#| msgid "Number too large" +msgid "expr too huge" +msgstr "Número demasiado grande" + +#: config/tc-loongarch.c:878 +#, c-format +msgid "" +"not support reloc bit-field\n" +"fmt: %c%c %s\n" +"args: %s" +msgstr "" + +#: config/tc-loongarch.c:949 config/tc-loongarch.c:974 +#, fuzzy, c-format +#| msgid ".begin literal is deprecated; use .literal instead" +msgid "register alias %s is deprecated, use %s instead" +msgstr "El uso de .begin literal es obsoleto. Utilice en su lugar .literal" + +#: config/tc-loongarch.c:1007 +#, fuzzy +#| msgid "unknown opcode" +msgid "unknown escape" +msgstr "desconoce código operacional" + +#: config/tc-loongarch.c:1034 +#, c-format +msgid "require imm low %d bit is 0." +msgstr "" + +#. How to do after we detect overflow. +#: config/tc-loongarch.c:1046 +#, c-format +msgid "" +"Immediate overflow.\n" +"format: %c%c%s\n" +"arg: %s" +msgstr "" + +#: config/tc-loongarch.c:1129 +msgid "atomic memory operations insns require rd != rj && rd != rk when rd isn't r0" +msgstr "" + +#: config/tc-loongarch.c:1143 +msgid "bstr(ins|pick).[wd] require msbd >= lsbd" +msgstr "" + +#: config/tc-loongarch.c:1153 +msgid "g?csrxchg require rj != r0 && rj != r1" +msgstr "" + +#: config/tc-loongarch.c:1259 +#, fuzzy, c-format +#| msgid "Unsupported RISC-V relocation number %d" +msgid "no HOWTO loong relocation number %d" +msgstr "No admitido número de reubicación RISC-V %d" + +#: config/tc-loongarch.c:1272 +#, fuzzy +#| msgid "Internal error: Can't hash %s: %s" +msgid "Internal error: not support relax now" +msgstr "Error interno: No se puede dispersar %s: %s" + +#: config/tc-loongarch.c:1334 +#, c-format +msgid "li overflow: hi32:0x%x lo32:0x%x" +msgstr "" + +#: config/tc-loongarch.c:1339 +msgid "we can't li.d on 32bit-arch" +msgstr "" + +#: config/tc-loongarch.c:1438 +#, fuzzy, c-format +#| msgid "no such instruction: `%s'" +msgid "no match insn: %s\t%s" +msgstr "no hay tal instrucción: «%s»" + +#: config/tc-loongarch.c:1586 config/tc-loongarch.c:1593 +#, fuzzy +#| msgid "TLS relocation against a constant" +msgid "Relocation against a constant" +msgstr "TLS reubicado contra una constante" + +#: config/tc-loongarch.c:1801 config/tc-riscv.c:4723 +#, fuzzy, c-format +#| msgid "internal error: bad CFA value #%d" +msgid "internal: bad CFA value #%d" +msgstr "error interno: valor CFA incorrecto nº%d" + +#: config/tc-loongarch.c:1813 +#, fuzzy +#| msgid "TLS relocation against a constant" +msgid "Relocation against a constant." +msgstr "TLS reubicado contra una constante" + +#: config/tc-loongarch.c:1894 config/tc-riscv.c:5228 +#, c-format +msgid "cannot represent %s relocation in object file" +msgstr "no puede representar reubicación %s en fichero objeto" + +#: config/tc-loongarch.c:1923 +#, fuzzy, c-format +#| msgid "unknown register `%s'" +msgid "unknown register `%s`" +msgstr "registro desconocido «%s»" + +#: config/tc-loongarch.c:1997 +#, fuzzy, c-format +#| msgid "SPARC options:\n" +msgid "LARCH options:\n" +msgstr "Opciones SPARC:\n" + +#. FIXME +#: config/tc-loongarch.c:1999 +#, c-format +msgid "" +" -mthin-add-sub\t Convert a pair of R_LARCH_ADD32/64 and R_LARCH_SUB32/64 to\n" +"\t\t\t R_LARCH_32/64_PCREL as much as possible\n" +"\t\t\t The option does not affect the generation of R_LARCH_32_PCREL\n" +"\t\t\t relocations in .eh_frame\n" +" -mignore-start-align\t Ignore .align if it is at the start of a section. This option\n" +"\t\t\t can't be used when partial linking (ld -r).\n" +msgstr "" + +#: config/tc-loongarch.c:2052 +#, fuzzy +#| msgid "internal error: invalid macro" +msgid "internal error: cannot get align symbol" +msgstr "error interno: macro inválido" + +#: config/tc-m32c.c:139 #, c-format msgid " M32C specific command line options:\n" msgstr " Opciones de la línea de mandatos específicas de M32C:\n" @@ -9590,7 +11478,7 @@ msgstr " Opciones de la línea de mandatos específicas de M32C:\n" msgid "Unrecognised option: -hidden" msgstr "No reconocida la opción: -hidden" -#: config/tc-m32r.c:357 config/tc-sparc.c:651 +#: config/tc-m32r.c:357 config/tc-sparc.c:602 msgid "Unrecognized option following -K" msgstr "No reconoce opción seguida de -K" @@ -9729,78 +11617,96 @@ msgstr " -Wnuh sinónimo para -no-warn-unmatched-high\n" msgid " -KPIC generate PIC\n" msgstr " -KPIC genera PIC\n" -#: config/tc-m32r.c:846 +#: config/tc-m32r.c:847 msgid "instructions write to the same destination register." msgstr "las instrucciones escriben al mismo registro de destino." -#: config/tc-m32r.c:854 +#: config/tc-m32r.c:855 msgid "Instructions do not use parallel execution pipelines." msgstr "Las instrucciones no usan tuberías de ejecución paralela." -#: config/tc-m32r.c:862 +#: config/tc-m32r.c:863 msgid "Instructions share the same execution pipeline" msgstr "Las instrucciones comparten la misma tubería de ejecución" -#: config/tc-m32r.c:927 config/tc-m32r.c:1041 +#: config/tc-m32r.c:928 config/tc-m32r.c:1042 #, c-format msgid "not a 16 bit instruction '%s'" msgstr "no hay una instrucción 16 bit «%s»" -#: config/tc-m32r.c:939 config/tc-m32r.c:1053 config/tc-m32r.c:1237 +#: config/tc-m32r.c:940 config/tc-m32r.c:1054 config/tc-m32r.c:1238 #, c-format msgid "instruction '%s' is for the M32R2 only" -msgstr "la instrucción «%s» sólo es para el M32R2" +msgstr "la instrucción «%s» solo es para el M32R2" -#: config/tc-m32r.c:952 config/tc-m32r.c:1066 config/tc-m32r.c:1250 +#: config/tc-m32r.c:953 config/tc-m32r.c:1067 config/tc-m32r.c:1251 #, c-format msgid "unknown instruction '%s'" msgstr "desconoce instrucción «%s»" -#: config/tc-m32r.c:961 config/tc-m32r.c:1073 config/tc-m32r.c:1257 +#: config/tc-m32r.c:962 config/tc-m32r.c:1074 config/tc-m32r.c:1258 #, c-format msgid "instruction '%s' is for the M32RX only" -msgstr "la instrucción «%s» sólo es para el M32RX" +msgstr "la instrucción «%s» solo es para el M32RX" -#: config/tc-m32r.c:970 config/tc-m32r.c:1082 +#: config/tc-m32r.c:971 config/tc-m32r.c:1083 #, c-format msgid "instruction '%s' cannot be executed in parallel." msgstr "la instrucción «%s» no se puede ejecutar en paralelo." -#: config/tc-m32r.c:1025 config/tc-m32r.c:1107 config/tc-m32r.c:1314 +#: config/tc-m32r.c:1026 config/tc-m32r.c:1108 config/tc-m32r.c:1315 msgid "internal error: lookup/get operands failed" msgstr "error interno: fallaron los operandos lookup/get" -#: config/tc-m32r.c:1092 +#: config/tc-m32r.c:1093 #, c-format msgid "'%s': only the NOP instruction can be issued in parallel on the m32r" msgstr "«%s»: solamente las instrucciones NOP se puede ejecutar en paralelo en el m32r" -#: config/tc-m32r.c:1121 +#: config/tc-m32r.c:1122 #, c-format msgid "%s: output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?" msgstr "%s: la salida de la 1a instrucción es la misma que una entrada a la 2a instrucción - ¿Esto es intencional?" -#: config/tc-m32r.c:1125 +#: config/tc-m32r.c:1126 #, c-format msgid "%s: output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?" msgstr "%s: la salida de la 2a instrucción es la misma que una entrada a la 1a instrucción - ¿Esto es intencional?" -#: config/tc-m32r.c:1498 +#: config/tc-m32r.c:1489 config/tc-microblaze.c:175 +msgid "Expected comma after symbol-name: rest of line ignored." +msgstr "Se esperaba coma tras nombre del símbolo: se descarta el resto de la línea." + +#: config/tc-m32r.c:1499 #, c-format msgid ".SCOMMon length (%ld.) <0! Ignored." msgstr "¡Longitud SCOMMon (%ld.) <0! Se descarta." -#: config/tc-m32r.c:1548 +#: config/tc-m32r.c:1513 config/tc-microblaze.c:197 config/tc-ppc.c:2421 +#: config/tc-ppc.c:4355 config/tc-ppc.c:4410 +msgid "ignoring bad alignment" +msgstr "se descarta la alineamiento incorrecta" + +#: config/tc-m32r.c:1525 config/tc-microblaze.c:232 config/tc-v850.c:380 +msgid "Common alignment not a power of 2" +msgstr "La alineamiento común no es una potencia de 2" + +#: config/tc-m32r.c:1540 config/tc-microblaze.c:208 +#, c-format +msgid "Ignoring attempt to re-define symbol `%s'." +msgstr "Se descarta el intento de redefinir el símbolo «%s»." + +#: config/tc-m32r.c:1549 #, c-format msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld." msgstr "La longitud de .scomm «%s» ya es %ld. No se cambió a %ld." -#: config/tc-m32r.c:1925 config/tc-m32r.c:1978 config/tc-nds32.c:4185 -#: config/tc-nds32.c:4221 config/tc-sh.c:774 config/tc-sh.c:2457 +#: config/tc-m32r.c:1926 config/tc-m32r.c:1979 config/tc-nds32.c:4786 +#: config/tc-nds32.c:4830 config/tc-sh.c:391 config/tc-sh.c:2047 msgid "Invalid PIC expression." msgstr "Expresión PIC no válida." -#: config/tc-m32r.c:2069 +#: config/tc-m32r.c:2070 msgid "Unmatched high/shigh reloc" msgstr "Reubicación high/shigh sin coincidencia" @@ -9837,7 +11743,7 @@ msgstr "" " --force-long-branchs siempre convierte las ramificaciones relativas en\n" " absolutas\n" " -S,--short-branchs no convierte las ramificaciones relativas en\n" -" absolutas cuando el desplazamiento está fuera de límite\n" +" absolutas cuando el desplazamiento está fuera de rango\n" " --strict-direct-mode no convierte el modo directo en modo extendido\n" " cuando la instrucción no admite modo directo\n" " --print-insn-syntax escribe la sintaxis de la instrucción en caso de\n" @@ -9862,60 +11768,60 @@ msgstr "Nombre # Modos Min ops Max ops Masc. modos # Usado\n" msgid "Option `%s' is not recognized." msgstr "No reconocida la opción «%s»." -#: config/tc-m68hc11.c:748 +#: config/tc-m68hc11.c:746 msgid "imm3" msgstr "imm3" -#: config/tc-m68hc11.c:756 +#: config/tc-m68hc11.c:754 msgid "RD" msgstr "RD" -#: config/tc-m68hc11.c:764 +#: config/tc-m68hc11.c:762 msgid "RD,RS" msgstr "RD,RS" -#: config/tc-m68hc11.c:772 +#: config/tc-m68hc11.c:770 msgid "RI, #imm4" msgstr "RI, #imm4" -#: config/tc-m68hc11.c:804 +#: config/tc-m68hc11.c:802 msgid "RD, (RI,#offs5)" msgstr "RD, (RI,#offs5)" -#: config/tc-m68hc11.c:856 +#: config/tc-m68hc11.c:854 msgid "#<imm8>" msgstr "#<imm8>" -#: config/tc-m68hc11.c:865 +#: config/tc-m68hc11.c:863 msgid "#<imm16>" msgstr "#<imm16>" -#: config/tc-m68hc11.c:874 config/tc-m68hc11.c:883 +#: config/tc-m68hc11.c:872 config/tc-m68hc11.c:881 msgid "<imm8>,X" msgstr "<imm8>,X" -#: config/tc-m68hc11.c:910 +#: config/tc-m68hc11.c:908 msgid "*<abs8>" msgstr "*<abs8>" -#: config/tc-m68hc11.c:922 +#: config/tc-m68hc11.c:920 msgid "#<mask>" msgstr "#<máscara>" -#: config/tc-m68hc11.c:932 +#: config/tc-m68hc11.c:930 #, c-format msgid "symbol%d" msgstr "símbolo%d" -#: config/tc-m68hc11.c:934 +#: config/tc-m68hc11.c:932 msgid "<abs>" msgstr "<abs>" -#: config/tc-m68hc11.c:953 +#: config/tc-m68hc11.c:951 msgid "<label>" msgstr "<etiqueta>" -#: config/tc-m68hc11.c:969 +#: config/tc-m68hc11.c:967 #, c-format msgid "" "# Example of `%s' instructions\n" @@ -9926,103 +11832,106 @@ msgstr "" "\t.sect .text\n" "_start:\n" -#: config/tc-m68hc11.c:1016 +#: config/tc-m68hc11.c:1014 #, c-format msgid "Instruction `%s' is not recognized." msgstr "No reconocida la instrucción «%s»." -#: config/tc-m68hc11.c:1021 +#: config/tc-m68hc11.c:1019 #, c-format msgid "Instruction formats for `%s':" msgstr "Formatos de instrucción para «%s»:" -#: config/tc-m68hc11.c:1173 +#: config/tc-m68hc11.c:1171 #, c-format msgid "Immediate operand is not allowed for operand %d." -msgstr "No se permite un operando inmediato para operando %d." +msgstr "No se permite un operando inmediato para el operando %d." -#: config/tc-m68hc11.c:1217 +#: config/tc-m68hc11.c:1215 msgid "Indirect indexed addressing is not valid for 68HC11." -msgstr "El direccionamiento indizado indirecto no es válido para 68HC11." +msgstr "El direccionamiento indexado indirecto no es válido para 68HC11." -#: config/tc-m68hc11.c:1237 +#: config/tc-m68hc11.c:1235 msgid "Spurious `,' or bad indirect register addressing mode." -msgstr "`,' sobrante o modo de direccionamiento de registro indirecto equivocado." +msgstr "`,' sobrante o modo de direccionamiento de registro indirecto incorrecto." -#: config/tc-m68hc11.c:1259 +#: config/tc-m68hc11.c:1257 msgid "Missing second register or offset for indexed-indirect mode." -msgstr "Ausenten el segundo registro o el desplazamiento para el modo indizado indirecto." +msgstr "Ausenten el segundo registro o el desplazamiento para el modo indexado indirecto." -#: config/tc-m68hc11.c:1269 +#: config/tc-m68hc11.c:1267 msgid "Missing second register for indexed-indirect mode." -msgstr "Ausente el segundo registro para el modo indizado indirecto." +msgstr "Ausente el segundo registro para el modo indexado indirecto." -#: config/tc-m68hc11.c:1285 +#: config/tc-m68hc11.c:1283 msgid "Missing `]' to close indexed-indirect mode." -msgstr "Ausente `]' para cerrar el modo indizado directo." +msgstr "Ausente `]' para cerrar el modo indexado directo." -#: config/tc-m68hc11.c:1330 config/tc-m68hc11.c:2961 config/tc-m68hc11.c:3073 +#: config/tc-m68hc11.c:1328 config/tc-m68hc11.c:2961 config/tc-m68hc11.c:3073 #: config/tc-m68hc11.c:3147 config/tc-m68hc11.c:3331 config/tc-m68hc11.c:3402 msgid "Illegal operand." msgstr "Operando ilegal." #. Looks like OP_R_R. -#: config/tc-m68hc11.c:1335 config/tc-m68hc11.c:2966 config/tc-m68hc11.c:3078 +#: config/tc-m68hc11.c:1333 config/tc-m68hc11.c:2966 config/tc-m68hc11.c:3078 #: config/tc-m68hc11.c:3152 config/tc-m68hc11.c:3258 config/tc-m68hc11.c:3310 #: config/tc-m68hc11.c:3318 config/tc-m68hc11.c:3336 msgid "Missing operand." msgstr "Ausente operando." -#: config/tc-m68hc11.c:1388 +#: config/tc-m68hc11.c:1386 msgid "Pre-increment mode is not valid for 68HC11" msgstr "El modo de pre-incremento no es válido para 68HC11" -#: config/tc-m68hc11.c:1401 +#: config/tc-m68hc11.c:1399 msgid "Wrong register in register indirect mode." -msgstr "Registro equivocado en el modo indirecto de registro." +msgstr "Registro incorrecto en el modo indirecto de registro." -#: config/tc-m68hc11.c:1409 +#: config/tc-m68hc11.c:1407 msgid "Missing `]' to close register indirect operand." msgstr "Ausente `]' para cerrar operando indirecto de registro." -#: config/tc-m68hc11.c:1429 +#: config/tc-m68hc11.c:1427 msgid "Post-decrement mode is not valid for 68HC11." msgstr "El modo de post-decremento no es válido para 68HC11." -#: config/tc-m68hc11.c:1437 +#: config/tc-m68hc11.c:1435 msgid "Post-increment mode is not valid for 68HC11." msgstr "El modo de post-incremento no es válido para 68HC11." -#: config/tc-m68hc11.c:1455 +#: config/tc-m68hc11.c:1453 msgid "Invalid indexed indirect mode." -msgstr "Modo indizado indirecto inválido." +msgstr "Modo indexado indirecto inválido." -#: config/tc-m68hc11.c:1579 -#, c-format -msgid "Trap id `%ld' is out of range." -msgstr "El id de captura `%ld' está fuera de límite." +#: config/tc-m68hc11.c:1577 +#, fuzzy, c-format +#| msgid "Trap id `%ld' is out of range." +msgid "Trap id `%<PRId64>' is out of range." +msgstr "El id de captura `%ld' está fuera de rango." -#: config/tc-m68hc11.c:1583 +#: config/tc-m68hc11.c:1582 msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]." msgstr "El id de captura debe estar dentro de [0x30..0x39] o [0x40..0xff]" -#: config/tc-m68hc11.c:1590 config/tc-m68hc11.c:1741 -#, c-format -msgid "Operand out of 8-bit range: `%ld'." +#: config/tc-m68hc11.c:1589 config/tc-m68hc11.c:1741 +#, fuzzy, c-format +#| msgid "Operand out of 8-bit range: `%ld'." +msgid "Operand out of 8-bit range: `%<PRId64>'." msgstr "Operando fuera del límite de 8-bit: `%ld'." #: config/tc-m68hc11.c:1597 msgid "The trap id must be a constant." msgstr "El id de captura debe ser una constante." -#: config/tc-m68hc11.c:1629 config/tc-m68hc11.c:1784 config/tc-xgate.c:1345 +#: config/tc-m68hc11.c:1629 config/tc-m68hc11.c:1784 config/tc-xgate.c:1347 #, c-format msgid "Operand `%x' not recognized in fixup8." msgstr "No reconoce operando `%x' en fixup8." #: config/tc-m68hc11.c:1646 config/tc-m68hc11.c:1694 -#, c-format -msgid "Operand out of 16-bit range: `%ld'." +#, fuzzy, c-format +#| msgid "Operand out of 16-bit range: `%ld'." +msgid "Operand out of 16-bit range: `%<PRId64>'." msgstr "Operando fuera del límite de 16-bit: `%ld'." #: config/tc-m68hc11.c:1677 config/tc-m68hc11.c:1708 @@ -10038,7 +11947,7 @@ msgstr "Conversión de ramificación inesperada con `%x'" #: config/tc-m68hc11.c:1887 config/tc-m68hc11.c:2019 #, c-format msgid "Operand out of range for a relative branch: `%ld'" -msgstr "Operando fuera de límite para una ramificación relativa: `%ld'" +msgstr "Operando fuera de rango para una ramificación relativa: `%ld'" #: config/tc-m68hc11.c:1987 msgid "Invalid register for dbcc/tbcc instruction." @@ -10047,7 +11956,7 @@ msgstr "Registro inválido para la instrucción dbcc/tbcc." #: config/tc-m68hc11.c:2075 #, c-format msgid "Increment/decrement value is out of range: `%ld'." -msgstr "El valor de incremento/decremento está fuera de límite: `%ld'." +msgstr "El valor de incremento/decremento está fuera de rango: `%ld'." #: config/tc-m68hc11.c:2087 msgid "Expecting a register." @@ -10073,11 +11982,11 @@ msgstr "Desplazamiento fuera del límite de 5-bit para insn movw/movb: %ld." #: config/tc-m68hc11.c:2270 msgid "Expecting register D for indexed indirect mode." -msgstr "Se espera el registro D para el modo indizado indirecto." +msgstr "Se espera el registro D para el modo indexado indirecto." #: config/tc-m68hc11.c:2272 msgid "Indexed indirect mode is not allowed for movb/movw." -msgstr "No se permite el modo indizado directo para movb/movw." +msgstr "No se permite el modo indexado directo para movb/movw." #: config/tc-m68hc11.c:2289 msgid "Invalid accumulator register." @@ -10085,7 +11994,7 @@ msgstr "Registro acumulador inválido." #: config/tc-m68hc11.c:2315 msgid "Invalid indexed register." -msgstr "Registro indizado inválido." +msgstr "Registro indexado inválido." #: config/tc-m68hc11.c:2325 msgid "Addressing mode not implemented yet." @@ -10109,22 +12018,22 @@ msgstr "Registro destino inválido." #: config/tc-m68hc11.c:2523 msgid "Invalid indexed register, expecting register X." -msgstr "Registro indizado inválido, se esperaba el registro X." +msgstr "Registro indexado inválido, se esperaba el registro X." #: config/tc-m68hc11.c:2525 msgid "Invalid indexed register, expecting register Y." -msgstr "Registro indizado inválido, se esperaba el registro Y." +msgstr "Registro indexado inválido, se esperaba el registro Y." -#: config/tc-m68hc11.c:2844 +#: config/tc-m68hc11.c:2844 config/tc-s12z.c:3804 msgid "No instruction or missing opcode." msgstr "No hay instrucción o ausente el código operacional." -#: config/tc-m68hc11.c:2854 config/tc-m68hc11.c:3532 +#: config/tc-m68hc11.c:2854 config/tc-m68hc11.c:3533 #, c-format msgid "Opcode `%s' is not recognized." msgstr "No reconocido el código operacional «%s»." -#: config/tc-m68hc11.c:2903 config/tc-m68hc11.c:3452 config/tc-m68hc11.c:3554 +#: config/tc-m68hc11.c:2903 config/tc-m68hc11.c:3452 config/tc-m68hc11.c:3555 #, c-format msgid "Garbage at end of instruction: `%s'." msgstr "Basura al final de la instrucción: «%s»." @@ -10134,457 +12043,453 @@ msgstr "Basura al final de la instrucción: «%s»." msgid "Failed to find a valid mode for `%s'." msgstr "Fallaba al encontrar un modo válido para «%s»." -#: config/tc-m68hc11.c:3464 config/tc-m68hc11.c:3682 config/tc-m68hc11.c:3688 +#: config/tc-m68hc11.c:3464 config/tc-m68hc11.c:3683 config/tc-m68hc11.c:3689 #, c-format msgid "Invalid operand for `%s'" msgstr "Operando inválido para «%s»" -#: config/tc-m68hc11.c:3740 +#: config/tc-m68hc11.c:3741 #, c-format msgid "Invalid mode: %s\n" msgstr "Modo inválido: %s\n" -#: config/tc-m68hc11.c:3799 +#: config/tc-m68hc11.c:3800 msgid "bad .relax format" -msgstr "formato de .relax equivocado" +msgstr "formato de .relax incorrecto" -#: config/tc-m68hc11.c:3843 config/tc-xgate.c:630 +#: config/tc-m68hc11.c:3844 config/tc-s12z.c:3897 config/tc-xgate.c:630 #, c-format msgid "Relocation %d is not supported by object file format." msgstr "El formato del fichero objeto no admite la reubicación %d." -#: config/tc-m68hc11.c:4120 +#: config/tc-m68hc11.c:4121 msgid "bra or bsr with undefined symbol." msgstr "bra o bsr con símbolo indefinido." -#: config/tc-m68hc11.c:4221 config/tc-m68hc11.c:4278 +#: config/tc-m68hc11.c:4222 config/tc-m68hc11.c:4279 #, c-format msgid "Subtype %d is not recognized." msgstr "No reconocido el subtipo %d." -#: config/tc-m68hc11.c:4336 config/tc-xgate.c:663 -msgid "Expression too complex." -msgstr "Expresión demasiado compleja." - -#: config/tc-m68hc11.c:4367 config/tc-xgate.c:708 config/tc-xgate.c:717 +#: config/tc-m68hc11.c:4368 config/tc-s12z.c:3978 config/tc-xgate.c:708 +#: config/tc-xgate.c:717 msgid "Value out of 16-bit range." msgstr "Valor fuera del límite de 16-bit." -#: config/tc-m68hc11.c:4389 +#: config/tc-m68hc11.c:4390 #, c-format msgid "Value %ld too large for 8-bit PC-relative branch." msgstr "Valora %ld demasiado grande para la ramificación de 8-bit relativa al PC." -#: config/tc-m68hc11.c:4399 config/tc-xgate.c:674 +#: config/tc-m68hc11.c:4400 config/tc-xgate.c:674 #, c-format msgid "Value %ld too large for 9-bit PC-relative branch." msgstr "Valor %ld demasiado largo para ramificación PC-relativa de 9-bit." -#: config/tc-m68hc11.c:4408 config/tc-xgate.c:691 +#: config/tc-m68hc11.c:4409 config/tc-xgate.c:691 #, c-format msgid "Value %ld too large for 10-bit PC-relative branch." msgstr "Valor %ld demasiado largo para ramificación PC-relativa de 10-bit." -#: config/tc-m68hc11.c:4416 +#: config/tc-m68hc11.c:4417 #, c-format msgid "Auto increment/decrement offset '%ld' is out of range." -msgstr "El auto incremento/decremento del desplazamiento '%ld' está fuera de límite." +msgstr "El auto incremento/decremento del desplazamiento '%ld' está fuera de rango." -#: config/tc-m68hc11.c:4429 +#: config/tc-m68hc11.c:4430 #, c-format msgid "Offset out of 5-bit range for movw/movb insn: %ld" msgstr "Desplazamiento fuera del límite de 5-bit para insn movw/movb: %ld" -#: config/tc-m68hc11.c:4440 +#: config/tc-m68hc11.c:4441 #, c-format msgid "Offset out of 9-bit range for movw/movb insn: %ld" msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld" -#: config/tc-m68hc11.c:4452 +#: config/tc-m68hc11.c:4453 #, c-format msgid "Offset out of 16-bit range for movw/movb insn: %ld" msgstr "Desplazamiento fuera del límite de 16-bit para insn movw/movb: %ld" -#: config/tc-m68hc11.c:4469 config/tc-xgate.c:752 +#: config/tc-m68hc11.c:4470 config/tc-s12z.c:3984 config/tc-xgate.c:752 #, c-format msgid "Line %d: unknown relocation type: 0x%x." msgstr "Línea %d: tipo reubicado desconocido: 0x%x." -#: config/tc-m68hc11.c:4494 +#: config/tc-m68hc11.c:4495 config/tc-z80.c:3452 config/tc-z80.c:3472 msgid "Invalid directive" msgstr "Directiva no válida" -#: config/tc-m68k.c:1165 +#: config/tc-m68k.c:1123 #, c-format msgid "Can not do %d byte pc-relative relocation" msgstr "No se puede hacer la reubicación relativa a pc de %d bytes" -#: config/tc-m68k.c:1167 +#: config/tc-m68k.c:1125 #, c-format msgid "Can not do %d byte pc-relative pic relocation" msgstr "No se puede hacer la reubicación pic relativa a pc de %d bytes" -#: config/tc-m68k.c:1172 +#: config/tc-m68k.c:1130 #, c-format msgid "Can not do %d byte relocation" msgstr "No se puede hacer la reubicación de %d bytes" -#: config/tc-m68k.c:1174 +#: config/tc-m68k.c:1132 #, c-format msgid "Can not do %d byte pic relocation" msgstr "No se puede hacer la reubicación pic de %d bytes" -#: config/tc-m68k.c:1254 +#: config/tc-m68k.c:1202 #, c-format msgid "Unable to produce reloc against symbol '%s'" msgstr "Incapaz producir reubicación contra símbolo «%s»" -#: config/tc-m68k.c:1313 config/tc-vax.c:2369 +#: config/tc-m68k.c:1261 config/tc-vax.c:2324 #, c-format msgid "Cannot make %s relocation PC relative" msgstr "No se puede hacer la reubicación relativa a PC %s" -#: config/tc-m68k.c:1429 config/tc-vax.c:1879 +#: config/tc-m68k.c:1343 config/tc-vax.c:1874 msgid "No operator" msgstr "No hay operador" -#: config/tc-m68k.c:1459 config/tc-vax.c:1895 +#: config/tc-m68k.c:1373 config/tc-vax.c:1890 msgid "Unknown operator" msgstr "Operador desconocido" -#: config/tc-m68k.c:2362 +#: config/tc-m68k.c:2276 msgid "invalid instruction for this architecture; needs " msgstr "instrucción no válida para esta arquitectura; necesita " -#: config/tc-m68k.c:2370 +#: config/tc-m68k.c:2284 msgid "hardware divide" msgstr "divide por hardware" -#: config/tc-m68k.c:2392 config/tc-m68k.c:2396 config/tc-m68k.c:2400 +#: config/tc-m68k.c:2306 config/tc-m68k.c:2310 config/tc-m68k.c:2314 msgid "or higher" msgstr "o superior" -#: config/tc-m68k.c:2453 +#: config/tc-m68k.c:2367 msgid "operands mismatch" msgstr "no coinciden los operandos" -#: config/tc-m68k.c:2517 config/tc-m68k.c:2523 config/tc-m68k.c:2529 -#: config/tc-mmix.c:2495 config/tc-mmix.c:2519 +#: config/tc-m68k.c:2431 config/tc-m68k.c:2437 config/tc-m68k.c:2443 +#: config/tc-mmix.c:2499 config/tc-mmix.c:2523 msgid "operand out of range" -msgstr "operando fuera de límite" +msgstr "operando fuera de rango" -#: config/tc-m68k.c:2586 +#: config/tc-m68k.c:2500 #, c-format msgid "Bignum too big for %c format; truncated" msgstr "Número grande demasiado grande para el formato %c; se trunca" -#: config/tc-m68k.c:2663 +#: config/tc-m68k.c:2577 msgid "displacement too large for this architecture; needs 68020 or higher" msgstr "desubicación demasiado grande para esta arquitectura; necesita 68020 o superior" -#: config/tc-m68k.c:2774 +#: config/tc-m68k.c:2685 msgid "scale factor invalid on this architecture; needs cpu32 or 68020 or higher" msgstr "factor de escala inválido en esta arquitectura; necesita cpu32 o 68020 o superior" -#: config/tc-m68k.c:2779 +#: config/tc-m68k.c:2690 msgid "invalid index size for coldfire" msgstr "tamaño de índice inválido para coldfire" -#: config/tc-m68k.c:2832 +#: config/tc-m68k.c:2743 msgid "Forcing byte displacement" msgstr "Se fuerza la desubicación de byte" -#: config/tc-m68k.c:2834 +#: config/tc-m68k.c:2745 msgid "byte displacement out of range" -msgstr "desplazamiento byte fuera de límite" +msgstr "desplazamiento byte fuera de rango" -#: config/tc-m68k.c:2882 config/tc-m68k.c:2920 +#: config/tc-m68k.c:2790 config/tc-m68k.c:2828 msgid "invalid operand mode for this architecture; needs 68020 or higher" msgstr "modo de operando inválido para esta arquitectura; necesita 68020 o superior" -#: config/tc-m68k.c:2906 config/tc-m68k.c:2940 +#: config/tc-m68k.c:2814 config/tc-m68k.c:2848 msgid ":b not permitted; defaulting to :w" msgstr "no se permite :b; se cambia por defecto a :w" -#: config/tc-m68k.c:3017 +#: config/tc-m68k.c:2923 msgid "unsupported byte value; use a different suffix" msgstr "no se admite el valor de byte; utilice un sufijo diferente" -#: config/tc-m68k.c:3032 +#: config/tc-m68k.c:2938 msgid "unknown/incorrect operand" msgstr "operando desconocido/incorrecto" -#: config/tc-m68k.c:3075 config/tc-m68k.c:3083 config/tc-m68k.c:3090 -#: config/tc-m68k.c:3097 +#: config/tc-m68k.c:2981 config/tc-m68k.c:2989 config/tc-m68k.c:2996 +#: config/tc-m68k.c:3003 msgid "out of range" -msgstr "fuera de límite" +msgstr "fuera de rango" -#: config/tc-m68k.c:3171 +#: config/tc-m68k.c:3074 msgid "Can't use long branches on this architecture" msgstr "No se pueden usar ramificaciones long en esta arquitectura" -#: config/tc-m68k.c:3277 +#: config/tc-m68k.c:3180 msgid "Expression out of range, using 0" -msgstr "Expresión fuera de límite, utilizando 0" +msgstr "Expresión fuera de rango, utilizando 0" -#: config/tc-m68k.c:3478 config/tc-m68k.c:3494 +#: config/tc-m68k.c:3381 config/tc-m68k.c:3397 msgid "Floating point register in register list" msgstr "Registro de coma flotante en la lista de registros" -#: config/tc-m68k.c:3484 +#: config/tc-m68k.c:3387 msgid "Wrong register in floating-point reglist" -msgstr "Registro equivocado en la lista de registros de coma flotante" +msgstr "Registro incorrecto en la lista de registros de coma flotante" -#: config/tc-m68k.c:3500 +#: config/tc-m68k.c:3403 msgid "incorrect register in reglist" msgstr "registro incorrecto en la lista de registros" -#: config/tc-m68k.c:3506 +#: config/tc-m68k.c:3409 msgid "wrong register in floating-point reglist" -msgstr "registro equivocado en la lista de registros de coma flotante" +msgstr "registro incorrecto en la lista de registros de coma flotante" + +#: config/tc-m68k.c:3820 config/tc-m68k.c:3852 config/tc-sparc.c:3140 +msgid "failed sanity check." +msgstr "la inspección sanitaria ha fallado." #. ERROR. -#: config/tc-m68k.c:3979 +#: config/tc-m68k.c:3882 msgid "Extra )" msgstr "Adicional )" #. ERROR. -#: config/tc-m68k.c:3990 +#: config/tc-m68k.c:3893 msgid "Missing )" msgstr "Ausente )" -#: config/tc-m68k.c:4007 +#: config/tc-m68k.c:3910 msgid "Missing operand" msgstr "Ausente operando" -#: config/tc-m68k.c:4332 +#: config/tc-m68k.c:4235 #, c-format msgid "unrecognized default cpu `%s'" msgstr "no reconocido el cpu por defecto «%s»" -#: config/tc-m68k.c:4386 +#: config/tc-m68k.c:4289 #, c-format msgid "%s -- statement `%s' ignored" msgstr "%s -- declaración «%s» descartada" -#: config/tc-m68k.c:4435 +#: config/tc-m68k.c:4336 #, fuzzy, c-format #| msgid "Don't know how to figure width of %c in md_assemble()" msgid "Don't know how to figure out width of %c in md_assemble()" msgstr "No se sabe comó reconocer la anchura de %c en md_assemble()" -#: config/tc-m68k.c:4667 config/tc-m68k.c:4706 +#: config/tc-m68k.c:4566 config/tc-m68k.c:4604 #, c-format msgid "Internal Error: Can't find %s in hash table" msgstr "Error Interno: No se puede encontrar %s en la distribución de dispersión" -#: config/tc-m68k.c:4670 config/tc-m68k.c:4709 -#, c-format -msgid "Internal Error: Can't hash %s: %s" -msgstr "Error Interno: No se puede dispersar %s: %s" - -#: config/tc-m68k.c:4834 +#: config/tc-m68k.c:4720 #, c-format msgid "text label `%s' aligned to odd boundary" msgstr "la etiqueta de texto «%s» está alineada a un límite impar" -#: config/tc-m68k.c:5006 +#: config/tc-m68k.c:4879 #, c-format msgid "value %ld out of range" -msgstr "valora %ld fuera de límite" +msgstr "valora %ld fuera de rango" -#: config/tc-m68k.c:5020 +#: config/tc-m68k.c:4893 msgid "invalid byte branch offset" msgstr "desplazamiento de ramificación byte inválido" -#: config/tc-m68k.c:5057 +#: config/tc-m68k.c:4930 msgid "short branch with zero offset: use :w" msgstr "ramificación corta con desplazamiento cero: utilice :w" -#: config/tc-m68k.c:5101 +#: config/tc-m68k.c:4974 msgid "Conversion of PC relative BSR to absolute JSR" msgstr "Conversión de un BSR relativo a PC a un JSR absoluto" -#: config/tc-m68k.c:5112 +#: config/tc-m68k.c:4985 msgid "Conversion of PC relative branch to absolute jump" msgstr "Conversión de una ramificación relativa a PC a un salto absoluto" -#: config/tc-m68k.c:5129 config/tc-m68k.c:5186 +#: config/tc-m68k.c:5002 config/tc-m68k.c:5059 msgid "Conversion of PC relative conditional branch to absolute jump" msgstr "Conversión de una ramificación condicional relativa a PC a un salto absoluto" -#: config/tc-m68k.c:5251 +#: config/tc-m68k.c:5124 msgid "Conversion of PC relative displacement to absolute" msgstr "Conversión de un desplazamiento relativo a PC a absoluto" -#: config/tc-m68k.c:5464 +#: config/tc-m68k.c:5307 msgid "Tried to convert PC relative branch to absolute jump" msgstr "Se trató de convertir una ramificación relativa a PC a un salto absoluto" -#: config/tc-m68k.c:5509 config/tc-m68k.c:5520 config/tc-m68k.c:5564 +#: config/tc-m68k.c:5352 config/tc-m68k.c:5363 config/tc-m68k.c:5407 msgid "expression out of range: defaulting to 1" -msgstr "expresión fuera de límite: se cambia por defecto a 1" +msgstr "expresión fuera de rango: se cambia por defecto a 1" -#: config/tc-m68k.c:5556 +#: config/tc-m68k.c:5399 msgid "expression out of range: defaulting to 0" -msgstr "expresión fuera de límite: se cambia por defecto a 0" +msgstr "expresión fuera de rango: se cambia por defecto a 0" -#: config/tc-m68k.c:5597 config/tc-m68k.c:5609 +#: config/tc-m68k.c:5440 config/tc-m68k.c:5452 #, c-format msgid "Can't deal with expression; defaulting to %ld" msgstr "No se puede lidiar con la expresión; se cambia por defecto a %ld" -#: config/tc-m68k.c:5623 +#: config/tc-m68k.c:5466 msgid "expression doesn't fit in BYTE" msgstr "expresión no cabe en BYTE" -#: config/tc-m68k.c:5627 +#: config/tc-m68k.c:5470 msgid "expression doesn't fit in WORD" msgstr "expresión no cabe en WORD" -#: config/tc-m68k.c:5714 +#: config/tc-m68k.c:5547 #, c-format msgid "%s: unrecognized processor name" msgstr "%s: no reconocido el nombre de procesador" -#: config/tc-m68k.c:5775 +#: config/tc-m68k.c:5608 msgid "bad coprocessor id" -msgstr "id de coprocesador equivocado" +msgstr "id de coprocesador incorrecto" -#: config/tc-m68k.c:5781 +#: config/tc-m68k.c:5614 msgid "unrecognized fopt option" msgstr "no se reconoce la opción fopt" -#: config/tc-m68k.c:5913 +#: config/tc-m68k.c:5746 #, c-format msgid "option `%s' may not be negated" msgstr "la opción «%s» podría no estar negada" -#: config/tc-m68k.c:5924 +#: config/tc-m68k.c:5757 #, c-format msgid "option `%s' not recognized" msgstr "opción «%s» no reconocida" -#: config/tc-m68k.c:5953 +#: config/tc-m68k.c:5786 msgid "bad format of OPT NEST=depth" -msgstr "formato equivocado de OPT NEST=profundidad" +msgstr "formato incorrecto de OPT NEST=profundidad" -#: config/tc-m68k.c:6009 +#: config/tc-m68k.c:5842 msgid "missing label" msgstr "ausencia etiquetado" -#: config/tc-m68k.c:6035 +#: config/tc-m68k.c:5868 #, c-format msgid "bad register list: %s" -msgstr "lista de registros equivocada: %s" +msgstr "lista de registros incorrecta: %s" -#: config/tc-m68k.c:6133 +#: config/tc-m68k.c:5966 msgid "restore without save" msgstr "restaurar sin guardar" -#: config/tc-m68k.c:6287 config/tc-m68k.c:6657 +#: config/tc-m68k.c:6119 config/tc-m68k.c:6489 msgid "syntax error in structured control directive" -msgstr "error sintáctico en directiva de control estructurada" +msgstr "error de sintaxis en directiva de control estructurada" -#: config/tc-m68k.c:6332 +#: config/tc-m68k.c:6164 msgid "missing condition code in structured control directive" msgstr "ausente el código de condición en la directiva de control estructurada" -#: config/tc-m68k.c:6403 +#: config/tc-m68k.c:6235 #, c-format msgid "Condition <%c%c> in structured control directive can not be encoded correctly" msgstr "La condición <%c%c> en la directiva de control estructurada no se puede codificar correctamente" -#: config/tc-m68k.c:6699 +#: config/tc-m68k.c:6531 msgid "missing then" msgstr "ausente then" -#: config/tc-m68k.c:6780 +#: config/tc-m68k.c:6612 msgid "else without matching if" msgstr "else sin if coincidente" -#: config/tc-m68k.c:6813 +#: config/tc-m68k.c:6645 msgid "endi without matching if" msgstr "endi sin if coincidente" -#: config/tc-m68k.c:6853 +#: config/tc-m68k.c:6685 msgid "break outside of structured loop" msgstr "break externo al bucle estructurado" -#: config/tc-m68k.c:6891 +#: config/tc-m68k.c:6723 msgid "next outside of structured loop" msgstr "next externo al bucle estructurado" -#: config/tc-m68k.c:6942 +#: config/tc-m68k.c:6774 msgid "missing =" msgstr "ausente =" -#: config/tc-m68k.c:6980 +#: config/tc-m68k.c:6812 msgid "missing to or downto" msgstr "ausente to o downto" -#: config/tc-m68k.c:7016 config/tc-m68k.c:7050 config/tc-m68k.c:7264 +#: config/tc-m68k.c:6848 config/tc-m68k.c:6882 config/tc-m68k.c:7096 msgid "missing do" msgstr "ausente do" -#: config/tc-m68k.c:7151 +#: config/tc-m68k.c:6983 msgid "endf without for" msgstr "endf sin for" -#: config/tc-m68k.c:7205 +#: config/tc-m68k.c:7037 msgid "until without repeat" msgstr "until sin repeat" -#: config/tc-m68k.c:7299 +#: config/tc-m68k.c:7131 msgid "endw without while" msgstr "endw sin while" -#: config/tc-m68k.c:7332 config/tc-m68k.c:7360 +#: config/tc-m68k.c:7164 config/tc-m68k.c:7192 msgid "already assembled instructions" msgstr "las instrucciones ya están ensambladas" -#: config/tc-m68k.c:7437 +#: config/tc-m68k.c:7269 #, c-format msgid "`%s' is deprecated, use `%s'" msgstr "«%s» es obsoleta, emplee «%s»" -#: config/tc-m68k.c:7456 +#: config/tc-m68k.c:7288 #, c-format msgid "cpu `%s' unrecognized" msgstr "cpu «%s» no reconocida" -#: config/tc-m68k.c:7475 +#: config/tc-m68k.c:7307 #, c-format msgid "architecture `%s' unrecognized" msgstr "arquitectura «%s» no reconocida" -#: config/tc-m68k.c:7496 +#: config/tc-m68k.c:7328 #, c-format msgid "extension `%s' unrecognized" msgstr "extensión «%s» no reconocida" -#: config/tc-m68k.c:7615 +#: config/tc-m68k.c:7443 #, c-format msgid "option `-A%s' is deprecated: use `-%s'" msgstr "la opción `-A%s' es obsoleta: use `-%s'" -#: config/tc-m68k.c:7648 +#: config/tc-m68k.c:7476 msgid "architecture features both enabled and disabled" msgstr "las características de la arquitectura están activadas y desactivadas al mismo tiempo" -#: config/tc-m68k.c:7675 +#: config/tc-m68k.c:7503 msgid "selected processor does not have all features of selected architecture" msgstr "procesador seleccionado no tiene todas las características de la arquitectura seleccionada" -#: config/tc-m68k.c:7684 +#: config/tc-m68k.c:7512 msgid "m68k and cf features both selected" msgstr "se seleccionaron características tanto de m68k como de cf" -#: config/tc-m68k.c:7696 +#: config/tc-m68k.c:7524 msgid "68040 and 68851 specified; mmu instructions may assemble incorrectly" msgstr "se especificaron 68040 y 68851; las instrucciones mmu podrían ensamblar incorrectamente" -#: config/tc-m68k.c:7728 +#: config/tc-m68k.c:7556 #, c-format msgid "" "-march=<arch>\t\tset architecture\n" @@ -10593,12 +12498,12 @@ msgstr "" "-march=<arqu>\t\tdefine la arquitectura\n" "-mcpu=<cpu>\t\tdefine el cpu [por defecto %s]\n" -#: config/tc-m68k.c:7733 +#: config/tc-m68k.c:7561 #, c-format msgid "-m[no-]%-16s enable/disable %s architecture extension\n" msgstr "-m[no-]%-16s activa/desactiva extensión arquitectural %s\n" -#: config/tc-m68k.c:7739 +#: config/tc-m68k.c:7567 #, c-format msgid "" "-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n" @@ -10625,196 +12530,190 @@ msgstr "" "--disp-size-default-16\tdesplazamiento con tamaño desconocido es 16 bits\n" "--disp-size-default-32\tdesplazamiento con tamaño desconocido es 32 bits (por defecto)\n" -#: config/tc-m68k.c:7753 +#: config/tc-m68k.c:7581 #, c-format msgid "Architecture variants are: " msgstr "Las variantes de arquitectura son: " -#: config/tc-m68k.c:7762 +#: config/tc-m68k.c:7590 #, c-format msgid "Processor variants are: " msgstr "Las variantes de procesador son: " -#: config/tc-m68k.c:7769 config/tc-xtensa.c:6356 +#: config/tc-m68k.c:7597 config/tc-xtensa.c:6412 #, c-format msgid "\n" msgstr "\n" -#: config/tc-m68k.c:7800 +#: config/tc-m68k.c:7628 #, c-format msgid "Error %s in %s\n" msgstr "Error %s en %s\n" -#: config/tc-m68k.c:7804 +#: config/tc-m68k.c:7632 #, c-format msgid "Opcode(%d.%s): " msgstr "Código operacional(%d.%s): " -#: config/tc-m68k.c:7962 +#: config/tc-m68k.c:7777 msgid "Not a defined coldfire architecture" msgstr "No es una arquitectura coldfire definida" -#: config/tc-m68k.c:8140 +#: config/tc-m68k.c:7886 read.c:4809 +#, c-format +msgid "%s relocations do not fit in %u byte" +msgid_plural "%s relocations do not fit in %u bytes" +msgstr[0] "%s reubicaciones no caben en %u byte" +msgstr[1] "%s reubicaciones no caben en %u bytes" + +#: config/tc-m68k.c:7928 config/tc-ppc.c:2594 +msgid "unknown .gnu_attribute value" +msgstr "desconoce valor .gnu_attribute" + +#: config/tc-m68k.c:7972 #, fuzzy, c-format #| msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large." msgid "Adjusted signed .word (%#lx) overflows: `switch'-statement too large." msgstr "Signo ajustado .word (%ld) desborda: sentencia `switch' demasiado grande." -#: config/tc-mcore.c:520 config/tc-microblaze.c:511 config/tc-microblaze.c:539 -#: config/tc-microblaze.c:576 config/tc-microblaze.c:588 +#: config/tc-mcore.c:521 config/tc-microblaze.c:487 config/tc-microblaze.c:515 +#: config/tc-microblaze.c:552 config/tc-microblaze.c:564 #, c-format msgid "register expected, but saw '%.6s'" msgstr "se esperaba un registro, pero se vio '%.6s'" -#: config/tc-mcore.c:602 +#: config/tc-mcore.c:603 #, c-format msgid "control register expected, but saw '%.6s'" msgstr "se esperaba un registro de control, pero se vio '%.6s'" -#: config/tc-mcore.c:638 +#: config/tc-mcore.c:639 msgid "bad/missing psr specifier" -msgstr "especificador psr equivocado/ausentente" - -#: config/tc-mcore.c:688 -msgid "more than 65K literal pools" -msgstr "más de 65K de conjuntos literales" - -#: config/tc-mcore.c:742 -msgid "missing ']'" -msgstr "ausente ']'" +msgstr "especificador psr incorrecto/ausentente" -#: config/tc-mcore.c:781 -msgid "operand must be a constant" -msgstr "operando debe ser una constante" - -#: config/tc-mcore.c:783 +#: config/tc-mcore.c:784 #, c-format msgid "operand must be absolute in range %u..%u, not %ld" msgstr "operando debe ser un absoluto en el límite %u..%u, no %ld" -#: config/tc-mcore.c:818 +#: config/tc-mcore.c:819 msgid "operand must be a multiple of 4" msgstr "operando debe ser un múltiplo de 4" -#: config/tc-mcore.c:825 +#: config/tc-mcore.c:826 msgid "operand must be a multiple of 2" msgstr "operando debe ser un múltiplo de 2" -#: config/tc-mcore.c:887 config/tc-microblaze.c:940 -#: config/tc-microblaze.c:1072 config/tc-microblaze.c:1104 -#: config/tc-microblaze.c:1557 config/tc-microblaze.c:1623 -#: config/tc-microblaze.c:1696 config/tc-microblaze.c:2108 -#: config/tc-microblaze.c:2155 +#: config/tc-mcore.c:840 config/tc-mcore.c:1356 config/tc-mcore.c:1410 +msgid "base register expected" +msgstr "se esperaba un registro base" + +#: config/tc-mcore.c:888 config/tc-microblaze.c:920 config/tc-microblaze.c:1056 +#: config/tc-microblaze.c:1090 config/tc-microblaze.c:1626 +#: config/tc-microblaze.c:1694 config/tc-microblaze.c:1769 +#: config/tc-microblaze.c:2192 config/tc-microblaze.c:2241 #, c-format msgid "unknown opcode \"%s\"" msgstr "código operacional desconocido «%s»" -#: config/tc-mcore.c:930 +#: config/tc-mcore.c:931 msgid "invalid register: r15 illegal" msgstr "registro inválido: r15 ilegal" -#: config/tc-mcore.c:979 config/tc-mcore.c:1560 +#: config/tc-mcore.c:980 config/tc-mcore.c:1561 msgid "M340 specific opcode used when assembling for M210" msgstr "M340 utilizado como código operacional específico cuando ensambla para M210" -#: config/tc-mcore.c:997 config/tc-mcore.c:1037 config/tc-mcore.c:1056 -#: config/tc-mcore.c:1075 config/tc-mcore.c:1103 config/tc-mcore.c:1132 -#: config/tc-mcore.c:1169 config/tc-mcore.c:1204 config/tc-mcore.c:1223 -#: config/tc-mcore.c:1242 config/tc-mcore.c:1276 config/tc-mcore.c:1301 -#: config/tc-mcore.c:1358 config/tc-mcore.c:1412 config/tc-mcore.c:1448 -#: config/tc-mcore.c:1507 config/tc-mcore.c:1529 config/tc-mcore.c:1552 +#: config/tc-mcore.c:998 config/tc-mcore.c:1038 config/tc-mcore.c:1057 +#: config/tc-mcore.c:1076 config/tc-mcore.c:1104 config/tc-mcore.c:1133 +#: config/tc-mcore.c:1170 config/tc-mcore.c:1205 config/tc-mcore.c:1224 +#: config/tc-mcore.c:1243 config/tc-mcore.c:1277 config/tc-mcore.c:1302 +#: config/tc-mcore.c:1359 config/tc-mcore.c:1413 config/tc-mcore.c:1449 +#: config/tc-mcore.c:1508 config/tc-mcore.c:1530 config/tc-mcore.c:1553 msgid "second operand missing" msgstr "ausente el segundo operando" -#: config/tc-mcore.c:1013 +#: config/tc-mcore.c:1014 msgid "destination register must be r1" msgstr "destino debe ser registro r1" -#: config/tc-mcore.c:1034 +#: config/tc-mcore.c:1035 msgid "source register must be r1" msgstr "origen debe ser registro r1" -#: config/tc-mcore.c:1098 config/tc-mcore.c:1155 +#: config/tc-mcore.c:1099 config/tc-mcore.c:1156 msgid "immediate is not a power of two" msgstr "inmediato no es una potencia de dos" -#: config/tc-mcore.c:1126 +#: config/tc-mcore.c:1127 msgid "translating bgeni to movi" msgstr "se traslada ‘bgeni’ a ‘movi’" -#: config/tc-mcore.c:1163 -msgid "translating mgeni to movi" -msgstr "se traslada ‘mgeni’ a ‘movi’" - -#: config/tc-mcore.c:1195 +#: config/tc-mcore.c:1196 msgid "translating bmaski to movi" msgstr "se traslada ‘bmaski’ a ‘movi’" -#: config/tc-mcore.c:1271 +#: config/tc-mcore.c:1272 #, c-format msgid "displacement too large (%d)" msgstr "desubicación muy grande (%d)" -#: config/tc-mcore.c:1285 +#: config/tc-mcore.c:1286 msgid "Invalid register: r0 and r15 illegal" msgstr "Registro inválido: r0 y r15 ilegales" -#: config/tc-mcore.c:1316 +#: config/tc-mcore.c:1317 msgid "bad starting register: r0 and r15 invalid" -msgstr "registro de inicio equivocado: r0 y r15 inválidos" +msgstr "registro de inicio incorrecto: r0 y r15 inválidos" -#: config/tc-mcore.c:1329 +#: config/tc-mcore.c:1330 msgid "ending register must be r15" msgstr "el registro final debe ser r15" -#: config/tc-mcore.c:1349 +#: config/tc-mcore.c:1350 msgid "bad base register: must be r0" -msgstr "registro base equivocado: debe ser r0" +msgstr "registro base incorrecto: debe ser r0" -#: config/tc-mcore.c:1367 +#: config/tc-mcore.c:1368 msgid "first register must be r4" msgstr "el primer registro debe ser r4" -#: config/tc-mcore.c:1378 +#: config/tc-mcore.c:1379 msgid "last register must be r7" msgstr "el último registro debe ser r7" -#: config/tc-mcore.c:1415 +#: config/tc-mcore.c:1416 msgid "reg-reg expected" msgstr "se esperaba registro-registro" -#: config/tc-mcore.c:1526 -msgid "second operand must be 1" -msgstr "el segundo operando debe ser 1" - -#: config/tc-mcore.c:1547 +#: config/tc-mcore.c:1548 msgid "zero used as immediate value" msgstr "se utiliza cero como valor inmediato" -#: config/tc-mcore.c:1574 +#: config/tc-mcore.c:1575 msgid "duplicated psr bit specifier" msgstr "especificador de bit psr duplicado" -#: config/tc-mcore.c:1580 +#: config/tc-mcore.c:1581 msgid "`af' must appear alone" msgstr "`af' debe aparecer solo" -#: config/tc-mcore.c:1587 config/tc-microblaze.c:1734 +#: config/tc-mcore.c:1588 config/tc-microblaze.c:1807 #, c-format msgid "unimplemented opcode \"%s\"" msgstr "código operacional «%s» no implementado" -#: config/tc-mcore.c:1596 config/tc-microblaze.c:1743 +#: config/tc-mcore.c:1597 config/tc-microblaze.c:1816 #, c-format msgid "ignoring operands: %s " msgstr "se descartan los operandos: %s " -#: config/tc-mcore.c:1669 +#: config/tc-mcore.c:1673 #, c-format msgid "unrecognised cpu type '%s'" msgstr "no reconocido el tipo de cpu «%s»" -#: config/tc-mcore.c:1687 +#: config/tc-mcore.c:1691 #, c-format msgid "" "MCORE specific options:\n" @@ -10831,54 +12730,47 @@ msgstr "" " -EB ensambla para un sistema big endian (predet.)\n" " -EL ensambla para un sistema little endian\n" -#: config/tc-mcore.c:1705 config/tc-microblaze.c:1854 +#: config/tc-mcore.c:1709 config/tc-microblaze.c:1926 msgid "failed sanity check: short_jump" -msgstr "falló la prueba de sensated: short_jump" +msgstr "la inspección sanitaria ha fallado: short_jump" -#: config/tc-mcore.c:1715 config/tc-microblaze.c:1864 +#: config/tc-mcore.c:1719 config/tc-microblaze.c:1936 msgid "failed sanity check: long_jump" -msgstr "falló la prueba de sensated: long_jump" +msgstr "la inspección sanitaria ha fallado: long_jump" -#: config/tc-mcore.c:1741 +#: config/tc-mcore.c:1745 #, c-format msgid "odd displacement at %x" msgstr "desplazamiento impar en %x" -#. Variable not in small data read only segment accessed -#. using small data read only anchor. -#: config/tc-mcore.c:1923 config/tc-microblaze.c:1970 -#: config/tc-microblaze.c:2268 config/tc-microblaze.c:2291 -msgid "unknown" -msgstr "desconocido" - -#: config/tc-mcore.c:1950 +#: config/tc-mcore.c:1954 #, c-format msgid "odd distance branch (0x%lx byte)" msgid_plural "odd distance branch (0x%lx bytes)" msgstr[0] "distancia de ramificación impar (0x%lx bytes)" msgstr[1] "distancia de ramificación impar (0x%lx byte)" -#: config/tc-mcore.c:1957 +#: config/tc-mcore.c:1961 #, c-format msgid "pcrel for branch to %s too far (0x%lx)" msgstr "el pcrel para ramificar a %s muy lejos (0x%lx)" -#: config/tc-mcore.c:1977 +#: config/tc-mcore.c:1981 #, c-format msgid "pcrel for lrw/jmpi/jsri to %s too far (0x%lx)" msgstr "el pcrel para lrw/jmpi/jsri a %s está muy lejos (0x%lx)" -#: config/tc-mcore.c:1989 +#: config/tc-mcore.c:1993 #, c-format msgid "pcrel for loopt too far (0x%lx)" msgstr "el pcrel para bucle ‘loopt’ está muy lejos (0x%lx)" -#: config/tc-mcore.c:2185 config/tc-microblaze.c:2435 config/tc-tic30.c:1386 +#: config/tc-mcore.c:2189 config/tc-microblaze.c:2529 config/tc-tic30.c:1364 #, c-format msgid "Can not do %d byte %srelocation" msgstr "No se puede hacer %d byte reubicación %s" -#: config/tc-mcore.c:2187 config/tc-microblaze.c:2437 config/tc-tic30.c:1387 +#: config/tc-mcore.c:2191 config/tc-microblaze.c:2531 config/tc-tic30.c:1365 msgid "pc-relative " msgstr "relativo a pc " @@ -10910,8 +12802,8 @@ msgstr "" "\n" " Si se da -mconfig, las otras casillas -m lo modifican. De otra manera,\n" " si no se dan casillas -m, todos los códigos operacionales core se activan;\n" -" si se da cualquier opción -m que activa, sólo ésas se activan;\n" -" si se da cualquier opción -m que desactiva, sólo ésas se desactivan.\n" +" si se da cualquier opción -m que activa, solo ésas se activan;\n" +" si se da cualquier opción -m que desactiva, solo ésas se desactivan.\n" #: config/tc-mep.c:408 msgid "$hi and $lo are disabled when MUL and DIV are off" @@ -10997,7 +12889,7 @@ msgstr "¿Tal vez le ausente %%tpoff()?" #: config/tc-mep.c:2089 msgid "bad .section directive: want a,v,w,x,M,S in string" -msgstr "directiva .section equivocada: se quiere a,v,w,x,M,S en la cadena" +msgstr "directiva .section incorrecta: se quiere a,v,w,x,M,S en la cadena" #: config/tc-mep.c:2147 msgid ".vliw unavailable when VLIW is disabled." @@ -11012,21 +12904,21 @@ msgstr "unidad no especificada de coma flotante" msgid "offset must be a multiple of %d" msgstr "desplazamiento debe ser un múltiplo de %d" -#: config/tc-metag.c:737 config/tc-metag.c:4445 +#: config/tc-metag.c:737 config/tc-metag.c:4443 msgid "offset and base must be from the same unit" msgstr "destino y origen deben ser desde la misma unidad" -#: config/tc-metag.c:868 config/tc-metag.c:3169 config/tc-metag.c:3271 +#: config/tc-metag.c:868 config/tc-metag.c:3167 config/tc-metag.c:3269 msgid "invalid destination register" msgstr "invalida registro destino" #: config/tc-metag.c:884 config/tc-metag.c:902 config/tc-metag.c:1293 -#: config/tc-metag.c:1311 config/tc-metag.c:1531 config/tc-metag.c:3101 -#: config/tc-metag.c:3186 config/tc-metag.c:3288 +#: config/tc-metag.c:1311 config/tc-metag.c:1530 config/tc-metag.c:3099 +#: config/tc-metag.c:3184 config/tc-metag.c:3286 msgid "invalid memory operand" msgstr "operando de memoria no válido" -#: config/tc-metag.c:939 config/tc-metag.c:3119 +#: config/tc-metag.c:939 config/tc-metag.c:3117 msgid "invalid source register" msgstr "invalida registro fuente" @@ -11046,22 +12938,22 @@ msgstr "invalida unidad origen" msgid "source and address units must not be shared for this addressing mode" msgstr "unidades de origen y dirección deben no ser compartidas para este modo direccional" -#: config/tc-metag.c:1073 config/tc-metag.c:1677 +#: config/tc-metag.c:1073 config/tc-metag.c:1676 msgid "set can only use RD port as source" msgstr "" #: config/tc-metag.c:1088 config/tc-metag.c:1189 config/tc-metag.c:1440 -#: config/tc-metag.c:1698 config/tc-metag.c:4055 +#: config/tc-metag.c:1697 config/tc-metag.c:4053 #, c-format msgid "base unit must be one of %s" msgstr "unidad base debe ser una de %s" #. We already tried to encode as an extended GET/SET. #. Parsing as a standard GET/SET provides a smaller offset. -#: config/tc-metag.c:1109 config/tc-metag.c:1215 config/tc-metag.c:3132 -#: config/tc-metag.c:3199 config/tc-metag.c:3301 config/tc-metag.c:4582 +#: config/tc-metag.c:1109 config/tc-metag.c:1215 config/tc-metag.c:3130 +#: config/tc-metag.c:3197 config/tc-metag.c:3299 config/tc-metag.c:4580 msgid "offset value out of range" -msgstr "valor desplazado fuera de límite" +msgstr "valor desplazado fuera de rango" #: config/tc-metag.c:1169 msgid "destination unit must be RD" @@ -11081,1160 +12973,1213 @@ msgstr "registro listado debe ser numerado pares" #: config/tc-metag.c:1357 msgid "register list must be from the same unit" -msgstr "listado de registro debe ser de la misma unidad" +msgstr "listado de registros debe ser de la misma unidad" #: config/tc-metag.c:1380 msgid "register list must not contain duplicates" msgstr "registrador listado debe no contener duplicados" -#: config/tc-metag.c:1637 +#: config/tc-metag.c:1636 msgid "MDRD value must be between 1 and 8" msgstr "MDRD validado debe estar entre 1 y 9" -#: config/tc-metag.c:1728 +#: config/tc-metag.c:1727 msgid "invalid destination memory operand" msgstr "operando de memoria destino no válida" -#: config/tc-metag.c:1743 +#: config/tc-metag.c:1742 msgid "invalid source memory operand" msgstr "operando de memoria origen inválido" -#: config/tc-metag.c:1750 +#: config/tc-metag.c:1749 #, c-format msgid "address units must be one of %s" msgstr "unidades direccionales debe ser uno de %s" -#: config/tc-metag.c:1757 +#: config/tc-metag.c:1756 msgid "base and offset must be from the same unit" msgstr "base y destino deben ser desde la misma unidad" -#: config/tc-metag.c:1765 +#: config/tc-metag.c:1764 msgid "source and destination increment mode must agree" msgstr "modo incrementa de origen y destino registros fuente y destino no deben ser iguales" -#: config/tc-metag.c:2040 +#: config/tc-metag.c:2039 msgid "PC, CT, TR and TT are treated as if they are a single unit but operands must be in different units" msgstr "" -#: config/tc-metag.c:2049 +#: config/tc-metag.c:2048 msgid "source and destination register must be in different units" msgstr "registro de origen y destino deben ser unidades diferentes" -#: config/tc-metag.c:2081 +#: config/tc-metag.c:2080 #, c-format msgid "register unit must be one of %s" msgstr "unidad registro debe ser una de %s" -#: config/tc-metag.c:2168 +#: config/tc-metag.c:2167 #, c-format msgid "link register unit must be one of %s" msgstr "registro enlazado unitario debe ser uno de %s" -#: config/tc-metag.c:2174 +#: config/tc-metag.c:2173 msgid "link register must be in a low numbered register" msgstr "registro enlazado debe estar dentro de un registro numerado bajo" -#: config/tc-metag.c:2191 config/tc-metag.c:2716 config/tc-metag.c:2770 +#: config/tc-metag.c:2190 config/tc-metag.c:2715 config/tc-metag.c:2769 msgid "target out of range" -msgstr "objetivo fuera de límite" +msgstr "objetivo fuera de rango" -#: config/tc-metag.c:2672 +#: config/tc-metag.c:2671 msgid "invalid quickrot unit specified" msgstr "invalida unidad quickrot especificada" -#: config/tc-metag.c:2688 +#: config/tc-metag.c:2687 msgid "invalid quickrot register specified" msgstr "invalida registro quickrot especificado" -#: config/tc-metag.c:2742 +#: config/tc-metag.c:2741 msgid "source register must be in the trigger unit" msgstr "registro origen debe estar en la unidad disparadora" -#: config/tc-metag.c:2845 +#: config/tc-metag.c:2844 msgid "Source registers must be in the same unit" msgstr "Registros origen deben estar en la misma unidad" -#: config/tc-metag.c:3556 config/tc-metag.c:3720 config/tc-metag.c:3988 +#: config/tc-metag.c:3554 config/tc-metag.c:3718 config/tc-metag.c:3986 msgid "destination register should be even numbered" msgstr "registro destino deberían ser numerados pares" -#: config/tc-metag.c:3628 +#: config/tc-metag.c:3626 msgid "comparison must be with register or #0" msgstr "comparaciones deben ser con registros o #0" -#: config/tc-metag.c:3694 config/tc-metag.c:3759 +#: config/tc-metag.c:3692 config/tc-metag.c:3757 msgid "instruction cannot operate on pair values" msgstr "instrucción no puede operar pares de valores" -#: config/tc-metag.c:3705 +#: config/tc-metag.c:3703 msgid "zero flag is not valid for this instruction" msgstr "marca cero no es válida para esta instrucción" -#: config/tc-metag.c:3726 +#: config/tc-metag.c:3724 msgid "source register should be even numbered" msgstr "registro origen deberían ser numerados pares" -#: config/tc-metag.c:3786 config/tc-metag.c:3795 +#: config/tc-metag.c:3784 config/tc-metag.c:3793 msgid "fraction bits value out of range" -msgstr "valor de varios bit fraccional fuera de límite" +msgstr "valor de varios bit fraccional fuera de rango" -#: config/tc-metag.c:3977 +#: config/tc-metag.c:3975 msgid "simd instructions operate on pair values (L prefix)" msgstr "" -#: config/tc-metag.c:3995 +#: config/tc-metag.c:3993 msgid "source registers should be even numbered" msgstr "registros origen deberían ser numerados pares" -#: config/tc-metag.c:4273 +#: config/tc-metag.c:4271 #, c-format msgid "expected ']', not %c in %s" msgstr "esperaba ']', no %c dentro de %s" -#: config/tc-metag.c:4392 +#: config/tc-metag.c:4390 msgid "invalid register for memory access" msgstr "registro para acceso de memoria inválido" -#: config/tc-metag.c:4505 config/tc-metag.c:4633 +#: config/tc-metag.c:4503 config/tc-metag.c:4631 msgid "unexpected end of line" msgstr "fin de línea inesperada" -#: config/tc-metag.c:4552 +#: config/tc-metag.c:4550 msgid "'H' modifier only valid for accumulator registers" msgstr "Registro acumulador inválido" -#: config/tc-metag.c:4605 +#: config/tc-metag.c:4603 msgid "base unit must be either A0 or A1" msgstr "unidad base debe ser o A0 o A1" -#: config/tc-metag.c:4678 config/tc-metag.c:5121 +#: config/tc-metag.c:4676 config/tc-metag.c:5119 msgid "invalid register" msgstr "invalida registro" -#: config/tc-metag.c:4826 +#: config/tc-metag.c:4787 config/tc-metag.c:5528 config/tc-metag.c:5550 +msgid "invalid register operand" +msgstr "invalida registro operando" + +#: config/tc-metag.c:4824 msgid "could not parse template definition" msgstr "no pudo interpretar definición de plantilla" -#: config/tc-metag.c:5013 +#: config/tc-metag.c:5011 msgid "QUICKRoT 64-bit extension not applicable to this instruction" msgstr "Extensión QUICKRoT 64-bit no aplicable a esta instrucción" -#: config/tc-metag.c:5069 +#: config/tc-metag.c:5067 msgid "invalid operands for cross-unit op" msgstr "operandos inválidos para op de unidades cruzadas" -#: config/tc-metag.c:5111 +#: config/tc-metag.c:5109 msgid "missing flags: one of 'P', 'N' or 'Z' required" msgstr "" -#: config/tc-metag.c:5139 +#: config/tc-metag.c:5137 msgid "'P', 'N' or 'Z' flags may only be specified when accumulating" msgstr "" -#: config/tc-metag.c:5160 +#: config/tc-metag.c:5158 msgid "accumulator not a valid destination" msgstr "acumulador no un destino válido" -#: config/tc-metag.c:5170 config/tc-metag.c:5386 config/tc-metag.c:5570 +#: config/tc-metag.c:5168 config/tc-metag.c:5384 config/tc-metag.c:5568 msgid "invalid immediate value" msgstr "valor inmediato inválido" -#: config/tc-metag.c:5182 +#: config/tc-metag.c:5180 #, fuzzy #| msgid "immediate value cannot be used to set this field" msgid "immediate value not allowed when source & dest differ" msgstr "no se puede usar un valor inmediato para establecer este campo" -#: config/tc-metag.c:5214 +#: config/tc-metag.c:5212 #, c-format msgid "invalid register operand: %s" msgstr "operando registrado inválido: %s" -#: config/tc-metag.c:5248 +#: config/tc-metag.c:5246 msgid "QUICKRoT extension requires 4 registers" msgstr "Extensión QUICKRoT requiere 4 registros" -#: config/tc-metag.c:5255 +#: config/tc-metag.c:5253 msgid "invalid fourth register" msgstr "registro cuarto inválido" -#: config/tc-metag.c:5262 +#: config/tc-metag.c:5260 msgid "A0.2,A0.3,A1.2,A1.3 required for QUICKRoT register" msgstr "A0.2,A0.3,A1.2,A1.3 requerido para registrador QUICKRoT" -#: config/tc-metag.c:5290 +#: config/tc-metag.c:5288 msgid "DSP RAM pointer in incorrect unit" msgstr "" -#: config/tc-metag.c:5336 +#: config/tc-metag.c:5334 msgid "invalid register operand #1" msgstr "operando registrado inválido Nº1" -#: config/tc-metag.c:5350 +#: config/tc-metag.c:5348 msgid "invalid register operand #2" msgstr "operando registrado inválido Nº2" -#: config/tc-metag.c:5414 +#: config/tc-metag.c:5412 msgid "this instruction does not accept an immediate" msgstr "esta instrucción no acepta un inmediato" -#: config/tc-metag.c:5434 +#: config/tc-metag.c:5432 msgid "invalid register operand #3" msgstr "operando registrado inválido Nº3" -#: config/tc-metag.c:5446 +#: config/tc-metag.c:5444 msgid "this instruction does not accept an accumulator" msgstr "esta instrucción no acepta un acumulador" -#: config/tc-metag.c:5464 +#: config/tc-metag.c:5462 msgid "invalid register operand #4" msgstr "operando registrado inválido Nº4" -#: config/tc-metag.c:5541 +#: config/tc-metag.c:5539 msgid "invalid accumulator register" msgstr "invalida registro acumulador" -#: config/tc-metag.c:5597 +#: config/tc-metag.c:5595 msgid "conditional instruction cannot use G flag" msgstr "la instrucción condicional no puede utilizar marca G" -#: config/tc-metag.c:5608 +#: config/tc-metag.c:5606 msgid "conditional instruction cannot use B flag" msgstr "la instrucción condicional no puede utilizar marca B" -#: config/tc-metag.c:5619 +#: config/tc-metag.c:5617 msgid "conditional instruction cannot use R flag" msgstr "instrucción condicional no puede utilizar marca R" -#: config/tc-metag.c:5728 +#: config/tc-metag.c:5726 msgid "'L' modifier not valid for this instruction" msgstr "Modificador 'L' no válido para esta instrucción" -#: config/tc-metag.c:5860 +#: config/tc-metag.c:5858 #, c-format msgid "missing fpu name `%s'" msgstr "ausente el nombre fpu «%s»" -#: config/tc-metag.c:5871 +#: config/tc-metag.c:5869 #, c-format msgid "unknown fpu `%s'" msgstr "desconoce FPU «%s»" -#: config/tc-metag.c:5886 +#: config/tc-metag.c:5884 #, c-format msgid "missing DSP name `%s'" msgstr "nombre DSP ausente «%s»" -#: config/tc-metag.c:5897 +#: config/tc-metag.c:5895 #, c-format msgid "unknown DSP `%s'" msgstr "desconoce DSP `%s'" -#: config/tc-metag.c:5915 +#: config/tc-metag.c:5913 msgid "<dsp name>\t assemble for DSP architecture <dsp name>" msgstr "<nombre dsp>\t ensambla para la arquitectura DSP <nombre dsp>" -#: config/tc-metag.c:5953 +#: config/tc-metag.c:5950 #, c-format msgid " Meta specific command line options:\n" msgstr " Opciones de la línea de mandatos específicas de Meta:\n" -#: config/tc-metag.c:6042 +#: config/tc-metag.c:6039 msgid "premature end of floating point prefix" msgstr "final prematuro de prefijo coma flotante" -#: config/tc-metag.c:6102 +#: config/tc-metag.c:6099 msgid "unknown floating point prefix character" msgstr "desconoce prefijo de caracteres de coma flotante" -#: config/tc-metag.c:6251 +#: config/tc-metag.c:6248 #, c-format msgid "unknown DSP prefix character %c %s" msgstr "carácter prefijo DSP desconocido %c%s" -#: config/tc-metag.c:6514 +#: config/tc-metag.c:6511 #, c-format msgid "instruction mnemonic too long: %s" msgstr "instrucción mnemónica demasiado larga: %s" -#: config/tc-metag.c:6569 +#: config/tc-metag.c:6566 #, c-format msgid "junk at end of line: \"%s\"" msgstr "basura al final de la línea: «%s»" -#: config/tc-metag.c:6576 +#: config/tc-metag.c:6573 #, c-format msgid "failed to assemble instruction: \"%s\"" msgstr "fallaba al ensamblar la instrucción: «%s»" -#: config/tc-metag.c:6581 +#: config/tc-metag.c:6578 #, c-format msgid "unknown floating point mnemonic: \"%s\"" msgstr "desconoce mnemónico de coma flotante: «%s»" -#: config/tc-metag.c:6583 +#: config/tc-metag.c:6580 #, c-format msgid "unknown mnemonic: \"%s\"" msgstr "desconoce mnemónico: «%s»" -#: config/tc-metag.c:6634 +#: config/tc-metag.c:6631 #, c-format msgid "cannot assemble DSP instruction, DSP option not set: %s" msgstr "no se puede ensamblar instrucción DSP, opción DSP no establecida: %s" -#: config/tc-metag.c:6641 +#: config/tc-metag.c:6638 #, c-format msgid "cannot assemble FPU instruction, FPU option not set: %s" msgstr "no puede ensamblar la instrucción FPS, opción FPS no definida: %s" -#: config/tc-metag.c:6739 config/tc-nds32.c:6112 +#: config/tc-metag.c:6733 config/tc-nds32.c:7347 msgid "Bad call to md_atof()" msgstr "Equivocación de llamada a md_atof()" -#: config/tc-microblaze.c:516 config/tc-microblaze.c:545 -#: config/tc-microblaze.c:582 +#: config/tc-microblaze.c:216 +#, c-format +msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld." +msgstr "La longitud de .lcomm «%s» ya es %ld. No se cambió a %ld." + +#: config/tc-microblaze.c:492 config/tc-microblaze.c:521 +#: config/tc-microblaze.c:558 #, c-format msgid "Invalid register number at '%.6s'" msgstr "Invalida número de registro en '%.6s'" -#: config/tc-microblaze.c:743 +#: config/tc-microblaze.c:723 msgid "operand must be a constant or a label" msgstr "operando debe ser una constante o una etiqueta" -#: config/tc-microblaze.c:752 +#: config/tc-microblaze.c:732 #, c-format msgid "operand must be absolute in range %lx..%lx, not %lx" msgstr "operando debe ser absoluto en límite %lx..%lx, no %lx" -#: config/tc-microblaze.c:954 config/tc-microblaze.c:961 -#: config/tc-microblaze.c:968 config/tc-microblaze.c:1001 -#: config/tc-microblaze.c:1008 config/tc-microblaze.c:1014 -#: config/tc-microblaze.c:1127 config/tc-microblaze.c:1134 -#: config/tc-microblaze.c:1140 config/tc-microblaze.c:1171 -#: config/tc-microblaze.c:1178 config/tc-microblaze.c:1198 -#: config/tc-microblaze.c:1205 config/tc-microblaze.c:1225 -#: config/tc-microblaze.c:1232 config/tc-microblaze.c:1250 -#: config/tc-microblaze.c:1257 config/tc-microblaze.c:1279 -#: config/tc-microblaze.c:1286 config/tc-microblaze.c:1304 -#: config/tc-microblaze.c:1316 config/tc-microblaze.c:1334 -#: config/tc-microblaze.c:1351 config/tc-microblaze.c:1358 -#: config/tc-microblaze.c:1404 config/tc-microblaze.c:1411 -#: config/tc-microblaze.c:1457 config/tc-microblaze.c:1464 -#: config/tc-microblaze.c:1486 config/tc-microblaze.c:1493 -#: config/tc-microblaze.c:1513 config/tc-microblaze.c:1519 -#: config/tc-microblaze.c:1579 config/tc-microblaze.c:1585 -#: config/tc-microblaze.c:1645 config/tc-microblaze.c:1719 +#: config/tc-microblaze.c:934 config/tc-microblaze.c:941 +#: config/tc-microblaze.c:948 config/tc-microblaze.c:981 +#: config/tc-microblaze.c:988 config/tc-microblaze.c:994 +#: config/tc-microblaze.c:1113 config/tc-microblaze.c:1120 +#: config/tc-microblaze.c:1126 config/tc-microblaze.c:1157 +#: config/tc-microblaze.c:1165 config/tc-microblaze.c:1179 +#: config/tc-microblaze.c:1197 config/tc-microblaze.c:1238 +#: config/tc-microblaze.c:1245 config/tc-microblaze.c:1265 +#: config/tc-microblaze.c:1272 config/tc-microblaze.c:1292 +#: config/tc-microblaze.c:1299 config/tc-microblaze.c:1317 +#: config/tc-microblaze.c:1324 config/tc-microblaze.c:1346 +#: config/tc-microblaze.c:1353 config/tc-microblaze.c:1371 +#: config/tc-microblaze.c:1383 config/tc-microblaze.c:1401 +#: config/tc-microblaze.c:1418 config/tc-microblaze.c:1425 +#: config/tc-microblaze.c:1471 config/tc-microblaze.c:1478 +#: config/tc-microblaze.c:1524 config/tc-microblaze.c:1531 +#: config/tc-microblaze.c:1553 config/tc-microblaze.c:1560 +#: config/tc-microblaze.c:1580 config/tc-microblaze.c:1586 +#: config/tc-microblaze.c:1648 config/tc-microblaze.c:1654 +#: config/tc-microblaze.c:1716 config/tc-microblaze.c:1792 msgid "Error in statement syntax" msgstr "Error en la sintaxis de la declaración" -#: config/tc-microblaze.c:974 config/tc-microblaze.c:976 -#: config/tc-microblaze.c:978 config/tc-microblaze.c:1018 -#: config/tc-microblaze.c:1020 config/tc-microblaze.c:1144 -#: config/tc-microblaze.c:1146 config/tc-microblaze.c:1184 -#: config/tc-microblaze.c:1186 config/tc-microblaze.c:1211 -#: config/tc-microblaze.c:1213 config/tc-microblaze.c:1238 -#: config/tc-microblaze.c:1261 config/tc-microblaze.c:1292 -#: config/tc-microblaze.c:1322 config/tc-microblaze.c:1340 -#: config/tc-microblaze.c:1470 config/tc-microblaze.c:1472 -#: config/tc-microblaze.c:1499 config/tc-microblaze.c:1501 -#: config/tc-microblaze.c:1523 config/tc-microblaze.c:1589 -#: config/tc-microblaze.c:1651 +#: config/tc-microblaze.c:954 config/tc-microblaze.c:956 +#: config/tc-microblaze.c:958 config/tc-microblaze.c:998 +#: config/tc-microblaze.c:1000 config/tc-microblaze.c:1130 +#: config/tc-microblaze.c:1132 config/tc-microblaze.c:1171 +#: config/tc-microblaze.c:1173 config/tc-microblaze.c:1251 +#: config/tc-microblaze.c:1253 config/tc-microblaze.c:1278 +#: config/tc-microblaze.c:1280 config/tc-microblaze.c:1305 +#: config/tc-microblaze.c:1328 config/tc-microblaze.c:1359 +#: config/tc-microblaze.c:1389 config/tc-microblaze.c:1407 +#: config/tc-microblaze.c:1537 config/tc-microblaze.c:1539 +#: config/tc-microblaze.c:1566 config/tc-microblaze.c:1568 +#: config/tc-microblaze.c:1590 config/tc-microblaze.c:1658 +#: config/tc-microblaze.c:1722 msgid "Cannot use special register with this instruction" msgstr "No se puede usar el registro especial con esta instrucción" -#: config/tc-microblaze.c:1028 +#: config/tc-microblaze.c:1008 msgid "lmi pseudo instruction should not use a label in imm field" msgstr "pseudo instrucción lmi no debería emplear una etiqueta en el campo imm" -#: config/tc-microblaze.c:1030 +#: config/tc-microblaze.c:1010 msgid "smi pseudo instruction should not use a label in imm field" msgstr "pseudo instrucción smi no debería emplear una etiqueta en el campo imm" -#: config/tc-microblaze.c:1149 +#: config/tc-microblaze.c:1135 msgid "Symbol used as immediate for shift instruction" msgstr "Se utiliza un símbolo como inmediato para la instrucción desplazamiento" -#: config/tc-microblaze.c:1158 +#: config/tc-microblaze.c:1144 #, c-format msgid "Shift value > 32. using <value %% 32>" msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>" -#: config/tc-microblaze.c:1264 +#: config/tc-microblaze.c:1184 +#, fuzzy +#| msgid "Symbol used as immediate value for msrset/msrclr instructions" +msgid "Symbol used as immediate width value for bit field instruction" +msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr" + +#: config/tc-microblaze.c:1191 +#, fuzzy +#| msgid "file number less than one" +msgid "Width value must be less than 32" +msgstr "número de fichero menor que uno" + +#: config/tc-microblaze.c:1202 +#, fuzzy +#| msgid "Symbol used as immediate value for msrset/msrclr instructions" +msgid "Symbol used as immediate shift value for bit field instruction" +msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr" + +#: config/tc-microblaze.c:1213 +#, fuzzy, c-format +#| msgid "Shift value > 32. using <value %% 32>" +msgid "Shift value greater than 32. using <value %% 32>" +msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>" + +#: config/tc-microblaze.c:1219 +#, fuzzy +#| msgid "branch target frequency must be greater than 0" +msgid "Width value + shift value must not be greater than 32" +msgstr "la frecuencia de ramificación de objetivo debe ser mayor a 0" + +#: config/tc-microblaze.c:1331 msgid "Symbol used as immediate value for msrset/msrclr instructions" msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr" -#: config/tc-microblaze.c:1393 config/tc-microblaze.c:1446 +#: config/tc-microblaze.c:1460 config/tc-microblaze.c:1513 msgid "invalid value for special purpose register" msgstr "valor inválido para el registro de propósito especial" -#: config/tc-microblaze.c:1659 +#: config/tc-microblaze.c:1730 msgid "An IMM instruction should not be present in the .s file" msgstr "Una instrucción IMM no debe estar presente en el fichero .s" -#: config/tc-microblaze.c:1721 +#: config/tc-microblaze.c:1794 msgid "Symbol used as immediate for mbar instruction" msgstr "Se utiliza un símbolo como inmediato para instrucción mbar" -#: config/tc-microblaze.c:1727 +#: config/tc-microblaze.c:1800 #, c-format msgid "Immediate value for mbar > 32. using <value %% 32>" msgstr "Valor inmediato para mbar > 32. utilizando <valor %% 32>" -#: config/tc-microblaze.c:1804 +#: config/tc-microblaze.c:1874 msgid "Bad call to MD_NTOF()" -msgstr "Llamada equivocada a MD_NTOF()" +msgstr "Llamada incorrecta a MD_NTOF()" -#: config/tc-microblaze.c:2061 +#: config/tc-microblaze.c:2143 #, c-format msgid "pcrel for branch to %s too far (0x%x)" msgstr "el pcrel para ramificar a %s muy lejos (0x%x)" #. We know the abs value: Should never happen. -#: config/tc-microblaze.c:2216 +#: config/tc-microblaze.c:2304 msgid "Absolute PC-relative value in relaxation code. Assembler error....." msgstr "Valor relativo a PC absoluto en código de relajación. Error de ensamblador....." #. Cannot have a PC-relative branch to a diff segment. -#: config/tc-microblaze.c:2230 +#: config/tc-microblaze.c:2318 #, c-format msgid "PC relative branch to label %s which is not in the instruction space" msgstr "Ramificación relativa a PC a la etiqueta %s, la cual no está en el espacio de instrucción" -#: config/tc-microblaze.c:2271 +#: config/tc-microblaze.c:2361 msgid "Variable is accessed using small data read only anchor, but it is not in the small data read only section" -msgstr "Se accede a la variable usando un ancla de sólo lectura de datos small, pero no está en la sección de sólo lectura de datos small" +msgstr "Se accede a la variable usando un ancla de solo lectura de datos small, pero no está en la sección de solo lectura de datos small" -#: config/tc-microblaze.c:2294 +#: config/tc-microblaze.c:2384 msgid "Variable is accessed using small data read write anchor, but it is not in the small data read write section" msgstr "Se accede a la variable usando un ancla de lectura escritura de datos smaill, pero no está en la sección de lectura escritura de datos small" -#: config/tc-microblaze.c:2303 +#: config/tc-microblaze.c:2393 msgid "Incorrect fr_opcode value in frag. Internal error....." msgstr "Valor de fr_opcode incorrecto en frag. Error interno....." #. We know the abs value: Should never happen. -#: config/tc-microblaze.c:2310 +#: config/tc-microblaze.c:2400 msgid "Absolute value in relaxation code. Assembler error....." msgstr "Valor absoluto en código de relajación. Error de ensamblador....." -#: config/tc-mips.c:2081 +#. fprintf(stream, _(" MicroBlaze options:\n -noSmall Data in the comm and data sections do not go into the small data section\n")); +#: config/tc-microblaze.c:2585 +#, fuzzy, c-format +#| msgid " Score-specific assembler options:\n" +msgid " MicroBlaze specific assembler options:\n" +msgstr " Opciones de ensamblador específicas de Score:\n" + +#: config/tc-microblaze.c:2586 +#, fuzzy +#| msgid "assemble for big-endian" +msgid "assemble for a big endian cpu" +msgstr "ensamblar para big-endian" + +#: config/tc-microblaze.c:2587 +#, fuzzy +#| msgid "assemble for little-endian" +msgid "assemble for a little endian cpu" +msgstr "ensamblar para little-endian" + +#: config/tc-mips.c:2184 #, c-format msgid "the %d-bit %s architecture does not support the `%s' extension" msgstr "el %d-bit %s arquitectural no admite «%s» como extensión" -#: config/tc-mips.c:2084 +#: config/tc-mips.c:2187 #, c-format msgid "the `%s' extension requires %s%d revision %d or greater" msgstr "la extensión «%s» requiere %s%d revisión %d o superior" -#: config/tc-mips.c:2093 +#: config/tc-mips.c:2196 #, c-format msgid "the `%s' extension was removed in %s%d revision %d" msgstr "la extensión «%s» fue quitada en %s%d revisión %d" -#: config/tc-mips.c:2102 +#: config/tc-mips.c:2205 #, c-format msgid "the `%s' extension requires 64-bit FPRs" msgstr "la extensión `%s' requiere varios FPR de 64-bit" -#: config/tc-mips.c:2945 config/tc-mips.c:16245 +#: config/tc-mips.c:3057 config/tc-mips.c:16644 #, c-format msgid "unrecognized register name `%s'" msgstr "nombre de registro no reconocido «%s»" -#: config/tc-mips.c:3172 +#: config/tc-mips.c:3284 msgid "invalid register range" msgstr "límite inválido registro" -#: config/tc-mips.c:3200 +#: config/tc-mips.c:3312 msgid "vector element must be constant" msgstr "elemento vector debe ser constante" -#: config/tc-mips.c:3210 +#: config/tc-mips.c:3322 msgid "missing `]'" msgstr "ausente `]'" -#: config/tc-mips.c:3433 +#: config/tc-mips.c:3545 #, c-format msgid "internal: bad mips opcode (mask error): %s %s" -msgstr "interno: código operacional mips equivocado (error de máscara): %s %s" +msgstr "interno: código operacional mips incorrecto (error de máscara): %s %s" -#: config/tc-mips.c:3460 +#: config/tc-mips.c:3572 #, c-format msgid "internal: unknown operand type: %s %s" msgstr "interno: tipo operando desconocido: %s %s" -#: config/tc-mips.c:3493 +#: config/tc-mips.c:3605 #, c-format msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s" -msgstr "interno: código operacional mips equivocado (bits 0x%08lx definidos doble ): %s %s" +msgstr "interno: código operacional mips incorrecto (bits 0x%08lx definidos doble ): %s %s" -#: config/tc-mips.c:3501 +#: config/tc-mips.c:3613 #, c-format msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s" -msgstr "interno: código operacional mips equivocado (varios bit 0x%08lx definidos): %s %s" +msgstr "interno: código operacional mips incorrecto (varios bit 0x%08lx definidos): %s %s" -#: config/tc-mips.c:3508 +#: config/tc-mips.c:3620 #, c-format msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s" -msgstr "interno: código operacional mips equivocado (varios bit 0x%08lx definidos): %s %s" +msgstr "interno: código operacional mips incorrecto (varios bit 0x%08lx definidos): %s %s" -#: config/tc-mips.c:3543 +#: config/tc-mips.c:3655 #, c-format msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s" -msgstr "error interno: código op microMIPS equivocado (longitud eincorrecta: %u): %s %s" +msgstr "error interno: código op microMIPS incorrecto (longitud eincorrecta: %u): %s %s" -#: config/tc-mips.c:3551 +#: config/tc-mips.c:3663 #, c-format msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s" msgstr "error interno: equivocación de código operativo microMIPS (código operacional/longitud incoherente): %s %s" -#: config/tc-mips.c:3577 +#: config/tc-mips.c:3688 msgid "-G may not be used in position-independent code" msgstr "-G no se puede usar en código independiente de posición" -#: config/tc-mips.c:3583 +#: config/tc-mips.c:3694 msgid "-G may not be used with abicalls" msgstr "-G quizá no está emplado con llamadas abi" -#. Probably a memory allocation problem? Give up now. -#: config/tc-mips.c:3603 config/tc-mips.c:3694 +#: config/tc-mips.c:3799 msgid "broken assembler, no assembly attempted" msgstr "ensamblador descompuesto, no trata ensamblarlo" -#: config/tc-mips.c:3633 config/tc-mips.c:3662 -#, c-format -msgid "internal: can't hash `%s': %s" -msgstr "interno: no se puede dispersar «%s»: %s" - -#: config/tc-mips.c:3844 +#: config/tc-mips.c:3947 #, c-format msgid ".gnu_attribute %d,%d is incompatible with `%s'" msgstr ".gnu_attribute %d,%d es incompatible con «%s»" -#: config/tc-mips.c:3851 +#: config/tc-mips.c:3954 #, c-format msgid ".gnu_attribute %d,%d requires `%s'" msgstr ".gnu_attribute %d,%d requiere «%s»" -#: config/tc-mips.c:3912 +#: config/tc-mips.c:4015 #, c-format msgid ".gnu_attribute %d,%d is no longer supported" msgstr ".gnu_attribute %d,%d no es compatible más" -#: config/tc-mips.c:3921 +#: config/tc-mips.c:4024 #, c-format msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI" msgstr ".gnu_attribute %d,%d no es un ABI coma-flotante reconocida" -#: config/tc-mips.c:3934 +#: config/tc-mips.c:4037 msgid "`gp=64' used with a 32-bit processor" msgstr "se utilizó `gp=64' con un procesador de 32-bit" -#: config/tc-mips.c:3937 +#: config/tc-mips.c:4040 msgid "`gp=32' used with a 64-bit ABI" msgstr "se utilizó `gp=32' con un ABI de 64-bit" -#: config/tc-mips.c:3940 +#: config/tc-mips.c:4043 msgid "`gp=64' used with a 32-bit ABI" msgstr "se utilizó `gp=64' con un ABI de 32-bit" -#: config/tc-mips.c:3947 +#: config/tc-mips.c:4050 msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions" msgstr "" -#: config/tc-mips.c:3949 +#: config/tc-mips.c:4052 msgid "`fp=xx' cannot be used with `singlefloat'" msgstr "`fp=xx' no puede ser utilizado con `singlefloat'" -#: config/tc-mips.c:3953 +#: config/tc-mips.c:4056 msgid "`fp=64' used with a 32-bit fpu" msgstr "utilizó `fp=64' con un fpu de 32-bit" -#: config/tc-mips.c:3957 +#: config/tc-mips.c:4060 msgid "`fp=64' used with a 32-bit ABI" msgstr "utilizó `fp=64' con un ABI de 32-bit" -#: config/tc-mips.c:3962 +#: config/tc-mips.c:4065 msgid "`fp=32' used with a 64-bit ABI" msgstr "utilizó`fp=32' con un ABI de 64-bit" -#: config/tc-mips.c:3964 +#: config/tc-mips.c:4067 msgid "`fp=32' used with a MIPS R6 cpu" msgstr "utilizó `fp=32' con un MIPS R6 cpu" -#: config/tc-mips.c:3967 +#: config/tc-mips.c:4070 msgid "Unknown size of floating point registers" msgstr "Tamaño desconocido de registros de coma flotante" -#: config/tc-mips.c:3972 +#: config/tc-mips.c:4075 msgid "`nooddspreg` cannot be used with a 64-bit ABI" msgstr "`nooddspreg` no puede ser empleado con un ABI de 64-bit" -#: config/tc-mips.c:3975 config/tc-mips.c:3979 +#: config/tc-mips.c:4078 config/tc-mips.c:4082 #, c-format msgid "`%s' cannot be used with `%s'" msgstr "«%s» no puede ser utilizado con «%s»" -#: config/tc-mips.c:3984 +#: config/tc-mips.c:4087 #, c-format msgid "branch relaxation is not supported in `%s'" msgstr "relajación de ramificación no está admitida en «%s»" -#: config/tc-mips.c:4064 -msgid "trap exception not supported at ISA 1" -msgstr "excepción de captura no admitida en ISA 1" - -#: config/tc-mips.c:4077 config/tc-mips.c:17125 +#: config/tc-mips.c:4173 config/tc-mips.c:17527 #, c-format msgid "`%s' does not support legacy NaN" msgstr "«%s» no apoyado con herencia NaN" -#: config/tc-mips.c:4124 +#: config/tc-mips.c:4220 #, c-format msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n" msgstr "devuelto de mips_ip(%s) insn_opcode = 0x%x\n" -#: config/tc-mips.c:4829 +#: config/tc-mips.c:4924 #, c-format msgid "operand %d out of range" -msgstr "operando %d fuera de límite" +msgstr "operando %d fuera de rango" -#: config/tc-mips.c:4837 +#: config/tc-mips.c:4932 #, c-format msgid "operand %d must be constant" msgstr "operando %d debe ser constante" -#: config/tc-mips.c:4881 read.c:4340 read.c:5316 write.c:265 write.c:1021 +#: config/tc-mips.c:4976 read.c:4594 read.c:5364 read.c:5490 write.c:250 +#: write.c:1058 msgid "register value used as expression" msgstr "valor registrado utilizado como expresión" -#: config/tc-mips.c:4894 +#: config/tc-mips.c:4989 #, c-format msgid "operand %d must be an immediate expression" msgstr "operando %d debe ser una expresión inmediata" -#: config/tc-mips.c:5015 config/tc-mips.c:5017 +#: config/tc-mips.c:5111 config/tc-mips.c:5113 #, c-format msgid "float register should be even, was %d" msgstr "registro flotante debería ser par, era %d" -#: config/tc-mips.c:5030 +#: config/tc-mips.c:5126 #, c-format msgid "condition code register should be even for %s, was %d" msgstr "código condicional registrado debería ser par para %s, era %d" -#: config/tc-mips.c:5035 +#: config/tc-mips.c:5131 #, c-format msgid "condition code register should be 0 or 4 for %s, was %d" msgstr "código condicional registrado debería ser 0 o 4 para %s, era %d" -#: config/tc-mips.c:5356 +#: config/tc-mips.c:5452 msgid "invalid performance register" msgstr "rendimiento registrado inválido" -#: config/tc-mips.c:5452 +#: config/tc-mips.c:5548 config/tc-mips.c:6019 msgid "the source register must not be $0" msgstr "el registro origen debe no ser $0" -#: config/tc-mips.c:5728 +#: config/tc-mips.c:5824 msgid "missing frame size" msgstr "ausente el tamaño del marco" -#: config/tc-mips.c:5733 +#: config/tc-mips.c:5829 msgid "frame size specified twice" msgstr "tamaño del marco especificado dos veces" -#: config/tc-mips.c:5738 +#: config/tc-mips.c:5834 msgid "invalid frame size" msgstr "tamaño de marco inválido" -#: config/tc-mips.c:5778 +#: config/tc-mips.c:5874 #, c-format msgid "operand %d must be an immediate" msgstr "operando %d debe ser un inmediato" -#: config/tc-mips.c:5793 +#: config/tc-mips.c:5889 msgid "invalid element selector" msgstr "selector de elemento inválido" -#: config/tc-mips.c:5806 +#: config/tc-mips.c:5902 #, c-format msgid "operand %d must be scalar" msgstr "operando %d debe ser escalar" -#: config/tc-mips.c:5983 +#: config/tc-mips.c:6082 msgid "floating-point expression required" msgstr "requerida expresión de coma flotante" -#: config/tc-mips.c:6083 +#: config/tc-mips.c:6182 #, c-format msgid "cannot use `%s' in this section" msgstr "no puede utilizar `%s' dentro de esta sección" -#: config/tc-mips.c:6230 +#: config/tc-mips.c:6329 msgid "used $at without \".set noat\"" msgstr "se utilizó $at sin \".set noat\"" -#: config/tc-mips.c:6232 +#: config/tc-mips.c:6331 #, c-format msgid "used $%u with \".set at=$%u\"" msgstr "se utilizó $%u sin \".set at=$%u\"" -#: config/tc-mips.c:7261 +#: config/tc-mips.c:7510 #, c-format msgid "wrong size instruction in a %u-bit branch delay slot" -msgstr "tamaño de instrucción equivocado en una ranura de retardo ramificado a %u-bit" +msgstr "tamaño de instrucción incorrecto en una ranura de retardo ramificado a %u-bit" -#: config/tc-mips.c:7281 config/tc-mips.c:7291 config/tc-mips.c:15551 +#: config/tc-mips.c:7530 config/tc-mips.c:7540 config/tc-mips.c:15944 #, c-format msgid "jump to misaligned address (0x%lx)" msgstr "omisión a una dirección mal alineada (0x%lx)" -#: config/tc-mips.c:7306 config/tc-mips.c:7326 config/tc-mips.c:7343 -#: config/tc-mips.c:8874 config/tc-mips.c:15405 config/tc-mips.c:15412 -#: config/tc-mips.c:15806 config/tc-mips.c:18640 +#: config/tc-mips.c:7555 config/tc-mips.c:7575 config/tc-mips.c:7592 +#: config/tc-mips.c:9142 config/tc-mips.c:15798 config/tc-mips.c:15805 +#: config/tc-mips.c:16198 config/tc-mips.c:19046 #, c-format msgid "branch to misaligned address (0x%lx)" msgstr "ramificación a una dirección mal alineada (0x%lx)" -#: config/tc-mips.c:7312 config/tc-mips.c:7330 config/tc-mips.c:7347 -#: config/tc-mips.c:8877 +#: config/tc-mips.c:7561 config/tc-mips.c:7579 config/tc-mips.c:7596 +#: config/tc-mips.c:9145 #, c-format msgid "branch address range overflow (0x%lx)" msgstr "ramificación de límite direccional desborda (0x%lx)" -#: config/tc-mips.c:7592 +#: config/tc-mips.c:7841 msgid "extended instruction in delay slot" msgstr "instrucción extendida en ranura de retardo" -#: config/tc-mips.c:8056 +#: config/tc-mips.c:8305 msgid "source and destination must be different" msgstr "origen y destino deben ser diferentes" -#: config/tc-mips.c:8059 +#: config/tc-mips.c:8308 msgid "a destination register must be supplied" msgstr "un registro de destino debe ser proporcionado" -#: config/tc-mips.c:8064 +#: config/tc-mips.c:8313 msgid "the source register must not be $31" msgstr "el registro origen debe no ser $31" -#: config/tc-mips.c:8312 config/tc-mips.c:14189 config/tc-mips.c:18786 +#: config/tc-mips.c:8561 config/tc-mips.c:14536 config/tc-mips.c:19193 msgid "invalid unextended operand value" msgstr "valor de operando no extendido inválido" -#: config/tc-mips.c:8430 +#: config/tc-mips.c:8679 #, c-format msgid "opcode not supported on this processor: %s (%s)" msgstr "código operacional no admitido en este procesador: %s (%s)" -#: config/tc-mips.c:8509 +#: config/tc-mips.c:8758 msgid "opcode not supported in the `insn32' mode" msgstr "código operacional no admitido dentro del modo `insn32' no admitido" -#: config/tc-mips.c:8512 +#: config/tc-mips.c:8761 #, c-format msgid "unrecognized %d-bit version of microMIPS opcode" msgstr "versión no reconocida %d-bit de código operacional microMIPS" -#: config/tc-mips.c:8568 +#: config/tc-mips.c:8817 msgid "unrecognized unextended version of MIPS16 opcode" msgstr "no reconocida versión del código operacional de MIPS16" -#: config/tc-mips.c:8571 +#: config/tc-mips.c:8820 msgid "unrecognized extended version of MIPS16 opcode" msgstr "versión extendida de código operacional MIPS16 no reconocida" -#: config/tc-mips.c:8621 config/tc-mips.c:18657 +#: config/tc-mips.c:8870 config/tc-mips.c:19064 msgid "macro instruction expanded into multiple instructions in a branch delay slot" msgstr "instrucción macro expandida en instrucciones múltiples en una ranura de retraso de ramificación" -#: config/tc-mips.c:8624 config/tc-mips.c:18665 +#: config/tc-mips.c:8873 config/tc-mips.c:19072 msgid "macro instruction expanded into multiple instructions" msgstr "instrucción macro expandida en instrucciones múltiples" -#: config/tc-mips.c:8628 +#: config/tc-mips.c:8877 msgid "macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot" -msgstr "instrucción macro expandida en un tamaño de instrucción equivocado dentro de una ranura de retraso de ramificación de 16-bit" +msgstr "instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de ramificación de 16-bit" -#: config/tc-mips.c:8630 +#: config/tc-mips.c:8879 msgid "macro instruction expanded into a wrong size instruction in a 32-bit branch delay slot" -msgstr "instrucción macro expandida en un tamaño de instrucción equivocado dentro de una ranura de retraso de ramificación de 32-bit" +msgstr "instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de ramificación de 32-bit" -#: config/tc-mips.c:9074 +#: config/tc-mips.c:9342 msgid "operand overflow" msgstr "desbordamiento de operando" -#: config/tc-mips.c:9093 config/tc-mips.c:9677 config/tc-mips.c:13670 +#: config/tc-mips.c:9361 config/tc-mips.c:9946 config/tc-mips.c:14017 msgid "macro used $at after \".set noat\"" msgstr "macro $at empleada tras \".set noat\"" -#: config/tc-mips.c:9241 config/tc-mips.c:12009 config/tc-mips.c:12668 -#, c-format -msgid "number (0x%s) larger than 32 bits" +#: config/tc-mips.c:9506 config/tc-mips.c:12329 config/tc-mips.c:13010 +#, fuzzy, c-format +#| msgid "number (0x%s) larger than 32 bits" +msgid "number (0x%<PRIx64>) larger than 32 bits" msgstr "número (0x%s) más largo que 32 bits" -#: config/tc-mips.c:9261 +#: config/tc-mips.c:9527 msgid "number larger than 64 bits" msgstr "número más largo que 64 bits" -#: config/tc-mips.c:9555 config/tc-mips.c:9583 config/tc-mips.c:9621 -#: config/tc-mips.c:9666 config/tc-mips.c:12244 config/tc-mips.c:12283 -#: config/tc-mips.c:12322 config/tc-mips.c:12764 config/tc-mips.c:12816 +#: config/tc-mips.c:9824 config/tc-mips.c:9852 config/tc-mips.c:9890 +#: config/tc-mips.c:9935 config/tc-mips.c:12573 config/tc-mips.c:12612 +#: config/tc-mips.c:12651 config/tc-mips.c:13107 config/tc-mips.c:13159 msgid "PIC code offset overflow (max 16 signed bits)" msgstr "Desbordamiento del desplazamiento del código PIC (máx 16 bits con signo)" -#: config/tc-mips.c:10194 +#: config/tc-mips.c:10478 #, c-format msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)" msgstr "BALING inmediato no es 0, 1, 2 o 3 (%lu)" -#. result is always true -#: config/tc-mips.c:10290 +#. Result is always true. +#: config/tc-mips.c:10574 #, c-format msgid "branch %s is always true" msgstr "rama %s siempre es verdadero" -#: config/tc-mips.c:10518 config/tc-mips.c:10628 +#: config/tc-mips.c:10802 config/tc-mips.c:10910 msgid "divide by zero" msgstr "división entre cero" -#: config/tc-mips.c:10718 +#: config/tc-mips.c:11000 msgid "dla used to load 32-bit register; recommend using la instead" msgstr "dla utilizado para cargar registros de 32-bit; recomienda usar la en su lugar" -#: config/tc-mips.c:10722 +#: config/tc-mips.c:11004 msgid "la used to load 64-bit address; recommend using dla instead" msgstr "la utilizada para cargar direcciones de 64-bit; recomienda usar en lugar dla" -#: config/tc-mips.c:10831 config/tc-riscv.c:944 config/tc-z80.c:732 +#: config/tc-mips.c:11113 config/tc-riscv.c:2364 msgid "offset too large" msgstr "desplazamiento demasiado grande" -#: config/tc-mips.c:11005 config/tc-mips.c:11283 +#: config/tc-mips.c:11287 config/tc-mips.c:11565 msgid "PIC code offset overflow (max 32 signed bits)" msgstr "Desbordamiento del desplazamiento del código PIC (máx 32 bits con signo)" -#: config/tc-mips.c:11353 config/tc-mips.c:11429 +#: config/tc-mips.c:11635 config/tc-mips.c:11711 #, c-format msgid "opcode not supported in the `insn32' mode `%s'" msgstr "código operacional no admitido dentro del modo `insn32' «%s»" -#: config/tc-mips.c:11381 +#: config/tc-mips.c:11663 msgid "MIPS PIC call to register other than $25" msgstr "Llamada PIC MIPS a un registro diferente de $25" -#: config/tc-mips.c:11397 config/tc-mips.c:11408 config/tc-mips.c:11541 -#: config/tc-mips.c:11552 +#: config/tc-mips.c:11679 config/tc-mips.c:11690 config/tc-mips.c:11823 +#: config/tc-mips.c:11834 msgid "no .cprestore pseudo-op used in PIC code" msgstr "no se utilizó pseudo-operador .cprestore en el código PIC" -#: config/tc-mips.c:11402 config/tc-mips.c:11546 +#: config/tc-mips.c:11684 config/tc-mips.c:11828 msgid "no .frame pseudo-op used in PIC code" msgstr "no se utilizó pseudo-operador .frame en el código PIC" -#: config/tc-mips.c:11567 +#: config/tc-mips.c:11849 msgid "non-PIC jump used in PIC library" msgstr "omisión no-PIC utilizada en biblioteca PIC" -#: config/tc-mips.c:12494 +#: config/tc-mips.c:12830 #, c-format msgid "Unable to generate `%s' compliant code without mthc1" msgstr "" -#: config/tc-mips.c:13228 +#: config/tc-mips.c:13571 #, c-format msgid "instruction %s: result is always false" msgstr "instrucción %s: resultado es siempre falso" -#: config/tc-mips.c:13381 +#: config/tc-mips.c:13724 #, c-format msgid "instruction %s: result is always true" msgstr "instrucción %s: resultado es siempre verdadero" #. FIXME: Check if this is one of the itbl macros, since they #. are added dynamically. -#: config/tc-mips.c:13666 +#: config/tc-mips.c:14013 #, c-format msgid "macro %s not implemented yet" msgstr "macro %s aún no implementada" -#: config/tc-mips.c:14011 config/tc-mips.c:14075 config/tc-mips.c:14086 -#: config/tc-score.c:2691 config/tc-score.c:2737 -msgid "unrecognized opcode" -msgstr "no reconocido código operacional" - -#: config/tc-mips.c:14199 +#: config/tc-mips.c:14546 msgid "extended operand requested but not required" msgstr "se solicitó un operando extendido pero se necesita" -#: config/tc-mips.c:14208 +#: config/tc-mips.c:14555 msgid "operand value out of range for instruction" -msgstr "el valor de operando está fuera de límite para la instrucción" +msgstr "el valor de operando está fuera de rango para la instrucción" -#: config/tc-mips.c:14307 +#: config/tc-mips.c:14654 #, c-format msgid "relocation %s isn't supported by the current ABI" msgstr "la ABI actual no admite la reubicación %s" -#: config/tc-mips.c:14363 +#: config/tc-mips.c:14711 msgid "unclosed '('" msgstr "no cerrado '('" -#: config/tc-mips.c:14429 +#: config/tc-mips.c:14773 #, c-format msgid "a different %s was already specified, is now %s" msgstr "un %s diferente fue ya especificado, ahora es %s" -#: config/tc-mips.c:14596 +#: config/tc-mips.c:14940 msgid "-mmicromips cannot be used with -mips16" msgstr "-mmicromips no se puede usar con -mips16" -#: config/tc-mips.c:14611 +#: config/tc-mips.c:14955 msgid "-mips16 cannot be used with -micromips" msgstr "-mips16 no se puede usar con -micromips" -#: config/tc-mips.c:14762 config/tc-mips.c:14820 +#: config/tc-mips.c:15124 config/tc-mips.c:15182 msgid "no compiled in support for 64 bit object file format" msgstr "no compiló el soporte para el formato de fichero objeto de 64 bit" -#: config/tc-mips.c:14827 +#: config/tc-mips.c:15189 #, c-format msgid "invalid abi -mabi=%s" msgstr "interruptor abi -mabi=%s inválido" -#: config/tc-mips.c:14867 +#: config/tc-mips.c:15229 #, c-format msgid "invalid NaN setting -mnan=%s" msgstr "invalida opciones NaN -mnan=%s" -#: config/tc-mips.c:14901 +#: config/tc-mips.c:15263 msgid "-G not supported in this configuration" msgstr "-G no se admite en esta configuración" -#: config/tc-mips.c:14927 +#: config/tc-mips.c:15289 #, c-format msgid "-%s conflicts with the other architecture options, which imply -%s" msgstr "-%s tiene conflictos con las otras casillas de arquitectura, las cuales implican -%s" -#: config/tc-mips.c:14943 +#: config/tc-mips.c:15302 +#, c-format +msgid "gas doesn't understand your configure target %s" +msgstr "" + +#: config/tc-mips.c:15307 #, c-format msgid "-march=%s is not compatible with the selected ABI" msgstr "-march=%s no es compatible con la ABI seleccionada" -#: config/tc-mips.c:15409 config/tc-mips.c:15800 config/tc-mips.c:18637 +#: config/tc-mips.c:15802 config/tc-mips.c:16192 config/tc-mips.c:19043 msgid "branch to a symbol in another ISA mode" msgstr "ramificación a un símbolo dentro de otro modo ISA" -#: config/tc-mips.c:15416 config/tc-mips.c:15557 config/tc-mips.c:15810 +#: config/tc-mips.c:15809 config/tc-mips.c:15949 config/tc-mips.c:16202 #, c-format msgid "cannot encode misaligned addend in the relocatable field (0x%lx)" msgstr "" -#: config/tc-mips.c:15453 +#: config/tc-mips.c:15846 msgid "PC-relative reference to a different section" msgstr "Referencia relativa al PC para una sección diferente" -#: config/tc-mips.c:15525 config/tc-riscv.c:1960 +#: config/tc-mips.c:15918 config/tc-riscv.c:4627 msgid "TLS relocation against a constant" msgstr "TLS reubicado contra una constante" -#: config/tc-mips.c:15545 +#: config/tc-mips.c:15938 msgid "jump to a symbol in another ISA mode" msgstr "omite a un símbolo dentro de otro modo ISA" -#: config/tc-mips.c:15548 +#: config/tc-mips.c:15941 msgid "JALX to a symbol in the same ISA mode" msgstr "JALX para un símbolo dentro del mismo modo ISA" -#: config/tc-mips.c:15633 +#: config/tc-mips.c:16024 msgid "unsupported constant in relocation" msgstr "constante no admitida en reubicación" -#: config/tc-mips.c:15705 +#: config/tc-mips.c:16097 #, c-format msgid "PC-relative access using misaligned symbol (%lx)" msgstr "" -#: config/tc-mips.c:15709 +#: config/tc-mips.c:16101 #, c-format msgid "PC-relative access using misaligned offset (%lx)" msgstr "" -#: config/tc-mips.c:15722 config/tc-mips.c:15741 +#: config/tc-mips.c:16114 config/tc-mips.c:16133 msgid "PC-relative access out of range" -msgstr "PC-relativo de acceso fuera de límite" +msgstr "PC-relativo de acceso fuera de rango" -#: config/tc-mips.c:15728 +#: config/tc-mips.c:16120 #, c-format msgid "PC-relative access to misaligned address (%lx)" msgstr "Acceso PC-relativo para direcciones mal alineada (%lx)" -#: config/tc-mips.c:15895 +#: config/tc-mips.c:16289 #, c-format msgid "alignment too large, %d assumed" msgstr "alineación demasiado grande, %d asumido" -#: config/tc-mips.c:15898 +#: config/tc-mips.c:16292 msgid "alignment negative, 0 assumed" msgstr "alineación negativa, 0 asimido" -#: config/tc-mips.c:16140 +#: config/tc-mips.c:16524 #, c-format msgid "%s: no such section" msgstr "%s: no existe tal sección" -#: config/tc-mips.c:16181 +#: config/tc-mips.c:16580 #, c-format msgid ".option pic%d not supported" msgstr "No se admite .option pic%d" -#: config/tc-mips.c:16183 +#: config/tc-mips.c:16582 #, c-format msgid ".option pic%d not supported in VxWorks PIC mode" msgstr ".option pic%d no admitido dentro de modo PIC VxWorks" -#: config/tc-mips.c:16195 config/tc-mips.c:16532 +#: config/tc-mips.c:16594 config/tc-mips.c:16934 msgid "-G may not be used with SVR4 PIC code" msgstr "-G no se puede utilizar con código PIC de SVR4" -#: config/tc-mips.c:16201 +#: config/tc-mips.c:16600 #, c-format msgid "unrecognized option \"%s\"" msgstr "opción no reconocida «%s»" -#: config/tc-mips.c:16307 +#: config/tc-mips.c:16706 #, c-format msgid "unknown architecture %s" msgstr "desconoce arquitectura %s" -#: config/tc-mips.c:16321 config/tc-mips.c:16483 +#: config/tc-mips.c:16721 config/tc-mips.c:16885 #, c-format msgid "unknown ISA level %s" msgstr "desconoce nivel %s ISA" -#: config/tc-mips.c:16330 +#: config/tc-mips.c:16731 #, c-format msgid "unknown ISA or architecture %s" msgstr "desconoce ISA o arquitectura %s" -#: config/tc-mips.c:16389 +#: config/tc-mips.c:16790 msgid "`noreorder' must be set before `nomacro'" msgstr "se debe establecer `noreorder' antes de `nomacro'" -#: config/tc-mips.c:16418 +#: config/tc-mips.c:16820 msgid ".set pop with no .set push" msgstr ".set pop sin .set push" -#: config/tc-mips.c:16437 +#: config/tc-mips.c:16839 #, c-format msgid "tried to set unrecognized symbol: %s\n" msgstr "intentaba establecer un símbolo no reconocido: %s\n" -#: config/tc-mips.c:16510 +#: config/tc-mips.c:16912 #, c-format msgid ".module used with unrecognized symbol: %s\n" msgstr ".module utilizado con símbolo no reconocido: %s\n" -#: config/tc-mips.c:16516 +#: config/tc-mips.c:16918 msgid ".module is not permitted after generating code" msgstr ".module no está permitido tras generar código" -#: config/tc-mips.c:16576 config/tc-mips.c:16655 config/tc-mips.c:16759 -#: config/tc-mips.c:16789 config/tc-mips.c:16838 +#: config/tc-mips.c:16978 config/tc-mips.c:17057 config/tc-mips.c:17161 +#: config/tc-mips.c:17191 config/tc-mips.c:17240 #, c-format msgid "%s not supported in MIPS16 mode" msgstr "%s no admitido dentro del modo MIPS16" -#: config/tc-mips.c:16583 +#: config/tc-mips.c:16985 msgid ".cpload not in noreorder section" msgstr ".cpload no está en la sección noreorder" -#: config/tc-mips.c:16664 config/tc-mips.c:16683 +#: config/tc-mips.c:17066 config/tc-mips.c:17085 msgid "missing argument separator ',' for .cpsetup" msgstr "ausente el separador de argumentos ',' para .cpsetup" -#: config/tc-mips.c:16881 +#: config/tc-mips.c:17283 config/tc-riscv.c:5027 #, c-format msgid "unsupported use of %s" msgstr "no admitió utilización de %s" -#: config/tc-mips.c:16972 +#: config/tc-mips.c:17374 msgid "unsupported use of .gpword" msgstr "no admite utilización de .gpword" -#: config/tc-mips.c:17010 +#: config/tc-mips.c:17412 msgid "unsupported use of .gpdword" msgstr "no admite la utilización de .gpdword" -#: config/tc-mips.c:17042 +#: config/tc-mips.c:17444 msgid "unsupported use of .ehword" msgstr "no admitió utilización de .ehword" -#: config/tc-mips.c:17129 +#: config/tc-mips.c:17531 msgid "bad .nan directive" -msgstr "directiva .nan equivocada" +msgstr "directiva .nan incorrecta" -#: config/tc-mips.c:17178 +#: config/tc-mips.c:17580 #, c-format msgid "ignoring attempt to redefine symbol %s" msgstr "se ignora el intento de redefinir el símbolo %s" -#: config/tc-mips.c:17193 ecoff.c:3372 +#: config/tc-mips.c:17595 ecoff.c:3358 msgid "bad .weakext directive" -msgstr "directiva .weakext equivocada" +msgstr "directiva .weakext incorrecta" -#: config/tc-mips.c:18162 config/tc-mips.c:18439 +#: config/tc-mips.c:18568 config/tc-mips.c:18845 msgid "relaxed out-of-range branch into a jump" -msgstr "ramificación relajada fuera de límite dentro de omisión" +msgstr "ramificación relajada fuera de rango dentro de omisión" -#: config/tc-mips.c:18661 +#: config/tc-mips.c:19068 msgid "extended instruction in a branch delay slot" msgstr "instrucción extendida en una rama de ranura de retardo" -#: config/tc-mips.c:18775 config/tc-xtensa.c:1656 config/tc-xtensa.c:1934 +#: config/tc-mips.c:19182 config/tc-xtensa.c:1690 config/tc-xtensa.c:1968 msgid "unsupported relocation" msgstr "no se admite la reubicación" -#: config/tc-mips.c:19271 config/tc-score.c:5640 +#: config/tc-mips.c:19690 config/tc-score.c:5624 msgid "expected simple number" msgstr "se esperaba un número simple" -#: config/tc-mips.c:19299 config/tc-score.c:5667 +#: config/tc-mips.c:19718 config/tc-score.c:5651 msgid "invalid number" msgstr "número inválido" -#: config/tc-mips.c:19376 ecoff.c:2999 +#: config/tc-mips.c:19795 ecoff.c:2987 msgid ".end directive without a preceding .ent directive" msgstr "directiva .end sin una directiva .ent precedente" -#: config/tc-mips.c:19385 +#: config/tc-mips.c:19804 msgid ".end symbol does not match .ent symbol" msgstr ".end simbólico no coincide con el símbolo .ent" -#: config/tc-mips.c:19462 +#: config/tc-mips.c:19881 msgid ".ent or .aent not in text section" msgstr ".ent o .aent no interno sección textual" -#: config/tc-mips.c:19465 config/tc-score.c:5706 +#: config/tc-mips.c:19884 config/tc-score.c:5683 msgid "missing .end" msgstr ".end ausente" -#: config/tc-mips.c:19548 +#: config/tc-mips.c:19967 msgid ".mask/.fmask outside of .ent" msgstr ".mask/.fmask fuera de .ent" -#: config/tc-mips.c:19555 +#: config/tc-mips.c:19974 msgid "bad .mask/.fmask directive" -msgstr "directiva .mask/.fmask equivocada" +msgstr "directiva .mask/.fmask incorrecta" -#: config/tc-mips.c:19848 +#: config/tc-mips.c:20278 #, c-format msgid "bad value (%s) for %s" -msgstr "valor (%s) equivocado para %s" +msgstr "valor (%s) incorrecto para %s" -#: config/tc-mips.c:19912 +#: config/tc-mips.c:20342 #, c-format msgid "" "MIPS options:\n" @@ -12251,7 +14196,7 @@ msgstr "" "-G NUM\t\t\tpermite la referencia a objetos hasta NUM bytes\n" "\t\t\timplícitamente con el registro gp [por defecto 8]\n" -#: config/tc-mips.c:19919 +#: config/tc-mips.c:20349 #, c-format msgid "" "-mips1\t\t\tgenerate MIPS ISA I instructions\n" @@ -12289,7 +14234,7 @@ msgstr "" "\n" "-march=CPU/-mtune=CPU\tgenera código/calendarización para el CPU, donde CPU es uno de:\n" -#: config/tc-mips.c:19944 +#: config/tc-mips.c:20374 #, c-format msgid "" "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n" @@ -12300,7 +14245,7 @@ msgstr "" "-no-mCPU\t\tno genera código específico para el CPU.\n" "\t\t\tPara -mCPU y -no-mCPU, CPU debe ser uno de:\n" -#: config/tc-mips.c:19957 +#: config/tc-mips.c:20387 #, c-format msgid "" "-mips16\t\t\tgenerate mips16 instructions\n" @@ -12309,7 +14254,19 @@ msgstr "" "-mips16\t\t\tgenera instrucciones mips16\n" "-no-mips16\t\tno genera instrucciones mips16\n" -#: config/tc-mips.c:19960 +#: config/tc-mips.c:20390 +#, fuzzy, c-format +#| msgid "" +#| "-mips16\t\t\tgenerate mips16 instructions\n" +#| "-no-mips16\t\tdo not generate mips16 instructions\n" +msgid "" +"-mmips16e2\t\tgenerate MIPS16e2 instructions\n" +"-mno-mips16e2\t\tdo not generate MIPS16e2 instructions\n" +msgstr "" +"-mips16\t\t\tgenera instrucciones mips16\n" +"-no-mips16\t\tno genera instrucciones mips16\n" + +#: config/tc-mips.c:20393 #, c-format msgid "" "-mmicromips\t\tgenerate microMIPS instructions\n" @@ -12318,7 +14275,7 @@ msgstr "" "-mmicromips\t\tgenera instrucciones microMIPS\n" "-mno-micromips\t\tno genera instrucciones microMIPS\n" -#: config/tc-mips.c:19963 +#: config/tc-mips.c:20396 #, c-format msgid "" "-msmartmips\t\tgenerate smartmips instructions\n" @@ -12327,7 +14284,7 @@ msgstr "" "-msmartmips\t\tgenera instrucciones smartmips\n" "-no-smartmips\t\tno genera instrucciones smartmips\n" -#: config/tc-mips.c:19966 +#: config/tc-mips.c:20399 #, c-format msgid "" "-mdsp\t\t\tgenerate DSP instructions\n" @@ -12336,7 +14293,7 @@ msgstr "" "-mdsp\t\t\tgenera instrucciones DSP\n" "-mno-dsp\t\tno genera instrucciones DSP\n" -#: config/tc-mips.c:19969 +#: config/tc-mips.c:20402 #, c-format msgid "" "-mdspr2\t\t\tgenerate DSP R2 instructions\n" @@ -12345,7 +14302,7 @@ msgstr "" "-mdspr2\t\t\tgenera instrucciones DSP R2\n" "-mno-dspr2\t\tno genera instrucciones DSP R2\n" -#: config/tc-mips.c:19972 +#: config/tc-mips.c:20405 #, c-format msgid "" "-mdspr3\t\t\tgenerate DSP R3 instructions\n" @@ -12354,7 +14311,7 @@ msgstr "" "-mdspr3\t\t\t genera instrucciones DSP R3\n" "-mno-dspr3\t\t no genera instrucciones DSP R3\n" -#: config/tc-mips.c:19975 +#: config/tc-mips.c:20408 #, c-format msgid "" "-mmt\t\t\tgenerate MT instructions\n" @@ -12363,7 +14320,7 @@ msgstr "" "-mmt\t\t\tgenera instrucciones MT\n" "-mno-mt\t\tno genera instrucciones MT\n" -#: config/tc-mips.c:19978 +#: config/tc-mips.c:20411 #, c-format msgid "" "-mmcu\t\t\tgenerate MCU instructions\n" @@ -12372,7 +14329,7 @@ msgstr "" "-mmcu\t\t\tgenera instrucciones MCU\n" "-mno-mcu\t\tno genera instrucciones MCU\n" -#: config/tc-mips.c:19981 +#: config/tc-mips.c:20414 #, c-format msgid "" "-mmsa\t\t\tgenerate MSA instructions\n" @@ -12381,7 +14338,7 @@ msgstr "" "-mmsa\t\t\tgenera instrucciones MSA\n" "-mno-msa\t\tno genera instrucciones MSA\n" -#: config/tc-mips.c:19984 +#: config/tc-mips.c:20417 #, c-format msgid "" "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n" @@ -12390,7 +14347,7 @@ msgstr "" "-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n" "-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n" -#: config/tc-mips.c:19987 +#: config/tc-mips.c:20420 #, c-format msgid "" "-mvirt\t\t\tgenerate Virtualization instructions\n" @@ -12399,7 +14356,79 @@ msgstr "" "-mvirt\t\t\tgenera instrucciones Virtualization\n" "-mno-virt\t\tno genera instrucciones Virtualization\n" -#: config/tc-mips.c:19990 +#: config/tc-mips.c:20423 +#, fuzzy, c-format +#| msgid "" +#| "-mmcu\t\t\tgenerate MCU instructions\n" +#| "-mno-mcu\t\tdo not generate MCU instructions\n" +msgid "" +"-mcrc\t\t\tgenerate CRC instructions\n" +"-mno-crc\t\tdo not generate CRC instructions\n" +msgstr "" +"-mmcu\t\t\tgenera instrucciones MCU\n" +"-mno-mcu\t\tno genera instrucciones MCU\n" + +#: config/tc-mips.c:20426 +#, fuzzy, c-format +#| msgid "" +#| "-mvirt\t\t\tgenerate Virtualization instructions\n" +#| "-mno-virt\t\tdo not generate Virtualization instructions\n" +msgid "" +"-mginv\t\t\tgenerate Global INValidate (GINV) instructions\n" +"-mno-ginv\t\tdo not generate Global INValidate instructions\n" +msgstr "" +"-mvirt\t\t\tgenera instrucciones Virtualization\n" +"-mno-virt\t\tno genera instrucciones Virtualization\n" + +#: config/tc-mips.c:20429 +#, fuzzy, c-format +#| msgid "" +#| "-msmartmips\t\tgenerate smartmips instructions\n" +#| "-mno-smartmips\t\tdo not generate smartmips instructions\n" +msgid "" +"-mloongson-mmi\t\tgenerate Loongson MultiMedia extensions Instructions (MMI) instructions\n" +"-mno-loongson-mmi\tdo not generate Loongson MultiMedia extensions Instructions\n" +msgstr "" +"-msmartmips\t\tgenera instrucciones smartmips\n" +"-no-smartmips\t\tno genera instrucciones smartmips\n" + +#: config/tc-mips.c:20432 +#, fuzzy, c-format +#| msgid "" +#| "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n" +#| "-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n" +msgid "" +"-mloongson-cam\t\tgenerate Loongson Content Address Memory (CAM) instructions\n" +"-mno-loongson-cam\tdo not generate Loongson Content Address Memory Instructions\n" +msgstr "" +"-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n" +"-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n" + +#: config/tc-mips.c:20435 +#, fuzzy, c-format +#| msgid "" +#| "-mmt\t\t\tgenerate MT instructions\n" +#| "-mno-mt\t\t\tdo not generate MT instructions\n" +msgid "" +"-mloongson-ext\t\tgenerate Loongson EXTensions (EXT) instructions\n" +"-mno-loongson-ext\tdo not generate Loongson EXTensions Instructions\n" +msgstr "" +"-mmt\t\t\tgenera instrucciones MT\n" +"-mno-mt\t\tno genera instrucciones MT\n" + +#: config/tc-mips.c:20438 +#, fuzzy, c-format +#| msgid "" +#| "-mdspr2\t\t\tgenerate DSP R2 instructions\n" +#| "-mno-dspr2\t\tdo not generate DSP R2 instructions\n" +msgid "" +"-mloongson-ext2\t\tgenerate Loongson EXTensions R2 (EXT2) instructions\n" +"-mno-loongson-ext2\tdo not generate Loongson EXTensions R2 Instructions\n" +msgstr "" +"-mdspr2\t\t\tgenera instrucciones DSP R2\n" +"-mno-dspr2\t\tno genera instrucciones DSP R2\n" + +#: config/tc-mips.c:20441 #, c-format msgid "" "-minsn32\t\tonly generate 32-bit microMIPS instructions\n" @@ -12408,20 +14437,52 @@ msgstr "" "-minsn32\t\t solo genera instrucciones microMIPS de 32-bit\n" "-mno-insn32\t\t genera todas las instrucciones microMIPS\n" -#: config/tc-mips.c:19993 +#: config/tc-mips.c:20445 +#, c-format +msgid "" +"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata, default\n" +"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n" +msgstr "" + +#: config/tc-mips.c:20449 #, c-format msgid "" +"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n" +"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata, default\n" +msgstr "" + +#: config/tc-mips.c:20453 +#, fuzzy, c-format +#| msgid "" +#| "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n" +#| "-mfix-loongson2f-nop\twork around Loongson2F NOP errata\n" +#| "-mfix-vr4120\t\twork around certain VR4120 errata\n" +#| "-mfix-vr4130\t\twork around VR4130 mflo/mfhi errata\n" +#| "-mfix-24k\t\tinsert a nop after ERET and DERET instructions\n" +#| "-mfix-cn63xxp1\t\twork around CN63XXP1 PREF errata\n" +#| "-mgp32\t\t\tuse 32-bit GPRs, regardless of the chosen ISA\n" +#| "-mfp32\t\t\tuse 32-bit FPRs, regardless of the chosen ISA\n" +#| "-msym32\t\t\tassume all symbols have 32-bit values\n" +#| "-O0\t\t\tremove unneeded NOPs, do not swap branches\n" +#| "-O\t\t\tremove unneeded NOPs and swap branches\n" +#| "--trap, --no-break\ttrap exception on div by 0 and mult overflow\n" +#| "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n" +msgid "" "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n" "-mfix-loongson2f-nop\twork around Loongson2F NOP errata\n" +"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n" +"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n" "-mfix-vr4120\t\twork around certain VR4120 errata\n" "-mfix-vr4130\t\twork around VR4130 mflo/mfhi errata\n" "-mfix-24k\t\tinsert a nop after ERET and DERET instructions\n" "-mfix-cn63xxp1\t\twork around CN63XXP1 PREF errata\n" +"-mfix-r5900\t\twork around R5900 short loop errata\n" "-mgp32\t\t\tuse 32-bit GPRs, regardless of the chosen ISA\n" "-mfp32\t\t\tuse 32-bit FPRs, regardless of the chosen ISA\n" "-msym32\t\t\tassume all symbols have 32-bit values\n" -"-O0\t\t\tremove unneeded NOPs, do not swap branches\n" -"-O\t\t\tremove unneeded NOPs and swap branches\n" +"-O0\t\t\tdo not remove unneeded NOPs, do not swap branches\n" +"-O, -O1\t\t\tremove unneeded NOPs, do not swap branches\n" +"-O2\t\t\tremove unneeded NOPs and swap branches\n" "--trap, --no-break\ttrap exception on div by 0 and mult overflow\n" "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n" msgstr "" @@ -12439,7 +14500,7 @@ msgstr "" "--trap, --no-break\texcepción trap en div por 0 y desbordamiento de mult\n" "--break, --no-trap\texcepción break en div por 0 y desbordamiento de mult\n" -#: config/tc-mips.c:20007 +#: config/tc-mips.c:20471 #, c-format msgid "" "-mhard-float\t\tallow floating-point instructions\n" @@ -12454,7 +14515,7 @@ msgid "" msgstr "" "-mhard-float\t\t permite instrucciones de coma flotante\n" "-msoft-float\t\t no permite instrucciones de coma flotante\n" -"-msingle-float\t\t sólo permite operaciones de coma flotante de 32 bits\n" +"-msingle-float\t\t solo permite operaciones de coma flotante de 32 bits\n" "-mdouble-float\t\t permite operaciones de coma flotante de 32 y 64 bits\n" "--[no-]construct-floats [des]activa valores de coma flotante a construir\n" "--[no-]relax-branch\t [no]permite ramificación fuera del límite para ser relajadas\n" @@ -12462,7 +14523,7 @@ msgstr "" "-mno-ignore-branch-isa\t rechaza ramas inválidas requiriendo un intercambio de modo ISA\n" "-mnan=ENCODING\t\t selecciona un convenio de codificación IEEE 754 NaN, incluso de:\n" -#: config/tc-mips.c:20025 +#: config/tc-mips.c:20489 #, c-format msgid "" "-KPIC, -call_shared\tgenerate SVR4 position independent code\n" @@ -12485,27 +14546,38 @@ msgstr "" " código que no es compartido\n" "-mabi=ABI\t\tcrea un fichero objeto que cumple con el ABI para:\n" -#: config/tc-mips.c:20046 -#, c-format -msgid "" -"-32\t\t\tcreate o32 ABI object file (default)\n" -"-n32\t\t\tcreate n32 ABI object file\n" -"-64\t\t\tcreate 64 ABI object file\n" +#: config/tc-mips.c:20510 +#, fuzzy, c-format +#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n" +msgid "-32\t\t\tcreate o32 ABI object file%s\n" +msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n" + +#: config/tc-mips.c:20512 config/tc-mips.c:20515 config/tc-mips.c:20518 +msgid " (default)" msgstr "" -"-32\t\t\tcrea ficheros objeto ABI o32 (por defecto)\n" -"-n32\t\t\tcrea ficheros objeto ABI o32\n" -"-64\t\t\tcrea ficheros objeto ABI 64\n" -#: config/tc-mips.c:20129 +#: config/tc-mips.c:20513 +#, fuzzy, c-format +#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n" +msgid "-n32\t\t\tcreate n32 ABI object file%s\n" +msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n" + +#: config/tc-mips.c:20516 +#, fuzzy, c-format +#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n" +msgid "-64\t\t\tcreate 64 ABI object file%s\n" +msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n" + +#: config/tc-mips.c:20598 msgid "missing .end at end of assembly" msgstr ".end ausente al final del ensamblado" -#: config/tc-mmix.c:702 +#: config/tc-mmix.c:694 #, c-format msgid " MMIX-specific command line options:\n" msgstr " Opciones de la línea de mandatos específicas de MMIX:\n" -#: config/tc-mmix.c:703 +#: config/tc-mmix.c:695 #, c-format msgid "" " -fixed-special-register-names\n" @@ -12514,22 +14586,22 @@ msgstr "" " -fixed-special-register-names\n" " Sólo permite los nombres de registros especiales originales.\n" -#: config/tc-mmix.c:706 +#: config/tc-mmix.c:698 #, c-format msgid " -globalize-symbols Make all symbols global.\n" msgstr " -globalize-symbols Crea todos los símbolos globales.\n" -#: config/tc-mmix.c:708 +#: config/tc-mmix.c:700 #, c-format msgid " -gnu-syntax Turn off mmixal syntax compatibility.\n" msgstr " -gnu-syntax Desactiva la compatibilidad sintáctica mmixal.\n" -#: config/tc-mmix.c:710 +#: config/tc-mmix.c:702 #, c-format msgid " -relax Create linker relaxable code.\n" msgstr " -relax Crea código relajable para el enlazador.\n" -#: config/tc-mmix.c:712 +#: config/tc-mmix.c:704 #, c-format msgid "" " -no-predefined-syms Do not provide mmixal built-in constants.\n" @@ -12538,7 +14610,7 @@ msgstr "" " -no-predefined-syms No provee las constantes internas de mmixal.\n" " Implica -fixed-special-register-names.\n" -#: config/tc-mmix.c:715 +#: config/tc-mmix.c:707 #, c-format msgid "" " -no-expand Do not expand GETA, branches, PUSHJ or JUMP\n" @@ -12547,17 +14619,17 @@ msgstr "" " -no-expand No expande GETA, ramificaciones, PUSHJ ó JUMP\n" " a instrucciones múltiples.\n" -#: config/tc-mmix.c:718 +#: config/tc-mmix.c:710 #, c-format msgid " -no-merge-gregs Do not merge GREG definitions with nearby values.\n" msgstr " -no-merge-gregs No mezcla las definiciones GREG con los valores cercanos.\n" -#: config/tc-mmix.c:720 +#: config/tc-mmix.c:712 #, c-format msgid " -linker-allocated-gregs If there's no suitable GREG definition for the operands of an instruction, let the linker resolve.\n" msgstr " -linker-allocated-gregs Si no hay una definición GREG adecuada para los operandos de una instrucción, dejar resolver al enlazador.\n" -#: config/tc-mmix.c:723 +#: config/tc-mmix.c:715 #, c-format msgid "" " -x Do not warn when an operand to GETA, a branch,\n" @@ -12570,190 +14642,186 @@ msgstr "" " del límite. El enlazador atrapará cualquier error.\n" " Implica -linker-allocated-gregs." -#: config/tc-mmix.c:849 +#: config/tc-mmix.c:841 #, c-format msgid "unknown opcode: `%s'" msgstr "código operacional desconocido: «%s»" -#: config/tc-mmix.c:971 config/tc-mmix.c:986 +#: config/tc-mmix.c:963 config/tc-mmix.c:978 msgid "specified location wasn't TETRA-aligned" msgstr "la ubicación especificada no estaba TETRA alineada" -#: config/tc-mmix.c:973 config/tc-mmix.c:988 config/tc-mmix.c:4214 -#: config/tc-mmix.c:4230 +#: config/tc-mmix.c:965 config/tc-mmix.c:980 config/tc-mmix.c:4215 +#: config/tc-mmix.c:4231 msgid "unaligned data at an absolute location is not supported" msgstr "no se admiten los datos sin alinear en una ubicación absoluta" -#: config/tc-mmix.c:1098 +#: config/tc-mmix.c:1090 #, c-format msgid "invalid operand to opcode %s: `%s'" msgstr "operando inválido para el código operacional %s: «%s»" -#: config/tc-mmix.c:1120 config/tc-mmix.c:1147 config/tc-mmix.c:1180 -#: config/tc-mmix.c:1188 config/tc-mmix.c:1205 config/tc-mmix.c:1233 -#: config/tc-mmix.c:1254 config/tc-mmix.c:1279 config/tc-mmix.c:1327 -#: config/tc-mmix.c:1428 config/tc-mmix.c:1453 config/tc-mmix.c:1485 -#: config/tc-mmix.c:1517 config/tc-mmix.c:1547 config/tc-mmix.c:1600 -#: config/tc-mmix.c:1617 config/tc-mmix.c:1644 config/tc-mmix.c:1672 -#: config/tc-mmix.c:1702 config/tc-mmix.c:1728 config/tc-mmix.c:1744 -#: config/tc-mmix.c:1770 config/tc-mmix.c:1786 config/tc-mmix.c:1802 -#: config/tc-mmix.c:1883 +#: config/tc-mmix.c:1112 config/tc-mmix.c:1139 config/tc-mmix.c:1172 +#: config/tc-mmix.c:1180 config/tc-mmix.c:1197 config/tc-mmix.c:1225 +#: config/tc-mmix.c:1246 config/tc-mmix.c:1271 config/tc-mmix.c:1319 +#: config/tc-mmix.c:1426 config/tc-mmix.c:1451 config/tc-mmix.c:1483 +#: config/tc-mmix.c:1515 config/tc-mmix.c:1545 config/tc-mmix.c:1598 +#: config/tc-mmix.c:1615 config/tc-mmix.c:1642 config/tc-mmix.c:1670 +#: config/tc-mmix.c:1700 config/tc-mmix.c:1726 config/tc-mmix.c:1742 +#: config/tc-mmix.c:1768 config/tc-mmix.c:1784 config/tc-mmix.c:1800 +#: config/tc-mmix.c:1881 #, c-format msgid "invalid operands to opcode %s: `%s'" msgstr "operandos inválidos para el código operacional %s: «%s»" -#: config/tc-mmix.c:1983 +#: config/tc-mmix.c:1981 msgid "internal: mmix_prefix_name but empty prefix" msgstr "interno: hay un mmix_prefix_name pero es un prefijo vacío" -#: config/tc-mmix.c:2046 +#: config/tc-mmix.c:2044 #, c-format msgid "too many GREG registers allocated (max %d)" msgstr "se asignaron demasiados registros GREG (máximo %d)" -#: config/tc-mmix.c:2106 +#: config/tc-mmix.c:2104 msgid "BSPEC already active. Nesting is not supported." msgstr "BSPEC ya está activo. No se admite el anidamiento." -#: config/tc-mmix.c:2115 +#: config/tc-mmix.c:2113 msgid "invalid BSPEC expression" msgstr "expresión BSPEC no válida" -#: config/tc-mmix.c:2131 +#: config/tc-mmix.c:2129 #, c-format msgid "can't create section %s" msgstr "no se puede crear la sección %s" -#: config/tc-mmix.c:2136 +#: config/tc-mmix.c:2133 #, c-format msgid "can't set section flags for section %s" msgstr "no se pueden establecer las casillas para la sección %s" -#: config/tc-mmix.c:2157 +#: config/tc-mmix.c:2154 msgid "ESPEC without preceding BSPEC" msgstr "ESPEC sin un BSPEC precedente" -#: config/tc-mmix.c:2186 +#: config/tc-mmix.c:2183 msgid "missing local expression" msgstr "ausentea expresión local" -#: config/tc-mmix.c:2396 +#: config/tc-mmix.c:2400 msgid "operand out of range, instruction expanded" -msgstr "operando está fuera de límite, se expande la instrucción" +msgstr "operando está fuera de rango, se expande la instrucción" #. The BFD_RELOC_MMIX_LOCAL-specific message is supposed to be #. user-friendly, though a little bit non-substantial. -#: config/tc-mmix.c:2647 +#: config/tc-mmix.c:2651 msgid "directive LOCAL must be placed in code or data" msgstr "la directiva LOCAL debe estar colocada en el código o en los datos" -#: config/tc-mmix.c:2648 +#: config/tc-mmix.c:2652 msgid "internal confusion: relocation in a section without contents" msgstr "confusión interna: reubicación en una sección sin contenido" -#: config/tc-mmix.c:2762 +#: config/tc-mmix.c:2766 msgid "internal: BFD_RELOC_MMIX_BASE_PLUS_OFFSET not resolved to section" msgstr "interno: BFD_RELOC_MMIX_BASE_PLUS_OFFSET no resuelve a la sección" -#: config/tc-mmix.c:2810 +#: config/tc-mmix.c:2814 msgid "no suitable GREG definition for operands" msgstr "no hay una definición GREG adecuada para los operandos" -#: config/tc-mmix.c:2869 +#: config/tc-mmix.c:2873 msgid "operands were not reducible at assembly-time" msgstr "los operandos no son reducibles en el momento del ensamblado" -#: config/tc-mmix.c:2896 +#: config/tc-mmix.c:2899 #, c-format msgid "cannot generate relocation type for symbol %s, code %s" msgstr "incapaz de generar el tipo reubicado para el símbolo %s, código %s" -#: config/tc-mmix.c:2916 +#: config/tc-mmix.c:2919 #, c-format msgid "internal: unhandled label %s" msgstr "interno: etiqueta %s sin manipular" -#: config/tc-mmix.c:2945 +#: config/tc-mmix.c:2948 msgid "[0-9]H labels may not appear alone on a line" msgstr "las etiquetas [0-9]H no pueden aparecer solas en una línea" -#: config/tc-mmix.c:2953 +#: config/tc-mmix.c:2956 msgid "[0-9]H labels do not mix with dot-pseudos" msgstr "las etiquetas [0-9]H no se mezclan con pseudo-puntos" -#: config/tc-mmix.c:3041 +#: config/tc-mmix.c:3044 msgid "invalid characters in input" msgstr "caracteres inválidos en la entrada" -#: config/tc-mmix.c:3147 +#: config/tc-mmix.c:3150 msgid "empty label field for IS" msgstr "campo de etiqueta vacío para IS" -#: config/tc-mmix.c:3473 +#: config/tc-mmix.c:3476 #, c-format msgid "internal: unexpected relax type %d:%d" msgstr "interno: tipo de relajación inesperado %d:%d" -#: config/tc-mmix.c:3497 +#: config/tc-mmix.c:3500 msgid "BSPEC without ESPEC." msgstr "BSPEC sin un ESPEC." -#: config/tc-mmix.c:3562 +#: config/tc-mmix.c:3565 msgid "LOC to section unknown or indeterminable at first pass" msgstr "" -#: config/tc-mmix.c:3734 -msgid "GREG expression too complicated" -msgstr "GREG como expresión muy complicada" - -#: config/tc-mmix.c:3749 +#: config/tc-mmix.c:3751 msgid "internal: GREG expression not resolved to section" msgstr "interno: la expresión GREG no resuelve a la sección" -#: config/tc-mmix.c:3798 +#: config/tc-mmix.c:3800 msgid "register section has contents\n" msgstr "la sección de registros tiene contenido\n" -#: config/tc-mmix.c:3925 +#: config/tc-mmix.c:3926 msgid "section change from within a BSPEC/ESPEC pair is not supported" -msgstr "no se admite el cambio seccional desde dentro de una pareja BSPEC/ESPEC" +msgstr "no se admite el cambio de sección desde dentro de una pareja BSPEC/ESPEC" -#: config/tc-mmix.c:3946 +#: config/tc-mmix.c:3947 msgid "directive LOC from within a BSPEC/ESPEC pair is not supported" msgstr "no se admite una directiva LOC desde dentro de una pareja BSPEC/ESPEC" -#: config/tc-mmix.c:3956 +#: config/tc-mmix.c:3957 msgid "invalid LOC expression" msgstr "expresión LOC no válida" -#: config/tc-mmix.c:4001 config/tc-mmix.c:4028 +#: config/tc-mmix.c:4002 config/tc-mmix.c:4029 msgid "LOC expression stepping backwards is not supported" msgstr "LOC como expresión volviendo pasos no está admitido" #. We will only get here in rare cases involving #NO_APP, #. where the unterminated string is not recognized by the #. preformatting pass. -#: config/tc-mmix.c:4137 config/tc-mmix.c:4295 config/tc-z80.c:1732 +#: config/tc-mmix.c:4138 config/tc-mmix.c:4296 config/tc-z80.c:3202 msgid "unterminated string" msgstr "cadena sin terminar" -#: config/tc-mmix.c:4154 +#: config/tc-mmix.c:4155 msgid "BYTE expression not a pure number" msgstr "BYTE de expresión no un número puro" #. Note that mmixal does not allow negative numbers in #. BYTE sequences, so neither should we. -#: config/tc-mmix.c:4163 +#: config/tc-mmix.c:4164 msgid "BYTE expression not in the range 0..255" msgstr "BYTE de expresión no interno al límite 0..255" -#: config/tc-mmix.c:4212 config/tc-mmix.c:4228 +#: config/tc-mmix.c:4213 config/tc-mmix.c:4229 msgid "data item with alignment larger than location" msgstr "elemento de datos con una alineamiento más grande que la ubicación" #. Since integer_constant is local to expr.c, we have to make this a #. macro. FIXME: Do it cleaner. -#: config/tc-mmix.h:98 +#: config/tc-mmix.h:92 msgid "`&' serial number operator is not supported" msgstr "número serial `&' operador no está admitido" @@ -12766,6 +14834,19 @@ msgstr "" "Opciones MN10200:\n" "ninguna aún\n" +#: config/tc-mn10200.c:890 config/tc-mn10300.c:1253 config/tc-s390.c:1928 +#: config/tc-v850.c:2320 +#, c-format +msgid "Unrecognized opcode: `%s'" +msgstr "No reconocido el código operacional: «%s»" + +#. xgettext:c-format. +#: config/tc-mn10200.c:1134 config/tc-mn10300.c:1822 config/tc-ppc.c:4003 +#: config/tc-s390.c:1837 config/tc-v850.c:3036 +#, c-format +msgid "junk at end of line: `%s'" +msgstr "basura al final de la línea: «%s»" + #: config/tc-mn10300.c:439 #, c-format msgid "" @@ -12779,43 +14860,43 @@ msgstr "" msgid "Invalid opcode/operands" msgstr "Código operacional/operandos inválidos" -#: config/tc-mn10300.c:1792 +#: config/tc-mn10300.c:1793 msgid "Invalid register specification." msgstr "Especificación de registro no válida." -#: config/tc-mn10300.c:2390 +#: config/tc-mn10300.c:2388 #, c-format msgid "Bad relocation fixup type (%d)" msgstr "Tipo de compostura de reubicación inválido (%d)" -#: config/tc-moxie.c:206 config/tc-moxie.c:225 config/tc-moxie.c:316 -#: config/tc-moxie.c:362 +#: config/tc-moxie.c:204 config/tc-moxie.c:223 config/tc-moxie.c:314 +#: config/tc-moxie.c:360 msgid "expecting comma delimited register operands" msgstr "se esperan operandos de registro delimitados por comas" -#: config/tc-moxie.c:252 config/tc-moxie.c:392 config/tc-moxie.c:422 -#: config/tc-moxie.c:497 +#: config/tc-moxie.c:250 config/tc-moxie.c:390 config/tc-moxie.c:420 +#: config/tc-moxie.c:495 msgid "expecting comma delimited operands" msgstr "se esperan operandos delimitados por comas" -#: config/tc-moxie.c:320 config/tc-moxie.c:348 +#: config/tc-moxie.c:318 config/tc-moxie.c:346 msgid "expecting indirect register `($rA)'" msgstr "se espera el registro indirecto `($rA)'" -#: config/tc-moxie.c:328 config/tc-moxie.c:356 config/tc-moxie.c:447 -#: config/tc-moxie.c:489 +#: config/tc-moxie.c:326 config/tc-moxie.c:354 config/tc-moxie.c:445 +#: config/tc-moxie.c:487 msgid "missing closing parenthesis" msgstr "ausente paréntesis que cierra" -#: config/tc-moxie.c:439 config/tc-moxie.c:481 +#: config/tc-moxie.c:437 config/tc-moxie.c:479 msgid "expecting indirect register `($rX)'" msgstr "se espera el registro indirecto `($rX)'" -#: config/tc-moxie.c:559 config/tc-pj.c:313 +#: config/tc-moxie.c:557 config/tc-pj.c:313 msgid "Something forgot to clean up\n" msgstr "Algo se olvidó de limpiar\n" -#: config/tc-moxie.c:643 +#: config/tc-moxie.c:641 #, c-format msgid "" " -EB assemble for a big endian system (default)\n" @@ -12824,46 +14905,102 @@ msgstr "" " -EB ensambla para un sistema big endian (por defecto)\n" " -EL ensambla para un sistema little endian\n" -#: config/tc-moxie.c:703 +#: config/tc-moxie.c:701 msgid "pcrel too far BFD_RELOC_MOXIE_10" msgstr "pcrel demasiado lejos de BFD_RELOC_MOXIE_10" -#: config/tc-msp430.c:519 +#: config/tc-msp430.c:522 msgid ".profiler pseudo requires at least two operands." msgstr "el pseudo .profiler requiere por lo menos dos operandos." -#: config/tc-msp430.c:578 +#: config/tc-msp430.c:581 msgid "unknown profiling flag - ignored." msgstr "opción de análisis de perfil desconocida - se descarta." -#: config/tc-msp430.c:594 +#: config/tc-msp430.c:597 msgid "ambiguous flags combination - '.profiler' directive ignored." msgstr "combinación de casillas ambigua - se descarta la directiva '.profiler'." -#: config/tc-msp430.c:604 +#: config/tc-msp430.c:607 msgid "profiling in absolute section?" msgstr "¿análisis de perfil en la sección absoluta?" -#: config/tc-msp430.c:1374 +#: config/tc-msp430.c:1383 #, c-format msgid "Unrecognised CPU errata name starting here: %s" msgstr "" -#: config/tc-msp430.c:1380 +#: config/tc-msp430.c:1389 #, c-format msgid "Expecting comma after CPU errata name, not: %s" msgstr "Se esperaba una coma después del nombre errata CPU, no: %s" -#: config/tc-msp430.c:1390 +#: config/tc-msp430.c:1399 msgid "MCU option requires a name\n" msgstr "Opción MCU requiereun nombre\n" -#: config/tc-msp430.c:1428 +#: config/tc-msp430.c:1437 #, c-format msgid "unrecognised argument to -mcpu option '%s'" msgstr "no reconocido argumento a opción -mcpu: '%s'" -#: config/tc-msp430.c:1603 +#: config/tc-msp430.c:1634 +#, fuzzy, c-format +#| msgid "bad argument to syntax directive." +msgid "bad arguments \"%s\" and/or \"%s\" in %s directive" +msgstr "argumento incorrecto para la directiva syntax." + +#: config/tc-msp430.c:1646 +#, c-format +msgid "file was compiled for the 430 ISA but the %s ISA is selected" +msgstr "" + +#: config/tc-msp430.c:1651 +msgid "file was compiled for the 430X ISA but the 430 ISA is selected" +msgstr "" + +#: config/tc-msp430.c:1655 +#, c-format +msgid "unknown MSPABI build attribute value '%d' for OFBA_MSPABI_Tag_ISA(%d) in .mspabi_attribute directive" +msgstr "" + +#: config/tc-msp430.c:1670 +msgid "file was compiled for the small memory model, but the large memory model is selected" +msgstr "" + +#: config/tc-msp430.c:1675 +msgid "file was compiled for the large memory model, but the small memory model is selected" +msgstr "" + +#: config/tc-msp430.c:1679 +#, c-format +msgid "unknown MSPABI build attribute value '%d' for %s(%d) in .mspabi_attribute directive" +msgstr "" + +#: config/tc-msp430.c:1691 +#, c-format +msgid "unknown MSPABI build attribute tag '%d' in .mspabi_attribute directive" +msgstr "" + +#: config/tc-msp430.c:1707 +msgid "file was compiled assuming all data will be in the lower memory region, but the upper region is in use" +msgstr "" + +#: config/tc-msp430.c:1712 +msgid "file was compiled assuming data could be in the upper memory region, but the lower data region is exclusively in use" +msgstr "" + +#: config/tc-msp430.c:1717 +#, c-format +msgid "unknown GNU build attribute value '%d' for Tag_GNU_MSP430_Data_Region(%d) in .gnu_attribute directive" +msgstr "" + +#: config/tc-msp430.c:1723 +#, c-format +msgid "internal: unexpected argument '%d' to msp430_object_attribute" +msgstr "" + +#: config/tc-msp430.c:1773 #, c-format msgid "" "MSP430 options:\n" @@ -12871,7 +15008,7 @@ msgid "" " -mcpu={430|430x|430xv2} - select microcontroller architecture\n" msgstr "" -#: config/tc-msp430.c:1607 +#: config/tc-msp430.c:1777 #, c-format msgid "" " -msilicon-errata=<name>[,<name>...] - enable fixups for silicon errata\n" @@ -12879,7 +15016,7 @@ msgid "" " supported errata names: cpu4, cpu8, cpu11, cpu12, cpu13, cpu19\n" msgstr "" -#: config/tc-msp430.c:1611 +#: config/tc-msp430.c:1781 #, c-format msgid "" " -mQ - enable relaxation at assembly time. DANGEROUS!\n" @@ -12888,384 +15025,378 @@ msgstr "" " -mQ - permite la relajación en tiempo de ensamblado. ¡PELIGROSO!\n" " -mP - permite las instrucciones polimórficas\n" -#: config/tc-msp430.c:1614 +#: config/tc-msp430.c:1784 #, c-format msgid " -ml - enable large code model\n" msgstr " -ml - activa modelo de código grande\n" -#: config/tc-msp430.c:1616 +#: config/tc-msp430.c:1786 #, c-format msgid " -mN - do not insert NOPs after changing interrupts (default)\n" msgstr "" " -mN - no inserta varias NOP tras interrupciones (predet.)\n" "\n" -#: config/tc-msp430.c:1618 +#: config/tc-msp430.c:1788 #, c-format msgid " -mn - insert a NOP after changing interrupts\n" msgstr " -mn - inserta un NOP tras modificar interrupciones\n" -#: config/tc-msp430.c:1620 +#: config/tc-msp430.c:1790 #, c-format msgid " -mY - do not warn about missing NOPs after changing interrupts\n" msgstr " -mY - no advierte acerca de ausencias NOP tras modificar interrupciones\n" -#: config/tc-msp430.c:1622 +#: config/tc-msp430.c:1792 #, c-format msgid " -my - warn about missing NOPs after changing interrupts (default)\n" msgstr "" -#: config/tc-msp430.c:1624 +#: config/tc-msp430.c:1794 +#, c-format +msgid "" +" -mU - for an instruction which changes interrupt state, but where it is not\n" +" known how the state is changed, do not warn/insert NOPs\n" +msgstr "" + +#: config/tc-msp430.c:1797 #, c-format -msgid " -md - Force copying of data from ROM to RAM at startup\n" +msgid "" +" -mu - for an instruction which changes interrupt state, but where it is not\n" +" known how the state is changed, warn/insert NOPs (default)\n" +" -mn and/or -my are required for this to have any effect\n" msgstr "" -#: config/tc-msp430.c:1626 +#: config/tc-msp430.c:1801 #, c-format msgid "" " -mdata-region={none|lower|upper|either} - select region data will be\n" " placed in.\n" msgstr "" -#: config/tc-msp430.c:1779 +#: config/tc-msp430.c:1973 #, c-format msgid "extra characters '%s' at end of immediate expression '%s'" msgstr "caracteres adicionales «%s» al final de expresión inmediata «%s»" -#: config/tc-msp430.c:1811 config/tc-msp430.c:1994 config/tc-msp430.c:2108 +#: config/tc-msp430.c:2005 config/tc-msp430.c:2189 config/tc-msp430.c:2304 #, c-format msgid "value 0x%x out of extended range." -msgstr "valor 0x%x fuera de límite extendido." +msgstr "valor 0x%x fuera de rango extendido." -#: config/tc-msp430.c:1817 +#: config/tc-msp430.c:2011 #, c-format msgid "value %d out of range. Use #lo() or #hi()" -msgstr "valora %d está fuera de límite. Utilice #lo() o #hi()" +msgstr "valora %d está fuera de rango. Utilice #lo() o #hi()" -#: config/tc-msp430.c:1863 +#: config/tc-msp430.c:2057 msgid "cpu4: not converting PUSH #4 to shorter form" msgstr "" -#: config/tc-msp430.c:1880 +#: config/tc-msp430.c:2074 msgid "cpu4: not converting PUSH #8 to shorter form" msgstr "" -#: config/tc-msp430.c:1894 +#: config/tc-msp430.c:2088 msgid "error: unsupported #foo() directive used on symbol" msgstr "error: directiva #foo() sin apoyo para directiva utilizada en símbolo" -#: config/tc-msp430.c:1911 +#: config/tc-msp430.c:2105 #, c-format msgid "unknown expression in operand %s. Use #llo(), #lhi(), #hlo() or #hhi()" msgstr "desconoce expresión en operando %s. Utilice #llo() #lhi() #hlo() o #hhi()" -#: config/tc-msp430.c:1962 +#: config/tc-msp430.c:2156 #, c-format msgid "Registers cannot be used within immediate expression [%s]" msgstr "Los registros no se pueden usar en la expresión inmediata [%s]" -#: config/tc-msp430.c:1964 +#: config/tc-msp430.c:2158 #, c-format msgid "unknown operand %s" msgstr "operando %s desconocido" -#: config/tc-msp430.c:1981 +#: config/tc-msp430.c:2175 #, c-format msgid "extra characters '%s' at the end of absolute operand '%s'" msgstr "caracteres adicionales «%s» al final de operando absoluto «%s»" -#: config/tc-msp430.c:2000 config/tc-msp430.c:2114 +#: config/tc-msp430.c:2195 config/tc-msp430.c:2310 #, c-format msgid "value out of range: 0x%x" -msgstr "valor fuera de límite: 0x%x" +msgstr "valor fuera de rango: 0x%x" -#: config/tc-msp430.c:2011 +#: config/tc-msp430.c:2206 #, c-format msgid "Registers cannot be used within absolute expression [%s]" msgstr "Los registros no se pueden usar en la expresión absoluta [%s]" -#: config/tc-msp430.c:2013 config/tc-msp430.c:2143 +#: config/tc-msp430.c:2208 config/tc-msp430.c:2339 #, c-format msgid "unknown expression in operand %s" msgstr "expresión desconocida en operando %s" -#: config/tc-msp430.c:2027 +#: config/tc-msp430.c:2222 #, c-format msgid "unknown addressing mode %s" msgstr "desconoce modo de direccionamiento %s" -#: config/tc-msp430.c:2035 +#: config/tc-msp430.c:2230 #, c-format msgid "Bad register name %s" -msgstr "Nombre registrado equivocado %s" +msgstr "Nombre registrado incorrecto %s" -#: config/tc-msp430.c:2046 +#: config/tc-msp430.c:2241 msgid "cannot use indirect addressing with the PC" msgstr "no se puede utilizar una dirección indirecta con el PC" -#: config/tc-msp430.c:2066 +#: config/tc-msp430.c:2261 msgid "')' required" msgstr "')' requerido" -#: config/tc-msp430.c:2078 +#: config/tc-msp430.c:2273 #, c-format msgid "unknown operator %s. Did you mean X(Rn) or #[hl][hl][oi](CONST) ?" msgstr "operador %s desconocido. ¿ Quiere decir X(Rn) ó #[hl][hl][oi](CONST) ?" -#: config/tc-msp430.c:2085 +#: config/tc-msp430.c:2280 msgid "r2 should not be used in indexed addressing mode" -msgstr "no se debe usar r2 en el modo de direccionamiento indizado" +msgstr "no se debe usar r2 en el modo de direccionamiento indexado" -#: config/tc-msp430.c:2097 config/tc-msp430.c:2171 config/tc-msp430.c:3211 -#: config/tc-msp430.c:3279 config/tc-msp430.c:3396 config/tc-msp430.c:3769 -#: config/tc-msp430.c:3868 config/tc-msp430.c:3919 +#: config/tc-msp430.c:2293 config/tc-msp430.c:2368 config/tc-msp430.c:3514 +#: config/tc-msp430.c:3582 config/tc-msp430.c:3699 config/tc-msp430.c:4121 +#: config/tc-msp430.c:4220 config/tc-msp430.c:4271 #, c-format msgid "extra characters '%s' at end of operand '%s'" msgstr "caracteres adicionales «%s» al final de operando «%s»" -#: config/tc-msp430.c:2129 config/tc-msp430.c:2131 +#: config/tc-msp430.c:2325 config/tc-msp430.c:2327 msgid "CPU8: Stack pointer accessed with an odd offset" msgstr "CPU8: puntero de pila accedido con un desplazamiento impar" -#: config/tc-msp430.c:2141 +#: config/tc-msp430.c:2337 #, c-format msgid "Registers cannot be used as a prefix of indexed expression [%s]" msgstr "Los registros no se pueden usar como un prefijo en la expresión indizada [%s]" -#: config/tc-msp430.c:2205 +#: config/tc-msp430.c:2403 #, c-format msgid "Internal bug. Try to use 0(r%d) instead of @r%d" msgstr "Defecto interno. Intente utilizar 0(r%d) en lugar de @r%d" -#: config/tc-msp430.c:2215 +#: config/tc-msp430.c:2413 msgid "this addressing mode is not applicable for destination operand" -msgstr "este modo direccional no es aplicable para operando destino" +msgstr "este modo direccional no es aplicable para el operando destino" -#: config/tc-msp430.c:2246 config/tc-msp430.c:2381 config/tc-msp430.c:2418 -#: config/tc-msp430.c:2448 config/tc-msp430.c:3147 config/tc-msp430.c:3230 -#: config/tc-msp430.c:3318 +#: config/tc-msp430.c:2444 config/tc-msp430.c:2579 config/tc-msp430.c:2616 +#: config/tc-msp430.c:2646 config/tc-msp430.c:3450 config/tc-msp430.c:3533 +#: config/tc-msp430.c:3621 #, c-format msgid "expected register as second argument of %s" msgstr "esperaba registro como segundo argumento de %s" -#: config/tc-msp430.c:2285 config/tc-msp430.c:2351 +#: config/tc-msp430.c:2483 config/tc-msp430.c:2549 #, c-format msgid "index value too big for %s" -msgstr "valor indizado demasiado grande para %s" +msgstr "valor indexado demasiado grande para %s" -#: config/tc-msp430.c:2302 config/tc-msp430.c:2368 config/tc-msp430.c:2475 +#: config/tc-msp430.c:2500 config/tc-msp430.c:2566 config/tc-msp430.c:2673 #, c-format msgid "unexpected addressing mode for %s" msgstr "modo direccional inesperado para %s" -#: config/tc-msp430.c:2388 config/tc-msp430.c:2425 config/tc-msp430.c:2455 +#: config/tc-msp430.c:2586 config/tc-msp430.c:2623 config/tc-msp430.c:2653 #, c-format msgid "constant generator destination register found in %s" msgstr "encontrado generador de registro destino constante en %s" -#: config/tc-msp430.c:2432 config/tc-msp430.c:2462 +#: config/tc-msp430.c:2630 config/tc-msp430.c:2660 #, c-format msgid "constant generator source register found in %s" msgstr "generador constante de registro destino encontrado en %s" -#: config/tc-msp430.c:2552 +#: config/tc-msp430.c:2840 msgid "no size modifier after period, .w assumed" msgstr "" -#: config/tc-msp430.c:2556 +#: config/tc-msp430.c:2844 #, c-format msgid "unrecognised instruction size modifier .%c" msgstr "no reconocido modificador de tamaño de instrucción .%c" -#: config/tc-msp430.c:2570 +#: config/tc-msp430.c:2858 #, c-format msgid "junk found after instruction: %s.%s" msgstr "basura aparecida tras instrucción: %s.%s" -#: config/tc-msp430.c:2590 +#: config/tc-msp430.c:2878 #, c-format msgid "instruction %s.a does not exist" msgstr "instrucción %s.a no existe" -#: config/tc-msp430.c:2604 +#: config/tc-msp430.c:2892 #, c-format msgid "instruction %s requires %d operand" msgid_plural "instruction %s requires %d operands" msgstr[0] "instrucción %s requiere de %d operando" msgstr[1] "instrucción %s requiere de %d operandos" -#: config/tc-msp430.c:2622 +#: config/tc-msp430.c:2910 #, c-format msgid "instruction %s requires MSP430X mcu" msgstr "instrucción %s requiere MSP430X mcu" -#: config/tc-msp430.c:2642 +#: config/tc-msp430.c:2930 #, c-format msgid "unable to repeat %s insn" msgstr "incapaz para utilizar %s insn" -#: config/tc-msp430.c:2661 -msgid "NOP inserted between two instructions that change interrupt state" -msgstr "" - -#: config/tc-msp430.c:2663 -msgid "a NOP might be needed here because of successive changes in interrupt state" -msgstr "" - -#: config/tc-msp430.c:2674 +#: config/tc-msp430.c:3002 msgid "CPU12: CMP/BIT with PC destination ignores next instruction" msgstr "" -#: config/tc-msp430.c:2682 +#: config/tc-msp430.c:3010 msgid "CPU19: Instruction setting CPUOFF must be followed by a NOP" msgstr "" -#: config/tc-msp430.c:2689 +#: config/tc-msp430.c:3017 msgid "internal error: unknown nop check state" msgstr "error interno: estado marcado ‘nop’ desconocido" -#: config/tc-msp430.c:2724 -msgid "inserting a NOP before EINT" -msgstr "insertando un NOP antes de EINT" - -#: config/tc-msp430.c:2727 -msgid "a NOP might be needed before the EINT" -msgstr "un NOP quizá está requerido antes del EINT" - -#: config/tc-msp430.c:2767 config/tc-msp430.c:2769 config/tc-msp430.c:3473 -#: config/tc-msp430.c:3475 +#: config/tc-msp430.c:3071 config/tc-msp430.c:3073 config/tc-msp430.c:3782 +#: config/tc-msp430.c:3784 msgid "CPU11: PC is destination of SR altering instruction" msgstr "" -#: config/tc-msp430.c:2784 config/tc-msp430.c:2786 config/tc-msp430.c:2892 -#: config/tc-msp430.c:2894 config/tc-msp430.c:3490 config/tc-msp430.c:3492 -#: config/tc-msp430.c:3668 config/tc-msp430.c:3670 +#: config/tc-msp430.c:3088 config/tc-msp430.c:3090 config/tc-msp430.c:3195 +#: config/tc-msp430.c:3197 config/tc-msp430.c:3799 config/tc-msp430.c:3801 +#: config/tc-msp430.c:4020 config/tc-msp430.c:4022 msgid "CPU13: SR is destination of SR altering instruction" msgstr "" -#: config/tc-msp430.c:2805 config/tc-msp430.c:2904 config/tc-msp430.c:3533 -#: config/tc-msp430.c:3702 +#: config/tc-msp430.c:3106 config/tc-msp430.c:3207 config/tc-msp430.c:3885 +#: config/tc-msp430.c:4054 msgid "repeat instruction used with non-register mode instruction" msgstr "repite instrucciones utilizadas con modo de instrucción no registrada" -#: config/tc-msp430.c:2880 config/tc-msp430.c:3237 config/tc-msp430.c:3658 +#: config/tc-msp430.c:3181 config/tc-msp430.c:3540 config/tc-msp430.c:4010 #, c-format msgid "%s: attempt to rotate the PC register" msgstr "%s: trata rotar el registro PC" -#: config/tc-msp430.c:3129 config/tc-msp430.c:3205 +#: config/tc-msp430.c:3432 config/tc-msp430.c:3508 #, c-format msgid "expected #n as first argument of %s" msgstr "esperaba #n como primer argumento de %s" -#: config/tc-msp430.c:3135 +#: config/tc-msp430.c:3438 #, c-format msgid "extra characters '%s' at end of constant expression '%s'" msgstr "caracteres adicionales «%s» al final de expresión constante «%s»" -#: config/tc-msp430.c:3140 config/tc-msp430.c:3216 +#: config/tc-msp430.c:3443 config/tc-msp430.c:3519 #, c-format msgid "expected constant expression as first argument of %s" msgstr "esperaba una expresión constante como primer argumento de %s" -#: config/tc-msp430.c:3166 +#: config/tc-msp430.c:3469 msgid "Too many registers popped" msgstr "Demasiados registros aparecidos" -#: config/tc-msp430.c:3176 +#: config/tc-msp430.c:3479 msgid "Cannot use POPM to restore the SR register" msgstr "" -#: config/tc-msp430.c:3196 config/tc-msp430.c:3265 +#: config/tc-msp430.c:3499 config/tc-msp430.c:3568 #, c-format msgid "repeat count cannot be used with %s" msgstr "repetición de conteo no puede ser utilizado con %s" -#: config/tc-msp430.c:3223 +#: config/tc-msp430.c:3526 #, c-format msgid "expected first argument of %s to be in the range 1-4" msgstr "esperaba primer argumento de %s para estar dentro del rango 1-4" -#: config/tc-msp430.c:3288 +#: config/tc-msp430.c:3591 #, c-format msgid "expected value of first argument of %s to fit into 20-bits" msgstr "" -#: config/tc-msp430.c:3307 +#: config/tc-msp430.c:3610 #, c-format msgid "expected register name or constant as first argument of %s" msgstr "nombre registrado esperada o constante como primer argumento de %s" -#: config/tc-msp430.c:3401 +#: config/tc-msp430.c:3704 msgid "expected constant value as argument to RPT" msgstr "esperaba un valor constante como argumento a RPT" -#: config/tc-msp430.c:3407 +#: config/tc-msp430.c:3710 msgid "expected constant in the range 2..16" msgstr "constante esperada dentro del límite 2..16" -#: config/tc-msp430.c:3422 +#: config/tc-msp430.c:3725 msgid "PC used as an argument to RPT" msgstr "PC utilizado como argumento a RPT" -#: config/tc-msp430.c:3428 +#: config/tc-msp430.c:3731 msgid "expected constant or register name as argument to RPT insn" msgstr "" -#: config/tc-msp430.c:3435 +#: config/tc-msp430.c:3738 msgid "Illegal emulated instruction" msgstr "Instrucción emulada ilegítima" -#: config/tc-msp430.c:3687 +#: config/tc-msp430.c:4039 #, c-format msgid "%s instruction does not accept a .b suffix" msgstr "instrucción %s no acepta un sufijo .b" -#: config/tc-msp430.c:3800 +#: config/tc-msp430.c:4152 #, c-format msgid "Even number required. Rounded to %d" msgstr "Se requiere un número par. Se redondea a %d" -#: config/tc-msp430.c:3811 +#: config/tc-msp430.c:4163 #, c-format msgid "Wrong displacement %d" -msgstr "Desplazamiento equivocado %d" +msgstr "Desplazamiento incorrecto %d" -#: config/tc-msp430.c:3833 +#: config/tc-msp430.c:4185 msgid "instruction requires label sans '$'" msgstr "la instrucción requiere una etiqueta sin '$'" -#: config/tc-msp430.c:3837 +#: config/tc-msp430.c:4189 msgid "instruction requires label or value in range -511:512" msgstr "la instrucción requiere una etiqueta o valor en el límite -511:512" -#: config/tc-msp430.c:3843 config/tc-msp430.c:3897 config/tc-msp430.c:3945 +#: config/tc-msp430.c:4195 config/tc-msp430.c:4249 config/tc-msp430.c:4297 msgid "instruction requires label" msgstr "instrucción requiere etiqueta" -#: config/tc-msp430.c:3851 config/tc-msp430.c:3903 +#: config/tc-msp430.c:4203 config/tc-msp430.c:4255 msgid "polymorphs are not enabled. Use -mP option to enable." msgstr "los polimórficos no están activados. Use la opción -mP para activarlos." -#: config/tc-msp430.c:3949 +#: config/tc-msp430.c:4301 msgid "Illegal instruction or not implemented opcode." msgstr "Instrucción ilegal o código operacional sin implementar." -#: config/tc-msp430.c:3980 config/tc-sh64.c:2479 +#: config/tc-msp430.c:4355 msgid "can't find opcode" msgstr "no se puede encontrar el código operacional" -#: config/tc-msp430.c:4497 +#: config/tc-msp430.c:4868 #, c-format msgid "internal inconsistency problem in %s: insn %04lx" msgstr "problema de inconsistencia interna en %s: insn %04lx" -#: config/tc-msp430.c:4539 config/tc-msp430.c:4571 +#: config/tc-msp430.c:4910 config/tc-msp430.c:4942 #, c-format msgid "internal inconsistency problem in %s: ext. insn %04lx" msgstr "problema de inconsistencia interna en %s: ext. insn %04lx" -#: config/tc-msp430.c:4583 +#: config/tc-msp430.c:4954 #, c-format msgid "internal inconsistency problem in %s: %lx" msgstr "problema de inconsistencia interna en %s: %lx" @@ -13300,41 +15431,41 @@ msgstr " -march=ms2 permite instrucciones ms2 \n" msgid " -nosched disable scheduling restrictions\n" msgstr " -nosched desactiva las restricciones de calendarización\n" -#: config/tc-mt.c:224 +#: config/tc-mt.c:226 #, c-format msgid "instruction %s may not follow another memory access instruction." msgstr "la instrucción %s no puede estar a continuación de otra instrucción de acceso a memoria." -#: config/tc-mt.c:230 +#: config/tc-mt.c:232 #, c-format msgid "instruction %s may not follow another I/O instruction." msgstr "la instrucción %s no puede estar a continuación de otra instrucción E/S." -#: config/tc-mt.c:236 +#: config/tc-mt.c:238 #, c-format msgid "%s may not occupy the delay slot of another branch insn." msgstr "%s no puede ocupar la ranura de retardo de otra insn de ramificación." -#: config/tc-mt.c:261 +#: config/tc-mt.c:263 #, c-format msgid "operand references R%ld of previous instruction." msgstr "operando se refiere a R%ld de la instrucción previa." -#: config/tc-mt.c:267 +#: config/tc-mt.c:269 #, c-format msgid "operand references R%ld of instruction before previous." msgstr "operando se refiere a R%ld de la instrucción anterior a la previa." -#: config/tc-mt.c:281 config/tc-mt.c:286 +#: config/tc-mt.c:283 config/tc-mt.c:288 #, c-format msgid "conditional branch or jal insn's operand references R%ld of previous arithmetic or logic insn." msgstr "la ramificación condicional o operando de insn jal se refiere a R%ld de la insn aritmética o lógica previa." -#: config/tc-mt.c:349 +#: config/tc-mt.c:351 msgid "md_estimate_size_before_relax\n" msgstr "md_estimate_size_before_relax\n" -#: config/tc-nds32.c:1934 +#: config/tc-nds32.c:2374 msgid "" "<arch name>\t Assemble for architecture <arch name>\n" "\t\t\t <arch name> could be\n" @@ -13344,7 +15475,7 @@ msgstr "" "\t\t\t <arqu nombre> podría ser\n" "\t\t\t v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s" -#: config/tc-nds32.c:1938 +#: config/tc-nds32.c:2378 msgid "" "<baseline>\t Assemble for baseline <baseline>\n" "\t\t\t <baseline> could be v2, v3, v3m" @@ -13352,7 +15483,7 @@ msgstr "" "<baseline>\t Ensambla para línea básica <baseline>\n" "\t\t\t <baseline> podría ser v2, v3, v3m" -#: config/tc-nds32.c:1941 +#: config/tc-nds32.c:2381 msgid "" "<freg>\t Specify a FPU configuration\n" "\t\t\t <freg>\n" @@ -13368,7 +15499,7 @@ msgstr "" "\t\t\t 2: 32 SP / 16 DP registros\n" "\t\t\t 3: 32 SP / 32 DP registros" -#: config/tc-nds32.c:1947 +#: config/tc-nds32.c:2387 msgid "" "<abi>\t Specify a abi version\n" "\t\t\t <abi> could be v1, v2, v2fp, v2fpp" @@ -13376,55 +15507,67 @@ msgstr "" "<abi>\t Especificar una versión abi\n" "\t\t\t <abi> podría ser v1, v2, v2fp, v2fpp" -#: config/tc-nds32.c:1978 +#: config/tc-nds32.c:2420 msgid "Multiply instructions support" msgstr "Apoya instrucciones múltiples" -#: config/tc-nds32.c:1979 +#: config/tc-nds32.c:2421 msgid "Divide instructions support" msgstr "Soporta instrucciones dividir" -#: config/tc-nds32.c:1980 +#: config/tc-nds32.c:2422 msgid "16-bit extension" msgstr "Extensión de 16-bit" -#: config/tc-nds32.c:1981 +#: config/tc-nds32.c:2423 msgid "d0/d1 registers" msgstr "registros d0/d1" -#: config/tc-nds32.c:1982 +#: config/tc-nds32.c:2424 msgid "Performance extension" msgstr "Rendimiento extensión" -#: config/tc-nds32.c:1983 +#: config/tc-nds32.c:2425 msgid "Performance extension 2" msgstr "Rendimiento extensión" -#: config/tc-nds32.c:1984 +#: config/tc-nds32.c:2426 msgid "String extension" msgstr "Cadena extendida" -#: config/tc-nds32.c:1985 +#: config/tc-nds32.c:2427 msgid "Reduced Register configuration (GPR16) option" msgstr "" -#: config/tc-nds32.c:1986 +#: config/tc-nds32.c:2428 msgid "AUDIO ISA extension" msgstr "Extensión de sonido ISA" -#: config/tc-nds32.c:1987 +#: config/tc-nds32.c:2429 msgid "FPU SP extension" msgstr "Extensión FPU PS" -#: config/tc-nds32.c:1988 +#: config/tc-nds32.c:2430 msgid "FPU DP extension" msgstr "FPU como extensión DP" -#: config/tc-nds32.c:1989 +#: config/tc-nds32.c:2431 msgid "FPU fused-multiply-add instructions" msgstr "FPU fused-multiply-add como instrucciones" -#: config/tc-nds32.c:2026 +#: config/tc-nds32.c:2432 +#, fuzzy +#| msgid "FPU SP extension" +msgid "DSP extension" +msgstr "Extensión FPU PS" + +#: config/tc-nds32.c:2433 +#, fuzzy +#| msgid "bad reloc expression" +msgid "hardware loop extension" +msgstr "expresión de reubicación incorrecta" + +#: config/tc-nds32.c:2470 #, c-format msgid "" "\n" @@ -13433,7 +15576,7 @@ msgstr "" "\n" "Opciones ensambladoras específicas de NDS32:\n" -#: config/tc-nds32.c:2027 +#: config/tc-nds32.c:2471 #, c-format msgid "" " -O1,\t\t\t Optimize for performance\n" @@ -13442,7 +15585,7 @@ msgstr "" " -O1,\t\t\t Optimiza para rendimiento\n" " -Os\t\t\t Optimiza para espacio\n" -#: config/tc-nds32.c:2030 +#: config/tc-nds32.c:2474 #, c-format msgid "" " -EL, -mel or -little Produce little endian output\n" @@ -13453,419 +15596,249 @@ msgid "" " -mno-all-relax\t Suppress all relaxation for this file\n" msgstr "" -#: config/tc-nds32.c:2041 +#: config/tc-nds32.c:2485 #, c-format msgid " -m%s%s\n" msgstr " -m%s%s\n" -#: config/tc-nds32.c:2048 +#: config/tc-nds32.c:2492 #, c-format msgid " -m[no-]%-17sEnable/Disable %s\n" msgstr " -m[no-]%-17s activa/desactiva %s\n" -#: config/tc-nds32.c:2052 +#: config/tc-nds32.c:2496 #, c-format msgid " -mall-ext\t\t Turn on all extensions and instructions support\n" msgstr "" -#: config/tc-nds32.c:2326 +#: config/tc-nds32.c:2770 #, c-format msgid "la must use with symbol. '%s'" msgstr "la debe utilizar con símbolo . «%s»" -#: config/tc-nds32.c:2379 +#: config/tc-nds32.c:2823 #, c-format msgid "need PIC qualifier with symbol. '%s'" msgstr "requiere PIC cualificador con símbolo. «%s»" -#: config/tc-nds32.c:2416 +#: config/tc-nds32.c:2860 #, c-format msgid "Operand is not a constant. `%s'" msgstr "Operando no es una constante. «%s»" -#: config/tc-nds32.c:2505 +#: config/tc-nds32.c:2949 #, c-format msgid "needs @GOT or @GOTOFF. %s" msgstr "requiere @GOT en @GOTOFF. %s" -#: config/tc-nds32.c:3001 -#, c-format -msgid "Duplicated pseudo-opcode %s." -msgstr "Duplicado pseudo-opcode %s." - -#: config/tc-nds32.c:3051 +#: config/tc-nds32.c:3487 #, c-format msgid "Too many argument. `%s'" msgstr "Demasiados argumentos. «%s»" #. Logic here rejects the input arch name. -#: config/tc-nds32.c:3112 +#: config/tc-nds32.c:3548 #, c-format msgid "unknown arch name `%s'\n" msgstr "desconoce nombre arq «%s»\n" #. Logic here rejects the input baseline. -#: config/tc-nds32.c:3131 +#: config/tc-nds32.c:3567 #, c-format msgid "unknown baseline `%s'\n" msgstr "desconoce base lineal «%s»\n" #. Logic here rejects the input FPU configuration. -#: config/tc-nds32.c:3154 +#: config/tc-nds32.c:3590 #, c-format msgid "unknown FPU configuration `%s'\n" msgstr "desconoce configuración FPU «%s»\n" #. Logic here rejects the input abi version. -#: config/tc-nds32.c:3178 +#: config/tc-nds32.c:3614 #, c-format msgid "unknown ABI version`%s'\n" msgstr "desconoce versión «%s» de ABI\n" -#: config/tc-nds32.c:3783 +#: config/tc-nds32.c:4339 #, c-format msgid "Different arguments of .vec_size are found, previous %d, current %d" msgstr "" -#: config/tc-nds32.c:3788 +#: config/tc-nds32.c:4344 #, c-format msgid "Argument of .vec_size is expected 4 or 16, actual: %d." msgstr "Argumento de tamaño .vec_size está esperado 4 o 16, actual: %d." -#: config/tc-nds32.c:3792 +#: config/tc-nds32.c:4348 msgid "Argument of .vec_size is not a constant." msgstr "Argumento de .vec_size no es constante." -#: config/tc-nds32.c:4328 +#: config/tc-nds32.c:4934 #, c-format msgid "Don't know how to handle this field. %s" msgstr "No se sabe cómo manipular este campo. %s" -#: config/tc-nds32.c:4493 +#: config/tc-nds32.c:5299 #, c-format msgid "instruction %s requires enabling performance extension" msgstr "instrucción %s requiere activando extensión rendimiento" -#: config/tc-nds32.c:4501 +#: config/tc-nds32.c:5311 #, c-format msgid "instruction %s requires enabling performance extension II" msgstr "instrucción %s requiere activar extensión rendimiento II" -#: config/tc-nds32.c:4509 +#: config/tc-nds32.c:5323 #, c-format msgid "instruction %s requires enabling AUDIO extension" msgstr "instrucción %s requiere activar extensión AUDIO" -#: config/tc-nds32.c:4517 +#: config/tc-nds32.c:5335 #, c-format msgid "instruction %s requires enabling STRING extension" msgstr "instrucción %s requiere activación de extensión STRING" -#: config/tc-nds32.c:4526 +#: config/tc-nds32.c:5349 #, c-format msgid "instruction %s requires enabling DIV & DX_REGS extension" msgstr "instrucción %s requiere activar extensiones DIV & DX_REGS" -#: config/tc-nds32.c:4537 +#: config/tc-nds32.c:5364 #, c-format msgid "instruction %s requires enabling FPU extension" msgstr "instrucción %s requiere una extensión FPU" -#: config/tc-nds32.c:4545 +#: config/tc-nds32.c:5376 #, c-format msgid "instruction %s requires enabling FPU_SP extension" msgstr "instrucción %s requiere activar extensión FPU_PS" -#: config/tc-nds32.c:4557 config/tc-nds32.c:4577 -#, c-format -msgid "instruction %s requires enabling FPU_MAC extension" -msgstr "instrucción %s requiere activación de extensión FPU_MAC" - -#: config/tc-nds32.c:4565 +#: config/tc-nds32.c:5388 #, c-format msgid "instruction %s requires enabling FPU_DP extension" msgstr "instrucción %s requiere activar extensión FPU_DP" -#: config/tc-nds32.c:4587 +#: config/tc-nds32.c:5399 config/tc-nds32.c:5407 +#, c-format +msgid "instruction %s requires enabling FPU_MAC extension" +msgstr "instrucción %s requiere activación de extensión FPU_MAC" + +#: config/tc-nds32.c:5415 #, c-format msgid "instruction %s requires enabling DX_REGS extension" msgstr "instrucción %s requiere activación de extensión DX_REGS" -#: config/tc-nds32.c:4778 +#: config/tc-nds32.c:5431 +#, fuzzy, c-format +#| msgid "instruction %s requires enabling FPU extension" +msgid "instruction %s requires enabling dsp extension" +msgstr "instrucción %s requiere una extensión FPU" + +#: config/tc-nds32.c:5443 +#, fuzzy, c-format +#| msgid "instruction %s requires enabling FPU extension" +msgid "instruction %s requires enabling zol extension" +msgstr "instrucción %s requiere una extensión FPU" + +#: config/tc-nds32.c:5448 +#, fuzzy, c-format +#| msgid "internal error: unknown option name '%s'" +msgid "internal error: unknown instruction attribute: 0x%08x" +msgstr "error interno: nombre desconocido opcional '%s'" + +#: config/tc-nds32.c:5741 #, c-format msgid "relax hint unrecognized instruction: line %d." msgstr "instrucción relajada irreconocida: línea %d." -#: config/tc-nds32.c:4819 +#: config/tc-nds32.c:5796 #, c-format msgid "Can not find match relax hint. Line: %d" msgstr "No puede encontrar coincidencia relajada insinuada. Línea: %d" -#: config/tc-nds32.c:4999 -#, c-format -msgid "Internal error: Relax hint error. %s: %x" +#: config/tc-nds32.c:5994 +#, fuzzy +#| msgid "Internal error: Relax hint error. %s: %x" +msgid "Internal error: .relax_hint KEY is not a number!" +msgstr "Error interno: relajar error insinuoso. %s: %x" + +#: config/tc-nds32.c:6022 +#, fuzzy, c-format +#| msgid "Internal error: Relax hint error. %s: %x" +msgid "Internal error: Relax hint (%s) error. %s: %s (%x)" msgstr "Error interno: relajar error insinuoso. %s: %x" -#: config/tc-nds32.c:5071 +#: config/tc-nds32.c:6099 #, c-format msgid "Internal error: Range error. %s" msgstr "Error interno: límite erróneo. %s" -#: config/tc-nds32.c:5153 +#: config/tc-nds32.c:6160 +msgid "Multiple BFD_RELOC_NDS32_PTR_RESOLVED patterns are not supported yet!" +msgstr "" + +#: config/tc-nds32.c:6308 +#, fuzzy, c-format +#| msgid "unsupported instruction `%s'" +msgid "Not support instruction %s in verbatim." +msgstr "no admitió instrucción «%s»" + +#: config/tc-nds32.c:6315 +#, fuzzy, c-format +#| msgid "st/ld offset 23 instruction was disabled ." +msgid "16-bit instruction is disabled: %s." +msgstr "st/ld desplaza 23 instrucciones fue desactivado." + +#: config/tc-nds32.c:6342 #, c-format msgid "Instruction %s not supported in the baseline." msgstr "Instrucción %s no admitida dentro de la línea base." -#: config/tc-nds32.c:5208 +#: config/tc-nds32.c:6409 #, c-format msgid "Unrecognized opcode, %s." msgstr "No reconocido el código operacional: %s." -#: config/tc-nds32.c:5211 +#: config/tc-nds32.c:6412 #, c-format msgid "Incorrect syntax, %s." msgstr "Sintaxis incorrecta, %s." -#: config/tc-nds32.c:5214 +#: config/tc-nds32.c:6415 #, c-format msgid "Unrecognized operand/register, %s." msgstr "Operando no reconocido %s." -#: config/tc-nds32.c:5217 +#: config/tc-nds32.c:6418 #, c-format msgid "Operand out of range, %s." -msgstr "Operando fuera de límite, %s." +msgstr "Operando fuera de rango, %s." -#: config/tc-nds32.c:5220 +#: config/tc-nds32.c:6421 #, c-format msgid "Prohibited register used for reduced-register, %s." msgstr "Registro utilizado prohibido para registro reducido, %s." -#: config/tc-nds32.c:5223 +#: config/tc-nds32.c:6424 #, c-format msgid "Junk at end of line, %s." msgstr "Basura al final de la línea, %s." -#: config/tc-nds32.c:5885 +#: config/tc-nds32.c:7122 msgid "Addend to unresolved symbol is not on word boundary." msgstr "Añadido a símbolo no resuelto no está en un límite de word." #. Should never here. -#: config/tc-nds32.c:6420 +#: config/tc-nds32.c:7617 msgid "Used FPU instructions requires enabling FPU extension" msgstr "Instrucción FPU utilizada requiere activación de extensión FPU" -#: config/tc-nds32.c:6611 +#: config/tc-nds32.c:7813 #, c-format msgid "Internal error: Unknown fixup type %d (`%s')" msgstr "Error interno: Tipo desconocido de corrección: %d (`%s')" -#: config/tc-nds32.c:6711 -msgid "need PIC qualifier with symbol." -msgstr "requiere PIC cualificador con símbolo." - -#: config/tc-nios2.c:453 config/tc-pru.c:309 -msgid "expecting opcode string in self test mode" -msgstr "esperando cadena operacional de código en modo de prueba" - -#: config/tc-nios2.c:455 config/tc-pru.c:311 -#, c-format -msgid "assembly 0x%08x, expected %s" -msgstr "ensambla 0x%08x, esperado %s" - -#: config/tc-nios2.c:848 -msgid "branch offset out of range\n" -msgstr "ramificación desplazada fuera de límite\n" - -#: config/tc-nios2.c:849 -msgid "branch relaxation failed\n" -msgstr "relajación de ramificación fallada\n" - -#: config/tc-nios2.c:1145 -msgid "error checking for overflow - broken assembler" -msgstr "" - -#: config/tc-nios2.c:1161 config/tc-pru.c:572 -#, c-format -msgid "immediate value 0x%x truncated to 0x%x" -msgstr "valor inmediato 0x%x truncado a 0x%x" - -#: config/tc-nios2.c:1188 config/tc-pru.c:598 -#, c-format -msgid "call target address 0x%08x out of range 0x%08x to 0x%08x" -msgstr "llama dirección destino 0x%08x fuera del límite 0x%08x a 0x%08x" - -#: config/tc-nios2.c:1194 -#, c-format -msgid "branch offset %d out of range %d to %d" -msgstr "ramificación de desplazamiento%d fuera de límite %d a %d" - -#: config/tc-nios2.c:1198 -#, c-format -msgid "branch offset %d out of range" -msgstr "ramificación de desplazamiento%d fuera de rango" - -#: config/tc-nios2.c:1204 config/tc-pru.c:608 -#, c-format -msgid "%s offset %d out of range %d to %d" -msgstr "%s desplazamiento %d fuera de límite %d a %d" - -#: config/tc-nios2.c:1208 -#, c-format -msgid "%s offset %d out of range" -msgstr "%s desplazado %d fuera del límite" - -#: config/tc-nios2.c:1213 config/tc-nios2.c:1228 config/tc-pru.c:613 -#, c-format -msgid "immediate value %d out of range %d to %d" -msgstr "valor %d inmediato fuera de límite %d a %d" - -#: config/tc-nios2.c:1218 config/tc-nios2.c:1223 config/tc-pru.c:623 -#: config/tc-pru.c:628 -#, c-format -msgid "immediate value %u out of range %u to %u" -msgstr "valor inmediato %u fuera de límite desde %u hasta %u" - -#: config/tc-nios2.c:1233 -#, c-format -msgid "custom instruction opcode %u out of range %u to %u" -msgstr "" - -#: config/tc-nios2.c:1238 config/tc-pru.c:633 -msgid "overflow in immediate argument" -msgstr "sobredesbordamiento dentro de argumento inmediato" - -#: config/tc-nios2.c:1310 config/tc-pru.c:669 -msgid "cannot create 64-bit relocation" -msgstr "no puede crear datos reubicantes de 64-bit" - -#: config/tc-nios2.c:1438 -#, c-format -msgid "internal error: broken opcode descriptor for `%s %s'\n" -msgstr "error interno: descripción de código operacional defectuoso para `%s %s'\n" - -#: config/tc-nios2.c:1487 config/tc-pru.c:859 -msgid "can't create relocation" -msgstr "no puede crear reubicación" - -#: config/tc-nios2.c:1518 config/tc-pru.c:993 config/tc-pru.c:1013 -#: config/tc-pru.c:1040 config/tc-pru.c:1059 config/tc-pru.c:1073 -#, c-format -msgid "unknown register %s" -msgstr "registro desconocido %s" - -#: config/tc-nios2.c:1526 -msgid "expecting control register" -msgstr "esperando registro de control" - -#: config/tc-nios2.c:1528 -msgid "illegal use of control register" -msgstr "utilización ilegal de registro de control" - -#: config/tc-nios2.c:1530 -msgid "illegal use of coprocessor register" -msgstr "utilización ilegal de uso de registro de coprocesador" - -#. Should never get here if we passed validation. -#: config/tc-nios2.c:1532 config/tc-nios2.c:1846 config/tc-nios2.c:1988 -#: config/tc-nios2.c:2056 -#, c-format -msgid "invalid register %s" -msgstr "registro inválido %s" - -#: config/tc-nios2.c:1540 -msgid "" -"Register at (r1) can sometimes be corrupted by assembler optimizations.\n" -"Use .set noat to turn off those optimizations (and this warning)." -msgstr "" - -#: config/tc-nios2.c:1545 -msgid "" -"The debugger will corrupt bt (r25).\n" -"If you don't need to debug this code use .set nobreak to turn off this warning." -msgstr "" - -#: config/tc-nios2.c:1549 -msgid "" -"The debugger will corrupt sstatus/ba (r30).\n" -"If you don't need to debug this code use .set nobreak to turn off this warning." -msgstr "" - -#: config/tc-nios2.c:1939 config/tc-nios2.c:1967 -msgid "r31 cannot be used with jmp; use ret instead" -msgstr "r31 no se puede ser empleado con jmp; utilice ret en su lugar" - -#: config/tc-nios2.c:1982 -msgid "r31 cannot be used with jmpr.n; use ret.n instead" -msgstr "r31 no se puede ser empleado con jmpr.n; utilice ret.n en su lugar" - -#: config/tc-nios2.c:2595 config/tc-nios2.c:2622 config/tc-nios2.c:2649 -#: config/tc-nios2.c:2680 -#, c-format -msgid "Invalid constant operand %s" -msgstr "Operando constante inválido %s" - -#: config/tc-nios2.c:2997 config/tc-nios2.c:3021 config/tc-pru.c:1312 -#: config/tc-pru.c:1337 config/tc-pru.c:1357 -#, c-format -msgid "badly formed expression near %s" -msgstr "expresión equivocadamente formada cercana a %s" - -#: config/tc-nios2.c:3110 config/tc-nios2.c:3137 config/tc-pru.c:1406 -#: config/tc-pru.c:1431 config/tc-xtensa.c:2108 -msgid "too many arguments" -msgstr "demasiados argumentos" - -#: config/tc-nios2.c:3126 config/tc-pru.c:1383 -#, c-format -msgid "expecting %c near %s" -msgstr "esperando %c cerca de %s" - -#. we cannot recover from this. -#: config/tc-nios2.c:3277 -#, c-format -msgid "unrecognized pseudo-instruction %s" -msgstr "no reconocida psudo-instrucción %s" - -#: config/tc-nios2.c:3540 config/tc-tic6x.c:232 -#, c-format -msgid "unknown architecture '%s'" -msgstr "arquitectura desconocida '%s'" - -#: config/tc-nios2.c:3621 -msgid "Big-endian R2 is not supported." -msgstr "Big-endian R2 sin apoyo." - -#. Unrecognised instruction - error. -#: config/tc-nios2.c:3789 config/tc-pru.c:1729 -#, c-format -msgid "unrecognised instruction %s" -msgstr "instrucción %s no reconocida" - -#: config/tc-nios2.c:3909 config/tc-pru.c:1785 -#, c-format -msgid "can't represent relocation type %s" -msgstr "no puede representar tipo %s reubicable" - -#: config/tc-nios2.c:4002 -msgid "Bad .section directive: want a,s,w,x,M,S,G,T in string" -msgstr "Directiva .section equivocada: se quiere en la cadena a,s,w,x,M,S,G,T" - -#: config/tc-nios2.c:4028 -#, c-format -msgid "Illegal operands: %%tls_ldo in %d-byte data field" -msgstr "Operandos ilegítimos: %%tls_ldo en campo de datos de %d-bytes" - -#: config/tc-nios2.c:4040 config/tc-nios2.c:4058 config/tc-nios2.c:4065 -#, c-format -msgid "Illegal operands: %%tls_ldo requires arguments in ()" -msgstr "Operandos ilegítimos: %%tls_ldo requiere argumentos en ()" - -#: config/tc-nios2.c:4072 -#, c-format -msgid "Illegal operands: garbage after %%tls_ldo()" -msgstr "Operandos ilegítimos: hay basura tras %%tls_ldo()" - #: config/tc-ns32k.c:437 msgid "Invalid syntax in PC-relative addressing mode" msgstr "Sintaxis no válida en el modo de direccionamiento relativo al PC" @@ -13880,15 +15853,15 @@ msgstr "Sintaxis no válida en el modo de direccionamiento Relativo a Memoria" #: config/tc-ns32k.c:609 msgid "Invalid scaled-indexed mode, use (b,w,d,q)" -msgstr "Modo escalado-indizado inválido, utilice (b,w,d,q)" +msgstr "Modo escalado-indexado inválido, utilice (b,w,d,q)" #: config/tc-ns32k.c:614 msgid "Syntax in scaled-indexed mode, use [Rn:m] where n=[0..7] m={b,w,d,q}" -msgstr "Sintaxis en el modo escalado-indizado, utilice [Rn:m] donde n=[0..7] m={b,w,d,q}" +msgstr "Sintaxis en el modo escalado-indexado, utilice [Rn:m] donde n=[0..7] m={b,w,d,q}" #: config/tc-ns32k.c:619 msgid "Scaled-indexed addressing mode combined with scaled-index" -msgstr "Modo de direccionamiento escalado-indizado combinado con índice-escalado" +msgstr "Modo de direccionamiento escalado-indexado combinado con índice-escalado" #: config/tc-ns32k.c:630 msgid "Invalid or illegal addressing mode combined with scaled-index" @@ -13900,7 +15873,7 @@ msgstr "Fin de sufijo prematuro -- Se cambia por defecto a d" #: config/tc-ns32k.c:766 msgid "Bad suffix after ':' use {b|w|d} Defaulting to d" -msgstr "Sufijo equivocado tras ':' utilice {b|w|d} Se cambia por defecto a d" +msgstr "Sufijo incorrecto tras ':' utilice {b|w|d} Se cambia por defecto a d" #: config/tc-ns32k.c:811 msgid "Very short instr to option, ie you can't do it on a NULLstr" @@ -13924,114 +15897,108 @@ msgstr "Operando de escritura inmediato inválido." #: config/tc-ns32k.c:1074 msgid "Bad opcode-table-option, check in file ns32k-opcode.h" -msgstr "Opción-de-tabla-de-códigos-de-operación equivocada, revise en el fichero ns32k-opcode.h" +msgstr "Opción-de-tabla-de-códigos-de-operación incorrecta, revise en el fichero ns32k-opcode.h" -#: config/tc-ns32k.c:1107 +#: config/tc-ns32k.c:1108 msgid "No such opcode" msgstr "No existe ese código operacional" -#: config/tc-ns32k.c:1182 +#: config/tc-ns32k.c:1183 msgid "Bad suffix, defaulting to d" -msgstr "Sufijo equivocado, se cambia por defecto a d" +msgstr "Sufijo incorrecto, se cambia por defecto a d" -#: config/tc-ns32k.c:1209 +#: config/tc-ns32k.c:1210 msgid "Too many operands passed to instruction" msgstr "Se pasan demasiados operandos a la instrucción" #. Check error in default. -#: config/tc-ns32k.c:1221 +#: config/tc-ns32k.c:1222 msgid "Wrong numbers of operands in default, check ns32k-opcodes.h" -msgstr "Número equivocado de operandos por defecto, revise ns32k-opcodes.h" +msgstr "Número incorrecto de operandos por defecto, revise ns32k-opcodes.h" -#: config/tc-ns32k.c:1224 +#: config/tc-ns32k.c:1225 msgid "Wrong number of operands" -msgstr "Número equivocado de operandos" +msgstr "Número incorrecto de operandos" -#: config/tc-ns32k.c:1297 +#: config/tc-ns32k.c:1298 #, c-format msgid "Can not do %d byte pc-relative relocation for storage type %d" msgstr "No se puede hacer la reubicación relativa a pc de %d byte para el tipo de almacenamiento %d" -#: config/tc-ns32k.c:1300 +#: config/tc-ns32k.c:1301 #, c-format msgid "Can not do %d byte relocation for storage type %d" msgstr "No se puede hacer la reubicación de %d byte para el tipo de almacenamiento %d" -#: config/tc-ns32k.c:1392 +#: config/tc-ns32k.c:1393 #, c-format msgid "value of %ld out of byte displacement range." msgstr "valor de %ld fuera del límite de desubicación de byte." -#: config/tc-ns32k.c:1402 +#: config/tc-ns32k.c:1403 #, c-format msgid "value of %ld out of word displacement range." msgstr "valor de %ld fuera del límite de desubicación de word." -#: config/tc-ns32k.c:1417 +#: config/tc-ns32k.c:1418 #, c-format msgid "value of %ld out of double word displacement range." msgstr "valor de %ld fuera del límite de desubicación de double word." -#: config/tc-ns32k.c:1438 +#: config/tc-ns32k.c:1439 #, c-format msgid "Internal logic error. Line %d, file: \"%s\"" msgstr "Error lógico interno. Línea %d, fichero «%s»" -#: config/tc-ns32k.c:1486 +#: config/tc-ns32k.c:1487 #, c-format msgid "Internal logic error. line %d, file \"%s\"" msgstr "Error lógico interno. línea %d, fichero «%s»" -#: config/tc-ns32k.c:1587 +#: config/tc-ns32k.c:1588 msgid "Bit field out of range" -msgstr "Campo de bits fuera de límite" +msgstr "Campo de bits fuera de rango" -#: config/tc-ns32k.c:1687 +#: config/tc-ns32k.c:1688 msgid "iif convert internal pcrel/binary" msgstr "iif convierte a pcrel/binario interno" -#: config/tc-ns32k.c:1704 +#: config/tc-ns32k.c:1705 msgid "Bignum too big for long" msgstr "Número grande demasiado grande para long" -#: config/tc-ns32k.c:1781 +#: config/tc-ns32k.c:1782 msgid "iif convert internal pcrel/pointer" msgstr "iif convierte a pcrel/puntero interno" -#: config/tc-ns32k.c:1786 +#: config/tc-ns32k.c:1787 msgid "Internal logic error in iif.iifP[n].type" msgstr "Error interno de lógica en iif.iifP[n].tipo" #. We can't relax this case. -#: config/tc-ns32k.c:1822 +#: config/tc-ns32k.c:1823 msgid "Can't relax difference" msgstr "No se puede relajar la diferencia" -#: config/tc-ns32k.c:1863 +#: config/tc-ns32k.c:1864 msgid "Displacement too large for :d" msgstr "Desubicación demasiado grande para :d" -#: config/tc-ns32k.c:1876 +#: config/tc-ns32k.c:1877 msgid "Internal logic error in iif.iifP[].type" msgstr "Error interno de lógica en iif.iifP[].tipo" -#. Fatal. -#: config/tc-ns32k.c:1908 -#, c-format -msgid "Can't hash %s: %s" -msgstr "No se puede dispersar %s: %s" - -#: config/tc-ns32k.c:2144 +#: config/tc-ns32k.c:2141 #, c-format msgid "invalid architecture option -m%s, ignored" msgstr "opción de arquitectura -m%s no válida, se descarta" -#: config/tc-ns32k.c:2157 +#: config/tc-ns32k.c:2154 #, c-format msgid "invalid default displacement size \"%s\". Defaulting to %d." msgstr "tamaño de desubicación por defecto «%s» inválido. Se cambia a %d por defecto." -#: config/tc-ns32k.c:2173 +#: config/tc-ns32k.c:2170 #, c-format msgid "" "NS32K options:\n" @@ -14042,86 +16009,86 @@ msgstr "" "-m32032 | -m32532\tselecciona la variante de la arquitectura NS32K\n" "--disp-size-default=<1|2|4>\n" -#: config/tc-ns32k.c:2249 +#: config/tc-ns32k.c:2246 #, c-format msgid "Cannot find relocation type for symbol %s, code %d" msgstr "No se puede encontrar el tipo reubicado para el símbolo %s, código %d" -#: config/tc-pdp11.c:336 config/tc-pdp11.c:354 config/tc-pdp11.c:379 -#: config/tc-pdp11.c:385 config/tc-pdp11.c:398 +#: config/tc-pdp11.c:351 config/tc-pdp11.c:369 config/tc-pdp11.c:375 +#: config/tc-pdp11.c:400 config/tc-pdp11.c:406 config/tc-pdp11.c:419 msgid "Bad register name" -msgstr "Nombre de registro equivocado" +msgstr "Nombre de registro incorrecto" -#: config/tc-pdp11.c:417 config/tc-pdp11.c:481 config/tc-pdp11.c:492 +#: config/tc-pdp11.c:438 config/tc-pdp11.c:502 config/tc-pdp11.c:513 msgid "Error in expression" msgstr "Error en la expresión" -#: config/tc-pdp11.c:489 +#: config/tc-pdp11.c:510 msgid "Low order bits truncated in immediate float operand" msgstr "Se truncaron los bits de orden inferior en operando de coma flotante inmediato" -#: config/tc-pdp11.c:608 +#: config/tc-pdp11.c:654 msgid "Float AC not legal as integer operand" msgstr "AC de coma flotante no es legal como operando entero" -#: config/tc-pdp11.c:628 +#: config/tc-pdp11.c:674 msgid "General register not legal as float operand" msgstr "El registro general no es legal como operando de coma flotante" -#: config/tc-pdp11.c:661 +#: config/tc-pdp11.c:707 msgid "No instruction found" msgstr "No se encontró una instrucción" -#: config/tc-pdp11.c:671 config/tc-z80.c:1932 config/tc-z80.c:1945 +#: config/tc-pdp11.c:717 config/tc-z80.c:3668 #, c-format msgid "Unknown instruction '%s'" msgstr "Instrucción desconocida «%s»" -#: config/tc-pdp11.c:677 +#: config/tc-pdp11.c:723 #, c-format msgid "Unsupported instruction set extension: %s" msgstr "No se admite la extensión de conjunto de instrucciones: %s" -#: config/tc-pdp11.c:711 +#: config/tc-pdp11.c:757 msgid "operand is not an absolute constant" msgstr "operando no es una constante absoluta" -#: config/tc-pdp11.c:719 +#: config/tc-pdp11.c:765 msgid "3-bit immediate out of range" -msgstr "inmediato de 3-bit fuera de límite" +msgstr "inmediato de 3-bit fuera de rango" -#: config/tc-pdp11.c:726 +#: config/tc-pdp11.c:772 msgid "6-bit immediate out of range" -msgstr "inmediato de 6-bit fuera de límite" +msgstr "inmediato de 6-bit fuera de rango" -#: config/tc-pdp11.c:733 +#: config/tc-pdp11.c:779 msgid "8-bit immediate out of range" -msgstr "inmediato de 8-bit fuera de límite" +msgstr "inmediato de 8-bit fuera de rango" -#: config/tc-pdp11.c:750 config/tc-pdp11.c:943 +#: config/tc-pdp11.c:796 config/tc-pdp11.c:989 msgid "Symbol expected" msgstr "Se esperaba un símbolo" -#: config/tc-pdp11.c:755 +#: config/tc-pdp11.c:801 msgid "8-bit displacement out of range" -msgstr "Desubicación de 8-bit fuera de límite" +msgstr "Desubicación de 8-bit fuera de rango" -#: config/tc-pdp11.c:797 config/tc-pdp11.c:818 config/tc-pdp11.c:835 -#: config/tc-pdp11.c:856 config/tc-pdp11.c:873 config/tc-pdp11.c:894 -#: config/tc-pdp11.c:913 config/tc-pdp11.c:934 +#: config/tc-pdp11.c:843 config/tc-pdp11.c:864 config/tc-pdp11.c:881 +#: config/tc-pdp11.c:902 config/tc-pdp11.c:919 config/tc-pdp11.c:940 +#: config/tc-pdp11.c:959 config/tc-pdp11.c:980 msgid "Missing ','" msgstr "Ausentea ','" -#: config/tc-pdp11.c:948 +#: config/tc-pdp11.c:994 msgid "6-bit displacement out of range" -msgstr "6-bit desplazamiento fuera de límite" +msgstr "6-bit desplazamiento fuera de rango" -#: config/tc-pdp11.c:969 config/tc-tilegx.c:1215 config/tc-tilepro.c:1101 -#: config/tc-vax.c:1950 +#: config/tc-pdp11.c:1015 config/tc-tilegx.c:1212 config/tc-tilepro.c:1095 +#: config/tc-vax.c:1945 msgid "Too many operands" msgstr "Demasiados operandos" -#: config/tc-pdp11.c:1419 +#: config/tc-pdp11.c:1464 #, c-format msgid "Can not represent %s relocation in this object file format" msgstr "No se puede representar la reubicación %s en este formato de fichero objeto" @@ -14149,601 +16116,882 @@ msgstr "" "-little\t\t\tgenera código little endian\n" "-big\t\t\tgenera código big endian\n" -#: config/tc-pj.c:380 config/tc-sh.c:4149 config/tc-sh.c:4156 -#: config/tc-sh.c:4163 config/tc-sh.c:4170 +#: config/tc-pj.c:380 config/tc-sh.c:3580 config/tc-sh.c:3587 +#: config/tc-sh.c:3594 config/tc-sh.c:3601 msgid "pcrel too far" msgstr "pcrel demasiado lejos" -#: config/tc-ppc.c:977 config/tc-ppc.c:985 config/tc-ppc.c:3042 +#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3497 msgid "invalid register expression" msgstr "expresión de registro inválido" -#: config/tc-ppc.c:1145 config/tc-ppc.c:1203 config/tc-ppc.c:1251 +#: config/tc-ppc.c:1135 config/tc-ppc.c:1193 config/tc-ppc.c:1241 msgid "the use of -mvle requires big endian." msgstr "la utilización de -mvle requiere big endian." -#: config/tc-ppc.c:1183 config/tc-ppc.c:1205 +#: config/tc-ppc.c:1173 config/tc-ppc.c:1195 msgid "the use of -mvle requires -a32." msgstr "la macro requiere $at mientras $at está en uso." -#: config/tc-ppc.c:1185 +#: config/tc-ppc.c:1175 #, c-format msgid "%s unsupported" msgstr "no se admite %s" -#: config/tc-ppc.c:1309 +#: config/tc-ppc.c:1268 config/tc-s390.c:493 config/tc-s390.c:500 +#, c-format +msgid "invalid switch -m%s" +msgstr "interruptor -m%s inválido" + +#: config/tc-ppc.c:1299 msgid "--nops needs a numeric argument" msgstr "--nops necesita un argumento numérico" -#: config/tc-ppc.c:1326 +#: config/tc-ppc.c:1335 +#, fuzzy, c-format +#| msgid "SPARC options:\n" +msgid "PowerPC options:\n" +msgstr "Opciones SPARC:\n" + +#: config/tc-ppc.c:1337 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-a32 generate ELF32/XCOFF32\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1340 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-a64 generate ELF64/XCOFF64\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1342 +#, fuzzy, c-format +#| msgid " -w ignored\n" +msgid "-u ignored\n" +msgstr " -w se descarta\n" + +#: config/tc-ppc.c:1344 +#, c-format +msgid "-mpwrx, -mpwr2 generate code for POWER/2 (RIOS2)\n" +msgstr "" + +#: config/tc-ppc.c:1346 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-mpwr generate code for POWER (RIOS1)\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1348 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-m601 generate code for PowerPC 601\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1350 #, c-format msgid "" -"PowerPC options:\n" -"-a32 generate ELF32/XCOFF32\n" -"-a64 generate ELF64/XCOFF64\n" -"-u ignored\n" -"-mpwrx, -mpwr2 generate code for POWER/2 (RIOS2)\n" -"-mpwr generate code for POWER (RIOS1)\n" -"-m601 generate code for PowerPC 601\n" "-mppc, -mppc32, -m603, -m604\n" " generate code for PowerPC 603/604\n" -"-m403 generate code for PowerPC 403\n" -"-m405 generate code for PowerPC 405\n" -"-m440 generate code for PowerPC 440\n" -"-m464 generate code for PowerPC 464\n" -"-m476 generate code for PowerPC 476\n" +msgstr "" + +#: config/tc-ppc.c:1353 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-m403 generate code for PowerPC 403\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1355 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-m405 generate code for PowerPC 405\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1357 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-m440 generate code for PowerPC 440\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1359 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-m464 generate code for PowerPC 464\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1361 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-m476 generate code for PowerPC 476\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1363 +#, c-format +msgid "" "-m7400, -m7410, -m7450, -m7455\n" " generate code for PowerPC 7400/7410/7450/7455\n" -"-m750cl generate code for PowerPC 750cl\n" -"-m821, -m850, -m860 generate code for PowerPC 821/850/860\n" -msgstr "" -"Opciones de PowerPC:\n" -"-a32 genera ELF32/XCOFF32\n" -"-a64 genera ELF64/XCOFF64\n" -"-u se descarta\n" -"-mpwrx, -mpwr2 genera código para POWER/2 (RIOS2)\n" -"-mpwr genera código para POWER (RIOS1)\n" -"-m601 genera código para PowerPC 601\n" -"-mppc, -mppc32, -m603, -m604\n" -" genera código para PowerPC 603/604\n" -"-m403 genera código para PowerPC 403\n" -"-m405 genera código para PowerPC 405\n" -"-m440 genera código para PowerPC 440\n" -"-m464 genera código para PowerPC 464\n" -"-m476 genera código para PowerPC 476\n" -"-m7400, -m7410, -m7450, -m7455\n" -" genera código para PowerPC 7400/7410/7450/7455\n" -"-m750cl genera código para PowerPC 750cl\n" -"-m821, -m850, -m860 genera código para PowerPC 821/850/860\n" +msgstr "" -#: config/tc-ppc.c:1345 +#: config/tc-ppc.c:1366 #, c-format msgid "" -"-mppc64, -m620 generate code for PowerPC 620/625/630\n" -"-mppc64bridge generate code for PowerPC 64, including bridge insns\n" -"-mbooke generate code for 32-bit PowerPC BookE\n" -"-ma2 generate code for A2 architecture\n" -"-mpower4, -mpwr4 generate code for Power4 architecture\n" +"-m750cl, -mgekko, -mbroadway\n" +" generate code for PowerPC 750cl/Gekko/Broadway\n" +msgstr "" + +#: config/tc-ppc.c:1369 +#, c-format +msgid "-m821, -m850, -m860 generate code for PowerPC 821/850/860\n" +msgstr "" + +#: config/tc-ppc.c:1371 +#, c-format +msgid "-mppc64, -m620 generate code for PowerPC 620/625/630\n" +msgstr "" + +#: config/tc-ppc.c:1373 +#, c-format +msgid "-mppc64bridge generate code for PowerPC 64, including bridge insns\n" +msgstr "" + +#: config/tc-ppc.c:1375 +#, fuzzy, c-format +#| msgid " -mbig-obj generate big object files\n" +msgid "-mbooke generate code for 32-bit PowerPC BookE\n" +msgstr " -mbig-obj genera ficheros objetos grandes\n" + +#: config/tc-ppc.c:1377 +#, fuzzy, c-format +#| msgid " -Z generate object file even after errors\n" +msgid "-ma2 generate code for A2 architecture\n" +msgstr " -Z generar fichero objeto par tras errores\n" + +#: config/tc-ppc.c:1379 +#, c-format +msgid "-mpower4, -mpwr4 generate code for Power4 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1381 +#, fuzzy, c-format +#| msgid " -Z generate object file even after errors\n" +msgid "" "-mpower5, -mpwr5, -mpwr5x\n" " generate code for Power5 architecture\n" -"-mpower6, -mpwr6 generate code for Power6 architecture\n" -"-mpower7, -mpwr7 generate code for Power7 architecture\n" -"-mpower8, -mpwr8 generate code for Power8 architecture\n" -"-mpower9, -mpwr9 generate code for Power9 architecture\n" -"-mcell generate code for Cell Broadband Engine architecture\n" -"-mcom generate code for Power/PowerPC common instructions\n" -"-many generate code for any architecture (PWR/PWRX/PPC)\n" -msgstr "" -"-mppc64, -m620 genera código para PowerPC 620/625/630\n" -"-mppc64bridge genera código para PowerPC 64, incluyendo\n" -" instrucciones puente\n" -"-mbooke genera código para PowerPC BookE de 32-bit\n" -"-ma2 genera código para la arquitectura A2\n" -"-mpower4, -mpwr4 genera código para la arquitectura Power4\n" -"-mpower5, -mpwr5, -mpwr5x\n" -" genera código para la arquitectura Power5\n" -"-mpower6, -mpwr6 genera código para la arquitectura Power6\n" -"-mpower7, -mpwr7 genera código para la arquitectura Power7\n" -"-mpower8, -mpwr8 genera código para la arquitectura Power9\n" -"-mpower9, -mpwr9 genera código para la arquitectura Power9\n" -"-mcell genera código para la arquitectura Cell Broadband Engine\n" -"-mcom genera código de instrucciones comunes Power/PowerPC\n" -"-many genera código para cualquier arquitectura (PWR/PWRX/PPC)\n" +msgstr " -Z generar fichero objeto par tras errores\n" -#: config/tc-ppc.c:1360 +#: config/tc-ppc.c:1384 #, c-format -msgid "" -"-maltivec generate code for AltiVec\n" -"-mvsx generate code for Vector-Scalar (VSX) instructions\n" -"-me300 generate code for PowerPC e300 family\n" -"-me500, -me500x2 generate code for Motorola e500 core complex\n" -"-me500mc, generate code for Freescale e500mc core complex\n" -"-me500mc64, generate code for Freescale e500mc64 core complex\n" -"-me5500, generate code for Freescale e5500 core complex\n" -"-me6500, generate code for Freescale e6500 core complex\n" -"-mspe generate code for Motorola SPE instructions\n" -"-mspe2 generate code for Freescale SPE2 instructions\n" -"-mvle generate code for Freescale VLE instructions\n" -"-mtitan generate code for AppliedMicro Titan core complex\n" -"-mregnames Allow symbolic names for registers\n" -"-mno-regnames Do not allow symbolic names for registers\n" -msgstr "" -"-maltivec genera código para AltiVec\n" -"-mvsx genera código para instrucciones Vector-Escalar (VSX)\n" -"-me300 genera código para la familia PowerPC e300\n" -"-me500, -me500x2 genera código para el núcleo complejo Motorola e500\n" -"-me500mc, genera código para el núcleo complejo Freescale e500mc\n" -"-me500mc64, genera código para el núcleo complejo Freescale e500mc64\n" -"-mspe genera código para las instrucciones Motorola SPE\n" -"-mspe2 genera código para las instrucciones Freescale SPE2\n" -"-mvle genera código para las instrucciones Freescale VLE\n" -"-mtitan genera código para el núcleo complejo Titan AppliedMicro\n" -"-mregnames Permite nombres simbólicos para los registros\n" -"-mno-regnames No permite nombres simbólicos para los registros\n" - -#: config/tc-ppc.c:1376 +msgid "-mpower6, -mpwr6 generate code for Power6 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1386 +#, c-format +msgid "-mpower7, -mpwr7 generate code for Power7 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1388 +#, c-format +msgid "-mpower8, -mpwr8 generate code for Power8 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1390 +#, c-format +msgid "-mpower9, -mpwr9 generate code for Power9 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1392 #, c-format +msgid "-mpower10, -mpwr10 generate code for Power10 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1394 +#, c-format +msgid "-mpower11, -mpwr11 generate code for Power11 architecture\n" +msgstr "" + +#: config/tc-ppc.c:1396 +#, fuzzy, c-format +#| msgid " -march=ARCH enable instructions from architecture ARCH\n" +msgid "-mlibresoc generate code for Libre-SOC architecture\n" +msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n" + +#: config/tc-ppc.c:1398 +#, fuzzy, c-format +#| msgid " -Z generate object file even after errors\n" +msgid "-mfuture generate code for 'future' architecture\n" +msgstr " -Z generar fichero objeto par tras errores\n" + +#: config/tc-ppc.c:1400 +#, c-format +msgid "-mcell generate code for Cell Broadband Engine architecture\n" +msgstr "" + +#: config/tc-ppc.c:1402 +#, fuzzy, c-format +#| msgid " -matomic enable atomic operation instructions\n" +msgid "-mcom generate code for Power/PowerPC common instructions\n" +msgstr " -matomic permite instrucciones de operación atómica\n" + +#: config/tc-ppc.c:1404 +#, fuzzy, c-format +#| msgid " -Z generate object file even after errors\n" +msgid "-many generate code for any architecture (PWR/PWRX/PPC)\n" +msgstr " -Z generar fichero objeto par tras errores\n" + +#: config/tc-ppc.c:1406 +#, fuzzy, c-format +#| msgid " -mbig-obj generate big object files\n" +msgid "-maltivec generate code for AltiVec\n" +msgstr " -mbig-obj genera ficheros objetos grandes\n" + +#: config/tc-ppc.c:1408 +#, fuzzy, c-format +#| msgid " -m32r disable support for the m32rx instruction set\n" +msgid "-mvsx generate code for Vector-Scalar (VSX) instructions\n" +msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n" + +#: config/tc-ppc.c:1410 +#, fuzzy, c-format +#| msgid " -KPIC generate PIC\n" +msgid "-me300 generate code for PowerPC e300 family\n" +msgstr " -KPIC genera PIC\n" + +#: config/tc-ppc.c:1412 +#, c-format +msgid "-me500, -me500x2 generate code for Motorola e500 core complex\n" +msgstr "" + +#: config/tc-ppc.c:1414 +#, c-format +msgid "-me500mc, generate code for Freescale e500mc core complex\n" +msgstr "" + +#: config/tc-ppc.c:1416 +#, c-format +msgid "-me500mc64, generate code for Freescale e500mc64 core complex\n" +msgstr "" + +#: config/tc-ppc.c:1418 +#, c-format +msgid "-me5500, generate code for Freescale e5500 core complex\n" +msgstr "" + +#: config/tc-ppc.c:1420 +#, c-format +msgid "-me6500, generate code for Freescale e6500 core complex\n" +msgstr "" + +#: config/tc-ppc.c:1422 +#, fuzzy, c-format +#| msgid " -m32r disable support for the m32rx instruction set\n" +msgid "-mspe generate code for Motorola SPE instructions\n" +msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n" + +#: config/tc-ppc.c:1424 +#, fuzzy, c-format +#| msgid " -m32r disable support for the m32rx instruction set\n" +msgid "-mspe2 generate code for Freescale SPE2 instructions\n" +msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n" + +#: config/tc-ppc.c:1426 +#, fuzzy, c-format +#| msgid " -m32r disable support for the m32rx instruction set\n" +msgid "-mvle generate code for Freescale VLE instructions\n" +msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n" + +#: config/tc-ppc.c:1428 +#, c-format +msgid "-mtitan generate code for AppliedMicro Titan core complex\n" +msgstr "" + +#: config/tc-ppc.c:1430 +#, fuzzy, c-format +#| msgid " -mindex-reg support pseudo index registers\n" +msgid "-mregnames Allow symbolic names for registers\n" +msgstr " -mindex-reg admite registros de pseudo índice\n" + +#: config/tc-ppc.c:1432 +#, fuzzy, c-format +#| msgid " -mindex-reg support pseudo index registers\n" +msgid "-mno-regnames Do not allow symbolic names for registers\n" +msgstr " -mindex-reg admite registros de pseudo índice\n" + +#: config/tc-ppc.c:1435 +#, c-format +msgid "-mrelocatable support for GCC's -mrelocatble option\n" +msgstr "" + +#: config/tc-ppc.c:1437 +#, c-format +msgid "-mrelocatable-lib support for GCC's -mrelocatble-lib option\n" +msgstr "" + +#: config/tc-ppc.c:1439 +#, c-format +msgid "-memb set PPC_EMB bit in ELF flags\n" +msgstr "" + +#: config/tc-ppc.c:1441 +#, fuzzy, c-format +#| msgid " -mlittle-endian generate little-endian code\n" msgid "" -"-mrelocatable support for GCC's -mrelocatble option\n" -"-mrelocatable-lib support for GCC's -mrelocatble-lib option\n" -"-memb set PPC_EMB bit in ELF flags\n" "-mlittle, -mlittle-endian, -le\n" " generate code for a little endian machine\n" +msgstr " -mlittle-endian genera código little-endian\n" + +#: config/tc-ppc.c:1444 +#, fuzzy, c-format +#| msgid " -mbig-endian generate big-endian code\n" +msgid "" "-mbig, -mbig-endian, -be\n" " generate code for a big endian machine\n" -"-msolaris generate code for Solaris\n" -"-mno-solaris do not generate code for Solaris\n" -"-K PIC set EF_PPC_RELOCATABLE_LIB in ELF flags\n" -"-V print assembler version number\n" -"-Qy, -Qn ignored\n" -msgstr "" -"-mrelocatable admite la opción -mrelocatble de GCC\n" -"-mrelocatable-lib admite la opción -mrelocatble-lib de GCC\n" -"-memb activa el bit PPC_EMB en las casillas ELF\n" -"-mlittle, -mlittle-endian, -le\n" -" genera código para una máquina little endian\n" -"-mbig, -mbig-endian, be\n" -" genera código para una máquina big endian\n" -"-msolaris genera código para Solaris\n" -"-mno-solaris no genera código para Solaris\n" -"-K PIC activa EF_PPC_RELOCATABLE_LIB en las casillas ELF\n" -"-V muestra el número de versión del ensamblador\n" -"-Qy, -Qn se descarta\n" +msgstr " -mbig-endian genera código big-endian\n" -#: config/tc-ppc.c:1390 +#: config/tc-ppc.c:1447 +#, fuzzy, c-format +#| msgid " -mbig-obj generate big object files\n" +msgid "-msolaris generate code for Solaris\n" +msgstr " -mbig-obj genera ficheros objetos grandes\n" + +#: config/tc-ppc.c:1449 +#, fuzzy, c-format +#| msgid " -mbig-obj generate big object files\n" +msgid "-mno-solaris do not generate code for Solaris\n" +msgstr " -mbig-obj genera ficheros objetos grandes\n" + +#: config/tc-ppc.c:1451 #, c-format -msgid "" -"-nops=count when aligning, more than COUNT nops uses a branch\n" -"-ppc476-workaround warn if emitting data to code sections\n" +msgid "-K PIC set EF_PPC_RELOCATABLE_LIB in ELF flags\n" +msgstr "" + +#: config/tc-ppc.c:1453 +#, fuzzy, c-format +#| msgid " --version print assembler version number and exit\n" +msgid "-V print assembler version number\n" +msgstr " --version escribe el número de versión del ensamblador y termina\n" + +#: config/tc-ppc.c:1455 +#, fuzzy, c-format +#| msgid " -nocpp ignored\n" +msgid "-Qy, -Qn ignored\n" +msgstr " -nocpp se descarta\n" + +#: config/tc-ppc.c:1458 +#, fuzzy, c-format +#| msgid "" +#| "-nops=count when aligning, more than COUNT nops uses a branch\n" +#| "-ppc476-workaround warn if emitting data to code sections\n" +msgid "-nops=count when aligning, more than COUNT nops uses a branch\n" msgstr "" "-nops=contador cuando alineando, más que CONTADOR nops utiliza\n" " una ramificación\n" "-ppc476-workarround avisa si emitiendo datos para secciones de código\n" -#: config/tc-ppc.c:1417 +#: config/tc-ppc.c:1460 +#, fuzzy, c-format +#| msgid "" +#| "-nops=count when aligning, more than COUNT nops uses a branch\n" +#| "-ppc476-workaround warn if emitting data to code sections\n" +msgid "-ppc476-workaround warn if emitting data to code sections\n" +msgstr "" +"-nops=contador cuando alineando, más que CONTADOR nops utiliza\n" +" una ramificación\n" +"-ppc476-workarround avisa si emitiendo datos para secciones de código\n" + +#: config/tc-ppc.c:1490 #, c-format msgid "unknown default cpu = %s, os = %s" msgstr "desconoce cpu = %s predeterminada, os = %s" -#: config/tc-ppc.c:1445 -msgid "neither Power nor PowerPC opcodes were selected." -msgstr "ni Power ni PowerPC opcodes fueron seleccionados." - -#: config/tc-ppc.c:1505 +#: config/tc-ppc.c:1576 #, c-format msgid "mask trims opcode bits for %s" msgstr "mascarada recorta bits del código operacional para %s" -#: config/tc-ppc.c:1514 +#: config/tc-ppc.c:1586 #, c-format msgid "operand index error for %s" msgstr "error de índice de operando para %s" -#: config/tc-ppc.c:1530 +#: config/tc-ppc.c:1612 #, c-format msgid "operand %d overlap in %s" msgstr "operando %d sobreescribe en %s" -#: config/tc-ppc.c:1582 +#: config/tc-ppc.c:1621 +#, c-format +msgid "non-optional operand %d follows optional operand in %s" +msgstr "" + +#: config/tc-ppc.c:1687 #, c-format msgid "powerpc_operands[%d].bitm invalid" msgstr "powerpc_operands[%d].bitm inválido" -#: config/tc-ppc.c:1589 +#: config/tc-ppc.c:1694 #, c-format msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]" msgstr "powerpc_operands[%d] duplica a powerpc_operands[%d]" -#: config/tc-ppc.c:1618 config/tc-ppc.c:1682 config/tc-ppc.c:1728 +#: config/tc-ppc.c:1722 config/tc-ppc.c:1775 config/tc-ppc.c:1817 +#: config/tc-ppc.c:1865 #, c-format msgid "major opcode is not sorted for %s" msgstr "el código operacional major no está ordenado para %s" -#: config/tc-ppc.c:1625 +#: config/tc-ppc.c:1728 #, c-format msgid "%s is enabled by vle flag" msgstr "%s está activada por marca vle" -#: config/tc-ppc.c:1632 +#: config/tc-ppc.c:1735 #, c-format msgid "%s not disabled by vle flag" msgstr "%s no desactivada por marca vle" -#: config/tc-ppc.c:1646 config/tc-ppc.c:1699 config/tc-ppc.c:1743 -#, c-format -msgid "duplicate instruction %s" -msgstr "instrucción duplicada %s" +#: config/tc-ppc.c:1841 +#, fuzzy, c-format +#| msgid "major opcode is not sorted for %s" +msgid "opcode is not sorted for %s" +msgstr "el código operacional major no está ordenado para %s" -#: config/tc-ppc.c:1767 +#: config/tc-ppc.c:2259 #, c-format -msgid "duplicate macro %s" -msgstr "macro duplicado %s" +msgid "symbol+offset@%s means symbol@%s+offset" +msgstr "" -#: config/tc-ppc.c:2149 -msgid "symbol+offset not supported for got tls" +#: config/tc-ppc.c:2279 +#, fuzzy, c-format +#| msgid "symbol+offset not supported for got tls" +msgid "symbol+offset@%s not supported" msgstr "no se admite símbolo+desplazamiento para got tls" -#: config/tc-ppc.c:2226 config/tc-ppc.c:3746 config/tc-ppc.c:7192 +#: config/tc-ppc.c:2358 config/tc-ppc.c:4223 config/tc-ppc.c:7693 msgid "data in executable section" msgstr "datos en sección ejecutable" -#: config/tc-ppc.c:2267 config/tc-ppc.c:5386 +#: config/tc-ppc.c:2399 msgid "expected comma after symbol-name: rest of line ignored." msgstr "esperaba una coma tras el nombre-símbolo: el resto de la línea descartado." -#: config/tc-ppc.c:2300 config/tc-ppc.c:5422 +#: config/tc-ppc.c:2432 #, c-format msgid "ignoring attempt to re-define symbol `%s'." msgstr "ignorando intento de redefinir símbolo «%s»." -#: config/tc-ppc.c:2308 +#: config/tc-ppc.c:2440 #, c-format msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld." msgstr "longitud de .lcomm «%s» ya es %ld. No modificado a %ld." -#: config/tc-ppc.c:2326 +#: config/tc-ppc.c:2458 msgid "common alignment not a power of 2" msgstr "la alineamiento común no es una potencia de 2" -#: config/tc-ppc.c:2368 +#: config/tc-ppc.c:2500 #, c-format msgid "expected comma after name `%s' in .localentry directive" msgstr "coma esperada tras nombre «%s» en directiva .localentry" -#: config/tc-ppc.c:2378 +#: config/tc-ppc.c:2510 msgid "missing expression in .localentry directive" msgstr "expresión ausente en directiva localentry" -#: config/tc-ppc.c:2392 +#: config/tc-ppc.c:2531 #, c-format msgid ".localentry expression for `%s' is not a valid power of 2" msgstr "la expresión .localentry para `%s' no es una potencia de 2 válida" -#: config/tc-ppc.c:2406 +#: config/tc-ppc.c:2548 #, c-format msgid ".localentry expression for `%s' does not evaluate to a constant" msgstr "expresión .localentry para `%s' no evalúa a una constante" -#: config/tc-ppc.c:2421 +#: config/tc-ppc.c:2563 #, fuzzy #| msgid "missing expression in .size directive" msgid "missing expression in .abiversion directive" msgstr "expresión ausente en directiva localentry" -#: config/tc-ppc.c:2430 +#: config/tc-ppc.c:2572 msgid ".abiversion expression does not evaluate to a constant" msgstr "expresión .abiversion no evalúa a una constante" -#: config/tc-ppc.c:2452 -msgid "unknown .gnu_attribute value" -msgstr "desconoce valor .gnu_attribute" - -#: config/tc-ppc.c:2504 +#: config/tc-ppc.c:2652 msgid "relocation cannot be done when using -mrelocatable" msgstr "relocation no puede ser hecho cuando utiliza -mrelocatable" -#: config/tc-ppc.c:2550 +#: config/tc-ppc.c:2698 msgid "TOC section size exceeds 64k" msgstr "TOC como sección excede 64k" -#: config/tc-ppc.c:2645 -#, c-format -msgid "syntax error: invalid toc specifier `%s'" -msgstr "error sintáctico: especificador de tabla de contenido (toc) «%s» inválido" - -#: config/tc-ppc.c:2659 +#: config/tc-ppc.c:3258 #, c-format -msgid "syntax error: expected `]', found `%c'" -msgstr "error sintáctico: se esperaba `]', se obtuvo `%c'" +msgid "%s howto doesn't match size/pcrel in gas" +msgstr "" -#: config/tc-ppc.c:2768 +#: config/tc-ppc.c:3337 #, c-format msgid "unrecognized opcode: `%s'" msgstr "código operacional no reconocido: «%s»" -#: config/tc-ppc.c:2959 -msgid "[tocv] symbol is not a toc symbol" -msgstr "el símbolo [tocv] no es un símbolo de tabla de contenido" - -#: config/tc-ppc.c:2970 -msgid "unimplemented toc32 expression modifier" -msgstr "modificador de expresión toc32 no implementada" - -#: config/tc-ppc.c:2975 -msgid "unimplemented toc64 expression modifier" -msgstr "modificador de expresión toc64 no implementada" - -#: config/tc-ppc.c:2979 +#. lmw, stmw, lswi, lswx, stswi, stswx +#: config/tc-ppc.c:3348 #, c-format -msgid "Unexpected return value [%d] from parse_toc_entry!\n" -msgstr "¡Valor de devolución inesperado [%d] de parse_toc_entry!\n" +msgid "`%s' invalid when little-endian" +msgstr "" -#: config/tc-ppc.c:3194 +#: config/tc-ppc.c:3690 #, c-format msgid "@tls may not be used with \"%s\" operands" msgstr "@tls quizá no está utiliada con «%s» operandos" -#: config/tc-ppc.c:3197 +#: config/tc-ppc.c:3693 msgid "@tls may only be used in last operand" -msgstr "@tls sólo se puede utilizar en el último operando" +msgstr "@tls solo se puede utilizar en el último operando" -#: config/tc-ppc.c:3327 +#: config/tc-ppc.c:3731 config/tc-ppc.c:3741 config/tc-ppc.c:3751 +#: config/tc-ppc.c:3766 +#, fuzzy, c-format +#| msgid "%s unsupported as instruction fixup" +msgid "%s unsupported on this instruction" +msgstr "%s no admitido como instrucción corregida" + +#: config/tc-ppc.c:3813 #, c-format msgid "assuming %s on symbol" msgstr "asumiendo %s en símbolo" -#: config/tc-ppc.c:3430 +#: config/tc-ppc.c:3936 msgid "unsupported relocation for DS offset field" msgstr "no se admite el tipo reubicado para el campo de desplazamiento DS" -#: config/tc-ppc.c:3472 +#: config/tc-ppc.c:3989 #, c-format -msgid "syntax error; end of line, expected `%c'" -msgstr "error sintáctico; fin de línea, se esperaba `%c'" +msgid "syntax error; found `%c', expected `%c'" +msgstr "error de sintaxis; se encontró `%c', se esperaba `%c'" -#: config/tc-ppc.c:3474 +#: config/tc-ppc.c:3994 #, c-format -msgid "syntax error; found `%c', expected `%c'" -msgstr "error sintáctico; se encontró `%c', se esperaba `%c'" +msgid "syntax error; end of line, expected `%c'" +msgstr "error de sintaxis; fin de línea, se esperaba `%c'" -#: config/tc-ppc.c:3544 config/tc-ppc.c:6505 -msgid "instruction address is not a multiple of 4" -msgstr "la instrucción direccional no es un múltiplo de 4" +#: config/tc-ppc.c:4059 config/tc-ppc.c:6863 +#, fuzzy, c-format +#| msgid "instruction address is not a multiple of 2" +msgid "instruction address is not a multiple of %d" +msgstr "la instrucción direccional no es un múltiplo de 2" -#: config/tc-ppc.c:3703 +#: config/tc-ppc.c:4180 msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string" -msgstr "directiva .section equivocada: se quiere en la cadena a,e,v,w,x,M,S,G,T" +msgstr "directiva .section incorrecta: se quiere en la cadena a,e,v,w,x,M,S,G,T" -#: config/tc-ppc.c:3783 +#: config/tc-ppc.c:4330 msgid "missing size" msgstr "ausente el tamaño" -#: config/tc-ppc.c:3792 +#: config/tc-ppc.c:4339 msgid "negative size" msgstr "tamaño negativo" -#: config/tc-ppc.c:3824 +#: config/tc-ppc.c:4366 +msgid "Unknown visibility field in .comm" +msgstr "" + +#: config/tc-ppc.c:4384 msgid "missing real symbol name" msgstr "ausente el nombre del símbolo real" -#: config/tc-ppc.c:3863 +#: config/tc-ppc.c:4423 msgid "attempt to redefine symbol" msgstr "se intenta redefinir el símbolo" -#: config/tc-ppc.c:4126 +#: config/tc-ppc.c:4732 #, c-format msgid "no known dwarf XCOFF section for flag 0x%08x\n" msgstr "no hay una sección XCOFF enana conocida para la opción 0x%08x\n" -#: config/tc-ppc.c:4139 +#: config/tc-ppc.c:4745 #, c-format msgid "label %s was not defined in this dwarf section" msgstr "la etiqueta %s no se definió en esta sección enana" -#: config/tc-ppc.c:4253 +#: config/tc-ppc.c:4859 msgid "the XCOFF file format does not support arbitrary sections" msgstr "el formato del fichero XCOFF no admite secciones arbitrarias" -#: config/tc-ppc.c:4324 +#: config/tc-ppc.c:4897 +msgid "Unknown visibility field in .extern" +msgstr "" + +#: config/tc-ppc.c:4934 +msgid "Unknown visibility field in .globl" +msgstr "" + +#: config/tc-ppc.c:4971 +msgid "Unknown visibility field in .weak" +msgstr "" + +#: config/tc-ppc.c:5022 msgid ".ref outside .csect" msgstr ".ref fuera de .csect" -#: config/tc-ppc.c:4345 config/tc-ppc.c:4545 +#: config/tc-ppc.c:5043 config/tc-ppc.c:5303 msgid "missing symbol name" msgstr "ausente el nombre del símbolo" -#: config/tc-ppc.c:4375 +#: config/tc-ppc.c:5073 msgid "missing rename string" msgstr "ausente la cadena para renombrar" -#: config/tc-ppc.c:4405 config/tc-ppc.c:4944 read.c:3536 +#: config/tc-ppc.c:5103 config/tc-ppc.c:5705 msgid "missing value" msgstr "ausente el valor" -#: config/tc-ppc.c:4423 +#: config/tc-ppc.c:5121 msgid "illegal .stabx expression; zero assumed" msgstr "expresión .stabx ilegal; se asume cero" -#: config/tc-ppc.c:4455 +#: config/tc-ppc.c:5153 msgid "missing class" msgstr "ausente la clase" -#: config/tc-ppc.c:4464 +#: config/tc-ppc.c:5162 msgid "missing type" msgstr "ausente el tipo" -#: config/tc-ppc.c:4491 +#: config/tc-ppc.c:5189 msgid ".stabx of storage class stsym must be within .bs/.es" msgstr ".stabx de la clase de almacenamiento stsym debe estar entre .bs/.es" -#: config/tc-ppc.c:4732 +#: config/tc-ppc.c:5493 msgid "nested .bs blocks" msgstr "bloques .bs anidados" -#: config/tc-ppc.c:4763 +#: config/tc-ppc.c:5524 msgid ".es without preceding .bs" msgstr ".es sin un .bs precedente" -#: config/tc-ppc.c:4936 +#: config/tc-ppc.c:5697 msgid "non-constant byte count" msgstr "contador no constante de byte" -#: config/tc-ppc.c:5010 +#: config/tc-ppc.c:5772 msgid ".tc not in .toc section" msgstr ".tc no está en la sección .toc" -#: config/tc-ppc.c:5028 +#: config/tc-ppc.c:5790 msgid ".tc with no label" msgstr ".tc sin etiqueta" -#: config/tc-ppc.c:5112 config/tc-s390.c:1953 +#: config/tc-ppc.c:5818 +#, fuzzy, c-format +#| msgid "this DS form not yet supported" +msgid ".tc with storage class %d not yet supported" +msgstr "aún no se admite esta forma DS" + +#: config/tc-ppc.c:5887 config/tc-s390.c:2187 msgid ".machine stack overflow" msgstr "desbordamiento de pila en .machine" -#: config/tc-ppc.c:5119 config/tc-s390.c:1964 +#: config/tc-ppc.c:5894 config/tc-s390.c:2198 msgid ".machine stack underflow" msgstr "desbordamiento por debajo de la pila en .machine" -#: config/tc-ppc.c:5126 config/tc-s390.c:1976 +#: config/tc-ppc.c:5936 config/tc-s390.c:2210 #, c-format msgid "invalid machine `%s'" msgstr "máquina no válida «%s»" -#: config/tc-ppc.c:5158 -msgid "no previous section to return to, ignored." -msgstr "ninguna sección anterior para devolver, descartada." - -#: config/tc-ppc.c:5431 -#, c-format -msgid "length of .comm \"%s\" is already %ld. Not changed to %ld." -msgstr "longitud de .comm «%s» ya es %ld. No modificado a %ld." - -#. Section Contents -#. unknown -#: config/tc-ppc.c:5559 -msgid "unsupported section attribute -- 'a'" -msgstr "atributo seccional no apoyado ~ 'a'" - -#: config/tc-ppc.c:5742 +#: config/tc-ppc.c:5981 msgid "bad symbol suffix" -msgstr "sufijo simbólico equivocado" +msgstr "sufijo de símbolo incorrecto" -#: config/tc-ppc.c:5835 +#: config/tc-ppc.c:6080 msgid "unrecognized symbol suffix" msgstr "símbolo sufijo no reconocido" -#: config/tc-ppc.c:5922 -msgid "two .function pseudo-ops with no intervening .ef" -msgstr "dos pseudo-operadores .function sin un .ef que intervenga" - -#: config/tc-ppc.c:5935 +#: config/tc-ppc.c:6168 msgid ".ef with no preceding .function" msgstr ".ef sin un .function precedente" -#: config/tc-ppc.c:6064 +#: config/tc-ppc.c:6307 #, c-format msgid "warning: symbol %s has no csect" msgstr "aviso: el símbolo %s no tiene csect" -#: config/tc-ppc.c:6326 +#: config/tc-ppc.c:6639 msgid "symbol in .toc does not match any .tc" msgstr "el símbolo en .toc no coincide con ningún .tc" -#: config/tc-ppc.c:6956 +#: config/tc-ppc.c:7395 #, c-format msgid "%s unsupported as instruction fixup" msgstr "%s no admitido como instrucción corregida" -#: config/tc-ppc.c:7030 +#: config/tc-ppc.c:7494 #, c-format msgid "unsupported relocation against %s" msgstr "no se admite la reubicación contra %s" -#: config/tc-ppc.c:7175 +#: config/tc-ppc.c:7656 +#, c-format +msgid "R_TLSML relocation doesn't target a TOC entry named \"_$TLSML\": %s" +msgstr "" + +#: config/tc-ppc.c:7676 #, c-format msgid "Gas failure, reloc value %d\n" msgstr "Fallo de gas, valor reubicado %d\n" +#: config/tc-pru.c:309 +msgid "expecting opcode string in self test mode" +msgstr "esperando cadena operacional de código en modo de prueba" + +#: config/tc-pru.c:311 +#, c-format +msgid "assembly 0x%08x, expected %s" +msgstr "ensambla 0x%08x, esperado %s" + +#: config/tc-pru.c:572 +#, c-format +msgid "immediate value 0x%x truncated to 0x%x" +msgstr "valor inmediato 0x%x truncado a 0x%x" + +#: config/tc-pru.c:598 +#, c-format +msgid "call target address 0x%08x out of range 0x%08x to 0x%08x" +msgstr "llama dirección destino 0x%08x fuera del límite 0x%08x a 0x%08x" + #: config/tc-pru.c:603 #, c-format msgid "quick branch offset %d out of range %d to %d" -msgstr "ramificación rápida de desplazamiento%d fuera de límite %d a %d" +msgstr "ramificación rápida de desplazamiento%d fuera de rango %d a %d" + +#: config/tc-pru.c:608 +#, c-format +msgid "%s offset %d out of range %d to %d" +msgstr "%s desplazamiento %d fuera de rango %d a %d" + +#: config/tc-pru.c:613 +#, c-format +msgid "immediate value %d out of range %d to %d" +msgstr "valor %d inmediato fuera de rango %d a %d" #: config/tc-pru.c:618 #, c-format msgid "immediate value %llu out of range %u to %lu" -msgstr "valor inmediato %llu fuera de límite desde %u hasta %lu" +msgstr "valor inmediato %llu fuera de rango desde %u hasta %lu" + +#: config/tc-pru.c:623 config/tc-pru.c:628 +#, c-format +msgid "immediate value %u out of range %u to %u" +msgstr "valor inmediato %u fuera de rango desde %u hasta %u" -#: config/tc-pru.c:698 +#: config/tc-pru.c:633 +msgid "overflow in immediate argument" +msgstr "sobredesbordamiento dentro de argumento inmediato" + +#: config/tc-pru.c:668 +msgid "cannot create 64-bit relocation" +msgstr "no puede crear datos reubicantes de 64-bit" + +#: config/tc-pru.c:697 msgid "unexpected PC relative expression" msgstr "expresión relativa PC inesperada" -#: config/tc-pru.c:735 config/tc-pru.c:742 +#: config/tc-pru.c:734 config/tc-pru.c:741 msgid "residual low bits in pmem diff relocation" msgstr "" -#: config/tc-pru.c:935 config/tc-pru.c:968 +#: config/tc-pru.c:862 +msgid "can't create relocation" +msgstr "no puede crear reubicación" + +#: config/tc-pru.c:938 config/tc-pru.c:971 #, c-format msgid "trailing garbage after expression: %s" msgstr "arrastrando basura tras expresión: %s" -#: config/tc-pru.c:940 +#: config/tc-pru.c:943 #, c-format msgid "expected expression, got %s" msgstr "expresión esperada, obtuvo %s" -#: config/tc-pru.c:973 +#: config/tc-pru.c:976 #, c-format msgid "expected constant expression, got %s" msgstr "expresión constante esperada, obtuvo %s" -#: config/tc-pru.c:1026 +#: config/tc-pru.c:996 config/tc-pru.c:1016 config/tc-pru.c:1043 +#: config/tc-pru.c:1062 config/tc-pru.c:1076 +#, c-format +msgid "unknown register %s" +msgstr "registro desconocido %s" + +#: config/tc-pru.c:1029 msgid "data transfer register cannot be halfword" msgstr "registro de transferencia de datos no puede ser mitad de palabra" -#: config/tc-pru.c:1045 +#: config/tc-pru.c:1048 msgid "destination register must be full-word" msgstr "registro destino debe ser palabra completa" -#: config/tc-pru.c:1077 +#: config/tc-pru.c:1080 #, c-format msgid "cannot use partial register %s for addressing" msgstr "no se puede utilizar registro %s parcial para direccionamiento" -#: config/tc-pru.c:1110 +#: config/tc-pru.c:1093 +#, fuzzy, c-format +#| msgid "value too large for 2-byte field" +msgid "value %lu is too large for a byte operand" +msgstr "valor demasiado grande para un campo de 2 bytes" + +#: config/tc-pru.c:1115 #, c-format msgid "loop count constant %ld is out of range [1..%d]" msgstr "conteo constante de bucle %ld está fuera del rango [1..%d]" -#: config/tc-pru.c:1209 config/tc-pru.c:1235 +#: config/tc-pru.c:1215 config/tc-pru.c:1241 #, c-format msgid "byte count constant %ld is out of range [1..%d]" msgstr "conteo byte constante %ld está fuera del rango [1..%d]" -#: config/tc-pru.c:1216 config/tc-pru.c:1242 +#: config/tc-pru.c:1222 config/tc-pru.c:1248 msgid "only r0 can be used as byte count register" msgstr "sóla r0 pueden ser utilizado como registro de conteo de byte" -#: config/tc-pru.c:1218 config/tc-pru.c:1244 +#: config/tc-pru.c:1224 config/tc-pru.c:1250 msgid "only r0.bX byte fields of r0 can be used as byte count" msgstr "" -#: config/tc-pru.c:1257 +#: config/tc-pru.c:1263 #, c-format msgid "invalid constant table offset %ld" msgstr "desplazamiento distribuido contante inválido %ld" -#: config/tc-pru.c:1268 +#: config/tc-pru.c:1274 #, c-format msgid "invalid WakeOnStatus %ld" msgstr "invalida WakeOnStatus %ld" -#: config/tc-pru.c:1279 +#: config/tc-pru.c:1285 #, c-format msgid "invalid XFR WideBus Address %ld" msgstr "invalida Dirección XFR WideBus %ld" -#: config/tc-pru.c:1537 +#: config/tc-pru.c:1318 config/tc-pru.c:1343 config/tc-pru.c:1363 +#, c-format +msgid "badly formed expression near %s" +msgstr "expresión incorrectamente formada cercana a %s" + +#: config/tc-pru.c:1389 +#, c-format +msgid "expecting %c near %s" +msgstr "esperando %c cerca de %s" + +#: config/tc-pru.c:1553 #, c-format msgid "" "PRU options:\n" @@ -14751,1116 +16999,1657 @@ msgid "" " -mno-link-relax don't generate relocations for linker relaxation.\n" msgstr "" -#: config/tc-pru.c:1831 +#. Unrecognised instruction - error. +#: config/tc-pru.c:1724 +#, c-format +msgid "unrecognised instruction %s" +msgstr "instrucción %s no reconocida" + +#: config/tc-pru.c:1781 +#, c-format +msgid "can't represent relocation type %s" +msgstr "no puede representar tipo %s reubicable" + +#: config/tc-pru.c:1827 #, c-format msgid "Label \"%s\" matches a CPU register name" msgstr "Etiqueta «%s» coincide un nombre de registro de CPU" -#: config/tc-riscv.c:422 +#: config/tc-riscv.c:237 #, c-format -msgid "internal error: can't hash `%s': %s" -msgstr "error interno: no se puede dispersar «%s»: %s" +msgid "unknown default privileged spec `%s' set by -mpriv-spec or --with-priv-spec" +msgstr "" -#: config/tc-riscv.c:503 +#. Still can not find the privileged spec class. +#: config/tc-riscv.c:259 #, c-format -msgid "internal: bad RISC-V opcode (mask error): %s %s" -msgstr "interno: código operacional RISC-V equivocado (error de máscara): %s %s" +msgid "unknown default privileged spec `%d.%d.%d' set by privileged elf attributes" +msgstr "" -#: config/tc-riscv.c:542 +#: config/tc-riscv.c:357 +msgid "the architecture string of -march and elf architecture attributes cannot be empty" +msgstr "" + +#: config/tc-riscv.c:920 config/tc-riscv.c:981 config/tc-riscv.c:1807 +#, fuzzy, c-format +#| msgid "internal: unhandled label %s" +msgid "internal: duplicate %s" +msgstr "interno: etiqueta %s sin manipular" + +#: config/tc-riscv.c:1167 +#, fuzzy, c-format +#| msgid "internal: bad RISC-V opcode (mask error): %s %s" +msgid "internal: bad RISC-V CSR class (0x%x)" +msgstr "interno: código operacional RISC-V incorrecto (error de máscara): %s %s" + +#: config/tc-riscv.c:1173 #, c-format -msgid "internal: bad RISC-V opcode (unknown operand type `C%c'): %s %s" -msgstr "interno: código operacional RISC-V equivocado (tipo de operando `C%c' desconocido): %s %s" +msgid "invalid CSR `%s', needs rv32i extension" +msgstr "" -#: config/tc-riscv.c:577 +#: config/tc-riscv.c:1175 #, c-format -msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s" -msgstr "interno: código operacional RISC-V equivocado (tipo desconocido de operando `%c'): %s %s" +msgid "invalid CSR `%s', needs `h' extension" +msgstr "" + +#: config/tc-riscv.c:1179 +#, c-format +msgid "invalid CSR `%s', needs `%s' extension" +msgstr "" -#: config/tc-riscv.c:585 +#: config/tc-riscv.c:1202 #, c-format -msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s" -msgstr "interno: código operacional RISC-V equivocado (varios bit 0x%lx indefinidos): %s %s" +msgid "invalid CSR `%s' for the privileged spec `%s'" +msgstr "" + +#: config/tc-riscv.c:1452 +msgid "cannot find `}' for cm.push/cm.pop" +msgstr "" -#: config/tc-riscv.c:707 +#: config/tc-riscv.c:1488 #, c-format -msgid "Unsupported RISC-V relocation number %d" +msgid "internal: bad RISC-V opcode (mask error): %s %s" +msgstr "interno: código operacional RISC-V incorrecto (error de máscara): %s %s" + +#: config/tc-riscv.c:1767 +#, fuzzy, c-format +#| msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s" +msgid "internal: bad RISC-V opcode (unknown operand type `%s'): %s %s" +msgstr "interno: código operacional RISC-V incorrecto (tipo desconocido de operando `%c'): %s %s" + +#: config/tc-riscv.c:1776 +#, fuzzy, c-format +#| msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s" +msgid "internal: bad RISC-V opcode (bits %#llx undefined or invalid): %s %s" +msgstr "interno: código operacional RISC-V incorrecto (varios bit 0x%lx indefinidos): %s %s" + +#: config/tc-riscv.c:1818 +#, fuzzy +#| msgid "Broken assembler. No assembly attempted." +msgid "internal: broken assembler. No assembly attempted" +msgstr "Ensamblador descompuesto. No se intentó ensamblar." + +#: config/tc-riscv.c:1993 +#, fuzzy, c-format +#| msgid "Unsupported RISC-V relocation number %d" +msgid "internal: unsupported RISC-V relocation number %d" msgstr "No admitido número de reubicación RISC-V %d" -#: config/tc-riscv.c:794 -msgid "internal error: invalid macro" +#: config/tc-riscv.c:2109 +#, fuzzy, c-format +#| msgid "internal error: invalid macro" +msgid "internal: invalid macro argument `%s'" msgstr "error interno: macro inválido" -#: config/tc-riscv.c:823 config/tc-riscv.c:890 +#: config/tc-riscv.c:2159 config/tc-riscv.c:2237 msgid "unsupported large constant" msgstr "no se admite la constante large" -#: config/tc-riscv.c:825 -#, c-format -msgid "Instruction %s requires absolute expression" +#: config/tc-riscv.c:2161 +#, fuzzy, c-format +#| msgid "unknown DSP `%s'" +msgid "unknown CSR `%s'" +msgstr "desconoce DSP `%s'" + +#: config/tc-riscv.c:2164 +#, fuzzy, c-format +#| msgid "Instruction %s requires absolute expression" +msgid "instruction %s requires absolute expression" msgstr "La instrucción %s requiere una expresión absoluta" -#: config/tc-riscv.c:1046 -#, c-format -msgid "Macro %s not implemented" +#: config/tc-riscv.c:2332 +msgid "must provide temp if destination overlaps mask" +msgstr "" + +#: config/tc-riscv.c:2425 +#, fuzzy, c-format +#| msgid "Macro %s not implemented" +msgid "internal: macro %s not implemented" msgstr "Macro %s no implementada" -#: config/tc-riscv.c:1471 -#, c-format -msgid "bad RVC field specifier 'C%c'\n" -msgstr "equivocación de especificador 'C%c' de campo RVC\n" +#: config/tc-riscv.c:2627 config/tc-riscv.c:2687 +#, fuzzy +#| msgid "multiple movx specifications" +msgid "multiple vsew constants" +msgstr "especificaciones movx múltiples" + +#: config/tc-riscv.c:2635 +#, fuzzy +#| msgid "invalid constant" +msgid "multiple vlmul constants" +msgstr "constante no válida" + +#: config/tc-riscv.c:2643 +#, fuzzy +#| msgid "invalid constant" +msgid "multiple vta constants" +msgstr "constante no válida" + +#: config/tc-riscv.c:2651 +#, fuzzy +#| msgid "invalid constant" +msgid "multiple vma constants" +msgstr "constante no válida" + +#: config/tc-riscv.c:2697 +#, fuzzy +#| msgid "shift must be constant" +msgid "multiple vlen constants" +msgstr "el desplazamiento debe ser constante" + +#: config/tc-riscv.c:2706 +#, fuzzy +#| msgid "multiple predicates on same line" +msgid "multiple vediv constants" +msgstr "predicados múltiples en la misma línea" + +#. Reset error message of the previous round. +#: config/tc-riscv.c:2872 +msgid "illegal operands" +msgstr "operandos ilegales" -#: config/tc-riscv.c:1494 config/tc-riscv.c:1505 +#: config/tc-riscv.c:2923 #, c-format -msgid "Improper shift amount (%lu)" +msgid "read-only CSR is written `%s'" +msgstr "" + +#: config/tc-riscv.c:2933 +#, fuzzy +#| msgid "illegal opcode %s for mcu %s" +msgid "illegal opcode for zve32x" +msgstr "código operacional %s ilegal para el mcu %s" + +#: config/tc-riscv.c:3185 +msgid "bad value for compressed funct6 field, value must be 0...63" +msgstr "" + +#: config/tc-riscv.c:3200 +msgid "bad value for compressed funct4 field, value must be 0...15" +msgstr "" + +#: config/tc-riscv.c:3215 +msgid "bad value for compressed funct3 field, value must be 0...7" +msgstr "" + +#: config/tc-riscv.c:3230 +msgid "bad value for compressed funct2 field, value must be 0...3" +msgstr "" + +#: config/tc-riscv.c:3323 +msgid "bad value for vsetivli immediate field, value must be 0..1023" +msgstr "" + +#: config/tc-riscv.c:3335 +msgid "bad value for vsetvli immediate field, value must be 0..2047" +msgstr "" + +#: config/tc-riscv.c:3348 +msgid "bad value for vector immediate field, value must be -16...15" +msgstr "" + +#: config/tc-riscv.c:3360 +msgid "bad value for vector immediate field, value must be 0...31" +msgstr "" + +#: config/tc-riscv.c:3372 +msgid "bad value for vector immediate field, value must be -15...16" +msgstr "" + +#: config/tc-riscv.c:3384 +msgid "bad value for vector immediate field, value must be 0...63" +msgstr "" + +#: config/tc-riscv.c:3447 config/tc-riscv.c:3458 +#, fuzzy, c-format +#| msgid "Improper shift amount (%lu)" +msgid "improper shift amount (%<PRIu64>)" msgstr "Cantidad de desplazamiento impropia (%lu)" -#: config/tc-riscv.c:1516 -#, c-format -msgid "Improper CSRxI immediate (%lu)" +#: config/tc-riscv.c:3469 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "improper CSRxI immediate (%<PRIu64>)" msgstr "Inmediato CSRxI impropio (%lu)" -#: config/tc-riscv.c:1531 -#, c-format -msgid "Improper CSR address (%lu)" +#: config/tc-riscv.c:3486 +#, fuzzy, c-format +#| msgid "Improper CSR address (%lu)" +msgid "improper CSR address (%<PRIu64>)" msgstr "Dirección CSR impropia (%lu)" -#: config/tc-riscv.c:1688 +#: config/tc-riscv.c:3666 msgid "lui expression not in range 0..1048575" msgstr "expresión lui no en el límite 0..1048575" -#: config/tc-riscv.c:1716 -#, c-format -msgid "internal error: bad argument type %c" -msgstr "error interno: tipo de argumento equivocado %c" +#: config/tc-riscv.c:3699 +msgid "bad value for opcode field, value must be 0...127 and lower 2 bits must be 0x3" +msgstr "" -#: config/tc-riscv.c:1721 -msgid "illegal operands" -msgstr "operandos ilegales" +#: config/tc-riscv.c:3715 +msgid "bad value for opcode field, value must be 0...2" +msgstr "" -#: config/tc-riscv.c:2056 -#, c-format -msgid "internal error: bad CFA value #%d" -msgstr "error interno: valor CFA equivocado nº%d" +#: config/tc-riscv.c:3738 +msgid "bad value for funct7 field, value must be 0...127" +msgstr "" -#: config/tc-riscv.c:2137 -#, c-format -msgid "internal error: bad relocation #%d" -msgstr "error interno: reubicación equivocada nº%d" +#: config/tc-riscv.c:3753 +msgid "bad value for funct3 field, value must be 0...7" +msgstr "" -#: config/tc-riscv.c:2142 -msgid "unsupported symbol subtraction" -msgstr "sustracción simbólica no mantenida" +#: config/tc-riscv.c:3768 +msgid "bad value for funct2 field, value must be 0...3" +msgstr "" -#: config/tc-riscv.c:2238 -msgid ".option pop with no .option push" -msgstr "opción .option pop sin opción .option push" +#: config/tc-riscv.c:3786 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "Improper bs immediate (%lu)" +msgstr "Inmediato CSRxI impropio (%lu)" -#: config/tc-riscv.c:2248 -#, c-format -msgid "Unrecognized .option directive: %s\n" -msgstr "No reconoció directiva .option: %s\n" +#: config/tc-riscv.c:3797 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "Improper rnum immediate (%lu)" +msgstr "Inmediato CSRxI impropio (%lu)" -#: config/tc-riscv.c:2268 -#, c-format -msgid "Unsupported use of %s" -msgstr "No se admite el uso de %s" +#: config/tc-riscv.c:3829 +#, fuzzy, c-format +#| msgid "Improper position (%lu)" +msgid "improper prefetch offset (%ld)" +msgstr "Posición impropia (%lu)" + +#: config/tc-riscv.c:3857 +msgid "bad fli constant operand, supported constants must be in decimal or hexadecimal floating-point literal form" +msgstr "" + +#: config/tc-riscv.c:3988 +msgid "bad value for th.vsetvli immediate field, value must be 0..2047" +msgstr "" + +#: config/tc-riscv.c:3999 +#, fuzzy, c-format +#| msgid "Unexpected token `%s'" +msgid "unexpected literal (%s)" +msgstr "Elemento `%s' inesperado" + +#: config/tc-riscv.c:4021 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "improper immediate value (%<PRIu64>)" +msgstr "Inmediato CSRxI impropio (%lu)" + +#: config/tc-riscv.c:4027 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "improper immediate value (%<PRIi64>)" +msgstr "Inmediato CSRxI impropio (%lu)" -#: config/tc-riscv.c:2411 +#: config/tc-riscv.c:4142 #, c-format -msgid "cannot represent %s relocation in object file" -msgstr "no puede representar reubicación %s en fichero objeto" +msgid "bad value for <bit-%s-%s> field, value must be 0...%d" +msgstr "" + +#: config/tc-riscv.c:4188 +#, fuzzy, c-format +#| msgid "internal: unknown operand type: %s %s" +msgid "internal: unknown argument type `%s'" +msgstr "interno: tipo operando desconocido: %s %s" + +#: config/tc-riscv.c:4240 +#, fuzzy +#| msgid "alignment must be constant" +msgid "values must be constant" +msgstr "el alineamiento debe ser constante" + +#: config/tc-riscv.c:4247 +#, fuzzy +#| msgid "unrecognized flag" +msgid "unrecognized values" +msgstr "marca no reconocida" + +#: config/tc-riscv.c:4255 config/tc-riscv.c:4266 config/tc-riscv.c:4280 +#, fuzzy +#| msgid "Internal Error: bad instruction length" +msgid "value conflicts with instruction length" +msgstr "Error interno: longitud incorrecta de instrucción" -#: config/tc-riscv.c:2552 +#: config/tc-riscv.c:4820 +#, fuzzy +#| msgid "too many operands" +msgid "too many pcrel_hi" +msgstr "demasiados operandos" + +#: config/tc-riscv.c:4866 +#, fuzzy, c-format +#| msgid "internal error: bad relocation #%d" +msgid "internal: bad relocation #%d" +msgstr "error interno: reubicación incorrecta nº%d" + +#: config/tc-riscv.c:5369 #, c-format msgid "" "RISC-V options:\n" -" -fpic generate position-independent code\n" -" -fno-pic don't generate position-independent code (default)\n" -" -march=ISA set the RISC-V architecture\n" -" -mabi=ABI set the RISC-V ABI\n" +" -fpic or -fPIC generate position-independent code\n" +" -fno-pic don't generate position-independent code (default)\n" +" -march=ISA set the RISC-V architecture\n" +" -misa-spec=ISAspec set the RISC-V ISA spec (2.2, 20190608, 20191213)\n" +" -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12)\n" +" -mabi=ABI set the RISC-V ABI\n" +" -mrelax enable relax (default)\n" +" -mno-relax disable relax\n" +" -march-attr generate RISC-V arch attribute\n" +" -mno-arch-attr don't generate RISC-V arch attribute\n" +" -mcsr-check enable the csr ISA and privilege spec version checks\n" +" -mno-csr-check disable the csr ISA and privilege spec version checks (default)\n" +" -mbig-endian assemble for big-endian\n" +" -mlittle-endian assemble for little-endian\n" msgstr "" -"RISC-V con opciones:\n" -" -fpic generacódigo independente de posión\n" -" -fno-pic no genera código independiente de posición (predet.)\n" -" -march=ISA establece la arquitectura RISC-V\n" -" -mabi=ABI establece el ABI RISC-V\n" -#: config/tc-riscv.c:2579 +#: config/tc-riscv.c:5414 #, c-format msgid "unknown register `%s'" msgstr "registro desconocido «%s»" -#: config/tc-riscv.c:2600 -#, c-format -msgid "non-constant .%cleb128 is not supported" +#: config/tc-riscv.c:5449 +#, fuzzy +#| msgid "non-constant .%cleb128 is not supported" +msgid "non-constant .sleb128 is not supported" msgstr "no constante. %cleb128 no está apoyado" -#: config/tc-rl78.c:214 +#: config/tc-riscv.c:5451 +msgid ".uleb128 only supports constant or subtract expressions" +msgstr "" + +#: config/tc-riscv.c:5553 +#, fuzzy, c-format +#| msgid "internal: bad RISC-V opcode (mask error): %s %s" +msgid "internal: bad RISC-V privileged spec (%s)" +msgstr "interno: código operacional RISC-V incorrecto (error de máscara): %s %s" + +#: config/tc-riscv.c:5706 +#, fuzzy +#| msgid "\".option\" directive must appear before any instructions" +msgid "architecture elf attributes must set before any instructions" +msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción" + +#: config/tc-riscv.c:5724 +#, fuzzy +#| msgid "\".option\" directive must appear before any instructions" +msgid "privileged elf attributes must set before any instructions" +msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción" + +#: config/tc-riscv.c:5746 +#, fuzzy +#| msgid "Missing symbol name in directive" +msgid "missing symbol name for .variant_cc directive" +msgstr "Ausente nombre de símbolo en la directiva" + +#: config/tc-rl78.c:213 msgid "16-bit relocation used in 8-bit operand" msgstr "la reubicación de 16-bit utilizada en operando de 8-bit" -#: config/tc-rl78.c:218 +#: config/tc-rl78.c:217 msgid "8-bit relocation used in 16-bit operand" msgstr "utilizaba reubicación de 8-bit en operando 16-bit" -#: config/tc-rl78.c:244 config/tc-rx.c:882 +#: config/tc-rl78.c:243 config/tc-rx.c:875 #, c-format msgid "Value %d doesn't fit in unsigned %d-bit field" msgstr "El valor %d no cabe en el campo de %d bit sin signo" -#: config/tc-rl78.c:250 config/tc-rx.c:888 +#: config/tc-rl78.c:249 config/tc-rx.c:881 #, c-format msgid "Value %d doesn't fit in signed %d-bit field" msgstr "El valor %d no cabe en el campo de %d bit con signo" -#: config/tc-rl78.c:368 +#: config/tc-rl78.c:367 #, c-format msgid " RL78 specific command line options:\n" msgstr " Opciones de línea de mandatos específicas de RL78:\n" -#: config/tc-rl78.c:369 +#: config/tc-rl78.c:368 #, c-format msgid " --mrelax Enable link time relaxation\n" msgstr " -mrelax Activa relajación temporal enlazada\n" -#: config/tc-rl78.c:370 +#: config/tc-rl78.c:369 #, c-format msgid " --mg10 Enable support for G10 variant\n" msgstr " --mg10 Activa compatibilidad para variante G10\n" -#: config/tc-rl78.c:371 +#: config/tc-rl78.c:370 #, c-format msgid " --mg13 Selects the G13 core.\n" msgstr " --mg13 Selecciona el core G13.\n" -#: config/tc-rl78.c:372 +#: config/tc-rl78.c:371 #, c-format msgid " --mg14 Selects the G14 core [default]\n" msgstr " --mg14 Selecciona el núcleo G14 [predet.]\n" -#: config/tc-rl78.c:373 +#: config/tc-rl78.c:372 #, c-format msgid " --mrl78 Alias for --mg14\n" msgstr " --mrl78 Alias para --mg14\n" -#: config/tc-rl78.c:374 +#: config/tc-rl78.c:373 #, c-format msgid " --m32bit-doubles [default]\n" msgstr " --m32bit-doubles [predet.]\n" -#: config/tc-rl78.c:375 +#: config/tc-rl78.c:374 #, c-format msgid " --m64bit-doubles Source code uses 64-bit doubles\n" msgstr " --m64bit-doubles Código fuente utiliza dobles de 64-bit\n" -#: config/tc-rl78.c:451 +#: config/tc-rl78.c:439 #, c-format msgid "%%%s() must be outermost term in expression" msgstr "%%%s() debe ser término como mucho en expresión" -#: config/tc-rl78.c:679 config/tc-rx.c:2220 +#: config/tc-rl78.c:667 config/tc-rx.c:2242 #, c-format msgid "unsupported constant size %d\n" msgstr "no se admite el tamaño de constante %d\n" -#: config/tc-rl78.c:695 +#: config/tc-rl78.c:683 #, c-format msgid "%%hi16/%%lo16 only applies to .short or .hword" msgstr "" -#: config/tc-rl78.c:705 +#: config/tc-rl78.c:693 #, c-format msgid "%%hi8 only applies to .byte" msgstr "%%hi8 solo aplica a .byte" -#: config/tc-rl78.c:717 config/tc-rx.c:2227 +#: config/tc-rl78.c:705 config/tc-rx.c:2249 msgid "difference of two symbols only supported with .long, .short, or .byte" -msgstr "sólo se admite la diferencia de dos símbolos con .long .short o .byte" +msgstr "solo se admite la diferencia de dos símbolos con .long .short o .byte" -#: config/tc-rl78.c:1239 config/tc-rx.c:2154 +#: config/tc-rl78.c:1226 config/tc-rx.c:2176 #, c-format msgid "bad frag at %p : fix %ld addr %ld %ld \n" -msgstr "fragmento equivocado en %p: fix %ld dir %ld %ld \n" +msgstr "fragmento incorrecto en %p: fix %ld dir %ld %ld \n" -#: config/tc-rl78.c:1455 +#: config/tc-rl78.c:1442 #, c-format msgid "value of %ld too large for 8-bit branch" msgstr "valor %ld es demasiado grande para la ramificación de 8-bit relativa al PC" -#: config/tc-rl78.c:1466 +#: config/tc-rl78.c:1453 #, c-format msgid "value of %ld too large for 16-bit branch" msgstr "valor de %ld es muy grande para ramificar 16-bit" -#: config/tc-rl78.c:1515 config/tc-rx.c:2419 +#: config/tc-rl78.c:1502 config/tc-rx.c:2441 #, c-format msgid "Unknown reloc in md_apply_fix: %s" msgstr "Reubicación desconocida en md_apply_fix: %s" -#: config/tc-rx.c:190 +#: config/tc-rx.c:194 #, c-format msgid "unrecognised RX CPU type %s" msgstr "no reconocido el tipo de CPU RX %s" -#: config/tc-rx.c:205 +#: config/tc-rx.c:209 #, c-format msgid " RX specific command line options:\n" msgstr " Opciones de línea de mandatos específicas de RX:\n" -#: config/tc-rx.c:206 +#: config/tc-rx.c:210 #, c-format msgid " --mbig-endian-data\n" msgstr " --mbig-endian-data\n" -#: config/tc-rx.c:207 +#: config/tc-rx.c:211 #, c-format msgid " --mlittle-endian-data [default]\n" msgstr " --mlittle-endian-data [por defecto]\n" -#: config/tc-rx.c:208 +#: config/tc-rx.c:212 #, c-format msgid " --m32bit-doubles [default]\n" msgstr " --m32bit-doubles [por defecto]\n" -#: config/tc-rx.c:209 +#: config/tc-rx.c:213 #, c-format msgid " --m64bit-doubles\n" msgstr " --m64bit-doubles\n" -#: config/tc-rx.c:210 +#: config/tc-rx.c:214 #, c-format msgid " --muse-conventional-section-names\n" msgstr " --muse-conventional-section-names\n" -#: config/tc-rx.c:211 +#: config/tc-rx.c:215 #, c-format msgid " --muse-renesas-section-names [default]\n" msgstr " --muse-renesas-section-names [por defecto]\n" -#: config/tc-rx.c:212 +#: config/tc-rx.c:216 #, c-format msgid " --msmall-data-limit\n" msgstr " --msmall-data-limit\n" -#: config/tc-rx.c:213 +#: config/tc-rx.c:217 #, c-format msgid " --mrelax\n" msgstr " --mrelax\n" -#: config/tc-rx.c:214 +#: config/tc-rx.c:218 #, c-format msgid " --mpid\n" msgstr " --mpid\n" -#: config/tc-rx.c:215 +#: config/tc-rx.c:219 #, c-format msgid " --mint-register=<value>\n" msgstr " --mint-register=<valor>\n" -#: config/tc-rx.c:216 -#, c-format -msgid " --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n" +#: config/tc-rx.c:220 +#, fuzzy, c-format +#| msgid " --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n" +msgid " --mcpu=<rx100|rx200|rx600|rx610|rxv2|rxv3|rxv3-dfpu>\n" msgstr " --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n" -#: config/tc-rx.c:217 +#: config/tc-rx.c:221 #, c-format msgid " --mno-allow-string-insns" msgstr " --mno-allow-string-insns" -#: config/tc-rx.c:297 +#: config/tc-rx.c:291 msgid "no filename following .INCLUDE pseudo-op" msgstr "no hay un nombre de fichero a continuación del pseudo-operador .INCLUDE" -#: config/tc-rx.c:400 +#: config/tc-rx.c:392 #, c-format msgid "unable to locate include file: %s" msgstr "no se puede localizar el fichero de inclusión: %s" -#: config/tc-rx.c:451 +#: config/tc-rx.c:443 #, c-format msgid "unrecognised alignment value in .SECTION directive: %s" msgstr "no reconocido el valor de alineamiento en la directiva .SECTION: %s" -#: config/tc-rx.c:468 +#: config/tc-rx.c:460 #, c-format msgid "unknown parameter following .SECTION directive: %s" msgstr "parámetro desconocido a continuación de la directiva .SECTION: %s" -#: config/tc-rx.c:554 +#: config/tc-rx.c:546 msgid "expecting either ON or OFF after .list" msgstr "se espera ON u OFF tras .list" -#: config/tc-rx.c:590 +#: config/tc-rx.c:582 #, c-format msgid "The \".%s\" pseudo-op is not implemented\n" msgstr "No se admite el pseudo-operador \".%s\"\n" -#: config/tc-rx.c:1095 +#: config/tc-rx.c:954 config/tc-rx.c:956 +#, fuzzy, c-format +#| msgid "value %ld out of range" +msgid "Value %d and %d out of range" +msgstr "valora %ld fuera de rango" + +#: config/tc-rx.c:1111 msgid "The .DEFINE pseudo-op is not implemented" msgstr "No se admite el pseudo-operador .DEFINE" -#: config/tc-rx.c:1097 +#: config/tc-rx.c:1113 msgid "The .MACRO pseudo-op is not implemented" msgstr "No se admite el pseudo-operador .MACRO" -#: config/tc-rx.c:1099 +#: config/tc-rx.c:1115 msgid "The .BTEQU pseudo-op is not implemented." msgstr "El pseudo-op .BTEQU no está implementado." -#: config/tc-rx.c:2084 +#: config/tc-rx.c:2107 msgid "invalid immediate size" msgstr "tamaño inmediato inválido" -#: config/tc-rx.c:2103 +#: config/tc-rx.c:2126 msgid "invalid immediate field position" msgstr "posición de campo inmediato no válida" -#: config/tc-rx.c:2271 +#: config/tc-rx.c:2293 #, c-format msgid "jump not 3..10 bytes away (is %d)" msgstr "omisión no está a 3..10 bytes (es %d)" -#: config/tc-rx.c:2662 +#: config/tc-rx.c:2684 msgid "Use of an RX string instruction detected in a file being assembled without string instruction support" msgstr "" -#: config/tc-s390.c:238 config/tc-sparc.c:318 +#: config/tc-s12z.c:146 +#, fuzzy +#| msgid "FT32 options:\n" +msgid "" +"\n" +"s12z options:\n" +msgstr "Opciones FT32:\n" + +#: config/tc-s12z.c:147 +msgid " -mreg-prefix=PREFIX set a prefix used to indicate register names (default none)\n" +msgstr "" + +#: config/tc-s12z.c:148 +msgid " -mdollar-hex the prefix '$' instead of '0x' is used to indicate literal hexadecimal constants\n" +msgstr "" + +#: config/tc-s12z.c:315 +#, fuzzy +#| msgid "non-constant expression in \".if\" statement" +msgid "A non-constant expression is not permitted here" +msgstr "expresión en declaración \".if\" no constante" + +#: config/tc-s12z.c:432 +#, fuzzy, c-format +#| msgid "expecting {" +msgid "Expecting '%c'" +msgstr "esperando {" + +#: config/tc-s12z.c:455 +#, fuzzy +#| msgid ": Immediate value in cbcond is out of range." +msgid "An immediate value in a source operand is inappropriate" +msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango." + +#: config/tc-s12z.c:504 config/tc-s12z.c:605 +#, fuzzy +#| msgid "invalid operands for cross-unit op" +msgid "Bad operand for constant offset" +msgstr "operandos inválidos para op de unidades cruzadas" + +#: config/tc-s12z.c:532 config/tc-s12z.c:623 +#, fuzzy +#| msgid "invalid base register for register offset" +msgid "Invalid operand for register offset" +msgstr "registro base inválido para el desplazamiento del registro" + +#: config/tc-s12z.c:638 +#, fuzzy +#| msgid "Invalid register for post/pre increment." +msgid "Invalid register for postdecrement operation" +msgstr "Registro inválido para post/pre incremento." + +#: config/tc-s12z.c:674 +#, fuzzy +#| msgid "Invalid register for post/pre increment." +msgid "Invalid register for preincrement operation" +msgstr "Registro inválido para post/pre incremento." + +#: config/tc-s12z.c:692 +#, fuzzy +#| msgid "Invalid register for post/pre increment." +msgid "Invalid register for predecrement operation" +msgstr "Registro inválido para post/pre incremento." + +#: config/tc-s12z.c:811 +#, fuzzy +#| msgid "Garbage at end of instruction: `%s'." +msgid "Garbage at end of instruction" +msgstr "Basura al final de la instrucción: «%s»." + +#: config/tc-s12z.c:940 +#, fuzzy +#| msgid "Offset out of 16-bit range: %ld." +msgid "Offset is outside of 15 bit range" +msgstr "Desplazamiento fuera del límite de 16-bit: %ld." + +#: config/tc-s12z.c:1056 +msgid "Bad size" +msgstr "" + +#: config/tc-s12z.c:1101 config/tc-s12z.c:1161 config/tc-s12z.c:1223 +#: config/tc-s12z.c:1288 +msgid "BAD MUL" +msgstr "" + +#: config/tc-s12z.c:1428 +#, fuzzy, c-format +#| msgid "Use of r%u as a source register is deprecated when r%u is the destination register." +msgid "Source register for %s is no larger than the destination register" +msgstr "Utilización de r%u como registro origen es obsoleto cuando r%u es el registro destino." + +#: config/tc-s12z.c:1431 +#, fuzzy +#| msgid "invalid source register list" +msgid "The destination and source registers are identical" +msgstr "invalida listado registrador origen" + +#: config/tc-s12z.c:1455 +#, fuzzy, c-format +#| msgid "operand value out of range for instruction" +msgid "Immediate value %ld is out of range for instruction %s" +msgstr "el valor de operando está fuera de rango para la instrucción" + +#: config/tc-s12z.c:1526 +#, fuzzy, c-format +#| msgid "Direct value of %ld is not suitable" +msgid "trap value %ld is not valid" +msgstr "El valor directo de %ld no es adecuado" + +#: config/tc-s12z.c:1966 +#, fuzzy +#| msgid "immediate value out of range, expected range [0, 16]" +msgid "Shift value should be in the range [0,31]" +msgstr "valor inmediato fuera de rango, se esperaba el límite [0, 16]" + +#: config/tc-s12z.c:2013 +#, fuzzy +#| msgid "invalid shift operator" +msgid "Bad shift mode" +msgstr "invalida operador desplazado" + +#: config/tc-s12z.c:2026 +#, fuzzy +#| msgid "Bad .mask directive" +msgid "Bad shift *direction" +msgstr "Directiva .mask incorrecta" + +#: config/tc-s12z.c:2284 +#, fuzzy, c-format +#| msgid "Immediate operand is not allowed for operand %d." +msgid "Immediate operand %ld is inappropriate for size of instruction" +msgstr "No se permite un operando inmediato para el operando %d." + +#: config/tc-s12z.c:2375 config/tc-s12z.c:2444 config/tc-s12z.c:2512 +#, fuzzy, c-format +#| msgid "Invalid register value %s" +msgid "Invalid width value for %s" +msgstr "Valor de registro %s inválido" + +#: config/tc-s12z.c:2388 config/tc-s12z.c:2457 config/tc-s12z.c:2525 +#, fuzzy, c-format +#| msgid "Invalid register value %s" +msgid "Invalid offset value for %s" +msgstr "Valor de registro %s inválido" + +#: config/tc-s12z.c:3822 +#, fuzzy, c-format +#| msgid "Invalid instruction %s" +msgid "Invalid instruction: \"%s\"" +msgstr "Instrucción %s no válida" + +#: config/tc-s12z.c:3823 +#, fuzzy, c-format +#| msgid "invalid segment \"%s\"" +msgid "First invalid token: \"%s\"" +msgstr "segmento no válido «%s»" + +#: config/tc-s390.c:280 config/tc-sparc.c:310 msgid "Invalid default architecture, broken assembler." msgstr "Arquitectura por defecto no válida, ensamblador descompuesto." -#: config/tc-s390.c:373 +#: config/tc-s390.c:426 #, c-format msgid "no such machine extension `%s'" msgstr "no como extensión de máquina «%s»" -#: config/tc-s390.c:384 +#: config/tc-s390.c:437 #, c-format msgid "junk at end of machine string, first unrecognized character is `%c'" msgstr "basura al final de la línea de máquina; el primer carácter inreconocible es «%c»" -#: config/tc-s390.c:451 config/tc-sparc.c:531 +#: config/tc-s390.c:512 config/tc-sparc.c:489 #, c-format msgid "invalid architecture -A%s" msgstr "arquitectura no válida -A%s" -#: config/tc-s390.c:474 +#: config/tc-s390.c:535 #, c-format msgid "" -" S390 options:\n" -" -mregnames Allow symbolic names for registers\n" -" -mwarn-areg-zero Warn about zero base/index registers\n" -" -mno-regnames Do not allow symbolic names for registers\n" -" -m31 Set file format to 31 bit format\n" -" -m64 Set file format to 64 bit format\n" -msgstr "" -" Opciones de S390:\n" -" -mregnames Permite nombres simbólicos para los registros\n" -" -mwarn-areg-zero Avisa sobre registros con base/índice cero\n" -" -mno-regnames No permite nombres símbólicos para los registros\n" -" -m31 Establece el formato del fichero al formato 31 bit\n" -" -m64 Establece el formato del fichero al formato 64 bit\n" - -#: config/tc-s390.c:481 -#, c-format +"S390 options:\n" +" -m31 generate 31-bit file format (31/32 bit word size)\n" +" -m64 generate 64-bit file format (64 bit word size)\n" +" -mesa assemble for Enterprise System Architecture/390\n" +" -mzarch assemble for z/Architecture\n" +" -march=<processor> assemble for processor <processor>\n" +" -mregnames allow symbolic names for registers\n" +" -mno-regnames do not allow symbolic names for registers\n" +" -mwarn-areg-zero warn about base/index register zero\n" +" -mwarn-regtype-mismatch=strict\n" +" warn about register name type mismatches\n" +" -mwarn-regtype-mismatch=relaxed\n" +" warn about register name type mismatches,\n" +" but allow FPR and VR to be used interchangeably\n" +" -mno-warn-regtype-mismatch\n" +" do not warn about register name type mismatches\n" +msgstr "" + +#: config/tc-s390.c:553 +#, fuzzy, c-format +#| msgid "" +#| " -V print assembler version number\n" +#| " -Qy, -Qn ignored\n" msgid "" -" -V print assembler version number\n" -" -Qy, -Qn ignored\n" +" -V print assembler version number\n" +" -Qy, -Qn ignored\n" msgstr "" " -V muestra el número de versión del ensamblador\n" " -Qy, -Qn se descarta\n" -#: config/tc-s390.c:565 -msgid "The 64 bit file format is used without esame instructions." +#: config/tc-s390.c:556 +#, c-format +msgid "" +"Deprecated S390 options:\n" +" -Aesa assemble for processor IBM S/390 G5 (g5/arch3)\n" +" -Aesame assemble for processor IBM zSeries 900 (z900/arch5)\n" +msgstr "" + +#: config/tc-s390.c:635 +#, fuzzy +#| msgid "The 64 bit file format is used without esame instructions." +msgid "The 64-bit file format is used without z/Architecture instructions." msgstr "Se usa el formato de fichero de 64 bit sin instrucciones esame." -#: config/tc-s390.c:581 -#, c-format -msgid "Internal assembler error for instruction format %s" -msgstr "Error interno del ensamblador para el formato de instrucción %s" +#. xgettext:c-format. +#: config/tc-s390.c:681 +#, fuzzy, c-format +#| msgid "operand out of range (%d is not between %d and %d)" +msgid "operand %d: operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)" +msgstr "operando fuera de rango (%d no está entre %d y %d)" -#: config/tc-s390.c:627 -#, c-format -msgid "operand out of range (%s not between %ld and %ld)" -msgstr "operando fuera de límite (%s no está entre %ld y %ld)" +#. xgettext:c-format. +#: config/tc-s390.c:693 +#, fuzzy, c-format +#| msgid "operand out of range (%d is not between %d and %d)" +msgid "operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)" +msgstr "operando fuera de rango (%d no está entre %d y %d)" -#: config/tc-s390.c:852 +#: config/tc-s390.c:947 #, c-format msgid "identifier+constant@%s means identifier@%s+constant" msgstr "identificador+constante@%s significa identificador@%s+constante" -#: config/tc-s390.c:933 +#: config/tc-s390.c:1028 msgid "Can't handle O_big in s390_exp_compare" msgstr "No se puede manipular O_big en s390_exp_compare" -#: config/tc-s390.c:1015 +#: config/tc-s390.c:1110 msgid "Invalid suffix for literal pool entry" msgstr "Sufijo inválido para la entrada de conjunto de literales" -#: config/tc-s390.c:1072 +#: config/tc-s390.c:1167 msgid "Big number is too big" msgstr "El número grande es demasiado grande" -#: config/tc-s390.c:1221 +#: config/tc-s390.c:1316 msgid "relocation not applicable" msgstr "la reubicación no es aplicable" +#: config/tc-s390.c:1331 +#, fuzzy +#| msgid "# bars register" +msgid "base register" +msgstr "# prohibe el registro" + #: config/tc-s390.c:1333 -msgid "invalid length field specified" -msgstr "longitud especificada de campo no válida" +#, fuzzy +#| msgid "Wrong displacement %d" +msgid "displacement" +msgstr "Desplazamiento incorrecto %d" #: config/tc-s390.c:1337 -msgid "index register specified but zero" +#, fuzzy +#| msgid "unsupported vector index register" +msgid "vector index register" +msgstr "no se admite el registro de índice de vector" + +#: config/tc-s390.c:1339 +#, fuzzy +#| msgid "invalid register" +msgid "index register" +msgstr "invalida registro" + +#: config/tc-s390.c:1342 +msgid "length" +msgstr "" + +#: config/tc-s390.c:1344 config/tc-s390.c:1539 +#, fuzzy +#| msgid "# bars register" +msgid "access register" +msgstr "# prohibe el registro" + +#: config/tc-s390.c:1346 config/tc-s390.c:1542 +#, fuzzy +#| msgid "expecting control register" +msgid "control register" +msgstr "esperando registro de control" + +#: config/tc-s390.c:1348 config/tc-s390.c:1547 +#, fuzzy +#| msgid "floating-point expression required" +msgid "floating-point register" +msgstr "requerida expresión de coma flotante" + +#: config/tc-s390.c:1350 +#, fuzzy +#| msgid "invalid source register" +msgid "general-purpose register" +msgstr "invalida registro fuente" + +#: config/tc-s390.c:1352 config/tc-s390.c:1555 +#, fuzzy +#| msgid "vector register expected" +msgid "vector register" +msgstr "vector registrador esperado" + +#: config/tc-s390.c:1356 +#, fuzzy +#| msgid "invalid number" +msgid "signed number" +msgstr "número inválido" + +#: config/tc-s390.c:1358 +#, fuzzy +#| msgid "unassigned file number %ld" +msgid "unsigned number" +msgstr "número de fichero %ld sin asignar" + +#: config/tc-s390.c:1479 +#, fuzzy, c-format +#| msgid "illegal operand" +msgid "operand %d: illegal operand" +msgstr "operando ilegal" + +#: config/tc-s390.c:1484 +#, fuzzy, c-format +#| msgid "missing operand" +msgid "operand %d: missing %s operand" +msgstr "ausente operando" + +#: config/tc-s390.c:1496 config/tc-s390.c:1660 +#, fuzzy, c-format +#| msgid ":operand has too many bits" +msgid "operand %d: too many fixups" +msgstr ":operand tiene demasiadas bits" + +#: config/tc-s390.c:1506 +#, fuzzy, c-format +#| msgid "invalid length field specified" +msgid "operand %d: invalid length field specified" +msgstr "longitud especificada de campo no válida" + +#: config/tc-s390.c:1511 +#, fuzzy, c-format +#| msgid "index register specified but zero" +msgid "operand %d: index register specified but zero" msgstr "se especificó el registro índice pero es cero" -#: config/tc-s390.c:1341 -msgid "base register specified but zero" +#: config/tc-s390.c:1516 +#, fuzzy, c-format +#| msgid "base register specified but zero" +msgid "operand %d: base register specified but zero" msgstr "se especificó el registro base pero es cero" -#: config/tc-s390.c:1345 -msgid "odd numbered general purpose register specified as register pair" +#: config/tc-s390.c:1521 +#, fuzzy, c-format +#| msgid "odd numbered general purpose register specified as register pair" +msgid "operand %d: odd numbered general purpose register specified as register pair" msgstr "se especificaron registros de propósito general numerados impares como par de registro" -#: config/tc-s390.c:1353 -msgid "invalid floating point register pair. Valid fp register pair operands are 0, 1, 4, 5, 8, 9, 12 or 13." +#: config/tc-s390.c:1529 +#, fuzzy, c-format +#| msgid "invalid floating point register pair. Valid fp register pair operands are 0, 1, 4, 5, 8, 9, 12 or 13." +msgid "operand %d: invalid floating-point register (FPR) pair (valid FPR pair operands are 0, 1, 4, 5, 8, 9, 12 or 13)" msgstr "par de registro de coma flotante inválido. Los operandos de pares de registro fp válidos son 0, 1, 4, 5, 8, 9, 12 o 13." -#: config/tc-s390.c:1442 -msgid "invalid operand suffix" +#: config/tc-s390.c:1550 +#, fuzzy +#| msgid "invalid register" +msgid "general register" +msgstr "invalida registro" + +#: config/tc-s390.c:1560 +#, fuzzy, c-format +#| msgid "Operand %d to .%s must be a writable register" +msgid "operand %d: expected %s name as base register" +msgstr "Operandos %d de .%s debe ser un registro modificable" + +#: config/tc-s390.c:1563 +#, fuzzy, c-format +#| msgid "Operand %d to .%s must be a writable register" +msgid "operand %d: expected %s name as index register" +msgstr "Operandos %d de .%s debe ser un registro modificable" + +#: config/tc-s390.c:1566 +#, fuzzy, c-format +#| msgid "operand %d out of range" +msgid "operand %d: expected %s name" +msgstr "operando %d fuera de rango" + +#: config/tc-s390.c:1656 +#, fuzzy, c-format +#| msgid "invalid operand suffix" +msgid "operand %d: invalid operand suffix" msgstr "sufijo de operando inválido" -#: config/tc-s390.c:1465 -msgid "syntax error; missing '(' after displacement" -msgstr "error sintáctico; ausente '(' tras desubicación" +#: config/tc-s390.c:1680 +#, fuzzy, c-format +#| msgid "syntax error; missing '(' after displacement" +msgid "operand %d: syntax error; missing '(' after displacement" +msgstr "error de sintaxis; ausente '(' tras desubicación" -#: config/tc-s390.c:1479 config/tc-s390.c:1521 config/tc-s390.c:1564 -msgid "syntax error; expected ','" -msgstr "error sintáctico; esperado ','" +#: config/tc-s390.c:1701 config/tc-s390.c:1752 config/tc-s390.c:1797 +#, fuzzy, c-format +#| msgid "syntax error; expected ','" +msgid "operand %d: syntax error; expected ','" +msgstr "error de sintaxis; esperado ','" -#: config/tc-s390.c:1511 -msgid "syntax error; missing ')' after base register" -msgstr "error sintáctico; ausente ')' tras registro base" +#: config/tc-s390.c:1732 +#, fuzzy, c-format +#| msgid "syntax error; missing ')' after base register" +msgid "operand %d: syntax error; missing ')' after base register" +msgstr "error de sintaxis; ausente ')' tras registro base" -#: config/tc-s390.c:1538 -msgid "syntax error; ')' not allowed here" -msgstr "errór sintáctico; ')' no se permite aquí" +#: config/tc-s390.c:1776 +#, fuzzy, c-format +#| msgid "syntax error; ')' not allowed here" +msgid "operand %d: syntax error; '%c' not allowed here" +msgstr "errór de sintaxis; ')' no se permite aquí" -#: config/tc-s390.c:1689 +#: config/tc-s390.c:1933 #, c-format msgid "Opcode %s not available in this mode" msgstr "El código operacional %s no está disponible en este modo" -#: config/tc-s390.c:1744 config/tc-s390.c:1767 config/tc-s390.c:1780 +#: config/tc-s390.c:1978 config/tc-s390.c:2001 config/tc-s390.c:2014 msgid "Invalid .insn format\n" msgstr "Formato .insn inválido\n" -#: config/tc-s390.c:1752 +#: config/tc-s390.c:1986 #, c-format msgid "Unrecognized opcode format: `%s'" msgstr "No reconocido el formato de código operacional: «%s»" -#: config/tc-s390.c:1783 +#: config/tc-s390.c:2017 msgid "second operand of .insn not a constant\n" msgstr "el segundo operando de .insn no es una constante\n" -#: config/tc-s390.c:1786 +#: config/tc-s390.c:2020 msgid "missing comma after insn constant\n" msgstr "ausentea coma tras la constante insn\n" -#: config/tc-s390.c:2025 +#: config/tc-s390.c:2259 msgid ".machinemode stack overflow" msgstr "desbordamiento superior .machinemode de pila" -#: config/tc-s390.c:2032 +#: config/tc-s390.c:2266 msgid ".machinemode stack underflow" msgstr "desbordamiento inferior .machinemode de pila" -#: config/tc-s390.c:2049 +#: config/tc-s390.c:2283 #, c-format msgid "invalid machine mode `%s'" msgstr "modo no válido de máquina «%s»" -#: config/tc-s390.c:2251 -#, c-format -msgid "cannot emit relocation %s against subsy symbol %s" -msgstr "no se puede emitir la reubicación %s contra el símbolo subsy %s" - -#: config/tc-s390.c:2368 +#: config/tc-s390.c:2605 msgid "unsupported relocation type" msgstr "no se admite el tipo reubicado" # El mensaje no se puede traducir correctamente. El segundo parámetro # se sustituye por " against " sin traducir. cfuga -#: config/tc-s390.c:2423 +#: config/tc-s390.c:2660 #, c-format msgid "cannot emit PC relative %s relocation%s%s" msgstr "no se puede emitir la reubicación %s relativa al PC%s%s" -#: config/tc-s390.c:2562 +#: config/tc-s390.c:2799 #, c-format msgid "Gas failure, reloc type %s\n" msgstr "Fallo de gas, valor reubicado %s\n" -#: config/tc-s390.c:2564 +#: config/tc-s390.c:2801 #, c-format msgid "Gas failure, reloc type #%i\n" msgstr "Fallo de gas, tipo reubicado #%i\n" -#: config/tc-score.c:260 +#: config/tc-score.c:256 msgid "div / mul are reserved instructions" msgstr "div / mul son instrucciones reservadas" -#: config/tc-score.c:261 +#: config/tc-score.c:257 msgid "This architecture doesn't support mmu" msgstr "Esta arquitectura no admite mmu" -#: config/tc-score.c:262 +#: config/tc-score.c:258 msgid "This architecture doesn't support atomic instruction" msgstr "Esta arquitectura no admite la instrucción atomic" -#: config/tc-score.c:469 +#: config/tc-score.c:464 msgid "S+core register expected" msgstr "se esperaba un registro S+core" -#: config/tc-score.c:470 +#: config/tc-score.c:465 msgid "S+core special-register expected" msgstr "Se esperaba un registro especial S+core" -#: config/tc-score.c:471 +#: config/tc-score.c:466 msgid "S+core co-processor register expected" msgstr "Se esperaba un registro de co-procesador S+core" -#: config/tc-score.c:1074 +#: config/tc-score.c:1069 msgid "Using temp register (r1)" msgstr "Utilizando registero (r1) temp" -#: config/tc-score.c:1093 +#: config/tc-score.c:1088 #, c-format msgid "register expected, not '%.100s'" msgstr "se esperaba un registro, no '%.100s'" -#: config/tc-score.c:1149 config/tc-score.c:5485 +#: config/tc-score.c:1144 config/tc-score.c:5483 msgid "rd must be even number." msgstr "rd debe ser un número par." -#: config/tc-score.c:1513 config/tc-score.c:1520 +#: config/tc-score.c:1508 config/tc-score.c:1515 #, c-format msgid "invalid constant: %d bit expression not in range %u..%u" msgstr "constante no válida: la expresión de %d bit no está en el límite %u..%u" -#: config/tc-score.c:1526 config/tc-score.c:1533 config/tc-score.c:2895 -#: config/tc-score.c:2900 config/tc-score.c:3165 config/tc-score.c:3170 -#: config/tc-score.c:3462 +#: config/tc-score.c:1521 config/tc-score.c:1528 config/tc-score.c:2893 +#: config/tc-score.c:2898 config/tc-score.c:3163 config/tc-score.c:3168 +#: config/tc-score.c:3460 #, c-format msgid "invalid constant: %d bit expression not in range %d..%d" msgstr "constante no válida: la expresión de %d bit no está en el límite %d..%d" -#: config/tc-score.c:1558 +#: config/tc-score.c:1553 msgid "invalid constant: bit expression not defined" msgstr "constante no válida: la expresión de bit no está definida" -#: config/tc-score.c:2068 +#: config/tc-score.c:2063 msgid "Using temp register(r1)" msgstr "Se usa register(r1) temporal" -#: config/tc-score.c:2082 +#: config/tc-score.c:2077 #, c-format msgid "low register (r0-r15) expected, not '%.100s'" msgstr "se esperaba registro bajo (r0-r15), no '%.100s'" -#: config/tc-score.c:2144 config/tc-score.c:3482 config/tc-score.c:3650 -#: config/tc-score.c:3695 +#: config/tc-score.c:2139 config/tc-score.c:3480 config/tc-score.c:3648 +#: config/tc-score.c:3693 #, c-format msgid "missing [" msgstr "ausente [" -#: config/tc-score.c:2158 config/tc-score.c:3103 config/tc-score.c:3305 -#: config/tc-score.c:3321 config/tc-score.c:3392 config/tc-score.c:3447 -#: config/tc-score.c:3671 config/tc-score.c:3716 config/tc-score.c:3865 -#: config/tc-score.c:3919 config/tc-score.c:3965 +#: config/tc-score.c:2153 config/tc-score.c:3101 config/tc-score.c:3303 +#: config/tc-score.c:3319 config/tc-score.c:3390 config/tc-score.c:3445 +#: config/tc-score.c:3669 config/tc-score.c:3714 config/tc-score.c:3863 +#: config/tc-score.c:3917 config/tc-score.c:3963 #, c-format msgid "missing ]" msgstr "ausente ]" -#: config/tc-score.c:2347 +#: config/tc-score.c:2343 #, c-format msgid "Fix data dependency: %s %s -- %s %s (insert %d nop!/%d)" msgstr "Dependencia de datos fija: %s %s -- %s %s (insertar %d nop!/%d’)" -#: config/tc-score.c:2366 +#: config/tc-score.c:2362 #, c-format msgid "Fix data dependency: %s %s -- %s %s (insert 1 pflush/%d)" msgstr "Dependencia de datos fija: %s %s -- %s %s (insertar 1 `pflush/%d')" -#: config/tc-score.c:2382 config/tc-score.c:2389 +#: config/tc-score.c:2378 config/tc-score.c:2385 #, c-format msgid "data dependency: %s %s -- %s %s (%d/%d bubble)" msgstr "dependencia de datos: %s %s -- %s %s (%d/%d burbujea)" -#: config/tc-score.c:2838 +#: config/tc-score.c:2836 msgid "address offset must be half word alignment" msgstr "el desplazamiento direccional se debe alinear con half word" -#: config/tc-score.c:2846 +#: config/tc-score.c:2844 msgid "address offset must be word alignment" msgstr "el desplazamiento direccional se debe alinear con word" -#: config/tc-score.c:2986 config/tc-score.c:3123 +#: config/tc-score.c:2984 config/tc-score.c:3121 msgid "register same as write-back base" msgstr "el registro es el mismo que la base de retroescritura" -#: config/tc-score.c:3093 +#: config/tc-score.c:3091 msgid "pre-indexed expression expected" msgstr "se esperaba una expresión pre-indizada" -#: config/tc-score.c:3422 +#: config/tc-score.c:3420 #, c-format msgid "invalid register number: %d is not in [r0--r7]" msgstr "número de registro inválido: %d no está en [r0--r7]" -#: config/tc-score.c:3439 +#: config/tc-score.c:3437 msgid "comma is expected" msgstr "se esperaba una coma" -#: config/tc-score.c:3470 +#: config/tc-score.c:3468 #, c-format msgid "invalid constant: %d is not word align integer" msgstr "constante no válida: %d no es un entero alineado a word" -#: config/tc-score.c:3509 config/tc-score.c:3552 +#: config/tc-score.c:3507 config/tc-score.c:3550 msgid "invalid constant: 32 bit expression not word align" msgstr "constante no válida: la expresión de 32 bit no está alineada a word" -#: config/tc-score.c:3518 config/tc-score.c:3561 +#: config/tc-score.c:3516 config/tc-score.c:3559 msgid "invalid constant: 32 bit expression not in range [0, 0xffffffff]" msgstr "constante no válida: la expresión de 32 bit no está en el límite [0, 0xffffffff]" -#: config/tc-score.c:3594 +#: config/tc-score.c:3592 msgid "invalid constant: 32 bit expression not in range [-0x80000000, 0x7fffffff]" msgstr "constante no válida: la expresión de 32 bit no está en el límite [-0x80000000, 0x7fffffff]" -#: config/tc-score.c:3783 config/tc-score.c:3811 +#: config/tc-score.c:3781 config/tc-score.c:3809 msgid "imm5 should >= 2" msgstr "imm5 debe ser >= 2" -#: config/tc-score.c:3788 config/tc-score.c:3817 +#: config/tc-score.c:3786 config/tc-score.c:3815 msgid "reg should <= 31" msgstr "reg debe ser ≤ 31" -#: config/tc-score.c:3859 config/tc-score.c:3910 +#: config/tc-score.c:3857 config/tc-score.c:3908 msgid "missing +" msgstr "ausente +" -#: config/tc-score.c:3903 +#: config/tc-score.c:3901 #, c-format msgid "%s register same as write-back base" msgstr "el registro %s es el mismo que la base de retroescritura" -#: config/tc-score.c:3905 +#: config/tc-score.c:3903 msgid "destination" msgstr "destino" -#: config/tc-score.c:3905 +#: config/tc-score.c:3903 msgid "source" msgstr "fuente" -#: config/tc-score.c:4235 config/tc-score.c:4311 config/tc-score.c:4946 +#: config/tc-score.c:4234 config/tc-score.c:4310 config/tc-score.c:4945 msgid "expression error" msgstr "error de expresión" -#: config/tc-score.c:4241 -msgid "value not in range [0, 0xffffffff]" -msgstr "el valor no está en el límite [0, 0xffffffff]" - -#: config/tc-score.c:4317 +#: config/tc-score.c:4316 msgid "value not in range [-0xffffffff, 0xffffffff]" msgstr "el valor no está en el límite [-0xffffffff, 0xffffffff]" -#: config/tc-score.c:4345 +#: config/tc-score.c:4344 msgid "li rd label isn't correct instruction form" msgstr "etiqueta li rd no es relleno instruccional correcto" -#: config/tc-score.c:4515 config/tc-score.c:4670 config/tc-score.c:5197 -#: config/tc-score.c:5225 +#: config/tc-score.c:4511 config/tc-score.c:4665 config/tc-score.c:5196 +#: config/tc-score.c:5224 msgid "lacking label " msgstr "ausente la etiqueta " -#: config/tc-score.c:4896 +#: config/tc-score.c:4895 msgid "s3_PIC code offset overflow (max 16 signed bits)" msgstr "s3_PIC como código de desbordamiento de desplazamiento (máx 16 bits con signo)" -#: config/tc-score.c:4952 +#: config/tc-score.c:4951 msgid "value not in range [0, 0x7fffffff]" msgstr "el valor no está en el límite [0, 0x7fffffff]" -#: config/tc-score.c:4957 +#: config/tc-score.c:4956 msgid "end on line error" msgstr "error de final de línea" -#: config/tc-score.c:5204 +#: config/tc-score.c:5203 msgid "invalid constant: 25 bit expression not in range [-16777216, 16777215]" msgstr "constante no válida: la expresión de 25 bit no está en el límite [-16777216, 16777215]" -#: config/tc-score.c:5231 +#: config/tc-score.c:5230 msgid "invalid constant: 20 bit expression not in range -2^19..2^19-1" msgstr "invalida constante: expresión de 20 bit no dentro del límite -2^19..2^19-1" -#: config/tc-score.c:5264 +#: config/tc-score.c:5263 msgid "lacking label" msgstr "ausente la etiqueta" -#: config/tc-score.c:5269 +#: config/tc-score.c:5268 msgid "invalid constant: 10 bit expression not in range [-2^9, 2^9-1]" msgstr "constante no válida: la expresión de 10 bit no está en el límite [-2^9, 2^9-1]" -#: config/tc-score.c:5365 +#: config/tc-score.c:5363 msgid "pce instruction error (16 bit || 16 bit)." msgstr "error de instrucción pce (16 bit || 16 bit)." -#: config/tc-score.c:5383 config/tc-score.c:5407 config/tc-score.c:5434 -#: config/tc-score.c:5463 config/tc-score.c:5512 +#: config/tc-score.c:5381 config/tc-score.c:5405 config/tc-score.c:5432 +#: config/tc-score.c:5461 config/tc-score.c:5510 msgid "score3d instruction." msgstr "instrucción score3d." -#: config/tc-score.c:6030 +#: config/tc-score.c:6000 msgid "Unsupported use of .gpword" msgstr "No se admite el uso de .gpword" -#: config/tc-score.c:6126 +#: config/tc-score.c:6096 #, c-format msgid "BSS length (%d) < 0 ignored" msgstr "Longitud BSS (%d) <0 se descarta" -#: config/tc-score.c:6141 read.c:2467 +#: config/tc-score.c:6110 read.c:2558 #, c-format msgid "error setting flags for \".sbss\": %s" msgstr "error al establecer marcas para \".sbss\": %s" -#: config/tc-score.c:6155 config/tc-sparc.c:4311 +#: config/tc-score.c:6124 config/tc-sparc.c:4164 msgid "missing alignment" msgstr "ausente la alineamiento" -#: config/tc-score.c:6192 +#: config/tc-score.c:6161 #, c-format msgid "alignment too large; %d assumed" msgstr "alineamiento demasiado grande; se asume %d" -#: config/tc-score.c:6197 read.c:2528 +#: config/tc-score.c:6166 read.c:2619 msgid "alignment negative; 0 assumed" msgstr "alineamiento negativo; asumido 0" #. Error routine. -#: config/tc-score.c:6607 config/tc-score.c:6631 +#: config/tc-score.c:6526 config/tc-score.c:6550 msgid "size is not 4 or 6" msgstr "el tamaño no es 4 o 6" -#: config/tc-score.c:6690 +#: config/tc-score.c:6609 msgid "bad call to MD_ATOF()" -msgstr "llamada equivocada a MD_ATOF()" +msgstr "llamada incorrecta a MD_ATOF()" -#: config/tc-score.c:7197 config/tc-score.c:7263 +#: config/tc-score.c:7108 config/tc-score.c:7174 #, c-format msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]" msgstr " la reubicación de ramificación trunca (0x%x) [-2^9 ~ 2^9-1]" -#: config/tc-score.c:7212 config/tc-score.c:7241 config/tc-score.c:7293 +#: config/tc-score.c:7123 config/tc-score.c:7152 config/tc-score.c:7204 #, c-format msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19-1]" msgstr " la reubicación de ramificación trunca (0x%x) [-2^19 ~ 2^19-1]" -#: config/tc-score.c:7318 +#: config/tc-score.c:7229 #, c-format msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]" msgstr " la reubicación de ramificación trunca (0x%x) [-2^9 ~ 2^9-1]" -#: config/tc-score.c:7488 +#: config/tc-score.c:7399 #, c-format msgid "cannot represent %s relocation in this object file format1" msgstr "no se puede representar la reubicación %s en este fichero objeto format1" -#: config/tc-score.c:7779 +#: config/tc-score.c:7690 #, c-format msgid "Sunplus-v2-0-0-20060510\n" msgstr "Sunplus-v2-0-0-20060510\n" -#: config/tc-score.c:7799 +#: config/tc-score.c:7710 #, c-format msgid " Score-specific assembler options:\n" msgstr " Opciones de ensamblador específicas de Score:\n" -#: config/tc-score.c:7801 +#: config/tc-score.c:7712 #, c-format msgid " -EB\t\tassemble code for a big-endian cpu\n" msgstr " -EB\t\tensambla código para un cpu big-endian\n" -#: config/tc-score.c:7806 +#: config/tc-score.c:7717 #, c-format msgid " -EL\t\tassemble code for a little-endian cpu\n" msgstr " -EL\t\tensambla código para un cpu little-endian\n" -#: config/tc-score.c:7810 +#: config/tc-score.c:7721 #, c-format msgid " -FIXDD\t\tfix data dependencies\n" msgstr " -FIXDD\t\t ajusta datos dependientes\n" -#: config/tc-score.c:7812 +#: config/tc-score.c:7723 #, c-format msgid " -NWARN\t\tdo not print warning message when fixing data dependencies\n" msgstr " -NWARN\t\t ensambla código para que no avise sobre dependencia de datos fijo\n" -#: config/tc-score.c:7814 +#: config/tc-score.c:7725 #, c-format msgid " -SCORE5\t\tassemble code for target SCORE5\n" msgstr " -SCORE5\t\t ensambla código para el destino SCORE5\n" -#: config/tc-score.c:7816 +#: config/tc-score.c:7727 #, c-format msgid " -SCORE5U\tassemble code for target SCORE5U\n" msgstr " -SCORE5U\tensambla código para el objetivo SCORE5U\n" -#: config/tc-score.c:7818 +#: config/tc-score.c:7729 #, c-format msgid " -SCORE7\t\tassemble code for target SCORE7 [default]\n" msgstr " -SCORE5\t\tensambla código para el objetivo SCORE7 [predet.]\n" -#: config/tc-score.c:7820 +#: config/tc-score.c:7731 #, c-format msgid " -SCORE3\t\tassemble code for target SCORE3\n" msgstr " -SCORE3\t\t ensambla código para el objetivo SCORE5U\n" -#: config/tc-score.c:7822 +#: config/tc-score.c:7733 #, c-format msgid " -march=score7\tassemble code for target SCORE7 [default]\n" msgstr " -march=score7\t ensambla código para el objetivo SCORE7 [predet.]\n" -#: config/tc-score.c:7824 +#: config/tc-score.c:7735 #, c-format msgid " -march=score3\tassemble code for target SCORE3\n" msgstr " -march=score3\tensambla código para el objetivo SCORE3\n" -#: config/tc-score.c:7826 +#: config/tc-score.c:7737 #, c-format msgid " -USE_R1\t\tassemble code for no warning message when using temp register r1\n" msgstr " -USE_R1\t\tensambla código para que no avise cuando se usa el registro temporal r1\n" -#: config/tc-score.c:7828 +#: config/tc-score.c:7739 #, c-format msgid " -KPIC\t\tgenerate PIC\n" msgstr " -KPIC\t\tgenera PIC\n" -#: config/tc-score.c:7830 +#: config/tc-score.c:7741 #, c-format msgid " -O0\t\tdo not perform any optimizations\n" msgstr " -O0\t\tno realizar ninguna optimización\n" -#: config/tc-score.c:7832 +#: config/tc-score.c:7743 #, c-format msgid " -G gpnum\tassemble code for setting gpsize, default is 8 bytes\n" msgstr " -G gpnum\tensambla código para definir gpsize y por defecto es 8 byte\n" -#: config/tc-score.c:7834 +#: config/tc-score.c:7745 #, c-format msgid " -V \t\tSunplus release version\n" msgstr " -V \t\tVersión Sunplus publicada\n" -#: config/tc-sh.c:62 +#: config/tc-sh.c:61 msgid "directive .big encountered when option -big required" msgstr "se encontró una directiva .big cuando se requirió una opción -big" -#: config/tc-sh.c:72 +#: config/tc-sh.c:71 msgid "directive .little encountered when option -little required" msgstr "se encontró una directiva .little cuando se requirió una opción -little" -#: config/tc-sh.c:1422 +#: config/tc-sh.c:1025 msgid "illegal double indirection" msgstr "doble indirección ilegal" -#: config/tc-sh.c:1431 +#: config/tc-sh.c:1034 msgid "illegal register after @-" msgstr "registro ilegal tras @-" -#: config/tc-sh.c:1447 +#: config/tc-sh.c:1050 msgid "must be @(r0,...)" msgstr "debe ser @(r0,...)" -#: config/tc-sh.c:1471 +#: config/tc-sh.c:1074 msgid "syntax error in @(r0,...)" -msgstr "error sintáctico en @(r0,...)" +msgstr "error de sintaxis en @(r0,...)" -#: config/tc-sh.c:1476 +#: config/tc-sh.c:1079 msgid "syntax error in @(r0...)" -msgstr "error sintáctico en @(r0...)" +msgstr "error de sintaxis en @(r0...)" -#: config/tc-sh.c:1521 +#: config/tc-sh.c:1124 msgid "Deprecated syntax." msgstr "Sintaxis obsoleta." -#: config/tc-sh.c:1533 config/tc-sh.c:1538 +#: config/tc-sh.c:1136 config/tc-sh.c:1141 msgid "syntax error in @(disp,[Rn, gbr, pc])" -msgstr "error sintáctico en @(disp,[Rn, gbr, pc])" +msgstr "error de sintaxis en @(disp,[Rn, gbr, pc])" -#: config/tc-sh.c:1543 +#: config/tc-sh.c:1146 msgid "expecting )" msgstr "se esperaba )" -#: config/tc-sh.c:1551 +#: config/tc-sh.c:1154 msgid "illegal register after @" msgstr "registro ilegal tras @" -#: config/tc-sh.c:2192 +#: config/tc-sh.c:1780 #, c-format msgid "unhandled %d\n" msgstr "%d sin manipular\n" -#: config/tc-sh.c:2403 +#: config/tc-sh.c:1993 #, c-format msgid "Invalid register: 'r%d'" msgstr "Registro inválido: 'r%d'" -#: config/tc-sh.c:2515 +#: config/tc-sh.c:2106 #, c-format msgid "failed for %d\n" msgstr "falló para %d\n" -#: config/tc-sh.c:2521 +#: config/tc-sh.c:2112 msgid "misplaced PIC operand" msgstr "operando PIC mal ubicado" -#: config/tc-sh.c:2632 config/tc-sh.c:3031 +#: config/tc-sh.c:2223 config/tc-sh.c:2596 msgid "invalid operands for opcode" msgstr "operandos inválidos para el código operacional" -#: config/tc-sh.c:2637 +#: config/tc-sh.c:2228 msgid "insn can't be combined with parallel processing insn" msgstr "las insns no se pueden combinar con insns de procesamiento paralelo" -#: config/tc-sh.c:2644 config/tc-sh.c:2655 config/tc-sh.c:2687 +#: config/tc-sh.c:2235 config/tc-sh.c:2246 config/tc-sh.c:2278 msgid "multiple movx specifications" msgstr "especificaciones movx múltiples" -#: config/tc-sh.c:2649 config/tc-sh.c:2671 config/tc-sh.c:2710 +#: config/tc-sh.c:2240 config/tc-sh.c:2262 config/tc-sh.c:2301 msgid "multiple movy specifications" msgstr "especificaciones movy múltiples" -#: config/tc-sh.c:2658 config/tc-sh.c:2691 +#: config/tc-sh.c:2249 config/tc-sh.c:2282 msgid "invalid movx address register" msgstr "registro direccional movx inválido" -#: config/tc-sh.c:2660 +#: config/tc-sh.c:2251 msgid "insn cannot be combined with non-nopy" msgstr "las insns no se pueden combinar con las que no son nopy" -#: config/tc-sh.c:2674 config/tc-sh.c:2730 +#: config/tc-sh.c:2265 config/tc-sh.c:2321 msgid "invalid movy address register" msgstr "registro direccional movy inválido" -#: config/tc-sh.c:2676 +#: config/tc-sh.c:2267 msgid "insn cannot be combined with non-nopx" msgstr "las insns no se pueden combinar con las que no son nopx" -#: config/tc-sh.c:2689 +#: config/tc-sh.c:2280 msgid "previous movy requires nopx" msgstr "el movy previo requiere nopx" -#: config/tc-sh.c:2697 config/tc-sh.c:2702 +#: config/tc-sh.c:2288 config/tc-sh.c:2293 msgid "invalid movx dsp register" msgstr "registro dsp movx inválido" -#: config/tc-sh.c:2712 +#: config/tc-sh.c:2303 msgid "previous movx requires nopy" msgstr "el movx previo requiere nopy" -#: config/tc-sh.c:2721 config/tc-sh.c:2726 +#: config/tc-sh.c:2312 config/tc-sh.c:2317 msgid "invalid movy dsp register" msgstr "registro dsp movy inválido" -#: config/tc-sh.c:2736 +#: config/tc-sh.c:2327 msgid "dsp immediate shift value not constant" msgstr "el valor de desplazamiento inmediato dsp no es constante" -#: config/tc-sh.c:2750 config/tc-sh.c:2776 +#: config/tc-sh.c:2341 config/tc-sh.c:2367 msgid "multiple parallel processing specifications" msgstr "especificaciones múltiples de procesamiento paralelo" -#: config/tc-sh.c:2769 +#: config/tc-sh.c:2360 msgid "multiple condition specifications" msgstr "especificaciones múltiples de condición" -#: config/tc-sh.c:2807 +#: config/tc-sh.c:2398 msgid "insn cannot be combined with pmuls" msgstr "la insn no se pueden combinar con pmuls" -#: config/tc-sh.c:2823 +#: config/tc-sh.c:2414 msgid "bad combined pmuls output operand" msgstr "operando de salida pmuls mal combinado" -#: config/tc-sh.c:2833 +#: config/tc-sh.c:2424 msgid "destination register is same for parallel insns" msgstr "el registro de destino es el mismo para insns paralelas" -#: config/tc-sh.c:2842 +#: config/tc-sh.c:2433 msgid "condition not followed by conditionalizable insn" msgstr "la condición no está seguida por una insn condicionalizable" -#: config/tc-sh.c:2852 +#: config/tc-sh.c:2443 msgid "unrecognized characters at end of parallel processing insn" msgstr "no se reconocen los caracteres al final de la insn de procesamiento paralelo" -#: config/tc-sh.c:2968 +#: config/tc-sh.c:2535 msgid "opcode not valid for this cpu variant" msgstr "el código operacional no es válido para esta variante de cpu" -#: config/tc-sh.c:3001 +#: config/tc-sh.c:2566 msgid "Delayed branches not available on SH1" msgstr "Las ramificaciones postergadas no están disponibles en SH1" -#: config/tc-sh.c:3036 +#: config/tc-sh.c:2601 #, c-format msgid "excess operands: '%s'" msgstr "exceso de operandos: «%s»" -#: config/tc-sh.c:3113 +#: config/tc-sh.c:2678 msgid ".uses pseudo-op seen when not relaxing" msgstr "se vio el pseudo-operador .uses cuando no se estaba relajando" -#: config/tc-sh.c:3119 +#: config/tc-sh.c:2684 msgid "bad .uses format" -msgstr "formato de .uses equivocado" - -#: config/tc-sh.c:3230 -msgid "Invalid combination: --isa=SHcompact with --isa=SHmedia" -msgstr "Combinación no válida: --isa=SHcompact con --isa=SHmedia" +msgstr "formato de .uses incorrecto" -#: config/tc-sh.c:3236 -msgid "Invalid combination: --isa=SHmedia with --isa=SHcompact" -msgstr "Combinación no válida: --isa=SHmedia con --isa=SHcompact" - -#: config/tc-sh.c:3238 -msgid "Invalid combination: --abi=64 with --isa=SHcompact" -msgstr "Combinación no válida: --abi=64 con --isa=SHcompact" - -#: config/tc-sh.c:3270 +#: config/tc-sh.c:2802 #, c-format msgid "Invalid argument to --isa option: %s" msgstr "Argumento inválido para la opción --isa: %s" -#: config/tc-sh.c:3279 -msgid "Invalid combination: --abi=32 with --abi=64" -msgstr "Combinación no válida: --abi=32 con --abi=64" - -#: config/tc-sh.c:3285 -msgid "Invalid combination: --abi=64 with --abi=32" -msgstr "Combinación no válida: --abi=64 con --abi=32" - -#: config/tc-sh.c:3287 -msgid "Invalid combination: --isa=SHcompact with --abi=64" -msgstr "Combinación no válida: --isa=SHcompact con --abi=64" - -#: config/tc-sh.c:3291 -#, c-format -msgid "Invalid argument to --abi option: %s" -msgstr "Argumento inválido para la opción --abi: %s" - -#: config/tc-sh.c:3331 +#: config/tc-sh.c:2826 #, c-format msgid "" "SH options:\n" @@ -15889,311 +18678,93 @@ msgstr "" " | dsp igual que '-dsp'\n" " | fp" -#: config/tc-sh.c:3357 -#, c-format -msgid "" -"--isa=[shmedia\t\tset as the default instruction set for SH64\n" -" | SHmedia\n" -" | shcompact\n" -" | SHcompact]\n" -msgstr "" -"--isa=[shmedia\t\t establece el conjunto de instrucciones por\n" -" \t\t defecto para SH64\n" -" | SHmedia\n" -" | shcompact\n" -" | SHcompact]\n" - -#: config/tc-sh.c:3362 -#, c-format -msgid "" -"--abi=[32|64]\t\tset size of expanded SHmedia operands and object\n" -"\t\t\tfile type\n" -"--shcompact-const-crange emit code-range descriptors for constants in\n" -"\t\t\tSHcompact code sections\n" -"--no-mix\t\tdisallow SHmedia code in the same section as\n" -"\t\t\tconstants and SHcompact code\n" -"--no-expand\t\tdo not expand MOVI, PT, PTA or PTB instructions\n" -"--expand-pt32\t\twith -abi=64, expand PT, PTA and PTB instructions\n" -"\t\t\tto 32 bits only\n" -msgstr "" -"--abi=[32|64]\t\t establece el tamaño de los operandos SHmedia\n" -"\t\t\t expandidos y el tipo del fichero objeto\n" -"--shcompact-const-crange\t emite descriptores de código-límite para\n" -"\t\t\t constantes en las secciones de código SHcompact\n" -"--no-mix\t\t\t desactiva el código SHmedia en la misma sección que\n" -"\t\t\t las constantes y el código SHcompact\n" -"--no-expand\t\t no expande las instrucciones MOVI, PT, PTA o PTB\n" -"--expand-pt32\t\t con -abi=64, expande las instrucciones PT, PTA y PTB\n" -"\t\t\t solamente a 32 bits\n" - -#: config/tc-sh.c:3374 +#: config/tc-sh.c:2851 #, c-format msgid "--fdpic\t\t\tgenerate an FDPIC object file\n" msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n" -#: config/tc-sh.c:3465 +#: config/tc-sh.c:2927 msgid ".uses does not refer to a local symbol in the same section" msgstr ".uses no se refiere a un símbolo local en la misma sección" -#: config/tc-sh.c:3484 +#: config/tc-sh.c:2946 msgid "can't find fixup pointed to by .uses" msgstr "no se puede encontrar la compostura señalada por .uses" -#: config/tc-sh.c:3504 +#: config/tc-sh.c:2966 msgid ".uses target does not refer to a local symbol in the same section" msgstr "el objetivo .uses no se refiere a un símbolo local en la misma sección" -#: config/tc-sh.c:3581 +#: config/tc-sh.c:3039 msgid "displacement overflows 12-bit field" msgstr "la desubicación desborda el campo de 12-bit" -#: config/tc-sh.c:3584 +#: config/tc-sh.c:3042 #, c-format msgid "displacement to defined symbol %s overflows 12-bit field" msgstr "desplazamiento para símbolo %s definido sobredesborda el campo de 12-bit" -#: config/tc-sh.c:3588 +#: config/tc-sh.c:3046 #, c-format msgid "displacement to undefined symbol %s overflows 12-bit field" msgstr "la desubicación del símbolo indefinido %s desborda el campo de 12-bit" -#: config/tc-sh.c:3661 +#: config/tc-sh.c:3119 msgid "displacement overflows 8-bit field" msgstr "la desubicación desborda el campo de 8-bit" -#: config/tc-sh.c:3664 +#: config/tc-sh.c:3122 #, c-format msgid "displacement to defined symbol %s overflows 8-bit field" msgstr "la desubicación del símbolo definido %s desborda el campo de 8-bits" -#: config/tc-sh.c:3668 +#: config/tc-sh.c:3126 #, c-format msgid "displacement to undefined symbol %s overflows 8-bit field " msgstr "desplazamiento a símbolo %s indefinido sobredesborda campo de 8-bit " -#: config/tc-sh.c:3685 +#: config/tc-sh.c:3139 #, c-format msgid "overflow in branch to %s; converted into longer instruction sequence" msgstr "desbordamiento en la ramificación a %s; se convirtió en una secuencia de instrucciones más larga" -#: config/tc-sh.c:3750 config/tc-sh.c:3797 config/tc-sparc.c:4811 -#: config/tc-sparc.c:4835 +#: config/tc-sh.c:3204 config/tc-sh.c:3251 config/tc-sparc.c:4628 +#: config/tc-sparc.c:4652 msgid "misaligned data" msgstr "datos desalineados" -#: config/tc-sh.c:4126 +#: config/tc-sh.c:3557 msgid "offset to unaligned destination" msgstr "desplazamiento a destino desalineado" -#: config/tc-sh.c:4131 +#: config/tc-sh.c:3562 msgid "negative offset" msgstr "desplazamiento negativo" -#: config/tc-sh.c:4282 +#: config/tc-sh.c:3702 msgid "misaligned offset" msgstr "desplazamiento desalineado" -#: config/tc-sh64.c:568 -msgid "This operand must be constant at assembly time" -msgstr "Este operando debe ser una constante al momento de ensamblar" - -#: config/tc-sh64.c:681 -msgid "Invalid operand expression" -msgstr "Expresión de operando inválido" - -#: config/tc-sh64.c:773 config/tc-sh64.c:877 -msgid "PTB operand is a SHmedia symbol" -msgstr "Operando PTB es un símbolo SHmedia" - -#: config/tc-sh64.c:776 config/tc-sh64.c:874 -msgid "PTA operand is a SHcompact symbol" -msgstr "Operando PTA es un símbolo SHcompact" - -#: config/tc-sh64.c:792 -msgid "invalid expression in operand" -msgstr "expresión no válida en operando" - -#: config/tc-sh64.c:1483 -#, c-format -msgid "invalid operand, not a 5-bit unsigned value: %d" -msgstr "operando inválido, no es un valor de 5-bit sin signo: %d" - -#: config/tc-sh64.c:1488 -#, c-format -msgid "invalid operand, not a 6-bit signed value: %d" -msgstr "operando inválido, no es un valor de 6-bit con signo: %d" - -#: config/tc-sh64.c:1493 -#, c-format -msgid "invalid operand, not a 6-bit unsigned value: %d" -msgstr "operando inválido, no es un valor de 6-bit sin signo: %d" - -#: config/tc-sh64.c:1498 config/tc-sh64.c:1510 -#, c-format -msgid "invalid operand, not a 11-bit signed value: %d" -msgstr "operando inválido, no es un valor de 11-bit con signo: %d" - -#: config/tc-sh64.c:1500 -#, c-format -msgid "invalid operand, not a multiple of 32: %d" -msgstr "operando inválido, no es un múltiplo de 32: %d" - -#: config/tc-sh64.c:1505 -#, c-format -msgid "invalid operand, not a 10-bit signed value: %d" -msgstr "operando inválido, no es un valor de 10-bit con signo: %d" - -#: config/tc-sh64.c:1512 -#, c-format -msgid "invalid operand, not an even value: %d" -msgstr "operando inválido, no es un valor par: %d" - -#: config/tc-sh64.c:1517 -#, c-format -msgid "invalid operand, not a 12-bit signed value: %d" -msgstr "operando inválido, no es un valor de 12-bit con signo: %d" - -#: config/tc-sh64.c:1519 -#, c-format -msgid "invalid operand, not a multiple of 4: %d" -msgstr "operando inválido, no es un múltiplo de 4: %d" - -#: config/tc-sh64.c:1524 -#, c-format -msgid "invalid operand, not a 13-bit signed value: %d" -msgstr "operando inválido, no es un valor de 13-bit con signo: %d" - -#: config/tc-sh64.c:1526 -#, c-format -msgid "invalid operand, not a multiple of 8: %d" -msgstr "operando inválido, no es un múltiplo de 8: %d" - -#: config/tc-sh64.c:1531 -#, c-format -msgid "invalid operand, not a 16-bit signed value: %d" -msgstr "operando inválido, no es un valor de 16-bit con signo: %d" - -#: config/tc-sh64.c:1536 -#, c-format -msgid "invalid operand, not a 16-bit unsigned value: %d" -msgstr "operando inválido, no es un valor de 16-bit sin signo: %d" - -#: config/tc-sh64.c:1542 -msgid "operand out of range for PT, PTA and PTB" -msgstr "operando fuera de límite para PT, PTA y PTB" - -#: config/tc-sh64.c:1544 -#, c-format -msgid "operand not a multiple of 4 for PT, PTA or PTB: %d" -msgstr "operando no es un múltiplo de 4 para PT, PTA o PTB: %d" - -#: config/tc-sh64.c:2065 -#, c-format -msgid "MOVI operand is not a 32-bit signed value: 0x%8x%08x" -msgstr "MOVI como operando no es un valor de 32-bit con signo: 0x%8x%08x" - -#: config/tc-sh64.c:2422 config/tc-sh64.c:2585 config/tc-sh64.c:2600 -msgid "invalid PIC reference" -msgstr "referencia PIC no válida" - -#: config/tc-sh64.c:2682 config/tc-sh64.c:2722 -msgid "invalid operand: expression in PT target" -msgstr "operando inválido: expresión en el objetivo PT" - -#: config/tc-sh64.c:2813 -#, c-format -msgid "invalid operands to %s" -msgstr "operandos inválidos para %s" - -#: config/tc-sh64.c:2819 -#, c-format -msgid "excess operands to %s" -msgstr "exceso de operandos para %s" - -#: config/tc-sh64.c:2864 -#, c-format -msgid "The `.mode %s' directive is not valid with this architecture" -msgstr "La directiva `.mode %s' no es válida para esta arquitectura" - -#: config/tc-sh64.c:2872 -#, c-format -msgid "Invalid argument to .mode: %s" -msgstr "Argumento inválido para .mode: %s" - -#: config/tc-sh64.c:2902 -#, c-format -msgid "The `.abi %s' directive is not valid with this architecture" -msgstr "La directiva `.abi %s' no es válida para esta arquitectura" - -#: config/tc-sh64.c:2908 -msgid "`.abi 64' but command-line options do not specify 64-bit ABI" -msgstr "`.abi 64' pero las opciones de la línea de mandatos no especifica la ABI de 64-bit" - -#: config/tc-sh64.c:2913 -msgid "`.abi 32' but command-line options do not specify 32-bit ABI" -msgstr "`.abi 32' pero las opciones de la línea de mandatos no especifica la ABI de 32-bit" - -#: config/tc-sh64.c:2916 -#, c-format -msgid "Invalid argument to .abi: %s" -msgstr "Argumento inválido para .abi: %s" - -#: config/tc-sh64.c:2971 -msgid "-no-mix is invalid without specifying SHcompact or SHmedia" -msgstr "-no-mix es inválido sin especificar SHcompact o SHmedia" - -#: config/tc-sh64.c:2976 -msgid "-shcompact-const-crange is invalid without SHcompact" -msgstr "-shcompact-const-crange es inválido sin SHcompact" - -#: config/tc-sh64.c:2979 -msgid "-expand-pt32 only valid with -abi=64" -msgstr "-expand-pt32 sólo es válido con -abi=64" - -#: config/tc-sh64.c:2982 -msgid "-no-expand only valid with SHcompact or SHmedia" -msgstr "-no-expand sólo es válido con SHcompact o SHmedia" - -#: config/tc-sh64.c:2985 -msgid "-expand-pt32 invalid together with -no-expand" -msgstr "-expand-pt32 es inválido junto con -no-expand" - -#: config/tc-sh64.c:3199 -msgid "SHmedia code not allowed in same section as constants and SHcompact code" -msgstr "Código no admitido SHmedia en la misma sección como constantes y código SHcompact" - -#: config/tc-sh64.c:3217 -msgid "No segment info for current section" -msgstr "Ningún informe segmentario para sección actual" - -#: config/tc-sh64.c:3256 -msgid "duplicate datalabel operator ignored" -msgstr "duplica operador descartado de etiquetado de datos" - -#: config/tc-sh64.c:3323 -msgid "Invalid DataLabel expression" -msgstr "Expresión DataLabel no válida" - -#: config/tc-sparc.c:322 config/tc-sparc.c:537 +#: config/tc-sparc.c:314 config/tc-sparc.c:495 msgid "Bad opcode table, broken assembler." -msgstr "Tabla de códigos operacionales equivocada, ensamblador descompuesto." +msgstr "Tabla de códigos operacionales incorrecta, ensamblador descompuesto." -#: config/tc-sparc.c:529 +#: config/tc-sparc.c:487 #, c-format msgid "invalid architecture -xarch=%s" msgstr "arquitectura -xarch=%s no válida" -#: config/tc-sparc.c:610 +#: config/tc-sparc.c:561 #, c-format msgid "No compiled in support for %d bit object file format" msgstr "No se compiló el soporte para el formato de fichero objeto de %d bit" -#: config/tc-sparc.c:695 +#: config/tc-sparc.c:645 #, c-format msgid "SPARC options:\n" msgstr "Opciones SPARC:\n" -#: config/tc-sparc.c:724 +#: config/tc-sparc.c:674 #, c-format msgid "" "\n" @@ -16212,12 +18783,7 @@ msgstr "" "-relax\t\t\trelaja saltos y ramificaciones (por defecto)\n" "-no-relax\t\tevita modificar cualquier omisión y ramificación\n" -#: config/tc-sparc.c:732 -#, c-format -msgid "-k\t\t\tgenerate PIC\n" -msgstr "-k\t\t\tgenera PIC\n" - -#: config/tc-sparc.c:736 +#: config/tc-sparc.c:681 #, c-format msgid "" "-32\t\t\tcreate 32 bit object file\n" @@ -16226,12 +18792,12 @@ msgstr "" "-32\t\t\tcrea ficheros objeto de 32 bits\n" "-64\t\t\tcrea ficheros objeto de 64 bits\n" -#: config/tc-sparc.c:739 +#: config/tc-sparc.c:684 #, c-format msgid "\t\t\t[default is %d]\n" msgstr "\t\t\t[por defecto es %d]\n" -#: config/tc-sparc.c:741 +#: config/tc-sparc.c:686 #, c-format msgid "" "-TSO\t\t\tuse Total Store Ordering\n" @@ -16242,12 +18808,12 @@ msgstr "" "-PSO\t\t\tusa el Ordenamiento de Almacenamiento Parcial\n" "-RMO\t\t\tusa el Ordenamiento de Memoria Relajado\n" -#: config/tc-sparc.c:745 +#: config/tc-sparc.c:690 #, c-format msgid "\t\t\t[default is %s]\n" msgstr "\t\t\t[por defecto es %s]\n" -#: config/tc-sparc.c:747 +#: config/tc-sparc.c:692 #, c-format msgid "" "-KPIC\t\t\tgenerate PIC\n" @@ -16271,7 +18837,7 @@ msgstr "" "-Qy, -Qn\t\t se descarta\n" "-s\t\t\t se descarta\n" -#: config/tc-sparc.c:760 +#: config/tc-sparc.c:704 #, c-format msgid "" "-EL\t\t\tgenerate code for a little endian machine\n" @@ -16284,361 +18850,348 @@ msgstr "" "--little-endian-data\tgenera código para una máquina que tenga\n" " instrucciones big endian y datos little endian.\n" -#: config/tc-sparc.c:1027 +#: config/tc-sparc.c:968 #, c-format msgid "Internal error: losing opcode: `%s' \"%s\"\n" msgstr "Error interno: se pierde el código operacional: «%s» «%s»\n" -#: config/tc-sparc.c:1046 +#: config/tc-sparc.c:987 #, c-format msgid "Internal error: can't find opcode `%s' for `%s'\n" msgstr "Error interno: no se puede encontrar el código operacional «%s» para «%s»\n" -#: config/tc-sparc.c:1264 +#: config/tc-sparc.c:1203 msgid "Support for 64-bit arithmetic not compiled in." msgstr "No se compiló el soporte para aritmética de 64-bit." -#: config/tc-sparc.c:1310 +#: config/tc-sparc.c:1249 msgid "set: number not in 0..4294967295 range" msgstr "conjunto: el número no está en el límite 0..4294967295" -#: config/tc-sparc.c:1317 +#: config/tc-sparc.c:1256 msgid "set: number not in -2147483648..4294967295 range" msgstr "conjunto: el número no está en el límite -2147483648..4294967295" -#: config/tc-sparc.c:1376 +#: config/tc-sparc.c:1315 msgid "setsw: number not in -2147483648..4294967295 range" msgstr "conjunto sw: el número no está en el límite -2147483648..4294967295" -#: config/tc-sparc.c:1424 +#: config/tc-sparc.c:1363 msgid "setx: temporary register same as destination register" msgstr "setx: el registro temporal es el mismo que el registro destino" -#: config/tc-sparc.c:1495 +#: config/tc-sparc.c:1434 msgid "setx: illegal temporary register g0" msgstr "setx: registro temporal ilegal g0" -#: config/tc-sparc.c:1603 +#: config/tc-sparc.c:1542 msgid "unpredictable DCTI couple" msgstr "pareja DCTI impredecible" -#: config/tc-sparc.c:1613 +#: config/tc-sparc.c:1552 msgid "FP branch in delay slot" msgstr "FP ramificado en ranura retrasada" -#: config/tc-sparc.c:1629 -msgid "FP branch preceded by FP instruction; NOP inserted" +#: config/tc-sparc.c:1569 +#, fuzzy +#| msgid "FP branch preceded by FP instruction; NOP inserted" +msgid "FP branch preceded by FP compare; NOP inserted" msgstr "FP ramificado precedió por instrucción FP; se insertó NOP" -#: config/tc-sparc.c:1669 +#: config/tc-sparc.c:1609 msgid "failed special case insn sanity check" -msgstr "falló prueba de sensatez de la insn case especial" +msgstr "la inspección sanitaria de la insn case especial ha fallado" -#: config/tc-sparc.c:1857 +#: config/tc-sparc.c:1797 msgid ": invalid membar mask name" msgstr ": nombre inválido de máscara membar" -#: config/tc-sparc.c:1873 +#: config/tc-sparc.c:1813 msgid ": invalid membar mask expression" msgstr ": expresión no válida de máscara membar" -#: config/tc-sparc.c:1878 +#: config/tc-sparc.c:1818 msgid ": invalid membar mask number" msgstr ": número inválido de máscara membar" -#: config/tc-sparc.c:1893 +#: config/tc-sparc.c:1833 msgid ": invalid siam mode expression" msgstr ": modo expresiva siam no válida" -#: config/tc-sparc.c:1898 +#: config/tc-sparc.c:1838 msgid ": invalid siam mode number" msgstr ": modo numérico siam inválido" -#: config/tc-sparc.c:1914 +#: config/tc-sparc.c:1854 msgid ": invalid prefetch function name" msgstr ": nombre de función de precargado inválido" -#: config/tc-sparc.c:1922 +#: config/tc-sparc.c:1862 msgid ": invalid prefetch function expression" msgstr ": expresión de función de precargado no válida" -#: config/tc-sparc.c:1927 +#: config/tc-sparc.c:1867 msgid ": invalid prefetch function number" msgstr ": número de función de precargado inválido" -#: config/tc-sparc.c:1954 config/tc-sparc.c:1960 config/tc-sparc.c:1969 +#: config/tc-sparc.c:1894 config/tc-sparc.c:1900 config/tc-sparc.c:1909 msgid ": unrecognizable privileged register" msgstr ": registro privilegiado no reconocido" -#: config/tc-sparc.c:1992 config/tc-sparc.c:1998 config/tc-sparc.c:2007 +#: config/tc-sparc.c:1932 config/tc-sparc.c:1938 config/tc-sparc.c:1947 msgid ": unrecognizable hyperprivileged register" msgstr ": registro hiperprivilegiado no reconocido" -#: config/tc-sparc.c:2030 config/tc-sparc.c:2036 config/tc-sparc.c:2045 +#: config/tc-sparc.c:1970 config/tc-sparc.c:1976 config/tc-sparc.c:1985 msgid ": unrecognizable ancillary state register" msgstr ": registro estatal auxiliar no reconocible" -#: config/tc-sparc.c:2078 +#: config/tc-sparc.c:2018 msgid ": asr number must be between 0 and 31" msgstr ": el número asr debe estar entre 0 y 31" -#: config/tc-sparc.c:2087 +#: config/tc-sparc.c:2027 #, c-format msgid ": expecting %asrN" msgstr ": suponiendo %asrN" -#: config/tc-sparc.c:2129 +#: config/tc-sparc.c:2069 msgid ": crypto immediate must be between 0 and 31" msgstr ": cripto inmediato debe estar entre 0 y 31" -#: config/tc-sparc.c:2138 +#: config/tc-sparc.c:2078 msgid ": expecting crypto immediate" msgstr ": suponiendo criptograma inmediato" -#: config/tc-sparc.c:2299 config/tc-sparc.c:2338 config/tc-sparc.c:2765 -#: config/tc-sparc.c:2801 +#: config/tc-sparc.c:2239 config/tc-sparc.c:2278 config/tc-sparc.c:2706 +#: config/tc-sparc.c:2742 #, c-format msgid "Illegal operands: %%%s requires arguments in ()" msgstr "Operandos ilegales: %%%s requiere de argumentos en ()" -#: config/tc-sparc.c:2306 +#: config/tc-sparc.c:2246 #, c-format msgid "Illegal operands: %%%s cannot be used together with other relocs in the insn ()" msgstr "Operandos ilegales: %%%s no se pueden usar junto con otras reubicaciones en la insn ()" -#: config/tc-sparc.c:2317 +#: config/tc-sparc.c:2257 #, c-format msgid "Illegal operands: %%%s can be only used with call __tls_get_addr" -msgstr "Operandos ilegales: %%%s sólo se pueden usar con la llamada __tls_get_addr" +msgstr "Operandos ilegales: %%%s solo se pueden usar con la llamada __tls_get_addr" -#: config/tc-sparc.c:2524 +#: config/tc-sparc.c:2464 msgid "detected global register use not covered by .register pseudo-op" msgstr "se detectó el uso de un registro global que no está cubierto por el pseudo-operador .register" -#: config/tc-sparc.c:2626 +#: config/tc-sparc.c:2566 msgid ": There are only 64 f registers; [0-63]" msgstr ": Solamente hay 64 registros f; [0-63]" -#: config/tc-sparc.c:2628 config/tc-sparc.c:2646 +#: config/tc-sparc.c:2568 config/tc-sparc.c:2586 msgid ": There are only 32 f registers; [0-31]" msgstr ": Solamente hay 32 registros f; [0-31]" -#: config/tc-sparc.c:2638 +#: config/tc-sparc.c:2578 msgid ": There are only 32 single precision f registers; [0-31]" msgstr ": Solamente hay 32 registros f de precisión sencilla; [0-31]" -#: config/tc-sparc.c:2659 +#: config/tc-sparc.c:2631 msgid ": Instruction requires frs2 and frsd must be the same register" msgstr ": Instrucción requiere frs2 y frsd deben estar el mismo registro" -#: config/tc-sparc.c:2810 +#: config/tc-sparc.c:2751 #, c-format msgid "Expression inside %%%s could not be parsed" msgstr "Expresión interna %%%s no pudo ser interpretado" -#: config/tc-sparc.c:2818 +#: config/tc-sparc.c:2759 #, c-format msgid "Illegal operands: Can't do arithmetics other than + and - involving %%%s()" msgstr "Operandos ilegales: No se puede hacer aritmética aparte de + y - que involucre %%%s()" -#: config/tc-sparc.c:2935 +#: config/tc-sparc.c:2876 #, c-format msgid "Illegal operands: Can't add non-constant expression to %%%s()" msgstr "Operandos ilegales: No se puede añadir una expresión que no es constante a %%%s()" -#: config/tc-sparc.c:2945 +#: config/tc-sparc.c:2886 #, c-format msgid "Illegal operands: Can't do arithmetics involving %%%s() of a relocatable symbol" msgstr "Operandos ilegales: No se puede hacer aritmética que involucre a %%%s() de un símbolo reubicable" -#: config/tc-sparc.c:2963 +#: config/tc-sparc.c:2904 msgid ": PC-relative operand can't be a constant" msgstr ": operando relativo a PC no puede ser una constante" -#: config/tc-sparc.c:2970 +#: config/tc-sparc.c:2911 msgid ": TLS operand can't be a constant" msgstr ": operando TLS no puede ser una constante" -#: config/tc-sparc.c:2998 +#: config/tc-sparc.c:2939 msgid ": Immediate value in cbcond is out of range." -msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de límite." +msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango." -#: config/tc-sparc.c:3024 +#: config/tc-sparc.c:2965 msgid ": invalid ASI name" msgstr ": nombre ASI inválido" -#: config/tc-sparc.c:3033 +#: config/tc-sparc.c:2974 msgid ": invalid ASI expression" msgstr ": expresión ASI no válida" -#: config/tc-sparc.c:3038 +#: config/tc-sparc.c:2979 msgid ": invalid ASI number" msgstr ": número ASI inválido" -#: config/tc-sparc.c:3143 +#: config/tc-sparc.c:3084 msgid ": non-immdiate imm2 operand" msgstr ": operando imm2 no inmediato" -#: config/tc-sparc.c:3148 +#: config/tc-sparc.c:3089 msgid ": imm2 immediate operand out of range (0-3)" -msgstr ": operando inmediato imm2 fuera de límite (0-3)" +msgstr ": operando inmediato imm2 fuera de rango (0-3)" -#: config/tc-sparc.c:3167 +#: config/tc-sparc.c:3108 msgid "OPF immediate operand out of range (0-0x1ff)" -msgstr "Operando inmediato OPF fuera de límite (0-0x1ff)" +msgstr "Operando inmediato OPF fuera de rango (0-0x1ff)" -#: config/tc-sparc.c:3172 +#: config/tc-sparc.c:3113 msgid "non-immediate OPF operand, ignored" msgstr "operando OPF que no es inmediato, se descarta" -#: config/tc-sparc.c:3191 +#: config/tc-sparc.c:3132 msgid ": invalid cpreg name" msgstr ": nombre cpreg inválido" -#: config/tc-sparc.c:3220 +#: config/tc-sparc.c:3161 #, c-format msgid "Illegal operands%s" msgstr "Operandos ilegales%s" -#: config/tc-sparc.c:3270 +#: config/tc-sparc.c:3210 #, c-format msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\"" msgstr "la arquitectura saltó de «%s» a «%s» en «%s»" -#: config/tc-sparc.c:3311 +#: config/tc-sparc.c:3251 #, c-format msgid "Architecture mismatch on \"%s %s\"." msgstr "Arquitectura incoherente en \"%s %s\"." -#: config/tc-sparc.c:3312 +#: config/tc-sparc.c:3252 #, c-format msgid "(Requires %s; requested architecture is %s.)" msgstr "(Requiere %s; arquitectura solicitada es %s.)" -#: config/tc-sparc.c:3324 +#: config/tc-sparc.c:3264 #, c-format msgid "Hardware capability \"%s\" not enabled for \"%s\"." msgstr "La capacidad de hardware «%s» no se activó para «%s»." -#: config/tc-sparc.c:3753 config/tc-sparc.c:3760 config/tc-sparc.c:3767 -#: config/tc-sparc.c:3774 config/tc-sparc.c:3781 config/tc-sparc.c:3790 -#: config/tc-sparc.c:3802 config/tc-sparc.c:3813 config/tc-sparc.c:3835 -#: config/tc-sparc.c:3859 write.c:1176 +#: config/tc-sparc.c:3650 config/tc-sparc.c:3657 config/tc-sparc.c:3664 +#: config/tc-sparc.c:3671 config/tc-sparc.c:3678 config/tc-sparc.c:3687 +#: config/tc-sparc.c:3699 config/tc-sparc.c:3710 config/tc-sparc.c:3732 +#: config/tc-sparc.c:3756 write.c:1211 msgid "relocation overflow" msgstr "desbordamiento de reubicación" -#: config/tc-sparc.c:3914 +#: config/tc-sparc.c:3811 #, c-format msgid "bad or unhandled relocation type: 0x%02x" -msgstr "tipo reubicado equivocada o sin manipular: 0x%02x" +msgstr "tipo reubicado incorrecta o sin manipular: 0x%02x" -#: config/tc-sparc.c:4273 +#: config/tc-sparc.c:4126 msgid "Expected comma after name" msgstr "Se esperaba una coma tras nombre" -#: config/tc-sparc.c:4282 +#: config/tc-sparc.c:4135 #, c-format msgid "BSS length (%d.) <0! Ignored." msgstr "¡Longitud BSS (%d.) <0! Se descarta." -#: config/tc-sparc.c:4294 +#: config/tc-sparc.c:4147 msgid "bad .reserve segment -- expected BSS segment" -msgstr "segmento .reserve equivocado -- se esperaba el segmento BSS" - -#: config/tc-sparc.c:4322 -#, c-format -msgid "alignment too large; assuming %d" -msgstr "alineamiento demasiado grande; se asume %d" +msgstr "segmento .reserve incorrecto -- se esperaba el segmento BSS" -#: config/tc-sparc.c:4328 config/tc-sparc.c:4477 +#: config/tc-sparc.c:4173 config/tc-sparc.c:4300 msgid "negative alignment" msgstr "alineamiento negativa" -#: config/tc-sparc.c:4338 config/tc-sparc.c:4499 read.c:1522 read.c:2540 +#: config/tc-sparc.c:4183 config/tc-sparc.c:4321 read.c:1588 read.c:2631 msgid "alignment not a power of 2" msgstr "la alineamiento no es una potencia de 2" -#: config/tc-sparc.c:4391 +#: config/tc-sparc.c:4229 #, c-format msgid "Ignoring attempt to re-define symbol %s" msgstr "Se ignora el intento de redefinir el símbolo %s" -#: config/tc-sparc.c:4414 config/tc-v850.c:283 +#: config/tc-sparc.c:4252 config/tc-v850.c:280 msgid "Expected comma after symbol-name" msgstr "Se esperaba una coma tras nombre del símbolo" -#: config/tc-sparc.c:4424 +#: config/tc-sparc.c:4262 #, c-format msgid ".COMMon length (%lu) out of range ignored" -msgstr "longitud .COMMún (%lu) fuera de límite descartado" +msgstr "longitud .COMMún (%lu) fuera de rango descartado" -#: config/tc-sparc.c:4457 +#: config/tc-sparc.c:4288 msgid "Expected comma after common length" msgstr "Se esperaba una coma tras la longitud común" -#: config/tc-sparc.c:4471 -#, c-format -msgid "alignment too large; assuming %ld" -msgstr "alineamiento demasiado grande; se asume %ld" - -#: config/tc-sparc.c:4614 +#: config/tc-sparc.c:4433 msgid "Unknown segment type" msgstr "Tipo de segmento desconocido" -#: config/tc-sparc.c:4684 config/tc-sparc.c:4693 +#: config/tc-sparc.c:4502 config/tc-sparc.c:4511 #, c-format msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}" msgstr "la sintaxis de registro es .register %%g[2367],{#scratch|nombresimbolo|#ignore}" -#: config/tc-sparc.c:4711 +#: config/tc-sparc.c:4529 msgid "redefinition of global register" msgstr "redefinición del registro global" -#: config/tc-sparc.c:4722 +#: config/tc-sparc.c:4540 #, c-format msgid "Register symbol %s already defined." msgstr "El símbolo de registro %s ya estaba definido." -#: config/tc-sparc.c:4926 +#: config/tc-sparc.c:4742 #, c-format msgid "Illegal operands: %%r_plt in %d-byte data field" msgstr "Operandos ilegales: %%r_plt en el campo de datos de %d-bytes" -#: config/tc-sparc.c:4936 +#: config/tc-sparc.c:4752 #, c-format msgid "Illegal operands: %%r_tls_dtpoff in %d-byte data field" msgstr "Operandos ilegales: %%r_tls_dtpoff en el campo de datos de %d-bytes" -#: config/tc-sparc.c:4973 config/tc-vax.c:3317 +#: config/tc-sparc.c:4789 config/tc-vax.c:3271 #, c-format msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields" -msgstr "Operandos ilegales: sólo se permite %%r_%s%d en campos de datos de %d-bytes" +msgstr "Operandos ilegales: solo se permite %%r_%s%d en campos de datos de %d-bytes" -#: config/tc-sparc.c:4981 config/tc-sparc.c:5012 config/tc-sparc.c:5021 -#: config/tc-vax.c:3325 config/tc-vax.c:3356 config/tc-vax.c:3365 +#: config/tc-sparc.c:4797 config/tc-sparc.c:4828 config/tc-sparc.c:4837 +#: config/tc-vax.c:3279 config/tc-vax.c:3310 config/tc-vax.c:3319 #, c-format msgid "Illegal operands: %%r_%s%d requires arguments in ()" msgstr "Operandos ilegales: %%r_%s%d requiere argumentos en ()" -#: config/tc-sparc.c:5030 config/tc-vax.c:3374 +#: config/tc-sparc.c:4846 config/tc-vax.c:3328 #, c-format msgid "Illegal operands: garbage after %%r_%s%d()" msgstr "Operandos ilegales: hay basura tras %%r_%s%d()" -#: config/tc-sparc.h:63 +#: config/tc-sparc.h:66 msgid "sparc convert_frag\n" msgstr "convert_frag de sparc\n" -#: config/tc-sparc.h:65 config/tc-z80.h:53 +#: config/tc-sparc.h:68 config/tc-z80.h:54 msgid "estimate_size_before_relax called" msgstr "se llamó a estimate_size_before_relax" -#: config/tc-spu.c:130 -#, c-format -msgid "Can't hash instruction '%s':%s" -msgstr "No se puede dispersar la instrucción «%s»:%s" - -#: config/tc-spu.c:184 +#: config/tc-spu.c:172 msgid "" "SPU options:\n" " --apuasm\t\t emulate behaviour of apuasm\n" @@ -16646,68 +19199,68 @@ msgstr "" "Opciones de SPU:\n" " --apuasm\t\t emula el comportamiento de apuasm\n" -#: config/tc-spu.c:290 +#: config/tc-spu.c:278 #, c-format msgid "Invalid mnemonic '%s'" msgstr "Mnemónico inválido «%s»" -#: config/tc-spu.c:296 +#: config/tc-spu.c:284 #, c-format msgid "'%s' is only available in DD2.0 or higher." -msgstr "«%s» sólo es disponible en DD2.0 o superior." +msgstr "«%s» solo es disponible en DD2.0 o superior." -#: config/tc-spu.c:328 +#: config/tc-spu.c:316 #, c-format msgid "Error in argument %d. Expecting: \"%s\"" msgstr "Error en el argumento %d. Se esperaba: «%s»" -#: config/tc-spu.c:339 +#: config/tc-spu.c:327 msgid "Mixing register syntax, with and without '$'." msgstr "Se mezcla la sintaxis del registro, con y sin '$'." -#: config/tc-spu.c:345 +#: config/tc-spu.c:333 #, c-format msgid "Treating '%-*s' as a symbol." msgstr "Tratando '%-*s' como un símbolo." -#: config/tc-spu.c:564 +#: config/tc-spu.c:552 msgid "'SPU_RdEventMask' (channel 11) is only available in DD2.0 or higher." -msgstr "'SPU_RdEventMask' (canal 11) sólo es disponible en DD2.0 o superior." +msgstr "'SPU_RdEventMask' (canal 11) solo es disponible en DD2.0 o superior." -#: config/tc-spu.c:566 +#: config/tc-spu.c:554 msgid "'MFC_RdTagMask' (channel 12) is only available in DD2.0 or higher." -msgstr "'MFC_RdTagMask' (canal 12) sólo es disponible en DD2.0 o superior." +msgstr "'MFC_RdTagMask' (canal 12) solo es disponible en DD2.0 o superior." -#: config/tc-spu.c:609 +#: config/tc-spu.c:598 #, c-format msgid "Using old style, %%lo(expr), please change to PPC style, expr@l." msgstr "Utilizando estilo antiguo, %%lo(expr), por favor modifique al estilo PPC, expr@l." -#: config/tc-spu.c:615 +#: config/tc-spu.c:604 #, c-format msgid "Using old style, %%hi(expr), please change to PPC style, expr@h." msgstr "Utilizando estilo antiguo, %%hi(expr), por favor modifique al estilo PPC, expr@h." -#: config/tc-spu.c:685 config/tc-spu.c:688 +#: config/tc-spu.c:674 config/tc-spu.c:677 #, c-format msgid "Constant expression %d out of range, [%d, %d]." -msgstr "Expresión constante %d fuera de límite, [%d, %d]." +msgstr "Expresión constante %d fuera de rango, [%d, %d]." -#: config/tc-spu.c:790 +#: config/tc-spu.c:779 #, c-format msgid "invalid priority '%lu'" msgstr "prioridad no válida '%lu'" -#: config/tc-spu.c:796 +#: config/tc-spu.c:785 #, c-format msgid "invalid lrlive '%lu'" msgstr "invalida ‘lrlive’ '%lu'" -#: config/tc-spu.c:855 +#: config/tc-spu.c:859 msgid "Relaxation should never occur" msgstr "La relajación nunca debe ocurrir" -#: config/tc-spu.c:1005 +#: config/tc-spu.c:1004 #, c-format msgid "Relocation doesn't fit. (relocation value = 0x%lx)" msgstr "La reubicación no cabe. (valor reubicado = 0x%lx)" @@ -16736,387 +19289,387 @@ msgstr "cuarto" msgid "fifth" msgstr "quinto" -#: config/tc-tic30.c:482 +#: config/tc-tic30.c:460 msgid "More than one AR register found in indirect reference" msgstr "Se encontró más un registro AR en la referencia indirecta" -#: config/tc-tic30.c:488 +#: config/tc-tic30.c:466 msgid "Illegal AR register in indirect reference" msgstr "Registro AR ilegal en la referencia indirecta" -#: config/tc-tic30.c:509 +#: config/tc-tic30.c:487 msgid "More than one displacement found in indirect reference" msgstr "Se encontró más de un desplazamiento en la referencia indirecta" -#: config/tc-tic30.c:518 +#: config/tc-tic30.c:496 msgid "Invalid displacement in indirect reference" msgstr "Desplazamiento inválido en la referencia indirecta" -#: config/tc-tic30.c:536 +#: config/tc-tic30.c:514 msgid "AR register not found in indirect reference" msgstr "No se encontró el registro AR en la referencia indirecta" #. Maybe an implied displacement of 1 again. -#: config/tc-tic30.c:553 +#: config/tc-tic30.c:531 msgid "required displacement wasn't given in indirect reference" msgstr "no se dio el desplazamiento requerido en la referencia indirecta" -#: config/tc-tic30.c:560 +#: config/tc-tic30.c:538 msgid "illegal indirect reference" msgstr "referencia indirecta ilegal" -#: config/tc-tic30.c:567 +#: config/tc-tic30.c:545 msgid "displacement must be an unsigned 8-bit number" msgstr "el desplazamiento debe ser un número de 8-bit sin signo" -#: config/tc-tic30.c:751 config/tc-tic30.c:1498 +#: config/tc-tic30.c:729 config/tc-tic30.c:1475 #, c-format msgid "Invalid character %s before %s operand" msgstr "Carácter inválido %s antes de operando %s" -#: config/tc-tic30.c:770 config/tc-tic30.c:1513 +#: config/tc-tic30.c:748 config/tc-tic30.c:1490 #, c-format msgid "Unbalanced parenthesis in %s operand." msgstr "Paréntesis sin balancear en operando %s." -#: config/tc-tic30.c:786 config/tc-tic30.c:1523 +#: config/tc-tic30.c:764 config/tc-tic30.c:1500 #, c-format msgid "Invalid character %s in %s operand" msgstr "Carácter inválido %s en operando %s" -#: config/tc-tic30.c:805 config/tc-tic30.c:1540 +#: config/tc-tic30.c:783 config/tc-tic30.c:1517 #, c-format msgid "Spurious operands; (%d operands/instruction max)" msgstr "Operandos espurios; (%d operandos/instrucción máximo)" #. Just skip it, if it's \n complain. -#: config/tc-tic30.c:823 config/tc-tic30.c:839 config/tc-tic30.c:1557 -#: config/tc-tic30.c:1573 +#: config/tc-tic30.c:801 config/tc-tic30.c:817 config/tc-tic30.c:1534 +#: config/tc-tic30.c:1550 msgid "Expecting operand after ','; got nothing" msgstr "Se esperaba un operando tras ','; se obtuvo nada" -#: config/tc-tic30.c:828 config/tc-tic30.c:1562 +#: config/tc-tic30.c:806 config/tc-tic30.c:1539 msgid "Expecting operand before ','; got nothing" msgstr "Se esperaba un operando antes de ','; se obtuvo nada" -#: config/tc-tic30.c:866 +#: config/tc-tic30.c:844 msgid "incorrect number of operands given in the first instruction" msgstr "número de operandos dados incorrecto en la primera instrucción" -#: config/tc-tic30.c:872 +#: config/tc-tic30.c:850 msgid "incorrect number of operands given in the second instruction" msgstr "número de operandos dados incorrecto en la segunda instrucción" -#: config/tc-tic30.c:893 +#: config/tc-tic30.c:871 #, c-format msgid "%s instruction, operand %d doesn't match" msgstr "instrucción %s, operando %d no coincide" #. Shouldn't get here. -#: config/tc-tic30.c:917 config/tc-tic30.c:924 +#: config/tc-tic30.c:895 config/tc-tic30.c:902 msgid "incorrect format for multiply parallel instruction" msgstr "formato incorrecto para la instrucción paralela multiply" -#: config/tc-tic30.c:931 +#: config/tc-tic30.c:909 msgid "destination for multiply can only be R0 or R1" -msgstr "el destino para multiply sólo puede ser R0 o R1" +msgstr "el destino para multiply solo puede ser R0 o R1" -#: config/tc-tic30.c:938 +#: config/tc-tic30.c:916 msgid "destination for add/subtract can only be R2 or R3" -msgstr "el destino para add/substract sólo puede ser R2 o R3" +msgstr "el destino para add/substract solo puede ser R2 o R3" -#: config/tc-tic30.c:1005 +#: config/tc-tic30.c:983 msgid "loading the same register in parallel operation" msgstr "se carga el mismo registro en la operación paralela" -#: config/tc-tic30.c:1448 +#: config/tc-tic30.c:1425 #, c-format msgid "Invalid character %s in opcode" msgstr "Carácter inválido %s en el código operacional" -#: config/tc-tic30.c:1478 +#: config/tc-tic30.c:1455 #, c-format msgid "Unknown TMS320C30 instruction: %s" msgstr "Instrucción TMS320C30 desconocida: %s" -#: config/tc-tic30.c:1598 +#: config/tc-tic30.c:1575 msgid "Incorrect number of operands given" msgstr "Número incorrecto de operandos dados" -#: config/tc-tic30.c:1631 +#: config/tc-tic30.c:1608 #, c-format msgid "The %s operand doesn't match" msgstr "Operando %s no coincide" #. Shouldn't make it to this stage. -#: config/tc-tic30.c:1656 config/tc-tic30.c:1668 +#: config/tc-tic30.c:1633 config/tc-tic30.c:1645 msgid "Incompatible first and second operands in instruction" msgstr "Primer y segundo operandos incompatibles en la instrucción" -#: config/tc-tic30.c:1782 +#: config/tc-tic30.c:1759 msgid "invalid short form floating point immediate operand" msgstr "forma short no válida de operando inmediato de coma flotante" -#: config/tc-tic30.c:1792 +#: config/tc-tic30.c:1769 msgid "rounding down first operand float to unsigned int" msgstr "se redondea hacia abajo el primer operando de coma flotante a entero sin signo" -#: config/tc-tic30.c:1794 +#: config/tc-tic30.c:1771 msgid "only lower 16-bits of first operand are used" -msgstr "sólo se usan los 16 bits inferiores del primer operando" +msgstr "solo se usan los 16 bits inferiores del primer operando" -#: config/tc-tic30.c:1804 +#: config/tc-tic30.c:1781 msgid "rounding down first operand float to signed int" msgstr "se redondea hacia aboajo el primer operando de coma flotante a entero con signo" -#: config/tc-tic30.c:1809 config/tc-tic30.c:1880 +#: config/tc-tic30.c:1786 config/tc-tic30.c:1857 msgid "first operand is too large for 16-bit signed int" msgstr "el primer operando es demasiado grande para entero con signo de 16-bit" -#: config/tc-tic30.c:1874 +#: config/tc-tic30.c:1851 msgid "first operand is floating point" msgstr "el primer operando es número de coma flotante" #. Shouldn't get here. -#: config/tc-tic30.c:1905 +#: config/tc-tic30.c:1882 msgid "interrupt vector for trap instruction out of range" -msgstr "el vector de interrupción para la instrucción trap está fuera de límite" +msgstr "el vector de interrupción para la instrucción trap está fuera de rango" -#: config/tc-tic30.c:1950 +#: config/tc-tic30.c:1927 msgid "LDP instruction needs a 24-bit operand" msgstr "La instrucción LDP requiere un operando de 24-bit" -#: config/tc-tic30.c:1974 +#: config/tc-tic30.c:1951 msgid "first operand is too large for a 24-bit displacement" msgstr "el primer operando es demasiado grande para un desplazamiento de 24-bit" -#: config/tc-tic4x.c:392 +#: config/tc-tic4x.c:390 msgid "Nan, using zero." msgstr "Nan, se usa cero." -#: config/tc-tic4x.c:514 +#: config/tc-tic4x.c:508 #, c-format msgid "Cannot represent exponent in %d bits" msgstr "No se puede representar el exponente en %d bits" -#: config/tc-tic4x.c:597 config/tc-tic4x.c:607 +#: config/tc-tic4x.c:591 config/tc-tic4x.c:601 msgid "Invalid floating point number" msgstr "Número de coma flotante inválido" -#: config/tc-tic4x.c:726 +#: config/tc-tic4x.c:722 msgid "Comma expected\n" msgstr "Se esperaba una coma\n" -#: config/tc-tic4x.c:762 config/tc-tic54x.c:471 +#: config/tc-tic4x.c:756 config/tc-tic54x.c:498 msgid ".bss size argument missing\n" msgstr "Ausente el tamaño del argumento .bss\n" -#: config/tc-tic4x.c:770 +#: config/tc-tic4x.c:764 #, c-format msgid ".bss size %ld < 0!" msgstr "¡Tamaño de .bss %ld < 0!" -#: config/tc-tic4x.c:903 +#: config/tc-tic4x.c:897 msgid "Non-constant symbols not allowed\n" msgstr "No se permiten símbolos que no sean constantes\n" -#: config/tc-tic4x.c:934 +#: config/tc-tic4x.c:928 msgid "Symbol missing\n" msgstr "Ausente símbolo\n" #. Skip null symbol terminator. -#: config/tc-tic4x.c:982 +#: config/tc-tic4x.c:976 msgid ".sect: subsection name ignored" msgstr ".sect: se ignora el nombre de la subsección" -#: config/tc-tic4x.c:1010 config/tc-tic4x.c:1111 config/tc-tic54x.c:1424 +#: config/tc-tic4x.c:1004 config/tc-tic4x.c:1105 config/tc-tic54x.c:1482 #, c-format msgid "Error setting flags for \"%s\": %s" msgstr "Error al establecer las casillas para «%s»: %s" -#: config/tc-tic4x.c:1042 +#: config/tc-tic4x.c:1036 msgid ".set syntax invalid\n" msgstr "sintaxis de .set no válida\n" -#: config/tc-tic4x.c:1100 +#: config/tc-tic4x.c:1094 msgid ".usect: non-zero alignment flag ignored" msgstr ".usect: se descarta la opción de alineamiento que no es cero" -#: config/tc-tic4x.c:1131 +#: config/tc-tic4x.c:1125 #, c-format msgid "This assembler does not support processor generation %ld" msgstr "Este ensamblador no admite la generación de procesador %ld" -#: config/tc-tic4x.c:1135 +#: config/tc-tic4x.c:1129 msgid "Changing processor generation on fly not supported..." msgstr "No se admite la generación de cambio del procesador al vuelo..." -#: config/tc-tic4x.c:1433 +#: config/tc-tic4x.c:1416 msgid "Auxiliary register AR0--AR7 required for indirect" msgstr "Se requiere un registro auxiliar AR0--AR7 para el indirecto" -#: config/tc-tic4x.c:1447 +#: config/tc-tic4x.c:1430 #, c-format msgid "Bad displacement %d (require 0--255)\n" -msgstr "Desplazamiento %d equivocado (se requiere 0--255)\n" +msgstr "Desplazamiento %d incorrecto (se requiere 0--255)\n" -#: config/tc-tic4x.c:1465 +#: config/tc-tic4x.c:1448 msgid "Index register IR0,IR1 required for displacement" msgstr "Se requiere un registro índice IR0,IR1 para el desplazamiento" -#: config/tc-tic4x.c:1533 +#: config/tc-tic4x.c:1516 msgid "Expecting a register name" msgstr "Se espera un nombre de registro" -#: config/tc-tic4x.c:1545 config/tc-tic4x.c:1568 config/tc-tic4x.c:1634 +#: config/tc-tic4x.c:1528 config/tc-tic4x.c:1551 config/tc-tic4x.c:1617 msgid "Number too large" msgstr "Número demasiado grande" -#: config/tc-tic4x.c:1558 config/tc-tic4x.c:1581 +#: config/tc-tic4x.c:1541 config/tc-tic4x.c:1564 msgid "Expecting a constant value" msgstr "Se espera un valor constante" -#: config/tc-tic4x.c:1589 +#: config/tc-tic4x.c:1572 #, c-format msgid "Bad direct addressing construct %s" -msgstr "Construcción de direccionamiento directo %s equivocada" +msgstr "Construcción de direccionamiento directo %s incorrecta" -#: config/tc-tic4x.c:1593 +#: config/tc-tic4x.c:1576 #, c-format msgid "Direct value of %ld is not suitable" msgstr "El valor directo de %ld no es adecuado" -#: config/tc-tic4x.c:1617 +#: config/tc-tic4x.c:1600 msgid "Unknown indirect addressing mode" msgstr "Desconoce modo de direccionamiento indirecto %s" -#: config/tc-tic4x.c:1714 +#: config/tc-tic4x.c:1697 #, c-format msgid "Immediate value of %ld is too large for ldf" msgstr "El valor inmediato de %ld es demasiado grande para ldf" -#: config/tc-tic4x.c:1754 +#: config/tc-tic4x.c:1737 msgid "Destination register must be ARn" msgstr "El registro destino debe ser ARn" -#: config/tc-tic4x.c:1773 config/tc-tic4x.c:2146 config/tc-tic4x.c:2205 +#: config/tc-tic4x.c:1756 config/tc-tic4x.c:2129 config/tc-tic4x.c:2188 #, c-format msgid "Immediate value of %ld is too large" msgstr "El valor inmediato de %ld es demasiado grande" -#: config/tc-tic4x.c:1802 config/tc-tic4x.c:2007 +#: config/tc-tic4x.c:1785 config/tc-tic4x.c:1990 msgid "Invalid indirect addressing mode" msgstr "Modo de direccionamiento indirecto inválido" -#: config/tc-tic4x.c:1826 config/tc-tic4x.c:1866 config/tc-tic4x.c:2057 -#: config/tc-tic4x.c:2079 +#: config/tc-tic4x.c:1809 config/tc-tic4x.c:1849 config/tc-tic4x.c:2040 +#: config/tc-tic4x.c:2062 msgid "Register must be Rn" msgstr "El registro debe ser Rn" -#: config/tc-tic4x.c:1880 config/tc-tic4x.c:1950 config/tc-tic4x.c:1964 +#: config/tc-tic4x.c:1863 config/tc-tic4x.c:1933 config/tc-tic4x.c:1947 msgid "Register must be R0--R7" msgstr "El registro debe ser R0--R7" -#: config/tc-tic4x.c:1904 config/tc-tic4x.c:1932 +#: config/tc-tic4x.c:1887 config/tc-tic4x.c:1915 #, c-format msgid "Invalid indirect addressing mode displacement %d" msgstr "Desplazamiento de modo de direccionamiento indirecto %d inválido" -#: config/tc-tic4x.c:1978 +#: config/tc-tic4x.c:1961 msgid "Destination register must be R2 or R3" msgstr "El registro destino debe ser R2 o R3" -#: config/tc-tic4x.c:1992 +#: config/tc-tic4x.c:1975 msgid "Destination register must be R0 or R1" msgstr "El registro destino debe ser R0 o R1" -#: config/tc-tic4x.c:2029 +#: config/tc-tic4x.c:2012 #, c-format msgid "Displacement value of %ld is too large" msgstr "El valor de desplazamiento de %ld es demasiado grande" -#: config/tc-tic4x.c:2090 config/tc-tic4x.c:2221 +#: config/tc-tic4x.c:2073 config/tc-tic4x.c:2204 msgid "Floating point number not valid in expression" msgstr "El número de coma flotante no es válido en la expresión" -#: config/tc-tic4x.c:2104 +#: config/tc-tic4x.c:2087 #, c-format msgid "Signed immediate value %ld too large" msgstr "El valor inmediato con signo %ld es demasiado grande" -#: config/tc-tic4x.c:2167 +#: config/tc-tic4x.c:2150 #, c-format msgid "Unsigned immediate value %ld too large" msgstr "El valor inmediato sin signo %ld es demasiado grande" -#: config/tc-tic4x.c:2235 +#: config/tc-tic4x.c:2218 #, c-format msgid "Immediate value %ld too large" msgstr "El valor inmediato de %ld es demasiado grande" -#: config/tc-tic4x.c:2254 config/tc-tic4x.c:2282 +#: config/tc-tic4x.c:2237 config/tc-tic4x.c:2265 msgid "Register must be ivtp or tvtp" msgstr "El registro debe ser ivtp o tvtp" -#: config/tc-tic4x.c:2268 +#: config/tc-tic4x.c:2251 msgid "Register must be address register" msgstr "El registro debe ser un registro direccional" -#: config/tc-tic4x.c:2341 +#: config/tc-tic4x.c:2324 msgid "Source and destination register should not be equal" msgstr "Los registros fuente y destino no deben ser iguales" -#: config/tc-tic4x.c:2356 +#: config/tc-tic4x.c:2339 #, fuzzy #| msgid "Equal parallell destination registers, one result will be discarded" msgid "Equal parallel destination registers, one result will be discarded" msgstr "Los registros de destino paralelo son iguales, un resultado se descartará" -#: config/tc-tic4x.c:2397 +#: config/tc-tic4x.c:2380 msgid "Too many operands scanned" msgstr "Se analizaron demasiados operandos" -#: config/tc-tic4x.c:2428 +#: config/tc-tic4x.c:2411 msgid "Parallel opcode cannot contain more than two instructions" msgstr "El código operacional paralelo no puede contener más de dos instrucciones" -#: config/tc-tic4x.c:2501 +#: config/tc-tic4x.c:2485 #, c-format msgid "Invalid operands for %s" msgstr "Operandos inválidos para %s" -#: config/tc-tic4x.c:2504 +#: config/tc-tic4x.c:2488 #, c-format msgid "Invalid instruction %s" msgstr "Instrucción %s no válida" -#: config/tc-tic4x.c:2656 +#: config/tc-tic4x.c:2640 #, c-format msgid "Bad relocation type: 0x%02x" -msgstr "Tipo de reubicación equivocado: 0x%02x" +msgstr "Tipo de reubicación incorrecto: 0x%02x" -#: config/tc-tic4x.c:2714 +#: config/tc-tic4x.c:2698 #, c-format msgid "Unsupported processor generation %d" msgstr "No se admite la generación de procesador %d" -#: config/tc-tic4x.c:2722 +#: config/tc-tic4x.c:2706 msgid "Option -b is depreciated, please use -mbig" msgstr "La opción -b es obsoleta, por favor utilice -mbig" -#: config/tc-tic4x.c:2729 +#: config/tc-tic4x.c:2713 msgid "Option -p is depreciated, please use -mmemparm" msgstr "La opción -p es obsoleta, por favor utilice -mmemparm" -#: config/tc-tic4x.c:2736 +#: config/tc-tic4x.c:2720 msgid "Option -r is depreciated, please use -mregparm" msgstr "La opción -r es obsoleta, por favor utilice -mregparm" -#: config/tc-tic4x.c:2743 +#: config/tc-tic4x.c:2727 msgid "Option -s is depreciated, please use -msmall" msgstr "La opción -s es obsoleta, por favor utilice -msmall" -#: config/tc-tic4x.c:2772 +#: config/tc-tic4x.c:2756 #, c-format msgid "" "\n" @@ -17161,433 +19714,439 @@ msgstr "" " -mlowpower activa el soporte para LOPOWER y MAXSPEED\n" " -menhanced activa el soporte para códigos operacionales mejorados\n" -#: config/tc-tic4x.c:2817 +#: config/tc-tic4x.c:2801 #, c-format msgid "Label \"$%d\" redefined" msgstr "Etiqueta «$%d» redefinida" -#: config/tc-tic4x.c:3027 +#: config/tc-tic4x.c:3010 #, c-format msgid "Reloc %d not supported by object file format" msgstr "El formato del fichero objeto no admite la reubicación %d" #. Only word (et al.), align, or conditionals are allowed within #. .struct/.union. -#: config/tc-tic54x.c:219 +#: config/tc-tic54x.c:242 msgid "pseudo-op illegal within .struct/.union" msgstr "pseudo-operación ilegal dentro de .struct/.union" -#: config/tc-tic54x.c:233 +#: config/tc-tic54x.c:256 #, c-format msgid "C54x-specific command line options:\n" msgstr "Opciones de línea de mandatos específicas de C54x:\n" -#: config/tc-tic54x.c:234 +#: config/tc-tic54x.c:257 #, c-format msgid "-mfar-mode | -mf Use extended addressing\n" msgstr "-mfar-mode | -mf Utiliza direccionamiento extendido\n" -#: config/tc-tic54x.c:235 +#: config/tc-tic54x.c:258 #, c-format msgid "-mcpu=<CPU version> Specify the CPU version\n" msgstr "-mcpu=<versión CPU> Especifica la versión del CPU\n" -#: config/tc-tic54x.c:236 +#: config/tc-tic54x.c:259 #, c-format msgid "-merrors-to-file <filename>\n" msgstr "-merrors-to-file <nombre fichero>\n" -#: config/tc-tic54x.c:237 +#: config/tc-tic54x.c:260 #, c-format msgid "-me <filename> Redirect errors to a file\n" msgstr "-me <nombre fichero> Redirige los errores a un fichero\n" -#: config/tc-tic54x.c:348 +#: config/tc-tic54x.c:373 msgid "Comma and symbol expected for '.asg STRING, SYMBOL'" msgstr "Se esperaban una coma y un símbolo para '.asg CADENA, SÍMBOLO'" -#: config/tc-tic54x.c:357 +#: config/tc-tic54x.c:385 msgid "symbols assigned with .asg must begin with a letter" msgstr "los símbolos asignados con .asg deben comenzar con una letra" -#: config/tc-tic54x.c:397 +#: config/tc-tic54x.c:423 msgid "Unterminated string after absolute expression" msgstr "Cadena sin terminar tras una expresión absoluta" -#: config/tc-tic54x.c:405 +#: config/tc-tic54x.c:431 msgid "Comma and symbol expected for '.eval EXPR, SYMBOL'" msgstr "Se esperaban una coma y un símbolo para '.eval EXPR, SÍMBOLO'" -#: config/tc-tic54x.c:415 +#: config/tc-tic54x.c:439 msgid "symbols assigned with .eval must begin with a letter" msgstr "los símbolos asignados con .eval deben comenzar con una letra" -#: config/tc-tic54x.c:480 +#: config/tc-tic54x.c:507 #, c-format msgid ".bss size %d < 0!" msgstr "¡Tamaño de .bss %d < 0!" -#: config/tc-tic54x.c:662 +#: config/tc-tic54x.c:693 msgid "Offset on nested structures is ignored" msgstr "Se descarta el desplazamiento en estructuras anidadas" -#: config/tc-tic54x.c:712 +#: config/tc-tic54x.c:743 #, c-format msgid ".end%s without preceding .%s" msgstr ".end%s sin un .%s precedente" -#: config/tc-tic54x.c:778 +#: config/tc-tic54x.c:809 #, c-format msgid "Unrecognized struct/union tag '%s'" msgstr "No reconocida la marca de struct/union «%s»" -#: config/tc-tic54x.c:780 +#: config/tc-tic54x.c:811 msgid ".tag requires a structure tag" msgstr ".tag requiere una estructura tag" -#: config/tc-tic54x.c:786 +#: config/tc-tic54x.c:817 msgid "Label required for .tag" msgstr "Se requiere una etiqueta para .tag" -#: config/tc-tic54x.c:805 +#: config/tc-tic54x.c:836 #, c-format msgid ".tag target '%s' undefined" msgstr "el objetivo .tag «%s» no está definido" -#: config/tc-tic54x.c:869 +#: config/tc-tic54x.c:900 #, c-format msgid ".field count '%d' out of range (1 <= X <= 32)" -msgstr "la cuenta de .field '%d' está fuera de límite (1 ≤ X ≤ 32)" +msgstr "la cuenta de .field '%d' está fuera de rango (1 ≤ X ≤ 32)" -#: config/tc-tic54x.c:897 +#: config/tc-tic54x.c:928 #, c-format msgid "Unrecognized field type '%c'" msgstr "No reconocido el tipo de campo '%c'" -#: config/tc-tic54x.c:1021 +#: config/tc-tic54x.c:1052 msgid "Overflow in expression, truncated to 8 bits" msgstr "Desbordamiento en la expresión, se trunca a 8 bit" -#: config/tc-tic54x.c:1026 +#: config/tc-tic54x.c:1057 msgid "Overflow in expression, truncated to 16 bits" msgstr "Desbordamiento en la expresión, se trunca a 16 bit" #. Disallow .byte with a non constant expression that will #. require relocation. -#: config/tc-tic54x.c:1034 +#: config/tc-tic54x.c:1065 msgid "Relocatable values require at least WORD storage" msgstr "Los valores reubicables requieren por lo menos almacenamiento WORD" -#: config/tc-tic54x.c:1095 +#: config/tc-tic54x.c:1126 msgid "Use of .def/.ref is deprecated. Use .global instead" msgstr "El uso de .def/.ref es obsoleto. Utilice en su lugar .global" -#: config/tc-tic54x.c:1287 +#: config/tc-tic54x.c:1345 msgid ".space/.bes repeat count is negative, ignored" msgstr "La cuenta de repetición .space/.bes es negativa, se descarta" -#: config/tc-tic54x.c:1292 +#: config/tc-tic54x.c:1350 msgid ".space/.bes repeat count is zero, ignored" msgstr "La cuenta de repetición .space/.bes es cero, se descarta" -#: config/tc-tic54x.c:1365 +#: config/tc-tic54x.c:1423 msgid "Missing size argument" msgstr "Ausente el tamaño del argumento" -#: config/tc-tic54x.c:1499 +#: config/tc-tic54x.c:1557 msgid "CPU version has already been set" msgstr "La versión de CPU ya se había establecido" -#: config/tc-tic54x.c:1503 +#: config/tc-tic54x.c:1561 #, c-format msgid "Unrecognized version '%s'" msgstr "Versión no reconocida «%s»" -#: config/tc-tic54x.c:1509 +#: config/tc-tic54x.c:1567 msgid "Changing of CPU version on the fly not supported" msgstr "No se admite mmodificar la versión del CPU al vuelo" -#: config/tc-tic54x.c:1640 +#: config/tc-tic54x.c:1698 msgid "p2align not supported on this target" msgstr "No se admite p2align en este destino" -#: config/tc-tic54x.c:1652 +#: config/tc-tic54x.c:1710 msgid "Argument to .even ignored" msgstr "Se descarta el argumento para .even" -#: config/tc-tic54x.c:1698 +#: config/tc-tic54x.c:1756 msgid "Invalid field size, must be from 1 to 32" msgstr "Tamaño de campo inválido, debe ser de 1 a 32" -#: config/tc-tic54x.c:1711 +#: config/tc-tic54x.c:1769 msgid "field size must be 16 when value is relocatable" msgstr "el tamaño del campo debe ser 16 cuando el valor es reubicable" -#: config/tc-tic54x.c:1726 +#: config/tc-tic54x.c:1784 msgid "field value truncated" msgstr "se trunca valor del campo" -#: config/tc-tic54x.c:1832 config/tc-tic54x.c:2131 +#: config/tc-tic54x.c:1890 config/tc-tic54x.c:2176 #, c-format msgid "Unrecognized section '%s'" msgstr "No reconocida sección «%s»" -#: config/tc-tic54x.c:1841 +#: config/tc-tic54x.c:1899 msgid "Current section is uninitialized, section name required for .clink" -msgstr "La sección actual está no inicializada, se requirió el nombre seccional para .clink" +msgstr "La sección actual está no inicializada, se requirió el nombre de sección para .clink" -#: config/tc-tic54x.c:2042 +#: config/tc-tic54x.c:2087 msgid "ENDLOOP without corresponding LOOP" msgstr "ENDLOOP sin un LOOP correspondiente" -#: config/tc-tic54x.c:2083 +#: config/tc-tic54x.c:2128 msgid "Mixing of normal and extended addressing not supported" msgstr "No se admite la mezcla de direccionamiento normal y extendido" -#: config/tc-tic54x.c:2089 +#: config/tc-tic54x.c:2134 msgid "Extended addressing not supported on the specified CPU" msgstr "No se admite el direccionamiento extendido en el CPU especificado" -#: config/tc-tic54x.c:2137 +#: config/tc-tic54x.c:2182 msgid ".sblock may be used for initialized sections only" msgstr ".sblock se puede utilizar únicamente para secciones inicializadas" -#: config/tc-tic54x.c:2167 +#: config/tc-tic54x.c:2212 msgid "Symbol missing for .set/.equ" msgstr "Ausente el símbolo para .set/.equ" -#: config/tc-tic54x.c:2223 +#: config/tc-tic54x.c:2267 msgid ".var may only be used within a macro definition" msgstr ".var solamente se puede usar dentro de una definición de macro" -#: config/tc-tic54x.c:2231 +#: config/tc-tic54x.c:2275 msgid "Substitution symbols must begin with a letter" msgstr "Los símbolos de sustitución deben empezar con una letra" -#: config/tc-tic54x.c:2323 +#: config/tc-tic54x.c:2354 #, c-format msgid "can't open macro library file '%s' for reading: %s" msgstr "no se puede abrir el fichero de biblioteca de macro «%s» para lectura: %s" -#: config/tc-tic54x.c:2330 +#: config/tc-tic54x.c:2361 #, c-format msgid "File '%s' not in macro archive format" msgstr "El fichero «%s» no está en el formato de archivo de macro" -#: config/tc-tic54x.c:2460 +#: config/tc-tic54x.c:2491 #, c-format msgid "Bad COFF version '%s'" -msgstr "Versión COFF equivocada «%s»" +msgstr "Versión COFF incorrecta «%s»" -#: config/tc-tic54x.c:2469 +#: config/tc-tic54x.c:2500 #, c-format msgid "Bad CPU version '%s'" -msgstr "Versión CPU equivocada '%s'" +msgstr "Versión CPU incorrecta '%s'" -#: config/tc-tic54x.c:2482 config/tc-tic54x.c:2485 +#: config/tc-tic54x.c:2513 config/tc-tic54x.c:2516 #, c-format msgid "Can't redirect stderr to the file '%s'" msgstr "No se puede redirigir la salida de error estándar al fichero «%s»" -#: config/tc-tic54x.c:2598 +#: config/tc-tic54x.c:2535 +#, fuzzy +#| msgid "macros nested too deeply" +msgid "Macro nesting is too deep" +msgstr "macros anidadas con demasiada profundidad" + +#: config/tc-tic54x.c:2638 #, c-format msgid "Undefined substitution symbol '%s'" msgstr "Símbolo sustitucional sin definir «%s»" -#: config/tc-tic54x.c:3099 +#: config/tc-tic54x.c:3121 #, c-format msgid "Unbalanced parenthesis in operand %d" msgstr "Paréntesis sin balancear en operando %d" -#: config/tc-tic54x.c:3130 config/tc-tic54x.c:3138 +#: config/tc-tic54x.c:3152 config/tc-tic54x.c:3160 msgid "Expecting operand after ','" msgstr "Se esperaba un operando tras ','" -#: config/tc-tic54x.c:3149 +#: config/tc-tic54x.c:3171 msgid "Extra junk on line" msgstr "Basura extra en la línea" -#: config/tc-tic54x.c:3186 +#: config/tc-tic54x.c:3208 msgid "Badly formed address expression" msgstr "Expresión direccional mal formada" -#: config/tc-tic54x.c:3439 +#: config/tc-tic54x.c:3461 #, c-format msgid "Invalid dmad syntax '%s'" msgstr "Sintaxis de ‘dmad’ no válida «%s»" -#: config/tc-tic54x.c:3503 +#: config/tc-tic54x.c:3525 #, c-format msgid "Use the .mmregs directive to use memory-mapped register names such as '%s'" msgstr "Use la directiva .mmregs para utilizar nombres de registro mapeados en memoria tales como «%s»" -#: config/tc-tic54x.c:3554 +#: config/tc-tic54x.c:3576 msgid "Address mode *+ARx is write-only. Results of reading are undefined." -msgstr "El modo direccional *+ARx es de sólo escritura. El resultado de la lectura está indefinido." +msgstr "El modo direccional *+ARx es de solo escritura. El resultado de la lectura está indefinido." -#: config/tc-tic54x.c:3574 +#: config/tc-tic54x.c:3596 #, c-format msgid "Unrecognized indirect address format \"%s\"" msgstr "No reconocido el formato direccional indirecta «%s»" -#: config/tc-tic54x.c:3612 +#: config/tc-tic54x.c:3634 #, c-format msgid "Operand '%s' out of range (%d <= x <= %d)" -msgstr "Operando «%s» está fuera de límite (%d ≤ x ≤ %d)" +msgstr "Operando «%s» está fuera de rango (%d ≤ x ≤ %d)" -#: config/tc-tic54x.c:3632 +#: config/tc-tic54x.c:3654 msgid "Error in relocation handling" msgstr "Error en el manejo de la reubicación" -#: config/tc-tic54x.c:3651 config/tc-tic54x.c:3713 config/tc-tic54x.c:3741 +#: config/tc-tic54x.c:3673 config/tc-tic54x.c:3735 config/tc-tic54x.c:3763 #, c-format msgid "Unrecognized condition code \"%s\"" msgstr "No reconocido el código de condición «%s»" -#: config/tc-tic54x.c:3668 +#: config/tc-tic54x.c:3690 #, c-format msgid "Condition \"%s\" does not match preceding group" msgstr "La condición «%s» no coincide con el grupo precedente" -#: config/tc-tic54x.c:3676 +#: config/tc-tic54x.c:3698 #, c-format msgid "Condition \"%s\" uses a different accumulator from a preceding condition" msgstr "La condición «%s» utiliza un acumulador diferente al de una condición precedente" -#: config/tc-tic54x.c:3683 +#: config/tc-tic54x.c:3705 msgid "Only one comparison conditional allowed" msgstr "Sólo se permite una comparación condicional" -#: config/tc-tic54x.c:3688 +#: config/tc-tic54x.c:3710 msgid "Only one overflow conditional allowed" msgstr "Sólo se permite un desbordamiento condicional" -#: config/tc-tic54x.c:3696 +#: config/tc-tic54x.c:3718 #, c-format msgid "Duplicate %s conditional" msgstr "Condicional %s duplicado" -#: config/tc-tic54x.c:3727 +#: config/tc-tic54x.c:3749 msgid "Invalid auxiliary register (use AR0-AR7)" msgstr "Registro auxiliar inválido (utilice AR0-AR7)" -#: config/tc-tic54x.c:3758 +#: config/tc-tic54x.c:3780 msgid "lk addressing modes are invalid for memory-mapped register addressing" msgstr "modos direccionados lk son inválidos para direccionamiento de distribuciones de registros en memoria" -#: config/tc-tic54x.c:3766 +#: config/tc-tic54x.c:3788 msgid "Address mode *+ARx is not allowed in memory-mapped register addressing. Resulting behavior is undefined." msgstr "El modo direccional *+ARx no se permite en el direccionamiento de registros mapeados en memoria. El comportamiento resultante no está definido." -#: config/tc-tic54x.c:3792 +#: config/tc-tic54x.c:3814 msgid "Destination accumulator for each part of this parallel instruction must be different" msgstr "El acumulador de destino para cada parte de esta instrucción paralela debe ser diferente" -#: config/tc-tic54x.c:3841 +#: config/tc-tic54x.c:3863 #, c-format msgid "Memory mapped register \"%s\" out of range" -msgstr "El registro mapeado en memoria «%s» está fuera de límite" +msgstr "El registro mapeado en memoria «%s» está fuera de rango" -#: config/tc-tic54x.c:3880 +#: config/tc-tic54x.c:3902 msgid "Invalid operand (use 1, 2, or 3)" msgstr "Operando inválido (utilice 1, 2, ó 3)" -#: config/tc-tic54x.c:3906 +#: config/tc-tic54x.c:3928 msgid "A status register or status bit name is required" msgstr "Se requiere un registro estatal o un nombre de bit estatal" -#: config/tc-tic54x.c:3916 +#: config/tc-tic54x.c:3938 #, c-format msgid "Unrecognized status bit \"%s\"" msgstr "No reconocido el bit estatal «%s»" -#: config/tc-tic54x.c:3939 +#: config/tc-tic54x.c:3961 #, c-format msgid "Invalid status register \"%s\"" msgstr "Invalida registro de posición «%s»" -#: config/tc-tic54x.c:3951 +#: config/tc-tic54x.c:3973 #, c-format msgid "Operand \"%s\" out of range (use 1 or 2)" -msgstr "Operando «%s» está fuera de límite (utilice 1 ó 2)" +msgstr "Operando «%s» está fuera de rango (utilice 1 ó 2)" -#: config/tc-tic54x.c:4154 +#: config/tc-tic54x.c:4176 #, c-format msgid "Unrecognized instruction \"%s\"" msgstr "No reconocida la instrucción «%s»" -#: config/tc-tic54x.c:4183 +#: config/tc-tic54x.c:4205 #, c-format msgid "Unrecognized operand list '%s' for instruction '%s'" msgstr "No reconocida la lista de operandos «%s» para la instrucción «%s»" -#: config/tc-tic54x.c:4212 +#: config/tc-tic54x.c:4234 #, c-format msgid "Unrecognized parallel instruction \"%s\"" msgstr "No reconocida la instrucción paralela «%s»" -#: config/tc-tic54x.c:4261 +#: config/tc-tic54x.c:4283 #, c-format msgid "Invalid operand (s) for parallel instruction \"%s\"" msgstr "Operando(s) inválido(s) para la instrucción paralela «%s»" -#: config/tc-tic54x.c:4264 +#: config/tc-tic54x.c:4286 #, c-format msgid "Unrecognized parallel instruction combination \"%s || %s\"" msgstr "No reconocida la combinación de instrucciones paralelas \"%s || %s\"" -#: config/tc-tic54x.c:4485 +#: config/tc-tic54x.c:4514 #, c-format msgid "%s symbol recursion stopped at second appearance of '%s'" msgstr "La recursión del símbolo %s se detuvo en la segunda aparición de «%s»" -#: config/tc-tic54x.c:4525 +#: config/tc-tic54x.c:4554 msgid "Unrecognized substitution symbol function" msgstr "No reconocida la función simbólica de sustitución" -#: config/tc-tic54x.c:4530 +#: config/tc-tic54x.c:4559 msgid "Missing '(' after substitution symbol function" msgstr "Ausente '(' tras la función simbólica de sustitución" -#: config/tc-tic54x.c:4544 +#: config/tc-tic54x.c:4572 msgid "Expecting second argument" msgstr "Se esperaba un segundo argumento" -#: config/tc-tic54x.c:4557 config/tc-tic54x.c:4607 +#: config/tc-tic54x.c:4590 config/tc-tic54x.c:4640 msgid "Extra junk in function call, expecting ')'" msgstr "Basura extra en la llamada a función, se esperaba ')'" -#: config/tc-tic54x.c:4583 +#: config/tc-tic54x.c:4616 msgid "Function expects two arguments" msgstr "La función espera dos argumentos" -#: config/tc-tic54x.c:4596 +#: config/tc-tic54x.c:4629 msgid "Expecting character constant argument" msgstr "Se espera una constante de carácter como argumento" -#: config/tc-tic54x.c:4602 +#: config/tc-tic54x.c:4635 msgid "Both arguments must be substitution symbols" msgstr "Ambos argumentos deben ser símbolos de sustitución" -#: config/tc-tic54x.c:4654 +#: config/tc-tic54x.c:4687 #, c-format msgid "Invalid subscript (use 1 to %d)" msgstr "Subíndice inválido (utilice de 1 a %d)" -#: config/tc-tic54x.c:4664 +#: config/tc-tic54x.c:4697 #, c-format msgid "Invalid length (use 0 to %d)" msgstr "Longitud no válida (utilice 0 a %d)" -#: config/tc-tic54x.c:4674 +#: config/tc-tic54x.c:4707 msgid "Missing ')' in subscripted substitution symbol expression" msgstr "Ausente ')' en la expresión simbólico de sustitución suscrito" -#: config/tc-tic54x.c:4694 +#: config/tc-tic54x.c:4727 msgid "Missing forced substitution terminator ':'" msgstr "Ausente el terminador de sustitución forzada ':'" -#: config/tc-tic54x.c:4846 +#: config/tc-tic54x.c:4881 #, fuzzy, c-format #| msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left)" msgid "Instruction does not fit in available delay slots (%d-word insn, %d slot left)" @@ -17595,22 +20154,22 @@ msgid_plural "Instruction does not fit in available delay slots (%d-word insn, % msgstr[0] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes)" msgstr[1] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes)" -#: config/tc-tic54x.c:4890 +#: config/tc-tic54x.c:4925 #, c-format msgid "Unrecognized parallel instruction '%s'" msgstr "No reconocida la instrucción paralela «%s»" -#: config/tc-tic54x.c:4902 +#: config/tc-tic54x.c:4937 #, c-format msgid "Instruction '%s' requires an LP cpu version" msgstr "La instrucción «%s» requiere una versión de cpu LP" -#: config/tc-tic54x.c:4909 +#: config/tc-tic54x.c:4944 #, c-format msgid "Instruction '%s' requires far mode addressing" msgstr "La instrucción «%s» requiere el modo de direccionamiento far" -#: config/tc-tic54x.c:4921 +#: config/tc-tic54x.c:4956 #, fuzzy, c-format #| msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left). Resulting behavior is undefined." msgid "Instruction does not fit in available delay slots (%d-word insn, %d slot left). Resulting behavior is undefined." @@ -17618,38 +20177,43 @@ msgid_plural "Instruction does not fit in available delay slots (%d-word insn, % msgstr[0] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes). El comportamiento resultante no está definido." msgstr[1] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes). El comportamiento resultante no está definido." -#: config/tc-tic54x.c:4935 +#: config/tc-tic54x.c:4970 msgid "Instructions which cause PC discontinuity are not allowed in a delay slot. Resulting behavior is undefined." msgstr "Las instrucciones que causan discontinuidad en el PC no se permiten en una ranura de retardo. El comportamiento resultante no está definido." -#: config/tc-tic54x.c:4946 +#: config/tc-tic54x.c:4981 #, c-format msgid "'%s' is not repeatable. Resulting behavior is undefined." msgstr "«%s» no se puede repetir. El comportamiento resultante no está definido." -#: config/tc-tic54x.c:4950 +#: config/tc-tic54x.c:4985 msgid "Instructions using long offset modifiers or absolute addresses are not repeatable. Resulting behavior is undefined." msgstr "Las instrucciones utilizando modificadores de desplazamiento long o direcciones absolutas no se pueden repetir. El comportamiento resultante no está definido." -#: config/tc-tic54x.c:5100 +#: config/tc-tic54x.c:5129 #, c-format msgid "Unsupported relocation size %d" msgstr "No se admite el tamaño de reubicación %d" -#: config/tc-tic54x.c:5231 +#: config/tc-tic54x.c:5260 msgid "non-absolute value used with .space/.bes" msgstr "se utilizó un valor no absoluto con .space/.bes" -#: config/tc-tic54x.c:5235 +#: config/tc-tic54x.c:5264 #, c-format msgid "negative value ignored in %s" msgstr "se descarta el valor negativo en %s" -#: config/tc-tic54x.c:5323 +#: config/tc-tic54x.c:5352 #, c-format msgid "attempt to .space/.bes backwards? (%ld)" msgstr "¿se intentó hacer .space/.bes hacia atrás? (%ld)" +#: config/tc-tic6x.c:232 +#, c-format +msgid "unknown architecture '%s'" +msgstr "arquitectura desconocida '%s'" + #: config/tc-tic6x.c:262 #, c-format msgid "unknown -mpid= argument '%s'" @@ -17731,402 +20295,402 @@ msgstr "" msgid "Supported ARCH values are:" msgstr "Se admiten los siguentes valores de ARQ:" -#: config/tc-tic6x.c:386 +#: config/tc-tic6x.c:384 msgid "unexpected .cantunwind directive" msgstr "directiva inesperada .cantunwind" -#: config/tc-tic6x.c:406 +#: config/tc-tic6x.c:404 msgid "unexpected .handlerdata directive" msgstr "directiva inesperada .handlerdata" -#: config/tc-tic6x.c:418 +#: config/tc-tic6x.c:416 msgid "personality routine required before .handlerdata directive" msgstr "se requirió una rutina personality antes de la directiva .handlerdata" -#: config/tc-tic6x.c:532 +#: config/tc-tic6x.c:530 msgid "expected symbol" msgstr "se esperaba un símbolo" -#: config/tc-tic6x.c:579 +#: config/tc-tic6x.c:577 msgid "expected comma after symbol name" msgstr "se esperaba una coma tras nombre del símbolo" -#: config/tc-tic6x.c:589 +#: config/tc-tic6x.c:587 #, c-format msgid "invalid length for .scomm directive" msgstr "longitud no válida para la directiva .scomm" -#: config/tc-tic6x.c:603 +#: config/tc-tic6x.c:601 msgid "alignment is not a positive number" msgstr "la alineamiento no es un número positivo" -#: config/tc-tic6x.c:615 +#: config/tc-tic6x.c:613 msgid "alignment is not a power of 2" msgstr "la alineamiento no es una potencia de 2" -#: config/tc-tic6x.c:630 +#: config/tc-tic6x.c:628 #, c-format msgid "attempt to re-define symbol `%s'" msgstr "se intentó redefinir el símbolo «%s»" -#: config/tc-tic6x.c:639 +#: config/tc-tic6x.c:637 #, c-format msgid "attempt to redefine `%s' with a different length" msgstr "se intentó redefinir «%s» con una longitud diferente" -#: config/tc-tic6x.c:841 +#: config/tc-tic6x.c:835 msgid "multiple '||' on same line" msgstr "'||' múltiples en la misma línea" -#: config/tc-tic6x.c:844 +#: config/tc-tic6x.c:838 msgid "'||' after predicate" msgstr "'||' tras predicado" -#: config/tc-tic6x.c:888 +#: config/tc-tic6x.c:882 msgid "multiple predicates on same line" msgstr "predicados múltiples en la misma línea" -#: config/tc-tic6x.c:894 +#: config/tc-tic6x.c:888 #, c-format msgid "bad predicate '%s'" msgstr "equivocación de predicado «%s»" -#: config/tc-tic6x.c:905 +#: config/tc-tic6x.c:899 msgid "predication on A0 not supported on this architecture" msgstr "la predicación en A0 no se admite en esta arquitectura" -#: config/tc-tic6x.c:938 +#: config/tc-tic6x.c:932 msgid "label after '||'" msgstr "etiqueta tras '||'" -#: config/tc-tic6x.c:944 +#: config/tc-tic6x.c:938 msgid "label after predicate" msgstr "etiqueta tras predicado" -#: config/tc-tic6x.c:968 +#: config/tc-tic6x.c:962 msgid "'||' not followed by instruction" msgstr "'||' no está seguido por una instrucción" -#: config/tc-tic6x.c:974 +#: config/tc-tic6x.c:968 msgid "predicate not followed by instruction" msgstr "el predicado no está seguido por una instrucción" -#: config/tc-tic6x.c:1407 +#: config/tc-tic6x.c:1401 #, c-format msgid "control register '%s' not supported on this architecture" msgstr "el registro de control «%s» no se admite en esta arquitectura" -#: config/tc-tic6x.c:1586 config/tc-tic6x.c:1589 config/tc-tic6x.c:1642 -#: config/tc-tic6x.c:1646 +#: config/tc-tic6x.c:1580 config/tc-tic6x.c:1583 config/tc-tic6x.c:1636 +#: config/tc-tic6x.c:1640 #, c-format msgid "register number %u not supported on this architecture" msgstr "el número de registro %u no se admite en esta arquitectura" -#: config/tc-tic6x.c:1617 +#: config/tc-tic6x.c:1611 #, c-format msgid "register pair for operand %u of '%.*s' not a valid even/odd pair" -msgstr "la pareja de registros para operando %u de '%.*s' no es una pareja par/impar válida" +msgstr "la pareja de registros para el operando %u de '%.*s' no es una pareja par/impar válida" -#: config/tc-tic6x.c:1673 +#: config/tc-tic6x.c:1667 #, c-format msgid "junk after operand %u of '%.*s'" msgstr "basura tras operando %u de '%.*s'" -#: config/tc-tic6x.c:1686 +#: config/tc-tic6x.c:1680 #, c-format msgid "bad register or register pair for operand %u of '%.*s'" -msgstr "registro o pareja de registros equivocados para operando %u de '%.*s'" +msgstr "registro o pareja de registros incorrectos para el operando %u de '%.*s'" -#: config/tc-tic6x.c:1692 +#: config/tc-tic6x.c:1686 #, c-format msgid "bad register for operand %u of '%.*s'" -msgstr "registro equivocado para operando %u de '%.*s'" +msgstr "registro incorrecto para el operando %u de '%.*s'" -#: config/tc-tic6x.c:1697 +#: config/tc-tic6x.c:1691 #, c-format msgid "bad register pair for operand %u of '%.*s'" -msgstr "pareja de registros equivocada para operando %u de '%.*s'" +msgstr "pareja de registros incorrecta para el operando %u de '%.*s'" -#: config/tc-tic6x.c:1702 +#: config/tc-tic6x.c:1696 #, c-format msgid "bad functional unit for operand %u of '%.*s'" -msgstr "unidad funcional equivocada para operando %u de '%.*s'" +msgstr "unidad funcional incorrecta para el operando %u de '%.*s'" -#: config/tc-tic6x.c:1707 +#: config/tc-tic6x.c:1701 #, c-format msgid "bad operand %u of '%.*s'" -msgstr "operando %u equivocado de '%.*s'" +msgstr "operando %u incorrecto de '%.*s'" -#: config/tc-tic6x.c:1839 +#: config/tc-tic6x.c:1833 msgid "$DSBT_INDEX must be used with __c6xabi_DSBT_BASE" msgstr "$DSBT_INDEX se debe usar con __c6xabi_DSBT_BASE" -#: config/tc-tic6x.c:1879 +#: config/tc-tic6x.c:1873 msgid "$DSBT_INDEX not supported in this context" msgstr "no se admite $DSBT_INDEX en este contexto" -#: config/tc-tic6x.c:1892 +#: config/tc-tic6x.c:1886 msgid "$GOT not supported in this context" msgstr "no se admite $GOT en este contexto" -#: config/tc-tic6x.c:1909 +#: config/tc-tic6x.c:1903 msgid "$DPR_GOT not supported in this context" msgstr "no se admite $DPR_GOT en este contexto" -#: config/tc-tic6x.c:1930 +#: config/tc-tic6x.c:1924 msgid "$DPR_BYTE not supported in this context" msgstr "no se admite $DPR_BYTE en este contexto" -#: config/tc-tic6x.c:1947 +#: config/tc-tic6x.c:1941 msgid "$DPR_HWORD not supported in this context" msgstr "no se admite $DPR_HWORD en este contexto" -#: config/tc-tic6x.c:1964 +#: config/tc-tic6x.c:1958 msgid "$DPR_WORD not supported in this context" msgstr "no se admite $DPR_WORD en este contexto" -#: config/tc-tic6x.c:1983 +#: config/tc-tic6x.c:1977 msgid "$PCR_OFFSET not supported in this context" msgstr "no se admite $PCR_OFFSET en este contexto" -#: config/tc-tic6x.c:1994 +#: config/tc-tic6x.c:1988 msgid "invalid PC-relative operand" msgstr "operando relativo al PC inválido" -#: config/tc-tic6x.c:2031 +#: config/tc-tic6x.c:2025 #, c-format msgid "no %d-byte relocations available" msgstr "no hay reubicaciones de %d bytes disponibles" -#: config/tc-tic6x.c:2518 config/tc-tic6x.c:2549 config/tc-tic6x.c:2567 -#: config/tc-tic6x.c:2997 config/tc-tic6x.c:3016 config/tc-tic6x.c:3048 +#: config/tc-tic6x.c:2512 config/tc-tic6x.c:2543 config/tc-tic6x.c:2561 +#: config/tc-tic6x.c:2991 config/tc-tic6x.c:3010 config/tc-tic6x.c:3042 #, c-format msgid "operand %u of '%.*s' out of range" -msgstr "operando %u de '%.*s' está fuera de límite" +msgstr "operando %u de '%.*s' está fuera de rango" -#: config/tc-tic6x.c:2611 config/tc-tic6x.c:2836 +#: config/tc-tic6x.c:2605 config/tc-tic6x.c:2830 #, c-format msgid "offset in operand %u of '%.*s' not divisible by %u" msgstr "el desplazamiento en operando %u de '%.*s' no es divisible por %u" -#: config/tc-tic6x.c:2828 config/tc-tic6x.c:2861 +#: config/tc-tic6x.c:2822 config/tc-tic6x.c:2855 #, c-format msgid "offset in operand %u of '%.*s' out of range" -msgstr "el desplazamiento en operando %u de '%.*s' está fuera de límite" +msgstr "el desplazamiento en operando %u de '%.*s' está fuera de rango" -#: config/tc-tic6x.c:2943 +#: config/tc-tic6x.c:2937 #, c-format msgid "functional unit already masked for operand %u of '%.*s'" -msgstr "unidad funcional ya está enmascarada para operando %u de '%.*s'" +msgstr "unidad funcional ya está enmascarada para el operando %u de '%.*s'" -#: config/tc-tic6x.c:2967 config/tc-tic6x.c:3726 +#: config/tc-tic6x.c:2961 config/tc-tic6x.c:3719 #, c-format msgid "'%.*s' instruction not in a software pipelined loop" msgstr "instrucción '%.*s' no está en un ciclo entubado por software" -#: config/tc-tic6x.c:3066 +#: config/tc-tic6x.c:3060 #, c-format msgid "instruction '%.*s' cannot be predicated" msgstr "instrucción '%.*s' no puede ser predicado" -#: config/tc-tic6x.c:3334 +#: config/tc-tic6x.c:3327 #, c-format msgid "'%.*s' instruction not supported on this architecture" msgstr "instrucción '%.*s' no se admite en esta arquitectura" -#: config/tc-tic6x.c:3342 +#: config/tc-tic6x.c:3335 #, c-format msgid "'%.*s' instruction not supported on this functional unit" msgstr "instrucción '%.*s' no se admite en esta unidad funcional" -#: config/tc-tic6x.c:3350 +#: config/tc-tic6x.c:3343 #, c-format msgid "'%.*s' instruction not supported on this functional unit for this architecture" msgstr "instrucción '%.*s' no se admite en esta unidad funcional para esta arquitectura" -#: config/tc-tic6x.c:3370 +#: config/tc-tic6x.c:3363 msgid "missing operand after comma" msgstr "ausente operando tras la coma" -#: config/tc-tic6x.c:3378 config/tc-tic6x.c:3396 +#: config/tc-tic6x.c:3371 config/tc-tic6x.c:3389 #, c-format msgid "too many operands to '%.*s'" msgstr "demasiados operandos para '%.*s'" -#: config/tc-tic6x.c:3409 +#: config/tc-tic6x.c:3402 #, c-format msgid "bad number of operands to '%.*s'" -msgstr "número equivocado de operandos para '%.*s'" +msgstr "número incorrecto de operandos para '%.*s'" -#: config/tc-tic6x.c:3481 +#: config/tc-tic6x.c:3474 #, c-format msgid "operand %u of '%.*s' not constant" msgstr "operando %u de '%.*s' no es una constante" -#: config/tc-tic6x.c:3486 +#: config/tc-tic6x.c:3479 #, c-format msgid "operand %u of '%.*s' on wrong side" -msgstr "operando %u de '%.*s' está en el lado equivocado" +msgstr "operando %u de '%.*s' está en el lado incorrecto" -#: config/tc-tic6x.c:3491 +#: config/tc-tic6x.c:3484 #, c-format msgid "operand %u of '%.*s' not a valid return address register" msgstr "operando %u de '%.*s' no es un registro direccional de devolución válido" -#: config/tc-tic6x.c:3497 +#: config/tc-tic6x.c:3490 #, c-format msgid "operand %u of '%.*s' is write-only" -msgstr "operando %u de '%.*s' es de sólo escritura" +msgstr "operando %u de '%.*s' es de solo escritura" -#: config/tc-tic6x.c:3502 +#: config/tc-tic6x.c:3495 #, c-format msgid "operand %u of '%.*s' is read-only" -msgstr "operando %u de '%.*s' es de sólo lectura" +msgstr "operando %u de '%.*s' es de solo lectura" -#: config/tc-tic6x.c:3507 +#: config/tc-tic6x.c:3500 #, c-format msgid "operand %u of '%.*s' not a valid memory reference" msgstr "operando %u de '%.*s' no es una referencia de memoria válida" -#: config/tc-tic6x.c:3513 +#: config/tc-tic6x.c:3506 #, c-format msgid "operand %u of '%.*s' not a valid base address register" msgstr "operando %u de '%.*s' no es un registro direccional base válido" -#: config/tc-tic6x.c:3599 +#: config/tc-tic6x.c:3592 #, c-format msgid "bad operand combination for '%.*s'" -msgstr "combinación de operandos equivocada para '%.*s'" +msgstr "combinación de operandos incorrecta para '%.*s'" -#: config/tc-tic6x.c:3645 +#: config/tc-tic6x.c:3638 msgid "parallel instruction not following another instruction" msgstr "la instrucción paralela no está a continuación de otra instrucción" -#: config/tc-tic6x.c:3651 +#: config/tc-tic6x.c:3644 msgid "too many instructions in execute packet" msgstr "demasiadas instrucciones en el paquete de ejecución" -#: config/tc-tic6x.c:3656 +#: config/tc-tic6x.c:3649 msgid "label not at start of execute packet" msgstr "la etiqueta no está al inicio del paquete de ejecución" -#: config/tc-tic6x.c:3659 +#: config/tc-tic6x.c:3652 #, c-format msgid "'%.*s' instruction not at start of execute packet" msgstr "la instrucción '%.*s' no está al inicio del paquete de ejecución" -#: config/tc-tic6x.c:3707 +#: config/tc-tic6x.c:3700 msgid "functional unit already used in this execute packet" msgstr "la unidad funcional ya está en uso en este paquete de ejecución" -#: config/tc-tic6x.c:3715 +#: config/tc-tic6x.c:3708 msgid "nested software pipelined loop" msgstr "ciclo entubado por software anidado" -#: config/tc-tic6x.c:3734 +#: config/tc-tic6x.c:3727 msgid "'||^' without previous SPMASK" msgstr "'||^' sin un SPMASK previo" -#: config/tc-tic6x.c:3736 +#: config/tc-tic6x.c:3729 msgid "cannot mask instruction using no functional unit" msgstr "no se puede enmascarar la instrucción sin una unidad funcional" -#: config/tc-tic6x.c:3748 +#: config/tc-tic6x.c:3741 msgid "functional unit already masked" msgstr "la unidad funcional ya está enmascarada" -#: config/tc-tic6x.c:3813 +#: config/tc-tic6x.c:3806 msgid "value too large for 2-byte field" msgstr "valor demasiado grande para un campo de 2 bytes" -#: config/tc-tic6x.c:3823 +#: config/tc-tic6x.c:3816 msgid "value too large for 1-byte field" msgstr "valor demasiado grande para un campo de 1 byte" -#: config/tc-tic6x.c:3950 +#: config/tc-tic6x.c:3943 msgid "immediate offset not 2-byte-aligned" msgstr "el desplazamiento inmediato no está alineado a 2 bytes" -#: config/tc-tic6x.c:3978 +#: config/tc-tic6x.c:3971 msgid "immediate offset not 4-byte-aligned" msgstr "el desplazamiento inmediato no está alineado a 4 bytes" -#: config/tc-tic6x.c:3992 +#: config/tc-tic6x.c:3985 msgid "addend used with $DSBT_INDEX" msgstr "se usó addend con $DSBT_INDEX" -#: config/tc-tic6x.c:4006 config/tc-tic6x.c:4024 config/tc-tic6x.c:4042 -#: config/tc-tic6x.c:4060 +#: config/tc-tic6x.c:3999 config/tc-tic6x.c:4017 config/tc-tic6x.c:4035 +#: config/tc-tic6x.c:4053 msgid "PC-relative offset not 4-byte-aligned" msgstr "Desplazamiento relativo al PC no alineado a 4-bytes" -#: config/tc-tic6x.c:4009 config/tc-tic6x.c:4027 config/tc-tic6x.c:4045 -#: config/tc-tic6x.c:4063 +#: config/tc-tic6x.c:4002 config/tc-tic6x.c:4020 config/tc-tic6x.c:4038 +#: config/tc-tic6x.c:4056 msgid "PC-relative offset out of range" -msgstr "Desplazamiento relativo al PC está fuera de límite" +msgstr "Desplazamiento relativo al PC está fuera de rango" -#: config/tc-tic6x.c:4542 +#: config/tc-tic6x.c:4537 #, c-format msgid "undefined symbol %s in PCR relocation" msgstr "símbolo indefinido %s en reubicación PCR" -#: config/tc-tic6x.c:4660 +#: config/tc-tic6x.c:4654 #, c-format msgid "group section `%s' has no group signature" msgstr "sección de grupo «%s» no tiene firma de grupo" -#: config/tc-tic6x.c:4812 +#: config/tc-tic6x.c:4806 msgid "missing .endp before .cfi_startproc" msgstr "ausente .endp antes de .cfi_startproc" -#: config/tc-tic6x.c:4917 +#: config/tc-tic6x.c:4911 msgid "stack pointer offset too large for personality routine" msgstr "el desplazamiento del puntero de pila es demasiado grande para la rutina personality" -#: config/tc-tic6x.c:4924 +#: config/tc-tic6x.c:4918 msgid "stack frame layout does not match personality routine" msgstr "la disposición del marco de pila no coincide con la rutina personality" -#: config/tc-tic6x.c:5058 +#: config/tc-tic6x.c:5052 msgid "too many unwinding instructions" msgstr "demasiadas instrucciones de desenredo" -#: config/tc-tic6x.c:5133 config/tc-tic6x.c:5146 config/tc-tic6x.c:5154 +#: config/tc-tic6x.c:5127 config/tc-tic6x.c:5140 config/tc-tic6x.c:5148 #, c-format msgid "unable to generate unwinding opcode for reg %d" msgstr "incapaz de generar códigos operacionales de desenredo para el registro %d" -#: config/tc-tic6x.c:5163 +#: config/tc-tic6x.c:5157 msgid "unable to restore return address from previously restored reg" msgstr "no se puede restaurar la dirección de devolución para el registro previamente restaurado" -#: config/tc-tic6x.c:5175 +#: config/tc-tic6x.c:5169 #, c-format msgid "unhandled CFA insn for unwinding (%d)" msgstr "insn CFA sin manipular para el desenredo (%d)" -#: config/tc-tic6x.c:5185 +#: config/tc-tic6x.c:5179 #, c-format msgid "unable to generate unwinding opcode for frame pointer reg %d" msgstr "incapaz de generar código operacional de desenredo para el registro de puntero a marco %d" -#: config/tc-tic6x.c:5194 +#: config/tc-tic6x.c:5188 msgid "unable to generate unwinding opcode for frame pointer offset" msgstr "incapaz de generar código operacional de desenredo para el desplazamiento de puntero a marco" -#: config/tc-tic6x.c:5203 +#: config/tc-tic6x.c:5197 msgid "unwound stack pointer not doubleword aligned" msgstr "el puntero de pila desenredado no está alineado a dobleword" -#: config/tc-tic6x.c:5348 +#: config/tc-tic6x.c:5342 msgid "stack frame layout too complex for unwinder" msgstr "la disposición del marco de pila es demasiado complejo para el desenredador" -#: config/tc-tic6x.c:5365 +#: config/tc-tic6x.c:5359 msgid "unwound frame has negative size" msgstr "el marco desenredado tiene tamaño negativo" -#: config/tc-tilegx.c:142 +#: config/tc-tilegx.c:141 #, c-format msgid "" " -Q ignored\n" @@ -18139,102 +20703,97 @@ msgstr "" " -EB/-EL genera código big-endian/little-endian\n" " --32/--64 genera código 32bit/64bit\n" -#: config/tc-tilegx.c:736 config/tc-tilepro.c:627 +#: config/tc-tilegx.c:731 config/tc-tilepro.c:619 msgid "Invalid operator for operand." -msgstr "Operador inválido para operando." +msgstr "Operador inválido para el operando." -#: config/tc-tilegx.c:757 config/tc-tilepro.c:648 +#: config/tc-tilegx.c:754 config/tc-tilepro.c:642 msgid "Operator may only be applied to symbols." -msgstr "El operador sólo se puede aplicar a símbolos." +msgstr "El operador solo se puede aplicar a símbolos." -#: config/tc-tilegx.c:822 config/tc-tilepro.c:713 +#: config/tc-tilegx.c:819 config/tc-tilepro.c:707 #, c-format msgid "Writes to register '%s' are not allowed." msgstr "No se permiten las escrituras al registro «%s»." -#: config/tc-tilegx.c:849 config/tc-tilepro.c:740 +#: config/tc-tilegx.c:846 config/tc-tilepro.c:734 #, c-format msgid "Two instructions in the same bundle both write to register %s, which is not allowed." msgstr "Dos instrucciones en el mismo haz ambos escriben al registro %s, lo no está permitido." -#: config/tc-tilegx.c:914 config/tc-tilepro.c:804 +#: config/tc-tilegx.c:911 config/tc-tilepro.c:798 #, c-format msgid "'%s' may not be bundled with other instructions." msgstr "'%s 'no se puede agrupar con otras instrucciones." -#: config/tc-tilegx.c:944 config/tc-tilepro.c:834 +#: config/tc-tilegx.c:941 config/tc-tilepro.c:828 msgid "Invalid combination of instructions for bundle." msgstr "Combinación no válida de instrucciones para el agrupado." -#: config/tc-tilegx.c:979 config/tc-tilepro.c:869 +#: config/tc-tilegx.c:976 config/tc-tilepro.c:863 msgid "instruction address is not a multiple of 8" msgstr "la instrucción direccional no es un múltiplo de 8" -#: config/tc-tilegx.c:1056 config/tc-tilepro.c:947 +#: config/tc-tilegx.c:1053 config/tc-tilepro.c:941 msgid "Invalid expression." msgstr "Expresión no válida." -#: config/tc-tilegx.c:1102 config/tc-tilepro.c:989 +#: config/tc-tilegx.c:1099 config/tc-tilepro.c:983 #, c-format msgid "Expected register, got '%s'." msgstr "Se esperaba un registro, se obtuvo «%s»." -#: config/tc-tilegx.c:1109 config/tc-tilepro.c:996 +#: config/tc-tilegx.c:1106 config/tc-tilepro.c:990 #, c-format msgid "Found use of non-canonical register name %s; use %s instead." msgstr "Se encontró el uso del nombre de registro %s que no es canónico; use %s en su lugar." -#: config/tc-tilegx.c:1169 config/tc-tilepro.c:1055 +#: config/tc-tilegx.c:1166 config/tc-tilepro.c:1049 #, c-format msgid "Too few operands to '%s'." msgstr "Ausenten operandos para «%s»." -#: config/tc-tilegx.c:1174 config/tc-tilepro.c:1060 +#: config/tc-tilegx.c:1171 config/tc-tilepro.c:1054 #, c-format msgid "Unexpected character '%c' after operand %d to %s." msgstr "Carácter inesperado '%c' antes de operando %d para %s." -#: config/tc-tilegx.c:1195 config/tc-tilepro.c:1081 +#: config/tc-tilegx.c:1192 config/tc-tilepro.c:1075 msgid "Expected immediate expression" msgstr "Se esperaba una expresión inmediata" -#: config/tc-tilegx.c:1208 config/tc-tilegx.c:1813 config/tc-tilepro.c:1094 -#: config/tc-tilepro.c:1593 +#: config/tc-tilegx.c:1205 config/tc-tilegx.c:1807 config/tc-tilepro.c:1088 +#: config/tc-tilepro.c:1584 msgid "Found '}' when not bundling." msgstr "Se encontró '}' cuando no se está agrupando." -#: config/tc-tilegx.c:1249 config/tc-tilepro.c:1134 +#: config/tc-tilegx.c:1246 config/tc-tilepro.c:1128 #, c-format msgid "Unknown opcode `%.*s'." msgstr "Desconoce código operacional `%.*s'." -#: config/tc-tilegx.c:1260 config/tc-tilepro.c:1145 +#: config/tc-tilegx.c:1257 config/tc-tilepro.c:1139 msgid "Too many instructions for bundle." msgstr "Demasiadas instrucciones para la agrupación." -#: config/tc-tilegx.c:1355 config/tc-tilepro.c:1230 +#: config/tc-tilegx.c:1349 config/tc-tilepro.c:1221 msgid "Bad call to md_atof ()" -msgstr "Llamada equivocada a md_atof ()" +msgstr "Llamada incorrecta a md_atof ()" -#: config/tc-tilegx.c:1431 config/tc-tilepro.c:1293 +#: config/tc-tilegx.c:1425 config/tc-tilepro.c:1284 msgid "This operator only produces two byte values." -msgstr "Este operador sólo produce valores de dos bytes." - -#: config/tc-tilegx.c:1457 config/tc-tilepro.c:1319 -#, c-format -msgid "unsupported BFD relocation size %d" -msgstr "no se admite el tamaño de reubicación BFD %d" +msgstr "Este operador solo produce valores de dos bytes." -#: config/tc-tilegx.c:1758 config/tc-tilepro.c:1538 +#: config/tc-tilegx.c:1752 config/tc-tilepro.c:1529 #, c-format msgid "internal error? cannot generate `%s' relocation (%d, %d)" msgstr "¿Error interno? incapaz de generar la reubicación «%s» (%d, %d)" -#: config/tc-tilegx.c:1801 config/tc-tilepro.c:1581 +#: config/tc-tilegx.c:1795 config/tc-tilepro.c:1572 msgid "Found '{' when already bundling." msgstr "Se encontró '{' cuando ya estaba agrupado." -#: config/tc-tilepro.c:99 +#: config/tc-tilepro.c:98 #, c-format msgid "" " -Q ignored\n" @@ -18243,481 +20802,481 @@ msgstr "" " -Q se descarta\n" " -V escribe el número de versión del ensamblador\n" -#: config/tc-v850.c:294 +#: config/tc-v850.c:291 #, c-format msgid ".COMMon length (%d.) < 0! Ignored." msgstr "¡Longitud .COMMún (%d.) < 0! Se descarta." -#: config/tc-v850.c:315 +#: config/tc-v850.c:312 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %d." msgstr "La longitud de .comm «%s» ya es %ld. No se cambia a %d." -#: config/tc-v850.c:341 +#: config/tc-v850.c:338 msgid "Common alignment negative; 0 assumed" msgstr "Alineación común negativa; se asume 0" -#: config/tc-v850.c:545 +#: config/tc-v850.c:542 msgid ".longcall pseudo-op seen when not relaxing" msgstr "se vio el pseudo-operador .longcall cuando no se estaba relajando" -#: config/tc-v850.c:547 +#: config/tc-v850.c:544 msgid ".longjump pseudo-op seen when not relaxing" msgstr "se vio el pseudo-operador .longjump cuando no se estaba relajando" -#: config/tc-v850.c:554 +#: config/tc-v850.c:551 msgid "bad .longcall format" -msgstr "formato de .longcall equivocado" +msgstr "formato de .longcall incorrecto" -#: config/tc-v850.c:1393 +#: config/tc-v850.c:1389 #, c-format msgid "unknown operand shift: %x\n" msgstr "operando de desplazamiento desconocido: %x\n" -#: config/tc-v850.c:1394 +#: config/tc-v850.c:1390 msgid "internal failure in parse_register_list" msgstr "falla interna en parse_register_list" -#: config/tc-v850.c:1410 +#: config/tc-v850.c:1406 msgid "constant expression or register list expected" msgstr "se esperaba una expresión constante o una lista de registros" -#: config/tc-v850.c:1415 +#: config/tc-v850.c:1411 msgid "high bits set in register list expression" msgstr "se establecieron los bits altos en la expresión de lista de registros" -#: config/tc-v850.c:1453 config/tc-v850.c:1510 +#: config/tc-v850.c:1449 config/tc-v850.c:1506 msgid "illegal register included in list" msgstr "se incluyó un registro alegal en la lista" -#: config/tc-v850.c:1459 +#: config/tc-v850.c:1455 msgid "system registers cannot be included in list" msgstr "los registros del sistema no se pueden incluir en la lista" -#: config/tc-v850.c:1485 +#: config/tc-v850.c:1481 msgid "second register should follow dash in register list" msgstr "el segundo registro debe estar a continuación de un guión en la lista de registros" -#: config/tc-v850.c:1490 +#: config/tc-v850.c:1486 msgid "second register should be greater than first register" msgstr "el segundo registro debe ser mayor que el primer registro" -#: config/tc-v850.c:1540 +#: config/tc-v850.c:1536 #, c-format msgid " V850 options:\n" msgstr " Opciones de V850:\n" -#: config/tc-v850.c:1541 +#: config/tc-v850.c:1537 #, c-format msgid " -mwarn-signed-overflow Warn if signed immediate values overflow\n" msgstr " -mwarn-signed-overflow Avisa si los valores inmediatos con signo desbordan\n" -#: config/tc-v850.c:1542 +#: config/tc-v850.c:1538 #, c-format msgid " -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n" msgstr " -mwarn-unsigned-overflow Avisa si los valores inmediato sin signo desbordan\n" -#: config/tc-v850.c:1543 +#: config/tc-v850.c:1539 #, c-format msgid " -mv850 The code is targeted at the v850\n" msgstr " -mv850 El código está destinado para el v850\n" -#: config/tc-v850.c:1544 +#: config/tc-v850.c:1540 #, c-format msgid " -mv850e The code is targeted at the v850e\n" msgstr " -mv850e El código está destinado para el v850e\n" -#: config/tc-v850.c:1545 +#: config/tc-v850.c:1541 #, c-format msgid " -mv850e1 The code is targeted at the v850e1\n" msgstr " -mv850e1 El código está destinado para el v850e1\n" -#: config/tc-v850.c:1546 +#: config/tc-v850.c:1542 #, c-format msgid " -mv850e2 The code is targeted at the v850e2\n" msgstr " -mv850e2 El código está destinado para el v850e2\n" -#: config/tc-v850.c:1547 +#: config/tc-v850.c:1543 #, c-format msgid " -mv850e2v3 The code is targeted at the v850e2v3\n" msgstr " -mv850e2v3 El código está destinado para el v850e2v3\n" -#: config/tc-v850.c:1548 +#: config/tc-v850.c:1544 #, c-format msgid " -mv850e2v4 Alias for -mv850e3v5\n" msgstr " -mv850e2v4 Alias para -mv850e3v5\n" -#: config/tc-v850.c:1549 +#: config/tc-v850.c:1545 #, c-format msgid " -mv850e3v5 The code is targeted at the v850e3v5\n" msgstr " -mv850e3v5 El código está destinado para el v850e3v5\n" -#: config/tc-v850.c:1550 +#: config/tc-v850.c:1546 #, c-format msgid " -mrelax Enable relaxation\n" msgstr " -mrelax Activa la relajación\n" -#: config/tc-v850.c:1551 +#: config/tc-v850.c:1547 #, c-format msgid " --disp-size-default-22 branch displacement with unknown size is 22 bits (default)\n" msgstr " --disp-size-default-22 el desplazamiento de ramificación de tamaño desconocido es de 22 bits (por defecto)\n" -#: config/tc-v850.c:1552 +#: config/tc-v850.c:1548 #, c-format msgid " --disp-size-default-32 branch displacement with unknown size is 32 bits\n" msgstr " --disp-size-default-32 el desplazamiento de ramificación de tamaño desconocido es de 32 bits\n" -#: config/tc-v850.c:1553 +#: config/tc-v850.c:1549 #, c-format msgid " -mextension enable extension opcode support\n" msgstr " -mextension activa el soporte de códigod operacional de extensión\n" -#: config/tc-v850.c:1554 +#: config/tc-v850.c:1550 #, c-format msgid " -mno-bcond17\t\t disable b<cond> disp17 instruction\n" msgstr " -mno-bcond17\t\t desactiva la instrucción b<cond> disp17\n" -#: config/tc-v850.c:1555 +#: config/tc-v850.c:1551 #, c-format msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n" msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n" -#: config/tc-v850.c:1556 +#: config/tc-v850.c:1552 #, c-format msgid " -mgcc-abi Mark the binary as using the old GCC ABI\n" msgstr "" " -mgcc-abi marca el binario como empleando el antiguo API GCC\n" "\n" -#: config/tc-v850.c:1557 +#: config/tc-v850.c:1553 #, c-format msgid " -mrh850-abi Mark the binary as using the RH850 ABI (default)\n" msgstr " -mrh850-abi Marca el binario como utilizando el ABI RH850 (predet.)\n" -#: config/tc-v850.c:1558 +#: config/tc-v850.c:1554 #, c-format msgid " -m8byte-align Mark the binary as using 64-bit alignment\n" msgstr "" " -m8byte-align Marca el binario como utilizando alineamiento de 64-bit\n" "\n" -#: config/tc-v850.c:1559 +#: config/tc-v850.c:1555 #, c-format msgid " -m4byte-align Mark the binary as using 32-bit alignment (default)\n" msgstr " -m4byte-align Marca el binario como alineamiento de 32-bit utilizado (predet.)\n" -#: config/tc-v850.c:1560 +#: config/tc-v850.c:1556 #, c-format msgid " -msoft-float Mark the binary as not using FP insns (default for pre e2v3)\n" msgstr "" -#: config/tc-v850.c:1561 +#: config/tc-v850.c:1557 #, c-format msgid " -mhard-float Mark the binary as using FP insns (default for e2v3 and up)\n" msgstr "" -#: config/tc-v850.c:1949 +#: config/tc-v850.c:1945 #, c-format msgid "Unable to determine default target processor from string: %s" msgstr "No se puede determinar el procesador objetivo por defecto de la cadena: %s" -#: config/tc-v850.c:1993 +#: config/tc-v850.c:1988 msgid "hi0() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación hi0() en una instrucción que no la admite" -#: config/tc-v850.c:2013 +#: config/tc-v850.c:2008 msgid "hi() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación hi() en una instrucción que no la admite" -#: config/tc-v850.c:2036 +#: config/tc-v850.c:2027 msgid "lo() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación lo() en una instrucción que no la admite" -#: config/tc-v850.c:2046 +#: config/tc-v850.c:2038 msgid "ctoff() is not supported by the rh850 ABI. Use -mgcc-abi instead" msgstr "" -#: config/tc-v850.c:2062 +#: config/tc-v850.c:2054 msgid "ctoff() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación ctoff() en una instrucción que no la admite" -#: config/tc-v850.c:2081 +#: config/tc-v850.c:2073 msgid "sdaoff() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación sdaoff() en una instrucción que no la admite" -#: config/tc-v850.c:2100 +#: config/tc-v850.c:2092 msgid "zdaoff() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación zdaoff() en una instrucción que no la admite" -#: config/tc-v850.c:2132 +#: config/tc-v850.c:2124 msgid "tdaoff() relocation used on an instruction which does not support it" msgstr "se utilizó una reubicación tdaoff() en una instrucción que no la admite" -#: config/tc-v850.c:2273 +#: config/tc-v850.c:2265 #, c-format msgid "operand out of range (%d is not between %d and %d)" -msgstr "operando fuera de límite (%d no está entre %d y %d)" +msgstr "operando fuera de rango (%d no está entre %d y %d)" -#: config/tc-v850.c:2356 +#: config/tc-v850.c:2348 msgid "st/ld offset 23 instruction was disabled ." msgstr "st/ld desplaza 23 instrucciones fue desactivado." -#: config/tc-v850.c:2365 +#: config/tc-v850.c:2357 msgid "Target processor does not support this instruction." msgstr "El procesador objetivo no admite esta instrucción." -#: config/tc-v850.c:2477 config/tc-v850.c:2487 config/tc-v850.c:2508 -#: config/tc-v850.c:2522 config/tc-v850.c:2528 config/tc-v850.c:2552 -#: config/tc-v850.c:2558 config/tc-v850.c:2565 config/tc-v850.c:2579 -#: config/tc-v850.c:2593 config/tc-v850.c:2599 config/tc-v850.c:2936 +#: config/tc-v850.c:2469 config/tc-v850.c:2479 config/tc-v850.c:2500 +#: config/tc-v850.c:2514 config/tc-v850.c:2520 config/tc-v850.c:2544 +#: config/tc-v850.c:2550 config/tc-v850.c:2557 config/tc-v850.c:2571 +#: config/tc-v850.c:2585 config/tc-v850.c:2591 config/tc-v850.c:2929 msgid "immediate operand is too large" msgstr "operando inmediato es demasiado grande" -#: config/tc-v850.c:2494 +#: config/tc-v850.c:2486 #, c-format msgid "AAARG -> unhandled constant reloc: %d" msgstr "AAARG → reubicación constante no manipulado: %d" -#: config/tc-v850.c:2629 config/tc-v850.c:2640 +#: config/tc-v850.c:2621 config/tc-v850.c:2632 msgid "constant too big to fit into instruction" msgstr "la constante es demasiado grande para caber en la instrucción" -#: config/tc-v850.c:2715 +#: config/tc-v850.c:2707 msgid "odd number cannot be used here" msgstr "no se puede usar aquí un número impar" -#: config/tc-v850.c:2760 +#: config/tc-v850.c:2752 msgid "invalid register name" msgstr "nombre de registro inválido" -#: config/tc-v850.c:2766 +#: config/tc-v850.c:2758 msgid "register r0 cannot be used here" msgstr "el registro r0 no se puede usar aquí" -#: config/tc-v850.c:2772 +#: config/tc-v850.c:2764 msgid "odd register cannot be used here" msgstr "no se puede usar aquí un registro impar" -#: config/tc-v850.c:2781 +#: config/tc-v850.c:2773 msgid "invalid system register name" msgstr "nombre de registro de sistema inválido" -#: config/tc-v850.c:2795 +#: config/tc-v850.c:2787 msgid "expected EP register" msgstr "se esperaba el registro EP" -#: config/tc-v850.c:2812 config/tc-v850.c:2825 +#: config/tc-v850.c:2804 config/tc-v850.c:2817 msgid "invalid condition code name" msgstr "nombre de código de condición inválido" -#: config/tc-v850.c:2818 +#: config/tc-v850.c:2810 msgid "condition sa cannot be used here" msgstr "la condición sa no se puede usar aquí" -#: config/tc-v850.c:2831 +#: config/tc-v850.c:2823 msgid "invalid cache operation name" msgstr "nompre operacional caché inválido" -#: config/tc-v850.c:2836 +#: config/tc-v850.c:2828 msgid "invalid pref operation name" msgstr "nombre pre operacional inválido" -#: config/tc-v850.c:2841 +#: config/tc-v850.c:2833 msgid "invalid vector register name" -msgstr "nombre de registro vectorial no válida" +msgstr "nombre de registro de vector no válida" -#: config/tc-v850.c:2879 +#: config/tc-v850.c:2871 msgid "syntax error: value is missing before the register name" -msgstr "error sintáctico: ausente el valor antes del nombre de registro" +msgstr "error de sintaxis: ausente el valor antes del nombre de registro" -#: config/tc-v850.c:2881 +#: config/tc-v850.c:2873 msgid "syntax error: register not expected" -msgstr "error sintáctico: no se esperaba un registro" +msgstr "error de sintaxis: no se esperaba un registro" -#: config/tc-v850.c:2895 +#: config/tc-v850.c:2887 msgid "syntax error: system register not expected" -msgstr "error sintáctico: no se esperaba un registro de sistema" +msgstr "error de sintaxis: no se esperaba un registro de sistema" -#: config/tc-v850.c:2900 config/tc-v850.c:2905 +#: config/tc-v850.c:2892 config/tc-v850.c:2897 msgid "syntax error: condition code not expected" -msgstr "error sintáctico: no es esperaba código de condición" +msgstr "error de sintaxis: no es esperaba código de condición" -#: config/tc-v850.c:2910 +#: config/tc-v850.c:2902 msgid "syntax error: vector register not expected" -msgstr "error sintáctico: registro vectorial no esperado" +msgstr "error de sintaxis: registro de vector no esperado" -#: config/tc-v850.c:2920 +#: config/tc-v850.c:2913 msgid "immediate 0 cannot be used here" msgstr "el inmediato 0 no se puede usar aquí" # FIXME: ver en el código si se puede cambiar "no es match" por "no coincide" - cfuga -#: config/tc-v850.c:2944 +#: config/tc-v850.c:2937 msgid "immediate operand is not match" msgstr "operando inmediato no coincide" -#: config/tc-v850.c:2957 +#: config/tc-v850.c:2950 msgid "displacement is too large" msgstr "desubicación demasiado grande" -#: config/tc-v850.c:2975 config/tc-xtensa.c:13081 +#: config/tc-v850.c:2968 config/tc-xtensa.c:13093 msgid "invalid operand" msgstr "operando inválido" -#: config/tc-v850.c:3087 +#: config/tc-v850.c:3080 msgid "loop: 32-bit displacement not supported" msgstr "bucle: desplazamiento de 32-bit no compatible" -#: config/tc-vax.c:1344 +#: config/tc-vax.c:1339 msgid "no '[' to match ']'" msgstr "no hay '[' que coincida con ']'" -#: config/tc-vax.c:1360 +#: config/tc-vax.c:1355 msgid "bad register in []" -msgstr "registro equivocado en []" +msgstr "registro incorrecto en []" -#: config/tc-vax.c:1362 +#: config/tc-vax.c:1357 msgid "[PC] index banned" msgstr "índice [PC] prohibido" -#: config/tc-vax.c:1398 +#: config/tc-vax.c:1393 msgid "no '(' to match ')'" msgstr "no hay '(' que coincida con ')'" -#: config/tc-vax.c:1514 +#: config/tc-vax.c:1509 msgid "invalid branch operand" msgstr "operando de ramificación inválido" -#: config/tc-vax.c:1541 +#: config/tc-vax.c:1536 msgid "address prohibits @" msgstr "la dirección prohibe @" -#: config/tc-vax.c:1543 +#: config/tc-vax.c:1538 msgid "address prohibits #" msgstr "la dirección prohibe #" -#: config/tc-vax.c:1547 +#: config/tc-vax.c:1542 msgid "address prohibits -()" msgstr "la dirección prohibe -()" -#: config/tc-vax.c:1549 +#: config/tc-vax.c:1544 msgid "address prohibits ()+" msgstr "la dirección prohibe ()+" -#: config/tc-vax.c:1552 +#: config/tc-vax.c:1547 msgid "address prohibits ()" msgstr "la dirección prohibe ()" -#: config/tc-vax.c:1554 +#: config/tc-vax.c:1549 msgid "address prohibits []" msgstr "la dirección prohibe []" -#: config/tc-vax.c:1556 +#: config/tc-vax.c:1551 msgid "address prohibits register" msgstr "la dirección prohibe un registro" -#: config/tc-vax.c:1558 +#: config/tc-vax.c:1553 msgid "address prohibits displacement length specifier" msgstr "la dirección prohibe un especificador de longitud de desubicación" -#: config/tc-vax.c:1586 +#: config/tc-vax.c:1581 msgid "invalid operand of S^#" msgstr "operando inválido de S^#" -#: config/tc-vax.c:1599 +#: config/tc-vax.c:1594 msgid "S^# needs expression" msgstr "S^# necesita una expresión" -#: config/tc-vax.c:1606 +#: config/tc-vax.c:1601 msgid "S^# may only read-access" msgstr "S^# tal vez sea solamente para acceso de lectura" -#: config/tc-vax.c:1629 +#: config/tc-vax.c:1624 msgid "invalid operand of -()" msgstr "operando inválido de -()" -#: config/tc-vax.c:1635 +#: config/tc-vax.c:1630 msgid "-(PC) unpredictable" msgstr "-(PC) impredecible" -#: config/tc-vax.c:1637 +#: config/tc-vax.c:1632 msgid "[]index same as -()register: unpredictable" msgstr "[]índice igual que -()registro: impredecible" -#: config/tc-vax.c:1669 +#: config/tc-vax.c:1664 msgid "invalid operand of ()+" msgstr "operando inválido de ()+" -#: config/tc-vax.c:1675 +#: config/tc-vax.c:1670 msgid "(PC)+ unpredictable" msgstr "(PC)+ impredecible" -#: config/tc-vax.c:1677 +#: config/tc-vax.c:1672 msgid "[]index same as ()+register: unpredictable" msgstr "[]índice igual que ()+registro: impredecible" -#: config/tc-vax.c:1700 +#: config/tc-vax.c:1695 msgid "# conflicts length" msgstr "# tiene conflictos con la longitud" -#: config/tc-vax.c:1702 +#: config/tc-vax.c:1697 msgid "# bars register" msgstr "# prohibe el registro" -#: config/tc-vax.c:1722 +#: config/tc-vax.c:1717 msgid "writing or modifying # is unpredictable" msgstr "escribir o modificar # es impredecible" -#: config/tc-vax.c:1748 +#: config/tc-vax.c:1743 msgid "length not needed" msgstr "no se necesita la longitud" -#: config/tc-vax.c:1755 +#: config/tc-vax.c:1750 msgid "can't []index a register, because it has no address" msgstr "no se puede []indizar un registro, porque no tiene dirección" -#: config/tc-vax.c:1757 +#: config/tc-vax.c:1752 msgid "a register has no address" msgstr "un registro no tiene dirección" -#: config/tc-vax.c:1766 +#: config/tc-vax.c:1761 msgid "PC part of operand unpredictable" msgstr "PC como parte operativa es impredecible" -#: config/tc-vax.c:1924 +#: config/tc-vax.c:1919 msgid "odd number of bytes in operand description" msgstr "número impar de bytes en la descripción de operando" -#: config/tc-vax.c:1938 +#: config/tc-vax.c:1933 msgid "Bad operand" -msgstr "Operando equivocado" +msgstr "Operando incorrecto" -#: config/tc-vax.c:1943 +#: config/tc-vax.c:1938 msgid "Not enough operands" msgstr "No hay suficientes operandos" -#: config/tc-vax.c:2220 +#: config/tc-vax.c:2212 msgid "SYMBOL TABLE not implemented" msgstr "SYMBOL TABLE no está implementado" -#: config/tc-vax.c:2224 +#: config/tc-vax.c:2216 msgid "TOKEN TRACE not implemented" msgstr "TOKEN TRACE no está implementado" -#: config/tc-vax.c:2228 +#: config/tc-vax.c:2220 #, c-format msgid "Displacement length %s ignored!" msgstr "¡Se descarta la longitud de desubicación %s!" -#: config/tc-vax.c:2232 +#: config/tc-vax.c:2224 #, c-format msgid "I don't need or use temp. file \"%s\"." msgstr "No se necesita o se utiliza el fichero temp. «%s»." -#: config/tc-vax.c:2236 +#: config/tc-vax.c:2228 msgid "I don't use an interpass file! -V ignored" msgstr "¡No se usa un fichero entre pasos! Se descarta -V" -#: config/tc-vax.c:2293 +#: config/tc-vax.c:2252 #, c-format msgid "" "VAX options:\n" @@ -18736,85 +21295,70 @@ msgstr "" "-T\t\t\tse descarta\n" "-V\t\t\tse descarta\n" -#: config/tc-vax.c:2302 +#: config/tc-vax.c:2261 #, c-format msgid "" -"VMS options:\n" -"-+\t\t\thash encode names longer than 31 characters\n" -"-1\t\t\t`const' handling compatible with gcc 1.x\n" -"-H\t\t\tshow new symbol after hash truncation\n" -"-h NUM\t\t\tdon't hash mixed-case names, and adjust case:\n" -"\t\t\t0 = upper, 2 = lower, 3 = preserve case\n" -"-v\"VERSION\"\t\tcode being assembled was produced by compiler \"VERSION\"\n" +"ELF options:\n" +"-k -pic\t\t\tenable PIC mode\n" +"-Q[y|n]\t\t\tignored\n" msgstr "" -"Opciones de VMS:\n" -"-+\t\t\tdispersa los nombres de codificación más largos que 31 caracteres\n" -"-1\t\t\tmanejo de `const' handling compatible con gcc 1.x\n" -"-H\t\t\tmuestra el símbolo nuevo tras truncado de dispersión\n" -"-h NUM\t\t\tno dispersa nombres con mayúsculas y minúsculas mezcladas, y ajusta:\n" -"\t\t\t0 = mayúsculas, 2 = minúsculas, 3 = preservar mayúsculas/minúsculas\n" -"-v\"VERSION\"\t\tel código a ensamblar fue producido por el compilador \"VERSION\"\n" -#: config/tc-vax.c:2467 +#: config/tc-vax.c:2422 #, c-format msgid "Ignoring statement due to \"%s\"" msgstr "Se descarta la declaración debido a «%s»" -#: config/tc-vax.c:2484 +#: config/tc-vax.c:2439 #, c-format msgid "Aborting because statement has \"%s\"" msgstr "Se aborta porque la declaración tiene «%s»" -#: config/tc-vax.c:2529 +#: config/tc-vax.c:2484 msgid "Can't relocate expression" msgstr "No se puede reubicar la expresión" -#: config/tc-vax.c:2632 +#: config/tc-vax.c:2587 msgid "Bignum not permitted in short literal. Immediate mode assumed." msgstr "No se permite un número grande en una literal short. Se asume el modo inmediato." -#: config/tc-vax.c:2641 +#: config/tc-vax.c:2596 msgid "Can't do flonum short literal: immediate mode used." msgstr "No se puede hacer una literal short de un número de coma flotante: se usa el modo inmediato." -#: config/tc-vax.c:2688 -#, c-format -msgid "A bignum/flonum may not be a displacement: 0x%lx used" +#: config/tc-vax.c:2643 +#, fuzzy, c-format +#| msgid "A bignum/flonum may not be a displacement: 0x%lx used" +msgid "A bignum/flonum may not be a displacement: 0x%<PRIx64> used" msgstr "Un número grande/de coma flotante no puede ser una desubicación: se usa 0x%lx" -#: config/tc-vax.c:3000 +#: config/tc-vax.c:2956 #, c-format msgid "Short literal overflow(%ld.), immediate mode assumed." msgstr "Desbordamiento de la literal short (%ld.), se asume el modo inmediato." -#: config/tc-vax.c:3009 +#: config/tc-vax.c:2965 #, c-format msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s" msgstr "Se fuerza la literal short a modo inmediato. now_seg=%s to_seg=%s" -#: config/tc-vax.c:3074 +#: config/tc-vax.c:3030 msgid "Length specification ignored. Address mode 9F used" msgstr "Se descarta la especificación de longitud. Se usa el modo de direccionamiento 9F" -#: config/tc-vax.c:3132 +#: config/tc-vax.c:3088 msgid "Invalid operand: immediate value used as base address." msgstr "Operando inválido: valor inmediato empleado como dirección base." -#: config/tc-vax.c:3134 +#: config/tc-vax.c:3090 msgid "Invalid operand: immediate value used as address." msgstr "Operando inválido: valor inmediato empleado como dirección." -#: config/tc-vax.c:3159 +#: config/tc-vax.c:3115 #, c-format msgid "Symbol %s used as immediate operand in PIC mode." msgstr "Se utilizó el símbolo %s como operando inmediato en modo PIC." -#: config/tc-vax.c:3264 -#, c-format -msgid "VIP_BEGIN error:%s" -msgstr "Error VIP_BEGIN:%s" - -#: config/tc-visium.c:862 +#: config/tc-visium.c:836 msgid "Bad call to MD_ATOF()" msgstr "Equivocación de llamada a MD_ATOF()" @@ -18850,7 +21394,7 @@ msgstr "Tipo desconocido" #: config/tc-wasm32.c:625 msgid "only single block types allowed" -msgstr "sólo tipos de bloque simple permitido" +msgstr "solo tipos de bloque simple permitido" #: config/tc-wasm32.c:635 msgid "instruction does not take a block type" @@ -18870,7 +21414,7 @@ msgstr "ausente desplazamiento" #: config/tc-wasm32.c:675 msgid "missing local index" -msgstr "indizado local ausente" +msgstr "indexado local ausente" #: config/tc-wasm32.c:680 msgid "missing break count" @@ -18892,21 +21436,16 @@ msgstr "llamada de firma ausente" msgid "missing table index" msgstr "distribución indizada ausente" -#: config/tc-wasm32.c:726 config/tc-z80.c:1951 read.c:3755 +#: config/tc-wasm32.c:726 config/tc-z80.c:3697 read.c:4019 #, c-format msgid "junk at end of line, first unrecognized character is `%c'" msgstr "basura al final de la línea; el primer carácter descartado es `%c'" -#: config/tc-xc16x.c:218 -#, c-format -msgid " XC16X specific command line options:\n" -msgstr " Opciones de línea de mandatos específicas de XC16X:\n" - #: config/tc-xgate.c:215 msgid "architecture variant invalid" msgstr "arquitectura variante no válida" -#: config/tc-xgate.c:370 +#: config/tc-xgate.c:369 #, c-format msgid "" "Freescale XGATE co-processor options:\n" @@ -18929,16 +21468,16 @@ msgstr "" " --print-opcodes escribe la lista de instrucciones con sintaxis\n" " --generate-example genera un ejemplo de cada instrucción" -#: config/tc-xgate.c:493 +#: config/tc-xgate.c:492 msgid "opcode missing or not found on input line" msgstr "" -#: config/tc-xgate.c:498 +#: config/tc-xgate.c:497 #, fuzzy, c-format msgid "opcode %s not found in opcode hash table" msgstr "error interno: no se puede dispersar el código de operación «%s»: %s" -#: config/tc-xgate.c:511 +#: config/tc-xgate.c:509 msgid "matching operands to opcode" msgstr "coincidiendo operandos para código operacional" @@ -18962,7 +21501,7 @@ msgstr "Valor externo de 3-bit de límite." #: config/tc-xgate.c:731 msgid "Value out of 4-bit range." -msgstr "Valor fuera de límite de 4-bit." +msgstr "Valor fuera de rango de 4-bit." #: config/tc-xgate.c:738 msgid "Value out of 5-bit range." @@ -18972,32 +21511,32 @@ msgstr "Valor externo de 5-bit de límite." msgid ":operand has too many bits" msgstr ":operand tiene demasiadas bits" -#: config/tc-xgate.c:992 +#: config/tc-xgate.c:994 msgid "unknown operand count" msgstr "contador operacional desconocido" -#: config/tc-xgate.c:1236 config/tc-xgate.c:1248 +#: config/tc-xgate.c:1238 config/tc-xgate.c:1250 msgid ": expected register name r0-r7 " msgstr ": se esperaba un nombre registrado r0-r7 " -#: config/tc-xgate.c:1284 +#: config/tc-xgate.c:1286 #, c-format msgid ":operand value(%d) too big for constraint" msgstr ":operando valor%d) demasiado grande para instrucción" -#: config/tc-xgate.c:1302 +#: config/tc-xgate.c:1304 msgid "you must use a hi/lo directive or 16-bit macro to load a 16-bit value." msgstr "" -#: config/tc-xgate.c:1315 +#: config/tc-xgate.c:1317 msgid ":unknown relocation constraint size" msgstr ":unknown de reubicación de tamaño restringido" -#: config/tc-xgate.c:1322 +#: config/tc-xgate.c:1324 msgid ": expected register name ccr " msgstr ": esperado nombre de registro ccr " -#: config/tc-xgate.c:1328 +#: config/tc-xgate.c:1330 msgid ": expected register name pc " msgstr ": esperaba nombre de registrado pc " @@ -19020,560 +21559,551 @@ msgstr "no se admite el tamaño de compostura %d" msgid "unsupported fptr fixup" msgstr "no se admite la compostura fptr" -#: config/tc-xtensa.c:636 +#: config/tc-xtensa.c:650 msgid "illegal range of target hardware versions" msgstr "límite ilegal de versiones de hardware objetivo" -#: config/tc-xtensa.c:807 +#: config/tc-xtensa.c:831 msgid "--density option is ignored" msgstr "se descarta la opción --density" -#: config/tc-xtensa.c:810 +#: config/tc-xtensa.c:834 msgid "--no-density option is ignored" msgstr "se descarta la opción --no-density" -#: config/tc-xtensa.c:828 +#: config/tc-xtensa.c:852 msgid "--generics is deprecated; use --transform instead" msgstr "--generics es obsoleto; utilice en su lugar --transform" -#: config/tc-xtensa.c:831 +#: config/tc-xtensa.c:855 msgid "--no-generics is deprecated; use --no-transform instead" msgstr "--no-generics es obsoleto; utilice en su lugar --no-transform" -#: config/tc-xtensa.c:834 +#: config/tc-xtensa.c:858 msgid "--relax is deprecated; use --transform instead" msgstr "--relax es obsoleto; utilice en su lugar --transform" -#: config/tc-xtensa.c:837 +#: config/tc-xtensa.c:861 msgid "--no-relax is deprecated; use --no-transform instead" msgstr "--no-relax es obsoleto; utilice en su lugar --no-transform" -#: config/tc-xtensa.c:854 +#: config/tc-xtensa.c:878 msgid "--absolute-literals option not supported in this Xtensa configuration" msgstr "la opción --absolute-literals no se admite en esta configuración Xtensa" -#: config/tc-xtensa.c:927 +#: config/tc-xtensa.c:951 msgid "prefer-l32r conflicts with prefer-const16" msgstr "prefer-l32r tiene conflictos con prefer-const16" -#: config/tc-xtensa.c:933 +#: config/tc-xtensa.c:957 msgid "prefer-const16 conflicts with prefer-l32r" msgstr "prefer-const16 tiene conflictos con prefer-l32r" -#: config/tc-xtensa.c:942 config/tc-xtensa.c:951 config/tc-xtensa.c:955 +#: config/tc-xtensa.c:966 config/tc-xtensa.c:975 config/tc-xtensa.c:979 msgid "invalid target hardware version" msgstr "versión de hardware objetivo inválido" -#: config/tc-xtensa.c:999 +#: config/tc-xtensa.c:1025 msgid "no-auto-litpools is incompatible with auto-litpool-limit" msgstr "no-auto-litpools es incompatible con auto-litpool-limit" -#: config/tc-xtensa.c:1001 config/tc-xtensa.c:1004 +#: config/tc-xtensa.c:1027 config/tc-xtensa.c:1030 msgid "invalid auto-litpool-limit argument" msgstr "argumento inválido auto-litpool-limit" -#: config/tc-xtensa.c:1006 +#: config/tc-xtensa.c:1032 msgid "invalid auto-litpool-limit argument (range is 100-10000)" msgstr "argumento inválido auto-litpool-limit (límite es 100-10000)" -#: config/tc-xtensa.c:1183 +#: config/tc-xtensa.c:1229 msgid "unmatched .end directive" msgstr "directiva .end no coincidida" -#: config/tc-xtensa.c:1212 +#: config/tc-xtensa.c:1258 msgid ".begin directive with no matching .end directive" msgstr "directiva .begin sin una directiva .end coincidente" -#: config/tc-xtensa.c:1253 +#: config/tc-xtensa.c:1299 msgid "[no-]generics is deprecated; use [no-]transform instead" msgstr "[no-]generics es obsoleto; utilice en su lugar [no-]transform" -#: config/tc-xtensa.c:1258 +#: config/tc-xtensa.c:1304 msgid "[no-]relax is deprecated; use [no-]transform instead" msgstr "[no-]relax es obsoleto; utilice en su lugar [no-]transform" -#: config/tc-xtensa.c:1271 +#: config/tc-xtensa.c:1317 #, c-format msgid "directive %s cannot be negated" msgstr "la directiva %s no se puede negar" -#: config/tc-xtensa.c:1277 +#: config/tc-xtensa.c:1323 msgid "unknown directive" msgstr "desconoce directiva" -#: config/tc-xtensa.c:1298 config/tc-xtensa.c:1394 config/tc-xtensa.c:1636 -#: config/tc-xtensa.c:5890 +#: config/tc-xtensa.c:1344 config/tc-xtensa.c:1440 config/tc-xtensa.c:1670 +#: config/tc-xtensa.c:5931 msgid "directives are not valid inside bundles" msgstr "las directivas no son válidas dentro de una agrupación" -#: config/tc-xtensa.c:1310 +#: config/tc-xtensa.c:1356 msgid ".begin literal is deprecated; use .literal instead" msgstr "El uso de .begin literal es obsoleto. Utilice en su lugar .literal" -#: config/tc-xtensa.c:1324 +#: config/tc-xtensa.c:1370 msgid "cannot set literal_prefix inside literal fragment" msgstr "no se puede establecer literal_prefix dentro de un fragmento literal" -#: config/tc-xtensa.c:1357 +#: config/tc-xtensa.c:1403 msgid ".begin [no-]density is ignored" msgstr "se descarta .begin [no-]density" -#: config/tc-xtensa.c:1364 config/tc-xtensa.c:1414 +#: config/tc-xtensa.c:1410 config/tc-xtensa.c:1460 msgid "Xtensa absolute literals option not supported; ignored" msgstr "Xtensa como opción absoluta literal no se admite; se descarta" -#: config/tc-xtensa.c:1407 +#: config/tc-xtensa.c:1453 msgid ".end [no-]density is ignored" msgstr "se descarta .end [no-]density" -#: config/tc-xtensa.c:1432 +#: config/tc-xtensa.c:1478 #, c-format msgid "does not match begin %s%s at %s:%d" msgstr "no coincide begin %s%s en %s:%d" -#: config/tc-xtensa.c:1487 +#: config/tc-xtensa.c:1533 msgid ".literal_position inside literal directive; ignoring" msgstr ".literal_position dentro de una directiva literal; se descarta" -#: config/tc-xtensa.c:1507 +#: config/tc-xtensa.c:1552 msgid ".literal not allowed inside .begin literal region" msgstr ".literal no se permite dentro de una región .begin literal" -#: config/tc-xtensa.c:1546 +#: config/tc-xtensa.c:1580 msgid "expected comma or colon after symbol name; rest of line ignored" msgstr "se esperaba coma o punto y coma tras nombre del símbolo: se descarta el resto de la línea" -#: config/tc-xtensa.c:1605 +#: config/tc-xtensa.c:1639 msgid "fall through frequency must be greater than 0" msgstr "la frecuencia de caída debe ser mayor a 0" -#: config/tc-xtensa.c:1613 +#: config/tc-xtensa.c:1647 msgid "branch target frequency must be greater than 0" msgstr "la frecuencia de ramificación de objetivo debe ser mayor a 0" -#: config/tc-xtensa.c:1661 +#: config/tc-xtensa.c:1695 #, c-format msgid "opcode-specific %s relocation used outside an instruction" msgstr "se usó la reubicación %s específica de código operacional fuera de una instrucción" -#: config/tc-xtensa.c:1671 +#: config/tc-xtensa.c:1705 #, c-format msgid "invalid use of %s relocation" msgstr "uso inválid de la reubicación %s" -#: config/tc-xtensa.c:1867 config/tc-xtensa.c:1884 +#: config/tc-xtensa.c:1901 config/tc-xtensa.c:1918 #, c-format msgid "bad register name: %s" -msgstr "nombre de registro equivocado: %s" +msgstr "nombre de registro incorrecto: %s" -#: config/tc-xtensa.c:1873 +#: config/tc-xtensa.c:1907 #, c-format msgid "bad register number: %s" -msgstr "número de registro equivocado: %s" +msgstr "número de registro incorrecto: %s" -#: config/tc-xtensa.c:1937 +#: config/tc-xtensa.c:1971 msgid "pcrel relocation not allowed in an instruction" msgstr "no se permite la reubicación de pcrel en una instrucción" -#: config/tc-xtensa.c:1954 -msgid "register number out of range" -msgstr "número de registro fuera de límite" - -#: config/tc-xtensa.c:2040 +#: config/tc-xtensa.c:2074 msgid "extra colon" msgstr "punto y coma extra" -#: config/tc-xtensa.c:2101 +#: config/tc-xtensa.c:2135 msgid "incorrect register number, ignoring" msgstr "número de registro incorrecto, se descarta" -#: config/tc-xtensa.c:2182 +#: config/tc-xtensa.c:2216 #, c-format msgid "cannot encode opcode \"%s\"" msgstr "no se puede codificar el código operacional «%s»" -#: config/tc-xtensa.c:2274 +#: config/tc-xtensa.c:2308 #, c-format msgid "not enough operands (%d) for '%s'; expected %d" msgstr "no hay suficientes operandos (%d) para «%s»; se esperaban %d" -#: config/tc-xtensa.c:2281 +#: config/tc-xtensa.c:2315 #, c-format msgid "too many operands (%d) for '%s'; expected %d" msgstr "demasiados operandos (%d) para «%s»; se esperaban %d" -#: config/tc-xtensa.c:2332 +#: config/tc-xtensa.c:2366 #, c-format msgid "invalid register '%s' for '%s' instruction" msgstr "registro «%s» inválido para «%s» como instrucción" -#: config/tc-xtensa.c:2339 +#: config/tc-xtensa.c:2373 #, c-format msgid "invalid register number (%ld) for '%s' instruction" msgstr "número de registro (%ld) inválido para instrucción «%s»" -#: config/tc-xtensa.c:2406 +#: config/tc-xtensa.c:2440 #, c-format msgid "invalid register number (%ld) for '%s'" msgstr "número de registro inválido (%ld) para «%s»" -#: config/tc-xtensa.c:2793 +#: config/tc-xtensa.c:2839 #, c-format msgid "operand %d of '%s' has out of range value '%u'" -msgstr "operando %d de «%s» tiene el valor fuera de límite '%u'" +msgstr "operando %d de «%s» tiene el valor fuera de rango '%u'" -#: config/tc-xtensa.c:2799 +#: config/tc-xtensa.c:2845 #, c-format msgid "operand %d of '%s' has invalid value '%u'" msgstr "operando %d de «%s» tiene el valor inválido '%u'" -#: config/tc-xtensa.c:2846 +#: config/tc-xtensa.c:2892 #, c-format msgid "internal error: unknown option name '%s'" msgstr "error interno: nombre desconocido opcional '%s'" -#: config/tc-xtensa.c:3955 +#: config/tc-xtensa.c:4001 msgid "can't handle generation of literal/labels yet" msgstr "no se puede manipular la generación de literales/etiquetas aún" -#: config/tc-xtensa.c:3959 +#: config/tc-xtensa.c:4005 msgid "can't handle undefined OP TYPE" msgstr "no se puede manipular un OP TYPE sin definir" -#: config/tc-xtensa.c:4020 config/tc-xtensa.c:4029 +#: config/tc-xtensa.c:4066 config/tc-xtensa.c:4075 #, c-format msgid "found %d operand for '%s': Expected %d" msgid_plural "found %d operands for '%s': Expected %d" msgstr[0] "se encontraron %d operando para «%s»: Se esperaban %d" msgstr[1] "se encontraron %d operandos para «%s»: Se esperaban %d" -#: config/tc-xtensa.c:4052 +#: config/tc-xtensa.c:4098 msgid "immediate operands sum to greater than 32" msgstr "la suma de los operandos inmediatos es mayor a 32" -#: config/tc-xtensa.c:4304 +#: config/tc-xtensa.c:4350 #, c-format msgid "invalid relocation for operand %i of '%s'" -msgstr "reubicación no válida para operando %i de «%s»" +msgstr "reubicación no válida para el operando %i de «%s»" -#: config/tc-xtensa.c:4314 +#: config/tc-xtensa.c:4360 #, c-format msgid "invalid expression for operand %i of '%s'" -msgstr "expresión no válida para operando %i en «%s»" +msgstr "expresión no válida para el operando %i en «%s»" -#: config/tc-xtensa.c:4324 +#: config/tc-xtensa.c:4370 #, c-format msgid "invalid relocation in instruction slot %i" msgstr "reubicación no válida en la ranura de instrucción %i" -#: config/tc-xtensa.c:4331 +#: config/tc-xtensa.c:4377 #, c-format msgid "undefined symbol for opcode \"%s\"" msgstr "símbolo indefinido para el código operacional «%s»" -#: config/tc-xtensa.c:4819 +#: config/tc-xtensa.c:4852 msgid "opcode 'NOP.N' unavailable in this configuration" msgstr "cód op 'NOP.N' no está disponible en esta configuración" -#: config/tc-xtensa.c:4879 +#: config/tc-xtensa.c:4912 msgid "get_expanded_loop_offset: invalid opcode" msgstr "get_expanded_loop_offset: código operacional inválido" -#: config/tc-xtensa.c:5037 +#: config/tc-xtensa.c:5073 #, c-format msgid "assembly state not set for first frag in section %s" msgstr "no se estableció el estado de ensamblado para el primer fragmento en la sección %s" -#: config/tc-xtensa.c:5090 +#: config/tc-xtensa.c:5126 #, c-format msgid "unaligned branch target: %d bytes at 0x%lx" msgstr "objetivo de ramificación sin alinear: %d bytes en 0x%lx" -#: config/tc-xtensa.c:5134 +#: config/tc-xtensa.c:5170 #, c-format msgid "unaligned loop: %d bytes at 0x%lx" msgstr "ciclo sin alinear: %d bytes en 0x%lx" -#: config/tc-xtensa.c:5159 +#: config/tc-xtensa.c:5195 msgid "unexpected fix" msgstr "corrección inesperada" -#: config/tc-xtensa.c:5170 config/tc-xtensa.c:5174 +#: config/tc-xtensa.c:5206 config/tc-xtensa.c:5210 msgid "undecodable fix" msgstr "fix que no se puede decodificar" -#: config/tc-xtensa.c:5330 +#: config/tc-xtensa.c:5371 msgid "labels are not valid inside bundles" msgstr "las etiquetas no son válidas dentro de una agrupación" -#: config/tc-xtensa.c:5350 +#: config/tc-xtensa.c:5391 msgid "invalid last instruction for a zero-overhead loop" msgstr "instrucción last no válida para un ciclo con adelanto cero" -#: config/tc-xtensa.c:5417 +#: config/tc-xtensa.c:5458 msgid "extra opening brace" msgstr "llave que abre extra" -#: config/tc-xtensa.c:5427 +#: config/tc-xtensa.c:5468 msgid "extra closing brace" msgstr "llave que cierra extra" -#: config/tc-xtensa.c:5454 +#: config/tc-xtensa.c:5495 msgid "missing closing brace" msgstr "ausentea llave que cierra" -#: config/tc-xtensa.c:5552 config/tc-xtensa.c:5581 +#: config/tc-xtensa.c:5593 config/tc-xtensa.c:5622 #, c-format msgid "wrong number of operands for '%s'" -msgstr "número equivocado de operandos para «%s»" +msgstr "número incorrecto de operandos para «%s»" -#: config/tc-xtensa.c:5568 +#: config/tc-xtensa.c:5609 #, c-format msgid "bad relocation expression for '%s'" -msgstr "expresión de reubicación equivocada para «%s»" +msgstr "expresión de reubicación incorrecta para «%s»" -#: config/tc-xtensa.c:5603 +#: config/tc-xtensa.c:5644 #, c-format msgid "unknown opcode or format name '%s'" msgstr "código operacional o nombre de formato desconocido «%s»" -#: config/tc-xtensa.c:5609 +#: config/tc-xtensa.c:5650 msgid "format names only valid inside bundles" -msgstr "los nombres de formato sólo son válidos dentro de agregados" +msgstr "los nombres de formato solo son válidos dentro de agregados" -#: config/tc-xtensa.c:5614 +#: config/tc-xtensa.c:5655 #, c-format msgid "multiple formats specified for one bundle; using '%s'" msgstr "se especificaron múltiples formatos para un agregado; se usa «%s»" -#: config/tc-xtensa.c:5664 +#: config/tc-xtensa.c:5705 msgid "entry instruction with stack decrement < 16" msgstr "instrucción entry con decremento de pila < 16" # entry → entrada o asiento -#: config/tc-xtensa.c:5718 +#: config/tc-xtensa.c:5759 msgid "unaligned entry instruction" msgstr "entrada de instrucción sin alinear" -#: config/tc-xtensa.c:5783 +#: config/tc-xtensa.c:5824 msgid "bad instruction format" -msgstr "formato de instrucción equivocado" +msgstr "formato de instrucción incorrecto" -#: config/tc-xtensa.c:5786 +#: config/tc-xtensa.c:5827 msgid "invalid relocation" msgstr "reubicación no válida" -#: config/tc-xtensa.c:5797 +#: config/tc-xtensa.c:5838 #, c-format msgid "invalid relocation for '%s' instruction" msgstr "reubicación para instrucción '%s' no válida" -#: config/tc-xtensa.c:5809 +#: config/tc-xtensa.c:5850 #, c-format msgid "invalid relocation for operand %d of '%s'" -msgstr "reubicación no válida para operando %d de «%s»" +msgstr "reubicación no válida para el operando %d de «%s»" -#: config/tc-xtensa.c:6075 +#: config/tc-xtensa.c:6133 #, c-format msgid "unhandled local relocation fix %s" msgstr "compostura de reubicación local %s sin manipular" -#: config/tc-xtensa.c:6126 +#: config/tc-xtensa.c:6182 #, c-format msgid "internal error; cannot generate `%s' relocation" msgstr "error interno; incapaz de generar «%s» reubicado" -#: config/tc-xtensa.c:6343 +#: config/tc-xtensa.c:6399 msgid "The option \"--no-allow-flix\" prohibits multi-slot flix." msgstr "La opción \"--no-allow-flix\" prohibe flix en ranuras múltiples." -#: config/tc-xtensa.c:6350 +#: config/tc-xtensa.c:6406 msgid "couldn't find a valid instruction format" msgstr "no se puede encontrar un formato de instrucción válido" -#: config/tc-xtensa.c:6351 +#: config/tc-xtensa.c:6407 #, c-format msgid " ops were: " msgstr " ops fueron: " -#: config/tc-xtensa.c:6353 +#: config/tc-xtensa.c:6409 #, c-format msgid " %s;" msgstr " %s;" -#: config/tc-xtensa.c:6363 +#: config/tc-xtensa.c:6419 #, c-format msgid "mismatch for format '%s': #slots = %d, #opcodes = %d" msgstr "" -#: config/tc-xtensa.c:6372 config/tc-xtensa.c:6469 +#: config/tc-xtensa.c:6428 config/tc-xtensa.c:6525 msgid "illegal resource usage in bundle" msgstr "se incluyó un recurso ilegal en el agregado" -#: config/tc-xtensa.c:6558 +#: config/tc-xtensa.c:6614 #, c-format msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same register" msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo registro" -#: config/tc-xtensa.c:6563 +#: config/tc-xtensa.c:6619 #, c-format msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same state" msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo estado" -#: config/tc-xtensa.c:6568 +#: config/tc-xtensa.c:6624 #, c-format msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same port" msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo puerto" -#: config/tc-xtensa.c:6573 +#: config/tc-xtensa.c:6629 #, c-format msgid "opcodes '%s' (slot %d) and '%s' (slot %d) both have volatile port accesses" msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) tienen acceso de puerto volatile" -#: config/tc-xtensa.c:6589 +#: config/tc-xtensa.c:6645 msgid "multiple branches or jumps in the same bundle" msgstr "múltiples ramificaciones o saltos en el mismo agregado" -#: config/tc-xtensa.c:7041 +#: config/tc-xtensa.c:7097 msgid "cannot assemble into a literal fragment" msgstr "no se puede ensamblar en un fragmento literal" -#: config/tc-xtensa.c:7043 +#: config/tc-xtensa.c:7099 msgid "..." msgstr "..." -#: config/tc-xtensa.c:8255 +#: config/tc-xtensa.c:8318 msgid "instruction sequence (write a0, branch, retw) may trigger hardware errata" msgstr "la secuencia de instrucción (write a0, branch, retw) puede activar errores de hardware" -#: config/tc-xtensa.c:8367 +#: config/tc-xtensa.c:8430 msgid "branching or jumping to a loop end may trigger hardware errata" msgstr "la ramificación o salto al final de un ciclo puede activar errores de hardware" -#: config/tc-xtensa.c:8449 +#: config/tc-xtensa.c:8512 msgid "loop end too close to another loop end may trigger hardware errata" msgstr "el final de un ciclo demasiado cerca a otro final de ciclo puede activar errores de hardware" -#: config/tc-xtensa.c:8458 +#: config/tc-xtensa.c:8521 #, c-format msgid "fr_var %lu < length %d" msgstr "fr_var %lu < longitud %d" -#: config/tc-xtensa.c:8615 +#: config/tc-xtensa.c:8679 msgid "loop containing less than three instructions may trigger hardware errata" msgstr "un ciclo que contiene menos de tres instrucciones puede activar errores de hardware" -#: config/tc-xtensa.c:8687 +#: config/tc-xtensa.c:8751 msgid "undecodable instruction in instruction frag" msgstr "instrucción no decodificable en la instrucción frag" -#: config/tc-xtensa.c:8797 +#: config/tc-xtensa.c:8861 msgid "invalid empty loop" msgstr "ciclo vacío inválido" -#: config/tc-xtensa.c:8802 +#: config/tc-xtensa.c:8866 msgid "loop target does not follow loop instruction in section" msgstr "el objetivo del ciclo no sigue la instrucción loop en la sección" -#: config/tc-xtensa.c:9367 +#: config/tc-xtensa.c:9433 msgid "cannot find suitable trampoline" msgstr "no puede encontrar lanzador útil" -#: config/tc-xtensa.c:9622 +#: config/tc-xtensa.c:9688 msgid "bad relaxation state" -msgstr "estado de relajación equivocado" +msgstr "estado de relajación incorrecto" -#: config/tc-xtensa.c:9680 +#: config/tc-xtensa.c:9746 #, c-format msgid "fr_var (%ld) < length (%d)" msgstr "fr_var (%ld) < longitud (%d)" -#: config/tc-xtensa.c:10380 +#: config/tc-xtensa.c:10446 msgid "jump target out of range; no usable trampoline found" -msgstr "omite objetivo fuera de límite; trampolín encontrado no utilizable" +msgstr "omite objetivo fuera de rango; trampolín encontrado no utilizable" -#: config/tc-xtensa.c:10504 +#: config/tc-xtensa.c:10570 msgid "invalid relaxation fragment result" msgstr "resultado de fragmento de relajación inválido" -#: config/tc-xtensa.c:10586 +#: config/tc-xtensa.c:10652 msgid "unable to widen instruction" msgstr "incapaz de extender instrucción" -#: config/tc-xtensa.c:10725 +#: config/tc-xtensa.c:10790 msgid "multiple literals in expansion" msgstr "literales múltiples en la expansión" -#: config/tc-xtensa.c:10729 +#: config/tc-xtensa.c:10794 msgid "no registered fragment for literal" msgstr "no hay un fragmento registrado para la literal" -#: config/tc-xtensa.c:10731 +#: config/tc-xtensa.c:10796 msgid "number of literal tokens != 1" msgstr "número de elementos literales != 1" -#: config/tc-xtensa.c:10860 config/tc-xtensa.c:10866 +#: config/tc-xtensa.c:10925 config/tc-xtensa.c:10931 #, c-format msgid "unresolved loop target symbol: %s" msgstr "símbolo objetivo del ciclo sin resolver: %s" -#: config/tc-xtensa.c:10972 +#: config/tc-xtensa.c:11419 #, c-format -msgid "invalid expression evaluation type %d" -msgstr "tipo de evaluación de expresión %d inválido" - -#: config/tc-xtensa.c:10989 -msgid "loop too long for LOOP instruction" -msgstr "ciclo demasiado largo para la instrucción LOOP" +msgid "fixes not all moved from %s" +msgstr "no se ‘movi’eron todas las composturas de %s" -#: config/tc-xtensa.c:11327 config/tc-xtensa.c:11567 +#: config/tc-xtensa.c:11547 msgid "literal pool location required for text-section-literals; specify with .literal_position" msgstr "se requiere la ubicación del conjunto de literales para text-section-literals; especifique con .literal_position" -#: config/tc-xtensa.c:11436 -#, c-format -msgid "fixes not all moved from %s" -msgstr "no se ‘movi’eron todas las composturas de %s" - -#: config/tc-xtensa.c:12395 +#: config/tc-xtensa.c:12407 msgid "too many operands in instruction" msgstr "demasiados operandos en la instrucción" -#: config/tc-xtensa.c:12605 +#: config/tc-xtensa.c:12617 msgid "invalid symbolic operand" -msgstr "operando simbólico inválido" +msgstr "operando de símbolo inválido" -#: config/tc-xtensa.c:12666 +#: config/tc-xtensa.c:12678 msgid "operand number mismatch" msgstr "no coincide el número de operandos" -#: config/tc-xtensa.c:12670 +#: config/tc-xtensa.c:12682 #, c-format msgid "cannot encode opcode \"%s\" in the given format \"%s\"" msgstr "no se puede codificar el código operacional «%s» en el formato dado «%s»" -#: config/tc-xtensa.c:12695 +#: config/tc-xtensa.c:12707 #, c-format msgid "xtensa-isa failure: %s" msgstr "fallo xtensa-isa: %s" -#: config/tc-xtensa.c:12772 +#: config/tc-xtensa.c:12784 msgid "invalid opcode" msgstr "código operacional inválido" -#: config/tc-xtensa.c:12778 +#: config/tc-xtensa.c:12790 msgid "too few operands" msgstr "muy pocos operandos" -#: config/tc-xtensa.c:12828 +#: config/tc-xtensa.c:12796 +msgid "too many operands" +msgstr "demasiados operandos" + +#: config/tc-xtensa.c:12840 msgid "multiple writes to the same register" msgstr "escrituras múltiples al mismo registro" -#: config/tc-xtensa.c:12942 config/tc-xtensa.c:12948 +#: config/tc-xtensa.c:12954 config/tc-xtensa.c:12960 msgid "out of memory" msgstr "memoria agotada" -#: config/tc-xtensa.c:13037 +#: config/tc-xtensa.c:13049 msgid "TLS relocation not allowed in FLIX bundle" msgstr "TLS reubicado no permitido dentro del haz FLIX" @@ -19581,92 +22111,242 @@ msgstr "TLS reubicado no permitido dentro del haz FLIX" #. relaxed in the front-end. If "record_fixup" is set, then this #. function is being called during back-end relaxation, so flag #. the unexpected behavior as an error. -#: config/tc-xtensa.c:13043 +#: config/tc-xtensa.c:13055 msgid "unexpected TLS relocation" msgstr "reubicación TLS inesperada" -#: config/tc-xtensa.c:13087 +#: config/tc-xtensa.c:13099 msgid "symbolic operand not allowed" msgstr "no se permite operando simbólico" -#: config/tc-xtensa.c:13124 +#: config/tc-xtensa.c:13136 msgid "cannot decode instruction format" msgstr "no se puede decodificar el formato de instrucción" -#: config/tc-xtensa.c:13268 +#: config/tc-xtensa.c:13280 msgid "ignoring extra '-rename-section' delimiter ':'" msgstr "se descarta el delimitador '-rename-section' adicional ':'" -#: config/tc-xtensa.c:13273 +#: config/tc-xtensa.c:13285 #, c-format msgid "ignoring invalid '-rename-section' specification: '%s'" msgstr "se descarta la especificación '-rename-section' no válida: '%s'" -#: config/tc-xtensa.c:13284 +#: config/tc-xtensa.c:13296 #, c-format msgid "section %s renamed multiple times" msgstr "la sección %s se renombró varias veces" -#: config/tc-xtensa.c:13286 +#: config/tc-xtensa.c:13298 #, c-format msgid "multiple sections remapped to output section %s" msgstr "secciones múltiples remapeadas a la sección de salida %s" -#: config/tc-z80.c:326 +#: config/tc-z80.c:199 +#, fuzzy, c-format +#| msgid "Invalid COPR identifier" +msgid "Invalid CPU is specified: %s" +msgstr "Identificador COPR inválido" + +#: config/tc-z80.c:224 +#, fuzzy, c-format +#| msgid "Invalid FTEST completer: %s" +msgid "Invalid EXTENSION is specified: %s" +msgstr "Completador FTEST inválido: %s" + +#: config/tc-z80.c:279 +#, fuzzy, c-format +#| msgid "Invalid floating point number" +msgid "invalid floating point numbers type `%s'" +msgstr "Número de coma flotante inválido" + +#: config/tc-z80.c:300 config/tc-z80.c:309 +#, fuzzy, c-format +#| msgid "Invalid expression on command line.\n" +msgid "invalid INST in command line: %s" +msgstr "Expresión inválida en la línea de órdenes.\n" + +#: config/tc-z80.c:403 +#, fuzzy, c-format +#| msgid "" +#| " -march=CPU[,+EXTENSION...]\n" +#| " generate code for CPU and EXTENSION, CPU is one of:\n" +msgid "" +"\n" +"CPU model options:\n" +" -march=CPU[+EXT...][-EXT...]\n" +"\t\t\t generate code for CPU, where CPU is one of:\n" +msgstr "" +" -march=CPU[,+EXTENSIÓN...]\n" +" genera código para el CPU y la EXTENSIÓN. CPU es uno de:\n" + +#: config/tc-z80.c:409 +#, c-format +msgid "And EXT is combination (+EXT - add, -EXT - remove) of:\n" +msgstr "" + +#: config/tc-z80.c:412 +#, c-format +msgid "" +"\n" +"Compatibility options:\n" +" -local-prefix=TEXT\t treat labels prefixed by TEXT as local\n" +" -colonless\t\t permit colonless labels\n" +" -sdcc\t\t\t accept SDCC specific instruction syntax\n" +" -fp-s=FORMAT\t\t set single precision FP numbers format\n" +" -fp-d=FORMAT\t\t set double precision FP numbers format\n" +"Where FORMAT one of:\n" +" ieee754\t\t IEEE754 compatible (depends on directive)\n" +" half\t\t\t IEEE754 half precision (16 bit)\n" +" single\t\t IEEE754 single precision (32 bit)\n" +" double\t\t IEEE754 double precision (64 bit)\n" +" zeda32\t\t Zeda z80float library 32 bit format\n" +" math48\t\t 48 bit format from Math48 library\n" +"\n" +"Default: -march=z80+xyhl+infc\n" +msgstr "" + +#: config/tc-z80.c:618 msgid "-- unterminated string" msgstr "-- cadena sin terminar" -#: config/tc-z80.c:392 -msgid "floating point numbers are not implemented" -msgstr "los números de coma flotante no están implementados" +#: config/tc-z80.c:794 +#, fuzzy +#| msgid "unrecognised instruction %s" +msgid "undocumented instruction" +msgstr "instrucción %s no reconocida" -#: config/tc-z80.c:517 config/tc-z80.c:523 +#: config/tc-z80.c:838 config/tc-z80.c:844 msgid "mismatched parentheses" msgstr "paréntesis sin coincidencia" -#: config/tc-z80.c:560 +#: config/tc-z80.c:936 msgid "bad expression syntax" -msgstr "sintaxis de expresión equivocada" +msgstr "sintaxis de expresión incorrecta" + +#: config/tc-z80.c:1147 +#, c-format +msgid "%d-bit overflow (%+<PRId64>)" +msgstr "" -#: config/tc-z80.c:722 +#: config/tc-z80.c:1162 +#, fuzzy, c-format +#| msgid "invalid immediate size" +msgid "invalid data size %d" +msgstr "tamaño inmediato inválido" + +#: config/tc-z80.c:1247 msgid "cannot make a relative jump to an absolute location" msgstr "no se puede hacer un salto relativo a una ubicación absoluta" -#: config/tc-z80.c:734 config/tc-z80.c:2002 -msgid "overflow" -msgstr "desbordamiento" +#: config/tc-z80.c:1254 +#, c-format +msgid "index overflow (%+<PRId64>)" +msgstr "" + +#: config/tc-z80.c:1257 +#, c-format +msgid "offset overflow (%+<PRId64>)" +msgstr "" -#: config/tc-z80.c:1106 config/tc-z80.c:1149 config/tc-z80.c:1193 -#: config/tc-z80.c:1261 config/tc-z80.c:1313 config/tc-z80.c:1367 -#: config/tc-z80.c:1636 +#: config/tc-z80.c:1460 config/tc-z80.c:1707 config/tc-z80.c:1750 +#: config/tc-z80.c:1831 config/tc-z80.c:1861 config/tc-z80.c:1920 +#: config/tc-z80.c:1980 config/tc-z80.c:2033 config/tc-z80.c:2066 +#: config/tc-z80.c:2123 config/tc-z80.c:2741 config/tc-z80.c:2790 +#: config/tc-z80.c:2828 config/tc-z80.c:2888 config/tc-z80.c:2948 +#: config/tc-z80.c:3024 config/tc-z80.c:3047 msgid "bad instruction syntax" msgstr "equivocación de instrucción sintáctica" -#: config/tc-z80.c:1239 +#: config/tc-z80.c:1898 msgid "condition code invalid for jr" msgstr "código de condición inválido para jr" -#: config/tc-z80.c:1745 +#: config/tc-z80.c:2487 config/tc-z80.c:2498 config/tc-z80.c:2514 +#: config/tc-z80.c:2547 +#, fuzzy +#| msgid "score3d instruction." +msgid "ADL mode instruction" +msgstr "instrucción score3d." + +#. SIS prefix, in Z80 it is LD B,B +#. LIS prefix, in Z80 it is LD C,C +#. SIL prefix, in Z80 it is LD D,D +#. LIL prefix, in Z80 it is LD E,E +#: config/tc-z80.c:2622 +#, fuzzy +#| msgid "unsupported instruction `%s'" +msgid "unsupported instruction, assembled as NOP" +msgstr "no admitió instrucción «%s»" + +#: config/tc-z80.c:3215 config/tc-z80.c:3246 msgid "parentheses ignored" msgstr "se descartan los paréntesis" -#: config/tc-z80.c:1977 config/tc-z8k.c:1467 config/tc-z8k.c:1530 -msgid "relative jump out of range" -msgstr "salto relativo fuera de límite" +#: config/tc-z80.c:3263 +#, fuzzy +#| msgid "opcode `%s' not supported for target %s" +msgid "CPU mode is unsupported by target" +msgstr "no se admite el código operacional «%s» para el objetivo %s" + +#: config/tc-z80.c:3285 +#, fuzzy +#| msgid "Tag name expected" +msgid "assignment expected" +msgstr "Se esperaba un nombre de etiqueta" -#: config/tc-z80.c:1994 -msgid "index offset out of range" -msgstr "desplazamiento indizado fuera de límite" +#: config/tc-z80.c:3690 +#, fuzzy, c-format +#| msgid "Unknown instruction '%s'" +msgid "Unknown instruction `%s'" +msgstr "Instrucción desconocida «%s»" + +#: config/tc-z80.c:3766 +#, fuzzy, c-format +#| msgid "index offset out of range" +msgid "8-bit signed offset out of range (%+ld)" +msgstr "desplazamiento indexado fuera de rango" -#: config/tc-z80.c:2036 config/tc-z8k.c:1538 +#: config/tc-z80.c:3789 #, c-format -msgid "md_apply_fix: unknown r_type 0x%x\n" +msgid "8-bit overflow (%+ld)" +msgstr "" + +#: config/tc-z80.c:3806 +#, c-format +msgid "16-bit overflow (%+ld)" +msgstr "" + +#: config/tc-z80.c:3814 +#, c-format +msgid "24-bit overflow (%+ld)" +msgstr "" + +#: config/tc-z80.c:3823 +#, c-format +msgid "32-bit overflow (%+ld)" +msgstr "" + +#: config/tc-z80.c:3836 +#, fuzzy, c-format +#| msgid "md_apply_fix: unknown r_type 0x%x\n" +msgid "md_apply_fix: unknown reloc type 0x%x\n" msgstr "md_apply_fix: r_type 0x%x desconocido\n" +#: config/tc-z80.c:4033 config/tc-z80.c:4092 +#, fuzzy +#| msgid "invalid syntax class" +msgid "invalid syntax" +msgstr "clase de sintaxis inválida" + +#: config/tc-z80.c:4111 +msgid "overflow" +msgstr "desbordamiento" + #: config/tc-z8k.c:281 #, c-format msgid "register rr%d out of range" -msgstr "registro rr%d fuera de límite" +msgstr "registro rr%d fuera de rango" #: config/tc-z8k.c:283 #, c-format @@ -19676,17 +22356,17 @@ msgstr "el registro rr%d no existe" #: config/tc-z8k.c:295 #, c-format msgid "register rh%d out of range" -msgstr "registro rh%d fuera de límite" +msgstr "registro rh%d fuera de rango" #: config/tc-z8k.c:307 #, c-format msgid "register rl%d out of range" -msgstr "registro rl%d fuera de límite" +msgstr "registro rl%d fuera de rango" #: config/tc-z8k.c:320 #, c-format msgid "register rq%d out of range" -msgstr "registro rq%d fuera de límite" +msgstr "registro rq%d fuera de rango" #: config/tc-z8k.c:322 #, c-format @@ -19696,7 +22376,7 @@ msgstr "el registro rq%d no existe" #: config/tc-z8k.c:334 #, c-format msgid "register r%d out of range" -msgstr "registro r%d fuera de límite" +msgstr "registro r%d fuera de rango" #: config/tc-z8k.c:375 #, c-format @@ -19706,12 +22386,12 @@ msgstr "se esperaba %c" #: config/tc-z8k.c:390 #, c-format msgid "register is wrong size for a word %s" -msgstr "el registro tiene el tamaño equivocado para un word %s" +msgstr "el registro tiene el tamaño incorrecto para un word %s" #: config/tc-z8k.c:404 #, c-format msgid "register is wrong size for address %s" -msgstr "el registro tiene el tamaño equivocado para la dirección %s" +msgstr "el registro tiene el tamaño incorrecto para la dirección %s" #: config/tc-z8k.c:538 #, c-format @@ -19741,32 +22421,32 @@ msgstr "opción no válida «%s»" msgid "invalid indirect register size" msgstr "tamaño de registro indirecto inválido" -#: config/tc-z8k.c:941 config/tc-z8k.c:1097 config/tc-z8k.c:1102 +#: config/tc-z8k.c:941 config/tc-z8k.c:1107 config/tc-z8k.c:1112 msgid "invalid control register name" msgstr "nombre de registro de control inválido" -#: config/tc-z8k.c:1086 +#: config/tc-z8k.c:1096 msgid "immediate must be 1 or 2" msgstr "el inmediato debe ser 1 o 2" -#: config/tc-z8k.c:1089 +#: config/tc-z8k.c:1099 msgid "immediate 1 or 2 expected" msgstr "se esperaba un inmediato 1 o 2" -#: config/tc-z8k.c:1120 +#: config/tc-z8k.c:1130 msgid "can't use R0 here" msgstr "no se puede usar R0 aquí" -#: config/tc-z8k.c:1278 +#: config/tc-z8k.c:1288 msgid "Can't find opcode to match operands" msgstr "No se puede encontrar el código operacional que coincida con los operandos" -#: config/tc-z8k.c:1325 +#: config/tc-z8k.c:1335 #, c-format msgid "invalid architecture -z%s" msgstr "arquitectura -z%s no válida" -#: config/tc-z8k.c:1344 +#: config/tc-z8k.c:1354 #, c-format msgid "" " Z8K options:\n" @@ -19779,94 +22459,103 @@ msgstr "" " -z8002 genera código sin segmentar\n" " -linkrelax crea código relajable por el enlazador\n" -#: config/tc-z8k.c:1356 +#: config/tc-z8k.c:1366 #, c-format msgid "call to md_convert_frag\n" msgstr "se llama a md_convert_frag\n" -#: config/tc-z8k.c:1463 config/tc-z8k.c:1503 config/tc-z8k.c:1526 +#: config/tc-z8k.c:1473 config/tc-z8k.c:1513 config/tc-z8k.c:1536 msgid "cannot branch to odd address" msgstr "no se puede ramificar a una dirección impar" -#: config/tc-z8k.c:1485 +#: config/tc-z8k.c:1477 config/tc-z8k.c:1540 +msgid "relative jump out of range" +msgstr "salto relativo fuera de rango" + +#: config/tc-z8k.c:1495 msgid "relative address out of range" -msgstr "dirección relativa fuera de límite" +msgstr "dirección relativa fuera de rango" -#: config/tc-z8k.c:1506 +#: config/tc-z8k.c:1516 msgid "relative call out of range" -msgstr "llamada relativa fuera de límite" +msgstr "llamada relativa fuera de rango" + +#: config/tc-z8k.c:1548 +#, c-format +msgid "md_apply_fix: unknown r_type 0x%x\n" +msgstr "md_apply_fix: r_type 0x%x desconocido\n" -#: config/tc-z8k.c:1550 +#: config/tc-z8k.c:1560 #, c-format msgid "call to md_estimate_size_before_relax\n" msgstr "se llama a md_estimate_size_before_relax\n" -#: config/xtensa-relax.c:1550 +#: config/xtensa-relax.c:1579 #, c-format msgid "invalid configuration option '%s' in transition rule '%s'" msgstr "la opción de configuración «%s» es no válida en la regla de transición «%s»" -#: config/xtensa-relax.c:1675 config/xtensa-relax.c:1685 +#: config/xtensa-relax.c:1704 config/xtensa-relax.c:1714 #, c-format msgid "opcode '%s': no bound opname '%s' for precondition in '%s'" msgstr "código operacional «%s»: no hay un nombre operacional «%s» enlazado para la precondición en «%s»" -#: config/xtensa-relax.c:1692 +#: config/xtensa-relax.c:1721 #, c-format msgid "opcode '%s': precondition only contains constants in '%s'" -msgstr "código operacional «%s»: la precondición sólo contiene constantes en «%s»" +msgstr "código operacional «%s»: la precondición solo contiene constantes en «%s»" -#: config/xtensa-relax.c:1739 +#: config/xtensa-relax.c:1768 msgid "expected one operand for generated literal" msgstr "se esperaba un operando para la literal generada" -#: config/xtensa-relax.c:1746 +#: config/xtensa-relax.c:1775 msgid "expected 0 operands for generated label" msgstr "se esperaban 0 operandos para la etiqueta generada" -#: config/xtensa-relax.c:1759 +#: config/xtensa-relax.c:1788 #, c-format msgid "invalid opcode '%s' in transition rule '%s'" msgstr "código operacional «%s» inválido en la regla de transición «%s»" -#: config/xtensa-relax.c:1767 +#: config/xtensa-relax.c:1796 #, c-format msgid "opcode '%s': replacement does not have %d op" msgid_plural "opcode '%s': replacement does not have %d ops" msgstr[0] "cód op «%s»: reemplazo no tiene %d operador" msgstr[1] "cód op «%s»: reemplazo no tiene %d operadores" -#: config/xtensa-relax.c:1783 +#: config/xtensa-relax.c:1812 #, c-format msgid "opcode '%s': cannot find literal definition" msgstr "código operacional «%s»: no se puede encontrar la definición literal" -#: config/xtensa-relax.c:1799 config/xtensa-relax.c:1829 +#: config/xtensa-relax.c:1828 config/xtensa-relax.c:1858 #, c-format msgid "opcode '%s': unidentified operand '%s' in '%s'" msgstr "cód op «%s»: operando no identificado «%s» en «%s»" -#: config/xtensa-relax.c:1824 +#: config/xtensa-relax.c:1853 #, c-format msgid "unknown user-defined function %s" msgstr "función definida por el usuario %s desconocida" -#: config/xtensa-relax.c:1835 +#: config/xtensa-relax.c:1864 #, c-format msgid "opcode '%s': could not parse operand '%s' in '%s'" msgstr "código operacional «%s»: no pudo interpretar operando «%s» en «%s»" -#: config/xtensa-relax.c:1875 +#: config/xtensa-relax.c:1904 #, c-format msgid "could not parse INSN_PATTERN '%s'" msgstr "no se puede decodificar INSN_PATTERN «%s»" -#: config/xtensa-relax.c:1879 +#: config/xtensa-relax.c:1908 #, c-format msgid "could not parse INSN_REPL '%s'" msgstr "no se puede decodificar INSN_REPL «%s»" -#: config/xtensa-relax.c:1890 +#: config/xtensa-relax.c:1919 #, c-format msgid "could not build transition for %s => %s" msgstr "no se puede construir la transición para %s => %s" @@ -19881,162 +22570,191 @@ msgstr "no se puede abrir «%s» para escritura" msgid "can't close `%s'" msgstr "no se puede cerrar «%s»" -#: dw2gencfi.c:319 read.c:2441 +#: dw2gencfi.c:313 read.c:2532 #, c-format msgid "bfd_set_section_flags: %s" msgstr "bfd_set_section_flags: %s" -#: dw2gencfi.c:601 dw2gencfi.c:617 +#: dw2gencfi.c:580 dw2gencfi.c:596 #, c-format msgid "register save offset not a multiple of %u" msgstr "registrador guarda desplazamiento no un múltiplo de %u" -#: dw2gencfi.c:700 +#: dw2gencfi.c:678 msgid "CFI state restore without previous remember" msgstr "CFI como declaración restaurada se utilizó sin un recuerdo previo" -#: dw2gencfi.c:758 +#: dw2gencfi.c:737 msgid "missing separator" msgstr "ausente el separador" -#: dw2gencfi.c:807 +#: dw2gencfi.c:786 msgid "bad register expression" msgstr "expresión de registro no válida" -#: dw2gencfi.c:828 dw2gencfi.c:958 dw2gencfi.c:996 dw2gencfi.c:1067 -#: dw2gencfi.c:1140 dw2gencfi.c:1378 +#: dw2gencfi.c:807 dw2gencfi.c:941 dw2gencfi.c:979 dw2gencfi.c:1050 +#: dw2gencfi.c:1123 dw2gencfi.c:1188 dw2gencfi.c:1387 scfidw2gen.c:176 msgid "CFI instruction used without previous .cfi_startproc" msgstr "CFI como instrucción utilizada sin un precedente .cfi_startproc" -#: dw2gencfi.c:1021 +#: dw2gencfi.c:1004 msgid "invalid or unsupported encoding in .cfi_personality" msgstr "codificación no válida o no admitida en .cfi_personality" -#: dw2gencfi.c:1028 +#: dw2gencfi.c:1011 msgid ".cfi_personality requires encoding and symbol arguments" msgstr ".cfi_personality requiere argumentos de codificación y símbolo" -#: dw2gencfi.c:1051 +#: dw2gencfi.c:1034 msgid "wrong second argument to .cfi_personality" -msgstr "segundo argumento equivocado para .cfi_personality" +msgstr "segundo argumento incorrecto para .cfi_personality" -#: dw2gencfi.c:1092 dw2gencfi.c:1168 +#: dw2gencfi.c:1075 dw2gencfi.c:1151 msgid "invalid or unsupported encoding in .cfi_lsda" msgstr "codificación no válida o no admitida en .cfi_lsda" -#: dw2gencfi.c:1099 +#: dw2gencfi.c:1082 msgid ".cfi_lsda requires encoding and symbol arguments" msgstr ".cfi_lsda requiere argumentos de codificación y símbolo" -#: dw2gencfi.c:1124 +#: dw2gencfi.c:1107 msgid "wrong second argument to .cfi_lsda" -msgstr "segundo argumento equivocado para .cfi_lsda" +msgstr "segundo argumento incorrecto para .cfi_lsda" -#: dw2gencfi.c:1190 +#: dw2gencfi.c:1173 msgid "wrong third argument to .cfi_val_encoded_addr" -msgstr "tercer argumento equivocado para .cfi_val_encoded_addr" +msgstr "tercer argumento incorrecto para .cfi_val_encoded_addr" -#: dw2gencfi.c:1280 +#: dw2gencfi.c:1272 msgid "inconsistent uses of .cfi_sections" msgstr "utilizaciones inconsistentes de .cfi_sections" -#: dw2gencfi.c:1291 +#: dw2gencfi.c:1283 msgid "previous CFI entry not closed (missing .cfi_endproc)" msgstr "la entrada CFI previa no está cerrada (ausente .cfi_endproc)" -#: dw2gencfi.c:1332 +#: dw2gencfi.c:1323 scfidw2gen.c:157 msgid ".cfi_endproc without corresponding .cfi_startproc" msgstr ".cfi_endproc sin un .cfi_startproc correspondiente" -#: dw2gencfi.c:1389 +#: dw2gencfi.c:1398 msgid "wrong argument to .cfi_personality_id" msgstr "equivocación del argumento para .cfi_personality_id" -#: dw2gencfi.c:1399 +#: dw2gencfi.c:1408 msgid ".cfi_fde_data without corresponding .cfi_startproc" msgstr ".cfi_fde_data sin correspondiente .cfi_startproc" -#: dw2gencfi.c:1508 +#: dw2gencfi.c:1516 msgid "unexpected .cfi_inline_lsda" msgstr ".cfi_inline_lsda no esperado" -#: dw2gencfi.c:1515 +#: dw2gencfi.c:1523 msgid ".cfi_inline_lsda not valid for this frame" msgstr ".cfi_inline_lsda no válido para este marco" -#: dw2gencfi.c:1523 +#: dw2gencfi.c:1531 msgid ".cfi_inline_lsda seen for frame without .cfi_lsda" msgstr "" -#: dw2gencfi.c:1536 +#: dw2gencfi.c:1544 #, c-format msgid "Alignment too large: %d. assumed." msgstr "Alineación muy grande: %d asumido." -#: dw2gencfi.c:1540 +#: dw2gencfi.c:1548 msgid "Alignment negative: 0 assumed." msgstr "Alineación negativa: se asume 0." -#: dw2gencfi.c:1566 +#: dw2gencfi.c:1574 msgid ".cfi_inline_lsda is not supported for this target" msgstr ".cfi_inline_lsda no está apoyado para este destino" -#: dw2gencfi.c:1573 +#: dw2gencfi.c:1581 msgid ".cfi_fde_data is not supported for this target" msgstr ".cfi_fde_data no es compatible para este objetivo" -#: dw2gencfi.c:1580 +#: dw2gencfi.c:1588 msgid ".cfi_personality_id is not supported for this target" msgstr "no se admite .cfi_personality_id para este objetivo" -#: dw2gencfi.c:2356 dw2gencfi.c:2512 +#: dw2gencfi.c:1906 +#, c-format +msgid "return column number %d overflows in CIE version 1" +msgstr "" + +#: dw2gencfi.c:2388 dw2gencfi.c:2563 msgid "open CFI at the end of file; missing .cfi_endproc directive" msgstr "abre CFI al final del fichero; directiva .cfi_endproc ausente" -#: dw2gencfi.c:2539 +#: dw2gencfi.c:2519 +#, fuzzy +#| msgid "CFI is not supported for this target" +msgid ".sframe not supported for target" +msgstr "CFI no admitido en este objetivo" + +#: dw2gencfi.c:2608 msgid "CFI is not supported for this target" msgstr "CFI no admitido en este objetivo" -#: dwarf2dbg.c:371 dwarf2dbg.c:2268 +#: dwarf2dbg.c:377 dwarf2dbg.c:3311 msgid "view number mismatch" msgstr "vista numérica no coincide" -#: dwarf2dbg.c:779 dwarf2dbg.c:814 +#: dwarf2dbg.c:692 +#, fuzzy, c-format +#| msgid "Big number is too big" +msgid "file number %u is too big" +msgstr "El número grande es demasiado grande" + +#: dwarf2dbg.c:924 +#, c-format +msgid "file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)" +msgstr "" + +#: dwarf2dbg.c:1180 dwarf2dbg.c:1274 msgid "file number less than one" msgstr "número de fichero menor que uno" -#: dwarf2dbg.c:789 -#, c-format -msgid "file number %ld already allocated" -msgstr "número de fichero %ld ya asignado" +#: dwarf2dbg.c:1217 +#, fuzzy +#| msgid "Second operand to .%s not a constant" +msgid "md5 value too small or not a constant" +msgstr "El segundo operando de .%s no es una constante" + +#: dwarf2dbg.c:1234 +#, fuzzy, c-format +#| msgid "Big number is too big" +msgid "file number %lu is too big" +msgstr "El número grande es demasiado grande" -#: dwarf2dbg.c:819 dwarf2dbg.c:1681 +#: dwarf2dbg.c:1281 dwarf2dbg.c:2304 #, c-format msgid "unassigned file number %ld" msgstr "número de fichero %ld sin asignar" -#: dwarf2dbg.c:888 +#: dwarf2dbg.c:1359 msgid "is_stmt value not 0 or 1" msgstr "is_stmt valorado distinto de 0 o 1" -#: dwarf2dbg.c:900 +#: dwarf2dbg.c:1373 msgid "isa number less than zero" msgstr "número isa menor que uno" -#: dwarf2dbg.c:912 +#: dwarf2dbg.c:1385 msgid "discriminator less than zero" msgstr "discriminador menor que cero" -#: dwarf2dbg.c:931 +#: dwarf2dbg.c:1404 msgid "numeric view can only be asserted to zero" msgstr "" -#: dwarf2dbg.c:966 +#: dwarf2dbg.c:1444 #, c-format msgid "unknown .loc sub-directive `%s'" msgstr "deconoce sub-directorio .loc `%s'" -#: dwarf2dbg.c:1758 +#: dwarf2dbg.c:2438 msgid "internal error: unknown dwarf2 format" msgstr "error interno: formato enana2 desconocido" @@ -20045,288 +22763,283 @@ msgstr "error interno: formato enana2 desconocido" msgid "string too big (%lu bytes)" msgstr "cadena demasiado grande (%lu bytes)" -#: ecoff.c:1585 -#, c-format -msgid "inserting \"%s\" into string hash table: %s" -msgstr "se inserta «%s» en la distribución de de dispersión de cadenas: %s" - -#: ecoff.c:1616 ecoff.c:1809 ecoff.c:1832 ecoff.c:1863 ecoff.c:2016 -#: ecoff.c:2135 +#: ecoff.c:1612 ecoff.c:1805 ecoff.c:1828 ecoff.c:1858 ecoff.c:2010 +#: ecoff.c:2126 msgid "no current file pointer" msgstr "no hay un puntero a fichero actualmente" -#: ecoff.c:1703 +#: ecoff.c:1699 msgid "too many st_End's" msgstr "demasiados st_End's" -#: ecoff.c:2041 -#, c-format -msgid "inserting \"%s\" into tag hash table: %s" -msgstr "se inserta «%s» en la distribución de de dispersión de marcas: %s" - -#: ecoff.c:2204 +#: ecoff.c:2195 msgid "fake .file after real one" msgstr ".file falso tras real" -#: ecoff.c:2293 +#: ecoff.c:2283 msgid "filename goes over one page boundary" msgstr "el nombre de fichero sobrepasa el límite de una página" -#: ecoff.c:2426 +#: ecoff.c:2416 msgid ".begin directive without a preceding .file directive" msgstr "directiva .begin sin una directiva .file precedente" -#: ecoff.c:2433 +#: ecoff.c:2423 msgid ".begin directive without a preceding .ent directive" msgstr "directiva .begin sin una directiva .ent precedente" -#: ecoff.c:2463 +#: ecoff.c:2453 msgid ".bend directive without a preceding .file directive" msgstr "directiva .bend sin una directiva .file precedente" -#: ecoff.c:2470 +#: ecoff.c:2460 msgid ".bend directive without a preceding .ent directive" msgstr "directiva .bend sin una directiva .ent precedente" -#: ecoff.c:2482 +#: ecoff.c:2472 msgid ".bend directive names unknown symbol" msgstr "símbolo desconocido en los nombres de la directiva .bend" -#: ecoff.c:2524 +#: ecoff.c:2514 msgid ".def pseudo-op used inside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .def dentro de .def/.endef; se descarta" -#: ecoff.c:2526 +#: ecoff.c:2516 msgid "empty symbol name in .def; ignored" -msgstr "nombre simbólico vacío en .def; se descarta" +msgstr "nombre de símbolo vacío en .def; se descarta" -#: ecoff.c:2563 +#: ecoff.c:2551 msgid ".dim pseudo-op used outside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .dim fuera de .def/.endef; se descarta" -#: ecoff.c:2578 +#: ecoff.c:2566 msgid "badly formed .dim directive" msgstr "directiva .dim mal formada" -#: ecoff.c:2591 +#: ecoff.c:2579 msgid "too many .dim entries" msgstr "demasiadas entradas .dim" -#: ecoff.c:2611 +#: ecoff.c:2599 msgid ".scl pseudo-op used outside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .scl fuera de .def/.endef; se descarta" -#: ecoff.c:2636 +#: ecoff.c:2624 msgid ".size pseudo-op used outside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .size fuera de .def/.endef; se descarta" -#: ecoff.c:2651 +#: ecoff.c:2639 msgid "badly formed .size directive" msgstr "directiva .size mal formada" -#: ecoff.c:2664 +#: ecoff.c:2652 msgid "too many .size entries" msgstr "demasiadas entradas .size" -#: ecoff.c:2686 +#: ecoff.c:2674 msgid ".type pseudo-op used outside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .type fuera de .def/.endef; se descarta" #. FIXME: We could handle this by setting the continued bit. #. There would still be a limit: the .type argument can not #. be infinite. -#: ecoff.c:2704 +#: ecoff.c:2692 #, c-format msgid "the type of %s is too complex; it will be simplified" msgstr "el tipo de %s es demasiado complejo; se simplificará" -#: ecoff.c:2715 +#: ecoff.c:2703 msgid "Unrecognized .type argument" msgstr "No reconocido argumento .type" -#: ecoff.c:2753 +#: ecoff.c:2741 msgid ".tag pseudo-op used outside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .tag fuera de .def/.endef; se descarta" -#: ecoff.c:2777 +#: ecoff.c:2765 msgid ".val pseudo-op used outside of .def/.endef; ignored" msgstr "se utiliza el pseudo-operador .val fuera de .def/.endef; se descarta" -#: ecoff.c:2785 +#: ecoff.c:2773 msgid ".val expression is too complex" msgstr "la expresión .val es demasiado compleja" -#: ecoff.c:2815 +#: ecoff.c:2803 msgid ".endef pseudo-op used before .def; ignored" msgstr "se utiliza el pseudo-operador .endef antes de .def; se descarta" -#: ecoff.c:2841 ecoff.c:2922 +#: ecoff.c:2829 ecoff.c:2910 msgid "bad COFF debugging information" -msgstr "información de depuración COFF equivocada" +msgstr "información de depuración COFF incorrecta" -#: ecoff.c:2890 +#: ecoff.c:2878 #, c-format msgid "no tag specified for %s" msgstr "no se especificó una marca para %s" -#: ecoff.c:2992 +#: ecoff.c:2980 msgid ".end directive without a preceding .file directive" msgstr "directiva .end sin una directiva .file precedente" -#: ecoff.c:3020 +#: ecoff.c:3008 msgid ".end directive names unknown symbol" msgstr "símbolo desconocido en los nombres de la directiva .end" -#: ecoff.c:3051 +#: ecoff.c:3038 msgid "second .ent directive found before .end directive" msgstr "se encontró una segunda directiva .ent antes de la directiva .end" -#: ecoff.c:3060 +#: ecoff.c:3047 #, c-format msgid "%s directive has no name" msgstr "%s de directiva no tiene ningún nombre" -#: ecoff.c:3121 +#: ecoff.c:3108 msgid "no way to handle .file within .ent/.end section" msgstr "no es posible manipular un .file dentro de una sección .ent/.end" -#: ecoff.c:3238 +#: ecoff.c:3225 msgid ".loc before .file" msgstr ".loc antes de .file" -#: ecoff.c:3440 +#: ecoff.c:3425 #, c-format msgid ".stab%c is not supported" msgstr "no se admite .stab%c" -#: ecoff.c:3450 +#: ecoff.c:3435 #, c-format msgid ".stab%c: ignoring non-zero other field" msgstr ".stab%c: se descarta el otro campo que no es cero" -#: ecoff.c:3484 +#: ecoff.c:3469 #, c-format msgid "line number (%d) for .stab%c directive cannot fit in index field (20 bits)" msgstr "el número de línea (%d) para la directiva .stab%c no cabe en el campo de índice (20 bits)" -#: ecoff.c:3518 +#: ecoff.c:3503 #, c-format msgid "illegal .stab%c directive, bad character" -msgstr "directiva .stab%c ilegal, carácter equivocado" +msgstr "directiva .stab%c ilegal, carácter incorrecto" -#: ecoff.c:3977 ecoff.c:4166 ecoff.c:4191 +#: ecoff.c:3952 ecoff.c:4140 ecoff.c:4165 msgid ".begin/.bend in different segments" msgstr ".begin/.bend en segmentos diferentes" -#: ecoff.c:4687 +#: ecoff.c:4660 msgid "missing .end or .bend at end of file" msgstr ".end ausente o .bend al final del fichero" -#: ecoff.c:5172 +#: ecoff.c:5137 msgid "GP prologue size exceeds field size, using 0 instead" msgstr "GP como prólogo de tamaño del campo excedido, se utiliza 0 en su lugar" -#: expr.c:82 read.c:3820 +#: expr.c:74 read.c:4081 msgid "bignum invalid" msgstr "bignum inválido" -#: expr.c:84 read.c:3822 read.c:4334 read.c:5310 +#: expr.c:76 read.c:4083 read.c:4588 read.c:5358 msgid "floating point number invalid" msgstr "número de coma flotante inválido" -#: expr.c:207 +#: expr.c:229 msgid "bad floating-point constant: exponent overflow" -msgstr "constante de coma flotante equivocada: desbordamiento del exponente" +msgstr "constante de coma flotante incorrecta: desbordamiento del exponente" -#: expr.c:211 +#: expr.c:233 #, c-format msgid "bad floating-point constant: unknown error code=%d" -msgstr "constante de coma flotante equivocada: código de error desconocido=%d" +msgstr "constante de coma flotante incorrecta: código de error desconocido=%d" -#: expr.c:396 +#: expr.c:408 msgid "a bignum with underscores may not have more than 8 hex digits in any word" msgstr "un número grande con subrayados no puede tener más de 8 dígitos hexadecimales en cualquier palabra" -#: expr.c:419 +#: expr.c:431 msgid "a bignum with underscores must have exactly 4 words" msgstr "un número grande con subrayados debe tener exactamente 4 words" #. Either not seen or not defined. #. @@ Should print out the original string instead of #. the parsed number. -#: expr.c:557 +#: expr.c:577 #, c-format msgid "backward ref to unknown label \"%d:\"" msgstr "referencia hacia atrás a la etiqueta desconocida \"%d:\"" -#: expr.c:675 +#: expr.c:690 msgid "character constant too large" msgstr "la constante de carácter es demasiado grande" -#: expr.c:970 +#: expr.c:1021 #, c-format msgid "found '%c', expected: '%c'" msgstr "encontrado `%c', se esperaba: `%c'" -#: expr.c:973 +#: expr.c:1024 #, c-format msgid "missing '%c'" msgstr "ausente '%c'" -#: expr.c:985 read.c:4761 +#: expr.c:1036 read.c:4868 msgid "EBCDIC constants are not supported" msgstr "EBCDIC como constante no son admitidos" -#: expr.c:1112 +#: expr.c:1188 #, c-format msgid "Unary operator %c ignored because bad operand follows" -msgstr "Se descarta el operador unario %c porque hay un operando equivocado a continuación" +msgstr "Se descarta el operador unario %c porque hay un operando incorrecto a continuación" -#: expr.c:1162 expr.c:1193 +#: expr.c:1252 expr.c:1274 msgid "syntax error in .startof. or .sizeof." -msgstr "error sintáctico en .startof. o .sizeof." +msgstr "error de sintaxis en .startof. o .sizeof." -#: expr.c:1274 expr.c:1640 +#: expr.c:1354 expr.c:1690 #, c-format msgid "invalid use of operator \"%s\"" msgstr "uso inválido del operador «%s»" -#: expr.c:1824 +#: expr.c:1872 msgid "missing operand; zero assumed" msgstr "ausente operando; se asume cero" -#: expr.c:1863 +#: expr.c:1911 msgid "left operand is a bignum; integer 0 assumed" msgstr "operando izquierdo es un número grande; se asume el entero 0" -#: expr.c:1865 +#: expr.c:1913 msgid "left operand is a float; integer 0 assumed" msgstr "operando izquierdo es un número de coma flotante; se asume el entero 0" -#: expr.c:1874 +#: expr.c:1922 msgid "right operand is a bignum; integer 0 assumed" msgstr "operando derecho es un número grande; se asume el entero 0" -#: expr.c:1876 +#: expr.c:1924 msgid "right operand is a float; integer 0 assumed" msgstr "operando derecho es un número de coma flotante; se asume el entero 0" -#: expr.c:1947 symbols.c:1396 +#: expr.c:2003 symbols.c:1705 msgid "division by zero" msgstr "división por cero" -#: expr.c:1953 +#: expr.c:2053 symbols.c:1716 msgid "shift count" msgstr "cuenta de desplazamiento" -#: expr.c:2074 +#: expr.c:2179 msgid "operation combines symbols in different segments" msgstr "la operación combina símbolos en segmentos diferentes" -#: expr.c:2396 +#: expr.c:2552 msgid "missing closing '\"'" msgstr "ausente cierre «\"»" +#: expr.c:2580 +#, c-format +msgid "'\\%c' in quoted symbol name; behavior may change in the future" +msgstr "" + #: frags.c:60 msgid "attempt to allocate data in absolute section" msgstr "intentó asignar datos en la sección absoluta" @@ -20335,13 +23048,109 @@ msgstr "intentó asignar datos en la sección absoluta" msgid "attempt to allocate data in common section" msgstr "se intentó asignar datos en la sección común" -#: frags.c:115 write.c:1465 +#: frags.c:115 #, c-format msgid "can't extend frag %lu char" msgid_plural "can't extend frag %lu chars" msgstr[0] "no puede extender %lu carácter fragmentado" msgstr[1] "no puede extender %lu caracteres fragmentados" +#. Offset of size 8 bytes is not supported in SFrame format +#. version 1. +#: gen-sframe.c:410 +#, fuzzy +#| msgid "unsupported syntax" +msgid "SFrame unsupported offset value\n" +msgstr "no se admite la sintaxis" + +#: gen-sframe.c:1009 +#, c-format +msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa" +msgstr "" + +#: gen-sframe.c:1038 +#, c-format +msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa_register" +msgstr "" + +#. No CFA base register in effect. Non-SP/FP CFA base register should +#. not occur, as sframe_xlate_do_def_cfa[_register] would detect this. +#: gen-sframe.c:1076 +msgid "skipping SFrame FDE; .cfi_def_cfa_offset without CFA base register in effect" +msgstr "" + +#: gen-sframe.c:1137 +#, c-format +msgid "skipping SFrame FDE; %s register %u in .cfi_val_offset" +msgstr "" + +#: gen-sframe.c:1164 +#, c-format +msgid "skipping SFrame FDE; %s register %u in .cfi_register" +msgstr "" + +#: gen-sframe.c:1186 +msgid "skipping SFrame FDE; .cfi_remember_state without prior SFrame FRE state" +msgstr "" + +#: gen-sframe.c:1282 +msgid "skipping SFrame FDE; .cfi_negate_ra_state_with_pc" +msgstr "" + +#: gen-sframe.c:1309 +msgid "skipping SFrame FDE; .cfi_window_save" +msgstr "" + +#: gen-sframe.c:1422 +#, fuzzy +#| msgid "unknown" +msgid "(unknown)" +msgstr "desconocido" + +#: gen-sframe.c:1423 +#, c-format +msgid "skipping SFrame FDE; CFI insn %s (%#x)" +msgstr "" + +#: gen-sframe.c:1447 +#, c-format +msgid "skipping SFrame FDE; non-default RA register %u" +msgstr "" + +#: gen-sframe.c:1491 +msgid "skipping SFrame FDE; FP without RA on stack" +msgstr "" + +#: ginsn.c:878 +#, c-format +msgid "missing label '%s' in func '%s' may result in imprecise cfg" +msgstr "" + +#: ginsn.c:987 +#, c-format +msgid "GINSN: found unreachable code in func '%s'" +msgstr "" + +#: ginsn.c:1209 +msgid "GINSN process for prev func not done" +msgstr "" + +#: ginsn.c:1243 +#, c-format +msgid "untraceable control flow for func '%s'" +msgstr "" + +#: ginsn.c:1253 +#, c-format +msgid "Bad cfg of ginsn of func '%s'" +msgstr "" + +#: ginsn.c:1315 ginsn.c:1322 +#, fuzzy +#| msgid "CFI is not supported for this target" +msgid "ginsn unsupported for target" +msgstr "CFI no admitido en este objetivo" + #. For error messages. #. Detect if we are reading from stdin by examining the file #. name returned by as_where(). @@ -20354,7 +23163,7 @@ msgstr[1] "no puede extender %lu caracteres fragmentados" #. line here (assuming of course that we actually have a line of #. input to read), so that it can be displayed in the listing #. that is produced at the end of the assembly. -#: input-file.c:136 input-scrub.c:240 listing.c:353 +#: input-file.c:136 input-scrub.c:259 listing.c:356 msgid "{standard input}" msgstr "{entrada estándar}" @@ -20363,39 +23172,43 @@ msgstr "{entrada estándar}" msgid "can't open %s for reading: %s" msgstr "no se puede abrir %s para lectura: %s" -#: input-file.c:150 input-file.c:224 +#: input-file.c:150 input-file.c:228 #, c-format msgid "can't read from %s: %s" msgstr "no se puede leer de %s: %s" -#: input-file.c:252 listing.c:1443 output-file.c:71 +#: input-file.c:267 listing.c:1456 #, c-format msgid "can't close %s: %s" msgstr "no se puede cerrar %s: %s" -#: input-scrub.c:267 +#: input-scrub.c:289 msgid "macros nested too deeply" msgstr "macros anidadas con demasiada profundidad" +#: input-scrub.c:537 input-scrub.c:540 +msgid "macro invoked from here" +msgstr "" + #: itbl-ops.c:328 #, c-format msgid "Unable to allocate memory for new instructions\n" msgstr "Incapaz de asignar memoria para las instrucciones nuevas\n" -#: listing.c:253 messages.c:165 messages.c:167 messages.c:170 +#: listing.c:255 messages.c:192 messages.c:194 messages.c:197 msgid "Warning: " msgstr "Aviso: " -#: listing.c:259 messages.c:230 messages.c:232 messages.c:235 +#: listing.c:261 messages.c:266 messages.c:268 messages.c:271 msgid "Error: " msgstr "Error: " -#: listing.c:625 +#: listing.c:623 #, c-format msgid "unable to rebuffer file: %s\n" msgstr "incapaz de reservar fichero búfer: %s\n" -#: listing.c:1329 +#: listing.c:1342 #, c-format msgid "" "\n" @@ -20406,12 +23219,12 @@ msgstr "" " marca tiempo \t: %s\n" "\n" -#: listing.c:1339 +#: listing.c:1352 #, c-format msgid "%s " msgstr "%s " -#: listing.c:1344 +#: listing.c:1357 #, c-format msgid "" "\n" @@ -20420,7 +23233,7 @@ msgstr "" "\n" "\t%s " -#: listing.c:1354 +#: listing.c:1367 msgid "" "\n" " options passed\t: " @@ -20428,7 +23241,7 @@ msgstr "" "\n" " opciones pasadas\t: " -#: listing.c:1393 +#: listing.c:1406 #, c-format msgid "" " GNU assembler version %s (%s)\n" @@ -20437,7 +23250,7 @@ msgstr "" " Ensamblador de GNU versión %s (%s)\n" "\t utilizando BFD versión %s." -#: listing.c:1396 +#: listing.c:1409 #, c-format msgid "" "\n" @@ -20446,7 +23259,7 @@ msgstr "" "\n" " fich entrante \t: %s" -#: listing.c:1397 +#: listing.c:1410 #, c-format msgid "" "\n" @@ -20455,7 +23268,7 @@ msgstr "" "\n" " fich saliente \t: %s" -#: listing.c:1398 +#: listing.c:1411 #, c-format msgid "" "\n" @@ -20464,249 +23277,276 @@ msgstr "" "\n" " destino \t: %s" -#: listing.c:1422 +#: listing.c:1435 #, c-format msgid "can't open %s: %s" msgstr "no se puede abrir %s: %s" -#: listing.c:1507 +#: listing.c:1520 msgid "strange paper height, set to no form" msgstr "tamaño de papel extraño, se establece a sin forma" -#: listing.c:1569 +#: listing.c:1544 +msgid "new paper width is too small" +msgstr "" + +#: listing.c:1547 +#, fuzzy +#| msgid "bad or irreducible absolute expression; zero assumed" +msgid "bad or irreducible expression for paper width" +msgstr "expresión absoluta incorrecta o irreducible; se asume cero" + +#: listing.c:1549 +#, fuzzy +#| msgid "missing expression; zero assumed" +msgid "missing expression for paper width" +msgstr "falta una expresión; se asume cero" + +#: listing.c:1600 msgid "new line in title" msgstr "línea nueva en el título" -#. Turns the next expression into a string. -#: macro.c:382 -#, no-c-format -msgid "% operator needs absolute expression" +#: macro.c:399 +#, fuzzy, c-format +#| msgid "% operator needs absolute expression" +msgid "%% operator needs absolute expression" msgstr "el operador % necesita una expresión absoluta" -#: macro.c:536 +#: macro.c:551 #, c-format msgid "Missing parameter qualifier for `%s' in macro `%s'" msgstr "Ausente el calificador de parámetro para «%s» en la macro «%s»" -#: macro.c:546 +#: macro.c:561 #, c-format msgid "`%s' is not a valid parameter qualifier for `%s' in macro `%s'" msgstr "«%s» no es un calificador de parámetro válido para «%s» en la macro «%s»" -#: macro.c:563 +#: macro.c:578 #, c-format msgid "Pointless default value for required parameter `%s' in macro `%s'" msgstr "Valor por defecto sin sentido para el parámetro requerido «%s» en la macro «%s»" -#: macro.c:575 +#: macro.c:588 #, c-format msgid "A parameter named `%s' already exists for macro `%s'" msgstr "Ya existe un parámetro llamado «%s» para la macro «%s»" -#: macro.c:612 +#: macro.c:626 #, c-format msgid "Reserved word `%s' used as parameter in macro `%s'" msgstr "Se utilizó la palabra reservada «%s» como un parámetro en la macro «%s»" -#: macro.c:670 +#: macro.c:680 #, c-format msgid "unexpected end of file in macro `%s' definition" msgstr "final de fichero no esperado en la definición de macro «%s»" -#: macro.c:682 +#: macro.c:692 #, c-format msgid "missing `)' after formals in macro definition `%s'" msgstr "ausente `)' tras los formales en la definición de macro «%s»" -#: macro.c:697 +#: macro.c:707 msgid "Missing macro name" msgstr "Ausente el nombre de macro" -#: macro.c:706 +#: macro.c:716 #, c-format msgid "Bad parameter list for macro `%s'" -msgstr "Lista de parámetros equivocada para la macro «%s»" +msgstr "Lista de parámetros incorrecta para la macro «%s»" -#: macro.c:712 +#: macro.c:724 #, c-format msgid "Macro `%s' was already defined" msgstr "La macro «%s» ya está definida" -#: macro.c:837 macro.c:839 +#: macro.c:850 macro.c:852 msgid "missing `)'" msgstr "ausente `)'" -#: macro.c:936 +#: macro.c:941 #, c-format msgid "`%s' was already used as parameter (or another local) name" msgstr "Ya se usó «%s» como nombre de parámetro (o nombre local)" -#: macro.c:1094 +#: macro.c:1113 msgid "confusion in formal parameters" msgstr "confusión en los parámetros formales" -#: macro.c:1102 +#: macro.c:1121 #, c-format msgid "Parameter named `%s' does not exist for macro `%s'" msgstr "El parámetro nombrado «%s» no existe para la macro «%s»" -#: macro.c:1113 +#: macro.c:1132 #, c-format msgid "Value for parameter `%s' of macro `%s' was already specified" msgstr "El valor para parámetro «%s» de macro «%s» fue ya especificado" -#: macro.c:1127 +#: macro.c:1146 msgid "can't mix positional and keyword arguments" msgstr "no se pueden mezclar argumentos posicionales y palabras clave" -#: macro.c:1138 +#: macro.c:1157 msgid "too many positional arguments" msgstr "demasiados argumentos posicionales" -#: macro.c:1186 +#: macro.c:1205 #, c-format msgid "Missing value for required parameter `%s' of macro `%s'" msgstr "Ausente el valor para el parámetro requerido «%s» de la macro «%s»" -#: macro.c:1304 +#: macro.c:1323 #, c-format msgid "Attempt to purge non-existing macro `%s'" msgstr "Intentaba purgar macro inexistente «%s»" -#: macro.c:1324 +#: macro.c:1344 msgid "unexpected end of file in irp or irpc" msgstr "final de fichero inesperado en irp o irpc" -#: macro.c:1332 +#: macro.c:1355 msgid "missing model parameter" msgstr "ausente el parámetro modelo" -#: messages.c:91 +#: messages.c:92 #, c-format msgid "Assembler messages:\n" msgstr "Mensajes del ensamblador:\n" -#: messages.c:289 +#: messages.c:329 #, c-format msgid "Fatal error: " msgstr "Error fatal: " -#: messages.c:310 +#: messages.c:351 #, c-format msgid "Internal error (%s).\n" msgstr "Error interno (%s).\n" -#: messages.c:312 +#: messages.c:353 #, c-format msgid "Internal error in %s at %s:%d.\n" msgstr "Error interno en %s en %s:%d.\n" -#: messages.c:314 +#: messages.c:355 #, c-format msgid "Internal error at %s:%d.\n" msgstr "Error interno en %s:%d.\n" -#: messages.c:316 +#: messages.c:358 #, c-format msgid "Please report this bug.\n" msgstr "Por favor reporte este bicho.\n" -#: messages.c:400 -#, c-format -msgid "%s out of domain (%d is not a multiple of %d)" +#: messages.c:426 +#, fuzzy, c-format +#| msgid "%s out of domain (%d is not a multiple of %d)" +msgid "%s out of domain (%<PRId64> is not a multiple of %<PRId64>)" msgstr "%s fuera de dominio (%d no es un múltiplo de %d)" -#: messages.c:418 -#, c-format -msgid "%s out of range (%d is not between %d and %d)" -msgstr "%s fuera de límite (%d no está entre %d y %d)" +#. xgettext:c-format. +#: messages.c:442 +#, fuzzy, c-format +#| msgid "%s out of range (%d is not between %d and %d)" +msgid "%s out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)" +msgstr "%s fuera de rango (%d no está entre %d y %d)" #. xgettext:c-format. -#: messages.c:441 -#, c-format -msgid "%s out of range (0x%s is not between 0x%s and 0x%s)" -msgstr "%s fuera de límite (0x%s no está entre 0x%s y 0x%s)" +#: messages.c:455 +#, fuzzy, c-format +#| msgid "%s out of range (0x%s is not between 0x%s and 0x%s)" +msgid "%s out of range (0x%<PRIx64> is not between 0x%<PRIx64> and 0x%<PRIx64>)" +msgstr "%s fuera de rango (0x%s no está entre 0x%s y 0x%s)" -#: output-file.c:34 +#: output-file.c:37 #, c-format msgid "can't open a bfd on stdout %s" msgstr "no se puede abrir un bfd en la salida estándar %s" -#: output-file.c:41 +#: output-file.c:44 #, c-format msgid "selected target format '%s' unknown" msgstr "formato de objetivo seleccionado «%s» desconocido" -#: output-file.c:43 +#: output-file.c:46 #, c-format msgid "can't create %s: %s" msgstr "no se puede crear %s: %s" -#: read.c:520 -#, c-format -msgid "error constructing %s pseudo-op table: %s" +#: read.c:584 +#, fuzzy, c-format +#| msgid "error constructing %s pseudo-op table: %s" +msgid "error constructing %s pseudo-op table" msgstr "error al construir la distribución de pseudo-operadores %s: %s" -#: read.c:702 +#: read.c:768 msgid "cannot change section or subsection inside .bundle_lock" msgstr "" -#: read.c:718 +#: read.c:784 #, c-format msgid ".bundle_lock sequence at %u bytes, but .bundle_align_mode limit is %u bytes" msgstr "secuencia .bundle_lock en %u bytes, pero límite .bundle_align_mode es %u bytes" -#: read.c:727 +#: read.c:793 #, c-format msgid "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes" msgstr "instrucción simple es %u bytes largos, pero límite .bundle_align_mode es %u bytes" -#: read.c:768 read.c:2811 read.c:3452 +#: read.c:834 read.c:2898 read.c:3526 msgid "ignoring fill value in absolute section" msgstr "ignorando valor relleno dentro de sección absoluta" -#: read.c:770 read.c:2826 read.c:3491 +#: read.c:836 read.c:2913 read.c:3565 #, c-format msgid "ignoring fill value in section `%s'" msgstr "ignorando valor rellenado dentro de sección «%s»" -#: read.c:1130 +#: read.c:1276 #, c-format msgid "unknown pseudo-op: `%s'" msgstr "pseudo-operador desconocido: «%s»" -#: read.c:1183 +#: read.c:1329 msgid "unable to continue with assembly." msgstr "incapaz de continuar con ensamblador." -#: read.c:1225 +#: read.c:1363 #, c-format -msgid "label \"%d$\" redefined" +msgid "local label too large near %s" +msgstr "" + +#: read.c:1386 +#, fuzzy, c-format +#| msgid "label \"%d$\" redefined" +msgid "label \"%ld$\" redefined" msgstr "etiqueta \"%d$\" redefinida" -#: read.c:1372 +#: read.c:1435 msgid ".bundle_lock with no matching .bundle_unlock" msgstr "directiva .bundle_lock sin una coincidencia .bundle_unlock" -#: read.c:1469 +#: read.c:1535 msgid ".abort detected. Abandoning ship." msgstr "se detectó .abort. Se abandona la nave." -#: read.c:1531 +#: read.c:1597 #, c-format msgid "alignment too large: %u assumed" msgstr "alineamiento es muy grande: %u asumido" -#: read.c:1563 +#: read.c:1629 msgid "expected fill pattern missing" msgstr "ausente el patrón de relleno esperado" -#: read.c:1588 +#: read.c:1654 #, c-format msgid "fill pattern too long, truncating to %u" msgstr "" -#: read.c:1686 +#: read.c:1755 msgid "symbol name not recognised in the current locale" msgstr "" @@ -20719,371 +23559,441 @@ msgstr "" #. We do not want to barf on this, especially since such files are used #. in the GCC and GDB testsuites. So we check for negative line numbers #. rather than non-positive line numbers. -#: read.c:2028 +#: read.c:2104 #, c-format msgid "line numbers must be positive; line number %d rejected" msgstr "los números de línea deben ser positivos; número de línea %d rechazada" -#: read.c:2065 +#: read.c:2142 #, c-format msgid "incompatible flag %i in line directive" msgstr "opción incompatible %i en la directriz de línea" -#: read.c:2077 +#: read.c:2154 #, c-format msgid "unsupported flag %i in line directive" msgstr "no se admite la opción %i en la directriz de línea" -#: read.c:2116 +#: read.c:2197 msgid "start address not supported" msgstr "no se admite la dirección de inicio" -#: read.c:2125 +#: read.c:2206 msgid ".err encountered" msgstr "se encontró .err" -#: read.c:2141 +#: read.c:2222 msgid ".error directive invoked in source file" msgstr "se invocó la directiva .error en el fichero fuente" -#: read.c:2142 +#: read.c:2223 msgid ".warning directive invoked in source file" msgstr "se invocó la directiva .warning en el fichero fuente" -#: read.c:2148 +#: read.c:2229 #, c-format msgid "%s argument must be a string" msgstr "argumento %s debe ser una cadena textual" -#: read.c:2180 read.c:2182 +#: read.c:2261 read.c:2263 #, c-format msgid ".fail %ld encountered" msgstr "encontrado .fail %ld" -#: read.c:2222 +#: read.c:2303 #, c-format msgid ".fill size clamped to %d" msgstr "tamaño .fill restringido a %d" -#: read.c:2227 +#: read.c:2308 msgid "size negative; .fill ignored" msgstr "tamaño negativo; se descarta .fill" -#: read.c:2233 +#: read.c:2314 msgid "repeat < 0; .fill ignored" msgstr "repetición < 0; se descarta .fill" -#: read.c:2242 +#: read.c:2321 msgid "non-constant fill count for absolute section" msgstr "contador de relleno no constante para sección absoluta" -#: read.c:2244 +#: read.c:2326 msgid "attempt to fill absolute section with non-zero value" msgstr "trata rellenar sección absoluta con valor distinto de cero" -#: read.c:2250 +#: read.c:2333 #, c-format msgid "attempt to fill section `%s' with non-zero value" msgstr "trata rellenar sección «%s» con valor distinto de cero" -#: read.c:2407 +#: read.c:2498 #, c-format msgid "unrecognized .linkonce type `%s'" msgstr "no reconocido tipo .linkonce «%s»" -#: read.c:2419 +#: read.c:2510 msgid ".linkonce is not supported for this object file format" msgstr ".linkonce no admitido en este formato de fichero objeto" -#: read.c:2514 +#: read.c:2605 msgid "expected alignment after size" msgstr "se esperaba alineamiento tras tamaño" -#: read.c:2733 +#: read.c:2818 #, c-format msgid "attempt to redefine pseudo-op `%s' ignored" msgstr "intenta redefinir pseudo-operador «%s» descartado" -#: read.c:2752 +#: read.c:2839 msgid "ignoring macro exit outside a macro definition." msgstr "se descarta la salida de macro fuera de una definición de macro." -#: read.c:2806 +#: read.c:2893 #, c-format msgid "invalid segment \"%s\"" msgstr "segmento no válido «%s»" -#: read.c:2814 +#: read.c:2901 msgid "only constant offsets supported in absolute section" -msgstr "sólo se admiten los desplazamientos constantes en la sección absoluta" +msgstr "solo se admiten los desplazamientos constantes en la sección absoluta" -#: read.c:2857 +#: read.c:2944 msgid "MRI style ORG pseudo-op not supported" msgstr "MRI de estilo ORG pseudo-operador no apoyado" -#: read.c:3008 -#, c-format -msgid "unrecognized section type `%s'" -msgstr "no reconocido el tipo seccional «%s»" - -#: read.c:3021 -msgid "absolute sections are not supported" -msgstr "no se admiten las secciones absolutas" - -#: read.c:3036 -#, c-format -msgid "unrecognized section command `%s'" -msgstr "no se reconoce la orden seccional «%s»" - -#: read.c:3099 +#: read.c:3115 #, c-format msgid ".end%c encountered without preceding %s" msgstr "se encontró .end%c sin un %s precedente" -#: read.c:3128 read.c:3164 -#, c-format -msgid "negative count for %s - ignored" +#: read.c:3149 +#, fuzzy, c-format +#| msgid "negative count for %s - ignored" +msgid "excessive count %zu for %s - ignored" msgstr "contador negativo para %s - descartado" -#: read.c:3135 read.c:3171 +#: read.c:3156 #, c-format msgid "%s without %s" msgstr "%s sin %s" -#: read.c:3405 +#: read.c:3190 +msgid "`\\' at end of line/statement; ignored" +msgstr "" + +#: read.c:3469 msgid "unsupported variable size or fill value" msgstr "no se admiten el tamaño de la variable o el valor de relleno" -#: read.c:3413 +#: read.c:3477 #, c-format msgid "size value for space directive too large: %lx" msgstr "" -#: read.c:3442 +#: read.c:3503 +msgid ".space repeat count is negative, ignored" +msgstr "el contador de repetición .space es negativo, se descartó" + +#: read.c:3509 msgid ".space repeat count is zero, ignored" msgstr "el contador de repetición .space es cero, se descartó" -#: read.c:3444 -msgid ".space repeat count is negative, ignored" -msgstr "el contador de repetición .space es negativo, se descartó" +#: read.c:3517 +#, fuzzy +#| msgid ".space repeat count is zero, ignored" +msgid ".space repeat count overflow, ignored" +msgstr "el contador de repetición .space es cero, se descartó" -#: read.c:3475 +#: read.c:3549 msgid "space allocation too complex in absolute section" msgstr "la asignación de espacio es demasiado compleja en la sección absoluta" -#: read.c:3481 +#: read.c:3555 msgid "space allocation too complex in common section" msgstr "la asignación de espacio es demasiado compleja en la sección común" -#: read.c:3575 read.c:5020 -#, c-format -msgid "bad floating literal: %s" -msgstr "literal de coma flotante equivocada: %s" +#: read.c:3664 +#, fuzzy +#| msgid "unsupported flag %i in line directive" +msgid "unsupported variable nop control in .nops directive" +msgstr "no se admite la opción %i en la directriz de línea" + +#: read.c:3670 +#, fuzzy +#| msgid "negative count for %s - ignored" +msgid "negative nop control byte, ignored" +msgstr "contador negativo para %s - descartado" -#: read.c:3708 +#: read.c:3739 +#, fuzzy, c-format +#| msgid "unknown floating type type '%c'" +msgid "unknown floating type '%c'" +msgstr "desconoce tipo de coma flotante '%c'" + +#: read.c:3965 #, c-format msgid "%s: would close weakref loop: %s" msgstr "%s: cerraría el ciclo weakref: %s" -#: read.c:3758 +#: read.c:4022 #, c-format msgid "junk at end of line, first unrecognized character valued 0x%x" msgstr "basura al final de la línea; el primer carácter descartado tiene valor 0x%x" -#: read.c:3886 write.c:2133 +#: read.c:4150 write.c:2426 #, c-format msgid "`%s' can't be equated to common symbol `%s'" msgstr "«%s» no puede ser igualdad al símbolo común «%s»" -#: read.c:4023 +#: read.c:4278 msgid "unexpected `\"' in expression" msgstr "`«' o `»' inesperada dentro de expresión" -#: read.c:4036 +#: read.c:4291 msgid "rva without symbol" msgstr "rva sin símbolo" -#: read.c:4105 +#: read.c:4366 msgid "missing or bad offset expression" -msgstr "expresión de desplazamiento ausentente o equivocada" +msgstr "expresión de desplazamiento ausentente o incorrecta" -#: read.c:4126 +#: read.c:4390 msgid "missing reloc type" msgstr "ausente el tipo reubicado" -#: read.c:4150 +#: read.c:4414 msgid "unrecognized reloc type" msgstr "no reconocido el tipo reubicado" -#: read.c:4166 +#: read.c:4430 msgid "bad reloc expression" -msgstr "expresión de reubicación equivocada" +msgstr "expresión de reubicación incorrecta" -#: read.c:4328 read.c:5304 +#: read.c:4582 read.c:5352 read.c:5478 msgid "zero assumed for missing expression" msgstr "se asume cero para la expresión ausentente" -#: read.c:4348 read.c:5333 +#: read.c:4602 read.c:5381 read.c:5497 msgid "attempt to store value in absolute section" msgstr "se intentó almacenar un valor en la sección absoluta" -#: read.c:4355 read.c:5339 +#: read.c:4609 read.c:5387 read.c:5503 #, c-format msgid "attempt to store non-zero value in section `%s'" msgstr "trata almacenar un valor distinto de cero en la sección «%s»" -#: read.c:4441 -#, c-format -msgid "value 0x%llx truncated to 0x%llx" -msgstr "valora 0x%llx truncado a 0x%llx" - -#: read.c:4444 -msgid "value 0x%I64x truncated to 0x%I64x" +#. Leading bits contain both 0s & 1s. +#: read.c:4686 +#, fuzzy, c-format +#| msgid "value 0x%I64x truncated to 0x%I64x" +msgid "value 0x%<PRIx64> truncated to 0x%<PRIx64>" msgstr "valora 0x%I64x truncado a 0x%I64x" -#: read.c:4448 -#, c-format -msgid "value 0x%lx truncated to 0x%lx" -msgstr "valora 0x%lx truncado a 0x%lx" - -#: read.c:4493 +#: read.c:4730 #, c-format msgid "bignum truncated to %d byte" msgid_plural "bignum truncated to %d bytes" msgstr[0] "número grande truncado a %d bytes" msgstr[1] "número grande truncado a %d byte" -#: read.c:4832 read.c:5042 +#: read.c:4939 read.c:5090 msgid "unresolvable or nonpositive repeat count; using 1" msgstr "cuenta de repetición sin resolver o no positiva; se utiliza 1" -#: read.c:4881 -#, c-format -msgid "unknown floating type type '%c'" -msgstr "desconoce tipo de coma flotante '%c'" - -#: read.c:4903 +#: read.c:4982 msgid "floating point constant too large" msgstr "constante de coma flotante demasiado grande" -#: read.c:4967 +#: read.c:5047 msgid "attempt to store float in absolute section" msgstr "trata almacenar flotante en sección absoluta" -#: read.c:4974 +#: read.c:5054 #, c-format msgid "attempt to store float in section `%s'" msgstr "trata almacenar un valor en la sección flotante «%s»" -#: read.c:5422 +#: read.c:5484 +#, fuzzy +#| msgid "bignum invalid" +msgid "number invalid" +msgstr "bignum inválido" + +#: read.c:5740 +#, fuzzy +#| msgid "strings must be placed into a section" +msgid "base64 strings must be placed into a section" +msgstr "las cadenas se deben colocar en una sección" + +#: read.c:5747 +msgid "a string must follow the .base64 pseudo-op" +msgstr "" + +#: read.c:5767 +msgid "expected double quote enclosed string as argument to .base64 pseudo-op" +msgstr "" + +#: read.c:5784 +msgid "end of line encountered inside .base64 string" +msgstr "" + +#: read.c:5795 +msgid ".base64 string terminated early" +msgstr "" + +#: read.c:5800 +#, fuzzy +#| msgid "base register expected" +msgid ".base64 string terminated unexpectedly" +msgstr "se esperaba un registro base" + +#: read.c:5807 +msgid "equals character only allowed at end of .base64 string" +msgstr "" + +#: read.c:5816 +msgid "the equals character cannot start a block of four base64 encoded bytes" +msgstr "" + +#: read.c:5822 +msgid "the equals character cannot be the second character in a block of four base64 encoded bytes" +msgstr "" + +#: read.c:5832 +#, fuzzy, c-format +#| msgid "invalid character %c in operand %d" +msgid "invalid character '%c' found inside .base64 string" +msgstr "carácter inválido %c en el operando %d" + +#: read.c:5834 +#, fuzzy, c-format +#| msgid "invalid character %s in operand %d" +msgid "invalid character %#x found inside .base64 string" +msgstr "carácter inválido %s en operando %d" + +#: read.c:5860 +msgid "no base64 characters expected after '=' padding characters" +msgstr "" + +#: read.c:5870 +msgid ".base64 string must have a terminating double quote character" +msgstr "" + +#: read.c:5903 #, c-format msgid "attempt to store non-empty string in section `%s'" msgstr "trata almacenar cadena no vacía dentro de sección «%s»" -#: read.c:5484 +#: read.c:5965 msgid "strings must be placed into a section" msgstr "las cadenas se deben colocar en una sección" -#: read.c:5547 +#: read.c:6032 msgid "expected <nn>" msgstr "se esperaba <nn>" #. To be compatible with BSD 4.2 as: give the luser a linefeed!! -#: read.c:5586 read.c:5672 +#: read.c:6073 read.c:6160 msgid "unterminated string; newline inserted" msgstr "cadena sin terminar; se insertó una línea nueva" -#: read.c:5686 +#: read.c:6174 msgid "bad escaped character in string" -msgstr "carácter escapado equivocadamente en la cadena" +msgstr "carácter escapado incorrectamente en la cadena" -#: read.c:5711 +#: read.c:6198 msgid "expected address expression" msgstr "se esperaba una expresión direccional" -#: read.c:5730 +#: read.c:6217 #, c-format msgid "symbol \"%s\" undefined; zero assumed" msgstr "símbolo indefinido «%s»; se asume cero" -#: read.c:5733 +#: read.c:6220 msgid "some symbol undefined; zero assumed" msgstr "algunos símbolos sin definir; se asumen cero" -#: read.c:5768 +#: read.c:6254 msgid "this string may not contain '\\0'" msgstr "esta cadena no puede contener '\\0'" -#: read.c:5804 +#: read.c:6291 msgid "missing string" msgstr "ausentea cadena" -#: read.c:5895 +#: read.c:6406 #, c-format msgid ".incbin count zero, ignoring `%s'" msgstr "la cuenta .incbin es cero, se descarta «%s»" -#: read.c:5921 +#: read.c:6418 #, c-format msgid "file not found: %s" msgstr "no se encontró el fichero: %s" -#: read.c:5935 +#: read.c:6428 +#, fuzzy, c-format +#| msgid "unable to locate include file: %s" +msgid "unable to include `%s'" +msgstr "no se puede localizar el fichero de inclusión: %s" + +#: read.c:6437 #, c-format msgid "seek to end of .incbin file failed `%s'" msgstr "falló la búsqueda del final del fichero .incbin «%s»" -#: read.c:5946 +#: read.c:6448 #, c-format msgid "skip (%ld) or count (%ld) invalid for file size (%ld)" msgstr "salto (%ld) o cuenta (%ld) inválidos para el tamaño del fichero (%ld)" -#: read.c:5953 +#: read.c:6455 #, c-format msgid "could not skip to %ld in file `%s'" msgstr "no se puede omiter a %ld en el fichero «%s»" -#: read.c:5962 +#: read.c:6464 #, c-format msgid "truncated file `%s', %ld of %ld bytes read" msgstr "fichero «%s» truncado, leyeron %ld de %ld bytes" -#: read.c:6120 +#: read.c:6601 msgid "missing .func" msgstr "ausente .func" -#: read.c:6137 +#: read.c:6620 msgid ".endfunc missing for previous .func" msgstr "ausente .endfunc para el .func previo" -#: read.c:6196 +#: read.c:6673 #, c-format msgid ".bundle_align_mode alignment too large (maximum %u)" msgstr "alineamiento .bundle_align_mode demasiado grande (maximo %u)" -#: read.c:6201 +#: read.c:6678 msgid "cannot change .bundle_align_mode inside .bundle_lock" msgstr "" -#: read.c:6215 +#: read.c:6692 msgid ".bundle_lock is meaningless without .bundle_align_mode" msgstr "" -#: read.c:6236 +#: read.c:6713 msgid ".bundle_unlock without preceding .bundle_lock" msgstr "directiva .bundle_unlock sin precedente .bundle_lock" -#: read.c:6249 +#: read.c:6726 #, c-format msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes" msgstr "" -#: read.c:6348 +#: read.c:6825 #, c-format msgid "missing closing `%c'" msgstr "ausente de cierre `%c'" -#: read.c:6350 +#: read.c:6827 msgid "stray `\\'" msgstr "basura `\\'" @@ -21092,2460 +24002,330 @@ msgstr "basura `\\'" msgid "invalid argument '%s' to -fdebug-prefix-map" msgstr "argumento «%s» inválido para -fdebug-prefix-map" -#: stabs.c:214 stabs.c:222 stabs.c:230 stabs.c:249 +#: scfi.c:545 +msgid "SCFI: usage of REG_FP as scratch not supported" +msgstr "" + +#: scfi.c:655 +msgid "SCFI: unsupported stack manipulation pattern" +msgstr "" + +#: scfi.c:802 scfi.c:896 +msgid "SCFI: asymetrical register restore" +msgstr "" + +#: scfi.c:969 +msgid "SCFI: Bad CFI propagation perhaps" +msgstr "" + +#: scfi.c:1116 +#, c-format +msgid "SCFI: forward pass failed for func '%s'" +msgstr "" + +#: scfi.c:1123 +#, c-format +msgid "SCFI: backward pass failed for func '%s'" +msgstr "" + +#: scfi.c:1190 +msgid "SCFI: Invalid DWARF CFI opcode data" +msgstr "" + +#. No other GINSN_TYPE_* expected. +#: scfi.c:1242 +#, c-format +msgid "SCFI: bad ginsn for func '%s'" +msgstr "" + +#: scfi.c:1256 scfi.c:1265 +#, fuzzy +#| msgid "CFI is not supported for this target" +msgid "SCFI: unsupported for target" +msgstr "CFI no admitido en este objetivo" + +#: scfidw2gen.c:39 +msgid "SCFI ignores most user-specified CFI directives" +msgstr "" + +#: scfidw2gen.c:132 +msgid "SCFI: missing previous SCFI endproc marker" +msgstr "" + +#: stabs.c:187 #, c-format msgid ".stab%c: missing comma" msgstr ".stab%c: ausentea coma" +#: stabs.c:263 +#, fuzzy, c-format +#| msgid "missing string" +msgid ".stab%c: missing string" +msgstr "ausentea cadena" + #. This could happen for example with a source file with a huge #. number of lines. The only cure is to use a different debug #. format, probably DWARF. -#: stabs.c:242 +#: stabs.c:290 #, c-format msgid ".stab%c: description field '%x' too big, try a different debug format" msgstr ".stab%c: la descripción del campo '%x' es demasiado grande, intente un formato de depuración diferente" -#: stabs.c:423 +#: stabs.c:436 msgid "comma missing in .xstabs" msgstr "ausentea coma en .xstabs" -#: symbols.c:287 +#: symbols.c:386 symbols.c:2550 +#, fuzzy, c-format +#| msgid "Symbol '%s' could not be created." +msgid "symbol '%s' contains multibyte characters" +msgstr "No se puede crear el símbolo «%s»." + +#: symbols.c:526 #, c-format msgid "cannot define symbol `%s' in absolute section" msgstr "no se puede definir el símbolo «%s» en la sección absoluta" -#: symbols.c:421 +#: symbols.c:659 #, c-format msgid "symbol `%s' is already defined as \"%s\"/%s%ld" msgstr "el símbolo «%s» ya está definido como «%s»/%s%ld" -#: symbols.c:496 symbols.c:503 -#, c-format -msgid "inserting \"%s\" into symbol table failed: %s" -msgstr "falló la inserción de «%s» en la distribución simbólicos: %s" - -#: symbols.c:1022 +#: symbols.c:1257 #, c-format msgid "invalid operands (%s and %s sections) for `%s'" msgstr "operandos inválidos (secciones %s y %s) para «%s»" -#: symbols.c:1026 +#: symbols.c:1261 #, c-format msgid "invalid operand (%s section) for `%s'" msgstr "operando inválido (sección %s) para «%s»" -#: symbols.c:1034 +#: symbols.c:1269 #, c-format msgid "invalid operands (%s and %s sections) for `%s' when setting `%s'" msgstr "operandos inválidos (secciones %s y %s) para «%s» al establecer «%s»" -#: symbols.c:1037 +#: symbols.c:1272 #, c-format msgid "invalid operand (%s section) for `%s' when setting `%s'" msgstr "operando inválido (sección %s) para «%s» al establecer «%s»" -#: symbols.c:1086 +#: symbols.c:1341 #, c-format msgid "symbol definition loop encountered at `%s'" -msgstr "definición simbólico encontrada en bucle en `%s'" +msgstr "definición de símbolo encontrada en bucle en `%s'" -#: symbols.c:1113 +#: symbols.c:1368 #, c-format msgid "cannot convert expression symbol %s to complex relocation" msgstr "no se puede convertir el símbolo de expresión %s a una reubicación compleja" -#: symbols.c:1398 +#: symbols.c:1707 #, c-format msgid "division by zero when setting `%s'" msgstr "división por cero al establecer «%s»" #. See PR 20895 for a reproducer. -#: symbols.c:1438 +#: symbols.c:1777 msgid "Invalid operation on symbol" msgstr "Operación no válida en símbolo" -#: symbols.c:1488 write.c:2182 +#: symbols.c:1827 write.c:2475 #, c-format msgid "can't resolve value for symbol `%s'" msgstr "no se puede resolver el valor para el símbolo «%s»" -#: symbols.c:1947 -#, c-format -msgid "\"%d\" (instance number %d of a %s label)" +#: symbols.c:2235 +#, fuzzy, c-format +#| msgid "\"%d\" (instance number %d of a %s label)" +msgid "\"%u\" (instance number %u of a %s label)" msgstr "\"%d\" (número de instancia %d de una etiqueta %s)" -#: symbols.c:1976 +#: symbols.c:2266 +msgid "expression is too complex to be resolved or converted into relocations" +msgstr "" + +#: symbols.c:2268 symbols.c:2271 #, c-format msgid "attempt to get value of unresolved symbol `%s'" msgstr "se intentó obtener el valor del símbolo sin resolver «%s»" #. Do not reassign section symbols. -#: symbols.c:2264 -msgid "section symbols are already global" -msgstr "los símbolos seccional ya son globales" +#: symbols.c:2571 +#, fuzzy +#| msgid "can't create section %s" +msgid "can't make section symbol global" +msgstr "no se puede crear la sección %s" + +#: symbols.c:2577 +#, fuzzy +#| msgid "can't make global register symbol `%s'" +msgid "can't make register symbol global" +msgstr "no se puede hacer global el símbolo de registro «%s»" -#: symbols.c:2377 +#: symbols.c:2683 #, c-format msgid "Accessing function `%s' as thread-local object" msgstr "Se accede a la función «%s» como un objeto de hilo local" -#: symbols.c:2381 +#: symbols.c:2687 #, c-format msgid "Accessing `%s' as thread-local object" msgstr "Se accede «%s» como un objeto de hilo local" -#: write.c:167 -#, c-format -msgid "field fx_size too small to hold %d" +#: write.c:153 +#, fuzzy, c-format +#| msgid "field fx_size too small to hold %d" +msgid "field fx_size too small to hold %lu" msgstr "el campo fx_size es demasiado pequeño para contener %d" -#: write.c:453 -#, c-format -msgid "attempt to .org/.space backwards? (%ld)" +#: write.c:430 +#, fuzzy, c-format +#| msgid "attempt to .org/.space backwards? (%ld)" +msgid "attempt to .org/.space/.nops backwards? (%ld)" msgstr "¿se intentó hacer .org/.space hacia atrás? (%ld)" -#: write.c:471 +#: write.c:452 #, c-format msgid "leb128 operand is an undefined symbol: %s" msgstr "operando lib128 es un símbolo indefinido: %s" -#: write.c:702 +#: write.c:520 +#, fuzzy, c-format +#| msgid "leb128 operand is an undefined symbol: %s" +msgid ".cv_%ccomp operand is an undefined symbol: %s" +msgstr "operando lib128 es un símbolo indefinido: %s" + +#: write.c:712 msgid "invalid offset expression" msgstr "expresión de desplazamiento no válida" -#: write.c:724 +#: write.c:734 msgid "invalid reloc expression" msgstr "expresión de reubicación no válida" -#: write.c:1109 +#: write.c:931 +#, fuzzy, c-format +#| msgid "can't create %s: %s" +msgid "can't resolve %s - %s" +msgstr "no se puede crear %s: %s" + +#: write.c:1144 #, c-format msgid "value of %s too large for field of %d byte at %s" msgid_plural "value of %s too large for field of %d bytes at %s" msgstr[0] "valor de %s es demasiado grande para el campo de %d byte en %s" msgstr[1] "valor de %s es demasiado grande para el campo de %d bytes en %s" -#: write.c:1125 +#: write.c:1160 #, c-format msgid "signed .word overflow; switch may be too large; %ld at 0x%lx" msgstr "desbordamiento de .word con signo; el interruptor puede ser demasiado grande; %ld en 0x%lx" -#: write.c:1166 +#: write.c:1201 msgid "redefined symbol cannot be used on reloc" msgstr "un símbolo redefinido no se puede usar en la reubicación" -#: write.c:1179 +#: write.c:1214 msgid "relocation out of range" -msgstr "reubicación fuera de límite" +msgstr "reubicación fuera de rango" -#: write.c:1182 +#: write.c:1217 #, c-format msgid "%s:%u: bad return from bfd_install_relocation: %x" -msgstr "%s:%u: devolución equivocada de bfd_install_relocation: %x" +msgstr "%s:%u: devolución incorrecta de bfd_install_relocation: %x" -#: write.c:1210 +#: write.c:1245 msgid "reloc not within (fixed part of) section" msgstr "la reubicación no está dentro (de la parte fija de) la sección" -#: write.c:1280 +#: write.c:1317 msgid "internal error: fixup not contained within frag" msgstr "error interno: la compostura no está contenida en un fragmento" -#: write.c:1398 write.c:1535 +#: write.c:1463 write.c:1579 msgid "can't extend frag" msgstr "no se pueden extender el fragmento" -#: write.c:1603 +#: write.c:1628 +#, fuzzy +#| msgid "unmatched .end directive" +msgid "unimplemented .nops directive" +msgstr "directiva .end no coincidida" + +#: write.c:1662 #, c-format msgid "can't write %ld byte to section %s of %s: '%s'" msgid_plural "can't write %ld bytes to section %s of %s: '%s'" msgstr[0] "no se puede escribir %ld byte a sección %s de %s: «%s»" msgstr[1] "no se puede escribir %ld bytes a sección %s de %s: «%s»" -#: write.c:1630 write.c:1666 +#: write.c:1688 write.c:1722 write.c:1759 #, c-format msgid "can't fill %ld byte in section %s of %s: '%s'" msgid_plural "can't fill %ld bytes in section %s of %s: '%s'" msgstr[0] "no se puede rellenar %ld byte en sección %s de %s: '%s'" msgstr[1] "no se puede rellenar %ld bytes en sección %s de %s: '%s'" -#: write.c:2098 +#: write.c:1976 +#, fuzzy +#| msgid "Unable to use @plt relocation for insn %s" +msgid "unable to create reloc for build note" +msgstr "Incapaz de utilizar @plt para reubicación para insn %s" + +#: write.c:1980 +msgid "<gnu build note>" +msgstr "" + +#: write.c:2391 #, c-format msgid "%s: global symbols not supported in common sections" msgstr "%s: no se admiten los símbolos globales en las secciones comunes" -#: write.c:2112 +#: write.c:2405 #, c-format msgid "local label `%s' is not defined" msgstr "la etiqueta local «%s» no está definida" -#: write.c:2140 +#: write.c:2433 #, c-format msgid "can't make global register symbol `%s'" msgstr "no se puede hacer global el símbolo de registro «%s»" -#: write.c:2444 +#: write.c:2744 #, c-format msgid "alignment padding (%lu byte) not a multiple of %ld" msgid_plural "alignment padding (%lu bytes) not a multiple of %ld" msgstr[0] "rellenando alineamiento (%lu byte) no un múltiplo de %ld" msgstr[1] "rellenando alineamiento (%lu bytes) no un múltiplo de %ld" -#: write.c:2610 +#: write.c:2921 #, c-format msgid ".word %s-%s+%s didn't fit" msgstr "no cabe .word %s-%s+%s" -#: write.c:2704 +#: write.c:3013 msgid "padding added" msgstr "se añadió relleno" -#: write.c:2755 +#: write.c:3064 msgid "attempt to move .org backwards" msgstr "se intentó mover .org hacia atrás" -#: write.c:2779 -msgid ".space specifies non-absolute value" +#: write.c:3089 +#, fuzzy +#| msgid ".space specifies non-absolute value" +msgid ".space, .nops or .fill specifies non-absolute value" msgstr ".space especifica un valor que no es absoluto" -#: write.c:2794 -msgid ".space or .fill with negative value, ignored" +#: write.c:3104 +#, fuzzy +#| msgid ".space or .fill with negative value, ignored" +msgid ".space, .nops or .fill with negative value, ignored" msgstr ".space ó .fill con valor negativo, se descarta" -#: write.c:2865 +#: write.c:3194 #, c-format msgid "Infinite loop encountered whilst attempting to compute the addresses of symbols in section %s" msgstr "Se encontró un ciclo infinito al intentar computar las direcciones de los símbolos en la sección %s" - -#~ msgid "%s: data size %ld\n" -#~ msgstr "%s: tamaño de datos %ld\n" - -#~ msgid "missing segment name" -#~ msgstr "falta el nombre del segmento" - -#~ msgid "missing comma after segment name" -#~ msgstr "falta una coma después del nombre del segmento" - -#~ msgid "missing section type name" -#~ msgstr "falta el nombre de tipo de sección" - -#~ msgid "missing section attribute identifier" -#~ msgstr "falta el identificador de atributo de sección" - -#~ msgid "expected comma after operand name" -#~ msgstr "se esperaba una coma después del nombre de operando" - -#~ msgid "negative operand number %d" -#~ msgstr "número de operando %d negativo" - -#~ msgid "attempt to override symbol: %s" -#~ msgstr "se intentó redefinir el símbolo: %s" - -#~ msgid "invalid opertype" -#~ msgstr "tipo de operador inválido" - -#~ msgid "negative subopcode %d" -#~ msgstr "subcódigo de operación %d negativo" - -#~ msgid "subcode value found when opcode not equal 0x03" -#~ msgstr "se encontró un valor de subcódigo cuando el código de operación no es igual a 0x03" - -#~ msgid "invalid subopcode %d" -#~ msgstr "subcódigo de operación %d inválido" - -#~ msgid "expected comma after subopcode" -#~ msgstr "se esperaba una coma después del subcódigo de operación" - -#~ msgid "expected comma after suffix class" -#~ msgstr "se esperaba una coma después de la clase de sufijo" - -#~ msgid "invalid syntax class" -#~ msgstr "clase de sintaxis inválida" - -#~ msgid "opcode 0x3 and SYNTAX_3OP invalid" -#~ msgstr "código de operación 0x3 y SINTAX_3OP inválidos" - -#~ msgid "negative symbol length" -#~ msgstr "longitud de símbolo negativa" - -#~ msgid "ignoring attempt to re-define symbol" -#~ msgstr "se descarta el intento de redefinir el símbolo" - -#~ msgid "length of symbol \"%s\" already %ld, ignoring %d" -#~ msgstr "la longitud del símbolo \"%s\" ya es %ld; se descarta %d" - -#~ msgid "assuming symbol alignment of zero" -#~ msgstr "se asume una alineación de símbolo de cero" - -#~ msgid "\".option\" directive must appear before any instructions" -#~ msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción" - -#~ msgid "\".option\" directive conflicts with initial definition" -#~ msgstr "la directiva \".option\" tiene conflictos con la definición inicial" - -#~ msgid "\".option\" directive overrides command-line (default) value" -#~ msgstr "la directiva opción \".option\" sobreescribe el valor (por defecto) de la línea de órdenes" - -#~ msgid "invalid identifier for \".option\"" -#~ msgstr "identificador inválido para \".option\"" - -#~ msgid "expression too complex code symbol" -#~ msgstr "expresión demasiado compleja de símbolo de código" - -#~ msgid "missing ')' in %%-op" -#~ msgstr "falta un ')' en %%-op" - -#~ msgid "too many suffixes" -#~ msgstr "demasiados sufijos" - -#~ msgid "symbol as destination register" -#~ msgstr "símbolo como registro destino" - -#~ msgid "8 byte instruction in delay slot" -#~ msgstr "instrucción de 8 bytes en ranura de retardo" - -#~ msgid "conditional branch follows set of flags" -#~ msgstr "ramificación condicional a continuación del conjunto de opciones" - -#~ msgid "alignment negative. 0 assumed." -#~ msgstr "alineación negativa. Se asume 0." - -#~ msgid ":upper16: not allowed instruction" -#~ msgstr ":upper16: no se permite esta instrucción" - -#~ msgid "operand 0 must be FPSCR" -#~ msgstr "el operando 0 debe ser FPSCR" - -#~ msgid "No memory for symbol name." -#~ msgstr "No hay memoria para el nombre del símbolo." - -#~ msgid "Out of memory: could not allocate new space chain entry: %s\n" -#~ msgstr "Memoria agotada: no se puede asignar una nueva entrada de cadena de espacio: %s\n" - -#~ msgid "Out of memory: could not allocate new subspace chain entry: %s\n" -#~ msgstr "Memoria agotada: no se puede asignar una nueva entrada de cadena de subespacio: %s\n" - -#~ msgid "%s relocations do not fit in %d bytes\n" -#~ msgstr "%s reubicaciones no caben en %d bytes\n" - -#~ msgid "internal Error: Can't hash %s: %s" -#~ msgstr "error Interno: No se puede dispersar %s: %s" - -#~ msgid "Imm4 isn't the first operand" -#~ msgstr "Imm4 no es el primer operando" - -#~ msgid "unsupported" -#~ msgstr "no se admite" - -#~ msgid "the first operand of `%s' must be `%s%s'" -#~ msgstr "el primer operando de `%s' debe ser `%s%s'" - -#~ msgid "`%s' is not a valid %s-bit %s expression" -#~ msgstr "`%1$s' no es una expresión %3$s de %2$s-bit válida" - -#~ msgid "Internal Error: Can't allocate m68k_sorted_opcodes of size %d" -#~ msgstr "Error Interno: No se puede alojar m68k_sorted_opcodes de tamaño %d" - -#~ msgid "Conversion of DBcc to absolute jump" -#~ msgstr "Conversión de DBcc a un salto absoluto" - -#~ msgid "pc-relative" -#~ msgstr "relativa a pc" - -#~ msgid "operand must be absolute in range %d..%d, not %d" -#~ msgstr "el operando debe ser un absoluto en el rango %d..%d, no %d" - -#~ msgid "internal Error, line %d, %s" -#~ msgstr "Error interno, línea %d, %s" - -#~ msgid "48-bit microMIPS instructions are not supported" -#~ msgstr "no se admiten las instrucciones microMIPS de 48-bit" - -#~ msgid "Unsupported large constant" -#~ msgstr "No se admite la constante large" - -#~ msgid "Improper position (%lu)" -#~ msgstr "Posición impropia (%lu)" - -#~ msgid "Improper extract size (%lu, position %lu)" -#~ msgstr "Tamaño de extract impropio (%lu, posición %lu)" - -#~ msgid "Improper insert size (%lu, position %lu)" -#~ msgstr "Tamaño de insert impropio (%lu, posición %lu)" - -#~ msgid "Expression too complex" -#~ msgstr "Expresión demasiado compleja" - -#~ msgid "Offset too large" -#~ msgstr "Desplazamiento demasiado grande" - -#~ msgid "Opcode not supported on this processor: %s" -#~ msgstr "No se admite el código de operación en este procesador: %s" - -#~ msgid "Improper rotate count" -#~ msgstr "Cuenta de rotación impropia" - -#~ msgid "Operand overflow" -#~ msgstr "Desbordamiento de operando" - -#~ msgid "internal: bad mips opcode (unknown extension operand type `+%c'): %s %s" -#~ msgstr "interno: código de operación mips erróneo (tipo de operando de extensión `+%c' desconocido): %s %s" - -#~ msgid "Internal error: bad microMIPS opcode (mask error): %s %s" -#~ msgstr "Error interno: código de operación microMIPS erróneo: %s %s" - -#~ msgid "Internal error: bad mips opcode (unknown extension operand type `%c%c'): %s %s" -#~ msgstr "Error interno: código de operación mips erróneo (tipo de operando de extensión desconocido `%c%c'): %s %s" - -#~ msgid "Internal error: bad microMIPS opcode (unknown operand type `%c'): %s %s" -#~ msgstr "Error interno: código de operación microMIPS erróneo (tipo de operando `%c' desconocido): %s %s" - -#~ msgid "Internal error: bad microMIPS opcode (bits 0x%lx undefined): %s %s" -#~ msgstr "Error interno: código de operación microMIPS erróneo (bits 0x%lx sin definir): %s %s" - -#~ msgid "Internal error: bad microMIPS opcode (bits 0x%lx defined): %s %s" -#~ msgstr "Error interno: código de operación microMIPS erróneo (bits 0x%lx definidos): %s %s" - -#~ msgid "Unrecognized opcode" -#~ msgstr "No se reconoce el código de operación" - -#~ msgid "DSP immediate not in range 0..%d (%lu)" -#~ msgstr "el inmediato DSP no está en el rango 0..%d (%lu)" - -#~ msgid "Invalid dsp acc register" -#~ msgstr "Registro acc dsp inválido" - -#~ msgid "DSP immediate not in range %ld..%ld (%ld)" -#~ msgstr "El inmediato DSP no está en el rango %ld..%ld (%ld)" - -#~ msgid "MT usermode bit not 0 or 1 (%lu)" -#~ msgstr "El bit de modo de usuario MT no es 0 o 1 (%lu)" - -#~ msgid "MT load high bit not 0 or 1 (%lu)" -#~ msgstr "el bit alto de load MT no es 0 o 1 (%lu)" - -#~ msgid "Invalid dsp/smartmips acc register" -#~ msgstr "Registro acc dsp/smartmips inválido" - -#~ msgid "Bit position for %s not in range 0..%lu (%lu)" -#~ msgstr "La posición de bit para %s no está en el rango 0..%lu (%lu)" - -#~ msgid "Illegal %s number (%lu, 0x%lx)" -#~ msgstr "Número %s ilegal (%lu, 0x%lx)" - -#~ msgid "absolute expression required" -#~ msgstr "se requiere una expresión absoluta" - -#~ msgid "Invalid register number (%d)" -#~ msgstr "Número de registro inválido (%d)" - -#~ msgid "Invalid coprocessor 0 register number" -#~ msgstr "Número de registro 0 de coprocesador inválido" - -#~ msgid "Improper size (%lu)" -#~ msgstr "Tamaño impropio (%lu)" - -#~ msgid "Offset not in range %ld..%ld (%ld)" -#~ msgstr "El desplazamiento no está en el rango %ld..%ld (%ld)" - -#~ msgid "Offset not 16 bytes alignment (%ld)" -#~ msgstr "El desplazamiento no está alineado a 16 bytes (%ld)" - -#~ msgid "Internal error: bad %s opcode (unknown extension operand type `+%c'): %s %s" -#~ msgstr "Error interno: código de operación %s erróneo (tipo de operando de extensión `+%c' desconocido): %s %s" - -#~ msgid "Invalid value for `%s' (%lu)" -#~ msgstr "Valor inválido para `%s' (%lu)" - -#~ msgid "Code for %s not in range 0..%lu (%lu)" -#~ msgstr "El código para %s no está en el rango 0..%lu (%lu)" - -#~ msgid "Lower code for %s not in range 0..%lu (%lu)" -#~ msgstr "El código más bajo para %s no está en el rango 0..%lu (%lu)" - -#~ msgid "Coproccesor code > %u bits (%lu)" -#~ msgstr "Código de coprocesador > %u bits (%lu)" - -#~ msgid "Illegal 19-bit code (%lu)" -#~ msgstr "Código de 19-bit ilegal (%lu)" - -#~ msgid "Used $%u with \".set at=$%u\"" -#~ msgstr "se utilizó $%u con \".set at=$%u\"" - -#~ msgid "Improper align amount (%ld), using low bits" -#~ msgstr "Cantidad de desplazamiento impropia (%ld), se usan bits bajos" - -#~ msgid "Invalid MDMX Immediate (%ld)" -#~ msgstr "Inmediato MDMX inválido (%ld)" - -#~ msgid "Expecting ']' found '%s'" -#~ msgstr "Se esperaba ']', se encontró '%s'" - -#~ msgid "Can't use floating point insn in this section" -#~ msgstr "No se pueden utilizar insn de coma flotante en esta sección" - -#~ msgid "Expression out of range" -#~ msgstr "Expresión fuera de rango" - -#~ msgid "Invalid coprocessor sub-selection value (0-7)" -#~ msgstr "Valor de subselección de coprocesador (0-7) inválido" - -#~ msgid "bad byte vector index (%ld)" -#~ msgstr "índice de vector de byte erróneo (%ld)" - -#~ msgid "Internal error: bad microMIPS opcode (unknown extension operand type `m%c'): %s %s" -#~ msgstr "Error interno: código de operación microMIPS erróneo (tipo de operando de extensión `m%c' desconocido): %s %s" - -#~ msgid "Trap code (%lu) for %s not in 0..15 range" -#~ msgstr "El código de captura (%lu) para %s no está en el rango 0..15" - -#~ msgid "Bad char = '%c'\n" -#~ msgstr "Carácter erróneo = '%c'\n" - -#~ msgid "can't parse register list" -#~ msgstr "no se puede decodificar la lista de registros" - -#~ msgid "more than one frame size in list" -#~ msgstr "más de un tamaño de marco en la lista" - -#~ msgid "arg/static registers overlap" -#~ msgstr "los registros arg/static se sobreescriben" - -#~ msgid "-call_shared is supported only for ELF format" -#~ msgstr "-call_shared sólo se admite en el formato ELF" - -#~ msgid "-call_nonpic is supported only for ELF format" -#~ msgstr "-call_nonpic sólo se admite en el formato ELF" - -#~ msgid "-non_shared is supported only for ELF format" -#~ msgstr "-non_shared sólo se admite en el formato ELF" - -#~ msgid "-n32 is supported for ELF format only" -#~ msgstr "-n32 sólo se admite en el formato ELF" - -#~ msgid "-64 is supported for ELF format only" -#~ msgstr "-64 sólo se admite en el formato ELF" - -#~ msgid "-mabi is supported for ELF format only" -#~ msgstr "-mabi sólo se admite en el formato ELF" - -#~ msgid "-mfp32 used with -mips3d" -#~ msgstr "se utilizó -mfp32 con -mips3d" - -#~ msgid "-mfp32 used with -mdmx" -#~ msgstr "se utilizó -mfp32 con -mdmx" - -#~ msgid "%s ISA does not support SmartMIPS" -#~ msgstr "ISA %s no admite SmartMIPS" - -#~ msgid "%s ISA does not support DSP ASE" -#~ msgstr "ISA %s no admite DSP ASE" - -#~ msgid "%s ISA does not support DSP R2 ASE" -#~ msgstr "ISA %s no admite DSP R2 ASE" - -#~ msgid "%s ISA does not support MCU ASE" -#~ msgstr "ISA %s no admite MCU ASE" - -#~ msgid "PC relative MIPS16 instruction references a different section" -#~ msgstr "la instrucción MIPS16 relativa a PC referencía a una sección diferente" - -#~ msgid "Branch out of range" -#~ msgstr "Ramificación fuera de rango" - -#~ msgid "%s isa does not support 64-bit registers" -#~ msgstr "isa %s no admite registros de 64-bit" - -#~ msgid "%s isa does not support 64-bit floating point registers" -#~ msgstr "isa %s no admite registros de coma flotante de 64-bit" - -#~ msgid "%s ISA does not support SmartMIPS ASE" -#~ msgstr "ISA %s no admite SmartMIPS ASE" - -#~ msgid "Bad .frame directive" -#~ msgstr "Directiva .frame errónea" - -#~ msgid "Known MCU names:\n" -#~ msgstr "Nombres MCU conocidos:\n" - -#~ msgid "\t %s\n" -#~ msgstr "\t %s\n" - -#~ msgid "redefinition of mcu type %s' to %s'" -#~ msgstr "redefinición del tipo de mcu %s' a %s'" - -#~ msgid "" -#~ "MSP430 options:\n" -#~ " -mmcu=[msp430-name] select microcontroller type\n" -#~ " msp430x110 msp430x112\n" -#~ " msp430x1101 msp430x1111\n" -#~ " msp430x1121 msp430x1122 msp430x1132\n" -#~ " msp430x122 msp430x123\n" -#~ " msp430x1222 msp430x1232\n" -#~ " msp430x133 msp430x135\n" -#~ " msp430x1331 msp430x1351\n" -#~ " msp430x147 msp430x148 msp430x149\n" -#~ " msp430x155 msp430x156 msp430x157\n" -#~ " msp430x167 msp430x168 msp430x169\n" -#~ " msp430x1610 msp430x1611 msp430x1612\n" -#~ " msp430x311 msp430x312 msp430x313 msp430x314 msp430x315\n" -#~ " msp430x323 msp430x325\n" -#~ " msp430x336 msp430x337\n" -#~ " msp430x412 msp430x413 msp430x415 msp430x417\n" -#~ " msp430xE423 msp430xE425 msp430E427\n" -#~ " msp430xW423 msp430xW425 msp430W427\n" -#~ " msp430xG437 msp430xG438 msp430G439\n" -#~ " msp430x435 msp430x436 msp430x437\n" -#~ " msp430x447 msp430x448 msp430x449\n" -#~ msgstr "" -#~ "Opciones de MSP430:\n" -#~ " -mmcu=[nombre-msp430] selecciona el tipo de microcontrolador\n" -#~ " msp430x110 msp430x112\n" -#~ " msp430x1101 msp430x1111\n" -#~ " msp430x1121 msp430x1122 msp430x1132\n" -#~ " msp430x122 msp430x123\n" -#~ " msp430x1222 msp430x1232\n" -#~ " msp430x133 msp430x135\n" -#~ " msp430x1331 msp430x1351\n" -#~ " msp430x147 msp430x148 msp430x149\n" -#~ " msp430x155 msp430x156 msp430x157\n" -#~ " msp430x167 msp430x168 msp430x169\n" -#~ " msp430x1610 msp430x1611 msp430x1612\n" -#~ " msp430x311 msp430x312 msp430x313 msp430x314 msp430x315\n" -#~ " msp430x323 msp430x325\n" -#~ " msp430x336 msp430x337\n" -#~ " msp430x412 msp430x413 msp430x415 msp430x417\n" -#~ " msp430xE423 msp430xE425 msp430E427\n" -#~ " msp430xW423 msp430xW425 msp430W427\n" -#~ " msp430xG437 msp430xG438 msp430G439\n" -#~ " msp430x435 msp430x436 msp430x437\n" -#~ " msp430x447 msp430x448 msp430x449\n" - -#~ msgid "MSP430 does not have %d registers" -#~ msgstr "MSP430 no tiene %d registros" - -#~ msgid "unknown operator (r%s substituted as a register name" -#~ msgstr "operador desconocido (se sustituyó r%s como un nombre de registro" - -#~ msgid "unknown operator %s" -#~ msgstr "operador %s desconocido" - -#~ msgid "unknown addressing mode for operand %s" -#~ msgstr "modo de direccionamiento desconocido para el operando %s" - -#~ msgid "unknown opcode1: `%s'" -#~ msgstr "código de operación1 desconocido: `%s'" - -#~ msgid "unknown opcode2 `%s'." -#~ msgstr "código de operación2 `%s' desconocido." - -#~ msgid "too many operands: %s" -#~ msgstr "demasiados operandos: %s" - -#~ msgid "call/jmp target out of range (1)" -#~ msgstr "objetivo call/jmp fuera de rango (1)" - -#~ msgid "call/jmp target out of range (2)" -#~ msgstr "objetivo call/jmp fuera de rango (2)" - -#~ msgid "bad relocation type: 0x%02x" -#~ msgstr "tipo de reubicación erróneo: 0x%02x" - -#~ msgid "%s (%08lx %08lx) after %s (%08lx %08lx)" -#~ msgstr "%s (%08lx %08lx) después de %s (%08lx %08lx)" - -#~ msgid "cannot emit PC relative %s relocation against %s" -#~ msgstr "no se puede emitir la reubicación %s relativa a PC contra %s" - -#~ msgid "Unable to handle reference to symbol %s" -#~ msgstr "No se puede manejar la referencia al símbolo %s" - -#~ msgid "Unable to resolve expression" -#~ msgstr "No se puede resolver la expresión" - -#~ msgid "must branch to an address a multiple of 4" -#~ msgstr "se debe ramificar a una dirección que sea múltiplo de 4" - -#~ msgid "@local or @plt branch destination is too far away, %ld bytes" -#~ msgstr "el destino de la ramificación @local o @plt está demasiado lejos, %ld bytes" - -#~ msgid " -SCORE7\t\tassemble code for target is SCORE7, this is default setting\n" -#~ msgstr " -SCORE7\t\tensambla código para el objetivo SCORE7, esta es la opción por defecto\n" - -#~ msgid " -march=score7\tassemble code for target is SCORE7, this is default setting\n" -#~ msgstr " -march=score7\tensambla código para el objetivo SCORE7, esta es la opción por defecto\n" - -#~ msgid ": unrecognizable v9a or v9b ancillary state register" -#~ msgstr ": no se reconoce el registro de estado ancilar v9a o v9b" - -#~ msgid ": rd on write only ancillary state register" -#~ msgstr ": rd en registro de estado ancilar de sólo escritura" - -#~ msgid "found too many (%d) operands for '%s': Expected %d" -#~ msgstr "se encontraron demasiados (%d) operandos para '%s': Se esperaban %d" - -#~ msgid "format '%s' allows %d slots, but there are %d opcodes" -#~ msgstr "el formato '%s' permite %d ranuras, pero hay %d códigos de operación" - -#~ msgid "bad offset expression syntax" -#~ msgstr "sintaxis de expresión de desplazamiento errónea" - -#~ msgid "bad intruction syntax" -#~ msgstr "sintaxis de instrucción errónea" - -#~ msgid "opcode '%s': no bound opname '%s' for precondition in %s" -#~ msgstr "código de operación '%s': no hay un nombre de operación '%s' enlazado para la precondición en %s" - -#~ msgid "expr.c(operand): bad atof_generic return val %d" -#~ msgstr "expr.c(operando): valor de devolución %d atof_generic erróneo" - -#~ msgid "partial line at end of file ignored" -#~ msgstr "se descarta la línea parcial al final del fichero" - -#~ msgid "Error:" -#~ msgstr "Error:" - -#~ msgid "Assertion failure in %s at %s line %d.\n" -#~ msgstr "Falla de afirmación en %s en %s línea %d.\n" - -#~ msgid "Assertion failure at %s line %d.\n" -#~ msgstr "Falla de afirmación en %s línea %d.\n" - -#~ msgid "Internal error, aborting at %s line %d in %s\n" -#~ msgstr "Error interno, se aborta en %s línea %d en %s\n" - -#~ msgid "can't write %s: %s" -#~ msgstr "no se puede escribir %s: %s" - -#~ msgid "cannot write to output file '%s': %s" -#~ msgstr "no se puede escribir al fichero de salida '%s': %s" - -#~ msgid "%d error%s, %d warning%s, no object file generated" -#~ msgstr "%d errore%s, %d aviso%s, no se genera un fichero objeto" - -#~ msgid "Local symbol `%s' can't be equated to common symbol `%s'" -#~ msgstr "El símbolo local `%s' no se puede igualar al símbolo común `%s'" - -#~ msgid "Code for %s not in range 0..1048575 (%lu)" -#~ msgstr "El código para %s no está en el rango 0..1048575 (%lu)" - -#~ msgid ".size expression too complicated to fix up" -#~ msgstr "la expresión .size es demasiado complicada para componerla" - -#~ msgid "Label expected" -#~ msgstr "Se esperaba una etiqueta" - -#~ msgid " -matomic enable atomic operation instructions\n" -#~ msgstr " -matomic permite instrucciones de operación atómica\n" - -#~ msgid " -mno-atomic disable atomic operation instructions\n" -#~ msgstr " -mno-atomic desactiva las instrucciones de operación atómica\n" - -#~ msgid "invalid sections for operation on `%s' and `%s'" -#~ msgstr "secciones inválidas para la operación en `%s' y `%s'" - -#~ msgid "invalid section for operation on `%s'" -#~ msgstr "sección inválida para la operación en `%s'" - -#~ msgid "undefined symbol `%s' in operation setting `%s'" -#~ msgstr "símbolo sin definir `%s' en la operación que establece `%s'" - -#~ msgid "invalid sections for operation on `%s' and `%s' setting `%s'" -#~ msgstr "secciones inválidas para la operación en `%s' y `%s' que establece `%s'" - -#~ msgid "base register should not be in register list when written back" -#~ msgstr "el registro base no debe estar en la lista de registros cuando se escribe hacia atrás" - -#~ msgid " BFIN specific command line options:\n" -#~ msgstr " Opciones de línea de órdenes específicas de BFIN:\n" - -#~ msgid "ambiguous operand size or operands invalid for `%s'" -#~ msgstr "tamaño de operando ambiguo u operandos inválidos para `%s'" - -#~ msgid "suffix or operands invalid for `%s'" -#~ msgstr "sufijo u operandos inválidos para `%s'" - -#~ msgid "" -#~ " -march=CPU[,+EXTENSION...]\n" -#~ " generate code for CPU and EXTENSION, CPU is one of:\n" -#~ " i8086, i186, i286, i386, i486, pentium, pentiumpro,\n" -#~ " pentiumii, pentiumiii, pentium4, prescott, nocona,\n" -#~ " core, core2, corei7, l1om, k6, k6_2, athlon, k8,\n" -#~ " amdfam10, generic32, generic64\n" -#~ " EXTENSION is combination of:\n" -#~ " 8087, 287, 387, no87, mmx, nommx, sse, sse2, sse3,\n" -#~ " ssse3, sse4.1, sse4.2, sse4, nosse, avx, noavx,\n" -#~ " vmx, smx, xsave, movbe, ept, aes, pclmul, fma,\n" -#~ " clflush, syscall, rdtscp, 3dnow, 3dnowa, sse4a,\n" -#~ " svme, abm, padlock, fma4\n" -#~ msgstr "" -#~ " -march=CPU[,+EXTENSIÓN...]\n" -#~ " genera código para CPU y EXTENSIÓN, CPU es uno de:\n" -#~ " i8086, i186, i286, i386, i486, pentium, pentiumpro,\n" -#~ " pentiumii, pentiumiii, pentium4, prescott, nocona,\n" -#~ " core, core2, corei7, l1om, k6, k6_2, athlon, k8,\n" -#~ " amdfam10, generic32, generic64\n" -#~ " EXTENSION es una combinación de :\n" -#~ " 8087, 287, 387, no87, mmx, nommx, sse, sse2, sse3,\n" -#~ " ssse3, sse4.1, sse4.2, sse4, nosse, avx, noavx,\n" -#~ " vmx, smx, xsave, movbe, ept, aes, pclmul, fma,\n" -#~ " clflush, syscall, rdtscp, 3dnow, 3dnowa, sse4a,\n" -#~ " svme, abm, padlock, fma4\n" - -#~ msgid "" -#~ " -mtune=CPU optimize for CPU, CPU is one of:\n" -#~ " i8086, i186, i286, i386, i486, pentium, pentiumpro,\n" -#~ " pentiumii, pentiumiii, pentium4, prescott, nocona,\n" -#~ " core, core2, corei7, l1om, k6, k6_2, athlon, k8,\n" -#~ " amdfam10, generic32, generic64\n" -#~ msgstr "" -#~ " -mtune=CPU optimiza para el CPU, donde CPU es:\n" -#~ " i8086, i186, i286, i386, i486, pentium, pentiumpro,\n" -#~ " pentiumii, pentiumiii, pentium4, prescott, nocona,\n" -#~ " core, core2, corei7, l1om, k6, k6_2, athlon, k8,\n" -#~ " amdfam10, generic32, generic64\n" - -#~ msgid " MAXQ-specific assembler options:\n" -#~ msgstr "Opciones de ensamblador específicas de MAXQ:\n" - -#~ msgid "" -#~ "\t-MAXQ20\t\t generate obj for MAXQ20(default)\n" -#~ "\t-MAXQ10\t\t generate obj for MAXQ10\n" -#~ "\t" -#~ msgstr "" -#~ "\t-MAXQ20\t\t genera objetos para MAXQ20(por defecto)\n" -#~ "\t-MAXQ10\t\t genera objetos para MAXQ10\n" -#~ "\t" - -#~ msgid "Illegal Reloc type in md_estimate_size_before_relax for line : %d" -#~ msgstr "Tipo de reubicación ilegal en md_estimate_size_before_relax para la línea : %d" - -#~ msgid "Cant make long jump/call into short jump/call : %d" -#~ msgstr "No se puede hacer un salto/llamada long en un salto/llamada short : %d" - -#~ msgid "Invalid register value %s" -#~ msgstr "Valor de registro %s inválido" - -#~ msgid "Invalid bit number : '%c'" -#~ msgstr "Número de bit inválido : '%c'" - -#~ msgid "Invalid Character in immediate Value : %c" -#~ msgstr "Carácter inválido en el valor inmediato : %c" - -#~ msgid "Invalid Character in immediate value : %c" -#~ msgstr "Carácter inválido en el valor inmediato : %c" - -#~ msgid "Immediate value greater than 16 bits" -#~ msgstr "Valor inmediato mayor a 16 bits" - -#~ msgid "Attempt to move a value in the stack pointer greater than the size of the stack" -#~ msgstr "Se intenta mover un valor en el puntero de pila mayor que el tamaño de la pila" - -#~ msgid "Attempt to move 16 bit value into an 8 bit register.Truncating..\n" -#~ msgstr "Se intenta mover un valor de 16 bit en un registro de 8 bit. Se trunca..\n" - -#~ msgid "Invalid immediate move operation" -#~ msgstr "Operación move inmediata inválida" - -#~ msgid "Size of Operand '%s' greater than %d" -#~ msgstr "El tamaño del operando '%s' es mayor que %d" - -#~ msgid "illegal immediate operand '%s'" -#~ msgstr "operando inmediato '%s' ilegal" - -#~ msgid "illegal displacement operand " -#~ msgstr "operando de desubicación ilegal " - -#~ msgid "invalid character %c in operand %d" -#~ msgstr "carácter inválido %c en el operando %d" - -#~ msgid "operand %d is invalid for `%s'" -#~ msgstr "el operando %d es inválido para `%s'" - -#~ msgid "The Accumulator cannot be used as a source in ALU instructions\n" -#~ msgstr "No se puede usar el acumulador como fuente para instrucciones ALU\n" - -#~ msgid "'%s' operand cant be used as destination in %s" -#~ msgstr "el operando '%s' no se puede usar como destino en %s" - -#~ msgid "Invalid Instruction '%s' operand cant be used with %s" -#~ msgstr "El operando de instrucción '%s' inválido no se puede usar con %s." - -#~ msgid "'%s' operand cant be used as source in %s" -#~ msgstr "el operando '%s' no se puede usar como fuente en %s" - -#~ msgid "@SP-- cannot be used with PUSH\n" -#~ msgstr "@SP-- no se puede usar con PUSH\n" - -#~ msgid "Operands either contradictory or use the data bus in read/write state together" -#~ msgstr "Los operandos son contradictorios o usan juntos el bus de datos en estado lectura/escritura" - -#~ msgid "MOVE Cant Use NUL as SRC" -#~ msgstr "MOVE no puede usar NUL como SRC" - -#~ msgid "Contradictory movement between DP register and memory access using DP" -#~ msgstr "Movimiento contradictorio entre el registro DP y el acceso a memoria que usa DP" - -#~ msgid "SP and @SP-- cannot be used together in a move instruction" -#~ msgstr "SP y @SP-- no se pueden usar juntos en una instrucción move" - -#~ msgid "Only Module 8 system registers allowed in this operation" -#~ msgstr "Sólo se permiten registros de sistema Module 8 en esta operación" - -#~ msgid "Read only Register used as destination" -#~ msgstr "Se usa un registro de sólo lectura como destino" - -#~ msgid "Bit No '%d'exceeds register size in this operation" -#~ msgstr "El bit No. '%d' excede el tamaño del registro en esta operación" - -#~ msgid "Bit No '%d' exceeds register size in this operation" -#~ msgstr "El bit No. '%d' excede el tamaño del registro en esta operación" - -#~ msgid "Memory References cannot be used with branching operations\n" -#~ msgstr "Las referencias de memoria no se pueden usar con operaciones de ramificación\n" - -#~ msgid "DJNZ uses only LC[n] register \n" -#~ msgstr "DJNZ sólo usa registros LC[n] \n" - -#~ msgid "'%s' operand cant be used as destination in %s" -#~ msgstr "el operando '%s' no se puede usar como destino en %s" - -#~ msgid "Read only register used for writing purposes '%s'" -#~ msgstr "Se usó un registro de sólo lectura pra própositos de escritura '%s'" - -#~ msgid "Invalid destination for this kind of source." -#~ msgstr "Destino inválido para tipo de fuente." - -#~ msgid "Invalid register as destination for this kind of source.Only data pointers can be used." -#~ msgstr "Registro inválido como destino para este tipo de fuente. Sólo se pueden usan punteros a datos" - -#~ msgid "Invalid Instruction" -#~ msgstr "Instrucción inválida" - -#~ msgid "Cannot allocate memory" -#~ msgstr "No se puede asignar memoria" - -#~ msgid "Internal Error: Illegal Architecure specified" -#~ msgstr "Error interno: se especificó una arquitectura ilegal" - -#~ msgid "Invalid architecture type" -#~ msgstr "Tipo de arquitectura inválido" - -#~ msgid "Internal Error : Can't Hash %s : %s" -#~ msgstr "Error Interno: No se puede dispersar %s : %s" - -#~ msgid "Ineffective insntruction %s \n" -#~ msgstr "Insn %s no es efectiva \n" - -#~ msgid "Bad .section directive: want a,e,w,x,M,S,G,T in string" -#~ msgstr "Directiva .section errónea: se quiere a,e,w,x,M,S,G,T en la cadena" - -#~ msgid "PSW cannot be included in list" -#~ msgstr "PSW no se puede incluir en la lista" - -#~ msgid "High value system registers cannot be included in list" -#~ msgstr "Los registros altos de valores del sistema no se pueden incluir en la lista" - -#~ msgid " -mv850any The code is generic, despite any processor specific instructions\n" -#~ msgstr " -mv850any El código es genérico, a pesar de cualquier instrucción específica de procesador\n" - -#~ msgid "cannot represent subtraction with an offset" -#~ msgstr "no se puede representar la sustracción con un desplazamiento" - -#~ msgid "Unknown section directive" -#~ msgstr "Directiva de sección desconocida" - -#~ msgid "PC is not a valid index register" -#~ msgstr "PC no es un registro índice válido" - -#~ msgid "invalid operand for '%s' ('%s' unexpected)" -#~ msgstr "operando inválido para '%s' ('%s' inesperado)" - -#~ msgid "too many memory references for '%s'" -#~ msgstr "demasiadas referencias a memoria para '%s'" - -#~ msgid "Treating `%s' as memory reference" -#~ msgstr "Se trata `%s' como una referencia de memoria" - -#~ msgid "Segment override ignored" -#~ msgstr "Se descarta la sobreescritura de segmento" - -#~ msgid "Unknown operand modifier `%s'" -#~ msgstr "Modificador de operando `%s' desconocido" - -#~ msgid "Conflicting operand modifiers" -#~ msgstr "Modificadores de operando en conflicto" - -#~ msgid "Invalid operand to `OFFSET'" -#~ msgstr "Operando inválido para `OFFSET'" - -#~ msgid "`[%.*s]' taken to mean just `%.*s'" -#~ msgstr "se toma `[%.*s]' y sólo significa `%.*s'" - -#~ msgid "`%s' is not a valid segment register" -#~ msgstr "`%s' no es un registro de segmento válido" - -#~ msgid "cannot use `FLAT' here" -#~ msgstr "no se puede usar `FLAT' aquí" - -#~ msgid "Register scaling only allowed in memory operands" -#~ msgstr "El escalamiento de registros sólo se permite en operandos de memoria" - -#~ msgid "Syntax error: Expecting a constant, got `%s'" -#~ msgstr "Error sintáctico: Se esperaba una constante, se obtuvo `%s'" - -#~ msgid "Unrecognized token '%s'" -#~ msgstr "No se reconoce el elemento '%s'" - -#~ msgid "Unexpected token `%s'" -#~ msgstr "Elemento `%s' inesperado" - -#~ msgid "Unrecognized token `%s'" -#~ msgstr "No se reconoce el elemento `%s'" - -#~ msgid "-32 is supported for ELF format only" -#~ msgstr "-32 sólo se admite en el formato ELF" - -#~ msgid "the label length is longer than 1024" -#~ msgstr "la longitud de la etiqueta es mayor que 1024" - -#~ msgid "high register(r16-r31)expected, not '%.100s'" -#~ msgstr "se esperaba un register(r16-r31) high, no '%.100s'" - -#~ msgid "base register nums are over 3 bit" -#~ msgstr "los números del registro base están sobre 3 bit" - -#~ msgid "invalid constant: 25 bit expression not in range -2^24..2^24" -#~ msgstr "constante inválida: la expresión de 15 bit no está en el rango -2^24..2^24" - -#~ msgid " branch relocation truncate (0x%x) [-2^8 ~ 2^8]" -#~ msgstr " la reubicación de ramificación trunca (0x%x) [-2^8 ~ 2^8]" - -#~ msgid " branch relocation truncate (0x%x) [-2^8 ~ 2^8]" -#~ msgstr " la reubicación de ramificación trunca (0x%x) [-2^8 ~ 2^8]" - -#~ msgid "md_convert_frag\n" -#~ msgstr "md_convert_frag\n" - -#~ msgid "selected processor does not support requested special purpose register %x" -#~ msgstr "el procesador seleccionado no admite el registro de propósito especial %x" - -#~ msgid "offset too big" -#~ msgstr "desplazamiento demasiado grande" - -#~ msgid "" -#~ "AVR options:\n" -#~ " -mmcu=[avr-name] select microcontroller variant\n" -#~ " [avr-name] can be:\n" -#~ " avr1 - AT90S1200, ATtiny1x, ATtiny28\n" -#~ " avr2 - AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22\n" -#~ " avr3 - ATmega103, ATmega603\n" -#~ " avr4 - ATmega83, ATmega85\n" -#~ " avr5 - ATmega161, ATmega163, ATmega32, AT94K\n" -#~ " or immediate microcontroller name.\n" -#~ msgstr "" -#~ "Opciones AVR:\n" -#~ " -mmcu=[nombre-avr] escoge la variante de microcontrolador\n" -#~ " [nombre-avr] puede ser:\n" -#~ " avr1 - AT90S1200, ATtiny1x, ATtiny28\n" -#~ " avr2 - AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22\n" -#~ " avr3 - ATmega103, ATmega603\n" -#~ " avr4 - ATmega83, ATmega85\n" -#~ " avr5 - ATmega161, ATmega163, ATmega32, AT94K\n" -#~ " o el nombre inmediato del microcontrolador.\n" - -#~ msgid "expression dangerous with linker stubs" -#~ msgstr "expresión peligrosa con cabos de enlazado" - -#~ msgid "-mgpr-32 Note 32 gprs are used\n" -#~ msgstr "-mgpr-32 Se usa nota de 32 gprs\n" - -#~ msgid "-mgpr-64 Note 64 gprs are used\n" -#~ msgstr "-mgpr-64 Se usa nota de 64 gprs\n" - -#~ msgid "-mfpr-32 Note 32 fprs are used\n" -#~ msgstr "-mfpr-32 Se usa nota de 32 fprs\n" - -#~ msgid "-mfpr-64 Note 64 fprs are used\n" -#~ msgstr "-mfpr-64 Se usa nota de 64 fprs\n" - -#~ msgid "-msoft-float Note software fp is used\n" -#~ msgstr "-msoft-float Se usa nota de fp de software\n" - -#~ msgid "-mdword Note stack is aligned to a 8 byte boundary\n" -#~ msgstr "-mdword La pila de nota está alineada a un límite de 8 byte\n" - -#~ msgid "-mno-dword Note stack is aligned to a 4 byte boundary\n" -#~ msgstr "-mno-dword La pila de nota está alineada a un límite de 4 byte\n" - -#~ msgid "-mdouble Note fp double insns are used\n" -#~ msgstr "-mdouble Se usan insns nota de fp doble\n" - -#~ msgid "-mmedia Note media insns are used\n" -#~ msgstr "-mmedia Se usan insns nota media\n" - -#~ msgid "-mpack Note instructions are packed\n" -#~ msgstr "-mpack Las instrucciones nota están empaquetadas\n" - -#~ msgid "no instruction mnemonic suffix given; can't determine immediate size %x %c" -#~ msgstr "no se dio un sufijo mnemónico de instrucción; no se puede determinar el tamaño inmediato %x %c" - -#~ msgid "`:' expected" -#~ msgstr "se esperaba `:'" - -#~ msgid "i860_estimate_size_before_relax\n" -#~ msgstr "i860_estimate_size_before_relax\n" - -#~ msgid "i860_convert_frag\n" -#~ msgstr "i860_convert_frag\n" - -#~ msgid "md_pcrel_from\n" -#~ msgstr "md_pcrel_from\n" - -#~ msgid "ColdFire ISA_A" -#~ msgstr "ISA_A de ColdFire" - -#~ msgid "ColdFire ISA_A+" -#~ msgstr "ISA_A+ de ColdFire" - -#~ msgid "ColdFire ISA_B" -#~ msgstr "ISA_B de ColdFire" - -#~ msgid "ColdFire fpu" -#~ msgstr "unidad de coma flotante de ColdFire" - -#~ msgid "M68K fpu" -#~ msgstr "unidad de coma flotante de M68K" - -#~ msgid "M68K mmu" -#~ msgstr "mmu de M68K" - -#~ msgid "68000 or higher" -#~ msgstr "68000 o superior" - -#~ msgid "68010 or higher" -#~ msgstr "68010 o superior" - -#~ msgid "already selected `%s' processor" -#~ msgstr "ya se seleccionó el procesador `%s'" - -#~ msgid "already selected `%s' architecture" -#~ msgstr "ya se seleccionó la arquitectura `%s'" - -#~ msgid "INSTR_LABEL_DEF not supported yet" -#~ msgstr "INSTR_LABEL_DEF aún no se admite" - -#~ msgid "internal error: relaxation requires too many steps" -#~ msgstr "error interno: la relajación requiere demasiados pasos" - -#~ msgid "can't allocate ELF private section data: %s" -#~ msgstr "no se puede crear la sección de datos privados ELF: %s" - -#~ msgid "Out of step\n" -#~ msgstr "Fuera del paso\n" - -#~ msgid "too many sections" -#~ msgstr "demasiadas secciones" - -#~ msgid "FATAL: Can't create %s" -#~ msgstr "FATAL: No se puede crear %s" - -#~ msgid "Thumb does not support the ldr =N pseudo-operation" -#~ msgstr "Thumb no tiene soporte para la pseudo-operación ldr =N" - -#~ msgid "SP should not be in register list" -#~ msgstr "SP no debe estar en la lista de registros" - -#~ msgid "PC should not be in register list" -#~ msgstr "PC no debe estar en la lista de registros" - -#~ msgid "bad immediate value for half-word offset (%ld)" -#~ msgstr "valor inmediato erróneo para el desplazamiento half-word (%ld)" - -#~ msgid "" -#~ " -Q ignored\n" -#~ " -V print assembler version number\n" -#~ " -k ignored\n" -#~ " -n Do not optimize code alignment\n" -#~ " -q quieten some warnings\n" -#~ " -s ignored\n" -#~ msgstr "" -#~ " -Q ignorado\n" -#~ " -V muestra el número de versión del ensamblador\n" -#~ " -k ignorado\n" -#~ " -n No optimiza la alineación de código\n" -#~ " -q omite algunos avisos\n" -#~ " -s ignorado\n" - -#~ msgid "Using register names in OFFSET expressions is deprecated" -#~ msgstr "El uso de nombres de registro en expresiones OFFSET es obsoleto" - -#~ msgid " or " -#~ msgstr " o " - -#~ msgid ", or " -#~ msgstr ", o " - -#~ msgid ", or aliases" -#~ msgstr ", o los aliases" - -#~ msgid "fpu (68040, 68060 or 68881/68882)" -#~ msgstr "fpu (68040, 68060 o 68881/68882)" - -#~ msgid "mmu (68030 or 68851)" -#~ msgstr "mmu (68030 o 68851)" - -#~ msgid "Can't use long branches on 68000/68010/5200" -#~ msgstr "No se pueden usar ramificaciones long en 68000/68010/5200" - -#~ msgid "architecture not yet selected: defaulting to 68020" -#~ msgstr "no se ha seleccionado una arquitectura: cambiando por defecto a 68020" - -#~ msgid "options for 68881 and no-68881 both given" -#~ msgstr "se dieron opciones para 68881 y para no-68881" - -#~ msgid "options for 68851 and no-68851 both given" -#~ msgstr "se dieron opciones para 68851 y para no-68851" - -#~ msgid "unrecognized architecture specification `%s'" -#~ msgstr "no se reconoce la especificación de arquitectura `%s'" - -#~ msgid "" -#~ "680X0 options:\n" -#~ "-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n" -#~ "-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n" -#~ "-m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n" -#~ "-m5200 | -m5202 | -m5204 | -m5206 | -m5206e | -m521x | -m5249 |\n" -#~ "-m528x | -m5307 | -m5407 | -m547x | -m548x | -mcfv4 | -mcfv4e\n" -#~ "\t\t\tspecify variant of 680X0 architecture [default %s]\n" -#~ "-m68881 | -m68882 | -mno-68881 | -mno-68882\n" -#~ "\t\t\ttarget has/lacks floating-point coprocessor\n" -#~ "\t\t\t[default yes for 68020, 68030, and cpu32]\n" -#~ msgstr "" -#~ "Opciones de 680X0:\n" -#~ "-l\t\t\tusa 1 word para referencias a símbolos indefinidos [por defecto 2]\n" -#~ "-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n" -#~ "-m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n" -#~ "-m5200 | -m5202 | -m5204 | -m5206 | -m5206e | -m521x | -m5249 |\n" -#~ "-m528x | -m5307 | -m5407 | -m547x | -m548x | -mcfv4 | -mcfv4e\n" -#~ "\t\t\tespecifica la variación de la arquitectura 680X0 [por defecto %s]\n" -#~ "-m68881 | -m68882 | -mno-68881 | -mno-68882\n" -#~ "\t\t\tel objetivo tiene un/carece de coprocesador de coma flotante\n" -#~ "\t\t\t[por defecto sí para 68020, 68030, y cpu32]\n" - -#~ msgid "" -#~ "--base-size-default-16\tbase reg without size is 16 bits\n" -#~ "--base-size-default-32\tbase reg without size is 32 bits (default)\n" -#~ "--disp-size-default-16\tdisplacement with unknown size is 16 bits\n" -#~ "--disp-size-default-32\tdisplacement with unknown size is 32 bits (default)\n" -#~ msgstr "" -#~ "--base-size-default-16\tel registro base sin tamaño es de 16 bits\n" -#~ "--base-size-default-32\tel registro base sin tamaño es de 32 bits (por defecto)\n" -#~ "--disp-size-default-16\tla desubicación de tamaño desconocido es de 16 bits\n" -#~ "--disp-size-default-32\tla desubicación de tamaño desconocido es de 32 bits (por defecto)\n" - -#~ msgid "Illegal break code (%lu)" -#~ msgstr "Código de interrupción ilegal (%lu)" - -#~ msgid "Illegal lower break code (%lu)" -#~ msgstr "Código de interrupción inferior ilegal (%lu)" - -#~ msgid "Illegal 20-bit code (%lu)" -#~ msgstr "Código de 20-bit ilegal (%lu)" - -#~ msgid "Invalid condition code register $fcc%d" -#~ msgstr "Registro de código de condición $fcc%d inválido" - -#~ msgid "Cannot branch to undefined symbol." -#~ msgstr "No se puede ramificar hacia un símbolo indefinido." - -#~ msgid "Pretending global symbol used as branch target is local." -#~ msgstr "Pretender que se use un símbolo global como objetivo de ramificación es local." - -#~ msgid "Branch to odd address (%lx)" -#~ msgstr "Ramificación a una dirección impar (%lx)" - -#~ msgid "expected `$'" -#~ msgstr "se esperaba `$'" - -#~ msgid "entry instruction with non-constant decrement" -#~ msgstr "instrucción entry con decremento que no es constante" - -#~ msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same queue" -#~ msgstr "los códigos de operación '%s' (ranura %d) y '%s' (ranura %d) escriben en la misma cola" - -#~ msgid "invalid flag combination on section %s" -#~ msgstr "combinación de opciones inválida en la sección %s" - -#~ msgid "cannot encode opcode" -#~ msgstr "no se codificar el código de operación" - -#~ msgid "invalid expression for operand %d on '%s'" -#~ msgstr "expresión inválida para el operando %d en '%s'" - -#~ msgid "Can't close %s" -#~ msgstr "No se puede cerrar %s" - -#~ msgid "can't open list file: %s" -#~ msgstr "no se puede abrir el fichero de lista: %s" - -#~ msgid "error closing list file: %s" -#~ msgstr "error al cerrar el fichero de lista: %s" - -#~ msgid "FATAL: can't create %s" -#~ msgstr "FATAL: no se puede crear %s" - -#~ msgid "FATAL: can't close %s\n" -#~ msgstr "FATAL: no se puede cerrar %s\n" - -#~ msgid "FATAL: Can't write %s" -#~ msgstr "FATAL: No se puede escribir %s" - -#~ msgid "end of file in string; inserted '\"'" -#~ msgstr "fin de fichero en la cadena; se insertó '\"'" - -#~ msgid "GNU assembler version %s (%s)" -#~ msgstr "GNU ensamblador versión %s (%s)" - -#~ msgid "unresolved relocation" -#~ msgstr "reubicación sin resolver" - -#~ msgid "bad relocation: symbol `%s' not in symbol table" -#~ msgstr "reubicación errónea: el símbolo `%s' no está en la tabla de símbolos" - -#~ msgid "Local symbol %s never defined." -#~ msgstr "El símbolo local %s nunca se definió." - -#~ msgid "Local symbol %s never defined" -#~ msgstr "El símbolo local %s nunca se definió" - -#~ msgid "bfd_coff_swap_scnhdr_out failed" -#~ msgstr "falló bfd_coff_swap_scnhdr_out" - -#~ msgid "Too many new sections; can't add \"%s\"" -#~ msgstr "Demasiadas secciones nuevas; no se puede agregar \"%s\"" - -#~ msgid "Negative of non-absolute symbol %s" -#~ msgstr "Negativo de un símbolo %s que no es absoluto" - -#~ msgid "callj to difference of 2 symbols" -#~ msgstr "callj para diferenciar a 2 símbolos" - -#~ msgid "Can't emit reloc {- %s-seg symbol \"%s\"} @ file address %ld." -#~ msgstr "No se puede emitir la reubicación {- %s-seg símbolo \"%s\"} @ dirección del fichero %ld." - -#~ msgid "Value of %ld too large for field of %d bytes at 0x%lx" -#~ msgstr "El valor de %ld es demasiado grande para el campo de %d bytes en 0x%lx" - -#~ msgid "Signed .word overflow; switch may be too large; %ld at 0x%lx" -#~ msgstr "Desbordamiento con signo de .word; el interruptor puede ser demasiado grande; %ld en 0x%lx" - -#~ msgid "compiler emitted zero-size common symbol `%s' already defined" -#~ msgstr "el símbolo común de tamaño cero emitido por el compilador `%s' ya está definido" - -#~ msgid "compiler redefined zero-size common symbol `%s'" -#~ msgstr "símbolo común de tamaño cero `%s' redefinido por el compilador" - -#~ msgid "Couldn't create VMS object file \"%s\"" -#~ msgstr "No se puede crear el fichero objeto VMS \"%s\"" - -#~ msgid "I/O error writing VMS object file (length prefix)" -#~ msgstr "Error de E/S al escribir el fichero objeto VMS (longitud del prefijo)" - -#~ msgid "I/O error writing VMS object file" -#~ msgstr "Error de E/S al escribir el fichero objeto VMS" - -#~ msgid "Couldn't find source file \"%s\", status=%%X%x" -#~ msgstr "No se puede encontrar el fichero fuente \"%s\", estado=%%X%x" - -#~ msgid "debugger forward reference error, dbx type %d" -#~ msgstr "error de referencia hacia adelante del depurador, tipo dbx %d" - -#~ msgid "Variable descriptor %d too complicated. Defined as `void *'." -#~ msgstr "El descriptor de variable %d es demasiado complicado. Se define como `void *'." - -#~ msgid "" -#~ "***Warning - the assembly code generated by the compiler has placed \n" -#~ " global constant(s) in the text psect. These will not be available to \n" -#~ " other modules, since this is not the correct way to handle this. You \n" -#~ " have two options: 1) get a patched compiler that does not put global \n" -#~ " constants in the text psect, or 2) remove the 'const' keyword from \n" -#~ " definitions of global variables in your source module(s). Don't say \n" -#~ " I didn't warn you! \n" -#~ msgstr "" -#~ "***Aviso - el código ensamblador generado por el compilador ha colocado \n" -#~ " constante(s) global(es) en la psect de texto. Éstas no estarán disponibles \n" -#~ " para otros módulos, ya que no es la forma correcta de manejarlo. Tiene \n" -#~ " dos opciones: 1) obtener un compilador parchado que no coloque constantes \n" -#~ " globales en la psect de texto, o 2) quitar la palabra clave 'const' de \n" -#~ " las definiciones de las variables globales en el(los) módulo(s) fuente. \n" -#~ " ¡No diga que no se le advirtió! \n" - -#~ msgid "debugginer output: %d is an unknown untyped variable." -#~ msgstr "salida del depurador: %d es una variable sin tipo desconocido." - -#~ msgid "debugger output: structure element `%s' has undefined type" -#~ msgstr "salida del depurador: el elmento de la estructura `%s' tiene un tipo indefinido" - -#~ msgid "debugger output: %d is an unknown type of variable." -#~ msgstr "salida del depurador: %d es un tipo desconocido de variable." - -#~ msgid "debugger output: Unable to resolve %d circular references." -#~ msgstr "salida del depurador: No se pueden resolver %d referencias circulares." - -#~ msgid "Module name truncated: %s\n" -#~ msgstr "Nombre de módulo truncado: %s\n" - -#~ msgid "Symbol %s replaced by %s\n" -#~ msgstr "El símbolo %s se reemplazó por %s\n" - -#~ msgid "Unknown VMS psect type (%ld)" -#~ msgstr "Tipo psect VMS desconocido (%ld)" - -#~ msgid "Globalsymbol attribute for symbol %s was unexpected." -#~ msgstr "El atributo de globalsymbol para el símbolo %s era inesperado." - -#~ msgid "Invalid globalvalue of %s" -#~ msgstr "Globalvalue inválido de %s" - -#~ msgid "Fixup data addsy and subsy don't have the same type" -#~ msgstr "Los datos de compostura addsy y subsy no tienen el mismo tipo" - -#~ msgid "Fixup data addsy and subsy don't have an appropriate type" -#~ msgstr "Los datos de compostura addsy y subsy no tienen un tipo apropiado" - -#~ msgid "Fixup data is erroneously \"pcrel\"" -#~ msgstr "Los datos de compostura son \"pcrel\" erróneamente" - -#~ msgid "Fixup datum is not a longword" -#~ msgstr "El dato de compostura no es un longword" - -#~ msgid "Fixup datum is not \"fixP->fx_addsy\"" -#~ msgstr "El dato de compostura no es \"fixP->fx_addsy\"" - -#~ msgid "unhandled stab type %d" -#~ msgstr "tipo de cabo %d sin manejar" - -#~ msgid "need %o3\n" -#~ msgstr "se necesita %o3\n" - -#~ msgid "a29k_convert_frag\n" -#~ msgstr "a29k_convert_frag\n" - -#~ msgid "a29k_estimate_size_before_relax\n" -#~ msgstr "a29k_estimate_size_before_relax\n" - -#~ msgid "Invalid register in & expression" -#~ msgstr "Registro inválido en la expresión &" - -#~ msgid "Intel Wireless MMX technology register expected" -#~ msgstr "se esperaba un registro de tecnología Intel Inalámbrico MMX" - -#~ msgid "unreq: missing hash entry for \"%s\"" -#~ msgstr "unreq: falta la entrada de hash para \"%s\"" - -#~ msgid ".unreq: unrecognized symbol \"%s\"" -#~ msgstr ".unreq: no se reconoce el símbolo \"%s\"" - -#~ msgid "bad_segment" -#~ msgstr "segmento_erróneo" - -#~ msgid "Intel Wireless MMX technology register expected, not '%.100s'" -#~ msgstr "se esperaba un registro de tecnología Intel Inalámbrica MMX, no '%.100s'" - -#~ msgid "illegal co-processor number" -#~ msgstr "número de co-procesador ilegal" - -#~ msgid "immediate co-processor expression too large" -#~ msgstr "expresión de co-procesador inmediata demasiado grande" - -#~ msgid "comma expected after closing square bracket" -#~ msgstr "se esperaba una coma después del paréntesis cuadrado que cierra" - -#~ msgid "'option' field too large" -#~ msgstr "campo 'option' demasiado grande" - -#~ msgid "non-constant expressions for 'option' field not supported" -#~ msgstr "no hay soporte para expresiones no constantes para el campo 'option'" - -#~ msgid "# or { expected after comma" -#~ msgstr "se esperaba # o { después de la coma" - -#~ msgid "Invalid NOP hint" -#~ msgstr "Pista NOP inválida" - -#~ msgid "comma missing after psr flags" -#~ msgstr "falta una coma después de las opciones psr" - -#~ msgid "only a register or immediate value can follow a psr flag" -#~ msgstr "sólo un registro o un valor inmediato puede seguir a una opción psr" - -#~ msgid "address offset too large" -#~ msgstr "dirección de desplazamiento demasiado grande" - -#~ msgid "Warning: instruction unpredictable when using r15" -#~ msgstr "Aviso: la instrucción es impredecible cuando se utiliza r15" - -#~ msgid "Rd equal to Rm or Rn yields unpredictable results" -#~ msgstr "Rd igual a Rm o Rn produce resultados impredecibles" - -#~ msgid "shift requires register or #expression" -#~ msgstr "el desplazamiento requiere un registro o una #expresión" - -#~ msgid "shift requires #expression" -#~ msgstr "el desplazamiento requiere una #expresión" - -#~ msgid "shift of 0 ignored." -#~ msgstr "se ignora un desplazamiento de 0." - -#~ msgid "missing endian specifier" -#~ msgstr "falta el especificador endian" - -#~ msgid "rotation can be 8, 16, 24 or 0 when field is ommited" -#~ msgstr "rotation puede ser 8, 16, 24 o 0 cuando se omite el campo" - -#~ msgid "no 'a', 'i', or 'f' flags for 'cps'" -#~ msgstr "no hay opciones 'a', 'i', o 'f' para 'cps'" - -#~ msgid "conditional execution not supported with control register" -#~ msgstr "la ejecución condicional no tiene soporte con un registro de control" - -#~ msgid "pre/post-indexing used when modified address register is destination" -#~ msgstr "se usó pre/post-indizado cuando el registro de dirección modificado es el destino" - -#~ msgid "ldrd destination registers must not overlap index register" -#~ msgstr "los registros destino ldrd no deben quedar sobre el registro índice" - -#~ msgid "floating point register or immediate expression expected" -#~ msgstr "se esperaba un registro de coma flotante o una expresión inmediata" - -#~ msgid "address expected" -#~ msgstr "se esperaba una dirección" - -#~ msgid "post-indexed expression expected" -#~ msgstr "se esperaba una expresión post-indizada" - -#~ msgid "constant value required for number of registers" -#~ msgstr "se requiere un valor constante para el número de registros" - -#~ msgid "subtract valid only on lo regs" -#~ msgstr "subtract válido sólo en registros lo" - -#~ msgid "invalid immediate value for stack adjust" -#~ msgstr "valor inmediato inválido para el ajuste de la pila" - -#~ msgid "invalid immediate for address calculation" -#~ msgstr "inmediato inválido para el cálculo de dirección" - -#~ msgid "invalid base register in load/store" -#~ msgstr "registro base inválido en carga/almacenamiento" - -#~ msgid "offset expected" -#~ msgstr "se esperaba un desplazamiento" - -#~ msgid "Rs and Rd must be different in MUL" -#~ msgstr "Rs y Rd deben ser diferentes en MUL" - -#~ msgid "inserted missing '!': load/store multiple always writes back base register" -#~ msgstr "se insertó un '!' faltante: los load/store múltiples siempre escribe hacia atrás el registro base" - -#~ msgid "only lo-regs valid in load/store multiple" -#~ msgstr "sólo los registros lo son válidos en carga/almacenamiento múltiple" - -#~ msgid "syntax: ldrs[b] Rd, [Rb, Ro]" -#~ msgstr "sintaxis: ldrs[b] Rd, [Rb, Ro]" - -#~ msgid "failed to create an alias for %s, reason: %s" -#~ msgstr "falló la creación de un alias para %s, razón: %s" - -#~ msgid "ignoring redefinition of register alias '%s' to non-existant register '%s'" -#~ msgstr "se ignora la redefinición del alias de registro '%s' al registro no existente '%s'" - -#~ msgid "ignoring incomplete .req pseuso op" -#~ msgstr "se ignora el pseudo operador incompleto .req" - -#~ msgid "GAS can't handle same-section branch dest >= 0x04000000" -#~ msgstr "GAS no puede manejar un destino de ramificación en la misma sección >= 0x04000000" - -#~ msgid "out of range branch" -#~ msgstr "ramificación fuera de rango" - -#~ msgid "branch with link out of range" -#~ msgstr "ramificación con enlace fuera de rango" - -#~ msgid "Illegal value for co-processor offset" -#~ msgstr "Valor ilegal para el desplazamiento del co-procesador" - -#~ msgid "invalid 3bit immediate" -#~ msgstr "inmediato de 3bit inválido" - -#~ msgid "no operator -- statement `%s'\n" -#~ msgstr "no hay operador -- declaración `%s'\n" - -#~ msgid "expected wr or wcgr" -#~ msgstr "se esperaba wr o wcgr" - -#~ msgid "inconsistent register types" -#~ msgstr "tipos de registro inconsistentes" - -#~ msgid "unrecognised register" -#~ msgstr "no se reconoce el registro" - -#~ msgid "arm convert_frag\n" -#~ msgstr "convert_frag de arm\n" - -#~ msgid "call to tc_crawl_symbol_chain \n" -#~ msgstr "llamada a tc_crawl_symbol_chain \n" - -#~ msgid "call to tc_headers_hook \n" -#~ msgstr "llamada a tc_headers_hook \n" - -#~ msgid ":24 not valid for this opcode" -#~ msgstr ":24 no es válido para este código de operación" - -#~ msgid "expect :8,:16 or :24" -#~ msgstr "se esperaba :8,:16 ó :24" - -#~ msgid "syntax error in reg list" -#~ msgstr "error sintáctico en la lista de registros" - -#~ msgid "missing final register in range" -#~ msgstr "falta el registro final en el rango" - -#~ msgid "expected @(exp, Rn)" -#~ msgstr "se esperaba @(exp, Rn)" - -#~ msgid "@Rn+ needs word register" -#~ msgstr "@Rn+ necesita un registro word" - -#~ msgid "@Rn needs word register" -#~ msgstr "@Rn necesita un registro word" - -#~ msgid "operand must be absolute in range %d..%d" -#~ msgstr "el operando debe ser absoluto en el rango %d..%d" - -#~ msgid "leafproc symbol '%s' undefined" -#~ msgstr "símolo de proceso hoja '%s' indefinido" - -#~ msgid "Warning: making leafproc entries %s and %s both global\n" -#~ msgstr "Aviso: haciendo globales las entradas de proceso hoja %s y %s\n" - -#~ msgid "Unknown PC relative instruction" -#~ msgstr "Instrucción relativa al PC desconocida" - -#~ msgid "Parameter syntax error" -#~ msgstr "Error sintáctico de parámetros" - -#~ msgid "Use of obsolete instruction" -#~ msgstr "Uso de una instrucción obsoleta" - -#~ msgid "Expression truncated to 9 bits" -#~ msgstr "Expresión truncada a 9 bits" - -#~ msgid "Removed lower 2 bits of expression" -#~ msgstr "Se borraron los 2 bits inferiores de la expresión" - -#~ msgid "m88k convert_frag\n" -#~ msgstr "m88k convert_frag\n" - -#~ msgid "constant too large" -#~ msgstr "constante demasiado grande" - -#~ msgid "The -a option doesn't exist. (Despite what the man page says!" -#~ msgstr "La opción -a no existe. (¡A pesar de lo que diga la página del manual!)" - -#~ msgid "" -#~ "Tahoe options:\n" -#~ "-a\t\t\tignored\n" -#~ "-d LENGTH\t\tignored\n" -#~ "-J\t\t\tignored\n" -#~ "-S\t\t\tignored\n" -#~ "-t FILE\t\t\tignored\n" -#~ "-T\t\t\tignored\n" -#~ "-V\t\t\tignored\n" -#~ msgstr "" -#~ "Opciones de Tahoe:\n" -#~ "-a\t\t\tse ignora\n" -#~ "-d LENGTH\t\tse ignora\n" -#~ "-J\t\t\tse ignora\n" -#~ "-S\t\t\tse ignora\n" -#~ "-t FILE\t\t\tse ignora\n" -#~ "-T\t\t\tse ignora\n" -#~ "-V\t\t\tse ignora\n" - -#~ msgid "Casting a branch displacement is bad form, and is ignored." -#~ msgstr "La conversión de una desubicación de ramificación es una forma errónea, y se ignora." - -#~ msgid "Couldn't find the opening '[' for the index of this operand." -#~ msgstr "No se puede encontrar el '[' que abre para el índice de este operando." - -#~ msgid "Couldn't find the opening '(' for the deref of this operand." -#~ msgstr "No se puede encontrar el '(' que abre para la dereferencia de este operando." - -#~ msgid "Operand can't be both pre-inc and post-dec." -#~ msgstr "El operando no puede ser pre-incremento y post-decremento al mismo tiempo." - -#~ msgid "Can't relocate expression error." -#~ msgstr "No se puede reubicar la expresión de error." - -#~ msgid "Junk at end of expression." -#~ msgstr "Basura al final de la expresión." - -#~ msgid "Syntax error in direct register mode." -#~ msgstr "Error sintáctico en el modo directo de registro." - -#~ msgid "SP can't be the source operand with direct register addressing." -#~ msgstr "SP no puede ser el operando fuente con direccionamiento directo de registro." - -#~ msgid "Direct Register can't be used in a branch." -#~ msgstr "Un Registro Directo no se puede utilizar en una ramificación." - -#~ msgid "For quad access, the register must be even and < 14." -#~ msgstr "Para acceso cuadrático, el registro debe ser par y < 14." - -#~ msgid "You can't cast a direct register." -#~ msgstr "No se puede convertir un registro directo." - -# `tromp' se utiliza aquí como verbo transitivo. cfuga -# Referencia: http://www.dictionary.com/search?q=tromp -#~ msgid "Using reg 14 for quadwords can tromp the FP register." -#~ msgstr "El uso del registro 14 para quadwords puede noquear el registro FP." - -#~ msgid "Syntax error in auto-dec mode." -#~ msgstr "Error sintáctico en el modo auto-dec." - -#~ msgid "You can't have an index auto dec mode." -#~ msgstr "No se puede tener un índice en modo auto dec" - -#~ msgid "Auto dec mode cant be used for reading." -#~ msgstr "El modo auto dec no se puede usar para lectura." - -#~ msgid "Auto dec only works of the SP register." -#~ msgstr "El modo auto dec solamente funciona en los registros SP." - -#~ msgid "Auto dec can't be used in a branch." -#~ msgstr "No se puede utilizar auto dec en una ramificación." - -#~ msgid "Auto dec won't work with quadwords." -#~ msgstr "Auto dec no funciona con quadwords." - -#~ msgid "Syntax error in one of the auto-inc modes." -#~ msgstr "Error sintáctico en uno de los modos auto-inc." - -#~ msgid "Auto inc deferred only works of the SP register." -#~ msgstr "El modo auto inc diferido solamente funciona en los registros SP." - -#~ msgid "You can't have an index auto inc deferred mode." -#~ msgstr "No se puede tener un índice en modo auto inc diferido" - -#~ msgid "Auto inc can't be used in a branch." -#~ msgstr "No se puede utilizar auto inc en una ramificación." - -#~ msgid "You can't write to an auto inc register." -#~ msgstr "No se puede escribir en un registro auto inc." - -#~ msgid "Auto inc only works of the SP register." -#~ msgstr "El modo auto inc funciona solamente en los registros SP." - -#~ msgid "Auto inc won't work with quadwords." -#~ msgstr "Auto inc no funciona con quadwords." - -#~ msgid "You can't have an index in auto inc mode." -#~ msgstr "No se puede tener un índice en el modo auto inc." - -#~ msgid "You can't index the sp register." -#~ msgstr "No se puede indizar el registro sp." - -#~ msgid "Syntax error in register displaced mode." -#~ msgstr "Error sintáctico en el registro en modo desubicado." - -#~ msgid "You can't index a register in immediate mode." -#~ msgstr "No se puede indizar un registro en modo inmediato." - -#~ msgid "Immediate access can't be used as an address." -#~ msgstr "No se puede utilizar el acceso inmediato como una dirección" - -#~ msgid "Compiler bug: ODD number of bytes in arg structure %s." -#~ msgstr "Bicho del compilador: número de bytes IMPAR en la estructura de argumentos %s." - -#~ msgid "Compliler bug: Got a case (%d) I wasn't expecting." -#~ msgstr "Bicho del compilador: Se obtuvo un case (%d) que no se esperaba." - -#~ msgid "Real branch displacements must be expressions." -#~ msgstr "Las desubicaciones de ramificaciones reales deben ser expresiones." - -#~ msgid "Complier error: I got an unknown synthetic branch :%c" -#~ msgstr "Error del compilador: Se obtuvo una ramificación sintética desconocida :%c" - -# En México se utilizaría `guácala' por `barf', como una expresión -# que simboliza vómito, pero no es comprensible para todos los -# hispanoparlantes. :-) cfuga -#~ msgid "Barf, bad mode %x\n" -#~ msgstr "Ugh, modo erróneo %x\n" - -#~ msgid "internal error:%s:%d: %s %ld\n" -#~ msgstr "error interno:%s:%d: %s %ld\n" - -#~ msgid "Relaxation is a luxury we can't afford" -#~ msgstr "La relajación es un lujo que no se puede conceder" - -#~ msgid "bad call to md_atof ()" -#~ msgstr "llamada errónea a md_atof ()" - -#~ msgid "':' not followed by 'm' or 's'" -#~ msgstr "':' no está seguido por 'm' o 's'" - -#~ msgid "paren nesting" -#~ msgstr "anidamiento de paréntesis" - -#~ msgid "unhandled expression type" -#~ msgstr "tipo de expresión sin manejar" - -#~ msgid "symbol reloc that is not PC relative or 32 bits" -#~ msgstr "reubicación de símbolo que no es relativo al PC o de 32 bits" - -#~ msgid "unhandled expression" -#~ msgstr "expresión sin manejar" - -#~ msgid "Invalid mnemonic: '%s'" -#~ msgstr "Mnemónico inválido: '%s'" - -#~ msgid "Invalid operands: '%s'" -#~ msgstr "Operandos inválidos: '%s'" - -#~ msgid "unhandled predefined symbol bits" -#~ msgstr "bits de símbolo predefinido sin manejar" - -#~ msgid "PC offset 0x%lx outside range 0x%lx-0x%lx" -#~ msgstr "desplazamiento del PC 0x%lx fuera del rango 0x%lx-0x%lx" - -#~ msgid "unhandled relocation type in fixup" -#~ msgstr "typo de reubicación sin manejar en la compostura" - -#~ msgid "md_convert_frag() not implemented yet" -#~ msgstr "md_convert_frag() aún no está implementado" - -#~ msgid "need on or off." -#~ msgstr "necesita on u off." - -#~ msgid "syntax error after <exp" -#~ msgstr "error sintáctico después de <exp" - -#~ msgid "emitting simplification relocation" -#~ msgstr "emitiendo simplificación de reubicación" - -#~ msgid "emitting unknown relocation" -#~ msgstr "emitiendo reubicación desconocida" - -#~ msgid "dwarf2 is not supported for this object file format" -#~ msgstr "dwarf2 no tiene soporte para este formato de fichero objeto" - -#~ msgid "Macro with this name was already defined" -#~ msgstr "Ya estaba definida una macro con ese nombre" - -#~ msgid "missplaced )" -#~ msgstr ") mal colocado" - -#~ msgid "macro formal argument does not exist" -#~ msgstr "el argumento formal de macro no existe" - -#~ msgid "FATAL: can't close %s" -#~ msgstr "FATAL: no se puede cerrar %s" - -#~ msgid "Failed to emit an object byte" -#~ msgstr "Falló al emitir un byte objeto" - -#~ msgid "can't continue" -#~ msgstr "no se puede continuar" - -#~ msgid "attempt to switch to nonexistent segment \"%s\"" -#~ msgstr "se intentó cambiar a un segmento \"%s\" que no existe" - -#~ msgid "Missing size expression" -#~ msgstr "Falta una expresión de tamaño" - -#~ msgid "lcomm length (%d.) <0! Ignored." -#~ msgstr "¡longitud de lcomm (%d.) <0! Ignorada." - -#~ msgid "Symbol %s already defined" -#~ msgstr "El símbolo %s ya está definido" - -#~ msgid "common alignment negative; 0 assumed" -#~ msgstr "alineación común negativa; se asume 0" - -#~ msgid "ignoring new section group for %s" -#~ msgstr "se ignora un grupo de sección nuevo para %s" - -#~ msgid "" -#~ "g++ wrote an extern reference to `%s' as a routine.\n" -#~ "I will fix it, but I hope that it was note really a routine." -#~ msgstr "" -#~ "g++ escribió una referencia externa a `%s' como una rutina.\n" -#~ "Se compondrá, pero se espera que no sea realmente una rutina." - -#~ msgid "File overrides no-base-register option." -#~ msgstr "El fichero se impone a la opción no-base-register." - -#~ msgid "use old ABI (ELF only)" -#~ msgstr "usa la ABI antigua (solamente ELF)" - -#~ msgid "expression possibly out of 8-bit range" -#~ msgstr "expresión posiblemente fuera del rango de 8-bit" - -#~ msgid "Invalid register list for ldm/stm)\n" -#~ msgstr "Lista de registros inválida para ldm/stm)\n" - -#~ msgid "unimplemented segment type %d in operand" -#~ msgstr "tipo de segmento %d sin implementar en el operando" - -#~ msgid "Additional NOP may be necessary to workaround Itanium processor A/B step errata" -#~ msgstr "Pueden ser necesario un NOP adicional para evitar el error de paso A/B del procesador Itanium" - -#~ msgid " -relax create linker relaxable code\n" -#~ msgstr " -relax crea código relajable para el enlazados\n" - -#~ msgid " -cpu-desc provide runtime cpu description file\n" -#~ msgstr " -cpu-desc provee el fichero de descripción del cpu en tiempo de ejecución\n" - -#~ msgid "Branch %s is always false (nop)" -#~ msgstr "La ramificación %s es siempre falsa (nop)" - -#~ msgid "Branch likely %s is always false" -#~ msgstr "La ramificación como %s es siempre falsa" - -#~ msgid "load/store address overflow (max 32 bits)" -#~ msgstr "desbordamiento de dirección load/store (máx 32 bits)" - -#~ msgid "-G may not be used with embedded PIC code" -#~ msgstr "-G no se puede utilizar con código PIC imbuído" - -#~ msgid "-G is not supported for this configuration" -#~ msgstr "-G no tiene soporte para esta configuración" - -#~ msgid "-G may not be used with SVR4 or embedded PIC code" -#~ msgstr "-G no se puede utilizar con código PIC de SVR4 o imbuído" - -#~ msgid "Invalid PC relative reloc" -#~ msgstr "Reubicación relativa al PC inválida" - -#~ msgid "%08lx UNDEFINED\n" -#~ msgstr "%08lx SIN DEFINIR\n" - -#~ msgid "No read only data section in this object file format" -#~ msgstr "No hay sección de datos de sólo lectura en este formato de fichero objeto" - -#~ msgid "Global pointers not supported; recompile -G 0" -#~ msgstr "Los punteros globales no tienen soporte; recompile -G 0" - -#~ msgid "AT used after \".set noat\" or macro used after \".set nomacro\"" -#~ msgstr "se utilizó AT después de \".set noat\" o se utilizó una macro después de \".set nomacro\"" - -#~ msgid "Double check fx_r_type in tc-mips.c:tc_gen_reloc" -#~ msgstr "Revise dos veces fx_r_type en tc-mips.c:tc_gen_reloc" - -#~ msgid "the linker will not handle this relocation correctly (1)" -#~ msgstr "el enlazador no manejará correctamente esta reubicación (1)" - -#~ msgid "-mcoff-version={0|1|2} Select COFF version\n" -#~ msgstr "-mcoff-version={0|1|2} Selecciona la versión de COFF\n" - -#~ msgid "unknown command line option: -%c%s\n" -#~ msgstr "opción de línea de órdenes desconocida: -%c%s\n" - -#~ msgid "'--literal-section-name' is deprecated; use '--rename-section .literal=NEWNAME'" -#~ msgstr "'--literal-section-name' es obsoleto; utilice '--rename-section .literal=NOMBRENUEVO'" - -#~ msgid "'--text-section-name' is deprecated; use '--rename-section .text=NEWNAME'" -#~ msgstr "'--text-section-name' es obsoleto; utilice '--rename-section .text=NOMBRENUEVO'" - -#~ msgid "'--data-section-name' is deprecated; use '--rename-section .data=NEWNAME'" -#~ msgstr "'--data-section-name' es obsoleto; utilice '--rename-section .data=NOMBRENUEVO'" - -#~ msgid "'--bss-section-name' is deprecated; use '--rename-section .bss=NEWNAME'" -#~ msgstr "'--bss-section-name' es obsoleto; utilice '--rename-section .bss=NOMBRENUEVO'" - -#~ msgid "operand %d not in immediate table for '%s'" -#~ msgstr "el operando %d no está en la tabla de inmediatos para '%s'" - -#~ msgid "instruction fragment may contain data" -#~ msgstr "el fragmento de instrucción puede contener datos" - -#~ msgid "invalid relocation operand %i on '%s'" -#~ msgstr "operando de reubicación %i inválido en '%s'" - -#~ msgid "instruction with constant operands does not fit without widening" -#~ msgstr "la instrucción con operandos constantes no cabe sin ensanchar" - -#~ msgid "opcode 'OR' unavailable in this configuration" -#~ msgstr "el código de operación 'OR' no está disponible en esta configuración" - -#~ msgid "invalid %d-byte NOP requested" -#~ msgstr "se requirió un NOP de %d-byte inválido" - -#~ msgid "get_expanded_loop_offset: undefined opcode" -#~ msgstr "get_expanded_loop_offset: código de operación indefinido" - -#~ msgid "undefined @ suffix '%s', expected '%s'" -#~ msgstr "sufijo @ '%s' indefinido, se esperaba '%s'" - -#~ msgid "non-PCREL relocation operand %d for '%s': %s" -#~ msgstr "operando de reubicación %d que no es PCREL para '%s': %s" - -#~ msgid "get_text_align_power: argument too large" -#~ msgstr "get_text_align_power: argumento demasiado grande" - -#~ msgid "invalid opcode for RELAX_ALIGN_NEXT_OPCODE" -#~ msgstr "código de operación inválido para RELAX_ALIGN_NEXT_OPCODE" - -#~ msgid "cannot continue" -#~ msgstr "no se puede continuar" - -#~ msgid "expected loop opcode in relax align next target" -#~ msgstr "se esperaba un código de operación de ciclo en el objetivo de relajación de alineación del siguiente" - -#~ msgid "expected align_code or RELAX_ALIGN_NEXT_OPCODE" -#~ msgstr "se esperaba align_code o RELAX_ALIGN_NEXT_OPCODE" - -#~ msgid "loop relaxation specification does not correspond" -#~ msgstr "la especificación de relajación del ciclo no corresponde" - -#~ msgid "inlining literal pool; specify location with .literal_position." -#~ msgstr "conjunto de literales inlining; especificar la ubicación con .literal_position." - -#~ msgid ".endr encountered without preceeding .rept, .irc, or .irp" -#~ msgstr "se encontró una directiva .endr sin una directiva .rept, .irc, ó .irp precedente" - -#~ msgid "subsegment index too high" -#~ msgstr "índice de subsegmento demasiado alto" - -#~ msgid ".COMMon length (%d.) <0! Ignored." -#~ msgstr "¡longitud de .COMM (%d.) <0! Ignorada." - -#~ msgid "expect :8 or :16 here" -#~ msgstr "se esperaba :8 ó :16 aquí" - -#~ msgid "md_number_to_disp\n" -#~ msgstr "md_number_to_disp\n" - -#~ msgid "i860_number_to_field\n" -#~ msgstr "i860_number_to_field\n" - -#~ msgid "md_number_to_disp not defined" -#~ msgstr "md_number_to_disp no está definido" - -#~ msgid "md_number_to_field not defined" -#~ msgstr "md_number_to_field no está definido" - -#~ msgid "MIPS internal Error" -#~ msgstr "Error interno de MIPS" - -#~ msgid "rotate count too large" -#~ msgstr "la cuenta de rotación es demasiado grande" - -#~ msgid "invalid architecture -mtune=%s" -#~ msgstr "arquitectura -mtune=%s inválida" - -#~ msgid "invalid architecture -mcpu=%s" -#~ msgstr "arquitectura -mcpu=%s inválida" - -#~ msgid "A different -mtune= was already specified, is now -mtune=%s" -#~ msgstr "Ya se había especificado un -mtune= diferente, ahora es -mtune=%s" - -#~ msgid "A different -march= was already specified, is now -march=%s" -#~ msgstr "Ya se había especificado un -march= diferente, ahora es -march=%s" - -#~ msgid "A different -march= or -mtune= was already specified, is now -m4650" -#~ msgstr "Ya se había especificado un -march ó un -mtune diferentes, ahora es -m4650" - -#~ msgid "A different -march= or -mtune= was already specified, is now -m4010" -#~ msgstr "Ya se había especificado un -march ó un -mtune diferentes, ahora es -m4010" - -#~ msgid "A different -march= or -mtune= was already specified, is now -m4100" -#~ msgstr "Ya se había especificado un -march ó un -mtune diferentes, ahora es -m4100" - -#~ msgid "A different -march= or -mtune= was already specified, is now -m3900" -#~ msgstr "Ya se había especificado un -march ó un -mtune diferentes, ahora es -m3900" - -#~ msgid "The -mcpu option can't be used together with -march. Use -mtune instead of -mcpu." -#~ msgstr "La opción -mcpu no se puede usar junto con -march. Utilice -mtune en lugar de -mcpu." - -#~ msgid "The -mcpu option can't be used together with -mtune. Use -march instead of -mcpu." -#~ msgstr "La opción -mcpu no se puede usar junto con -mtune. Utilice -march en lugar de -mcpu." - -#~ msgid "The -mcpu option is deprecated. Please use -march and -mtune instead." -#~ msgstr "La opción -mcpu está deprecada. Por favor utilice -march y -mtune en su lugar." - -#~ msgid "The -march option is incompatible to -mipsN and therefore ignored." -#~ msgstr "La opción -march es incompatible con -mipsN y por lo tanto se ignora." - -#~ msgid "Word displacement out of range. line number not valid" -#~ msgstr "Desubicación de word fuera de rango. el número de línea no es válido" - -#~ msgid "unresolved fx_subsy symbol that must be resolved" -#~ msgstr "símbolo fx_subsy sin resolver que debe ser resuelto" - -#~ msgid "call to tc_Nout_fix_to_chars \n" -#~ msgstr "llamada a tc_Nout_fix_to_chars \n" - -#~ msgid "" -#~ "Z8K options:\n" -#~ "-z8001\t\t\tgenerate segmented code\n" -#~ "-z8002\t\t\tgenerate unsegmented code\n" -#~ msgstr "" -#~ "Opciones de Z8K:\n" -#~ "-z8001\t\t\tgenera código segmentado\n" -#~ "-z8002\t\t\tgenera código sin segmentar\n" - -#~ msgid "redefinition not allowed\n" -#~ msgstr "no se permite la redefinición\n" - -#~ msgid "the %c operator cannot take non-absolute arguments.\n" -#~ msgstr "el operador %c no puede tomar argumentos que no son absolutos.\n" - -#~ msgid "string where expression expected.\n" -#~ msgstr "cadena donde se esperaba una expresión.\n" - -#~ msgid "can't find primary in expression.\n" -#~ msgstr "no se puede encontrar el primario en la expresión.\n" - -#~ msgid "attempt to divide by zero.\n" -#~ msgstr "se intentó dividir por cero.\n" - -#~ msgid "can't add two relocatable expressions\n" -#~ msgstr "no se pueden agregar dos expresiones reubicables\n" - -#~ msgid "unreasonable nesting.\n" -#~ msgstr "anidamiento no razonable.\n" - -#~ msgid "End of file not at start of line.\n" -#~ msgstr "El final del fichero no está el inicio de la línea.\n" - -#~ msgid "radix is %c must be one of b, q, d or h" -#~ msgstr "el radical es %c debe ser uno de b, q, d ó h" - -#~ msgid "size must be one of b, w or l, is %c.\n" -#~ msgstr "el tamaño debe ser uno de b, w ó l, es %c.\n" - -# ¿datab = datos binarios? Verificar contra el código. cfuga -#~ msgid "datab repeat must be constant.\n" -#~ msgstr "la repetición de datos-b debe ser constante.\n" - -#~ msgid "datab data must be absolute.\n" -#~ msgstr "los datos-b deben ser absolutos.\n" - -#~ msgid "align needs absolute expression.\n" -#~ msgstr "la alineación necesita una expresión absoluta.\n" - -#~ msgid ".align needs absolute fill value.\n" -#~ msgstr ".align necesita un valor de relleno absoluto.\n" - -#~ msgid "res needs absolute expression for fill count.\n" -#~ msgstr "res necesita una expresión absoluta para la cuenta de relleno.\n" - -#~ msgid "form LIN= needs absolute expresssion.\n" -#~ msgstr "la forma LIN= necesita una expresión absoluta.\n" - -#~ msgid "COL=" -#~ msgstr "COL=" - -#~ msgid "form COL= needs absolute expresssion.\n" -#~ msgstr "la forma COL= necesita una expresión absoluta.\n" - -#~ msgid "misplaced ( .\n" -#~ msgstr "( mal colocado.\n" - -#~ msgid "misplaced ).\n" -#~ msgstr ") mal colocado.\n" - -#~ msgid ".instr needs absolute expresson.\n" -#~ msgstr ".instr necesita una expresión absoluta.\n" - -#~ msgid "need absolute position.\n" -#~ msgstr "se necesita una posición absoluta.\n" - -#~ msgid "need absolute length.\n" -#~ msgstr "se necesita una longitud absoluta.\n" - -#~ msgid "END missing from end of file.\n" -#~ msgstr "falta END en el final del fichero.\n" - -#~ msgid ".ASSIGNA without label.\n" -#~ msgstr ".ASSIGNA sin etiqueta.\n" - -#~ msgid ".ASSIGNS without label.\n" -#~ msgstr ".ASSIGNS sin etiqueta.\n" - -#~ msgid "Can't find preprocessor variable %s.\n" -#~ msgstr "No se puede encontrar la variable del preprocesador %s.\n" - -#~ msgid "Comparison operator must be one of EQ, NE, LT, LE, GT or GE.\n" -#~ msgstr "El operador de comparación debe ser uno de EQ, NE, LT, LE, GT ó GE.\n" - -#~ msgid "Comparison operator for strings must be EQ or NE\n" -#~ msgstr "El operador de comparación para las cadenas debe ser EQ ó NE\n" - -#~ msgid "Conditional operator must have absolute operands.\n" -#~ msgstr "El operador condicional debe tener operandos absolutos.\n" - -#~ msgid "String compared against expression.\n" -#~ msgstr "Cadena comparada contra una expresión.\n" - -#~ msgid "AIF nesting unreasonable.\n" -#~ msgstr "anidamiento de AIF no razonable.\n" - -#~ msgid "Multiple AELSEs in AIF.\n" -#~ msgstr "AELSEs múltiples en AIF.\n" - -#~ msgid "AENDI without AIF.\n" -#~ msgstr "AENDI sin AIF.\n" - -#~ msgid "IF nesting unreasonable.\n" -#~ msgstr "anidamiento de IF no razonable.\n" - -#~ msgid "Bad format for IF or IFNC.\n" -#~ msgstr "Formato erróneo para IF ó IFNC.\n" - -#~ msgid "AENDR without a AREPEAT.\n" -#~ msgstr "AENDR sin un AREPEAT.\n" - -#~ msgid "ENDR without a REPT.\n" -#~ msgstr "ENDR sin un REPT.\n" - -#~ msgid "AWHILE without a AENDW at %d.\n" -#~ msgstr "AWHILE sin un AENDW en %d.\n" - -#~ msgid "AENDW without a AENDW.\n" -#~ msgstr "AWHILE sin un AENDW.\n" - -#~ msgid "AREPEAT without a AENDR at %d.\n" -#~ msgstr "AREPEAT sin un AENDR en %d.\n" - -#~ msgid ".ENDM without a matching .MACRO.\n" -#~ msgstr ".ENDM sin un .MACRO coincidente.\n" - -#~ msgid "LOCAL outside of MACRO" -#~ msgstr "LOCAL fuera de MACRO" - -#~ msgid "macro at line %d: %s\n" -#~ msgstr "macro en la línea %d: %s\n" - -#~ msgid "Character code in string must be absolute expression.\n" -#~ msgstr "El código de carácter en la cadena debe ser una expresión absoluta.\n" - -#~ msgid "Missing > for character code.\n" -#~ msgstr "Falta un > para el código de carácter.\n" - -#~ msgid "string for SDATAC longer than 255 characters (%d).\n" -#~ msgstr "la cadena para SDATAC es más larga que 255 caracteres (%d).\n" - -#~ msgid "illegal character in SDATA line (0x%x).\n" -#~ msgstr "carácter ilegal en la línea SDATA (0x%x).\n" - -#~ msgid "Must have absolute SDATAB repeat count.\n" -#~ msgstr "Se debe tener una cuenta de repetición SDATAB absoluta.\n" - -#~ msgid "Must have positive SDATAB repeat count (%d).\n" -#~ msgstr "Se debe tener una cuenta de repetición SDATAB positiva (%d).\n" - -#~ msgid "Unreasonable include depth (%ld).\n" -#~ msgstr "Profundidad de inclusión no razonable (%ld).\n" - -#~ msgid "Unreasonable expansion (-u turns off check).\n" -#~ msgstr "Expansión no razonable (-u apaga esta revisión).\n" - -#~ msgid "Unrecognised pseudo op `%s'.\n" -#~ msgstr "No se reconoce la pseudo operación `%s'.\n" - -#~ msgid "Invalid expression on command line.\n" -#~ msgstr "Expresión inválida en la línea de órdenes.\n" - -#~ msgid "" -#~ "Usage: %s \n" -#~ " [-a] [--alternate] enter alternate macro mode\n" -#~ " [-c char] [--commentchar char] change the comment character from !\n" -#~ " [-d] [--debug] print some debugging info\n" -#~ " [-h] [--help] print this message\n" -#~ " [-M] [--mri] enter MRI compatibility mode\n" -#~ " [-o out] [--output out] set the output file\n" -#~ " [-p] [--print] print line numbers\n" -#~ msgstr "" -#~ "Modo de empleo: %s \n" -#~ " [-a] [--alternate] introduce el modo de macro alternativo\n" -#~ " [-c car] [--commentchar car] cambia el carácter de comentario de !\n" -#~ " [-d] [--debug] muestra alguna información de depuración\n" -#~ " [-h] [--help] muestra este mensaje\n" -#~ " [-M] [--mri] introduce el modo de compatibilidad MRI\n" -#~ " [-o sal] [--output salida] establece el fichero de salida\n" -#~ " [-p] [--print] muestra los números de línea\n" - -#~ msgid "" -#~ " [-s] [--copysource] copy source through as comments \n" -#~ " [-u] [--unreasonable] allow unreasonable nesting\n" -#~ " [-v] [--version] print the program version\n" -#~ " [-Dname=value] create preprocessor variable called name, with value\n" -#~ " [-Ipath] add to include path list\n" -#~ " [in-file]\n" -#~ msgstr "" -#~ " [-s] [--copysource] copia el código procesado como comentarios\n" -#~ " [-u] [--unreasonable] permite el anidamiento no razonable\n" -#~ " [-v] [--version] muestra la versión del programa\n" -#~ " [-Dnombre=valor] crea la variable de preprocesador llamada nombre, con valor\n" -#~ " [-Iruta] agrega a la lista de ruta de inclusión\n" -#~ " [fichero-entrada]\n" - -#~ msgid "%s: Gnu Assembler Macro Preprocessor\n" -#~ msgstr "%s: Preprocesador de Macro Ensamblador de Gnu\n" - -#~ msgid "GNU assembler pre-processor %s\n" -#~ msgstr "Pre-procesador de ensamblador de GNU %s\n" - -#~ msgid "Copyright 1996 Free Software Foundation, Inc.\n" -#~ msgstr "Copyright 1996 Free Software Foundation, Inc.\n" - -#~ msgid "%s: Can't open output file `%s'.\n" -#~ msgstr "%s: No se puede abrir el fichero de salida `%s'.\n" - -#~ msgid "%s: Can't open input file `%s'.\n" -#~ msgstr "%s: No se puede abrir el fichero de entrada `%s'.\n" - -#~ msgid "Internal error, aborting at %s line %d" -#~ msgstr "Error interno, abortando en %s línea %d" - -#~ msgid "" -#~ "\n" -#~ "Please report this bug.\n" -#~ msgstr "" -#~ "\n" -#~ "Por favor reporte este bicho.\n" - -#~ msgid "%s:%u: bad return from bfd_install_relocation" -#~ msgstr "%s:%u: devolución errónea de bfd_install_relocation" - -#~ msgid "negative of non-absolute symbol `%s'" -#~ msgstr "negativo de un símbolo `%s' que no es absoluto" - -#~ msgid "subtraction of two symbols in different sections `%s' {%s section} - `%s' {%s section} at file address %s" -#~ msgstr "sustracción de dos símbolos en secciones diferentes `%s' {sección %s} - `%s' {sección %s} en la dirección del fichero %s" - -#~ msgid "64bit operations available only in 64bit modes." -#~ msgstr "las operaciones de 64bit solamente están disponibles en modos de 64bit." - -#~ msgid "unrecognised APCS switch -m%s" -#~ msgstr "no se reconoce el interruptor APCS -m%s" - -#~ msgid "" -#~ " ARM Specific Assembler Options:\n" -#~ " -m[arm][<processor name>] select processor variant\n" -#~ " -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] select architecture variant\n" -#~ " -marm9e allow Cirrus/DSP instructions\n" -#~ " -mthumb only allow Thumb instructions\n" -#~ " -mthumb-interwork mark the assembled code as supporting interworking\n" -#~ " -mall allow any instruction\n" -#~ " -mfpa10, -mfpa11 select floating point architecture\n" -#~ " -mfpe-old don't allow floating-point multiple instructions\n" -#~ " -mvfpxd allow vfp single-precision instructions\n" -#~ " -mvfp allow all vfp instructions\n" -#~ " -mno-fpu don't allow any floating-point instructions.\n" -#~ " -k generate PIC code.\n" -#~ msgstr "" -#~ " Opciones Específicas del Ensamblador de ARM:\n" -#~ " -m[arm][<nombre procesador>] selecciona la variante de procesador\n" -#~ " -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] selecciona la variante de arquitectura\n" -#~ " -marm9e permite instrucciones Cirrus/DSP\n" -#~ " -mthumb sólo permite instrucciones Thumb\n" -#~ " -mthumb-interwork marca el código ensamblado con soporte para interoperación\n" -#~ " -mall permite cualquier instrucción\n" -#~ " -mfpa10, -mfpa11 selecciona la arquitectura de coma flotante\n" -#~ " -mfpe-old no permite instrucciones múltiples de coma flotante\n" -#~ " -mvfpxd permite instrucciones vfp de precisión sencilla\n" -#~ " -mvfp permite todas las instrucciones vfp\n" -#~ " -mno-fpu no permite ninguna instrucción de coma flotante.\n" -#~ " -k genera código PIC.\n" - -#~ msgid "" -#~ " -mapcs-32, -mapcs-26 specify which ARM Procedure Calling Standard to use\n" -#~ " -matpcs use ARM/Thumb Procedure Calling Standard\n" -#~ " -mapcs-float floating point args are passed in FP regs\n" -#~ " -mapcs-reentrant the code is position independent/reentrant\n" -#~ msgstr "" -#~ " -mapcs-32, -mapcs-26 especifica el Estándar de Llamada de Procedimiento de ARM a utilizar\n" -#~ " -matpcs utiliza el Estándar de Llamada de Procedimiento ARM/Thumb\n" -#~ " -mapcs-float los argumentos de coma flotante se pasan en registros FP\n" -#~ " -mapcs-reentrant el código es independiente de posición/reentrante\n" - -#~ msgid "EOF in Comment: Newline inserted" -#~ msgstr "Fin de Fichero en Comentario: se insertó una Línea nueva" - -#~ msgid ".else without matching .if - ignored" -#~ msgstr ".else sin un .if coincidente - ignorado" - -#~ msgid "Unrecognized section type" -#~ msgstr "No se reconoce el tipo de sección" - -#~ msgid "bad instruction format for lda !%s!%ld" -#~ msgstr "formato de instrucción erróneo para lda !%s%ld" - -#~ msgid "bad instruction '%.100s'" -#~ msgstr "instrucción errónea '%.100s'" - -#~ msgid "Constant expression expected" -#~ msgstr "Se esperaba una expresión constante" - -#~ msgid "Processor does not support halfwords or signed bytes" -#~ msgstr "El procesador no tiene soporte para halfwords o bytes con signo" - -#~ msgid "Invalid offset" -#~ msgstr "Desplazamiento inválido" - -#~ msgid "Opcode `%s' must have suffix from list: <%s>" -#~ msgstr "El código de operación `%s' debe tener un sufijo de la lista: <%s>" - -#~ msgid "Warning: Use of the 'nv' conditional is deprecated\n" -#~ msgstr "Aviso: El uso del condicional 'nv' está deprecado\n" - -#~ msgid "Opcode `%s' is unconditional\n" -#~ msgstr "El código de operación `%s' es incondicional\n" - -#~ msgid "Opcode `%s' must have suffix from <%s>\n" -#~ msgstr "El código de operación `%s' debe tener un sufijo de <%s>\n" - -#~ msgid "Invalid Compare/Subtract Condition: %c" -#~ msgstr "Condición de Comparación/Sustracción Inválida: %c" - -#~ msgid "Extended register `%%%s' available only in 64bit mode." -#~ msgstr "El registro extendido `%%%s' sólo está disponible en modo 64bit." - -#~ msgid "bad reloc specifier in expression" -#~ msgstr "especificador de reubicación erróneo en la expresión" - -#~ msgid "Bad COFF debugging info" -#~ msgstr "Información de depuración COFF errónea" - -#~ msgid "Missing '%c' assumed" -#~ msgstr "Se asume que falta '%c'" - -#~ msgid "Partial line at end of file ignored" -#~ msgstr "Se ignora la línea parcial al final de la línea" - -#~ msgid "Alignment not a power of 2" -#~ msgstr "La alineación no es una potencia de 2" - -#~ msgid "Missing alignment" -#~ msgstr "Falta la alineación" - -#~ msgid "invalid segment \"%s\"; segment \"%s\" assumed" -#~ msgstr "segmento \"%s\" inválido; se asume el segmento \"%s\"" - -#~ msgid "illegal expression; zero assumed" -#~ msgstr "expresión ilegal; se asume cero" - -#~ msgid "missing expression; zero assumed" -#~ msgstr "falta una expresión; se asume cero" - -#~ msgid "Unresolvable or nonpositive repeat count; using 1" -#~ msgstr "Cuenta de repetición sin resolver o no positiva; se utiliza 1" - -#~ msgid ".stabs: Missing comma" -#~ msgstr ".stabs: Falta una coma" - -#~ msgid "Symbol %s already defined." -#~ msgstr "El símbolo %s ya está definido." diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d new file mode 100644 index 0000000..61a6b21 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d @@ -0,0 +1,3 @@ +#source: pops-sysregs-bad.s +#as: -I$srcdir/$subdir +#error_output: pops-sysregs-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.l b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.l new file mode 100644 index 0000000..510bf3a --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.l @@ -0,0 +1,8 @@ +.*: Assembler messages: +.*: Error: selected processor does not support system register name 'cigdvaps' +.*: Error: selected processor does not support system register name 'civaps' +.*: Error: selected processor does not support system register name 'cigdvaps' +.*: Error: selected processor does not support system register name 'civaps' +.*: Error: selected processor does not support system register name 'cigdvaps' +.*: Error: comma expected between operands at operand 2 -- `dc civaps' +.*: Error: comma expected between operands at operand 2 -- `dc cigdvaps' diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.s b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.s new file mode 100644 index 0000000..2783272 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.s @@ -0,0 +1,20 @@ + .arch armv8-a+memtag + dc cigdvaps, x19 + + .arch armv8-a+memtag + dc civaps, x20 + + .arch armv8-a+pops + dc cigdvaps, x21 + + .arch armv8-a + dc civaps, x22 + + .arch armv8-a + dc cigdvaps, x23 + + .arch armv8-a+pops + dc civaps + + .arch armv8-a+memtag+pops + dc cigdvaps diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d new file mode 100644 index 0000000..db04ab8 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d @@ -0,0 +1,12 @@ +#source: pops-sysregs.s +#as: -I$srcdir/$subdir +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: d5087fb3 dc cigdvaps, x19 +.*: d5087f34 dc civaps, x20 diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.s b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.s new file mode 100644 index 0000000..7da4dc9 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.s @@ -0,0 +1,7 @@ + .arch armv8-a+memtag+pops + + dc cigdvaps, x19 + + .arch armv8-a+pops + + dc civaps, x20 diff --git a/gas/testsuite/gas/arm/attr-empty-string.d b/gas/testsuite/gas/arm/attr-empty-string.d new file mode 100644 index 0000000..b4a9141 --- /dev/null +++ b/gas/testsuite/gas/arm/attr-empty-string.d @@ -0,0 +1,10 @@ +# name: EABI attribute - empy string +# source: attr-empty-string.s +# as: +# readelf: -T -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* *-*-nacl* + +Attribute Section: aeabi +File Attributes + Tag_CPU_raw_name: "" diff --git a/gas/testsuite/gas/arm/attr-empty-string.s b/gas/testsuite/gas/arm/attr-empty-string.s new file mode 100644 index 0000000..f8ed373 --- /dev/null +++ b/gas/testsuite/gas/arm/attr-empty-string.s @@ -0,0 +1,14 @@ + .section .XXX.attributes, "", %0x70000003 + # Format version + .byte 'A' + # Size + .4byte (.Lend_attrs - .) + # "Vendor" + .asciz "aeabi" + # File scope + .byte 1 + # Size + .4byte (.Lend_attrs - . + 1) + .uleb128 4 + .asciz "" +.Lend_attrs: diff --git a/gas/testsuite/gas/arm/attr-non-null-terminated-string.d b/gas/testsuite/gas/arm/attr-non-null-terminated-string.d new file mode 100644 index 0000000..ac376a9 --- /dev/null +++ b/gas/testsuite/gas/arm/attr-non-null-terminated-string.d @@ -0,0 +1,9 @@ +# name: EABI attribute - non-null terminated string +# source: attr-non-null-terminated-string.s +# This test is only valid on EABI based ports. +# target: *-*-*eabi* *-*-nacl* +# as: +# readelf: --silent-truncation -A +Attribute Section: aeabi +File Attributes + Tag_CPU_raw_name: "ab<corrupt string tag>" diff --git a/gas/testsuite/gas/arm/attr-non-null-terminated-string.s b/gas/testsuite/gas/arm/attr-non-null-terminated-string.s new file mode 100644 index 0000000..f886f39 --- /dev/null +++ b/gas/testsuite/gas/arm/attr-non-null-terminated-string.s @@ -0,0 +1,14 @@ + .section .XXX.attributes, "", %0x70000003 + # Format version + .byte 'A' + # Size + .4byte (.Lend_attrs - .) + # "Vendor" + .asciz "aeabi" + # File scope + .byte 1 + # Size + .4byte (.Lend_attrs - . + 1) + .uleb128 4 + .byte 'a', 'b', 'c' +.Lend_attrs: diff --git a/gas/testsuite/gas/riscv/attribute-19.d b/gas/testsuite/gas/riscv/attribute-19.d index 1cd15d5..d73e3f0 100644 --- a/gas/testsuite/gas/riscv/attribute-19.d +++ b/gas/testsuite/gas/riscv/attribute-19.d @@ -3,4 +3,4 @@ #source: empty.s Attribute Section: riscv File Attributes - Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0" + Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_supm1p0" diff --git a/gas/testsuite/gas/riscv/attribute-20.d b/gas/testsuite/gas/riscv/attribute-20.d index e8fb767..22bcc13 100644 --- a/gas/testsuite/gas/riscv/attribute-20.d +++ b/gas/testsuite/gas/riscv/attribute-20.d @@ -3,4 +3,4 @@ #source: empty.s Attribute Section: riscv File Attributes - Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" + Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_supm1p0" diff --git a/gas/testsuite/gas/riscv/attribute-rva23s.d b/gas/testsuite/gas/riscv/attribute-rva23s.d new file mode 100644 index 0000000..54e79aa --- /dev/null +++ b/gas/testsuite/gas/riscv/attribute-rva23s.d @@ -0,0 +1,6 @@ +#as: -march=rva23s64 -misa-spec=20191213 +#readelf: -A +#source: empty.s +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_h1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_sha1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstateen1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" diff --git a/gas/testsuite/gas/riscv/attribute-rvb23s.d b/gas/testsuite/gas/riscv/attribute-rvb23s.d new file mode 100644 index 0000000..5cee65a --- /dev/null +++ b/gas/testsuite/gas/riscv/attribute-rvb23s.d @@ -0,0 +1,6 @@ +#as: -march=rvb23s64 -misa-spec=20191213 +#readelf: -A +#source: empty.s +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl32b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 998203c..fc0c565 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -891,6 +891,7 @@ ALL_TARGET_OBS = \ solib-dsbt.o \ solib-frv.o \ solib-svr4.o \ + solib-svr4-linux.o \ sparc-linux-tdep.o \ sparc-netbsd-tdep.o \ sparc-obsd-tdep.o \ @@ -1478,7 +1479,9 @@ HFILES_NO_SRCDIR = \ solib.h \ solib-aix.h \ solib-darwin.h \ + solib-frv.h \ solib-svr4.h \ + solib-svr4-linux.h \ solib-target.h \ source.h \ source-cache.h \ @@ -59,6 +59,12 @@ maintenance check symtabs maintenance canonicalize Show the canonical form of a C++ name. +maintenance set console-translation-mode <binary|text> +maintenance show console-translation-mode + Controls the translation mode of GDB stdout/stderr. MS-Windows only. In + binary mode, no translation is done. In text mode, a Line Feed is + translated into a Carriage Return-Line Feed combination. + set riscv numeric-register-names on|off show riscv numeric-register-names Controls whether GDB refers to risc-v registers by their numeric names diff --git a/gdb/aarch64-fbsd-nat.c b/gdb/aarch64-fbsd-nat.c index 1746ad1..ecf0bb2 100644 --- a/gdb/aarch64-fbsd-nat.c +++ b/gdb/aarch64-fbsd-nat.c @@ -348,9 +348,7 @@ aarch64_notify_debug_reg_change (ptid_t ptid, } #endif -void _initialize_aarch64_fbsd_nat (); -void -_initialize_aarch64_fbsd_nat () +INIT_GDB_FILE (aarch64_fbsd_nat) { #ifdef HAVE_DBREG aarch64_initialize_hw_point (); diff --git a/gdb/aarch64-fbsd-tdep.c b/gdb/aarch64-fbsd-tdep.c index 07fa38a..db9b82f 100644 --- a/gdb/aarch64-fbsd-tdep.c +++ b/gdb/aarch64-fbsd-tdep.c @@ -239,8 +239,7 @@ aarch64_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Generic FreeBSD support. */ fbsd_init_abi (info, gdbarch); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); tramp_frame_prepend_unwinder (gdbarch, &aarch64_fbsd_sigframe); @@ -261,9 +260,7 @@ aarch64_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) } } -void _initialize_aarch64_fbsd_tdep (); -void -_initialize_aarch64_fbsd_tdep () +INIT_GDB_FILE (aarch64_fbsd_tdep) { gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_FREEBSD, aarch64_fbsd_init_abi); diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c index d7869f4..725c632 100644 --- a/gdb/aarch64-linux-nat.c +++ b/gdb/aarch64-linux-nat.c @@ -1068,9 +1068,7 @@ aarch64_linux_nat_target::is_address_tagged (gdbarch *gdbarch, CORE_ADDR address return gdbarch_tagged_address_p (gdbarch, address); } -void _initialize_aarch64_linux_nat (); -void -_initialize_aarch64_linux_nat () +INIT_GDB_FILE (aarch64_linux_nat) { aarch64_initialize_hw_point (); diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index a194ac8..dd35eaf 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -23,6 +23,7 @@ #include "extract-store-integer.h" #include "gdbarch.h" #include "glibc-tdep.h" +#include "solib-svr4-linux.h" #include "linux-tdep.h" #include "svr4-tls-tdep.h" #include "aarch64-tdep.h" @@ -2768,9 +2769,7 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->lowest_pc = 0x8000; linux_init_abi (info, gdbarch, 1); - - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, @@ -3041,9 +3040,7 @@ aarch64_linux_ltag_tests (void) } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_aarch64_linux_tdep (); -void -_initialize_aarch64_linux_tdep () +INIT_GDB_FILE (aarch64_linux_tdep) { gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_LINUX, aarch64_linux_init_abi); diff --git a/gdb/aarch64-newlib-tdep.c b/gdb/aarch64-newlib-tdep.c index c0ecd3f..5045d5f9 100644 --- a/gdb/aarch64-newlib-tdep.c +++ b/gdb/aarch64-newlib-tdep.c @@ -35,9 +35,7 @@ aarch64_newlib_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->jb_pc = 11; } -void _initialize_aarch64_newlib_tdep (); -void -_initialize_aarch64_newlib_tdep () +INIT_GDB_FILE (aarch64_newlib_tdep) { gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_NEWLIB, aarch64_newlib_init_abi); diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 8d54e59..f2e3ce2 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -4914,9 +4914,7 @@ static void aarch64_process_record_test (void); } #endif -void _initialize_aarch64_tdep (); -void -_initialize_aarch64_tdep () +INIT_GDB_FILE (aarch64_tdep) { gdbarch_register (bfd_arch_aarch64, aarch64_gdbarch_init, aarch64_dump_tdep); diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 3f5e707..329d114 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -13928,9 +13928,7 @@ static const char * const gnat_source_charsets[] = nullptr }; -void _initialize_ada_language (); -void -_initialize_ada_language () +INIT_GDB_FILE (ada_language) { add_setshow_prefix_cmd ("ada", no_class, diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c index 2595123..f9551d4 100644 --- a/gdb/ada-tasks.c +++ b/gdb/ada-tasks.c @@ -1650,9 +1650,7 @@ task_apply_command (const char *tidlist, int from_tty) from_tty, flags); } -void _initialize_tasks (); -void -_initialize_tasks () +INIT_GDB_FILE (tasks) { /* Attach various observers. */ gdb::observers::normal_stop.attach (ada_tasks_normal_stop_observer, diff --git a/gdb/addrmap.c b/gdb/addrmap.c index ea8bf0e..4549350 100644 --- a/gdb/addrmap.c +++ b/gdb/addrmap.c @@ -479,9 +479,7 @@ test_addrmap () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_addrmap (); -void -_initialize_addrmap () +INIT_GDB_FILE (addrmap) { #if GDB_SELF_TEST selftests::register_test ("addrmap", selftests::test_addrmap); diff --git a/gdb/agent.c b/gdb/agent.c index 2009980..dd3a557 100644 --- a/gdb/agent.c +++ b/gdb/agent.c @@ -73,9 +73,7 @@ agent_new_objfile (struct objfile *objfile) agent_look_up_symbols (objfile); } -void _initialize_agent (); -void -_initialize_agent () +INIT_GDB_FILE (agent) { gdb::observers::new_objfile.attach (agent_new_objfile, "agent"); diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index 2fd6121..1e3015d 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -2062,9 +2062,7 @@ aix_thread_target::get_ada_task_ptid (long lwp, ULONGEST thread) /* Module startup initialization function, automagically called by init.c. */ -void _initialize_aix_thread (); -void -_initialize_aix_thread () +INIT_GDB_FILE (aix_thread) { /* Notice when object files get loaded and unloaded. */ gdb::observers::new_objfile.attach (new_objfile, "aix-thread"); diff --git a/gdb/alpha-bsd-nat.c b/gdb/alpha-bsd-nat.c index 85fb525..5f7d3ef 100644 --- a/gdb/alpha-bsd-nat.c +++ b/gdb/alpha-bsd-nat.c @@ -156,9 +156,7 @@ alphabsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) } -void _initialize_alphabsd_nat (); -void -_initialize_alphabsd_nat () +INIT_GDB_FILE (alphabsd_nat) { add_inf_child_target (&the_alpha_bsd_nat_target); diff --git a/gdb/alpha-linux-nat.c b/gdb/alpha-linux-nat.c index 6d9de81..1297a45 100644 --- a/gdb/alpha-linux-nat.c +++ b/gdb/alpha-linux-nat.c @@ -100,9 +100,7 @@ alpha_linux_nat_target::register_u_offset (struct gdbarch *gdbarch, return FPR_BASE + regno - gdbarch_fp0_regnum (gdbarch); } -void _initialize_alpha_linux_nat (); -void -_initialize_alpha_linux_nat () +INIT_GDB_FILE (alpha_linux_nat) { linux_target = &the_alpha_linux_nat_target; add_inf_child_target (&the_alpha_linux_nat_target); diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c index 2f6affa..8b4b4f1 100644 --- a/gdb/alpha-linux-tdep.c +++ b/gdb/alpha-linux-tdep.c @@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "frame.h" +#include "solib-svr4-linux.h" #include "osabi.h" #include "solib-svr4.h" #include "symtab.h" @@ -369,9 +370,7 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->jb_elt_size = 8; set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, @@ -386,9 +385,7 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) alpha_linux_gdb_signal_to_target); } -void _initialize_alpha_linux_tdep (); -void -_initialize_alpha_linux_tdep () +INIT_GDB_FILE (alpha_linux_tdep) { gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_LINUX, alpha_linux_init_abi); diff --git a/gdb/alpha-netbsd-tdep.c b/gdb/alpha-netbsd-tdep.c index a240039..0f5e305 100644 --- a/gdb/alpha-netbsd-tdep.c +++ b/gdb/alpha-netbsd-tdep.c @@ -264,8 +264,7 @@ alphanbsd_init_abi (struct gdbarch_info info, set_gdbarch_software_single_step (gdbarch, alpha_software_single_step); /* NetBSD/alpha has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); tdep->dynamic_sigtramp_offset = alphanbsd_sigtramp_offset; tdep->pc_in_sigtramp = alphanbsd_pc_in_sigtramp; @@ -279,9 +278,7 @@ alphanbsd_init_abi (struct gdbarch_info info, } -void _initialize_alphanbsd_tdep (); -void -_initialize_alphanbsd_tdep () +INIT_GDB_FILE (alphanbsd_tdep) { /* Even though NetBSD/alpha used ELF since day one, it used the traditional a.out-style core dump format before NetBSD 1.6, but diff --git a/gdb/alpha-obsd-tdep.c b/gdb/alpha-obsd-tdep.c index b5ddbbc..63f9050 100644 --- a/gdb/alpha-obsd-tdep.c +++ b/gdb/alpha-obsd-tdep.c @@ -109,8 +109,7 @@ alphaobsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_software_single_step (gdbarch, alpha_software_single_step); /* OpenBSD/alpha has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); set_gdbarch_skip_solib_resolver (gdbarch, obsd_skip_solib_resolver); tdep->dynamic_sigtramp_offset = alphaobsd_sigtramp_offset; @@ -125,9 +124,7 @@ alphaobsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch) } -void _initialize_alphaobsd_tdep (); -void -_initialize_alphaobsd_tdep () +INIT_GDB_FILE (alphaobsd_tdep) { gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_OPENBSD, alphaobsd_init_abi); diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index f0272b0..92a6411 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1815,9 +1815,7 @@ alpha_dwarf2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer); } -void _initialize_alpha_tdep (); -void -_initialize_alpha_tdep () +INIT_GDB_FILE (alpha_tdep) { gdbarch_register (bfd_arch_alpha, alpha_gdbarch_init, NULL); diff --git a/gdb/amd-dbgapi-target.c b/gdb/amd-dbgapi-target.c index e2a8ec8..a0210f4 100644 --- a/gdb/amd-dbgapi-target.c +++ b/gdb/amd-dbgapi-target.c @@ -104,12 +104,26 @@ amd_dbgapi_lib_debug_module () static gdb::observers::token amd_dbgapi_target_inferior_created_observer_token; +/* See amd-dbgapi-target.h. */ + const gdb::observers::token & get_amd_dbgapi_target_inferior_created_observer_token () { return amd_dbgapi_target_inferior_created_observer_token; } +/* inferior_execd observer token. */ + +static gdb::observers::token amd_dbgapi_target_inferior_execd_observer_token; + +/* See amd-dbgapi-target.h. */ + +const gdb::observers::token & +get_amd_dbgapi_target_inferior_execd_observer_token () +{ + return amd_dbgapi_target_inferior_execd_observer_token; +} + /* A type holding coordinates, etc. info for a given wave. */ struct wave_coordinates @@ -2475,10 +2489,7 @@ maybe_reset_amd_dbgapi () get_status_string (status)); } -extern initialize_file_ftype _initialize_amd_dbgapi_target; - -void -_initialize_amd_dbgapi_target () +INIT_GDB_FILE (amd_dbgapi_target) { /* Make sure the loaded debugger library version is greater than or equal to the one used to build GDB. */ @@ -2506,7 +2517,9 @@ _initialize_amd_dbgapi_target () gdb::observers::inferior_created.attach (amd_dbgapi_target_inferior_created, amd_dbgapi_target_inferior_created_observer_token, "amd-dbgapi"); - gdb::observers::inferior_execd.attach (amd_dbgapi_inferior_execd, "amd-dbgapi"); + gdb::observers::inferior_execd.attach + (amd_dbgapi_inferior_execd, amd_dbgapi_target_inferior_execd_observer_token, + "amd-dbgapi"); gdb::observers::inferior_forked.attach (amd_dbgapi_inferior_forked, "amd-dbgapi"); gdb::observers::inferior_exit.attach (amd_dbgapi_inferior_exited, "amd-dbgapi"); gdb::observers::inferior_pre_detach.attach (amd_dbgapi_inferior_pre_detach, "amd-dbgapi"); diff --git a/gdb/amd-dbgapi-target.h b/gdb/amd-dbgapi-target.h index dd37ba3..fe3a50b 100644 --- a/gdb/amd-dbgapi-target.h +++ b/gdb/amd-dbgapi-target.h @@ -54,6 +54,11 @@ using is_amd_dbgapi_handle const gdb::observers::token & get_amd_dbgapi_target_inferior_created_observer_token (); +/* Get the token of amd-dbgapi's inferior_execd observer. */ + +const gdb::observers::token & + get_amd_dbgapi_target_inferior_execd_observer_token (); + /* Comparison operators for amd-dbgapi handle types. */ template <typename T, diff --git a/gdb/amd64-darwin-tdep.c b/gdb/amd64-darwin-tdep.c index dde023e..c687b1f 100644 --- a/gdb/amd64-darwin-tdep.c +++ b/gdb/amd64-darwin-tdep.c @@ -113,12 +113,10 @@ x86_darwin_init_abi_64 (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->jb_pc_offset = 56; - set_gdbarch_so_ops (gdbarch, &darwin_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_darwin_solib_ops); } -void _initialize_amd64_darwin_tdep (); -void -_initialize_amd64_darwin_tdep () +INIT_GDB_FILE (amd64_darwin_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_DARWIN, x86_darwin_init_abi_64); diff --git a/gdb/amd64-dicos-tdep.c b/gdb/amd64-dicos-tdep.c index 3e9b8c7..d7c211b 100644 --- a/gdb/amd64-dicos-tdep.c +++ b/gdb/amd64-dicos-tdep.c @@ -45,9 +45,7 @@ amd64_dicos_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_amd64_dicos_tdep (); -void -_initialize_amd64_dicos_tdep () +INIT_GDB_FILE (amd64_dicos_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour, amd64_dicos_osabi_sniffer); diff --git a/gdb/amd64-fbsd-nat.c b/gdb/amd64-fbsd-nat.c index a783a5d1..89bb049 100644 --- a/gdb/amd64-fbsd-nat.c +++ b/gdb/amd64-fbsd-nat.c @@ -324,9 +324,7 @@ amd64_fbsd_nat_target::read_description () return i386_target_description (X86_XSTATE_SSE_MASK, true); } -void _initialize_amd64fbsd_nat (); -void -_initialize_amd64fbsd_nat () +INIT_GDB_FILE (amd64fbsd_nat) { add_inf_child_target (&the_amd64_fbsd_nat_target); diff --git a/gdb/amd64-fbsd-tdep.c b/gdb/amd64-fbsd-tdep.c index eea0105..12f1e22 100644 --- a/gdb/amd64-fbsd-tdep.c +++ b/gdb/amd64-fbsd-tdep.c @@ -328,8 +328,7 @@ amd64fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) amd64fbsd_core_read_description); /* FreeBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); set_gdbarch_fetch_tls_load_module_address (gdbarch, svr4_fetch_objfile_link_map); @@ -337,9 +336,7 @@ amd64fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) amd64fbsd_get_thread_local_address); } -void _initialize_amd64fbsd_tdep (); -void -_initialize_amd64fbsd_tdep () +INIT_GDB_FILE (amd64fbsd_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_FREEBSD, amd64fbsd_init_abi); diff --git a/gdb/amd64-gnu-tdep.c b/gdb/amd64-gnu-tdep.c index 602fa8e..2b7337b 100644 --- a/gdb/amd64-gnu-tdep.c +++ b/gdb/amd64-gnu-tdep.c @@ -218,13 +218,10 @@ amd64_gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sc_num_regs = ARRAY_SIZE (amd64_gnu_sc_reg_offset); /* Hurd uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); } -void _initialize_amd64_gnu_tdep (); -void -_initialize_amd64_gnu_tdep () +INIT_GDB_FILE (amd64_gnu_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_HURD, amd64_gnu_init_abi); diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c index 75e63c6..dbb9b32 100644 --- a/gdb/amd64-linux-nat.c +++ b/gdb/amd64-linux-nat.c @@ -424,9 +424,7 @@ amd64_linux_nat_target::low_siginfo_fixup (siginfo_t *ptrace, return false; } -void _initialize_amd64_linux_nat (); -void -_initialize_amd64_linux_nat () +INIT_GDB_FILE (amd64_linux_nat) { amd64_native_gregset32_reg_offset = amd64_linux_gregset32_reg_offset; amd64_native_gregset32_num_regs = I386_LINUX_NUM_REGS; diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c index e5a2ab9..13e9c0e 100644 --- a/gdb/amd64-linux-tdep.c +++ b/gdb/amd64-linux-tdep.c @@ -33,6 +33,7 @@ #include "amd64-linux-tdep.h" #include "i386-linux-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "svr4-tls-tdep.h" #include "gdbsupport/x86-xstate.h" #include "inferior.h" @@ -2130,8 +2131,7 @@ amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->i386_syscall_record = amd64_linux_syscall_record; /* GNU/Linux uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* Register DTrace handlers. */ set_gdbarch_dtrace_parse_probe_argument (gdbarch, amd64_dtrace_parse_probe_argument); @@ -2344,13 +2344,10 @@ amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->i386_syscall_record = amd64_x32_linux_syscall_record; /* GNU/Linux uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); } -void _initialize_amd64_linux_tdep (); -void -_initialize_amd64_linux_tdep () +INIT_GDB_FILE (amd64_linux_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_LINUX, amd64_linux_init_abi); diff --git a/gdb/amd64-netbsd-nat.c b/gdb/amd64-netbsd-nat.c index 92ad4b2..c960b3c 100644 --- a/gdb/amd64-netbsd-nat.c +++ b/gdb/amd64-netbsd-nat.c @@ -55,9 +55,7 @@ static int amd64nbsd32_r_reg_offset[] = static amd64_bsd_nat_target<nbsd_nat_target> the_amd64_nbsd_nat_target; -void _initialize_amd64nbsd_nat (); -void -_initialize_amd64nbsd_nat () +INIT_GDB_FILE (amd64nbsd_nat) { amd64_native_gregset32_reg_offset = amd64nbsd32_r_reg_offset; amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64nbsd32_r_reg_offset); diff --git a/gdb/amd64-netbsd-tdep.c b/gdb/amd64-netbsd-tdep.c index f4464b7..3dbbdd9 100644 --- a/gdb/amd64-netbsd-tdep.c +++ b/gdb/amd64-netbsd-tdep.c @@ -116,13 +116,10 @@ amd64nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sc_num_regs = ARRAY_SIZE (amd64nbsd_r_reg_offset); /* NetBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); } -void _initialize_amd64nbsd_tdep (); -void -_initialize_amd64nbsd_tdep () +INIT_GDB_FILE (amd64nbsd_tdep) { /* The NetBSD/amd64 native dependent code makes this assumption. */ gdb_assert (ARRAY_SIZE (amd64nbsd_r_reg_offset) == AMD64_NUM_GREGS); diff --git a/gdb/amd64-obsd-nat.c b/gdb/amd64-obsd-nat.c index 93d38df..8471520 100644 --- a/gdb/amd64-obsd-nat.c +++ b/gdb/amd64-obsd-nat.c @@ -127,9 +127,7 @@ amd64obsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) static amd64_bsd_nat_target<obsd_nat_target> the_amd64_obsd_nat_target; -void _initialize_amd64obsd_nat (); -void -_initialize_amd64obsd_nat () +INIT_GDB_FILE (amd64obsd_nat) { amd64_native_gregset32_reg_offset = amd64obsd32_r_reg_offset; amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64obsd32_r_reg_offset); diff --git a/gdb/amd64-obsd-tdep.c b/gdb/amd64-obsd-tdep.c index 5acc380..6b60e0a 100644 --- a/gdb/amd64-obsd-tdep.c +++ b/gdb/amd64-obsd-tdep.c @@ -443,16 +443,13 @@ amd64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) bsd_uthread_set_collect_uthread (gdbarch, amd64obsd_collect_uthread); /* OpenBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); /* Unwind kernel trap frames correctly. */ frame_unwind_prepend_unwinder (gdbarch, &amd64obsd_trapframe_unwind); } -void _initialize_amd64obsd_tdep (); -void -_initialize_amd64obsd_tdep () +INIT_GDB_FILE (amd64obsd_tdep) { /* The OpenBSD/amd64 native dependent code makes this assumption. */ gdb_assert (ARRAY_SIZE (amd64obsd_r_reg_offset) == AMD64_NUM_GREGS); diff --git a/gdb/amd64-sol2-tdep.c b/gdb/amd64-sol2-tdep.c index 84d5f87..da551a1 100644 --- a/gdb/amd64-sol2-tdep.c +++ b/gdb/amd64-sol2-tdep.c @@ -96,13 +96,10 @@ amd64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sc_num_regs = tdep->gregset_num_regs; /* Solaris uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); } -void _initialize_amd64_sol2_tdep (); -void -_initialize_amd64_sol2_tdep () +INIT_GDB_FILE (amd64_sol2_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_SOLARIS, amd64_sol2_init_abi); diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index e495778..82dd1e0 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -2129,6 +2129,30 @@ amd64_alloc_frame_cache (void) return cache; } +/* Check whether PC is at "endbr64" instruction. If so, return PC past it. + Otherwise, return PC passed to this function. */ + +static CORE_ADDR +amd64_skip_endbr (gdbarch *gdbarch, CORE_ADDR pc) +{ + static const gdb_byte endbr64[4] = { 0xf3, 0x0f, 0x1e, 0xfa }; + + bfd_endian byte_order = gdbarch_byte_order (gdbarch); + gdb_byte buf[3]; + gdb_byte op = read_code_unsigned_integer (pc, 1, byte_order); + + /* Check for the `endbr64` instruction, skip it if found. */ + if (op == endbr64[0]) + { + read_code (pc + 1, buf, 3); + + if (memcmp (buf, &endbr64[1], 3) == 0) + return pc + 4; + } + + return pc; +} + /* GCC 4.4 and later, can put code in the prologue to realign the stack pointer. Check whether PC points to such code, and update CACHE accordingly. Return the first instruction after the code @@ -2466,35 +2490,18 @@ amd64_x32_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc, return std::min (pc + offset + 2, current_pc); } -/* Do a limited analysis of the prologue at PC and update CACHE - accordingly. Bail out early if CURRENT_PC is reached. Return the - address where the analysis stopped. - - We will handle only functions beginning with: - - pushq %rbp 0x55 - movq %rsp, %rbp 0x48 0x89 0xe5 (or 0x48 0x8b 0xec) - - or (for the X32 ABI): - - pushq %rbp 0x55 - movl %esp, %ebp 0x89 0xe5 (or 0x8b 0xec) - - The `endbr64` instruction can be found before these sequences, and will be - skipped if found. +/* Analyze frame setup instructions at PC on behalf of amd64_analyze_prologue + and update CACHE accordingly. Bail out early if CURRENT_PC is reached. + Return the address where the analysis stopped. - Any function that doesn't start with one of these sequences will be - assumed to have no prologue and thus no valid frame pointer in - %rbp. */ + See comment on amd64_analyze_prologue for the sequences handled. The + movq/movl after the push of %rbp is considered optional. 'endbr64' is + handled before this function. */ static CORE_ADDR -amd64_analyze_prologue (struct gdbarch *gdbarch, - CORE_ADDR pc, CORE_ADDR current_pc, - struct amd64_frame_cache *cache) +amd64_analyze_frame_setup (gdbarch *gdbarch, CORE_ADDR pc, + CORE_ADDR current_pc, amd64_frame_cache *cache) { - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); - /* The `endbr64` instruction. */ - static const gdb_byte endbr64[4] = { 0xf3, 0x0f, 0x1e, 0xfa }; /* There are two variations of movq %rsp, %rbp. */ static const gdb_byte mov_rsp_rbp_1[3] = { 0x48, 0x89, 0xe5 }; static const gdb_byte mov_rsp_rbp_2[3] = { 0x48, 0x8b, 0xec }; @@ -2502,34 +2509,11 @@ amd64_analyze_prologue (struct gdbarch *gdbarch, static const gdb_byte mov_esp_ebp_1[2] = { 0x89, 0xe5 }; static const gdb_byte mov_esp_ebp_2[2] = { 0x8b, 0xec }; + bfd_endian byte_order = gdbarch_byte_order (gdbarch); gdb_byte buf[3]; - gdb_byte op; - - if (current_pc <= pc) - return current_pc; - - if (gdbarch_ptr_bit (gdbarch) == 32) - pc = amd64_x32_analyze_stack_align (pc, current_pc, cache); - else - pc = amd64_analyze_stack_align (pc, current_pc, cache); - - op = read_code_unsigned_integer (pc, 1, byte_order); - - /* Check for the `endbr64` instruction, skip it if found. */ - if (op == endbr64[0]) - { - read_code (pc + 1, buf, 3); - - if (memcmp (buf, &endbr64[1], 3) == 0) - pc += 4; - - op = read_code_unsigned_integer (pc, 1, byte_order); - } - - if (current_pc <= pc) - return current_pc; + gdb_byte op = read_code_unsigned_integer (pc, 1, byte_order); - if (op == 0x55) /* pushq %rbp */ + if (op == 0x55) /* pushq %rbp. */ { /* Take into account that we've executed the `pushq %rbp' that starts this instruction sequence. */ @@ -2569,6 +2553,50 @@ amd64_analyze_prologue (struct gdbarch *gdbarch, return pc; } +/* Do a limited analysis of the prologue at PC and update CACHE + accordingly. Bail out early if CURRENT_PC is reached. Return the + address where the analysis stopped. + + We will handle only functions beginning with: + + pushq %rbp 0x55 + movq %rsp, %rbp 0x48 0x89 0xe5 (or 0x48 0x8b 0xec) + + or (for the X32 ABI): + + pushq %rbp 0x55 + movl %esp, %ebp 0x89 0xe5 (or 0x8b 0xec) + + The `endbr64` instruction can be found before these sequences, and will be + skipped if found. + + Any function that doesn't start with one of these sequences will be + assumed to have no prologue and thus no valid frame pointer in + %rbp. */ + +static CORE_ADDR +amd64_analyze_prologue (gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc, + amd64_frame_cache *cache) +{ + if (current_pc <= pc) + return current_pc; + + /* If generated, 'endbr64' will be placed before stack alignment too. */ + pc = amd64_skip_endbr (gdbarch, pc); + if (current_pc <= pc) + return current_pc; + + if (gdbarch_ptr_bit (gdbarch) == 32) + pc = amd64_x32_analyze_stack_align (pc, current_pc, cache); + else + pc = amd64_analyze_stack_align (pc, current_pc, cache); + + if (current_pc <= pc) + return current_pc; + + return amd64_analyze_frame_setup (gdbarch, pc, current_pc, cache); +} + /* Work around false termination of prologue - GCC PR debug/48827. START_PC is the first instruction of a function, PC is its minimal already @@ -3740,9 +3768,7 @@ amd64_insn_decode (void) } // namespace selftests #endif /* GDB_SELF_TEST */ -void _initialize_amd64_tdep (); -void -_initialize_amd64_tdep () +INIT_GDB_FILE (amd64_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_NONE, amd64_none_init_abi); diff --git a/gdb/amd64-windows-nat.c b/gdb/amd64-windows-nat.c index 223e078..f5c98f6 100644 --- a/gdb/amd64-windows-nat.c +++ b/gdb/amd64-windows-nat.c @@ -94,9 +94,7 @@ amd64_windows_segment_register_p (int regnum) return regnum >= AMD64_CS_REGNUM && regnum <= AMD64_GS_REGNUM; } -void _initialize_amd64_windows_nat (); -void -_initialize_amd64_windows_nat () +INIT_GDB_FILE (amd64_windows_nat) { x86_set_debug_register_length (8); } diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c index c4719dc..c7977d2 100644 --- a/gdb/amd64-windows-tdep.c +++ b/gdb/amd64-windows-tdep.c @@ -1404,9 +1404,7 @@ amd64_cygwin_core_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_amd64_windows_tdep (); -void -_initialize_amd64_windows_tdep () +INIT_GDB_FILE (amd64_windows_tdep) { gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_WINDOWS, amd64_windows_init_abi); diff --git a/gdb/amdgpu-tdep.c b/gdb/amdgpu-tdep.c index dc1b32f..26e5a27 100644 --- a/gdb/amdgpu-tdep.c +++ b/gdb/amdgpu-tdep.c @@ -1371,10 +1371,7 @@ amdgpu_register_type_parse_test () #endif -void _initialize_amdgpu_tdep (); - -void -_initialize_amdgpu_tdep () +INIT_GDB_FILE (amdgpu_tdep) { gdbarch_register (bfd_arch_amdgcn, amdgpu_gdbarch_init, NULL, amdgpu_supports_arch_info); diff --git a/gdb/annotate.c b/gdb/annotate.c index ea0bfa9..55db2e2 100644 --- a/gdb/annotate.c +++ b/gdb/annotate.c @@ -627,9 +627,7 @@ breakpoint_changed (struct breakpoint *b) annotate_breakpoints_invalid (); } -void _initialize_annotate (); -void -_initialize_annotate () +INIT_GDB_FILE (annotate) { gdb::observers::breakpoint_created.attach (breakpoint_changed, "annotate"); gdb::observers::breakpoint_deleted.attach (breakpoint_changed, "annotate"); diff --git a/gdb/arc-linux-nat.c b/gdb/arc-linux-nat.c index 091a966..75fc4b7 100644 --- a/gdb/arc-linux-nat.c +++ b/gdb/arc-linux-nat.c @@ -309,9 +309,7 @@ ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, } /* Suppress warning from -Wmissing-prototypes. */ -void _initialize_arc_linux_nat (); -void -_initialize_arc_linux_nat () +INIT_GDB_FILE (arc_linux_nat) { /* Register the target. */ linux_target = &the_arc_linux_nat_target; diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c index adf6691..edbb3f8 100644 --- a/gdb/arc-linux-tdep.c +++ b/gdb/arc-linux-tdep.c @@ -19,6 +19,7 @@ /* GDB header files. */ #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "objfiles.h" #include "opcode/arc.h" #include "osabi.h" @@ -736,15 +737,10 @@ arc_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux uses SVR4-style shared libraries, with 32-bit ints, longs and pointers (ILP32). */ - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); } -/* Suppress warning from -Wmissing-prototypes. */ -extern initialize_file_ftype _initialize_arc_linux_tdep; - -void -_initialize_arc_linux_tdep () +INIT_GDB_FILE (arc_linux_tdep) { gdbarch_register_osabi (bfd_arch_arc, 0, GDB_OSABI_LINUX, arc_linux_init_osabi); diff --git a/gdb/arc-newlib-tdep.c b/gdb/arc-newlib-tdep.c index fd80bfa..9a6f7a8 100644 --- a/gdb/arc-newlib-tdep.c +++ b/gdb/arc-newlib-tdep.c @@ -58,9 +58,7 @@ arc_newlib_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_arc_newlib_tdep (); -void -_initialize_arc_newlib_tdep () +INIT_GDB_FILE (arc_newlib_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_arc, bfd_target_elf_flavour, arc_newlib_osabi_sniffer); diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index 8db6e7b..f5ae11c 100644 --- a/gdb/arc-tdep.c +++ b/gdb/arc-tdep.c @@ -2458,9 +2458,7 @@ dump_arc_instruction_command (const char *args, int from_tty) arc_insn_dump (insn); } -void _initialize_arc_tdep (); -void -_initialize_arc_tdep () +INIT_GDB_FILE (arc_tdep) { gdbarch_register (bfd_arch_arc, arc_gdbarch_init, arc_dump_tdep); diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index be0494f..f320d3d 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -1525,9 +1525,7 @@ core_file_exec_context::environment () const return e; } -void _initialize_gdbarch_utils (); -void -_initialize_gdbarch_utils () +INIT_GDB_FILE (gdbarch_utils) { add_setshow_enum_cmd ("endian", class_support, endian_enum, &set_endian_string, diff --git a/gdb/arm-fbsd-nat.c b/gdb/arm-fbsd-nat.c index 2b7b75a..e068023 100644 --- a/gdb/arm-fbsd-nat.c +++ b/gdb/arm-fbsd-nat.c @@ -104,9 +104,7 @@ arm_fbsd_nat_target::read_description () return desc; } -void _initialize_arm_fbsd_nat (); -void -_initialize_arm_fbsd_nat () +INIT_GDB_FILE (arm_fbsd_nat) { add_inf_child_target (&the_arm_fbsd_nat_target); } diff --git a/gdb/arm-fbsd-tdep.c b/gdb/arm-fbsd-tdep.c index c9a466f..a37d8b7 100644 --- a/gdb/arm-fbsd-tdep.c +++ b/gdb/arm-fbsd-tdep.c @@ -300,8 +300,7 @@ arm_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tramp_frame_prepend_unwinder (gdbarch, &arm_fbsd_sigframe); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); tdep->jb_pc = 24; tdep->jb_elt_size = 4; @@ -322,9 +321,7 @@ arm_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_software_single_step (gdbarch, arm_software_single_step); } -void _initialize_arm_fbsd_tdep (); -void -_initialize_arm_fbsd_tdep () +INIT_GDB_FILE (arm_fbsd_tdep) { gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_FREEBSD, arm_fbsd_init_abi); diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index 3ff9fc6..813da8c 100644 --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c @@ -1393,9 +1393,7 @@ arm_linux_nat_target::low_new_fork (struct lwp_info *parent, pid_t child_pid) *child_state = *parent_state; } -void _initialize_arm_linux_nat (); -void -_initialize_arm_linux_nat () +INIT_GDB_FILE (arm_linux_nat) { /* Register the target. */ linux_target = &the_arm_linux_nat_target; diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index 485a5d9..08526d8 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -41,6 +41,7 @@ #include "arm-tdep.h" #include "arm-linux-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "glibc-tdep.h" #include "arch-utils.h" #include "inferior.h" @@ -1801,8 +1802,7 @@ arm_linux_init_abi (struct gdbarch_info info, } tdep->jb_elt_size = ARM_LINUX_JB_ELEMENT_SIZE; - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* Single stepping. */ set_gdbarch_software_single_step (gdbarch, arm_linux_software_single_step); @@ -2026,9 +2026,7 @@ arm_linux_init_abi (struct gdbarch_info info, set_gdbarch_gcc_target_options (gdbarch, arm_linux_gcc_target_options); } -void _initialize_arm_linux_tdep (); -void -_initialize_arm_linux_tdep () +INIT_GDB_FILE (arm_linux_tdep) { gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_LINUX, arm_linux_init_abi); diff --git a/gdb/arm-netbsd-nat.c b/gdb/arm-netbsd-nat.c index 3a24f51..ebf4084 100644 --- a/gdb/arm-netbsd-nat.c +++ b/gdb/arm-netbsd-nat.c @@ -354,9 +354,7 @@ arm_netbsd_nat_target::read_description () return arm_read_description (ARM_FP_TYPE_VFPV3, false); } -void _initialize_arm_netbsd_nat (); -void -_initialize_arm_netbsd_nat () +INIT_GDB_FILE (arm_netbsd_nat) { add_inf_child_target (&the_arm_netbsd_nat_target); } diff --git a/gdb/arm-netbsd-tdep.c b/gdb/arm-netbsd-tdep.c index a162054..82ba0c6 100644 --- a/gdb/arm-netbsd-tdep.c +++ b/gdb/arm-netbsd-tdep.c @@ -156,13 +156,10 @@ arm_netbsd_elf_init_abi (struct gdbarch_info info, tdep->fp_model = ARM_FLOAT_SOFT_VFP; /* NetBSD ELF uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } -void _initialize_arm_netbsd_tdep (); -void -_initialize_arm_netbsd_tdep () +INIT_GDB_FILE (arm_netbsd_tdep) { gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_NETBSD, arm_netbsd_elf_init_abi); diff --git a/gdb/arm-none-tdep.c b/gdb/arm-none-tdep.c index 81db22f..3ffcd2b 100644 --- a/gdb/arm-none-tdep.c +++ b/gdb/arm-none-tdep.c @@ -204,9 +204,7 @@ arm_none_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Initialize ARM bare-metal target support. */ -void _initialize_arm_none_tdep (); -void -_initialize_arm_none_tdep () +INIT_GDB_FILE (arm_none_tdep) { gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_NONE, arm_none_init_abi); diff --git a/gdb/arm-obsd-tdep.c b/gdb/arm-obsd-tdep.c index 6fd4c85..00e4bfd 100644 --- a/gdb/arm-obsd-tdep.c +++ b/gdb/arm-obsd-tdep.c @@ -83,8 +83,7 @@ armobsd_init_abi (struct gdbarch_info info, tramp_frame_prepend_unwinder (gdbarch, &armobsd_sigframe); /* OpenBSD/arm uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); set_gdbarch_skip_solib_resolver (gdbarch, obsd_skip_solib_resolver); tdep->jb_pc = 24; @@ -114,9 +113,7 @@ armobsd_init_abi (struct gdbarch_info info, } } -void _initialize_armobsd_tdep (); -void -_initialize_armobsd_tdep () +INIT_GDB_FILE (armobsd_tdep) { gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_OPENBSD, armobsd_init_abi); diff --git a/gdb/arm-pikeos-tdep.c b/gdb/arm-pikeos-tdep.c index 428bb7d..12fd9c3 100644 --- a/gdb/arm-pikeos-tdep.c +++ b/gdb/arm-pikeos-tdep.c @@ -73,9 +73,7 @@ arm_pikeos_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_arm_pikeos_tdep (); -void -_initialize_arm_pikeos_tdep () +INIT_GDB_FILE (arm_pikeos_tdep) { /* Register the sniffer for the PikeOS targets. */ gdbarch_register_osabi_sniffer (bfd_arch_arm, bfd_target_elf_flavour, diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 708f9ec..a764825 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -11015,9 +11015,7 @@ static void arm_analyze_prologue_test (); } #endif -void _initialize_arm_tdep (); -void -_initialize_arm_tdep () +INIT_GDB_FILE (arm_tdep) { long length; int i, j; diff --git a/gdb/arm-wince-tdep.c b/gdb/arm-wince-tdep.c index b1e1304..b9ea59c 100644 --- a/gdb/arm-wince-tdep.c +++ b/gdb/arm-wince-tdep.c @@ -152,9 +152,7 @@ arm_wince_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_arm_wince_tdep (); -void -_initialize_arm_wince_tdep () +INIT_GDB_FILE (arm_wince_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_arm, bfd_target_coff_flavour, arm_wince_osabi_sniffer); diff --git a/gdb/auto-load.c b/gdb/auto-load.c index f33a8d0..114a7d5 100644 --- a/gdb/auto-load.c +++ b/gdb/auto-load.c @@ -1568,9 +1568,7 @@ found and/or loaded."), gdb::observers::token auto_load_new_objfile_observer_token; -void _initialize_auto_load (); -void -_initialize_auto_load () +INIT_GDB_FILE (auto_load) { struct cmd_list_element *cmd; gdb::unique_xmalloc_ptr<char> scripts_directory_help, gdb_name_help, @@ -609,9 +609,7 @@ info_auxv_command (const char *cmd, int from_tty) } } -void _initialize_auxv (); -void -_initialize_auxv () +INIT_GDB_FILE (auxv) { add_info ("auxv", info_auxv_command, _("Display the inferior's auxiliary vector.\n\ diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 36e6ec4..6274529 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1629,9 +1629,7 @@ avr_io_reg_read_command (const char *args, int from_tty) } } -void _initialize_avr_tdep (); -void -_initialize_avr_tdep () +INIT_GDB_FILE (avr_tdep) { gdbarch_register (bfd_arch_avr, avr_gdbarch_init); diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c index e572465..08f542c 100644 --- a/gdb/ax-gdb.c +++ b/gdb/ax-gdb.c @@ -2634,9 +2634,7 @@ maint_agent_printf_command (const char *cmdrest, int from_tty) /* Initialization code. */ -void _initialize_ax_gdb (); -void -_initialize_ax_gdb () +INIT_GDB_FILE (ax_gdb) { add_cmd ("agent", class_maintenance, maint_agent_command, _("\ diff --git a/gdb/bfin-linux-tdep.c b/gdb/bfin-linux-tdep.c index 3ba3146..d84f800 100644 --- a/gdb/bfin-linux-tdep.c +++ b/gdb/bfin-linux-tdep.c @@ -161,9 +161,7 @@ bfin_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) bfin_linux_get_syscall_number); } -void _initialize_bfin_linux_tdep (); -void -_initialize_bfin_linux_tdep () +INIT_GDB_FILE (bfin_linux_tdep) { gdbarch_register_osabi (bfd_arch_bfin, 0, GDB_OSABI_LINUX, bfin_linux_init_abi); diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c index 32d9371..3a96e9f 100644 --- a/gdb/bfin-tdep.c +++ b/gdb/bfin-tdep.c @@ -837,9 +837,7 @@ bfin_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_bfin_tdep (); -void -_initialize_bfin_tdep () +INIT_GDB_FILE (bfin_tdep) { gdbarch_register (bfd_arch_bfin, bfin_gdbarch_init); } diff --git a/gdb/block.c b/gdb/block.c index fdf209c..1866c0f 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -924,9 +924,7 @@ maintenance_info_blocks (const char *arg, int from_tty) -void _initialize_block (); -void -_initialize_block () +INIT_GDB_FILE (block) { add_cmd ("blocks", class_maintenance, maintenance_info_blocks, _("\ diff --git a/gdb/bpf-tdep.c b/gdb/bpf-tdep.c index 2c95607..be01e8b 100644 --- a/gdb/bpf-tdep.c +++ b/gdb/bpf-tdep.c @@ -368,9 +368,7 @@ bpf_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_bpf_tdep (); -void -_initialize_bpf_tdep () +INIT_GDB_FILE (bpf_tdep) { gdbarch_register (bfd_arch_bpf, bpf_gdbarch_init); diff --git a/gdb/break-catch-exec.c b/gdb/break-catch-exec.c index 6716437..570018c 100644 --- a/gdb/break-catch-exec.c +++ b/gdb/break-catch-exec.c @@ -213,9 +213,7 @@ catch_exec_command_1 (const char *arg, int from_tty, install_breakpoint (0, std::move (c), 1); } -void _initialize_break_catch_exec (); -void -_initialize_break_catch_exec () +INIT_GDB_FILE (break_catch_exec) { add_catch_command ("exec", _("Catch calls to exec."), catch_exec_command_1, diff --git a/gdb/break-catch-fork.c b/gdb/break-catch-fork.c index cba3753..c8a6330 100644 --- a/gdb/break-catch-fork.c +++ b/gdb/break-catch-fork.c @@ -242,9 +242,7 @@ catch_fork_command_1 (const char *arg, int from_tty, } } -void _initialize_break_catch_fork (); -void -_initialize_break_catch_fork () +INIT_GDB_FILE (break_catch_fork) { add_catch_command ("fork", _("Catch calls to fork."), catch_fork_command_1, diff --git a/gdb/break-catch-load.c b/gdb/break-catch-load.c index 9d25d75..594884e 100644 --- a/gdb/break-catch-load.c +++ b/gdb/break-catch-load.c @@ -264,9 +264,7 @@ catch_unload_command_1 (const char *arg, int from_tty, catch_load_or_unload (arg, from_tty, 0, command); } -void _initialize_break_catch_load (); -void -_initialize_break_catch_load () +INIT_GDB_FILE (break_catch_load) { add_catch_command ("load", _("Catch loads of shared libraries.\n\ Usage: catch load [REGEX]\n\ diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c index fb5d202..adfc48f 100644 --- a/gdb/break-catch-sig.c +++ b/gdb/break-catch-sig.c @@ -409,9 +409,7 @@ catch_signal_command (const char *arg, int from_tty, create_signal_catchpoint (tempflag, std::move (filter), catch_all); } -void _initialize_break_catch_sig (); -void -_initialize_break_catch_sig () +INIT_GDB_FILE (break_catch_sig) { add_catch_command ("signal", _("\ Catch signals by their names and/or numbers.\n\ diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c index 3d28898..63bfec6 100644 --- a/gdb/break-catch-syscall.c +++ b/gdb/break-catch-syscall.c @@ -570,9 +570,7 @@ clear_syscall_counts (struct inferior *inf) inf_data->syscalls_counts.clear (); } -void _initialize_break_catch_syscall (); -void -_initialize_break_catch_syscall () +INIT_GDB_FILE (break_catch_syscall) { gdb::observers::inferior_exit.attach (clear_syscall_counts, "break-catch-syscall"); diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c index 41213e4..cb682a6 100644 --- a/gdb/break-catch-throw.c +++ b/gdb/break-catch-throw.c @@ -499,9 +499,7 @@ static const struct internalvar_funcs exception_funcs = -void _initialize_break_catch_throw (); -void -_initialize_break_catch_throw () +INIT_GDB_FILE (break_catch_throw) { /* Add catch and tcatch sub-commands. */ add_catch_command ("catch", _("\ diff --git a/gdb/break-cond-parse.c b/gdb/break-cond-parse.c index caf13a7..04a8895 100644 --- a/gdb/break-cond-parse.c +++ b/gdb/break-cond-parse.c @@ -684,9 +684,7 @@ create_breakpoint_parse_arg_string_tests () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_break_cond_parse (); -void -_initialize_break_cond_parse () +INIT_GDB_FILE (break_cond_parse) { #if GDB_SELF_TEST selftests::register_test diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index dab52f1..d704ad1 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -14765,9 +14765,7 @@ static struct cmd_list_element *enablebreaklist = NULL; cmd_list_element *commands_cmd_element = nullptr; -void _initialize_breakpoint (); -void -_initialize_breakpoint () +INIT_GDB_FILE (breakpoint) { struct cmd_list_element *c; diff --git a/gdb/bsd-uthread.c b/gdb/bsd-uthread.c index a493b0c..4509376 100644 --- a/gdb/bsd-uthread.c +++ b/gdb/bsd-uthread.c @@ -540,9 +540,7 @@ bsd_uthread_target::pid_to_str (ptid_t ptid) return normal_pid_to_str (ptid); } -void _initialize_bsd_uthread (); -void -_initialize_bsd_uthread () +INIT_GDB_FILE (bsd_uthread) { gdb::observers::inferior_created.attach (bsd_uthread_inferior_created, "bsd-uthread"); diff --git a/gdb/btrace.c b/gdb/btrace.c index 3d883c5..b23de88 100644 --- a/gdb/btrace.c +++ b/gdb/btrace.c @@ -3501,9 +3501,7 @@ show_maint_btrace_pt_skip_pad (struct ui_file *file, int from_tty, /* Initialize btrace maintenance commands. */ -void _initialize_btrace (); -void -_initialize_btrace () +INIT_GDB_FILE (btrace) { add_cmd ("btrace", class_maintenance, maint_info_btrace_cmd, _("Info about branch tracing data."), &maintenanceinfolist); diff --git a/gdb/charset.c b/gdb/charset.c index 3e37ec9..2593625 100644 --- a/gdb/charset.c +++ b/gdb/charset.c @@ -983,9 +983,7 @@ intermediate_encoding (void) #endif /* USE_INTERMEDIATE_ENCODING_FUNCTION */ -void _initialize_charset (); -void -_initialize_charset () +INIT_GDB_FILE (charset) { /* The first element is always "auto". */ charsets.charsets.push_back (xstrdup ("auto")); diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index d812c49..5e887f5 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -1193,8 +1193,32 @@ pipe_command_completer (struct cmd_list_element *ignore, return; } - /* We're past the delimiter. What follows is a shell command, which - we don't know how to complete. */ + /* We're past the delimiter now, or at least, DELIM points to the + delimiter string. Update TEXT to point to the start of whatever + appears after the delimiter. */ + text = skip_spaces (delim + strlen (delimiter)); + + /* We really are past the delimiter now, so offer completions. This is + like GDB's "shell" command, currently we only offer filename + completion, but in the future this could be improved by offering + completion of command names from $PATH. + + What we don't do here is offer completions for the empty string. It + is assumed that the first word after the delimiter is going to be a + command name from $PATH, not a filename, so if the user has typed + nothing (yet) and tries to complete, there's no point offering a list + of files from the current directory. + + Once the user has started to type something though, then we do start + offering filename completions. */ + if (*text == '\0') + return; + + tracker.set_use_custom_word_point (true); + tracker.advance_custom_word_point_by (text - org_text); + const char *word + = advance_to_filename_maybe_quoted_complete_word_point (tracker, text); + filename_maybe_quoted_completer (ignore, tracker, text, word); } /* Helper for the list_command function. Prints the lines around (and @@ -2593,9 +2617,7 @@ shell_internal_fn (struct gdbarch *gdbarch, return value::allocate_optimized_out (int_type); } -void _initialize_cli_cmds (); -void -_initialize_cli_cmds () +INIT_GDB_FILE (cli_cmds) { struct cmd_list_element *c; diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c index 3055734..afbbea6 100644 --- a/gdb/cli/cli-dump.c +++ b/gdb/cli/cli-dump.c @@ -564,9 +564,7 @@ restore_command (const char *args, int from_tty) } } -void _initialize_cli_dump (); -void -_initialize_cli_dump () +INIT_GDB_FILE (cli_dump) { struct cmd_list_element *c; diff --git a/gdb/cli/cli-interp.c b/gdb/cli/cli-interp.c index 32ba9d9..d7b73df 100644 --- a/gdb/cli/cli-interp.c +++ b/gdb/cli/cli-interp.c @@ -321,9 +321,7 @@ cli_interp_factory (const char *name) /* Standard gdb initialization hook. */ -void _initialize_cli_interp (); -void -_initialize_cli_interp () +INIT_GDB_FILE (cli_interp) { interp_factory_register (INTERP_CONSOLE, cli_interp_factory); } diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c index d225533..d6eb6c2 100644 --- a/gdb/cli/cli-logging.c +++ b/gdb/cli/cli-logging.c @@ -202,9 +202,7 @@ show_logging_enabled (struct ui_file *file, int from_tty, gdb_printf (file, _("off: Logging is disabled.\n")); } -void _initialize_cli_logging (); -void -_initialize_cli_logging () +INIT_GDB_FILE (cli_logging) { static struct cmd_list_element *set_logging_cmdlist, *show_logging_cmdlist; diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index bdbf850..3ea80a5 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -1751,9 +1751,7 @@ show_user_1 (struct cmd_list_element *c, const char *prefix, const char *name, } -void _initialize_cli_script (); -void -_initialize_cli_script () +INIT_GDB_FILE (cli_script) { struct cmd_list_element *c; diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c index e644127..d6829f0 100644 --- a/gdb/cli/cli-style.c +++ b/gdb/cli/cli-style.c @@ -494,9 +494,7 @@ print_error_prefix (ui_file *file) gdb_puts (error_prefix.c_str (), file); } -void _initialize_cli_style (); -void -_initialize_cli_style () +INIT_GDB_FILE (cli_style) { add_setshow_prefix_cmd ("style", no_class, _("\ diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c index 3a3611e..0061007 100644 --- a/gdb/coff-pe-read.c +++ b/gdb/coff-pe-read.c @@ -694,9 +694,7 @@ show_debug_coff_pe_read (struct ui_file *file, int from_tty, /* Adds "Set/show debug coff_pe_read" commands. */ -void _initialize_coff_pe_read (); -void -_initialize_coff_pe_read () +INIT_GDB_FILE (coff_pe_read) { add_setshow_zuinteger_cmd ("coff-pe-read", class_maintenance, &debug_coff_pe_read, diff --git a/gdb/coffread.c b/gdb/coffread.c index 8a87e9c..db18c43 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -2248,9 +2248,7 @@ static const struct sym_fns coff_sym_fns = NULL, /* sym_probe_fns */ }; -void _initialize_coffread (); -void -_initialize_coffread () +INIT_GDB_FILE (coffread) { add_symtab_fns (bfd_target_coff_flavour, &coff_sym_fns); diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c index 56ef033..cf70fe4 100644 --- a/gdb/compile/compile-cplus-types.c +++ b/gdb/compile/compile-cplus-types.c @@ -1395,9 +1395,7 @@ gcc_cp_plugin::pop_binding_level (const char *debug_name) return pop_binding_level (); } -void _initialize_compile_cplus_types (); -void -_initialize_compile_cplus_types () +INIT_GDB_FILE (compile_cplus_types) { add_setshow_boolean_cmd ("compile-cplus-types", no_class, &debug_compile_cplus_types, _("\ diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c index ab4cb0b..229e155 100644 --- a/gdb/compile/compile.c +++ b/gdb/compile/compile.c @@ -868,9 +868,7 @@ compile_command (const char *args, int from_tty) /* See compile.h. */ cmd_list_element *compile_cmd_element = nullptr; -void _initialize_compile (); -void -_initialize_compile () +INIT_GDB_FILE (compile) { compile_cmd_element = add_prefix_cmd ("compile", class_obscure, compile_command, diff --git a/gdb/complaints.c b/gdb/complaints.c index 2f58af2..3c7f9bc 100644 --- a/gdb/complaints.c +++ b/gdb/complaints.c @@ -188,9 +188,7 @@ test_complaints () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_complaints (); -void -_initialize_complaints () +INIT_GDB_FILE (complaints) { add_setshow_zinteger_cmd ("complaints", class_support, &stop_whining, _("\ diff --git a/gdb/completer.c b/gdb/completer.c index 658a0c6..0d68e76 100644 --- a/gdb/completer.c +++ b/gdb/completer.c @@ -3513,9 +3513,7 @@ skip_over_slash_fmt (completion_tracker &tracker, const char **args) return false; } -void _initialize_completer (); -void -_initialize_completer () +INIT_GDB_FILE (completer) { /* Setup some readline completion globals. */ rl_completion_word_break_hook = gdb_completion_word_break_characters; diff --git a/gdb/configure.tgt b/gdb/configure.tgt index e9b3068..255c77e 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -150,14 +150,15 @@ aarch64*-*-linux*) arch/aarch64-scalable-linux.o \ arch/arm.o arch/arm-linux.o arch/arm-get-next-pcs.o \ arm-tdep.o arm-linux-tdep.o \ - glibc-tdep.o linux-tdep.o solib-svr4.o svr4-tls-tdep.o \ + glibc-tdep.o linux-tdep.o solib-svr4.o \ + solib-svr4-linux.o svr4-tls-tdep.o \ symfile-mem.o linux-record.o" ;; alpha*-*-linux*) # Target: Little-endian Alpha running Linux gdb_target_obs="alpha-mdebug-tdep.o alpha-linux-tdep.o \ - linux-tdep.o solib-svr4.o" + linux-tdep.o solib-svr4.o solib-svr4-linux.o" ;; alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) # Target: NetBSD/alpha @@ -179,7 +180,7 @@ amdgcn*-*-*) am33_2.0*-*-linux*) # Target: Matsushita mn10300 (AM33) running Linux gdb_target_obs="mn10300-tdep.o mn10300-linux-tdep.o linux-tdep.o \ - solib-svr4.o" + solib-svr4.o solib-svr4-linux.o" ;; arc*-*-elf32) @@ -189,7 +190,8 @@ arc*-*-elf32) arc*-*-linux*) # Target: ARC machine running Linux - gdb_target_obs="arc-linux-tdep.o linux-tdep.o solib-svr4.o" + gdb_target_obs="arc-linux-tdep.o linux-tdep.o solib-svr4.o \ + solib-svr4-linux.o" ;; arm*-wince-pe | arm*-*-mingw32ce*) @@ -199,7 +201,8 @@ arm*-wince-pe | arm*-*-mingw32ce*) arm*-*-linux*) # Target: ARM based machine running GNU/Linux gdb_target_obs="arch/arm-linux.o arm-linux-tdep.o glibc-tdep.o \ - solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o" + solib-svr4.o solib-svr4-linux.o symfile-mem.o \ + linux-tdep.o linux-record.o" ;; arm*-*-freebsd*) # Target: FreeBSD/arm @@ -239,13 +242,14 @@ bpf-*-*) cris*) # Target: CRIS - gdb_target_obs="cris-tdep.o cris-linux-tdep.o linux-tdep.o solib-svr4.o" + gdb_target_obs="cris-tdep.o cris-linux-tdep.o linux-tdep.o \ + solib-svr4.o solib-svr4-linux.o" ;; csky*-*-linux*) # Target: CSKY running GNU/Linux gdb_target_obs="csky-tdep.o csky-linux-tdep.o glibc-tdep.o \ - linux-tdep.o solib-svr4.o" + linux-tdep.o solib-svr4.o solib-svr4-linux.o" ;; csky*-*-*) @@ -270,7 +274,8 @@ h8300-*-*) hppa*-*-linux*) # Target: HP PA-RISC running Linux gdb_target_obs="hppa-linux-tdep.o glibc-tdep.o \ - linux-tdep.o solib-svr4.o symfile-mem.o" + linux-tdep.o solib-svr4.o solib-svr4-linux.o \ + symfile-mem.o" ;; hppa*-*-netbsd*) # Target: NetBSD/hppa @@ -315,7 +320,7 @@ i[34567]86-*-linux*) # Target: Intel 386 running GNU/Linux gdb_target_obs="i386-linux-tdep.o \ glibc-tdep.o \ - solib-svr4.o symfile-mem.o \ + solib-svr4.o solib-svr4-linux.o symfile-mem.o \ linux-tdep.o linux-record.o \ arch/i386-linux-tdesc.o \ arch/x86-linux-tdesc-features.o" @@ -345,7 +350,7 @@ i[34567]86-*-go32* | i[34567]86-*-msdosdjgpp*) ia64-*-linux*) # Target: Intel IA-64 running GNU/Linux gdb_target_obs="ia64-linux-tdep.o linux-tdep.o \ - solib-svr4.o symfile-mem.o" + solib-svr4.o solib-svr4-linux.o symfile-mem.o" ;; ia64-*-*vms*) # Target: Intel IA-64 running OpenVMS @@ -363,7 +368,8 @@ lm32-*-*) loongarch*-*-linux*) # Target: LoongArch running Linux gdb_target_obs="loongarch-linux-tdep.o glibc-tdep.o \ - linux-tdep.o solib-svr4.o linux-record.o" + linux-tdep.o solib-svr4.o solib-svr4-linux.o \ + linux-record.o" ;; m32c-*-*) @@ -374,8 +380,8 @@ m32c-*-*) m32r*-*-linux*) # Target: Renesas M32R running GNU/Linux gdb_target_obs="m32r-tdep.o m32r-linux-tdep.o \ - glibc-tdep.o solib-svr4.o symfile-mem.o \ - linux-tdep.o" + glibc-tdep.o solib-svr4.o solib-svr4-linux.o \ + symfile-mem.o linux-tdep.o" ;; m32r*-*-*) # Target: Renesas m32r processor @@ -395,7 +401,8 @@ fido-*-elf*) m68*-*-linux*) # Target: Motorola m68k with a.out and ELF gdb_target_obs="m68k-tdep.o m68k-linux-tdep.o solib-svr4.o \ - linux-tdep.o glibc-tdep.o symfile-mem.o" + solib-svr4-linux.o linux-tdep.o glibc-tdep.o \ + symfile-mem.o" ;; m68*-*-netbsd* | m68*-*-knetbsd*-gnu) # Target: NetBSD/m68k @@ -415,7 +422,7 @@ mep-*-*) microblaze*-linux-*|microblaze*-*-linux*) # Target: Xilinx MicroBlaze running Linux gdb_target_obs="microblaze-tdep.o microblaze-linux-tdep.o solib-svr4.o \ - symfile-mem.o linux-tdep.o" + solib-svr4-linux.o symfile-mem.o linux-tdep.o" ;; microblaze*-*-*) # Target: Xilinx MicroBlaze running standalone @@ -425,7 +432,8 @@ microblaze*-*-*) mips*-*-linux*) # Target: Linux/MIPS gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.o \ - solib-svr4.o symfile-mem.o linux-tdep.o" + solib-svr4.o solib-svr4-linux.o symfile-mem.o \ + linux-tdep.o" ;; mips*-*-netbsd* | mips*-*-knetbsd*-gnu) # Target: MIPS running NetBSD @@ -469,7 +477,8 @@ nds32*-*-elf) or1k*-*-linux*) # Target: OpenCores OpenRISC 1000 32-bit running Linux gdb_target_obs="or1k-tdep.o or1k-linux-tdep.o solib-svr4.o \ - symfile-mem.o glibc-tdep.o linux-tdep.o" + solib-svr4-linux.o symfile-mem.o glibc-tdep.o \ + linux-tdep.o" ;; or1k-*-* | or1knd-*-*) @@ -503,7 +512,8 @@ powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*) powerpc*-*-linux*) # Target: PowerPC running Linux gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \ - ppc64-tdep.o solib-svr4.o svr4-tls-tdep.o \ + ppc64-tdep.o solib-svr4.o solib-svr4-linux.o \ + svr4-tls-tdep.o \ glibc-tdep.o symfile-mem.o linux-tdep.o \ ravenscar-thread.o ppc-ravenscar-thread.o \ linux-record.o \ @@ -524,6 +534,7 @@ powerpc*-*-*) s390*-*-linux*) # Target: S390 running Linux gdb_target_obs="s390-linux-tdep.o s390-tdep.o solib-svr4.o \ + solib-svr4-linux.o \ linux-tdep.o linux-record.o symfile-mem.o \ svr4-tls-tdep.o" ;; @@ -536,7 +547,8 @@ riscv*-*-freebsd*) riscv*-*-linux*) # Target: Linux/RISC-V gdb_target_obs="riscv-linux-tdep.o riscv-canonicalize-syscall-gen.o \ - glibc-tdep.o linux-tdep.o solib-svr4.o symfile-mem.o \ + glibc-tdep.o linux-tdep.o solib-svr4.o solib-svr4-linux.o \ + symfile-mem.o \ linux-record.o svr4-tls-tdep.o" ;; @@ -558,7 +570,7 @@ rx-*-*) sh*-*-linux*) # Target: GNU/Linux Super-H gdb_target_obs="sh-tdep.o sh-linux-tdep.o \ - solib-svr4.o symfile-mem.o \ + solib-svr4.o solib-svr4-linux.o symfile-mem.o \ glibc-tdep.o linux-tdep.o" ;; sh*-*-netbsd* | sh*-*-knetbsd*-gnu) @@ -577,7 +589,8 @@ sh*) sparc-*-linux*) # Target: GNU/Linux SPARC gdb_target_obs="sparc-tdep.o \ - sparc-linux-tdep.o solib-svr4.o symfile-mem.o \ + sparc-linux-tdep.o solib-svr4.o solib-svr4-linux.o \ + symfile-mem.o \ linux-tdep.o \ ravenscar-thread.o sparc-ravenscar-thread.o" if test "x$have_64_bit_bfd" = "xyes"; then @@ -590,7 +603,8 @@ sparc64-*-linux*) # Target: GNU/Linux UltraSPARC gdb_target_obs="sparc64-tdep.o \ sparc64-linux-tdep.o sparc-tdep.o \ - sparc-linux-tdep.o solib-svr4.o linux-tdep.o \ + sparc-linux-tdep.o solib-svr4.o solib-svr4-linux.o \ + linux-tdep.o \ ravenscar-thread.o sparc-ravenscar-thread.o" ;; sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu) @@ -658,6 +672,7 @@ tic6x-*-*) tilegx-*-linux*) # Target: TILE-Gx gdb_target_obs="tilegx-tdep.o tilegx-linux-tdep.o solib-svr4.o \ + solib-svr4-linux.o \ symfile-mem.o glibc-tdep.o linux-tdep.o" ;; @@ -708,7 +723,8 @@ x86_64-*-linux*) # Target: GNU/Linux x86-64 gdb_target_obs="amd64-linux-tdep.o ${i386_tobjs} \ i386-linux-tdep.o glibc-tdep.o svr4-tls-tdep.o \ - solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o \ + solib-svr4.o solib-svr4-linux.o symfile-mem.o \ + linux-tdep.o linux-record.o \ arch/i386-linux-tdesc.o arch/amd64-linux-tdesc.o \ arch/x86-linux-tdesc-features.o" ;; diff --git a/gdb/copying.c b/gdb/copying.c index af465e5..a198030 100644 --- a/gdb/copying.c +++ b/gdb/copying.c @@ -639,9 +639,7 @@ show_warranty_command (const char *ignore, int from_tty) gdb_printf ("\n"); } -void _initialize_copying (); -void -_initialize_copying () +INIT_GDB_FILE (copying) { add_cmd ("copying", no_set_class, show_copying_command, _("Conditions for redistributing copies of GDB."), diff --git a/gdb/corefile.c b/gdb/corefile.c index 9f27f14..a2c75c0 100644 --- a/gdb/corefile.c +++ b/gdb/corefile.c @@ -391,9 +391,7 @@ set_gnutarget (const char *newtarget) set_gnutarget_command (NULL, 0, NULL); } -void _initialize_core (); -void -_initialize_core () +INIT_GDB_FILE (core) { cmd_list_element *core_file_cmd = add_cmd ("core-file", class_files, core_file_command, _("\ diff --git a/gdb/corelow.c b/gdb/corelow.c index b5895de..24b949b 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -1180,7 +1180,7 @@ core_target_open (const char *arg, int from_tty) if (current_program_space->exec_bfd () == nullptr) set_gdbarch_from_file (current_program_space->core_bfd ()); - post_create_inferior (from_tty); + post_create_inferior (from_tty, true); /* Now go through the target stack looking for threads since there may be a thread_stratum target loaded on top of target core by @@ -2157,9 +2157,7 @@ core_target_find_mapped_file (const char *filename, return targ->lookup_mapped_file_info (filename, addr); } -void _initialize_corelow (); -void -_initialize_corelow () +INIT_GDB_FILE (corelow) { add_target (core_target_info, core_target_open, filename_maybe_quoted_completer); diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c index 8f2067b..d8cfc08 100644 --- a/gdb/cp-abi.c +++ b/gdb/cp-abi.c @@ -384,9 +384,7 @@ show_cp_abi_cmd (const char *args, int from_tty) uiout->text (").\n"); } -void _initialize_cp_abi (); -void -_initialize_cp_abi () +INIT_GDB_FILE (cp_abi) { struct cmd_list_element *c; diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index cb0babb..cafd6b2 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -2137,9 +2137,7 @@ canonicalize_tests () #endif -void _initialize_cp_name_parser (); -void -_initialize_cp_name_parser () +INIT_GDB_FILE (cp_name_parser) { #if GDB_SELF_TEST selftests::register_test ("canonicalize", canonicalize_tests); diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c index d285e86..009ea4b 100644 --- a/gdb/cp-namespace.c +++ b/gdb/cp-namespace.c @@ -1049,9 +1049,7 @@ maintenance_cplus_namespace (const char *args, int from_tty) gdb_printf (_("The `maint namespace' command was removed.\n")); } -void _initialize_cp_namespace (); -void -_initialize_cp_namespace () +INIT_GDB_FILE (cp_namespace) { struct cmd_list_element *cmd; diff --git a/gdb/cp-support.c b/gdb/cp-support.c index 9001329..cab7110 100644 --- a/gdb/cp-support.c +++ b/gdb/cp-support.c @@ -2387,9 +2387,7 @@ find_toplevel_char (const char *s, char c) return 0; } -void _initialize_cp_support (); -void -_initialize_cp_support () +INIT_GDB_FILE (cp_support) { cmd_list_element *maintenance_cplus = add_basic_prefix_cmd ("cplus", class_maintenance, diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index 2117718..252072b 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -797,9 +797,7 @@ test_print_fields (gdbarch *arch) #endif -void _initialize_cp_valprint (); -void -_initialize_cp_valprint () +INIT_GDB_FILE (cp_valprint) { #if GDB_SELF_TEST selftests::register_test_foreach_arch ("print-fields", test_print_fields); diff --git a/gdb/cris-linux-tdep.c b/gdb/cris-linux-tdep.c index b2ac80d..a39441e 100644 --- a/gdb/cris-linux-tdep.c +++ b/gdb/cris-linux-tdep.c @@ -23,6 +23,7 @@ #include "osabi.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "solib-svr4.h" #include "symtab.h" #include "gdbarch.h" @@ -41,14 +42,10 @@ cris_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_fetch_tls_load_module_address (gdbarch, svr4_fetch_objfile_link_map); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); - + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); } -void _initialize_cris_linux_tdep (); -void -_initialize_cris_linux_tdep () +INIT_GDB_FILE (cris_linux_tdep) { gdbarch_register_osabi (bfd_arch_cris, 0, GDB_OSABI_LINUX, cris_linux_init_abi); diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 722c0a4..b49e641 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -3816,9 +3816,7 @@ static void cris_iterate_over_regset_sections (struct gdbarch *gdbarch, &cris_regset, NULL, cb_data); } -void _initialize_cris_tdep (); -void -_initialize_cris_tdep () +INIT_GDB_FILE (cris_tdep) { gdbarch_register (bfd_arch_cris, cris_gdbarch_init, cris_dump_tdep); diff --git a/gdb/csky-linux-tdep.c b/gdb/csky-linux-tdep.c index 2afb358..0651645 100644 --- a/gdb/csky-linux-tdep.c +++ b/gdb/csky-linux-tdep.c @@ -22,6 +22,7 @@ #include "osabi.h" #include "glibc-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "gdbarch.h" #include "solib-svr4.h" #include "regset.h" @@ -407,8 +408,7 @@ csky_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Shared library handling. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, @@ -426,9 +426,7 @@ csky_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) &csky_linux_rt_sigreturn_tramp_frame_kernel_4x); } -void _initialize_csky_linux_tdep (); -void -_initialize_csky_linux_tdep () +INIT_GDB_FILE (csky_linux_tdep) { gdbarch_register_osabi (bfd_arch_csky, 0, GDB_OSABI_LINUX, csky_linux_init_abi); diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c index 350612f..e6c6e2c 100644 --- a/gdb/csky-tdep.c +++ b/gdb/csky-tdep.c @@ -2882,9 +2882,7 @@ csky_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_csky_tdep (); -void -_initialize_csky_tdep () +INIT_GDB_FILE (csky_tdep) { gdbarch_register (bfd_arch_csky, csky_gdbarch_init); diff --git a/gdb/darwin-nat-info.c b/gdb/darwin-nat-info.c index b5784be..3ec49af 100644 --- a/gdb/darwin-nat-info.c +++ b/gdb/darwin-nat-info.c @@ -839,9 +839,7 @@ info_mach_exceptions_command (const char *args, int from_tty) } } -void _initialize_darwin_info_commands (); -void -_initialize_darwin_info_commands () +INIT_GDB_FILE (darwin_info_commands) { add_info ("mach-tasks", info_mach_tasks_command, _("Get list of tasks in system.")); diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index ffbf949..7acf639 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -2469,9 +2469,7 @@ darwin_nat_target::supports_multi_process () return true; } -void _initialize_darwin_nat (); -void -_initialize_darwin_nat () +INIT_GDB_FILE (darwin_nat) { kern_return_t kret; diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 8d0ebab..260f583 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -248,9 +248,7 @@ static const struct sym_fns aout_sym_fns = NULL, /* sym_probe_fns */ }; -void _initialize_dbxread (); -void -_initialize_dbxread () +INIT_GDB_FILE (dbxread) { add_symtab_fns (bfd_target_aout_flavour, &aout_sym_fns); } diff --git a/gdb/dcache.c b/gdb/dcache.c index 2c5484d..7a15278 100644 --- a/gdb/dcache.c +++ b/gdb/dcache.c @@ -679,9 +679,7 @@ set_dcache_line_size (const char *args, int from_tty, target_dcache_invalidate (current_program_space->aspace); } -void _initialize_dcache (); -void -_initialize_dcache () +INIT_GDB_FILE (dcache) { add_setshow_boolean_cmd ("remotecache", class_support, &dcache_enabled_p, _("\ diff --git a/gdb/debuginfod-support.c b/gdb/debuginfod-support.c index d573b8d..8f28fd5 100644 --- a/gdb/debuginfod-support.c +++ b/gdb/debuginfod-support.c @@ -594,9 +594,7 @@ maint_get_debuginfod_download_sections () /* Register debuginfod commands. */ -void _initialize_debuginfod (); -void -_initialize_debuginfod () +INIT_GDB_FILE (debuginfod) { /* set/show debuginfod */ add_setshow_prefix_cmd ("debuginfod", class_run, @@ -190,8 +190,6 @@ extern std::string relocate_gdb_directory (const char *initial, bool relocatable /* From top.c */ -typedef void initialize_file_ftype (void); - extern char *gdb_readline_wrapper (const char *); extern const char *command_line_input (std::string &cmd_line_buffer, @@ -407,4 +405,10 @@ DEF_ENUM_FLAGS_TYPE (enum user_selected_what_flag, user_selected_what); #include "utils.h" +/* File initialization macro. This is found by make-init-c and used + to construct the gdb initialization function. */ +#define INIT_GDB_FILE(NAME) \ + extern void _initialize_ ## NAME (); \ + void _initialize_ ## NAME () + #endif /* GDB_DEFS_H */ diff --git a/gdb/dicos-tdep.c b/gdb/dicos-tdep.c index 4dfac76..d6bc9a5 100644 --- a/gdb/dicos-tdep.c +++ b/gdb/dicos-tdep.c @@ -27,7 +27,7 @@ void dicos_init_abi (struct gdbarch *gdbarch) { - set_gdbarch_so_ops (gdbarch, &solib_target_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_target_solib_ops); /* Every process, although has its own address space, sees the same list of shared libraries. There's no "main executable" in DICOS, diff --git a/gdb/disasm-selftests.c b/gdb/disasm-selftests.c index 3ccc174..0d06065 100644 --- a/gdb/disasm-selftests.c +++ b/gdb/disasm-selftests.c @@ -418,9 +418,7 @@ disassemble_insn (gdbarch *gdbarch, gdb::byte_vector &insn, } /* namespace selftests */ -void _initialize_disasm_selftests (); -void -_initialize_disasm_selftests () +INIT_GDB_FILE (disasm_selftests) { selftests::register_test_foreach_arch ("print_one_insn", selftests::print_one_insn_test); diff --git a/gdb/disasm.c b/gdb/disasm.c index 2a7a80c..b731192 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -1470,9 +1470,7 @@ disassembler_options_completer (struct cmd_list_element *ignore, /* Initialization code. */ -void _initialize_disasm (); -void -_initialize_disasm () +INIT_GDB_FILE (disasm) { /* Add the command that controls the disassembler options. */ set_show_commands set_show_disas_opts diff --git a/gdb/displaced-stepping.c b/gdb/displaced-stepping.c index 7df45d6..6699296 100644 --- a/gdb/displaced-stepping.c +++ b/gdb/displaced-stepping.c @@ -315,9 +315,7 @@ displaced_step_buffers::restore_in_ptid (ptid_t ptid) } } -void _initialize_displaced_stepping (); -void -_initialize_displaced_stepping () +INIT_GDB_FILE (displaced_stepping) { add_setshow_boolean_cmd ("displaced", class_maintenance, &debug_displaced, _("\ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 4ef6406..b6d626b 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -42755,6 +42755,23 @@ reports and error and the command is aborted. @item show watchdog Show the current setting of the target wait timeout. + +@kindex maint set console-translation-mode +@kindex maint show console-translation-mode +@item maint set console-translation-mode @r{[}binary|text@r{]} +@itemx maint show console-translation-mode +Controls the translation mode of @value{GDBN} stdout/stderr. MS-Windows +only. Useful for running the @value{GDBN} testsuite. + +The translation mode values are as follows: +@table @code +@item binary +No translation. +@item text +Translate @samp{\n} (LF, a single Line Feed) into @samp{\r\n} (CR-LF, a +Carriage Return-Line Feed combination). +@end table + @end table @node Remote Protocol diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c index fa60c34..c663571 100644 --- a/gdb/dtrace-probe.c +++ b/gdb/dtrace-probe.c @@ -889,9 +889,7 @@ info_probes_dtrace_command (const char *arg, int from_tty) info_probes_for_spops (arg, from_tty, &dtrace_static_probe_ops); } -void _initialize_dtrace_probe (); -void -_initialize_dtrace_probe () +INIT_GDB_FILE (dtrace_probe) { all_static_probe_ops.push_back (&dtrace_static_probe_ops); diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c index f8440b3..445a7b4 100644 --- a/gdb/dummy-frame.c +++ b/gdb/dummy-frame.c @@ -425,9 +425,7 @@ maintenance_print_dummy_frames (const char *args, int from_tty) } } -void _initialize_dummy_frame (); -void -_initialize_dummy_frame () +INIT_GDB_FILE (dummy_frame) { add_cmd ("dummy-frames", class_maintenance, maintenance_print_dummy_frames, _("Print the contents of the internal dummy-frame stack."), diff --git a/gdb/dwarf2/cooked-index-entry.c b/gdb/dwarf2/cooked-index-entry.c index 560d695..863ddd6 100644 --- a/gdb/dwarf2/cooked-index-entry.c +++ b/gdb/dwarf2/cooked-index-entry.c @@ -234,9 +234,7 @@ cooked_index_entry::write_scope (struct obstack *storage, obstack_grow (storage, sep, strlen (sep)); } -void _initialize_dwarf2_entry (); -void -_initialize_dwarf2_entry () +INIT_GDB_FILE (dwarf2_entry) { #if GDB_SELF_TEST selftests::register_test ("cooked_index_entry::compare", test_compare); diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c index 7232f28..6209590 100644 --- a/gdb/dwarf2/cooked-index.c +++ b/gdb/dwarf2/cooked-index.c @@ -327,9 +327,7 @@ maintenance_wait_for_index_cache (const char *args, int from_tty) wait_for_index_cache (0); } -void _initialize_cooked_index (); -void -_initialize_cooked_index () +INIT_GDB_FILE (cooked_index) { add_cmd ("wait-for-index-cache", class_maintenance, maintenance_wait_for_index_cache, _("\ diff --git a/gdb/dwarf2/frame-tailcall.c b/gdb/dwarf2/frame-tailcall.c index 6464ffb..e31ae10 100644 --- a/gdb/dwarf2/frame-tailcall.c +++ b/gdb/dwarf2/frame-tailcall.c @@ -478,9 +478,7 @@ const struct frame_unwind_legacy dwarf2_tailcall_frame_unwind ( tailcall_frame_prev_arch ); -void _initialize_tailcall_frame (); -void -_initialize_tailcall_frame () +INIT_GDB_FILE (tailcall_frame) { cache_htab = htab_create_alloc (50, cache_hash, cache_eq, NULL, xcalloc, xfree); diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c index 1b4de0d..7a37285 100644 --- a/gdb/dwarf2/frame.c +++ b/gdb/dwarf2/frame.c @@ -2247,9 +2247,7 @@ dwarf2_build_frame_info (struct objfile *objfile) set_comp_unit (objfile, unit.release ()); } -void _initialize_dwarf2_frame (); -void -_initialize_dwarf2_frame () +INIT_GDB_FILE (dwarf2_frame) { #if GDB_SELF_TEST selftests::register_test_foreach_arch ("execute_cfa_program", diff --git a/gdb/dwarf2/index-cache.c b/gdb/dwarf2/index-cache.c index 1715beb..cfe8ce9 100644 --- a/gdb/dwarf2/index-cache.c +++ b/gdb/dwarf2/index-cache.c @@ -342,9 +342,7 @@ show_index_cache_stats_command (const char *arg, int from_tty) indent, global_index_cache.n_misses ()); } -void _initialize_index_cache (); -void -_initialize_index_cache () +INIT_GDB_FILE (index_cache) { /* Set the default index cache directory. */ std::string cache_dir = get_standard_cache_dir (); diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c index 614bdcd..0a3b9d0 100644 --- a/gdb/dwarf2/index-write.c +++ b/gdb/dwarf2/index-write.c @@ -1768,9 +1768,7 @@ gdb_index () } /* selftests namespace. */ #endif -void _initialize_dwarf_index_write (); -void -_initialize_dwarf_index_write () +INIT_GDB_FILE (dwarf_index_write) { #if GDB_SELF_TEST selftests::register_test ("gdb_index", selftests::gdb_index); diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index dee6127..37c85d8 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -4154,9 +4154,7 @@ const struct symbol_computed_ops dwarf2_loclist_funcs = { loclist_generate_c_location }; -void _initialize_dwarf2loc (); -void -_initialize_dwarf2loc () +INIT_GDB_FILE (dwarf2loc) { add_setshow_zuinteger_cmd ("entry-values", class_maintenance, &entry_values_debug, diff --git a/gdb/dwarf2/read-gdb-index.c b/gdb/dwarf2/read-gdb-index.c index 70110b7..464fbdd 100644 --- a/gdb/dwarf2/read-gdb-index.c +++ b/gdb/dwarf2/read-gdb-index.c @@ -1562,10 +1562,7 @@ dwarf2_read_gdb_index return true; } -void _initialize_read_gdb_index (); - -void -_initialize_read_gdb_index () +INIT_GDB_FILE (read_gdb_index) { add_setshow_boolean_cmd ("use-deprecated-index-sections", no_class, &use_deprecated_index_sections, _("\ diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 2f27b7c..5e18e45 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -19694,9 +19694,7 @@ show_check_physname (struct ui_file *file, int from_tty, value); } -void _initialize_dwarf2_read (); -void -_initialize_dwarf2_read () +INIT_GDB_FILE (dwarf2_read) { add_setshow_prefix_cmd ("dwarf", class_maintenance, _("\ diff --git a/gdb/elfread.c b/gdb/elfread.c index 7dd8fc7..ae74978 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -1513,9 +1513,7 @@ static const struct gnu_ifunc_fns elf_gnu_ifunc_fns = elf_gnu_ifunc_resolver_return_stop }; -void _initialize_elfread (); -void -_initialize_elfread () +INIT_GDB_FILE (elfread) { add_symtab_fns (bfd_target_elf_flavour, &elf_sym_fns); diff --git a/gdb/event-top.c b/gdb/event-top.c index 968117c..f96982a 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -1650,9 +1650,7 @@ show_debug_event_loop_command (struct ui_file *file, int from_tty, gdb_printf (file, _("Event loop debugging is %s.\n"), value); } -void _initialize_event_top (); -void -_initialize_event_top () +INIT_GDB_FILE (event_top) { add_setshow_enum_cmd ("event-loop", class_maintenance, debug_event_loop_enum, @@ -338,6 +338,14 @@ exec_file_locate_attach (int pid, int defer_bp_reset, int from_tty) gdb::unique_xmalloc_ptr<char> exec_file_host = exec_file_find (exec_file_target, NULL); + if (exec_file_host == nullptr) + { + warning (_("No executable has been specified, and target executable " + "%ps could not be found. Try using the \"%ps\" command."), + styled_string (file_name_style.style (), exec_file_target), + styled_string (command_style.style (), "file")); + return; + } if (defer_bp_reset) add_flags |= SYMFILE_DEFER_BP_RESET; @@ -1069,9 +1077,7 @@ exec_target::find_memory_regions (find_memory_region_ftype func, void *data) return objfile_find_memory_regions (this, func, data); } -void _initialize_exec (); -void -_initialize_exec () +INIT_GDB_FILE (exec) { struct cmd_list_element *c; diff --git a/gdb/extension.c b/gdb/extension.c index 6d14a20..d34dbcd 100644 --- a/gdb/extension.c +++ b/gdb/extension.c @@ -1102,9 +1102,7 @@ ext_lang_before_prompt (const char *current_gdb_prompt) } } -void _initialize_extension (); -void -_initialize_extension () +INIT_GDB_FILE (extension) { gdb::observers::before_prompt.attach (ext_lang_before_prompt, "extension"); } diff --git a/gdb/extract-store-integer.c b/gdb/extract-store-integer.c index 4f20092..d73040b 100644 --- a/gdb/extract-store-integer.c +++ b/gdb/extract-store-integer.c @@ -337,9 +337,7 @@ extract_integer_test () #endif -void _initialize_extract_store_integer (); -void -_initialize_extract_store_integer () +INIT_GDB_FILE (extract_store_integer) { #if GDB_SELF_TEST selftests::register_test ("copy_integer_to_size", diff --git a/gdb/f-lang.c b/gdb/f-lang.c index 3e31dce..1aa9fc4 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -1836,9 +1836,7 @@ builtin_f_type (struct gdbarch *gdbarch) static struct cmd_list_element *set_fortran_list; static struct cmd_list_element *show_fortran_list; -void _initialize_f_language (); -void -_initialize_f_language () +INIT_GDB_FILE (f_language) { add_setshow_prefix_cmd ("fortran", no_class, diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index 0f3b2a6..a0812b3 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -719,9 +719,7 @@ info_common_command (const char *comname, int from_tty) } } -void _initialize_f_valprint (); -void -_initialize_f_valprint () +INIT_GDB_FILE (f_valprint) { add_info ("common", info_common_command, _("Print out the values contained in a Fortran COMMON block.")); diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c index 19c4a7b..935b947 100644 --- a/gdb/fbsd-nat.c +++ b/gdb/fbsd-nat.c @@ -2470,9 +2470,7 @@ fbsd_nat_get_siginfo (ptid_t ptid, siginfo_t *siginfo) return (true); } -void _initialize_fbsd_nat (); -void -_initialize_fbsd_nat () +INIT_GDB_FILE (fbsd_nat) { add_setshow_boolean_cmd ("fbsd-lwp", class_maintenance, &debug_fbsd_lwp, _("\ diff --git a/gdb/filesystem.c b/gdb/filesystem.c index 51e1c3f..a272c13 100644 --- a/gdb/filesystem.c +++ b/gdb/filesystem.c @@ -76,9 +76,7 @@ is \"%s\".\n"), value); } -void _initialize_filesystem (); -void -_initialize_filesystem () +INIT_GDB_FILE (filesystem) { add_setshow_enum_cmd ("target-file-system-kind", class_files, diff --git a/gdb/findcmd.c b/gdb/findcmd.c index 993c487..4e47877 100644 --- a/gdb/findcmd.c +++ b/gdb/findcmd.c @@ -279,9 +279,7 @@ find_command (const char *args, int from_tty) found_count > 1 ? "s" : ""); } -void _initialize_mem_search (); -void -_initialize_mem_search () +INIT_GDB_FILE (mem_search) { add_cmd ("find", class_vars, find_command, _("\ Search memory for a sequence of bytes.\n\ diff --git a/gdb/fork-child.c b/gdb/fork-child.c index 8abfbda..fd7f1e0 100644 --- a/gdb/fork-child.c +++ b/gdb/fork-child.c @@ -153,9 +153,7 @@ show_startup_with_shell (struct ui_file *file, int from_tty, value); } -void _initialize_fork_child (); -void -_initialize_fork_child () +INIT_GDB_FILE (fork_child) { add_setshow_filename_cmd ("exec-wrapper", class_run, &exec_wrapper, _("\ Set a wrapper for running programs.\n\ diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c index c60a349..95768fa 100644 --- a/gdb/frame-unwind.c +++ b/gdb/frame-unwind.c @@ -614,9 +614,7 @@ maintenance_enable_frame_unwinders (const char *args, int from_tty) enable_disable_frame_unwinders (args, from_tty, true); } -void _initialize_frame_unwind (); -void -_initialize_frame_unwind () +INIT_GDB_FILE (frame_unwind) { /* Add "maint info frame-unwinders". */ add_cmd ("frame-unwinders", diff --git a/gdb/frame.c b/gdb/frame.c index fe5336f..fc4cbca 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -3424,9 +3424,7 @@ frame_info_ptr::reinflate () const return m_ptr; } -void _initialize_frame (); -void -_initialize_frame () +INIT_GDB_FILE (frame) { obstack_init (&frame_cache_obstack); diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c index 067b983..2a0fe1b 100644 --- a/gdb/frv-linux-tdep.c +++ b/gdb/frv-linux-tdep.c @@ -482,9 +482,7 @@ frv_linux_elf_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_frv_linux_tdep (); -void -_initialize_frv_linux_tdep () +INIT_GDB_FILE (frv_linux_tdep) { gdbarch_register_osabi (bfd_arch_frv, 0, GDB_OSABI_LINUX, frv_linux_init_abi); diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 3608872..b2d6e1a 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -25,6 +25,7 @@ #include "frame.h" #include "frame-unwind.h" #include "frame-base.h" +#include "solib-frv.h" #include "trad-frame.h" #include "dis-asm.h" #include "sim-regno.h" @@ -1554,7 +1555,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_convert_from_func_ptr_addr (gdbarch, frv_convert_from_func_ptr_addr); - set_gdbarch_so_ops (gdbarch, &frv_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_frv_solib_ops); /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); @@ -1569,9 +1570,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_frv_tdep (); -void -_initialize_frv_tdep () +INIT_GDB_FILE (frv_tdep) { gdbarch_register (bfd_arch_frv, frv_gdbarch_init); } diff --git a/gdb/frv-tdep.h b/gdb/frv-tdep.h index 07982b4..7b51b42 100644 --- a/gdb/frv-tdep.h +++ b/gdb/frv-tdep.h @@ -118,7 +118,4 @@ CORE_ADDR frv_fdpic_find_canonical_descriptor (CORE_ADDR entry_point); needed for TLS support. */ CORE_ADDR frv_fetch_objfile_link_map (struct objfile *objfile); -struct solib_ops; -extern const solib_ops frv_so_ops; - #endif /* GDB_FRV_TDEP_H */ diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c index f84e225..3384929 100644 --- a/gdb/ft32-tdep.c +++ b/gdb/ft32-tdep.c @@ -621,9 +621,7 @@ ft32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Register this machine's init routine. */ -void _initialize_ft32_tdep (); -void -_initialize_ft32_tdep () +INIT_GDB_FILE (ft32_tdep) { gdbarch_register (bfd_arch_ft32, ft32_gdbarch_init); } diff --git a/gdb/gcore.c b/gdb/gcore.c index fa15d06..d532652 100644 --- a/gdb/gcore.c +++ b/gdb/gcore.c @@ -861,9 +861,7 @@ gcore_find_signalled_thread () return nullptr; } -void _initialize_gcore (); -void -_initialize_gcore () +INIT_GDB_FILE (gcore) { cmd_list_element *generate_core_file_cmd = add_com ("generate-core-file", class_files, gcore_command, _("\ diff --git a/gdb/gdb-demangle.c b/gdb/gdb-demangle.c index 239306a..c285788 100644 --- a/gdb/gdb-demangle.c +++ b/gdb/gdb-demangle.c @@ -208,9 +208,7 @@ demangle_command (const char *args, int from_tty) error (_("Can't demangle \"%s\""), name); } -void _initialize_gdb_demangle (); -void -_initialize_gdb_demangle () +INIT_GDB_FILE (gdb_demangle) { int i, ndems; diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c index 06d6f5c..2e477eb 100644 --- a/gdb/gdb_bfd.c +++ b/gdb/gdb_bfd.c @@ -1346,9 +1346,7 @@ gdb_bfd_init () error (_("fatal error: libbfd ABI mismatch")); } -void _initialize_gdb_bfd (); -void -_initialize_gdb_bfd () +INIT_GDB_FILE (gdb_bfd) { add_cmd ("bfds", class_maintenance, maintenance_info_bfds, _("\ List the BFDs that are currently open."), diff --git a/gdb/gdbarch-gen.c b/gdb/gdbarch-gen.c index 32d1659..fc570d3 100644 --- a/gdb/gdbarch-gen.c +++ b/gdb/gdbarch-gen.c @@ -157,7 +157,7 @@ struct gdbarch gdbarch_single_step_through_delay_ftype *single_step_through_delay = nullptr; gdbarch_print_insn_ftype *print_insn = default_print_insn; gdbarch_skip_trampoline_code_ftype *skip_trampoline_code = generic_skip_trampoline_code; - const solib_ops * so_ops = &solib_target_so_ops; + gdbarch_make_solib_ops_ftype *make_solib_ops = make_target_solib_ops; gdbarch_skip_solib_resolver_ftype *skip_solib_resolver = generic_skip_solib_resolver; gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline = generic_in_solib_return_trampoline; gdbarch_in_indirect_branch_thunk_ftype *in_indirect_branch_thunk = default_in_indirect_branch_thunk; @@ -425,7 +425,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of single_step_through_delay, has predicate. */ /* Skip verify of print_insn, invalid_p == 0. */ /* Skip verify of skip_trampoline_code, invalid_p == 0. */ - /* Skip verify of so_ops, invalid_p == 0. */ + /* Skip verify of make_solib_ops, invalid_p == 0. */ /* Skip verify of skip_solib_resolver, invalid_p == 0. */ /* Skip verify of in_solib_return_trampoline, invalid_p == 0. */ /* Skip verify of in_indirect_branch_thunk, invalid_p == 0. */ @@ -966,8 +966,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) "gdbarch_dump: skip_trampoline_code = <%s>\n", host_address_to_string (gdbarch->skip_trampoline_code)); gdb_printf (file, - "gdbarch_dump: so_ops = %s\n", - host_address_to_string (gdbarch->so_ops)); + "gdbarch_dump: make_solib_ops = <%s>\n", + host_address_to_string (gdbarch->make_solib_ops)); gdb_printf (file, "gdbarch_dump: skip_solib_resolver = <%s>\n", host_address_to_string (gdbarch->skip_solib_resolver)); @@ -3469,21 +3469,21 @@ set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch->skip_trampoline_code = skip_trampoline_code; } -const solib_ops * -gdbarch_so_ops (struct gdbarch *gdbarch) +solib_ops_up +gdbarch_make_solib_ops (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - /* Skip verify of so_ops, invalid_p == 0. */ + gdb_assert (gdbarch->make_solib_ops != NULL); if (gdbarch_debug >= 2) - gdb_printf (gdb_stdlog, "gdbarch_so_ops called\n"); - return gdbarch->so_ops; + gdb_printf (gdb_stdlog, "gdbarch_make_solib_ops called\n"); + return gdbarch->make_solib_ops (); } void -set_gdbarch_so_ops (struct gdbarch *gdbarch, - const solib_ops * so_ops) +set_gdbarch_make_solib_ops (struct gdbarch *gdbarch, + gdbarch_make_solib_ops_ftype make_solib_ops) { - gdbarch->so_ops = so_ops; + gdbarch->make_solib_ops = make_solib_ops; } CORE_ADDR diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h index 313a8f1..281b97b 100644 --- a/gdb/gdbarch-gen.h +++ b/gdb/gdbarch-gen.h @@ -818,10 +818,11 @@ typedef CORE_ADDR (gdbarch_skip_trampoline_code_ftype) (const frame_info_ptr &fr extern CORE_ADDR gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, const frame_info_ptr &frame, CORE_ADDR pc); extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype *skip_trampoline_code); -/* Vtable of solib operations functions. */ +/* Return a newly-allocated solib_ops object capable of providing the solibs for this architecture. */ -extern const solib_ops * gdbarch_so_ops (struct gdbarch *gdbarch); -extern void set_gdbarch_so_ops (struct gdbarch *gdbarch, const solib_ops * so_ops); +typedef solib_ops_up (gdbarch_make_solib_ops_ftype) (); +extern solib_ops_up gdbarch_make_solib_ops (struct gdbarch *gdbarch); +extern void set_gdbarch_make_solib_ops (struct gdbarch *gdbarch, gdbarch_make_solib_ops_ftype *make_solib_ops); /* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER evaluates non-zero, this is the address where the debugger will place diff --git a/gdb/gdbarch-selftests.c b/gdb/gdbarch-selftests.c index c370204..5c94f60 100644 --- a/gdb/gdbarch-selftests.c +++ b/gdb/gdbarch-selftests.c @@ -183,9 +183,7 @@ check_stack_growth (struct gdbarch *gdbarch) } /* namespace selftests */ -void _initialize_gdbarch_selftests (); -void -_initialize_gdbarch_selftests () +INIT_GDB_FILE (gdbarch_selftests) { selftests::register_test_foreach_arch ("register_to_value", selftests::register_to_value_test); diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 9feb2cc..6accbd2 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -30,6 +30,7 @@ #include "displaced-stepping.h" #include "gdbsupport/gdb-checked-static-cast.h" #include "registry.h" +#include "solib.h" struct floatformat; struct ui_file; diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py index ec09d95..91c867e 100644 --- a/gdb/gdbarch_components.py +++ b/gdb/gdbarch_components.py @@ -1431,12 +1431,12 @@ Function( invalid=False, ) -Value( - comment="Vtable of solib operations functions.", - type="const solib_ops *", - name="so_ops", - predefault="&solib_target_so_ops", - printer="host_address_to_string (gdbarch->so_ops)", +Function( + comment="Return a newly-allocated solib_ops object capable of providing the solibs for this architecture.", + type="solib_ops_up", + name="make_solib_ops", + params=[], + predefault="make_target_solib_ops", invalid=False, ) diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 9c57f30..14a903b 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -6202,9 +6202,7 @@ call_site::pc () const #endif } -void _initialize_gdbtypes (); -void -_initialize_gdbtypes () +INIT_GDB_FILE (gdbtypes) { add_setshow_zuinteger_cmd ("overload", no_class, &overload_debug, _("Set debugging of C++ overloading."), diff --git a/gdb/gmp-utils.c b/gdb/gmp-utils.c index b48e97c..5c5423a 100644 --- a/gdb/gmp-utils.c +++ b/gdb/gmp-utils.c @@ -250,10 +250,7 @@ xfree_for_gmp (void *ptr, size_t size) xfree (ptr); } -void _initialize_gmp_utils (); - -void -_initialize_gmp_utils () +INIT_GDB_FILE (gmp_utils) { /* Tell GMP to use GDB's memory management routines. */ mp_set_memory_functions (xmalloc, xrealloc_for_gmp, xfree_for_gmp); diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c index ea07dd6..dd639fe 100644 --- a/gdb/gnu-nat.c +++ b/gdb/gnu-nat.c @@ -3434,9 +3434,7 @@ to the thread's initial suspend-count when gdb notices the threads."), &thread_cmd_list); } -void _initialize_gnu_nat (); -void -_initialize_gnu_nat () +INIT_GDB_FILE (gnu_nat) { proc_server = getproc (); diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c index 94efa70..9246788 100644 --- a/gdb/gnu-v2-abi.c +++ b/gdb/gnu-v2-abi.c @@ -405,9 +405,7 @@ init_gnuv2_ops (void) gnu_v2_abi_ops.baseclass_offset = gnuv2_baseclass_offset; } -void _initialize_gnu_v2_abi (); -void -_initialize_gnu_v2_abi () +INIT_GDB_FILE (gnu_v2_abi) { init_gnuv2_ops (); register_cp_abi (&gnu_v2_abi_ops); diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c index 9fbabe4..e3818d9 100644 --- a/gdb/gnu-v3-abi.c +++ b/gdb/gnu-v3-abi.c @@ -1570,9 +1570,7 @@ init_gnuv3_ops (void) gnu_v3_abi_ops.pass_by_reference = gnuv3_pass_by_reference; } -void _initialize_gnu_v3_abi (); -void -_initialize_gnu_v3_abi () +INIT_GDB_FILE (gnu_v3_abi) { init_gnuv3_ops (); diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index 8dcb22d..4d8e6c9 100644 --- a/gdb/go32-nat.c +++ b/gdb/go32-nat.c @@ -2057,9 +2057,7 @@ go32_pte_for_address (const char *arg, int from_tty) static struct cmd_list_element *info_dos_cmdlist = NULL; -void _initialize_go32_nat (); -void -_initialize_go32_nat () +INIT_GDB_FILE (go32_nat) { x86_dr_low.set_control = go32_set_dr7; x86_dr_low.set_addr = go32_set_dr; diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c index 1803df0..66a74b3 100644 --- a/gdb/guile/guile.c +++ b/gdb/guile/guile.c @@ -827,9 +827,7 @@ message == an error message without a stack will be printed."), &set_guile_list, &show_guile_list); } -void _initialize_guile (); -void -_initialize_guile () +INIT_GDB_FILE (guile) { install_gdb_commands (); } diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index db54438..15b0002 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -1374,9 +1374,7 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) } -void _initialize_h8300_tdep (); -void -_initialize_h8300_tdep () +INIT_GDB_FILE (h8300_tdep) { gdbarch_register (bfd_arch_h8300, h8300_gdbarch_init); } diff --git a/gdb/hppa-bsd-tdep.c b/gdb/hppa-bsd-tdep.c index db6c92f..715e794 100644 --- a/gdb/hppa-bsd-tdep.c +++ b/gdb/hppa-bsd-tdep.c @@ -128,8 +128,7 @@ hppabsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_trampoline_code (gdbarch, hppa_skip_trampoline_code); /* OpenBSD and NetBSD use SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); /* Hook in the DWARF CFI frame unwinder. */ dwarf2_frame_set_init_reg (gdbarch, hppabsd_dwarf2_frame_init_reg); diff --git a/gdb/hppa-linux-nat.c b/gdb/hppa-linux-nat.c index 62b3294..5e63e7f 100644 --- a/gdb/hppa-linux-nat.c +++ b/gdb/hppa-linux-nat.c @@ -383,9 +383,7 @@ fill_fpregset (const struct regcache *regcache, } } -void _initialize_hppa_linux_nat (); -void -_initialize_hppa_linux_nat () +INIT_GDB_FILE (hppa_linux_nat) { /* Register the target. */ linux_target = &the_hppa_linux_nat_target; diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c index 16cdd45..2eb8d46 100644 --- a/gdb/hppa-linux-tdep.c +++ b/gdb/hppa-linux-tdep.c @@ -32,6 +32,7 @@ #include "regcache.h" #include "hppa-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "elf/common.h" /* Map DWARF DBX register numbers to GDB register numbers. */ @@ -499,8 +500,7 @@ hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_unwind_append_unwinder (gdbarch, &hppa_linux_sigtramp_frame_unwind); /* GNU/Linux uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); tdep->in_solib_call_trampoline = hppa_in_solib_call_trampoline; set_gdbarch_skip_trampoline_code (gdbarch, hppa_skip_trampoline_code); @@ -524,9 +524,7 @@ hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) svr4_fetch_objfile_link_map); } -void _initialize_hppa_linux_tdep (); -void -_initialize_hppa_linux_tdep () +INIT_GDB_FILE (hppa_linux_tdep) { gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_LINUX, hppa_linux_init_abi); diff --git a/gdb/hppa-netbsd-nat.c b/gdb/hppa-netbsd-nat.c index f57d650..1ebf205 100644 --- a/gdb/hppa-netbsd-nat.c +++ b/gdb/hppa-netbsd-nat.c @@ -229,9 +229,7 @@ hppa_nbsd_nat_target::store_registers (struct regcache *regcache, int regnum) } } -void _initialize_hppanbsd_nat (); -void -_initialize_hppanbsd_nat () +INIT_GDB_FILE (hppanbsd_nat) { add_inf_child_target (&the_hppa_nbsd_nat_target); } diff --git a/gdb/hppa-netbsd-tdep.c b/gdb/hppa-netbsd-tdep.c index e52e181..90d8eb8 100644 --- a/gdb/hppa-netbsd-tdep.c +++ b/gdb/hppa-netbsd-tdep.c @@ -210,9 +210,7 @@ hppanbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tramp_frame_prepend_unwinder (gdbarch, &hppanbsd_sigtramp_si4); } -void _initialize_hppanbsd_tdep (); -void -_initialize_hppanbsd_tdep () +INIT_GDB_FILE (hppanbsd_tdep) { gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_NETBSD, hppanbsd_init_abi); diff --git a/gdb/hppa-obsd-nat.c b/gdb/hppa-obsd-nat.c index d879835..322b6f9 100644 --- a/gdb/hppa-obsd-nat.c +++ b/gdb/hppa-obsd-nat.c @@ -250,9 +250,7 @@ hppa_obsd_nat_target::store_registers (struct regcache *regcache, int regnum) } } -void _initialize_hppaobsd_nat (); -void -_initialize_hppaobsd_nat () +INIT_GDB_FILE (hppaobsd_nat) { add_inf_child_target (&the_hppa_obsd_nat_target); } diff --git a/gdb/hppa-obsd-tdep.c b/gdb/hppa-obsd-tdep.c index d2144f9..a511fa8 100644 --- a/gdb/hppa-obsd-tdep.c +++ b/gdb/hppa-obsd-tdep.c @@ -166,9 +166,7 @@ hppaobsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) (gdbarch, hppaobsd_iterate_over_regset_sections); } -void _initialize_hppabsd_tdep (); -void -_initialize_hppabsd_tdep () +INIT_GDB_FILE (hppabsd_tdep) { gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_OPENBSD, hppaobsd_init_abi); diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 3c9dde2..61e6cb2 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -3119,9 +3119,7 @@ hppa_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) gdb_printf (file, "elf = %s\n", tdep->is_elf ? "yes" : "no"); } -void _initialize_hppa_tdep (); -void -_initialize_hppa_tdep () +INIT_GDB_FILE (hppa_tdep) { gdbarch_register (bfd_arch_hppa, hppa_gdbarch_init, hppa_dump_tdep); diff --git a/gdb/i386-bsd-nat.c b/gdb/i386-bsd-nat.c index ae9e090..c5eda86 100644 --- a/gdb/i386-bsd-nat.c +++ b/gdb/i386-bsd-nat.c @@ -237,9 +237,7 @@ i386bsd_store_inferior_registers (struct regcache *regcache, int regnum) } } -void _initialize_i386bsd_nat (); -void -_initialize_i386bsd_nat () +INIT_GDB_FILE (i386bsd_nat) { /* To support the recognition of signal handlers, i386-bsd-tdep.c hardcodes some constants. Inclusion of this file means that we diff --git a/gdb/i386-darwin-nat.c b/gdb/i386-darwin-nat.c index 08d3a71..09d6ba6 100644 --- a/gdb/i386-darwin-nat.c +++ b/gdb/i386-darwin-nat.c @@ -631,9 +631,7 @@ darwin_set_sstep (thread_t thread, int enable) } } -void _initialize_i386_darwin_nat (); -void -_initialize_i386_darwin_nat () +INIT_GDB_FILE (i386_darwin_nat) { #ifdef BFD64 amd64_native_gregset64_reg_offset = amd64_darwin_thread_state_reg_offset; diff --git a/gdb/i386-darwin-tdep.c b/gdb/i386-darwin-tdep.c index 6180e02..a91afa2 100644 --- a/gdb/i386-darwin-tdep.c +++ b/gdb/i386-darwin-tdep.c @@ -271,7 +271,7 @@ i386_darwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) alignment. */ set_gdbarch_long_double_bit (gdbarch, 128); - set_gdbarch_so_ops (gdbarch, &darwin_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_darwin_solib_ops); } static enum gdb_osabi @@ -286,9 +286,7 @@ i386_mach_o_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_i386_darwin_tdep (); -void -_initialize_i386_darwin_tdep () +INIT_GDB_FILE (i386_darwin_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_unknown, bfd_target_mach_o_flavour, i386_mach_o_osabi_sniffer); diff --git a/gdb/i386-dicos-tdep.c b/gdb/i386-dicos-tdep.c index d3f19e2..50570c9 100644 --- a/gdb/i386-dicos-tdep.c +++ b/gdb/i386-dicos-tdep.c @@ -40,9 +40,7 @@ i386_dicos_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_i386_dicos_tdep (); -void -_initialize_i386_dicos_tdep () +INIT_GDB_FILE (i386_dicos_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour, i386_dicos_osabi_sniffer); diff --git a/gdb/i386-fbsd-nat.c b/gdb/i386-fbsd-nat.c index 77f0edd..f4088a3 100644 --- a/gdb/i386-fbsd-nat.c +++ b/gdb/i386-fbsd-nat.c @@ -330,9 +330,7 @@ i386_fbsd_nat_target::read_description () return i386_target_description (X86_XSTATE_X87_MASK, true); } -void _initialize_i386fbsd_nat (); -void -_initialize_i386fbsd_nat () +INIT_GDB_FILE (i386fbsd_nat) { add_inf_child_target (&the_i386_fbsd_nat_target); diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c index 72237d8..827d53c 100644 --- a/gdb/i386-fbsd-tdep.c +++ b/gdb/i386-fbsd-tdep.c @@ -402,8 +402,7 @@ i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) i386fbsd_core_read_description); /* FreeBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); set_gdbarch_fetch_tls_load_module_address (gdbarch, svr4_fetch_objfile_link_map); @@ -411,9 +410,7 @@ i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) i386fbsd_get_thread_local_address); } -void _initialize_i386fbsd_tdep (); -void -_initialize_i386fbsd_tdep () +INIT_GDB_FILE (i386fbsd_tdep) { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_FREEBSD, i386fbsd_init_abi); diff --git a/gdb/i386-gnu-tdep.c b/gdb/i386-gnu-tdep.c index 97fbc69..f944fa5 100644 --- a/gdb/i386-gnu-tdep.c +++ b/gdb/i386-gnu-tdep.c @@ -180,8 +180,7 @@ i386gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Hurd uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); /* Hurd uses the dynamic linker included in the GNU C Library. */ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); @@ -202,9 +201,7 @@ i386gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sc_num_regs = ARRAY_SIZE (i386_gnu_sc_reg_offset); } -void _initialize_i386gnu_tdep (); -void -_initialize_i386gnu_tdep () +INIT_GDB_FILE (i386gnu_tdep) { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_HURD, i386gnu_init_abi); } diff --git a/gdb/i386-go32-tdep.c b/gdb/i386-go32-tdep.c index 4db09b3..e6a1721 100644 --- a/gdb/i386-go32-tdep.c +++ b/gdb/i386-go32-tdep.c @@ -61,9 +61,7 @@ i386_coff_osabi_sniffer (bfd *abfd) } -void _initialize_i386_go32_tdep (); -void -_initialize_i386_go32_tdep () +INIT_GDB_FILE (i386_go32_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour, i386_coff_osabi_sniffer); diff --git a/gdb/i386-linux-nat.c b/gdb/i386-linux-nat.c index a5d5582..f5112d2 100644 --- a/gdb/i386-linux-nat.c +++ b/gdb/i386-linux-nat.c @@ -696,9 +696,7 @@ i386_linux_nat_target::low_resume (ptid_t ptid, int step, enum gdb_signal signal perror_with_name (("ptrace")); } -void _initialize_i386_linux_nat (); -void -_initialize_i386_linux_nat () +INIT_GDB_FILE (i386_linux_nat) { linux_target = &the_i386_linux_nat_target; diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c index 4b05cc6..efbde6a 100644 --- a/gdb/i386-linux-tdep.c +++ b/gdb/i386-linux-tdep.c @@ -30,6 +30,7 @@ #include "i386-tdep.h" #include "i386-linux-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "utils.h" #include "glibc-tdep.h" #include "solib-svr4.h" @@ -1461,8 +1462,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* GNU/Linux uses the dynamic linker included in the GNU C Library. */ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); @@ -1490,9 +1490,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) i386_linux_get_syscall_number); } -void _initialize_i386_linux_tdep (); -void -_initialize_i386_linux_tdep () +INIT_GDB_FILE (i386_linux_tdep) { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX, i386_linux_init_abi); diff --git a/gdb/i386-netbsd-nat.c b/gdb/i386-netbsd-nat.c index 0f39fe1..efbf361 100644 --- a/gdb/i386-netbsd-nat.c +++ b/gdb/i386-netbsd-nat.c @@ -72,9 +72,7 @@ i386nbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) static i386_bsd_nat_target<nbsd_nat_target> the_i386_nbsd_nat_target; -void _initialize_i386nbsd_nat (); -void -_initialize_i386nbsd_nat () +INIT_GDB_FILE (i386nbsd_nat) { add_inf_child_target (&the_i386_nbsd_nat_target); diff --git a/gdb/i386-netbsd-tdep.c b/gdb/i386-netbsd-tdep.c index 701ce04..a1124d0 100644 --- a/gdb/i386-netbsd-tdep.c +++ b/gdb/i386-netbsd-tdep.c @@ -415,16 +415,13 @@ i386nbsdelf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) i386_elf_init_abi (info, gdbarch); /* NetBSD ELF uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); /* NetBSD ELF uses -fpcc-struct-return by default. */ tdep->struct_return = pcc_struct_return; } -void _initialize_i386nbsd_tdep (); -void -_initialize_i386nbsd_tdep () +INIT_GDB_FILE (i386nbsd_tdep) { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_NETBSD, i386nbsdelf_init_abi); diff --git a/gdb/i386-obsd-nat.c b/gdb/i386-obsd-nat.c index 323acdb..f478e73 100644 --- a/gdb/i386-obsd-nat.c +++ b/gdb/i386-obsd-nat.c @@ -89,9 +89,7 @@ i386obsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) static i386_bsd_nat_target<obsd_nat_target> the_i386_obsd_nat_target; -void _initialize_i386obsd_nat (); -void -_initialize_i386obsd_nat () +INIT_GDB_FILE (i386obsd_nat) { add_inf_child_target (&i386_obsd_nat_target); diff --git a/gdb/i386-obsd-tdep.c b/gdb/i386-obsd-tdep.c index be65668..1126597 100644 --- a/gdb/i386-obsd-tdep.c +++ b/gdb/i386-obsd-tdep.c @@ -441,13 +441,10 @@ i386obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_unwind_prepend_unwinder (gdbarch, &i386obsd_trapframe_unwind); /* OpenBSD ELF uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } -void _initialize_i386obsd_tdep (); -void -_initialize_i386obsd_tdep () +INIT_GDB_FILE (i386obsd_tdep) { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_OPENBSD, i386obsd_init_abi); diff --git a/gdb/i386-sol2-nat.c b/gdb/i386-sol2-nat.c index d0fb836..1e87007 100644 --- a/gdb/i386-sol2-nat.c +++ b/gdb/i386-sol2-nat.c @@ -252,9 +252,7 @@ fill_fpregset (const struct regcache *regcache, #endif -void _initialize_amd64_sol2_nat (); -void -_initialize_amd64_sol2_nat () +INIT_GDB_FILE (amd64_sol2_nat) { #if PR_MODEL_NATIVE == PR_MODEL_LP64 amd64_native_gregset32_reg_offset = amd64_sol2_gregset32_reg_offset; diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c index e842236..4ff08d2 100644 --- a/gdb/i386-sol2-tdep.c +++ b/gdb/i386-sol2-tdep.c @@ -86,8 +86,7 @@ i386_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sc_num_regs = tdep->gregset_num_regs; /* Solaris has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } @@ -102,9 +101,7 @@ i386_sol2_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_i386_sol2_tdep (); -void -_initialize_i386_sol2_tdep () +INIT_GDB_FILE (i386_sol2_tdep) { /* Register an ELF OS ABI sniffer for Solaris 2 binaries. */ gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour, diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 23788b4..9be4748 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -8970,9 +8970,7 @@ i386_target_description (uint64_t xcr0, bool segments) return *tdesc; } -void _initialize_i386_tdep (); -void -_initialize_i386_tdep () +INIT_GDB_FILE (i386_tdep) { gdbarch_register (bfd_arch_i386, i386_gdbarch_init); diff --git a/gdb/i386-windows-nat.c b/gdb/i386-windows-nat.c index 6c1369a..f878727 100644 --- a/gdb/i386-windows-nat.c +++ b/gdb/i386-windows-nat.c @@ -82,9 +82,7 @@ i386_windows_segment_register_p (int regnum) return regnum >= I386_CS_REGNUM && regnum <= I386_GS_REGNUM; } -void _initialize_i386_windows_nat (); -void -_initialize_i386_windows_nat () +INIT_GDB_FILE (i386_windows_nat) { #ifndef __x86_64__ x86_set_debug_register_length (4); diff --git a/gdb/i386-windows-tdep.c b/gdb/i386-windows-tdep.c index 43ae5e4..892ecd4 100644 --- a/gdb/i386-windows-tdep.c +++ b/gdb/i386-windows-tdep.c @@ -229,9 +229,7 @@ i386_cygwin_core_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } -void _initialize_i386_windows_tdep (); -void -_initialize_i386_windows_tdep () +INIT_GDB_FILE (i386_windows_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour, i386_windows_osabi_sniffer); diff --git a/gdb/ia64-libunwind-tdep.c b/gdb/ia64-libunwind-tdep.c index 3ba9cb6..6d3b265 100644 --- a/gdb/ia64-libunwind-tdep.c +++ b/gdb/ia64-libunwind-tdep.c @@ -574,9 +574,7 @@ libunwind_is_initialized (void) return libunwind_initialized; } -void _initialize_libunwind_frame (); -void -_initialize_libunwind_frame () +INIT_GDB_FILE (libunwind_frame) { libunwind_initialized = libunwind_load (); } diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c index 964b175..e833f9d 100644 --- a/gdb/ia64-linux-nat.c +++ b/gdb/ia64-linux-nat.c @@ -914,9 +914,7 @@ ia64_linux_nat_target::low_status_is_event (int status) || WSTOPSIG (status) == SIGILL); } -void _initialize_ia64_linux_nat (); -void -_initialize_ia64_linux_nat () +INIT_GDB_FILE (ia64_linux_nat) { /* Register the target. */ linux_target = &the_ia64_linux_nat_target; diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c index c45b2bb..6afffee 100644 --- a/gdb/ia64-linux-tdep.c +++ b/gdb/ia64-linux-tdep.c @@ -26,6 +26,7 @@ #include "solib-svr4.h" #include "symtab.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "regset.h" #include <ctype.h> @@ -235,8 +236,7 @@ ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, @@ -257,9 +257,7 @@ ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) ia64_linux_stap_is_single_operand); } -void _initialize_ia64_linux_tdep (); -void -_initialize_ia64_linux_tdep () +INIT_GDB_FILE (ia64_linux_tdep) { gdbarch_register_osabi (bfd_arch_ia64, 0, GDB_OSABI_LINUX, ia64_linux_init_abi); diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 395b5f7..7c6526a 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -4014,9 +4014,7 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_ia64_tdep (); -void -_initialize_ia64_tdep () +INIT_GDB_FILE (ia64_tdep) { gdbarch_register (bfd_arch_ia64, ia64_gdbarch_init, NULL); } diff --git a/gdb/ia64-vms-tdep.c b/gdb/ia64-vms-tdep.c index dcd5598..32fe5d4 100644 --- a/gdb/ia64-vms-tdep.c +++ b/gdb/ia64-vms-tdep.c @@ -153,9 +153,7 @@ ia64_openvms_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) #endif } -void _initialize_ia64_vms_tdep (); -void -_initialize_ia64_vms_tdep () +INIT_GDB_FILE (ia64_vms_tdep) { gdbarch_register_osabi (bfd_arch_ia64, 0, GDB_OSABI_OPENVMS, ia64_openvms_init_abi); diff --git a/gdb/infcall.c b/gdb/infcall.c index 098072d..2b5936d 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -1870,9 +1870,7 @@ When the function is done executing, GDB will silently stop."), gdb_assert_not_reached ("... should not be here"); } -void _initialize_infcall (); -void -_initialize_infcall () +INIT_GDB_FILE (infcall) { add_setshow_boolean_cmd ("may-call-functions", no_class, &may_call_functions_p, _("\ diff --git a/gdb/infcmd.c b/gdb/infcmd.c index e9b58ce..8978c8a 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -224,14 +224,11 @@ strip_bg_char (const char *args, int *bg_char_p) return make_unique_xstrdup (args); } -/* Common actions to take after creating any sort of inferior, by any - means (running, attaching, connecting, et cetera). The target - should be stopped. */ +/* See inferior.h. */ void -post_create_inferior (int from_tty) +post_create_inferior (int from_tty, bool set_pspace_solib_ops) { - /* Be sure we own the terminal in case write operations are performed. */ target_terminal::ours_for_output (); @@ -261,6 +258,10 @@ post_create_inferior (int from_tty) throw; } + if (set_pspace_solib_ops) + current_program_space->set_solib_ops + (gdbarch_make_solib_ops (current_inferior ()->arch ())); + if (current_program_space->exec_bfd ()) { const unsigned solib_add_generation @@ -482,7 +483,7 @@ run_command_1 (const char *args, int from_tty, enum run_how run_how) /* Pass zero for FROM_TTY, because at this point the "run" command has done its thing; now we are setting up the running program. */ - post_create_inferior (0); + post_create_inferior (0, true); /* Queue a pending event so that the program stops immediately. */ if (run_how == RUN_STOP_AT_FIRST_INSN) @@ -2506,7 +2507,7 @@ setup_inferior (int from_tty) /* Take any necessary post-attaching actions for this platform. */ target_post_attach (inferior_ptid.pid ()); - post_create_inferior (from_tty); + post_create_inferior (from_tty, true); } /* What to do after the first program stops after attaching. */ @@ -3080,9 +3081,7 @@ use \"set args\" without arguments.\n\ \n\ To start the inferior without using a shell, use \"set startup-with-shell off\"." -void _initialize_infcmd (); -void -_initialize_infcmd () +INIT_GDB_FILE (infcmd) { static struct cmd_list_element *info_proc_cmdlist; struct cmd_list_element *c = nullptr; diff --git a/gdb/inferior.h b/gdb/inferior.h index 54f5229..fe94e28 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -213,7 +213,14 @@ extern ptid_t gdb_startup_inferior (pid_t pid, int num_traps); extern void setup_inferior (int from_tty); -extern void post_create_inferior (int from_tty); +/* Common actions to take after creating any sort of inferior, by any + means (running, attaching, connecting, et cetera). The target + should be stopped. + + If SET_PSPACE_SOLIB_OPS is true, initialize the program space's solib + provider using the current inferior's architecture. */ + +extern void post_create_inferior (int from_tty, bool set_pspace_solib_ops); extern void attach_command (const char *, int); diff --git a/gdb/inflow.c b/gdb/inflow.c index f5ae6cd..31e1565 100644 --- a/gdb/inflow.c +++ b/gdb/inflow.c @@ -944,9 +944,7 @@ initialize_stdin_serial (void) stdin_serial = serial_fdopen (0); } -void _initialize_inflow (); -void -_initialize_inflow () +INIT_GDB_FILE (inflow) { add_info ("terminal", info_terminal_command, _("Print inferior's saved terminal status.")); diff --git a/gdb/infrun.c b/gdb/infrun.c index 2e02642..05bf6ab 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -472,6 +472,7 @@ holding the child stopped. Try \"set %ps\" or \"%ps\".\n"), inferior *parent_inf = current_inferior (); inferior *child_inf = nullptr; + bool child_has_new_pspace = false; gdb_assert (parent_inf->thread_waiting_for_vfork_done == nullptr); @@ -536,6 +537,7 @@ holding the child stopped. Try \"set %ps\" or \"%ps\".\n"), else { child_inf->pspace = new program_space (new_address_space ()); + child_has_new_pspace = true; child_inf->aspace = child_inf->pspace->aspace; child_inf->removable = true; clone_program_space (child_inf->pspace, parent_inf->pspace); @@ -625,6 +627,7 @@ holding the child stopped. Try \"set %ps\" or \"%ps\".\n"), else { child_inf->pspace = new program_space (new_address_space ()); + child_has_new_pspace = true; child_inf->aspace = child_inf->pspace->aspace; child_inf->removable = true; child_inf->symfile_flags = SYMFILE_NO_READ; @@ -723,7 +726,8 @@ holding the child stopped. Try \"set %ps\" or \"%ps\".\n"), maybe_restore.emplace (); switch_to_thread (*child_inf->threads ().begin ()); - post_create_inferior (0); + + post_create_inferior (0, child_has_new_pspace); } return false; @@ -1321,6 +1325,7 @@ follow_exec (ptid_t ptid, const char *exec_file_target) we don't want those to be satisfied by the libraries of the previous incarnation of this process. */ no_shared_libraries (current_program_space); + current_program_space->unset_solib_ops (); inferior *execing_inferior = current_inferior (); inferior *following_inferior; @@ -1377,6 +1382,8 @@ follow_exec (ptid_t ptid, const char *exec_file_target) registers. */ target_find_description (); + current_program_space->set_solib_ops + (gdbarch_make_solib_ops (following_inferior->arch ())); gdb::observers::inferior_execd.notify (execing_inferior, following_inferior); breakpoint_re_set (); @@ -3818,7 +3825,7 @@ start_remote (int from_tty) /* Now that the inferior has stopped, do any bookkeeping like loading shared libraries. We want to do this before normal_stop, so that the displayed frame is up to date. */ - post_create_inferior (from_tty); + post_create_inferior (from_tty, true); normal_stop (); } @@ -10531,9 +10538,7 @@ infrun_thread_ptid_changed () #endif /* GDB_SELF_TEST */ -void _initialize_infrun (); -void -_initialize_infrun () +INIT_GDB_FILE (infrun) { struct cmd_list_element *c; diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c index d724c28..2191282 100644 --- a/gdb/inline-frame.c +++ b/gdb/inline-frame.c @@ -615,9 +615,7 @@ maintenance_info_inline_frames (const char *arg, int from_tty) -void _initialize_inline_frame (); -void -_initialize_inline_frame () +INIT_GDB_FILE (inline_frame) { add_cmd ("inline-frames", class_maintenance, maintenance_info_inline_frames, _("\ diff --git a/gdb/interps.c b/gdb/interps.c index 00796bc..b4de3c7 100644 --- a/gdb/interps.c +++ b/gdb/interps.c @@ -575,9 +575,7 @@ interps_notify_memory_changed (inferior *inf, CORE_ADDR addr, ssize_t len, } /* This just adds the "interpreter-exec" command. */ -void _initialize_interpreter (); -void -_initialize_interpreter () +INIT_GDB_FILE (interpreter) { struct cmd_list_element *c; diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c index 49ae744..58a4dfb 100644 --- a/gdb/iq2000-tdep.c +++ b/gdb/iq2000-tdep.c @@ -840,9 +840,7 @@ iq2000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) Initializer function for the iq2000 module. Called by gdb at start-up. */ -void _initialize_iq2000_tdep (); -void -_initialize_iq2000_tdep () +INIT_GDB_FILE (iq2000_tdep) { gdbarch_register (bfd_arch_iq2000, iq2000_gdbarch_init); } @@ -1313,9 +1313,7 @@ show_jit_reader_directory (const char *args, int from_tty) jit_reader_dir.c_str ())); } -void _initialize_jit (); -void -_initialize_jit () +INIT_GDB_FILE (jit) { jit_reader_dir = relocate_gdb_directory (JIT_READER_DIR, JIT_READER_DIR_RELOCATABLE); diff --git a/gdb/language.c b/gdb/language.c index 18a7c9c..80f9b01 100644 --- a/gdb/language.c +++ b/gdb/language.c @@ -1095,9 +1095,7 @@ language_lookup_primitive_type_as_symbol (const struct language_defn *la, /* Initialize the language routines. */ -void _initialize_language (); -void -_initialize_language () +INIT_GDB_FILE (language) { static const char *const type_or_range_names[] = { "on", "off", "warn", "auto", NULL }; diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c index 338ba03..9e986d8 100644 --- a/gdb/linux-fork.c +++ b/gdb/linux-fork.c @@ -1115,9 +1115,7 @@ restart_command (const char *args, int from_tty) linux_fork_context (fp, from_tty, inf); } -void _initialize_linux_fork (); -void -_initialize_linux_fork () +INIT_GDB_FILE (linux_fork) { /* Checkpoint command: create a fork of the inferior process and set it aside for later debugging. */ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 8f5f978..70f77fd 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -2129,7 +2129,7 @@ linux_handle_extended_wait (struct lwp_info *lp, int status) open_proc_mem_file (lp->ptid); ourstatus->set_execd - (make_unique_xstrdup (linux_proc_pid_to_exec_file (pid))); + (make_unique_xstrdup (linux_target->pid_to_exec_file (pid))); /* The thread that execed must have been resumed, but, when a thread execs, it changes its tid to the tgid, and the old @@ -4000,7 +4000,14 @@ linux_nat_target::thread_name (struct thread_info *thr) const char * linux_nat_target::pid_to_exec_file (int pid) { - return linux_proc_pid_to_exec_file (pid); + /* If there's no sysroot. Or the sysroot is just 'target:' and the + inferior is in the same mount namespce, then we can consider the + filesystem local. */ + bool local_fs = (gdb_sysroot.empty () + || (gdb_sysroot == TARGET_SYSROOT_PREFIX + && linux_ns_same (pid, LINUX_NS_MNT))); + + return linux_proc_pid_to_exec_file (pid, local_fs); } /* Object representing an /proc/PID/mem open file. We keep one such @@ -4721,9 +4728,7 @@ maintenance_info_lwps (const char *arg, int from_tty) } } -void _initialize_linux_nat (); -void -_initialize_linux_nat () +INIT_GDB_FILE (linux_nat) { add_setshow_boolean_cmd ("linux-nat", class_maintenance, &debug_linux_nat, _("\ diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c index 1e339b5..5c4bbf6 100644 --- a/gdb/linux-tdep.c +++ b/gdb/linux-tdep.c @@ -3081,9 +3081,7 @@ linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch, linux_corefile_parse_exec_context); } -void _initialize_linux_tdep (); -void -_initialize_linux_tdep () +INIT_GDB_FILE (linux_tdep) { /* Observers used to invalidate the cache when needed. */ gdb::observers::inferior_exit.attach (invalidate_linux_cache_inf, @@ -3118,64 +3116,3 @@ more information about this file, refer to the manpage of proc(5) and core(5).") &setlist, &showlist); } - -/* Fetch (and possibly build) an appropriate `link_map_offsets' for - ILP32/LP64 Linux systems which don't have the r_ldsomap field. */ - -link_map_offsets * -linux_ilp32_fetch_link_map_offsets () -{ - static link_map_offsets lmo; - static link_map_offsets *lmp = nullptr; - - if (lmp == nullptr) - { - lmp = &lmo; - - lmo.r_version_offset = 0; - lmo.r_version_size = 4; - lmo.r_map_offset = 4; - lmo.r_brk_offset = 8; - lmo.r_ldsomap_offset = -1; - lmo.r_next_offset = 20; - - /* Everything we need is in the first 20 bytes. */ - lmo.link_map_size = 20; - lmo.l_addr_offset = 0; - lmo.l_name_offset = 4; - lmo.l_ld_offset = 8; - lmo.l_next_offset = 12; - lmo.l_prev_offset = 16; - } - - return lmp; -} - -link_map_offsets * -linux_lp64_fetch_link_map_offsets () -{ - static link_map_offsets lmo; - static link_map_offsets *lmp = nullptr; - - if (lmp == nullptr) - { - lmp = &lmo; - - lmo.r_version_offset = 0; - lmo.r_version_size = 4; - lmo.r_map_offset = 8; - lmo.r_brk_offset = 16; - lmo.r_ldsomap_offset = -1; - lmo.r_next_offset = 40; - - /* Everything we need is in the first 40 bytes. */ - lmo.link_map_size = 40; - lmo.l_addr_offset = 0; - lmo.l_name_offset = 8; - lmo.l_ld_offset = 16; - lmo.l_next_offset = 24; - lmo.l_prev_offset = 32; - } - - return lmp; -} diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h index 7485fc1..3d82ea5 100644 --- a/gdb/linux-tdep.h +++ b/gdb/linux-tdep.h @@ -22,6 +22,7 @@ #include "bfd.h" #include "displaced-stepping.h" +#include "solib.h" struct inferior; struct regcache; @@ -112,9 +113,4 @@ extern CORE_ADDR linux_get_hwcap2 (const std::optional<gdb::byte_vector> &auxv, extern CORE_ADDR linux_get_hwcap2 (); -/* Fetch (and possibly build) an appropriate `struct link_map_offsets' - for ILP32 and LP64 Linux systems. */ -extern struct link_map_offsets *linux_ilp32_fetch_link_map_offsets (); -extern struct link_map_offsets *linux_lp64_fetch_link_map_offsets (); - #endif /* GDB_LINUX_TDEP_H */ diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index f60116a..8d49508 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -1981,9 +1981,7 @@ maintenance_check_libthread_db (const char *args, int from_tty) check_thread_db (info, true); } -void _initialize_thread_db (); -void -_initialize_thread_db () +INIT_GDB_FILE (thread_db) { /* Defer loading of libthread_db.so until inferior is running. This allows gdb to load correct libthread_db for a given diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c index ef956b8..cee2e51 100644 --- a/gdb/lm32-tdep.c +++ b/gdb/lm32-tdep.c @@ -536,9 +536,7 @@ lm32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_lm32_tdep (); -void -_initialize_lm32_tdep () +INIT_GDB_FILE (lm32_tdep) { gdbarch_register (bfd_arch_lm32, lm32_gdbarch_init); } diff --git a/gdb/loongarch-linux-nat.c b/gdb/loongarch-linux-nat.c index 3efaa5f..2b59b36 100644 --- a/gdb/loongarch-linux-nat.c +++ b/gdb/loongarch-linux-nat.c @@ -751,9 +751,7 @@ loongarch_linux_nat_target::low_forget_process (pid_t pid) /* Initialize LoongArch Linux native support. */ -void _initialize_loongarch_linux_nat (); -void -_initialize_loongarch_linux_nat () +INIT_GDB_FILE (loongarch_linux_nat) { linux_target = &the_loongarch_linux_nat_target; add_inf_child_target (&the_loongarch_linux_nat_target); diff --git a/gdb/loongarch-linux-tdep.c b/gdb/loongarch-linux-tdep.c index 38485e0..3766338 100644 --- a/gdb/loongarch-linux-tdep.c +++ b/gdb/loongarch-linux-tdep.c @@ -25,6 +25,7 @@ #include "inferior.h" #include "linux-record.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "loongarch-tdep.h" #include "record-full.h" #include "regset.h" @@ -1145,10 +1146,9 @@ loongarch_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) linux_init_abi (info, gdbarch, 0); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - info.bfd_arch_info->bits_per_address == 32 - ? linux_ilp32_fetch_link_map_offsets - : linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, (info.bfd_arch_info->bits_per_address == 32 + ? make_linux_ilp32_svr4_solib_ops + : make_linux_lp64_svr4_solib_ops)); /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); @@ -1183,9 +1183,7 @@ loongarch_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Initialize LoongArch Linux target support. */ -void _initialize_loongarch_linux_tdep (); -void -_initialize_loongarch_linux_tdep () +INIT_GDB_FILE (loongarch_linux_tdep) { gdbarch_register_osabi (bfd_arch_loongarch, bfd_mach_loongarch32, GDB_OSABI_LINUX, loongarch_linux_init_abi); diff --git a/gdb/loongarch-tdep.c b/gdb/loongarch-tdep.c index d79ec68..cc75cd4 100644 --- a/gdb/loongarch-tdep.c +++ b/gdb/loongarch-tdep.c @@ -2421,9 +2421,7 @@ loongarch_process_record (struct gdbarch *gdbarch, struct regcache *regcache, return ret; } -void _initialize_loongarch_tdep (); -void -_initialize_loongarch_tdep () +INIT_GDB_FILE (loongarch_tdep) { gdbarch_register (bfd_arch_loongarch, loongarch_gdbarch_init, nullptr); } diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c index f8937a2..8d99839 100644 --- a/gdb/m32c-tdep.c +++ b/gdb/m32c-tdep.c @@ -2653,9 +2653,7 @@ m32c_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_m32c_tdep (); -void -_initialize_m32c_tdep () +INIT_GDB_FILE (m32c_tdep) { gdbarch_register (bfd_arch_m32c, m32c_gdbarch_init); diff --git a/gdb/m32r-linux-nat.c b/gdb/m32r-linux-nat.c index 7607bd2..c186693 100644 --- a/gdb/m32r-linux-nat.c +++ b/gdb/m32r-linux-nat.c @@ -234,9 +234,7 @@ m32r_linux_nat_target::store_registers (struct regcache *regcache, int regno) internal_error (_("Got request to store bad register number %d."), regno); } -void _initialize_m32r_linux_nat (); -void -_initialize_m32r_linux_nat () +INIT_GDB_FILE (m32r_linux_nat) { /* Register the target. */ linux_target = &the_m32r_linux_nat_target; diff --git a/gdb/m32r-linux-tdep.c b/gdb/m32r-linux-tdep.c index 4fbe7d9..03000cc 100644 --- a/gdb/m32r-linux-tdep.c +++ b/gdb/m32r-linux-tdep.c @@ -36,6 +36,7 @@ #include "m32r-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "gdbarch.h" @@ -461,8 +462,7 @@ m32r_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* Core file support. */ set_gdbarch_iterate_over_regset_sections @@ -473,9 +473,7 @@ m32r_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) svr4_fetch_objfile_link_map); } -void _initialize_m32r_linux_tdep (); -void -_initialize_m32r_linux_tdep () +INIT_GDB_FILE (m32r_linux_tdep) { gdbarch_register_osabi (bfd_arch_m32r, 0, GDB_OSABI_LINUX, m32r_linux_init_abi); diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index 6b6ad03..4ac08fd 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -908,9 +908,7 @@ m32r_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_m32r_tdep (); -void -_initialize_m32r_tdep () +INIT_GDB_FILE (m32r_tdep) { gdbarch_register (bfd_arch_m32r, m32r_gdbarch_init); } diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c index dd8cbda..5389fee 100644 --- a/gdb/m68hc11-tdep.c +++ b/gdb/m68hc11-tdep.c @@ -1527,9 +1527,7 @@ m68hc11_gdbarch_init (struct gdbarch_info info, return gdbarch; } -void _initialize_m68hc11_tdep (); -void -_initialize_m68hc11_tdep () +INIT_GDB_FILE (m68hc11_tdep) { gdbarch_register (bfd_arch_m68hc11, m68hc11_gdbarch_init); gdbarch_register (bfd_arch_m68hc12, m68hc11_gdbarch_init); diff --git a/gdb/m68k-bsd-nat.c b/gdb/m68k-bsd-nat.c index 04542fd..ae8fa4d 100644 --- a/gdb/m68k-bsd-nat.c +++ b/gdb/m68k-bsd-nat.c @@ -225,9 +225,7 @@ m68kbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) return 1; } -void _initialize_m68kbsd_nat (); -void -_initialize_m68kbsd_nat () +INIT_GDB_FILE (m68kbsd_nat) { add_inf_child_target (&the_m68k_bsd_nat_target); diff --git a/gdb/m68k-bsd-tdep.c b/gdb/m68k-bsd-tdep.c index 09c57c6..37c1464 100644 --- a/gdb/m68k-bsd-tdep.c +++ b/gdb/m68k-bsd-tdep.c @@ -147,13 +147,10 @@ m68kbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->struct_return = pcc_struct_return; /* NetBSD ELF uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } -void _initialize_m68kbsd_tdep (); -void -_initialize_m68kbsd_tdep () +INIT_GDB_FILE (m68kbsd_tdep) { gdbarch_register_osabi (bfd_arch_m68k, 0, GDB_OSABI_NETBSD, m68kbsd_init_abi); diff --git a/gdb/m68k-linux-nat.c b/gdb/m68k-linux-nat.c index d43ed68..02286ff 100644 --- a/gdb/m68k-linux-nat.c +++ b/gdb/m68k-linux-nat.c @@ -508,9 +508,7 @@ ps_get_thread_area (struct ps_prochandle *ph, return PS_OK; } -void _initialize_m68k_linux_nat (); -void -_initialize_m68k_linux_nat () +INIT_GDB_FILE (m68k_linux_nat) { /* Register the target. */ linux_target = &the_m68k_linux_nat_target; diff --git a/gdb/m68k-linux-tdep.c b/gdb/m68k-linux-tdep.c index cfc37ab..bd2a14a 100644 --- a/gdb/m68k-linux-tdep.c +++ b/gdb/m68k-linux-tdep.c @@ -35,6 +35,7 @@ #include "observable.h" #include "elf/common.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "regset.h" /* Offsets (in target ints) into jmp_buf. */ @@ -407,8 +408,7 @@ m68k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Shared library handling. */ /* GNU/Linux uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* GNU/Linux uses the dynamic linker included in the GNU C Library. */ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); @@ -424,9 +424,7 @@ m68k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) svr4_fetch_objfile_link_map); } -void _initialize_m68k_linux_tdep (); -void -_initialize_m68k_linux_tdep () +INIT_GDB_FILE (m68k_linux_tdep) { gdbarch_register_osabi (bfd_arch_m68k, 0, GDB_OSABI_LINUX, m68k_linux_init_abi); diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index 4e25518..94bfddb 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -1365,9 +1365,7 @@ m68k_osabi_sniffer (bfd *abfd) return osabi; } -void _initialize_m68k_tdep (); -void -_initialize_m68k_tdep () +INIT_GDB_FILE (m68k_tdep) { gdbarch_register (bfd_arch_m68k, m68k_gdbarch_init, m68k_dump_tdep); diff --git a/gdb/machoread.c b/gdb/machoread.c index cc8aca3..ffee181 100644 --- a/gdb/machoread.c +++ b/gdb/machoread.c @@ -940,9 +940,7 @@ static const struct sym_fns macho_sym_fns = { NULL, /* sym_get_probes */ }; -void _initialize_machoread (); -void -_initialize_machoread () +INIT_GDB_FILE (machoread) { add_symtab_fns (bfd_target_mach_o_flavour, &macho_sym_fns); diff --git a/gdb/macrocmd.c b/gdb/macrocmd.c index 86b6839..d805f3d 100644 --- a/gdb/macrocmd.c +++ b/gdb/macrocmd.c @@ -408,9 +408,7 @@ macro_list_command (const char *exp, int from_tty) /* Initializing the `macrocmd' module. */ -void _initialize_macrocmd (); -void -_initialize_macrocmd () +INIT_GDB_FILE (macrocmd) { /* We introduce a new command prefix, `macro', under which we'll put the various commands for working with preprocessor macros. */ diff --git a/gdb/macroscope.c b/gdb/macroscope.c index 633ead1..7aa0784 100644 --- a/gdb/macroscope.c +++ b/gdb/macroscope.c @@ -149,9 +149,7 @@ standard_macro_lookup (const char *name, const macro_scope &ms) return result; } -void _initialize_macroscope (); -void -_initialize_macroscope () +INIT_GDB_FILE (macroscope) { macro_user_macros = new_macro_table (NULL, NULL, NULL); macro_set_main (macro_user_macros, "<user-defined>"); diff --git a/gdb/maint-test-options.c b/gdb/maint-test-options.c index 25f609b..97236c9 100644 --- a/gdb/maint-test-options.c +++ b/gdb/maint-test-options.c @@ -429,9 +429,7 @@ maintenance_test_options_unknown_is_operand_command_completer static cmd_list_element *maintenance_test_options_list; -void _initialize_maint_test_options (); -void -_initialize_maint_test_options () +INIT_GDB_FILE (maint_test_options) { cmd_list_element *cmd; diff --git a/gdb/maint-test-settings.c b/gdb/maint-test-settings.c index 663190a..c7b12c6 100644 --- a/gdb/maint-test-settings.c +++ b/gdb/maint-test-settings.c @@ -78,9 +78,7 @@ maintenance_show_test_settings_value_cmd } -void _initialize_maint_test_settings (); -void -_initialize_maint_test_settings () +INIT_GDB_FILE (maint_test_settings) { maintenance_test_settings_filename = "/foo/bar"; diff --git a/gdb/maint.c b/gdb/maint.c index 49a308d..78dea22 100644 --- a/gdb/maint.c +++ b/gdb/maint.c @@ -1301,9 +1301,7 @@ Selftests have been disabled for this build.\n")); } -void _initialize_maint_cmds (); -void -_initialize_maint_cmds () +INIT_GDB_FILE (maint_cmds) { struct cmd_list_element *cmd; diff --git a/gdb/maint.h b/gdb/maint.h index cccb6f6..6930018 100644 --- a/gdb/maint.h +++ b/gdb/maint.h @@ -61,7 +61,9 @@ class scoped_command_stats bool m_symtab_enabled : 1; run_time_clock::time_point m_start_cpu_time; std::chrono::steady_clock::time_point m_start_wall_time; +#ifdef HAVE_USEFUL_SBRK long m_start_space; +#endif /* Total number of symtabs (over all objfiles). */ int m_start_nr_symtabs; /* A count of the compunits. */ diff --git a/gdb/make-init-c b/gdb/make-init-c index 5ea6df5..6834b43 100755 --- a/gdb/make-init-c +++ b/gdb/make-init-c @@ -25,12 +25,13 @@ # # Where SOURCE-FILES is the list of source files to extract init functions from. # -# Formatting conventions: The name of the initialization routines must begin -# with `_initialize_`, must start in column zero, and be followed with exactly -# ` ()`. For example: + +# An initialization function is introduced using the "INIT_GDB_FILE" +# macro. In ordinary code this expands to a function declaration (to +# avoid a warning) and then the start of a definition. In the +# generated init.c, though, it is expanded differently. For example: # -# void -# _initialize_foo () +# INIT_GDB_FILE (foo) # { # ... # } @@ -43,19 +44,21 @@ echo "/* Do not modify this file. */" echo "/* It is created automatically by the Makefile. */" echo "#include <algorithm>" echo "" -sed -n -e 's/^\(void \|\)\(_initialize_[a-zA-Z0-9_]*\) ()$/\2/p' "$@" | while read -r name; do - echo "extern initialize_file_ftype $name;" -done +echo "#undef INIT_GDB_FILE" +echo "#define INIT_GDB_FILE(NAME) extern void _initialize_ ## NAME ();" +grep -h '^[ ]*INIT_GDB_FILE\b' "$@" echo "" echo "void initialize_all_files ();" echo "void" echo "initialize_all_files ()" echo "{" +echo " typedef void initialize_file_ftype (void);" +echo "" echo " std::vector<initialize_file_ftype *> functions =" echo " {" -sed -n -e 's/^\(void \|\)\(_initialize_[a-zA-Z0-9_]*\) ()$/\2/p' "$@" | while read -r name; do - echo " $name," -done +echo "#undef INIT_GDB_FILE" +echo "#define INIT_GDB_FILE(NAME) _initialize_ ## NAME," +grep -h '^[ ]*INIT_GDB_FILE\b' "$@" echo " };" echo "" echo " /* If GDB_REVERSE_INIT_FUNCTIONS is set (any value), reverse the" diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 51e1907..5bb15c2 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -4813,9 +4813,7 @@ mipsmdebug_build_psymtabs (struct objfile *objfile, reader.install (); } -void _initialize_mdebugread (); -void -_initialize_mdebugread () +INIT_GDB_FILE (mdebugread) { mdebug_register_index = register_symbol_register_impl (LOC_REGISTER, &mdebug_register_funcs); diff --git a/gdb/memattr.c b/gdb/memattr.c index 81d0de0..9d26d31 100644 --- a/gdb/memattr.c +++ b/gdb/memattr.c @@ -592,9 +592,7 @@ delete_mem_command (const char *args, int from_tty) static struct cmd_list_element *mem_set_cmdlist; static struct cmd_list_element *mem_show_cmdlist; -void _initialize_mem (); -void -_initialize_mem () +INIT_GDB_FILE (mem) { add_com ("mem", class_vars, mem_command, _("\ Define or reset attributes for memory regions.\n\ diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c index 60bae3a..30a6018 100644 --- a/gdb/mep-tdep.c +++ b/gdb/mep-tdep.c @@ -2459,9 +2459,7 @@ mep_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_mep_tdep (); -void -_initialize_mep_tdep () +INIT_GDB_FILE (mep_tdep) { mep_csr_reggroup = reggroup_new ("csr", USER_REGGROUP); mep_cr_reggroup = reggroup_new ("cr", USER_REGGROUP); diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c index e79af9c..bc2fe77 100644 --- a/gdb/mi/mi-cmd-env.c +++ b/gdb/mi/mi-cmd-env.c @@ -236,9 +236,7 @@ mi_cmd_inferior_tty_show (const char *command, const char *const *argv, current_uiout->field_string ("inferior_tty_terminal", inferior_tty); } -void _initialize_mi_cmd_env (); -void -_initialize_mi_cmd_env () +INIT_GDB_FILE (mi_cmd_env) { const char *env; diff --git a/gdb/mi/mi-cmds.c b/gdb/mi/mi-cmds.c index 53cdcc9..abd3fb9 100644 --- a/gdb/mi/mi-cmds.c +++ b/gdb/mi/mi-cmds.c @@ -369,9 +369,7 @@ mi_cmd_lookup (const char *command) return it->second.get (); } -void _initialize_mi_cmds (); -void -_initialize_mi_cmds () +INIT_GDB_FILE (mi_cmds) { add_builtin_mi_commands (); } diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 1c90534..8373e1a 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -935,9 +935,7 @@ mi_interp_factory (const char *name) return new mi_interp (name); } -void _initialize_mi_interp (); -void -_initialize_mi_interp () +INIT_GDB_FILE (mi_interp) { /* The various interpreter levels. */ interp_factory_register (INTERP_MI2, mi_interp_factory); diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index cda72ca..789e6fa 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -2768,9 +2768,7 @@ mi_parse_thread_group_id (const char *id) return (int) num; } -void _initialize_mi_main (); -void -_initialize_mi_main () +INIT_GDB_FILE (mi_main) { set_show_commands mi_async_cmds = add_setshow_boolean_cmd ("mi-async", class_run, diff --git a/gdb/microblaze-linux-tdep.c b/gdb/microblaze-linux-tdep.c index 8dcbeaa..0fdda18 100644 --- a/gdb/microblaze-linux-tdep.c +++ b/gdb/microblaze-linux-tdep.c @@ -35,6 +35,7 @@ #include "frame-unwind.h" #include "tramp-frame.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" static int microblaze_linux_memory_remove_breakpoint (struct gdbarch *gdbarch, @@ -125,17 +126,14 @@ microblaze_linux_init_abi (struct gdbarch_info info, microblaze_linux_memory_remove_breakpoint); /* Shared library handling. */ - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* Trampolines. */ tramp_frame_prepend_unwinder (gdbarch, µblaze_linux_sighandler_tramp_frame); } -void _initialize_microblaze_linux_tdep (); -void -_initialize_microblaze_linux_tdep () +INIT_GDB_FILE (microblaze_linux_tdep) { gdbarch_register_osabi (bfd_arch_microblaze, 0, GDB_OSABI_LINUX, microblaze_linux_init_abi); diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c index bc728b6..7b58220 100644 --- a/gdb/microblaze-tdep.c +++ b/gdb/microblaze-tdep.c @@ -736,9 +736,7 @@ microblaze_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_microblaze_tdep (); -void -_initialize_microblaze_tdep () +INIT_GDB_FILE (microblaze_tdep) { gdbarch_register (bfd_arch_microblaze, microblaze_gdbarch_init); diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c index 84a7b9f..481bd41 100644 --- a/gdb/mingw-hdep.c +++ b/gdb/mingw-hdep.c @@ -23,6 +23,8 @@ #include "gdbsupport/gdb_select.h" #include "inferior.h" #include "cli/cli-style.h" +#include "command.h" +#include "cli/cli-cmds.h" #include <windows.h> #include <signal.h> @@ -445,3 +447,65 @@ install_sigint_handler (c_c_handler_ftype *fn) current_handler = fn; return result; } + +/* Set stdout and stderr handles to translation mode MODE. */ + +static void +set_console_translation_mode (int mode) +{ + setmode (fileno (stdout), mode); + setmode (fileno (stderr), mode); +} + +/* Arg in "maint set console-translation-mode <arg>. */ + +static std::string maint_console_translation_mode; + +/* Current value of "maint set/show console-translation-mode". */ + +static std::string console_translation_mode = "unknown"; + +/* Sets the console translation mode. */ + +static void +set_maint_console_translation_mode (const char *args, int from_tty, + struct cmd_list_element *c) +{ + if (maint_console_translation_mode == "binary") + set_console_translation_mode (O_BINARY); + else if (maint_console_translation_mode == "text") + set_console_translation_mode (O_TEXT); + else + error (_("Invalid console translation mode: %s"), + maint_console_translation_mode.c_str ()); + + console_translation_mode = maint_console_translation_mode; +} + +/* Shows the console translation mode. */ + +static void +show_maint_console_translation_mode (struct ui_file *file, int from_tty, + struct cmd_list_element *c, + const char *value) +{ + gdb_printf (file, _("Console translation mode is %s.\n"), + console_translation_mode.c_str ()); +} + +extern void _initialize_mingw_hdep (); + +void +_initialize_mingw_hdep () +{ + add_setshow_string_cmd ("console-translation-mode", + class_maintenance, + &maint_console_translation_mode, _("\ +Set the translation mode of stdout/stderr."), _("\ +Show the translation mode of stdout/stderr."), _("\ +Use \"binary\", or \"text\""), + set_maint_console_translation_mode, + show_maint_console_translation_mode, + &maintenance_set_cmdlist, + &maintenance_show_cmdlist); +} diff --git a/gdb/mips-fbsd-nat.c b/gdb/mips-fbsd-nat.c index 667a4bc..8d97849 100644 --- a/gdb/mips-fbsd-nat.c +++ b/gdb/mips-fbsd-nat.c @@ -125,9 +125,7 @@ mips_fbsd_nat_target::store_registers (struct regcache *regcache, int regnum) } } -void _initialize_mips_fbsd_nat (); -void -_initialize_mips_fbsd_nat () +INIT_GDB_FILE (mips_fbsd_nat) { add_inf_child_target (&the_mips_fbsd_nat_target); } diff --git a/gdb/mips-fbsd-tdep.c b/gdb/mips-fbsd-tdep.c index c280527..c1b5f9c 100644 --- a/gdb/mips-fbsd-tdep.c +++ b/gdb/mips-fbsd-tdep.c @@ -476,12 +476,28 @@ mips_fbsd_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc) return fbsd_skip_solib_resolver (gdbarch, pc); } -/* FreeBSD/mips uses a slightly different `struct link_map' than the - other FreeBSD platforms as it includes an additional `l_off' - member. */ +/* solib_ops for ILP32 FreeBSD/MIPS systems. */ -static struct link_map_offsets * -mips_fbsd_ilp32_fetch_link_map_offsets (void) +struct mips_fbsd_ilp32_solib_ops : public svr4_solib_ops +{ + /* FreeBSD/MIPS uses a slightly different `struct link_map' than the + other FreeBSD platforms as it includes an additional `l_off' member. */ + + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* Return a new solib_ops for ILP32 FreeBSD/MIPS systems. */ + +static solib_ops_up +make_mips_fbsd_ilp32_solib_ops () +{ + return std::make_unique<mips_fbsd_ilp32_solib_ops> (); +} + +/* See mips_fbsd_ilp32_solib_ops. */ + +link_map_offsets * +mips_fbsd_ilp32_solib_ops::fetch_link_map_offsets () const { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -508,8 +524,28 @@ mips_fbsd_ilp32_fetch_link_map_offsets (void) return lmp; } -static struct link_map_offsets * -mips_fbsd_lp64_fetch_link_map_offsets (void) +/* solib_ops for LP64 FreeBSD/MIPS systems. */ + +struct mips_fbsd_lp64_solib_ops : public svr4_solib_ops +{ + /* FreeBSD/MIPS uses a slightly different `struct link_map' than the + other FreeBSD platforms as it includes an additional `l_off' member. */ + + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* Return a new solib_ops for LP64 FreeBSD/MIPS systems. */ + +static solib_ops_up +make_mips_fbsd_lp64_solib_ops () +{ + return std::make_unique<mips_fbsd_lp64_solib_ops> (); +} + +/* See mips_fbsd_lp64_solib_ops. */ + +link_map_offsets * +mips_fbsd_lp64_solib_ops::fetch_link_map_offsets () const { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -565,15 +601,12 @@ mips_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_solib_resolver (gdbarch, mips_fbsd_skip_solib_resolver); /* FreeBSD/mips has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32 ? - mips_fbsd_ilp32_fetch_link_map_offsets : - mips_fbsd_lp64_fetch_link_map_offsets)); + set_solib_svr4_ops (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32 + ? make_mips_fbsd_ilp32_solib_ops + : make_mips_fbsd_lp64_solib_ops)); } -void _initialize_mips_fbsd_tdep (); -void -_initialize_mips_fbsd_tdep () +INIT_GDB_FILE (mips_fbsd_tdep) { gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_FREEBSD, mips_fbsd_init_abi); diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index b4b5788..e22e904 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -784,9 +784,7 @@ mips_linux_nat_target::close () linux_nat_trad_target::close (); } -void _initialize_mips_linux_nat (); -void -_initialize_mips_linux_nat () +INIT_GDB_FILE (mips_linux_nat) { add_setshow_boolean_cmd ("show-debug-regs", class_maintenance, &show_debug_regs, _("\ diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c index bf3df36..e4fa243 100644 --- a/gdb/mips-linux-tdep.c +++ b/gdb/mips-linux-tdep.c @@ -36,6 +36,7 @@ #include "mips-linux-tdep.h" #include "glibc-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "xml-syscall.h" #include "gdbsupport/gdb_signals.h" #include "inferior.h" @@ -45,8 +46,6 @@ #include "features/mips64-linux.c" #include "features/mips64-dsp-linux.c" -static solib_ops mips_svr4_so_ops; - /* This enum represents the signals' numbers on the MIPS architecture. It just contains the signal definitions which are different from the generic implementation. @@ -666,15 +665,22 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc) return 1; } -/* Return true iff PC belongs to the dynamic linker resolution - code, a PLT entry, or a lazy binding stub. */ +/* Mix-in class to add Linux/MIPS-specific methods to a base solib_ops + class. */ -static bool -mips_linux_in_dynsym_resolve_code (CORE_ADDR pc) +template <typename Base> +struct mips_linux_svr4_solib_ops : public Base +{ + bool in_dynsym_resolve_code (CORE_ADDR pc) const override; +}; + +template <typename Base> +bool +mips_linux_svr4_solib_ops<Base>::in_dynsym_resolve_code (CORE_ADDR pc) const { /* Check whether PC is in the dynamic linker. This also checks whether it is in the .plt section, used by non-PIC executables. */ - if (svr4_in_dynsym_resolve_code (pc)) + if (Base::in_dynsym_resolve_code (pc)) return true; /* Likewise for the stubs. They live in the .MIPS.stubs section these @@ -686,6 +692,32 @@ mips_linux_in_dynsym_resolve_code (CORE_ADDR pc) return false; } +/* solib_ops for ILP32 Linux/MIPS systems. */ + +using mips_linux_ilp32_svr4_solib_ops + = mips_linux_svr4_solib_ops<linux_ilp32_svr4_solib_ops>; + +/* Return a new solib_ops for ILP32 Linux/MIPS systems. */ + +static solib_ops_up +make_mips_linux_ilp32_svr4_solib_ops () +{ + return std::make_unique<mips_linux_ilp32_svr4_solib_ops> (); +} + +/* solib_ops for LP64 Linux/MIPS systems. */ + +using mips_linux_lp64_svr4_solib_ops + = mips_linux_svr4_solib_ops<linux_lp64_svr4_solib_ops>; + +/* Return a new solib_ops for LP64 Linux/MIPS systems. */ + +static solib_ops_up +make_mips_linux_lp64_svr4_solib_ops () +{ + return std::make_unique<mips_linux_lp64_svr4_solib_ops> (); +} + /* See the comments for SKIP_SOLIB_RESOLVER at the top of infrun.c, and glibc_skip_solib_resolver in glibc-tdep.c. The normal glibc implementation of this triggers at "fixup" from the same objfile as @@ -1537,8 +1569,7 @@ mips_linux_init_abi (struct gdbarch_info info, case MIPS_ABI_O32: set_gdbarch_get_longjmp_target (gdbarch, mips_linux_get_longjmp_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_mips_linux_ilp32_svr4_solib_ops); tramp_frame_prepend_unwinder (gdbarch, µmips_linux_o32_sigframe); tramp_frame_prepend_unwinder (gdbarch, µmips_linux_o32_rt_sigframe); @@ -1549,8 +1580,7 @@ mips_linux_init_abi (struct gdbarch_info info, case MIPS_ABI_N32: set_gdbarch_get_longjmp_target (gdbarch, mips_linux_get_longjmp_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_mips_linux_ilp32_svr4_solib_ops); set_gdbarch_long_double_bit (gdbarch, 128); set_gdbarch_long_double_format (gdbarch, floatformats_ieee_quad); tramp_frame_prepend_unwinder (gdbarch, @@ -1561,8 +1591,7 @@ mips_linux_init_abi (struct gdbarch_info info, case MIPS_ABI_N64: set_gdbarch_get_longjmp_target (gdbarch, mips64_linux_get_longjmp_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_mips_linux_lp64_svr4_solib_ops); set_gdbarch_long_double_bit (gdbarch, 128); set_gdbarch_long_double_format (gdbarch, floatformats_ieee_quad); tramp_frame_prepend_unwinder (gdbarch, @@ -1582,16 +1611,6 @@ mips_linux_init_abi (struct gdbarch_info info, set_gdbarch_fetch_tls_load_module_address (gdbarch, svr4_fetch_objfile_link_map); - /* Initialize this lazily, to avoid an initialization order - dependency on solib-svr4.c's _initialize routine. */ - if (mips_svr4_so_ops.in_dynsym_resolve_code == NULL) - { - mips_svr4_so_ops = svr4_so_ops; - mips_svr4_so_ops.in_dynsym_resolve_code - = mips_linux_in_dynsym_resolve_code; - } - set_gdbarch_so_ops (gdbarch, &mips_svr4_so_ops); - set_gdbarch_write_pc (gdbarch, mips_linux_write_pc); set_gdbarch_core_read_description (gdbarch, @@ -1628,9 +1647,7 @@ mips_linux_init_abi (struct gdbarch_info info, } } -void _initialize_mips_linux_tdep (); -void -_initialize_mips_linux_tdep () +INIT_GDB_FILE (mips_linux_tdep) { const struct bfd_arch_info *arch_info; diff --git a/gdb/mips-netbsd-nat.c b/gdb/mips-netbsd-nat.c index 51e3878..91b870b 100644 --- a/gdb/mips-netbsd-nat.c +++ b/gdb/mips-netbsd-nat.c @@ -115,9 +115,7 @@ mips_nbsd_nat_target::store_registers (struct regcache *regcache, int regno) } } -void _initialize_mipsnbsd_nat (); -void -_initialize_mipsnbsd_nat () +INIT_GDB_FILE (mipsnbsd_nat) { add_inf_child_target (&the_mips_nbsd_nat_target); } diff --git a/gdb/mips-netbsd-tdep.c b/gdb/mips-netbsd-tdep.c index c9bdaa6..42eb515 100644 --- a/gdb/mips-netbsd-tdep.c +++ b/gdb/mips-netbsd-tdep.c @@ -288,13 +288,27 @@ mipsnbsd_cannot_store_register (struct gdbarch *gdbarch, int regno) || regno == mips_regnum (gdbarch)->fp_implementation_revision); } -/* Shared library support. */ +/* solib_ops for ILP32 NetBSD/MIPS systems. */ -/* NetBSD/mips uses a slightly different `struct link_map' than the - other NetBSD platforms. */ +struct mips_nbsd_ilp32_svr4_solib_ops : public svr4_solib_ops +{ + /* NetBSD/MIPS uses a slightly different `struct link_map' than the + other NetBSD platforms. */ + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* Return a new solib_ops for ILP32 NetBSD/MIPS systems. */ -static struct link_map_offsets * -mipsnbsd_ilp32_fetch_link_map_offsets (void) +static solib_ops_up +make_mips_nbsd_ilp32_svr4_solib_ops () +{ + return std::make_unique<mips_nbsd_ilp32_svr4_solib_ops> (); +} + +/* See mips_nbsd_ilp32_svr4_solib_ops. */ + +link_map_offsets * +mips_nbsd_ilp32_svr4_solib_ops::fetch_link_map_offsets () const { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -322,8 +336,27 @@ mipsnbsd_ilp32_fetch_link_map_offsets (void) return lmp; } -static struct link_map_offsets * -mipsnbsd_lp64_fetch_link_map_offsets (void) +/* solib_ops for LP64 NetBSD/MIPS systems. */ + +struct mips_nbsd_lp64_svr4_solib_ops : public svr4_solib_ops +{ + /* NetBSD/MIPS uses a slightly different `struct link_map' than the + other NetBSD platforms. */ + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* Return a new solib_ops for LP64 NetBSD/MIPS systems. */ + +static solib_ops_up +make_mips_nbsd_lp64_svr4_solib_ops () +{ + return std::make_unique<mips_nbsd_lp64_svr4_solib_ops> (); +} + +/* See mips_nbsd_lp64_svr4_solib_ops. */ + +link_map_offsets * +mips_nbsd_lp64_svr4_solib_ops::fetch_link_map_offsets () const { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -369,15 +402,12 @@ mipsnbsd_init_abi (struct gdbarch_info info, set_gdbarch_software_single_step (gdbarch, mips_software_single_step); /* NetBSD/mips has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32 ? - mipsnbsd_ilp32_fetch_link_map_offsets : - mipsnbsd_lp64_fetch_link_map_offsets)); + set_solib_svr4_ops (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32 + ? make_mips_nbsd_ilp32_svr4_solib_ops + : make_mips_nbsd_lp64_svr4_solib_ops)); } -void _initialize_mipsnbsd_tdep (); -void -_initialize_mipsnbsd_tdep () +INIT_GDB_FILE (mipsnbsd_tdep) { gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_NETBSD, mipsnbsd_init_abi); diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c index 1f50ef0..5278afb 100644 --- a/gdb/mips-sde-tdep.c +++ b/gdb/mips-sde-tdep.c @@ -254,9 +254,7 @@ mips_sde_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_base_append_sniffer (gdbarch, mips_sde_frame_base_sniffer); } -void _initialize_mips_sde_tdep (); -void -_initialize_mips_sde_tdep () +INIT_GDB_FILE (mips_sde_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_mips, bfd_target_elf_flavour, diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index c64cd47..32f832b 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -8972,9 +8972,7 @@ mips_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) mips_fpu_type_str (mips_get_fpu_type (gdbarch))); } -void _initialize_mips_tdep (); -void -_initialize_mips_tdep () +INIT_GDB_FILE (mips_tdep) { static struct cmd_list_element *mipsfpulist = NULL; diff --git a/gdb/mips64-obsd-nat.c b/gdb/mips64-obsd-nat.c index 26fc1b9..d77c77e 100644 --- a/gdb/mips64-obsd-nat.c +++ b/gdb/mips64-obsd-nat.c @@ -114,9 +114,7 @@ mips64_obsd_nat_target::store_registers (struct regcache *regcache, int regnum) perror_with_name (_("Couldn't write registers")); } -void _initialize_mips64obsd_nat (); -void -_initialize_mips64obsd_nat () +INIT_GDB_FILE (mips64obsd_nat) { add_inf_child_target (&the_mips64_obsd_nat_target); } diff --git a/gdb/mips64-obsd-tdep.c b/gdb/mips64-obsd-tdep.c index d0c9a1c..b9a6fe5 100644 --- a/gdb/mips64-obsd-tdep.c +++ b/gdb/mips64-obsd-tdep.c @@ -150,13 +150,10 @@ mips64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) obsd_init_abi(info, gdbarch); /* OpenBSD/mips64 has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); } -void _initialize_mips64obsd_tdep (); -void -_initialize_mips64obsd_tdep () +INIT_GDB_FILE (mips64obsd_tdep) { gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_OPENBSD, mips64obsd_init_abi); diff --git a/gdb/mipsread.c b/gdb/mipsread.c index b726b98..1d76b8f 100644 --- a/gdb/mipsread.c +++ b/gdb/mipsread.c @@ -370,9 +370,7 @@ static const struct sym_fns ecoff_sym_fns = NULL, /* sym_probe_fns */ }; -void _initialize_mipsread (); -void -_initialize_mipsread () +INIT_GDB_FILE (mipsread) { add_symtab_fns (bfd_target_ecoff_flavour, &ecoff_sym_fns); } diff --git a/gdb/mn10300-linux-tdep.c b/gdb/mn10300-linux-tdep.c index 3334ca0..6c31241 100644 --- a/gdb/mn10300-linux-tdep.c +++ b/gdb/mn10300-linux-tdep.c @@ -29,6 +29,7 @@ #include "trad-frame.h" #include "tramp-frame.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "gdbarch.h" /* Transliterated from <asm-mn10300/elf.h>... */ @@ -707,16 +708,13 @@ am33_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_iterate_over_regset_sections (gdbarch, am33_iterate_over_regset_sections); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); tramp_frame_prepend_unwinder (gdbarch, &am33_linux_sigframe); tramp_frame_prepend_unwinder (gdbarch, &am33_linux_rt_sigframe); } -void _initialize_mn10300_linux_tdep (); -void -_initialize_mn10300_linux_tdep () +INIT_GDB_FILE (mn10300_linux_tdep) { gdbarch_register_osabi (bfd_arch_mn10300, 0, GDB_OSABI_LINUX, am33_linux_init_osabi); diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c index c82a302..fbaeacf 100644 --- a/gdb/mn10300-tdep.c +++ b/gdb/mn10300-tdep.c @@ -1413,9 +1413,7 @@ mn10300_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) tdep->am33_mode); } -void _initialize_mn10300_tdep (); -void -_initialize_mn10300_tdep () +INIT_GDB_FILE (mn10300_tdep) { gdbarch_register (bfd_arch_mn10300, mn10300_gdbarch_init, mn10300_dump_tdep); } diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c index ddb9efb..2239406 100644 --- a/gdb/moxie-tdep.c +++ b/gdb/moxie-tdep.c @@ -1101,9 +1101,7 @@ moxie_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Register this machine's init routine. */ -void _initialize_moxie_tdep (); -void -_initialize_moxie_tdep () +INIT_GDB_FILE (moxie_tdep) { gdbarch_register (bfd_arch_moxie, moxie_gdbarch_init); } diff --git a/gdb/msp430-tdep.c b/gdb/msp430-tdep.c index 441831e..7ac26b9 100644 --- a/gdb/msp430-tdep.c +++ b/gdb/msp430-tdep.c @@ -996,9 +996,7 @@ msp430_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Register the initialization routine. */ -void _initialize_msp430_tdep (); -void -_initialize_msp430_tdep () +INIT_GDB_FILE (msp430_tdep) { gdbarch_register (bfd_arch_msp430, msp430_gdbarch_init); } diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c index 8fe3206..2a65fb0 100644 --- a/gdb/nat/linux-namespaces.c +++ b/gdb/nat/linux-namespaces.c @@ -913,7 +913,7 @@ linux_mntns_access_fs (pid_t pid) struct stat sb; struct linux_mnsh *helper; ssize_t size; - int fd; + int fd, fd_user = -1; if (pid == getpid ()) return MNSH_FS_DIRECT; @@ -930,6 +930,8 @@ linux_mntns_access_fs (pid_t pid) { int save_errno = errno; close (fd); + if (fd_user >= 0) + close (fd_user); errno = save_errno; }; @@ -939,6 +941,13 @@ linux_mntns_access_fs (pid_t pid) if (sb.st_ino == ns->id) return MNSH_FS_DIRECT; + struct linux_ns *ns_user = linux_ns_get_namespace (LINUX_NS_USER); + if (ns_user != nullptr) + { + const char *ns_filename = linux_ns_filename (ns_user, pid); + fd_user = gdb_open_cloexec (ns_filename, O_RDONLY, 0).release (); + } + helper = linux_mntns_get_helper (); if (helper == NULL) return MNSH_FS_ERROR; @@ -947,6 +956,19 @@ linux_mntns_access_fs (pid_t pid) { int result, error; + /* Try to enter the user namespace first. The current user might + have elevated privileges within the user namespace, which would + then allow the attempt to enter the mount namespace to succeed. */ + if (fd_user >= 0) + { + size = mnsh_send_setns (helper, fd_user, 0); + if (size < 0) + return MNSH_FS_ERROR; + + if (mnsh_recv_int (helper, &result, &error) != 0) + return MNSH_FS_ERROR; + } + size = mnsh_send_setns (helper, fd, 0); if (size < 0) return MNSH_FS_ERROR; diff --git a/gdb/nat/linux-procfs.c b/gdb/nat/linux-procfs.c index a72df2a..d4f9af3 100644 --- a/gdb/nat/linux-procfs.c +++ b/gdb/nat/linux-procfs.c @@ -424,7 +424,7 @@ linux_proc_task_list_dir_exists (pid_t pid) /* See linux-procfs.h. */ const char * -linux_proc_pid_to_exec_file (int pid) +linux_proc_pid_to_exec_file (int pid, bool is_local_fs) { static char buf[PATH_MAX]; char name[PATH_MAX]; @@ -437,9 +437,31 @@ linux_proc_pid_to_exec_file (int pid) else buf[len] = '\0'; - /* Use /proc/PID/exe if the actual file can't be read, but /proc/PID/exe - can be. */ - if (access (buf, R_OK) != 0 && access (name, R_OK) == 0) + /* If the inferior and GDB can see the same filesystem, and NAME + cannot be read, maybe the file has been deleted, then we can + potentially use /proc/PID/exe instead. + + GDB always interprets the results of this function within the + current sysroot (which is 'target:' by default). This means + that, if we return /proc/PID/exe, GDB will try to find this file + within the sysroot. + + This doesn't make sense if GDB is using a sysroot like: + '/some/random/directory/', not only is it possible that NAME + could be found within the sysroot, it is unlikely that + /proc/PID/exe will exist within the sysroot. + + Similarly, if the sysroot is 'target:', but the inferior is + running within a separate MNT namespace, then it is more than + likely that the inferior will also be running in a separate PID + namespace, in this case PID is the pid on the host system, + /proc/PID/exe will not be correct within the inferiors MNT/PID + namespace. + + So, we can fallback to use /proc/PID/exe only if IS_LOCAL_FS is + true, this indicates that GDB and the inferior are using the same + MNT namespace, and GDB's sysroot is either empty, or 'target:'. */ + if (is_local_fs && access (buf, R_OK) != 0 && access (name, R_OK) == 0) strcpy (buf, name); return buf; diff --git a/gdb/nat/linux-procfs.h b/gdb/nat/linux-procfs.h index 0c80622..4b02d31 100644 --- a/gdb/nat/linux-procfs.h +++ b/gdb/nat/linux-procfs.h @@ -87,9 +87,19 @@ extern int linux_proc_task_list_dir_exists (pid_t pid); /* Return the full absolute name of the executable file that was run to create the process PID. The returned value persists until this - function is next called. */ + function is next called. -extern const char *linux_proc_pid_to_exec_file (int pid); + LOCAL_FS should be true if the file returned from the function will + be searched for in the same filesystem as GDB itself is running. + In practice, this means LOCAL_FS should be true if PID and GDB are + running in the same MNT namespace and GDB's sysroot is either the + empty string, or is 'target:'. + + When used from gdbserver, where there is no sysroot, the only check + that matters is that PID and gdbserver are running in the same MNT + namespace. */ + +extern const char *linux_proc_pid_to_exec_file (int pid, bool local_fs); /* Display possible problems on this system. Display them only once per GDB execution. */ diff --git a/gdb/nds32-tdep.c b/gdb/nds32-tdep.c index 7d826fc..9180cd0 100644 --- a/gdb/nds32-tdep.c +++ b/gdb/nds32-tdep.c @@ -2086,9 +2086,7 @@ nds32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_nds32_tdep (); -void -_initialize_nds32_tdep () +INIT_GDB_FILE (nds32_tdep) { /* Initialize gdbarch. */ gdbarch_register (bfd_arch_nds32, nds32_gdbarch_init); diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c index 5341b05..6bba8d3 100644 --- a/gdb/objc-lang.c +++ b/gdb/objc-lang.c @@ -1327,9 +1327,7 @@ find_objc_msgcall (CORE_ADDR pc, CORE_ADDR *new_pc) return 0; } -void _initialize_objc_language (); -void -_initialize_objc_language () +INIT_GDB_FILE (objc_language) { add_info ("selectors", info_selectors_command, _("All Objective-C selectors, or those matching REGEXP.")); diff --git a/gdb/observable.c b/gdb/observable.c index 734a5f6..1233a19 100644 --- a/gdb/observable.c +++ b/gdb/observable.c @@ -87,9 +87,7 @@ show_observer_debug (struct ui_file *file, int from_tty, gdb_printf (file, _("Observer debugging is %s.\n"), value); } -void _initialize_observer (); -void -_initialize_observer () +INIT_GDB_FILE (observer) { add_setshow_boolean_cmd ("observer", class_maintenance, &gdb::observers::observer_debug, _("\ diff --git a/gdb/or1k-linux-nat.c b/gdb/or1k-linux-nat.c index 3a80dc9..cc682ea 100644 --- a/gdb/or1k-linux-nat.c +++ b/gdb/or1k-linux-nat.c @@ -199,9 +199,7 @@ or1k_linux_nat_target::store_registers (struct regcache *regcache, int regnum) /* Initialize OpenRISC Linux native support. */ -void _initialize_or1k_linux_nat (); -void -_initialize_or1k_linux_nat () +INIT_GDB_FILE (or1k_linux_nat) { /* Register the target. */ linux_target = &the_or1k_linux_nat_target; diff --git a/gdb/or1k-linux-tdep.c b/gdb/or1k-linux-tdep.c index 4784e0b..afefefe 100644 --- a/gdb/or1k-linux-tdep.c +++ b/gdb/or1k-linux-tdep.c @@ -20,6 +20,7 @@ #include "osabi.h" #include "glibc-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "solib-svr4.h" #include "regset.h" #include "tramp-frame.h" @@ -144,8 +145,7 @@ or1k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { linux_init_abi (info, gdbarch, 0); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); @@ -167,9 +167,7 @@ or1k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Initialize OpenRISC Linux target support. */ -void _initialize_or1k_linux_tdep (); -void -_initialize_or1k_linux_tdep () +INIT_GDB_FILE (or1k_linux_tdep) { gdbarch_register_osabi (bfd_arch_or1k, 0, GDB_OSABI_LINUX, or1k_linux_init_abi); diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c index 8e76419..2774840 100644 --- a/gdb/or1k-tdep.c +++ b/gdb/or1k-tdep.c @@ -1286,9 +1286,7 @@ or1k_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) } -void _initialize_or1k_tdep (); -void -_initialize_or1k_tdep () +INIT_GDB_FILE (or1k_tdep) { /* Register this architecture. */ gdbarch_register (bfd_arch_or1k, or1k_gdbarch_init, or1k_dump_tdep); diff --git a/gdb/osabi.c b/gdb/osabi.c index ae14f74..1459368 100644 --- a/gdb/osabi.c +++ b/gdb/osabi.c @@ -609,9 +609,7 @@ show_osabi (struct ui_file *file, int from_tty, struct cmd_list_element *c, gdbarch_osabi_name (GDB_OSABI_DEFAULT)); } -void _initialize_gdb_osabi (); -void -_initialize_gdb_osabi () +INIT_GDB_FILE (gdb_osabi) { /* Register a generic sniffer for ELF flavoured files. */ gdbarch_register_osabi_sniffer (bfd_arch_unknown, diff --git a/gdb/osdata.c b/gdb/osdata.c index 5cc584d..788dd2a 100644 --- a/gdb/osdata.c +++ b/gdb/osdata.c @@ -287,9 +287,7 @@ info_osdata_command (const char *arg, int from_tty) info_osdata (arg); } -void _initialize_osdata (); -void -_initialize_osdata () +INIT_GDB_FILE (osdata) { add_info ("os", info_osdata_command, _("Show OS data ARG.")); diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c index 5dcdbcd..8228ca0 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -860,9 +860,7 @@ pascal_object_print_static_field (struct value *val, common_val_print (val, stream, recurse, &opts, current_language); } -void _initialize_pascal_valprint (); -void -_initialize_pascal_valprint () +INIT_GDB_FILE (pascal_valprint) { add_setshow_boolean_cmd ("pascal_static-members", class_support, &user_print_options.pascal_static_field_print, _("\ diff --git a/gdb/pager.h b/gdb/pager.h index 052337d..b5425d4 100644 --- a/gdb/pager.h +++ b/gdb/pager.h @@ -68,6 +68,16 @@ private: /* Flush the wrap buffer to STREAM, if necessary. */ void flush_wrap_buffer (); + /* Set the style of m_stream to STYLE. */ + void set_stream_style (const ui_file_style &style) + { + if (m_stream->can_emit_style_escape () && m_stream_style != style) + { + m_stream->puts (style.to_ansi ().c_str ()); + m_stream_style = style; + } + } + /* Contains characters which are waiting to be output (they have already been counted in chars_printed). */ std::string m_wrap_buffer; @@ -82,6 +92,12 @@ private: /* The style applied at the time that wrap_here was called. */ ui_file_style m_wrap_style; + /* The style currently applied to m_stream. While m_applied_style is the + style that is applied to new content added to m_wrap_buffer, the + m_stream_style reflects changes that have been flushed to the managed + stream. */ + ui_file_style m_stream_style; + /* This is temporarily set when paging. This will cause some methods to change their behavior to ignore the wrap buffer. */ bool m_paging = false; diff --git a/gdb/parse.c b/gdb/parse.c index 64653c8..6ad4e71 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -617,9 +617,7 @@ parser_fprintf (FILE *x, const char *y, ...) va_end (args); } -void _initialize_parse (); -void -_initialize_parse () +INIT_GDB_FILE (parse) { add_setshow_zuinteger_cmd ("expression", class_maintenance, &expressiondebug, diff --git a/gdb/ppc-fbsd-nat.c b/gdb/ppc-fbsd-nat.c index e8853cf..e59791d 100644 --- a/gdb/ppc-fbsd-nat.c +++ b/gdb/ppc-fbsd-nat.c @@ -200,9 +200,7 @@ ppcfbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) return 1; } -void _initialize_ppcfbsd_nat (); -void -_initialize_ppcfbsd_nat () +INIT_GDB_FILE (ppcfbsd_nat) { add_inf_child_target (&the_ppc_fbsd_nat_target); diff --git a/gdb/ppc-fbsd-tdep.c b/gdb/ppc-fbsd-tdep.c index 3bab031..a666509 100644 --- a/gdb/ppc-fbsd-tdep.c +++ b/gdb/ppc-fbsd-tdep.c @@ -332,8 +332,7 @@ ppcfbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_return_value (gdbarch, ppcfbsd_return_value); set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); frame_unwind_append_unwinder (gdbarch, &ppcfbsd_sigtramp_frame_unwind); set_gdbarch_gcore_bfd_target (gdbarch, "elf32-powerpc"); @@ -347,8 +346,7 @@ ppcfbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) ppc64_elf_make_msymbol_special); set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); set_gdbarch_gcore_bfd_target (gdbarch, "elf64-powerpc"); } @@ -361,9 +359,7 @@ ppcfbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) ppcfbsd_get_thread_local_address); } -void _initialize_ppcfbsd_tdep (); -void -_initialize_ppcfbsd_tdep () +INIT_GDB_FILE (ppcfbsd_tdep) { gdbarch_register_osabi (bfd_arch_powerpc, bfd_mach_ppc, GDB_OSABI_FREEBSD, ppcfbsd_init_abi); diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c index 0397ccb..568202a 100644 --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c @@ -3232,9 +3232,7 @@ ppc_linux_nat_target::get_arch_lwp_info (struct lwp_info *lp) return lwp_arch_private_info (lp); } -void _initialize_ppc_linux_nat (); -void -_initialize_ppc_linux_nat () +INIT_GDB_FILE (ppc_linux_nat) { linux_target = &the_ppc_linux_nat_target; diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c index b3cc4d5..5067b89 100644 --- a/gdb/ppc-linux-tdep.c +++ b/gdb/ppc-linux-tdep.c @@ -48,6 +48,7 @@ #include "arch-utils.h" #include "xml-syscall.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "svr4-tls-tdep.h" #include "linux-record.h" #include "record-full.h" @@ -86,8 +87,6 @@ #include "features/rs6000/powerpc-e500l.c" #include "dwarf2/frame.h" -/* Shared library operations for PowerPC-Linux. */ -static solib_ops powerpc_so_ops; /* The syscall's XML filename for PPC and PPC64. */ #define XML_SYSCALL_FILENAME_PPC "syscalls/ppc-linux.xml" @@ -306,16 +305,33 @@ static const struct ppc_insn_pattern powerpc32_plt_stub_so_2[] = /* The max number of insns we check using ppc_insns_match_pattern. */ #define POWERPC32_PLT_CHECK_LEN (ARRAY_SIZE (powerpc32_plt_stub) - 1) -/* Check if PC is in PLT stub. For non-secure PLT, stub is in .plt - section. For secure PLT, stub is in .text and we need to check - instruction patterns. */ +/* solib_ops for ILP32 PowerPC/Linux systems. */ -static bool -powerpc_linux_in_dynsym_resolve_code (CORE_ADDR pc) +struct ppc_linux_ilp32_svr4_solib_ops : public linux_ilp32_svr4_solib_ops +{ + /* Check if PC is in PLT stub. For non-secure PLT, stub is in .plt + section. For secure PLT, stub is in .text and we need to check + instruction patterns. */ + + bool in_dynsym_resolve_code (CORE_ADDR pc) const override; +}; + +/* Return a new solib_ops for ILP32 PowerPC/Linux systems. */ + +static solib_ops_up +make_ppc_linux_ilp32_svr4_solib_ops () +{ + return std::make_unique<ppc_linux_ilp32_svr4_solib_ops> (); +} + +/* See ppc_linux_ilp32_svr4_solib_ops. */ + +bool +ppc_linux_ilp32_svr4_solib_ops::in_dynsym_resolve_code (CORE_ADDR pc) const { /* Check whether PC is in the dynamic linker. This also checks whether it is in the .plt section, used by non-PIC executables. */ - if (svr4_in_dynsym_resolve_code (pc)) + if (linux_ilp32_svr4_solib_ops::in_dynsym_resolve_code (pc)) return true; /* Check if we are in the resolver. */ @@ -2265,8 +2281,6 @@ ppc_linux_init_abi (struct gdbarch_info info, /* Shared library handling. */ set_gdbarch_skip_trampoline_code (gdbarch, ppc_skip_trampoline_code); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); /* Setting the correct XML syscall filename. */ set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_PPC); @@ -2283,14 +2297,7 @@ ppc_linux_init_abi (struct gdbarch_info info, else set_gdbarch_gcore_bfd_target (gdbarch, "elf32-powerpc"); - if (powerpc_so_ops.in_dynsym_resolve_code == NULL) - { - powerpc_so_ops = svr4_so_ops; - /* Override dynamic resolve function. */ - powerpc_so_ops.in_dynsym_resolve_code = - powerpc_linux_in_dynsym_resolve_code; - } - set_gdbarch_so_ops (gdbarch, &powerpc_so_ops); + set_solib_svr4_ops (gdbarch, make_ppc_linux_ilp32_svr4_solib_ops); set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); } @@ -2317,8 +2324,7 @@ ppc_linux_init_abi (struct gdbarch_info info, /* Shared library handling. */ set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* Setting the correct XML syscall filename. */ set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_PPC64); @@ -2392,9 +2398,7 @@ ppc_linux_init_abi (struct gdbarch_info info, } -void _initialize_ppc_linux_tdep (); -void -_initialize_ppc_linux_tdep () +INIT_GDB_FILE (ppc_linux_tdep) { /* Register for all sub-families of the POWER/PowerPC: 32-bit and 64-bit PowerPC, and the older rs6k. */ diff --git a/gdb/ppc-netbsd-nat.c b/gdb/ppc-netbsd-nat.c index a8e65bb..dfb855a 100644 --- a/gdb/ppc-netbsd-nat.c +++ b/gdb/ppc-netbsd-nat.c @@ -183,9 +183,7 @@ ppcnbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) return 1; } -void _initialize_ppcnbsd_nat (); -void -_initialize_ppcnbsd_nat () +INIT_GDB_FILE (ppcnbsd_nat) { /* Support debugging kernel virtual memory images. */ bsd_kvm_add_target (ppcnbsd_supply_pcb); diff --git a/gdb/ppc-netbsd-tdep.c b/gdb/ppc-netbsd-tdep.c index 911c012..9913592 100644 --- a/gdb/ppc-netbsd-tdep.c +++ b/gdb/ppc-netbsd-tdep.c @@ -179,8 +179,7 @@ ppcnbsd_init_abi (struct gdbarch_info info, set_gdbarch_return_value (gdbarch, ppcnbsd_return_value); /* NetBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); set_gdbarch_iterate_over_regset_sections (gdbarch, ppcnbsd_iterate_over_regset_sections); @@ -189,9 +188,7 @@ ppcnbsd_init_abi (struct gdbarch_info info, tramp_frame_prepend_unwinder (gdbarch, &ppcnbsd2_sigtramp); } -void _initialize_ppcnbsd_tdep (); -void -_initialize_ppcnbsd_tdep () +INIT_GDB_FILE (ppcnbsd_tdep) { gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_NETBSD, ppcnbsd_init_abi); diff --git a/gdb/ppc-obsd-nat.c b/gdb/ppc-obsd-nat.c index 1431aa6..48df9d7 100644 --- a/gdb/ppc-obsd-nat.c +++ b/gdb/ppc-obsd-nat.c @@ -186,9 +186,7 @@ ppcobsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) return 1; } -void _initialize_ppcobsd_nat (); -void -_initialize_ppcobsd_nat () +INIT_GDB_FILE (ppcobsd_nat) { add_inf_child_target (&the_ppc_obsd_nat_target); diff --git a/gdb/ppc-obsd-tdep.c b/gdb/ppc-obsd-tdep.c index 5e271c1..18f4d79 100644 --- a/gdb/ppc-obsd-tdep.c +++ b/gdb/ppc-obsd-tdep.c @@ -254,8 +254,7 @@ ppcobsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_return_value (gdbarch, ppc_sysv_abi_broken_return_value); /* OpenBSD uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); set_gdbarch_iterate_over_regset_sections (gdbarch, ppcobsd_iterate_over_regset_sections); @@ -263,9 +262,7 @@ ppcobsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_unwind_append_unwinder (gdbarch, &ppcobsd_sigtramp_frame_unwind); } -void _initialize_ppcobsd_tdep (); -void -_initialize_ppcobsd_tdep () +INIT_GDB_FILE (ppcobsd_tdep) { gdbarch_register_osabi (bfd_arch_rs6000, 0, GDB_OSABI_OPENBSD, ppcobsd_init_abi); diff --git a/gdb/printcmd.c b/gdb/printcmd.c index b2df42e..19fbc20 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -3183,9 +3183,7 @@ memory_tag_check_command (const char *args, int from_tty) } } -void _initialize_printcmd (); -void -_initialize_printcmd () +INIT_GDB_FILE (printcmd) { struct cmd_list_element *c; diff --git a/gdb/probe.c b/gdb/probe.c index e6788ff..6679f39 100644 --- a/gdb/probe.c +++ b/gdb/probe.c @@ -973,9 +973,7 @@ static const struct internalvar_funcs probe_funcs = std::vector<const static_probe_ops *> all_static_probe_ops; -void _initialize_probe (); -void -_initialize_probe () +INIT_GDB_FILE (probe) { all_static_probe_ops.push_back (&any_static_probe_ops); diff --git a/gdb/proc-api.c b/gdb/proc-api.c index 7a45ba9..f3d4e14 100644 --- a/gdb/proc-api.c +++ b/gdb/proc-api.c @@ -413,9 +413,7 @@ proc_prettyfprint_status (long flags, int why, int what, int thread) } } -void _initialize_proc_api (); -void -_initialize_proc_api () +INIT_GDB_FILE (proc_api) { add_setshow_boolean_cmd ("procfs-trace", no_class, &procfs_trace, _("\ Set tracing for /proc api calls."), _("\ diff --git a/gdb/proc-events.c b/gdb/proc-events.c index 23af639..c6ed1f4 100644 --- a/gdb/proc-events.c +++ b/gdb/proc-events.c @@ -759,9 +759,7 @@ proc_prettyprint_actionset (struct sigaction *actions, int verbose) { } -void _initialize_proc_events (); -void -_initialize_proc_events () +INIT_GDB_FILE (proc_events) { init_syscall_table (); } diff --git a/gdb/proc-service.c b/gdb/proc-service.c index af92335..4f2be0f 100644 --- a/gdb/proc-service.c +++ b/gdb/proc-service.c @@ -206,9 +206,7 @@ ps_getpid (struct ps_prochandle *ph) return ph->thread->ptid.pid (); } -void _initialize_proc_service (); -void -_initialize_proc_service () +INIT_GDB_FILE (proc_service) { /* This function solely exists to make sure this module is linked into the final binary. */ diff --git a/gdb/procfs.c b/gdb/procfs.c index aba2ab9..a10574a 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -3447,9 +3447,7 @@ proc_untrace_sysexit_cmd (const char *args, int from_tty) proc_trace_syscalls (args, from_tty, PR_SYSEXIT, FLAG_RESET); } -void _initialize_procfs (); -void -_initialize_procfs () +INIT_GDB_FILE (procfs) { add_com ("proc-trace-entry", no_class, proc_trace_sysentry_cmd, _("Give a trace of entries into the syscall.")); diff --git a/gdb/producer.c b/gdb/producer.c index d8cbded..5d754fa 100644 --- a/gdb/producer.c +++ b/gdb/producer.c @@ -335,9 +335,7 @@ Version 18.0 Beta"; } #endif -void _initialize_producer (); -void -_initialize_producer () +INIT_GDB_FILE (producer) { #if defined GDB_SELF_TEST selftests::register_test diff --git a/gdb/progspace.h b/gdb/progspace.h index 5e5d5ed..a761e62 100644 --- a/gdb/progspace.h +++ b/gdb/progspace.h @@ -21,6 +21,7 @@ #ifndef GDB_PROGSPACE_H #define GDB_PROGSPACE_H +#include "solib.h" #include "target.h" #include "gdb_bfd.h" #include "registry.h" @@ -231,6 +232,27 @@ struct program_space is outside all objfiles in this progspace. */ struct objfile *objfile_for_address (CORE_ADDR address); + /* Set this program space's solib provider. + + The solib provider must be unset prior to calling this method. */ + void set_solib_ops (solib_ops_up ops) + { + gdb_assert (m_solib_ops == nullptr); + m_solib_ops = std::move (ops); + }; + + /* Unset and free this program space's solib provider. */ + void unset_solib_ops () + { m_solib_ops = nullptr; } + + /* Unset and return this program space's solib provider. */ + solib_ops_up release_solib_ops () + { return std::move (m_solib_ops); } + + /* Get this program space's solib provider. */ + const struct solib_ops *solib_ops () const + { return m_solib_ops.get (); } + /* Return the list of all the solibs in this program space. */ owning_intrusive_list<solib> &solibs () { return m_solib_list; } @@ -355,6 +377,9 @@ private: /* All known objfiles are kept in a linked list. */ owning_intrusive_list<objfile> m_objfiles_list; + /* solib_ops implementation used to provide solibs in this program space. */ + solib_ops_up m_solib_ops; + /* List of shared objects mapped into this space. Managed by solib.c. */ owning_intrusive_list<solib> m_solib_list; diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 986ef44..516ba72 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1552,9 +1552,7 @@ maintenance_check_psymtabs (const char *ignore, int from_tty) } } -void _initialize_psymtab (); -void -_initialize_psymtab () +INIT_GDB_FILE (psymtab) { add_cmd ("psymbols", class_maintenance, maintenance_print_psymbols, _("\ Print dump of current partial symbol definitions.\n\ diff --git a/gdb/python/lib/gdb/dap/threads.py b/gdb/python/lib/gdb/dap/threads.py index c271961..89046a8 100644 --- a/gdb/python/lib/gdb/dap/threads.py +++ b/gdb/python/lib/gdb/dap/threads.py @@ -16,27 +16,32 @@ import gdb from .server import request +from .startup import in_gdb_thread +@in_gdb_thread def _thread_name(thr): if thr.name is not None: return thr.name if thr.details is not None: return thr.details - return None + # Always return a name, as the protocol doesn't allow for nameless + # threads. Use the local thread number here... it doesn't matter + # without multi-inferior but in that case it might make more + # sense. + return f"Thread #{thr.num}" -@request("threads") +@request("threads", expect_stopped=False) def threads(**args): result = [] for thr in gdb.selected_inferior().threads(): - one_result = { - "id": thr.global_num, - } - name = _thread_name(thr) - if name is not None: - one_result["name"] = name - result.append(one_result) + result.append( + { + "id": thr.global_num, + "name": _thread_name(thr), + } + ) return { "threads": result, } diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index 58998f5..9ce8671 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -1537,9 +1537,7 @@ PyTypeObject breakpoint_object_type = 0, /* tp_alloc */ }; -void _initialize_py_breakpoint (); -void -_initialize_py_breakpoint () +INIT_GDB_FILE (py_breakpoint) { add_setshow_boolean_cmd ("py-breakpoint", class_maintenance, &pybp_debug, diff --git a/gdb/python/py-connection.c b/gdb/python/py-connection.c index 93757ac..a6d9ad0 100644 --- a/gdb/python/py-connection.c +++ b/gdb/python/py-connection.c @@ -428,9 +428,7 @@ connpy_send_packet (PyObject *self, PyObject *args, PyObject *kw) /* Global initialization for this file. */ -void _initialize_py_connection (); -void -_initialize_py_connection () +INIT_GDB_FILE (py_connection) { gdb::observers::connection_removed.attach (connpy_connection_removed, "py-connection"); diff --git a/gdb/python/py-dap.c b/gdb/python/py-dap.c index 7196d6c..9a9875a 100644 --- a/gdb/python/py-dap.c +++ b/gdb/python/py-dap.c @@ -110,9 +110,7 @@ dap_interp::pre_command_loop () call_dap_fn ("pre_command_loop"); } -void _initialize_py_interp (); -void -_initialize_py_interp () +INIT_GDB_FILE (py_interp) { /* The dap code uses module typing, available starting python 3.5. */ #if PY_VERSION_HEX >= 0x03050000 diff --git a/gdb/python/py-micmd.c b/gdb/python/py-micmd.c index e4f07c9..72f427f 100644 --- a/gdb/python/py-micmd.c +++ b/gdb/python/py-micmd.c @@ -578,9 +578,7 @@ PyTypeObject micmdpy_object_type = { 0, /* tp_alloc */ }; -void _initialize_py_micmd (); -void -_initialize_py_micmd () +INIT_GDB_FILE (py_micmd) { add_setshow_boolean_cmd ("py-micmd", class_maintenance, &pymicmd_debug, diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c index d43d7e9..dc078ec 100644 --- a/gdb/python/py-unwind.c +++ b/gdb/python/py-unwind.c @@ -1029,9 +1029,7 @@ gdbpy_initialize_unwind (void) return 0; } -void _initialize_py_unwind (); -void -_initialize_py_unwind () +INIT_GDB_FILE (py_unwind) { add_setshow_boolean_cmd ("py-unwind", class_maintenance, &pyuw_debug, diff --git a/gdb/python/python.c b/gdb/python/python.c index ff50c42..cb0d642 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -2717,9 +2717,7 @@ test_python () /* See python.h. */ cmd_list_element *python_cmd_element = nullptr; -void _initialize_python (); -void -_initialize_python () +INIT_GDB_FILE (python) { cmd_list_element *python_interactive_cmd = add_com ("python-interactive", class_obscure, diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c index 45205a0..4d79b3d 100644 --- a/gdb/ravenscar-thread.c +++ b/gdb/ravenscar-thread.c @@ -921,9 +921,7 @@ Support for Ravenscar task/thread switching is disabled\n")); /* Module startup initialization function, automagically called by init.c. */ -void _initialize_ravenscar (); -void -_initialize_ravenscar () +INIT_GDB_FILE (ravenscar) { /* Notice when the inferior is created in order to push the ravenscar ops if needed. */ diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index 5dd3f1e..d789992 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -3186,9 +3186,7 @@ set_record_pt_event_tracing_value (const char *args, int from_tty, /* Initialize btrace commands. */ -void _initialize_record_btrace (); -void -_initialize_record_btrace () +INIT_GDB_FILE (record_btrace) { cmd_list_element *record_btrace_cmd = add_prefix_cmd ("btrace", class_obscure, cmd_record_btrace_start, diff --git a/gdb/record-full.c b/gdb/record-full.c index b52fb06..7e3da27 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -2877,9 +2877,7 @@ maintenance_print_record_instruction (const char *args, int from_tty) } } -void _initialize_record_full (); -void -_initialize_record_full () +INIT_GDB_FILE (record_full) { struct cmd_list_element *c; diff --git a/gdb/record.c b/gdb/record.c index 440c5e9..248cfaa 100644 --- a/gdb/record.c +++ b/gdb/record.c @@ -769,9 +769,7 @@ set_record_call_history_size (const char *args, int from_tty, &record_call_history_size); } -void _initialize_record (); -void -_initialize_record () +INIT_GDB_FILE (record) { struct cmd_list_element *c; diff --git a/gdb/regcache-dump.c b/gdb/regcache-dump.c index 39dd8c5..c6ef552 100644 --- a/gdb/regcache-dump.c +++ b/gdb/regcache-dump.c @@ -346,9 +346,7 @@ maintenance_print_remote_registers (const char *args, int from_tty) "maintenance print remote-registers"); } -void _initialize_regcache_dump (); -void -_initialize_regcache_dump () +INIT_GDB_FILE (regcache_dump) { add_cmd ("registers", class_maintenance, maintenance_print_registers, _("Print the internal register configuration.\n" diff --git a/gdb/regcache.c b/gdb/regcache.c index e3d435f..9892c54 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -2213,9 +2213,7 @@ regcache_thread_ptid_changed () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_regcache (); -void -_initialize_regcache () +INIT_GDB_FILE (regcache) { struct cmd_list_element *c; diff --git a/gdb/reggroups.c b/gdb/reggroups.c index c931434..596b336 100644 --- a/gdb/reggroups.c +++ b/gdb/reggroups.c @@ -259,9 +259,7 @@ const reggroup *const all_reggroup = &all_group; const reggroup *const save_reggroup = &save_group; const reggroup *const restore_reggroup = &restore_group; -void _initialize_reggroup (); -void -_initialize_reggroup () +INIT_GDB_FILE (reggroup) { add_cmd ("reggroups", class_maintenance, maintenance_print_reggroups, _("\ diff --git a/gdb/remote-notif.c b/gdb/remote-notif.c index 053591c..da1b578 100644 --- a/gdb/remote-notif.c +++ b/gdb/remote-notif.c @@ -234,9 +234,7 @@ remote_notif_state::~remote_notif_state () delete_async_event_handler (&get_pending_events_token); } -void _initialize_notif (); -void -_initialize_notif () +INIT_GDB_FILE (notif) { add_setshow_boolean_cmd ("notification", no_class, ¬if_debug, _("\ diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index fc2c900..425e50d 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -1284,9 +1284,7 @@ gdbsim_target::memory_map () return result; } -void _initialize_remote_sim (); -void -_initialize_remote_sim () +INIT_GDB_FILE (remote_sim) { struct cmd_list_element *c; diff --git a/gdb/remote.c b/gdb/remote.c index 8c3040f..6208a90 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -16162,9 +16162,7 @@ test_packet_check_result () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_remote (); -void -_initialize_remote () +INIT_GDB_FILE (remote) { add_target (remote_target_info, remote_target::open); add_target (extended_remote_target_info, extended_remote_target::open); diff --git a/gdb/reverse.c b/gdb/reverse.c index 2c9ed72..dc35bca 100644 --- a/gdb/reverse.c +++ b/gdb/reverse.c @@ -277,9 +277,7 @@ info_bookmarks_command (const char *args, int from_tty) } } -void _initialize_reverse (); -void -_initialize_reverse () +INIT_GDB_FILE (reverse) { cmd_list_element *reverse_step_cmd = add_com ("reverse-step", class_run, reverse_step, _("\ diff --git a/gdb/riscv-fbsd-nat.c b/gdb/riscv-fbsd-nat.c index df7cc6a..2908d9f 100644 --- a/gdb/riscv-fbsd-nat.c +++ b/gdb/riscv-fbsd-nat.c @@ -65,9 +65,7 @@ riscv_fbsd_nat_target::store_registers (struct regcache *regcache, PT_SETFPREGS, &riscv_fbsd_fpregset); } -void _initialize_riscv_fbsd_nat (); -void -_initialize_riscv_fbsd_nat () +INIT_GDB_FILE (riscv_fbsd_nat) { add_inf_child_target (&the_riscv_fbsd_nat_target); } diff --git a/gdb/riscv-fbsd-tdep.c b/gdb/riscv-fbsd-tdep.c index fcb91ca..7bdc6e7 100644 --- a/gdb/riscv-fbsd-tdep.c +++ b/gdb/riscv-fbsd-tdep.c @@ -191,10 +191,9 @@ riscv_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_software_single_step (gdbarch, riscv_software_single_step); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - (riscv_isa_xlen (gdbarch) == 4 - ? svr4_ilp32_fetch_link_map_offsets - : svr4_lp64_fetch_link_map_offsets)); + set_solib_svr4_ops (gdbarch, (riscv_isa_xlen (gdbarch) == 4 + ? make_svr4_ilp32_solib_ops + : make_svr4_lp64_solib_ops)); tramp_frame_prepend_unwinder (gdbarch, &riscv_fbsd_sigframe); @@ -207,9 +206,7 @@ riscv_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) riscv_fbsd_get_thread_local_address); } -void _initialize_riscv_fbsd_tdep (); -void -_initialize_riscv_fbsd_tdep () +INIT_GDB_FILE (riscv_fbsd_tdep) { gdbarch_register_osabi (bfd_arch_riscv, 0, GDB_OSABI_FREEBSD, riscv_fbsd_init_abi); diff --git a/gdb/riscv-linux-nat.c b/gdb/riscv-linux-nat.c index 8846329..89f1ddc 100644 --- a/gdb/riscv-linux-nat.c +++ b/gdb/riscv-linux-nat.c @@ -329,9 +329,7 @@ riscv_linux_nat_target::store_registers (struct regcache *regcache, int regnum) /* Initialize RISC-V Linux native support. */ -void _initialize_riscv_linux_nat (); -void -_initialize_riscv_linux_nat () +INIT_GDB_FILE (riscv_linux_nat) { /* Register the target. */ linux_target = &the_riscv_linux_nat_target; diff --git a/gdb/riscv-linux-tdep.c b/gdb/riscv-linux-tdep.c index e1ea615..e5d77e7 100644 --- a/gdb/riscv-linux-tdep.c +++ b/gdb/riscv-linux-tdep.c @@ -20,6 +20,7 @@ #include "osabi.h" #include "glibc-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "svr4-tls-tdep.h" #include "solib-svr4.h" #include "regset.h" @@ -512,10 +513,9 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_software_single_step (gdbarch, riscv_software_single_step); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - (riscv_isa_xlen (gdbarch) == 4 - ? linux_ilp32_fetch_link_map_offsets - : linux_lp64_fetch_link_map_offsets)); + set_solib_svr4_ops (gdbarch, (riscv_isa_xlen (gdbarch) == 4 + ? make_linux_ilp32_svr4_solib_ops + : make_linux_lp64_svr4_solib_ops)); /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); @@ -544,9 +544,7 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Initialize RISC-V Linux target support. */ -void _initialize_riscv_linux_tdep (); -void -_initialize_riscv_linux_tdep () +INIT_GDB_FILE (riscv_linux_tdep) { gdbarch_register_osabi (bfd_arch_riscv, 0, GDB_OSABI_LINUX, riscv_linux_init_abi); diff --git a/gdb/riscv-none-tdep.c b/gdb/riscv-none-tdep.c index 7303f54..ad32057 100644 --- a/gdb/riscv-none-tdep.c +++ b/gdb/riscv-none-tdep.c @@ -163,9 +163,7 @@ riscv_none_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Initialize RISC-V bare-metal target support. */ -void _initialize_riscv_none_tdep (); -void -_initialize_riscv_none_tdep () +INIT_GDB_FILE (riscv_none_tdep) { gdbarch_register_osabi (bfd_arch_riscv, 0, GDB_OSABI_NONE, riscv_none_init_abi); diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index 5fb93c8..6d439b0 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -4778,9 +4778,7 @@ riscv_supply_regset (const struct regset *regset, } } -void _initialize_riscv_tdep (); -void -_initialize_riscv_tdep () +INIT_GDB_FILE (riscv_tdep) { riscv_init_reggroups (); diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c index f325f41..5c49d1f 100644 --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -1488,9 +1488,7 @@ rl78_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Register the above initialization routine. */ -void _initialize_rl78_tdep (); -void -_initialize_rl78_tdep () +INIT_GDB_FILE (rl78_tdep) { gdbarch_register (bfd_arch_rl78, rl78_gdbarch_init); } diff --git a/gdb/rs6000-aix-nat.c b/gdb/rs6000-aix-nat.c index 225d1b8..213f197 100644 --- a/gdb/rs6000-aix-nat.c +++ b/gdb/rs6000-aix-nat.c @@ -1062,9 +1062,7 @@ rs6000_nat_target::xfer_shared_libraries } } -void _initialize_rs6000_nat (); -void -_initialize_rs6000_nat () +INIT_GDB_FILE (rs6000_nat) { add_inf_child_target (&the_rs6000_nat_target); } diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c index ab9feb3..853a66e 100644 --- a/gdb/rs6000-aix-tdep.c +++ b/gdb/rs6000-aix-tdep.c @@ -1411,13 +1411,11 @@ rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_wchar_signed (gdbarch, 0); set_gdbarch_auto_wide_charset (gdbarch, rs6000_aix_auto_wide_charset); - set_gdbarch_so_ops (gdbarch, &solib_aix_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_aix_solib_ops); frame_unwind_append_unwinder (gdbarch, &aix_sighandle_frame_unwind); } -void _initialize_rs6000_aix_tdep (); -void -_initialize_rs6000_aix_tdep () +INIT_GDB_FILE (rs6000_aix_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_rs6000, bfd_target_xcoff_flavour, diff --git a/gdb/rs6000-lynx178-tdep.c b/gdb/rs6000-lynx178-tdep.c index 38af2ac..d0d9a53 100644 --- a/gdb/rs6000-lynx178-tdep.c +++ b/gdb/rs6000-lynx178-tdep.c @@ -407,9 +407,7 @@ rs6000_lynx178_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT); } -void _initialize_rs6000_lynx178_tdep (); -void -_initialize_rs6000_lynx178_tdep () +INIT_GDB_FILE (rs6000_lynx178_tdep) { gdbarch_register_osabi_sniffer (bfd_arch_rs6000, bfd_target_xcoff_flavour, diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 23ccd92..1c75bb7 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -8722,9 +8722,7 @@ ppc_insn_prefix_dform (unsigned int insn1, unsigned int insn2) /* Initialization code. */ -void _initialize_rs6000_tdep (); -void -_initialize_rs6000_tdep () +INIT_GDB_FILE (rs6000_tdep) { gdbarch_register (bfd_arch_rs6000, rs6000_gdbarch_init, rs6000_dump_tdep); gdbarch_register (bfd_arch_powerpc, rs6000_gdbarch_init, rs6000_dump_tdep); diff --git a/gdb/run-on-main-thread.c b/gdb/run-on-main-thread.c index edaab08..30b0928 100644 --- a/gdb/run-on-main-thread.c +++ b/gdb/run-on-main-thread.c @@ -130,9 +130,7 @@ is_main_thread () #endif } -void _initialize_run_on_main_thread (); -void -_initialize_run_on_main_thread () +INIT_GDB_FILE (run_on_main_thread) { #if CXX_STD_THREAD /* The variable main_thread_id should be initialized when entering main, or diff --git a/gdb/rust-parse.c b/gdb/rust-parse.c index ef64005..b428b97 100644 --- a/gdb/rust-parse.c +++ b/gdb/rust-parse.c @@ -2421,9 +2421,7 @@ rust_lex_tests (void) -void _initialize_rust_exp (); -void -_initialize_rust_exp () +INIT_GDB_FILE (rust_exp) { int code = regcomp (&number_regex, number_regex_text, REG_EXTENDED); /* If the regular expression was incorrect, it was a programming diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c index f767666..7b110ce 100644 --- a/gdb/rx-tdep.c +++ b/gdb/rx-tdep.c @@ -1063,9 +1063,7 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Register the above initialization routine. */ -void _initialize_rx_tdep (); -void -_initialize_rx_tdep () +INIT_GDB_FILE (rx_tdep) { gdbarch_register (bfd_arch_rx, rx_gdbarch_init); initialize_tdesc_rx (); diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c index 70f8598..28d5635 100644 --- a/gdb/s12z-tdep.c +++ b/gdb/s12z-tdep.c @@ -662,9 +662,7 @@ s12z_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_s12z_tdep (); -void -_initialize_s12z_tdep () +INIT_GDB_FILE (s12z_tdep) { gdbarch_register (bfd_arch_s12z, s12z_gdbarch_init, NULL); } diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c index d5964e2..5b723b1 100644 --- a/gdb/s390-linux-nat.c +++ b/gdb/s390-linux-nat.c @@ -1051,9 +1051,7 @@ s390_linux_nat_target::read_description () tdesc_s390_linux32); } -void _initialize_s390_nat (); -void -_initialize_s390_nat () +INIT_GDB_FILE (s390_nat) { /* Register the target. */ linux_target = &the_s390_linux_nat_target; diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c index bd1f42c..66e571d 100644 --- a/gdb/s390-linux-tdep.c +++ b/gdb/s390-linux-tdep.c @@ -29,6 +29,7 @@ #include "gdbcore.h" #include "linux-record.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "svr4-tls-tdep.h" #include "objfiles.h" #include "osabi.h" @@ -1214,8 +1215,7 @@ s390_linux_init_abi_31 (struct gdbarch_info info, struct gdbarch *gdbarch) s390_linux_init_abi_any (info, gdbarch); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_S390); } @@ -1230,14 +1230,11 @@ s390_linux_init_abi_64 (struct gdbarch_info info, struct gdbarch *gdbarch) s390_linux_init_abi_any (info, gdbarch); - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_S390X); } -void _initialize_s390_linux_tdep (); -void -_initialize_s390_linux_tdep () +INIT_GDB_FILE (s390_linux_tdep) { /* Hook us into the OSABI mechanism. */ gdbarch_register_osabi (bfd_arch_s390, bfd_mach_s390_31, GDB_OSABI_LINUX, diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index a3b7658..8a2b405 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -7515,9 +7515,7 @@ disassemble_s390x () #endif /* GDB_SELF_TEST */ -void _initialize_s390_tdep (); -void -_initialize_s390_tdep () +INIT_GDB_FILE (s390_tdep) { /* Hook us into the gdbarch mechanism. */ gdbarch_register (bfd_arch_s390, s390_gdbarch_init); diff --git a/gdb/ser-go32.c b/gdb/ser-go32.c index c6b34ab..6e60569 100644 --- a/gdb/ser-go32.c +++ b/gdb/ser-go32.c @@ -914,9 +914,7 @@ info_serial_command (const char *arg, int from_tty) #endif } -void _initialize_ser_dos (); -void -_initialize_ser_dos () +INIT_GDB_FILE (ser_dos) { serial_add_interface (&dos_ops); diff --git a/gdb/ser-mingw.c b/gdb/ser-mingw.c index db733c3..086919a 100644 --- a/gdb/ser-mingw.c +++ b/gdb/ser-mingw.c @@ -1338,9 +1338,7 @@ static const struct serial_ops tcp_ops = net_windows_done_wait_handle }; -void _initialize_ser_windows (); -void -_initialize_ser_windows () +INIT_GDB_FILE (ser_windows) { WSADATA wsa_data; diff --git a/gdb/ser-pipe.c b/gdb/ser-pipe.c index 16f7419..bdf3602 100644 --- a/gdb/ser-pipe.c +++ b/gdb/ser-pipe.c @@ -236,9 +236,7 @@ static const struct serial_ops pipe_ops = ser_unix_write_prim }; -void _initialize_ser_pipe (); -void -_initialize_ser_pipe () +INIT_GDB_FILE (ser_pipe) { serial_add_interface (&pipe_ops); } diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c index 122b913..589b23d 100644 --- a/gdb/ser-tcp.c +++ b/gdb/ser-tcp.c @@ -465,9 +465,7 @@ static const struct serial_ops tcp_ops = #endif /* USE_WIN32API */ -void _initialize_ser_tcp (); -void -_initialize_ser_tcp () +INIT_GDB_FILE (ser_tcp) { #ifdef USE_WIN32API /* Do nothing; the TCP serial operations will be initialized in diff --git a/gdb/ser-uds.c b/gdb/ser-uds.c index 64e1599..2a45a90 100644 --- a/gdb/ser-uds.c +++ b/gdb/ser-uds.c @@ -110,9 +110,7 @@ static const struct serial_ops uds_ops = uds_write_prim }; -void _initialize_ser_socket (); -void -_initialize_ser_socket () +INIT_GDB_FILE (ser_socket) { serial_add_interface (&uds_ops); } diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c index 64db84b..553220e 100644 --- a/gdb/ser-unix.c +++ b/gdb/ser-unix.c @@ -697,9 +697,7 @@ static const struct serial_ops hardwire_ops = ser_unix_write_prim }; -void _initialize_ser_hardwire (); -void -_initialize_ser_hardwire () +INIT_GDB_FILE (ser_hardwire) { serial_add_interface (&hardwire_ops); diff --git a/gdb/serial.c b/gdb/serial.c index bab8480..d66c637 100644 --- a/gdb/serial.c +++ b/gdb/serial.c @@ -642,9 +642,7 @@ set_parity (const char *ignore_args, int from_tty, struct cmd_list_element *c) serial_parity = GDBPARITY_NONE; } -void _initialize_serial (); -void -_initialize_serial () +INIT_GDB_FILE (serial) { #if 0 add_com ("connect", class_obscure, connect_command, _("\ diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c index f0b35d3..2578192 100644 --- a/gdb/sh-linux-tdep.c +++ b/gdb/sh-linux-tdep.c @@ -28,6 +28,7 @@ #include "glibc-tdep.h" #include "sh-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "gdbarch.h" #define REGSx16(base) \ @@ -187,8 +188,7 @@ sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); set_gdbarch_fetch_tls_load_module_address (gdbarch, @@ -207,9 +207,7 @@ sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tramp_frame_prepend_unwinder (gdbarch, &sh_linux_rt_sigreturn_tramp_frame); } -void _initialize_sh_linux_tdep (); -void -_initialize_sh_linux_tdep () +INIT_GDB_FILE (sh_linux_tdep) { gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_LINUX, sh_linux_init_abi); } diff --git a/gdb/sh-netbsd-nat.c b/gdb/sh-netbsd-nat.c index 25aafe1..d36dba5 100644 --- a/gdb/sh-netbsd-nat.c +++ b/gdb/sh-netbsd-nat.c @@ -98,9 +98,7 @@ sh_nbsd_nat_target::store_registers (struct regcache *regcache, int regno) } } -void _initialize_shnbsd_nat (); -void -_initialize_shnbsd_nat () +INIT_GDB_FILE (shnbsd_nat) { add_inf_child_target (&the_sh_nbsd_nat_target); } diff --git a/gdb/sh-netbsd-tdep.c b/gdb/sh-netbsd-tdep.c index f99566f..4b0181b 100644 --- a/gdb/sh-netbsd-tdep.c +++ b/gdb/sh-netbsd-tdep.c @@ -68,13 +68,10 @@ shnbsd_init_abi (struct gdbarch_info info, tdep->core_gregmap = (struct sh_corefile_regmap *)regmap; tdep->sizeof_gregset = 84; - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } -void _initialize_shnbsd_tdep (); -void -_initialize_shnbsd_tdep () +INIT_GDB_FILE (shnbsd_tdep) { gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_NETBSD, shnbsd_init_abi); diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index 59a67bf..6bd4fd3 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -2394,9 +2394,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_sh_tdep (); -void -_initialize_sh_tdep () +INIT_GDB_FILE (sh_tdep) { gdbarch_register (bfd_arch_sh, sh_gdbarch_init, NULL); @@ -657,9 +657,7 @@ complete_skip_number (cmd_list_element *cmd, } } -void _initialize_step_skip (); -void -_initialize_step_skip () +INIT_GDB_FILE (step_skip) { static struct cmd_list_element *skiplist = NULL; struct cmd_list_element *c; diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c index 07e00a2..55e1d3e 100644 --- a/gdb/sol-thread.c +++ b/gdb/sol-thread.c @@ -1133,9 +1133,7 @@ sol_thread_target::get_ada_task_ptid (long lwp, ULONGEST thread) return (thread_info->ptid); } -void _initialize_sol_thread (); -void -_initialize_sol_thread () +INIT_GDB_FILE (sol_thread) { void *dlhandle; diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c index 4af83de..b246df8 100644 --- a/gdb/solib-aix.c +++ b/gdb/solib-aix.c @@ -24,6 +24,24 @@ #include "xcoffread.h" #include "observable.h" +/* solib_ops for AIX systems. */ + +struct aix_solib_ops : public solib_ops +{ + void relocate_section_addresses (solib &so, target_section *) const override; + void create_inferior_hook (int from_tty) const override; + owning_intrusive_list<solib> current_sos () const override; + gdb_bfd_ref_ptr bfd_open (const char *pathname) const override; +}; + +/* See solib-aix.h. */ + +solib_ops_up +make_aix_solib_ops () +{ + return std::make_unique<aix_solib_ops> (); +} + /* Our private data in struct solib. */ struct lm_info_aix final : public lm_info @@ -306,10 +324,9 @@ solib_aix_bss_data_overlap (bfd *abfd) return 0; } -/* Implement the "relocate_section_addresses" solib_ops method. */ - -static void -solib_aix_relocate_section_addresses (solib &so, target_section *sec) +void +aix_solib_ops::relocate_section_addresses (solib &so, + target_section *sec) const { struct bfd_section *bfd_sect = sec->the_bfd_section; bfd *abfd = bfd_sect->owner; @@ -410,10 +427,8 @@ solib_aix_get_section_offsets (struct objfile *objfile, return offsets; } -/* Implement the "solib_create_inferior_hook" solib_ops method. */ - -static void -solib_aix_solib_create_inferior_hook (int from_tty) +void +aix_solib_ops::create_inferior_hook (int from_tty) const { const char *warning_msg = "unable to relocate main executable"; @@ -441,10 +456,8 @@ solib_aix_solib_create_inferior_hook (int from_tty) } } -/* Implement the "current_sos" solib_ops method. */ - -static owning_intrusive_list<solib> -solib_aix_current_sos () +owning_intrusive_list<solib> +aix_solib_ops::current_sos () const { std::optional<std::vector<lm_info_aix>> &library_list = solib_aix_get_library_list (current_inferior (), NULL); @@ -480,7 +493,7 @@ solib_aix_current_sos () } /* Add it to the list. */ - auto &new_solib = sos.emplace_back (); + auto &new_solib = sos.emplace_back (*this); new_solib.original_name = so_name; new_solib.name = so_name; new_solib.lm_info = std::make_unique<lm_info_aix> (info); @@ -489,10 +502,8 @@ solib_aix_current_sos () return sos; } -/* Implement the "bfd_open" solib_ops method. */ - -static gdb_bfd_ref_ptr -solib_aix_bfd_open (const char *pathname) +gdb_bfd_ref_ptr +aix_solib_ops::bfd_open (const char *pathname) const { /* The pathname is actually a synthetic filename with the following form: "/path/to/sharedlib(member.o)" (double-quotes excluded). @@ -506,7 +517,7 @@ solib_aix_bfd_open (const char *pathname) int found_file; if (pathname[path_len - 1] != ')') - return solib_bfd_open (pathname); + return solib_ops::bfd_open (pathname); /* Search for the associated parens. */ sep = strrchr (pathname, '('); @@ -516,7 +527,7 @@ solib_aix_bfd_open (const char *pathname) to open pathname without decoding, possibly leading to a failure), rather than triggering an assert failure). */ warning (_("missing '(' in shared object pathname: %s"), pathname); - return solib_bfd_open (pathname); + return solib_ops::bfd_open (pathname); } filename_len = sep - pathname; @@ -659,27 +670,7 @@ solib_aix_normal_stop_observer (struct bpstat *unused_1, int unused_2) data->library_list.reset (); } -/* The solib_ops for AIX targets. */ -const solib_ops solib_aix_so_ops = -{ - solib_aix_relocate_section_addresses, - nullptr, - nullptr, - solib_aix_solib_create_inferior_hook, - solib_aix_current_sos, - nullptr, - nullptr, - solib_aix_bfd_open, - nullptr, - nullptr, - nullptr, - nullptr, - default_find_solib_addr, -}; - -void _initialize_solib_aix (); -void -_initialize_solib_aix () +INIT_GDB_FILE (solib_aix) { gdb::observers::normal_stop.attach (solib_aix_normal_stop_observer, "solib-aix"); diff --git a/gdb/solib-aix.h b/gdb/solib-aix.h index 7a1bc7b..628b7c8 100644 --- a/gdb/solib-aix.h +++ b/gdb/solib-aix.h @@ -18,9 +18,12 @@ #ifndef GDB_SOLIB_AIX_H #define GDB_SOLIB_AIX_H -struct solib_ops; -extern const solib_ops solib_aix_so_ops; +#include "solib.h" extern CORE_ADDR solib_aix_get_toc_value (CORE_ADDR pc); +/* Return a new solib_ops for AIX systems. */ + +solib_ops_up make_aix_solib_ops (); + #endif /* GDB_SOLIB_AIX_H */ diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c index 4003c77..aac8ab2 100644 --- a/gdb/solib-darwin.c +++ b/gdb/solib-darwin.c @@ -33,6 +33,25 @@ #include "mach-o.h" #include "mach-o/external.h" +/* solib_ops for Darwin systems. */ + +struct darwin_solib_ops : public solib_ops +{ + void relocate_section_addresses (solib &so, target_section *) const override; + void clear_solib (program_space *pspace) const override; + void create_inferior_hook (int from_tty) const override; + owning_intrusive_list<solib> current_sos () const override; + gdb_bfd_ref_ptr bfd_open (const char *pathname) const override; +}; + +/* See solib-darwin.h. */ + +solib_ops_up +make_darwin_solib_ops () +{ + return std::make_unique<darwin_solib_ops> (); +} + struct gdb_dyld_image_info { /* Base address (which corresponds to the Mach-O header). */ @@ -188,10 +207,8 @@ find_program_interpreter (void) return buf; } -/* Build a list of currently loaded shared objects. See solib-svr4.c. */ - -static owning_intrusive_list<solib> -darwin_current_sos () +owning_intrusive_list<solib> +darwin_solib_ops::current_sos () const { type *ptr_type = builtin_type (current_inferior ()->arch ())->builtin_data_ptr; @@ -250,7 +267,7 @@ darwin_current_sos () break; /* Create and fill the new struct solib element. */ - auto &newobj = sos.emplace_back (); + auto &newobj = sos.emplace_back (*this); auto li = std::make_unique<lm_info_darwin> (); @@ -457,10 +474,8 @@ darwin_solib_read_all_image_info_addr (struct darwin_info *info) info->all_image_addr = extract_unsigned_integer (buf, len, BFD_ENDIAN_BIG); } -/* Shared library startup support. See documentation in solib-svr4.c. */ - -static void -darwin_solib_create_inferior_hook (int from_tty) +void +darwin_solib_ops::create_inferior_hook (int from_tty) const { /* Everything below only makes sense if we have a running inferior. */ if (!target_has_execution ()) @@ -560,8 +575,8 @@ darwin_solib_create_inferior_hook (int from_tty) create_solib_event_breakpoint (current_inferior ()->arch (), notifier); } -static void -darwin_clear_solib (program_space *pspace) +void +darwin_solib_ops::clear_solib (program_space *pspace) const { darwin_info *info = get_darwin_info (pspace); @@ -572,8 +587,9 @@ darwin_clear_solib (program_space *pspace) /* The section table is built from bfd sections using bfd VMAs. Relocate these VMAs according to solib info. */ -static void -darwin_relocate_section_addresses (solib &so, target_section *sec) +void +darwin_solib_ops::relocate_section_addresses (solib &so, + target_section *sec) const { auto *li = gdb::checked_static_cast<lm_info_darwin *> (so.lm_info.get ()); @@ -592,9 +608,9 @@ darwin_relocate_section_addresses (solib &so, target_section *sec) if (sec->addr < so.addr_low) so.addr_low = sec->addr; } - -static gdb_bfd_ref_ptr -darwin_bfd_open (const char *pathname) + +gdb_bfd_ref_ptr +darwin_solib_ops::bfd_open (const char *pathname) const { int found_file; @@ -622,20 +638,3 @@ darwin_bfd_open (const char *pathname) return res; } - -const solib_ops darwin_so_ops = -{ - darwin_relocate_section_addresses, - nullptr, - darwin_clear_solib, - darwin_solib_create_inferior_hook, - darwin_current_sos, - nullptr, - nullptr, - darwin_bfd_open, - nullptr, - nullptr, - nullptr, - nullptr, - default_find_solib_addr, -}; diff --git a/gdb/solib-darwin.h b/gdb/solib-darwin.h index b96e744..f5bcdd1 100644 --- a/gdb/solib-darwin.h +++ b/gdb/solib-darwin.h @@ -20,8 +20,10 @@ #ifndef GDB_SOLIB_DARWIN_H #define GDB_SOLIB_DARWIN_H -struct solib_ops; +#include "solib.h" -extern const solib_ops darwin_so_ops; +/* Return a new solib_ops for Darwin systems. */ + +extern solib_ops_up make_darwin_solib_ops (); #endif /* GDB_SOLIB_DARWIN_H */ diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c index 2b31536..f18d9a2 100644 --- a/gdb/solib-dsbt.c +++ b/gdb/solib-dsbt.c @@ -120,6 +120,25 @@ struct dbst_ext_link_map ext_ptr l_next, l_prev; /* struct link_map *l_next, *l_prev; */ }; +/* solib_ops for DSBT systems. */ + +struct dsbt_solib_ops : public solib_ops +{ + void relocate_section_addresses (solib &so, target_section *) const override; + void clear_solib (program_space *pspace) const override; + void create_inferior_hook (int from_tty) const override; + owning_intrusive_list<solib> current_sos () const override; + bool in_dynsym_resolve_code (CORE_ADDR pc) const override; +}; + +/* See solib-dsbt.h. */ + +solib_ops_up +make_dsbt_solib_ops () +{ + return std::make_unique<dsbt_solib_ops> (); +} + /* Link map info to include in an allocated solib entry */ struct lm_info_dsbt final : public lm_info @@ -502,8 +521,8 @@ lm_base (void) themselves. The declaration of `struct solib' says which fields we provide values for. */ -static owning_intrusive_list<solib> -dsbt_current_sos (void) +owning_intrusive_list<solib> +dsbt_solib_ops::current_sos () const { bfd_endian byte_order = gdbarch_byte_order (current_inferior ()->arch ()); CORE_ADDR lm_addr; @@ -584,7 +603,7 @@ dsbt_current_sos (void) break; } - auto &sop = sos.emplace_back (); + auto &sop = sos.emplace_back (*this); auto li = std::make_unique<lm_info_dsbt> (); li->map = loadmap; /* Fetch the name. */ @@ -623,8 +642,8 @@ dsbt_current_sos (void) /* Return true if PC lies in the dynamic symbol resolution code of the run time loader. */ -static bool -dsbt_in_dynsym_resolve_code (CORE_ADDR pc) +bool +dsbt_solib_ops::in_dynsym_resolve_code (CORE_ADDR pc) const { dsbt_info *info = get_dsbt_info (current_program_space); @@ -840,8 +859,8 @@ dsbt_relocate_main_executable (void) For the DSBT shared library, the main executable needs to be relocated. The shared library breakpoints also need to be enabled. */ -static void -dsbt_solib_create_inferior_hook (int from_tty) +void +dsbt_solib_ops::create_inferior_hook (int from_tty) const { /* Relocate main executable. */ dsbt_relocate_main_executable (); @@ -854,8 +873,8 @@ dsbt_solib_create_inferior_hook (int from_tty) } } -static void -dsbt_clear_solib (program_space *pspace) +void +dsbt_solib_ops::clear_solib (program_space *pspace) const { dsbt_info *info = get_dsbt_info (pspace); @@ -866,8 +885,9 @@ dsbt_clear_solib (program_space *pspace) info->main_executable_lm_info = NULL; } -static void -dsbt_relocate_section_addresses (solib &so, target_section *sec) +void +dsbt_solib_ops::relocate_section_addresses (solib &so, + target_section *sec) const { int seg; auto *li = gdb::checked_static_cast<lm_info_dsbt *> (so.lm_info.get ()); @@ -893,26 +913,7 @@ show_dsbt_debug (struct ui_file *file, int from_tty, gdb_printf (file, _("solib-dsbt debugging is %s.\n"), value); } -const solib_ops dsbt_so_ops = -{ - dsbt_relocate_section_addresses, - nullptr, - dsbt_clear_solib, - dsbt_solib_create_inferior_hook, - dsbt_current_sos, - nullptr, - dsbt_in_dynsym_resolve_code, - solib_bfd_open, - nullptr, - nullptr, - nullptr, - nullptr, - default_find_solib_addr, -}; - -void _initialize_dsbt_solib (); -void -_initialize_dsbt_solib () +INIT_GDB_FILE (dsbt_solib) { /* Debug this file's internals. */ add_setshow_zuinteger_cmd ("solib-dsbt", class_maintenance, diff --git a/gdb/solib-dsbt.h b/gdb/solib-dsbt.h index d5c52c6..d44613c 100644 --- a/gdb/solib-dsbt.h +++ b/gdb/solib-dsbt.h @@ -20,8 +20,10 @@ #ifndef GDB_SOLIB_DSBT_H #define GDB_SOLIB_DSBT_H -struct solib_ops; +#include "solib.h" -extern const solib_ops dsbt_so_ops; +/* Return a new solib_ops for DSBT systems. */ + +solib_ops_up make_dsbt_solib_ops (); #endif /* GDB_SOLIB_DSBT_H */ diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c index ceef722..6165d0b 100644 --- a/gdb/solib-frv.c +++ b/gdb/solib-frv.c @@ -26,6 +26,26 @@ #include "elf/frv.h" #include "gdb_bfd.h" #include "inferior.h" +#include "solib-frv.h" + +/* solib_ops for FR-V systems. */ + +struct frv_solib_ops : public solib_ops +{ + void relocate_section_addresses (solib &so, target_section *) const override; + void clear_solib (program_space *pspace) const override; + void create_inferior_hook (int from_tty) const override; + owning_intrusive_list<solib> current_sos () const override; + bool in_dynsym_resolve_code (CORE_ADDR pc) const override; +}; + +/* See solib-frv.h. */ + +solib_ops_up +make_frv_solib_ops () +{ + return std::make_unique<frv_solib_ops> (); +} /* FR-V pointers are four bytes wide. */ enum { FRV_PTR_SIZE = 4 }; @@ -293,11 +313,8 @@ lm_base (void) return lm_base_cache; } - -/* Implement the "current_sos" solib_ops method. */ - -static owning_intrusive_list<solib> -frv_current_sos () +owning_intrusive_list<solib> +frv_solib_ops::current_sos () const { bfd_endian byte_order = gdbarch_byte_order (current_inferior ()->arch ()); CORE_ADDR lm_addr, mgot; @@ -367,7 +384,7 @@ frv_current_sos () break; } - auto &sop = sos.emplace_back (); + auto &sop = sos.emplace_back (*this); auto li = std::make_unique<lm_info_frv> (); li->map = loadmap; li->got_value = got_addr; @@ -414,8 +431,8 @@ static CORE_ADDR interp_text_sect_high; static CORE_ADDR interp_plt_sect_low; static CORE_ADDR interp_plt_sect_high; -static bool -frv_in_dynsym_resolve_code (CORE_ADDR pc) +bool +frv_solib_ops::in_dynsym_resolve_code (CORE_ADDR pc) const { return ((pc >= interp_text_sect_low && pc < interp_text_sect_high) || (pc >= interp_plt_sect_low && pc < interp_plt_sect_high) @@ -776,8 +793,8 @@ frv_relocate_main_executable (void) to be relocated. The shared library breakpoints also need to be enabled. */ -static void -frv_solib_create_inferior_hook (int from_tty) +void +frv_solib_ops::create_inferior_hook (int from_tty) const { /* Relocate main executable. */ frv_relocate_main_executable (); @@ -790,8 +807,8 @@ frv_solib_create_inferior_hook (int from_tty) } } -static void -frv_clear_solib (program_space *pspace) +void +frv_solib_ops::clear_solib (program_space *pspace) const { lm_base_cache = 0; enable_break2_done = 0; @@ -801,8 +818,9 @@ frv_clear_solib (program_space *pspace) main_executable_lm_info = NULL; } -static void -frv_relocate_section_addresses (solib &so, target_section *sec) +void +frv_solib_ops::relocate_section_addresses (solib &so, + target_section *sec) const { int seg; auto *li = gdb::checked_static_cast<lm_info_frv *> (so.lm_info.get ()); @@ -1063,20 +1081,3 @@ frv_fetch_objfile_link_map (struct objfile *objfile) /* Not found! */ return 0; } - -const solib_ops frv_so_ops = -{ - frv_relocate_section_addresses, - nullptr, - frv_clear_solib, - frv_solib_create_inferior_hook, - frv_current_sos, - nullptr, - frv_in_dynsym_resolve_code, - solib_bfd_open, - nullptr, - nullptr, - nullptr, - nullptr, - default_find_solib_addr, -}; diff --git a/gdb/solib-frv.h b/gdb/solib-frv.h new file mode 100644 index 0000000..710a424 --- /dev/null +++ b/gdb/solib-frv.h @@ -0,0 +1,28 @@ +/* Handle FR-V (FDPIC) shared libraries for GDB, the GNU Debugger. + Copyright (C) 2024 Free Software Foundation, Inc. + + This file is part of GDB. + + 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, see <http://www.gnu.org/licenses/>. */ + +#ifndef GDB_SOLIB_FRV_H +#define GDB_SOLIB_FRV_H + +#include "solib.h" + +/* Return a new solib_ops for FR-V systems. */ + +solib_ops_up make_frv_solib_ops (); + +#endif /* GDB_SOLIB_FRV_H */ diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c index b27613b..2d26c3c 100644 --- a/gdb/solib-rocm.c +++ b/gdb/solib-rocm.c @@ -26,6 +26,7 @@ #include "event-top.h" #include "gdbsupport/fileio.h" #include "inferior.h" +#include "linux-tdep.h" #include "observable.h" #include "solib.h" #include "solib-svr4.h" @@ -153,7 +154,69 @@ struct solib_info /* Per-inferior data key. */ static const registry<inferior>::key<solib_info> rocm_solib_data; -static solib_ops rocm_solib_ops; +/* solib_ops for ROCm systems. */ + +struct rocm_solib_ops : public solib_ops +{ + /* HOST_OPS is the host solib_ops that rocm_solib_ops hijacks / wraps, + in order to provide support for ROCm code objects. */ + explicit rocm_solib_ops (solib_ops_up host_ops) + : m_host_ops (std::move (host_ops)) + { + } + + /* The methods implemented by rocm_solib_ops. */ + owning_intrusive_list<solib> current_sos () const override; + void create_inferior_hook (int from_tty) const override; + gdb_bfd_ref_ptr bfd_open (const char *pathname) const override; + void relocate_section_addresses (solib &so, target_section *) const override; + void handle_event () const override; + + /* Implement the following methods just to forward the calls to the host + solib_ops. We currently need to implement all the methods that + svr4_solib_ops implements. */ + void clear_so (const solib &so) const override + { return m_host_ops->clear_so (so); } + + void clear_solib (program_space *pspace) const override + { return m_host_ops->clear_solib (pspace); } + + bool open_symbol_file_object (int from_tty) const override + { return m_host_ops->open_symbol_file_object (from_tty); } + + bool in_dynsym_resolve_code (CORE_ADDR pc) const override + { return m_host_ops->in_dynsym_resolve_code (pc); } + + bool same (const solib &gdb, const solib &inferior) const override + { return m_host_ops->same (gdb, inferior); } + + bool keep_data_in_core (CORE_ADDR vaddr, unsigned long size) const override + { return m_host_ops->keep_data_in_core (vaddr, size); } + + void update_breakpoints () const override + { return m_host_ops->update_breakpoints (); } + + std::optional<CORE_ADDR> find_solib_addr (solib &so) const override + { return m_host_ops->find_solib_addr (so); } + + bool supports_namespaces () const override + { return true; } + + int find_solib_ns (const solib &so) const override + { return m_host_ops->find_solib_ns (so); } + + int num_active_namespaces () const override + { return m_host_ops->num_active_namespaces (); } + + std::vector<const solib *> get_solibs_in_ns (int nsid) const override + { return m_host_ops->get_solibs_in_ns (nsid); } + +private: + owning_intrusive_list<solib> + solibs_from_rocm_sos (const std::vector<rocm_so> &sos) const; + + solib_ops_up m_host_ops; +}; /* Fetch the solib_info data for INF. */ @@ -170,13 +233,13 @@ get_solib_info (inferior *inf) /* Relocate section addresses. */ -static void -rocm_solib_relocate_section_addresses (solib &so, - struct target_section *sec) +void +rocm_solib_ops::relocate_section_addresses (solib &so, + struct target_section *sec) const { if (!is_amdgpu_arch (gdbarch_from_bfd (so.abfd.get ()))) { - svr4_so_ops.relocate_section_addresses (so, sec); + m_host_ops->relocate_section_addresses (so, sec); return; } @@ -187,30 +250,30 @@ rocm_solib_relocate_section_addresses (solib &so, static void rocm_update_solib_list (); -static void -rocm_solib_handle_event () +void +rocm_solib_ops::handle_event () const { - /* Since we sit on top of svr4_so_ops, we might get called following an event - concerning host libraries. We must therefore forward the call. If the - event was for a ROCm code object, it will be a no-op. On the other hand, + /* Since we sit on top of a host solib_ops, we might get called following an + event concerning host libraries. We must therefore forward the call. If + the event was for a ROCm code object, it will be a no-op. On the other hand if the event was for host libraries, rocm_update_solib_list will be essentially be a no-op (it will reload the same code object list as was previously loaded). */ - svr4_so_ops.handle_event (); + m_host_ops->handle_event (); rocm_update_solib_list (); } /* Create solib objects from rocm_so objects in SOS. */ -static owning_intrusive_list<solib> -solibs_from_rocm_sos (const std::vector<rocm_so> &sos) +owning_intrusive_list<solib> +rocm_solib_ops::solibs_from_rocm_sos (const std::vector<rocm_so> &sos) const { owning_intrusive_list<solib> dst; for (const rocm_so &so : sos) { - auto &newobj = dst.emplace_back (); + auto &newobj = dst.emplace_back (*this); newobj.lm_info = std::make_unique<lm_info_svr4> (*so.lm_info); newobj.name = so.name; @@ -223,11 +286,11 @@ solibs_from_rocm_sos (const std::vector<rocm_so> &sos) /* Build a list of `struct solib' objects describing the shared objects currently loaded in the inferior. */ -static owning_intrusive_list<solib> -rocm_solib_current_sos () +owning_intrusive_list<solib> +rocm_solib_ops::current_sos () const { /* First, retrieve the host-side shared library list. */ - owning_intrusive_list<solib> sos = svr4_so_ops.current_sos (); + owning_intrusive_list<solib> sos = m_host_ops->current_sos (); /* Then, the device-side shared library list. */ std::vector<rocm_so> &dev_sos = get_solib_info (current_inferior ())->solib_list; @@ -579,12 +642,12 @@ rocm_bfd_iovec_open (bfd *abfd, inferior *inferior) } } -static gdb_bfd_ref_ptr -rocm_solib_bfd_open (const char *pathname) +gdb_bfd_ref_ptr +rocm_solib_ops::bfd_open (const char *pathname) const { /* Handle regular files with SVR4 open. */ if (strstr (pathname, "://") == nullptr) - return svr4_so_ops.bfd_open (pathname); + return m_host_ops->bfd_open (pathname); auto open = [] (bfd *nbfd) -> gdb_bfd_iovec_base * { @@ -668,12 +731,12 @@ rocm_solib_bfd_open (const char *pathname) return abfd; } -static void -rocm_solib_create_inferior_hook (int from_tty) +void +rocm_solib_ops::create_inferior_hook (int from_tty) const { get_solib_info (current_inferior ())->solib_list.clear (); - svr4_so_ops.solib_create_inferior_hook (from_tty); + m_host_ops->create_inferior_hook (from_tty); } static void @@ -736,22 +799,6 @@ rocm_update_solib_list () sos.emplace_back (uri_bytes, std::move (unique_name), std::move (li)); } - - if (rocm_solib_ops.current_sos == NULL) - { - /* Override what we need to. */ - rocm_solib_ops = svr4_so_ops; - rocm_solib_ops.current_sos = rocm_solib_current_sos; - rocm_solib_ops.solib_create_inferior_hook - = rocm_solib_create_inferior_hook; - rocm_solib_ops.bfd_open = rocm_solib_bfd_open; - rocm_solib_ops.relocate_section_addresses - = rocm_solib_relocate_section_addresses; - rocm_solib_ops.handle_event = rocm_solib_handle_event; - - /* Engage the ROCm so_ops. */ - set_gdbarch_so_ops (current_inferior ()->arch (), &rocm_solib_ops); - } } static void @@ -759,6 +806,10 @@ rocm_solib_target_inferior_created (inferior *inf) { get_solib_info (inf)->solib_list.clear (); + auto prev_ops = inf->pspace->release_solib_ops (); + auto rocm_ops = std::make_unique<rocm_solib_ops> (std::move (prev_ops)); + inf->pspace->set_solib_ops (std::move (rocm_ops)); + rocm_update_solib_list (); /* Force GDB to reload the solibs. */ @@ -766,11 +817,22 @@ rocm_solib_target_inferior_created (inferior *inf) solib_add (nullptr, 0, auto_solib_add); } -/* -Wmissing-prototypes */ -extern initialize_file_ftype _initialize_rocm_solib; +static void +rocm_solib_target_inferior_execd (inferior *exec_inf, inferior *follow_inf) +{ + /* Engage the ROCm so_ops, but only if dbgapi is attached to the inferior + (avoiding remote inferiors and core file debugging). */ + if (get_amd_dbgapi_process_id (follow_inf) == AMD_DBGAPI_PROCESS_NONE) + return; -void -_initialize_rocm_solib () + auto prev_ops = follow_inf->pspace->release_solib_ops (); + auto rocm_ops = std::make_unique<rocm_solib_ops> (std::move (prev_ops)); + follow_inf->pspace->set_solib_ops (std::move (rocm_ops)); + + get_solib_info (exec_inf)->solib_list.clear (); +} + +INIT_GDB_FILE (rocm_solib) { /* The dependency on the amd-dbgapi exists because solib-rocm's inferior_created observer needs amd-dbgapi to have attached the process, @@ -779,4 +841,8 @@ _initialize_rocm_solib () (rocm_solib_target_inferior_created, "solib-rocm", { &get_amd_dbgapi_target_inferior_created_observer_token () }); + + gdb::observers::inferior_execd.attach + (rocm_solib_target_inferior_execd, "solib-rocm", + { &get_amd_dbgapi_target_inferior_execd_observer_token () }); } diff --git a/gdb/solib-svr4-linux.c b/gdb/solib-svr4-linux.c new file mode 100644 index 0000000..fd86cf0 --- /dev/null +++ b/gdb/solib-svr4-linux.c @@ -0,0 +1,98 @@ +/* Target-dependent code for GNU/Linux using SVR4-style libraries. + + Copyright (C) 2025 Free Software Foundation, Inc. + + This file is part of GDB. + + 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, see <http://www.gnu.org/licenses/>. */ + +#include "solib-svr4-linux.h" + +/* See solib-svr4-linux.h. */ + +solib_ops_up +make_linux_ilp32_svr4_solib_ops () +{ + return std::make_unique<linux_ilp32_svr4_solib_ops> (); +} + +/* See solib-svr4-linux.h. */ + +link_map_offsets * +linux_ilp32_svr4_solib_ops::fetch_link_map_offsets () const +{ + static link_map_offsets lmo; + static link_map_offsets *lmp = nullptr; + + if (lmp == nullptr) + { + lmp = &lmo; + + lmo.r_version_offset = 0; + lmo.r_version_size = 4; + lmo.r_map_offset = 4; + lmo.r_brk_offset = 8; + lmo.r_ldsomap_offset = -1; + lmo.r_next_offset = 20; + + /* Everything we need is in the first 20 bytes. */ + lmo.link_map_size = 20; + lmo.l_addr_offset = 0; + lmo.l_name_offset = 4; + lmo.l_ld_offset = 8; + lmo.l_next_offset = 12; + lmo.l_prev_offset = 16; + } + + return lmp; +} + +/* See solib-svr4-linux.h. */ + +solib_ops_up +make_linux_lp64_svr4_solib_ops () +{ + return std::make_unique<linux_lp64_svr4_solib_ops> (); +} + +/* See linux-tdep.h. */ + +link_map_offsets * +linux_lp64_svr4_solib_ops::fetch_link_map_offsets () const +{ + static link_map_offsets lmo; + static link_map_offsets *lmp = nullptr; + + if (lmp == nullptr) + { + lmp = &lmo; + + lmo.r_version_offset = 0; + lmo.r_version_size = 4; + lmo.r_map_offset = 8; + lmo.r_brk_offset = 16; + lmo.r_ldsomap_offset = -1; + lmo.r_next_offset = 40; + + /* Everything we need is in the first 40 bytes. */ + lmo.link_map_size = 40; + lmo.l_addr_offset = 0; + lmo.l_name_offset = 8; + lmo.l_ld_offset = 16; + lmo.l_next_offset = 24; + lmo.l_prev_offset = 32; + } + + return lmp; +} diff --git a/gdb/solib-svr4-linux.h b/gdb/solib-svr4-linux.h new file mode 100644 index 0000000..623013c --- /dev/null +++ b/gdb/solib-svr4-linux.h @@ -0,0 +1,47 @@ +/* Target-dependent code for GNU/Linux using SVR4-style libraries. + + Copyright (C) 2025 Free Software Foundation, Inc. + + This file is part of GDB. + + 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, see <http://www.gnu.org/licenses/>. */ + +#ifndef GDB_SOLIB_SVR4_LINUX_H +#define GDB_SOLIB_SVR4_LINUX_H + +#include "solib-svr4.h" + +/* solib_ops for ILP32 Linux systems. */ + +struct linux_ilp32_svr4_solib_ops : public svr4_solib_ops +{ + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* solib_ops for LP64 Linux systems. */ + +struct linux_lp64_svr4_solib_ops : public svr4_solib_ops +{ + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* Return a new solib_ops for ILP32 Linux systems. */ + +extern solib_ops_up make_linux_ilp32_svr4_solib_ops (); + +/* Return a new solib_ops for LP64 Linux systems. */ + +extern solib_ops_up make_linux_lp64_svr4_solib_ops (); + +#endif /* GDB_SOLIB_SVR4_LINUX_H */ diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 48aace1..9b4cabf 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -47,7 +47,6 @@ #include <map> -static struct link_map_offsets *svr4_fetch_link_map_offsets (void); static void svr4_relocate_main_executable (void); static void probes_table_remove_objfile_probes (struct objfile *objfile); static void svr4_iterate_over_objfiles_in_search_order @@ -89,27 +88,6 @@ static const char * const main_name_list[] = NULL }; -/* What to do when a probe stop occurs. */ - -enum probe_action -{ - /* Something went seriously wrong. Stop using probes and - revert to using the older interface. */ - PROBES_INTERFACE_FAILED, - - /* No action is required. The shared object list is still - valid. */ - DO_NOTHING, - - /* The shared object list should be reloaded entirely. */ - FULL_RELOAD, - - /* Attempt to incrementally update the shared object list. If - the update fails or is not possible, fall back to reloading - the list in full. */ - UPDATE_OR_RELOAD, -}; - /* A probe's name and its associated action. */ struct probe_info @@ -184,8 +162,8 @@ svr4_same (const char *gdb_name, const char *inferior_name, return gdb_lm_info.l_addr_inferior == inferior_lm_info.l_addr_inferior; } -static int -svr4_same (const solib &gdb, const solib &inferior) +bool +svr4_solib_ops::same (const solib &gdb, const solib &inferior) const { auto *lmg = gdb::checked_static_cast<const lm_info_svr4 *> (gdb.lm_info.get ()); @@ -196,10 +174,10 @@ svr4_same (const solib &gdb, const solib &inferior) inferior.original_name.c_str (), *lmg, *lmi); } -static lm_info_svr4_up -lm_info_read (CORE_ADDR lm_addr) +lm_info_svr4_up +svr4_solib_ops::read_lm_info (CORE_ADDR lm_addr) const { - struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); lm_info_svr4_up lm_info; gdb::byte_vector lm (lmo->link_map_size); @@ -229,16 +207,16 @@ lm_info_read (CORE_ADDR lm_addr) return lm_info; } -static int -has_lm_dynamic_from_link_map (void) +int +svr4_solib_ops::has_lm_dynamic_from_link_map () const { - struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); return lmo->l_ld_offset >= 0; } -static CORE_ADDR -lm_addr_check (const solib &so, bfd *abfd) +CORE_ADDR +svr4_solib_ops::lm_addr_check (const solib &so, bfd *abfd) const { auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ()); @@ -249,7 +227,7 @@ lm_addr_check (const solib &so, bfd *abfd) l_addr = li->l_addr_inferior; - if (! abfd || ! has_lm_dynamic_from_link_map ()) + if (!abfd || !this->has_lm_dynamic_from_link_map ()) goto set_addr; l_dynaddr = li->l_ld; @@ -475,8 +453,8 @@ svr4_is_default_namespace (const svr4_info *info, CORE_ADDR debug_base) /* Free the probes table. */ -static void -free_probes_table (struct svr4_info *info) +void +svr4_solib_ops::free_probes_table (svr4_info *info) const { info->probes_table.reset (nullptr); } @@ -820,10 +798,10 @@ elf_locate_base (void) checking r_version for a known version number, or r_state for RT_CONSISTENT. */ -static CORE_ADDR -solib_svr4_r_map (CORE_ADDR debug_base) +CORE_ADDR +svr4_solib_ops::read_r_map (CORE_ADDR debug_base) const { - struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); type *ptr_type = builtin_type (current_inferior ()->arch ())->builtin_data_ptr; CORE_ADDR addr = 0; @@ -843,10 +821,10 @@ solib_svr4_r_map (CORE_ADDR debug_base) /* Find r_brk from the inferior's debug base. */ -static CORE_ADDR -solib_svr4_r_brk (struct svr4_info *info) +CORE_ADDR +svr4_solib_ops::find_r_brk (svr4_info *info) const { - struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); type *ptr_type = builtin_type (current_inferior ()->arch ())->builtin_data_ptr; @@ -857,10 +835,10 @@ solib_svr4_r_brk (struct svr4_info *info) /* Find the link map for the dynamic linker (if it is not in the normal list of loaded shared objects). */ -static CORE_ADDR -solib_svr4_r_ldsomap (struct svr4_info *info) +CORE_ADDR +svr4_solib_ops::find_r_ldsomap (svr4_info *info) const { - struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); type *ptr_type = builtin_type (current_inferior ()->arch ())->builtin_data_ptr; enum bfd_endian byte_order = type_byte_order (ptr_type); @@ -888,10 +866,10 @@ solib_svr4_r_ldsomap (struct svr4_info *info) /* Find the next namespace from the r_next field. */ -static CORE_ADDR -solib_svr4_r_next (CORE_ADDR debug_base) +CORE_ADDR +svr4_solib_ops::read_r_next (CORE_ADDR debug_base) const { - link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); type *ptr_type = builtin_type (current_inferior ()->arch ())->builtin_data_ptr; bfd_endian byte_order = type_byte_order (ptr_type); @@ -923,8 +901,8 @@ solib_svr4_r_next (CORE_ADDR debug_base) memory areas containing the l_name string are saved in the core file. */ -static int -svr4_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) +bool +svr4_solib_ops::keep_data_in_core (CORE_ADDR vaddr, unsigned long size) const { struct svr4_info *info; CORE_ADDR ldsomap; @@ -934,13 +912,13 @@ svr4_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) info->debug_base = elf_locate_base (); if (info->debug_base == 0) - return 0; + return false; - ldsomap = solib_svr4_r_ldsomap (info); + ldsomap = this->find_r_ldsomap (info); if (!ldsomap) - return 0; + return false; - std::unique_ptr<lm_info_svr4> li = lm_info_read (ldsomap); + std::unique_ptr<lm_info_svr4> li = this->read_lm_info (ldsomap); name_lm = li != NULL ? li->l_name : 0; return (name_lm >= vaddr && name_lm < vaddr + size); @@ -948,11 +926,11 @@ svr4_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) /* See solib.h. */ -static int -open_symbol_file_object (int from_tty) +bool +svr4_solib_ops::open_symbol_file_object (int from_tty) const { CORE_ADDR lm, l_name; - struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); + link_map_offsets *lmo = this->fetch_link_map_offsets (); type *ptr_type = builtin_type (current_inferior ()->arch ())->builtin_data_ptr; int l_name_size = ptr_type->length (); @@ -965,17 +943,17 @@ open_symbol_file_object (int from_tty) if (current_program_space->symfile_object_file) if (!query (_("Attempt to reload symbols from process? "))) - return 0; + return false; /* Always locate the debug struct, in case it has moved. */ info->debug_base = elf_locate_base (); if (info->debug_base == 0) - return 0; /* failed somehow... */ + return false; /* failed somehow... */ /* First link map member should be the executable. */ - lm = solib_svr4_r_map (info->debug_base); + lm = this->read_r_map (info->debug_base); if (lm == 0) - return 0; /* failed somehow... */ + return false; /* failed somehow... */ /* Read address of name from target memory to GDB. */ read_memory (lm + lmo->l_name_offset, l_name_buf.data (), l_name_size); @@ -984,7 +962,7 @@ open_symbol_file_object (int from_tty) l_name = extract_typed_address (l_name_buf.data (), ptr_type); if (l_name == 0) - return 0; /* No filename. */ + return false; /* No filename. */ /* Now fetch the filename from target memory. */ gdb::unique_xmalloc_ptr<char> filename @@ -993,13 +971,13 @@ open_symbol_file_object (int from_tty) if (filename == nullptr) { warning (_("failed to read exec filename from attached file")); - return 0; + return false; } /* Have a pathname: read the symbol file. */ symbol_file_add_main (filename.get (), add_flags); - return 1; + return true; } /* Data exchange structure for the XML parser as returned by @@ -1032,8 +1010,8 @@ svr4_free_objfile_observer (struct objfile *objfile) /* Implement solib_ops.clear_so. */ -static void -svr4_clear_so (const solib &so) +void +svr4_solib_ops::clear_so (const solib &so) const { auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ()); @@ -1043,14 +1021,14 @@ svr4_clear_so (const solib &so) /* Create the solib objects equivalent to the svr4_sos in SOS. */ -static owning_intrusive_list<solib> -solib_from_svr4_sos (const std::vector<svr4_so> &sos) +owning_intrusive_list<solib> +svr4_solib_ops::solibs_from_svr4_sos (const std::vector<svr4_so> &sos) const { owning_intrusive_list<solib> dst; for (const svr4_so &so : sos) { - auto &newobj = dst.emplace_back (); + auto &newobj = dst.emplace_back (*this); newobj.name = so.name; newobj.original_name = so.name; @@ -1237,8 +1215,8 @@ svr4_current_sos_via_xfer_libraries (struct svr4_library_list *list, /* If no shared library information is available from the dynamic linker, build a fallback list from other sources. */ -static owning_intrusive_list<solib> -svr4_default_sos (svr4_info *info) +owning_intrusive_list<solib> +svr4_solib_ops::default_sos (svr4_info *info) const { if (!info->debug_loader_offset_p) return {}; @@ -1250,7 +1228,7 @@ svr4_default_sos (svr4_info *info) li->l_addr_p = 1; owning_intrusive_list<solib> sos; - auto &newobj = sos.emplace_back (); + auto &newobj = sos.emplace_back (*this); newobj.lm_info = std::move (li); newobj.name = info->debug_loader_name; @@ -1266,16 +1244,16 @@ svr4_default_sos (svr4_info *info) is returned the entries stored to LINK_PTR_PTR are still valid although they may represent only part of the inferior library list. */ -static int -svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, - std::vector<svr4_so> &sos, int ignore_first) +int +svr4_solib_ops::read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, + std::vector<svr4_so> &sos, int ignore_first) const { CORE_ADDR first_l_name = 0; CORE_ADDR next_lm; for (; lm != 0; prev_lm = lm, lm = next_lm) { - lm_info_svr4_up li = lm_info_read (lm); + lm_info_svr4_up li = this->read_lm_info (lm); if (li == NULL) return 0; @@ -1331,8 +1309,8 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, stored by the probes interface. Handle special cases relating to the first elements of the list in default namespace. */ -static void -svr4_current_sos_direct (struct svr4_info *info) +void +svr4_solib_ops::current_sos_direct (svr4_info *info) const { CORE_ADDR lm; bool ignore_first; @@ -1398,15 +1376,15 @@ svr4_current_sos_direct (struct svr4_info *info) /* Collect the sos in each namespace. */ CORE_ADDR debug_base = info->debug_base; for (; debug_base != 0; - ignore_first = false, debug_base = solib_svr4_r_next (debug_base)) + ignore_first = false, debug_base = this->read_r_next (debug_base)) { /* Walk the inferior's link map list, and build our so_list list. */ - lm = solib_svr4_r_map (debug_base); + lm = this->read_r_map (debug_base); if (lm != 0) { svr4_maybe_add_namespace (info, debug_base); - svr4_read_so_list (info, lm, 0, info->solib_lists[debug_base], - ignore_first); + this->read_so_list (info, lm, 0, info->solib_lists[debug_base], + ignore_first); } } @@ -1419,15 +1397,15 @@ svr4_current_sos_direct (struct svr4_info *info) r_debug object. If we added it to the default namespace (as it was), we would probably run into inconsistencies with the load map's prev/next links (I wonder if we did). */ - debug_base = solib_svr4_r_ldsomap (info); + debug_base = this->find_r_ldsomap (info); if (debug_base != 0) { /* Add the dynamic linker's namespace unless we already did. */ if (info->solib_lists.find (debug_base) == info->solib_lists.end ()) { svr4_maybe_add_namespace (info, debug_base); - svr4_read_so_list (info, debug_base, 0, info->solib_lists[debug_base], - 0); + this->read_so_list (info, debug_base, 0, + info->solib_lists[debug_base], 0); } } @@ -1436,15 +1414,15 @@ svr4_current_sos_direct (struct svr4_info *info) /* Collect sos read and stored by the probes interface. */ -static owning_intrusive_list<solib> -svr4_collect_probes_sos (svr4_info *info) +owning_intrusive_list<solib> +svr4_solib_ops::collect_probes_sos (svr4_info *info) const { owning_intrusive_list<solib> res; for (const auto &tuple : info->solib_lists) { const std::vector<svr4_so> &sos = tuple.second; - res.splice (solib_from_svr4_sos (sos)); + res.splice (this->solibs_from_svr4_sos (sos)); } return res; @@ -1453,26 +1431,26 @@ svr4_collect_probes_sos (svr4_info *info) /* Implement the main part of the "current_sos" solib_ops method. */ -static owning_intrusive_list<solib> -svr4_current_sos_1 (svr4_info *info) +owning_intrusive_list<solib> +svr4_solib_ops::current_sos_1 (svr4_info *info) const { owning_intrusive_list<solib> sos; /* If we're using the probes interface, we can use the cache as it will be maintained by probe update/reload actions. */ if (info->probes_table != nullptr) - sos = svr4_collect_probes_sos (info); + sos = this->collect_probes_sos (info); /* If we're not using the probes interface or if we didn't cache anything, read the sos to fill the cache, then collect them from the cache. */ if (sos.empty ()) { - svr4_current_sos_direct (info); + this->current_sos_direct (info); - sos = svr4_collect_probes_sos (info); + sos = this->collect_probes_sos (info); if (sos.empty ()) - sos = svr4_default_sos (info); + sos = this->default_sos (info); } return sos; @@ -1480,11 +1458,11 @@ svr4_current_sos_1 (svr4_info *info) /* Implement the "current_sos" solib_ops method. */ -static owning_intrusive_list<solib> -svr4_current_sos () +owning_intrusive_list<solib> +svr4_solib_ops::current_sos () const { svr4_info *info = get_svr4_info (current_program_space); - owning_intrusive_list<solib> sos = svr4_current_sos_1 (info); + owning_intrusive_list<solib> sos = this->current_sos_1 (info); struct mem_range vsyscall_range; /* Filter out the vDSO module, if present. Its symbol file would @@ -1731,7 +1709,11 @@ tls_maybe_fill_slot (solib &so) { /* Cause svr4_current_sos() to be run if it hasn't been already. */ if (info->main_lm_addr == 0) - svr4_current_sos_direct (info); + { + auto &ops + = gdb::checked_static_cast<const svr4_solib_ops &> (so.ops ()); + ops.current_sos_direct (info); + } /* Quit early when main_lm_addr is still 0. */ if (info->main_lm_addr == 0) @@ -1802,7 +1784,7 @@ match_main (const char *soname) SVR4 run time loader. */ bool -svr4_in_dynsym_resolve_code (CORE_ADDR pc) +svr4_solib_ops::in_dynsym_resolve_code (CORE_ADDR pc) const { struct svr4_info *info = get_svr4_info (current_program_space); @@ -2001,12 +1983,10 @@ solib_event_probe_action (struct probe_and_action *pa) shared objects from the inferior. Handle special cases relating to the first elements of the list. Returns nonzero on success. */ -static int -solist_update_full (struct svr4_info *info) +void +svr4_solib_ops::update_full (svr4_info *info) const { - svr4_current_sos_direct (info); - - return 1; + this->current_sos_direct (info); } /* Update the shared object list starting from the link-map entry @@ -2014,9 +1994,9 @@ solist_update_full (struct svr4_info *info) nonzero if the list was successfully updated, or zero to indicate failure. */ -static int -solist_update_incremental (svr4_info *info, CORE_ADDR debug_base, - CORE_ADDR lm) +int +svr4_solib_ops::update_incremental (svr4_info *info, CORE_ADDR debug_base, + CORE_ADDR lm) const { /* Fall back to a full update if we are using a remote target that does not support incremental transfers. */ @@ -2094,7 +2074,7 @@ solist_update_incremental (svr4_info *info, CORE_ADDR debug_base, above check and deferral to solist_update_full ensures that this call to svr4_read_so_list will never see the first element. */ - if (!svr4_read_so_list (info, lm, prev_lm, solist, 0)) + if (!this->read_so_list (info, lm, prev_lm, solist, 0)) return 0; } @@ -2105,8 +2085,8 @@ solist_update_incremental (svr4_info *info, CORE_ADDR debug_base, original interface. We don't reset the breakpoints as the ones set up for the probes-based interface are adequate. */ -static void -disable_probes_interface (svr4_info *info) +void +svr4_solib_ops::disable_probes_interface (svr4_info *info) const { warning (_("Probes-based dynamic linker interface failed.\n" "Reverting to original interface.")); @@ -2121,8 +2101,8 @@ disable_probes_interface (svr4_info *info) probes-based linker interface. Do nothing if using the standard interface. */ -static void -svr4_handle_solib_event (void) +void +svr4_solib_ops::handle_event () const { struct svr4_info *info = get_svr4_info (current_program_space); struct probe_and_action *pa; @@ -2147,9 +2127,9 @@ svr4_handle_solib_event (void) /* If anything goes wrong we revert to the original linker interface. */ - auto cleanup = make_scope_exit ([info] () + auto cleanup = make_scope_exit ([this, info] () { - disable_probes_interface (info); + this->disable_probes_interface (info); }); action = solib_event_probe_action (pa); @@ -2251,15 +2231,12 @@ svr4_handle_solib_event (void) if (action == UPDATE_OR_RELOAD) { - if (!solist_update_incremental (info, debug_base, lm)) + if (!this->update_incremental (info, debug_base, lm)) action = FULL_RELOAD; } if (action == FULL_RELOAD) - { - if (!solist_update_full (info)) - return; - } + this->update_full (info); cleanup.release (); } @@ -2306,8 +2283,8 @@ svr4_update_solib_event_breakpoint (struct breakpoint *b) /* Enable or disable optional solib event breakpoints as appropriate. Called whenever stop_on_solib_events is changed. */ -static void -svr4_update_solib_event_breakpoints (void) +void +svr4_solib_ops::update_breakpoints () const { for (breakpoint &bp : all_breakpoints_safe ()) svr4_update_solib_event_breakpoint (&bp); @@ -2318,10 +2295,10 @@ svr4_update_solib_event_breakpoints (void) solib event breakpoint will be created and registered for each probe. */ -static void -svr4_create_probe_breakpoints (svr4_info *info, struct gdbarch *gdbarch, - const std::vector<probe *> *probes, - struct objfile *objfile) +void +svr4_solib_ops::create_probe_breakpoints (svr4_info *info, gdbarch *gdbarch, + const std::vector<probe *> *probes, + objfile *objfile) const { for (int i = 0; i < NUM_PROBES; i++) { @@ -2339,17 +2316,17 @@ svr4_create_probe_breakpoints (svr4_info *info, struct gdbarch *gdbarch, } } - svr4_update_solib_event_breakpoints (); + this->update_breakpoints (); } /* Find all the glibc named probes. Only if all of the probes are found, then create them and return true. Otherwise return false. If WITH_PREFIX is set then add "rtld" to the front of the probe names. */ -static bool -svr4_find_and_create_probe_breakpoints (svr4_info *info, - struct gdbarch *gdbarch, - struct obj_section *os, - bool with_prefix) +bool +svr4_solib_ops::find_and_create_probe_breakpoints (svr4_info *info, + gdbarch *gdbarch, + obj_section *os, + bool with_prefix) const { SOLIB_SCOPED_DEBUG_START_END ("objfile=%s, with_prefix=%d", os->objfile->original_name, with_prefix); @@ -2427,7 +2404,7 @@ svr4_find_and_create_probe_breakpoints (svr4_info *info, /* All probes found. Now create them. */ solib_debug_printf ("using probes interface"); - svr4_create_probe_breakpoints (info, gdbarch, probes, os->objfile); + this->create_probe_breakpoints (info, gdbarch, probes, os->objfile); return true; } @@ -2443,15 +2420,16 @@ svr4_find_and_create_probe_breakpoints (svr4_info *info, probes aren't found, a single breakpoint is set on the original marker function. */ -static void -svr4_create_solib_event_breakpoints (svr4_info *info, struct gdbarch *gdbarch, - CORE_ADDR address) +void +svr4_solib_ops::create_event_breakpoints (svr4_info *info, gdbarch *gdbarch, + CORE_ADDR address) const { struct obj_section *os = find_pc_section (address); if (os == nullptr - || (!svr4_find_and_create_probe_breakpoints (info, gdbarch, os, false) - && !svr4_find_and_create_probe_breakpoints (info, gdbarch, os, true))) + || (!this->find_and_create_probe_breakpoints (info, gdbarch, os, false) + && !this->find_and_create_probe_breakpoints (info, gdbarch, os, + true))) { solib_debug_printf ("falling back to r_brk breakpoint: addr=%s", paddress (gdbarch, address)); @@ -2491,8 +2469,8 @@ svr4_create_solib_event_breakpoints (svr4_info *info, struct gdbarch *gdbarch, depending upon whether or not the library is being mapped or unmapped, and then set to RT_CONSISTENT after the library is mapped/unmapped. */ -static int -enable_break (struct svr4_info *info, int from_tty) +int +svr4_solib_ops::enable_break (svr4_info *info, int from_tty) const { const char * const *bkpt_namep; asection *interp_sect; @@ -2508,8 +2486,8 @@ enable_break (struct svr4_info *info, int from_tty) solib_add (NULL, from_tty, auto_solib_add); sym_addr = 0; - if (info->debug_base && solib_svr4_r_map (info->debug_base) != 0) - sym_addr = solib_svr4_r_brk (info); + if (info->debug_base && this->read_r_map (info->debug_base) != 0) + sym_addr = this->find_r_brk (info); if (sym_addr != 0) { @@ -2568,8 +2546,8 @@ enable_break (struct svr4_info *info, int from_tty) = info->interp_plt_sect_low + bfd_section_size (interp_sect); } - svr4_create_solib_event_breakpoints - (info, current_inferior ()->arch (), sym_addr); + this->create_event_breakpoints (info, current_inferior ()->arch (), + sym_addr); return 1; } } @@ -2621,7 +2599,7 @@ enable_break (struct svr4_info *info, int from_tty) { load_addr_found = 1; loader_found_in_list = 1; - load_addr = lm_addr_check (so, tmp_bfd.get ()); + load_addr = this->lm_addr_check (so, tmp_bfd.get ()); break; } } @@ -2728,9 +2706,8 @@ enable_break (struct svr4_info *info, int from_tty) if (sym_addr != 0) { - svr4_create_solib_event_breakpoints (info, - current_inferior ()->arch (), - load_addr + sym_addr); + this->create_event_breakpoints (info, current_inferior ()->arch (), + load_addr + sym_addr); return 1; } @@ -2757,9 +2734,8 @@ enable_break (struct svr4_info *info, int from_tty) sym_addr = gdbarch_convert_from_func_ptr_addr (current_inferior ()->arch (), sym_addr, current_inferior ()->top_target ()); - svr4_create_solib_event_breakpoints (info, - current_inferior ()->arch (), - sym_addr); + this->create_event_breakpoints (info, current_inferior ()->arch (), + sym_addr); return 1; } } @@ -2777,8 +2753,9 @@ enable_break (struct svr4_info *info, int from_tty) sym_addr = gdbarch_convert_from_func_ptr_addr (current_inferior ()->arch (), sym_addr, current_inferior ()->top_target ()); - svr4_create_solib_event_breakpoints - (info, current_inferior ()->arch (), sym_addr); + this->create_event_breakpoints (info, + current_inferior ()->arch (), + sym_addr); return 1; } } @@ -3302,15 +3279,15 @@ svr4_relocate_main_executable (void) addresses, and saving sufficient information about them to allow their symbols to be read at a later time. */ -static void -svr4_solib_create_inferior_hook (int from_tty) +void +svr4_solib_ops::create_inferior_hook (int from_tty) const { struct svr4_info *info; info = get_svr4_info (current_program_space); /* Clear the probes-based interface's state. */ - free_probes_table (info); + this->free_probes_table (info); info->solib_lists.clear (); info->namespace_id.clear (); info->active_namespaces.clear (); @@ -3323,12 +3300,12 @@ svr4_solib_create_inferior_hook (int from_tty) if (!target_has_execution ()) return; - if (!enable_break (info, from_tty)) + if (!this->enable_break (info, from_tty)) return; } -static void -svr4_clear_solib (program_space *pspace) +void +svr4_solib_ops::clear_solib (program_space *pspace) const { svr4_info *info = get_svr4_info (pspace); info->debug_base = 0; @@ -3391,15 +3368,15 @@ find_loadable_elf_internal_phdr (bfd *abfd, bfd_section *asect) return nullptr; } -/* Implement solib_ops::relocate_section_addresses() for svr4 targets. */ - -static void -svr4_relocate_section_addresses (solib &so, target_section *sec) +void +svr4_solib_ops::relocate_section_addresses (solib &so, + target_section *sec) const { bfd *abfd = sec->the_bfd_section->owner; - sec->addr = svr4_truncate_ptr (sec->addr + lm_addr_check (so, abfd)); - sec->endaddr = svr4_truncate_ptr (sec->endaddr + lm_addr_check (so, abfd)); + sec->addr = svr4_truncate_ptr (sec->addr + this->lm_addr_check (so, abfd)); + sec->endaddr + = svr4_truncate_ptr (sec->endaddr + this->lm_addr_check (so, abfd)); struct bfd_section *asect = sec->the_bfd_section; gdb_assert (asect != nullptr); @@ -3469,56 +3446,23 @@ svr4_relocate_section_addresses (solib &so, target_section *sec) } } } - - -/* Architecture-specific operations. */ - -struct solib_svr4_ops -{ - /* Return a description of the layout of `struct link_map'. */ - struct link_map_offsets *(*fetch_link_map_offsets)(void) = nullptr; -}; - -/* Per-architecture data key. */ -static const registry<gdbarch>::key<struct solib_svr4_ops> solib_svr4_data; - -/* Return a default for the architecture-specific operations. */ - -static struct solib_svr4_ops * -get_ops (struct gdbarch *gdbarch) -{ - struct solib_svr4_ops *ops = solib_svr4_data.get (gdbarch); - if (ops == nullptr) - ops = solib_svr4_data.emplace (gdbarch); - return ops; -} -/* Set the architecture-specific `struct link_map_offsets' fetcher for - GDBARCH to FLMO. Also, install SVR4 solib_ops into GDBARCH. */ +/* See solib-svr4.h. */ void -set_solib_svr4_fetch_link_map_offsets (struct gdbarch *gdbarch, - struct link_map_offsets *(*flmo) (void)) +set_solib_svr4_ops (gdbarch *gdbarch, gdbarch_make_solib_ops_ftype make_solib_ops) { - struct solib_svr4_ops *ops = get_ops (gdbarch); - - ops->fetch_link_map_offsets = flmo; - - set_gdbarch_so_ops (gdbarch, &svr4_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_solib_ops); set_gdbarch_iterate_over_objfiles_in_search_order (gdbarch, svr4_iterate_over_objfiles_in_search_order); } -/* Fetch a link_map_offsets structure using the architecture-specific - `struct link_map_offsets' fetcher. */ +/* See solib-svr4.h. */ -static struct link_map_offsets * -svr4_fetch_link_map_offsets (void) +solib_ops_up +make_svr4_ilp32_solib_ops () { - struct solib_svr4_ops *ops = get_ops (current_inferior ()->arch ()); - - gdb_assert (ops->fetch_link_map_offsets); - return ops->fetch_link_map_offsets (); + return std::make_unique<ilp32_svr4_solib_ops> (); } /* Most OS'es that have SVR4-style ELF dynamic libraries define a @@ -3528,8 +3472,8 @@ svr4_fetch_link_map_offsets (void) /* Fetch (and possibly build) an appropriate `struct link_map_offsets' for an ILP32 SVR4 system. */ -struct link_map_offsets * -svr4_ilp32_fetch_link_map_offsets (void) +link_map_offsets * +ilp32_svr4_solib_ops::fetch_link_map_offsets () const { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -3557,11 +3501,26 @@ svr4_ilp32_fetch_link_map_offsets (void) return lmp; } +/* solib_ops for LP64 SVR4 systems. */ + +struct lp64_svr4_solib_ops : public svr4_solib_ops +{ + link_map_offsets *fetch_link_map_offsets () const override; +}; + +/* See solib-svr4.h. */ + +solib_ops_up +make_svr4_lp64_solib_ops () +{ + return std::make_unique<lp64_svr4_solib_ops> (); +} + /* Fetch (and possibly build) an appropriate `struct link_map_offsets' for an LP64 SVR4 system. */ -struct link_map_offsets * -svr4_lp64_fetch_link_map_offsets (void) +link_map_offsets * +lp64_svr4_solib_ops::fetch_link_map_offsets () const { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -3708,19 +3667,15 @@ svr4_iterate_over_objfiles_in_search_order } } -/* See solib_ops::find_solib_addr in solist.h. */ - -static std::optional<CORE_ADDR> -svr4_find_solib_addr (solib &so) +std::optional<CORE_ADDR> +svr4_solib_ops::find_solib_addr (solib &so) const { auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ()); return li->l_addr_inferior; } -/* See solib_ops::find_solib_ns in solist.h. */ - -static int -svr4_find_solib_ns (const solib &so) +int +svr4_solib_ops::find_solib_ns (const solib &so) const { CORE_ADDR debug_base = find_debug_base_for_solib (&so); svr4_info *info = get_svr4_info (current_program_space); @@ -3735,17 +3690,15 @@ svr4_find_solib_ns (const solib &so) error (_("No namespace found")); } -/* see solib_ops::num_active_namespaces in solist.h. */ -static int -svr4_num_active_namespaces () +int +svr4_solib_ops::num_active_namespaces () const { svr4_info *info = get_svr4_info (current_program_space); return info->active_namespaces.size (); } -/* See solib_ops::get_solibs_in_ns in solist.h. */ -static std::vector<const solib *> -svr4_get_solibs_in_ns (int nsid) +std::vector<const solib *> +svr4_solib_ops::get_solibs_in_ns (int nsid) const { std::vector<const solib*> ns_solibs; svr4_info *info = get_svr4_info (current_program_space); @@ -3791,29 +3744,7 @@ svr4_get_solibs_in_ns (int nsid) return ns_solibs; } -const struct solib_ops svr4_so_ops = -{ - svr4_relocate_section_addresses, - svr4_clear_so, - svr4_clear_solib, - svr4_solib_create_inferior_hook, - svr4_current_sos, - open_symbol_file_object, - svr4_in_dynsym_resolve_code, - solib_bfd_open, - svr4_same, - svr4_keep_data_in_core, - svr4_update_solib_event_breakpoints, - svr4_handle_solib_event, - svr4_find_solib_addr, - svr4_find_solib_ns, - svr4_num_active_namespaces, - svr4_get_solibs_in_ns, -}; - -void _initialize_svr4_solib (); -void -_initialize_svr4_solib () +INIT_GDB_FILE (svr4_solib) { gdb::observers::free_objfile.attach (svr4_free_objfile_observer, "solib-svr4"); diff --git a/gdb/solib-svr4.h b/gdb/solib-svr4.h index 1ff9be7..b331fa7 100644 --- a/gdb/solib-svr4.h +++ b/gdb/solib-svr4.h @@ -20,12 +20,15 @@ #ifndef GDB_SOLIB_SVR4_H #define GDB_SOLIB_SVR4_H +#include "gdbarch.h" #include "solib.h" struct objfile; -struct solib_ops; - -extern const solib_ops svr4_so_ops; +struct link_map_offsets; +struct probe_and_action; +struct svr4_info; +struct svr4_library_list; +struct svr4_so; /* Link map info to include in an allocated solib entry. */ @@ -50,6 +53,101 @@ struct lm_info_svr4 final : public lm_info using lm_info_svr4_up = std::unique_ptr<lm_info_svr4>; +/* What to do when a probe stop occurs. */ + +enum probe_action +{ + /* Something went seriously wrong. Stop using probes and + revert to using the older interface. */ + PROBES_INTERFACE_FAILED, + + /* No action is required. The shared object list is still + valid. */ + DO_NOTHING, + + /* The shared object list should be reloaded entirely. */ + FULL_RELOAD, + + /* Attempt to incrementally update the shared object list. If + the update fails or is not possible, fall back to reloading + the list in full. */ + UPDATE_OR_RELOAD, +}; + +/* solib_ops for SVR4 systems. */ + +struct svr4_solib_ops : public solib_ops +{ + void relocate_section_addresses (solib &so, target_section *) const override; + void clear_so (const solib &so) const override; + void clear_solib (program_space *pspace) const override; + void create_inferior_hook (int from_tty) const override; + owning_intrusive_list<solib> current_sos () const override; + bool open_symbol_file_object (int from_tty) const override; + bool in_dynsym_resolve_code (CORE_ADDR pc) const override; + bool same (const solib &gdb, const solib &inferior) const override; + bool keep_data_in_core (CORE_ADDR vaddr, unsigned long size) const override; + void update_breakpoints () const override; + void handle_event () const override; + std::optional<CORE_ADDR> find_solib_addr (solib &so) const override; + bool supports_namespaces () const override { return true; } + int find_solib_ns (const solib &so) const override; + int num_active_namespaces () const override; + std::vector<const solib *> get_solibs_in_ns (int nsid) const override; + + /* Return the appropriate link map offsets table for the architecture. */ + virtual link_map_offsets *fetch_link_map_offsets () const = 0; + + /* This needs to be public because it's accessed from an observer. */ + void current_sos_direct (svr4_info *info) const; + +private: + void create_probe_breakpoints (svr4_info *info, gdbarch *gdbarch, + const std::vector<probe *> *probes, + objfile *objfile) const; + bool find_and_create_probe_breakpoints (svr4_info *info, gdbarch *gdbarch, + obj_section *os, + bool with_prefix) const; + void create_event_breakpoints (svr4_info *info, gdbarch *gdbarch, + CORE_ADDR address) const; + int enable_break (svr4_info *info, int from_tty) const; + bool is_default_namespace (CORE_ADDR debug_base) const; + void free_probes_table (svr4_info *info) const; + CORE_ADDR find_r_brk (svr4_info *info) const; + CORE_ADDR find_r_ldsomap (svr4_info *info) const; + owning_intrusive_list<solib> default_sos (svr4_info *info) const; + int read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, + std::vector<svr4_so> &sos, int ignore_first) const; + lm_info_svr4_up read_lm_info (CORE_ADDR lm_addr) const; + int has_lm_dynamic_from_link_map () const; + CORE_ADDR lm_addr_check (const solib &so, bfd *abfd) const; + CORE_ADDR read_r_next (CORE_ADDR debug_base) const; + CORE_ADDR read_r_map (CORE_ADDR debug_base) const; + int parse_libraries (const char *document, svr4_library_list *list); + int current_sos_via_xfer_libraries (svr4_library_list *list, + const char *annex) const; + owning_intrusive_list<solib> collect_probes_sos (svr4_info *info) const; + owning_intrusive_list<solib> current_sos_1 (svr4_info *info) const; + owning_intrusive_list<solib> solibs_from_svr4_sos + (const std::vector<svr4_so> &sos) const; + void register_event_probe (objfile *objfile, probe *prob, CORE_ADDR address, + enum probe_action action) const; + void disable_probes_interface (svr4_info *info) const; + probe_and_action *event_probe_at (CORE_ADDR address) const; + void update_full (svr4_info *info) const; + int update_incremental (svr4_info *info, CORE_ADDR debug_base, + CORE_ADDR lm) const; + bool update_event_breakpoint (breakpoint *b) const; + CORE_ADDR find_debug_base (const solib *solib) const; +}; + +/* solib_ops for ILP32 SVR4 systems. */ + +struct ilp32_svr4_solib_ops : public svr4_solib_ops +{ + link_map_offsets *fetch_link_map_offsets () const override; +}; + /* Critical offsets and sizes which describe struct r_debug and struct link_map on SVR4-like targets. All offsets and sizes are in bytes unless otherwise specified. */ @@ -91,26 +189,22 @@ struct link_map_offsets int l_name_offset; }; -/* set_solib_svr4_fetch_link_map_offsets() is intended to be called by - a <arch>_gdbarch_init() function. It is used to establish an - architecture specific link_map_offsets fetcher for the architecture - being defined. */ +/* Set the gdbarch methods for SVR4 systems. */ -extern void set_solib_svr4_fetch_link_map_offsets - (struct gdbarch *gdbarch, struct link_map_offsets *(*func) (void)); +extern void set_solib_svr4_ops (gdbarch *gdbarch, + gdbarch_make_solib_ops_ftype make_solib_ops); /* This function is called by thread_db.c. Return the address of the link map for the given objfile. */ extern CORE_ADDR svr4_fetch_objfile_link_map (struct objfile *objfile); -/* Fetch (and possibly build) an appropriate `struct link_map_offsets' - for ILP32 and LP64 SVR4 systems. */ -extern struct link_map_offsets *svr4_ilp32_fetch_link_map_offsets (void); -extern struct link_map_offsets *svr4_lp64_fetch_link_map_offsets (void); +/* Return a new solib_ops for ILP32 SVR4 systems. */ + +extern solib_ops_up make_svr4_ilp32_solib_ops (); + +/* Return a new solib_ops for LP64 SVR4 systems. */ -/* Return true if PC lies in the dynamic symbol resolution code of the - SVR4 run time loader. */ -bool svr4_in_dynsym_resolve_code (CORE_ADDR pc); +extern solib_ops_up make_svr4_lp64_solib_ops (); /* For the MUSL C library, given link map address LM_ADDR, return the corresponding TLS module id, or 0 if not found. */ diff --git a/gdb/solib-target.c b/gdb/solib-target.c index 68dc3cc..770028d 100644 --- a/gdb/solib-target.c +++ b/gdb/solib-target.c @@ -226,8 +226,8 @@ solib_target_parse_libraries (const char *library) } #endif -static owning_intrusive_list<solib> -solib_target_current_sos (void) +owning_intrusive_list<solib> +target_solib_ops::current_sos () const { owning_intrusive_list<solib> sos; @@ -245,7 +245,7 @@ solib_target_current_sos (void) /* Build a struct solib for each entry on the list. */ for (lm_info_target_up &info : library_list) { - auto &new_solib = sos.emplace_back (); + auto &new_solib = sos.emplace_back (*this); /* We don't need a copy of the name in INFO anymore. */ new_solib.name = std::move (info->name); @@ -256,8 +256,9 @@ solib_target_current_sos (void) return sos; } -static void -solib_target_relocate_section_addresses (solib &so, target_section *sec) +void +target_solib_ops::relocate_section_addresses (solib &so, + target_section *sec) const { CORE_ADDR offset; auto *li = gdb::checked_static_cast<lm_info_target *> (so.lm_info.get ()); @@ -376,8 +377,8 @@ Could not relocate shared library \"%s\": bad offsets"), so.name.c_str ()); sec->endaddr += offset; } -static bool -solib_target_in_dynsym_resolve_code (CORE_ADDR pc) +bool +target_solib_ops::in_dynsym_resolve_code (CORE_ADDR pc) const { /* We don't have a range of addresses for the dynamic linker; there may not be one in the program's address space. So only report @@ -385,19 +386,10 @@ solib_target_in_dynsym_resolve_code (CORE_ADDR pc) return in_plt_section (pc); } -const solib_ops solib_target_so_ops = +/* See solib-target.h. */ + +solib_ops_up +make_target_solib_ops () { - solib_target_relocate_section_addresses, - nullptr, - nullptr, - nullptr, - solib_target_current_sos, - nullptr, - solib_target_in_dynsym_resolve_code, - solib_bfd_open, - nullptr, - nullptr, - nullptr, - nullptr, - default_find_solib_addr, -}; + return std::make_unique<target_solib_ops> (); +} diff --git a/gdb/solib-target.h b/gdb/solib-target.h index f8a22fd..89ae2bc 100644 --- a/gdb/solib-target.h +++ b/gdb/solib-target.h @@ -20,7 +20,19 @@ #ifndef GDB_SOLIB_TARGET_H #define GDB_SOLIB_TARGET_H -struct solib_ops; -extern const solib_ops solib_target_so_ops; +#include "solib.h" + +/* solib_ops for systems fetching solibs from the target. */ + +struct target_solib_ops : solib_ops +{ + void relocate_section_addresses (solib &so, target_section *) const override; + owning_intrusive_list<solib> current_sos () const override; + bool in_dynsym_resolve_code (CORE_ADDR pc) const override; +}; + +/* Return a new solib_ops for systems fetching solibs from the target. */ + +solib_ops_up make_target_solib_ops (); #endif /* GDB_SOLIB_TARGET_H */ diff --git a/gdb/solib.c b/gdb/solib.c index 7721fd6..e43b1a3 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -467,6 +467,12 @@ solib_bfd_open (const char *pathname) return abfd; } +gdb_bfd_ref_ptr +solib_ops::bfd_open (const char *pathname) const +{ + return solib_bfd_open (pathname); +} + /* Given a pointer to one of the shared objects in our list of mapped objects, use the recorded name to open a bfd descriptor for the object, build a section table, relocate all the section addresses @@ -482,10 +488,8 @@ solib_bfd_open (const char *pathname) static int solib_map_sections (solib &so) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); - gdb::unique_xmalloc_ptr<char> filename (tilde_expand (so.name.c_str ())); - gdb_bfd_ref_ptr abfd (ops->bfd_open (filename.get ())); + gdb_bfd_ref_ptr abfd (so.ops ().bfd_open (filename.get ())); /* If we have a core target then the core target might have some helpful information (i.e. build-ids) about the shared libraries we are trying @@ -495,7 +499,7 @@ solib_map_sections (solib &so) If we don't have a core target then this will return an empty struct with no hint information, we then lookup the shared library based on its filename. */ - std::optional<CORE_ADDR> solib_addr = ops->find_solib_addr (so); + std::optional<CORE_ADDR> solib_addr = so.ops ().find_solib_addr (so); std::optional <const core_target_mapped_file_info> mapped_file_info = core_target_find_mapped_file (so.name.c_str (), solib_addr); @@ -519,7 +523,7 @@ solib_map_sections (solib &so) However, if it was good enough during the mapped file processing, we assume it's good enough now. */ if (!mapped_file_info->filename ().empty ()) - abfd = ops->bfd_open (mapped_file_info->filename ().c_str ()); + abfd = so.ops ().bfd_open (mapped_file_info->filename ().c_str ()); else abfd = nullptr; @@ -559,7 +563,7 @@ solib_map_sections (solib &so) /* Relocate the section binding addresses as recorded in the shared object's file by the base address to which the object was actually mapped. */ - ops->relocate_section_addresses (so, &p); + so.ops ().relocate_section_addresses (so, &p); /* If the target didn't provide information about the address range of the shared object, assume we want the location of @@ -586,8 +590,6 @@ solib_map_sections (solib &so) void solib::clear () { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); - this->sections.clear (); this->abfd = nullptr; @@ -602,8 +604,7 @@ solib::clear () this->name = this->original_name; /* Do the same for target-specific data. */ - if (ops->clear_so != NULL) - ops->clear_so (*this); + this->ops ().clear_so (*this); } lm_info::~lm_info () = default; @@ -711,7 +712,10 @@ notify_solib_unloaded (program_space *pspace, const solib &so, void update_solib_list (int from_tty) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); + const solib_ops *ops = current_program_space->solib_ops (); + + if (ops == nullptr) + return; /* We can reach here due to changing solib-search-path or the sysroot, before having any inferior. */ @@ -723,8 +727,7 @@ update_solib_list (int from_tty) have not opened a symbol file, we may be able to get its symbols now! */ if (inf->attach_flag - && current_program_space->symfile_object_file == nullptr - && ops->open_symbol_file_object != nullptr) + && current_program_space->symfile_object_file == nullptr) { try { @@ -773,19 +776,8 @@ update_solib_list (int from_tty) /* Check to see whether the shared object *gdb also appears in the inferior's current list. */ for (; inferior_iter != inferior.end (); ++inferior_iter) - { - if (ops->same) - { - if (ops->same (*gdb_iter, *inferior_iter)) - break; - } - else - { - if (!filename_cmp (gdb_iter->original_name.c_str (), - inferior_iter->original_name.c_str ())) - break; - } - } + if (ops->same (*gdb_iter, *inferior_iter)) + break; /* If the shared object appears on the inferior's list too, then it's still loaded, so we don't need to do anything. Delete @@ -1025,16 +1017,21 @@ print_solib_list_table (std::vector<const solib *> solib_list, gdbarch *gdbarch = current_inferior ()->arch (); /* "0x", a little whitespace, and two hex digits per byte of pointers. */ int addr_width = 4 + (gdbarch_ptr_bit (gdbarch) / 4); - const solib_ops *ops = gdbarch_so_ops (gdbarch); + const solib_ops *ops = current_program_space->solib_ops (); struct ui_out *uiout = current_uiout; bool so_missing_debug_info = false; + if (ops == nullptr) + return; + /* There are 3 conditions for this command to print solib namespaces, first PRINT_NAMESPACE has to be true, second the solib_ops has to support multiple namespaces, and third there must be more than one active namespace. Fold all these into the PRINT_NAMESPACE condition. */ - print_namespace = print_namespace && ops->num_active_namespaces != nullptr - && ops->num_active_namespaces () > 1; + print_namespace = (print_namespace + && ops != nullptr + && ops->supports_namespaces () + && ops->num_active_namespaces () > 1); int num_cols = 4; if (print_namespace) @@ -1159,12 +1156,13 @@ info_sharedlibrary_command (const char *pattern, int from_tty) static void info_linker_namespace_command (const char *pattern, int from_tty) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); + const solib_ops *ops = current_program_space->solib_ops (); + /* This command only really makes sense for inferiors that support linker namespaces, so we can leave early. */ - if (ops->num_active_namespaces == nullptr) - error (_("Current inferior does not support linker namespaces." \ - "Use \"info sharedlibrary\" instead")); + if (ops == nullptr || !ops->supports_namespaces ()) + error (_("Current inferior does not support linker namespaces. " + "Use \"info sharedlibrary\" instead.")); struct ui_out *uiout = current_uiout; std::vector<std::pair<int, std::vector<const solib *>>> all_solibs_to_print; @@ -1272,17 +1270,21 @@ solib_name_from_address (struct program_space *pspace, CORE_ADDR address) return nullptr; } +bool +solib_ops::same (const solib &a, const solib &b) const +{ + return (filename_cmp (a.original_name.c_str (), b.original_name.c_str ()) + == 0); +} + /* See solib.h. */ bool solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); + const solib_ops *ops = current_program_space->solib_ops (); - if (ops->keep_data_in_core) - return ops->keep_data_in_core (vaddr, size) != 0; - else - return false; + return ops != nullptr && ops->keep_data_in_core (vaddr, size); } /* See solib.h. */ @@ -1290,8 +1292,6 @@ solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) void clear_solib (program_space *pspace) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); - for (solib &so : pspace->solibs ()) { bool still_in_use @@ -1303,7 +1303,8 @@ clear_solib (program_space *pspace) pspace->solibs ().clear (); - if (ops->clear_solib != nullptr) + if (const solib_ops *ops = pspace->solib_ops (); + ops != nullptr) ops->clear_solib (pspace); } @@ -1315,10 +1316,9 @@ clear_solib (program_space *pspace) void solib_create_inferior_hook (int from_tty) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); - - if (ops->solib_create_inferior_hook != nullptr) - ops->solib_create_inferior_hook (from_tty); + if (const solib_ops *ops = current_program_space->solib_ops (); + ops != nullptr) + ops->create_inferior_hook (from_tty); } /* See solib.h. */ @@ -1326,10 +1326,9 @@ solib_create_inferior_hook (int from_tty) bool in_solib_dynsym_resolve_code (CORE_ADDR pc) { - const auto in_dynsym_resolve_code - = gdbarch_so_ops (current_inferior ()->arch ())->in_dynsym_resolve_code; + const solib_ops *ops = current_program_space->solib_ops (); - return in_dynsym_resolve_code && in_dynsym_resolve_code (pc); + return ops != nullptr && ops->in_dynsym_resolve_code (pc); } /* Implements the "sharedlibrary" command. */ @@ -1371,9 +1370,9 @@ no_shared_libraries_command (const char *ignored, int from_tty) void update_solib_breakpoints (void) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); + const solib_ops *ops = current_program_space->solib_ops (); - if (ops->update_breakpoints != NULL) + if (ops != nullptr) ops->update_breakpoints (); } @@ -1382,9 +1381,8 @@ update_solib_breakpoints (void) void handle_solib_event (void) { - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); - - if (ops->handle_event != NULL) + if (const solib_ops *ops = current_program_space->solib_ops (); + ops != nullptr) ops->handle_event (); current_inferior ()->pspace->clear_solib_cache (); @@ -1417,7 +1415,8 @@ reload_shared_libraries_1 (int from_tty) gdb::unique_xmalloc_ptr<char> filename ( tilde_expand (so.original_name.c_str ())); - gdb_bfd_ref_ptr abfd (solib_bfd_open (filename.get ())); + + gdb_bfd_ref_ptr abfd = so.ops ().bfd_open (filename.get ()); if (abfd != NULL) found_pathname = bfd_get_filename (abfd.get ()); @@ -1468,8 +1467,6 @@ reload_shared_libraries (const char *ignored, int from_tty, { reload_shared_libraries_1 (from_tty); - const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ()); - /* Creating inferior hooks here has two purposes. First, if we reload shared libraries then the address of solib breakpoint we've computed previously might be no longer valid. For example, if we forgot to set @@ -1483,7 +1480,8 @@ reload_shared_libraries (const char *ignored, int from_tty, { /* Reset or free private data structures not associated with solib entries. */ - if (ops->clear_solib != nullptr) + if (const solib_ops *ops = current_program_space->solib_ops (); + ops != nullptr) ops->clear_solib (current_program_space); /* Remove any previous solib event breakpoint. This is usually @@ -1810,15 +1808,8 @@ remove_user_added_objfile (struct objfile *objfile) } } -/* See solist.h. */ - -std::optional<CORE_ADDR> -default_find_solib_addr (solib &so) -{ - return {}; -} - /* Implementation of the linker_namespace convenience variable. + This returns the GDB internal identifier of the linker namespace, for the selected frame, as an integer. If the inferior doesn't support linker namespaces, this always returns 0. */ @@ -1827,19 +1818,17 @@ static value * linker_namespace_make_value (gdbarch *gdbarch, internalvar *var, void *ignore) { - const solib_ops *ops = gdbarch_so_ops (gdbarch); int nsid = 0; - if (ops->find_solib_ns != nullptr) - { - CORE_ADDR curr_pc = get_frame_pc (get_selected_frame ()); - for (const solib &so : current_program_space->solibs ()) - if (solib_contains_address_p (so, curr_pc)) - { - nsid = ops->find_solib_ns (so); - break; - } - } + CORE_ADDR curr_pc = get_frame_pc (get_selected_frame ()); + + for (const solib &so : current_program_space->solibs ()) + if (solib_contains_address_p (so, curr_pc)) + { + if (so.ops ().supports_namespaces ()) + nsid = so.ops ().find_solib_ns (so); + break; + } /* If the PC is not in an SO, or the solib_ops doesn't support linker namespaces, the inferior is in the default namespace. */ @@ -1854,10 +1843,7 @@ static const struct internalvar_funcs linker_namespace_funcs = nullptr, }; -void _initialize_solib (); - -void -_initialize_solib () +INIT_GDB_FILE (solib) { gdb::observers::free_objfile.attach (remove_user_added_objfile, "solib"); gdb::observers::inferior_execd.attach ( diff --git a/gdb/solib.h b/gdb/solib.h index f5922aa..b9465e1 100644 --- a/gdb/solib.h +++ b/gdb/solib.h @@ -54,8 +54,19 @@ struct lm_info using lm_info_up = std::unique_ptr<lm_info>; +struct solib_ops; + struct solib : intrusive_list_node<solib> { + /* Constructor + + OPS is the solib_ops implementation providing this solib. */ + explicit solib (const solib_ops &ops) : m_ops (&ops) {} + + /* Return the solib_ops implementation providing this solib. */ + const solib_ops &ops () const + { return *m_ops; } + /* Free symbol-file related contents of SO and reset for possible reloading of SO. If we have opened a BFD for SO, close it. If we have placed SO's sections in some target's section table, the caller is responsible for @@ -111,6 +122,10 @@ struct solib : intrusive_list_node<solib> that supports outputting multiple segments once the related code supports them. */ CORE_ADDR addr_low = 0, addr_high = 0; + +private: + /* The solib_ops responsible for this solib. */ + const solib_ops *m_ops; }; /* A unique pointer to an solib. */ @@ -118,22 +133,31 @@ using solib_up = std::unique_ptr<solib>; struct solib_ops { + virtual ~solib_ops () = default; + /* Adjust the section binding addresses by the base address at which the object was actually mapped. */ - void (*relocate_section_addresses) (solib &so, target_section *); + virtual void relocate_section_addresses (solib &so, target_section *) const + = 0; /* Reset private data structures associated with SO. This is called when SO is about to be reloaded. - It is also called when SO is about to be freed. */ - void (*clear_so) (const solib &so); + It is also called when SO is about to be freed. + + Defaults to no-op. */ + virtual void clear_so (const solib &so) const {} /* Free private data structures associated to PSPACE. This method should not free resources associated to individual solib entries, - those are cleared by the clear_so method. */ - void (*clear_solib) (program_space *pspace); + those are cleared by the clear_so method. - /* Target dependent code to run after child process fork. */ - void (*solib_create_inferior_hook) (int from_tty); + Defaults to no-op. */ + virtual void clear_solib (program_space *pspace) const {} + + /* Target dependent code to run after child process fork. + + Defaults to no-op. */ + virtual void create_inferior_hook (int from_tty) const {}; /* Construct a list of the currently loaded shared objects. This list does not include an entry for the main executable file. @@ -142,45 +166,51 @@ struct solib_ops inferior --- we don't examine any of the shared library files themselves. The declaration of `struct solib' says which fields we provide values for. */ - owning_intrusive_list<solib> (*current_sos) (); + virtual owning_intrusive_list<solib> current_sos () const = 0; /* Find, open, and read the symbols for the main executable. If - FROM_TTY is non-zero, allow messages to be printed. */ - int (*open_symbol_file_object) (int from_ttyp); + FROM_TTY is non-zero, allow messages to be printed. + + Return true if this was done successfully. Defaults to false. */ + virtual bool open_symbol_file_object (int from_tty) const { return false; } /* Determine if PC lies in the dynamic symbol resolution code of - the run time loader. */ - bool (*in_dynsym_resolve_code) (CORE_ADDR pc); + the run time loader. + + Defaults to false. */ + virtual bool in_dynsym_resolve_code (CORE_ADDR pc) const + { return false; }; /* Find and open shared library binary file. */ - gdb_bfd_ref_ptr (*bfd_open) (const char *pathname); + virtual gdb_bfd_ref_ptr bfd_open (const char *pathname) const; + + /* Given two solib objects, GDB from the GDB thread list and INFERIOR from the + list returned by current_sos, return true if they represent the same library. - /* Given two solib objects, one from the GDB thread list - and another from the list returned by current_sos, return 1 - if they represent the same library. - Falls back to using strcmp on ORIGINAL_NAME when set to nullptr. */ - int (*same) (const solib &gdb, const solib &inferior); + Defaults to comparing the solib original names using filename_cmp. */ + virtual bool same (const solib &gdb, const solib &inferior) const; /* Return whether a region of memory must be kept in a core file for shared libraries loaded before "gcore" is used to be handled correctly when the core file is loaded. This only applies when the section would otherwise not be kept in the - core file (in particular, for readonly sections). */ - int (*keep_data_in_core) (CORE_ADDR vaddr, - unsigned long size); - - /* Enable or disable optional solib event breakpoints as - appropriate. This should be called whenever - stop_on_solib_events is changed. This pointer can be - NULL, in which case no enabling or disabling is necessary - for this target. */ - void (*update_breakpoints) (void); - - /* Target-specific processing of solib events that will be - performed before solib_add is called. This pointer can be - NULL, in which case no specific preprocessing is necessary - for this target. */ - void (*handle_event) (void); + core file (in particular, for readonly sections). + + Defaults to false. */ + virtual bool keep_data_in_core (CORE_ADDR vaddr, unsigned long size) const + { return false; }; + + /* Enable or disable optional solib event breakpoints as appropriate. This + should be called whenever stop_on_solib_events is changed. + + Defaults to no-op. */ + virtual void update_breakpoints () const {}; + + /* Target-specific processing of solib events that will be performed before + solib_add is called. + + Defaults to no-op. */ + virtual void handle_event () const {}; /* Return an address within the inferior's address space which is known to be part of SO. If there is no such address, or GDB doesn't know @@ -195,28 +225,45 @@ struct solib_ops mapped file, and thus to a build-id. GDB can then use this information to help locate the shared library objfile, if the objfile is not in the expected place (as defined by the shared libraries file - name). */ - std::optional<CORE_ADDR> (*find_solib_addr) (solib &so); + name). + + The default implementation of returns an empty option, indicating GDB is + unable to find an address within the library SO. */ + virtual std::optional<CORE_ADDR> find_solib_addr (solib &so) const + { return {}; }; + + /* Return true if the linker or libc supports linkage namespaces. - /* Return which linker namespace contains the current so. - If the linker or libc does not support linkage namespaces at all - (which is basically all of them but solib-svr4), this function should - be set to nullptr, so that "info shared" won't add an unnecessary - column. + Defaults to false. */ + virtual bool supports_namespaces () const { return false; } - If the namespace can not be determined (such as when we're stepping - though the dynamic linker), this function should throw a - gdb_exception_error. */ - int (*find_solib_ns) (const solib &so); + /* Return which linker namespace contains SO. - /* Returns the number of active namespaces in the inferior. */ - int (*num_active_namespaces) (); + The supports_namespaces method must return true for this to be + called. + + Throw an error if the namespace can not be determined (such as when we're + stepping though the dynamic linker). */ + virtual int find_solib_ns (const solib &so) const + { gdb_assert_not_reached ("namespaces not supported"); } + + /* Returns the number of active namespaces in the inferior. + + The supports_namespaces method must return true for this to be called. */ + virtual int num_active_namespaces () const + { gdb_assert_not_reached ("namespaces not supported"); } /* Returns all solibs for a given namespace. If the namespace is not - active, returns an empty vector. */ - std::vector<const solib *> (*get_solibs_in_ns) (int ns); + active, returns an empty vector. + + The supports_namespaces method must return true for this to be called. */ + virtual std::vector<const solib *> get_solibs_in_ns (int ns) const + { gdb_assert_not_reached ("namespaces not supported"); } }; +/* A unique pointer to an solib_ops. */ +using solib_ops_up = std::unique_ptr<solib_ops>; + /* Find main executable binary file. */ extern gdb::unique_xmalloc_ptr<char> exec_file_find (const char *in_pathname, int *fd); @@ -231,11 +278,6 @@ extern gdb_bfd_ref_ptr solib_bfd_fopen (const char *pathname, int fd); /* Find solib binary file and open it. */ extern gdb_bfd_ref_ptr solib_bfd_open (const char *in_pathname); -/* A default implementation of the solib_ops::find_solib_addr callback. - This just returns an empty std::optional<CORE_ADDR> indicating GDB is - unable to find an address within the library SO. */ -extern std::optional<CORE_ADDR> default_find_solib_addr (solib &so); - /* Called when we free all symtabs of PSPACE, to free the shared library information as well. */ diff --git a/gdb/source-cache.c b/gdb/source-cache.c index ebe451d..9d5151a 100644 --- a/gdb/source-cache.c +++ b/gdb/source-cache.c @@ -511,9 +511,7 @@ static void extract_lines_test () } #endif -void _initialize_source_cache (); -void -_initialize_source_cache () +INIT_GDB_FILE (source_cache) { add_cmd ("source-cache", class_maintenance, source_cache_flush_command, _("Force gdb to flush its source code cache."), diff --git a/gdb/source.c b/gdb/source.c index 13cb8d6..0fd370b 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -1910,9 +1910,7 @@ source_lines_range::source_lines_range (int startline, } -void _initialize_source (); -void -_initialize_source () +INIT_GDB_FILE (source) { init_source_path (); diff --git a/gdb/sparc-linux-nat.c b/gdb/sparc-linux-nat.c index 8dccce9..18db599 100644 --- a/gdb/sparc-linux-nat.c +++ b/gdb/sparc-linux-nat.c @@ -65,9 +65,7 @@ fill_fpregset (const struct regcache *regcache, sparc32_collect_fpregset (sparc_fpregmap, regcache, regnum, fpregs); } -void _initialize_sparc_linux_nat (); -void -_initialize_sparc_linux_nat () +INIT_GDB_FILE (sparc_linux_nat) { sparc_fpregmap = &sparc32_bsd_fpregmap; diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c index 27706b7..6e23fdd 100644 --- a/gdb/sparc-linux-tdep.c +++ b/gdb/sparc-linux-tdep.c @@ -33,6 +33,7 @@ #include "tramp-frame.h" #include "xml-syscall.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" /* The syscall's XML filename for sparc 32-bit. */ #define XML_SYSCALL_FILENAME_SPARC32 "syscalls/sparc-linux.xml" @@ -436,8 +437,7 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux has SVR4-style shared libraries... */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* ...which means that we need some special handling when doing prologue analysis. */ @@ -466,9 +466,7 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) sparc32_linux_gdb_signal_to_target); } -void _initialize_sparc_linux_tdep (); -void -_initialize_sparc_linux_tdep () +INIT_GDB_FILE (sparc_linux_tdep) { gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_LINUX, sparc32_linux_init_abi); diff --git a/gdb/sparc-nat.c b/gdb/sparc-nat.c index c2d3833..1219612 100644 --- a/gdb/sparc-nat.c +++ b/gdb/sparc-nat.c @@ -309,9 +309,7 @@ sparc_xfer_wcookie (enum target_object object, } -void _initialize_sparc_nat (); -void -_initialize_sparc_nat () +INIT_GDB_FILE (sparc_nat) { /* Default to using SunOS 4 register sets. */ if (sparc_gregmap == NULL) diff --git a/gdb/sparc-netbsd-nat.c b/gdb/sparc-netbsd-nat.c index 8eee741..54cba0b 100644 --- a/gdb/sparc-netbsd-nat.c +++ b/gdb/sparc-netbsd-nat.c @@ -56,9 +56,7 @@ sparc32nbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) static sparc_target<inf_ptrace_target> the_sparc_nbsd_nat_target; -void _initialize_sparcnbsd_nat (); -void -_initialize_sparcnbsd_nat () +INIT_GDB_FILE (sparcnbsd_nat) { sparc_gregmap = &sparc32nbsd_gregmap; sparc_fpregmap = &sparc32_bsd_fpregmap; diff --git a/gdb/sparc-netbsd-tdep.c b/gdb/sparc-netbsd-tdep.c index 84e3a97..8e8a1ba 100644 --- a/gdb/sparc-netbsd-tdep.c +++ b/gdb/sparc-netbsd-tdep.c @@ -313,13 +313,10 @@ sparc32nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_unwind_append_unwinder (gdbarch, &sparc32nbsd_sigcontext_frame_unwind); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } -void _initialize_sparcnbsd_tdep (); -void -_initialize_sparcnbsd_tdep () +INIT_GDB_FILE (sparcnbsd_tdep) { gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_NETBSD, sparc32nbsd_init_abi); diff --git a/gdb/sparc-obsd-tdep.c b/gdb/sparc-obsd-tdep.c index 3486799..ff6e915 100644 --- a/gdb/sparc-obsd-tdep.c +++ b/gdb/sparc-obsd-tdep.c @@ -254,9 +254,7 @@ sparc32obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) bsd_uthread_set_collect_uthread (gdbarch, sparc32obsd_collect_uthread); } -void _initialize_sparc32obsd_tdep (); -void -_initialize_sparc32obsd_tdep () +INIT_GDB_FILE (sparc32obsd_tdep) { gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_OPENBSD, sparc32obsd_init_abi); diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c index 5c6085a..337b929 100644 --- a/gdb/sparc-sol2-tdep.c +++ b/gdb/sparc-sol2-tdep.c @@ -207,8 +207,7 @@ sparc32_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Solaris has SVR4-style shared libraries... */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); /* ...which means that we need some special handling when doing prologue analysis. */ @@ -220,9 +219,7 @@ sparc32_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) frame_unwind_append_unwinder (gdbarch, &sparc32_sol2_sigtramp_frame_unwind); } -void _initialize_sparc_sol2_tdep (); -void -_initialize_sparc_sol2_tdep () +INIT_GDB_FILE (sparc_sol2_tdep) { gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_SOLARIS, sparc32_sol2_init_abi); diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 80914d9..4a12516 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -2264,9 +2264,7 @@ const struct sparc_fpregmap sparc32_bsd_fpregmap = 32 * 4, /* %fsr */ }; -void _initialize_sparc_tdep (); -void -_initialize_sparc_tdep () +INIT_GDB_FILE (sparc_tdep) { gdbarch_register (bfd_arch_sparc, sparc32_gdbarch_init); } diff --git a/gdb/sparc64-fbsd-nat.c b/gdb/sparc64-fbsd-nat.c index 4848c77..d697841 100644 --- a/gdb/sparc64-fbsd-nat.c +++ b/gdb/sparc64-fbsd-nat.c @@ -61,9 +61,7 @@ sparc64fbsd_kvm_supply_pcb (struct regcache *regcache, struct pcb *pcb) /* Add some extra features to the generic SPARC target. */ static sparc_target<fbsd_nat_target> the_sparc64_fbsd_nat_target; -void _initialize_sparc64fbsd_nat (); -void -_initialize_sparc64fbsd_nat () +INIT_GDB_FILE (sparc64fbsd_nat) { add_inf_child_target (&the_sparc64_fbsd_nat_target); diff --git a/gdb/sparc64-fbsd-tdep.c b/gdb/sparc64-fbsd-tdep.c index 738c3d1..ba04a71 100644 --- a/gdb/sparc64-fbsd-tdep.c +++ b/gdb/sparc64-fbsd-tdep.c @@ -238,13 +238,10 @@ sparc64fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* FreeBSD/sparc64 has SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); } -void _initialize_sparc64fbsd_tdep (); -void -_initialize_sparc64fbsd_tdep () +INIT_GDB_FILE (sparc64fbsd_tdep) { gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9, GDB_OSABI_FREEBSD, sparc64fbsd_init_abi); diff --git a/gdb/sparc64-linux-nat.c b/gdb/sparc64-linux-nat.c index 9a4b228..2884faa 100644 --- a/gdb/sparc64-linux-nat.c +++ b/gdb/sparc64-linux-nat.c @@ -87,9 +87,7 @@ fill_fpregset (const struct regcache *regcache, sparc64_collect_fpregset (&sparc64_bsd_fpregmap, regcache, regnum, fpregs); } -void _initialize_sparc64_linux_nat (); -void -_initialize_sparc64_linux_nat () +INIT_GDB_FILE (sparc64_linux_nat) { sparc_fpregmap = &sparc64_bsd_fpregmap; diff --git a/gdb/sparc64-linux-tdep.c b/gdb/sparc64-linux-tdep.c index 6e7281c..373dfb6 100644 --- a/gdb/sparc64-linux-tdep.c +++ b/gdb/sparc64-linux-tdep.c @@ -32,6 +32,7 @@ #include "tramp-frame.h" #include "xml-syscall.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" /* ADI specific si_code */ #ifndef SEGV_ACCADI @@ -383,8 +384,7 @@ sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux has SVR4-style shared libraries... */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* ...which means that we need some special handling when doing prologue analysis. */ @@ -409,9 +409,7 @@ sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_report_signal_info (gdbarch, sparc64_linux_report_signal_info); } -void _initialize_sparc64_linux_tdep (); -void -_initialize_sparc64_linux_tdep () +INIT_GDB_FILE (sparc64_linux_tdep) { gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9, GDB_OSABI_LINUX, sparc64_linux_init_abi); diff --git a/gdb/sparc64-nat.c b/gdb/sparc64-nat.c index 6bb37d8..66451a0 100644 --- a/gdb/sparc64-nat.c +++ b/gdb/sparc64-nat.c @@ -68,9 +68,7 @@ sparc64_fpregset_supplies_p (struct gdbarch *gdbarch, int regnum) return 0; } -void _initialize_sparc64_nat (); -void -_initialize_sparc64_nat () +INIT_GDB_FILE (sparc64_nat) { sparc_supply_gregset = sparc64_supply_gregset; sparc_collect_gregset = sparc64_collect_gregset; diff --git a/gdb/sparc64-netbsd-nat.c b/gdb/sparc64-netbsd-nat.c index c4bec4c..1036160 100644 --- a/gdb/sparc64-netbsd-nat.c +++ b/gdb/sparc64-netbsd-nat.c @@ -169,9 +169,7 @@ sparc64nbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) /* We've got nothing to add to the generic SPARC target. */ static sparc_target<inf_ptrace_target> the_sparc64_nbsd_nat_target; -void _initialize_sparc64nbsd_nat (); -void -_initialize_sparc64nbsd_nat () +INIT_GDB_FILE (sparc64nbsd_nat) { sparc_supply_gregset = sparc64nbsd_supply_gregset; sparc_collect_gregset = sparc64nbsd_collect_gregset; diff --git a/gdb/sparc64-netbsd-tdep.c b/gdb/sparc64-netbsd-tdep.c index 1919598..0227ec4 100644 --- a/gdb/sparc64-netbsd-tdep.c +++ b/gdb/sparc64-netbsd-tdep.c @@ -266,13 +266,10 @@ sparc64nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* NetBSD/sparc64 has SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); } -void _initialize_sparc64nbsd_tdep (); -void -_initialize_sparc64nbsd_tdep () +INIT_GDB_FILE (sparc64nbsd_tdep) { gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9, GDB_OSABI_NETBSD, sparc64nbsd_init_abi); diff --git a/gdb/sparc64-obsd-nat.c b/gdb/sparc64-obsd-nat.c index 5f9bd46..60dd188 100644 --- a/gdb/sparc64-obsd-nat.c +++ b/gdb/sparc64-obsd-nat.c @@ -108,9 +108,7 @@ sparc64obsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) /* Add some extra features to the generic SPARC target. */ static sparc_target<obsd_nat_target> the_sparc64_obsd_nat_target; -void _initialize_sparc64obsd_nat (); -void -_initialize_sparc64obsd_nat () +INIT_GDB_FILE (sparc64obsd_nat) { sparc_supply_gregset = sparc64_supply_gregset; sparc_collect_gregset = sparc64_collect_gregset; diff --git a/gdb/sparc64-obsd-tdep.c b/gdb/sparc64-obsd-tdep.c index 657f548..83cc9c0 100644 --- a/gdb/sparc64-obsd-tdep.c +++ b/gdb/sparc64-obsd-tdep.c @@ -440,8 +440,7 @@ sparc64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) obsd_init_abi (info, gdbarch); /* OpenBSD/sparc64 has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); set_gdbarch_skip_solib_resolver (gdbarch, obsd_skip_solib_resolver); /* OpenBSD provides a user-level threads implementation. */ @@ -449,9 +448,7 @@ sparc64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) bsd_uthread_set_collect_uthread (gdbarch, sparc64obsd_collect_uthread); } -void _initialize_sparc64obsd_tdep (); -void -_initialize_sparc64obsd_tdep () +INIT_GDB_FILE (sparc64obsd_tdep) { gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9, GDB_OSABI_OPENBSD, sparc64obsd_init_abi); diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c index 72a07ec..6d091f5 100644 --- a/gdb/sparc64-sol2-tdep.c +++ b/gdb/sparc64-sol2-tdep.c @@ -214,8 +214,7 @@ sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Solaris has SVR4-style shared libraries... */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops); /* ...which means that we need some special handling when doing prologue analysis. */ @@ -225,9 +224,7 @@ sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_software_single_step (gdbarch, NULL); } -void _initialize_sparc64_sol2_tdep (); -void -_initialize_sparc64_sol2_tdep () +INIT_GDB_FILE (sparc64_sol2_tdep) { gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9, GDB_OSABI_SOLARIS, sparc64_sol2_init_abi); diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c index ee7d7ed..6846421 100644 --- a/gdb/sparc64-tdep.c +++ b/gdb/sparc64-tdep.c @@ -529,9 +529,7 @@ adi_assign_command (const char *args, int from_tty) do_assign (next_address, cnt, version); } -void _initialize_sparc64_adi_tdep (); -void -_initialize_sparc64_adi_tdep () +INIT_GDB_FILE (sparc64_adi_tdep) { add_basic_prefix_cmd ("adi", class_support, _("ADI version related commands."), diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 409f303..6ee61e0 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -7200,9 +7200,7 @@ hashname (const char *name) /* Initializer for this module. */ -void _initialize_stabsread (); -void -_initialize_stabsread () +INIT_GDB_FILE (stabsread) { undef_types_allocated = 20; undef_types_length = 0; diff --git a/gdb/stack.c b/gdb/stack.c index 6542840..e633566 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -3262,9 +3262,7 @@ static struct cmd_list_element *select_frame_cmd_list = NULL; /* Commands with a prefix of `info frame'. */ static struct cmd_list_element *info_frame_cmd_list = NULL; -void _initialize_stack (); -void -_initialize_stack () +INIT_GDB_FILE (stack) { struct cmd_list_element *cmd; diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c index 8cc7599..3b692e2 100644 --- a/gdb/stap-probe.c +++ b/gdb/stap-probe.c @@ -1748,9 +1748,7 @@ info_probes_stap_command (const char *arg, int from_tty) info_probes_for_spops (arg, from_tty, &stap_static_probe_ops); } -void _initialize_stap_probe (); -void -_initialize_stap_probe () +INIT_GDB_FILE (stap_probe) { all_static_probe_ops.push_back (&stap_static_probe_ops); diff --git a/gdb/std-regs.c b/gdb/std-regs.c index 2a3f93d..9940cb0 100644 --- a/gdb/std-regs.c +++ b/gdb/std-regs.c @@ -93,9 +93,7 @@ value_of_builtin_frame_ps_reg (const frame_info_ptr &frame, const void *baton) error (_("Standard register ``$ps'' is not available for this target")); } -void _initialize_frame_reg (); -void -_initialize_frame_reg () +INIT_GDB_FILE (frame_reg) { /* Frame based $fp, $pc, $sp and $ps. These only come into play when the target does not define its own version of these diff --git a/gdb/svr4-tls-tdep.c b/gdb/svr4-tls-tdep.c index 56e1470..75d06a4 100644 --- a/gdb/svr4-tls-tdep.c +++ b/gdb/svr4-tls-tdep.c @@ -233,9 +233,7 @@ svr4_tls_register_tls_methods (struct gdbarch_info info, struct gdbarch *gdbarch gdbarch_data->get_tls_dtp_offset = get_tls_dtp_offset; } -void _initialize_svr4_tls_tdep (); -void -_initialize_svr4_tls_tdep () +INIT_GDB_FILE (svr4_tls_tdep) { add_setshow_boolean_cmd ("force-internal-tls-address-lookup", class_obscure, &force_internal_tls_address_lookup, _("\ diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c index 9c5ce85..a5ff21e 100644 --- a/gdb/symfile-debug.c +++ b/gdb/symfile-debug.c @@ -895,9 +895,7 @@ show_debug_symfile (struct ui_file *file, int from_tty, gdb_printf (file, _("Symfile debugging is %s.\n"), value); } -void _initialize_symfile_debug (); -void -_initialize_symfile_debug () +INIT_GDB_FILE (symfile_debug) { add_setshow_boolean_cmd ("symfile", no_class, &debug_symfile, _("\ Set debugging of the symfile functions."), _("\ diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c index 92672d7..274dc0f 100644 --- a/gdb/symfile-mem.c +++ b/gdb/symfile-mem.c @@ -204,9 +204,7 @@ add_vsyscall_page (inferior *inf) } } -void _initialize_symfile_mem (); -void -_initialize_symfile_mem () +INIT_GDB_FILE (symfile_mem) { add_cmd ("add-symbol-file-from-memory", class_files, add_symbol_file_from_memory_command, diff --git a/gdb/symfile.c b/gdb/symfile.c index 680c9a5..0e47f50 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -3849,9 +3849,7 @@ test_set_ext_lang_command () #endif /* GDB_SELF_TEST */ -void _initialize_symfile (); -void -_initialize_symfile () +INIT_GDB_FILE (symfile) { struct cmd_list_element *c; diff --git a/gdb/symmisc.c b/gdb/symmisc.c index 8a95958..0cb6a1b 100644 --- a/gdb/symmisc.c +++ b/gdb/symmisc.c @@ -1051,9 +1051,7 @@ maintenance_info_line_tables (const char *regexp, int from_tty) /* Do early runtime initializations. */ -void _initialize_symmisc (); -void -_initialize_symmisc () +INIT_GDB_FILE (symmisc) { add_cmd ("symbols", class_maintenance, maintenance_print_symbols, _("\ Print dump of current symbol definitions.\n\ diff --git a/gdb/symtab.c b/gdb/symtab.c index b2de990..7d1a0b0 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -7109,9 +7109,7 @@ info_module_var_func_command_completer (struct cmd_list_element *ignore, -void _initialize_symtab (); -void -_initialize_symtab () +INIT_GDB_FILE (symtab) { cmd_list_element *c; diff --git a/gdb/target-connection.c b/gdb/target-connection.c index 60d7732..02eea05 100644 --- a/gdb/target-connection.c +++ b/gdb/target-connection.c @@ -149,10 +149,7 @@ info_connections_command (const char *args, int from_tty) print_connection (current_uiout, args); } -void _initialize_target_connection (); - -void -_initialize_target_connection () +INIT_GDB_FILE (target_connection) { add_info ("connections", info_connections_command, _("\ diff --git a/gdb/target-dcache.c b/gdb/target-dcache.c index 9fcdd1e..6be1224 100644 --- a/gdb/target-dcache.c +++ b/gdb/target-dcache.c @@ -161,9 +161,7 @@ maint_flush_dcache_command (const char *command, int from_tty) gdb_printf (_("The dcache was flushed.\n")); } -void _initialize_target_dcache (); -void -_initialize_target_dcache () +INIT_GDB_FILE (target_dcache) { add_setshow_boolean_cmd ("stack-cache", class_support, &stack_cache_enabled_1, _("\ diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 8042d25..dc5fbac 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -1880,9 +1880,7 @@ maintenance_check_xml_descriptions (const char *dir, int from_tty) (long) selftests::xml_tdesc.size (), failed); } -void _initialize_target_descriptions (); -void -_initialize_target_descriptions () +INIT_GDB_FILE (target_descriptions) { cmd_list_element *cmd; diff --git a/gdb/target.c b/gdb/target.c index a854a98..f7c43f6 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -2464,6 +2464,7 @@ target_pre_inferior () if (!gdbarch_has_global_solist (current_inferior ()->arch ())) { no_shared_libraries (current_program_space); + current_program_space->unset_solib_ops (); invalidate_target_mem_regions (); @@ -4502,10 +4503,7 @@ set_write_memory_registers_permission (const char *args, int from_tty, update_observer_mode (); } -void _initialize_target (); - -void -_initialize_target () +INIT_GDB_FILE (target) { the_debug_target = new debug_target (); diff --git a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection-stackalign.c b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection-stackalign.c new file mode 100644 index 0000000..f55cee5 --- /dev/null +++ b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection-stackalign.c @@ -0,0 +1,27 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2025 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, see <http://www.gnu.org/licenses/>. */ + +#include <alloca.h> + +int +main (int argc, char **argv) +{ + volatile __attribute__ ((__aligned__ (64))) int a; + volatile char *p = (char *) alloca (argc * 12); + p[2] = 'b'; + return 1; +} diff --git a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp index eb93127..06285ce 100644 --- a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp +++ b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp @@ -19,41 +19,65 @@ # This option places an `endbr32`/`endbr64` instruction at the start of # all functions, which can interfere with prologue analysis. -standard_testfile .c -set binfile ${binfile} +standard_testfile .c -stackalign.c require {is_any_target x86_64-*-* i?86-*-*} - require supports_fcf_protection -set opts {debug additional_flags=-fcf-protection=full} +# Tests if breakpoint set on main is placed past main's entry. +proc test_run {} { + # Get start address of function main. + set main_addr [get_integer_valueof &main -1] + gdb_assert {$main_addr != -1} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $opts] != "" } { - untested "failed to compile" - return -} + set bp_addr -1 -clean_restart ${binfile} + # Put breakpoint on main, get the address where the breakpoint was installed. + gdb_test_multiple "break -q main" "break on main, get address" { + -re -wrap "Breakpoint $::decimal at ($::hex).*" { + set bp_addr $expect_out(1,string) -# Get start address of function main. -set main_addr [get_integer_valueof &main -1] -gdb_assert {$main_addr != -1} + # Convert to decimal. + set bp_addr [expr $bp_addr] -set bp_addr -1 + pass $gdb_test_name + } + } -# Put breakpoint on main, get the address where the breakpoint was installed. -gdb_test_multiple "break -q main" "break on main, get address" { - -re -wrap "Breakpoint $decimal at ($hex).*" { - set bp_addr $expect_out(1,string) + # Make sure some prologue was skipped. + gdb_assert {$bp_addr != -1 && $bp_addr > $main_addr} \ + "breakpoint placed past main's entry" +} - # Convert to decimal. - set bp_addr [expr $bp_addr] +with_test_prefix "skip-cf-protection" { + set opts {debug additional_flags=-fcf-protection=full} - pass $gdb_test_name + if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \ + $opts] != "" } { + untested "failed to compile" + return } + + clean_restart ${binfile} + + test_run } -if { $bp_addr != -1 } { - # Make sure some prologue was skipped. - gdb_assert {$bp_addr > $main_addr} +# Now, make sure that the prologue analysis does not end up at function's entry +# when stack alignment sequence is generated right after 'endbr64'/'endbr32'. +# That could happen if GDB handled those incorrectly - there was a bug that +# checked for those two in incorrect order, which caused such issue. +with_test_prefix "skip-cf-protection-stackalign" { + # gcc is easier to make it produce the sequence of interest. + if { ![is_c_compiler_gcc] } { + unsupported "stackalign test part requires gcc compiler" + return + } + + if { [prepare_for_testing "failed to prepare" "${testfile}-stackalign" \ + $srcfile2 [list optimize=-O0 additional_flags=-fcf-protection=full]] } { + return + } + + test_run } diff --git a/gdb/testsuite/gdb.base/attach-deleted-exec.exp b/gdb/testsuite/gdb.base/attach-deleted-exec.exp index 82a7bb4..45fac0d 100644 --- a/gdb/testsuite/gdb.base/attach-deleted-exec.exp +++ b/gdb/testsuite/gdb.base/attach-deleted-exec.exp @@ -67,5 +67,49 @@ if { [regexp $re_nfs $filename] } { gdb_assert { [string equal $filename /proc/${testpid}/exe] } $test } +# Restart GDB. +clean_restart + +# Setup an empty sysroot. GDB will fail to find the executable within +# the sysroot. Additionally, the presence of a sysroot should prevent +# GDB from trying to load the executable from /proc/PID/exe. +set sysroot [standard_output_file "sysroot"] +gdb_test_no_output "set sysroot $sysroot" \ + "setup sysroot" + +# Attach to the inferior. GDB should complain about failing to find +# the executable. It is the name of the executable that GDB doesn't +# find that we're interesting in here. For native targets GDB should +# be looking for BINFILE, not /proc/PID/exe. +# +# For extended-remote targets things are unfortunately harder. Native +# GDB looks for BINFILE because it understands that GDB will be +# looking in the sysroot. But remote GDB doesn't know if GDB is using +# a sysroot or not. As such, gdbserver will return /proc/PID/exe if +# it knows that the file has been deleted locally. This isn't great +# if GDB then plans to look in a sysroot, but equally, if the remote +# file has been deleted, then the name GDB will return, will have had +# " (deleted" appended, so we're unlikely to get a hit in the sysroot +# either way. +if { [target_info gdb_protocol] == "extended-remote" } { + set filename_re "/proc/$testpid/exe" +} else { + set filename_re "\[^\r\n\]+/${testfile} \\(deleted\\)" +} + +verbose -log "APB: warning: No executable has been specified, and target executable $filename_re could not be found\\. Try using the \"file\" command\\." + +gdb_test "attach $testpid" \ + [multi_line \ + "Attaching to process $decimal" \ + "warning: No executable has been specified, and target executable $filename_re could not be found\\. Try using the \"file\" command\\." \ + ".*"] \ + "attach to inferior" + +# Check GDB hasn't managed to load an executable. +gdb_test "info inferior" \ + "\\*\[^)\]+\\)\\s*" \ + "confirm no executable is loaded." + # Cleanup. kill_wait_spawned_process $test_spawn_id diff --git a/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp b/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp index 94b4a6e..4d3e8eb 100644 --- a/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp +++ b/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp @@ -169,6 +169,12 @@ proc_with_prefix test_conv_vars {} { proc test_info_linker_namespaces {} { clean_restart $::binfile + # Check that "info linker-namespaces" while the inferior is not running + # doesn't crash. + gdb_test "info linker-namespaces" \ + "Current inferior does not support linker namespaces\\. Use \"info sharedlibrary\" instead\\." \ + "info linker-namespaces before running" + if { ![runto_main] } { return } diff --git a/gdb/testsuite/gdb.base/filename-completion.exp b/gdb/testsuite/gdb.base/filename-completion.exp index 742a182..c10941c 100644 --- a/gdb/testsuite/gdb.base/filename-completion.exp +++ b/gdb/testsuite/gdb.base/filename-completion.exp @@ -414,7 +414,7 @@ proc run_quoting_and_escaping_tests { root } { # focuses on completion of the final filename. There is also some # testing of the shell command above, this tests completion within # the line. - foreach_with_prefix shell_cmd { "shell " "!" } { + foreach_with_prefix shell_cmd { "shell " "!" "pipe print 1 | " } { foreach suffix { "aaa/aa bb" "bb2/dir 1/unique file" } { set dir $root/$suffix diff --git a/gdb/testsuite/gdb.base/infcall-failure.exp b/gdb/testsuite/gdb.base/infcall-failure.exp index 66bccd1..e7aeac1 100644 --- a/gdb/testsuite/gdb.base/infcall-failure.exp +++ b/gdb/testsuite/gdb.base/infcall-failure.exp @@ -131,7 +131,13 @@ proc_with_prefix run_cond_hits_segfault_test { async_p non_stop_p } { [multi_line \ "Continuing\\." \ "" \ - "Program received signal SIGSEGV, Segmentation fault\\." \ + [string cat \ + [string_to_regexp \ + "Program received signal SIGSEGV, Segmentation fault."] \ + "("] \ + [string cat \ + [string_to_regexp "Address not mapped to object."] \ + ")?"] \ "${::hex} in func_segfault \\(\\) at \[^\r\n\]+:${::segv_line}" \ "${::decimal}\\s+\[^\r\n\]+Segfault here\[^\r\n\]+" \ "Error in testing condition for breakpoint ${bp_1_num}:" \ @@ -161,7 +167,13 @@ proc_with_prefix run_call_hits_segfault_test { async_p non_stop_p } { gdb_test "call func_segfault ()" \ [multi_line \ "" \ - "Program received signal SIGSEGV, Segmentation fault\\." \ + [string cat \ + [string_to_regexp \ + "Program received signal SIGSEGV, Segmentation fault."] \ + "("] \ + [string cat \ + [string_to_regexp "Address not mapped to object."] \ + ")?"] \ "${::hex} in func_segfault \\(\\) at \[^\r\n\]+:${::segv_line}" \ "${::decimal}\\s+\[^\r\n\]+Segfault here\[^\r\n\]+" \ "The program being debugged was signaled while in a function called from GDB\\." \ diff --git a/gdb/testsuite/gdb.base/info-shared.exp b/gdb/testsuite/gdb.base/info-shared.exp index 6f1b2d6..e81b28e 100644 --- a/gdb/testsuite/gdb.base/info-shared.exp +++ b/gdb/testsuite/gdb.base/info-shared.exp @@ -79,6 +79,9 @@ proc check_info_shared { test expect1 expect2 } { } } +# Check that "info shared" before running doesn't crash. +check_info_shared "info sharedlibrary before running" 0 0 + # Start the inferior, and check neither of the libraries are loaded at # the start. if ![runto_main] { diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp index c10be3b..503671b 100644 --- a/gdb/testsuite/gdb.base/style.exp +++ b/gdb/testsuite/gdb.base/style.exp @@ -751,6 +751,280 @@ proc test_enable_styling_warning { } { } } +# Run an 'apropos' command. Each line of output starts with a +# non-default style (command style). Ensure that pagination triggers +# during the 'apropos' output such that, at the point pagination kicks +# in, a non-default style is in effect. +# +# Then, at the pagination prompt, quit the command. +# +# Next, run a command which switches to a different style, and then +# back to the current style. +# +# At one point, a bug in the pagination code would leave the +# non-default style from the 'apropos' command recorded as the current +# style, such that the second command would switch back to the earlier +# style. +proc test_pagination_cmd_after_quit_styling {} { + with_ansi_styling_terminal { + clean_restart + } + + # We're going to use 'apropos time'. Check that with a height of + # 12 lines, each line starts with a non-default style, and that we + # do see the pagination prompt. This means that there are more + # than 12 lines for this command. + with_test_prefix "validate apropos output" { + gdb_test_no_output "set height 12" + + set saw_pagination_prompt false + gdb_test_multiple "apropos time" "" { + -re "^apropos time\r\n" { + exp_continue + } + -re "^\033\\\[39;49;1;27m\[^\r\n\]+\r\n" { + exp_continue + } + -re "^$::pagination_prompt$" { + set saw_pagination_prompt true + send_gdb "q\n" + exp_continue + } + -re "^q\r\n" { + exp_continue + } + -re "^Quit\r\n" { + exp_continue + } + -re "^$::gdb_prompt $" { + gdb_assert { $saw_pagination_prompt } $gdb_test_name + } + -re "^\[^\r\n\]+\r\n" { + exp_continue + } + } + } + + # Now reduce the height to 10 and re-run 'apropos time'. Based on + # the previous check, we know that this is going to present the + # pagination prompt when a non-default style is in use. + gdb_test_no_output "set height 10" + + set saw_pagination_prompt false + gdb_test_multiple "apropos time" "" { + -re "$::pagination_prompt" { + set saw_pagination_prompt true + send_gdb "q\n" + exp_continue + } + -re "\r\n$::gdb_prompt $" { + gdb_assert { $saw_pagination_prompt } $gdb_test_name + } + } + + # The help output for this maintenance command switches to a + # different style, and then back to the default. If the + # pagination bug still exists, then this would switch back to the + # non-default style that was in use when pagination kicked in + # above. + gdb_test "maintenance time" \ + "^\"\033\\\[39;49;1;27mmaintenance time\033\\\[m\" takes a numeric argument\\." +} + +# Helper for test_pagination_prompt_styling. Return false if STR, a +# line that appears immediately before a pagination prompt, matches +# the pattern for needing a style reset at the end, but does not have +# the style reset. +# +# In all other cases, return true. So lines that don't match the +# known pattern for neededing a style reset will always return true, +# as will lines that match the pattern, and do have the style reset. +proc previous_line_is_ok { str } { + + # Create a copy of STR with all the '\033' characters removed. + # Then compare string lengths to get a count of the '\033' + # charactes present in STR. + regsub -all "\033" $str {} stripped + set count [expr [string length $str] - [string length $stripped]] + + # If STR switched styles, then it _must_ switch back again, + # otherwise the pagination prompt will be in the wrong style. + # This means that there _must_ be an even number of '\033' + # characters in STR. If there is not then we switched style, but + # failed to switch back. + if { [expr $count % 2] != 0 } { + return false + } + + # For lines that don't match this pattern, we cannot comment on + # where the style reset should occur, so lets just claim the line + # is fine. + if { ![regexp "\\s+$::hex - $::hex is \[^\r\n\]+ in " $str] } { + return true + } + + # This line did match the above pattern, so we know that a style + # reset _must_ occur at the end of the line. If it doesn't then + # this line is not OK. + if { ![regexp "\033\\\[m$" $str] } { + return false + } + + # All tests passed, this line looks OK. + return true +} + +# Test that the pagination prompt is displayed unstyled. This is done +# by looking at the 'info files' output and selecting a width that +# will mean we should get a pagination prompt part way through a +# styled filename. +# +# Then, re-run 'info files' and check that for every pagination +# prompt, the previous line disables styling as expected. +proc test_pagination_prompt_styling {} { + with_ansi_styling_terminal { + clean_restart $::binfile + } + + if {![runto_main]} { + return + } + + # Set height so we actually get a pagination prompt. + gdb_test_no_output "set height 3" + + # Scan the 'info files' output and set DESIRED_WIDTH such that it + # will trigger pagination part-way through a styled filename. + set desired_width 0 + gdb_test_multiple "info files" "find good test width" { + -re "^info files\r\n" { + exp_continue + } + + -re "^$::pagination_prompt$" { + send_gdb "\n" + exp_continue + } + + -re "^$::gdb_prompt $" { + } + + -re "^((\\s+$::hex - $::hex is \[^\r\n\]+ in )\[^\r\n\]+)\r\n" { + if { $desired_width == 0 } { + set full_line $expect_out(1,string) + set inner_line $expect_out(2,string) + set desired_width [expr [string length $inner_line] + ([string length $full_line] - [string length $inner_line]) / 2] + } + exp_continue + } + + -re "^\[^\r\n\]*\r\n" { + exp_continue + } + } + + # Now setup the screen width. + gdb_test_no_output "set width $desired_width" + + # Re-run 'info files'. Check that the content before any + # pagination prompt correctly disables styling. + set saw_bad_line false + set prev_line "" + gdb_test_multiple "info files" "check pagination prompt styling" { + -re "^info files\r\n" { + exp_continue + } + + -re "^$::pagination_prompt$" { + if { ![previous_line_is_ok $prev_line] } { + set saw_bad_line true + } + send_gdb "\n" + exp_continue + } + + -re "^(\[^\r\n\]+)$::pagination_prompt$" { + set prev_line $expect_out(1,string) + if { ![previous_line_is_ok $prev_line] } { + set saw_bad_line true + } + send_gdb "\n" + exp_continue + } + + -re "^$::gdb_prompt $" { + gdb_assert { !$saw_bad_line } $gdb_test_name + } + + -re "^(\[^\r\n\]*)\r\n" { + set prev_line $expect_out(1,string) + exp_continue + } + } +} + +# Test that GDB can correctly restore the current style after a +# pagination prompt. +# +# Set the logging file to a garbage string based on LENGTH (is +# actually 2x LENGTH), then 'show logging file'. Press return at the +# pagination prompt, and check that the reset of the filename is +# styled correctly, and that GDB correctly switches back to the +# default style once the logging file has finished. +proc test_pagination_continue_styling_1 { length } { + with_ansi_styling_terminal { + clean_restart $::binfile + } + + set filename [string repeat "ax" $length] + + gdb_test_no_output "set logging file $filename" + + gdb_test_no_output "set height 3" + gdb_test_no_output "set width 80" + + set saw_bad_styling false + gdb_test_multiple "show logging file" "" { + -re "^show logging file\r\n" { + exp_continue + } + + -re "^The current logfile is \"\033\\\[32;49;22;27m(?:ax)+\033\\\[m" { + exp_continue + } + + -re "^\r\n\033\\\[32;49;22;27m(?:ax)+\033\\\[m(?=--)" { + exp_continue + } + + -re "^\r\n\033\\\[32;49;22;27m(?:ax)+(?=--)" { + set saw_bad_styling true + exp_continue + } + + -re "^\r\n\033\\\[32;49;22;27m(?:ax)+\033\\\[m\"\\.\r\n" { + exp_continue + } + + -re "^$::gdb_prompt $" { + gdb_assert { !$saw_bad_styling } $gdb_test_name + } + + -re "^$::pagination_prompt$$" { + send_gdb "\n" + exp_continue + } + } +} + +# Wrapper around test_pagination_continue_styling_1, calls that +# function with different lengths. +proc test_pagination_continue_styling { } { + foreach_with_prefix length { 80 160 } { + test_pagination_continue_styling_1 $length + } +} + # Check to see if the Python styling of disassembler output is # expected or not, this styling requires Python support in GDB, and # the Python pygments module to be available. @@ -793,3 +1067,6 @@ test_colorsupport_truecolor test_colorsupport_truecolor_only test_enable_styling_warning +test_pagination_cmd_after_quit_styling +test_pagination_prompt_styling +test_pagination_continue_styling diff --git a/gdb/testsuite/gdb.base/user-namespace-attach.c b/gdb/testsuite/gdb.base/user-namespace-attach.c new file mode 100644 index 0000000..684ce1c --- /dev/null +++ b/gdb/testsuite/gdb.base/user-namespace-attach.c @@ -0,0 +1,35 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2025 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, see <http://www.gnu.org/licenses/>. */ + +#include <sys/types.h> +#include <unistd.h> +#include <stdio.h> + +volatile int spin_p = 1; + +int +main () +{ + alarm (60); + + printf ("pid = %lld\n", ((long long) getpid ())); + + while (spin_p) + sleep (1); + + return 0; +} diff --git a/gdb/testsuite/gdb.base/user-namespace-attach.exp b/gdb/testsuite/gdb.base/user-namespace-attach.exp new file mode 100644 index 0000000..741093c --- /dev/null +++ b/gdb/testsuite/gdb.base/user-namespace-attach.exp @@ -0,0 +1,148 @@ +# Copyright 2025 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, see <http://www.gnu.org/licenses/>. + +# Check that GDB can attach to a process started using 'unshare'. The +# inferior is started in a separate mnt namespace. + +require can_spawn_for_attach + +standard_testfile + +if {[prepare_for_testing "failed to prepare" $testfile $srcfile] == -1} { + return +} + +# This test relies (at least in some parts) on the sysroot being +# 'target:'. Grab the current sysroot now so we can skip those tests +# if the board file has changed the sysroot. +set sysroot "" +set test "show sysroot" +gdb_test_multiple $test $test { + -re -wrap "The current system root is \"(.*)\"\\." { + set sysroot $expect_out(1,string) + } +} + +# Start a process using 'unshare FLAGS', then attach to the process +# from GDB. Check that the attach worked as expected. +proc run_test { flags } { + + # If FLAGS contains '--mount' then a separate mnt namespace will + # be created, in which case the executable will have been read + # from the 'target:'. Otherwise, the executable will have been + # read from the local filesystem, and there will be no prefix. + # + # Of course, this only applies if the sysroot is 'target:', some + # boards change this, so skip these tests on those boards. + if { [lsearch -exact [split $flags " "] "--mount"] != -1 } { + if { $::sysroot ne "target:" } { + return + } + + set prefix "target:" + } else { + set prefix "" + } + + set unshare_cmd "unshare $flags" + + # Run '/bin/true' using UNSHARE_CMD. If the flags in UNSHARE_CMD + # aren't supported then this will fail, this means we shouldn't + # spawn the command with our test executable and try attaching. + # + # This will also fail if /bin/true isn't present, or doesn't work + # as we expect. But this should be fine for many targets. + set res [remote_exec target "$unshare_cmd /bin/true"] + if { [lindex $res 0] != 0 } { + unsupported "unshare flags not supported" + return + } + + set inferior_spawn_id \ + [spawn_wait_for_attach [list "$unshare_cmd $::binfile"]] + if { $inferior_spawn_id == -1 } { + unsupported "failed to spawn for attach" + return + } + + set inferior_pid [spawn_id_get_pid $inferior_spawn_id] + + clean_restart + + set saw_bad_warning false + gdb_test_multiple "attach $inferior_pid" "attach to inferior" { + -re "^attach $::decimal\r\n" { + exp_continue + } + + -re "^warning: \[^\r\n\]+: could not open as an executable file: \[^\r\n\]+\r\n" { + set saw_bad_warning true + exp_continue + } + + -re "^warning: \[^\r\n\]+: can't open to read symbols: \[^\r\n\]+\r\n" { + set saw_bad_warning true + exp_continue + } + + -re "^warning: Could not load vsyscall page because no executable was specified\r\n" { + # This warning is a secondary consequence of the above bad + # warnings, so don't count this as a bad warnings, ignore + # it instead. + exp_continue + } + + -re "^warning:\\s+$::decimal\\s*\[^\r\n\]+: No such file or directory\r\n" { + # This unrelated warning is seen when GDB stops in libc, + # and the source code for libc is not available. + exp_continue + } + + -re "^warning: \[^\r\n\]+\r\n" { + # If we ignore "other" warnings then, should the above + # warnings strings change we'll start ignoring the bad + # warnings, and the test will appear to pass. + # + # If you are seeing a warning here that really has nothing + # to do with the test failing, then the correct solution + # is to add a new regexp to specifically match _that_ + # warning, and ignore it. + set saw_bad_warning true + exp_continue + } + + -re "^$::gdb_prompt $" { + gdb_assert { !$saw_bad_warning } $gdb_test_name + } + + -re "^\[^\r\n\]*\r\n" { + exp_continue + } + } + + # Ensure GDB could access the executable. + set binfile_re [string_to_regexp $::binfile] + gdb_test "info inferiors" \ + "\r\n\\*\\s+$::decimal\\s+\[^\r\n\]+\\s+${prefix}${binfile_re}\\s*" +} + +set test_flags [list \ + "--mount --map-root-user" \ + "--user" \ + "--user --map-root-user"] + +foreach_with_prefix flags $test_flags { + run_test $flags +} diff --git a/gdb/testsuite/gdb.dap/log-message.exp b/gdb/testsuite/gdb.dap/log-message.exp index 421df14..cce367d 100644 --- a/gdb/testsuite/gdb.dap/log-message.exp +++ b/gdb/testsuite/gdb.dap/log-message.exp @@ -40,6 +40,15 @@ set obj [dap_check_request_and_response "set breakpoint" \ [list s $srcfile] $line]] set fn_bpno [dap_get_breakpoint_number $obj] +set eol {\n} +dap_wait_for_event_and_check "set breakpoint output, part 1" output \ + {body category} stdout \ + {body output} "No source file named log-message.c.$eol" + +dap_wait_for_event_and_check "set breakpoint output, part 2" output \ + {body category} stdout \ + {body output} "Breakpoint 1 (-source log-message.c -line $line) pending.$eol" + dap_check_request_and_response "configurationDone" configurationDone dap_check_response "launch response" launch $launch_id diff --git a/gdb/testsuite/gdb.dap/threads.c b/gdb/testsuite/gdb.dap/threads.c new file mode 100644 index 0000000..168f044 --- /dev/null +++ b/gdb/testsuite/gdb.dap/threads.c @@ -0,0 +1,67 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2019-2025 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, see <http://www.gnu.org/licenses/>. */ + +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <pthread.h> + +#define NUM 2 + +static pthread_barrier_t threads_started_barrier; + +static void * +thread_function (void *arg) +{ + pthread_barrier_wait (&threads_started_barrier); + + while (1) + sleep (1); + + pthread_exit (NULL); +} + +static void +all_started (void) +{ +} + +int +main () +{ + pthread_t threads[NUM]; + long i; + + pthread_barrier_init (&threads_started_barrier, NULL, NUM + 1); + + for (i = 1; i <= NUM; i++) + { + int res; + + res = pthread_create (&threads[i - 1], NULL, thread_function, NULL); + } + + pthread_barrier_wait (&threads_started_barrier); + + all_started (); + + printf ("sleeping\n"); + fflush (stdout); + sleep (180); + + exit (EXIT_SUCCESS); +} diff --git a/gdb/testsuite/gdb.dap/threads.exp b/gdb/testsuite/gdb.dap/threads.exp new file mode 100644 index 0000000..c91d107 --- /dev/null +++ b/gdb/testsuite/gdb.dap/threads.exp @@ -0,0 +1,81 @@ +# Copyright 2025 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, see <http://www.gnu.org/licenses/>. + +# Test DAP "threads" request. + +require allow_shlib_tests allow_dap_tests + +load_lib dap-support.exp + +standard_testfile + +set libname $testfile-solib +set srcfile_lib $srcdir/$subdir/$libname.c +set binfile_lib [standard_output_file $libname.so] + +if {[build_executable "failed to prepare" $testfile $srcfile \ + {debug pthreads}] == -1} { + return +} + +if {[dap_initialize] == ""} { + return +} + +set launch_id [dap_launch $testfile] + +set obj [dap_check_request_and_response "set breakpoint on all_started function" \ + setFunctionBreakpoints \ + {o breakpoints [a [o name [s all_started]]]}] +set fn_bpno [dap_get_breakpoint_number $obj] + +dap_check_request_and_response "configurationDone" configurationDone + +dap_check_response "launch response" launch $launch_id + +lassign [dap_wait_for_event_and_check "stopped at function breakpoint" \ + stopped \ + "body reason" breakpoint \ + "body hitBreakpointIds" $fn_bpno] \ + ignore \ + all_events + +# Verify that we saw the correct number of thread events. +set count 0 +foreach event $all_events { + if {[dict get $event type] == "event" + && [dict get $event event] == "thread" + && [dict get $event body reason] == "started"} { + incr count + } +} +gdb_assert {$count == 3} "correct number of thread events" + +dap_check_request_and_response "continue" continue \ + {o threadId [i 1]} + +# Make sure that the inferior has really re-started -- note that there +# is no "continue" event, because the "continue" request suppresses +# those. +dap_wait_for_event_and_check "output from inferior" output \ + {body output} "sleeping\\n" + +lassign [dap_check_request_and_response "threads request" threads] \ + response ignore + +gdb_assert {[llength [dict get $response body threads]] == 3} \ + "correct number of threads" + +dap_shutdown true diff --git a/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S b/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S index c09c6db..06a93ac 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S @@ -114,7 +114,11 @@ die221: .byte 0x0 - .section .debug_str +#ifdef __arm__ + .section .debug_str,"MS",%progbits,1 +#else + .section .debug_str,"MS",@progbits,1 +#endif .LASF1: .string "2.mod" .LASF0: diff --git a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S index cd999f4..551dda7 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S @@ -160,7 +160,11 @@ d: .byte 0 .byte 0 .byte 0 - .section .debug_str +#ifdef __arm__ + .section .debug_str,"MS",%progbits,1 +#else + .section .debug_str,"MS",@progbits,1 +#endif .LASF2: .string "GNU C 4.7.0 20110727 (experimental)" .LASF0: diff --git a/gdb/testsuite/gdb.dwarf2/dw2-strp.S b/gdb/testsuite/gdb.dwarf2/dw2-strp.S index c7ede95..db3e64f 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-strp.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-strp.S @@ -163,7 +163,11 @@ .byte 0x0 /* Terminator */ /* String table */ - .section .debug_str +#ifdef __arm__ + .section .debug_str,"MS",%progbits,1 +#else + .section .debug_str,"MS",@progbits,1 +#endif .Lproducer: .string "GNU C 3.3.3" .Lchar_str: diff --git a/gdb/testsuite/gdb.dwarf2/pr11465.S b/gdb/testsuite/gdb.dwarf2/pr11465.S index fed98bc..f3f2c57 100644 --- a/gdb/testsuite/gdb.dwarf2/pr11465.S +++ b/gdb/testsuite/gdb.dwarf2/pr11465.S @@ -344,7 +344,11 @@ die149: .uleb128 0x16 /* DW_TAG_variable */ .byte 0x0 .byte 0x0 .byte 0x0 - .section .debug_str +#ifdef __arm__ + .section .debug_str,"MS",%progbits,1 +#else + .section .debug_str,"MS",@progbits,1 +#endif .LASF0: .string "_ZN1N1fE" .LASF7: diff --git a/gdb/testsuite/gdb.python/py-warning.exp b/gdb/testsuite/gdb.python/py-warning.exp index b0256fa..6b26a4e 100644 --- a/gdb/testsuite/gdb.python/py-warning.exp +++ b/gdb/testsuite/gdb.python/py-warning.exp @@ -40,7 +40,24 @@ gdb_test "python gdb.warning(\"\")" \ "Error occurred in Python: Empty text string passed to gdb\\.warning"] # Missing argument gives an error. -gdb_test "python gdb.warning()" \ +set re1 \ [multi_line \ - "Python Exception <class 'TypeError'>: function missing required argument 'text' \\(pos 1\\)" \ - "Error occurred in Python: function missing required argument 'text' \\(pos 1\\)"] + [string_to_regexp \ + [concat \ + "Python Exception <class 'TypeError'>:" \ + "function missing required argument 'text' (pos 1)"]] \ + [string_to_regexp \ + [concat \ + "Error occurred in Python:" \ + "function missing required argument 'text' (pos 1)"]]] +set re2 \ + [multi_line \ + [string_to_regexp \ + [concat \ + "Python Exception <class 'TypeError'>:" \ + "Required argument 'text' (pos 1) not found"]] \ + [string_to_regexp \ + [concat \ + "Error occurred in Python:" \ + "Required argument 'text' (pos 1) not found"]]] +gdb_test "python gdb.warning()" $re1|$re2 diff --git a/gdb/testsuite/gdb.tui/esc-match.exp b/gdb/testsuite/gdb.tui/esc-match.exp new file mode 100644 index 0000000..db78ebe --- /dev/null +++ b/gdb/testsuite/gdb.tui/esc-match.exp @@ -0,0 +1,48 @@ +# Copyright 2025 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, see <http://www.gnu.org/licenses/>. + +# Test that the ANSI escape sequence matcher works +# character-by-character. + +load_lib gdb-python.exp +require allow_python_tests allow_tui_tests + +tuiterm_env + +Term::clean_restart 24 80 + +set remote_python_file [gdb_remote_download host \ + ${srcdir}/${subdir}/esc-match.py] +gdb_test_no_output "source ${remote_python_file}" \ + "source esc-match.py" + +if {![Term::enter_tui]} { + unsupported "TUI not supported" + return +} + +Term::command "python print_it()" + +Term::dump_screen + +set text [Term::get_all_lines] +# We should not see the control sequence here. +gdb_assert {![regexp -- "\\\[35;1mOUTPUT\\\[m" $text]} \ + "output visible without control sequences" + +# Also check the styling. +set text [Term::get_region 0 1 78 23 "\n" true] +gdb_assert {[regexp -- "<fg:magenta>.*OUTPUT" $text]} \ + "output is magenta" diff --git a/gdb/testsuite/gdb.tui/esc-match.py b/gdb/testsuite/gdb.tui/esc-match.py new file mode 100644 index 0000000..7816002 --- /dev/null +++ b/gdb/testsuite/gdb.tui/esc-match.py @@ -0,0 +1,26 @@ +# Copyright (C) 2025 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, see <http://www.gnu.org/licenses/>. + +import sys + +# Some text to print that includes styling. +OUT = "\033[35;1mOUTPUT\033[m" + + +def print_it(): + # Print to stderr avoids any buffering, showing the bug. + for c in OUT: + print(c, end="", file=sys.stderr) + print(file=sys.stderr) diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp index 4d224cd..3a182c2 100644 --- a/gdb/testsuite/lib/dwarf.exp +++ b/gdb/testsuite/lib/dwarf.exp @@ -1072,7 +1072,10 @@ namespace eval Dwarf { } proc _section {name {flags ""} {type ""}} { - if {$flags == "" && $type == ""} { + if {$name == ".debug_str"} { + # Hard-code this because it's always desirable. + _emit " .section $name, \"MS\", %progbits, 1" + } elseif {$flags == "" && $type == ""} { _emit " .section $name" } elseif {$type == ""} { _emit " .section $name, \"$flags\"" diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 3f1cd55..777d64d 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -272,6 +272,10 @@ if ![info exists INTERNAL_GDBFLAGS] { # Handle the case that "interactive-mode auto" reports off. append INTERNAL_GDBFLAGS { -iex "set interactive-mode on"} + + if { [ishost "*-*-mingw*"] } { + append INTERNAL_GDBFLAGS { -iex "maint set console-translation-mode binary"} + } } # The variable gdb_prompt is a regexp which matches the gdb prompt. diff --git a/gdb/testsuite/make-check-all.sh b/gdb/testsuite/make-check-all.sh index c2fbadb..ab72574 100755 --- a/gdb/testsuite/make-check-all.sh +++ b/gdb/testsuite/make-check-all.sh @@ -192,7 +192,7 @@ do_tests () # Run make check. make $maketarget \ - RUNTESTFLAGS="${rtf[*]} ${tests[*]}" \ + RUNTESTFLAGS="${rtf[*]}" TESTS="${tests[*]}" \ 2>&1 \ | summary @@ -216,7 +216,7 @@ do_tests () cp gdb.sum gdb.log "$dir" # Record the 'make check' command to enable easy re-running. - echo "make $maketarget RUNTESTFLAGS=\"${rtf[*]} ${tests[*]}\"" \ + echo "make $maketarget RUNTESTFLAGS=\"${rtf[*]}\" TESTS=\"${tests[*]}\"" \ > "$dir/make-check.sh" fi } diff --git a/gdb/thread.c b/gdb/thread.c index 0228027..920d8dc 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -2311,9 +2311,7 @@ static const struct internalvar_funcs inferior_thread_count_funcs = NULL, }; -void _initialize_thread (); -void -_initialize_thread () +INIT_GDB_FILE (thread) { static struct cmd_list_element *thread_apply_list = NULL; cmd_list_element *c; diff --git a/gdb/tic6x-linux-tdep.c b/gdb/tic6x-linux-tdep.c index 280d46d..5b3d402 100644 --- a/gdb/tic6x-linux-tdep.c +++ b/gdb/tic6x-linux-tdep.c @@ -169,7 +169,7 @@ tic6x_uclinux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) linux_init_abi (info, gdbarch, 0); /* Shared library handling. */ - set_gdbarch_so_ops (gdbarch, &dsbt_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_dsbt_solib_ops); tdep->syscall_next_pc = tic6x_linux_syscall_next_pc; @@ -203,9 +203,7 @@ tic6x_uclinux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) &tic6x_linux_rt_sigreturn_tramp_frame); } -void _initialize_tic6x_linux_tdep (); -void -_initialize_tic6x_linux_tdep () +INIT_GDB_FILE (tic6x_linux_tdep) { gdbarch_register_osabi (bfd_arch_tic6x, 0, GDB_OSABI_LINUX, tic6x_uclinux_init_abi); diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c index 062a974..2ab8dac 100644 --- a/gdb/tic6x-tdep.c +++ b/gdb/tic6x-tdep.c @@ -1293,9 +1293,7 @@ tic6x_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_tic6x_tdep (); -void -_initialize_tic6x_tdep () +INIT_GDB_FILE (tic6x_tdep) { gdbarch_register (bfd_arch_tic6x, tic6x_gdbarch_init); } diff --git a/gdb/tilegx-linux-nat.c b/gdb/tilegx-linux-nat.c index bd077b2..99f2cc4 100644 --- a/gdb/tilegx-linux-nat.c +++ b/gdb/tilegx-linux-nat.c @@ -163,9 +163,7 @@ tilegx_linux_nat_target::store_registers (struct regcache *regcache, perror_with_name (_("Couldn't write registers")); } -void _initialize_tile_linux_nat (); -void -_initialize_tile_linux_nat () +INIT_GDB_FILE (tile_linux_nat) { linux_target = &the_tilegx_linux_nat_target; add_inf_child_target (&the_tilegx_linux_nat_target); diff --git a/gdb/tilegx-linux-tdep.c b/gdb/tilegx-linux-tdep.c index a0e6954..f54e280 100644 --- a/gdb/tilegx-linux-tdep.c +++ b/gdb/tilegx-linux-tdep.c @@ -19,6 +19,7 @@ #include "osabi.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "glibc-tdep.h" #include "solib-svr4.h" #include "symtab.h" @@ -119,11 +120,9 @@ tilegx_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux uses SVR4-style shared libraries. */ if (arch_size == 32) - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); else - set_solib_svr4_fetch_link_map_offsets (gdbarch, - linux_lp64_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_lp64_svr4_solib_ops); /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, @@ -134,9 +133,7 @@ tilegx_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); } -void _initialize_tilegx_linux_tdep (); -void -_initialize_tilegx_linux_tdep () +INIT_GDB_FILE (tilegx_linux_tdep) { gdbarch_register_osabi (bfd_arch_tilegx, bfd_mach_tilegx, GDB_OSABI_LINUX, tilegx_linux_init_abi); diff --git a/gdb/tilegx-tdep.c b/gdb/tilegx-tdep.c index 4922fff..a153f65 100644 --- a/gdb/tilegx-tdep.c +++ b/gdb/tilegx-tdep.c @@ -1021,9 +1021,7 @@ tilegx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_tilegx_tdep (); -void -_initialize_tilegx_tdep () +INIT_GDB_FILE (tilegx_tdep) { gdbarch_register (bfd_arch_tilegx, tilegx_gdbarch_init); } @@ -2347,9 +2347,7 @@ gdb_init () init_colorsupport_var (); } -void _initialize_top (); -void -_initialize_top () +INIT_GDB_FILE (top) { /* Determine a default value for the history filename. */ const char *tmpenv = getenv ("GDBHISTFILE"); diff --git a/gdb/tracectf.c b/gdb/tracectf.c index 1650e67..0f80d08 100644 --- a/gdb/tracectf.c +++ b/gdb/tracectf.c @@ -1174,7 +1174,7 @@ ctf_target_open (const char *args, int from_tty) merge_uploaded_trace_state_variables (&uploaded_tsvs); merge_uploaded_tracepoints (&uploaded_tps); - post_create_inferior (from_tty); + post_create_inferior (from_tty, true); } /* This is the implementation of target_ops method to_close. Destroy @@ -1717,9 +1717,7 @@ ctf_target::traceframe_info () /* module initialization */ -void _initialize_ctf (); -void -_initialize_ctf () +INIT_GDB_FILE (ctf) { #if HAVE_LIBBABELTRACE add_target (ctf_target_info, ctf_target_open, diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c index 5f8b338..a45001c 100644 --- a/gdb/tracefile-tfile.c +++ b/gdb/tracefile-tfile.c @@ -567,7 +567,7 @@ tfile_target_open (const char *arg, int from_tty) merge_uploaded_tracepoints (&uploaded_tps); - post_create_inferior (from_tty); + post_create_inferior (from_tty, true); } /* Interpret the given line from the definitions part of the trace @@ -1116,9 +1116,7 @@ tfile_append_tdesc_line (const char *line) trace_tdesc += "\n"; } -void _initialize_tracefile_tfile (); -void -_initialize_tracefile_tfile () +INIT_GDB_FILE (tracefile_tfile) { add_target (tfile_target_info, tfile_target_open, filename_maybe_quoted_completer); diff --git a/gdb/tracefile.c b/gdb/tracefile.c index dac2eb7..19b4d1e 100644 --- a/gdb/tracefile.c +++ b/gdb/tracefile.c @@ -473,9 +473,7 @@ tracefile_target::get_trace_status (struct trace_status *ts) return -1; } -void _initialize_tracefile (); -void -_initialize_tracefile () +INIT_GDB_FILE (tracefile) { add_com ("tsave", class_trace, tsave_command, _("\ Save the trace data to a file.\n\ diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index b431468..c0f1eae 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -3919,9 +3919,7 @@ static const struct internalvar_funcs sdata_funcs = cmd_list_element *while_stepping_cmd_element = nullptr; /* module initialization */ -void _initialize_tracepoint (); -void -_initialize_tracepoint () +INIT_GDB_FILE (tracepoint) { struct cmd_list_element *c; diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c index 5488760..627f71c 100644 --- a/gdb/tui/tui-disasm.c +++ b/gdb/tui/tui-disasm.c @@ -546,9 +546,7 @@ run_tests () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_tui_disasm (); -void -_initialize_tui_disasm () +INIT_GDB_FILE (tui_disasm) { #if GDB_SELF_TEST selftests::register_test ("tui-disasm", selftests::tui::disasm::run_tests); diff --git a/gdb/tui/tui-file.c b/gdb/tui/tui-file.c index 39aee9f..df6f503 100644 --- a/gdb/tui/tui-file.c +++ b/gdb/tui/tui-file.c @@ -21,7 +21,7 @@ #include "tui/tui-command.h" void -tui_file::puts (const char *linebuffer) +tui_file::do_puts (const char *linebuffer) { tui_puts (linebuffer); if (!m_buffered) @@ -29,7 +29,7 @@ tui_file::puts (const char *linebuffer) } void -tui_file::write (const char *buf, long length_buf) +tui_file::do_write (const char *buf, long length_buf) { tui_write (buf, length_buf); if (!m_buffered) @@ -41,5 +41,5 @@ tui_file::flush () { if (m_buffered) tui_cmd_win ()->refresh_window (); - stdio_file::flush (); + escape_buffering_file::flush (); } diff --git a/gdb/tui/tui-file.h b/gdb/tui/tui-file.h index dbd6fa9..b6dc058 100644 --- a/gdb/tui/tui-file.h +++ b/gdb/tui/tui-file.h @@ -23,18 +23,21 @@ /* A STDIO-like output stream for the TUI. */ -class tui_file : public stdio_file +class tui_file : public escape_buffering_file { public: tui_file (FILE *stream, bool buffered) - : stdio_file (stream), + : escape_buffering_file (stream), m_buffered (buffered) {} - void write (const char *buf, long length_buf) override; - void puts (const char *) override; void flush () override; +protected: + + void do_write (const char *buf, long length_buf) override; + void do_puts (const char *) override; + private: /* True if this stream is buffered. */ diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c index 814ddac..024fedd 100644 --- a/gdb/tui/tui-hooks.c +++ b/gdb/tui/tui-hooks.c @@ -262,9 +262,7 @@ tui_remove_hooks (void) tui_attach_detach_observers (false); } -void _initialize_tui_hooks (); -void -_initialize_tui_hooks () +INIT_GDB_FILE (tui_hooks) { /* Install the permanent hooks. */ gdb::observers::new_objfile.attach (tui_new_objfile_hook, "tui-hooks"); diff --git a/gdb/tui/tui-interp.c b/gdb/tui/tui-interp.c index 53acf82..3d0e152 100644 --- a/gdb/tui/tui-interp.c +++ b/gdb/tui/tui-interp.c @@ -161,9 +161,7 @@ tui_interp_factory (const char *name) return new tui_interp (name); } -void _initialize_tui_interp (); -void -_initialize_tui_interp () +INIT_GDB_FILE (tui_interp) { interp_factory_register (INTERP_TUI, tui_interp_factory); diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 73ba0c6..558055d 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -1294,9 +1294,7 @@ tui_new_layout_command (const char *spec, int from_tty) /* Function to initialize gdb commands, for tui window layout manipulation. */ -void _initialize_tui_layout (); -void -_initialize_tui_layout () +INIT_GDB_FILE (tui_layout) { struct cmd_list_element *layout_cmd = add_basic_prefix_cmd ("layout", class_tui, _("\ diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 0b8cb85..ac2757a 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -566,9 +566,7 @@ tui_reggroup_completer (struct cmd_list_element *ignore, complete_on_enum (tracker, extra, text, word); } -void _initialize_tui_regs (); -void -_initialize_tui_regs () +INIT_GDB_FILE (tui_regs) { struct cmd_list_element **tuicmd, *cmd; diff --git a/gdb/tui/tui-status.c b/gdb/tui/tui-status.c index 484f4e5..c2d3873 100644 --- a/gdb/tui/tui-status.c +++ b/gdb/tui/tui-status.c @@ -325,9 +325,7 @@ tui_update_command (const char *arg, int from_tty) /* Function to initialize gdb commands, for tui window stack manipulation. */ -void _initialize_tui_stack (); -void -_initialize_tui_stack () +INIT_GDB_FILE (tui_stack) { add_com ("update", class_tui, tui_update_command, _("\ diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index f44600d..d4fbbf1 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -1091,9 +1091,7 @@ bool tui_left_margin_verbose = false; /* Function to initialize gdb commands, for tui window manipulation. */ -void _initialize_tui_win (); -void -_initialize_tui_win () +INIT_GDB_FILE (tui_win) { static struct cmd_list_element *tui_setlist; static struct cmd_list_element *tui_showlist; diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 2c7a6a0..5883d6c 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -618,9 +618,7 @@ tui_get_command_dimension (unsigned int *width, return true; } -void _initialize_tui (); -void -_initialize_tui () +INIT_GDB_FILE (tui) { struct cmd_list_element **tuicmd; diff --git a/gdb/typeprint.c b/gdb/typeprint.c index 4bc5947..ef0c5aa 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -735,9 +735,7 @@ Display of struct members offsets and sizes in hexadecimal is %s\n"), value); } -void _initialize_typeprint (); -void -_initialize_typeprint () +INIT_GDB_FILE (typeprint) { struct cmd_list_element *c; diff --git a/gdb/ui-file.c b/gdb/ui-file.c index f86b6b1..2e5c06f 100644 --- a/gdb/ui-file.c +++ b/gdb/ui-file.c @@ -408,7 +408,7 @@ tee_file::can_emit_style_escape () /* See ui-file.h. */ void -no_terminal_escape_file::write (const char *buf, long length_buf) +escape_buffering_file::write (const char *buf, long length_buf) { std::string copy (buf, length_buf); this->puts (copy.c_str ()); @@ -417,7 +417,60 @@ no_terminal_escape_file::write (const char *buf, long length_buf) /* See ui-file.h. */ void -no_terminal_escape_file::puts (const char *buf) +escape_buffering_file::puts (const char *buf) +{ + std::string local_buffer; + if (!m_buffer.empty ()) + { + gdb_assert (m_buffer[0] == '\033'); + m_buffer += buf; + /* If we need to keep buffering, we'll handle that below. */ + local_buffer = std::move (m_buffer); + buf = local_buffer.c_str (); + } + + while (*buf != '\0') + { + const char *esc = strchr (buf, '\033'); + if (esc == nullptr) + break; + + /* First, write out any prefix. */ + if (esc > buf) + { + do_write (buf, esc - buf); + buf = esc; + } + + int n_read = 0; + ansi_escape_result seen = examine_ansi_escape (esc, &n_read); + if (seen == ansi_escape_result::INCOMPLETE) + { + /* Start buffering. */ + m_buffer = buf; + return; + } + else if (seen == ansi_escape_result::NO_MATCH) + { + /* Just emit the ESC . */ + n_read = 1; + } + else + gdb_assert (seen == ansi_escape_result::MATCHED); + + do_write (esc, n_read); + buf += n_read; + } + + /* If there is any data remaining in BUF, we can flush it now. */ + if (*buf != '\0') + do_puts (buf); +} + +/* See ui-file.h. */ + +void +no_terminal_escape_file::do_puts (const char *buf) { while (*buf != '\0') { @@ -438,6 +491,13 @@ no_terminal_escape_file::puts (const char *buf) } void +no_terminal_escape_file::do_write (const char *buf, long len) +{ + std::string copy (buf, len); + do_puts (copy.c_str ()); +} + +void timestamped_file::write (const char *buf, long len) { if (debug_timestamp) diff --git a/gdb/ui-file.h b/gdb/ui-file.h index 3919e52..1219bde 100644 --- a/gdb/ui-file.h +++ b/gdb/ui-file.h @@ -362,24 +362,58 @@ private: ui_file *m_two; }; +/* A ui_file implementation that buffers terminal escape sequences. + Note that this does not buffer in general -- it only buffers when + an incomplete but potentially recognizable escape sequence is + started. */ + +class escape_buffering_file : public stdio_file +{ +public: + using stdio_file::stdio_file; + + /* Like the stdio_file methods but these forward to do_write and + do_puts, respectively. */ + void write (const char *buf, long length_buf) override final; + void puts (const char *linebuffer) override final; + + /* This class does not override 'flush'. While it does have an + internal buffer, it does not really make sense to flush the + buffer until an escape sequence has been fully processed. */ + +protected: + + /* Called to output some text. If the text contains a recognizable + terminal escape sequence, then it is guaranteed to be complete. + "Recognizable" here means that examine_ansi_escape did not return + INCOMPLETE. */ + virtual void do_puts (const char *buf) = 0; + virtual void do_write (const char *buf, long len) = 0; + +private: + + /* Buffer used only for incomplete escape sequences. */ + std::string m_buffer; +}; + /* A ui_file implementation that filters out terminal escape sequences. */ -class no_terminal_escape_file : public stdio_file +class no_terminal_escape_file : public escape_buffering_file { public: no_terminal_escape_file () { } - /* Like the stdio_file methods, but these filter out terminal escape - sequences. */ - void write (const char *buf, long length_buf) override; - void puts (const char *linebuffer) override; - void emit_style_escape (const ui_file_style &style) override { } + +protected: + + void do_puts (const char *linebuffer) override; + void do_write (const char *buf, long len) override; }; /* A base class for ui_file types that wrap another ui_file. */ diff --git a/gdb/ui-style.c b/gdb/ui-style.c index b8d73ab..c8f2e11 100644 --- a/gdb/ui-style.c +++ b/gdb/ui-style.c @@ -21,12 +21,14 @@ #include "gdbsupport/gdb_regex.h" /* A regular expression that is used for matching ANSI terminal escape - sequences. */ + sequences. Note that this will actually match any prefix of such a + sequence. This property is used so that other code can buffer + incomplete sequences as needed. */ static const char ansi_regex_text[] = - /* Introduction. */ - "^\033\\[" -#define DATA_SUBEXP 1 + /* Introduction. Only the escape character is truly required. */ + "^\033(\\[" +#define DATA_SUBEXP 2 /* Capture parameter and intermediate bytes. */ "(" /* Parameter bytes. */ @@ -36,12 +38,12 @@ static const char ansi_regex_text[] = /* End the first capture. */ ")" /* The final byte. */ -#define FINAL_SUBEXP 2 - "([\x40-\x7e])"; +#define FINAL_SUBEXP 3 + "([\x40-\x7e]))?"; /* The number of subexpressions to allocate space for, including the "0th" whole match subexpression. */ -#define NUM_SUBEXPRESSIONS 3 +#define NUM_SUBEXPRESSIONS 4 /* The compiled form of ansi_regex_text. */ @@ -371,6 +373,15 @@ ui_file_style::parse (const char *buf, size_t *n_read) *n_read = 0; return false; } + + /* If the final subexpression did not match, then that means there + was an incomplete sequence. These are ignored here. */ + if (subexps[FINAL_SUBEXP].rm_so == -1) + { + *n_read = 0; + return false; + } + /* Other failures mean the regexp is broken. */ gdb_assert (match == 0); /* The regexp is anchored. */ @@ -527,17 +538,25 @@ ui_file_style::parse (const char *buf, size_t *n_read) /* See ui-style.h. */ -bool -skip_ansi_escape (const char *buf, int *n_read) +ansi_escape_result +examine_ansi_escape (const char *buf, int *n_read) { + gdb_assert (*buf == '\033'); + regmatch_t subexps[NUM_SUBEXPRESSIONS]; int match = ansi_regex.exec (buf, ARRAY_SIZE (subexps), subexps, 0); - if (match == REG_NOMATCH || buf[subexps[FINAL_SUBEXP].rm_so] != 'm') - return false; + if (match == REG_NOMATCH) + return ansi_escape_result::NO_MATCH; + + if (subexps[FINAL_SUBEXP].rm_so == -1) + return ansi_escape_result::INCOMPLETE; + + if (buf[subexps[FINAL_SUBEXP].rm_so] != 'm') + return ansi_escape_result::NO_MATCH; *n_read = subexps[FINAL_SUBEXP].rm_eo; - return true; + return ansi_escape_result::MATCHED; } /* See ui-style.h. */ diff --git a/gdb/ui-style.h b/gdb/ui-style.h index 77a175d..f61152f 100644 --- a/gdb/ui-style.h +++ b/gdb/ui-style.h @@ -354,11 +354,35 @@ private: bool m_reverse = false; }; +/* Possible results for checking an ANSI escape sequence. */ +enum class ansi_escape_result +{ + /* The escape sequence is definitely not recognizable. */ + NO_MATCH, + + /* The escape sequence might be recognizable with more input. */ + INCOMPLETE, + + /* The escape sequence is definitely recognizable. */ + MATCHED, +}; + +/* Examine an ANSI escape sequence in BUF. BUF must begin with an ESC + character. Return a value indicating whether the sequence was + recognizable. If MATCHED is returned, then N_READ is updated to + reflect the number of chars read from BUF. */ + +extern ansi_escape_result examine_ansi_escape (const char *buf, int *n_read); + /* Skip an ANSI escape sequence in BUF. BUF must begin with an ESC character. Return true if an escape sequence was successfully skipped; false otherwise. If an escape sequence was skipped, N_READ is updated to reflect the number of chars read from BUF. */ -extern bool skip_ansi_escape (const char *buf, int *n_read); +static inline bool +skip_ansi_escape (const char *buf, int *n_read) +{ + return examine_ansi_escape (buf, n_read) == ansi_escape_result::MATCHED; +} #endif /* GDB_UI_STYLE_H */ @@ -237,9 +237,7 @@ new_ui_command (const char *args, int from_tty) gdb_printf ("New UI allocated\n"); } -void _initialize_ui (); -void -_initialize_ui () +INIT_GDB_FILE (ui) { cmd_list_element *c = add_cmd ("new-ui", class_support, new_ui_command, _("\ Create a new UI.\n\ diff --git a/gdb/unittests/array-view-selftests.c b/gdb/unittests/array-view-selftests.c index fa96d3b..914800a 100644 --- a/gdb/unittests/array-view-selftests.c +++ b/gdb/unittests/array-view-selftests.c @@ -695,9 +695,7 @@ run_copy_tests () } /* namespace array_view_tests */ } /* namespace selftests */ -void _initialize_array_view_selftests (); -void -_initialize_array_view_selftests () +INIT_GDB_FILE (array_view_selftests) { selftests::register_test ("array_view", selftests::array_view_tests::run_tests); diff --git a/gdb/unittests/child-path-selftests.c b/gdb/unittests/child-path-selftests.c index 0f29f7d..95b2c34 100644 --- a/gdb/unittests/child-path-selftests.c +++ b/gdb/unittests/child-path-selftests.c @@ -58,9 +58,7 @@ test () } } -void _initialize_child_path_selftests (); -void -_initialize_child_path_selftests () +INIT_GDB_FILE (child_path_selftests) { selftests::register_test ("child_path", selftests::child_path::test); diff --git a/gdb/unittests/cli-utils-selftests.c b/gdb/unittests/cli-utils-selftests.c index e6c64a9..1382ca6 100644 --- a/gdb/unittests/cli-utils-selftests.c +++ b/gdb/unittests/cli-utils-selftests.c @@ -109,9 +109,7 @@ test_cli_utils () } } -void _initialize_cli_utils_selftests (); -void -_initialize_cli_utils_selftests () +INIT_GDB_FILE (cli_utils_selftests) { selftests::register_test ("cli_utils", selftests::cli_utils::test_cli_utils); diff --git a/gdb/unittests/command-def-selftests.c b/gdb/unittests/command-def-selftests.c index 6f169f5..0a54d31 100644 --- a/gdb/unittests/command-def-selftests.c +++ b/gdb/unittests/command-def-selftests.c @@ -219,9 +219,7 @@ command_structure_invariants_tests () } /* namespace selftests */ -void _initialize_command_def_selftests (); -void -_initialize_command_def_selftests () +INIT_GDB_FILE (command_def_selftests) { selftests::register_test ("help_doc_invariants", diff --git a/gdb/unittests/common-utils-selftests.c b/gdb/unittests/common-utils-selftests.c index fab9cd1..ecc4769 100644 --- a/gdb/unittests/common-utils-selftests.c +++ b/gdb/unittests/common-utils-selftests.c @@ -127,9 +127,7 @@ string_vappendf_tests () } /* namespace selftests */ -void _initialize_common_utils_selftests (); -void -_initialize_common_utils_selftests () +INIT_GDB_FILE (common_utils_selftests) { selftests::register_test ("string_printf", selftests::string_printf_tests); selftests::register_test ("string_vprintf", selftests::string_vprintf_tests); diff --git a/gdb/unittests/copy_bitwise-selftests.c b/gdb/unittests/copy_bitwise-selftests.c index 8798cbd..6fcdcd7 100644 --- a/gdb/unittests/copy_bitwise-selftests.c +++ b/gdb/unittests/copy_bitwise-selftests.c @@ -151,9 +151,7 @@ copy_bitwise_tests (void) } /* namespace selftests */ -void _initialize_copy_bitwise_utils_selftests (); -void -_initialize_copy_bitwise_utils_selftests () +INIT_GDB_FILE (copy_bitwise_utils_selftests) { selftests::register_test ("copy_bitwise", selftests::copy_bitwise_tests); } diff --git a/gdb/unittests/enum-flags-selftests.c b/gdb/unittests/enum-flags-selftests.c index bb55019..3eb0f52 100644 --- a/gdb/unittests/enum-flags-selftests.c +++ b/gdb/unittests/enum-flags-selftests.c @@ -607,10 +607,7 @@ self_test () } /* namespace enum_flags_tests */ } /* namespace selftests */ -void _initialize_enum_flags_selftests (); - -void -_initialize_enum_flags_selftests () +INIT_GDB_FILE (enum_flags_selftests) { selftests::register_test ("enum-flags", selftests::enum_flags_tests::self_test); diff --git a/gdb/unittests/environ-selftests.c b/gdb/unittests/environ-selftests.c index 79bffed..5ac3384 100644 --- a/gdb/unittests/environ-selftests.c +++ b/gdb/unittests/environ-selftests.c @@ -297,9 +297,7 @@ run_tests () } /* namespace gdb_environ */ } /* namespace selftests */ -void _initialize_environ_selftests (); -void -_initialize_environ_selftests () +INIT_GDB_FILE (environ_selftests) { selftests::register_test ("gdb_environ", selftests::gdb_environ_tests::run_tests); diff --git a/gdb/unittests/filtered_iterator-selftests.c b/gdb/unittests/filtered_iterator-selftests.c index b3ec70b..49c95cb 100644 --- a/gdb/unittests/filtered_iterator-selftests.c +++ b/gdb/unittests/filtered_iterator-selftests.c @@ -154,9 +154,7 @@ test_filtered_iterator_eq () } /* namespace selftests */ -void _initialize_filtered_iterator_selftests (); -void -_initialize_filtered_iterator_selftests () +INIT_GDB_FILE (filtered_iterator_selftests) { selftests::register_test ("filtered_iterator", selftests::test_filtered_iterator); diff --git a/gdb/unittests/format_pieces-selftests.c b/gdb/unittests/format_pieces-selftests.c index 473d690..c7d8ff0 100644 --- a/gdb/unittests/format_pieces-selftests.c +++ b/gdb/unittests/format_pieces-selftests.c @@ -147,9 +147,7 @@ run_tests () } /* namespace format_pieces */ } /* namespace selftests */ -void _initialize_format_pieces_selftests (); -void -_initialize_format_pieces_selftests () +INIT_GDB_FILE (format_pieces_selftests) { selftests::register_test ("format_pieces", selftests::format_pieces::run_tests); diff --git a/gdb/unittests/frame_info_ptr-selftests.c b/gdb/unittests/frame_info_ptr-selftests.c index c9eb4f4..d518482 100644 --- a/gdb/unittests/frame_info_ptr-selftests.c +++ b/gdb/unittests/frame_info_ptr-selftests.c @@ -66,9 +66,7 @@ test_user_created_frame () } /* namespace selftests */ -void _initialize_frame_info_ptr_selftests (); -void -_initialize_frame_info_ptr_selftests () +INIT_GDB_FILE (frame_info_ptr_selftests) { selftests::register_test ("frame_info_ptr_user", selftests::test_user_created_frame); diff --git a/gdb/unittests/function-view-selftests.c b/gdb/unittests/function-view-selftests.c index 036c7f9..21838f1 100644 --- a/gdb/unittests/function-view-selftests.c +++ b/gdb/unittests/function-view-selftests.c @@ -250,9 +250,7 @@ run_tests () } /* namespace function_view */ } /* namespace selftests */ -void _initialize_function_view_selftests (); -void -_initialize_function_view_selftests () +INIT_GDB_FILE (function_view_selftests) { selftests::register_test ("function_view", selftests::function_view::run_tests); diff --git a/gdb/unittests/gdb_tilde_expand-selftests.c b/gdb/unittests/gdb_tilde_expand-selftests.c index b0b7027..28c759f 100644 --- a/gdb/unittests/gdb_tilde_expand-selftests.c +++ b/gdb/unittests/gdb_tilde_expand-selftests.c @@ -84,9 +84,7 @@ do_test () } /* namespace gdb_tilde_expand_tests */ } /* namespace selftests */ -void _initialize_gdb_tilde_expand_selftests (); -void -_initialize_gdb_tilde_expand_selftests () +INIT_GDB_FILE (gdb_tilde_expand_selftests) { selftests::register_test ("gdb_tilde_expand", selftests::gdb_tilde_expand_tests::do_test); diff --git a/gdb/unittests/gmp-utils-selftests.c b/gdb/unittests/gmp-utils-selftests.c index 495947af..9843fcb 100644 --- a/gdb/unittests/gmp-utils-selftests.c +++ b/gdb/unittests/gmp-utils-selftests.c @@ -498,10 +498,7 @@ gdb_mpq_write_fixed_point () } -void _initialize_gmp_utils_selftests (); - -void -_initialize_gmp_utils_selftests () +INIT_GDB_FILE (gmp_utils_selftests) { selftests::register_test ("gdb_mpz_as_integer", selftests::gdb_mpz_as_integer); diff --git a/gdb/unittests/intrusive_list-selftests.c b/gdb/unittests/intrusive_list-selftests.c index eaffbba..2dd1298 100644 --- a/gdb/unittests/intrusive_list-selftests.c +++ b/gdb/unittests/intrusive_list-selftests.c @@ -1648,10 +1648,7 @@ test_intrusive_list () test_node_is_linked (); } -void _initialize_intrusive_list_selftests (); - -void -_initialize_intrusive_list_selftests () +INIT_GDB_FILE (intrusive_list_selftests) { selftests::register_test ("intrusive_list", test_intrusive_list); } diff --git a/gdb/unittests/lookup_name_info-selftests.c b/gdb/unittests/lookup_name_info-selftests.c index 3e8440b..dc0d307 100644 --- a/gdb/unittests/lookup_name_info-selftests.c +++ b/gdb/unittests/lookup_name_info-selftests.c @@ -105,9 +105,7 @@ run_tests () }} /* namespace selftests::lookup_name */ -void _initialize_lookup_name_info_selftests (); -void -_initialize_lookup_name_info_selftests () +INIT_GDB_FILE (lookup_name_info_selftests) { selftests::register_test ("lookup_name_info", selftests::lookup_name::run_tests); diff --git a/gdb/unittests/main-thread-selftests.c b/gdb/unittests/main-thread-selftests.c index 5f3d790..77adf47 100644 --- a/gdb/unittests/main-thread-selftests.c +++ b/gdb/unittests/main-thread-selftests.c @@ -73,9 +73,7 @@ run_tests () } } -void _initialize_main_thread_selftests (); -void -_initialize_main_thread_selftests () +INIT_GDB_FILE (main_thread_selftests) { #if CXX_STD_THREAD selftests::register_test ("run_on_main_thread", diff --git a/gdb/unittests/memory-map-selftests.c b/gdb/unittests/memory-map-selftests.c index 6872d5a..c014c4d 100644 --- a/gdb/unittests/memory-map-selftests.c +++ b/gdb/unittests/memory-map-selftests.c @@ -75,9 +75,7 @@ parse_memory_map_tests () #endif /* HAVE_LIBEXPAT */ -void _initialize_memory_map_selftests (); -void -_initialize_memory_map_selftests () +INIT_GDB_FILE (memory_map_selftests) { #if defined(HAVE_LIBEXPAT) selftests::register_test diff --git a/gdb/unittests/memrange-selftests.c b/gdb/unittests/memrange-selftests.c index 1433105..17e08e8 100644 --- a/gdb/unittests/memrange-selftests.c +++ b/gdb/unittests/memrange-selftests.c @@ -105,9 +105,7 @@ normalize_mem_ranges_tests () } /* namespace memrange_tests */ } /* namespace selftests */ -void _initialize_memrange_selftests (); -void -_initialize_memrange_selftests () +INIT_GDB_FILE (memrange_selftests) { selftests::register_test ("normalize_mem_ranges", diff --git a/gdb/unittests/mkdir-recursive-selftests.c b/gdb/unittests/mkdir-recursive-selftests.c index 764fe1a..b2ae383 100644 --- a/gdb/unittests/mkdir-recursive-selftests.c +++ b/gdb/unittests/mkdir-recursive-selftests.c @@ -80,9 +80,7 @@ test () } } -void _initialize_mkdir_recursive_selftests (); -void -_initialize_mkdir_recursive_selftests () +INIT_GDB_FILE (mkdir_recursive_selftests) { selftests::register_test ("mkdir_recursive", selftests::mkdir_recursive::test); diff --git a/gdb/unittests/observable-selftests.c b/gdb/unittests/observable-selftests.c index 90d7392..0934249 100644 --- a/gdb/unittests/observable-selftests.c +++ b/gdb/unittests/observable-selftests.c @@ -237,9 +237,7 @@ run_tests () } /* namespace observers */ } /* namespace selftests */ -void _initialize_observer_selftest (); -void -_initialize_observer_selftest () +INIT_GDB_FILE (observer_selftest) { selftests::register_test ("gdb::observers", selftests::observers::run_tests); diff --git a/gdb/unittests/offset-type-selftests.c b/gdb/unittests/offset-type-selftests.c index 1623f0d..2cba4e1 100644 --- a/gdb/unittests/offset-type-selftests.c +++ b/gdb/unittests/offset-type-selftests.c @@ -170,9 +170,7 @@ run_tests () } /* namespace offset_type */ } /* namespace selftests */ -void _initialize_offset_type_selftests (); -void -_initialize_offset_type_selftests () +INIT_GDB_FILE (offset_type_selftests) { selftests::register_test ("offset_type", selftests::offset_type::run_tests); } diff --git a/gdb/unittests/packed-selftests.c b/gdb/unittests/packed-selftests.c index daa8036..5a91b29 100644 --- a/gdb/unittests/packed-selftests.c +++ b/gdb/unittests/packed-selftests.c @@ -119,9 +119,7 @@ run_tests () } /* namespace packed_tests */ } /* namespace selftests */ -void _initialize_packed_selftests (); -void -_initialize_packed_selftests () +INIT_GDB_FILE (packed_selftests) { selftests::register_test ("packed", selftests::packed_tests::run_tests); } diff --git a/gdb/unittests/parallel-for-selftests.c b/gdb/unittests/parallel-for-selftests.c index f3d85a8..f545614 100644 --- a/gdb/unittests/parallel-for-selftests.c +++ b/gdb/unittests/parallel-for-selftests.c @@ -109,9 +109,7 @@ test_parallel_for_each () #endif /* CXX_STD_THREAD */ -void _initialize_parallel_for_selftests (); -void -_initialize_parallel_for_selftests () +INIT_GDB_FILE (parallel_for_selftests) { #ifdef CXX_STD_THREAD selftests::register_test ("parallel_for", diff --git a/gdb/unittests/parse-connection-spec-selftests.c b/gdb/unittests/parse-connection-spec-selftests.c index 7104272..ce2da35 100644 --- a/gdb/unittests/parse-connection-spec-selftests.c +++ b/gdb/unittests/parse-connection-spec-selftests.c @@ -238,9 +238,7 @@ run_tests () } /* namespace parse_connection_spec_tests */ } /* namespace selftests */ -void _initialize_parse_connection_spec_selftests (); -void -_initialize_parse_connection_spec_selftests () +INIT_GDB_FILE (parse_connection_spec_selftests) { selftests::register_test ("parse_connection_spec", selftests::parse_connection_spec_tests::run_tests); diff --git a/gdb/unittests/path-join-selftests.c b/gdb/unittests/path-join-selftests.c index a4003f0..8bc5a91 100644 --- a/gdb/unittests/path-join-selftests.c +++ b/gdb/unittests/path-join-selftests.c @@ -63,9 +63,7 @@ test () } } -void _initialize_path_join_selftests (); -void -_initialize_path_join_selftests () +INIT_GDB_FILE (path_join_selftests) { selftests::register_test ("path_join", selftests::path_join::test); diff --git a/gdb/unittests/remote-arg-selftests.c b/gdb/unittests/remote-arg-selftests.c index 70f8a39..17b8d1d 100644 --- a/gdb/unittests/remote-arg-selftests.c +++ b/gdb/unittests/remote-arg-selftests.c @@ -156,10 +156,7 @@ self_test () } /* namespace remote_args_tests */ } /* namespace selftests */ -void _initialize_remote_arg_selftests (); - -void -_initialize_remote_arg_selftests () +INIT_GDB_FILE (remote_arg_selftests) { selftests::register_test ("remote-args", selftests::remote_args_tests::self_test); diff --git a/gdb/unittests/rsp-low-selftests.c b/gdb/unittests/rsp-low-selftests.c index 7a1b2de..d0002ae 100644 --- a/gdb/unittests/rsp-low-selftests.c +++ b/gdb/unittests/rsp-low-selftests.c @@ -60,9 +60,7 @@ static void test_hex2str () } /* namespace rsp_low */ } /* namespace selftests */ -void _initialize_rsp_low_selftests (); -void -_initialize_rsp_low_selftests () +INIT_GDB_FILE (rsp_low_selftests) { selftests::register_test ("hex2bin_byte_vector", selftests::rsp_low::test_hex2bin_byte_vector); diff --git a/gdb/unittests/scoped_fd-selftests.c b/gdb/unittests/scoped_fd-selftests.c index 7abbbd8..da59a18 100644 --- a/gdb/unittests/scoped_fd-selftests.c +++ b/gdb/unittests/scoped_fd-selftests.c @@ -92,9 +92,7 @@ run_tests () } /* namespace scoped_fd */ } /* namespace selftests */ -void _initialize_scoped_fd_selftests (); -void -_initialize_scoped_fd_selftests () +INIT_GDB_FILE (scoped_fd_selftests) { selftests::register_test ("scoped_fd", selftests::scoped_fd::run_tests); diff --git a/gdb/unittests/scoped_ignore_signal-selftests.c b/gdb/unittests/scoped_ignore_signal-selftests.c index fdfaca3..86c5031 100644 --- a/gdb/unittests/scoped_ignore_signal-selftests.c +++ b/gdb/unittests/scoped_ignore_signal-selftests.c @@ -114,9 +114,7 @@ test_sigpipe () } /* namespace scoped_ignore_sig */ } /* namespace selftests */ -void _initialize_scoped_ignore_signal_selftests (); -void -_initialize_scoped_ignore_signal_selftests () +INIT_GDB_FILE (scoped_ignore_signal_selftests) { #ifdef SIGPIPE selftests::register_test ("scoped_ignore_sigpipe", diff --git a/gdb/unittests/scoped_mmap-selftests.c b/gdb/unittests/scoped_mmap-selftests.c index 695ed1e..72568fe 100644 --- a/gdb/unittests/scoped_mmap-selftests.c +++ b/gdb/unittests/scoped_mmap-selftests.c @@ -135,9 +135,7 @@ run_tests () #endif /* !defined(HAVE_SYS_MMAN_H) */ -void _initialize_scoped_mmap_selftests (); -void -_initialize_scoped_mmap_selftests () +INIT_GDB_FILE (scoped_mmap_selftests) { #if defined(HAVE_SYS_MMAN_H) selftests::register_test ("scoped_mmap", diff --git a/gdb/unittests/scoped_restore-selftests.c b/gdb/unittests/scoped_restore-selftests.c index 18d898b..4396046 100644 --- a/gdb/unittests/scoped_restore-selftests.c +++ b/gdb/unittests/scoped_restore-selftests.c @@ -102,9 +102,7 @@ run_tests () } /* namespace scoped_restore_tests */ } /* namespace selftests */ -void _initialize_scoped_restore_selftests (); -void -_initialize_scoped_restore_selftests () +INIT_GDB_FILE (scoped_restore_selftests) { selftests::register_test ("scoped_restore", selftests::scoped_restore_tests::run_tests); diff --git a/gdb/unittests/search-memory-selftests.c b/gdb/unittests/search-memory-selftests.c index 0e82d6c..c1942fc 100644 --- a/gdb/unittests/search-memory-selftests.c +++ b/gdb/unittests/search-memory-selftests.c @@ -89,9 +89,7 @@ run_tests () } /* namespace selftests */ -void _initialize_search_memory_selftests (); -void -_initialize_search_memory_selftests () +INIT_GDB_FILE (search_memory_selftests) { selftests::register_test ("search_memory", selftests::search_memory_tests::run_tests); diff --git a/gdb/unittests/style-selftests.c b/gdb/unittests/style-selftests.c index 2cbe194..f2a37bb 100644 --- a/gdb/unittests/style-selftests.c +++ b/gdb/unittests/style-selftests.c @@ -100,9 +100,7 @@ run_tests () } /* namespace style */ } /* namespace selftests */ -void _initialize_style_selftest (); -void -_initialize_style_selftest () +INIT_GDB_FILE (style_selftest) { selftests::register_test ("style", selftests::style::run_tests); diff --git a/gdb/unittests/tracepoint-selftests.c b/gdb/unittests/tracepoint-selftests.c index 235dd1e..bef51ae 100644 --- a/gdb/unittests/tracepoint-selftests.c +++ b/gdb/unittests/tracepoint-selftests.c @@ -60,9 +60,7 @@ test_parse_static_tracepoint_marker_definition () } /* namespace tracepoint_tests */ } /* namespace selftests */ -void _initialize_tracepoint_selftests (); -void -_initialize_tracepoint_selftests () +INIT_GDB_FILE (tracepoint_selftests) { selftests::register_test ("parse_static_tracepoint_marker_definition", diff --git a/gdb/unittests/tui-selftests.c b/gdb/unittests/tui-selftests.c index e61b0db..5235a07 100644 --- a/gdb/unittests/tui-selftests.c +++ b/gdb/unittests/tui-selftests.c @@ -45,9 +45,7 @@ run_tests () #endif /* TUI */ -void _initialize_tui_selftest (); -void -_initialize_tui_selftest () +INIT_GDB_FILE (tui_selftest) { #ifdef TUI selftests::register_test ("tui", selftests::tui::run_tests); diff --git a/gdb/unittests/ui-file-selftests.c b/gdb/unittests/ui-file-selftests.c index b62fd4f..d78c6b0 100644 --- a/gdb/unittests/ui-file-selftests.c +++ b/gdb/unittests/ui-file-selftests.c @@ -53,9 +53,7 @@ run_tests () } /* namespace file*/ } /* namespace selftests */ -void _initialize_ui_file_selftest (); -void -_initialize_ui_file_selftest () +INIT_GDB_FILE (ui_file_selftest) { selftests::register_test ("ui-file", selftests::file::run_tests); diff --git a/gdb/unittests/unique_xmalloc_ptr_char.c b/gdb/unittests/unique_xmalloc_ptr_char.c index 984f692..7f61c06 100644 --- a/gdb/unittests/unique_xmalloc_ptr_char.c +++ b/gdb/unittests/unique_xmalloc_ptr_char.c @@ -47,9 +47,7 @@ unique_xmalloc_ptr_char () } } -void _initialize_unique_xmalloc_ptr_char (); -void -_initialize_unique_xmalloc_ptr_char () +INIT_GDB_FILE (unique_xmalloc_ptr_char) { selftests::register_test ("unique_xmalloc_ptr_char", selftests::unpack::unique_xmalloc_ptr_char); diff --git a/gdb/unittests/unpack-selftests.c b/gdb/unittests/unpack-selftests.c index 54af777..fccf7a2 100644 --- a/gdb/unittests/unpack-selftests.c +++ b/gdb/unittests/unpack-selftests.c @@ -52,9 +52,7 @@ unpack_field_as_long_tests (struct gdbarch *arch) } } -void _initialize_unpack_selftests (); -void -_initialize_unpack_selftests () +INIT_GDB_FILE (unpack_selftests) { selftests::register_test_foreach_arch ("unpack_field_as_long", selftests::unpack::unpack_field_as_long_tests); diff --git a/gdb/unittests/vec-utils-selftests.c b/gdb/unittests/vec-utils-selftests.c index 4be0b86..11fad31 100644 --- a/gdb/unittests/vec-utils-selftests.c +++ b/gdb/unittests/vec-utils-selftests.c @@ -65,9 +65,7 @@ unordered_remove_tests () } /* namespace vector_utils_tests */ } /* namespace selftests */ -void _initialize_vec_utils_selftests (); -void -_initialize_vec_utils_selftests () +INIT_GDB_FILE (vec_utils_selftests) { selftests::register_test ("unordered_remove", diff --git a/gdb/unittests/xml-utils-selftests.c b/gdb/unittests/xml-utils-selftests.c index 5884faa..f4a637b 100644 --- a/gdb/unittests/xml-utils-selftests.c +++ b/gdb/unittests/xml-utils-selftests.c @@ -47,9 +47,7 @@ static void test_xml_escape_text_append () } } -void _initialize_xml_utils (); -void -_initialize_xml_utils () +INIT_GDB_FILE (xml_utils) { selftests::register_test ("xml_escape_text", selftests::xml_utils::test_xml_escape_text); diff --git a/gdb/user-regs.c b/gdb/user-regs.c index 5860d7d..7170cda 100644 --- a/gdb/user-regs.c +++ b/gdb/user-regs.c @@ -237,9 +237,7 @@ maintenance_print_user_registers (const char *args, int from_tty) } } -void _initialize_user_regs (); -void -_initialize_user_regs () +INIT_GDB_FILE (user_regs) { add_cmd ("user-registers", class_maintenance, maintenance_print_user_registers, diff --git a/gdb/utils.c b/gdb/utils.c index 4f48e15..10d3d51 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1401,7 +1401,26 @@ pager_file::emit_style_escape (const ui_file_style &style) { m_applied_style = style; if (m_paging) - m_stream->emit_style_escape (style); + { + /* Previous style changes will have been sent to m_stream via + escape sequences encoded in the m_wrap_buffer. As a result, + the m_stream->m_applied_style will not have been updated. + + If we now use m_stream->emit_style_escape, then the required + style might not actually be emitted as the requested style + might happen to match the out of date value in + m_stream->m_applied_style. + + Instead, send the style change directly using m_stream->puts. + + However, we track what style is currently applied to the + underlying stream in m_stream_style, this is updated whenever + m_wrap_buffer is flushed to the underlying stream. And so, if + the style we are applying matches what we know is currently + applied to the underlying stream, then we can skip sending + this style to the stream. */ + this->set_stream_style (m_applied_style); + } else m_wrap_buffer.append (style.to_ansi ()); } @@ -1424,8 +1443,8 @@ pager_file::prompt_for_continue () scoped_restore save_paging = make_scoped_restore (&m_paging, true); - /* Clear the current styling. */ - m_stream->emit_style_escape (ui_file_style ()); + /* Clear the current styling on ourselves and the managed stream. */ + this->emit_style_escape (ui_file_style ()); if (annotation_level > 1) m_stream->puts (("\n\032\032pre-prompt-for-continue\n")); @@ -1508,6 +1527,7 @@ pager_file::flush_wrap_buffer () if (!m_paging && !m_wrap_buffer.empty ()) { m_stream->puts (m_wrap_buffer.c_str ()); + m_stream_style = m_applied_style; m_wrap_buffer.clear (); } } @@ -1724,7 +1744,8 @@ pager_file::puts (const char *linebuffer) current applied style to how it was at the WRAP_COLUMN location. */ m_applied_style = m_wrap_style; - m_stream->emit_style_escape (ui_file_style ()); + this->set_stream_style (ui_file_style ()); + /* If we aren't actually wrapping, don't output newline -- if chars_per_line is right, we probably just overflowed anyway; if it's wrong, @@ -1752,7 +1773,7 @@ pager_file::puts (const char *linebuffer) /* Having finished inserting the wrapping we should restore the style as it was at the WRAP_COLUMN. */ - m_stream->emit_style_escape (m_wrap_style); + this->set_stream_style (m_wrap_style); /* The WRAP_BUFFER will still contain content, and that content might set some alternative style. Restore @@ -1767,7 +1788,7 @@ pager_file::puts (const char *linebuffer) m_wrap_column = 0; /* And disable fancy wrap */ } else if (did_paginate) - m_stream->emit_style_escape (save_style); + this->emit_style_escape (save_style); } } @@ -1788,7 +1809,7 @@ void pager_file::write (const char *buf, long length_buf) { /* We have to make a string here because the pager uses - skip_ansi_escape, which requires NUL-termination. */ + examine_ansi_escape, which requires NUL-termination. */ std::string str (buf, length_buf); this->puts (str.c_str ()); } @@ -3695,9 +3716,7 @@ test_assign_set_return_if_changed () } #endif -void _initialize_utils (); -void -_initialize_utils () +INIT_GDB_FILE (utils) { add_setshow_uinteger_cmd ("width", class_support, &chars_per_line, _("\ Set number of characters where GDB should wrap lines of its output."), _("\ diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c index e9ec858..d592344 100644 --- a/gdb/v850-tdep.c +++ b/gdb/v850-tdep.c @@ -1461,9 +1461,7 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -void _initialize_v850_tdep (); -void -_initialize_v850_tdep () +INIT_GDB_FILE (v850_tdep) { gdbarch_register (bfd_arch_v850, v850_gdbarch_init); gdbarch_register (bfd_arch_v850_rh850, v850_gdbarch_init); diff --git a/gdb/valops.c b/gdb/valops.c index 94f908d..88f3e32 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -4162,9 +4162,7 @@ cast_into_complex (struct type *type, struct value *val) error (_("cannot cast non-number to complex")); } -void _initialize_valops (); -void -_initialize_valops () +INIT_GDB_FILE (valops) { add_setshow_boolean_cmd ("overload-resolution", class_support, &overload_resolution, _("\ diff --git a/gdb/valprint.c b/gdb/valprint.c index ed03f6d..305faf7 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -3194,9 +3194,7 @@ test_print_flags (gdbarch *arch) #endif -void _initialize_valprint (); -void -_initialize_valprint () +INIT_GDB_FILE (valprint) { #if GDB_SELF_TEST selftests::register_test_foreach_arch ("print-flags", test_print_flags); diff --git a/gdb/value.c b/gdb/value.c index 41dce77..5574642 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -4496,9 +4496,7 @@ test_value_copy () } /* namespace selftests */ #endif /* GDB_SELF_TEST */ -void _initialize_values (); -void -_initialize_values () +INIT_GDB_FILE (values) { cmd_list_element *show_convenience_cmd = add_cmd ("convenience", no_class, show_convenience, _("\ diff --git a/gdb/varobj.c b/gdb/varobj.c index 8dc7a30..4dc986a 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -2424,9 +2424,7 @@ eq_varobj_and_string (const void *a, const void *b) return obj->obj_name == name; } -void _initialize_varobj (); -void -_initialize_varobj () +INIT_GDB_FILE (varobj) { varobj_table = htab_create_alloc (5, hash_varobj, eq_varobj_and_string, nullptr, xcalloc, xfree); diff --git a/gdb/vax-bsd-nat.c b/gdb/vax-bsd-nat.c index 6d8bb54..717314e 100644 --- a/gdb/vax-bsd-nat.c +++ b/gdb/vax-bsd-nat.c @@ -136,9 +136,7 @@ vaxbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) return 1; } -void _initialize_vaxbsd_nat (); -void -_initialize_vaxbsd_nat () +INIT_GDB_FILE (vaxbsd_nat) { add_inf_child_target (&the_vax_bsd_nat_target); diff --git a/gdb/vax-netbsd-tdep.c b/gdb/vax-netbsd-tdep.c index 34a9150..7781264 100644 --- a/gdb/vax-netbsd-tdep.c +++ b/gdb/vax-netbsd-tdep.c @@ -32,13 +32,10 @@ vaxnbsd_elf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) nbsd_init_abi (info, gdbarch); /* NetBSD ELF uses SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); } -void _initialize_vaxnbsd_tdep (); -void -_initialize_vaxnbsd_tdep () +INIT_GDB_FILE (vaxnbsd_tdep) { gdbarch_register_osabi (bfd_arch_vax, 0, GDB_OSABI_NETBSD, vaxnbsd_elf_init_abi); diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c index 94dc308..0a83f4f 100644 --- a/gdb/vax-tdep.c +++ b/gdb/vax-tdep.c @@ -506,9 +506,7 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return (gdbarch); } -void _initialize_vax_tdep (); -void -_initialize_vax_tdep () +INIT_GDB_FILE (vax_tdep) { gdbarch_register (bfd_arch_vax, vax_gdbarch_init, NULL); } diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 939c581..c001d38 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -3093,9 +3093,7 @@ windows_nat_target::thread_name (struct thread_info *thr) } -void _initialize_windows_nat (); -void -_initialize_windows_nat () +INIT_GDB_FILE (windows_nat) { x86_dr_low.set_control = cygwin_set_dr7; x86_dr_low.set_addr = cygwin_set_dr; @@ -3269,9 +3267,7 @@ windows_nat_target::thread_alive (ptid_t ptid) return WaitForSingleObject (th->h, 0) != WAIT_OBJECT_0; } -void _initialize_check_for_gdb_ini (); -void -_initialize_check_for_gdb_ini () +INIT_GDB_FILE (check_for_gdb_ini) { char *homedir; if (inhibit_gdbinit) diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c index d8858a7..05335d2 100644 --- a/gdb/windows-tdep.c +++ b/gdb/windows-tdep.c @@ -862,10 +862,25 @@ windows_get_siginfo_type (struct gdbarch *gdbarch) return siginfo_type; } +/* solib_ops for Windows systems. */ + +struct windows_solib_ops : target_solib_ops +{ + void create_inferior_hook (int from_tty) const override; +}; + +/* Return a new solib_ops for Windows systems. */ + +static solib_ops_up +make_windows_solib_ops () +{ + return std::make_unique<windows_solib_ops> (); +} + /* Implement the "solib_create_inferior_hook" solib_ops method. */ -static void -windows_solib_create_inferior_hook (int from_tty) +void +windows_solib_ops::create_inferior_hook (int from_tty) const { CORE_ADDR exec_base = 0; @@ -910,8 +925,6 @@ windows_solib_create_inferior_hook (int from_tty) } } -static solib_ops windows_so_ops; - /* Common parts for gdbarch initialization for the Windows and Cygwin OS ABIs. */ @@ -928,10 +941,7 @@ windows_init_abi_common (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_iterate_over_objfiles_in_search_order (gdbarch, windows_iterate_over_objfiles_in_search_order); - windows_so_ops = solib_target_so_ops; - windows_so_ops.solib_create_inferior_hook - = windows_solib_create_inferior_hook; - set_gdbarch_so_ops (gdbarch, &windows_so_ops); + set_gdbarch_make_solib_ops (gdbarch, make_windows_solib_ops); set_gdbarch_get_siginfo_type (gdbarch, windows_get_siginfo_type); } @@ -1182,9 +1192,7 @@ windows_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid) return normal_pid_to_str (ptid); } -void _initialize_windows_tdep (); -void -_initialize_windows_tdep () +INIT_GDB_FILE (windows_tdep) { init_w32_command_list (); cmd_list_element *info_w32_thread_information_block_cmd diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c index 0c9ddfd..37376bb 100644 --- a/gdb/x86-bsd-nat.c +++ b/gdb/x86-bsd-nat.c @@ -128,9 +128,7 @@ x86bsd_dr_get_control (void) #endif /* PT_GETDBREGS */ -void _initialize_x86_bsd_nat (); -void -_initialize_x86_bsd_nat () +INIT_GDB_FILE (x86_bsd_nat) { #ifdef HAVE_PT_GETDBREGS x86_dr_low.set_control = x86bsd_dr_set_control; diff --git a/gdb/x86-gnu-nat.c b/gdb/x86-gnu-nat.c index b9ba95b..e088189 100644 --- a/gdb/x86-gnu-nat.c +++ b/gdb/x86-gnu-nat.c @@ -491,9 +491,7 @@ x86_gnu_dr_get_control (void) } #endif /* i386_DEBUG_STATE */ -void _initialize_x86_gnu_nat (); -void -_initialize_x86_gnu_nat () +INIT_GDB_FILE (x86_gnu_nat) { #ifdef i386_DEBUG_STATE x86_dr_low.set_control = x86_gnu_dr_set_control; diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c index fc7c5f6..81db5d8 100644 --- a/gdb/x86-linux-nat.c +++ b/gdb/x86-linux-nat.c @@ -210,9 +210,7 @@ x86_linux_get_thread_area (pid_t pid, void *addr, unsigned int *base_addr) } -void _initialize_x86_linux_nat (); -void -_initialize_x86_linux_nat () +INIT_GDB_FILE (x86_linux_nat) { /* Initialize the debug register function vectors. */ x86_dr_low.set_control = x86_linux_dr_set_control; diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index e91c64c..70585b3 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -2999,9 +2999,7 @@ xcoff_get_n_import_files (bfd *abfd) return l_nimpid - 1; } -void _initialize_xcoffread (); -void -_initialize_xcoffread () +INIT_GDB_FILE (xcoffread) { add_symtab_fns (bfd_target_xcoff_flavour, &xcoff_sym_fns); } diff --git a/gdb/xml-support.c b/gdb/xml-support.c index fb8b612..08524f8 100644 --- a/gdb/xml-support.c +++ b/gdb/xml-support.c @@ -999,10 +999,7 @@ xml_fetch_content_from_file (const char *filename, const char *dirname) return text; } -void _initialize_xml_support (); -void _initialize_xml_support (); -void -_initialize_xml_support () +INIT_GDB_FILE (xml_support) { add_setshow_boolean_cmd ("xml", class_maintenance, &debug_xml, _("Set XML parser debugging."), diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c index 8482461..b4042f1 100644 --- a/gdb/xstormy16-tdep.c +++ b/gdb/xstormy16-tdep.c @@ -828,9 +828,7 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) Initializer function for the Sanyo Xstormy16a module. Called by gdb at start-up. */ -void _initialize_xstormy16_tdep (); -void -_initialize_xstormy16_tdep () +INIT_GDB_FILE (xstormy16_tdep) { gdbarch_register (bfd_arch_xstormy16, xstormy16_gdbarch_init); } diff --git a/gdb/xtensa-linux-nat.c b/gdb/xtensa-linux-nat.c index 11fbf55..4a50f38 100644 --- a/gdb/xtensa-linux-nat.c +++ b/gdb/xtensa-linux-nat.c @@ -327,9 +327,7 @@ ps_get_thread_area (struct ps_prochandle *ph, return PS_OK; } -void _initialize_xtensa_linux_nat (); -void -_initialize_xtensa_linux_nat () +INIT_GDB_FILE (xtensa_linux_nat) { const xtensa_regtable_t *ptr; diff --git a/gdb/xtensa-linux-tdep.c b/gdb/xtensa-linux-tdep.c index b72d683..7792408 100644 --- a/gdb/xtensa-linux-tdep.c +++ b/gdb/xtensa-linux-tdep.c @@ -20,6 +20,7 @@ #include "xtensa-tdep.h" #include "osabi.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "solib-svr4.h" #include "symtab.h" #include "gdbarch.h" @@ -111,8 +112,7 @@ xtensa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) linux_init_abi (info, gdbarch, 0); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); set_gdbarch_gdb_signal_from_target (gdbarch, xtensa_linux_gdb_signal_from_target); @@ -124,9 +124,7 @@ xtensa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) svr4_fetch_objfile_link_map); } -void _initialize_xtensa_linux_tdep (); -void -_initialize_xtensa_linux_tdep () +INIT_GDB_FILE (xtensa_linux_tdep) { gdbarch_register_osabi (bfd_arch_xtensa, bfd_mach_xtensa, GDB_OSABI_LINUX, xtensa_linux_init_abi); diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c index a4bbffb..8a2f129 100644 --- a/gdb/xtensa-tdep.c +++ b/gdb/xtensa-tdep.c @@ -3238,8 +3238,7 @@ xtensa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_iterate_over_regset_sections (gdbarch, xtensa_iterate_over_regset_sections); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, svr4_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_svr4_ilp32_solib_ops); /* Hook in the ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); @@ -3253,9 +3252,7 @@ xtensa_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) error (_("xtensa_dump_tdep(): not implemented")); } -void _initialize_xtensa_tdep (); -void -_initialize_xtensa_tdep () +INIT_GDB_FILE (xtensa_tdep) { gdbarch_register (bfd_arch_xtensa, xtensa_gdbarch_init, xtensa_dump_tdep); xtensa_init_reggroups (); diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c index 5fc71fa..abba50b 100644 --- a/gdb/z80-tdep.c +++ b/gdb/z80-tdep.c @@ -1455,10 +1455,7 @@ z80_get_insn_info (struct gdbarch *gdbarch, const gdb_byte *buf, int *size) while (1); } -extern initialize_file_ftype _initialize_z80_tdep; - -void -_initialize_z80_tdep () +INIT_GDB_FILE (z80_tdep) { gdbarch_register (bfd_arch_z80, z80_gdbarch_init); initialize_tdesc_z80 (); diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc index e507558..3964270 100644 --- a/gdbserver/linux-low.cc +++ b/gdbserver/linux-low.cc @@ -751,7 +751,7 @@ linux_process_target::handle_extended_wait (lwp_info **orig_event_lwp, /* Set the event status. */ event_lwp->waitstatus.set_execd (make_unique_xstrdup - (linux_proc_pid_to_exec_file (event_thr->id.lwp ()))); + (pid_to_exec_file (event_thr->id.lwp ()))); /* Mark the exec status as pending. */ event_lwp->stopped = 1; @@ -6033,7 +6033,7 @@ linux_process_target::supports_pid_to_exec_file () const char * linux_process_target::pid_to_exec_file (int pid) { - return linux_proc_pid_to_exec_file (pid); + return linux_proc_pid_to_exec_file (pid, linux_ns_same (pid, LINUX_NS_MNT)); } bool diff --git a/gdbserver/target.h b/gdbserver/target.h index 4d3f80f..66ca72f 100644 --- a/gdbserver/target.h +++ b/gdbserver/target.h @@ -31,6 +31,7 @@ #include "gdbsupport/btrace-common.h" #include <vector> #include "gdbsupport/byte-vector.h" +#include <sys/stat.h> struct emit_ops; struct process_info; diff --git a/gprofng/common/config.h.in b/gprofng/common/config.h.in index f8484f2..5f2c127 100644 --- a/gprofng/common/config.h.in +++ b/gprofng/common/config.h.in @@ -1,11 +1,17 @@ /* common/config.h.in. Generated from configure.ac by autoheader. */ +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + /* Enable debugging output. */ #undef DEBUG /* Enable java profiling */ #undef GPROFNG_JAVA_PROFILING +/* Define to 1 if you have the <asm/hwprobe.h> header file. */ +#undef HAVE_ASM_HWPROBE_H + /* Define to 1 if you have the `clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME @@ -109,6 +115,18 @@ /* Version number of package */ #undef VERSION +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + /* Define to 1 if on MINIX. */ #undef _MINIX diff --git a/gprofng/common/cpuid.c b/gprofng/common/cpuid.c index e40404c..f9f9046 100644 --- a/gprofng/common/cpuid.c +++ b/gprofng/common/cpuid.c @@ -48,8 +48,10 @@ __get_cpuid (unsigned int op ATTRIBUTE_UNUSED, unsigned int *eax, #include <sched.h> #include <sys/syscall.h> #include <unistd.h> +#ifdef HAVE_ASM_HWPROBE_H #include <asm/hwprobe.h> #endif +#endif /* * Various routines to handle identification @@ -188,7 +190,7 @@ get_cpuid_info () break; } #elif defined(__riscv) - #ifndef __riscv_hwprobe + #if !defined(__riscv_hwprobe) || !defined(HAVE_ASM_HWPROBE_H) cpi->cpi_vendor = 0; cpi->cpi_family = 0; cpi->cpi_model = 0; @@ -208,7 +210,7 @@ get_cpuid_info () cpi->cpi_vendor = res.value; cpi->cpi_family = 0; cpi->cpi_model = 0; - #endif + #endif #endif return cpi; } diff --git a/gprofng/configure b/gprofng/configure index 3f40863..2f4e18c 100755 --- a/gprofng/configure +++ b/gprofng/configure @@ -15623,6 +15623,230 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Only expand once: + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + GPROFNG_LIBADD="-L../../libiberty -liberty" if test "$enable_shared" = "yes"; then @@ -16941,6 +17165,21 @@ fi done +# For riscv builds inside incomplete environments such as during intermediate +# steps of cross toolchain building, or with outdated Linux headers. +for ac_header in asm/hwprobe.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "asm/hwprobe.h" "ac_cv_header_asm_hwprobe_h" "$ac_includes_default" +if test "x$ac_cv_header_asm_hwprobe_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ASM_HWPROBE_H 1 +_ACEOF + +fi + +done + + clock_gettime_link= # At least for glibc, clock_gettime is in librt. But don't # pull that in if it still doesn't give us the function we want. This @@ -17145,6 +17384,7 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi + if test -z "${BUILD_COLLECTOR_TRUE}" && test -z "${BUILD_COLLECTOR_FALSE}"; then as_fn_error $? "conditional \"BUILD_COLLECTOR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/gprofng/configure.ac b/gprofng/configure.ac index d7a2c38..deb3ed5 100644 --- a/gprofng/configure.ac +++ b/gprofng/configure.ac @@ -33,6 +33,7 @@ gl_PROG_BISON([BISON],[3.0.4]) AC_DISABLE_SHARED LT_INIT +AC_C_BIGENDIAN GPROFNG_LIBADD="-L../../libiberty -liberty" if test "$enable_shared" = "yes"; then @@ -244,6 +245,10 @@ AC_SUBST(GPROFNG_CPPFLAGS, [${gprofng_cppflags}]) AC_CHECK_DECLS([basename]) AC_CHECK_FUNCS(clock_gettime strsignal) +# For riscv builds inside incomplete environments such as during intermediate +# steps of cross toolchain building, or with outdated Linux headers. +AC_CHECK_HEADERS(asm/hwprobe.h) + clock_gettime_link= # At least for glibc, clock_gettime is in librt. But don't # pull that in if it still doesn't give us the function we want. This diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c index c5fa3cb..3bb3fc3 100644 --- a/gprofng/libcollector/collector.c +++ b/gprofng/libcollector/collector.c @@ -2051,8 +2051,15 @@ log_header_write (sp_origin_t origin) { long page_size = CALL_UTIL (sysconf)(_SC_PAGESIZE); long npages = CALL_UTIL (sysconf)(_SC_PHYS_PAGES); - __collector_log_write ("<system hostname=\"%s\" arch=\"%s\" os=\"%s %s\" pagesz=\"%ld\" npages=\"%ld\">\n", - sysinfo.nodename, sysinfo.machine, sysinfo.sysname, sysinfo.release, page_size, npages); +#ifdef WORDS_BIGENDIAN + int bigendian = 1; +#else + int bigendian = 0; +#endif + __collector_log_write ("<system hostname=\"%s\" arch=\"%s\" os=\"%s %s\" " + "pagesz=\"%ld\" npages=\"%ld\" bigendian=\"%d\">\n", + sysinfo.nodename, sysinfo.machine, sysinfo.sysname, + sysinfo.release, page_size, npages, bigendian); } //YXXX Updating this section? Check similar cut/paste code in: diff --git a/gprofng/src/DbeSession.cc b/gprofng/src/DbeSession.cc index f3426ce..b0aa745 100644 --- a/gprofng/src/DbeSession.cc +++ b/gprofng/src/DbeSession.cc @@ -2017,6 +2017,17 @@ DbeSession::is_omp_available () } bool +DbeSession::is_bigendian () +{ +#ifdef WORDS_BIGENDIAN + return true; +#else + return false; +#endif + +} + +bool DbeSession::has_java () { int status_has_java = 0; diff --git a/gprofng/src/DbeSession.h b/gprofng/src/DbeSession.h index 5cbddae..7db0998 100644 --- a/gprofng/src/DbeSession.h +++ b/gprofng/src/DbeSession.h @@ -120,6 +120,7 @@ public: bool is_timeline_available (); bool is_ifreq_available (); bool is_omp_available (); + static bool is_bigendian (); bool has_java (); bool has_ompavail (); diff --git a/gprofng/src/Experiment.cc b/gprofng/src/Experiment.cc index 45550e8..4cbb7f6 100644 --- a/gprofng/src/Experiment.cc +++ b/gprofng/src/Experiment.cc @@ -541,10 +541,14 @@ Experiment::ExperimentHandler::startElement (char*, char*, char *qName, Attribut exp->platform = RISCV; else exp->platform = Sparc; - exp->need_swap_endian = (DbeSession::platform == Sparc) ? - (exp->platform != Sparc) : (exp->platform == Sparc); exp->architecture = xstrdup (str); } + str = attrs->getValue (NTXT ("bigendian")); + if (str != NULL) + { + exp->bigendian = *str == '1'; + exp->need_swap_endian = DbeSession::is_bigendian () != exp->bigendian; + } str = attrs->getValue (NTXT ("pagesz")); if (str != NULL) exp->page_size = atoi (str); @@ -1314,6 +1318,7 @@ Experiment::Experiment () exp_maj_version = 0; exp_min_version = 0; platform = Unknown; + bigendian = DbeSession::is_bigendian(); // can be changed in log.xml reading wsize = Wnone; page_size = 4096; npages = 0; diff --git a/gprofng/src/Experiment.h b/gprofng/src/Experiment.h index 2047a15..c85aadd 100644 --- a/gprofng/src/Experiment.h +++ b/gprofng/src/Experiment.h @@ -135,6 +135,7 @@ public: // for current experiment, i.e. 8 for 32bit addresses int broken; // If SP_JCMD_RUN line not seen int obsolete; // If pointer file experiment detected + bool bigendian; // the experiment was created on a big_endian machine bool hwc_default; // True if HW counters were enabled by default int hwc_bogus; // Count of bogus HWC packets int hwc_lost_int; // Count of packets reflecting lost interrupt diff --git a/gprofng/src/LoadObject.cc b/gprofng/src/LoadObject.cc index 3cdeb9d..bf49e9d 100644 --- a/gprofng/src/LoadObject.cc +++ b/gprofng/src/LoadObject.cc @@ -87,7 +87,6 @@ LoadObject::LoadObject (const char *loname) size = 0; type = SEG_UNKNOWN; isReadStabs = false; - need_swap_endian = false; instHTable = new DbeInstr*[LO_InstHTableSize]; for (int i = 0; i < LO_InstHTableSize; i++) instHTable[i] = NULL; diff --git a/gprofng/src/LoadObject.h b/gprofng/src/LoadObject.h index 14dfe26..dd40ea0 100644 --- a/gprofng/src/LoadObject.h +++ b/gprofng/src/LoadObject.h @@ -167,7 +167,6 @@ public: unsigned int flags; // SEG_FLAG_* bool isReadStabs; - bool need_swap_endian; int seg_idx; // for compatibility (ADDRESS) seg_type type; int64_t size; // size of loadobject in bytes diff --git a/include/elf/common.h b/include/elf/common.h index fd032d1..01812b4 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -1041,6 +1041,11 @@ #define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1) #define GNU_PROPERTY_AARCH64_FEATURE_1_GCS (1U << 2) +/* RISC-V specific GNU PROPERTY. */ +#define GNU_PROPERTY_RISCV_FEATURE_1_AND 0xc0000000 +#define GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED (1U << 0) +#define GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS (1U << 1) + /* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG). */ #define GNU_ABI_TAG_LINUX 0 #define GNU_ABI_TAG_HURD 1 diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 2dc2f7d..7c1163d 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -294,6 +294,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_V9_5A, /* FPRCVT instructions. */ AARCH64_FEATURE_FPRCVT, + /* Point of Physical Storage. */ + AARCH64_FEATURE_PoPS, /* Virtual features. These are used to gate instructions that are enabled by either of two (or more) sets of command line flags. */ diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index 7fca806..2b146af 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -421,6 +421,7 @@ static inline unsigned int riscv_insn_length (insn_t insn) /* ABI names for selected x-registers. */ +#define X_ZERO 0 #define X_RA 1 #define X_SP 2 #define X_GP 3 @@ -1,5 +1,8 @@ -*- text -*- +* On RISC-V, add new PLT formats, and GNU property merge rules for zicfiss and + zicfilp extensions. + * The linker's --stats option can take an optional argument which if used is interpreted as a filename into which resource usage information should be stored. As an alternative mechanism the LD_STATS environment variable can diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp index 9cb847d..e103df6 100644 --- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp +++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp @@ -227,6 +227,14 @@ if [istarget "riscv*-*-*"] { run_dump_test "data-reloc-rv64-addr32-pic" run_dump_test "data-reloc-rv64-undef32-pic" + run_dump_test "property-zicfilp-unlabeled" + run_dump_test "property-zicfiss" + run_dump_test "property-combine-and-1" + run_dump_test "property-combine-and-2" + run_dump_test "property-combine-and-3" + + run_dump_test "zicfilp-unlabeled-plt" + # IFUNC testcases. # Check IFUNC by single type relocs. run_dump_test_ifunc "ifunc-reloc-call-01" rv32 exe diff --git a/ld/testsuite/ld-riscv-elf/property-combine-and-1.d b/ld/testsuite/ld-riscv-elf/property-combine-and-1.d new file mode 100644 index 0000000..571620f --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-combine-and-1.d @@ -0,0 +1,6 @@ +#name: RISC-V GNU Property (multiple inputs, combine section) - 1 +#source: property1.s +#source: property2.s +#as: -march=rv64g +#ld: -shared -melf64lriscv +#readelf: -n diff --git a/ld/testsuite/ld-riscv-elf/property-combine-and-2.d b/ld/testsuite/ld-riscv-elf/property-combine-and-2.d new file mode 100644 index 0000000..23482af --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-combine-and-2.d @@ -0,0 +1,11 @@ +#name: RISC-V GNU Property (multiple inputs, combine section) - 2 +#source: property1.s +#source: property3.s +#as: -march=rv64g +#ld: -shared -melf64lriscv +#readelf: -n + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description +[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0 +[ ]+Properties: RISC-V AND feature: CFI_LP_UNLABELED diff --git a/ld/testsuite/ld-riscv-elf/property-combine-and-3.d b/ld/testsuite/ld-riscv-elf/property-combine-and-3.d new file mode 100644 index 0000000..b57a0f7 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-combine-and-3.d @@ -0,0 +1,11 @@ +#name: RISC-V GNU Property (multiple inputs, combine section) - 3 +#source: property1.s +#source: property4.s +#as: -march=rv64g +#ld: -shared -melf64lriscv +#readelf: -n + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description +[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0 +[ ]+Properties: RISC-V AND feature: CFI_SS diff --git a/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d new file mode 100644 index 0000000..48d60d6 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d @@ -0,0 +1,10 @@ +#name: GNU Property (single input, CFI_LP_UNLABELED) +#source: property-zicfilp-unlabeled.s +#as: -march=rv64g +#ld: -shared -melf64lriscv +#readelf: -n + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description +[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0 +[ ]+Properties: RISC-V AND feature: CFI_LP_UNLABELED diff --git a/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s new file mode 100644 index 0000000..b0192c0 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s @@ -0,0 +1,21 @@ + .text + .globl _start + .type _start,@function +_start: + ret + + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x1 /* GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED. */ +4: + .p2align 3 +5: diff --git a/ld/testsuite/ld-riscv-elf/property-zicfiss.d b/ld/testsuite/ld-riscv-elf/property-zicfiss.d new file mode 100644 index 0000000..0dec1a1 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-zicfiss.d @@ -0,0 +1,10 @@ +#name: GNU Property (single input, CFI_SS) +#source: property-zicfiss.s +#as: -march=rv64g +#ld: -shared -melf64lriscv +#readelf: -n + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description +[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0 +[ ]+Properties: RISC-V AND feature: CFI_SS diff --git a/ld/testsuite/ld-riscv-elf/property-zicfiss.s b/ld/testsuite/ld-riscv-elf/property-zicfiss.s new file mode 100644 index 0000000..21342ef --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property-zicfiss.s @@ -0,0 +1,21 @@ + .text + .globl _start + .type _start,@function +_start: + ret + + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x2 /* GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS. */ +4: + .p2align 3 +5: diff --git a/ld/testsuite/ld-riscv-elf/property1.s b/ld/testsuite/ld-riscv-elf/property1.s new file mode 100644 index 0000000..622bbcb --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property1.s @@ -0,0 +1,21 @@ + .text + .globl _start + .type _start,@function +_start: + ret + + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x3 /* CFI_LP_UNLABELED and CFI_SS. */ +4: + .p2align 3 +5: diff --git a/ld/testsuite/ld-riscv-elf/property2.s b/ld/testsuite/ld-riscv-elf/property2.s new file mode 100644 index 0000000..4d1610c --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property2.s @@ -0,0 +1,5 @@ + .text + .globl foo + .type foo,@function +foo: + ret diff --git a/ld/testsuite/ld-riscv-elf/property3.s b/ld/testsuite/ld-riscv-elf/property3.s new file mode 100644 index 0000000..61518fb --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property3.s @@ -0,0 +1,21 @@ + .text + .globl _start + .type _start,@function +bar: + ret + + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x1 /* CFI_LP_UNLABELED. */ +4: + .p2align 3 +5: diff --git a/ld/testsuite/ld-riscv-elf/property4.s b/ld/testsuite/ld-riscv-elf/property4.s new file mode 100644 index 0000000..54098a5 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/property4.s @@ -0,0 +1,21 @@ + .text + .globl _start + .type _start,@function +zoo: + ret + + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x2 /* CFI_LP_SS. */ +4: + .p2align 3 +5: diff --git a/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d new file mode 100644 index 0000000..bb888d1 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d @@ -0,0 +1,35 @@ +#name: Unlabled landing pad PLT +#source: zicfilp-unlabeled-plt.s +#ld: -shared -melf64lriscv +#objdump: -dr -j .plt +#as: -march=rv64gc_zicfilp + +[^:]*: *file format elf64-.*riscv + +Disassembly of section \.plt: + +[0-9a-f]+ <\.plt>: +.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0 +.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t2,0x[0-9a-f]+ +.*:[ ]+[0-9a-f]+[ ]+sub[ ]+t1,t1,t3 +.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t2\) # [0-9a-f]+ <\.got\.plt> +.*:[ ]+[0-9a-f]+[ ]+addi[ ]+t1,t1,-64 +.*:[ ]+[0-9a-f]+[ ]+addi[ ]+t0,t2,[0-9]+ +.*:[ ]+[0-9a-f]+[ ]+srli[ ]+t1,t1,0x1 +.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t0,8\(t0\) +.*:[ ]+[0-9a-f]+[ ]+jr[ ]+t3 +.*:[ ]+[0-9a-f]+[ ]+nop +.*:[ ]+[0-9a-f]+[ ]+nop +.*:[ ]+[0-9a-f]+[ ]+nop + +[0-9a-f]+ <foo@plt>: +.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0 +.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x[0-9a-f]+ +.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <foo> +.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3 + +[0-9a-f]+ <bar@plt>: +.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0 +.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x1 +.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <bar> +.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3 diff --git a/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s new file mode 100644 index 0000000..628fca8 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s @@ -0,0 +1,21 @@ + .text + .globl _start + .type _start,@function +_start: + call foo + call bar + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f /* name length */ + .long 5f - 2f /* data length */ + .long 5 /* note type */ +0: .asciz "GNU" /* vendor name */ +1: + .p2align 3 +2: .long 0xc0000000 /* pr_type. */ + .long 4f - 3f /* pr_datasz. */ +3: + .long 0x1 /* CFI_LP. */ +4: + .p2align 3 +5: diff --git a/libctf/ctf-create.c b/libctf/ctf-create.c index 25dd44d..5820830 100644 --- a/libctf/ctf-create.c +++ b/libctf/ctf-create.c @@ -788,7 +788,7 @@ ctf_add_struct_sized (ctf_dict_t *fp, uint32_t flag, const char *name, size_t initial_vlen = sizeof (ctf_lmember_t) * INITIAL_VLEN; /* Promote root-visible forwards to structs. */ - if (name != NULL) + if (name != NULL && flag == CTF_ADD_ROOT) type = ctf_lookup_by_rawname (fp, CTF_K_STRUCT, name); /* Prohibit promotion if this type was ctf_open()ed. */ @@ -832,7 +832,7 @@ ctf_add_union_sized (ctf_dict_t *fp, uint32_t flag, const char *name, size_t initial_vlen = sizeof (ctf_lmember_t) * INITIAL_VLEN; /* Promote root-visible forwards to unions. */ - if (name != NULL) + if (name != NULL && flag == CTF_ADD_ROOT) type = ctf_lookup_by_rawname (fp, CTF_K_UNION, name); /* Prohibit promotion if this type was ctf_open()ed. */ @@ -875,7 +875,7 @@ ctf_add_enum (ctf_dict_t *fp, uint32_t flag, const char *name) size_t initial_vlen = sizeof (ctf_enum_t) * INITIAL_VLEN; /* Promote root-visible forwards to enums. */ - if (name != NULL) + if (name != NULL && flag == CTF_ADD_ROOT) type = ctf_lookup_by_rawname (fp, CTF_K_ENUM, name); /* Prohibit promotion if this type was ctf_open()ed. */ @@ -1073,7 +1073,7 @@ ctf_add_enumerator (ctf_dict_t *fp, ctf_id_t enid, const char *name, /* Enumeration constant names are only added, and only checked for duplicates, if the enum they are part of is a root-visible type. */ - if (root == CTF_ADD_ROOT && ctf_dynhash_lookup (fp->ctf_names, name)) + if (root && ctf_dynhash_lookup (fp->ctf_names, name)) { if (fp->ctf_flags & LCTF_STRICT_NO_DUP_ENUMERATORS) return (ctf_set_errno (ofp, ECTF_DUPLICATE)); diff --git a/libctf/doc/ctf-spec.texi b/libctf/doc/ctf-spec.texi index 5b2b881..b9f60d3 100644 --- a/libctf/doc/ctf-spec.texi +++ b/libctf/doc/ctf-spec.texi @@ -829,7 +829,7 @@ of kind @code{CTF_K_UNKNOWN}. @item 4 @tab @code{CTF_K_ARRAY} -@tab An array. @xref{Arrays}. +@tab An array or SIMD vector. @xref{Arrays}. @item 5 @tab @code{CTF_K_FUNCTION} @@ -1064,7 +1064,7 @@ unused and will become used in future. @tindex CTF_FP_LDCPLX @item 6 @tab @code{CTF_FP_LDOUBLE} -@tab This is a @code{long double}. +@tab This is a @code{long double}, or quad-precision IEEE 754-2008 @code{__float128}. @tindex CTF_FP_LDOUBLE @item 7 @tab @code{CTF_FP_INTRVL} @@ -1232,6 +1232,13 @@ Arrays are encoded as types of kind @code{CTF_K_ARRAY} in a @code{ctf_stype_t}. Both size and kind for arrays are zero. The variable-length data is a @code{ctf_array_t}: @code{vlen} in the info word should be disregarded and is always zero. +@c In CTFv4 and BTF, the @code{kind_flag} member of @{ctf_array_t} is not set. + +SIMD vectors are also encoded as types of kind @code{CTF_K_ARRAY} in a +@code{ctf_stype_t}. Both size and kind for arrays are zero. The +variable-length data is a @code{ctf_array_t}: @code{vlen} in the info word +should be disregarded and is always zero. +@c In CTFv4 and BTF, the @code{kind_flag} member of @{ctf_array_t} is set. @verbatim typedef struct ctf_array diff --git a/libctf/testsuite/libctf-writable/ctf-nonroot-addition.c b/libctf/testsuite/libctf-writable/ctf-nonroot-addition.c new file mode 100644 index 0000000..94ce05c --- /dev/null +++ b/libctf/testsuite/libctf-writable/ctf-nonroot-addition.c @@ -0,0 +1,38 @@ +/* Make sure adding a non-root-visible type after adding a root-visible forward + adds a new type rather than promoting and returning the existing one. */ + +#include <ctf-api.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +int +main (int argc, char *argv[]) +{ + ctf_dict_t *fp; + ctf_id_t root, nonroot; + int err; + + if ((fp = ctf_create (&err)) == NULL) + { + fprintf (stderr, "Cannot create: %s\n", ctf_errmsg (err)); + return 1; + } + + if ((root = ctf_add_forward (fp, CTF_ADD_ROOT, "foo", CTF_K_ENUM)) == CTF_ERR) + goto add_err; + + if ((nonroot = ctf_add_enum (fp, CTF_ADD_NONROOT, "foo")) == CTF_ERR) + goto add_err; + + if (nonroot == root) + fprintf (stderr, "Non-root addition should not promote root-visible forwards\n"); + else + printf ("All done.\n"); + + ctf_dict_close (fp); + return 0; + + add_err: + fprintf (stderr, "Cannot add: %s\n", ctf_errmsg (ctf_errno (fp))); +} diff --git a/libctf/testsuite/libctf-writable/ctf-nonroot-addition.lk b/libctf/testsuite/libctf-writable/ctf-nonroot-addition.lk new file mode 100644 index 0000000..b944f73 --- /dev/null +++ b/libctf/testsuite/libctf-writable/ctf-nonroot-addition.lk @@ -0,0 +1 @@ +All done. diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index b2fd497..60facbf 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -5216,6 +5216,8 @@ const aarch64_sys_ins_reg aarch64_sys_regs_dc[] = { "isw", CPENS (0, C7, C6, 2), F_HASXT, AARCH64_NO_FEATURES }, { "igdvac", CPENS (0, C7, C6, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) }, { "igdsw", CPENS (0, C7, C6, 6), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) }, + { "cigdvaps", CPENS (0, C7, C15, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURES (2, MEMTAG, PoPS) }, + { "civaps", CPENS (0, C7, C15, 1), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (PoPS) }, { "cvac", CPENS (3, C7, C10, 1), F_HASXT, AARCH64_NO_FEATURES }, { "cgvac", CPENS (3, C7, C10, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) }, { "cgdvac", CPENS (3, C7, C10, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) }, diff --git a/opcodes/po/es.po b/opcodes/po/es.po index f29dac3..767355d 100644 --- a/opcodes/po/es.po +++ b/opcodes/po/es.po @@ -1,30 +1,49 @@ -# Spanish messages for opcodes-2.30.0. +# Spanish messages for opcodes. # Copyright (C) 2002- 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the binutils package. # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2002 - 2012. # Francisco Javier Serrador <fserrador@gmail.com>, 2018. +# Antonio Ceballos <aceballos@gmail.com>, 2025. +# msgid "" msgstr "" -"Project-Id-Version: opcodes 2.30.0\n" -"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2018-01-13 13:44+0000\n" -"PO-Revision-Date: 2018-04-01 17:33+0200\n" -"Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n" +"Project-Id-Version: opcodes 2.43.90\n" +"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" +"POT-Creation-Date: 2025-01-19 12:20+0000\n" +"PO-Revision-Date: 2025-06-09 06:49+0200\n" +"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n" "Language-Team: Spanish <es@tp.org.es>\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 2.0.4\n" + +#: aarch64-asm.c:895 +msgid "specified register cannot be read from" +msgstr "el registro especificado no puede leerse de" + +#: aarch64-asm.c:904 +msgid "specified register cannot be written to" +msgstr "el registro especificado no puede escribirse en" #. Invalid option. -#: aarch64-dis.c:81 arc-dis.c:781 arm-dis.c:6155 +#: aarch64-dis.c:103 arc-dis.c:795 arm-dis.c:11968 kvx-dis.c:154 #, c-format -msgid "Unrecognised disassembler option: %s\n" -msgstr "Irreconocida opción de desensamblador: %s\n" +msgid "unrecognised disassembler option: %s" +msgstr "opción de desensamblador no reconocida: %s" -#: aarch64-dis.c:3264 +#: aarch64-dis.c:4096 +#, c-format +msgid "this `%s' should have an immediately preceding `%s'" +msgstr "este «%s» debería tener inmediatamente antes un «%s»" + +#: aarch64-dis.c:4103 +#, c-format +msgid "expected `%s' after previous `%s'" +msgstr "se esperaba «%s» tras el «%s» previo" + +#: aarch64-dis.c:4529 #, c-format msgid "" "\n" @@ -33,244 +52,362 @@ msgid "" msgstr "" "\n" "Las siguientes opciones de desensamblador específicas de AARCH64 se admiten\n" -"para usarse con el interruptor -M (las opciones múltiples se deben separar con\n" -"comas):\n" +"para usarse con el interruptor -M (si hay varias opciones, deben separarse\n" +"con comas):\n" -#: aarch64-dis.c:3268 +#: aarch64-dis.c:4533 #, c-format msgid "" "\n" " no-aliases Don't print instruction aliases.\n" msgstr "" "\n" -" no-aliases No escribir instrucciones aliases.\n" +" no-aliases No imprime alias de las instrucciones.\n" -#: aarch64-dis.c:3271 +#: aarch64-dis.c:4536 #, c-format msgid "" "\n" " aliases Do print instruction aliases.\n" msgstr "" "\n" -" aliases No escribir alias de instrucción.\n" +" aliases Imprime alias de las instrucciones.\n" + +#: aarch64-dis.c:4539 +#, c-format +msgid "" +"\n" +" no-notes Don't print instruction notes.\n" +msgstr "" +"\n" +" no-notes No imprime notas de las instrucciones.\n" + +#: aarch64-dis.c:4542 +#, c-format +msgid "" +"\n" +" notes Do print instruction notes.\n" +msgstr "" +"\n" +" nties Imprime notas de las instrucciones.\n" -#: aarch64-dis.c:3275 +#: aarch64-dis.c:4546 #, c-format msgid "" "\n" " debug_dump Temp switch for debug trace.\n" msgstr "" "\n" -" debug_dump intercambio temporal para trazo depurador.\n" +" debug_dump Opción temporal para traza de depuración.\n" -#: aarch64-dis.c:3279 mips-dis.c:2601 mips-dis.c:2609 mips-dis.c:2611 -#: riscv-dis.c:509 +#: aarch64-dis.c:4550 arc-dis.c:1585 arc-dis.c:1608 arc-dis.c:1611 +#: kvx-dis.c:1586 loongarch-dis.c:337 mips-dis.c:2903 mips-dis.c:2915 +#: mips-dis.c:2918 nfp-dis.c:3002 riscv-dis.c:1660 riscv-dis.c:1663 #, c-format msgid "\n" msgstr "\n" -#: aarch64-opc.c:1311 +#: aarch64-opc.c:1471 msgid "immediate value" msgstr "valor inmediato" -#: aarch64-opc.c:1321 +#: aarch64-opc.c:1481 msgid "immediate offset" msgstr "desplazamiento inmediato" -#: aarch64-opc.c:1331 +#: aarch64-opc.c:1491 msgid "register number" -msgstr "el número de registro" +msgstr "número de registro" -#: aarch64-opc.c:1341 +#: aarch64-opc.c:1501 msgid "register element index" -msgstr "índice de elemento registro" +msgstr "índice de elemento de registro" -#: aarch64-opc.c:1351 +#: aarch64-opc.c:1511 msgid "shift amount" -msgstr "cantidad shift" +msgstr "cantidad de desplazamiento" -#: aarch64-opc.c:1363 +#: aarch64-opc.c:1523 msgid "multiplier" msgstr "multiplicador" -#: aarch64-opc.c:1436 +#: aarch64-opc.c:1692 +msgid "expected a selection register in the range w12-w15" +msgstr "se esperaba un registro de selección en el rango w12-w15" + +#: aarch64-opc.c:1696 +msgid "expected a selection register in the range w8-w11" +msgstr "se esperaba un registro de selección en el rango w8-w11" + +#: aarch64-opc.c:1715 +msgid "starting offset is not a multiple of 2" +msgstr "el desplazamiento de inicio no es un múltiplo de 2" + +#: aarch64-opc.c:1716 +msgid "starting offset is not a multiple of 4" +msgstr "el desplazamiento de inicio no es un múltiplo de 4" + +#: aarch64-opc.c:1724 +msgid "expected a single offset rather than a range" +msgstr "se esperaba un desplazamiento singular en lugar de un rango" + +#: aarch64-opc.c:1728 +msgid "expected a range of two offsets" +msgstr "se esperaba un rango de dos desplazamientos" + +#: aarch64-opc.c:1731 +msgid "expected a range of four offsets" +msgstr "se esperaba un rango de cuatro desplazamientos" + +#: aarch64-opc.c:1812 +msgid "second reg in pair should be xzr if first is xzr" +msgstr "el segundo reg de la pareja debería ser xzr si el primero es xzr" + +#: aarch64-opc.c:1826 msgid "reg pair must start from even reg" -msgstr "pareja reg deben iniciar desde reg par" +msgstr "la pareja de reg debe empezar en reg par" -#: aarch64-opc.c:1442 +#: aarch64-opc.c:1832 msgid "reg pair must be contiguous" -msgstr "pareja reg deben ser continuos" +msgstr "la pareja de reg debe ser contigua" -#: aarch64-opc.c:1456 +#: aarch64-opc.c:1846 msgid "extraneous register" msgstr "registro extraño" -#: aarch64-opc.c:1462 +#: aarch64-opc.c:1852 msgid "missing register" -msgstr "ausente registro" +msgstr "registro ausente" -#: aarch64-opc.c:1473 +#: aarch64-opc.c:1863 msgid "stack pointer register expected" -msgstr "requerido registro de puntero de pila" - -#: aarch64-opc.c:1496 -msgid "z0-z15 expected" -msgstr "se esperaba z0-z15" - -#: aarch64-opc.c:1497 -msgid "z0-z7 expected" -msgstr "se esperaba z0-z7" - -#: aarch64-opc.c:1523 -msgid "invalid register list" -msgstr "invalida lista de registros" +msgstr "se esperaba registro de puntero de pila" -#: aarch64-opc.c:1537 -msgid "p0-p7 expected" -msgstr "se esperaba p0-p7" +#: aarch64-opc.c:2000 aarch64-opc.c:2016 +msgid "start register out of range" +msgstr "registro de inicio fuera de rango" -#: aarch64-opc.c:1563 aarch64-opc.c:1571 +#: aarch64-opc.c:2209 aarch64-opc.c:2217 aarch64-opc.c:2240 msgid "unexpected address writeback" -msgstr "dirección trasera inesperada" +msgstr "«writeback» de dirección inesperada" -#: aarch64-opc.c:1582 +#: aarch64-opc.c:2228 msgid "address writeback expected" -msgstr "dirección trasera esperada" +msgstr "se esperaba «writeback» de dirección" -#: aarch64-opc.c:1629 +#: aarch64-opc.c:2288 msgid "negative or unaligned offset expected" -msgstr "esperaba desplazamiento no aliniado o negativo" +msgstr "se esperaba desplazamiento negativo o no alineado" -#: aarch64-opc.c:1656 +#: aarch64-opc.c:2345 msgid "invalid register offset" -msgstr "invalida registro desplazado" +msgstr "desplazamiento de registro no válido" -#: aarch64-opc.c:1678 +#: aarch64-opc.c:2367 msgid "invalid post-increment amount" -msgstr "invalida cantidad post-incremental" +msgstr "cantidad post-incremental no válida" -#: aarch64-opc.c:1694 aarch64-opc.c:2171 +#: aarch64-opc.c:2383 aarch64-opc.c:2933 msgid "invalid shift amount" -msgstr "invalida cantidad shift" +msgstr "cantidad de desplazamiento no válida" -#: aarch64-opc.c:1707 +#: aarch64-opc.c:2396 msgid "invalid extend/shift operator" -msgstr "invalida operador extend/shift" +msgstr "operador de extensión/desplazamiento no válido" -#: 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 -msgid "immediate out of range" -msgstr "inmediato fuera de rango" - -#: aarch64-opc.c:1775 aarch64-opc.c:1817 aarch64-opc.c:1866 aarch64-opc.c:1900 +#: aarch64-opc.c:2470 aarch64-opc.c:2512 aarch64-opc.c:2576 aarch64-opc.c:2610 msgid "invalid addressing mode" -msgstr "invalida modo de direccionamiento" +msgstr "modo de direccionamiento no válido" -#: aarch64-opc.c:1858 +#: aarch64-opc.c:2568 msgid "index register xzr is not allowed" -msgstr "registro indexado xzr no está permitido" +msgstr "el registro de índice xzr no está permitido" -#: 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:2637 +msgid "invalid increment amount" +msgstr "cantidad de incremento no válida" + +#: aarch64-opc.c:2720 aarch64-opc.c:2742 aarch64-opc.c:2966 aarch64-opc.c:2974 +#: aarch64-opc.c:3040 aarch64-opc.c:3069 msgid "invalid shift operator" -msgstr "invalida operador shift" +msgstr "operador de desplazamiento no válido" -#: aarch64-opc.c:1986 +#: aarch64-opc.c:2726 msgid "shift amount must be 0 or 12" -msgstr "cantidad shift debe ser 0 o 12" +msgstr "la cantidad de desplazamiento tiene que ser 0 o 12" + +#: aarch64-opc.c:2732 aarch64-opc.c:2767 aarch64-opc.c:2786 aarch64-opc.c:2794 +#: aarch64-opc.c:2886 aarch64-opc.c:3063 aarch64-opc.c:3163 aarch64-opc.c:3176 +msgid "immediate out of range" +msgstr "fuera de rango inmediato" -#: aarch64-opc.c:2009 +#: aarch64-opc.c:2749 msgid "shift amount must be a multiple of 16" -msgstr "cantidad shift debe ser un múltiplo de 16" +msgstr "la cantidad de desplazamiento tiene que ser múltiplo de 16" -#: aarch64-opc.c:2021 +#: aarch64-opc.c:2761 msgid "negative immediate value not allowed" -msgstr "valor inmediato negativo no está permitido" +msgstr "valor inmediato negativo no permitido" -#: aarch64-opc.c:2136 +#: aarch64-opc.c:2897 msgid "immediate zero expected" -msgstr "esperado cero inmediaro" +msgstr "se esperaba cero inmediato" -#: aarch64-opc.c:2150 +#: aarch64-opc.c:2911 msgid "rotate expected to be 0, 90, 180 or 270" -msgstr "rotación experada para ser 0, 90, 180, 270" +msgstr "rotación esperada 0, 90, 180 o 270" -#: aarch64-opc.c:2160 +#: aarch64-opc.c:2922 msgid "rotate expected to be 90 or 270" -msgstr "rotación esperada a ser 90 o 270" +msgstr "rotación esperada 90 o 270" -#: aarch64-opc.c:2220 +#: aarch64-opc.c:2982 msgid "shift is not permitted" -msgstr "shift no está inválido" +msgstr "no está permitido desplazamiento" -#: aarch64-opc.c:2245 +#: aarch64-opc.c:3007 msgid "invalid value for immediate" -msgstr "invalida valor para inmediato" +msgstr "valor no válido para inmediato" -#: aarch64-opc.c:2270 +#: aarch64-opc.c:3032 msgid "shift amount must be 0 or 16" -msgstr "cantidad shift debe ser 0 o 16" +msgstr "la cantidad de desplazamiento tiene que ser 0 o 16" -#: aarch64-opc.c:2291 +#: aarch64-opc.c:3053 msgid "floating-point immediate expected" -msgstr "esperaba coma flotante inmediata" +msgstr "se esperaba coma flotante inmediata" -#: aarch64-opc.c:2325 +#: aarch64-opc.c:3087 msgid "no shift amount allowed for 8-bit constants" -msgstr "ninguna cantidad shift permitida para constantes de 8-bit" +msgstr "no se permite ninguna cantidad de desplazamiento para constantes de 8 bits" -#: aarch64-opc.c:2335 +#: aarch64-opc.c:3097 msgid "shift amount must be 0 or 8" -msgstr "cantidad shift debe ser 0 u 8" +msgstr "la cantidad de desplazamiento debe ser 0 u 8" -#: aarch64-opc.c:2348 +#: aarch64-opc.c:3110 msgid "immediate too big for element size" -msgstr "inmediato muy grande para tamaño de elemento" +msgstr "inmediato demasiado grande para tamaño de elemento" -#: aarch64-opc.c:2355 +#: aarch64-opc.c:3117 msgid "invalid arithmetic immediate" -msgstr "invalida aritmética inmediata" +msgstr "inmediato aritmético no válido" -#: aarch64-opc.c:2369 +#: aarch64-opc.c:3131 msgid "floating-point value must be 0.5 or 1.0" -msgstr "valor coma flotante debe ser 0'5 o 1'0" +msgstr "el valor de coma flotante tiene que ser 0,5 o 1,0" -#: aarch64-opc.c:2379 +#: aarch64-opc.c:3141 msgid "floating-point value must be 0.5 or 2.0" -msgstr "valor coma flotante debe ser 0'5 o 2'0" +msgstr "el valor de coma flotante tiene que ser 0,5 o 2,0" -#: aarch64-opc.c:2389 +#: aarch64-opc.c:3151 msgid "floating-point value must be 0.0 or 1.0" -msgstr "valor coma-flotante debe ser 0'0 o 1'0" +msgstr "el valor de coma flotante tiene que ser 0,0 o 1,0" -#: aarch64-opc.c:2420 +#: aarch64-opc.c:3182 msgid "invalid replicated MOV immediate" -msgstr "invalida MOV replicado inmediato" +msgstr "inmediato MOV replicado no válido" + +#: aarch64-opc.c:3240 +msgid "byte index must be a multiple of 8" +msgstr "el indice de byte tiene que ser múltiplo de 8" + +#: aarch64-opc.c:3278 +msgid "the register-index form of PRFM does not accept opcodes in the range 24-31" +msgstr "la forma de registro-indice de PRFM no acepta códigos de operación en el rango 24-31" -#: aarch64-opc.c:2535 +#: aarch64-opc.c:3347 msgid "extend operator expected" -msgstr "extiende operador esperado" +msgstr "se esperaba operador de extensión" -#: aarch64-opc.c:2548 +#: aarch64-opc.c:3360 msgid "missing extend operator" -msgstr "ausente operador extendido" +msgstr "operador de extensión ausente" -#: aarch64-opc.c:2554 +#: aarch64-opc.c:3366 msgid "'LSL' operator not allowed" -msgstr "operador 'LSL' no admitido" +msgstr "operador «LSL» no permitido" -#: aarch64-opc.c:2575 +#: aarch64-opc.c:3387 msgid "W register expected" -msgstr "W como registro esperado" +msgstr "se esperaba registro W" -#: aarch64-opc.c:2586 +#: aarch64-opc.c:3398 msgid "shift operator expected" -msgstr "operador shift esperado" +msgstr "se esperaba operador de desplazamiento" -#: aarch64-opc.c:2593 +#: aarch64-opc.c:3405 msgid "'ROR' operator not allowed" -msgstr "operador 'ROR' no admitido" +msgstr "operador «ROR» no permitido" + +#: aarch64-opc.c:4952 +msgid "reading from a write-only register" +msgstr "lectura de un registro de sólo escritura" + +#: aarch64-opc.c:4954 +msgid "writing to a read-only register" +msgstr "escritura de un registro de sólo lectura" + +#: aarch64-opc.c:5483 +msgid "the three register operands must be distinct from one another" +msgstr "los tres operandos de registro deben ser distintos unos de otros" + +#: aarch64-opc.c:5594 +msgid "destination register differs from preceding instruction" +msgstr "el registro de destino difiere de la instrucción precedente" + +#: aarch64-opc.c:5597 +msgid "source register differs from preceding instruction" +msgstr "el registro de origen difiere de la instrucción precedente" + +#: aarch64-opc.c:5600 +msgid "size register differs from preceding instruction" +msgstr "el registro de tamaño difiere de la instrucción precedente" + +#: aarch64-opc.c:5648 +msgid "instruction opens new dependency sequence without ending previous one" +msgstr "la instrucción abre una nueva serie de dependencias sin haber terminado la anterior" + +#: aarch64-opc.c:5677 +msgid "previous `movprfx' sequence not closed" +msgstr "la secuencia «movprfx» anterior no está cerrada" + +#: aarch64-opc.c:5697 +msgid "SVE instruction expected after `movprfx'" +msgstr "se esperaba una instrucción SVE después de «movprfx»" + +#: aarch64-opc.c:5710 +msgid "SVE `movprfx' compatible instruction expected" +msgstr "se esperaba una instrucción compatible con «movprfx» SVE" + +#: aarch64-opc.c:5798 +msgid "predicated instruction expected after `movprfx'" +msgstr "se esperaba una instrucción predicada después de «movprfx»" + +#: aarch64-opc.c:5810 +msgid "merging predicate expected due to preceding `movprfx'" +msgstr "se esperaba un predicado de fusión a causa del «movprfx» precedente" + +#: aarch64-opc.c:5822 +msgid "predicate register differs from that in preceding `movprfx'" +msgstr "el registro de predicado difiere del del «movprfx» precedente" + +#: aarch64-opc.c:5841 +msgid "output register of preceding `movprfx' not used in current instruction" +msgstr "el registro de salida del «movprfx» precedente no se utiliza en la instrucción actual" + +#: aarch64-opc.c:5854 +msgid "output register of preceding `movprfx' expected as output" +msgstr "el registro de salida del «movprfx» precedente se esperaba como salida" + +#: aarch64-opc.c:5866 +msgid "output register of preceding `movprfx' used as input" +msgstr "registro de salida del «movprfx» precedente utilizado como entrada" + +#: aarch64-opc.c:5882 +msgid "register size not compatible with previous `movprfx'" +msgstr "tamaño de registro no compatible con el «movprfx» precedente" #: alpha-opc.c:154 msgid "branch operand unaligned" @@ -278,9 +415,9 @@ msgstr "operando de ramificación sin alinear" #: alpha-opc.c:170 alpha-opc.c:186 msgid "jump hint unaligned" -msgstr "omite pista sin alinear" +msgstr "pista de salto sin alinear" -#: arc-dis.c:377 +#: arc-dis.c:368 msgid "" "\n" "Warning: disassembly may be wrong due to guessed opcode class choice.\n" @@ -288,270 +425,317 @@ msgid "" "\t\t\t\t" msgstr "" "\n" -"Aviso: desensemblado quizá está equivocado debido a clase de opcode adivinadas elegidas.\n" -"Utilice .M<class[,class]> para seleccionar la clase correcta de código de operación.\n" +"Aviso: puede que el desensamblado sea incorrecto a causa de la elección de la clase de código de operación adivinada.\n" +"Utilice .M<clase[,clase]> para seleccionar la(s) clase(s) correcta(s) de código de operación.\n" "\t\t\t\t" -#: arc-dis.c:823 -#, c-format -msgid "Unrecognised disassembler CPU option: %s\n" -msgstr "Opción CPU no reconocida del desensamblador: %s\n" +#: arc-dis.c:430 +msgid "An error occurred while generating the extension instruction operations" +msgstr "Se ha producido un error al generar las operaciones de instrucción extendidas" -#: arc-dis.c:1385 +#: arc-dis.c:838 #, c-format +msgid "unrecognised disassembler CPU option: %s" +msgstr "opción de CPU del desensamblador no reconocida: %s" + +#: arc-dis.c:1300 msgid "" "\n" -"The following ARC specific disassembler options are supported for use \n" -"with -M switch (multiple options should be separated by commas):\n" +"Warning: illegal use of double register pair.\n" msgstr "" "\n" -"Se admiten las siguientes opciones de desensamblador específicas de S/390\n" -"para usarse con el interruptor -M (las opciones múltiples deben separarse\n" -"con comas):\n" +"Aviso: uso ilegal de pareja de registro doble.\n" -#: arc-dis.c:1397 -#, c-format -msgid " dsp Recognize DSP instructions.\n" -msgstr " dsp Reconoce instrucciones DSP.\n" +#: arc-dis.c:1467 +msgid "Enforce the designated architecture while decoding." +msgstr "Impone la arquitectura designada al descodificar." -#: arc-dis.c:1399 -#, c-format -msgid " spfp Recognize FPX SP instructions.\n" -msgstr " spfp Reconoce instrucciones FPX SP.\n" +#: arc-dis.c:1469 +msgid "Recognize DSP instructions." +msgstr "Reconoce instrucciones DSP." -#: arc-dis.c:1401 -#, c-format -msgid " dpfp Recognize FPX DP instructions.\n" -msgstr " dpfp Reconoce instrucciones FPX DP.\n" +#: arc-dis.c:1471 +msgid "Recognize FPX SP instructions." +msgstr "Reconoce instrucciones FPX SP." -#: arc-dis.c:1403 -#, c-format -msgid " quarkse_em Recognize FPU QuarkSE-EM instructions.\n" -msgstr " quarkse_em Reconocer instrucciones FPU QuarkSE-EM.\n" +#: arc-dis.c:1473 +msgid "Recognize FPX DP instructions." +msgstr "Reconoce instrucciones FPX DP." -#: arc-dis.c:1405 -#, c-format -msgid " fpuda Recognize double assist FPU instructions.\n" -msgstr " fpuda Reconoce instrucciones FPU doble asistida.\n" +#: arc-dis.c:1475 +msgid "Recognize FPU QuarkSE-EM instructions." +msgstr "Reconoce instrucciones FPU QuarkSE-EM." + +#: arc-dis.c:1477 +msgid "Recognize double assist FPU instructions." +msgstr "Reconoce instrucciones FPU de asistencia doble." + +#: arc-dis.c:1479 +msgid "Recognize single precision FPU instructions." +msgstr "Reconoce instrucciones FPU de precisión sencilla." -#: arc-dis.c:1407 +#: arc-dis.c:1481 +msgid "Recognize double precision FPU instructions." +msgstr "Reconoce instrucciones FPU de doble precisión." + +#: arc-dis.c:1483 +msgid "Recognize NPS400 instructions." +msgstr "Reconoce instrucciones NPS400" + +#: arc-dis.c:1485 +msgid "Use only hexadecimal number to print immediates." +msgstr "Solo emplea números en hexadecimal para imprimir inmediatos." + +#: arc-dis.c:1560 #, c-format -msgid " fpus Recognize single precision FPU instructions.\n" -msgstr " fpus Reconoce instrucciones de precisión simple FPU.\n" +msgid "" +"\n" +"The following ARC specific disassembler options are supported for use \n" +"with the -M switch (multiple options should be separated by commas):\n" +msgstr "" +"\n" +"Se admiten las siguientes opciones de desensamblador específicas de ARC\n" +"para usar con el indicador -M (si hay varias opciones, deben separarse\n" +"con comas):\n" -#: arc-dis.c:1409 +#: arc-dis.c:1594 mips-dis.c:2910 riscv-dis.c:1655 #, c-format -msgid " fpud Recognize double precision FPU instructions.\n" -msgstr " fpud Reconoce instrucciones precisión doble FPU.\n" +msgid "" +"\n" +" For the options above, the following values are supported for \"%s\":\n" +" " +msgstr "" +"\n" +" Para las opciones anteriores, se admiten los siguientes valores de «%s»:\n" +" " -#: arc-dis.c:1411 +#: arc-dis.c:1604 #, c-format -msgid " hex Use only hexadecimal number to print immediates.\n" -msgstr " hex Solo emplear número hexadecimal para escrituras inmediatas.\n" +msgid "" +"\n" +" " +msgstr "" +"\n" +" " -#: arc-opc.c:41 arc-opc.c:64 arc-opc.c:90 +#: arc-opc.c:41 arc-opc.c:64 arc-opc.c:90 arc-opc.c:114 msgid "LP_COUNT register cannot be used as destination register" -msgstr "LP_COUNT del registro no puede ser empleado como registro destinatario" +msgstr "El registro LP_COUNT no puede utilizarse como registro destino" #: arc-opc.c:88 msgid "cannot use odd number destination register" -msgstr "no puede utilizar número impar de registro destinatario" +msgstr "no se puede utilizar un número impar de registro destino" -#: arc-opc.c:101 +#: arc-opc.c:101 arc-opc.c:112 msgid "cannot use odd number source register" -msgstr "no puede usar un número impar de registro origen" +msgstr "no se puede utilziar un número impar de registro origen" -#: arc-opc.c:114 +#: arc-opc.c:127 msgid "operand is not zero" -msgstr "operando no es cero" +msgstr "el operando no es cero" -#: arc-opc.c:173 +#: arc-opc.c:186 msgid "register R30 is a limm indicator" -msgstr "requieren R30 es un limm indicador" +msgstr "el registro R30 es un indicador limm" -#: arc-opc.c:175 +#: arc-opc.c:188 msgid "register out of range" msgstr "registro fuera de rango" -#: arc-opc.c:194 +#: arc-opc.c:207 msgid "register must be R0" msgstr "el registro debe ser R0" -#: arc-opc.c:212 +#: arc-opc.c:225 msgid "register must be R1" msgstr "el registro debe ser R1" -#: arc-opc.c:229 +#: arc-opc.c:242 msgid "register must be R2" msgstr "el registro debe ser R2" -#: arc-opc.c:246 +#: arc-opc.c:259 msgid "register must be R3" msgstr "el registro debe ser R3" -#: arc-opc.c:263 +#: arc-opc.c:276 msgid "register must be SP" msgstr "el registro debe ser SP" -#: arc-opc.c:280 +#: arc-opc.c:293 msgid "register must be GP" msgstr "el registro debe ser GP" -#: arc-opc.c:297 +#: arc-opc.c:310 msgid "register must be PCL" msgstr "el registro debe ser PCL" -#: arc-opc.c:314 +#: arc-opc.c:327 msgid "register must be BLINK" msgstr "el registro debe ser BLINK" -#: arc-opc.c:331 +#: arc-opc.c:344 msgid "register must be ILINK1" msgstr "el registro debe ser ILINK1" -#: arc-opc.c:348 +#: arc-opc.c:361 msgid "register must be ILINK2" msgstr "el registro debe ser ILINK2" #. ARC NPS400 Support: See comment near head of file. -#: arc-opc.c:379 arc-opc.c:417 arc-opc.c:455 arc-opc.c:720 +#: arc-opc.c:392 arc-opc.c:430 arc-opc.c:468 arc-opc.c:737 msgid "register must be either r0-r3 or r12-r15" -msgstr "el registro debe estar o entre r8-r3 o r12-r15" +msgstr "el registro debe estar entre r0-r3 o r12-r15" -#: arc-opc.c:506 +#: arc-opc.c:519 msgid "accepted values are from -1 to 6" -msgstr "valores aceptados son entre -1 a 6" +msgstr "valores aceptados son entre -1 y 6" -#: arc-opc.c:535 +#: arc-opc.c:548 msgid "first register of the range should be r13" -msgstr "primer registro del rango debería ser r13" +msgstr "el primer registro del rango debería ser r13" -#: arc-opc.c:537 +#: arc-opc.c:550 msgid "last register of the range doesn't fit" -msgstr "último registro del rango no cabe" +msgstr "el último registro del rango no cabe" -#: arc-opc.c:557 arc-opc.c:572 +#: arc-opc.c:570 arc-opc.c:585 msgid "invalid register number, should be fp" -msgstr "invalida número de regostro, debería ser fp" +msgstr "número de registro no válido; debería ser fp" -#: arc-opc.c:594 +#: arc-opc.c:607 msgid "invalid register number, should be blink" -msgstr "invalida número registrado, debería ser blink" +msgstr "número de registro no válido; debería ser blink" -#: arc-opc.c:616 +#: arc-opc.c:629 msgid "invalid register number, should be pcl" -msgstr "invalida número de registro, debería ser pcl" +msgstr "número de registro no válido; debería ser pcl" -#: arc-opc.c:768 +#: arc-opc.c:785 msgid "invalid size, should be 1, 2, 4, or 8" -msgstr "tamaño inválido, debería ser 1,2,3, o 8" +msgstr "tamaño no válido; debería ser 1, 2, 4 u 8" -#: arc-opc.c:813 +#: arc-opc.c:830 msgid "invalid immediate, must be 1, 2, or 4" -msgstr "invalida inmediata, debe ser 1, 2 o 4" +msgstr "inmediato no válido, debe ser 1, 2 o 4" -#: arc-opc.c:852 +#: arc-opc.c:869 msgid "invalid value for CMEM ld/st immediate" -msgstr "valor inválido para CMEM ld/st inmediato" +msgstr "valor no válido para inmediato CMEM ld/st" -#: arc-opc.c:879 +#: arc-opc.c:896 msgid "invalid position, should be 0, 16, 32, 48 or 64." -msgstr "posición no válida, debería ser 0, 16, 32, 48 o 64." +msgstr "posición no válida; debería ser 0, 16, 32, 48 o 64." -#: arc-opc.c:913 +#: arc-opc.c:930 msgid "invalid position, should be 16, 32, 64 or 128." msgstr "posición no válida, debería ser 16, 32, 64 o 128." -#: arc-opc.c:935 +#: arc-opc.c:952 msgid "invalid size value must be on range 1-64." -msgstr "invalida valor del tamaño debe estar en el rango 1- 64." +msgstr "valor del tamaño no válido; debe estar en el rango 1-64." -#: arc-opc.c:966 +#: arc-opc.c:983 msgid "invalid position, should be 0, 8, 16, or 24" -msgstr "posición no válida, debería ser 0, 8, 16, o 24" +msgstr "posición no válida; debería ser 0, 8, 16 o 24" -#: arc-opc.c:991 +#: arc-opc.c:1008 msgid "invalid size, value must be " -msgstr "invalida valor, valor debe ser " +msgstr "tamaño no válido; el valor debe ser " -#: arc-opc.c:1065 +#: arc-opc.c:1082 msgid "value out of range 1 - 256" -msgstr "valor fuera de rango 1 - 256" +msgstr "valor fuera del rango 1 - 256" -#: arc-opc.c:1074 +#: arc-opc.c:1091 msgid "value must be power of 2" msgstr "el valor debe ser potencia de 2" -#: arc-opc.c:1127 +#: arc-opc.c:1144 msgid "value must be in the range 0 to 28" -msgstr "el valor debe estar en el rango 0 a 28" +msgstr "el valor debe estar en el rango de 0 a 28" -#: arc-opc.c:1149 +#: arc-opc.c:1166 msgid "value must be in the range 1 to " -msgstr "el valor debe estar en el rango 1 a " +msgstr "el valor debe estar en el rango de 1 a " -#: arc-opc.c:1179 +#: arc-opc.c:1196 msgid "value must be in the range 0 to 240" -msgstr "el valor debe estar en el rango 0 a 240" +msgstr "el valor debe estar en el rango de 0 a 240" -#: arc-opc.c:1181 +#: arc-opc.c:1198 msgid "value must be a multiple of 16" msgstr "el valor debe ser un múltiplo de 16" -#: arc-opc.c:1201 +#: arc-opc.c:1218 msgid "invalid address type for operand" -msgstr "invalida tipo direccional para operando" +msgstr "tipo de dirección no válido para operando" -#: arc-opc.c:1235 +#: arc-opc.c:1252 msgid "value must be in the range 0 to 31" -msgstr "el valor debe estar en el rango 0 a 31" +msgstr "el valor debe estar en el rango de 0 a 31" -#: arc-opc.c:1260 +#: arc-opc.c:1277 msgid "invalid position, should be one of: 0,4,8,...124." -msgstr "posición no válida, debería ser una de: 0,4,8,...124." +msgstr "posición no válida; debería ser una de estas: 0,4,8,...124." -#: arm-dis.c:3229 +#: arm-dis.c:4934 msgid "Select raw register names" -msgstr "Seleccionar nombres de registro crudo" +msgstr "Seleccionar nombres de registros brutos" -#: arm-dis.c:3231 +#: arm-dis.c:4936 msgid "Select register names used by GCC" -msgstr "Seleccione nombres de registro empleados por GCC" +msgstr "Seleccionar nombres de registro empleados por GCC" -#: arm-dis.c:3233 +#: arm-dis.c:4938 msgid "Select register names used in ARM's ISA documentation" -msgstr "Seleccione nombres de registro empleado en documentación ISA de ARM" +msgstr "Seleccionar nombres de registro empleado en documentación ISA de ARM" -#: arm-dis.c:3235 +#: arm-dis.c:4940 msgid "Assume all insns are Thumb insns" -msgstr "Asume todos instns son Thum insns" +msgstr "Asumir que todas las insns son insns Thumb" -#: arm-dis.c:3236 +#: arm-dis.c:4941 msgid "Examine preceding label to determine an insn's type" -msgstr "Examina etiquetas precedentes para determinar un tipo de insn" +msgstr "Examinar la etiqueta precedente para determinar el tipo de una insn" -#: arm-dis.c:3237 +#: arm-dis.c:4942 msgid "Select register names used in the APCS" -msgstr "Seleccione nombres de registro empleados dentro de APCS" +msgstr "Seleccionar los nombres de registro empleados en el de APCS" -#: arm-dis.c:3239 +#: arm-dis.c:4944 msgid "Select register names used in the ATPCS" -msgstr "Seleccione nombres de registro dentro de ATPCS" +msgstr "Seleccionar las nombres de registro utilizados en el ATPCS" -#: arm-dis.c:3241 +#: arm-dis.c:4946 msgid "Select special register names used in the ATPCS" -msgstr "Seleccione nombres de registro especiales empleado en el ATPCS" +msgstr "Seleccionar los nombres de registros especiales empleados en el ATPCS" -#: arm-dis.c:3639 -msgid "<illegal precision>" -msgstr "<precisión ilegal>" +#: arm-dis.c:4948 +msgid "Enable CDE extensions for coprocessor N space" +msgstr "Habilitar las extensiones CDE para el espacio N del coprocesador" -#: arm-dis.c:6148 +#: arm-dis.c:11929 #, c-format -msgid "Unrecognised register name set: %s\n" -msgstr "Irreconocido registro del conjunto de nombre: %s\n" +msgid "unrecognised register name set: %s" +msgstr "nombre del registro seleccionado no reconocido: %s" -#: arm-dis.c:6852 +#: arm-dis.c:11943 +#, c-format +msgid "cde coprocessor not between 0-7: %s" +msgstr "el coprocesador cde no está entre 0 y 7: %s" + +#: arm-dis.c:11949 +#, c-format +msgid "coproc must have an argument: %s" +msgstr "coproc debe tener un argumento: %s" + +#: arm-dis.c:11962 +#, c-format +msgid "coprocN argument takes options \"generic\", \"cde\", or \"CDE\": %s" +msgstr "el argumento de coprocN toma las opciones «generic», «cde» o «CDE»: %s" + +#: arm-dis.c:12684 #, c-format msgid "" "\n" @@ -562,25 +746,64 @@ msgstr "" "Se admiten las siguientes opciones de desensamblador específicas de ARM\n" "para usarse con el interruptor -M:\n" -#: avr-dis.c:115 avr-dis.c:136 +#: avr-dis.c:130 avr-dis.c:152 #, c-format msgid "undefined" msgstr "indefinido" -#: avr-dis.c:215 +#: avr-dis.c:251 #, c-format -msgid "Internal disassembler error" -msgstr "Error interno del desensamblador" +msgid "internal disassembler error" +msgstr "error interno del desensamblador" -#: avr-dis.c:268 +#: avr-dis.c:312 #, c-format msgid "unknown constraint `%c'" -msgstr "desconoce restricción `%c'" +msgstr "restricción desconocida «%c»" + +#: bpf-dis.c:55 +#, c-format +msgid "" +"\n" +"The following BPF specific disassembler options are supported for use\n" +"with the -M switch (multiple options should be separated by commas):\n" +msgstr "" +"\n" +"Se admiten las siguientes opciones de desensamblador específicas de BPF\n" +"para usarse con el interruptor -M (si hay varias opciones, deben separarse\n" +"con comas):\n" + +#: bpf-dis.c:59 +#, c-format +msgid "" +" pseudoc Use pseudo-c syntax.\n" +" v1,v2,v3,v4,xbpf Version of the BPF ISA to use.\n" +" hex,oct,dec Output numerical base for immediates.\n" +msgstr "" +" pseudoc Utiliza syntaxis pseudo-c.\n" +" v1,v2,v3,v4,xbpf Versión del ISA BPF que se utilizará.\n" +" hex,oct,dec Base numérica de salida para los inmediatos.\n" -#: cgen-asm.c:351 epiphany-ibld.c:201 fr30-ibld.c:201 frv-ibld.c:201 -#: ip2k-ibld.c:201 iq2000-ibld.c:201 lm32-ibld.c:201 m32c-ibld.c:201 -#: m32r-ibld.c:201 mep-ibld.c:201 mt-ibld.c:201 or1k-ibld.c:201 -#: xc16x-ibld.c:201 xstormy16-ibld.c:201 +#. The option without '=' should be defined above. +#: bpf-dis.c:90 riscv-dis.c:130 riscv-dis.c:167 +#, c-format +msgid "unrecognized disassembler option: %s" +msgstr "opción del desensamblador no reconocida: %s" + +#: bpf-dis.c:166 +#, c-format +msgid "unknown BPF CPU version %u\n" +msgstr "versión de CPU BPF desconocida %u\n" + +#: bpf-dis.c:296 +#, c-format +msgid "# internal error, unknown tag in opcode template (%s)" +msgstr "# error interno; etiqueta desconocida en la plantilla de códigos de operación (%s)" + +#: cgen-asm.c:351 epiphany-ibld.c:203 fr30-ibld.c:203 frv-ibld.c:203 +#: ip2k-ibld.c:203 iq2000-ibld.c:203 lm32-ibld.c:203 m32c-ibld.c:203 +#: m32r-ibld.c:203 mep-ibld.c:203 mt-ibld.c:203 or1k-ibld.c:203 +#: xstormy16-ibld.c:203 #, c-format msgid "operand out of range (%ld not between %ld and %ld)" msgstr "operando fuera de rango (%ld no está entre %ld y %ld)" @@ -590,7 +813,27 @@ msgstr "operando fuera de rango (%ld no está entre %ld y %ld)" msgid "operand out of range (%lu not between %lu and %lu)" msgstr "operando fuera de rango (%lu no está entre %lu y %lu)" -#: d30v-dis.c:254 +#: cris-desc.c:2622 +#, c-format +msgid "internal error: cris_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: cris_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: cris-desc.c:2710 +#, c-format +msgid "internal error: cris_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: cris_cgen_cpu_open: argumento «%d» no disponible" + +#: cris-desc.c:2729 +#, c-format +msgid "internal error: cris_cgen_cpu_open: no endianness specified" +msgstr "error interno: cris_cgen_cpu_open: «endianness» no especificada" + +#: d30v-dis.c:232 +#, c-format +msgid "illegal id (%d)" +msgstr "id ilegal (%d)" + +#: d30v-dis.c:259 #, c-format msgid "<unknown register %d>" msgstr "<registro %d desconocido>" @@ -601,14 +844,23 @@ msgstr "<registro %d desconocido>" msgid "Unknown error %d\n" msgstr "Error desconocido %d\n" -#: dis-buf.c:70 +#: dis-buf.c:67 #, c-format -msgid "Address 0x%s is out of bounds.\n" -msgstr "La dirección 0x%s está fuera de los límites.\n" +msgid "Address 0x%<PRIx64> is out of bounds.\n" +msgstr "La dirección 0x%<PRIx64> está fuera de los límites.\n" + +#: disassemble.c:854 +#, c-format +msgid "assertion fail %s:%d" +msgstr "fallo de aserción %s:%d" + +#: disassemble.c:855 +msgid "Please report this bug" +msgstr "Por favor, informe de este error" #: epiphany-asm.c:68 msgid "register unavailable for short instructions" -msgstr "el registro no está disponible para instrucciones short" +msgstr "el registro no está disponible para instrucciones cortas" #: epiphany-asm.c:115 msgid "register name used as immediate value" @@ -631,7 +883,7 @@ msgstr "no se admite la reubicación de byte" #: m32r-asm.c:53 mep-asm.c:241 mep-asm.c:259 mep-asm.c:274 mep-asm.c:289 #: mep-asm.c:301 or1k-asm.c:54 msgid "missing `)'" -msgstr "ausente `)'" +msgstr "falta un «)»" #: epiphany-asm.c:270 msgid "ABORT: unknown operand" @@ -641,153 +893,158 @@ msgstr "ABORTAR: operando desconocido" msgid "Not a pc-relative address." msgstr "No es una dirección relativa a pc." -#: 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:576 xstormy16-asm.c:277 #, c-format -msgid "Unrecognized field %d while parsing.\n" -msgstr "Irreconocido el campo %d al interpretar.\n" +msgid "internal error: unrecognized field %d while parsing" +msgstr "error interno: campo %d no reconocido al analizar" -#: 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:628 xstormy16-asm.c:329 msgid "missing mnemonic in syntax string" -msgstr "ausente mnemónico en la cadena sintáctica" +msgstr "mnemónico ausente en la cadena sintáctica" #. 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:763 +#: or1k-asm.c:767 or1k-asm.c:856 or1k-asm.c:963 xstormy16-asm.c:464 +#: xstormy16-asm.c:468 xstormy16-asm.c:557 xstormy16-asm.c:664 msgid "unrecognized instruction" msgstr "no se reconoce la instrucción" -#: 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:810 xstormy16-asm.c:511 #, c-format msgid "syntax error (expected char `%c', found `%c')" -msgstr "error sintáctico (se esperaba el carácter `%c', se encontró `%c')" +msgstr "error sintáctico (se esperaba el carácter «%c», se encontró «%c»)" -#: 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:820 xstormy16-asm.c:521 #, c-format msgid "syntax error (expected char `%c', found end of instruction)" -msgstr "error sintáctico (se esperaba el carácter `%c', se encontró el final de la instrucción)" +msgstr "error sintáctico (se esperaba el carácter «%c», se encontró el final de la instrucción)" -#: 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:850 xstormy16-asm.c:551 msgid "junk at end of line" msgstr "basura al final de la línea" -#: 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:962 xstormy16-asm.c:663 msgid "unrecognized form of instruction" -msgstr "no se reconoce la forma de instrucción" +msgstr "no se reconoce la forma de la instrucción" -#: 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:976 xstormy16-asm.c:677 #, c-format msgid "bad instruction `%.50s...'" -msgstr "instrucción equivocada `%.50s...'" +msgstr "instrucción equivocada «%.50s...»" -#: 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:979 xstormy16-asm.c:680 #, c-format msgid "bad instruction `%.50s'" -msgstr "instrucción equivocada `%.50s'" +msgstr "instrucción equivocada «%.50s»" + +#: epiphany-desc.c:2110 +#, c-format +msgid "internal error: epiphany_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: epiphany_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: epiphany-desc.c:2198 +#, c-format +msgid "internal error: epiphany_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: epiphany_cgen_cpu_open: argumento «%d» no disponible" + +#: epiphany-desc.c:2217 +#, c-format +msgid "internal error: epiphany_cgen_cpu_open: no endianness specified" +msgstr "error interno: epiphany_cgen_cpu_open: «endianness» no especificada" #. 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 -#: mt-dis.c:41 nds32-dis.c:39 or1k-dis.c:41 xc16x-dis.c:41 xstormy16-dis.c:41 +#: lm32-dis.c:41 m32c-dis.c:41 m32r-dis.c:41 mep-dis.c:41 mmix-dis.c:294 +#: mt-dis.c:41 nds32-dis.c:64 or1k-dis.c:41 xstormy16-dis.c:41 msgid "*unknown*" msgstr "*desconocida*" -#: 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:1202 +#: mt-dis.c:288 or1k-dis.c:175 xstormy16-dis.c:169 #, c-format -msgid "Unrecognized field %d while printing insn.\n" -msgstr "Irreconocido el campo %d mientras escribe insn.\n" +msgid "internal error: unrecognized field %d while printing insn" +msgstr "error interno: campo %d no reconocido al imprimir la insn" -#: epiphany-ibld.c:164 fr30-ibld.c:164 frv-ibld.c:164 ip2k-ibld.c:164 -#: iq2000-ibld.c:164 lm32-ibld.c:164 m32c-ibld.c:164 m32r-ibld.c:164 -#: mep-ibld.c:164 mt-ibld.c:164 or1k-ibld.c:164 xc16x-ibld.c:164 -#: xstormy16-ibld.c:164 +#: epiphany-ibld.c:166 fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 +#: iq2000-ibld.c:166 lm32-ibld.c:166 m32c-ibld.c:166 m32r-ibld.c:166 +#: mep-ibld.c:166 mt-ibld.c:166 or1k-ibld.c:166 xstormy16-ibld.c:166 #, c-format msgid "operand out of range (%ld not between %ld and %lu)" msgstr "operando fuera de rango (%ld no está entre %ld y %lu)" -#: 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:187 fr30-ibld.c:187 frv-ibld.c:187 ip2k-ibld.c:187 +#: iq2000-ibld.c:187 lm32-ibld.c:187 m32c-ibld.c:187 m32r-ibld.c:187 +#: mep-ibld.c:187 mt-ibld.c:187 or1k-ibld.c:187 xstormy16-ibld.c:187 #, c-format -msgid "Unrecognized field %d while building insn.\n" -msgstr "Irreconocido el campo %d al compilar insn.\n" +msgid "operand out of range (0x%lx not between 0 and 0x%lx)" +msgstr "operando fuera de rango (0x%lx no está entre 0 y %lx)" -#: 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:885 fr30-ibld.c:740 frv-ibld.c:866 ip2k-ibld.c:617 +#: iq2000-ibld.c:723 lm32-ibld.c:644 m32c-ibld.c:1741 m32r-ibld.c:675 +#: mep-ibld.c:1218 mt-ibld.c:759 or1k-ibld.c:738 xstormy16-ibld.c:688 #, c-format -msgid "Unrecognized field %d while decoding insn.\n" -msgstr "Irreconocido el campo %d al decodificar insn.\n" +msgid "internal error: unrecognized field %d while building insn" +msgstr "error interno: campo %d no reconocido al construir la insn" -#: 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:1180 fr30-ibld.c:946 frv-ibld.c:1184 ip2k-ibld.c:693 +#: iq2000-ibld.c:899 lm32-ibld.c:749 m32c-ibld.c:2903 m32r-ibld.c:813 +#: mep-ibld.c:1818 mt-ibld.c:980 or1k-ibld.c:897 xstormy16-ibld.c:835 #, c-format -msgid "Unrecognized field %d while getting int operand.\n" -msgstr "Irreconocido el campo %d al obtener el operando int.\n" +msgid "internal error: unrecognized field %d while decoding insn" +msgstr "error interno: campo %d no reconocido al descodificar la insn" -#: 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:1324 fr30-ibld.c:1093 frv-ibld.c:1463 ip2k-ibld.c:768 +#: iq2000-ibld.c:1031 lm32-ibld.c:839 m32c-ibld.c:3521 m32r-ibld.c:927 +#: mep-ibld.c:2289 mt-ibld.c:1181 or1k-ibld.c:993 xstormy16-ibld.c:946 #, c-format -msgid "Unrecognized field %d while getting vma operand.\n" -msgstr "Irreconocido el campo %d al obtener el operando vma.\n" +msgid "internal error: unrecognized field %d while getting int operand" +msgstr "error interno: campo %d no reconocido al obtener el operando int" -#: 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:1450 fr30-ibld.c:1222 frv-ibld.c:1724 ip2k-ibld.c:825 +#: iq2000-ibld.c:1145 lm32-ibld.c:911 m32c-ibld.c:4121 m32r-ibld.c:1023 +#: mep-ibld.c:2742 mt-ibld.c:1364 or1k-ibld.c:1071 xstormy16-ibld.c:1039 #, c-format -msgid "Unrecognized field %d while setting int operand.\n" -msgstr "Irreconocido el campo %d al establecer el operando int.\n" +msgid "internal error: unrecognized field %d while getting vma operand" +msgstr "error interno: campo %d no reconocido al obtener el campo vma" -#: 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:1583 fr30-ibld.c:1354 frv-ibld.c:1992 ip2k-ibld.c:885 +#: iq2000-ibld.c:1266 lm32-ibld.c:990 m32c-ibld.c:4709 m32r-ibld.c:1125 +#: mep-ibld.c:3156 mt-ibld.c:1554 or1k-ibld.c:1156 xstormy16-ibld.c:1139 #, c-format -msgid "Unrecognized field %d while setting vma operand.\n" -msgstr "Irreconocido el campo %d al establecer el operando vma.\n" +msgid "internal error: unrecognized field %d while setting int operand" +msgstr "error interno: campo %d no reconocido al establecer el operando int" + +#: epiphany-ibld.c:1706 fr30-ibld.c:1476 frv-ibld.c:2250 ip2k-ibld.c:935 +#: iq2000-ibld.c:1377 lm32-ibld.c:1059 m32c-ibld.c:5287 m32r-ibld.c:1217 +#: mep-ibld.c:3560 mt-ibld.c:1734 or1k-ibld.c:1231 xstormy16-ibld.c:1229 +#, c-format +msgid "internal error: unrecognized field %d while setting vma operand" +msgstr "error interno: campo %d no reconocido al establecer el operando vma" #: fr30-asm.c:93 m32c-asm.c:872 m32c-asm.c:879 msgid "Register number is not valid" @@ -805,9 +1062,24 @@ msgstr "El registro debe estar entre r8 y r15" msgid "Register list is not valid" msgstr "La lista de registros no es válida" +#: fr30-desc.c:1587 +#, c-format +msgid "internal error: fr30_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: fr30_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: fr30-desc.c:1675 +#, c-format +msgid "internal error: fr30_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: fr30_cgen_cpu_open: argumento «%d» no disponible" + +#: fr30-desc.c:1694 +#, c-format +msgid "internal error: fr30_cgen_cpu_open: no endianness specified" +msgstr "error interno: fr30_cgen_cpu_open: «endianness» no especificada" + #: frv-asm.c:608 msgid "missing `]'" -msgstr "ausente `]'" +msgstr "falta un «]»" #: frv-asm.c:611 frv-asm.c:621 msgid "Special purpose register number is out of range" @@ -821,32 +1093,51 @@ msgstr "El valor del operando A debe ser 0 o 1" msgid "register number must be even" msgstr "el número de registro debe ser par" -#: h8300-dis.c:313 +#: frv-desc.c:6327 #, c-format -msgid "Hmmmm 0x%x" -msgstr "Hmmmm 0x%x" +msgid "internal error: frv_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: frv_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" -#: h8300-dis.c:690 +#: frv-desc.c:6415 #, c-format -msgid "Don't understand 0x%x \n" -msgstr "No entiende 0x%x \n" +msgid "internal error: frv_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: frv_cgen_cpu_open: argumento «%d» no disponible" + +#: frv-desc.c:6434 +#, c-format +msgid "internal error: frv_cgen_cpu_open: no endianness specified" +msgstr "error interno: frv_cgen_cpu_open: «endianness» no especificada" + +#: frv-opc.c:459 +#, c-format +msgid "internal error: bad vliw->next_slot value" +msgstr "error interno: valor de vliw->next_slot incorrecto" + +#: frv-opc.c:769 +#, c-format +msgid "internal error: bad major code" +msgstr "error interno: código mayor incorrecto" -#: h8500-dis.c:123 +#: frv-opc.c:819 #, c-format -msgid "can't cope with insert %d\n" -msgstr "no se puede lidiar con insert %d\n" +msgid "internal error: bad insn unit" +msgstr "error interno: unidad de insn incorrecta" + +#: h8300-dis.c:309 +#, c-format +msgid "Hmmmm 0x%x" +msgstr "Hmmmm 0x%x" -#. Couldn't understand anything. -#: h8500-dis.c:323 +#: h8300-dis.c:617 #, c-format -msgid "%02x\t\t*unknown*" -msgstr "%02x\t\t*desconocido*" +msgid "Don't understand 0x%x \n" +msgstr "No se entiende 0x%x \n" -#: i386-dis.c:12330 +#: i386-dis.c:8727 msgid "<internal disassembler error>" msgstr "<error interno del desensamblador>" -#: i386-dis.c:12625 +#: i386-dis.c:8975 #, c-format msgid "" "\n" @@ -857,266 +1148,103 @@ msgstr "" "Se admiten las siguientes opciones de desensamblador específicas de i386/x86-64\n" "con el interruptor -M (las opciones múltiples se deben separar con comas):\n" -#: i386-dis.c:12629 +#: i386-dis.c:8979 #, c-format msgid " x86-64 Disassemble in 64bit mode\n" -msgstr " x86-64 Desensambla en modo 64bit\n" +msgstr " x86-64 Desensambla en modo de 64 bits\n" -#: i386-dis.c:12630 +#: i386-dis.c:8980 #, c-format msgid " i386 Disassemble in 32bit mode\n" -msgstr " i386 Desensambla en modo 32bit\n" +msgstr " i386 Desensambla en modo de 32 bits\n" -#: i386-dis.c:12631 +#: i386-dis.c:8981 #, c-format msgid " i8086 Disassemble in 16bit mode\n" -msgstr " i8086 Desensambla en modo 16bit\n" +msgstr " i8086 Desensambla en modo de 16 bits\n" -#: i386-dis.c:12632 +#: i386-dis.c:8982 #, c-format msgid " att Display instruction in AT&T syntax\n" -msgstr " att Enseña las instrucciones con sintaxis AT&T\n" +msgstr " att Muestra las instrucciones con sintaxis AT&T\n" -#: i386-dis.c:12633 +#: i386-dis.c:8983 #, c-format msgid " intel Display instruction in Intel syntax\n" -msgstr " intel Enseña las instrucciones con sintaxis Intel\n" +msgstr " intel Muestra las instrucciones con sintaxis Intel\n" -#: i386-dis.c:12634 +#: i386-dis.c:8984 #, c-format msgid "" -" att-mnemonic\n" -" Display instruction in AT&T mnemonic\n" +" att-mnemonic (AT&T syntax only)\n" +" Display instruction with AT&T mnemonic\n" msgstr "" -" att-mnemonic\n" -" Enseña las instrucciones con mnemónicos AT&T\n" +" att-mnemonic (sintaxis AT&T únicamente)\n" +" Muestra la instrucción con mnemónico AT&T\n" -#: i386-dis.c:12636 +#: i386-dis.c:8986 #, c-format msgid "" -" intel-mnemonic\n" -" Display instruction in Intel mnemonic\n" +" intel-mnemonic (AT&T syntax only)\n" +" Display instruction with Intel mnemonic\n" msgstr "" -" intel-mnemonic\n" -" Enseña las instrucciones con mnemónicos Intel\n" +" intel-mnemonic (sintaxis AT&T únicamente)\n" +" Muestra la instrucción con mnemónico Intel\n" -#: i386-dis.c:12638 +#: i386-dis.c:8988 #, c-format msgid " addr64 Assume 64bit address size\n" -msgstr " addr64 Asume un tamaño de dirección de 64bit\n" +msgstr " addr64 Asume un tamaño de dirección de 64 bit\n" -#: i386-dis.c:12639 +#: i386-dis.c:8989 #, c-format msgid " addr32 Assume 32bit address size\n" -msgstr " addr32 Asume un tamaño de dirección de 32bit\n" +msgstr " addr32 Asume un tamaño de dirección de 32 bits\n" -#: i386-dis.c:12640 +#: i386-dis.c:8990 #, c-format msgid " addr16 Assume 16bit address size\n" -msgstr " addr16 Asume un tamaño de dirección de 16bit\n" +msgstr " addr16 Asume un tamaño de dirección de 16 bits\n" -#: i386-dis.c:12641 +#: i386-dis.c:8991 #, c-format msgid " data32 Assume 32bit data size\n" -msgstr " data32 Asume un tamaño de datos de 32bit\n" +msgstr " data32 Asume un tamaño de datos de 32 bits\n" -#: i386-dis.c:12642 +#: i386-dis.c:8992 #, c-format msgid " data16 Assume 16bit data size\n" -msgstr " data16 Asume un tamaño de datos de 16bit\n" +msgstr " data16 Asume un tamaño de datos de 16 bits\n" -#: i386-dis.c:12643 +#: i386-dis.c:8993 #, c-format msgid " suffix Always display instruction suffix in AT&T syntax\n" msgstr " suffix Siempre muestra el sufijo de instrucción con sintaxis AT&T\n" -#: i386-dis.c:12644 +#: i386-dis.c:8994 #, c-format msgid " amd64 Display instruction in AMD64 ISA\n" -msgstr " amd64 Enseña las instrucciones en AMD64 ISA\n" +msgstr " amd64 Muestra las instrucciones en ISA AMD64\n" -#: i386-dis.c:12645 +#: i386-dis.c:8995 #, c-format msgid " intel64 Display instruction in Intel64 ISA\n" -msgstr " intel64 Enseña instrucción dentro de ISA Intel64\n" +msgstr " intel64 Muestra instrucción en ISA Intel64\n" -#: i386-dis.c:13190 +#: i386-dis.c:9795 msgid "64-bit address is disabled" -msgstr "dirección 64-bit está desactivada" - -#: i386-gen.c:711 ia64-gen.c:306 -#, c-format -msgid "%s: Error: " -msgstr "%s: Error: " - -#: i386-gen.c:890 -#, c-format -msgid "%s: %d: Unknown bitfield: %s\n" -msgstr "%s: %d: Campo de bits desconocido: %s\n" - -#: i386-gen.c:892 -#, c-format -msgid "Unknown bitfield: %s\n" -msgstr "Campo de bits desconocido: %s\n" - -#: i386-gen.c:955 -#, c-format -msgid "%s: %d: Missing `)' in bitfield: %s\n" -msgstr "%s: %d: Falta un `)' en el campo de bits: %s\n" - -#: i386-gen.c:1256 -#, c-format -msgid "can't find i386-opc.tbl for reading, errno = %s\n" -msgstr "no se puede encontrar i386-opc.tbl para lectura, errno =%s\n" - -#: i386-gen.c:1387 -#, c-format -msgid "can't find i386-reg.tbl for reading, errno = %s\n" -msgstr "no se puede encontrar i386-reg.tbl para lectura, errno = %s\n" - -#: i386-gen.c:1465 -#, c-format -msgid "can't create i386-init.h, errno = %s\n" -msgstr "no se puede crear i386-init.h, errno = %s\n" - -#: i386-gen.c:1555 ia64-gen.c:2829 -#, c-format -msgid "unable to change directory to \"%s\", errno = %s\n" -msgstr "no se puede modificar el directorio a \"%s\", errno = %s\n" - -#: i386-gen.c:1567 i386-gen.c:1570 -#, c-format -msgid "CpuMax != %d!\n" -msgstr "CpuMax != %d!\n" - -#: i386-gen.c:1574 -#, c-format -msgid "%d unused bits in i386_cpu_flags.\n" -msgstr "%d bits sin usar en i386_cpu_flags.\n" - -#: i386-gen.c:1581 -#, c-format -msgid "%d unused bits in i386_operand_type.\n" -msgstr "%d bits sin usar en i386_operand_type.\n" - -#: i386-gen.c:1595 -#, c-format -msgid "can't create i386-tbl.h, errno = %s\n" -msgstr "no se puede crear i386-tbl.h, errno = %s\n" - -#: ia64-gen.c:319 -#, c-format -msgid "%s: Warning: " -msgstr "%s: Aviso: " - -#: ia64-gen.c:505 ia64-gen.c:736 -#, c-format -msgid "multiple note %s not handled\n" -msgstr "no se maneja la nota múltiple %s\n" - -#: ia64-gen.c:616 -msgid "can't find ia64-ic.tbl for reading\n" -msgstr "no se puede encontrar ia64-ic.tbl para lectura\n" - -#: ia64-gen.c:818 -#, c-format -msgid "can't find %s for reading\n" -msgstr "no se puede encontrar %s para lectura\n" - -#: ia64-gen.c:1050 -#, c-format -msgid "" -"most recent format '%s'\n" -"appears more restrictive than '%s'\n" -msgstr "" -"el formato más reciente '%s'\n" -"parece más restrictivo que '%s'\n" - -#: ia64-gen.c:1061 -#, c-format -msgid "overlapping field %s->%s\n" -msgstr "traslapando campo %s→%s\n" - -#: ia64-gen.c:1258 -#, c-format -msgid "overwriting note %d with note %d (IC:%s)\n" -msgstr "se sobreescribe la nota %d con la nota %d (IC:%s)\n" - -#: ia64-gen.c:1465 -#, c-format -msgid "don't know how to specify %% dependency %s\n" -msgstr "no sabe cómo especificar la dependencia %% %s\n" - -#: ia64-gen.c:1487 -#, c-format -msgid "Don't know how to specify # dependency %s\n" -msgstr "No sabe cómo especificar la dependencia # %s\n" - -#: ia64-gen.c:1526 -#, c-format -msgid "IC:%s [%s] has no terminals or sub-classes\n" -msgstr "IC:%s [%s] no tiene terminales o sub-clases\n" - -#: ia64-gen.c:1529 -#, c-format -msgid "IC:%s has no terminals or sub-classes\n" -msgstr "IC:%s no tiene terminales o sub-clases\n" - -#: ia64-gen.c:1538 -#, c-format -msgid "no insns mapped directly to terminal IC %s [%s]" -msgstr "no hay insns distribuída directamente al IC terminal %s [%s]" - -#: ia64-gen.c:1541 -#, c-format -msgid "no insns mapped directly to terminal IC %s\n" -msgstr "no hay insns distribuída directamente al IC terminal %s\n" - -#: ia64-gen.c:1552 -#, c-format -msgid "class %s is defined but not used\n" -msgstr "se define la clase %s pero no se utiliza\n" - -#: ia64-gen.c:1565 -#, c-format -msgid "Warning: rsrc %s (%s) has no chks\n" -msgstr "Aviso: el rsrc %s (%s) no tiene chks\n" - -#: ia64-gen.c:1568 -#, c-format -msgid "Warning: rsrc %s (%s) has no chks or regs\n" -msgstr "Aviso: el rsrc %s (%s) no tiene chks o regs\n" - -#: ia64-gen.c:1572 -#, c-format -msgid "rsrc %s (%s) has no regs\n" -msgstr "el rsrc %s (%s) no tiene registros\n" - -#: ia64-gen.c:2464 -#, c-format -msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n" -msgstr "IC como nota de %d en el código de operación %s (IC:%s) tiene conflictos con el recurso %s nota %d\n" - -#: ia64-gen.c:2492 -#, c-format -msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n" -msgstr "IC como nota %d para el código de operación %s (IC:%s) en conflicto con recurso %s nota %d\n" - -#: ia64-gen.c:2506 -#, c-format -msgid "opcode %s has no class (ops %d %d %d)\n" -msgstr "el código de operación %s no tiene clase (ops %d %d %d)\n" +msgstr "la dirección de 64 bits está desactivada" #. We've been passed a w. Return with an error message so that #. cgen will try the next parsing option. #: ip2k-asm.c:81 msgid "W keyword invalid in FR operand slot." -msgstr "W como palabra clave inválida en del operando FR." +msgstr "palabra clave W no válida en la ranura del operando FR." #. Invalid offset present. #: ip2k-asm.c:106 msgid "offset(IP) is not a valid form" -msgstr "offset(IP) no es una forma válida" +msgstr "el desplazamiento(IP) no está en formato válido" #. Found something there in front of (DP) but it's out #. of range. @@ -1149,16 +1277,31 @@ msgstr "Se requiere una dirección de byte. - debe ser par." #: ip2k-asm.c:305 msgid "cgen_parse_address returned a symbol. Literal required." -msgstr "cgen_parse_address devolvió un símbolo. Requerido literal." +msgstr "cgen_parse_address devolvió un símbolo. Se requiere literal." #: ip2k-asm.c:360 msgid "percent-operator operand is not a symbol" -msgstr "el operando operador-porcentaje no es un símbolo" +msgstr "el operando del operador de porcentaje no es un símbolo" #: ip2k-asm.c:413 msgid "Attempt to find bit index of 0" msgstr "Se intentó encontrar un índice de bit de 0" +#: ip2k-desc.c:1016 +#, c-format +msgid "internal error: ip2k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: ip2k_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: ip2k-desc.c:1104 +#, c-format +msgid "internal error: ip2k_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: ip2k_cgen_cpu_open: argumento «%d» no disponible" + +#: ip2k-desc.c:1123 +#, c-format +msgid "internal error: ip2k_cgen_cpu_open: no endianness specified" +msgstr "error interno: ip2k_cgen_cpu_open: «endianness» no especificada" + #: iq2000-asm.c:112 iq2000-asm.c:142 msgid "immediate value cannot be register" msgstr "el valor inmediato no puede ser un registro" @@ -1169,7 +1312,61 @@ msgstr "el valor inmediato está fuera de rango" #: iq2000-asm.c:182 msgid "21-bit offset out of range" -msgstr "desplazamiento de 21-bit fuera de rango" +msgstr "desplazamiento de 21 bits fuera de rango" + +#: iq2000-desc.c:2021 +#, c-format +msgid "internal error: iq2000_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: iq2000_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: iq2000-desc.c:2109 +#, c-format +msgid "internal error: iq2000_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: iq2000_cgen_cpu_open: argumento «%d» no disponible" + +#: iq2000-desc.c:2128 +#, c-format +msgid "internal error: iq2000_cgen_cpu_open: no endianness specified" +msgstr "error interno: iq2000_cgen_cpu_open: «endianness» no especificada" + +#: kvx-dis.c:1571 +#, c-format +msgid "" +"\n" +"The following KVX specific disassembler options are supported for use\n" +"with the -M switch (multiple options should be separated by commas):\n" +msgstr "" +"\n" +"Se admiten las siguientes opciones de desensamblador específicas de KVX\n" +"para usarse con el interruptor -M (si hay varias opciones, se deben separar\n" +"con comas):\n" + +#: kvx-dis.c:1575 +#, c-format +msgid "" +"\n" +" pretty Print 32-bit words in natural order corresponding to re-ordered instruction.\n" +msgstr "" +"\n" +" pretty Imprime palabras de 32 bits en orden natural correspondientes a la instrucción reordenada.\n" + +#: kvx-dis.c:1579 +#, c-format +msgid "" +"\n" +" compact-assembly Do not emit a new line between bundles of instructions.\n" +msgstr "" +"\n" +" compact-assembly No emite nueva línea entre grupos de instrucciones.\n" + +#: kvx-dis.c:1583 +#, c-format +msgid "" +"\n" +" no-compact-assembly Emit a new line between bundles of instructions.\n" +msgstr "" +"\n" +" no-compact-assembly Emite nueva línea entre grupos de instrucciones.\n" #: lm32-asm.c:166 msgid "expecting gp relative address: gp(symbol)" @@ -1177,29 +1374,74 @@ msgstr "esperando dirección relativa gp: gp(símbolo)" #: lm32-asm.c:196 msgid "expecting got relative address: got(symbol)" -msgstr "esperando obtuvo una dirección relativa: got(símbolo)" +msgstr "esperando dirección relativa got: got(símbolo)" #: lm32-asm.c:226 msgid "expecting got relative address: gotoffhi16(symbol)" -msgstr "esperando obtuvo una dirección relativa: gotoffhi16(símbolo)" +msgstr "esperando dirección relativa got: gotoffhi16(símbolo)" #: lm32-asm.c:256 msgid "expecting got relative address: gotofflo16(symbol)" -msgstr "esperando obtuvo una dirección relativa: gotofflo16(símbolo)" +msgstr "esperando dirección relativa got: gotofflo16(símbolo)" + +#: lm32-desc.c:1003 +#, c-format +msgid "internal error: lm32_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: lm32_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: lm32-desc.c:1091 +#, c-format +msgid "internal error: lm32_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: lm32_cgen_cpu_open: argumento «%d» no disponible" -#: m10200-dis.c:157 m10300-dis.c:580 +#: lm32-desc.c:1110 +#, c-format +msgid "internal error: lm32_cgen_cpu_open: no endianness specified" +msgstr "error interno: lm32_cgen_cpu_open: «endianness» no especificada" + +#: loongarch-dis.c:329 +#, c-format +msgid "" +"\n" +"The following LoongArch disassembler options are supported for use\n" +"with the -M switch (multiple options should be separated by commas):\n" +msgstr "" +"\n" +"Se admiten las siguientes opciones de desensamblador específicas de LoongArch\n" +"para usarse con el interruptor -M (si hay varias opciones, se deben separar\n" +"con comas):\n" + +#: loongarch-dis.c:333 +#, c-format +msgid "" +"\n" +" no-aliases Use canonical instruction forms.\n" +msgstr "" +"\n" +" no-aliases Utiliza formatos de instrucción canónicos.\n" + +#: loongarch-dis.c:335 +#, c-format +msgid "" +"\n" +" numeric Print numeric register names, rather than ABI names.\n" +msgstr "" +"\n" +" numeric Imprime nombres de registro numéricos, en vez de nombres ABI.\n" + +#: m10200-dis.c:151 m10300-dis.c:574 #, c-format msgid "unknown\t0x%04lx" -msgstr "desconocido\t0x%04lx" +msgstr "desconocida\t0x%04lx" -#: m10200-dis.c:327 +#: m10200-dis.c:321 #, c-format msgid "unknown\t0x%02lx" -msgstr "desconocido\t0x%02lx" +msgstr "desconocida\t0x%02lx" #: m32c-asm.c:117 msgid "imm:6 immediate is out of range" -msgstr "imm:6 inmediato está fuera de rango" +msgstr "el inmediato imm:6 está fuera de rango" #: m32c-asm.c:145 #, c-format @@ -1253,7 +1495,7 @@ msgstr "el inmediato está fuera del rango 2-9" #: m32c-asm.c:568 msgid "Bit number for indexing general register is out of range 0-15" -msgstr "El número de bit para el registro general de indización está fuera del rango 0-15" +msgstr "El número de bit para el registro general de indexación está fuera del rango 0-15" #: m32c-asm.c:606 m32c-asm.c:662 msgid "bit,base is out of range" @@ -1269,23 +1511,48 @@ msgstr "no es un par r0l/r0h válido" #: m32c-asm.c:832 msgid "Invalid size specifier" -msgstr "Invalida especificador de tamaño" +msgstr "Especificador de tamaño no válido" + +#: m32c-desc.c:63034 +#, c-format +msgid "internal error: m32c_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: m32c_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: m32c-desc.c:63122 +#, c-format +msgid "internal error: m32c_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: m32c_cgen_cpu_open: argumento «%d» no disponible" -#: m68k-dis.c:1292 +#: m32c-desc.c:63141 +#, c-format +msgid "internal error: m32c_cgen_cpu_open: no endianness specified" +msgstr "error interno: m32c_cgen_cpu_open: «endianness» no especificada" + +#: m32r-desc.c:1366 +#, c-format +msgid "internal error: m32r_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: m32r_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: m32r-desc.c:1454 +#, c-format +msgid "internal error: m32r_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: m32r_cgen_cpu_open: argumento «%d» no disponible" + +#: m32r-desc.c:1473 +#, c-format +msgid "internal error: m32r_cgen_cpu_open: no endianness specified" +msgstr "error interno: m32r_cgen_cpu_open: «endianness» no especificada" + +#: m68k-dis.c:1405 #, c-format msgid "<function code %d>" msgstr "<código de función %d>" -#: m68k-dis.c:1455 +#: m68k-dis.c:1590 #, c-format msgid "<internal error in opcode table: %s %s>\n" msgstr "<error interno en la tabla de códigos de operación: %s %s>\n" -#: m88k-dis.c:678 -#, c-format -msgid "# <dis error: %08lx>" -msgstr "# <error de desensamblador: %08lx>" - #: mep-asm.c:129 msgid "Only $tp or $13 allowed for this opcode" msgstr "Sólo se permite $tp o $13 para este código de operación" @@ -1294,224 +1561,208 @@ msgstr "Sólo se permite $tp o $13 para este código de operación" msgid "Only $sp or $15 allowed for this opcode" msgstr "Sólo se permite $sp o $15 para este código de operación" -#: mep-asm.c:308 mep-asm.c:504 -#, c-format +#: mep-asm.c:309 mep-asm.c:506 +#, no-c-format msgid "invalid %function() here" -msgstr "invalida %funcion() aquí" +msgstr "%funcion() no válida aquí" -#: mep-asm.c:336 +#: mep-asm.c:337 msgid "Immediate is out of range -32768 to 32767" msgstr "El inmediato está fuera del rango -32768 a 32767" -#: mep-asm.c:356 +#: mep-asm.c:357 msgid "Immediate is out of range 0 to 65535" msgstr "El inmediato está fuera del rango 0 a 65535" -#: mep-asm.c:549 mep-asm.c:562 +#: mep-asm.c:551 mep-asm.c:564 msgid "Immediate is out of range -512 to 511" msgstr "El inmediato está fuera del rango -512 a 511" -#: mep-asm.c:554 mep-asm.c:563 +#: mep-asm.c:556 mep-asm.c:565 msgid "Immediate is out of range -128 to 127" msgstr "El inmediato está fuera del rango -128 a 127" -#: mep-asm.c:558 +#: mep-asm.c:560 msgid "Value is not aligned enough" msgstr "El valor no está suficientemente alineado" -#: mips-dis.c:1751 mips-dis.c:1977 +#: mep-desc.c:6227 #, c-format -msgid "# internal error, undefined operand in `%s %s'" -msgstr "# error interno, operando indiefinido en `%s %s'" +msgid "internal error: mep_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: mep_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" -#: mips-dis.c:2553 +#: mep-desc.c:6315 #, c-format -msgid "" -"\n" -"The following MIPS specific disassembler options are supported for use\n" -"with the -M switch (multiple options should be separated by commas):\n" -msgstr "" -"\n" -"Se admiten las siguientes opciones de desensamblador específicas de MIPS\n" -"para usarse con el interruptor -M (las opciones múltiples se deben separar\n" -"con comas):\n" +msgid "internal error: mep_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: mep_cgen_cpu_open: argumento «%d» no disponible" -#: mips-dis.c:2557 +#: mep-desc.c:6334 #, c-format -msgid "" -"\n" -" no-aliases Use canonical instruction forms.\n" -msgstr "" -"\n" -" no-aliases Utilizar formatos de instrucción canónico.\n" +msgid "internal error: mep_cgen_cpu_open: no endianness specified" +msgstr "error interno: mep_cgen_cpu_open: «endianness» no especificada" -#: mips-dis.c:2560 +#: mep-dis.c:662 #, c-format -msgid "" -"\n" -" msa Recognize MSA instructions.\n" -msgstr "" -"\n" -" msa Reconoce instrucciones MSA.\n" +msgid "illegal MEP INDEX setting '%x' in ELF header e_flags field" +msgstr "configuración «%x» de INDEX MEP ilegal en el campo e_flags de la cabecera ELF" -#: mips-dis.c:2563 +#: mips-dis.c:1907 mips-dis.c:2140 #, c-format -msgid "" -"\n" -" virt Recognize the virtualization ASE instructions.\n" -msgstr "" -"\n" -" virt Reconoce la virtualización de instrucciones ASE.\n" +msgid "# internal error, undefined operand in `%s %s'" +msgstr "# error interno, operando indiefinido en «%s %s»" -#: mips-dis.c:2566 -#, c-format -msgid "" -"\n" -" xpa Recognize the eXtended Physical Address (XPA)\n" -" ASE instructions.\n" -msgstr "" -"\n" -" xpa Reconoce instrucciones ASE eXtended Physical\n" -" Address (XPA).\n" +#: mips-dis.c:2745 +msgid "Use canonical instruction forms.\n" +msgstr "Utiliza formatos de instrucción canónicos.\n" -#: mips-dis.c:2570 -#, c-format -msgid "" -"\n" -" gpr-names=ABI Print GPR names according to specified ABI.\n" -" Default: based on binary being disassembled.\n" -msgstr "" -"\n" -" gpr-names=ABI Escribe nombres GPR de acuerdo a la ABI especificada.\n" -" Por defecto: basado en el binario a desensamblar.\n" +#: mips-dis.c:2747 +msgid "Recognize MSA instructions.\n" +msgstr "Reconoce instrucciones MSA.\n" -#: mips-dis.c:2574 -#, c-format +#: mips-dis.c:2749 +msgid "Recognize the virtualization ASE instructions.\n" +msgstr "Reconoce las instrucciones ASE de virtualización.\n" + +#: mips-dis.c:2751 msgid "" -"\n" -" fpr-names=ABI Print FPR names according to specified ABI.\n" -" Default: numeric.\n" +"Recognize the eXtended Physical Address (XPA) ASE\n" +" instructions.\n" msgstr "" -"\n" -" fpr-names=ABI Escribe los nombres FPR de acuerdo a la ABI especificada.\n" -" Por defecto: numérico.\n" +"Reconoce las instrucciones ASE de dirección\n" +" física extendida (XPA).\n" -#: mips-dis.c:2578 -#, c-format +#: mips-dis.c:2754 +msgid "Recognize the Global INValidate (GINV) ASE instructions.\n" +msgstr "Reconoce las instrucciones ASE de invalidación global (GINV).\n" + +#: mips-dis.c:2758 +msgid "Recognize the Loongson MultiMedia extensions Instructions (MMI) ASE instructions.\n" +msgstr "Reconoce las instrucciones ASE de las instrucciones de extensiones multimedia Loongson (MMI).\n" + +#: mips-dis.c:2762 +msgid "Recognize the Loongson Content Address Memory (CAM) instructions.\n" +msgstr "Reconoce las instrucciones ASE de memoria de direcciones de contenido Loongson (CAM).\n" + +#: mips-dis.c:2766 +msgid "Recognize the Loongson EXTensions (EXT) instructions.\n" +msgstr "Reconoce las instrucciones ASE de extensiones Loongson (EXT).\n" + +#: mips-dis.c:2770 +msgid "Recognize the Loongson EXTensions R2 (EXT2) instructions.\n" +msgstr "Reconoce las instrucciones ASE de extensiones R2 Loongson (EXT2).\n" + +#: mips-dis.c:2773 msgid "" -"\n" -" cp0-names=ARCH Print CP0 register names according to\n" -" specified architecture.\n" -" Default: based on binary being disassembled.\n" +"Print GPR names according to specified ABI.\n" +" Default: based on binary being disassembled.\n" msgstr "" -"\n" -" cp0-names=ARCH Muestra los nombres de registro CP0 de acuerdo a\n" -" la arquitectura especificada.\n" -" Por defecto: basado en el binario a desensamblar.\n" +"Imprime nombres GPR de acuerdo a la ABI especificada.\n" +" Por defecto: basado en el binario a desensamblar.\n" -#: mips-dis.c:2583 -#, c-format +#: mips-dis.c:2776 msgid "" -"\n" -" hwr-names=ARCH Print HWR names according to specified \n" -" architecture.\n" -" Default: based on binary being disassembled.\n" +"Print FPR names according to specified ABI.\n" +" Default: numeric.\n" msgstr "" -"\n" -" hwr-namess=ARCH Escribe los nombres HWR de acuerdo\n" -" a las arquitectura especificada.\n" -" Por defecto: basado en binario siendo desensamblada.\n" +"Imprime nombres FPR de acuerdo a la ABI especificada.\n" +" Por defecto: numérico.\n" -#: mips-dis.c:2588 -#, c-format +#: mips-dis.c:2779 msgid "" -"\n" -" reg-names=ABI Print GPR and FPR names according to\n" -" specified ABI.\n" +"Print CP0 register names according to specified architecture.\n" +" Default: based on binary being disassembled.\n" msgstr "" -"\n" -" reg-names=ABI Escribe los nombres GPR y FPR de acuerdo a\n" -" la ABI especificada.\n" +"Imprime nombres de registro CP0 de acuerdo a la arquitectura especificada.\n" +" Por defecto: basado en el binario a desensamblar.\n" -#: mips-dis.c:2592 -#, c-format +#: mips-dis.c:2783 msgid "" -"\n" -" reg-names=ARCH Print CP0 register and HWR names according to\n" -" specified architecture.\n" +"Print HWR names according to specified architecture.\n" +" Default: based on binary being disassembled.\n" msgstr "" -"\n" -" reg-names=ARCH Escribe el registro CP0 y los nombres HWR de acuerdo a\n" -" la arquitectura especificada.\n" +"Imprime nombres HWR de acuerdo a la arquitectura especificada.\n" +" Por defecto: basado en el binario a desensamblar.\n" -#: mips-dis.c:2596 -#, c-format +#: mips-dis.c:2786 +msgid "Print GPR and FPR names according to specified ABI.\n" +msgstr "Imprime los nombres GPR y FPR de acuerdo a la ABI especificada.\n" + +#: mips-dis.c:2788 msgid "" -"\n" -" For the options above, the following values are supported for \"ABI\":\n" -" " +"Print CP0 register and HWR names according to specified\n" +" architecture." msgstr "" -"\n" -" Para las opciones anteriores, se admiten los siguientes valores de \"ABI\":\n" -" " +"Imprime los nombres de registro CP0 de acuerdo a la\n" +" arquitectura especificada." -#: mips-dis.c:2603 +#: mips-dis.c:2874 #, c-format msgid "" "\n" -" For the options above, The following values are supported for \"ARCH\":\n" -" " +"The following MIPS specific disassembler options are supported for use\n" +"with the -M switch (multiple options should be separated by commas):\n" +"\n" msgstr "" "\n" -" Para las opciones anteriores, se admiten los siguientes valores de \"ARCH\":\n" -" " +"Se admiten las siguientes opciones de desensamblador específicas de MIPS\n" +"para usarse con el interruptor -M (si hay varias opciones, se deben separar\n" +"con comas):\n" -#: mmix-dis.c:34 +#: mmix-dis.c:33 #, c-format -msgid "Bad case %d (%s) in %s:%d\n" -msgstr "Case %d equivocado (%s) en %s:%d\n" +msgid "bad case %d (%s) in %s:%d" +msgstr "caso %d (%s) incorrecto en %s:%d" -#: mmix-dis.c:44 +#: mmix-dis.c:42 #, c-format -msgid "Internal: Non-debugged code (test-case missing): %s:%d" -msgstr "Interno: Código sin depurar (falta el caso de prueba): %s:%d" +msgid "internal: non-debugged code (test-case missing): %s:%d" +msgstr "interno: código sin depurar (falta el caso de prueba): %s:%d" -#: mmix-dis.c:53 +#: mmix-dis.c:52 msgid "(unknown)" msgstr "(desconocido)" -#: mmix-dis.c:511 +#: mmix-dis.c:248 mmix-dis.c:256 +msgid "*illegal*" +msgstr "*ilegal*" + +#: mmix-dis.c:530 #, c-format msgid "*unknown operands type: %d*" msgstr "*tipo de operandos desconocido: %d*" +#: msp430-decode.opc:145 rl78-decode.opc:106 +#, c-format +msgid "internal error: immediate() called with invalid byte count %d" +msgstr "error interno: immediate() llamado con contador de byte no válido %d" + #: msp430-dis.c:59 #, c-format msgid "Warning: disassembly unreliable - not enough bytes available" -msgstr "Aviso: desensamblado no creíble - sin suficientes bytes disponibles" +msgstr "Aviso: desensamblado no fiable - sin suficientes bytes disponibles" #: msp430-dis.c:65 #, c-format msgid "Error: read from memory failed" -msgstr "Error: lectura desde memoria fallada" +msgstr "Error: lectura de memoria fallada" #: msp430-dis.c:499 msgid "Warning: illegal as emulation instr" -msgstr "Aviso: ilegal como inst emulada" +msgstr "Aviso: ilegal como instr de emulación" #. R2/R3 are illegal as dest: may be data section. #: msp430-dis.c:591 msgid "Warning: illegal as 2-op instr" -msgstr "Aviso: ilegal como instr 2-op" +msgstr "Aviso: ilegal como instr de 2 op" #: msp430-dis.c:1002 msgid "Warning: unrecognised CALLA addressing mode" -msgstr "Aviso: modo direccional CALLA no reconocido" +msgstr "Aviso: modo de direccionamiento CALLA no reconocido" #: msp430-dis.c:1303 msp430-dis.c:1324 msp430-dis.c:1345 #, c-format msgid "Warning: reserved use of A/L and B/W bits detected" -msgstr "Aviso: uso reserevado de A/L y B/W bits detectados" +msgstr "Aviso: se ha detectado un uso reservado de los btis A/L y B/W" #: mt-asm.c:110 mt-asm.c:190 msgid "Operand out of range. Must be between -32768 and 32767." @@ -1523,11 +1774,115 @@ msgstr "¡Graaaan Problema en parse_imm16!" #: mt-asm.c:157 msgid "The percent-operator's operand is not a symbol" -msgstr "El porcentaje operador del operando no es un símbolo" +msgstr "El operando del operador de porcentaje no es un símbolo" #: mt-asm.c:395 msgid "invalid operand. type may have values 0,1,2 only." -msgstr "invalida operando. tipo quizá tiene valores 0,1,2 únicamente." +msgstr "operando no válido. el tipo puede tener los valores 0,1,2 únicamente." + +#: mt-desc.c:1147 +#, c-format +msgid "internal error: mt_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: mt_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: mt-desc.c:1235 +#, c-format +msgid "internal error: mt_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: mt_cgen_cpu_open: argumento «%d« no disponible" + +#: mt-desc.c:1254 +#, c-format +msgid "internal error: mt_cgen_cpu_open: no endianness specified" +msgstr "error interno: mt_cgen_cpu_open: «endianness» no especificada" + +#: nds32-asm.c:1760 +#, c-format +msgid "internal error: unknown operand, %s" +msgstr "error interno: operando desconocido, %s" + +#: nds32-asm.c:2396 +#, c-format +msgid "internal error: don't know how to handle parsing results" +msgstr "error interno: se desconoce cómo manejar los resultados del análisis" + +#: nds32-asm.c:2404 +#, c-format +msgid "internal error: unknown hardware resource" +msgstr "error interno: recurso hardware desconocido" + +#: nds32-dis.c:1178 +msgid "insufficient data to decode instruction" +msgstr "datos insuficientes para descodificar la instrucción" + +#: nfp-dis.c:930 +msgid "<invalid_instruction>:" +msgstr "<instrucción_no_válida>:" + +#: nfp-dis.c:1334 +msgid ", <invalid CRC operator>, " +msgstr ", <operador de CRC no válido>, " + +#: nfp-dis.c:1686 +msgid "<invalid branch>[" +msgstr "<rama no válida>[" + +#: nfp-dis.c:2055 nfp-dis.c:2326 +#, c-format +msgid "<invalid cmd target %d:%d:%d>[]" +msgstr "<objetivo de la orden no válido %d:%d:%d>[]" + +#: nfp-dis.c:2066 nfp-dis.c:2337 +#, c-format +msgid "<invalid cmd action %d:%d:%d>[]" +msgstr "<acción de la orden no válida %d:%d:%d>[]" + +#: nfp-dis.c:2558 +msgid "File has no ME-Config section." +msgstr "El fichero no tiene sección ME-Config." + +#. See PR 31843 for an example of this. +#: nfp-dis.c:2565 +msgid "The ME-Config section is corrupt." +msgstr "La sección ME-Config está corrupta." + +#: nfp-dis.c:2579 +msgid "File has invalid ME-Config section." +msgstr "El fichero tiene una sección ME-Config que no es válida." + +#: nfp-dis.c:2726 +#, c-format +msgid "Error processing section %u " +msgstr "Error al procesar la sección %u " + +#: nfp-dis.c:2755 +#, c-format +msgid "Invalid NFP option: %s" +msgstr "Opción NFP no válida: %s" + +#: nfp-dis.c:2993 +#, 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 "" +"\n" +"Se admiten las siguientes opciones de desensamblador específicas de NFP\n" +"para usarse con el interruptor -M (si hay varias opciones, se deben separar\n" +"con comas):\n" + +#: nfp-dis.c:2997 +#, 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 precedence." +msgstr "" +"\n" +" no-pc\t\t No imprime el prefijo del contador de programa.\n" +" ctx4\t\t Desensamblaje forzoso utilizando modo de 4 contextos.\n" +" ctx8\t\t Modo de 8 contextos forzoso; tiene precedencia." #. I and Z are output operands and can`t be immediate #. A is an address and we can`t have the address of @@ -1537,14 +1892,37 @@ msgstr "invalida operando. tipo quizá tiene valores 0,1,2 únicamente." #: ns32k-dis.c:533 #, c-format msgid "$<undefined>" -msgstr "$<sin definir>" +msgstr "$<indefinido>" + +#: or1k-asm.c:55 +msgid "relocation invalid for store" +msgstr "reubicación inválida para almacenamiento" -#: ppc-dis.c:359 +#: or1k-asm.c:56 +msgid "internal relocation type invalid" +msgstr "tipo de reubicación interna no válido" + +#: or1k-desc.c:2041 +#, c-format +msgid "internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: or1k_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: or1k-desc.c:2129 #, c-format -msgid "warning: ignoring unknown -M%s option\n" -msgstr "aviso: se descarta la opción -M%s desconocida\n" +msgid "internal error: or1k_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: or1k_cgen_cpu_open: argumento «%d« no disponible" -#: ppc-dis.c:880 +#: or1k-desc.c:2148 +#, c-format +msgid "internal error: or1k_cgen_cpu_open: no endianness specified" +msgstr "error interno: or1k_cgen_cpu_open: «endianness» no especificada" + +#: ppc-dis.c:428 +#, c-format +msgid "warning: ignoring unknown -M%s option" +msgstr "aviso: se descarta la opción -M%s desconocida" + +#: ppc-dis.c:1276 #, c-format msgid "" "\n" @@ -1555,154 +1933,235 @@ msgstr "" "Se admiten las siguientes opciones de desensamblador específicas de PPC con\n" "el interruptor -M:\n" -#: ppc-opc.c:52 ppc-opc.c:75 ppc-opc.c:100 ppc-opc.c:129 +#: ppc-opc.c:52 ppc-opc.c:75 ppc-opc.c:101 ppc-opc.c:131 msgid "invalid register" -msgstr "invalida registro" +msgstr "registro no válido" -#: ppc-opc.c:377 ppc-opc.c:405 +#: ppc-opc.c:397 msgid "invalid conditional option" -msgstr "invalida opción condicional" +msgstr "opción condicional no válida" -#: ppc-opc.c:379 ppc-opc.c:407 +#: ppc-opc.c:400 msgid "invalid counter access" -msgstr "invalida contador de acceso" +msgstr "acceso a contador no válido" -#: ppc-opc.c:409 +#: ppc-opc.c:464 +msgid "BO value implies no branch hint, when using + or - modifier" +msgstr "el valor de BO implica que no hay pista de rama, utilizando el modificador + ó -" + +#: ppc-opc.c:469 msgid "attempt to set y bit when using + or - modifier" -msgstr "intento de establecer el bit y cuando utilice + ó - como modificador" +msgstr "intento de establecer el bit y cuando utiliando el modificador + ó -" + +#: ppc-opc.c:471 +msgid "attempt to set 'at' bits when using + or - modifier" +msgstr "intento de establecer el bit «at» utilizando el modificador + ó -" -#: ppc-opc.c:500 +#: ppc-opc.c:575 +msgid "invalid offset: must be in the range [-512, -8] and be a multiple of 8" +msgstr "desplazamiento no válido: debe estar en el rango [-512, -8] y ser múltiplo de 8" + +#: ppc-opc.c:706 +msgid "invalid R operand" +msgstr "operando R no válido" + +#: ppc-opc.c:761 msgid "invalid mask field" -msgstr "invalida campo de máscara" +msgstr "campo de máscara no válido" -#: ppc-opc.c:523 +#: ppc-opc.c:784 msgid "invalid mfcr mask" -msgstr "invalida máscara mfcr" +msgstr "máscara mfcr no válida" -#: ppc-opc.c:596 ppc-opc.c:636 +#: ppc-opc.c:902 ppc-opc.c:920 msgid "illegal L operand value" -msgstr "valor de operando L ilegal" +msgstr "valor del operando L ilegal" -#: ppc-opc.c:642 +#: ppc-opc.c:943 +msgid "illegal WC operand value" +msgstr "valor del operando WC ilegal" + +#: ppc-opc.c:1040 msgid "incompatible L operand value" -msgstr "incompartible valor operativo L" +msgstr "valor del operando L incompatible" -#: ppc-opc.c:686 ppc-opc.c:721 +#: ppc-opc.c:1239 ppc-opc.c:1274 msgid "illegal bitmask" msgstr "máscara de bits ilegal" -#: ppc-opc.c:808 +#: ppc-opc.c:1418 msgid "address register in load range" msgstr "registro de dirección en el rango de carga" -#: ppc-opc.c:874 +#: ppc-opc.c:1458 +msgid "illegal PL operand value" +msgstr "valor del operando PL ilegal" + +#: ppc-opc.c:1539 msgid "index register in load range" -msgstr "registro índice en el rango de carga" +msgstr "registro de índice en el rango de carga" -#: ppc-opc.c:903 ppc-opc.c:984 +#: ppc-opc.c:1568 ppc-opc.c:1654 msgid "source and target register operands must be different" -msgstr "origen y destino de operaciones de registro deben ser diferentes" +msgstr "los operandos de los registros origen y destino deben ser diferentes" -#: ppc-opc.c:931 -msgid "invalid register operand when updating" -msgstr "invalida operando de registro al actualizar" +#: ppc-opc.c:1599 +msgid "invalid base address register operand" +msgstr "operando del registro de dirección base no válido" -#: ppc-opc.c:1047 +#: ppc-opc.c:1717 msgid "illegal immediate value" -msgstr "valor inmediato ilegal %s" +msgstr "valor inmediato ilegal" -#: ppc-opc.c:1194 +#: ppc-opc.c:2024 +msgid "invalid bat number" +msgstr "número bat no válido" + +#: ppc-opc.c:2059 msgid "invalid sprg number" -msgstr "invalida número sprg" +msgstr "número sprg no válido" -#: ppc-opc.c:1231 +#: ppc-opc.c:2096 msgid "invalid tbr number" -msgstr "invalida número tbr" +msgstr "número tbr no válido" + +#: ppc-opc.c:2203 ppc-opc.c:2271 +msgid "VSR overlaps ACC operand" +msgstr "VSR se solapa con el operando ACC" -#: ppc-opc.c:1373 +#: ppc-opc.c:2380 msgid "invalid constant" -msgstr "invalida constante" +msgstr "constante no válida" -#: ppc-opc.c:1478 ppc-opc.c:1505 ppc-opc.c:1532 ppc-opc.c:1559 +#: ppc-opc.c:2482 ppc-opc.c:2505 ppc-opc.c:2528 ppc-opc.c:2551 msgid "UIMM = 00000 is illegal" msgstr "UIMM = 00000 es ilegal" -#: ppc-opc.c:1586 +#: ppc-opc.c:2574 msgid "UIMM values >7 are illegal" -msgstr "UIMM valorados >7 son ilegales" +msgstr "los valores de UIMM >7 son ilegales" -#: ppc-opc.c:1613 +#: ppc-opc.c:2597 msgid "UIMM values >15 are illegal" -msgstr "UIMM valorados >15 son ilegales" +msgstr "los valores de UIMM >15 son ilegales" -#: ppc-opc.c:1640 +#: ppc-opc.c:2620 msgid "GPR odd is illegal" msgstr "GPR impar es ilegal" -#: ppc-opc.c:1667 ppc-opc.c:1694 +#: ppc-opc.c:2643 ppc-opc.c:2666 msgid "invalid offset" -msgstr "invalida desplazamiento" +msgstr "desplazamiento no válido" -#: ppc-opc.c:1721 +#: ppc-opc.c:2689 msgid "invalid Ddd value" -msgstr "invalida valor Ddd" +msgstr "valor de Ddd no válido" -#. Invalid option. -#: riscv-dis.c:68 +#: ppc-opc.c:2742 ppc-opc.c:2769 +msgid "invalid TH value" +msgstr "valor de TH no válido" + +#. Invalid options with '=', no option name before '=', +#. and no value after '='. +#: riscv-dis.c:138 +#, c-format +msgid "unrecognized disassembler option with '=': %s" +msgstr "opción del desensamblador no reconocida con «=»: %s" + +#: riscv-dis.c:152 +#, c-format +msgid "unknown privileged spec set by %s=%s" +msgstr "especificación de privilegio desconocida establecida mediante %s=%s" + +#: riscv-dis.c:159 #, c-format -msgid "Unrecognized disassembler option: %s\n" -msgstr "Opción no reconocida del desensamblador: %s\n" +msgid "mis-matched privilege spec set by %s=%s, the elf privilege attribute is %s" +msgstr "especificación de privilegio no coincidente establecida mediante %s=%s; el atributo de privilegio elf es %s" -#: riscv-dis.c:346 +#: riscv-dis.c:892 #, c-format msgid "# internal error, undefined modifier (%c)" -msgstr "# error interno, modificador (%c) sin definir" +msgstr "# error interno, modificador no definido (%c)" -#: riscv-dis.c:498 +#: riscv-dis.c:1536 +msgid "Print numeric register names, rather than ABI names." +msgstr "Imprime los nombres de registro numéricos, en lugar de los nombres ABI." + +#: riscv-dis.c:1539 +msgid "Disassemble only into canonical instructions." +msgstr "Desensambla únicamente en instrucciones canónicas." + +#: riscv-dis.c:1542 +msgid "Print the CSR according to the chosen privilege spec." +msgstr "Imprime el CSR según la especificación de privilegios elegida." + +#: riscv-dis.c:1618 #, c-format msgid "" "\n" -"The following RISC-V-specific disassembler options are supported for use\n" +"The following RISC-V specific disassembler options are supported for use\n" "with the -M switch (multiple options should be separated by commas):\n" msgstr "" "\n" "Se admiten las siguientes opciones especificas del desensamblador RISC-V\n" -"para emplearse con el interruptor -M (opciones múltiples deberían ser\n" -"separadas con comas):\n" +"para emplearse con el interruptor -M (si hay varias opciones, deben\n" +"separarse con comas):\n" -#: riscv-dis.c:502 -#, c-format -msgid "" -"\n" -" numeric Print numeric register names, rather than ABI names.\n" -msgstr "" -"\n" -" numérico Escribe registro numérico, mejor que nombres ABI.\n" +#: rx-dis.c:139 rx-dis.c:163 rx-dis.c:171 rx-dis.c:179 rx-dis.c:187 +msgid "<invalid register number>" +msgstr "<número de registro no válido>" -#: riscv-dis.c:505 -#, c-format -msgid "" -"\n" -" no-aliases Disassemble only into canonical instructions, rather\n" -" than into pseudoinstructions.\n" -msgstr "" -"\n" -" no-aliases Desensamblar solo dentro de instrucciones canónicas, mejor\n" -" que dentro de pseudoinstrucciones.\n" +#: rx-dis.c:147 rx-dis.c:195 +msgid "<invalid condition code>" +msgstr "<código condicional no válido>" + +#: rx-dis.c:155 +msgid "<invalid flag>" +msgstr "<indicador no válido>" + +#: rx-dis.c:203 +msgid "<invalid opsize>" +msgstr "<tamaño de operación no válido>" + +#: rx-dis.c:211 +msgid "<invalid size>" +msgstr "<tamaño no válido>" + +#: s12z-dis.c:239 s12z-dis.c:296 s12z-dis.c:307 +msgid "<illegal reg num>" +msgstr "<número de registro ilegal>" + +#: s12z-dis.c:370 +msgid "<bad>" +msgstr "<incorrecto>" -#: s390-dis.c:42 +#: s12z-dis.c:380 +msgid ".<bad>" +msgstr ".<incorrecto>" + +#: s390-dis.c:44 msgid "Disassemble in ESA architecture mode" msgstr "Desensambla en modo de arquitectura ESA" -#: s390-dis.c:43 +#. TRANSLATORS: Please do not translate 'z/Architecture' as this is a technical name. +#: s390-dis.c:46 msgid "Disassemble in z/Architecture mode" msgstr "Desensambla en modo z/Architecture" -#: s390-dis.c:44 +#: s390-dis.c:47 msgid "Print unknown instructions according to length from first two bits" -msgstr "Escribe instrucciones desconocidas de acuerdo a longitud desde el primero de dos bits" +msgstr "Imprime instrucciones desconocidas de acuerdo a la longitud desde los primeros dos bits" -#: s390-dis.c:409 +#: s390-dis.c:49 +msgid "Print instruction description as comment" +msgstr "Imprime la descripción de la instrucción como comentario" + +#: s390-dis.c:83 +#, c-format +msgid "unknown S/390 disassembler option: %s" +msgstr "opción de desensamblador S/390 desconocida: %s" + +#: s390-dis.c:587 #, c-format msgid "" "\n" @@ -1711,43 +2170,66 @@ msgid "" msgstr "" "\n" "Se admiten las siguientes opciones de desensamblador específicas de S/390\n" -"para usarse con el interruptor -M (las opciones múltiples deben separarse\n" +"para usarse con el interruptor -M (si hay varias opciones, deben separarse\n" "con comas):\n" -#: score-dis.c:663 score-dis.c:870 score-dis.c:1031 score-dis.c:1145 -#: score-dis.c:1152 score-dis.c:1159 score7-dis.c:695 score7-dis.c:858 +#: score-dis.c:653 score-dis.c:871 score-dis.c:1032 score-dis.c:1138 +#: score-dis.c:1146 score-dis.c:1153 score7-dis.c:691 score7-dis.c:854 msgid "<illegal instruction>" msgstr "<instrucción ilegal>" -#: sparc-dis.c:309 -#, c-format -msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" -msgstr "Error interno: sparc-opcode.h equivocado: \"%s\", %#.8lx, %#.8lx\n" - -#: 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" -msgstr "Error interno: sparc-opcode.h equivocado: \"%s\", %#.8lx, %#.8lx\n" +msgid "internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" +msgstr "error interno: sparc-opcode.h incorrecto: «%s», %#.8lx, %#.8lx\n" -#: sparc-dis.c:379 +#: sparc-dis.c:377 #, c-format -msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n" -msgstr "Error interno: sparc-opcode.h equivocado: \"%s\" == \"%s\"\n" +msgid "internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n" +msgstr "error interno: sparc-opcode.h incorrecto: «%s» == «%s»\n" #. Mark as non-valid instruction. -#: sparc-dis.c:1100 +#: sparc-dis.c:1094 msgid "unknown" msgstr "desconocida" -#: v850-dis.c:453 +#: v850-dis.c:190 +msgid "<invalid s-reg number>" +msgstr "<número de reg-s no válido>" + +#: v850-dis.c:206 +msgid "<invalid reg number>" +msgstr "<número de reg no válido>" + +#: v850-dis.c:222 +msgid "<invalid v-reg number>" +msgstr "<número de reg-v no válido>" + +#: v850-dis.c:236 +msgid "<invalid CC-reg number>" +msgstr "<número de reg-CC no válido>" + +#: v850-dis.c:250 +msgid "<invalid float-CC-reg number>" +msgstr "<número de reg-CC-float no válido>" + +#: v850-dis.c:264 +msgid "<invalid cacheop number>" +msgstr "<número de operación de caché no válido>" + +#: v850-dis.c:275 +msgid "<invalid prefop number>" +msgstr "<número de prefop no válido>" + +#: v850-dis.c:510 #, c-format -msgid "unknown operand shift: %x\n" -msgstr "operando de desplazamiento desconocido: %x\n" +msgid "unknown operand shift: %x" +msgstr "desplazamiento de operando desconocido: %x" -#: v850-dis.c:465 +#: v850-dis.c:526 #, c-format -msgid "unknown reg: %d\n" -msgstr "reg desconocido: %d\n" +msgid "unknown reg: %d" +msgstr "reg desconocido: %d" #. The functions used to insert and extract complicated operands. #. Note: There is a conspiracy between these functions and @@ -1756,15 +2238,15 @@ msgstr "reg desconocido: %d\n" #. specific command line option is given to GAS. #: v850-opc.c:53 msgid "displacement value is not in range and is not aligned" -msgstr "el valor de desubicación no está en el rango y no está alineado" +msgstr "el valor de desplazamiento no está dentro de rango y no está alineado" #: v850-opc.c:54 msgid "displacement value is out of range" -msgstr "el valor de desubicación está fuera de rango" +msgstr "el valor de desplazamiento está fuera de rango" #: v850-opc.c:55 msgid "displacement value is not aligned" -msgstr "el valor de desubicación no está alineado" +msgstr "el valor de desplazamiento no está alineado" #: v850-opc.c:57 msgid "immediate value is out of range" @@ -1776,7 +2258,7 @@ msgstr "el valor de ramificación está fuera de rango" #: v850-opc.c:59 msgid "branch value not in range and to odd offset" -msgstr "el valor de ramificación no está en rango e indica un desplazamiento impar" +msgstr "el valor de ramificación no está dentro de rango e indica un desplazamiento impar" #: v850-opc.c:60 msgid "branch to odd offset" @@ -1784,11 +2266,11 @@ msgstr "ramificación a un desplazamiento impar" #: v850-opc.c:61 msgid "position value is out of range" -msgstr "valor posicionado fuera del rango" +msgstr "el valor de la posición está fuera del rango" #: v850-opc.c:62 msgid "width value is out of range" -msgstr "valor de anchura está fuera de rango" +msgstr "el valor de la anchura está fuera de rango" #: v850-opc.c:63 msgid "SelID is out of range" @@ -1810,23 +2292,23 @@ msgstr "imm10 está fuera de rango" msgid "SR/SelID is out of range" msgstr "SR/SelID está fuera de rango" -#: v850-opc.c:512 +#: v850-opc.c:508 msgid "invalid register for stack adjustment" -msgstr "invalida registro para el ajuste de la pila" +msgstr "registro no válido para el ajuste de la pila" -#: v850-opc.c:532 +#: v850-opc.c:526 msgid "invalid register name" -msgstr "invalida nombre de registro" +msgstr "nombre de registro no válido" -#: wasm32-dis.c:88 +#: wasm32-dis.c:93 msgid "Disassemble \"register\" names" -msgstr "Desensambla \"registro\" como nombres" +msgstr "Desensambla los nombres de «registro»" -#: wasm32-dis.c:89 +#: wasm32-dis.c:94 msgid "Name well-known globals" -msgstr "Nombres globales bien conocidos" +msgstr "Nombra los globales bien conocidos" -#: wasm32-dis.c:503 +#: wasm32-dis.c:549 #, c-format msgid "" "The following WebAssembly-specific disassembler options are supported for use\n" @@ -1835,61 +2317,37 @@ msgstr "" "Las siguientes opciones de desensamblador específicas de WebAssembly son\n" "admitidas para usarse con el interruptor -M:\n" -#: xc16x-asm.c:66 -msgid "Missing '#' prefix" -msgstr "Ausente '#' como prefijo" - -#: xc16x-asm.c:82 -msgid "Missing '.' prefix" -msgstr "Ausente '.' como prefijo" - -#: xc16x-asm.c:98 -msgid "Missing 'pof:' prefix" -msgstr "Ausente 'pof:' como prefijo" - -#: xc16x-asm.c:114 -msgid "Missing 'pag:' prefix" -msgstr "Ausente 'pag:' como prefijo" - -#: xc16x-asm.c:130 -msgid "Missing 'sof:' prefix" -msgstr "Ausente 'sof:' como prefijo" - -#: xc16x-asm.c:146 -msgid "Missing 'seg:' prefix" -msgstr "Ausente 'seg:' como prefijo" - #: xstormy16-asm.c:71 msgid "Bad register in preincrement" -msgstr "Registro equivocado en el preincremento" +msgstr "Registro incorrecto en el preincremento" #: xstormy16-asm.c:76 msgid "Bad register in postincrement" -msgstr "Registro equivocado en el postincremento" +msgstr "Registro incorrecto en el postincremento" #: xstormy16-asm.c:78 msgid "Bad register name" -msgstr "Nombre de registro equivocado" +msgstr "Nombre de registro incorrecto" #: xstormy16-asm.c:82 msgid "Label conflicts with register name" -msgstr "La etiqueta tiene conflictos con el nombre de registro" +msgstr "La etiqueta está en conflicto con el nombre de registro" #: xstormy16-asm.c:86 msgid "Label conflicts with `Rx'" -msgstr "La etiqueta tiene conflictos con `Rx'" +msgstr "La etiqueta está en conflicto con «Rx»" #: xstormy16-asm.c:88 msgid "Bad immediate expression" -msgstr "Expresión inmediata equivocada" +msgstr "Expresión inmediata incorrecta" #: xstormy16-asm.c:109 msgid "No relocation for small immediate" -msgstr "No hay reubicaciones para inmediatos small" +msgstr "No hay reubicación para inmediato pequeño" #: xstormy16-asm.c:119 msgid "Small operand was not an immediate number" -msgstr "Operando small no era un número inmediato" +msgstr "El operando pequeño no era un número inmediato" #: xstormy16-asm.c:157 msgid "Operand is not a symbol" @@ -1897,7 +2355,250 @@ msgstr "El operando no es un símbolo" #: xstormy16-asm.c:165 msgid "Syntax error: No trailing ')'" -msgstr "Error sintáctico: No termina con ')'" +msgstr "Error sintáctico: No termina con «)»" + +#: xstormy16-desc.c:1318 +#, c-format +msgid "internal error: xstormy16_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'" +msgstr "error interno: xstormy16_cgen_rebuild_tables: valores de insn-chunk-bitsize en conflicto: «%d» frente a «%d»" + +#: xstormy16-desc.c:1406 +#, c-format +msgid "internal error: xstormy16_cgen_cpu_open: unsupported argument `%d'" +msgstr "error interno: xstormy16_cgen_cpu_open: argumento «%d« no disponible" + +#: xstormy16-desc.c:1425 +#, c-format +msgid "internal error: xstormy16_cgen_cpu_open: no endianness specified" +msgstr "error interno: xstormy16_cgen_cpu_open: «endianness» no especificada" + +#~ msgid "z0-z15 expected" +#~ msgstr "se esperaba z0-z15" + +#~ msgid "z0-z7 expected" +#~ msgstr "se esperaba z0-z7" + +#~ msgid "invalid register list" +#~ msgstr "invalida lista de registros" + +#~ msgid "p0-p7 expected" +#~ msgstr "se esperaba p0-p7" + +#, c-format +#~ msgid " dsp Recognize DSP instructions.\n" +#~ msgstr " dsp Reconoce instrucciones DSP.\n" + +#, c-format +#~ msgid "Internal disassembler error" +#~ msgstr "Error interno del desensamblador" + +#, c-format +#~ msgid "can't cope with insert %d\n" +#~ msgstr "no se puede lidiar con insert %d\n" + +#, c-format +#~ msgid "%02x\t\t*unknown*" +#~ msgstr "%02x\t\t*desconocido*" + +#, c-format +#~ msgid "%s: Error: " +#~ msgstr "%s: Error: " + +#, c-format +#~ msgid "%s: %d: Unknown bitfield: %s\n" +#~ msgstr "%s: %d: Campo de bits desconocido: %s\n" + +#, c-format +#~ msgid "Unknown bitfield: %s\n" +#~ msgstr "Campo de bits desconocido: %s\n" + +#, c-format +#~ msgid "%s: %d: Missing `)' in bitfield: %s\n" +#~ msgstr "%s: %d: Falta un `)' en el campo de bits: %s\n" + +#, c-format +#~ msgid "can't find i386-opc.tbl for reading, errno = %s\n" +#~ msgstr "no se puede encontrar i386-opc.tbl para lectura, errno =%s\n" + +#, c-format +#~ msgid "can't find i386-reg.tbl for reading, errno = %s\n" +#~ msgstr "no se puede encontrar i386-reg.tbl para lectura, errno = %s\n" + +#, c-format +#~ msgid "can't create i386-init.h, errno = %s\n" +#~ msgstr "no se puede crear i386-init.h, errno = %s\n" + +#, c-format +#~ msgid "unable to change directory to \"%s\", errno = %s\n" +#~ msgstr "no se puede modificar el directorio a \"%s\", errno = %s\n" + +#, c-format +#~ msgid "CpuMax != %d!\n" +#~ msgstr "CpuMax != %d!\n" + +#, c-format +#~ msgid "%d unused bits in i386_cpu_flags.\n" +#~ msgstr "%d bits sin usar en i386_cpu_flags.\n" + +#, c-format +#~ msgid "%d unused bits in i386_operand_type.\n" +#~ msgstr "%d bits sin usar en i386_operand_type.\n" + +#, c-format +#~ msgid "can't create i386-tbl.h, errno = %s\n" +#~ msgstr "no se puede crear i386-tbl.h, errno = %s\n" + +#, c-format +#~ msgid "%s: Warning: " +#~ msgstr "%s: Aviso: " + +#, c-format +#~ msgid "multiple note %s not handled\n" +#~ msgstr "no se maneja la nota múltiple %s\n" + +#~ msgid "can't find ia64-ic.tbl for reading\n" +#~ msgstr "no se puede encontrar ia64-ic.tbl para lectura\n" + +#, c-format +#~ msgid "can't find %s for reading\n" +#~ msgstr "no se puede encontrar %s para lectura\n" + +#, c-format +#~ msgid "" +#~ "most recent format '%s'\n" +#~ "appears more restrictive than '%s'\n" +#~ msgstr "" +#~ "el formato más reciente '%s'\n" +#~ "parece más restrictivo que '%s'\n" + +#, c-format +#~ msgid "overlapping field %s->%s\n" +#~ msgstr "traslapando campo %s→%s\n" + +#, c-format +#~ msgid "overwriting note %d with note %d (IC:%s)\n" +#~ msgstr "se sobreescribe la nota %d con la nota %d (IC:%s)\n" + +#, c-format +#~ msgid "don't know how to specify %% dependency %s\n" +#~ msgstr "no sabe cómo especificar la dependencia %% %s\n" + +#, c-format +#~ msgid "Don't know how to specify # dependency %s\n" +#~ msgstr "No sabe cómo especificar la dependencia # %s\n" + +#, c-format +#~ msgid "IC:%s [%s] has no terminals or sub-classes\n" +#~ msgstr "IC:%s [%s] no tiene terminales o sub-clases\n" + +#, c-format +#~ msgid "IC:%s has no terminals or sub-classes\n" +#~ msgstr "IC:%s no tiene terminales o sub-clases\n" + +#, c-format +#~ msgid "no insns mapped directly to terminal IC %s [%s]" +#~ msgstr "no hay insns distribuída directamente al IC terminal %s [%s]" + +#, c-format +#~ msgid "no insns mapped directly to terminal IC %s\n" +#~ msgstr "no hay insns distribuída directamente al IC terminal %s\n" + +#, c-format +#~ msgid "class %s is defined but not used\n" +#~ msgstr "se define la clase %s pero no se utiliza\n" + +#, c-format +#~ msgid "Warning: rsrc %s (%s) has no chks\n" +#~ msgstr "Aviso: el rsrc %s (%s) no tiene chks\n" + +#, c-format +#~ msgid "Warning: rsrc %s (%s) has no chks or regs\n" +#~ msgstr "Aviso: el rsrc %s (%s) no tiene chks o regs\n" + +#, c-format +#~ msgid "rsrc %s (%s) has no regs\n" +#~ msgstr "el rsrc %s (%s) no tiene registros\n" + +#, c-format +#~ msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n" +#~ msgstr "IC como nota de %d en el código de operación %s (IC:%s) tiene conflictos con el recurso %s nota %d\n" + +#, c-format +#~ msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n" +#~ msgstr "IC como nota %d para el código de operación %s (IC:%s) en conflicto con recurso %s nota %d\n" + +#, c-format +#~ msgid "opcode %s has no class (ops %d %d %d)\n" +#~ msgstr "el código de operación %s no tiene clase (ops %d %d %d)\n" + +#, c-format +#~ msgid "# <dis error: %08lx>" +#~ msgstr "# <error de desensamblador: %08lx>" + +#, c-format +#~ msgid "" +#~ "\n" +#~ " msa Recognize MSA instructions.\n" +#~ msgstr "" +#~ "\n" +#~ " msa Reconoce instrucciones MSA.\n" + +#, c-format +#~ msgid "" +#~ "\n" +#~ " hwr-names=ARCH Print HWR names according to specified \n" +#~ " architecture.\n" +#~ " Default: based on binary being disassembled.\n" +#~ msgstr "" +#~ "\n" +#~ " hwr-namess=ARCH Escribe los nombres HWR de acuerdo\n" +#~ " a las arquitectura especificada.\n" +#~ " Por defecto: basado en binario siendo desensamblada.\n" + +#, c-format +#~ msgid "" +#~ "\n" +#~ " For the options above, The following values are supported for \"ARCH\":\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Para las opciones anteriores, se admiten los siguientes valores de \"ARCH\":\n" +#~ " " + +#~ msgid "invalid register operand when updating" +#~ msgstr "invalida operando de registro al actualizar" + +#, c-format +#~ msgid "" +#~ "\n" +#~ " no-aliases Disassemble only into canonical instructions, rather\n" +#~ " than into pseudoinstructions.\n" +#~ msgstr "" +#~ "\n" +#~ " no-aliases Desensamblar solo dentro de instrucciones canónicas, mejor\n" +#~ " que dentro de pseudoinstrucciones.\n" + +#, c-format +#~ msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n" +#~ msgstr "Error interno: sparc-opcode.h equivocado: \"%s\", %#.8lx, %#.8lx\n" + +#~ msgid "Missing '#' prefix" +#~ msgstr "Ausente '#' como prefijo" + +#~ msgid "Missing '.' prefix" +#~ msgstr "Ausente '.' como prefijo" + +#~ msgid "Missing 'pof:' prefix" +#~ msgstr "Ausente 'pof:' como prefijo" + +#~ msgid "Missing 'pag:' prefix" +#~ msgstr "Ausente 'pag:' como prefijo" + +#~ msgid "Missing 'sof:' prefix" +#~ msgstr "Ausente 'sof:' como prefijo" + +#~ msgid "Missing 'seg:' prefix" +#~ msgstr "Ausente 'seg:' como prefijo" #~ msgid "Illegal limm reference in last instruction!\n" #~ msgstr "¡Referencia limm ilegal en la última instrucción!\n" @@ -1908,12 +2609,6 @@ msgstr "Error sintáctico: No termina con ')'" #~ msgid "auxiliary register not allowed here" #~ msgstr "no se permite un registro auxiliar aquí" -#~ msgid "attempt to set readonly register" -#~ msgstr "se intentó cambiar un registro de sólo lectura" - -#~ msgid "attempt to read writeonly register" -#~ msgstr "se intentó leer un registro de sólo escritura" - #~ msgid "too many long constants" #~ msgstr "demasiadas constantes long" @@ -1980,15 +2675,9 @@ msgstr "Error sintáctico: No termina con ')'" #~ msgid "%operator operand is not a symbol" #~ msgstr "el operando %operator no es un símbolo" -#~ msgid "offset not a multiple of 2" -#~ msgstr "el desplazamiento no es un múltiplo de 2" - #~ msgid "offset greater than 62" #~ msgstr "el desplazamiento es mayor que 62" -#~ msgid "offset not a multiple of 4" -#~ msgstr "el desplazamiento no es un múltiplo de 4" - #~ msgid "offset greater than 124" #~ msgstr "el desplazamiento es mayor que 124" |